]> git.saurik.com Git - wxWidgets.git/commitdiff
mdi private menus
authorRobert Roebling <robert@roebling.de>
Wed, 22 Jul 1998 22:13:31 +0000 (22:13 +0000)
committerRobert Roebling <robert@roebling.de>
Wed, 22 Jul 1998 22:13:31 +0000 (22:13 +0000)
Chris's check menu additions
frame fixes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

29 files changed:
docs/wxQt.html
include/wx/gtk/bitmap.h
include/wx/gtk/frame.h
include/wx/gtk/mdi.h
include/wx/gtk/menu.h
include/wx/gtk/notebook.h
include/wx/gtk/tbargtk.h
include/wx/gtk1/bitmap.h
include/wx/gtk1/frame.h
include/wx/gtk1/mdi.h
include/wx/gtk1/menu.h
include/wx/gtk1/notebook.h
include/wx/gtk1/tbargtk.h
include/wx/toolbar.h
samples/mdi/mdi.cpp
src/gtk/frame.cpp
src/gtk/mdi.cpp
src/gtk/menu.cpp
src/gtk/notebook.cpp
src/gtk/tbargtk.cpp
src/gtk1/frame.cpp
src/gtk1/mdi.cpp
src/gtk1/menu.cpp
src/gtk1/notebook.cpp
src/gtk1/tbargtk.cpp
user/wxFile/wxFile.cpp
user/wxFile/wxFile.h
user/wxTest/wxTest.cpp
user/wxTest/wxTest.h

index b271a816a132735850bc9937e0e869bca3a9d4a4..9fd51dc7fdc17a4375e7a237c071e78ca57d45c0 100644 (file)
@@ -1,9 +1,9 @@
       $Id$
     <br>
       $Id$
     <br>
-    <H1>Proposal for a wxQt project</H1>
+    <H1>Proposal for a port of wxWindows to Qt - wxQt</H1>
     <p>
       Following the recent discussions
     <p>
       Following the recent discussions
-      and flamewars about KDE vs Gnome, I got worried that we see a
+      and flamewars about KDE vs Gnome, we got worried that we'll see a
       repetition of the same damaging infighting from which Unix has
       suffered before. Competition is a good thing, but the current
       situation leaves application developers with a difficult decision to
       repetition of the same damaging infighting from which Unix has
       suffered before. Competition is a good thing, but the current
       situation leaves application developers with a difficult decision to
       
       The people on the wxWindows developers team thought that we might have
       a solution for this problem, if we can get some outside help to get it
       
       The people on the wxWindows developers team thought that we might have
       a solution for this problem, if we can get some outside help to get it
-      done. Let me explain: wxWindows is a cross-platform development
+      done. Let us explain: wxWindows is a cross-platform development
       toolkit, a library of C++ classes which provide GUI concepts as well
       as other cross-platform issues such as container classes, debug
       toolkit, a library of C++ classes which provide GUI concepts as well
       as other cross-platform issues such as container classes, debug
-      features or configuration management. It has been around since 1992G
+      features or configuration management. It has been around since 1992
       and started by supporting Motif, XView and MS-Windows, with a direct
       X11/Xt port added later. Last year, a major rewrite was started and we
       now have a much advanced library, available for MS Windows, with a
       and started by supporting Motif, XView and MS-Windows, with a direct
       X11/Xt port added later. Last year, a major rewrite was started and we
       now have a much advanced library, available for MS Windows, with a
       operating systems (a MacOS port is under construction, too), it could
       easily bridge the gap between KDE and Gnome. The quick evolution of
       wxGTK has shown that a new port based on an existing widget set or
       operating systems (a MacOS port is under construction, too), it could
       easily bridge the gap between KDE and Gnome. The quick evolution of
       wxGTK has shown that a new port based on an existing widget set or
-      toolkit can easily be created by a small team within few
+      toolkit can easily be created by a small team within few
       months. Therefore, we would like to start a project for a Qt/Harmony
       based wxWindow library, wxQt. It would then be possible for
       months. Therefore, we would like to start a project for a Qt/Harmony
       based wxWindow library, wxQt. It would then be possible for
-      application developers to write the same source and copile it either
+      application developers to write the same source and compile it either
       for KDE, Gnome or even any of the other supported systems.
     <p>
       
       for KDE, Gnome or even any of the other supported systems.
     <p>
       
@@ -50,7 +50,7 @@
       code from the other ports.
 
       Please, join us in this effort and, if you feel that you could
       code from the other ports.
 
       Please, join us in this effort and, if you feel that you could
-      contribute, join the wxWindows developers mainling list for further
+      contribute, join the wxWindows developers mailing list for further
       discussions. Just send a mail containing "<tt>subscribe</tt>" to
     <tt>wxwin-developers-request@x.dent.med.uni-muenchen.de</tt>
     <p>
       discussions. Just send a mail containing "<tt>subscribe</tt>" to
     <tt>wxwin-developers-request@x.dent.med.uni-muenchen.de</tt>
     <p>
index 94795def8e317e80cd18dc76e87c586d90721abd..95db695c3b209d75995c57ac1232d8e5885de545 100644 (file)
@@ -28,7 +28,7 @@
 class wxDC;
 class wxPaintDC;
 class wxMemoryDC;
 class wxDC;
 class wxPaintDC;
 class wxMemoryDC;
-class wxToolBarGTK;
+class wxToolBar;
 class wxBitmapButton;
 class wxStaticBitmap;
 
 class wxBitmapButton;
 class wxStaticBitmap;
 
@@ -56,7 +56,7 @@ class wxMask: public wxObject
     friend wxBitmap;
     friend wxDC;
     friend wxPaintDC;
     friend wxBitmap;
     friend wxDC;
     friend wxPaintDC;
-    friend wxToolBarGTK;
+    friend wxToolBar;
     friend wxBitmapButton;
     friend wxStaticBitmap;
     
     friend wxBitmapButton;
     friend wxStaticBitmap;
     
@@ -116,7 +116,7 @@ class wxBitmap: public wxObject
     friend wxDC;
     friend wxPaintDC;
     friend wxMemoryDC;
     friend wxDC;
     friend wxPaintDC;
     friend wxMemoryDC;
-    friend wxToolBarGTK;
+    friend wxToolBar;
     friend wxBitmapButton;
     friend wxStaticBitmap;
 
     friend wxBitmapButton;
     friend wxStaticBitmap;
 
index 9e909a9b5eacfe2f50470fc2b74dbdc1dcceda2e..07e4e586ff482da2534fd6edbc39e600871b3e35 100644 (file)
@@ -26,7 +26,7 @@
 // classes
 //-----------------------------------------------------------------------------
 
 // classes
 //-----------------------------------------------------------------------------
 
-class wxRadioBox;
+class wxMDIChildFrame;
 
 class wxFrame;
 
 
 class wxFrame;
 
@@ -73,16 +73,18 @@ class wxFrame: public wxWindow
     
   //private:    
     
     
   //private:    
     
-    void GtkOnSize( int x, int y, int width, int height );
+    virtual void GtkOnSize( int x, int y, int width, int height );
     void DoMenuUpdates(void);
     void DoMenuUpdates(wxMenu* menu);
     
     void DoMenuUpdates(void);
     void DoMenuUpdates(wxMenu* menu);
     
+    
   private:
   
     friend        wxWindow;
   private:
   
     friend        wxWindow;
+    friend        wxMDIChildFrame;
     
     
-    GtkWidget    *m_mainWindow;
     wxMenuBar    *m_frameMenuBar;
     wxMenuBar    *m_frameMenuBar;
+    GtkWidget    *m_mainWindow;
     wxStatusBar  *m_frameStatusBar;
     bool          m_doingOnSize;
     wxString      m_title;
     wxStatusBar  *m_frameStatusBar;
     bool          m_doingOnSize;
     wxString      m_title;
index 22fe70b2c47b0edafc20d8cb2c8b1ad65e34b793..94fe7216b0319eee9135d3d9e6348b9d1218db46 100644 (file)
@@ -22,6 +22,7 @@
 #include "wx/control.h"
 #include "wx/panel.h"
 #include "wx/frame.h"
 #include "wx/control.h"
 #include "wx/panel.h"
 #include "wx/frame.h"
+#include "wx/toolbar.h"
 
 //-----------------------------------------------------------------------------
 // classes
 
 //-----------------------------------------------------------------------------
 // classes
@@ -63,30 +64,40 @@ class wxMDIParentFrame: public wxFrame
       long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
       const wxString& name = wxFrameNameStr );
 
       long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
       const wxString& name = wxFrameNameStr );
 
-  void OnSize( wxSizeEvent& event );
-  void OnActivate( wxActivateEvent& event );
 
 
-  void SetMenuBar( wxMenuBar *menu_bar );
-  void GetClientSize(int *width, int *height) const;
-  wxMDIChildFrame *GetActiveChild(void) const;
+    void GetClientSize(int *width, int *height) const;
+    wxMDIChildFrame *GetActiveChild(void) const;
+    
+    virtual void SetToolBar( wxToolBar *toolbar );
+    virtual wxWindow *GetToolBar(void) const;
   
   
-  wxMDIClientWindow *GetClientWindow(void) const; 
-  virtual wxMDIClientWindow *OnCreateClient(void);
+    wxMDIClientWindow *GetClientWindow(void) const; 
+    virtual wxMDIClientWindow *OnCreateClient(void);
   
   
-  virtual void Cascade(void) {};
-  virtual void Tile(void) {};
-  virtual void ArrangeIcons(void) {};
-  virtual void ActivateNext(void);
-  virtual void ActivatePrevious(void);
-
-  void OnSysColourChanged(wxSysColourChangedEvent& event);
+    virtual void Cascade(void) {};
+    virtual void Tile(void) {};
+    virtual void ArrangeIcons(void) {};
+    virtual void ActivateNext(void);
+    virtual void ActivatePrevious(void);
+
+    void OnActivate( wxActivateEvent& event );
+    void OnSysColourChanged( wxSysColourChangedEvent& event );
+    
+ //private: 
+    wxMDIChildFrame                *m_currentChild;
+    
+    void SetMDIMenuBar( wxMenuBar *menu_bar );
+    virtual void GtkOnSize( int x, int y, int width, int height );
     
     
- protected:
-    wxMDIClientWindow *             m_clientWindow;
-    wxMDIChildFrame *               m_currentChild;
+ private:
+    wxMDIClientWindow              *m_clientWindow;
     bool                            m_parentFrameActive;
     bool                            m_parentFrameActive;
+    wxMenuBar                      *m_mdiMenuBar;
+    wxToolBar                      *m_toolBar;
 
 
-//  DECLARE_EVENT_TABLE()    
+  DECLARE_EVENT_TABLE()    
 };
 
 //-----------------------------------------------------------------------------
 };
 
 //-----------------------------------------------------------------------------
@@ -120,9 +131,19 @@ class wxMDIChildFrame: public wxPanel
     virtual void Restore(void) {};
     virtual void Activate(void);
     
     virtual void Restore(void) {};
     virtual void Activate(void);
     
+    bool Destroy(void);
+    void OnCloseWindow( wxCloseEvent& event );
+    
   public:
   
   public:
   
-    wxString    m_title;
+    wxString           m_title;
+    wxMenuBar         *m_menuBar;
+    
+//  private:
+  
+    GtkNotebookPage   *m_page;
+    
+  DECLARE_EVENT_TABLE()    
 };
 
 //-----------------------------------------------------------------------------
 };
 
 //-----------------------------------------------------------------------------
