X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9c039d08bfbb59c0abcbc705fb49f9b2cb321edf..7ece89c6b10b74d90534afcffc61522a8f394d8c:/utils/wxPython/src/stattool.i diff --git a/utils/wxPython/src/stattool.i b/utils/wxPython/src/stattool.i index a1420b4c80..575f8880b5 100644 --- a/utils/wxPython/src/stattool.i +++ b/utils/wxPython/src/stattool.i @@ -30,6 +30,7 @@ %import windows.i %import controls.i +%pragma(python) code = "import wx" //--------------------------------------------------------------------------- @@ -41,7 +42,7 @@ public: long style = wxST_SIZEGRIP, char* name = "statusBar"); - %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)" + %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" %addmethods { %new wxRect* GetFieldRect(long item) { @@ -52,27 +53,267 @@ public: } int GetFieldsCount(void); wxString GetStatusText(int ir = 0); - void DrawField(wxDC& dc, int i); - void DrawFieldText(wxDC& dc, int i); - void InitColours(void); + int GetBorderX(); + int GetBorderY(); - // OnSysColourChanged(wxSysColourChangedEvent& event); +// void DrawField(wxDC& dc, int i); +// void DrawFieldText(wxDC& dc, int i); +// void InitColours(void); void SetFieldsCount(int number = 1); void SetStatusText(const wxString& text, int i = 0); - void SetStatusWidths(int LCOUNT, int* LIST); + void SetStatusWidths(int LCOUNT, int* choices); + void SetMinHeight(int height); }; //--------------------------------------------------------------------------- +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 char* 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 char* name = wxToolBarNameStr); + + %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" + + wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y); +}; + +//--------------------------------------------------------------------------- + + + +#ifdef THE_OLD_ONE + class wxToolBarTool { public: wxToolBarTool(); ~wxToolBarTool(); - void SetSize( long w, long h ) { m_width = w; m_height = h; } - long GetWidth () const { return m_width; } - long GetHeight () const { return m_height; } + void SetSize( long w, long h ) + long GetWidth (); + long GetHeight (); + wxControl *GetControl(); public: int m_toolStyle; @@ -95,11 +336,23 @@ public: -class wxToolBarBase : public wxControl { +// class wxToolBarBase : public wxControl { +// public: + +class wxToolBar : public wxControl { 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)" - void AddSeparator(void); + bool AddControl(wxControl * control); + void AddSeparator(); + void ClearTools(); // Ignoge the clientData for now... %addmethods { @@ -116,15 +369,27 @@ 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); - wxToolBarTool* FindToolForPosition(const float x, const float y); + + void EnableTool(int toolIndex, bool enable); +#ifdef __WXMSW__ + wxToolBarTool* FindToolForPosition(long x, long y); wxSize GetToolSize(); wxSize GetToolBitmapSize(); -// wxSize GetMargins(); + void SetToolBitmapSize(const wxSize& size); wxSize GetMaxSize(); +#endif + wxSize GetToolMargins(); // wxObject* GetToolClientData(int toolIndex); bool GetToolEnabled(int toolIndex); wxString GetToolLongHelp(int toolIndex); @@ -133,64 +398,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 SetToolBitmapSize(const wxSize& size); - void SetMargins(const wxSize& size); + void SetToolLongHelp(int toolIndex, const wxString& helpString); - void SetToolPacking(int packing); 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__:wxp._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__:wxp._StdWindowCallbacks(self)" - -}; - +#endif //--------------------------------------------------------------------------- -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.1 1998/10/02 06:40:42 RD -// Version 0.4 of wxPython for MSW. -// -// - - - - - - -