mdi private menus

Chris's check menu additions
frame fixes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
1998-07-22 22:13:31 +00:00
parent 47fa796902
commit 716b736420
29 changed files with 752 additions and 230 deletions

View File

@@ -1,9 +1,9 @@
$Id$ $Id$
<br> <br>
<H1>Proposal for a wxQt project</H1> <H1>Proposal for a port of wxWindows to Qt - wxQt</H1>
<p> <p>
Following the recent discussions 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 repetition of the same damaging infighting from which Unix has
suffered before. Competition is a good thing, but the current suffered before. Competition is a good thing, but the current
situation leaves application developers with a difficult decision to situation leaves application developers with a difficult decision to
@@ -16,10 +16,10 @@
The people on the wxWindows developers team thought that we might have 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 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 toolkit, a library of C++ classes which provide GUI concepts as well
as other cross-platform issues such as container classes, debug 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 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 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 now have a much advanced library, available for MS Windows, with a
@@ -37,10 +37,10 @@
operating systems (a MacOS port is under construction, too), it could operating systems (a MacOS port is under construction, too), it could
easily bridge the gap between KDE and Gnome. The quick evolution of 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 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 a few
months. Therefore, we would like to start a project for a Qt/Harmony months. Therefore, we would like to start a project for a Qt/Harmony
based wxWindow library, wxQt. It would then be possible for 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. for KDE, Gnome or even any of the other supported systems.
<p> <p>
@@ -50,7 +50,7 @@
code from the other ports. code from the other ports.
Please, join us in this effort and, if you feel that you could 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 discussions. Just send a mail containing "<tt>subscribe</tt>" to
<tt>wxwin-developers-request@x.dent.med.uni-muenchen.de</tt> <tt>wxwin-developers-request@x.dent.med.uni-muenchen.de</tt>
<p> <p>

View File

@@ -28,7 +28,7 @@
class wxDC; class wxDC;
class wxPaintDC; class wxPaintDC;
class wxMemoryDC; class wxMemoryDC;
class wxToolBarGTK; class wxToolBar;
class wxBitmapButton; class wxBitmapButton;
class wxStaticBitmap; class wxStaticBitmap;
@@ -56,7 +56,7 @@ class wxMask: public wxObject
friend wxBitmap; friend wxBitmap;
friend wxDC; friend wxDC;
friend wxPaintDC; friend wxPaintDC;
friend wxToolBarGTK; friend wxToolBar;
friend wxBitmapButton; friend wxBitmapButton;
friend wxStaticBitmap; friend wxStaticBitmap;
@@ -116,7 +116,7 @@ class wxBitmap: public wxObject
friend wxDC; friend wxDC;
friend wxPaintDC; friend wxPaintDC;
friend wxMemoryDC; friend wxMemoryDC;
friend wxToolBarGTK; friend wxToolBar;
friend wxBitmapButton; friend wxBitmapButton;
friend wxStaticBitmap; friend wxStaticBitmap;

View 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(void);
void DoMenuUpdates(wxMenu* menu); void DoMenuUpdates(wxMenu* menu);
private: private:
friend wxWindow; friend wxWindow;
friend wxMDIChildFrame;
GtkWidget *m_mainWindow;
wxMenuBar *m_frameMenuBar; wxMenuBar *m_frameMenuBar;
GtkWidget *m_mainWindow;
wxStatusBar *m_frameStatusBar; wxStatusBar *m_frameStatusBar;
bool m_doingOnSize; bool m_doingOnSize;
wxString m_title; wxString m_title;

View File

