X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fd69e87d2586726e57446d7208ceb8854bc74166..dad5f99acb6b3400ff73562c03db2f3f21b658cd:/include/wx/gtk/tbargtk.h?ds=sidebyside diff --git a/include/wx/gtk/tbargtk.h b/include/wx/gtk/tbargtk.h index 5c59c3814d..18f5243a88 100644 --- a/include/wx/gtk/tbargtk.h +++ b/include/wx/gtk/tbargtk.h @@ -4,128 +4,94 @@ // Author: Robert Roebling // RCS-ID: $Id$ // Copyright: (c) Robert Roebling -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef __TBARGTKH__ -#define __TBARGTKH__ +#ifndef _WX_GTK_TBARGTK_H_ +#define _WX_GTK_TBARGTK_H_ #ifdef __GNUG__ -#pragma interface + #pragma interface "tbargtk.h" #endif -#include "wx/defs.h" - #if wxUSE_TOOLBAR -#include "wx/control.h" -#include "wx/bitmap.h" -#include "wx/tbarbase.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxToolBarTool; -class wxToolBar; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define wxTOOL_STYLE_BUTTON 1 -#define wxTOOL_STYLE_SEPARATOR 2 - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const wxChar *wxToolBarNameStr; - -//----------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- // wxToolBar -//----------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- -class wxToolBar: public wxControl +class wxToolBar : public wxToolBarBase { public: - wxToolBar(void); - wxToolBar( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = wxToolBarNameStr ); - ~wxToolBar(void); - - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = wxToolBarNameStr); - - // Only allow toggle if returns TRUE. Call when left button up. - virtual bool OnLeftClick(int toolIndex, bool toggleDown); - - // Call when right button down. - virtual void OnRightClick(int toolIndex, float x, float y); - - // Called when the mouse cursor enters a tool bitmap. - // Argument is -1 if mouse is exiting the toolbar. - virtual void OnMouseEnter(int toolIndex); - - // If pushedBitmap is NULL, a reversed version of bitmap is - // created and used as the pushed/toggled image. - // If toggle is TRUE, the button toggles between the two states. - virtual wxToolBarTool *AddTool( int toolIndex, const wxBitmap& bitmap, - const wxBitmap& pushedBitmap = wxNullBitmap, bool toggle = FALSE, - wxCoord xPos = -1, wxCoord yPos = -1, wxObject *clientData = (wxObject *)NULL, - const wxString& helpString1 = "", const wxString& helpString2 = ""); - virtual void AddSeparator(void); - virtual void ClearTools(void); - - virtual bool Realize(void); - - virtual void EnableTool(int toolIndex, bool enable); - virtual void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on - virtual wxObject *GetToolClientData(int index) const; - - virtual bool GetToolState(int toolIndex) const; - virtual bool GetToolEnabled(int toolIndex) const; - + // construction/destruction + wxToolBar() { Init(); } + wxToolBar( wxWindow *parent, + wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxString& name = wxToolBarNameStr ) + { + Init(); + + Create(parent, id, pos, size, style, name); + } + + bool Create( wxWindow *parent, + wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxString& name = wxToolBarNameStr ); + + virtual ~wxToolBar(); + + // override base class virtuals virtual void SetMargins(int x, int y); - void SetMargins(const wxSize& size) { SetMargins(size.x, size.y); }; - virtual wxSize GetToolMargins(void) { return wxSize(m_xMargin, m_yMargin); } - - virtual void SetToolPacking(int packing); virtual void SetToolSeparation(int separation); - virtual int GetToolPacking(); - virtual int GetToolSeparation(); - - virtual wxString GetToolLongHelp(int toolIndex); - virtual wxString GetToolShortHelp(int toolIndex); - - virtual void SetToolLongHelp(int toolIndex, const wxString& helpString); - virtual void SetToolShortHelp(int toolIndex, const wxString& helpString); - - void OnIdle( wxIdleEvent &ievent ); - - // implementation - + + virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const; + + virtual void SetToolShortHelp(int id, const wxString& helpString); + + // implementation from now on + // -------------------------- + GtkToolbar *m_toolbar; - int m_separation; - wxList m_tools; - - GdkColor *m_fg; - GdkColor *m_bg; - int m_xMargin; - int m_yMargin; - bool m_hasToolAlready; + + GdkColor *m_fg; + GdkColor *m_bg; + bool m_blockNextEvent; - + void OnInternalIdle(); - + +protected: + // common part of all ctors + void Init(); + + // implement base class pure virtuals + virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool); + virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool); + + virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable); + virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle); + virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle); + + virtual wxToolBarToolBase *CreateTool(int id, + const wxBitmap& bitmap1, + const wxBitmap& bitmap2, + bool toggle, + wxObject *clientData, + const wxString& shortHelpString, + const wxString& longHelpString); + virtual wxToolBarToolBase *CreateTool(wxControl *control); + private: - DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxToolBar) }; -#endif +#endif // wxUSE_TOOLBAR #endif - // __TBARGTKH__ + // _WX_GTK_TBARGTK_H_