X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c801d85f158c4cba50b588807daabdcbd0ed3853..6362d82b3ed82aa6795e4ad03160820f94c9e4d4:/include/wx/gtk/tbargtk.h diff --git a/include/wx/gtk/tbargtk.h b/include/wx/gtk/tbargtk.h index adb04a56f0..07bff7128a 100644 --- a/include/wx/gtk/tbargtk.h +++ b/include/wx/gtk/tbargtk.h @@ -2,138 +2,99 @@ // Name: tbargtk.h // Purpose: GTK toolbar // Author: Robert Roebling -// Modified by: -// Created: 01/02/97 // 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 -#endif - -#include "wx/defs.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxToolBarTool; -class wxToolBarGTK; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define wxTOOL_STYLE_BUTTON 1 -#define wxTOOL_STYLE_SEPARATOR 2 +#if wxUSE_TOOLBAR -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- +// ---------------------------------------------------------------------------- +// wxToolBar +// ---------------------------------------------------------------------------- -extern const char *wxToolBarNameStr; - -//----------------------------------------------------------------------------- -// wxToolBarTool -//----------------------------------------------------------------------------- - -class wxToolBarTool: public wxObject +class WXDLLIMPEXP_CORE wxToolBar : public wxToolBarBase { - DECLARE_DYNAMIC_CLASS(wxToolBarTool) - - public: - - wxToolBarTool(void) {}; - wxToolBarTool( wxToolBarGTK *owner, const int theIndex = 0, - const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap, - const bool toggle = FALSE, wxObject *clientData = NULL, - const wxString& shortHelpString = "", const wxString& longHelpString = ""); - ~wxToolBarTool(void); - - public: - - int m_toolStyle; - wxObject *m_clientData; - int m_index; - bool m_toggleState; - bool m_isToggle; - bool m_deleteSecondBitmap; - bool m_enabled; - wxBitmap m_bitmap1; - wxBitmap m_bitmap2; - bool m_isMenuCommand; - wxString m_shortHelpString; - wxString m_longHelpString; - wxToolBarGTK *m_owner; +public: + // construction/destruction + wxToolBar() { Init(); } + wxToolBar( wxWindow *parent, + wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxTB_HORIZONTAL, + 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 = wxTB_HORIZONTAL, + const wxString& name = wxToolBarNameStr ); + + virtual ~wxToolBar(); + + virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const; + + virtual void SetToolShortHelp(int id, const wxString& helpString); + + virtual void SetWindowStyleFlag( long style ); + + virtual void SetToolNormalBitmap(int id, const wxBitmap& bitmap); + virtual void SetToolDisabledBitmap(int id, const wxBitmap& bitmap); + + static wxVisualAttributes + GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); + + // implementation from now on + // -------------------------- + + void OnInternalIdle(); + +protected: + virtual wxSize DoGetBestSize() const; + virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const; + + // 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 wxString& label, + const wxBitmap& bitmap1, + const wxBitmap& bitmap2, + wxItemKind kind, + wxObject *clientData, + const wxString& shortHelpString, + const wxString& longHelpString); + virtual wxToolBarToolBase *CreateTool(wxControl *control, + const wxString& label); + +private: + void Init(); + void GtkSetStyle(); + GSList* GetRadioGroup(size_t pos); + virtual void AddChildGTK(wxWindowGTK* child); + + GtkToolbar* m_toolbar; + GtkTooltips* m_tooltips; + + DECLARE_DYNAMIC_CLASS(wxToolBar) }; -//----------------------------------------------------------------------------- -// wxToolBarGTK -//----------------------------------------------------------------------------- - -class wxToolBarGTK: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxToolBarGTK) - - public: - - wxToolBarGTK(void); - wxToolBarGTK( wxWindow *parent, const wxWindowID id, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - const long style = 0, const wxString& name = wxToolBarNameStr ); - ~wxToolBarGTK(void); - - bool Create( wxWindow *parent, const wxWindowID id, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - const 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( const int toolIndex, const wxBitmap& bitmap, - const wxBitmap& pushedBitmap = wxNullBitmap, const bool toggle = FALSE, - const float xPos = -1, const float yPos = -1, wxObject *clientData = NULL, - const wxString& helpString1 = "", const wxString& helpString2 = ""); - virtual void AddSeparator(void); - virtual void ClearTools(void); - - virtual void EnableTool(const int toolIndex, const bool enable); - virtual void ToggleTool(const int toolIndex, const bool toggle); // toggle is TRUE if toggled on - virtual void SetToggle(const int toolIndex, const bool toggle); // Set this to be togglable (or not) - virtual wxObject *GetToolClientData(const int index) const; - - virtual bool GetToolState(const int toolIndex) const; - virtual bool GetToolEnabled(const int toolIndex) const; - - virtual void SetMargins(const int x, const int y); - void SetMargins(const wxSize& size) { SetMargins(size.x, size.y); }; - virtual void SetToolPacking(const int packing); - virtual void SetToolSeparation(const int separation); - - public: - - GtkToolbar *m_toolbar; - wxList m_tools; - - DECLARE_EVENT_TABLE() -}; +#endif // wxUSE_TOOLBAR #endif - // __TBARGTKH__ - + // _WX_GTK_TBARGTK_H_