index d4c48d4cd44e3a6853e877223986a3d3e41b495e..50ed50f32b814b44acd751cac61bd4daad320c93 100644 (file)
@@ -48,6 +48,9 @@ class wxMenuBar: public wxWindow
     wxMenuBar(void);
     void Append( wxMenu *menu, const wxString &title );
     int FindMenuItem( const wxString &menuString, const wxString &itemString ) const;
     wxMenuBar(void);
     void Append( wxMenu *menu, const wxString &title );
     int FindMenuItem( const wxString &menuString, const wxString &itemString ) const;
+    wxMenuItem* FindMenuItemById( int id ) const;
+    bool IsChecked( int id ) const;
+    bool IsEnabled( int id ) const;
     
     wxList       m_menus;
     GtkWidget   *m_menubar;
     
     wxList       m_menus;
     GtkWidget   *m_menubar;
@@ -76,14 +79,16 @@ class wxMenuItem: public wxObject
     
     GtkWidget    *m_menuItem;  // GtkMenuItem
     
     
     GtkWidget    *m_menuItem;  // GtkMenuItem
     
-  bool              IsSeparator() const { return m_id == ID_SEPARATOR;  }
-  bool              IsEnabled()   const { return m_isEnabled;  }
-  bool              IsChecked()   const { return m_checked;  }
-
-  int               GetId()       const { return m_id;    }
-  const wxString&   GetHelp()     const { return m_helpStr;   }
-  wxMenu           *GetSubMenu()  const { return m_subMenu;  }
-  
+    bool IsCheckable()         const { return m_isCheckMenu; }
+    bool IsSeparator()         const { return m_id == ID_SEPARATOR;  }
+    bool IsEnabled()           const { return m_isEnabled;  }
+    int  GetId()               const { return m_id; }
+    const wxString& GetHelp()  const { return m_helpStr; }
+    wxMenu *GetSubMenu()       const { return m_subMenu; }
+    
+    void Check( bool check );
+    bool IsChecked() const;
+    void Enable( bool enable );
 };
 
 class wxMenu: public wxEvtHandler
 };
 
 class wxMenu: public wxEvtHandler
@@ -99,6 +104,7 @@ class wxMenu: public wxEvtHandler
     void Append( int id, const wxString &item,
       wxMenu *subMenu, const wxString &helpStr = "" );
     int FindItem( const wxString itemString ) const;
     void Append( int id, const wxString &item,
       wxMenu *subMenu, const wxString &helpStr = "" );
     int FindItem( const wxString itemString ) const;
+    wxMenuItem* FindItemForId( int id ) const;
     void Break(void) {};
     void Check(int id, bool Flag);
     void Enable( int id, bool enable );
     void Break(void) {};
     void Check(int id, bool Flag);
     void Enable( int id, bool enable );
index e423b69564a92670c934d7a716914153f8425288..035520de8fe15ce5cc18ec0127bcf29c8dd333aa 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        tabctrl.h
-// Purpose:     wxTabCtrl class
+// Name:        notebook.h
+// Purpose:     wxNotebook class
 // Author:      Robert Roebling
 // Modified by:
 // RCS-ID:      $Id$
 // Author:      Robert Roebling
 // Modified by:
 // RCS-ID:      $Id$
@@ -8,8 +8,8 @@
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef __TABCTRLH__
-#define __TABCTRLH__
+#ifndef __NOTEBOOKH__
+#define __NOTEBOOKH__
 
 #ifdef __GNUG__
 #pragma interface "notebook.h"
 
 #ifdef __GNUG__
 #pragma interface "notebook.h"
@@ -186,4 +186,4 @@ typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&);
   },
 
 #endif
   },
 
 #endif
-    // __TABCTRLH__
+    // __NOTEBOOKH__
index 667f84ff47f01fe1e6089a21ef6facf85c772144..8a952ec2da8e4daa64b74d2a78c5d9f2b2461f1a 100644 (file)
@@ -24,7 +24,7 @@
 //-----------------------------------------------------------------------------
 
 class wxToolBarTool;
 //-----------------------------------------------------------------------------
 
 class wxToolBarTool;
-class wxToolBarGTK;
+class wxToolBar;
 
 //-----------------------------------------------------------------------------
 // constants
 
 //-----------------------------------------------------------------------------
 // constants
@@ -50,7 +50,7 @@ class wxToolBarTool: public wxObject
   public:
 
     wxToolBarTool(void) {}; 
   public:
 
     wxToolBarTool(void) {}; 
-    wxToolBarTool( wxToolBarGTK *owner, int theIndex = 0, 
+    wxToolBarTool( wxToolBar *owner, int theIndex = 0, 
       const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap,
       bool toggle = FALSE, wxObject *clientData = NULL, 
       const wxString& shortHelpString = "", const wxString& longHelpString = "");
       const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap,
       bool toggle = FALSE, wxObject *clientData = NULL, 
       const wxString& shortHelpString = "", const wxString& longHelpString = "");
@@ -70,24 +70,24 @@ class wxToolBarTool: public wxObject
     bool                  m_isMenuCommand;
     wxString              m_shortHelpString;
     wxString              m_longHelpString;
     bool                  m_isMenuCommand;
     wxString              m_shortHelpString;
     wxString              m_longHelpString;
-    wxToolBarGTK         *m_owner;
+    wxToolBar            *m_owner;
 };
 
 //-----------------------------------------------------------------------------
 };
 
 //-----------------------------------------------------------------------------
-// wxToolBarGTK
+// wxToolBar
 //-----------------------------------------------------------------------------
 
 //-----------------------------------------------------------------------------
 
-class wxToolBarGTK: public wxControl
+class wxToolBar: public wxControl
 {
 {
-  DECLARE_DYNAMIC_CLASS(wxToolBarGTK)
+  DECLARE_DYNAMIC_CLASS(wxToolBar)
   
   public:
 
   
   public:
 
-    wxToolBarGTK(void);
-    wxToolBarGTK( wxWindow *parent, wxWindowID id, 
+    wxToolBar(void);
+    wxToolBar( wxWindow *parent, wxWindowID id, 
       const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
       long style = 0, const wxString& name = wxToolBarNameStr );
       const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
       long style = 0, const wxString& name = wxToolBarNameStr );
-   ~wxToolBarGTK(void);
+   ~wxToolBar(void);
 
    bool Create( wxWindow *parent, wxWindowID id, 
      const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
 
    bool Create( wxWindow *parent, wxWindowID id, 
      const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
index 94795def8e317e80cd18dc76e87c586d90721abd..95db695c3b209d75995c57ac1232d8e5885de545 100644 (file)
@@ -28,7 +28,7 @@
 class wxDC;
 class wxPaintDC;
 class wxMemoryDC;
 class wxDC;
 class wxPaintDC;
 class wxMemoryDC;
-class wxToolBarGTK;
+class wxToolBar;
 class wxBitmapButton;
 class wxStaticBitmap;
 
 class wxBitmapButton;
 class wxStaticBitmap;
 
@@ -56,7 +56,7 @@ class wxMask: public wxObject
     friend wxBitmap;
     friend wxDC;
     friend wxPaintDC;
     friend wxBitmap;
     friend wxDC;
     friend wxPaintDC;
-    friend wxToolBarGTK;
+    friend wxToolBar;
     friend wxBitmapButton;
     friend wxStaticBitmap;
     
     friend wxBitmapButton;
     friend wxStaticBitmap;
     
@@ -116,7 +116,7 @@ class wxBitmap: public wxObject
     friend wxDC;
     friend wxPaintDC;
     friend wxMemoryDC;
     friend wxDC;
     friend wxPaintDC;
     friend wxMemoryDC;
-    friend wxToolBarGTK;
+    friend wxToolBar;
     friend wxBitmapButton;
     friend wxStaticBitmap;
 
     friend wxBitmapButton;
     friend wxStaticBitmap;
 
index 9e909a9b5eacfe2f50470fc2b74dbdc1dcceda2e..07e4e586ff482da2534fd6edbc39e600871b3e35 100644 (file)
@@ -26,7 +26,7 @@
 // classes
 //-----------------------------------------------------------------------------
 
 // classes
 //-----------------------------------------------------------------------------
 
-class wxRadioBox;
+class wxMDIChildFrame;
 
 class wxFrame;
 
 
 class wxFrame;
 
@@ -73,16 +73,18 @@ class wxFrame: public wxWindow
     
   //private:    
     
     
   //private:    
     
-    void GtkOnSize( int x, int y, int width, int height );
+    virtual void GtkOnSize( int x, int y, int width, int height );
     void DoMenuUpdates(void);
     void DoMenuUpdates(wxMenu* menu);
     
     void DoMenuUpdates(void);
     void DoMenuUpdates(wxMenu* menu);
     
+    
   private:
   
     friend        wxWindow;
   private:
   
     friend        wxWindow;
+    friend        wxMDIChildFrame;
     
     
-    GtkWidget    *m_mainWindow;
     wxMenuBar    *m_frameMenuBar;
     wxMenuBar    *m_frameMenuBar;
+    GtkWidget    *m_mainWindow;
     wxStatusBar  *m_frameStatusBar;
     bool          m_doingOnSize;
     wxString      m_title;
     wxStatusBar  *m_frameStatusBar;
     bool          m_doingOnSize;
     wxString      m_title;
index 22fe70b2c47b0edafc20d8cb2c8b1ad65e34b793..94fe7216b0319eee9135d3d9e6348b9d1218db46 100644 (file)
@@ -22,6 +22,7 @@
 #include "wx/control.h"
 #include "wx/panel.h"
 #include "wx/frame.h"
 #include "wx/control.h"
 #include "wx/panel.h"
 #include "wx/frame.h"
+#include "wx/toolbar.h"
 
 //-----------------------------------------------------------------------------
 // classes
 
 //-----------------------------------------------------------------------------
 // classes
@@ -63,30 +64,40 @@ class wxMDIParentFrame: public wxFrame
       long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
       const wxString& name = wxFrameNameStr );
 
       long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
       const wxString& name = wxFrameNameStr );
 
-  void OnSize( wxSizeEvent& event );
-  void OnActivate( wxActivateEvent& event );
 
 
-  void SetMenuBar( wxMenuBar *menu_bar );
-  void GetClientSize(int *width, int *height) const;
-  wxMDIChildFrame *GetActiveChild(void) const;
+    void GetClientSize(int *width, int *height) const;
+    wxMDIChildFrame *GetActiveChild(void) const;
+    
+    virtual void SetToolBar( wxToolBar *toolbar );
+    virtual wxWindow *GetToolBar(void) const;
   
   
-  wxMDIClientWindow *GetClientWindow(void) const; 
-  virtual wxMDIClientWindow *OnCreateClient(void);
+    wxMDIClientWindow *GetClientWindow(void) const; 
+    virtual wxMDIClientWindow *OnCreateClient(void);
   
   
-  virtual void Cascade(void) {};
-  virtual void Tile(void) {};
-  virtual void ArrangeIcons(void) {};
-  virtual void ActivateNext(void);
-  virtual void ActivatePrevious(void);
-
-  void OnSysColourChanged(wxSysColourChangedEvent& event);
+    virtual void Cascade(void) {};
+    virtual void Tile(void) {};
+    virtual void ArrangeIcons(void) {};
+    virtual void ActivateNext(void);
+    virtual void ActivatePrevious(void);
+
+    void OnActivate( wxActivateEvent& event );
+    void OnSysColourChanged( wxSysColourChangedEvent& event );
+    
+ //private: 
+    wxMDIChildFrame                *m_currentChild;
+    
+    void SetMDIMenuBar( wxMenuBar *menu_bar );
+    virtual void GtkOnSize( int x, int y, int width, int height );
     
     
- protected:
-    wxMDIClientWindow *             m_clientWindow;
-    wxMDIChildFrame *               m_currentChild;
+ private:
+    wxMDIClientWindow              *m_clientWindow;
     bool                            m_parentFrameActive;
     bool                            m_parentFrameActive;
+    wxMenuBar                      *m_mdiMenuBar;
+    wxToolBar                      *m_toolBar;
 
 
-//  DECLARE_EVENT_TABLE()    
+  DECLARE_EVENT_TABLE()    
 };
 
 //-----------------------------------------------------------------------------
 };
 
 //-----------------------------------------------------------------------------
