]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/include/wx/fl/dyntbar.h
Don't set insertion point if the text is the same in SetValue
[wxWidgets.git] / contrib / include / wx / fl / dyntbar.h
index 644308277a3e8a9ab1713e68257b8490c832dd55..9f63ff0ca42e990ea00549d7d6ee898ad147bc4a 100644 (file)
 /////////////////////////////////////////////////////////////////////////////
-// 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_NO_PTR( wxToolLayoutItemPtrT, wxLayoutItemArrayT  );
+WXFL_DEFINE_ARRAY_NO_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);
 
-       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(void);
+    ~wxDynamicToolBar(void);
 
-       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);
+        // Creation function: see the documentation for wxToolBar for details.
 
-       // overridables
+    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);
 
-       virtual void AddTool( int toolIndex, 
-                              wxWindow* pToolWindow, 
+        // 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, 
+        // Adds a tool. See the documentation for wxToolBar for details.
+
+    virtual void AddTool( int toolIndex,
                               const wxString& imageFileName,
                               wxBitmapType imageFileType = wxBITMAP_TYPE_BMP,
-                              const wxString& labelText = "", bool alignTextRight = FALSE,
+                              const wxString& labelText = wxT(""), bool alignTextRight = FALSE,
                               bool isFlat = TRUE );
-        virtual void AddTool( int toolIndex, wxBitmap labelBmp,
-                              const wxString& labelText = "", bool alignTextRight = FALSE,
+        // Adds a tool. See the documentation for wxToolBar for details.
+
+    virtual void AddTool( int toolIndex, wxBitmap labelBmp,
+                              const wxString& labelText = wxT(""), bool alignTextRight = FALSE,
                               bool isFlat = TRUE );
 
-       // method from wxToolBarBase (for compatibility), only
-       // first two arguments are valid
+    // 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,
+    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 = NULL );
+
+        // Returns tool information for the given tool index.
+
+    wxDynToolInfo* GetToolInfo( int toolIndex );
+
+        // Removes the given tool. Misspelt in order not to clash with a similar function
+        // in the base class.
 
-       virtual void AddSeparator( wxWindow* pSepartorWnd = NULL );
+    void RemveTool( int toolIndex );
 
-       wxDynToolInfo* GetToolInfo( int toolIndex );
+        // Draws a separator. The default implementation draws a shaded line.
 
-       void RemveTool( int toolIndex );
+    virtual void DrawSeparator( wxDynToolInfo& info, wxDC& dc );
 
-       // the default implementation draws shaded line
-       virtual void DrawSeparator( wxDynToolInfo& info, wxDC& dc );
+        // Performs layout. See definitions of orientation types.
 
-       // see definitions of orientation types
-       virtual bool Layout();
+    virtual bool Layout();
 
-       virtual void GetPreferredDim( const wxSize& givenDim, wxSize& prefDim );
+        // Returns the preferred dimension, taking the given dimension and a reference to the result.
 
-       virtual LayoutManagerBase* CreateDefaulLayout() { return new BagLayout(); }
+    virtual void GetPreferredDim( const wxSize& givenDim, wxSize& prefDim );
 
-       virtual void SetLayout( LayoutManagerBase* pLayout );
+        // Creates the default layout (BagLayout).
 
-       virtual void EnableTool(const int toolIndex, const bool enable = TRUE);
+    virtual LayoutManagerBase* CreateDefaultLayout() { return new BagLayout(); }
 
-       // event handlers
+        // Sets the layout for this toolbar.
 
-       void OnSize( wxSizeEvent& event );
-       void OnPaint( wxPaintEvent& event );
-       void OnEraseBackground( wxEraseEvent& event );
+    virtual void SetLayout( LayoutManagerBase* pLayout );
 
-       // overriden from wxToolBarBase
+        // Enables or disables the given tool.
 
-       virtual bool Realize(void);
+    virtual void EnableTool(int toolIndex, bool enable = TRUE);
 
-       // stuff from the 2.1.15 
+        // 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__ */