X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8487f8874288a8e4fe40ead153c73dfc7777f41b..324c132b1e82843e34a05eba381e6150842786fc:/include/wx/gtk1/mdi.h diff --git a/include/wx/gtk1/mdi.h b/include/wx/gtk1/mdi.h index e8f87df94d..ed055af82f 100644 --- a/include/wx/gtk1/mdi.h +++ b/include/wx/gtk1/mdi.h @@ -1,167 +1,131 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: mdi.h -// Purpose: +// Name: wx/gtk1/mdi.h +// Purpose: TDI-based MDI implementation for wxGTK1 // Author: Robert Roebling +// Modified by: 2008-10-31 Vadim Zeitlin: derive from the base classes // Id: $Id$ // Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence +// (c) 2008 Vadim Zeitlin +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +#ifndef _WX_GTK1_MDI_H_ +#define _WX_GTK1_MDI_H_ -#ifndef __MDIH__ -#define __MDIH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" -#include "wx/panel.h" #include "wx/frame.h" -#include "wx/toolbar.h" -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- +class WXDLLIMPEXP_FWD_CORE wxMDIChildFrame; +class WXDLLIMPEXP_FWD_CORE wxMDIClientWindow; -class wxMDIParentFrame; -class wxMDIClientWindow; -class wxMDIChildFrame; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const wxChar* wxFrameNameStr; -extern const wxChar* wxStatusLineNameStr; +typedef struct _GtkNotebook GtkNotebook; //----------------------------------------------------------------------------- // wxMDIParentFrame //----------------------------------------------------------------------------- -class wxMDIParentFrame: public wxFrame +class WXDLLIMPEXP_CORE wxMDIParentFrame : public wxMDIParentFrameBase { public: - wxMDIParentFrame(); - wxMDIParentFrame( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr ); - ~wxMDIParentFrame(void); - bool Create( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr ); - - void GetClientSize(int *width, int *height) const; - wxMDIChildFrame *GetActiveChild() const; - - wxMDIClientWindow *GetClientWindow() const; - virtual wxMDIClientWindow *OnCreateClient(); - - virtual void Cascade() {} - virtual void Tile() {} - virtual void ArrangeIcons() {} + wxMDIParentFrame() { Init(); } + wxMDIParentFrame(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, + const wxString& name = wxFrameNameStr) + { + Init(); + + (void)Create(parent, id, title, pos, size, style, name); + } + + bool Create(wxWindow *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, + const wxString& name = wxFrameNameStr); + + // we don't store the active child in m_currentChild unlike the base class + // version so override this method to find it dynamically + virtual wxMDIChildFrame *GetActiveChild() const; + + // implement base class pure virtuals + // ---------------------------------- + virtual void ActivateNext(); virtual void ActivatePrevious(); - void OnActivate( wxActivateEvent& event ); - void OnSysColourChanged( wxSysColourChangedEvent& event ); - - // implementation + static bool IsTDI() { return true; } + + // implementation - wxMDIClientWindow *m_clientWindow; bool m_justInserted; virtual void GtkOnSize( int x, int y, int width, int height ); virtual void OnInternalIdle(); - + private: - friend class wxMDIChildFrame; - + void Init(); + DECLARE_DYNAMIC_CLASS(wxMDIParentFrame) - DECLARE_EVENT_TABLE() }; //----------------------------------------------------------------------------- // wxMDIChildFrame //----------------------------------------------------------------------------- -class wxMDIChildFrame: public wxFrame +class WXDLLIMPEXP_CORE wxMDIChildFrame : public wxTDIChildFrame { public: - wxMDIChildFrame(); - wxMDIChildFrame( wxMDIParentFrame *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr ); - ~wxMDIChildFrame(); - bool Create( wxMDIParentFrame *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr ); - + wxMDIChildFrame() { Init(); } + wxMDIChildFrame(wxMDIParentFrame *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE, + const wxString& name = wxFrameNameStr) + { + Init(); + + Create(parent, id, title, pos, size, style, name); + } + + bool Create(wxMDIParentFrame *parent, + wxWindowID id, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE, + const wxString& name = wxFrameNameStr); + + virtual ~wxMDIChildFrame(); + virtual void SetMenuBar( wxMenuBar *menu_bar ); virtual wxMenuBar *GetMenuBar() const; - virtual void GetClientSize( int *width, int *height ) const; - virtual void AddChild( wxWindowBase *child ); - virtual void Activate(); - -#if wxUSE_STATUSBAR - // no status bars - virtual wxStatusBar* CreateStatusBar( int WXUNUSED(number) = 1, - long WXUNUSED(style) = 1, - wxWindowID WXUNUSED(id) = 1, - const wxString& WXUNUSED(name) = wxEmptyString) - { return (wxStatusBar*)NULL; } - - virtual wxStatusBar *GetStatusBar() const { return (wxStatusBar*)NULL; } - virtual void SetStatusText( const wxString &WXUNUSED(text), int WXUNUSED(number)=0 ) {} - 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), int WXUNUSED(maxH), - int WXUNUSED(incW), int WXUNUSED(incH) ) {} - -#if wxUSE_TOOLBAR - // no toolbar bars - virtual wxToolBar* CreateToolBar( long WXUNUSED(style), wxWindowID WXUNUSED(id), - const wxString& WXUNUSED(name) ) { return (wxToolBar*)NULL; } - virtual wxToolBar *GetToolBar() const { return (wxToolBar*)NULL; } -#endif - - // no icon - void SetIcon( const wxIcon &icon ) { m_icon = icon; } - - // no title - void SetTitle( const wxString &title ) { m_title = title; } - wxString GetTitle() const { return m_title; } - - // no maximize etc - virtual void Maximize( bool WXUNUSED(maximize) ) {} - virtual void Restore() {} - - virtual bool IsTopLevel() const { return FALSE; } - - void OnActivate( wxActivateEvent &event ); - - // implementation - + + virtual void SetTitle(const wxString& title); + + // implementation + + void OnActivate( wxActivateEvent& event ); + void OnMenuHighlight( wxMenuEvent& event ); + wxMenuBar *m_menuBar; GtkNotebookPage *m_page; bool m_justInserted; - + private: - DECLARE_EVENT_TABLE() + void Init(); + + GtkNotebook *GTKGetNotebook() const; + + DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxMDIChildFrame) }; @@ -169,17 +133,16 @@ private: // wxMDIClientWindow //----------------------------------------------------------------------------- -class wxMDIClientWindow: public wxWindow +class WXDLLIMPEXP_CORE wxMDIClientWindow : public wxMDIClientWindowBase { public: - wxMDIClientWindow(); - wxMDIClientWindow( wxMDIParentFrame *parent, long style = 0 ); - ~wxMDIClientWindow(); - virtual bool CreateClient( wxMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL ); + wxMDIClientWindow() { } + + virtual bool CreateClient(wxMDIParentFrame *parent, + long style = wxVSCROLL | wxHSCROLL); private: DECLARE_DYNAMIC_CLASS(wxMDIClientWindow) }; -#endif // __MDIH__ - +#endif // _WX_GTK1_MDI_H_