X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8e08b761b0c5ecb6df295785b78f1f3637331887..6652e1a765385602430c604c7628a8fcd229d37c:/contrib/include/wx/fl/dyntbar.h diff --git a/contrib/include/wx/fl/dyntbar.h b/contrib/include/wx/fl/dyntbar.h index 942b496aec..2cabbb94c7 100644 --- a/contrib/include/wx/fl/dyntbar.h +++ b/contrib/include/wx/fl/dyntbar.h @@ -1,203 +1,276 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo +// Name: dyntbar.h +// Purpose: wxDynamicToolBar header // Author: Aleksandras Gluchovas // Modified by: // Created: ??/10/98 // RCS-ID: $Id$ // Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef __DYNTBAR_G__ #define __DYNTBAR_G__ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "dyntbar.h" #endif #include "wx/tbarbase.h" #include "wx/dynarray.h" +#include "wx/fl/fldefs.h" -// layout item +/* +Tool layout item. +*/ -class wxToolLayoutItem : public wxObject +class WXDLLIMPEXP_FL wxToolLayoutItem : public wxObject { + DECLARE_DYNAMIC_CLASS(wxToolLayoutItem) + public: - wxRect mRect; - bool mIsSeparator; + wxRect mRect; + bool mIsSeparator; }; -class wxDynToolInfo; +class WXDLLIMPEXP_FL wxDynToolInfo; typedef wxToolLayoutItem* wxToolLayoutItemPtrT; typedef wxDynToolInfo* wxDynToolInfoPtrT; +WXFL_DEFINE_ARRAY_PTR( wxToolLayoutItemPtrT, wxLayoutItemArrayT ); +WXFL_DEFINE_ARRAY_PTR( wxDynToolInfoPtrT, wxDynToolInfoArrayT ); -WX_DEFINE_ARRAY( wxToolLayoutItemPtrT, wxLayoutItemArrayT ); -WX_DEFINE_ARRAY( wxDynToolInfoPtrT, wxDynToolInfoArrayT ); - -// base class for layouting algorithm implementations +/* +This is a base class for layout algorithm implementations. +*/ -class LayoutManagerBase +class WXDLLIMPEXP_FL LayoutManagerBase { public: - virtual void Layout( const wxSize& parentDim, - wxSize& resultingDim, - wxLayoutItemArrayT& items, - int horizGap, - int vertGap ) = 0; - - virtual ~LayoutManagerBase() {} + // Constructor. + virtual void Layout( const wxSize& parentDim, + wxSize& resultingDim, + wxLayoutItemArrayT& items, + int horizGap, + int vertGap ) = 0; + + // Destructor. + virtual ~LayoutManagerBase() {} }; -// layouts items in left-to-right order from -// top towards bottom +/* +BagLayout lays out items in left-to-right order from +top to bottom. +*/ -class BagLayout : public LayoutManagerBase +class WXDLLIMPEXP_FL BagLayout : public LayoutManagerBase { public: - virtual void Layout( const wxSize& parentDim, - wxSize& resultingDim, - wxLayoutItemArrayT& items, - int horizGap, - int vertGap ); + // Constructor. + virtual void Layout( const wxSize& parentDim, + wxSize& resultingDim, + wxLayoutItemArrayT& items, + int horizGap, + int vertGap ); }; -class wxDynToolInfo : public wxToolLayoutItem +/* +This class holds dynamic toolbar item information. +*/ + +class WXDLLIMPEXP_FL wxDynToolInfo : public wxToolLayoutItem { - DECLARE_DYNAMIC_CLASS(wxDynToolInfo) + DECLARE_DYNAMIC_CLASS(wxDynToolInfo) public: - wxWindow* mpToolWnd; - int mIndex; - wxSize mRealSize; + wxWindow* mpToolWnd; + int mIndex; + wxSize mRealSize; }; -// layouting orientations for tools +// Layout orientations for tools #define LO_HORIZONTAL 0 #define LO_VERTICAL 1 #define LO_FIT_TO_WINDOW 2 -// class manages containment and layouting of tool-windows +/* +wxDynamicToolBar manages containment and layout of tool windows. +*/ -class wxDynamicToolBar : public wxToolBarBase +class WXDLLIMPEXP_FL wxDynamicToolBar : public wxToolBarBase { - DECLARE_DYNAMIC_CLASS(wxDynamicToolBar) protected: + friend class wxDynamicToolBarSerializer; - friend class wxDynamicToolBarSerializer; - - wxDynToolInfoArrayT mTools; - LayoutManagerBase* mpLayoutMan; + wxDynToolInfoArrayT mTools; + LayoutManagerBase* mpLayoutMan; protected: - virtual void SizeToolWindows(); + // Internal function for sizing tool windows. + virtual void SizeToolWindows(); public: /* public properties */ - int mSepartorSize; // default: 8 - int mVertGap; // default: 0 - int mHorizGap; // default: 0 - + int mSepartorSize; // default: 8 + int mVertGap; // default: 0 + int mHorizGap; // default: 0 + public: - wxDynamicToolBar(); + // Default constructor. + + wxDynamicToolBar(); + + // Constructor: see the documentation for wxToolBar for details. + + wxDynamicToolBar(wxWindow *parent, const wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, + const long style = wxNO_BORDER, const int orientation = wxVERTICAL, + const int RowsOrColumns = 1, const wxString& name = wxToolBarNameStr); + + // Destructor. - wxDynamicToolBar(wxWindow *parent, const wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - const long style = wxNO_BORDER, const int orientation = wxVERTICAL, - const int RowsOrColumns = 1, const wxString& name = wxToolBarNameStr); + ~wxDynamicToolBar(void); - ~wxDynamicToolBar(void); + // Creation function: see the documentation for wxToolBar for details. - bool Create(wxWindow *parent, const wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - const long style = wxNO_BORDER, const int orientation = wxVERTICAL, const int RowsOrColumns = 1, const wxString& name = wxToolBarNameStr); + bool Create(wxWindow *parent, const wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, + const long style = wxNO_BORDER, const int orientation = wxVERTICAL, const int RowsOrColumns = 1, const wxString& name = wxToolBarNameStr); - // overridables + // Adds a tool. See the documentation for wxToolBar for details. - virtual void AddTool( int toolIndex, - wxWindow* pToolWindow, - const wxSize& size = wxDefaultSize ); + virtual void AddTool( int toolIndex, + wxWindow* pToolWindow, + const wxSize& size = wxDefaultSize ); - virtual void AddTool( int toolIndex, - const wxString& imageFileName, - int imageFileType = wxBITMAP_TYPE_BMP, - const wxString& labelText = "", bool alignTextRight = FALSE, - bool isFlat = TRUE ); - virtual void AddTool( int toolIndex, wxBitmap labelBmp, - const wxString& labelText = "", bool alignTextRight = FALSE, - bool isFlat = TRUE ); + // Adds a tool. See the documentation for wxToolBar for details. - // method from wxToolBarBase (for compatibility), only - // first two arguments are valid + virtual void AddTool( int toolIndex, + const wxString& imageFileName, + wxBitmapType imageFileType = wxBITMAP_TYPE_BMP, + const wxString& labelText = wxT(""), bool alignTextRight = FALSE, + bool isFlat = TRUE ); + // Adds a tool. See the documentation for wxToolBar for details. - virtual wxToolBarToolBase *AddTool(const int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap, + virtual void AddTool( int toolIndex, wxBitmap labelBmp, + const wxString& labelText = wxT(""), bool alignTextRight = FALSE, + bool isFlat = TRUE ); + + // Unhide method from parent. + + virtual wxToolBarToolBase *AddTool (wxToolBarToolBase *tool) + { return wxToolBarBase::AddTool(tool); }; + + // Method from wxToolBarBase (for compatibility), only + // the first two arguments are valid. + // See the documentation for wxToolBar for details. + + virtual wxToolBarToolBase *AddTool(const int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap, const bool toggle = FALSE, const long xPos = -1, const long yPos = -1, wxObject *clientData = NULL, - const wxString& helpString1 = "", const wxString& helpString2 = ""); + const wxString& helpString1 = wxT(""), const wxString& helpString2 = wxT("")); + + // Adds a separator. See the documentation for wxToolBar for details. + + virtual void AddSeparator( wxWindow* pSepartorWnd ); + + // Unhide method from parent. + + virtual wxToolBarToolBase *AddSeparator() + { return wxToolBarBase::AddSeparator(); }; + + // Returns tool information for the given tool index. - virtual void AddSeparator( wxWindow* pSepartorWnd = NULL ); + wxDynToolInfo* GetToolInfo( int toolIndex ); - wxDynToolInfo* GetToolInfo( int toolIndex ); + // Removes the given tool. Misspelt in order not to clash with a similar function + // in the base class. - void RemveTool( int toolIndex ); + void RemveTool( int toolIndex ); - // the default implementation draws shaded line - virtual void DrawSeparator( wxDynToolInfo& info, wxDC& dc ); + // Draws a separator. The default implementation draws a shaded line. - // see definitions of orientation types - virtual bool Layout(); + virtual void DrawSeparator( wxDynToolInfo& info, wxDC& dc ); - virtual void GetPreferredDim( const wxSize& givenDim, wxSize& prefDim ); + // Performs layout. See definitions of orientation types. - virtual LayoutManagerBase* CreateDefaulLayout() { return new BagLayout(); } + virtual bool Layout(); - virtual void SetLayout( LayoutManagerBase* pLayout ); + // Returns the preferred dimension, taking the given dimension and a reference to the result. - virtual void EnableTool(const int toolIndex, const bool enable = TRUE); + virtual void GetPreferredDim( const wxSize& givenDim, wxSize& prefDim ); - // event handlers + // Creates the default layout (BagLayout). - void OnSize( wxSizeEvent& event ); - void OnPaint( wxPaintEvent& event ); - void OnEraseBackground( wxEraseEvent& event ); + virtual LayoutManagerBase* CreateDefaultLayout() { return new BagLayout(); } - // overriden from wxToolBarBase + // Sets the layout for this toolbar. - virtual bool Realize(void); + virtual void SetLayout( LayoutManagerBase* pLayout ); - // stuff from the 2.1.15 + // Enables or disables the given tool. + + virtual void EnableTool(int toolIndex, bool enable = TRUE); + + // Responds to size events, calling Layout. + + void OnSize( wxSizeEvent& event ); + + // Responds to paint events, drawing separators. + + void OnPaint( wxPaintEvent& event ); + + // Responds to background erase events. Currently does nothing. + + void OnEraseBackground( wxEraseEvent& event ); + + // Overriden from wxToolBarBase; does nothing. + + virtual bool Realize(void); + + // Finds a tool for the given position. virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const; + // Inserts a tool at the given position. virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool); - // the tool is still in m_tools list when this function is called, it will - // only be deleted from it if it succeeds + // Deletes a tool. The tool is still in m_tools list when this function is called, and it will + // only be deleted from it if it succeeds. + virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool); - // called when the tools enabled flag changes + // Called when the tools enabled flag changes. + virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable); - // called when the tool is toggled + // Called when the tool is toggled. + virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle); - // called when the tools "can be toggled" flag changes + // Called when the tools 'can be toggled' flag changes. + virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle); - // the functions to create toolbar tools + // Creates a toolbar tool. + virtual wxToolBarToolBase *CreateTool(int id, - const wxBitmap& bitmap1, - const wxBitmap& bitmap2, - bool toggle, + const wxString& label, + const wxBitmap& bmpNormal, + const wxBitmap& bmpDisabled, + wxItemKind kind, wxObject *clientData, - const wxString& shortHelpString, - const wxString& longHelpString); - virtual wxToolBarToolBase *CreateTool(wxControl *control); + const wxString& shortHelp, + const wxString& longHelp); + // Creates a toolbar tool. + + virtual wxToolBarToolBase *CreateTool(wxControl *control); - DECLARE_EVENT_TABLE() +private: + DECLARE_EVENT_TABLE() + DECLARE_DYNAMIC_CLASS(wxDynamicToolBar) }; #endif /* __DYNTBAR_G__ */