@@ -120,9 +131,19 @@ class wxMDIChildFrame: public wxPanel
     virtual void Restore(void) {};
     virtual void Activate(void);
     
     virtual void Restore(void) {};
     virtual void Activate(void);
     
+    bool Destroy(void);
+    void OnCloseWindow( wxCloseEvent& event );
+    
   public:
   
   public:
   
-    wxString    m_title;
+    wxString           m_title;
+    wxMenuBar         *m_menuBar;
+    
+//  private:
+  
+    GtkNotebookPage   *m_page;
+    
+  DECLARE_EVENT_TABLE()    
 };
 
 //-----------------------------------------------------------------------------
 };
 
 //-----------------------------------------------------------------------------
index d4c48d4cd44e3a6853e877223986a3d3e41b495e..50ed50f32b814b44acd751cac61bd4daad320c93 100644 (file)
@@ -48,6 +48,9 @@ class wxMenuBar: public wxWindow
     wxMenuBar(void);
     void Append( wxMenu *menu, const wxString &title );
     int FindMenuItem( const wxString &menuString, const wxString &itemString ) const;
     wxMenuBar(void);
     void Append( wxMenu *menu, const wxString &title );
     int FindMenuItem( const wxString &menuString, const wxString &itemString ) const;
+    wxMenuItem* FindMenuItemById( int id ) const;
+    bool IsChecked( int id ) const;
+    bool IsEnabled( int id ) const;
     
     wxList       m_menus;
     GtkWidget   *m_menubar;
     
     wxList       m_menus;
     GtkWidget   *m_menubar;
@@ -76,14 +79,16 @@ class wxMenuItem: public wxObject
     
     GtkWidget    *m_menuItem;  // GtkMenuItem
     
     
     GtkWidget    *m_menuItem;  // GtkMenuItem
     
-  bool              IsSeparator() const { return m_id == ID_SEPARATOR;  }
-  bool              IsEnabled()   const { return m_isEnabled;  }
-  bool              IsChecked()   const { return m_checked;  }
-
-  int               GetId()       const { return m_id;    }
-  const wxString&   GetHelp()     const { return m_helpStr;   }
-  wxMenu           *GetSubMenu()  const { return m_subMenu;  }
-  
+    bool IsCheckable()         const { return m_isCheckMenu; }
+    bool IsSeparator()         const { return m_id == ID_SEPARATOR;  }
+    bool IsEnabled()           const { return m_isEnabled;  }
+    int  GetId()               const { return m_id; }
+    const wxString& GetHelp()  const { return m_helpStr; }
+    wxMenu *GetSubMenu()       const { return m_subMenu; }
+    
+    void Check( bool check );
+    bool IsChecked() const;
+    void Enable( bool enable );
 };
 
 class wxMenu: public wxEvtHandler
 };
 
 class wxMenu: public wxEvtHandler
@@ -99,6 +104,7 @@ class wxMenu: public wxEvtHandler
     void Append( int id, const wxString &item,
       wxMenu *subMenu, const wxString &helpStr = "" );
     int FindItem( const wxString itemString ) const;
     void Append( int id, const wxString &item,
       wxMenu *subMenu, const wxString &helpStr = "" );
     int FindItem( const wxString itemString ) const;
+    wxMenuItem* FindItemForId( int id ) const;
     void Break(void) {};
     void Check(int id, bool Flag);
     void Enable( int id, bool enable );
     void Break(void) {};
     void Check(int id, bool Flag);
     void Enable( int id, bool enable );
index e423b69564a92670c934d7a716914153f8425288..035520de8fe15ce5cc18ec0127bcf29c8dd333aa 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        tabctrl.h
-// Purpose:     wxTabCtrl class
+// Name:        notebook.h
+// Purpose:     wxNotebook class
 // Author:      Robert Roebling
 // Modified by:
 // RCS-ID:      $Id$
 // Author:      Robert Roebling
 // Modified by:
 // RCS-ID:      $Id$
@@ -8,8 +8,8 @@
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef __TABCTRLH__
-#define __TABCTRLH__
+#ifndef __NOTEBOOKH__
+#define __NOTEBOOKH__
 
 #ifdef __GNUG__
 #pragma interface "notebook.h"
 
 #ifdef __GNUG__
 #pragma interface "notebook.h"
@@ -186,4 +186,4 @@ typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&);
   },
 
 #endif
   },
 
 #endif
-    // __TABCTRLH__
+    // __NOTEBOOKH__
index 667f84ff47f01fe1e6089a21ef6facf85c772144..8a952ec2da8e4daa64b74d2a78c5d9f2b2461f1a 100644 (file)
@@ -24,7 +24,7 @@
 //-----------------------------------------------------------------------------
 
 class wxToolBarTool;
 //-----------------------------------------------------------------------------
 
 class wxToolBarTool;
-class wxToolBarGTK;
+class wxToolBar;
 
 //-----------------------------------------------------------------------------
 // constants
 
 //-----------------------------------------------------------------------------
 // constants
@@ -50,7 +50,7 @@ class wxToolBarTool: public wxObject
   public:
 
     wxToolBarTool(void) {}; 
   public:
 
     wxToolBarTool(void) {}; 
-    wxToolBarTool( wxToolBarGTK *owner, int theIndex = 0, 
+    wxToolBarTool( wxToolBar *owner, int theIndex = 0, 
       const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap,
       bool toggle = FALSE, wxObject *clientData = NULL, 
       const wxString& shortHelpString = "", const wxString& longHelpString = "");
       const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap,
       bool toggle = FALSE, wxObject *clientData = NULL, 
       const wxString& shortHelpString = "", const wxString& longHelpString = "");
@@ -70,24 +70,24 @@ class wxToolBarTool: public wxObject
     bool                  m_isMenuCommand;
     wxString              m_shortHelpString;
     wxString              m_longHelpString;
     bool                  m_isMenuCommand;
     wxString              m_shortHelpString;
     wxString              m_longHelpString;
-    wxToolBarGTK         *m_owner;
+    wxToolBar            *m_owner;
 };
 
 //-----------------------------------------------------------------------------
 };
 
 //-----------------------------------------------------------------------------
-// wxToolBarGTK
+// wxToolBar
 //-----------------------------------------------------------------------------
 
 //-----------------------------------------------------------------------------
 
-class wxToolBarGTK: public wxControl
+class wxToolBar: public wxControl
 {
 {
-  DECLARE_DYNAMIC_CLASS(wxToolBarGTK)
+  DECLARE_DYNAMIC_CLASS(wxToolBar)
   
   public:
 
   
   public:
 
-    wxToolBarGTK(void);
-    wxToolBarGTK( wxWindow *parent, wxWindowID id, 
+    wxToolBar(void);
+    wxToolBar( wxWindow *parent, wxWindowID id, 
       const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
       long style = 0, const wxString& name = wxToolBarNameStr );
       const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
       long style = 0, const wxString& name = wxToolBarNameStr );
-   ~wxToolBarGTK(void);
+   ~wxToolBar(void);
 
    bool Create( wxWindow *parent, wxWindowID id, 
      const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
 
    bool Create( wxWindow *parent, wxWindowID id, 
      const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
index 7d4111f2d51eb6f72c96275f7245ab8cf081e14d..d3c590d0a4c536f9dfcbec1091b7ca70719af4da 100644 (file)
@@ -11,7 +11,6 @@
 #   define classwxToolBar classwxToolBarMSW
 #elif defined(__WXGTK__)
 #   include "wx/gtk/tbargtk.h"
 #   define classwxToolBar classwxToolBarMSW
 #elif defined(__WXGTK__)
 #   include "wx/gtk/tbargtk.h"
-#   define classwxToolBar wxToolBarGTK
 #endif
 
 #endif
 #endif
 
 #endif
index 97b0a355ab48380ea28c19b72c972371d9770706..114eb4c78dd3dc0a8a96ce1f582dd64c71c4e50c 100644 (file)
 #endif
 #endif
 
 #endif
 #endif
 
+#ifdef __WXGTK__
+//#include "list.xpm"
+//#include "folder.xpm"
+#endif
+
 #include "mdi.h"
 
 MyFrame *frame = NULL;
 #include "mdi.h"
 
 MyFrame *frame = NULL;
@@ -85,10 +90,10 @@ bool MyApp::OnInit(void)
 }
 
 BEGIN_EVENT_TABLE(MyFrame, wxMDIParentFrame)
 }
 
 BEGIN_EVENT_TABLE(MyFrame, wxMDIParentFrame)
-    EVT_MENU(MDI_QUIT, MyFrame::OnQuit)
     EVT_MENU(MDI_ABOUT, MyFrame::OnAbout)
     EVT_MENU(MDI_NEW_WINDOW, MyFrame::OnNewWindow)
     EVT_SIZE(MyFrame::OnSize)
     EVT_MENU(MDI_ABOUT, MyFrame::OnAbout)
     EVT_MENU(MDI_NEW_WINDOW, MyFrame::OnNewWindow)
     EVT_SIZE(MyFrame::OnSize)
+    EVT_MENU(MDI_QUIT, MyFrame::OnQuit)
 END_EVENT_TABLE()
 
 // Define my frame constructor
 END_EVENT_TABLE()
 
 // Define my frame constructor
@@ -270,8 +275,8 @@ void MyFrame::OnSize(wxSizeEvent& event)
 // duplicate event handlers here.
 
 BEGIN_EVENT_TABLE(MyChild, wxMDIChildFrame)
 // duplicate event handlers here.
 
 BEGIN_EVENT_TABLE(MyChild, wxMDIChildFrame)
-  EVT_MENU(MDI_CHILD_QUIT, MyChild::OnQuit)
   EVT_SIZE( MyChild::OnSize)
   EVT_SIZE( MyChild::OnSize)
+  EVT_MENU(MDI_CHILD_QUIT, MyChild::OnQuit)
 END_EVENT_TABLE()
 
 MyChild::MyChild(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size,
 END_EVENT_TABLE()
 
 MyChild::MyChild(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size,
index aecc4ffd00dc942c8d8e66c2d05e906f207dc133..2e05c91f089f870b7d4e600085733614f18e6083 100644 (file)
@@ -65,8 +65,8 @@ bool gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(
 //-----------------------------------------------------------------------------
 
 BEGIN_EVENT_TABLE(wxFrame, wxWindow)
 //-----------------------------------------------------------------------------
 
 BEGIN_EVENT_TABLE(wxFrame, wxWindow)
-  EVT_CLOSE(wxFrame::OnCloseWindow)
   EVT_SIZE(wxFrame::OnSize)
   EVT_SIZE(wxFrame::OnSize)
+  EVT_CLOSE(wxFrame::OnCloseWindow)
   EVT_IDLE(wxFrame::OnIdle)
 END_EVENT_TABLE()
 
   EVT_IDLE(wxFrame::OnIdle)
 END_EVENT_TABLE()
 
@@ -172,9 +172,12 @@ void wxFrame::Enable( bool enable )
   gtk_widget_set_sensitive( m_mainWindow, enable );
 };
 
   gtk_widget_set_sensitive( m_mainWindow, enable );
 };
 
-void wxFrame::OnCloseWindow( wxCloseEvent& WXUNUSED(event) )
+void wxFrame::OnCloseWindow( wxCloseEvent &event )
 {
 {
-  this->Destroy();
+    if ( GetEventHandler()->OnClose() || event.GetForce())
+    {
+        this->Destroy();
+    }
 };
 
 bool wxFrame::Destroy(void)
 };
 
 bool wxFrame::Destroy(void)
@@ -290,7 +293,7 @@ void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
   }
 };
 
   }
 };
 