@@ -22,6 +22,7 @@
#include "wx/control.h" #include "wx/control.h"
#include "wx/panel.h" #include "wx/panel.h"
#include "wx/frame.h" #include "wx/frame.h"
#include "wx/toolbar.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// classes // classes
@@ -63,13 +64,13 @@ class wxMDIParentFrame: public wxFrame
long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
const wxString& name = wxFrameNameStr ); const wxString& name = wxFrameNameStr );
void OnSize( wxSizeEvent& event );
void OnActivate( wxActivateEvent& event );
void SetMenuBar( wxMenuBar *menu_bar );
void GetClientSize(int *width, int *height) const; void GetClientSize(int *width, int *height) const;
wxMDIChildFrame *GetActiveChild(void) const; wxMDIChildFrame *GetActiveChild(void) const;
virtual void SetToolBar( wxToolBar *toolbar );
virtual wxWindow *GetToolBar(void) const;
wxMDIClientWindow *GetClientWindow(void) const; wxMDIClientWindow *GetClientWindow(void) const;
virtual wxMDIClientWindow *OnCreateClient(void); virtual wxMDIClientWindow *OnCreateClient(void);
@@ -79,14 +80,24 @@ class wxMDIParentFrame: public wxFrame
virtual void ActivateNext(void); virtual void ActivateNext(void);
virtual void ActivatePrevious(void); virtual void ActivatePrevious(void);
void OnActivate( wxActivateEvent& event );
void OnSysColourChanged( wxSysColourChangedEvent& event ); void OnSysColourChanged( wxSysColourChangedEvent& event );
protected: //private:
wxMDIClientWindow * m_clientWindow;
wxMDIChildFrame * m_currentChild;
bool m_parentFrameActive;
// DECLARE_EVENT_TABLE() wxMDIChildFrame *m_currentChild;
void SetMDIMenuBar( wxMenuBar *menu_bar );
virtual void GtkOnSize( int x, int y, int width, int height );
private:
wxMDIClientWindow *m_clientWindow;
bool m_parentFrameActive;
wxMenuBar *m_mdiMenuBar;
wxToolBar *m_toolBar;
DECLARE_EVENT_TABLE()
}; };
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -120,9 +131,19 @@ class wxMDIChildFrame: public wxPanel
virtual void Restore(void) {}; virtual void Restore(void) {};
virtual void Activate(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()
}; };
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View File

@@ -48,6 +48,9 @@ class wxMenuBar: public wxWindow
wxMenuBar(void); wxMenuBar(void);
void Append( wxMenu *menu, const wxString &title ); void Append( wxMenu *menu, const wxString &title );
int FindMenuItem( const wxString &menuString, const wxString &itemString ) const; 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; wxList m_menus;
GtkWidget *m_menubar; GtkWidget *m_menubar;
@@ -76,14 +79,16 @@ class wxMenuItem: public wxObject
GtkWidget *m_menuItem; // GtkMenuItem GtkWidget *m_menuItem; // GtkMenuItem
bool IsCheckable() const { return m_isCheckMenu; }
bool IsSeparator() const { return m_id == ID_SEPARATOR; } bool IsSeparator() const { return m_id == ID_SEPARATOR; }
bool IsEnabled() const { return m_isEnabled; } bool IsEnabled() const { return m_isEnabled; }
bool IsChecked() const { return m_checked; }
int GetId() const { return m_id; } int GetId() const { return m_id; }
const wxString& GetHelp() const { return m_helpStr; } const wxString& GetHelp() const { return m_helpStr; }
wxMenu *GetSubMenu() const { return m_subMenu; } 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, void Append( int id, const wxString &item,
wxMenu *subMenu, const wxString &helpStr = "" ); wxMenu *subMenu, const wxString &helpStr = "" );
int FindItem( const wxString itemString ) const; int FindItem( const wxString itemString ) const;
wxMenuItem* FindItemForId( int id ) const;
void Break(void) {}; void Break(void) {};
void Check(int id, bool Flag); void Check(int id, bool Flag);
void Enable( int id, bool enable ); void Enable( int id, bool enable );

View File

@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: tabctrl.h // Name: notebook.h
// Purpose: wxTabCtrl class // Purpose: wxNotebook class
// Author: Robert Roebling // Author: Robert Roebling
// Modified by: // Modified by:
// RCS-ID: $Id$ // RCS-ID: $Id$
@@ -8,8 +8,8 @@
// Licence: wxWindows license // Licence: wxWindows license
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __TABCTRLH__ #ifndef __NOTEBOOKH__
#define __TABCTRLH__ #define __NOTEBOOKH__
#ifdef __GNUG__ #ifdef __GNUG__
#pragma interface "notebook.h" #pragma interface "notebook.h"
@@ -186,4 +186,4 @@ typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&);
}, },
#endif #endif
// __TABCTRLH__ // __NOTEBOOKH__

View File

