]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/tbarbase.h
wxClipboard now serves the primary selection as well
[wxWidgets.git] / include / wx / tbarbase.h
index b410ac6a829aa13e3bdfd422d308370fe309ec3f..260b2526a0437ef4e52b439d8e05ff671a001efc 100644 (file)
@@ -9,17 +9,16 @@
 // 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"
@@ -47,10 +46,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;
@@ -64,7 +63,7 @@ public:
 
 class WXDLLEXPORT wxToolBarBase : public wxControl
 {
-  DECLARE_DYNAMIC_CLASS(wxToolBarBase)
+  DECLARE_ABSTRACT_CLASS(wxToolBarBase)
  public:
 
   wxToolBarBase(void);
@@ -114,7 +113,7 @@ 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);
 
@@ -122,29 +121,35 @@ class WXDLLEXPORT wxToolBarBase : public wxControl
   inline virtual int GetToolPacking(void) { return m_toolPacking; }
   inline virtual int GetToolSeparation(void) { 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(void) 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(void) 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; };
+  inline int GetDefaultButtonWidth(void) const { return (int) GetDefaultButtonSize().x; };
+  inline int GetDefaultButtonHeight(void) const { return (int) GetDefaultButtonSize().y; };
+  virtual void SetDefaultSize(const wxSize& size) { SetToolBitmapSize(size); }
+  virtual wxSize GetDefaultSize(void) const { return GetToolBitmapSize(); }
+  virtual wxSize GetDefaultButtonSize(void) const { return GetToolSize(); }
 #endif
 
   // Lay the tools out
   virtual void Layout(void);
   
   // Add all the buttons: required for Win95.
-  // TODO: unify API so there's no ambiguity
   virtual bool CreateTools(void) { return TRUE; }
 
+  // Calls the appropriate function after tools have been created.
+  // E.g. Layout, or CreateTools.
+  virtual bool Realize() = 0;
+
   void Command(wxCommandEvent& event);
 
   // SCROLLING: this has to be copied from wxScrolledWindow since wxToolBarBase
@@ -178,26 +183,25 @@ class WXDLLEXPORT wxToolBarBase : public wxControl
   // Do the toolbar button updates (check for EVT_UPDATE_UI handlers)
   virtual void DoToolbarUpdates(void);
 
-/*
-  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);
+#ifdef __WXMSW__
+  virtual void MSWOnMouseMove(int x, int y, 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
@@ -234,7 +238,6 @@ public:
     DECLARE_EVENT_TABLE()
 };
 
-#endif // USE_TOOLBAR
 #endif
-    // __TBARBASEH__
+    // _WX_TBARBASE_H_