X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4f22cf8ddb6d4c75eee97d1320ba20f7c82753c8..cfe17b74353dcf5ed47c1449e6e415aeb0f1c295:/utils/wxPython/src/stattool.i diff --git a/utils/wxPython/src/stattool.i b/utils/wxPython/src/stattool.i index f28a74f802..c8987504ba 100644 --- a/utils/wxPython/src/stattool.i +++ b/utils/wxPython/src/stattool.i @@ -57,8 +57,6 @@ public: 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); @@ -67,26 +65,260 @@ public: //--------------------------------------------------------------------------- +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; @@ -114,7 +346,9 @@ public: %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - void AddSeparator(void); + bool AddControl(wxControl * control); + void AddSeparator(); + void ClearTools(); // Ignoge the clientData for now... %addmethods { @@ -131,19 +365,28 @@ public: 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(); @@ -151,90 +394,23 @@ public: 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. -// -// - - - - - - -