Made wxWindowBase's variables protected again and such.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2400 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -143,19 +143,24 @@ public:
|
|||||||
virtual bool IsOwnGtkWindow( GdkWindow *window );
|
virtual bool IsOwnGtkWindow( GdkWindow *window );
|
||||||
void ConnectWidget( GtkWidget *widget );
|
void ConnectWidget( GtkWidget *widget );
|
||||||
|
|
||||||
|
// creates a new widget style if none is there
|
||||||
|
// and sets m_widgetStyle to this value.
|
||||||
GtkStyle *GetWidgetStyle();
|
GtkStyle *GetWidgetStyle();
|
||||||
|
|
||||||
|
// called by SetFont() and SetXXXColour etc
|
||||||
void SetWidgetStyle();
|
void SetWidgetStyle();
|
||||||
|
|
||||||
|
// overridden in many GTK widgets
|
||||||
virtual void ApplyWidgetStyle();
|
virtual void ApplyWidgetStyle();
|
||||||
|
|
||||||
#if wxUSE_TOOLTIPS
|
#if wxUSE_TOOLTIPS
|
||||||
virtual void ApplyToolTip( GtkTooltips *tips, const wxChar *tip );
|
virtual void ApplyToolTip( GtkTooltips *tips, const wxChar *tip );
|
||||||
#endif // wxUSE_TOOLTIPS
|
#endif // wxUSE_TOOLTIPS
|
||||||
|
|
||||||
// called from GTK signales handlers
|
// called from GTK signales handlers. it indicates that
|
||||||
|
// the layouting functions have to be called later on
|
||||||
|
// (i.e. in idle time, implemented in OnInternalIdle() ).
|
||||||
void UpdateSize() { m_sizeSet = FALSE; }
|
void UpdateSize() { m_sizeSet = FALSE; }
|
||||||
void InternalSetPosition(int x, int y) { m_x = x; m_y = y; }
|
|
||||||
void InternalSetSize(int w, int h)
|
|
||||||
{ m_width = w; m_height = h; UpdateSize(); }
|
|
||||||
|
|
||||||
// position and size of the window
|
// position and size of the window
|
||||||
int m_x, m_y;
|
int m_x, m_y;
|
||||||
@@ -167,8 +172,13 @@ public:
|
|||||||
|
|
||||||
// scrolling stuff
|
// scrolling stuff
|
||||||
GtkAdjustment *m_hAdjust,*m_vAdjust;
|
GtkAdjustment *m_hAdjust,*m_vAdjust;
|
||||||
float m_oldHorizontalPos,
|
float m_oldHorizontalPos;
|
||||||
m_oldVerticalPos;
|
float m_oldVerticalPos;
|
||||||
|
|
||||||
|
// we need an extra XGC flag set to get exposed
|
||||||
|
// events from overlapping children upon moving
|
||||||
|
// them. this flag will be set in this GC and
|
||||||
|
// the GC will be used in wxWindow::ScrollWindow().
|
||||||
GdkGC *m_scrollGC;
|
GdkGC *m_scrollGC;
|
||||||
|
|
||||||
// extra (wxGTK-specific) flags
|
// extra (wxGTK-specific) flags
|
||||||
@@ -181,9 +191,28 @@ public:
|
|||||||
bool m_isStaticBox:1; /* faster than IS_KIND_OF */
|
bool m_isStaticBox:1; /* faster than IS_KIND_OF */
|
||||||
bool m_isFrame:1; /* faster than IS_KIND_OF */
|
bool m_isFrame:1; /* faster than IS_KIND_OF */
|
||||||
bool m_acceptsFocus:1; /* ! wxStaticBox etc. */
|
bool m_acceptsFocus:1; /* ! wxStaticBox etc. */
|
||||||
|
|
||||||
|
// these are true if the style were set before the
|
||||||
|
// widget was realized (typcally in the constructor)
|
||||||
|
// but the actual GTK style must not be set before
|
||||||
|
// the widget has been "realized"
|
||||||
|
bool m_delayedFont:1;
|
||||||
|
bool m_delayedForegroundColour:1;
|
||||||
|
bool m_delayedBackgroundColour:1;
|
||||||
|
bool m_delayedCursor:1;
|
||||||
|
|
||||||
|
// contains GTK's widgets internal information
|
||||||
|
// about non-default widget font and colours.
|
||||||
|
// we create one for each widget that gets any
|
||||||
|
// non-default attribute set via SetFont() or
|
||||||
|
// SetForegroundColour() / SetBackgroundColour().
|
||||||
GtkStyle *m_widgetStyle;
|
GtkStyle *m_widgetStyle;
|
||||||
|
|
||||||
|
// C++ has no virtual methods in the constrcutor
|
||||||
|
// of any class but we need different methods
|
||||||
|
// of inserting a child window into a wxFrame,
|
||||||
|
// wxMDIFrame, wxNotebook etc. this is the
|
||||||
|
// callback that will get used.
|
||||||
wxInsertChildFunction m_insertCallback;
|
wxInsertChildFunction m_insertCallback;
|
||||||
|
|
||||||
// implement the base class pure virtuals
|
// implement the base class pure virtuals
|
||||||
|
@@ -143,19 +143,24 @@ public:
|
|||||||
virtual bool IsOwnGtkWindow( GdkWindow *window );
|
virtual bool IsOwnGtkWindow( GdkWindow *window );
|
||||||
void ConnectWidget( GtkWidget *widget );
|
void ConnectWidget( GtkWidget *widget );
|
||||||
|
|
||||||
|
// creates a new widget style if none is there
|
||||||
|
// and sets m_widgetStyle to this value.
|
||||||
GtkStyle *GetWidgetStyle();
|
GtkStyle *GetWidgetStyle();
|
||||||
|
|
||||||
|
// called by SetFont() and SetXXXColour etc
|
||||||
void SetWidgetStyle();
|
void SetWidgetStyle();
|
||||||
|
|
||||||
|
// overridden in many GTK widgets
|
||||||
virtual void ApplyWidgetStyle();
|
virtual void ApplyWidgetStyle();
|
||||||
|
|
||||||
#if wxUSE_TOOLTIPS
|
#if wxUSE_TOOLTIPS
|
||||||
virtual void ApplyToolTip( GtkTooltips *tips, const wxChar *tip );
|
virtual void ApplyToolTip( GtkTooltips *tips, const wxChar *tip );
|
||||||
#endif // wxUSE_TOOLTIPS
|
#endif // wxUSE_TOOLTIPS
|
||||||
|
|
||||||
// called from GTK signales handlers
|
// called from GTK signales handlers. it indicates that
|
||||||
|
// the layouting functions have to be called later on
|
||||||
|
// (i.e. in idle time, implemented in OnInternalIdle() ).
|
||||||
void UpdateSize() { m_sizeSet = FALSE; }
|
void UpdateSize() { m_sizeSet = FALSE; }
|
||||||
void InternalSetPosition(int x, int y) { m_x = x; m_y = y; }
|
|
||||||
void InternalSetSize(int w, int h)
|
|
||||||
{ m_width = w; m_height = h; UpdateSize(); }
|
|
||||||
|
|
||||||
// position and size of the window
|
// position and size of the window
|
||||||
int m_x, m_y;
|
int m_x, m_y;
|
||||||
@@ -167,8 +172,13 @@ public:
|
|||||||
|
|
||||||
// scrolling stuff
|
// scrolling stuff
|
||||||
GtkAdjustment *m_hAdjust,*m_vAdjust;
|
GtkAdjustment *m_hAdjust,*m_vAdjust;
|
||||||
float m_oldHorizontalPos,
|
float m_oldHorizontalPos;
|
||||||
m_oldVerticalPos;
|
float m_oldVerticalPos;
|
||||||
|
|
||||||
|
// we need an extra XGC flag set to get exposed
|
||||||
|
// events from overlapping children upon moving
|
||||||
|
// them. this flag will be set in this GC and
|
||||||
|
// the GC will be used in wxWindow::ScrollWindow().
|
||||||
GdkGC *m_scrollGC;
|
GdkGC *m_scrollGC;
|
||||||
|
|
||||||
// extra (wxGTK-specific) flags
|
// extra (wxGTK-specific) flags
|
||||||
@@ -181,9 +191,28 @@ public:
|
|||||||
bool m_isStaticBox:1; /* faster than IS_KIND_OF */
|
bool m_isStaticBox:1; /* faster than IS_KIND_OF */
|
||||||
bool m_isFrame:1; /* faster than IS_KIND_OF */
|
bool m_isFrame:1; /* faster than IS_KIND_OF */
|
||||||
bool m_acceptsFocus:1; /* ! wxStaticBox etc. */
|
bool m_acceptsFocus:1; /* ! wxStaticBox etc. */
|
||||||
|
|
||||||
|
// these are true if the style were set before the
|
||||||
|
// widget was realized (typcally in the constructor)
|
||||||
|
// but the actual GTK style must not be set before
|
||||||
|
// the widget has been "realized"
|
||||||
|
bool m_delayedFont:1;
|
||||||
|
bool m_delayedForegroundColour:1;
|
||||||
|
bool m_delayedBackgroundColour:1;
|
||||||
|
bool m_delayedCursor:1;
|
||||||
|
|
||||||
|
// contains GTK's widgets internal information
|
||||||
|
// about non-default widget font and colours.
|
||||||
|
// we create one for each widget that gets any
|
||||||
|
// non-default attribute set via SetFont() or
|
||||||
|
// SetForegroundColour() / SetBackgroundColour().
|
||||||
GtkStyle *m_widgetStyle;
|
GtkStyle *m_widgetStyle;
|
||||||
|
|
||||||
|
// C++ has no virtual methods in the constrcutor
|
||||||
|
// of any class but we need different methods
|
||||||
|
// of inserting a child window into a wxFrame,
|
||||||
|
// wxMDIFrame, wxNotebook etc. this is the
|
||||||
|
// callback that will get used.
|
||||||
wxInsertChildFunction m_insertCallback;
|
wxInsertChildFunction m_insertCallback;
|
||||||
|
|
||||||
// implement the base class pure virtuals
|
// implement the base class pure virtuals
|
||||||
|
@@ -596,14 +596,10 @@ public:
|
|||||||
void OnInitDialog( wxInitDialogEvent &event );
|
void OnInitDialog( wxInitDialogEvent &event );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
What is this doing in the platform independent part?
|
// What is this doing in the platform independent part?
|
||||||
|
// No doc specifies this. Of what use would that be?
|
||||||
|
|
||||||
// accessors
|
// the window handle (for the underlying windowing system)
|
||||||
WXWidget GetHandle() const { return m_widget; }
|
|
||||||
|
|
||||||
// the window handle (for the underlying windowing system) and the window
|
|
||||||
// id - a number which uniquely identifies a window among its siblings
|
|
||||||
// unless it is -1
|
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
// we have 2 common names for this member, one for MSW and the other
|
// we have 2 common names for this member, one for MSW and the other
|
||||||
@@ -611,8 +607,15 @@ public:
|
|||||||
WXWidget m_widget;
|
WXWidget m_widget;
|
||||||
WXWidget m_hWnd;
|
WXWidget m_hWnd;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// accessor
|
||||||
|
WXWidget GetHandle() const { return m_widget; }
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// the window id - a number which uniquely identifies a window among
|
||||||
|
// its siblings unless it is -1
|
||||||
wxWindowID m_windowId;
|
wxWindowID m_windowId;
|
||||||
|
|
||||||
// the parent window of this window (or NULL) and the list of the children
|
// the parent window of this window (or NULL) and the list of the children
|
||||||
|
@@ -284,7 +284,7 @@ void wxDialog::OnCancel( wxCommandEvent &WXUNUSED(event) )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetReturnCode(wxID_CANCEL);
|
SetReturnCode(wxID_CANCEL);
|
||||||
this->Show(FALSE);
|
Show(FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,12 +296,12 @@ void wxDialog::OnOK( wxCommandEvent &WXUNUSED(event) )
|
|||||||
printf( "OnOK 2.\n" );
|
printf( "OnOK 2.\n" );
|
||||||
if (IsModal())
|
if (IsModal())
|
||||||
{
|
{
|
||||||
printf( "OnOK: modal.\n" );
|
printf( "OnOK: modal.\n" );
|
||||||
EndModal(wxID_OK);
|
EndModal(wxID_OK);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf( "OnOK: non-modal.\n" );
|
printf( "OnOK: non-modal.\n" );
|
||||||
SetReturnCode(wxID_OK);
|
SetReturnCode(wxID_OK);
|
||||||
this->Show(FALSE);
|
this->Show(FALSE);
|
||||||
}
|
}
|
||||||
@@ -508,21 +508,11 @@ bool wxDialog::Show( bool show )
|
|||||||
GtkOnSize( m_x, m_y, m_width, m_height );
|
GtkOnSize( m_x, m_y, m_width, m_height );
|
||||||
}
|
}
|
||||||
|
|
||||||
if (show != m_isShown)
|
bool ret = wxWindow::Show( show );
|
||||||
{
|
|
||||||
if (show)
|
|
||||||
{
|
|
||||||
gtk_widget_show( m_widget );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
gtk_widget_hide( m_widget );
|
|
||||||
|
|
||||||
m_isShown = show;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (show) InitDialog();
|
if (show) InitDialog();
|
||||||
|
|
||||||
return TRUE;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxDialog::IsModal() const
|
bool wxDialog::IsModal() const
|
||||||
|
@@ -1374,30 +1374,16 @@ gtk_window_realized_callback( GtkWidget *widget, wxWindow *win )
|
|||||||
if (g_isIdle)
|
if (g_isIdle)
|
||||||
wxapp_install_idle_handler();
|
wxapp_install_idle_handler();
|
||||||
|
|
||||||
if (win->m_font != *wxSWISS_FONT)
|
if (win->m_delayedFont)
|
||||||
{
|
win->SetFont( win->GetFont() );
|
||||||
wxFont font( win->m_font );
|
|
||||||
win->m_font = wxNullFont;
|
|
||||||
win->SetFont( font );
|
|
||||||
}
|
|
||||||
|
|
||||||
if (win->m_backgroundColour != wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ))
|
if (win->m_delayedBackgroundColour)
|
||||||
{
|
win->SetBackgroundColour( win->GetBackgroundColour() );
|
||||||
wxColour bg( win->m_backgroundColour );
|
|
||||||
win->m_backgroundColour = wxNullColour;
|
|
||||||
win->SetBackgroundColour( bg );
|
|
||||||
}
|
|
||||||
|
|
||||||
if (win->m_foregroundColour != *wxBLACK)
|
if (win->m_delayedForegroundColour)
|
||||||
{
|
win->SetForegroundColour( win->GetForegroundColour() );
|
||||||
wxColour fg( win->m_foregroundColour );
|
|
||||||
win->m_foregroundColour = wxNullColour;
|
|
||||||
win->SetForegroundColour( fg );
|
|
||||||
}
|
|
||||||
|
|
||||||
wxCursor cursor( win->m_cursor );
|
win->SetCursor( win->GetCursor() );
|
||||||
win->m_cursor = wxNullCursor;
|
|
||||||
win->SetCursor( cursor );
|
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -1464,9 +1450,6 @@ void wxWindow::Init()
|
|||||||
m_width = 0;
|
m_width = 0;
|
||||||
m_height = 0;
|
m_height = 0;
|
||||||
|
|
||||||
m_font = *wxSWISS_FONT;
|
|
||||||
m_windowName = "noname";
|
|
||||||
|
|
||||||
m_sizeSet = FALSE;
|
m_sizeSet = FALSE;
|
||||||
m_hasVMT = FALSE;
|
m_hasVMT = FALSE;
|
||||||
m_needParent = TRUE;
|
m_needParent = TRUE;
|
||||||
@@ -2098,8 +2081,11 @@ bool wxWindow::Show( bool show )
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") );
|
wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") );
|
||||||
|
|
||||||
if ( !wxWindowBase::Show(show) )
|
if (!wxWindowBase::Show(show))
|
||||||
|
{
|
||||||
|
// nothing to do
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if (show)
|
if (show)
|
||||||
gtk_widget_show( m_widget );
|
gtk_widget_show( m_widget );
|
||||||
@@ -2113,8 +2099,11 @@ bool wxWindow::Enable( bool enable )
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") );
|
wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") );
|
||||||
|
|
||||||
if ( !wxWindowBase::Enable(enable) )
|
if (!wxWindowBase::Enable(enable))
|
||||||
|
{
|
||||||
|
// nothing to do
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
gtk_widget_set_sensitive( m_widget, enable );
|
gtk_widget_set_sensitive( m_widget, enable );
|
||||||
if ( m_wxwindow )
|
if ( m_wxwindow )
|
||||||
@@ -2234,9 +2223,24 @@ bool wxWindow::SetCursor( const wxCursor &cursor )
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") );
|
wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") );
|
||||||
|
|
||||||
if ( wxWindowBase::SetCursor(cursor) )
|
if (!wxWindowBase::SetCursor(cursor))
|
||||||
{
|
{
|
||||||
if (!m_widget->window) return TRUE;
|
// don't leave if the GTK widget has just
|
||||||
|
// been realized
|
||||||
|
if (!m_delayedCursor) return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
GtkWidget *connect_widget = GetConnectWidget();
|
||||||
|
if (!connect_widget->window)
|
||||||
|
{
|
||||||
|
// indicate that a new style has been set
|
||||||
|
// but it couldn't get applied as the
|
||||||
|
// widget hasn't been realized yet.
|
||||||
|
m_delayedCursor = TRUE;
|
||||||
|
|
||||||
|
// pretend we have done something
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
if ((m_widget) && (m_widget->window))
|
if ((m_widget) && (m_widget->window))
|
||||||
gdk_window_set_cursor( m_widget->window, GetCursor().GetCursor() );
|
gdk_window_set_cursor( m_widget->window, GetCursor().GetCursor() );
|
||||||
@@ -2244,14 +2248,8 @@ bool wxWindow::SetCursor( const wxCursor &cursor )
|
|||||||
if ((m_wxwindow) && (m_wxwindow->window))
|
if ((m_wxwindow) && (m_wxwindow->window))
|
||||||
gdk_window_set_cursor( m_wxwindow->window, GetCursor().GetCursor() );
|
gdk_window_set_cursor( m_wxwindow->window, GetCursor().GetCursor() );
|
||||||
|
|
||||||
// cursor was set
|
// cursor was set
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// cursor hasn't been changed
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWindow::WarpPointer( int WXUNUSED(x), int WXUNUSED(y) )
|
void wxWindow::WarpPointer( int WXUNUSED(x), int WXUNUSED(y) )
|
||||||
@@ -2332,10 +2330,24 @@ bool wxWindow::SetBackgroundColour( const wxColour &colour )
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") );
|
wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") );
|
||||||
|
|
||||||
if (!wxWindowBase::SetBackgroundColour(colour)) return FALSE;
|
if (!wxWindowBase::SetBackgroundColour(colour))
|
||||||
|
{
|
||||||
|
// don't leave if the GTK widget has just
|
||||||
|
// been realized
|
||||||
|
if (!m_delayedBackgroundColour) return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
GtkWidget *connect_widget = GetConnectWidget();
|
GtkWidget *connect_widget = GetConnectWidget();
|
||||||
if (!connect_widget->window) return TRUE;
|
if (!connect_widget->window)
|
||||||
|
{
|
||||||
|
// indicate that a new style has been set
|
||||||
|
// but it couldn't get applied as the
|
||||||
|
// widget hasn't been realized yet.
|
||||||
|
m_delayedBackgroundColour = TRUE;
|
||||||
|
|
||||||
|
// pretend we have done something
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_wxwindow && m_wxwindow->window)
|
if (m_wxwindow && m_wxwindow->window)
|
||||||
{
|
{
|
||||||
@@ -2366,10 +2378,24 @@ bool wxWindow::SetForegroundColour( const wxColour &colour )
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") );
|
wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") );
|
||||||
|
|
||||||
if (!wxWindowBase::SetForegroundColour(colour)) return FALSE;
|
if (!wxWindowBase::SetForegroundColour(colour))
|
||||||
|
{
|
||||||
|
// don't leave if the GTK widget has just
|
||||||
|
// been realized
|
||||||
|
if (!m_delayedForegroundColour) return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
GtkWidget *connect_widget = GetConnectWidget();
|
GtkWidget *connect_widget = GetConnectWidget();
|
||||||
if (!connect_widget->window) return TRUE;
|
if (!connect_widget->window)
|
||||||
|
{
|
||||||
|
// indicate that a new style has been set
|
||||||
|
// but it couldn't get applied as the
|
||||||
|
// widget hasn't been realized yet.
|
||||||
|
m_delayedForegroundColour = TRUE;
|
||||||
|
|
||||||
|
// pretend we have done something
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
|
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
|
||||||
if (sysbg == m_foregroundColour)
|
if (sysbg == m_foregroundColour)
|
||||||
@@ -2514,10 +2540,24 @@ bool wxWindow::SetFont( const wxFont &font )
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( m_widget != NULL, FALSE, _T( "invalid window") );
|
wxCHECK_MSG( m_widget != NULL, FALSE, _T( "invalid window") );
|
||||||
|
|
||||||
if (!wxWindowBase::SetFont(font)) return FALSE;
|
if (!wxWindowBase::SetFont(font))
|
||||||
|
{
|
||||||
|
// don't leave if the GTK widget has just
|
||||||
|
// been realized
|
||||||
|
if (!m_delayedFont) return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
GtkWidget *connect_widget = GetConnectWidget();
|
GtkWidget *connect_widget = GetConnectWidget();
|
||||||
if (!connect_widget->window) return TRUE;
|
if (!connect_widget->window)
|
||||||
|
{
|
||||||
|
// indicate that a new style has been set
|
||||||
|
// but it couldn't get applied as the
|
||||||
|
// widget hasn't been realized yet.
|
||||||
|
m_delayedFont = TRUE;
|
||||||
|
|
||||||
|
// pretend we have done something
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
|
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
|
||||||
if ( sysbg == m_backgroundColour )
|
if ( sysbg == m_backgroundColour )
|
||||||
|
@@ -284,7 +284,7 @@ void wxDialog::OnCancel( wxCommandEvent &WXUNUSED(event) )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetReturnCode(wxID_CANCEL);
|
SetReturnCode(wxID_CANCEL);
|
||||||
this->Show(FALSE);
|
Show(FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,12 +296,12 @@ void wxDialog::OnOK( wxCommandEvent &WXUNUSED(event) )
|
|||||||
printf( "OnOK 2.\n" );
|
printf( "OnOK 2.\n" );
|
||||||
if (IsModal())
|
if (IsModal())
|
||||||
{
|
{
|
||||||
printf( "OnOK: modal.\n" );
|
printf( "OnOK: modal.\n" );
|
||||||
EndModal(wxID_OK);
|
EndModal(wxID_OK);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf( "OnOK: non-modal.\n" );
|
printf( "OnOK: non-modal.\n" );
|
||||||
SetReturnCode(wxID_OK);
|
SetReturnCode(wxID_OK);
|
||||||
this->Show(FALSE);
|
this->Show(FALSE);
|
||||||
}
|
}
|
||||||
@@ -508,21 +508,11 @@ bool wxDialog::Show( bool show )
|
|||||||
GtkOnSize( m_x, m_y, m_width, m_height );
|
GtkOnSize( m_x, m_y, m_width, m_height );
|
||||||
}
|
}
|
||||||
|
|
||||||
if (show != m_isShown)
|
bool ret = wxWindow::Show( show );
|
||||||
{
|
|
||||||
if (show)
|
|
||||||
{
|
|
||||||
gtk_widget_show( m_widget );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
gtk_widget_hide( m_widget );
|
|
||||||
|
|
||||||
m_isShown = show;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (show) InitDialog();
|
if (show) InitDialog();
|
||||||
|
|
||||||
return TRUE;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxDialog::IsModal() const
|
bool wxDialog::IsModal() const
|
||||||
|
@@ -1374,30 +1374,16 @@ gtk_window_realized_callback( GtkWidget *widget, wxWindow *win )
|
|||||||
if (g_isIdle)
|
if (g_isIdle)
|
||||||
wxapp_install_idle_handler();
|
wxapp_install_idle_handler();
|
||||||
|
|
||||||
if (win->m_font != *wxSWISS_FONT)
|
if (win->m_delayedFont)
|
||||||
{
|
win->SetFont( win->GetFont() );
|
||||||
wxFont font( win->m_font );
|
|
||||||
win->m_font = wxNullFont;
|
|
||||||
win->SetFont( font );
|
|
||||||
}
|
|
||||||
|
|
||||||
if (win->m_backgroundColour != wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ))
|
if (win->m_delayedBackgroundColour)
|
||||||
{
|
win->SetBackgroundColour( win->GetBackgroundColour() );
|
||||||
wxColour bg( win->m_backgroundColour );
|
|
||||||
win->m_backgroundColour = wxNullColour;
|
|
||||||
win->SetBackgroundColour( bg );
|
|
||||||
}
|
|
||||||
|
|
||||||
if (win->m_foregroundColour != *wxBLACK)
|
if (win->m_delayedForegroundColour)
|
||||||
{
|
win->SetForegroundColour( win->GetForegroundColour() );
|
||||||
wxColour fg( win->m_foregroundColour );
|
|
||||||
win->m_foregroundColour = wxNullColour;
|
|
||||||
win->SetForegroundColour( fg );
|
|
||||||
}
|
|
||||||
|
|
||||||
wxCursor cursor( win->m_cursor );
|
win->SetCursor( win->GetCursor() );
|
||||||
win->m_cursor = wxNullCursor;
|
|
||||||
win->SetCursor( cursor );
|
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -1464,9 +1450,6 @@ void wxWindow::Init()
|
|||||||
m_width = 0;
|
m_width = 0;
|
||||||
m_height = 0;
|
m_height = 0;
|
||||||
|
|
||||||
m_font = *wxSWISS_FONT;
|
|
||||||
m_windowName = "noname";
|
|
||||||
|
|
||||||
m_sizeSet = FALSE;
|
m_sizeSet = FALSE;
|
||||||
m_hasVMT = FALSE;
|
m_hasVMT = FALSE;
|
||||||
m_needParent = TRUE;
|
m_needParent = TRUE;
|
||||||
@@ -2098,8 +2081,11 @@ bool wxWindow::Show( bool show )
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") );
|
wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") );
|
||||||
|
|
||||||
if ( !wxWindowBase::Show(show) )
|
if (!wxWindowBase::Show(show))
|
||||||
|
{
|
||||||
|
// nothing to do
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if (show)
|
if (show)
|
||||||
gtk_widget_show( m_widget );
|
gtk_widget_show( m_widget );
|
||||||
@@ -2113,8 +2099,11 @@ bool wxWindow::Enable( bool enable )
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") );
|
wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") );
|
||||||
|
|
||||||
if ( !wxWindowBase::Enable(enable) )
|
if (!wxWindowBase::Enable(enable))
|
||||||
|
{
|
||||||
|
// nothing to do
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
gtk_widget_set_sensitive( m_widget, enable );
|
gtk_widget_set_sensitive( m_widget, enable );
|
||||||
if ( m_wxwindow )
|
if ( m_wxwindow )
|
||||||
@@ -2234,9 +2223,24 @@ bool wxWindow::SetCursor( const wxCursor &cursor )
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") );
|
wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") );
|
||||||
|
|
||||||
if ( wxWindowBase::SetCursor(cursor) )
|
if (!wxWindowBase::SetCursor(cursor))
|
||||||
{
|
{
|
||||||
if (!m_widget->window) return TRUE;
|
// don't leave if the GTK widget has just
|
||||||
|
// been realized
|
||||||
|
if (!m_delayedCursor) return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
GtkWidget *connect_widget = GetConnectWidget();
|
||||||
|
if (!connect_widget->window)
|
||||||
|
{
|
||||||
|
// indicate that a new style has been set
|
||||||
|
// but it couldn't get applied as the
|
||||||
|
// widget hasn't been realized yet.
|
||||||
|
m_delayedCursor = TRUE;
|
||||||
|
|
||||||
|
// pretend we have done something
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
if ((m_widget) && (m_widget->window))
|
if ((m_widget) && (m_widget->window))
|
||||||
gdk_window_set_cursor( m_widget->window, GetCursor().GetCursor() );
|
gdk_window_set_cursor( m_widget->window, GetCursor().GetCursor() );
|
||||||
@@ -2244,14 +2248,8 @@ bool wxWindow::SetCursor( const wxCursor &cursor )
|
|||||||
if ((m_wxwindow) && (m_wxwindow->window))
|
if ((m_wxwindow) && (m_wxwindow->window))
|
||||||
gdk_window_set_cursor( m_wxwindow->window, GetCursor().GetCursor() );
|
gdk_window_set_cursor( m_wxwindow->window, GetCursor().GetCursor() );
|
||||||
|
|
||||||
// cursor was set
|
// cursor was set
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// cursor hasn't been changed
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWindow::WarpPointer( int WXUNUSED(x), int WXUNUSED(y) )
|
void wxWindow::WarpPointer( int WXUNUSED(x), int WXUNUSED(y) )
|
||||||
@@ -2332,10 +2330,24 @@ bool wxWindow::SetBackgroundColour( const wxColour &colour )
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") );
|
wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") );
|
||||||
|
|
||||||
if (!wxWindowBase::SetBackgroundColour(colour)) return FALSE;
|
if (!wxWindowBase::SetBackgroundColour(colour))
|
||||||
|
{
|
||||||
|
// don't leave if the GTK widget has just
|
||||||
|
// been realized
|
||||||
|
if (!m_delayedBackgroundColour) return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
GtkWidget *connect_widget = GetConnectWidget();
|
GtkWidget *connect_widget = GetConnectWidget();
|
||||||
if (!connect_widget->window) return TRUE;
|
if (!connect_widget->window)
|
||||||
|
{
|
||||||
|
// indicate that a new style has been set
|
||||||
|
// but it couldn't get applied as the
|
||||||
|
// widget hasn't been realized yet.
|
||||||
|
m_delayedBackgroundColour = TRUE;
|
||||||
|
|
||||||
|
// pretend we have done something
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_wxwindow && m_wxwindow->window)
|
if (m_wxwindow && m_wxwindow->window)
|
||||||
{
|
{
|
||||||
@@ -2366,10 +2378,24 @@ bool wxWindow::SetForegroundColour( const wxColour &colour )
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") );
|
wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") );
|
||||||
|
|
||||||
if (!wxWindowBase::SetForegroundColour(colour)) return FALSE;
|
if (!wxWindowBase::SetForegroundColour(colour))
|
||||||
|
{
|
||||||
|
// don't leave if the GTK widget has just
|
||||||
|
// been realized
|
||||||
|
if (!m_delayedForegroundColour) return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
GtkWidget *connect_widget = GetConnectWidget();
|
GtkWidget *connect_widget = GetConnectWidget();
|
||||||
if (!connect_widget->window) return TRUE;
|
if (!connect_widget->window)
|
||||||
|
{
|
||||||
|
// indicate that a new style has been set
|
||||||
|
// but it couldn't get applied as the
|
||||||
|
// widget hasn't been realized yet.
|
||||||
|
m_delayedForegroundColour = TRUE;
|
||||||
|
|
||||||
|
// pretend we have done something
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
|
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
|
||||||
if (sysbg == m_foregroundColour)
|
if (sysbg == m_foregroundColour)
|
||||||
@@ -2514,10 +2540,24 @@ bool wxWindow::SetFont( const wxFont &font )
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( m_widget != NULL, FALSE, _T( "invalid window") );
|
wxCHECK_MSG( m_widget != NULL, FALSE, _T( "invalid window") );
|
||||||
|
|
||||||
if (!wxWindowBase::SetFont(font)) return FALSE;
|
if (!wxWindowBase::SetFont(font))
|
||||||
|
{
|
||||||
|
// don't leave if the GTK widget has just
|
||||||
|
// been realized
|
||||||
|
if (!m_delayedFont) return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
GtkWidget *connect_widget = GetConnectWidget();
|
GtkWidget *connect_widget = GetConnectWidget();
|
||||||
if (!connect_widget->window) return TRUE;
|
if (!connect_widget->window)
|
||||||
|
{
|
||||||
|
// indicate that a new style has been set
|
||||||
|
// but it couldn't get applied as the
|
||||||
|
// widget hasn't been realized yet.
|
||||||
|
m_delayedFont = TRUE;
|
||||||
|
|
||||||
|
// pretend we have done something
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
|
wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );
|
||||||
if ( sysbg == m_backgroundColour )
|
if ( sysbg == m_backgroundColour )
|
||||||
|
Reference in New Issue
Block a user