]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/tbarbase.h
wXMotif compilation fixes
[wxWidgets.git] / include / wx / tbarbase.h
index b410ac6a829aa13e3bdfd422d308370fe309ec3f..23247b43a1dddf6bc46f7486b459f3bafe8a0b40 100644 (file)
@@ -9,35 +9,47 @@
 // Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef __TBARBASEH__
-#define __TBARBASEH__
+#ifndef _WX_TBARBASE_H_
+#define _WX_TBARBASE_H_
 
 #ifdef __GNUG__
 #pragma interface "tbarbase.h"
 #endif
 
+#include "wx/setup.h"
 #include "wx/defs.h"
 
-#if USE_TOOLBAR
-
 #include "wx/bitmap.h"
 #include "wx/list.h"
 #include "wx/control.h"
 
-WXDLLEXPORT_DATA(extern const char*) wxToolBarNameStr;
+WXDLLEXPORT_DATA(extern const wxChar*) wxToolBarNameStr;
 WXDLLEXPORT_DATA(extern const wxSize) wxDefaultSize;
 WXDLLEXPORT_DATA(extern const wxPoint) wxDefaultPosition;
 
 #define wxTOOL_STYLE_BUTTON          1
 #define wxTOOL_STYLE_SEPARATOR       2
 
+#ifdef __WXGTK__
+class WXDLLEXPORT wxToolBar;
+#endif
+
 class WXDLLEXPORT wxToolBarTool: public wxObject
 {
   DECLARE_DYNAMIC_CLASS(wxToolBarTool)
  public:
-  wxToolBarTool(int theIndex = 0, const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap,
+  wxToolBarTool() {}
+#ifdef __WXGTK__
+  wxToolBarTool(wxToolBar *owner,
+                int theIndex = 0, const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap,
+                bool toggle = FALSE, wxObject *clientData = (wxObject *) NULL,
+                const wxString& shortHelpString = "", const wxString& longHelpString = "",
+                GtkWidget *pixmap = (GtkWidget *) NULL );
+#else
+  wxToolBarTool(int theIndex, const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap,
                 bool toggle = FALSE, long xPos = -1, long yPos = -1,
-                const wxString& shortHelpString = "", const wxString& longHelpString = "");
+                const wxString& shortHelpString = wxEmptyString, const wxString& longHelpString = wxEmptyString);
+#endif
   ~wxToolBarTool ();
   inline void SetSize( long w, long h ) { m_width = w; m_height = h; }
   inline long GetWidth () const { return m_width; }
@@ -47,10 +59,10 @@ public:
   int                   m_toolStyle;
   wxObject *            m_clientData;
   int                   m_index;
-  long                 m_x;
-  long                 m_y;
-  long                 m_width;
-  long                 m_height;
+  long                  m_x;
+  long                  m_y;
+  long                  m_width;
+  long                  m_height;
   bool                  m_toggleState;
   bool                  m_isToggle;
   bool                  m_deleteSecondBitmap;
@@ -60,15 +72,20 @@ public:
   bool                  m_isMenuCommand;
   wxString              m_shortHelpString;
   wxString              m_longHelpString;
+#ifdef __WXGTK__
+  wxToolBar            *m_owner;
+  GtkWidget            *m_item;
+  GtkWidget            *m_pixmap;
+#endif
 };
 
 class WXDLLEXPORT wxToolBarBase : public wxControl
 {
-  DECLARE_DYNAMIC_CLASS(wxToolBarBase)
+  DECLARE_ABSTRACT_CLASS(wxToolBarBase)
  public:
 
-  wxToolBarBase(void);
-  ~wxToolBarBase(void);
+  wxToolBarBase();
+  ~wxToolBarBase();
 
   // Handle wxToolBar events
 
@@ -87,15 +104,15 @@ class WXDLLEXPORT wxToolBarBase : public wxControl
   // 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, long xPos = -1, long yPos = -1, wxObject *clientData = NULL,
-               const wxString& helpString1 = "", const wxString& helpString2 = "");
-  virtual void AddSeparator(void);
-  virtual void ClearTools(void);
+               const wxString& helpString1 = wxEmptyString, const wxString& helpString2 = wxEmptyString);
+  virtual void AddSeparator();
+  virtual void ClearTools();
 
   virtual void EnableTool(int toolIndex, bool enable);
   virtual void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on
   virtual void SetToggle(int toolIndex, bool toggle); // Set this to be togglable (or not)
   virtual wxObject *GetToolClientData(int index) const;
-  inline wxList& GetTools(void) const { return (wxList&) m_tools; }
+  inline wxList& GetTools() const { return (wxList&) m_tools; }
 
   // After the toolbar has initialized, this is the size the tools take up
 #if WXWXIN_COMPATIBILITY
@@ -114,36 +131,42 @@ class WXDLLEXPORT wxToolBarBase : public wxControl
   virtual wxString GetToolLongHelp(int toolIndex) const;
 
   virtual void SetMargins(int x, int y);
-  inline void SetMargins(const wxSize& size) { SetMargins(size.x, size.y); }
+  inline void SetMargins(const wxSize& size) { SetMargins((int) size.x, (int) size.y); }
   virtual void SetToolPacking(int packing);
   virtual void SetToolSeparation(int separation);
 
-  inline virtual wxSize GetToolMargins(void) { return wxSize(m_xMargin, m_yMargin); }
-  inline virtual int GetToolPacking(void) { return m_toolPacking; }
-  inline virtual int GetToolSeparation(void) { return m_toolSeparation; }
+  inline virtual wxSize GetToolMargins() { return wxSize(m_xMargin, m_yMargin); }
+  inline virtual int GetToolPacking() { return m_toolPacking; }
+  inline virtual int GetToolSeparation() { return m_toolSeparation; }
 
