]> git.saurik.com Git - wxWidgets.git/commitdiff
A bit more Unicode compilation.
authorRobert Roebling <robert@roebling.de>
Sun, 30 May 1999 16:20:42 +0000 (16:20 +0000)
committerRobert Roebling <robert@roebling.de>
Sun, 30 May 1999 16:20:42 +0000 (16:20 +0000)
  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

14 files changed:
include/wx/gtk/frame.h
include/wx/gtk/mdi.h
include/wx/gtk/window.h
include/wx/gtk1/frame.h
include/wx/gtk1/mdi.h
include/wx/gtk1/window.h
samples/layout/layout.cpp
samples/mdi/mdi.cpp
src/gtk/dialog.cpp
src/gtk/frame.cpp
src/gtk/window.cpp
src/gtk1/dialog.cpp
src/gtk1/frame.cpp
src/gtk1/window.cpp

index 145f5c6392f4a498a1003c9b70d1ee23343739cf..aa968fe8673da228b12d47112039529f3faa052e 100644 (file)
@@ -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);
index ff370ad38ceb504deac6e5c41b7cfa4815c71f4c..152af27a48faa8e681689d658c552cd7e304d5b6 100644 (file)
@@ -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
index 6730525a8696388c898eaa0b701f29226930d1f2..aa722a2f14822dd19052cf8b08b1c53219487def 100644 (file)
@@ -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;
index 145f5c6392f4a498a1003c9b70d1ee23343739cf..aa968fe8673da228b12d47112039529f3faa052e 100644 (file)
@@ -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);
index ff370ad38ceb504deac6e5c41b7cfa4815c71f4c..152af27a48faa8e681689d658c552cd7e304d5b6 100644 (file)
@@ -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
index 6730525a8696388c898eaa0b701f29226930d1f2..aa722a2f14822dd19052cf8b08b1c53219487def 100644 (file)
@@ -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;
index 23209958d2c2d893b3275a89960b2c2181a902ba..54c4b3a74082899943a3a2a7735ff1a9cc6454b5 100644 (file)
@@ -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__
index ebcd2cc97711269695cad1b6f9c5aaaa876da12e..45474995f16ed546934df1c4558c0415dd285666 100644 (file)
@@ -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);
 
index 987c3b9c343ece46f657a7bde8b8aad423df2349..480a949a13d9b7c3d35c792b44602719a554a19f 100644 (file)
@@ -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())
index 829a2cdf744b16a5a01ef5ceaeabbbe3ae8603ff..ddf2120556a143cfccc7124726e5ceba5c06642b 100644 (file)
@@ -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 );
 }
 
index 93cb0f3c647acc87ddcae2cea7eff61b9d076b24..d12fcf4e69322147d9481d7785b95598c6925287 100644 (file)
@@ -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") );
index 987c3b9c343ece46f657a7bde8b8aad423df2349..480a949a13d9b7c3d35c792b44602719a554a19f 100644 (file)
@@ -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())
index 829a2cdf744b16a5a01ef5ceaeabbbe3ae8603ff..ddf2120556a143cfccc7124726e5ceba5c06642b 100644 (file)
@@ -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 );
 }
 
index 93cb0f3c647acc87ddcae2cea7eff61b9d076b24..d12fcf4e69322147d9481d7785b95598c6925287 100644 (file)
@@ -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") );