-void SetInvokingWindow( wxMenu *menu, wxWindow *win )
+static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
 {
   menu->SetInvokingWindow( win );
   wxNode *node = menu->m_items.First();
 {
   menu->SetInvokingWindow( win );
   wxNode *node = menu->m_items.First();
@@ -305,18 +308,24 @@ void SetInvokingWindow( wxMenu *menu, wxWindow *win )
 void wxFrame::SetMenuBar( wxMenuBar *menuBar )
 {
   m_frameMenuBar = menuBar;
 void wxFrame::SetMenuBar( wxMenuBar *menuBar )
 {
   m_frameMenuBar = menuBar;
-
-  wxNode *node = m_frameMenuBar->m_menus.First();
-  while (node)
+  
+  if (m_frameMenuBar)
   {
   {
-    wxMenu *menu = (wxMenu*)node->Data();
-    SetInvokingWindow( menu, this );
-    node = node->Next();
-  };
-
-  m_frameMenuBar->m_parent = this;
-  gtk_myfixed_put( GTK_MYFIXED(m_mainWindow),
-    m_frameMenuBar->m_widget, m_frameMenuBar->m_x, m_frameMenuBar->m_y );
+    if (m_frameMenuBar->m_parent != this)
+    {
+      wxNode *node = m_frameMenuBar->m_menus.First();
+      while (node)
+      {
+        wxMenu *menu = (wxMenu*)node->Data();
+        SetInvokingWindow( menu, this );
+        node = node->Next();
+      };
+  
+      m_frameMenuBar->m_parent = this;
+      gtk_myfixed_put( GTK_MYFIXED(m_mainWindow),
+        m_frameMenuBar->m_widget, m_frameMenuBar->m_x, m_frameMenuBar->m_y );
+    }
+  }
 };
 
 bool wxFrame::CreateStatusBar( int number )
 };
 
 bool wxFrame::CreateStatusBar( int number )
index 160828e8cd4120d2f26e785f8160de0d2835472c..5726755278b7f249e9f4da3949dc0ff536939627 100644 (file)
 #endif
 
 #include "wx/mdi.h"
 #endif
 
 #include "wx/mdi.h"
+#include "wx/gtk/win_gtk.h"
+
+//-----------------------------------------------------------------------------
+
+extern wxList wxPendingDelete;
 
 //-----------------------------------------------------------------------------
 // wxMDIParentFrame
 
 //-----------------------------------------------------------------------------
 // wxMDIParentFrame
@@ -31,15 +36,40 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
   win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
 };
 
   win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
 };
 
+// page change callback
+static void gtk_page_change_callback( GtkNotebook *WXUNUSED(widget),
+                                      GtkNotebookPage *page,
+                                      gint WXUNUSED(nPage),
+                                      wxMDIClientWindow *client_win )
+{
+  wxNode *node = client_win->m_children.First();
+  while (node)
+  {
+    wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data();
+    if (child_frame->m_page == page)
+    {
+      wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)client_win->m_parent;
+      mdi_frame->m_currentChild = child_frame;
+      mdi_frame->SetMDIMenuBar( child_frame->m_menuBar );
+      return;
+    };
+    node = node->Next();
+  }
+}
+
 //-----------------------------------------------------------------------------
 
 IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame,wxFrame)
 
 //-----------------------------------------------------------------------------
 
 IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame,wxFrame)
 
+BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame)
+END_EVENT_TABLE()
+
 wxMDIParentFrame::wxMDIParentFrame(void)
 {
   m_clientWindow = NULL;
   m_currentChild = NULL;
   m_parentFrameActive = TRUE;
 wxMDIParentFrame::wxMDIParentFrame(void)
 {
   m_clientWindow = NULL;
   m_currentChild = NULL;
   m_parentFrameActive = TRUE;
+  m_toolBar = NULL;
 };
 
 wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
 };
 
 wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
@@ -50,6 +80,7 @@ wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
   m_clientWindow = NULL;
   m_currentChild = NULL;
   m_parentFrameActive = TRUE;
   m_clientWindow = NULL;
   m_currentChild = NULL;
   m_parentFrameActive = TRUE;
+  m_toolBar = NULL;
   Create( parent, id, title, pos, size, style, name );
 };
 
   Create( parent, id, title, pos, size, style, name );
 };
 
@@ -69,23 +100,46 @@ bool wxMDIParentFrame::Create( wxWindow *parent,
   return TRUE;
 };
 
   return TRUE;
 };
 
-void wxMDIParentFrame::OnSize( wxSizeEvent& event )
+void wxMDIParentFrame::GtkOnSize( int x, int y, int width, int height )
 {
 {
-  wxFrame::OnSize( event );
+  wxFrame::GtkOnSize( x, y, width, height );
+  
+  if (m_mdiMenuBar)
+  {
+    int x = 0;
+    int y = 0;
+    GetClientSize( &x, &y );
+    m_mdiMenuBar->SetSize( 1, 1, x-2, 26 ); 
+  }
 };
 
 };
 
-void wxMDIParentFrame::OnActivate( wxActivateEvent& WXUNUSED(event) )
+void wxMDIParentFrame::SetMDIMenuBar( wxMenuBar *menu_bar )
+{
+  if (m_mdiMenuBar) m_mdiMenuBar->Show( FALSE );
+  m_mdiMenuBar = menu_bar;
+  if (m_mdiMenuBar)
+  {
+    int x = 0;
+    int y = 0;
+    GetClientSize( &x, &y );
+    m_mdiMenuBar->SetSize( 1, 1, x-2, 26 ); 
+    m_mdiMenuBar->Show( TRUE );
+  }
+};
+
+void wxMDIParentFrame::GetClientSize(int *width, int *height ) const
 {
 {
+  wxFrame::GetClientSize( width, height );
 };
 
 };
 
-void wxMDIParentFrame::SetMenuBar( wxMenuBar *menu_bar )
+void wxMDIParentFrame::SetToolBar( wxToolBar *toolbar )
 {
 {
-  wxFrame::SetMenuBar( menu_bar );
+  m_toolBar = toolbar;
 };
 
 };
 
-void wxMDIParentFrame::GetClientSize(int *width, int *height ) const
+wxWindow *wxMDIParentFrame::GetToolBar(void) const
 {
 {
-  wxFrame::GetClientSize( width, height );
+  return m_toolBar;
 };
 
 wxMDIChildFrame *wxMDIParentFrame::GetActiveChild(void) const
 };
 
 wxMDIChildFrame *wxMDIParentFrame::GetActiveChild(void) const
@@ -106,9 +160,17 @@ wxMDIClientWindow *wxMDIParentFrame::OnCreateClient(void)
 
 void wxMDIParentFrame::ActivateNext(void)
 {
 
 void wxMDIParentFrame::ActivateNext(void)
 {
+  if (m_clientWindow)
+    gtk_notebook_next_page( GTK_NOTEBOOK(m_clientWindow->m_widget) );
 };
 
 void wxMDIParentFrame::ActivatePrevious(void)
 };
 
 void wxMDIParentFrame::ActivatePrevious(void)
+{
+  if (m_clientWindow)
+    gtk_notebook_prev_page( GTK_NOTEBOOK(m_clientWindow->m_widget) );
+};
+
+void wxMDIParentFrame::OnActivate( wxActivateEvent& WXUNUSED(event) )
 {
 };
 
 {
 };
 
@@ -122,8 +184,14 @@ void wxMDIParentFrame::OnSysColourChanged( wxSysColourChangedEvent& WXUNUSED(eve
 
 IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame,wxPanel)
   
 
 IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame,wxPanel)
   
+BEGIN_EVENT_TABLE(wxMDIChildFrame, wxPanel)
+  EVT_CLOSE(wxMDIChildFrame::OnCloseWindow)
+END_EVENT_TABLE()
+
 wxMDIChildFrame::wxMDIChildFrame(void)
 {
 wxMDIChildFrame::wxMDIChildFrame(void)
 {
+  m_menuBar = NULL;
+  m_page = NULL;
 };
 
 wxMDIChildFrame::wxMDIChildFrame( wxMDIParentFrame *parent,
 };
 
 wxMDIChildFrame::wxMDIChildFrame( wxMDIParentFrame *parent,
@@ -131,11 +199,23 @@ wxMDIChildFrame::wxMDIChildFrame( wxMDIParentFrame *parent,
       const wxPoint& WXUNUSED(pos), const wxSize& size,
       long style, const wxString& name )
 {
       const wxPoint& WXUNUSED(pos), const wxSize& size,
       long style, const wxString& name )
 {
+  m_menuBar = NULL;
+  m_page = NULL;
   Create( parent, id, title, wxDefaultPosition, size, style, name );
 };
 
 wxMDIChildFrame::~wxMDIChildFrame(void)
 {
   Create( parent, id, title, wxDefaultPosition, size, style, name );
 };
 
 wxMDIChildFrame::~wxMDIChildFrame(void)
 {
+  if (m_menuBar)
+  {
+    wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
+    if (mdi_frame->m_currentChild == this)
+    {
+      mdi_frame->SetMDIMenuBar( NULL );
+      mdi_frame->m_currentChild = NULL;
+    };
+    delete m_menuBar;
+  }
 };
 
 bool wxMDIChildFrame::Create( wxMDIParentFrame *parent,
 };
 
 bool wxMDIChildFrame::Create( wxMDIParentFrame *parent,
@@ -147,8 +227,59 @@ bool wxMDIChildFrame::Create( wxMDIParentFrame *parent,
   return wxPanel::Create( parent->GetClientWindow(), id, wxDefaultPosition, size, style, name );
 };
 
   return wxPanel::Create( parent->GetClientWindow(), id, wxDefaultPosition, size, style, name );
 };
 
-void wxMDIChildFrame::SetMenuBar( wxMenuBar *WXUNUSED(menu_bar) )
+void wxMDIChildFrame::OnCloseWindow( wxCloseEvent &event )
 {
 {
+    if ( GetEventHandler()->OnClose() || event.GetForce())
+    {
+        this->Destroy();
+    }
+};
+
+bool wxMDIChildFrame::Destroy(void)
+{
+  if (!wxPendingDelete.Member(this))
+    wxPendingDelete.Append(this);
+
+  return TRUE;
+}
+
+static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
+{
+  menu->SetInvokingWindow( win );
+  wxNode *node = menu->m_items.First();
+  while (node)
+  {
+    wxMenuItem *menuitem = (wxMenuItem*)node->Data();
+    if (menuitem->m_isSubMenu) SetInvokingWindow( menuitem->m_subMenu, win );
+    node = node->Next();
+  };
+};
+
+void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar )
+{
+  m_menuBar = menu_bar;
+  
+  if (m_menuBar)
+  {
+    wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
+    
+    if (m_menuBar->m_parent != this)
+    {
+      wxNode *node = m_menuBar->m_menus.First();
+      while (node)
+      {
+        wxMenu *menu = (wxMenu*)node->Data();
+        SetInvokingWindow( menu, this );
+        node = node->Next();
+      };
+      
+      m_menuBar->m_parent = mdi_frame;
+    }
+    mdi_frame->SetMDIMenuBar( m_menuBar );
+
+    gtk_myfixed_put( GTK_MYFIXED(mdi_frame->m_mainWindow),
+      m_menuBar->m_widget, m_menuBar->m_x, m_menuBar->m_y );
+  }
 };
 
 void wxMDIChildFrame::Activate(void)
 };
 
 void wxMDIChildFrame::Activate(void)
@@ -182,6 +313,11 @@ bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style )
 
   m_widget = gtk_notebook_new();
   
 
   m_widget = gtk_notebook_new();
   
