void DrawFieldText(wxDC& dc, int i);
void InitColours(void);
- // OnSysColourChanged(wxSysColourChangedEvent& event);
-
void SetFieldsCount(int number = 1);
void SetStatusText(const wxString& text, int i = 0);
void SetStatusWidths(int LCOUNT, int* LIST);
//---------------------------------------------------------------------------
+class wxToolBarBase;
+
+enum wxToolBarToolStyle
+{
+ wxTOOL_STYLE_BUTTON = 1,
+ wxTOOL_STYLE_SEPARATOR = 2,
+ wxTOOL_STYLE_CONTROL
+};
+
+
+
+class wxToolBarToolBase {
+public:
+// wxToolBarToolBase(wxToolBarBase *tbar = (wxToolBarBase *)NULL,
+// int id = wxID_SEPARATOR,
+// const wxBitmap& bitmap1 = wxNullBitmap,
+// const wxBitmap& bitmap2 = wxNullBitmap,
+// bool toggle = FALSE,
+// wxObject *clientData = (wxObject *) NULL,
+// const wxString& shortHelpString = wxEmptyString,
+// const wxString& longHelpString = wxEmptyString);
+// wxToolBarToolBase(wxToolBarBase *tbar, wxControl *control);
+// ~wxToolBarToolBase();
+
+ %addmethods { void Destroy() { delete self; } }
+
+ int GetId();
+ wxControl *GetControl();
+ wxToolBarBase *GetToolBar();
+ int IsButton();
+ int IsControl();
+ int IsSeparator();
+ int GetStyle();
+ bool IsEnabled();
+ bool IsToggled();
+ bool CanBeToggled();
+ const wxBitmap& GetBitmap1();
+ const wxBitmap& GetBitmap2();
+ const wxBitmap& GetBitmap();
+ wxString GetShortHelp();
+ wxString GetLongHelp();
+ bool Enable(bool enable);
+ bool Toggle(bool toggle);
+ bool SetToggle(bool toggle);
+ bool SetShortHelp(const wxString& help);
+ bool SetLongHelp(const wxString& help);
+ void SetBitmap1(const wxBitmap& bmp);
+ void SetBitmap2(const wxBitmap& bmp);
+ void Detach();
+ void Attach(wxToolBarBase *tbar);
+
+ //wxObject *GetClientData();
+ %addmethods {
+ // convert the ClientData back to a PyObject
+ PyObject* GetClientData() {
+ wxPyUserData* udata = (wxPyUserData*)self->GetClientData();
+ if (udata) {
+ Py_INCREF(udata->m_obj);
+ return udata->m_obj;
+ } else {
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+ }
+
+ void SetClientData(PyObject* clientData) {
+ self->SetClientData(new wxPyUserData(clientData));
+ }
+ }
+};
+
+
+
+class wxToolBarBase : public wxControl {
+public:
+
+ // This is an Abstract Base Class
+
+ %addmethods {
+ // wrap ClientData in a class that knows about PyObjects
+ wxToolBarToolBase *AddTool(int id,
+ const wxBitmap& bitmap,
+ const wxBitmap& pushedBitmap = wxNullBitmap,
+ int toggle = FALSE,
+ PyObject *clientData = NULL,
+ const wxString& shortHelpString = wxPyEmptyStr,
+ const wxString& longHelpString = wxPyEmptyStr) {
+ wxPyUserData* udata = NULL;
+ if (clientData)
+ udata = new wxPyUserData(clientData);
+ return self->AddTool(id, bitmap, pushedBitmap, (bool)toggle,
+ udata, shortHelpString, longHelpString);
+ }
+
+ // This one is easier to use...
+ wxToolBarToolBase *AddSimpleTool(int id,
+ const wxBitmap& bitmap,
+ const wxString& shortHelpString = wxPyEmptyStr,
+ const wxString& longHelpString = wxPyEmptyStr,
+ int toggle = FALSE) {
+ return self->AddTool(id, bitmap, wxNullBitmap, toggle, NULL,
+ shortHelpString, longHelpString);
+ }
+
+
+ // wrap ClientData in a class that knows about PyObjects
+ wxToolBarToolBase *InsertTool(size_t pos,
+ int id,
+ const wxBitmap& bitmap,
+ const wxBitmap& pushedBitmap = wxNullBitmap,
+ int toggle = FALSE,
+ PyObject *clientData = NULL,
+ const wxString& shortHelpString = wxPyEmptyStr,
+ const wxString& longHelpString = wxPyEmptyStr) {
+ wxPyUserData* udata = NULL;
+ if (clientData)
+ udata = new wxPyUserData(clientData);
+ return self->InsertTool(pos, id, bitmap, pushedBitmap, (bool)toggle,
+ udata, shortHelpString, longHelpString);
+ }
+
+ // This one is easier to use...
+ wxToolBarToolBase *InsertSimpleTool(size_t pos,
+ int id,
+ const wxBitmap& bitmap,
+ const wxString& shortHelpString = wxPyEmptyStr,
+ const wxString& longHelpString = wxPyEmptyStr,
+ int toggle = FALSE) {
+ return self->InsertTool(pos, id, bitmap, wxNullBitmap, toggle, NULL,
+ shortHelpString, longHelpString);
+ }
+ }
+
+
+ wxToolBarToolBase *AddControl(wxControl *control);
+ wxToolBarToolBase *InsertControl(size_t pos, wxControl *control);
+
+ wxToolBarToolBase *AddSeparator();
+ wxToolBarToolBase *InsertSeparator(size_t pos);
+
+ wxToolBarToolBase *RemoveTool(int id);
+
+ bool DeleteToolByPos(size_t pos);
+ bool DeleteTool(int id);
+ void ClearTools();
+ bool Realize();
+
+ void EnableTool(int id, bool enable);
+ void ToggleTool(int id, bool toggle);
+ void SetToggle(int id, bool toggle);
+
+
+ %addmethods {
+ // convert the ClientData back to a PyObject
+ PyObject* GetToolClientData(int index) {
+ wxPyUserData* udata = (wxPyUserData*)self->GetToolClientData(index);
+ if (udata) {
+ Py_INCREF(udata->m_obj);
+ return udata->m_obj;
+ } else {
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+ }
+
+ void SetToolClientData(int index, PyObject* clientData) {
+ self->SetToolClientData(index, new wxPyUserData(clientData));
+ }
+ }
+
+
+ bool GetToolState(int id);
+ bool GetToolEnabled(int id);
+ void SetToolShortHelp(int id, const wxString& helpString);
+ wxString GetToolShortHelp(int id);
+ void SetToolLongHelp(int id, const wxString& helpString);
+ wxString GetToolLongHelp(int id);
+
+ %name(SetMarginsXY) void SetMargins(int x, int y);
+ void SetMargins(const wxSize& size);
+ void SetToolPacking(int packing);
+ void SetToolSeparation(int separation);
+ wxSize GetToolMargins();
+ int GetToolPacking();
+ int GetToolSeparation();
+
+ void SetRows(int nRows);
+ void SetMaxRowsCols(int rows, int cols);
+ int GetMaxRows();
+ int GetMaxCols();
+
+ void SetToolBitmapSize(const wxSize& size);
+ wxSize GetToolBitmapSize();
+ wxSize GetToolSize();
+
+};
+
+
+
+
+class wxToolBar : public wxToolBarBase {
+public:
+ wxToolBar(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxPyDefaultPosition,
+ const wxSize& size = wxPyDefaultSize,
+ long style = wxNO_BORDER | wxTB_HORIZONTAL,
+ const wxString& name = wxToolBarNameStr);
+
+ %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
+
+ wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y);
+};
+
+
+
+
+class wxToolBarSimple : public wxToolBarBase {
+public:
+ wxToolBarSimple(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos = wxPyDefaultPosition,
+ const wxSize& size = wxPyDefaultSize,
+ long style = wxNO_BORDER | wxTB_HORIZONTAL,
+ const wxString& name = wxToolBarNameStr);
+
+ %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
+
+ wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y);
+};
+
+//---------------------------------------------------------------------------
+
+
+
+#ifdef THE_OLD_ONE
+
class wxToolBarTool {
public:
wxToolBarTool();
~wxToolBarTool();
-#ifdef __WXMSW__
- void SetSize( long w, long h ) { m_width = w; m_height = h; }
- long GetWidth () const { return m_width; }
- long GetHeight () const { return m_height; }
-#endif
+ void SetSize( long w, long h )
+ long GetWidth ();
+ long GetHeight ();
+ wxControl *GetControl();
public:
int m_toolStyle;
wxObject * m_clientData;
int m_index;
-#ifdef __WXMSW__
long m_x;
long m_y;
long m_width;
long m_height;
-#endif
bool m_toggleState;
bool m_isToggle;
bool m_deleteSecondBitmap;
%pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
- void AddSeparator(void);
+ bool AddControl(wxControl * control);
+ void AddSeparator();
+ void ClearTools();
// Ignoge the clientData for now...
%addmethods {
isToggle, xPos, yPos, NULL,
shortHelpString, longHelpString);
}
+
+ wxToolBarTool* AddSimpleTool(int toolIndex,
+ const wxBitmap& bitmap,
+ const wxString& shortHelpString = wxPyEmptyStr,
+ const wxString& longHelpString = wxPyEmptyStr) {
+ return self->AddTool(toolIndex, bitmap, wxNullBitmap,
+ FALSE, -1, -1, NULL,
+ shortHelpString, longHelpString);
+ }
}
-// void DrawTool(wxMemoryDC& memDC, wxToolBarTool* tool);
- void EnableTool(int toolIndex, const bool enable);
+
+ void EnableTool(int toolIndex, bool enable);
#ifdef __WXMSW__
- wxToolBarTool* FindToolForPosition(const float x, const float y);
+ wxToolBarTool* FindToolForPosition(long x, long y);
wxSize GetToolSize();
wxSize GetToolBitmapSize();
void SetToolBitmapSize(const wxSize& size);
-// wxSize GetMargins();
wxSize GetMaxSize();
-// wxObject* GetToolClientData(int toolIndex);
#endif
+ wxSize GetToolMargins();
+// wxObject* GetToolClientData(int toolIndex);
bool GetToolEnabled(int toolIndex);
wxString GetToolLongHelp(int toolIndex);
int GetToolPacking();
wxString GetToolShortHelp(int toolIndex);
bool GetToolState(int toolIndex);
- // TODO: figure out how to handle these
- //bool OnLeftClick(int toolIndex, bool toggleDown);
- //void OnMouseEnter(int toolIndex);
- //void OnRightClick(int toolIndex, float x, float y);
bool Realize();
-
+
void SetToolLongHelp(int toolIndex, const wxString& helpString);
void SetToolShortHelp(int toolIndex, const wxString& helpString);
void SetMargins(const wxSize& size);
void SetToolPacking(int packing);
void SetToolSeparation(int separation);
void ToggleTool(int toolIndex, const bool toggle);
+ void SetToggle(int toolIndex, bool toggle);
+ void SetMaxRowsCols(int rows, int cols);
+ int GetMaxRows();
+ int GetMaxCols();
};
-
-// // The Native Toolbar
-// class wxToolBar : public wxToolBarBase {
-// public:
-// wxToolBar(wxWindow* parent, wxWindowID id,
-// const wxPoint& pos = wxPyDefaultPosition,
-// const wxSize& size = wxPyDefaultSize,
-// long style = wxTB_HORIZONTAL | wxNO_BORDER,
-// char* name = "toolBar");
-
-// %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
-
-// };
-
-
-// // A generic toolbar
-// class wxToolBarSimple : public wxToolBarBase {
-// public:
-// wxToolBarSimple(wxWindow* parent, wxWindowID id,
-// const wxPoint& pos = wxPyDefaultPosition,
-// const wxSize& size = wxPyDefaultSize,
-// long style = wxTB_HORIZONTAL | wxNO_BORDER,
-// char* name = "toolBar");
-
-// %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
-
-// };
-
+#endif
//---------------------------------------------------------------------------
-/////////////////////////////////////////////////////////////////////////////
-//
-// $Log$
-// Revision 1.4 1998/12/17 14:07:43 RR
-// Removed minor differences between wxMSW and wxGTK
-//
-// Revision 1.3 1998/12/15 20:41:23 RD
-// Changed the import semantics from "from wxPython import *" to "from
-// wxPython.wx import *" This is for people who are worried about
-// namespace pollution, they can use "from wxPython import wx" and then
-// prefix all the wxPython identifiers with "wx."
-//
-// Added wxTaskbarIcon for wxMSW.
-//
-// Made the events work for wxGrid.
-//
-// Added wxConfig.
-//
-// Added wxMiniFrame for wxGTK, (untested.)
-//
-// Changed many of the args and return values that were pointers to gdi
-// objects to references to reflect changes in the wxWindows API.
-//
-// Other assorted fixes and additions.
-//
-// Revision 1.2 1998/10/07 07:34:34 RD
-// Version 0.4.1 for wxGTK
-//
-// Revision 1.1 1998/10/02 06:40:42 RD
-//
-// Version 0.4 of wxPython for MSW.
-//
-//
-
-
-
-
-
-
-