@@ -24,7 +24,7 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
class wxToolBarTool; class wxToolBarTool;
class wxToolBarGTK; class wxToolBar;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// constants // constants
@@ -50,7 +50,7 @@ class wxToolBarTool: public wxObject
public: public:
wxToolBarTool(void) {}; wxToolBarTool(void) {};
wxToolBarTool( wxToolBarGTK *owner, int theIndex = 0, wxToolBarTool( wxToolBar *owner, int theIndex = 0,
const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap, const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap,
bool toggle = FALSE, wxObject *clientData = NULL, bool toggle = FALSE, wxObject *clientData = NULL,
const wxString& shortHelpString = "", const wxString& longHelpString = ""); const wxString& shortHelpString = "", const wxString& longHelpString = "");
@@ -70,24 +70,24 @@ class wxToolBarTool: public wxObject
bool m_isMenuCommand; bool m_isMenuCommand;
wxString m_shortHelpString; wxString m_shortHelpString;
wxString m_longHelpString; 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); wxToolBar(void);
wxToolBarGTK( wxWindow *parent, wxWindowID id, wxToolBar( wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long style = 0, const wxString& name = wxToolBarNameStr ); long style = 0, const wxString& name = wxToolBarNameStr );
~wxToolBarGTK(void); ~wxToolBar(void);
bool Create( wxWindow *parent, wxWindowID id, bool Create( wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,

View File

@@ -28,7 +28,7 @@
class wxDC; class wxDC;
class wxPaintDC; class wxPaintDC;
class wxMemoryDC; class wxMemoryDC;
class wxToolBarGTK; class wxToolBar;
class wxBitmapButton; class wxBitmapButton;
class wxStaticBitmap; class wxStaticBitmap;
@@ -56,7 +56,7 @@ class wxMask: public wxObject
friend wxBitmap; friend wxBitmap;
friend wxDC; friend wxDC;
friend wxPaintDC; friend wxPaintDC;
friend wxToolBarGTK; friend wxToolBar;
friend wxBitmapButton; friend wxBitmapButton;
friend wxStaticBitmap; friend wxStaticBitmap;
@@ -116,7 +116,7 @@ class wxBitmap: public wxObject
friend wxDC; friend wxDC;
friend wxPaintDC; friend wxPaintDC;
friend wxMemoryDC; friend wxMemoryDC;
friend wxToolBarGTK; friend wxToolBar;
friend wxBitmapButton; friend wxBitmapButton;
friend wxStaticBitmap; friend wxStaticBitmap;

View 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(void);
void DoMenuUpdates(wxMenu* menu); void DoMenuUpdates(wxMenu* menu);
private: private:
friend wxWindow; friend wxWindow;
friend wxMDIChildFrame;
GtkWidget *m_mainWindow;
wxMenuBar *m_frameMenuBar; wxMenuBar *m_frameMenuBar;
GtkWidget *m_mainWindow;
wxStatusBar *m_frameStatusBar; wxStatusBar *m_frameStatusBar;
bool m_doingOnSize; bool m_doingOnSize;
wxString m_title; wxString m_title;

View File

@@ -22,6 +22,7 @@
#include "wx/control.h" #include "wx/control.h"
#include "wx/panel.h" #include "wx/panel.h"
#include "wx/frame.h" #include "wx/frame.h"
#include "wx/toolbar.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// classes // classes
@@ -63,13 +64,13 @@ class wxMDIParentFrame: public wxFrame
long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
const wxString& name = wxFrameNameStr ); const wxString& name = wxFrameNameStr );
void OnSize( wxSizeEvent& event );
void OnActivate( wxActivateEvent& event );
void SetMenuBar( wxMenuBar *menu_bar );
void GetClientSize(int *width, int *height) const; void GetClientSize(int *width, int *height) const;
wxMDIChildFrame *GetActiveChild(void) const; wxMDIChildFrame *GetActiveChild(void) const;
virtual void SetToolBar( wxToolBar *toolbar );
virtual wxWindow *GetToolBar(void) const;
wxMDIClientWindow *GetClientWindow(void) const; wxMDIClientWindow *GetClientWindow(void) const;
virtual wxMDIClientWindow *OnCreateClient(void); virtual wxMDIClientWindow *OnCreateClient(void);
@@ -79,14 +80,24 @@ class wxMDIParentFrame: public wxFrame
virtual void ActivateNext(void); virtual void ActivateNext(void);
virtual void ActivatePrevious(void); virtual void ActivatePrevious(void);
void OnActivate( wxActivateEvent& event );
void OnSysColourChanged( wxSysColourChangedEvent& event ); void OnSysColourChanged( wxSysColourChangedEvent& event );
protected: //private:
wxMDIClientWindow * m_clientWindow;
wxMDIChildFrame * m_currentChild;
bool m_parentFrameActive;
// DECLARE_EVENT_TABLE() wxMDIChildFrame *m_currentChild;
void SetMDIMenuBar( wxMenuBar *menu_bar );
virtual void GtkOnSize( int x, int y, int width, int height );
private:
wxMDIClientWindow *m_clientWindow;
bool m_parentFrameActive;
wxMenuBar *m_mdiMenuBar;
wxToolBar *m_toolBar;
DECLARE_EVENT_TABLE()
}; };
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -120,9 +131,19 @@ class wxMDIChildFrame: public wxPanel
virtual void Restore(void) {}; virtual void Restore(void) {};
virtual void Activate(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()
}; };
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View File

