From: Robert Roebling Date: Sun, 30 May 1999 16:20:42 +0000 (+0000) Subject: A bit more Unicode compilation. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ddb6bc71266486f2e7222915740393eddea620f5 A bit more Unicode compilation. Window insertion corrections for window, frame, dialog, mdi. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2597 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/gtk/frame.h b/include/wx/gtk/frame.h index 145f5c6392..aa968fe867 100644 --- a/include/wx/gtk/frame.h +++ b/include/wx/gtk/frame.h @@ -49,7 +49,7 @@ class wxFrame: public wxWindow DECLARE_DYNAMIC_CLASS(wxFrame) public: - wxFrame(); + wxFrame() { Init(); } wxFrame( wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString &name = wxFrameNameStr ); @@ -120,6 +120,9 @@ public: bool m_insertInClientArea; /* not from within OnCreateXXX */ protected: + // common part of all ctors + void Init(); + virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); diff --git a/include/wx/gtk/mdi.h b/include/wx/gtk/mdi.h index ff370ad38c..152af27a48 100644 --- a/include/wx/gtk/mdi.h +++ b/include/wx/gtk/mdi.h @@ -123,7 +123,7 @@ class wxMDIChildFrame: public wxFrame virtual wxStatusBar* CreateStatusBar( int WXUNUSED(number)=1, long WXUNUSED(style)=1, wxWindowID WXUNUSED(id)=1, const wxString& WXUNUSED(name)=WXSTRINGCAST NULL ) {return (wxStatusBar*)NULL; } virtual wxStatusBar *GetStatusBar() const { return (wxStatusBar*)NULL; } - virtual void SetStatusText( const wxString &WXUNUSED(text), int WXUNUSED(number) ) {} + virtual void SetStatusText( const wxString &WXUNUSED(text), int WXUNUSED(number)=0 ) {} virtual void SetStatusWidths( int WXUNUSED(n), const int WXUNUSED(widths_field)[] ) {} // no size hints diff --git a/include/wx/gtk/window.h b/include/wx/gtk/window.h index 6730525a86..aa722a2f14 100644 --- a/include/wx/gtk/window.h +++ b/include/wx/gtk/window.h @@ -125,8 +125,10 @@ public: const wxSize &size, long style, const wxString &name ); void PostCreation(); - void InsertChild(wxWindow *child) { (*m_insertCallback)(this, child); } - void DoAddChild(wxWindow *child) { AddChild(child); InsertChild(child); } + /* internal addition of child windows. differs from class + to class not by using virtual functions but by using + the m_insertCallback */ + void DoAddChild(wxWindow *child); /* the methods below are required because many native widgets are composed of several subwidgets and setting a style for @@ -139,14 +141,14 @@ public: virtual bool IsOwnGtkWindow( GdkWindow *window ); void ConnectWidget( GtkWidget *widget ); - // creates a new widget style if none is there - // and sets m_widgetStyle to this value. + /* creates a new widget style if none is there + and sets m_widgetStyle to this value. */ GtkStyle *GetWidgetStyle(); - // called by SetFont() and SetXXXColour etc + /* called by SetFont() and SetXXXColour etc */ void SetWidgetStyle(); - // overridden in many GTK widgets + /* overridden in many GTK widgets */ virtual void ApplyWidgetStyle(); #if wxUSE_TOOLTIPS @@ -162,11 +164,11 @@ public: int m_x, m_y; int m_width, m_height; - // see the docs in src/gtk/window.cpp + /* see the docs in src/gtk/window.cpp */ GtkWidget *m_widget; GtkWidget *m_wxwindow; - // scrolling stuff + /* scrolling stuff */ GtkAdjustment *m_hAdjust,*m_vAdjust; float m_oldHorizontalPos; float m_oldVerticalPos; diff --git a/include/wx/gtk1/frame.h b/include/wx/gtk1/frame.h index 145f5c6392..aa968fe867 100644 --- a/include/wx/gtk1/frame.h +++ b/include/wx/gtk1/frame.h @@ -49,7 +49,7 @@ class wxFrame: public wxWindow DECLARE_DYNAMIC_CLASS(wxFrame) public: - wxFrame(); + wxFrame() { Init(); } wxFrame( wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString &name = wxFrameNameStr ); @@ -120,6 +120,9 @@ public: bool m_insertInClientArea; /* not from within OnCreateXXX */ protected: + // common part of all ctors + void Init(); + virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); diff --git a/include/wx/gtk1/mdi.h b/include/wx/gtk1/mdi.h index ff370ad38c..152af27a48 100644 --- a/include/wx/gtk1/mdi.h +++ b/include/wx/gtk1/mdi.h @@ -123,7 +123,7 @@ class wxMDIChildFrame: public wxFrame virtual wxStatusBar* CreateStatusBar( int WXUNUSED(number)=1, long WXUNUSED(style)=1, wxWindowID WXUNUSED(id)=1, const wxString& WXUNUSED(name)=WXSTRINGCAST NULL ) {return (wxStatusBar*)NULL; } virtual wxStatusBar *GetStatusBar() const { return (wxStatusBar*)NULL; } - virtual void SetStatusText( const wxString &WXUNUSED(text), int WXUNUSED(number) ) {} + virtual void SetStatusText( const wxString &WXUNUSED(text), int WXUNUSED(number)=0 ) {} virtual void SetStatusWidths( int WXUNUSED(n), const int WXUNUSED(widths_field)[] ) {} // no size hints diff --git a/include/wx/gtk1/window.h b/include/wx/gtk1/window.h index 6730525a86..aa722a2f14 100644 --- a/include/wx/gtk1/window.h +++ b/include/wx/gtk1/window.h @@ -125,8 +125,10 @@ public: const wxSize &size, long style, const wxString &name ); void PostCreation(); - void InsertChild(wxWindow *child) { (*m_insertCallback)(this, child); } - void DoAddChild(wxWindow *child) { AddChild(child); InsertChild(child); } + /* internal addition of child windows. differs from class + to class not by using virtual functions but by using + the m_insertCallback */ + void DoAddChild(wxWindow *child); /* the methods below are required because many native widgets are composed of several subwidgets and setting a style for @@ -139,14 +141,14 @@ public: virtual bool IsOwnGtkWindow( GdkWindow *window ); void ConnectWidget( GtkWidget *widget ); - // creates a new widget style if none is there - // and sets m_widgetStyle to this value. + /* creates a new widget style if none is there + and sets m_widgetStyle to this value. */ GtkStyle *GetWidgetStyle(); - // called by SetFont() and SetXXXColour etc + /* called by SetFont() and SetXXXColour etc */ void SetWidgetStyle(); - // overridden in many GTK widgets + /* overridden in many GTK widgets */ virtual void ApplyWidgetStyle(); #if wxUSE_TOOLTIPS @@ -162,11 +164,11 @@ public: int m_x, m_y; int m_width, m_height; - // see the docs in src/gtk/window.cpp + /* see the docs in src/gtk/window.cpp */ GtkWidget *m_widget; GtkWidget *m_wxwindow; - // scrolling stuff + /* scrolling stuff */ GtkAdjustment *m_hAdjust,*m_vAdjust; float m_oldHorizontalPos; float m_oldVerticalPos; diff --git a/samples/layout/layout.cpp b/samples/layout/layout.cpp index 23209958d2..54c4b3a740 100644 --- a/samples/layout/layout.cpp +++ b/samples/layout/layout.cpp @@ -171,7 +171,8 @@ END_EVENT_TABLE() void MyFrame::LoadFile(wxCommandEvent& WXUNUSED(event) ) { - wxString s = wxFileSelector("Load text file", (const char *) NULL, (const char *) NULL, (const char *) NULL, "*.txt"); + wxString s = wxFileSelector( _T("Load text file"), (const wxChar *) NULL, + (const wxChar *) NULL, (const wxChar *) NULL, _T("*.txt") ); if (s != "") { #ifdef __WXMSW__ diff --git a/samples/mdi/mdi.cpp b/samples/mdi/mdi.cpp index ebcd2cc977..45474995f1 100644 --- a/samples/mdi/mdi.cpp +++ b/samples/mdi/mdi.cpp @@ -172,7 +172,7 @@ void MyFrame::OnClose(wxCloseEvent& event) if ( event.CanVeto() && (gs_nFrames > 0) ) { wxString msg; - msg.Printf("%d windows still open, close anyhow?", gs_nFrames); + msg.Printf(_T("%d windows still open, close anyhow?"), gs_nFrames); if ( wxMessageBox(msg, "Please confirm", wxICON_QUESTION | wxYES_NO) != wxYES ) { @@ -205,7 +205,7 @@ void MyFrame::OnNewWindow(wxCommandEvent& WXUNUSED(event) ) wxDEFAULT_FRAME_STYLE); wxString title; - title.Printf("Canvas Frame %d", ++gs_nFrames); + title.Printf(_T("Canvas Frame %d"), ++gs_nFrames); subframe->SetTitle(title); diff --git a/src/gtk/dialog.cpp b/src/gtk/dialog.cpp index 987c3b9c34..480a949a13 100644 --- a/src/gtk/dialog.cpp +++ b/src/gtk/dialog.cpp @@ -169,6 +169,32 @@ gtk_dialog_map_callback( GtkWidget *widget, wxDialog *win ) return FALSE; } +//----------------------------------------------------------------------------- +// InsertChild for wxDialog +//----------------------------------------------------------------------------- + +/* Callback for wxFrame. This very strange beast has to be used because + * C++ has no virtual methods in a constructor. We have to emulate a + * virtual function here as wxWindows requires different ways to insert + * a child in container classes. */ + +static void wxInsertChildInDialog( wxDialog* parent, wxWindow* child ) +{ + gtk_myfixed_put( GTK_MYFIXED(parent->m_wxwindow), + GTK_WIDGET(child->m_widget), + child->m_x, + child->m_y, + child->m_width, + child->m_height ); + + if (parent->HasFlag(wxTAB_TRAVERSAL)) + { + /* we now allow a window to get the focus as long as it + doesn't have any children. */ + GTK_WIDGET_UNSET_FLAGS( parent->m_wxwindow, GTK_CAN_FOCUS ); + } +} + //----------------------------------------------------------------------------- // wxDialog //----------------------------------------------------------------------------- @@ -211,6 +237,8 @@ bool wxDialog::Create( wxWindow *parent, PreCreation( parent, id, pos, size, style, name ); + m_insertCallback = (wxInsertChildFunction) wxInsertChildInDialog; + m_widget = gtk_window_new( GTK_WINDOW_TOPLEVEL ); if (!name.IsEmpty()) diff --git a/src/gtk/frame.cpp b/src/gtk/frame.cpp index 829a2cdf74..ddf2120556 100644 --- a/src/gtk/frame.cpp +++ b/src/gtk/frame.cpp @@ -304,7 +304,7 @@ END_EVENT_TABLE() IMPLEMENT_DYNAMIC_CLASS(wxFrame,wxWindow) -wxFrame::wxFrame() +void wxFrame::Init() { m_frameMenuBar = (wxMenuBar *) NULL; m_frameStatusBar = (wxStatusBar *) NULL; @@ -315,7 +315,6 @@ wxFrame::wxFrame() m_mainWidget = (GtkWidget*) NULL; m_menuBarDetached = FALSE; m_toolBarDetached = FALSE; - m_insertCallback = (wxInsertChildFunction) NULL; m_insertInClientArea = TRUE; } @@ -323,17 +322,8 @@ wxFrame::wxFrame( wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &pos, const wxSize &size, long style, const wxString &name ) { - m_frameMenuBar = (wxMenuBar *) NULL; - m_frameStatusBar = (wxStatusBar *) NULL; - m_frameToolBar = (wxToolBar *) NULL; - m_sizeSet = FALSE; - m_miniEdge = 0; - m_miniTitle = 0; - m_mainWidget = (GtkWidget*) NULL; - m_menuBarDetached = FALSE; - m_toolBarDetached = FALSE; - m_insertCallback = (wxInsertChildFunction) NULL; - m_insertInClientArea = TRUE; + Init(); + Create( parent, id, title, pos, size, style, name ); } diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 93cb0f3c64..d12fcf4e69 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -1625,7 +1625,7 @@ void wxWindow::Init() m_scrollGC = (GdkGC*) NULL; m_widgetStyle = (GtkStyle*) NULL; - m_insertCallback = wxInsertChildInWindow; + m_insertCallback = (wxInsertChildFunction) NULL; m_isStaticBox = FALSE; m_acceptsFocus = FALSE; @@ -1651,6 +1651,8 @@ bool wxWindow::Create( wxWindow *parent, wxWindowID id, { PreCreation( parent, id, pos, size, style, name ); + m_insertCallback = wxInsertChildInWindow; + m_widget = gtk_scrolled_window_new( (GtkAdjustment *) NULL, (GtkAdjustment *) NULL ); GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); @@ -2366,6 +2368,21 @@ bool wxWindow::Reparent( wxWindow *newParent ) return TRUE; } +void wxWindow::DoAddChild(wxWindow *child) +{ + wxASSERT_MSG( (m_widget != NULL), _T("invalid window") ); + + wxASSERT_MSG( (child != NULL), _T("invalid child window") ); + + wxASSERT_MSG( (m_insertCallback != NULL), _T("invalid child insertion function") ); + + /* add to list */ + AddChild( child ); + + /* insert GTK representation */ + (*m_insertCallback)(this, child); +} + void wxWindow::Raise() { wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); diff --git a/src/gtk1/dialog.cpp b/src/gtk1/dialog.cpp index 987c3b9c34..480a949a13 100644 --- a/src/gtk1/dialog.cpp +++ b/src/gtk1/dialog.cpp @@ -169,6 +169,32 @@ gtk_dialog_map_callback( GtkWidget *widget, wxDialog *win ) return FALSE; } +//----------------------------------------------------------------------------- +// InsertChild for wxDialog +//----------------------------------------------------------------------------- + +/* Callback for wxFrame. This very strange beast has to be used because + * C++ has no virtual methods in a constructor. We have to emulate a + * virtual function here as wxWindows requires different ways to insert + * a child in container classes. */ + +static void wxInsertChildInDialog( wxDialog* parent, wxWindow* child ) +{ + gtk_myfixed_put( GTK_MYFIXED(parent->m_wxwindow), + GTK_WIDGET(child->m_widget), + child->m_x, + child->m_y, + child->m_width, + child->m_height ); + + if (parent->HasFlag(wxTAB_TRAVERSAL)) + { + /* we now allow a window to get the focus as long as it + doesn't have any children. */ + GTK_WIDGET_UNSET_FLAGS( parent->m_wxwindow, GTK_CAN_FOCUS ); + } +} + //----------------------------------------------------------------------------- // wxDialog //----------------------------------------------------------------------------- @@ -211,6 +237,8 @@ bool wxDialog::Create( wxWindow *parent, PreCreation( parent, id, pos, size, style, name ); + m_insertCallback = (wxInsertChildFunction) wxInsertChildInDialog; + m_widget = gtk_window_new( GTK_WINDOW_TOPLEVEL ); if (!name.IsEmpty()) diff --git a/src/gtk1/frame.cpp b/src/gtk1/frame.cpp index 829a2cdf74..ddf2120556 100644 --- a/src/gtk1/frame.cpp +++ b/src/gtk1/frame.cpp @@ -304,7 +304,7 @@ END_EVENT_TABLE() IMPLEMENT_DYNAMIC_CLASS(wxFrame,wxWindow) -wxFrame::wxFrame() +void wxFrame::Init() { m_frameMenuBar = (wxMenuBar *) NULL; m_frameStatusBar = (wxStatusBar *) NULL; @@ -315,7 +315,6 @@ wxFrame::wxFrame() m_mainWidget = (GtkWidget*) NULL; m_menuBarDetached = FALSE; m_toolBarDetached = FALSE; - m_insertCallback = (wxInsertChildFunction) NULL; m_insertInClientArea = TRUE; } @@ -323,17 +322,8 @@ wxFrame::wxFrame( wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &pos, const wxSize &size, long style, const wxString &name ) { - m_frameMenuBar = (wxMenuBar *) NULL; - m_frameStatusBar = (wxStatusBar *) NULL; - m_frameToolBar = (wxToolBar *) NULL; - m_sizeSet = FALSE; - m_miniEdge = 0; - m_miniTitle = 0; - m_mainWidget = (GtkWidget*) NULL; - m_menuBarDetached = FALSE; - m_toolBarDetached = FALSE; - m_insertCallback = (wxInsertChildFunction) NULL; - m_insertInClientArea = TRUE; + Init(); + Create( parent, id, title, pos, size, style, name ); } diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index 93cb0f3c64..d12fcf4e69 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -1625,7 +1625,7 @@ void wxWindow::Init() m_scrollGC = (GdkGC*) NULL; m_widgetStyle = (GtkStyle*) NULL; - m_insertCallback = wxInsertChildInWindow; + m_insertCallback = (wxInsertChildFunction) NULL; m_isStaticBox = FALSE; m_acceptsFocus = FALSE; @@ -1651,6 +1651,8 @@ bool wxWindow::Create( wxWindow *parent, wxWindowID id, { PreCreation( parent, id, pos, size, style, name ); + m_insertCallback = wxInsertChildInWindow; + m_widget = gtk_scrolled_window_new( (GtkAdjustment *) NULL, (GtkAdjustment *) NULL ); GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); @@ -2366,6 +2368,21 @@ bool wxWindow::Reparent( wxWindow *newParent ) return TRUE; } +void wxWindow::DoAddChild(wxWindow *child) +{ + wxASSERT_MSG( (m_widget != NULL), _T("invalid window") ); + + wxASSERT_MSG( (child != NULL), _T("invalid child window") ); + + wxASSERT_MSG( (m_insertCallback != NULL), _T("invalid child insertion function") ); + + /* add to list */ + AddChild( child ); + + /* insert GTK representation */ + (*m_insertCallback)(this, child); +} + void wxWindow::Raise() { wxCHECK_RET( (m_widget != NULL), _T("invalid window") );