]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/mdig.h
added wxTLS_TYPE() macro
[wxWidgets.git] / include / wx / generic / mdig.h
index 2a5ab74f226d806fbacae6c1dbb5552ac14b459a..bee3506d099170da2b68be92a99f5a8fa73380a0 100644 (file)
 #ifndef _WX_MDIG_H_
 #define _WX_MDIG_H_
 
-#if defined(__GNUG__) && !defined(__APPLE__)
-    #pragma interface "mdig.h"
-#endif
-
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
 #include "wx/panel.h"
 #include "wx/notebook.h"
 
-WXDLLEXPORT_DATA(extern const wxChar*) wxFrameNameStr;
-WXDLLEXPORT_DATA(extern const wxChar*) wxStatusLineNameStr;
+class WXDLLIMPEXP_FWD_CORE wxIcon;
+class WXDLLIMPEXP_FWD_CORE wxIconBundle;
+
+extern WXDLLIMPEXP_DATA_CORE(const char) wxStatusLineNameStr[];
 
 
 //-----------------------------------------------------------------------------
 // classes
 //-----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxGenericMDIParentFrame;
-class WXDLLEXPORT wxGenericMDIClientWindow;
-class WXDLLEXPORT wxGenericMDIChildFrame;
+class WXDLLIMPEXP_FWD_CORE wxGenericMDIParentFrame;
+class WXDLLIMPEXP_FWD_CORE wxGenericMDIClientWindow;
+class WXDLLIMPEXP_FWD_CORE wxGenericMDIChildFrame;
 
 //-----------------------------------------------------------------------------
 // wxGenericMDIParentFrame
 //-----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxGenericMDIParentFrame: public wxFrame