+  gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page",
+                      GTK_SIGNAL_FUNC(gtk_page_change_callback), (gpointer)this );
+                 
+  gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
+  
   PostCreation();
   
   Show( TRUE );
   PostCreation();
   
   Show( TRUE );
@@ -191,16 +327,17 @@ bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style )
 
 void wxMDIClientWindow::AddChild( wxWindow *child )
 {
 
 void wxMDIClientWindow::AddChild( wxWindow *child )
 {
-  m_children.Append( child );
-  
-  wxString s;
-
-  if (child->IsKindOf(CLASSINFO(wxMDIChildFrame)))
+  if (!child->IsKindOf(CLASSINFO(wxMDIChildFrame)))
   {
   {
-    wxMDIChildFrame* mdi_child = (wxMDIChildFrame*) child;
-    s = mdi_child->m_title;
+     wxFAIL_MSG("wxNotebook::AddChild: Child has to be wxMDIChildFrame");
+     return;
   };
   
   };
   
+  m_children.Append( child );
+  
+  wxString s;
+  wxMDIChildFrame* mdi_child = (wxMDIChildFrame*) child;
+  s = mdi_child->m_title;
   if (s.IsNull()) s = "MDI child";
   
   GtkWidget *label_widget;
   if (s.IsNull()) s = "MDI child";
   
   GtkWidget *label_widget;
@@ -211,6 +348,10 @@ void wxMDIClientWindow::AddChild( wxWindow *child )
     GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
 
   gtk_notebook_append_page( GTK_NOTEBOOK(m_widget), child->m_widget, label_widget );
     GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
 
   gtk_notebook_append_page( GTK_NOTEBOOK(m_widget), child->m_widget, label_widget );
+  
+  mdi_child->m_page = (GtkNotebookPage*) (g_list_last(GTK_NOTEBOOK(m_widget)->children)->data);
+    
+  gtk_notebook_set_page( GTK_NOTEBOOK(m_widget), m_children.Number()-1 );
 };
 
 
 };
 
 
index 3e3377f106bef386d70792fcf56069ff8890e75e..a6de9af6c79f200c3856bf5c1c24fe251fa84fe4 100644 (file)
@@ -61,7 +61,7 @@ void wxMenuBar::Append( wxMenu *menu, const wxString &title )
   gtk_menu_bar_append( GTK_MENU_BAR(m_menubar), root_menu );
 };
     
   gtk_menu_bar_append( GTK_MENU_BAR(m_menubar), root_menu );
 };
     
-int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString, const wxString &itemString )
+static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString, const wxString &itemString )
 {
   if (menu->m_title == menuString)
   {
 {
   if (menu->m_title == menuString)
   {
@@ -91,7 +91,48 @@ int wxMenuBar::FindMenuItem( const wxString &menuString, const wxString &itemStr
   return -1;
 };
 
   return -1;
 };
 
-    
+// Find a wxMenuItem using its id. Recurses down into sub-menus
+static wxMenuItem* FindMenuItemByIdRecursive( const wxMenu* menu, int id )
+{
+  wxMenuItem* result = menu->FindItemForId( id );
+
+  wxNode *node = menu->m_items.First();
+  while (node && result == 0)
+  {
+    wxMenuItem *item = (wxMenuItem*)node->Data();
+    if (item->m_subMenu) result = FindMenuItemByIdRecursive( item->m_subMenu, id );
+    node = node->Next();
+  };
+  return result;
+};
+
+wxMenuItem* wxMenuBar::FindMenuItemById( int id ) const
+{
+  wxMenuItem* result = 0;
+  wxNode *node = m_menus.First();
+  while (node && result == 0)
+  {
+    wxMenu *menu = (wxMenu*)node->Data();
+    result = FindMenuItemByIdRecursive( menu, id );
+    node = node->Next();
+  }
+  return result;
+}
+
+bool wxMenuBar::IsChecked( int id ) const
+{
+  wxMenuItem* item = FindMenuItemById( id );
+  if (item) return item->IsChecked();
+  return FALSE;
+}
+
+bool wxMenuBar::IsEnabled( int id ) const
+{
+  wxMenuItem* item = FindMenuItemById( id );
+  if (item) return item->IsEnabled();
+  return FALSE;
+}
+
 //-----------------------------------------------------------------------------
 // wxMenu
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 // wxMenu
 //-----------------------------------------------------------------------------
@@ -124,6 +165,29 @@ wxMenuItem::wxMenuItem(void)
   m_menuItem = NULL;
 };
 
   m_menuItem = NULL;
 };
 
+void wxMenuItem::Check( bool check )
+{
+  if ( IsCheckable() )
+  {
+    m_checked = check;
+    gtk_check_menu_item_set_state( (GtkCheckMenuItem*)m_menuItem, (gint)check );
+  }
+}
+
+bool wxMenuItem::IsChecked() const
+{
+  if ( IsCheckable() )
+  {
+    return ((GtkCheckMenuItem*)m_menuItem)->active != 0;
+  }
+  return FALSE;
+}
+
+void wxMenuItem::Enable( bool enable )
+{
+  m_isEnabled = enable;
+}
+
 IMPLEMENT_DYNAMIC_CLASS(wxMenu,wxEvtHandler)
 
 wxMenu::wxMenu( const wxString &title )
 IMPLEMENT_DYNAMIC_CLASS(wxMenu,wxEvtHandler)
 
 wxMenu::wxMenu( const wxString &title )
@@ -219,9 +283,22 @@ int wxMenu::FindItem( const wxString itemString ) const
   return -1;
 };
 
   return -1;
 };
 
-void wxMenu::Check( int WXUNUSED(id), bool WXUNUSED(Flag) )
+wxMenuItem* wxMenu::FindItemForId( int id ) const
+{
+  wxNode *node = m_items.First();
+  while (node)
+  {
+    wxMenuItem *item = (wxMenuItem*)node->Data();
+    if (item->m_id == id) return item;
+    node = node->Next();
+  }
+  return NULL;
+}
+
+void wxMenu::Check( int id, bool Flag )
 {
 {
-  // I'm just too lazy
+  wxMenuItem* item = FindItemForId( id );
+  if (item) item->Check(Flag);
 };
 
 void wxMenu::Enable( int id, bool enable )
 };
 
 void wxMenu::Enable( int id, bool enable )
index 9b6ec68ef5a00bef51911d74e3e515df0c9eba46..e1e9b250b3f9d59c3d2afc288bd8777c1f829414 100644 (file)
@@ -153,6 +153,9 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id,
   PreCreation( parent, id, pos, size, style, name );
 
   m_widget = gtk_notebook_new();
   PreCreation( parent, id, pos, size, style, name );
 
   m_widget = gtk_notebook_new();
+  
+  gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
+  
   m_idHandler = gtk_signal_connect
                 (
                   GTK_OBJECT(m_widget), "switch_page",
   m_idHandler = gtk_signal_connect
                 (
                   GTK_OBJECT(m_widget), "switch_page",
index 611995d467bb3b541e93e9db71e92769cf09cf92..ebf329df11c61ab82953cc7ef56c7fae57f1a85e 100644 (file)
@@ -21,7 +21,7 @@
 
 IMPLEMENT_DYNAMIC_CLASS(wxToolBarTool,wxObject)
   
 
 IMPLEMENT_DYNAMIC_CLASS(wxToolBarTool,wxObject)
   
-wxToolBarTool::wxToolBarTool( wxToolBarGTK *owner, int theIndex, 
+wxToolBarTool::wxToolBarTool( wxToolBar *owner, int theIndex, 
       const wxBitmap& bitmap1, const  wxBitmap& bitmap2,
       bool toggle, wxObject *clientData,
       const wxString& shortHelpString, const wxString& longHelpString )
       const wxBitmap& bitmap1, const  wxBitmap& bitmap2,
       bool toggle, wxObject *clientData,
       const wxString& shortHelpString, const wxString& longHelpString )
@@ -45,7 +45,7 @@ wxToolBarTool::~wxToolBarTool(void)
 };
 
 //-----------------------------------------------------------------------------
 };
 
 //-----------------------------------------------------------------------------
-// wxToolBarGTK
+// wxToolBar
 //-----------------------------------------------------------------------------
 
 static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget), wxToolBarTool *tool )
 //-----------------------------------------------------------------------------
 
 static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget), wxToolBarTool *tool )
@@ -59,27 +59,27 @@ static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget), wxToolBarTool *to
 
 //-----------------------------------------------------------------------------
 
 
 //-----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxToolBarGTK,wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxToolBar,wxControl)
 
 
-BEGIN_EVENT_TABLE(wxToolBarGTK, wxControl)
+BEGIN_EVENT_TABLE(wxToolBar, wxControl)
 END_EVENT_TABLE()
 
 END_EVENT_TABLE()
 
-wxToolBarGTK::wxToolBarGTK(void)
+wxToolBar::wxToolBar(void)
 {
 };
 
 {
 };
 
-wxToolBarGTK::wxToolBarGTK( wxWindow *parent, wxWindowID id, 
+wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id, 
   const wxPoint& pos, const wxSize& size,
   long style, const wxString& name )
 {
   Create( parent, id, pos, size, style, name );
 };
 
   const wxPoint& pos, const wxSize& size,
   long style, const wxString& name )
 {
   Create( parent, id, pos, size, style, name );
 };
 
-wxToolBarGTK::~wxToolBarGTK(void)
+wxToolBar::~wxToolBar(void)
 {
 };
 
 {
 };
 
-bool wxToolBarGTK::Create( wxWindow *parent, wxWindowID id, 
+bool wxToolBar::Create( wxWindow *parent, wxWindowID id, 
   const wxPoint& pos, const wxSize& size,
   long style, const wxString& name )
 {
   const wxPoint& pos, const wxSize& size,
   long style, const wxString& name )
 {
@@ -104,7 +104,7 @@ bool wxToolBarGTK::Create( wxWindow *parent, wxWindowID id,
   return TRUE;
 };
 
   return TRUE;
 };
 
-bool wxToolBarGTK::OnLeftClick( int toolIndex, bool toggleDown )
+bool wxToolBar::OnLeftClick( int toolIndex, bool toggleDown )
 {
   wxCommandEvent event(wxEVT_COMMAND_TOOL_CLICKED, toolIndex);
   event.SetEventObject(this);
 {
   wxCommandEvent event(wxEVT_COMMAND_TOOL_CLICKED, toolIndex);
   event.SetEventObject(this);
@@ -115,7 +115,7 @@ bool wxToolBarGTK::OnLeftClick( int toolIndex, bool toggleDown )
   return TRUE;
 };
 
   return TRUE;
 };
 
-void wxToolBarGTK::OnRightClick( int toolIndex, float WXUNUSED(x), float WXUNUSED(y) )
+void wxToolBar::OnRightClick( int toolIndex, float WXUNUSED(x), float WXUNUSED(y) )
 {
   wxCommandEvent event(wxEVT_COMMAND_TOOL_RCLICKED, toolIndex);
   event.SetEventObject(this);
 {
   wxCommandEvent event(wxEVT_COMMAND_TOOL_RCLICKED, toolIndex);
   event.SetEventObject(this);
@@ -123,7 +123,7 @@ void wxToolBarGTK::OnRightClick( int toolIndex, float WXUNUSED(x), float WXUNUSE
   GetEventHandler()->ProcessEvent(event);
 };
 
   GetEventHandler()->ProcessEvent(event);
 };
 
-void wxToolBarGTK::OnMouseEnter( int toolIndex )
+void wxToolBar::OnMouseEnter( int toolIndex )
 {
   wxCommandEvent event(wxEVT_COMMAND_TOOL_ENTER, toolIndex);
   event.SetEventObject(this);
 {
   wxCommandEvent event(wxEVT_COMMAND_TOOL_ENTER, toolIndex);
   event.SetEventObject(this);
@@ -131,7 +131,7 @@ void wxToolBarGTK::OnMouseEnter( int toolIndex )
   GetEventHandler()->ProcessEvent(event);
 };
 
   GetEventHandler()->ProcessEvent(event);
 };
 
-wxToolBarTool *wxToolBarGTK::AddTool( int toolIndex, const wxBitmap& bitmap, 
+wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap, 
   const wxBitmap& pushedBitmap, bool toggle,
   float WXUNUSED(xPos), float WXUNUSED(yPos), wxObject *clientData,
   const wxString& helpString1, const wxString& helpString2 )
   const wxBitmap& pushedBitmap, bool toggle,
   float WXUNUSED(xPos), float WXUNUSED(yPos), wxObject *clientData,
   const wxString& helpString1, const wxString& helpString2 )
@@ -160,48 +160,48 @@ wxToolBarTool *wxToolBarGTK::AddTool( int toolIndex, const wxBitmap& bitmap,
   return tool;
 };
 
   return tool;
 };
 