-  virtual void SetDefaultSize(const wxSize& size) { m_defaultWidth = size.x; m_defaultHeight = size.y; };
-  virtual wxSize GetDefaultSize(void) const { return wxSize(m_defaultWidth, m_defaultHeight); }
+  virtual void SetToolBitmapSize(const wxSize& size) { m_defaultWidth = size.x; m_defaultHeight = size.y; };
+  virtual wxSize GetToolBitmapSize() const { return wxSize(m_defaultWidth, m_defaultHeight); }
 
   // The button size (in some implementations) is bigger than the bitmap size: this returns
   // the total button size.
-  virtual wxSize GetDefaultButtonSize(void) const { return wxSize(m_defaultWidth, m_defaultHeight); } ;
+  virtual wxSize GetToolSize() const { return wxSize(m_defaultWidth, m_defaultHeight); } ;
 
   // Compatibility
 #if WXWIN_COMPATIBILITY
-  inline void SetDefaultSize(int w, int h) { SetDefaultSize(wxSize(w, h)); }
-  inline long GetDefaultWidth(void) const { return m_defaultWidth; }
-  inline long GetDefaultHeight(void) const { return m_defaultHeight; }
-  inline int GetDefaultButtonWidth(void) const { return GetDefaultButtonSize().x; };
-  inline int GetDefaultButtonHeight(void) const { return GetDefaultButtonSize().y; };
+  void SetDefaultSize(int w, int h) { SetDefaultSize(wxSize(w, h)); }
+  long GetDefaultWidth() const { return m_defaultWidth; }
+  long GetDefaultHeight() const { return m_defaultHeight; }
+  int GetDefaultButtonWidth() const { return (int) GetDefaultButtonSize().x; };
+  int GetDefaultButtonHeight() const { return (int) GetDefaultButtonSize().y; };
+  virtual void SetDefaultSize(const wxSize& size) { SetToolBitmapSize(size); }
+  virtual wxSize GetDefaultSize() const { return GetToolBitmapSize(); }
+  virtual wxSize GetDefaultButtonSize() const { return GetToolSize(); }
 #endif
 
   // Lay the tools out
-  virtual void Layout(void);
-  
+  virtual void LayoutTools();
+
   // Add all the buttons: required for Win95.
-  // TODO: unify API so there's no ambiguity
-  virtual bool CreateTools(void) { return TRUE; }
+  virtual bool CreateTools() { return TRUE; }
+
+  // Calls the appropriate function after tools have been created.
+  // E.g. Layout, or CreateTools.
+  virtual bool Realize() = 0;
 
   void Command(wxCommandEvent& event);
 
@@ -161,7 +184,7 @@ class WXDLLEXPORT wxToolBarBase : public wxControl
   virtual void Scroll(int x_pos, int y_pos);
   virtual void GetScrollPixelsPerUnit(int *x_unit, int *y_unit) const;
   virtual void EnableScrolling(bool x_scrolling, bool y_scrolling);
-  virtual void AdjustScrollbars(void);
+  virtual void AdjustScrollbars();
 
   // Prepare the DC by translating it according to the current scroll position
   virtual void PrepareDC(wxDC& dc);
@@ -176,28 +199,22 @@ class WXDLLEXPORT wxToolBarBase : public wxControl
   virtual void GetVirtualSize(int *x, int *y) const;
 
   // Do the toolbar button updates (check for EVT_UPDATE_UI handlers)
-  virtual void DoToolbarUpdates(void);
+  virtual void DoToolbarUpdates();
 
-/*
-  virtual void CalcScrolledPosition(int x, int y, int *xx, int *yy) const ;
-  virtual void CalcUnscrolledPosition(int x, int y, long *xx, long *yy) const ;
-*/
+  inline void SetMaxRowsCols(int rows, int cols) { m_maxRows = rows; m_maxCols = cols; }
+  inline int GetMaxRows() const { return m_maxRows; }
+  inline int GetMaxCols() const { return m_maxCols; }
 
   void OnScroll(wxScrollEvent& event);
   void OnSize(wxSizeEvent& event);
   void OnIdle(wxIdleEvent& event);
 
-  // Required to force normal cursor-setting behaviour in Windows
-#ifdef __WINDOWS__
-  virtual void MSWOnMouseMove(int x, int y, const WXUINT flags);
-#endif
-
  protected:
   wxList                m_tools;
-  int                   m_tilingDirection;
-  int                   m_rowsOrColumns;
-  int                   m_currentRowsOrColumns;
-  long                  m_lastX, m_lastY;
+//  int                   m_tilingDirection;
+//  int                   m_rowsOrColumns;
+  int                   m_maxRows;
+  int                   m_maxCols;
   long                  m_maxWidth, m_maxHeight;
   int                   m_currentTool; // Tool where mouse currently is
   int                   m_pressedTool; // Tool where mouse pressed
@@ -205,13 +222,14 @@ class WXDLLEXPORT wxToolBarBase : public wxControl
   int                   m_yMargin;
   int                   m_toolPacking;
   int                   m_toolSeparation;
-  long                  m_defaultWidth;
-  long                  m_defaultHeight;
+
+  wxCoord               m_defaultWidth;
+  wxCoord               m_defaultHeight;
 
 public:
   ////////////////////////////////////////////////////////////////////////
   //// IMPLEMENTATION
-  
+
   // Calculate scroll increment
   virtual int CalcScrollInc(wxScrollEvent& event);
 
@@ -234,7 +252,6 @@ public:
     DECLARE_EVENT_TABLE()
 };
 
-#endif // USE_TOOLBAR
 #endif
-    // __TBARBASEH__
+    // _WX_TBARBASE_H_