@@ -48,6 +48,9 @@ class wxMenuBar: public wxWindow
wxMenuBar(void); wxMenuBar(void);
void Append( wxMenu *menu, const wxString &title ); void Append( wxMenu *menu, const wxString &title );
int FindMenuItem( const wxString &menuString, const wxString &itemString ) const; 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; wxList m_menus;
GtkWidget *m_menubar; GtkWidget *m_menubar;
@@ -76,14 +79,16 @@ class wxMenuItem: public wxObject
GtkWidget *m_menuItem; // GtkMenuItem GtkWidget *m_menuItem; // GtkMenuItem
bool IsCheckable() const { return m_isCheckMenu; }
bool IsSeparator() const { return m_id == ID_SEPARATOR; } bool IsSeparator() const { return m_id == ID_SEPARATOR; }
bool IsEnabled() const { return m_isEnabled; } bool IsEnabled() const { return m_isEnabled; }
bool IsChecked() const { return m_checked; }
int GetId() const { return m_id; } int GetId() const { return m_id; }
const wxString& GetHelp() const { return m_helpStr; } const wxString& GetHelp() const { return m_helpStr; }
wxMenu *GetSubMenu() const { return m_subMenu; } 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, void Append( int id, const wxString &item,
wxMenu *subMenu, const wxString &helpStr = "" ); wxMenu *subMenu, const wxString &helpStr = "" );
int FindItem( const wxString itemString ) const; int FindItem( const wxString itemString ) const;
wxMenuItem* FindItemForId( int id ) const;
void Break(void) {}; void Break(void) {};
void Check(int id, bool Flag); void Check(int id, bool Flag);
void Enable( int id, bool enable ); void Enable( int id, bool enable );

View File

@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: tabctrl.h // Name: notebook.h
// Purpose: wxTabCtrl class // Purpose: wxNotebook class
// Author: Robert Roebling // Author: Robert Roebling
// Modified by: // Modified by:
// RCS-ID: $Id$ // RCS-ID: $Id$
@@ -8,8 +8,8 @@
// Licence: wxWindows license // Licence: wxWindows license
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __TABCTRLH__ #ifndef __NOTEBOOKH__
#define __TABCTRLH__ #define __NOTEBOOKH__
#ifdef __GNUG__ #ifdef __GNUG__
#pragma interface "notebook.h" #pragma interface "notebook.h"
@@ -186,4 +186,4 @@ typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&);
}, },
#endif #endif
// __TABCTRLH__ // __NOTEBOOKH__

View File