-void wxToolBarGTK::AddSeparator(void)
+void wxToolBar::AddSeparator(void)
 {
   gtk_toolbar_append_space( m_toolbar );
 };
 
 {
   gtk_toolbar_append_space( m_toolbar );
 };
 
-void wxToolBarGTK::ClearTools(void)
+void wxToolBar::ClearTools(void)
 {
 };
 
 {
 };
 
-void wxToolBarGTK::EnableTool(int toolIndex, bool enable)
+void wxToolBar::EnableTool(int toolIndex, bool enable)
 {
 };
 
 {
 };
 
-void wxToolBarGTK::ToggleTool(int toolIndex, bool toggle)
+void wxToolBar::ToggleTool(int toolIndex, bool toggle)
 {
 };
 
 {
 };
 
-void wxToolBarGTK::SetToggle(int toolIndex, bool toggle) 
+void wxToolBar::SetToggle(int toolIndex, bool toggle) 
 {
 };
 
 {
 };
 
-wxObject *wxToolBarGTK::GetToolClientData(int index) const
+wxObject *wxToolBar::GetToolClientData(int index) const
 {
 };
 
 {
 };
 
-bool wxToolBarGTK::GetToolState(int toolIndex) const
+bool wxToolBar::GetToolState(int toolIndex) const
 {
 };
 
 {
 };
 
-bool wxToolBarGTK::GetToolEnabled(int toolIndex) const
+bool wxToolBar::GetToolEnabled(int toolIndex) const
 {
 };
 
 {
 };
 
-void wxToolBarGTK::SetMargins(int x, int y)
+void wxToolBar::SetMargins(int x, int y)
 {
 };
 
 {
 };
 
-void wxToolBarGTK::SetToolPacking(int packing)
+void wxToolBar::SetToolPacking(int packing)
 {
 };
 
 {
 };
 
-void wxToolBarGTK::SetToolSeparation(int separation)
+void wxToolBar::SetToolSeparation(int separation)
 {
 };
 
 {
 };
 
index aecc4ffd00dc942c8d8e66c2d05e906f207dc133..2e05c91f089f870b7d4e600085733614f18e6083 100644 (file)
@@ -65,8 +65,8 @@ bool gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(
 //-----------------------------------------------------------------------------
 
 BEGIN_EVENT_TABLE(wxFrame, wxWindow)
 //-----------------------------------------------------------------------------
 
 BEGIN_EVENT_TABLE(wxFrame, wxWindow)
-  EVT_CLOSE(wxFrame::OnCloseWindow)
   EVT_SIZE(wxFrame::OnSize)
   EVT_SIZE(wxFrame::OnSize)
+  EVT_CLOSE(wxFrame::OnCloseWindow)
   EVT_IDLE(wxFrame::OnIdle)
 END_EVENT_TABLE()
 
   EVT_IDLE(wxFrame::OnIdle)
 END_EVENT_TABLE()
 
@@ -172,9 +172,12 @@ void wxFrame::Enable( bool enable )
   gtk_widget_set_sensitive( m_mainWindow, enable );
 };
 
   gtk_widget_set_sensitive( m_mainWindow, enable );
 };
 
-void wxFrame::OnCloseWindow( wxCloseEvent& WXUNUSED(event) )
+void wxFrame::OnCloseWindow( wxCloseEvent &event )
 {
 {
-  this->Destroy();
+    if ( GetEventHandler()->OnClose() || event.GetForce())
+    {
+        this->Destroy();
+    }
 };
 
 bool wxFrame::Destroy(void)
 };
 
 bool wxFrame::Destroy(void)
@@ -290,7 +293,7 @@ void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
   }
 };
 
   }
 };
 
-void SetInvokingWindow( wxMenu *menu, wxWindow *win )
+static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
 {
   menu->SetInvokingWindow( win );
   wxNode *node = menu->m_items.First();
 {
   menu->SetInvokingWindow( win );
   wxNode *node = menu->m_items.First();
@@ -305,18 +308,24 @@ void SetInvokingWindow( wxMenu *menu, wxWindow *win )
 void wxFrame::SetMenuBar( wxMenuBar *menuBar )
 {
   m_frameMenuBar = menuBar;
 void wxFrame::SetMenuBar( wxMenuBar *menuBar )
 {
   m_frameMenuBar = menuBar;
-
-  wxNode *node = m_frameMenuBar->m_menus.First();
-  while (node)
+  
+  if (m_frameMenuBar)
   {
   {
-    wxMenu *menu = (wxMenu*)node->Data();
-    SetInvokingWindow( menu, this );
-    node = node->Next();
-  };
-
-  m_frameMenuBar->m_parent = this;
-  gtk_myfixed_put( GTK_MYFIXED(m_mainWindow),
-    m_frameMenuBar->m_widget, m_frameMenuBar->m_x, m_frameMenuBar->m_y );
+    if (m_frameMenuBar->m_parent != this)
+    {
+      wxNode *node = m_frameMenuBar->m_menus.First();
+      while (node)
+      {
+        wxMenu *menu = (wxMenu*)node->Data();
+        SetInvokingWindow( menu, this );
+        node = node->Next();
+      };
+  
+      m_frameMenuBar->m_parent = this;
+      gtk_myfixed_put( GTK_MYFIXED(m_mainWindow),
+        m_frameMenuBar->m_widget, m_frameMenuBar->m_x, m_frameMenuBar->m_y );
+    }
+  }
 };
 
 bool wxFrame::CreateStatusBar( int number )
 };
 
 bool wxFrame::CreateStatusBar( int number )
index 160828e8cd4120d2f26e785f8160de0d2835472c..5726755278b7f249e9f4da3949dc0ff536939627 100644 (file)
 #endif
 
 #include "wx/mdi.h"
 #endif
 
 #include "wx/mdi.h"
+#include "wx/gtk/win_gtk.h"
+
+//-----------------------------------------------------------------------------
+
+extern wxList wxPendingDelete;
 
 //-----------------------------------------------------------------------------
 // wxMDIParentFrame
 
 //-----------------------------------------------------------------------------
 // wxMDIParentFrame
@@ -31,15 +36,40 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
   win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
 };
 
   win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
 };
 
+// page change callback
+static void gtk_page_change_callback( GtkNotebook *WXUNUSED(widget),
+                                      GtkNotebookPage *page,
+                                      gint WXUNUSED(nPage),
+                                      wxMDIClientWindow *client_win )
+{
+  wxNode *node = client_win->m_children.First();
+  while (node)
+  {
+    wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data();
+    if (child_frame->m_page == page)
+    {
+      wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)client_win->m_parent;
+      mdi_frame->m_currentChild = child_frame;
+      mdi_frame->SetMDIMenuBar( child_frame->m_menuBar );
+      return;
+    };
+    node = node->Next();
+  }
+}
+
 //-----------------------------------------------------------------------------
 
 IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame,wxFrame)
 
 //-----------------------------------------------------------------------------
 
 IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame,wxFrame)
 
+BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame)
+END_EVENT_TABLE()
+
 wxMDIParentFrame::wxMDIParentFrame(void)
 {
   m_clientWindow = NULL;
   m_currentChild = NULL;
   m_parentFrameActive = TRUE;
 wxMDIParentFrame::wxMDIParentFrame(void)
 {
   m_clientWindow = NULL;
   m_currentChild = NULL;
   m_parentFrameActive = TRUE;
+  m_toolBar = NULL;
 };
 
 wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
 };
 
 wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
@@ -50,6 +80,7 @@ wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
   m_clientWindow = NULL;
   m_currentChild = NULL;
   m_parentFrameActive = TRUE;
   m_clientWindow = NULL;
   m_currentChild = NULL;
   m_parentFrameActive = TRUE;
+  m_toolBar = NULL;
   Create( parent, id, title, pos, size, style, name );
 };
 
   Create( parent, id, title, pos, size, style, name );
 };
 
@@ -69,23 +100,46 @@ bool wxMDIParentFrame::Create( wxWindow *parent,
   return TRUE;
 };
 
   return TRUE;
 };
 
-void wxMDIParentFrame::OnSize( wxSizeEvent& event )
+void wxMDIParentFrame::GtkOnSize( int x, int y, int width, int height )
 {
 {
-  wxFrame::OnSize( event );
+  wxFrame::GtkOnSize( x, y, width, height );
+  
+  if (m_mdiMenuBar)
+  {
+    int x = 0;
+    int y = 0;
+    GetClientSize( &x, &y );
+    m_mdiMenuBar->SetSize( 1, 1, x-2, 26 ); 
+  }
 };
 
 };
 
-void wxMDIParentFrame::OnActivate( wxActivateEvent& WXUNUSED(event) )
+void wxMDIParentFrame::SetMDIMenuBar( wxMenuBar *menu_bar )
+{
+  if (m_mdiMenuBar) m_mdiMenuBar->Show( FALSE );
+  m_mdiMenuBar = menu_bar;
+  if (m_mdiMenuBar)
+  {
+    int x = 0;
+    int y = 0;
+    GetClientSize( &x, &y );
+    m_mdiMenuBar->SetSize( 1, 1, x-2, 26 ); 
+    m_mdiMenuBar->Show( TRUE );
+  }
+};
+
+void wxMDIParentFrame::GetClientSize(int *width, int *height ) const
 {
 {
+  wxFrame::GetClientSize( width, height );
 };
 
 };
 
-void wxMDIParentFrame::SetMenuBar( wxMenuBar *menu_bar )
+void wxMDIParentFrame::SetToolBar( wxToolBar *toolbar )
 {
 {
-  wxFrame::SetMenuBar( menu_bar );
+  m_toolBar = toolbar;
 };
 
 };
 
-void wxMDIParentFrame::GetClientSize(int *width, int *height ) const
+wxWindow *wxMDIParentFrame::GetToolBar(void) const
 {
 {
-  wxFrame::GetClientSize( width, height );
+  return m_toolBar;
 };
 
 wxMDIChildFrame *wxMDIParentFrame::GetActiveChild(void) const
 };
 
 wxMDIChildFrame *wxMDIParentFrame::GetActiveChild(void) const