+class WXDLLIMPEXP_CORE wxGenericMDIParentFrame: public wxFrame
 {
 public:
     wxGenericMDIParentFrame();
     wxGenericMDIParentFrame(wxWindow *parent,
-                     wxWindowID id,
+                     wxWindowID winid,
                      const wxString& title,
                      const wxPoint& pos = wxDefaultPosition,
                      const wxSize& size = wxDefaultSize,
                      long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
                      const wxString& name = wxFrameNameStr);
 
-    ~wxGenericMDIParentFrame();
+    virtual ~wxGenericMDIParentFrame();
     bool Create( wxWindow *parent,
-                 wxWindowID id,
+                 wxWindowID winid,
                  const wxString& title,
                  const wxPoint& pos = wxDefaultPosition,
                  const wxSize& size = wxDefaultSize,
@@ -63,7 +61,7 @@ public:
 
 #if wxUSE_MENUS
     wxMenu* GetWindowMenu() const { return m_pWindowMenu; };
-    void SetWindowMenu(wxMenu* pMenu);    
+    void SetWindowMenu(wxMenu* pMenu);
 
     virtual void SetMenuBar(wxMenuBar *pMenuBar);
 #endif // wxUSE_MENUS
@@ -79,7 +77,7 @@ public:
     virtual wxGenericMDIClientWindow *OnCreateClient();
 
     virtual void Cascade() { /* Has no effect */ }
-    virtual void Tile() { /* Has no effect */ }
+    virtual void Tile(wxOrientation WXUNUSED(orient) = wxHORIZONTAL) { }
     virtual void ArrangeIcons() { /* Has no effect */ }
     virtual void ActivateNext();
     virtual void ActivatePrevious();
@@ -113,12 +111,12 @@ private:
 // wxGenericMDIChildFrame
 //-----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxGenericMDIChildFrame: public wxPanel
+class WXDLLIMPEXP_CORE wxGenericMDIChildFrame: public wxPanel
 {
 public:
     wxGenericMDIChildFrame();
     wxGenericMDIChildFrame( wxGenericMDIParentFrame *parent,
-                     wxWindowID id,
+                     wxWindowID winid,
                      const wxString& title,
                      const wxPoint& pos = wxDefaultPosition,
                      const wxSize& size = wxDefaultSize,
@@ -127,20 +125,20 @@ public:
 
     virtual ~wxGenericMDIChildFrame();
     bool Create( wxGenericMDIParentFrame *parent,
-                 wxWindowID id,
+                 wxWindowID winid,
                  const wxString& title,
                  const wxPoint& pos = wxDefaultPosition,
                  const wxSize& size = wxDefaultSize,
                  long style = wxDEFAULT_FRAME_STYLE,
                  const wxString& name = wxFrameNameStr );
 
-#if wxUSE_MENUS      
+#if wxUSE_MENUS
     virtual void SetMenuBar( wxMenuBar *menu_bar );
     virtual wxMenuBar *GetMenuBar() const;
-#endif // wxUSE_MENUS  
+#endif // wxUSE_MENUS
 
     virtual void SetTitle(const wxString& title);
-    virtual wxString GetTitle();
+    virtual wxString GetTitle() const;
 
     virtual void Activate();
 
@@ -148,7 +146,7 @@ public:
     // no status bars
     virtual wxStatusBar* CreateStatusBar( int WXUNUSED(number) = 1,
                                         long WXUNUSED(style) = 1,
-                                        wxWindowID WXUNUSED(id) = 1,
+                                        wxWindowID WXUNUSED(winid) = 1,
                                         const wxString& WXUNUSED(name) = wxEmptyString)
       { return (wxStatusBar*)NULL; }
 
@@ -157,38 +155,30 @@ public:
     virtual void SetStatusWidths( int WXUNUSED(n), const int WXUNUSED(widths_field)[] ) {}
 #endif
 
-    // no size hints
-    virtual void SetSizeHints( int WXUNUSED(minW),
-                               int WXUNUSED(minH),
-                               int WXUNUSED(maxW) = -1,
-                               int WXUNUSED(maxH) = -1,
-                               int WXUNUSED(incW) = -1,
-                               int WXUNUSED(incH) = -1) {}
-
 #if wxUSE_TOOLBAR
     // no toolbar bars
     virtual wxToolBar* CreateToolBar( long WXUNUSED(style),
-                                       wxWindowID WXUNUSED(id),
+                                       wxWindowID WXUNUSED(winid),
                                        const wxString& WXUNUSED(name) )
         { return (wxToolBar*)NULL; }
     virtual wxToolBar *GetToolBar() const { return (wxToolBar*)NULL; }
 #endif
 
     // no icon
-    void SetIcon( const wxIcon &icon ) { /*m_icons = wxIconBundle( icon );*/}
-    void SetIcons( const wxIconBundle &icons ) { /*m_icons = icons;*/ }
+    void SetIcon(const wxIcon& WXUNUSED(icon)) { }
+    virtual void SetIcons( const wxIconBundle& WXUNUSED(icons) ) { }
 
     // no maximize etc
-    virtual void Maximize( bool WXUNUSED(maximize) = TRUE) { /* Has no effect */ }
+    virtual void Maximize( bool WXUNUSED(maximize) = true) { /* Has no effect */ }
     virtual void Restore() { /* Has no effect */ }
-    virtual void Iconize(bool WXUNUSED(iconize)  = TRUE) { /* Has no effect */ }
-    virtual bool IsMaximized() const { return TRUE; }
-    virtual bool IsIconized() const { return FALSE; }
-    virtual bool ShowFullScreen(bool WXUNUSED(show), long WXUNUSED(style)) { return FALSE; }
-    virtual bool IsFullScreen() const { return FALSE; }
-
-    virtual bool IsTopLevel() const { return FALSE; }    
-    
+    virtual void Iconize(bool WXUNUSED(iconize)  = true) { /* Has no effect */ }
+    virtual bool IsMaximized() const { return true; }
+    virtual bool IsIconized() const { return false; }
+    virtual bool ShowFullScreen(bool WXUNUSED(show), long WXUNUSED(style)) { return false; }
+    virtual bool IsFullScreen() const { return false; }
+
+    virtual bool IsTopLevel() const { return false; }
+
     void OnMenuHighlight(wxMenuEvent& event);
     void OnActivate(wxActivateEvent& event);
 
@@ -206,15 +196,20 @@ protected:
 
 #if wxUSE_MENUS
     wxMenuBar        *m_pMenuBar;
-#endif // wxUSE_MENUS  
+#endif // wxUSE_MENUS
 
 protected:
     void Init();
 
     virtual void DoMoveWindow(int x, int y, int width, int height);
 
+    // no size hints
+    virtual void DoSetSizeHints(int WXUNUSED(minW), int WXUNUSED(minH),
+                                int WXUNUSED(maxW), int WXUNUSED(maxH),
+                                int WXUNUSED(incW), int WXUNUSED(incH)) {}
+
     // This function needs to be called when a size change is confirmed,
-    // we needed this function to prevent any body from the outside 
+    // we needed this function to prevent any body from the outside
     // changing the panel... it messes the UI layout when we would allow it.
     void ApplyMDIChildFrameRect();
 
@@ -229,20 +224,20 @@ private:
 // wxGenericMDIClientWindow
 //-----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxGenericMDIClientWindow: public wxNotebook
+class WXDLLIMPEXP_CORE wxGenericMDIClientWindow: public wxNotebook
 {
 public:
     wxGenericMDIClientWindow();
     wxGenericMDIClientWindow( wxGenericMDIParentFrame *parent, long style = 0 );
-    ~wxGenericMDIClientWindow();
+    virtual ~wxGenericMDIClientWindow();
     virtual bool CreateClient( wxGenericMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL );
 
-    virtual int SetSelection(int nPage);
+    virtual int SetSelection(size_t nPage);
 
 protected:
     void PageChanged(int OldSelection, int newSelection);
 
-    void OnPageChanged(wxNotebookEvent& event);
+    void OnPageChanged(wxBookCtrlEvent& event);
     void OnSize(wxSizeEvent& event);
 
 private:
@@ -256,7 +251,7 @@ private:
  */
 
 #ifndef wxUSE_GENERIC_MDI_AS_NATIVE
-#if defined(__WXUNIVERSAL__)
+#if defined(__WXUNIVERSAL__) || defined(__WXPM__) || defined(__WXCOCOA__)
 #define wxUSE_GENERIC_MDI_AS_NATIVE   1
 #else
 #define wxUSE_GENERIC_MDI_AS_NATIVE   0
@@ -265,24 +260,29 @@ private:
 
 #if wxUSE_GENERIC_MDI_AS_NATIVE
 
+class wxMDIChildFrame ;
+
 //-----------------------------------------------------------------------------
 // wxMDIParentFrame
 //-----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxMDIParentFrame: public wxGenericMDIParentFrame
+class WXDLLIMPEXP_CORE wxMDIParentFrame: public wxGenericMDIParentFrame
 {
 public:
     wxMDIParentFrame() {}
     wxMDIParentFrame(wxWindow *parent,
-                     wxWindowID id,
+                     wxWindowID winid,
                      const wxString& title,
                      const wxPoint& pos = wxDefaultPosition,
                      const wxSize& size = wxDefaultSize,
                      long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
                      const wxString& name = wxFrameNameStr)
-        :wxGenericMDIParentFrame(parent, id, title, pos, size, style, name)
-    {
-    }
+         :wxGenericMDIParentFrame(parent, winid, title, pos, size, style, name)
+     {
+     }
+
+    wxMDIChildFrame * GetActiveChild() const ;
+
 
 private:
     DECLARE_DYNAMIC_CLASS(wxMDIParentFrame)
@@ -292,22 +292,21 @@ private:
 // wxMDIChildFrame
 //-----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxMDIChildFrame: public wxGenericMDIChildFrame
+class WXDLLIMPEXP_CORE wxMDIChildFrame: public wxGenericMDIChildFrame
 {
 public:
     wxMDIChildFrame() {}
 
     wxMDIChildFrame( wxGenericMDIParentFrame *parent,
-                     wxWindowID id,
+                     wxWindowID winid,
                      const wxString& title,
                      const wxPoint& pos = wxDefaultPosition,
                      const wxSize& size = wxDefaultSize,
                      long style = wxDEFAULT_FRAME_STYLE,
                      const wxString& name = wxFrameNameStr )
-        :wxGenericMDIChildFrame(parent, id, title, pos, size, style, name)
-    {
-    }
-
+         :wxGenericMDIChildFrame(parent, winid, title, pos, size, style, name)
+     {
+     }
 private:
     DECLARE_DYNAMIC_CLASS(wxMDIChildFrame)
 };
@@ -316,7 +315,7 @@ private:
 // wxMDIClientWindow
 //-----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxMDIClientWindow: public wxGenericMDIClientWindow
+class WXDLLIMPEXP_CORE wxMDIClientWindow: public wxGenericMDIClientWindow
 {
 public:
     wxMDIClientWindow() {}