@@ -24,7 +24,7 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
class wxToolBarTool; class wxToolBarTool;
class wxToolBarGTK; class wxToolBar;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// constants // constants
@@ -50,7 +50,7 @@ class wxToolBarTool: public wxObject
public: public:
wxToolBarTool(void) {}; wxToolBarTool(void) {};
wxToolBarTool( wxToolBarGTK *owner, int theIndex = 0, wxToolBarTool( wxToolBar *owner, int theIndex = 0,
const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap, const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap,
bool toggle = FALSE, wxObject *clientData = NULL, bool toggle = FALSE, wxObject *clientData = NULL,
const wxString& shortHelpString = "", const wxString& longHelpString = ""); const wxString& shortHelpString = "", const wxString& longHelpString = "");
@@ -70,24 +70,24 @@ class wxToolBarTool: public wxObject
bool m_isMenuCommand; bool m_isMenuCommand;
wxString m_shortHelpString; wxString m_shortHelpString;
wxString m_longHelpString; 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); wxToolBar(void);
wxToolBarGTK( wxWindow *parent, wxWindowID id, wxToolBar( wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long style = 0, const wxString& name = wxToolBarNameStr ); long style = 0, const wxString& name = wxToolBarNameStr );
~wxToolBarGTK(void); ~wxToolBar(void);
bool Create( wxWindow *parent, wxWindowID id, bool Create( wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,

View File

@@ -11,7 +11,6 @@
# define classwxToolBar classwxToolBarMSW # define classwxToolBar classwxToolBarMSW
#elif defined(__WXGTK__) #elif defined(__WXGTK__)
# include "wx/gtk/tbargtk.h" # include "wx/gtk/tbargtk.h"
# define classwxToolBar wxToolBarGTK
#endif #endif
#endif #endif

View File

@@ -29,6 +29,11 @@
#endif #endif
#endif #endif
#ifdef __WXGTK__
//#include "list.xpm"
//#include "folder.xpm"
#endif
#include "mdi.h" #include "mdi.h"
MyFrame *frame = NULL; 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_ABOUT, MyFrame::OnAbout)
EVT_MENU(MDI_NEW_WINDOW, MyFrame::OnNewWindow) EVT_MENU(MDI_NEW_WINDOW, MyFrame::OnNewWindow)
EVT_SIZE(MyFrame::OnSize) EVT_SIZE(MyFrame::OnSize)
EVT_MENU(MDI_QUIT, MyFrame::OnQuit)
END_EVENT_TABLE() END_EVENT_TABLE()
// Define my frame constructor // Define my frame constructor
@@ -270,8 +275,8 @@ void MyFrame::OnSize(wxSizeEvent& event)
// duplicate event handlers here. // duplicate event handlers here.
BEGIN_EVENT_TABLE(MyChild, wxMDIChildFrame) 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() END_EVENT_TABLE()
MyChild::MyChild(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, MyChild::MyChild(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size,

View 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) EVT_IDLE(wxFrame::OnIdle)
END_EVENT_TABLE() 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 )
{
if ( GetEventHandler()->OnClose() || event.GetForce())
{ {
this->Destroy(); 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 ); menu->SetInvokingWindow( win );
wxNode *node = menu->m_items.First(); wxNode *node = menu->m_items.First();
@@ -306,6 +309,10 @@ void wxFrame::SetMenuBar( wxMenuBar *menuBar )
{ {
m_frameMenuBar = menuBar; m_frameMenuBar = menuBar;
if (m_frameMenuBar)
{
if (m_frameMenuBar->m_parent != this)
{
wxNode *node = m_frameMenuBar->m_menus.First(); wxNode *node = m_frameMenuBar->m_menus.First();
while (node) while (node)
{ {
@@ -317,6 +324,8 @@ void wxFrame::SetMenuBar( wxMenuBar *menuBar )
m_frameMenuBar->m_parent = this; m_frameMenuBar->m_parent = this;
gtk_myfixed_put( GTK_MYFIXED(m_mainWindow), gtk_myfixed_put( GTK_MYFIXED(m_mainWindow),
m_frameMenuBar->m_widget, m_frameMenuBar->m_x, m_frameMenuBar->m_y ); m_frameMenuBar->m_widget, m_frameMenuBar->m_x, m_frameMenuBar->m_y );
}
}
}; };
bool wxFrame::CreateStatusBar( int number ) bool wxFrame::CreateStatusBar( int number )

View File

@@ -13,6 +13,11 @@
#endif #endif
#include "wx/mdi.h" #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) wxMDIParentFrame::wxMDIParentFrame(void)
{ {
m_clientWindow = NULL; m_clientWindow = NULL;
m_currentChild = NULL; m_currentChild = NULL;
m_parentFrameActive = TRUE; 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_clientWindow = NULL;
m_currentChild = NULL; m_currentChild = NULL;
m_parentFrameActive = TRUE; m_parentFrameActive = TRUE;
m_toolBar = NULL;
Create( parent, id, title, pos, size, style, name ); Create( parent, id, title, pos, size, style, name );
}; };
@@ -69,18 +100,31 @@ 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;
void wxMDIParentFrame::SetMenuBar( wxMenuBar *menu_bar ) if (m_mdiMenuBar)
{ {
wxFrame::SetMenuBar( menu_bar ); 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 void wxMDIParentFrame::GetClientSize(int *width, int *height ) const
@@ -88,6 +132,16 @@ void wxMDIParentFrame::GetClientSize(int *width, int *height ) const
wxFrame::GetClientSize( width, height ); wxFrame::GetClientSize( width, height );
}; };
void wxMDIParentFrame::SetToolBar( wxToolBar *toolbar )
{
m_toolBar = toolbar;
};
wxWindow *wxMDIParentFrame::GetToolBar(void) const
{
return m_toolBar;
};
wxMDIChildFrame *wxMDIParentFrame::GetActiveChild(void) const wxMDIChildFrame *wxMDIParentFrame::GetActiveChild(void) const
{ {
return m_currentChild; return m_currentChild;
@@ -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, const wxPoint& WXUNUSED(pos), const wxSize& size,
long style, const wxString& name ) long style, const wxString& name )
{ {
m_menuBar = NULL;
m_page = NULL;
Create( parent, id, title, wxDefaultPosition, size, style, name ); Create( parent, id, title, wxDefaultPosition, size, style, name );
}; };
wxMDIChildFrame::~wxMDIChildFrame(void) 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(); PostCreation();
Show( TRUE ); Show( TRUE );
@@ -191,16 +327,17 @@ bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style )
void wxMDIClientWindow::AddChild( wxWindow *child ) void wxMDIClientWindow::AddChild( wxWindow *child )
{ {
if (!child->IsKindOf(CLASSINFO(wxMDIChildFrame)))
{
wxFAIL_MSG("wxNotebook::AddChild: Child has to be wxMDIChildFrame");
return;
};
m_children.Append( child ); m_children.Append( child );
wxString s; wxString s;
if (child->IsKindOf(CLASSINFO(wxMDIChildFrame)))
{
wxMDIChildFrame* mdi_child = (wxMDIChildFrame*) child; wxMDIChildFrame* mdi_child = (wxMDIChildFrame*) child;
s = mdi_child->m_title; s = mdi_child->m_title;
};
if (s.IsNull()) s = "MDI child"; if (s.IsNull()) s = "MDI child";
GtkWidget *label_widget; GtkWidget *label_widget;
@@ -211,6 +348,10 @@ void wxMDIClientWindow::AddChild( wxWindow *child )
GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child ); GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
gtk_notebook_append_page( GTK_NOTEBOOK(m_widget), child->m_widget, label_widget ); 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 );
}; };

View 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,6 +91,47 @@ 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) IMPLEMENT_DYNAMIC_CLASS(wxMenu,wxEvtHandler)
wxMenu::wxMenu( const wxString &title ) 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
{ {
// I'm just too lazy 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 )
{
wxMenuItem* item = FindItemForId( id );
if (item) item->Check(Flag);
}; };
void wxMenu::Enable( int id, bool enable ) void wxMenu::Enable( int id, bool enable )

View File

@@ -153,6 +153,9 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id,
PreCreation( parent, id, pos, size, style, name ); PreCreation( parent, id, pos, size, style, name );
m_widget = gtk_notebook_new(); m_widget = gtk_notebook_new();
gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
m_idHandler = gtk_signal_connect m_idHandler = gtk_signal_connect
( (
GTK_OBJECT(m_widget), "switch_page", GTK_OBJECT(m_widget), "switch_page",

View 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, const wxBitmap& bitmap1, const wxBitmap& bitmap2,
bool toggle, wxObject *clientData, bool toggle, wxObject *clientData,
const wxString& shortHelpString, const wxString& longHelpString ) 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, const wxPoint& pos, const wxSize& size,
long style, const wxString& name ) long style, const wxString& name )
{ {
Create( parent, id, pos, size, style, 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, const wxPoint& pos, const wxSize& size,
long style, const wxString& name ) 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); wxCommandEvent event(wxEVT_COMMAND_TOOL_CLICKED, toolIndex);
event.SetEventObject(this); 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); wxCommandEvent event(wxEVT_COMMAND_TOOL_RCLICKED, toolIndex);
event.SetEventObject(this); 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); wxCommandEvent event(wxEVT_COMMAND_TOOL_ENTER, toolIndex);
event.SetEventObject(this); 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, const wxBitmap& pushedBitmap, bool toggle,
float WXUNUSED(xPos), float WXUNUSED(yPos), wxObject *clientData, float WXUNUSED(xPos), float WXUNUSED(yPos), wxObject *clientData,
const wxString& helpString1, const wxString& helpString2 ) 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)
{ {
}; };