@@ -106,9 +160,17 @@ wxMDIClientWindow *wxMDIParentFrame::OnCreateClient(void)
 
 void wxMDIParentFrame::ActivateNext(void)
 {
 
 void wxMDIParentFrame::ActivateNext(void)
 {
+  if (m_clientWindow)
+    gtk_notebook_next_page( GTK_NOTEBOOK(m_clientWindow->m_widget) );
 };
 
 void wxMDIParentFrame::ActivatePrevious(void)
 };
 
 void wxMDIParentFrame::ActivatePrevious(void)
+{
+  if (m_clientWindow)
+    gtk_notebook_prev_page( GTK_NOTEBOOK(m_clientWindow->m_widget) );
+};
+
+void wxMDIParentFrame::OnActivate( wxActivateEvent& WXUNUSED(event) )
 {
 };
 
 {
 };
 
@@ -122,8 +184,14 @@ void wxMDIParentFrame::OnSysColourChanged( wxSysColourChangedEvent& WXUNUSED(eve
 
 IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame,wxPanel)
   
 
 IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame,wxPanel)
   
+BEGIN_EVENT_TABLE(wxMDIChildFrame, wxPanel)
+  EVT_CLOSE(wxMDIChildFrame::OnCloseWindow)
+END_EVENT_TABLE()
+
 wxMDIChildFrame::wxMDIChildFrame(void)
 {
 wxMDIChildFrame::wxMDIChildFrame(void)
 {
+  m_menuBar = NULL;
+  m_page = NULL;
 };
 
 wxMDIChildFrame::wxMDIChildFrame( wxMDIParentFrame *parent,
 };
 
 wxMDIChildFrame::wxMDIChildFrame( wxMDIParentFrame *parent,
@@ -131,11 +199,23 @@ wxMDIChildFrame::wxMDIChildFrame( wxMDIParentFrame *parent,
       const wxPoint& WXUNUSED(pos), const wxSize& size,
       long style, const wxString& name )
 {
       const wxPoint& WXUNUSED(pos), const wxSize& size,
       long style, const wxString& name )
 {
+  m_menuBar = NULL;
+  m_page = NULL;
   Create( parent, id, title, wxDefaultPosition, size, style, name );
 };
 
 wxMDIChildFrame::~wxMDIChildFrame(void)
 {
   Create( parent, id, title, wxDefaultPosition, size, style, name );
 };
 
 wxMDIChildFrame::~wxMDIChildFrame(void)
 {
+  if (m_menuBar)
+  {
+    wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
+    if (mdi_frame->m_currentChild == this)
+    {
+      mdi_frame->SetMDIMenuBar( NULL );
+      mdi_frame->m_currentChild = NULL;
+    };
+    delete m_menuBar;
+  }
 };
 
 bool wxMDIChildFrame::Create( wxMDIParentFrame *parent,
 };
 
 bool wxMDIChildFrame::Create( wxMDIParentFrame *parent,
@@ -147,8 +227,59 @@ bool wxMDIChildFrame::Create( wxMDIParentFrame *parent,
   return wxPanel::Create( parent->GetClientWindow(), id, wxDefaultPosition, size, style, name );
 };
 
   return wxPanel::Create( parent->GetClientWindow(), id, wxDefaultPosition, size, style, name );
 };
 
-void wxMDIChildFrame::SetMenuBar( wxMenuBar *WXUNUSED(menu_bar) )
+void wxMDIChildFrame::OnCloseWindow( wxCloseEvent &event )
 {
 {
+    if ( GetEventHandler()->OnClose() || event.GetForce())
+    {
+        this->Destroy();
+    }
+};
+
+bool wxMDIChildFrame::Destroy(void)
+{
+  if (!wxPendingDelete.Member(this))
+    wxPendingDelete.Append(this);
+
+  return TRUE;
+}
+
+static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
+{
+  menu->SetInvokingWindow( win );
+  wxNode *node = menu->m_items.First();
+  while (node)
+  {
+    wxMenuItem *menuitem = (wxMenuItem*)node->Data();
+    if (menuitem->m_isSubMenu) SetInvokingWindow( menuitem->m_subMenu, win );
+    node = node->Next();
+  };
+};
+
+void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar )
+{
+  m_menuBar = menu_bar;
+  
+  if (m_menuBar)
+  {
+    wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
+    
+    if (m_menuBar->m_parent != this)
+    {
+      wxNode *node = m_menuBar->m_menus.First();
+      while (node)
+      {
+        wxMenu *menu = (wxMenu*)node->Data();
+        SetInvokingWindow( menu, this );
+        node = node->Next();
+      };
+      
+      m_menuBar->m_parent = mdi_frame;
+    }
+    mdi_frame->SetMDIMenuBar( m_menuBar );
+
+    gtk_myfixed_put( GTK_MYFIXED(mdi_frame->m_mainWindow),
+      m_menuBar->m_widget, m_menuBar->m_x, m_menuBar->m_y );
+  }
 };
 
 void wxMDIChildFrame::Activate(void)
 };
 
 void wxMDIChildFrame::Activate(void)
@@ -182,6 +313,11 @@ bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style )
 
   m_widget = gtk_notebook_new();
   
 
   m_widget = gtk_notebook_new();
   
+  gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page",
+                      GTK_SIGNAL_FUNC(gtk_page_change_callback), (gpointer)this );
+                 
+  gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
+  
   PostCreation();
   
   Show( TRUE );
   PostCreation();
   
   Show( TRUE );
@@ -191,16 +327,17 @@ bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style )
 
 void wxMDIClientWindow::AddChild( wxWindow *child )
 {
 
 void wxMDIClientWindow::AddChild( wxWindow *child )
 {
-  m_children.Append( child );
-  
-  wxString s;
-
-  if (child->IsKindOf(CLASSINFO(wxMDIChildFrame)))
+  if (!child->IsKindOf(CLASSINFO(wxMDIChildFrame)))
   {
   {
-    wxMDIChildFrame* mdi_child = (wxMDIChildFrame*) child;
-    s = mdi_child->m_title;
+     wxFAIL_MSG("wxNotebook::AddChild: Child has to be wxMDIChildFrame");
+     return;
   };
   
   };
   
+  m_children.Append( child );
+  
+  wxString s;
+  wxMDIChildFrame* mdi_child = (wxMDIChildFrame*) child;
+  s = mdi_child->m_title;
   if (s.IsNull()) s = "MDI child";
   
   GtkWidget *label_widget;
   if (s.IsNull()) s = "MDI child";
   
   GtkWidget *label_widget;
@@ -211,6 +348,10 @@ void wxMDIClientWindow::AddChild( wxWindow *child )
     GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
 
   gtk_notebook_append_page( GTK_NOTEBOOK(m_widget), child->m_widget, label_widget );
     GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
 
   gtk_notebook_append_page( GTK_NOTEBOOK(m_widget), child->m_widget, label_widget );
+  
+  mdi_child->m_page = (GtkNotebookPage*) (g_list_last(GTK_NOTEBOOK(m_widget)->children)->data);
+    
+  gtk_notebook_set_page( GTK_NOTEBOOK(m_widget), m_children.Number()-1 );
 };
 
 
 };
 
 
index 3e3377f106bef386d70792fcf56069ff8890e75e..a6de9af6c79f200c3856bf5c1c24fe251fa84fe4 100644 (file)
@@ -61,7 +61,7 @@ void wxMenuBar::Append( wxMenu *menu, const wxString &title )
   gtk_menu_bar_append( GTK_MENU_BAR(m_menubar), root_menu );
 };
     
   gtk_menu_bar_append( GTK_MENU_BAR(m_menubar), root_menu );
 };
     
-int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString, const wxString &itemString )
+static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString, const wxString &itemString )
 {
   if (menu->m_title == menuString)
   {
 {
   if (menu->m_title == menuString)
   {
@@ -91,7 +91,48 @@ int wxMenuBar::FindMenuItem( const wxString &menuString, const wxString &itemStr
   return -1;
 };
 
   return -1;
 };
 
-    
+// Find a wxMenuItem using its id. Recurses down into sub-menus
+static wxMenuItem* FindMenuItemByIdRecursive( const wxMenu* menu, int id )
+{
+  wxMenuItem* result = menu->FindItemForId( id );
+
+  wxNode *node = menu->m_items.First();
+  while (node && result == 0)
+  {
+    wxMenuItem *item = (wxMenuItem*)node->Data();
+    if (item->m_subMenu) result = FindMenuItemByIdRecursive( item->m_subMenu, id );
+    node = node->Next();
+  };
+  return result;
+};
+
+wxMenuItem* wxMenuBar::FindMenuItemById( int id ) const
+{
+  wxMenuItem* result = 0;
+  wxNode *node = m_menus.First();
+  while (node && result == 0)
+  {
+    wxMenu *menu = (wxMenu*)node->Data();
+    result = FindMenuItemByIdRecursive( menu, id );
+    node = node->Next();
+  }
+  return result;
+}
+
+bool wxMenuBar::IsChecked( int id ) const
+{
+  wxMenuItem* item = FindMenuItemById( id );
+  if (item) return item->IsChecked();
+  return FALSE;
+}
+
+bool wxMenuBar::IsEnabled( int id ) const
+{
+  wxMenuItem* item = FindMenuItemById( id );
+  if (item) return item->IsEnabled();
+  return FALSE;
+}
+
 //-----------------------------------------------------------------------------
 // wxMenu
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 // wxMenu
 //-----------------------------------------------------------------------------
@@ -124,6 +165,29 @@ wxMenuItem::wxMenuItem(void)
   m_menuItem = NULL;
 };
 
   m_menuItem = NULL;
 };
 
+void wxMenuItem::Check( bool check )
+{
+  if ( IsCheckable() )
+  {
+    m_checked = check;
+    gtk_check_menu_item_set_state( (GtkCheckMenuItem*)m_menuItem, (gint)check );
+  }
+}
+
+bool wxMenuItem::IsChecked() const
+{
+  if ( IsCheckable() )
+  {
+    return ((GtkCheckMenuItem*)m_menuItem)->active != 0;
+  }
+  return FALSE;
+}
+
+void wxMenuItem::Enable( bool enable )
+{
+  m_isEnabled = enable;
+}
+
 IMPLEMENT_DYNAMIC_CLASS(wxMenu,wxEvtHandler)
 
 wxMenu::wxMenu( const wxString &title )
 IMPLEMENT_DYNAMIC_CLASS(wxMenu,wxEvtHandler)
 
 wxMenu::wxMenu( const wxString &title )
@@ -219,9 +283,22 @@ int wxMenu::FindItem( const wxString itemString ) const
   return -1;
 };
 
   return -1;
 };
 
-void wxMenu::Check( int WXUNUSED(id), bool WXUNUSED(Flag) )
+wxMenuItem* wxMenu::FindItemForId( int id ) const
+{
+  wxNode *node = m_items.First();
+  while (node)
+  {
+    wxMenuItem *item = (wxMenuItem*)node->Data();
+    if (item->m_id == id) return item;
+    node = node->Next();
+  }
+  return NULL;
+}
+
+void wxMenu::Check( int id, bool Flag )
 {
 {
-  // I'm just too lazy
+  wxMenuItem* item = FindItemForId( id );
+  if (item) item->Check(Flag);
 };
 
 void wxMenu::Enable( int id, bool enable )
 };
 
 void wxMenu::Enable( int id, bool enable )
index 9b6ec68ef5a00bef51911d74e3e515df0c9eba46..e1e9b250b3f9d59c3d2afc288bd8777c1f829414 100644 (file)
@@ -153,6 +153,9 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id,
   PreCreation( parent, id, pos, size, style, name );
 
   m_widget = gtk_notebook_new();
   PreCreation( parent, id, pos, size, style, name );
 
   m_widget = gtk_notebook_new();
