X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/debe6624c1e9d4bf3243381153d1e173c849bcd8..246037e22990a4719c672c2e2a8b62b99cc4d49c:/src/gtk/window.cpp diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 26f5f1b989..d62e188723 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -5,7 +5,7 @@ // Created: 01/02/97 // Id: // Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -65,9 +65,9 @@ void gtk_window_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gd win->m_updateRegion.Union( gdk_event->area.x, gdk_event->area.y, - gdk_event->area.width, - gdk_event->area.height ); - + gdk_event->area.width, + gdk_event->area.height ); + if (gdk_event->count > 0) return; wxPaintEvent event( win->GetId() ); @@ -98,7 +98,7 @@ void gtk_window_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, */ win->m_updateRegion.Union( rect->x, rect->y, rect->width, rect->height ); - + wxPaintEvent event( win->GetId() ); event.SetEventObject( win ); win->ProcessEvent( event ); @@ -108,7 +108,9 @@ void gtk_window_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, //----------------------------------------------------------------------------- // size -// I don't any longer intercept GTK's internal resize events (except frames) +// I don't any longer intercept GTK's internal resize events, except +// for frames and from within MDI and tabbed windows (client area +// size determined internally by GTK, not wxWin). /* void gtk_window_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win ) @@ -163,74 +165,74 @@ gint gtk_window_key_press_callback( GtkWidget *WXUNUSED(widget), GdkEventKey *gd long key_code = 0; switch (gdk_event->keyval) { - case GDK_BackSpace: key_code = WXK_BACK; break; - case GDK_Tab: key_code = WXK_TAB; break; - case GDK_Linefeed: key_code = WXK_RETURN; break; - case GDK_Clear: key_code = WXK_CLEAR; break; - case GDK_Return: key_code = WXK_RETURN; break; - case GDK_Pause: key_code = WXK_PAUSE; break; - case GDK_Scroll_Lock: key_code = WXK_SCROLL; break; - case GDK_Escape: key_code = WXK_ESCAPE; break; - case GDK_Delete: key_code = WXK_DELETE; break; - case GDK_Home: key_code = WXK_HOME; break; - case GDK_Left: key_code = WXK_LEFT; break; - case GDK_Up: key_code = WXK_UP; break; - case GDK_Right: key_code = WXK_RIGHT; break; - case GDK_Down: key_code = WXK_DOWN; break; - case GDK_Prior: key_code = WXK_PRIOR; break; -// case GDK_Page_Up: key_code = WXK_PAGEUP; break; - case GDK_Next: key_code = WXK_NEXT; break; -// case GDK_Page_Down: key_code = WXK_PAGEDOWN; break; - case GDK_End: key_code = WXK_END; break; - case GDK_Begin: key_code = WXK_HOME; break; - case GDK_Select: key_code = WXK_SELECT; break; - case GDK_Print: key_code = WXK_PRINT; break; - case GDK_Execute: key_code = WXK_EXECUTE; break; - case GDK_Insert: key_code = WXK_INSERT; break; - case GDK_Num_Lock: key_code = WXK_NUMLOCK; break; - case GDK_KP_Tab: key_code = WXK_TAB; break; - case GDK_KP_Enter: key_code = WXK_RETURN; break; - case GDK_KP_Home: key_code = WXK_HOME; break; - case GDK_KP_Left: key_code = WXK_LEFT; break; - case GDK_KP_Up: key_code = WXK_UP; break; - case GDK_KP_Right: key_code = WXK_RIGHT; break; - case GDK_KP_Down: key_code = WXK_DOWN; break; - case GDK_KP_Prior: key_code = WXK_PRIOR; break; -// case GDK_KP_Page_Up: key_code = WXK_PAGEUP; break; - case GDK_KP_Next: key_code = WXK_NEXT; break; -// case GDK_KP_Page_Down: key_code = WXK_PAGEDOWN; break; - case GDK_KP_End: key_code = WXK_END; break; - case GDK_KP_Begin: key_code = WXK_HOME; break; - case GDK_KP_Insert: key_code = WXK_INSERT; break; - case GDK_KP_Delete: key_code = WXK_DELETE; break; - case GDK_KP_Multiply: key_code = WXK_MULTIPLY; break; - case GDK_KP_Add: key_code = WXK_ADD; break; - case GDK_KP_Separator: key_code = WXK_SEPARATOR; break; - case GDK_KP_Subtract: key_code = WXK_SUBTRACT; break; - case GDK_KP_Decimal: key_code = WXK_DECIMAL; break; - case GDK_KP_Divide: key_code = WXK_DIVIDE; break; - case GDK_KP_0: key_code = WXK_NUMPAD0; break; - case GDK_KP_1: key_code = WXK_NUMPAD1; break; - case GDK_KP_2: key_code = WXK_NUMPAD2; break; - case GDK_KP_3: key_code = WXK_NUMPAD3; break; - case GDK_KP_4: key_code = WXK_NUMPAD4; break; - case GDK_KP_5: key_code = WXK_NUMPAD5; break; - case GDK_KP_6: key_code = WXK_NUMPAD6; break; - case GDK_KP_7: key_code = WXK_NUMPAD7; break; - case GDK_KP_8: key_code = WXK_NUMPAD7; break; - case GDK_KP_9: key_code = WXK_NUMPAD9; break; - case GDK_F1: key_code = WXK_F1; break; - case GDK_F2: key_code = WXK_F2; break; - case GDK_F3: key_code = WXK_F3; break; - case GDK_F4: key_code = WXK_F4; break; - case GDK_F5: key_code = WXK_F5; break; - case GDK_F6: key_code = WXK_F6; break; - case GDK_F7: key_code = WXK_F7; break; - case GDK_F8: key_code = WXK_F8; break; - case GDK_F9: key_code = WXK_F9; break; - case GDK_F10: key_code = WXK_F10; break; - case GDK_F11: key_code = WXK_F11; break; - case GDK_F12: key_code = WXK_F12; break; + case GDK_BackSpace: key_code = WXK_BACK; break; + case GDK_Tab: key_code = WXK_TAB; break; + case GDK_Linefeed: key_code = WXK_RETURN; break; + case GDK_Clear: key_code = WXK_CLEAR; break; + case GDK_Return: key_code = WXK_RETURN; break; + case GDK_Pause: key_code = WXK_PAUSE; break; + case GDK_Scroll_Lock: key_code = WXK_SCROLL; break; + case GDK_Escape: key_code = WXK_ESCAPE; break; + case GDK_Delete: key_code = WXK_DELETE; break; + case GDK_Home: key_code = WXK_HOME; break; + case GDK_Left: key_code = WXK_LEFT; break; + case GDK_Up: key_code = WXK_UP; break; + case GDK_Right: key_code = WXK_RIGHT; break; + case GDK_Down: key_code = WXK_DOWN; break; + case GDK_Prior: key_code = WXK_PRIOR; break; +// case GDK_Page_Up: key_code = WXK_PAGEUP; break; + case GDK_Next: key_code = WXK_NEXT; break; +// case GDK_Page_Down: key_code = WXK_PAGEDOWN; break; + case GDK_End: key_code = WXK_END; break; + case GDK_Begin: key_code = WXK_HOME; break; + case GDK_Select: key_code = WXK_SELECT; break; + case GDK_Print: key_code = WXK_PRINT; break; + case GDK_Execute: key_code = WXK_EXECUTE; break; + case GDK_Insert: key_code = WXK_INSERT; break; + case GDK_Num_Lock: key_code = WXK_NUMLOCK; break; + case GDK_KP_Tab: key_code = WXK_TAB; break; + case GDK_KP_Enter: key_code = WXK_RETURN; break; + case GDK_KP_Home: key_code = WXK_HOME; break; + case GDK_KP_Left: key_code = WXK_LEFT; break; + case GDK_KP_Up: key_code = WXK_UP; break; + case GDK_KP_Right: key_code = WXK_RIGHT; break; + case GDK_KP_Down: key_code = WXK_DOWN; break; + case GDK_KP_Prior: key_code = WXK_PRIOR; break; +// case GDK_KP_Page_Up: key_code = WXK_PAGEUP; break; + case GDK_KP_Next: key_code = WXK_NEXT; break; +// case GDK_KP_Page_Down: key_code = WXK_PAGEDOWN; break; + case GDK_KP_End: key_code = WXK_END; break; + case GDK_KP_Begin: key_code = WXK_HOME; break; + case GDK_KP_Insert: key_code = WXK_INSERT; break; + case GDK_KP_Delete: key_code = WXK_DELETE; break; + case GDK_KP_Multiply: key_code = WXK_MULTIPLY; break; + case GDK_KP_Add: key_code = WXK_ADD; break; + case GDK_KP_Separator: key_code = WXK_SEPARATOR; break; + case GDK_KP_Subtract: key_code = WXK_SUBTRACT; break; + case GDK_KP_Decimal: key_code = WXK_DECIMAL; break; + case GDK_KP_Divide: key_code = WXK_DIVIDE; break; + case GDK_KP_0: key_code = WXK_NUMPAD0; break; + case GDK_KP_1: key_code = WXK_NUMPAD1; break; + case GDK_KP_2: key_code = WXK_NUMPAD2; break; + case GDK_KP_3: key_code = WXK_NUMPAD3; break; + case GDK_KP_4: key_code = WXK_NUMPAD4; break; + case GDK_KP_5: key_code = WXK_NUMPAD5; break; + case GDK_KP_6: key_code = WXK_NUMPAD6; break; + case GDK_KP_7: key_code = WXK_NUMPAD7; break; + case GDK_KP_8: key_code = WXK_NUMPAD7; break; + case GDK_KP_9: key_code = WXK_NUMPAD9; break; + case GDK_F1: key_code = WXK_F1; break; + case GDK_F2: key_code = WXK_F2; break; + case GDK_F3: key_code = WXK_F3; break; + case GDK_F4: key_code = WXK_F4; break; + case GDK_F5: key_code = WXK_F5; break; + case GDK_F6: key_code = WXK_F6; break; + case GDK_F7: key_code = WXK_F7; break; + case GDK_F8: key_code = WXK_F8; break; + case GDK_F9: key_code = WXK_F9; break; + case GDK_F10: key_code = WXK_F10; break; + case GDK_F11: key_code = WXK_F11; break; + case GDK_F12: key_code = WXK_F12; break; default: { if ((gdk_event->keyval >= 0x20) && (gdk_event->keyval <= 0xFF)) @@ -414,9 +416,9 @@ gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion *gdk_e //----------------------------------------------------------------------------- // focus_in -void gtk_window_focus_in_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxWindow *win ) +gint gtk_window_focus_in_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxWindow *win ) { - if (g_blockEventsOnDrag) return; + if (g_blockEventsOnDrag) return FALSE; if (win->m_wxwindow) { if (GTK_WIDGET_CAN_FOCUS(win->m_wxwindow)) @@ -431,7 +433,7 @@ void gtk_window_focus_in_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUS }; }; - if (!win->HasVMT()) return; + if (!win->HasVMT()) return FALSE; /* printf( "OnSetFocus from " ); @@ -444,22 +446,22 @@ void gtk_window_focus_in_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUS wxFocusEvent event( wxEVT_SET_FOCUS, win->GetId() ); event.SetEventObject( win ); - win->ProcessEvent( event ); + return win->ProcessEvent( event ); }; //----------------------------------------------------------------------------- // focus out -void gtk_window_focus_out_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxWindow *win ) +gint gtk_window_focus_out_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxWindow *win ) { - if (g_blockEventsOnDrag) return; + if (g_blockEventsOnDrag) return FALSE; if (win->m_wxwindow) { if (GTK_WIDGET_CAN_FOCUS(win->m_wxwindow)) GTK_WIDGET_UNSET_FLAGS (win->m_wxwindow, GTK_HAS_FOCUS); }; - if (!win->HasVMT()) return; + if (!win->HasVMT()) return FALSE; /* printf( "OnKillFocus from " ); @@ -470,7 +472,7 @@ void gtk_window_focus_out_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNU wxFocusEvent event( wxEVT_KILL_FOCUS, win->GetId() ); event.SetEventObject( win ); - win->ProcessEvent( event ); + return win->ProcessEvent( event ); }; //----------------------------------------------------------------------------- @@ -648,27 +650,35 @@ bool gtk_window_destroy_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSE //----------------------------------------------------------------------------- // enter -bool gtk_window_enter_callback( GtkWidget *widget, GdkEvent *WXUNUSED(event), wxWindow *win ) +bool gtk_window_enter_callback( GtkWidget *widget, GdkEventCrossing *gdk_event, wxWindow *win ) { + if (widget->window != gdk_event->window) return TRUE; + if (g_blockEventsOnDrag) return FALSE; if (widget->window) gdk_window_set_cursor( widget->window, win->m_cursor->GetCursor() ); - return TRUE; + wxMouseEvent event( wxEVT_ENTER_WINDOW ); + event.SetEventObject( win ); + return win->ProcessEvent( event ); }; //----------------------------------------------------------------------------- // leave -bool gtk_window_leave_callback( GtkWidget *widget, GdkEvent *WXUNUSED(event), wxWindow *WXUNUSED(win) ) +bool gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_event, wxWindow *win ) { + if (widget->window != gdk_event->window) return TRUE; + if (g_blockEventsOnDrag) return FALSE; if (widget->window) gdk_window_set_cursor( widget->window, wxSTANDARD_CURSOR->GetCursor() ); - return TRUE; + wxMouseEvent event( wxEVT_LEAVE_WINDOW ); + event.SetEventObject( win ); + return win->ProcessEvent( event ); }; //----------------------------------------------------------------------------- @@ -678,12 +688,10 @@ bool gtk_window_leave_callback( GtkWidget *widget, GdkEvent *WXUNUSED(event), wx IMPLEMENT_DYNAMIC_CLASS(wxWindow,wxEvtHandler) BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler) -// EVT_CHAR(wxWindow::OnChar) EVT_SIZE(wxWindow::OnSize) -// EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground) EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged) EVT_INIT_DIALOG(wxWindow::OnInitDialog) -// EVT_IDLE(wxWindow::OnIdle) + EVT_IDLE(wxWindow::OnIdle) END_EVENT_TABLE() wxWindow::wxWindow() @@ -722,6 +730,7 @@ wxWindow::wxWindow() m_drawingOffsetX = 0; m_drawingOffsetY = 0; m_pDropTarget = NULL; + m_resizing = FALSE; }; wxWindow::wxWindow( wxWindow *parent, wxWindowID id, @@ -759,14 +768,14 @@ bool wxWindow::Create( wxWindow *parent, wxWindowID id, m_vAdjust = gtk_range_get_adjustment( GTK_RANGE(s_window->vscrollbar) ); gtk_signal_connect (GTK_OBJECT (m_hAdjust), "value_changed", - (GtkSignalFunc) gtk_window_hscroll_callback, (gpointer) this ); + (GtkSignalFunc) gtk_window_hscroll_callback, (gpointer) this ); gtk_signal_connect (GTK_OBJECT (m_vAdjust), "value_changed", - (GtkSignalFunc) gtk_window_vscroll_callback, (gpointer) this ); - + (GtkSignalFunc) gtk_window_vscroll_callback, (gpointer) this ); + gtk_signal_connect (GTK_OBJECT (m_hAdjust), "changed", - (GtkSignalFunc) gtk_window_hscroll_change_callback, (gpointer) this ); + (GtkSignalFunc) gtk_window_hscroll_change_callback, (gpointer) this ); gtk_signal_connect (GTK_OBJECT (m_vAdjust), "changed", - (GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this ); + (GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this ); GtkViewport *viewport; viewport = GTK_VIEWPORT(s_window->viewport); @@ -905,6 +914,7 @@ void wxWindow::PreCreation( wxWindow *parent, wxWindowID id, m_drawingOffsetX = 0; m_drawingOffsetY = 0; m_pDropTarget = NULL; + m_resizing = FALSE; } void wxWindow::PostCreation(void) @@ -1024,7 +1034,7 @@ bool wxWindow::DestroyChildren(void) if ((child = (wxWindow *)node->Data()) != (wxWindow *)NULL) { delete child; - if (GetChildren()->Member(child)) delete node; + if (GetChildren()->Member(child)) delete node; }; }; }; @@ -1043,14 +1053,31 @@ void wxWindow::ImplementSetSize(void) void wxWindow::ImplementSetPosition(void) { + if (!m_parent) + { + if (IsKindOf(CLASSINFO(wxFrame)) || + IsKindOf(CLASSINFO(wxDialog))) + { + gtk_widget_set_uposition( m_widget, m_x, m_y ); + } + else + { + printf( "wxWindow::SetSize error.\n" ); + } + return; + } + if ((m_parent) && (m_parent->m_wxwindow)) gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), m_widget, m_x, m_y ); - else - gtk_widget_set_uposition( 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 (m_resizing) return; // I don't like recursions + m_resizing = TRUE; + int newX = x; int newY = y; int newW = width; @@ -1091,6 +1118,8 @@ void wxWindow::SetSize( int x, int y, int width, int height, int sizeFlags ) wxSizeEvent event( wxSize(m_width,m_height), GetId() ); event.SetEventObject( this ); ProcessEvent( event ); + + m_resizing = FALSE; }; void wxWindow::SetSize( int width, int height ) @@ -1105,8 +1134,8 @@ void wxWindow::Move( int x, int y ) void wxWindow::GetSize( int *width, int *height ) const { - (*width) = m_width; - (*height) = m_height; + if (width) (*width) = m_width; + if (height) (*height) = m_height; }; void wxWindow::SetClientSize( int width, int height ) @@ -1144,7 +1173,7 @@ void wxWindow::SetClientSize( int width, int height ) if ((m_windowStyle & wxRAISED_BORDER) || (m_windowStyle & wxSUNKEN_BORDER) - ) + ) { dw += 2 * viewport_class->xthickness; dh += 2 * viewport_class->ythickness; @@ -1203,7 +1232,7 @@ void wxWindow::GetClientSize( int *width, int *height ) const if ((m_windowStyle & wxRAISED_BORDER) || (m_windowStyle & wxSUNKEN_BORDER) - ) + ) { dw += 2 * viewport_class->xthickness; dh += 2 * viewport_class->ythickness; @@ -1314,28 +1343,28 @@ void wxWindow::Centre( int direction ) void wxWindow::Fit(void) { - int maxX = 0; - int maxY = 0; - wxNode *node = GetChildren()->First(); - while ( node ) - { - wxWindow *win = (wxWindow *)node->Data(); - int wx, wy, ww, wh; - win->GetPosition(&wx, &wy); - win->GetSize(&ww, &wh); - if ( wx + ww > maxX ) - maxX = wx + ww; - if ( wy + wh > maxY ) - maxY = wy + wh; - - node = node->Next(); - } - SetClientSize(maxX + 5, maxY + 5); + int maxX = 0; + int maxY = 0; + wxNode *node = GetChildren()->First(); + while ( node ) + { + wxWindow *win = (wxWindow *)node->Data(); + int wx, wy, ww, wh; + win->GetPosition(&wx, &wy); + win->GetSize(&ww, &wh); + if ( wx + ww > maxX ) + maxX = wx + ww; + if ( wy + wh > maxY ) + maxY = wy + wh; + + node = node->Next(); + } + SetClientSize(maxX + 5, maxY + 5); }; void wxWindow::OnSize( wxSizeEvent &WXUNUSED(event) ) { - if (GetAutoLayout()) Layout(); + //if (GetAutoLayout()) Layout(); }; bool wxWindow::Show( bool show ) @@ -1415,6 +1444,8 @@ void wxWindow::AddChild( wxWindow *child ) }; }; + // wxNotebooks are very special, so they have their own AddChild + if (IsKindOf(CLASSINFO(wxNotebook))) { wxNotebook *tab = (wxNotebook*)this; @@ -1515,9 +1546,9 @@ void wxWindow::Refresh( bool eraseBackground, const wxRect *rect ) if (rect) gdk_window_clear_area( m_wxwindow->window, rect->x, - rect->y, - rect->width, - rect->height ); + rect->y, + rect->width, + rect->height ); else Clear(); }; @@ -1609,7 +1640,7 @@ bool wxWindow::TransferDataToWindow(void) { wxWindow *child = (wxWindow *)node->Data(); if (child->GetValidator() && /* child->GetValidator()->Ok() && */ - !child->GetValidator()->TransferToWindow() ) + !child->GetValidator()->TransferToWindow() ) { wxMessageBox( "Application Error", "Could not transfer data to window", wxOK|wxICON_EXCLAMATION ); return FALSE; @@ -1701,10 +1732,10 @@ void wxWindow::CaptureMouse(void) gtk_grab_add( connect_widget ); gdk_pointer_grab ( connect_widget->window, FALSE, (GdkEventMask) - (GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_POINTER_MOTION_MASK), - NULL, NULL, GDK_CURRENT_TIME ); + (GDK_BUTTON_PRESS_MASK | + GDK_BUTTON_RELEASE_MASK | + GDK_POINTER_MOTION_MASK), + NULL, NULL, GDK_CURRENT_TIME ); }; void wxWindow::ReleaseMouse(void) @@ -1739,7 +1770,7 @@ wxString wxWindow::GetName(void) const return (wxString&)m_windowName; }; -bool wxWindow::IsShown(void) +bool wxWindow::IsShown(void) const { return m_isShown; }; @@ -1791,7 +1822,7 @@ void wxWindow::SetScrollbar( int orient, int pos, int thumbVisible, if ((fabs(fpos-m_hAdjust->value) < 0.2) && (fabs(frange-m_hAdjust->upper) < 0.2) && - (fabs(fthumb-m_hAdjust->page_size) < 0.2)) + (fabs(fthumb-m_hAdjust->page_size) < 0.2)) return; m_hAdjust->lower = 0.0; @@ -1810,7 +1841,7 @@ void wxWindow::SetScrollbar( int orient, int pos, int thumbVisible, if ((fabs(fpos-m_vAdjust->value) < 0.2) && (fabs(frange-m_vAdjust->upper) < 0.2) && - (fabs(fthumb-m_vAdjust->page_size) < 0.2)) + (fabs(fthumb-m_vAdjust->page_size) < 0.2)) return; m_vAdjust->lower = 0.0; @@ -1820,7 +1851,7 @@ void wxWindow::SetScrollbar( int orient, int pos, int thumbVisible, m_vAdjust->page_increment = (float)(wxMax(fthumb-2,0)); m_vAdjust->page_size = fthumb; }; - + if (m_wxwindow->window) { if (orient == wxHORIZONTAL) @@ -1828,7 +1859,7 @@ void wxWindow::SetScrollbar( int orient, int pos, int thumbVisible, else gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "changed" ); -// gtk_widget_set_usize( m_widget, m_width, m_height ); + gtk_widget_set_usize( m_widget, m_width, m_height ); }; }; @@ -2250,10 +2281,10 @@ void wxWindow::SetConstraintSizes(bool recurse) char *windowClass = this->GetClassInfo()->GetClassName(); wxString winName; - if (GetName() == "") - winName = "unnamed"; - else - winName = GetName(); + if (GetName() == "") + winName = "unnamed"; + else + winName = GetName(); wxDebugMsg("Constraint(s) not satisfied for window of type %s, name %s:\n", (const char *)windowClass, (const char *)winName); if (!constr->left.GetDone()) wxDebugMsg(" unsatisfied 'left' constraint.\n"); @@ -2284,7 +2315,7 @@ void wxWindow::SetConstraintSizes(bool recurse) void wxWindow::TransformSizerToActual(int *x, int *y) const { if (!m_sizerParent || m_sizerParent->IsKindOf(CLASSINFO(wxDialog)) || - m_sizerParent->IsKindOf(CLASSINFO(wxFrame)) ) + m_sizerParent->IsKindOf(CLASSINFO(wxFrame)) ) return; int xp, yp; @@ -2296,16 +2327,16 @@ void wxWindow::TransformSizerToActual(int *x, int *y) const void wxWindow::SizerSetSize(int x, int y, int w, int h) { - int xx = x; - int yy = y; + int xx = x; + int yy = y; TransformSizerToActual(&xx, &yy); SetSize(xx, yy, w, h); } void wxWindow::SizerMove(int x, int y) { - int xx = x; - int yy = y; + int xx = x; + int yy = y; TransformSizerToActual(&xx, &yy); Move(xx, yy); } @@ -2393,3 +2424,14 @@ void wxWindow::GetPositionConstraint(int *x, int *y) const GetPosition(x, y); } +bool wxWindow::AcceptsFocus() const +{ + return IsEnabled() && IsShown(); +} + +void wxWindow::OnIdle(wxIdleEvent& event) +{ + UpdateWindowUI(); +} + +#include "../common/wincmn.cpp"