View 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) EVT_IDLE(wxFrame::OnIdle)
END_EVENT_TABLE() 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 )
{
if ( GetEventHandler()->OnClose() || event.GetForce())
{ {
this->Destroy(); 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 ); menu->SetInvokingWindow( win );
wxNode *node = menu->m_items.First(); wxNode *node = menu->m_items.First();
@@ -306,6 +309,10 @@ void wxFrame::SetMenuBar( wxMenuBar *menuBar )
{ {
m_frameMenuBar = menuBar; m_frameMenuBar = menuBar;
if (m_frameMenuBar)
{
if (m_frameMenuBar->m_parent != this)
{
wxNode *node = m_frameMenuBar->m_menus.First(); wxNode *node = m_frameMenuBar->m_menus.First();
while (node) while (node)
{ {
@@ -317,6 +324,8 @@ void wxFrame::SetMenuBar( wxMenuBar *menuBar )
m_frameMenuBar->m_parent = this; m_frameMenuBar->m_parent = this;
gtk_myfixed_put( GTK_MYFIXED(m_mainWindow), gtk_myfixed_put( GTK_MYFIXED(m_mainWindow),
m_frameMenuBar->m_widget, m_frameMenuBar->m_x, m_frameMenuBar->m_y ); m_frameMenuBar->m_widget, m_frameMenuBar->m_x, m_frameMenuBar->m_y );
}
}
}; };
bool wxFrame::CreateStatusBar( int number ) bool wxFrame::CreateStatusBar( int number )

View File

@@ -13,6 +13,11 @@
#endif #endif
#include "wx/mdi.h" #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) wxMDIParentFrame::wxMDIParentFrame(void)
{ {
m_clientWindow = NULL; m_clientWindow = NULL;
m_currentChild = NULL; m_currentChild = NULL;
m_parentFrameActive = TRUE; 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_clientWindow = NULL;
m_currentChild = NULL; m_currentChild = NULL;
m_parentFrameActive = TRUE; m_parentFrameActive = TRUE;
m_toolBar = NULL;
Create( parent, id, title, pos, size, style, name ); Create( parent, id, title, pos, size, style, name );
}; };
@@ -69,18 +100,31 @@ 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;
void wxMDIParentFrame::SetMenuBar( wxMenuBar *menu_bar ) if (m_mdiMenuBar)
{ {
wxFrame::SetMenuBar( menu_bar ); 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 void wxMDIParentFrame::GetClientSize(int *width, int *height ) const
@@ -88,6 +132,16 @@ void wxMDIParentFrame::GetClientSize(int *width, int *height ) const
wxFrame::GetClientSize( width, height ); wxFrame::GetClientSize( width, height );
}; };
void wxMDIParentFrame::SetToolBar( wxToolBar *toolbar )
{
m_toolBar = toolbar;
};
wxWindow *wxMDIParentFrame::GetToolBar(void) const
{
return m_toolBar;
};
wxMDIChildFrame *wxMDIParentFrame::GetActiveChild(void) const wxMDIChildFrame *wxMDIParentFrame::GetActiveChild(void) const
{ {
return m_currentChild; return m_currentChild;
@@ -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, const wxPoint& WXUNUSED(pos), const wxSize& size,
long style, const wxString& name ) long style, const wxString& name )
{ {
m_menuBar = NULL;
m_page = NULL;
Create( parent, id, title, wxDefaultPosition, size, style, name ); Create( parent, id, title, wxDefaultPosition, size, style, name );
}; };
wxMDIChildFrame::~wxMDIChildFrame(void) 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(); PostCreation();
Show( TRUE ); Show( TRUE );
@@ -191,16 +327,17 @@ bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style )
void wxMDIClientWindow::AddChild( wxWindow *child ) void wxMDIClientWindow::AddChild( wxWindow *child )
{ {
if (!child->IsKindOf(CLASSINFO(wxMDIChildFrame)))
{
wxFAIL_MSG("wxNotebook::AddChild: Child has to be wxMDIChildFrame");
return;
};
m_children.Append( child ); m_children.Append( child );
wxString s; wxString s;
if (child->IsKindOf(CLASSINFO(wxMDIChildFrame)))
{
wxMDIChildFrame* mdi_child = (wxMDIChildFrame*) child; wxMDIChildFrame* mdi_child = (wxMDIChildFrame*) child;
s = mdi_child->m_title; s = mdi_child->m_title;
};
if (s.IsNull()) s = "MDI child"; if (s.IsNull()) s = "MDI child";
GtkWidget *label_widget; GtkWidget *label_widget;
@@ -211,6 +348,10 @@ void wxMDIClientWindow::AddChild( wxWindow *child )
GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child ); GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
gtk_notebook_append_page( GTK_NOTEBOOK(m_widget), child->m_widget, label_widget ); 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 );
}; };

View 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,6 +91,47 @@ 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) IMPLEMENT_DYNAMIC_CLASS(wxMenu,wxEvtHandler)
wxMenu::wxMenu( const wxString &title ) 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
{ {
// I'm just too lazy 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 )
{
wxMenuItem* item = FindItemForId( id );
if (item) item->Check(Flag);
}; };
void wxMenu::Enable( int id, bool enable ) void wxMenu::Enable( int id, bool enable )

View File

@@ -153,6 +153,9 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id,
PreCreation( parent, id, pos, size, style, name ); PreCreation( parent, id, pos, size, style, name );
m_widget = gtk_notebook_new(); m_widget = gtk_notebook_new();
gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
m_idHandler = gtk_signal_connect m_idHandler = gtk_signal_connect
( (
GTK_OBJECT(m_widget), "switch_page", GTK_OBJECT(m_widget), "switch_page",

View 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, const wxBitmap& bitmap1, const wxBitmap& bitmap2,
bool toggle, wxObject *clientData, bool toggle, wxObject *clientData,
const wxString& shortHelpString, const wxString& longHelpString ) 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, const wxPoint& pos, const wxSize& size,
long style, const wxString& name ) long style, const wxString& name )
{ {
Create( parent, id, pos, size, style, 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, const wxPoint& pos, const wxSize& size,
long style, const wxString& name ) 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); wxCommandEvent event(wxEVT_COMMAND_TOOL_CLICKED, toolIndex);
event.SetEventObject(this); 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); wxCommandEvent event(wxEVT_COMMAND_TOOL_RCLICKED, toolIndex);
event.SetEventObject(this); 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); wxCommandEvent event(wxEVT_COMMAND_TOOL_ENTER, toolIndex);
event.SetEventObject(this); 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, const wxBitmap& pushedBitmap, bool toggle,
float WXUNUSED(xPos), float WXUNUSED(yPos), wxObject *clientData, float WXUNUSED(xPos), float WXUNUSED(yPos), wxObject *clientData,
const wxString& helpString1, const wxString& helpString2 ) 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)
{ {
}; };