+  
+  gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
+  
   m_idHandler = gtk_signal_connect
                 (
                   GTK_OBJECT(m_widget), "switch_page",
   m_idHandler = gtk_signal_connect
                 (
                   GTK_OBJECT(m_widget), "switch_page",
index 611995d467bb3b541e93e9db71e92769cf09cf92..ebf329df11c61ab82953cc7ef56c7fae57f1a85e 100644 (file)
@@ -21,7 +21,7 @@
 
 IMPLEMENT_DYNAMIC_CLASS(wxToolBarTool,wxObject)
   
 
 IMPLEMENT_DYNAMIC_CLASS(wxToolBarTool,wxObject)
   
-wxToolBarTool::wxToolBarTool( wxToolBarGTK *owner, int theIndex, 
+wxToolBarTool::wxToolBarTool( wxToolBar *owner, int theIndex, 
       const wxBitmap& bitmap1, const  wxBitmap& bitmap2,
       bool toggle, wxObject *clientData,
       const wxString& shortHelpString, const wxString& longHelpString )
       const wxBitmap& bitmap1, const  wxBitmap& bitmap2,
       bool toggle, wxObject *clientData,
       const wxString& shortHelpString, const wxString& longHelpString )
@@ -45,7 +45,7 @@ wxToolBarTool::~wxToolBarTool(void)
 };
 
 //-----------------------------------------------------------------------------
 };
 
 //-----------------------------------------------------------------------------
-// wxToolBarGTK
+// wxToolBar
 //-----------------------------------------------------------------------------
 
 static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget), wxToolBarTool *tool )
 //-----------------------------------------------------------------------------
 
 static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget), wxToolBarTool *tool )
@@ -59,27 +59,27 @@ static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget), wxToolBarTool *to
 
 //-----------------------------------------------------------------------------
 
 
 //-----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxToolBarGTK,wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxToolBar,wxControl)
 
 
-BEGIN_EVENT_TABLE(wxToolBarGTK, wxControl)
+BEGIN_EVENT_TABLE(wxToolBar, wxControl)
 END_EVENT_TABLE()
 
 END_EVENT_TABLE()
 
-wxToolBarGTK::wxToolBarGTK(void)
+wxToolBar::wxToolBar(void)
 {
 };
 
 {
 };
 
-wxToolBarGTK::wxToolBarGTK( wxWindow *parent, wxWindowID id, 
+wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id, 
   const wxPoint& pos, const wxSize& size,
   long style, const wxString& name )
 {
   Create( parent, id, pos, size, style, name );
 };
 
   const wxPoint& pos, const wxSize& size,
   long style, const wxString& name )
 {
   Create( parent, id, pos, size, style, name );
 };
 
-wxToolBarGTK::~wxToolBarGTK(void)
+wxToolBar::~wxToolBar(void)
 {
 };
 
 {
 };
 
-bool wxToolBarGTK::Create( wxWindow *parent, wxWindowID id, 
+bool wxToolBar::Create( wxWindow *parent, wxWindowID id, 
   const wxPoint& pos, const wxSize& size,
   long style, const wxString& name )
 {
   const wxPoint& pos, const wxSize& size,
   long style, const wxString& name )
 {
@@ -104,7 +104,7 @@ bool wxToolBarGTK::Create( wxWindow *parent, wxWindowID id,
   return TRUE;
 };
 
   return TRUE;
 };
 
-bool wxToolBarGTK::OnLeftClick( int toolIndex, bool toggleDown )
+bool wxToolBar::OnLeftClick( int toolIndex, bool toggleDown )
 {
   wxCommandEvent event(wxEVT_COMMAND_TOOL_CLICKED, toolIndex);
   event.SetEventObject(this);
 {
   wxCommandEvent event(wxEVT_COMMAND_TOOL_CLICKED, toolIndex);
   event.SetEventObject(this);
@@ -115,7 +115,7 @@ bool wxToolBarGTK::OnLeftClick( int toolIndex, bool toggleDown )
   return TRUE;
 };
 
   return TRUE;
 };
 
-void wxToolBarGTK::OnRightClick( int toolIndex, float WXUNUSED(x), float WXUNUSED(y) )
+void wxToolBar::OnRightClick( int toolIndex, float WXUNUSED(x), float WXUNUSED(y) )
 {
   wxCommandEvent event(wxEVT_COMMAND_TOOL_RCLICKED, toolIndex);
   event.SetEventObject(this);
 {
   wxCommandEvent event(wxEVT_COMMAND_TOOL_RCLICKED, toolIndex);
   event.SetEventObject(this);
@@ -123,7 +123,7 @@ void wxToolBarGTK::OnRightClick( int toolIndex, float WXUNUSED(x), float WXUNUSE
   GetEventHandler()->ProcessEvent(event);
 };
 
   GetEventHandler()->ProcessEvent(event);
 };
 
-void wxToolBarGTK::OnMouseEnter( int toolIndex )
+void wxToolBar::OnMouseEnter( int toolIndex )
 {
   wxCommandEvent event(wxEVT_COMMAND_TOOL_ENTER, toolIndex);
   event.SetEventObject(this);
 {
   wxCommandEvent event(wxEVT_COMMAND_TOOL_ENTER, toolIndex);
   event.SetEventObject(this);
@@ -131,7 +131,7 @@ void wxToolBarGTK::OnMouseEnter( int toolIndex )
   GetEventHandler()->ProcessEvent(event);
 };
 
   GetEventHandler()->ProcessEvent(event);
 };
 
-wxToolBarTool *wxToolBarGTK::AddTool( int toolIndex, const wxBitmap& bitmap, 
+wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap, 
   const wxBitmap& pushedBitmap, bool toggle,
   float WXUNUSED(xPos), float WXUNUSED(yPos), wxObject *clientData,
   const wxString& helpString1, const wxString& helpString2 )
   const wxBitmap& pushedBitmap, bool toggle,
   float WXUNUSED(xPos), float WXUNUSED(yPos), wxObject *clientData,
   const wxString& helpString1, const wxString& helpString2 )
@@ -160,48 +160,48 @@ wxToolBarTool *wxToolBarGTK::AddTool( int toolIndex, const wxBitmap& bitmap,
   return tool;
 };
 
   return tool;
 };
 
-void wxToolBarGTK::AddSeparator(void)
+void wxToolBar::AddSeparator(void)
 {
   gtk_toolbar_append_space( m_toolbar );
 };
 
 {
   gtk_toolbar_append_space( m_toolbar );
 };
 
-void wxToolBarGTK::ClearTools(void)
+void wxToolBar::ClearTools(void)
 {
 };
 
 {
 };
 
-void wxToolBarGTK::EnableTool(int toolIndex, bool enable)
+void wxToolBar::EnableTool(int toolIndex, bool enable)
 {
 };
 
 {
 };
 
-void wxToolBarGTK::ToggleTool(int toolIndex, bool toggle)
+void wxToolBar::ToggleTool(int toolIndex, bool toggle)
 {
 };
 
 {
 };
 
-void wxToolBarGTK::SetToggle(int toolIndex, bool toggle) 
+void wxToolBar::SetToggle(int toolIndex, bool toggle) 
 {
 };
 
 {
 };
 
-wxObject *wxToolBarGTK::GetToolClientData(int index) const
+wxObject *wxToolBar::GetToolClientData(int index) const
 {
 };
 
 {
 };
 
-bool wxToolBarGTK::GetToolState(int toolIndex) const
+bool wxToolBar::GetToolState(int toolIndex) const
 {
 };
 
 {
 };
 
-bool wxToolBarGTK::GetToolEnabled(int toolIndex) const
+bool wxToolBar::GetToolEnabled(int toolIndex) const
 {
 };
 
 {
 };
 
-void wxToolBarGTK::SetMargins(int x, int y)
+void wxToolBar::SetMargins(int x, int y)
 {
 };
 
 {
 };
 
-void wxToolBarGTK::SetToolPacking(int packing)
+void wxToolBar::SetToolPacking(int packing)
 {
 };
 
 {
 };
 
-void wxToolBarGTK::SetToolSeparation(int separation)
+void wxToolBar::SetToolSeparation(int separation)
 {
 };
 
 {
 };
 
index d4030d71898f387f877fbc72fd36077141453e1e..63703f2ae51f857d3dc81dd76fcfdf327ef12a3d 100644 (file)
@@ -129,7 +129,7 @@ MyFrame::MyFrame(void) :
   SetStatusText( "Welcome", 0 );
   SetStatusText( "wxFile v0.2 by Robert Roebling.", 1 );
   
   SetStatusText( "Welcome", 0 );
   SetStatusText( "wxFile v0.2 by Robert Roebling.", 1 );
   
-  m_tb = new wxToolBarGTK( this, ID_TOOLBAR, wxPoint(2,60), wxSize(300-4,26) );
+  m_tb = new wxToolBar( this, ID_TOOLBAR, wxPoint(2,60), wxSize(300-4,26) );
   m_tb->SetMargins( 2, 2 );
   
   wxBitmap *bm;
   m_tb->SetMargins( 2, 2 );
   
   wxBitmap *bm;
index 3a86a15539a0fae503484f3ca8f5bfe6f99534a4..93b5ef329157431fd75bf6d33b3da38aa7084c62 100644 (file)
@@ -63,7 +63,7 @@ class MyFrame: public wxFrame
     void OnTreeSelected( wxTreeEvent &event );
     void OnTreeKeyDown( wxTreeEvent &event );
     
     void OnTreeSelected( wxTreeEvent &event );
     void OnTreeKeyDown( wxTreeEvent &event );
     
-    wxToolBarGTK       *m_tb;
+    wxToolBar          *m_tb;
     wxSplitterWindow   *m_splitter;
     wxFileCtrl         *m_rightFile;
     wxFileCtrl         *m_leftFile;
     wxSplitterWindow   *m_splitter;
     wxFileCtrl         *m_rightFile;
     wxFileCtrl         *m_leftFile;
index c0f67e22c36d68e4ebe7f269d00d13e4d9c9bfbf..f035649154587c30ece2a6af359f19222ea408b5 100644 (file)
@@ -470,7 +470,7 @@ MyFrame::MyFrame(void) :
   m_canvas = new MyCanvas( this, -1, wxPoint(2,62), wxSize(300-4,120-4) );
   m_canvas->SetScrollbars( 10, 10, 50, 50 );
   
   m_canvas = new MyCanvas( this, -1, wxPoint(2,62), wxSize(300-4,120-4) );
   m_canvas->SetScrollbars( 10, 10, 50, 50 );
   
-  m_tb = new wxToolBarGTK( this, -1, wxPoint(2,60), wxSize(300-4,26) );
+  m_tb = new wxToolBar( this, -1, wxPoint(2,60), wxSize(300-4,26) );
   m_tb->SetMargins( 2, 2 );
   
   wxBitmap *bm = new wxBitmap( list_xpm );
   m_tb->SetMargins( 2, 2 );
   
   wxBitmap *bm = new wxBitmap( list_xpm );
index 125e2f8ecfdd730c289f5fa77d80c615ac881e86..d439960a25f387143d76f1ba206a9318299c543d 100644 (file)
@@ -141,7 +141,7 @@ class MyFrame: public wxFrame
     void OnAbout( wxCommandEvent &event );
     void OnQuit( wxCommandEvent &event );
     
     void OnAbout( wxCommandEvent &event );
     void OnQuit( wxCommandEvent &event );
     
-    wxToolBarGTK     *m_tb;
+    wxToolBar    *m_tb;
     MyCanvas         *m_canvas;
     
     MyTimer m_timer;
     MyCanvas         *m_canvas;
     
     MyTimer m_timer;