virtual wxStatusBar* CreateStatusBar(int number=1, long style = wxST_SIZEGRIP, wxWindowID id = 0,
const wxString& name = "statusBar");
- virtual wxStatusBar *GetStatusBar();
+ virtual wxStatusBar *OnCreateStatusBar( int number, long style, wxWindowID id,
+ const wxString& name );
+ virtual wxStatusBar *GetStatusBar() const;
virtual void SetStatusText( const wxString &text, int number = 0 );
- virtual void SetStatusWidths( int n, int *width );
+ virtual void SetStatusWidths( int n, const int widths_field[] );
virtual wxToolBar* CreateToolBar( long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1,
const wxString& name = wxToolBarNameStr);
- virtual wxToolBar *GetToolBar();
+ virtual wxToolBar *OnCreateToolBar( long style, wxWindowID id, const wxString& name );
+ virtual wxToolBar *GetToolBar(void) const;
virtual void SetMenuBar( wxMenuBar *menuBar );
- virtual wxMenuBar *GetMenuBar();
+ virtual wxMenuBar *GetMenuBar() const;
virtual void SetTitle( const wxString &title );
virtual wxString GetTitle() const { return m_title; }
virtual bool IsShown() const;
- // Raise the window to the top of the Z order
- virtual void Raise(void) {};
-
- // Lower the window to the bottom of the Z order
- virtual void Lower(void) {};
-
+ virtual void Raise(void);
+ virtual void Lower(void);
virtual bool IsRetained();
virtual wxWindow *FindWindow( long id );
virtual wxStatusBar* CreateStatusBar(int number=1, long style = wxST_SIZEGRIP, wxWindowID id = 0,
const wxString& name = "statusBar");
- virtual wxStatusBar *GetStatusBar();
+ virtual wxStatusBar *OnCreateStatusBar( int number, long style, wxWindowID id,
+ const wxString& name );
+ virtual wxStatusBar *GetStatusBar() const;
virtual void SetStatusText( const wxString &text, int number = 0 );
- virtual void SetStatusWidths( int n, int *width );
+ virtual void SetStatusWidths( int n, const int widths_field[] );
virtual wxToolBar* CreateToolBar( long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1,
const wxString& name = wxToolBarNameStr);
- virtual wxToolBar *GetToolBar();
+ virtual wxToolBar *OnCreateToolBar( long style, wxWindowID id, const wxString& name );
+ virtual wxToolBar *GetToolBar(void) const;
virtual void SetMenuBar( wxMenuBar *menuBar );
- virtual wxMenuBar *GetMenuBar();
+ virtual wxMenuBar *GetMenuBar() const;
virtual void SetTitle( const wxString &title );
virtual wxString GetTitle() const { return m_title; }
virtual bool IsShown() const;
- // Raise the window to the top of the Z order
- virtual void Raise(void) {};
-
- // Lower the window to the bottom of the Z order
- virtual void Lower(void) {};
-
+ virtual void Raise(void);
+ virtual void Lower(void);
virtual bool IsRetained();
virtual wxWindow *FindWindow( long id );
return TRUE;
}
-//----------------------------------------------------------------------
-// MyTextCtrl
-//----------------------------------------------------------------------
-
-class MyTextCtrl : public wxTextCtrl
-{
-public:
- MyTextCtrl( wxWindow *parent, wxWindowID id, const wxString &value,
- const wxPoint &pos, const wxSize &size, int style );
-
- void OnRightButton(wxCommandEvent&) { }
-
-DECLARE_EVENT_TABLE()
-};
-
-BEGIN_EVENT_TABLE(MyTextCtrl, wxTextCtrl)
- EVT_RIGHT_DOWN(MyTextCtrl::OnRightButton)
-END_EVENT_TABLE()
-
-MyTextCtrl::MyTextCtrl( wxWindow *parent, wxWindowID id, const wxString &value,
- const wxPoint &pos, const wxSize &size, int style ) :
- wxTextCtrl( parent, id, value, pos, size, style )
-{
-}
-
//----------------------------------------------------------------------
// MyPanel
//----------------------------------------------------------------------
#include "wx/toolbar.h"
#include "wx/statusbr.h"
#include "wx/mdi.h"
+#include "wx/dcclient.h"
#include "wx/gtk/win_gtk.h"
const wxMENU_HEIGHT = 28;
*/
win->GtkOnSize( alloc->x, alloc->y, alloc->width, alloc->height );
-};
+}
//-----------------------------------------------------------------------------
// delete
win->Close();
return TRUE;
-};
+}
//-----------------------------------------------------------------------------
// configure
win->m_y = event->y;
return FALSE;
-};
+}
//-----------------------------------------------------------------------------
m_wxwindow = NULL;
m_mainWindow = NULL;
wxTopLevelWindows.Insert( this );
-};
+}
wxFrame::wxFrame( wxWindow *parent, wxWindowID id, const wxString &title,
const wxPoint &pos, const wxSize &size,
m_mainWindow = NULL;
Create( parent, id, title, pos, size, style, name );
wxTopLevelWindows.Insert( this );
-};
+}
bool wxFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title,
const wxPoint &pos, const wxSize &size,
gtk_widget_realize( m_mainWindow );
return TRUE;
-};
+}
wxFrame::~wxFrame()
{
wxTopLevelWindows.DeleteObject( this );
if (wxTopLevelWindows.Number() == 0) wxTheApp->ExitMainLoop();
-};
+}
bool wxFrame::Show( bool show )
{
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
m_sizeSet = FALSE;
ProcessEvent( event );
- };
+ }
return wxWindow::Show( show );
-};
+}
void wxFrame::Enable( bool enable )
{
wxWindow::Enable( enable );
gtk_widget_set_sensitive( m_mainWindow, enable );
-};
+}
void wxFrame::OnCloseWindow( wxCloseEvent &event )
{
{
this->Destroy();
}
-};
+}
bool wxFrame::Destroy()
{
m_frameToolBar->GetSize( NULL, &y );
(*height) -= y;
}
- };
-};
+ }
+}
void wxFrame::SetClientSize( int const width, int const height )
{
h += y;
}
wxWindow::SetClientSize( width, h );
-};
+}
void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height )
{
{
main_y = wxMENU_HEIGHT;
main_height -= wxMENU_HEIGHT;
- };
+ }
int toolbar_height = 0;
if (m_frameToolBar) m_frameToolBar->GetSize( NULL, &toolbar_height );
{
gtk_myfixed_move( GTK_MYFIXED(m_mainWindow), m_frameMenuBar->m_widget, 1, 1 );
gtk_widget_set_usize( m_frameMenuBar->m_widget, width-2, wxMENU_HEIGHT-2 );
- };
+ }
if (m_frameToolBar)
{
gtk_myfixed_move( GTK_MYFIXED(m_mainWindow), m_frameToolBar->m_widget, 1, wxMENU_HEIGHT );
gtk_widget_set_usize( m_frameToolBar->m_widget, width-2, toolbar_height );
- };
+ }
if (m_frameStatusBar)
{
m_frameStatusBar->SetSize( 0, main_height-wxSTATUS_HEIGHT, width, wxSTATUS_HEIGHT );
- };
+ }
m_sizeSet = TRUE;
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
event.SetEventObject( this );
ProcessEvent( event );
-};
+}
void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
{
return;
child = win;
- };
- };
+ }
+ }
// yes: set it's size to fill all the frame
int client_x, client_y;
GetClientSize(&client_x, &client_y);
child->SetSize( 1, 1, client_x-2, client_y);
}
-};
+}
void wxFrame::AddChild( wxWindow *child )
{
gtk_widget_set_usize( child->m_widget, child->m_width, child->m_height );
}
-};
+}
static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
{
if (menuitem->IsSubMenu())
SetInvokingWindow( menuitem->GetSubMenu(), win );
node = node->Next();
- };
-};
+ }
+}
void wxFrame::SetMenuBar( wxMenuBar *menuBar )
{
wxMenu *menu = (wxMenu*)node->Data();
SetInvokingWindow( menu, this );
node = node->Next();
- };
+ }
if (m_frameMenuBar->m_parent != this)
{
m_frameMenuBar->m_widget, m_frameMenuBar->m_x, m_frameMenuBar->m_y );
}
}
-};
+}
-wxMenuBar *wxFrame::GetMenuBar(void)
+wxMenuBar *wxFrame::GetMenuBar(void) const
{
return m_frameMenuBar;
-};
+}
-wxToolBar *wxFrame::CreateToolBar( long style , wxWindowID id, const wxString& name )
+wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name)
{
+ wxCHECK_MSG( m_frameToolBar == NULL, FALSE, "recreating toolbar in wxFrame" );
+
m_addPrivateChild = TRUE;
-
- m_frameToolBar = new wxToolBar( this, id, wxDefaultPosition, wxDefaultSize, style, name );
-
+ m_frameToolBar = OnCreateToolBar( style, id, name );
m_addPrivateChild = FALSE;
return m_frameToolBar;
-};
+}
-wxToolBar *wxFrame::GetToolBar(void)
+wxToolBar* wxFrame::OnCreateToolBar( long style, wxWindowID id, const wxString& name )
{
- return m_frameToolBar;
-};
+ return new wxToolBar( this, id, wxDefaultPosition, wxDefaultSize, style, name );
+}
+
+wxToolBar *wxFrame::GetToolBar(void) const
+{
+ return m_frameToolBar;
+}
wxStatusBar* wxFrame::CreateStatusBar( int number, long style, wxWindowID id, const wxString& name )
{
- if (m_frameStatusBar)
- delete m_frameStatusBar;
-
- m_frameStatusBar = new wxStatusBar( this, id, wxPoint(0,0), wxSize(100,20), style, name );
+ wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, "recreating status bar in wxFrame" );
- m_frameStatusBar->SetFieldsCount( number );
+ m_frameStatusBar = OnCreateStatusBar( number, style, id, name );
return m_frameStatusBar;
-};
+}
+
+wxStatusBar *wxFrame::OnCreateStatusBar( int number, long style, wxWindowID id, const wxString& name )
+{
+ wxStatusBar *statusBar = NULL;
+
+ statusBar = new wxStatusBar(this, id, wxPoint(0, 0), wxSize(100, 20), style, name);
+
+ // Set the height according to the font and the border size
+ wxClientDC dc(statusBar);
+ dc.SetFont( *statusBar->GetFont() );
+
+ long x, y;
+ dc.GetTextExtent( "X", &x, &y );
+
+ int height = (int)( (y * 1.1) + 2* statusBar->GetBorderY());
+
+ statusBar->SetSize( -1, -1, 100, height );
+
+ statusBar->SetFieldsCount( number );
+ return statusBar;
+}
-void wxFrame::SetStatusText( const wxString &text, int number )
+void wxFrame::SetStatusText(const wxString& text, int number)
{
- if (m_frameStatusBar) m_frameStatusBar->SetStatusText( text, number );
-};
+ wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set text for" );
-void wxFrame::SetStatusWidths( int n, int *width )
+ m_frameStatusBar->SetStatusText(text, number);
+}
+
+void wxFrame::SetStatusWidths(int n, const int widths_field[] )
{
- if (m_frameStatusBar) m_frameStatusBar->SetStatusWidths( n, width );
-};
+ wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set widths for" );
+
+ m_frameStatusBar->SetStatusWidths(n, widths_field);
+}
-wxStatusBar *wxFrame::GetStatusBar(void)
+wxStatusBar *wxFrame::GetStatusBar(void) const
{
return m_frameStatusBar;
-};
+}
void wxFrame::SetTitle( const wxString &title )
{
m_title = title;
+ if (m_title.IsNull()) m_title = "";
gtk_window_set_title( GTK_WINDOW(m_widget), title );
-};
+}
void wxFrame::SetSizeHints(int minW, int minH, int maxW, int maxH, int WXUNUSED(incW) )
{
win->ProcessEvent( event );
win->m_updateRegion.Clear();
-};
+}
//-----------------------------------------------------------------------------
// draw (of m_wxwindow, not of m_widget)
win->ProcessEvent( event );
win->m_updateRegion.Clear();
-};
+}
//-----------------------------------------------------------------------------
// size
(win->m_height == alloc->height))
{
return;
- };
+ }
printf( "OnResize from " );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
wxSizeEvent event( wxSize( alloc->width, alloc->height), win->GetId() );
event.SetEventObject( win );
win->ProcessEvent( event );
-};
+}
*/
//-----------------------------------------------------------------------------
{
if ((gdk_event->keyval >= 0x20) && (gdk_event->keyval <= 0xFF))
key_code = gdk_event->keyval;
- };
- };
+ }
+ }
if (!key_code) return FALSE;
if (ret) printf( "found.\n") ;
*/
return ret;
-};
+}
//-----------------------------------------------------------------------------
// button_press
printf( ".\n" );
*/
- };
- };
+ }
+ }
if (!win->HasVMT()) return TRUE;
case GDK_BUTTON_PRESS: event_type = wxEVT_LEFT_DOWN; break;
case GDK_2BUTTON_PRESS: event_type = wxEVT_LEFT_DCLICK; break;
default: break;
- };
+ }
}
else if (gdk_event->button == 2)
{
case GDK_BUTTON_PRESS: event_type = wxEVT_MIDDLE_DOWN; break;
case GDK_2BUTTON_PRESS: event_type = wxEVT_MIDDLE_DCLICK; break;
default: break;
- };
+ }
}
else if (gdk_event->button == 3)
{
case GDK_BUTTON_PRESS: event_type = wxEVT_RIGHT_DOWN; break;
case GDK_2BUTTON_PRESS: event_type = wxEVT_RIGHT_DCLICK; break;
default: break;
- };
- };
+ }
+ }
wxMouseEvent event( event_type );
event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK);
win->ProcessEvent( event );
return TRUE;
-};
+}
//-----------------------------------------------------------------------------
// button_release
case 1: event_type = wxEVT_LEFT_UP; break;
case 2: event_type = wxEVT_MIDDLE_UP; break;
case 3: event_type = wxEVT_RIGHT_UP; break;
- };
+ }
wxMouseEvent event( event_type );
event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK);
win->ProcessEvent( event );
return TRUE;
-};
+}
//-----------------------------------------------------------------------------
// motion_notify
win->ProcessEvent( event );
return TRUE;
-};
+}
//-----------------------------------------------------------------------------
// focus_in
printf( win->GetClassInfo()->GetClassName() );
printf( ".\n" );
*/
- };
- };
+ }
+ }
if (!win->HasVMT()) return TRUE;
win->ProcessEvent( event );
return TRUE;
-};
+}
//-----------------------------------------------------------------------------
// focus out
{
if (GTK_WIDGET_CAN_FOCUS(win->m_wxwindow))
GTK_WIDGET_UNSET_FLAGS (win->m_wxwindow, GTK_HAS_FOCUS);
- };
+ }
if (!win->HasVMT()) return TRUE;
win->ProcessEvent( event );
return TRUE;
-};
+}
//-----------------------------------------------------------------------------
// vertical scroll
wxScrollEvent event( command, win->GetId(), value, wxVERTICAL );
event.SetEventObject( win );
win->ProcessEvent( event );
-};
+}
//-----------------------------------------------------------------------------
// horizontal scroll
wxScrollEvent event( command, win->GetId(), value, wxHORIZONTAL );
event.SetEventObject( win );
win->ProcessEvent( event );
-};
+}
//-----------------------------------------------------------------------------
// vertical scroll change
wxScrollEvent event( command, win->GetId(), value, wxVERTICAL );
event.SetEventObject( win );
win->ProcessEvent( event );
-};
+}
//-----------------------------------------------------------------------------
// horizontal scroll change
wxScrollEvent event( command, win->GetId(), value, wxHORIZONTAL );
event.SetEventObject( win );
win->ProcessEvent( event );
-};
+}
//-----------------------------------------------------------------------------
// drop
int y = 0;
gdk_window_get_pointer( widget->window, &x, &y, NULL );
win->GetDropTarget()->Drop( event, x, y );
- };
+ }
/*
g_free (event->dropdataavailable.data);
printf( " Robert Roebling.\n" );
return FALSE;
-};
+}
//-----------------------------------------------------------------------------
// enter
wxMouseEvent event( wxEVT_ENTER_WINDOW );
event.SetEventObject( win );
return win->ProcessEvent( event );
-};
+}
//-----------------------------------------------------------------------------
// leave
wxMouseEvent event( wxEVT_LEAVE_WINDOW );
event.SetEventObject( win );
return win->ProcessEvent( event );
-};
+}
//-----------------------------------------------------------------------------
// wxWindow implementation
m_drawingOffsetY = 0;
m_pDropTarget = NULL;
m_resizing = FALSE;
-};
+}
wxWindow::wxWindow( wxWindow *parent, wxWindowID id,
const wxPoint &pos, const wxSize &size,
{
m_cursor = NULL;
Create( parent, id, pos, size, style, name );
-};
+}
bool wxWindow::Create( wxWindow *parent, wxWindowID id,
const wxPoint &pos, const wxSize &size,
else
{
gtk_viewport_set_shadow_type( viewport, GTK_SHADOW_NONE );
- };
+ }
m_wxwindow = gtk_myfixed_new();
Show( TRUE );
return TRUE;
-};
+}
wxWindow::~wxWindow(void)
{
// class
wxTopLevelWindows.DeleteObject(this);
-};
+}
void wxWindow::PreCreation( wxWindow *parent, wxWindowID id,
const wxPoint &pos, const wxSize &size,
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "draw",
GTK_SIGNAL_FUNC(gtk_window_draw_callback), (gpointer)this );
- };
+ }
/*
gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "leave_notify_event",
GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this );
- };
+ }
/*
// Does destroy ever get called ?
{
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "destroy_event",
GTK_SIGNAL_FUNC(gtk_window_destroy_callback), (gpointer)this );
- };
+ }
*/
if (m_widget && m_parent) gtk_widget_realize( m_widget );
SetCursor( wxSTANDARD_CURSOR );
m_hasVMT = TRUE;
-};
+}
bool wxWindow::HasVMT(void)
{
return m_hasVMT;
-};
+}
bool wxWindow::Close( bool force )
{
event.SetForce(force);
return GetEventHandler()->ProcessEvent(event);
-};
+}
bool wxWindow::Destroy(void)
{
m_hasVMT = FALSE;
delete this;
return TRUE;
-};
+}
bool wxWindow::DestroyChildren(void)
{
{
delete child;
if (GetChildren()->Member(child)) delete node;
- };
- };
- };
+ }
+ }
+ }
return TRUE;
-};
+}
void wxWindow::PrepareDC( wxDC &WXUNUSED(dc) )
{
// are we to set fonts here ?
-};
+}
void wxWindow::ImplementSetSize(void)
{
gtk_widget_set_usize( m_widget, m_width, m_height );
-};
+}
void wxWindow::ImplementSetPosition(void)
{
gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), m_widget, m_x, m_y );
// Don't do anything for children of wxNotebook and wxMDIChildFrame
-};
+}
void wxWindow::SetSize( int x, int y, int width, int height, int sizeFlags )
{
if (newY == -1) newY = m_y;
if (newW == -1) newW = m_width;
if (newH == -1) newH = m_height;
- };
+ }
if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH)
{
if (newW == -1) newW = 80;
- };
+ }
if ((sizeFlags & wxSIZE_AUTO_HEIGHT) == wxSIZE_AUTO_HEIGHT)
{
if (newH == -1) newH = 26;
- };
+ }
if ((m_x != newX) || (m_y != newY) || (!m_sizeSet))
{
m_x = newX;
m_y = newY;
ImplementSetPosition();
- };
+ }
if ((m_width != newW) || (m_height != newH) || (!m_sizeSet))
{
m_width = newW;
m_height = newH;
ImplementSetSize();
- };
+ }
m_sizeSet = TRUE;
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
ProcessEvent( event );
m_resizing = FALSE;
-};
+}
void wxWindow::SetSize( int width, int height )
{
SetSize( -1, -1, width, height, wxSIZE_USE_EXISTING );
-};
+}
void wxWindow::Move( int x, int y )
{
SetSize( x, y, -1, -1, wxSIZE_USE_EXISTING );
-};
+}
void wxWindow::GetSize( int *width, int *height ) const
{
if (width) (*width) = m_width;
if (height) (*height) = m_height;
-};
+}
void wxWindow::SetClientSize( int width, int height )
{
{
dw += 2 * viewport_class->xthickness;
dh += 2 * viewport_class->ythickness;
- };
+ }
if (GTK_WIDGET_VISIBLE(vscrollbar))
{
dw += vscrollbar->allocation.width;
dw += scroll_class->scrollbar_spacing;
- };
+ }
if (GTK_WIDGET_VISIBLE(hscrollbar))
{
dh += hscrollbar->allocation.height;
dw += scroll_class->scrollbar_spacing;
- };
- };
+ }
+ }
SetSize( width+dw, height+dh );
- };
-};
+ }
+}
void wxWindow::GetClientSize( int *width, int *height ) const
{
{
dw += 2 * viewport_class->xthickness;
dh += 2 * viewport_class->ythickness;
- };
+ }
if (GTK_WIDGET_VISIBLE(vscrollbar))
{
// dw += vscrollbar->allocation.width;
dw += 15; // range.slider_width = 11 + 2*2pts edge
dw += scroll_class->scrollbar_spacing;
- };
+ }
if (GTK_WIDGET_VISIBLE(hscrollbar))
{
// dh += hscrollbar->allocation.height;
dh += 15;
dh += scroll_class->scrollbar_spacing;
- };
- };
+ }
+ }
if (width) (*width) = m_width - dw;
if (height) (*height) = m_height - dh;
- };
-};
+ }
+}
void wxWindow::GetPosition( int *x, int *y ) const
{
if (x) (*x) = m_x;
if (y) (*y) = m_y;
-};
+}
void wxWindow::ClientToScreen( int *x, int *y )
{
{
org_x += m_widget->allocation.x;
org_y += m_widget->allocation.y;
- };
- };
+ }
+ }
if (x) *x += org_x;
if (y) *y += org_y;
-};
+}
void wxWindow::ScreenToClient( int *x, int *y )
{
{
org_x += m_widget->allocation.x;
org_y += m_widget->allocation.y;
- };
- };
+ }
+ }
if (x) *x -= org_x;
if (y) *y -= org_y;
-};
+}
void wxWindow::Centre( int direction )
{
if (direction & wxHORIZONTAL == wxHORIZONTAL) m_x = (p_w - m_width) / 2;
if (direction & wxVERTICAL == wxVERTICAL) m_y = (p_h - m_height) / 2;
ImplementSetPosition();
- };
+ }
}
-};
+}
void wxWindow::Fit(void)
{
node = node->Next();
}
SetClientSize(maxX + 5, maxY + 10);
-};
+}
void wxWindow::OnSize( wxSizeEvent &WXUNUSED(event) )
{
//if (GetAutoLayout()) Layout();
-};
+}
bool wxWindow::Show( bool show )
{
gtk_widget_hide( m_widget );
m_isShown = show;
return TRUE;
-};
+}
void wxWindow::Enable( bool enable )
{
m_isEnabled = enable;
gtk_widget_set_sensitive( m_widget, enable );
if (m_wxwindow) gtk_widget_set_sensitive( m_wxwindow, enable );
-};
+}
void wxWindow::MakeModal( bool modal )
{
if (GTK_WIDGET_CAN_FOCUS(connect_widget) && !GTK_WIDGET_HAS_FOCUS (connect_widget) )
{
gtk_widget_grab_focus (connect_widget);
- };
- };
-};
+ }
+ }
+}
bool wxWindow::OnClose(void)
{
return TRUE;
-};
+}
void wxWindow::AddChild( wxWindow *child )
{
child->m_x, child->m_y );
gtk_widget_set_usize( child->m_widget, child->m_width, child->m_height );
-};
+}
wxList *wxWindow::GetChildren(void)
{
return (&m_children);
-};
+}
void wxWindow::RemoveChild( wxWindow *child )
{
if (GetChildren())
GetChildren()->DeleteObject( child );
child->m_parent = NULL;
-};
+}
void wxWindow::SetReturnCode( int retCode )
{
m_retCode = retCode;
-};
+}
int wxWindow::GetReturnCode(void)
{
return m_retCode;
-};
+}
wxWindow *wxWindow::GetParent(void)
{
return m_parent;
-};
+}
+
+void wxWindow::Raise(void)
+{
+ if (m_widget) gdk_window_raise( m_widget->window );
+}
+
+void wxWindow::Lower(void)
+{
+ if (m_widget) gdk_window_lower( m_widget->window );
+}
wxEvtHandler *wxWindow::GetEventHandler(void)
{
return m_eventHandler;
-};
+}
void wxWindow::SetEventhandler( wxEvtHandler *handler )
{
m_eventHandler = handler;
-};
+}
wxValidator *wxWindow::GetValidator(void)
{
return m_windowValidator;
-};
+}
void wxWindow::SetValidator( wxValidator *validator )
{
m_windowValidator = validator;
-};
+}
bool wxWindow::IsBeingDeleted(void)
{
return FALSE;
-};
+}
void wxWindow::SetId( wxWindowID id )
{
m_windowId = id;
-};
+}
wxWindowID wxWindow::GetId(void)
{
return m_windowId;
-};
+}
void wxWindow::SetCursor( const wxCursor &cursor )
{
gdk_window_set_cursor( m_widget->window, m_cursor->GetCursor() );
if (m_wxwindow && m_wxwindow->window)
gdk_window_set_cursor( m_wxwindow->window, m_cursor->GetCursor() );
-};
+}
void wxWindow::Refresh( bool eraseBackground, const wxRect *rect )
{
rect->height );
else
Clear();
- };
+ }
if (!rect)
{
if (m_wxwindow)
gdk_rect.width = w;
gdk_rect.height = h;
gtk_widget_draw( m_wxwindow, &gdk_rect );
- };
+ }
}
else
{
gtk_widget_draw( m_wxwindow, &gdk_rect );
else
gtk_widget_draw( m_widget, &gdk_rect );
- };
-};
+ }
+}
bool wxWindow::IsExposed( long x, long y )
{
return (m_updateRegion.Contains( x, y ) != wxOutRegion );
-};
+}
bool wxWindow::IsExposed( long x, long y, long width, long height )
{
return (m_updateRegion.Contains( x, y, width, height ) != wxOutRegion );
-};
+}
void wxWindow::Clear(void)
{
if (m_wxwindow && m_wxwindow->window) gdk_window_clear( m_wxwindow->window );
-};
+}
wxColour wxWindow::GetBackgroundColour(void) const
{
return m_backgroundColour;
-};
+}
void wxWindow::SetBackgroundColour( const wxColour &colour )
{
m_backgroundColour.CalcPixel( m_wxwindow->style->colormap );
gdk_window_set_background( m_wxwindow->window, m_backgroundColour.GetColor() );
gdk_window_clear( m_wxwindow->window );
- };
+ }
// do something ?
-};
+}
bool wxWindow::Validate(void)
{
if (child->GetValidator() && /* child->GetValidator()->Ok() && */ !child->GetValidator()->Validate(this))
{ return FALSE; }
node = node->Next();
- };
+ }
return TRUE;
-};
+}
bool wxWindow::TransferDataToWindow(void)
{
{
wxMessageBox( _("Application Error"), _("Could not transfer data to window"), wxOK|wxICON_EXCLAMATION );
return FALSE;
- };
+ }
node = node->Next();
- };
+ }
return TRUE;
-};
+}
bool wxWindow::TransferDataFromWindow(void)
{
node = node->Next();
}
return TRUE;
-};
+}
void wxWindow::OnInitDialog( wxInitDialogEvent &WXUNUSED(event) )
{
TransferDataToWindow();
-};
+}
void wxWindow::InitDialog(void)
{
wxInitDialogEvent event(GetId());
event.SetEventObject( this );
GetEventHandler()->ProcessEvent(event);
-};
+}
static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
{
if (menuitem->IsSubMenu())
SetInvokingWindow( menuitem->GetSubMenu(), win );
node = node->Next();
- };
-};
+ }
+}
bool wxWindow::PopupMenu( wxMenu *menu, int WXUNUSED(x), int WXUNUSED(y) )
{
m_pDropTarget->UnregisterWidget( dnd_widget );
delete m_pDropTarget;
- };
+ }
m_pDropTarget = dropTarget;
if (m_pDropTarget)
{
gtk_signal_connect( GTK_OBJECT(dnd_widget), "drop_data_available_event",
GTK_SIGNAL_FUNC(gtk_window_drop_callback), (gpointer)this );
- };
-};
+ }
+}
wxDropTarget *wxWindow::GetDropTarget() const
{
return m_pDropTarget;
-};
+}
GtkWidget* wxWindow::GetConnectWidget(void)
{
GtkStyle *style = gtk_style_new();
...
*/
-};
+}
wxFont *wxWindow::GetFont(void)
{
return &m_font;
-};
+}
void wxWindow::SetWindowStyleFlag( long flag )
{
m_windowStyle = flag;
-};
+}
long wxWindow::GetWindowStyleFlag(void) const
{
return m_windowStyle;
-};
+}
void wxWindow::CaptureMouse(void)
{
GDK_BUTTON_RELEASE_MASK |
GDK_POINTER_MOTION_MASK),
NULL, NULL, GDK_CURRENT_TIME );
-};
+}
void wxWindow::ReleaseMouse(void)
{
GtkWidget *connect_widget = GetConnectWidget();
gtk_grab_remove( connect_widget );
gdk_pointer_ungrab ( GDK_CURRENT_TIME );
-};
+}
void wxWindow::SetTitle( const wxString &WXUNUSED(title) )
{
-};
+}
wxString wxWindow::GetTitle(void) const
{
return (wxString&)m_windowName;
-};
+}
wxString wxWindow::GetLabel(void) const
{
return GetTitle();
-};
+}
void wxWindow::SetName( const wxString &name )
{
m_windowName = name;
-};
+}
wxString wxWindow::GetName(void) const
{
return (wxString&)m_windowName;
-};
+}
bool wxWindow::IsShown(void) const
{
return m_isShown;
-};
+}
bool wxWindow::IsRetained(void)
{
return FALSE;
-};
+}
wxWindow *wxWindow::FindWindow( long id )
{
wxWindow *res = child->FindWindow( id );
if (res) return res;
node = node->Next();
- };
+ }
return NULL;
-};
+}
wxWindow *wxWindow::FindWindow( const wxString& name )
{
wxWindow *res = child->FindWindow( name );
if (res) return res;
node = node->Next();
- };
+ }
return NULL;
-};
+}
void wxWindow::SetScrollbar( int orient, int pos, int thumbVisible,
int range, bool WXUNUSED(refresh) )
m_vAdjust->step_increment = 1.0;
m_vAdjust->page_increment = (float)(wxMax(fthumb-2,0));
m_vAdjust->page_size = fthumb;
- };
+ }
if (m_wxwindow->window)
{
}
gtk_widget_set_usize( m_widget, m_width, m_height );
- };
-};
+ }
+}
void wxWindow::SetScrollPos( int orient, int pos, bool WXUNUSED(refresh) )
{
m_oldVerticalPos = fpos;
if (fabs(fpos-m_vAdjust->value) < 0.2) return;
m_vAdjust->value = fpos;
- };
+ }
if (m_wxwindow->window)
{
gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "value_changed" );
else
gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "value_changed" );
- };
-};
+ }
+}
int wxWindow::GetScrollThumb( int orient ) const
{
return (int)(m_hAdjust->page_size+0.5);
else
return (int)(m_vAdjust->page_size+0.5);
-};
+}
int wxWindow::GetScrollPos( int orient ) const
{
return (int)(m_hAdjust->value+0.5);
else
return (int)(m_vAdjust->value+0.5);
-};
+}
int wxWindow::GetScrollRange( int orient ) const
{
return (int)(m_hAdjust->upper+0.5);
else
return (int)(m_vAdjust->upper+0.5);
-};
+}
void wxWindow::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
{
{
Refresh();
return;
- };
+ }
int s_x = 0;
int s_y = 0;
if (dx < 0) s_x = -dx;
Refresh( TRUE, &rect );
*/
-};
+}
void wxWindow::GetDrawingOffset( long *x, long *y )
{
if (x) *x = m_drawingOffsetX;
if (y) *y = m_drawingOffsetY;
-};
+}
//-------------------------------------------------------------------------------------
// Layout
wxLayoutConstraints *wxWindow::GetConstraints(void) const
{
return m_constraints;
-};
+}
void wxWindow::SetConstraints( wxLayoutConstraints *constraints )
{
void wxWindow::SetAutoLayout( bool autoLayout )
{
m_autoLayout = autoLayout;
-};
+}
bool wxWindow::GetAutoLayout(void) const
{
return m_autoLayout;
-};
+}
wxSizer *wxWindow::GetSizer(void) const
{
return m_windowSizer;
-};
+}
void wxWindow::SetSizerParent( wxWindow *win )
{
m_sizerParent = win;
-};
+}
wxWindow *wxWindow::GetSizerParent(void) const
{
return m_sizerParent;
-};
+}
// This removes any dangling pointers to this window
// in other windows' constraintsInvolvedIn lists.
#include "wx/toolbar.h"
#include "wx/statusbr.h"
#include "wx/mdi.h"
+#include "wx/dcclient.h"
#include "wx/gtk/win_gtk.h"
const wxMENU_HEIGHT = 28;
*/
win->GtkOnSize( alloc->x, alloc->y, alloc->width, alloc->height );
-};
+}
//-----------------------------------------------------------------------------
// delete
win->Close();
return TRUE;
-};
+}
//-----------------------------------------------------------------------------
// configure
win->m_y = event->y;
return FALSE;
-};
+}
//-----------------------------------------------------------------------------
m_wxwindow = NULL;
m_mainWindow = NULL;
wxTopLevelWindows.Insert( this );
-};
+}
wxFrame::wxFrame( wxWindow *parent, wxWindowID id, const wxString &title,
const wxPoint &pos, const wxSize &size,
m_mainWindow = NULL;
Create( parent, id, title, pos, size, style, name );
wxTopLevelWindows.Insert( this );
-};
+}
bool wxFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title,
const wxPoint &pos, const wxSize &size,
gtk_widget_realize( m_mainWindow );
return TRUE;
-};
+}
wxFrame::~wxFrame()
{
wxTopLevelWindows.DeleteObject( this );
if (wxTopLevelWindows.Number() == 0) wxTheApp->ExitMainLoop();
-};
+}
bool wxFrame::Show( bool show )
{
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
m_sizeSet = FALSE;
ProcessEvent( event );
- };
+ }
return wxWindow::Show( show );
-};
+}
void wxFrame::Enable( bool enable )
{
wxWindow::Enable( enable );
gtk_widget_set_sensitive( m_mainWindow, enable );
-};
+}
void wxFrame::OnCloseWindow( wxCloseEvent &event )
{
{
this->Destroy();
}
-};
+}
bool wxFrame::Destroy()
{
m_frameToolBar->GetSize( NULL, &y );
(*height) -= y;
}
- };
-};
+ }
+}
void wxFrame::SetClientSize( int const width, int const height )
{
h += y;
}
wxWindow::SetClientSize( width, h );
-};
+}
void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height )
{
{
main_y = wxMENU_HEIGHT;
main_height -= wxMENU_HEIGHT;
- };
+ }
int toolbar_height = 0;
if (m_frameToolBar) m_frameToolBar->GetSize( NULL, &toolbar_height );
{
gtk_myfixed_move( GTK_MYFIXED(m_mainWindow), m_frameMenuBar->m_widget, 1, 1 );
gtk_widget_set_usize( m_frameMenuBar->m_widget, width-2, wxMENU_HEIGHT-2 );
- };
+ }
if (m_frameToolBar)
{
gtk_myfixed_move( GTK_MYFIXED(m_mainWindow), m_frameToolBar->m_widget, 1, wxMENU_HEIGHT );
gtk_widget_set_usize( m_frameToolBar->m_widget, width-2, toolbar_height );
- };
+ }
if (m_frameStatusBar)
{
m_frameStatusBar->SetSize( 0, main_height-wxSTATUS_HEIGHT, width, wxSTATUS_HEIGHT );
- };
+ }
m_sizeSet = TRUE;
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
event.SetEventObject( this );
ProcessEvent( event );
-};
+}
void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
{
return;
child = win;
- };
- };
+ }
+ }
// yes: set it's size to fill all the frame
int client_x, client_y;
GetClientSize(&client_x, &client_y);
child->SetSize( 1, 1, client_x-2, client_y);
}
-};
+}
void wxFrame::AddChild( wxWindow *child )
{
gtk_widget_set_usize( child->m_widget, child->m_width, child->m_height );
}
-};
+}
static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
{
if (menuitem->IsSubMenu())
SetInvokingWindow( menuitem->GetSubMenu(), win );
node = node->Next();
- };
-};
+ }
+}
void wxFrame::SetMenuBar( wxMenuBar *menuBar )
{
wxMenu *menu = (wxMenu*)node->Data();
SetInvokingWindow( menu, this );
node = node->Next();
- };
+ }
if (m_frameMenuBar->m_parent != this)
{
m_frameMenuBar->m_widget, m_frameMenuBar->m_x, m_frameMenuBar->m_y );
}
}
-};
+}
-wxMenuBar *wxFrame::GetMenuBar(void)
+wxMenuBar *wxFrame::GetMenuBar(void) const
{
return m_frameMenuBar;
-};
+}
-wxToolBar *wxFrame::CreateToolBar( long style , wxWindowID id, const wxString& name )
+wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name)
{
+ wxCHECK_MSG( m_frameToolBar == NULL, FALSE, "recreating toolbar in wxFrame" );
+
m_addPrivateChild = TRUE;
-
- m_frameToolBar = new wxToolBar( this, id, wxDefaultPosition, wxDefaultSize, style, name );
-
+ m_frameToolBar = OnCreateToolBar( style, id, name );
m_addPrivateChild = FALSE;
return m_frameToolBar;
-};
+}
-wxToolBar *wxFrame::GetToolBar(void)
+wxToolBar* wxFrame::OnCreateToolBar( long style, wxWindowID id, const wxString& name )
{
- return m_frameToolBar;
-};
+ return new wxToolBar( this, id, wxDefaultPosition, wxDefaultSize, style, name );
+}
+
+wxToolBar *wxFrame::GetToolBar(void) const
+{
+ return m_frameToolBar;
+}
wxStatusBar* wxFrame::CreateStatusBar( int number, long style, wxWindowID id, const wxString& name )
{
- if (m_frameStatusBar)
- delete m_frameStatusBar;
-
- m_frameStatusBar = new wxStatusBar( this, id, wxPoint(0,0), wxSize(100,20), style, name );
+ wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, "recreating status bar in wxFrame" );
- m_frameStatusBar->SetFieldsCount( number );
+ m_frameStatusBar = OnCreateStatusBar( number, style, id, name );
return m_frameStatusBar;
-};
+}
+
+wxStatusBar *wxFrame::OnCreateStatusBar( int number, long style, wxWindowID id, const wxString& name )
+{
+ wxStatusBar *statusBar = NULL;
+
+ statusBar = new wxStatusBar(this, id, wxPoint(0, 0), wxSize(100, 20), style, name);
+
+ // Set the height according to the font and the border size
+ wxClientDC dc(statusBar);
+ dc.SetFont( *statusBar->GetFont() );
+
+ long x, y;
+ dc.GetTextExtent( "X", &x, &y );
+
+ int height = (int)( (y * 1.1) + 2* statusBar->GetBorderY());
+
+ statusBar->SetSize( -1, -1, 100, height );
+
+ statusBar->SetFieldsCount( number );
+ return statusBar;
+}
-void wxFrame::SetStatusText( const wxString &text, int number )
+void wxFrame::SetStatusText(const wxString& text, int number)
{
- if (m_frameStatusBar) m_frameStatusBar->SetStatusText( text, number );
-};
+ wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set text for" );
-void wxFrame::SetStatusWidths( int n, int *width )
+ m_frameStatusBar->SetStatusText(text, number);
+}
+
+void wxFrame::SetStatusWidths(int n, const int widths_field[] )
{
- if (m_frameStatusBar) m_frameStatusBar->SetStatusWidths( n, width );
-};
+ wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set widths for" );
+
+ m_frameStatusBar->SetStatusWidths(n, widths_field);
+}
-wxStatusBar *wxFrame::GetStatusBar(void)
+wxStatusBar *wxFrame::GetStatusBar(void) const
{
return m_frameStatusBar;
-};
+}
void wxFrame::SetTitle( const wxString &title )
{
m_title = title;
+ if (m_title.IsNull()) m_title = "";
gtk_window_set_title( GTK_WINDOW(m_widget), title );
-};
+}
void wxFrame::SetSizeHints(int minW, int minH, int maxW, int maxH, int WXUNUSED(incW) )
{
win->ProcessEvent( event );
win->m_updateRegion.Clear();
-};
+}
//-----------------------------------------------------------------------------
// draw (of m_wxwindow, not of m_widget)
win->ProcessEvent( event );
win->m_updateRegion.Clear();
-};
+}
//-----------------------------------------------------------------------------
// size
(win->m_height == alloc->height))
{
return;
- };
+ }
printf( "OnResize from " );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
wxSizeEvent event( wxSize( alloc->width, alloc->height), win->GetId() );
event.SetEventObject( win );
win->ProcessEvent( event );
-};
+}
*/
//-----------------------------------------------------------------------------
{
if ((gdk_event->keyval >= 0x20) && (gdk_event->keyval <= 0xFF))
key_code = gdk_event->keyval;
- };
- };
+ }
+ }
if (!key_code) return FALSE;
if (ret) printf( "found.\n") ;
*/
return ret;
-};
+}
//-----------------------------------------------------------------------------
// button_press
printf( ".\n" );
*/
- };
- };
+ }
+ }
if (!win->HasVMT()) return TRUE;
case GDK_BUTTON_PRESS: event_type = wxEVT_LEFT_DOWN; break;
case GDK_2BUTTON_PRESS: event_type = wxEVT_LEFT_DCLICK; break;
default: break;
- };
+ }
}
else if (gdk_event->button == 2)
{
case GDK_BUTTON_PRESS: event_type = wxEVT_MIDDLE_DOWN; break;
case GDK_2BUTTON_PRESS: event_type = wxEVT_MIDDLE_DCLICK; break;
default: break;
- };
+ }
}
else if (gdk_event->button == 3)
{
case GDK_BUTTON_PRESS: event_type = wxEVT_RIGHT_DOWN; break;
case GDK_2BUTTON_PRESS: event_type = wxEVT_RIGHT_DCLICK; break;
default: break;
- };
- };
+ }
+ }
wxMouseEvent event( event_type );
event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK);
win->ProcessEvent( event );
return TRUE;
-};
+}
//-----------------------------------------------------------------------------
// button_release
case 1: event_type = wxEVT_LEFT_UP; break;
case 2: event_type = wxEVT_MIDDLE_UP; break;
case 3: event_type = wxEVT_RIGHT_UP; break;
- };
+ }
wxMouseEvent event( event_type );
event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK);
win->ProcessEvent( event );
return TRUE;
-};
+}
//-----------------------------------------------------------------------------
// motion_notify
win->ProcessEvent( event );
return TRUE;
-};
+}
//-----------------------------------------------------------------------------
// focus_in
printf( win->GetClassInfo()->GetClassName() );
printf( ".\n" );
*/
- };
- };
+ }
+ }
if (!win->HasVMT()) return TRUE;
win->ProcessEvent( event );
return TRUE;
-};
+}
//-----------------------------------------------------------------------------
// focus out
{
if (GTK_WIDGET_CAN_FOCUS(win->m_wxwindow))
GTK_WIDGET_UNSET_FLAGS (win->m_wxwindow, GTK_HAS_FOCUS);
- };
+ }
if (!win->HasVMT()) return TRUE;
win->ProcessEvent( event );
return TRUE;
-};
+}
//-----------------------------------------------------------------------------
// vertical scroll
wxScrollEvent event( command, win->GetId(), value, wxVERTICAL );
event.SetEventObject( win );
win->ProcessEvent( event );
-};
+}
//-----------------------------------------------------------------------------
// horizontal scroll
wxScrollEvent event( command, win->GetId(), value, wxHORIZONTAL );
event.SetEventObject( win );
win->ProcessEvent( event );
-};
+}
//-----------------------------------------------------------------------------
// vertical scroll change
wxScrollEvent event( command, win->GetId(), value, wxVERTICAL );
event.SetEventObject( win );
win->ProcessEvent( event );
-};
+}
//-----------------------------------------------------------------------------
// horizontal scroll change
wxScrollEvent event( command, win->GetId(), value, wxHORIZONTAL );
event.SetEventObject( win );
win->ProcessEvent( event );
-};
+}
//-----------------------------------------------------------------------------
// drop
int y = 0;
gdk_window_get_pointer( widget->window, &x, &y, NULL );
win->GetDropTarget()->Drop( event, x, y );
- };
+ }
/*
g_free (event->dropdataavailable.data);
printf( " Robert Roebling.\n" );
return FALSE;
-};
+}
//-----------------------------------------------------------------------------
// enter
wxMouseEvent event( wxEVT_ENTER_WINDOW );
event.SetEventObject( win );
return win->ProcessEvent( event );
-};
+}
//-----------------------------------------------------------------------------
// leave
wxMouseEvent event( wxEVT_LEAVE_WINDOW );
event.SetEventObject( win );
return win->ProcessEvent( event );
-};
+}
//-----------------------------------------------------------------------------
// wxWindow implementation
m_drawingOffsetY = 0;
m_pDropTarget = NULL;
m_resizing = FALSE;
-};
+}
wxWindow::wxWindow( wxWindow *parent, wxWindowID id,
const wxPoint &pos, const wxSize &size,
{
m_cursor = NULL;
Create( parent, id, pos, size, style, name );
-};
+}
bool wxWindow::Create( wxWindow *parent, wxWindowID id,
const wxPoint &pos, const wxSize &size,
else
{
gtk_viewport_set_shadow_type( viewport, GTK_SHADOW_NONE );
- };
+ }
m_wxwindow = gtk_myfixed_new();
Show( TRUE );
return TRUE;
-};
+}
wxWindow::~wxWindow(void)
{
// class
wxTopLevelWindows.DeleteObject(this);
-};
+}
void wxWindow::PreCreation( wxWindow *parent, wxWindowID id,
const wxPoint &pos, const wxSize &size,
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "draw",
GTK_SIGNAL_FUNC(gtk_window_draw_callback), (gpointer)this );
- };
+ }
/*
gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "leave_notify_event",
GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this );
- };
+ }
/*
// Does destroy ever get called ?
{
gtk_signal_connect( GTK_OBJECT(m_wxwindow), "destroy_event",
GTK_SIGNAL_FUNC(gtk_window_destroy_callback), (gpointer)this );
- };
+ }
*/
if (m_widget && m_parent) gtk_widget_realize( m_widget );
SetCursor( wxSTANDARD_CURSOR );
m_hasVMT = TRUE;
-};
+}
bool wxWindow::HasVMT(void)
{
return m_hasVMT;
-};
+}
bool wxWindow::Close( bool force )
{
event.SetForce(force);
return GetEventHandler()->ProcessEvent(event);
-};
+}
bool wxWindow::Destroy(void)
{
m_hasVMT = FALSE;
delete this;
return TRUE;
-};
+}
bool wxWindow::DestroyChildren(void)
{
{
delete child;
if (GetChildren()->Member(child)) delete node;
- };
- };
- };
+ }
+ }
+ }
return TRUE;
-};
+}
void wxWindow::PrepareDC( wxDC &WXUNUSED(dc) )
{
// are we to set fonts here ?
-};
+}
void wxWindow::ImplementSetSize(void)
{
gtk_widget_set_usize( m_widget, m_width, m_height );
-};
+}
void wxWindow::ImplementSetPosition(void)
{
gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), m_widget, m_x, m_y );
// Don't do anything for children of wxNotebook and wxMDIChildFrame
-};
+}
void wxWindow::SetSize( int x, int y, int width, int height, int sizeFlags )
{
if (newY == -1) newY = m_y;
if (newW == -1) newW = m_width;
if (newH == -1) newH = m_height;
- };
+ }
if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH)
{
if (newW == -1) newW = 80;
- };
+ }
if ((sizeFlags & wxSIZE_AUTO_HEIGHT) == wxSIZE_AUTO_HEIGHT)
{
if (newH == -1) newH = 26;
- };
+ }
if ((m_x != newX) || (m_y != newY) || (!m_sizeSet))
{
m_x = newX;
m_y = newY;
ImplementSetPosition();
- };
+ }
if ((m_width != newW) || (m_height != newH) || (!m_sizeSet))
{
m_width = newW;
m_height = newH;
ImplementSetSize();
- };
+ }
m_sizeSet = TRUE;
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
ProcessEvent( event );
m_resizing = FALSE;
-};
+}
void wxWindow::SetSize( int width, int height )
{
SetSize( -1, -1, width, height, wxSIZE_USE_EXISTING );
-};
+}
void wxWindow::Move( int x, int y )
{
SetSize( x, y, -1, -1, wxSIZE_USE_EXISTING );
-};
+}
void wxWindow::GetSize( int *width, int *height ) const
{
if (width) (*width) = m_width;
if (height) (*height) = m_height;
-};
+}
void wxWindow::SetClientSize( int width, int height )
{
{
dw += 2 * viewport_class->xthickness;
dh += 2 * viewport_class->ythickness;
- };
+ }
if (GTK_WIDGET_VISIBLE(vscrollbar))
{
dw += vscrollbar->allocation.width;
dw += scroll_class->scrollbar_spacing;
- };
+ }
if (GTK_WIDGET_VISIBLE(hscrollbar))
{
dh += hscrollbar->allocation.height;
dw += scroll_class->scrollbar_spacing;
- };
- };
+ }
+ }
SetSize( width+dw, height+dh );
- };
-};
+ }
+}
void wxWindow::GetClientSize( int *width, int *height ) const
{
{
dw += 2 * viewport_class->xthickness;
dh += 2 * viewport_class->ythickness;
- };
+ }
if (GTK_WIDGET_VISIBLE(vscrollbar))
{
// dw += vscrollbar->allocation.width;
dw += 15; // range.slider_width = 11 + 2*2pts edge
dw += scroll_class->scrollbar_spacing;
- };
+ }
if (GTK_WIDGET_VISIBLE(hscrollbar))
{
// dh += hscrollbar->allocation.height;
dh += 15;
dh += scroll_class->scrollbar_spacing;
- };
- };
+ }
+ }
if (width) (*width) = m_width - dw;
if (height) (*height) = m_height - dh;
- };
-};
+ }
+}
void wxWindow::GetPosition( int *x, int *y ) const
{
if (x) (*x) = m_x;
if (y) (*y) = m_y;
-};
+}
void wxWindow::ClientToScreen( int *x, int *y )
{
{
org_x += m_widget->allocation.x;
org_y += m_widget->allocation.y;
- };
- };
+ }
+ }
if (x) *x += org_x;
if (y) *y += org_y;
-};
+}
void wxWindow::ScreenToClient( int *x, int *y )
{
{
org_x += m_widget->allocation.x;
org_y += m_widget->allocation.y;
- };
- };
+ }
+ }
if (x) *x -= org_x;
if (y) *y -= org_y;
-};
+}
void wxWindow::Centre( int direction )
{
if (direction & wxHORIZONTAL == wxHORIZONTAL) m_x = (p_w - m_width) / 2;
if (direction & wxVERTICAL == wxVERTICAL) m_y = (p_h - m_height) / 2;
ImplementSetPosition();
- };
+ }
}
-};
+}
void wxWindow::Fit(void)
{
node = node->Next();
}
SetClientSize(maxX + 5, maxY + 10);
-};
+}
void wxWindow::OnSize( wxSizeEvent &WXUNUSED(event) )
{
//if (GetAutoLayout()) Layout();
-};
+}
bool wxWindow::Show( bool show )
{
gtk_widget_hide( m_widget );
m_isShown = show;
return TRUE;
-};
+}
void wxWindow::Enable( bool enable )
{
m_isEnabled = enable;
gtk_widget_set_sensitive( m_widget, enable );
if (m_wxwindow) gtk_widget_set_sensitive( m_wxwindow, enable );
-};
+}
void wxWindow::MakeModal( bool modal )
{
if (GTK_WIDGET_CAN_FOCUS(connect_widget) && !GTK_WIDGET_HAS_FOCUS (connect_widget) )
{
gtk_widget_grab_focus (connect_widget);
- };
- };
-};
+ }
+ }
+}
bool wxWindow::OnClose(void)
{
return TRUE;
-};
+}
void wxWindow::AddChild( wxWindow *child )
{
child->m_x, child->m_y );
gtk_widget_set_usize( child->m_widget, child->m_width, child->m_height );
-};
+}
wxList *wxWindow::GetChildren(void)
{
return (&m_children);
-};
+}
void wxWindow::RemoveChild( wxWindow *child )
{
if (GetChildren())
GetChildren()->DeleteObject( child );
child->m_parent = NULL;
-};
+}
void wxWindow::SetReturnCode( int retCode )
{
m_retCode = retCode;
-};
+}
int wxWindow::GetReturnCode(void)
{
return m_retCode;
-};
+}
wxWindow *wxWindow::GetParent(void)
{
return m_parent;
-};
+}
+
+void wxWindow::Raise(void)
+{
+ if (m_widget) gdk_window_raise( m_widget->window );
+}
+
+void wxWindow::Lower(void)
+{
+ if (m_widget) gdk_window_lower( m_widget->window );
+}
wxEvtHandler *wxWindow::GetEventHandler(void)
{
return m_eventHandler;
-};
+}
void wxWindow::SetEventhandler( wxEvtHandler *handler )
{
m_eventHandler = handler;
-};
+}
wxValidator *wxWindow::GetValidator(void)
{
return m_windowValidator;
-};
+}
void wxWindow::SetValidator( wxValidator *validator )
{
m_windowValidator = validator;
-};
+}
bool wxWindow::IsBeingDeleted(void)
{
return FALSE;
-};
+}
void wxWindow::SetId( wxWindowID id )
{
m_windowId = id;
-};
+}
wxWindowID wxWindow::GetId(void)
{
return m_windowId;
-};
+}
void wxWindow::SetCursor( const wxCursor &cursor )
{
gdk_window_set_cursor( m_widget->window, m_cursor->GetCursor() );
if (m_wxwindow && m_wxwindow->window)
gdk_window_set_cursor( m_wxwindow->window, m_cursor->GetCursor() );
-};
+}
void wxWindow::Refresh( bool eraseBackground, const wxRect *rect )
{
rect->height );
else
Clear();
- };
+ }
if (!rect)
{
if (m_wxwindow)
gdk_rect.width = w;
gdk_rect.height = h;
gtk_widget_draw( m_wxwindow, &gdk_rect );
- };
+ }
}
else
{
gtk_widget_draw( m_wxwindow, &gdk_rect );
else
gtk_widget_draw( m_widget, &gdk_rect );
- };
-};
+ }
+}
bool wxWindow::IsExposed( long x, long y )
{
return (m_updateRegion.Contains( x, y ) != wxOutRegion );
-};
+}
bool wxWindow::IsExposed( long x, long y, long width, long height )
{
return (m_updateRegion.Contains( x, y, width, height ) != wxOutRegion );
-};
+}
void wxWindow::Clear(void)
{
if (m_wxwindow && m_wxwindow->window) gdk_window_clear( m_wxwindow->window );
-};
+}
wxColour wxWindow::GetBackgroundColour(void) const
{
return m_backgroundColour;
-};
+}
void wxWindow::SetBackgroundColour( const wxColour &colour )
{
m_backgroundColour.CalcPixel( m_wxwindow->style->colormap );
gdk_window_set_background( m_wxwindow->window, m_backgroundColour.GetColor() );
gdk_window_clear( m_wxwindow->window );
- };
+ }
// do something ?
-};
+}
bool wxWindow::Validate(void)
{
if (child->GetValidator() && /* child->GetValidator()->Ok() && */ !child->GetValidator()->Validate(this))
{ return FALSE; }
node = node->Next();
- };
+ }
return TRUE;
-};
+}
bool wxWindow::TransferDataToWindow(void)
{
{
wxMessageBox( _("Application Error"), _("Could not transfer data to window"), wxOK|wxICON_EXCLAMATION );
return FALSE;
- };
+ }
node = node->Next();
- };
+ }
return TRUE;
-};
+}
bool wxWindow::TransferDataFromWindow(void)
{
node = node->Next();
}
return TRUE;
-};
+}
void wxWindow::OnInitDialog( wxInitDialogEvent &WXUNUSED(event) )
{
TransferDataToWindow();
-};
+}
void wxWindow::InitDialog(void)
{
wxInitDialogEvent event(GetId());
event.SetEventObject( this );
GetEventHandler()->ProcessEvent(event);
-};
+}
static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
{
if (menuitem->IsSubMenu())
SetInvokingWindow( menuitem->GetSubMenu(), win );
node = node->Next();
- };
-};
+ }
+}
bool wxWindow::PopupMenu( wxMenu *menu, int WXUNUSED(x), int WXUNUSED(y) )
{
m_pDropTarget->UnregisterWidget( dnd_widget );
delete m_pDropTarget;
- };
+ }
m_pDropTarget = dropTarget;
if (m_pDropTarget)
{
gtk_signal_connect( GTK_OBJECT(dnd_widget), "drop_data_available_event",
GTK_SIGNAL_FUNC(gtk_window_drop_callback), (gpointer)this );
- };
-};
+ }
+}
wxDropTarget *wxWindow::GetDropTarget() const
{
return m_pDropTarget;
-};
+}
GtkWidget* wxWindow::GetConnectWidget(void)
{
GtkStyle *style = gtk_style_new();
...
*/
-};
+}
wxFont *wxWindow::GetFont(void)
{
return &m_font;
-};
+}
void wxWindow::SetWindowStyleFlag( long flag )
{
m_windowStyle = flag;
-};
+}
long wxWindow::GetWindowStyleFlag(void) const
{
return m_windowStyle;
-};
+}
void wxWindow::CaptureMouse(void)
{
GDK_BUTTON_RELEASE_MASK |
GDK_POINTER_MOTION_MASK),
NULL, NULL, GDK_CURRENT_TIME );
-};
+}
void wxWindow::ReleaseMouse(void)
{
GtkWidget *connect_widget = GetConnectWidget();
gtk_grab_remove( connect_widget );
gdk_pointer_ungrab ( GDK_CURRENT_TIME );
-};
+}
void wxWindow::SetTitle( const wxString &WXUNUSED(title) )
{
-};
+}
wxString wxWindow::GetTitle(void) const
{
return (wxString&)m_windowName;
-};
+}
wxString wxWindow::GetLabel(void) const
{
return GetTitle();
-};
+}
void wxWindow::SetName( const wxString &name )
{
m_windowName = name;
-};
+}
wxString wxWindow::GetName(void) const
{
return (wxString&)m_windowName;
-};
+}
bool wxWindow::IsShown(void) const
{
return m_isShown;
-};
+}
bool wxWindow::IsRetained(void)
{
return FALSE;
-};
+}
wxWindow *wxWindow::FindWindow( long id )
{
wxWindow *res = child->FindWindow( id );
if (res) return res;
node = node->Next();
- };
+ }
return NULL;
-};
+}
wxWindow *wxWindow::FindWindow( const wxString& name )
{
wxWindow *res = child->FindWindow( name );
if (res) return res;
node = node->Next();
- };
+ }
return NULL;
-};
+}
void wxWindow::SetScrollbar( int orient, int pos, int thumbVisible,
int range, bool WXUNUSED(refresh) )
m_vAdjust->step_increment = 1.0;
m_vAdjust->page_increment = (float)(wxMax(fthumb-2,0));
m_vAdjust->page_size = fthumb;
- };
+ }
if (m_wxwindow->window)
{
}
gtk_widget_set_usize( m_widget, m_width, m_height );
- };
-};
+ }
+}
void wxWindow::SetScrollPos( int orient, int pos, bool WXUNUSED(refresh) )
{
m_oldVerticalPos = fpos;
if (fabs(fpos-m_vAdjust->value) < 0.2) return;
m_vAdjust->value = fpos;
- };
+ }
if (m_wxwindow->window)
{
gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "value_changed" );
else
gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "value_changed" );
- };
-};
+ }
+}
int wxWindow::GetScrollThumb( int orient ) const
{
return (int)(m_hAdjust->page_size+0.5);
else
return (int)(m_vAdjust->page_size+0.5);
-};
+}
int wxWindow::GetScrollPos( int orient ) const
{
return (int)(m_hAdjust->value+0.5);
else
return (int)(m_vAdjust->value+0.5);
-};
+}
int wxWindow::GetScrollRange( int orient ) const
{
return (int)(m_hAdjust->upper+0.5);
else
return (int)(m_vAdjust->upper+0.5);
-};
+}
void wxWindow::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
{
{
Refresh();
return;
- };
+ }
int s_x = 0;
int s_y = 0;
if (dx < 0) s_x = -dx;
Refresh( TRUE, &rect );
*/
-};
+}
void wxWindow::GetDrawingOffset( long *x, long *y )
{
if (x) *x = m_drawingOffsetX;
if (y) *y = m_drawingOffsetY;
-};
+}
//-------------------------------------------------------------------------------------
// Layout
wxLayoutConstraints *wxWindow::GetConstraints(void) const
{
return m_constraints;
-};
+}
void wxWindow::SetConstraints( wxLayoutConstraints *constraints )
{
void wxWindow::SetAutoLayout( bool autoLayout )
{
m_autoLayout = autoLayout;
-};
+}
bool wxWindow::GetAutoLayout(void) const
{
return m_autoLayout;
-};
+}
wxSizer *wxWindow::GetSizer(void) const
{
return m_windowSizer;
-};
+}
void wxWindow::SetSizerParent( wxWindow *win )
{
m_sizerParent = win;
-};
+}
wxWindow *wxWindow::GetSizerParent(void) const
{
return m_sizerParent;
-};
+}
// This removes any dangling pointers to this window
// in other windows' constraintsInvolvedIn lists.