View File

@@ -129,7 +129,7 @@ MyFrame::MyFrame(void) :
SetStatusText( "Welcome", 0 ); SetStatusText( "Welcome", 0 );
SetStatusText( "wxFile v0.2 by Robert Roebling.", 1 ); 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 ); m_tb->SetMargins( 2, 2 );
wxBitmap *bm; wxBitmap *bm;

View File

@@ -63,7 +63,7 @@ class MyFrame: public wxFrame
void OnTreeSelected( wxTreeEvent &event ); void OnTreeSelected( wxTreeEvent &event );
void OnTreeKeyDown( wxTreeEvent &event ); void OnTreeKeyDown( wxTreeEvent &event );
wxToolBarGTK *m_tb; wxToolBar *m_tb;
wxSplitterWindow *m_splitter; wxSplitterWindow *m_splitter;
wxFileCtrl *m_rightFile; wxFileCtrl *m_rightFile;
wxFileCtrl *m_leftFile; wxFileCtrl *m_leftFile;

View File

@@ -470,7 +470,7 @@ MyFrame::MyFrame(void) :
m_canvas = new MyCanvas( this, -1, wxPoint(2,62), wxSize(300-4,120-4) ); m_canvas = new MyCanvas( this, -1, wxPoint(2,62), wxSize(300-4,120-4) );
m_canvas->SetScrollbars( 10, 10, 50, 50 ); 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 ); m_tb->SetMargins( 2, 2 );
wxBitmap *bm = new wxBitmap( list_xpm ); wxBitmap *bm = new wxBitmap( list_xpm );

View File

@@ -141,7 +141,7 @@ class MyFrame: public wxFrame
void OnAbout( wxCommandEvent &event ); void OnAbout( wxCommandEvent &event );
void OnQuit( wxCommandEvent &event ); void OnQuit( wxCommandEvent &event );
wxToolBarGTK *m_tb; wxToolBar *m_tb;
MyCanvas *m_canvas; MyCanvas *m_canvas;
MyTimer m_timer; MyTimer m_timer;