X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..b96c7a38a84ff9f6dfecd3885fba1971d30b9c0b:/wxPython/src/stattool.i diff --git a/wxPython/src/stattool.i b/wxPython/src/stattool.i index 37702d31f4..d209ba87e7 100644 --- a/wxPython/src/stattool.i +++ b/wxPython/src/stattool.i @@ -32,17 +32,31 @@ %pragma(python) code = "import wx" + +//---------------------------------------------------------------------- + +%{ + // Put some wx default wxChar* values into wxStrings. + DECLARE_DEF_STRING(StatusLineNameStr); + DECLARE_DEF_STRING(ToolBarNameStr); + static const wxString wxPyEmptyString(wxT("")); +%} + //--------------------------------------------------------------------------- class wxStatusBar : public wxWindow { public: - wxStatusBar(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, + wxStatusBar(wxWindow* parent, wxWindowID id = -1, + long style = wxST_SIZEGRIP, + const wxString& name = wxPyStatusLineNameStr); + %name(wxPreStatusBar)wxStatusBar(); + + bool Create(wxWindow* parent, wxWindowID id, long style = wxST_SIZEGRIP, - char* name = "statusBar"); + const wxString& name = wxPyStatusLineNameStr); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" + %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" + %pragma(python) addtomethod = "wxPreStatusBar:val._setOORInfo(val)" %addmethods { %new wxRect* GetFieldRect(long item) { @@ -56,10 +70,6 @@ public: int GetBorderX(); int GetBorderY(); -// 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* choices); @@ -80,17 +90,17 @@ enum wxToolBarToolStyle -class wxToolBarToolBase { +class wxToolBarToolBase : public wxObject { public: // wxToolBarToolBase(wxToolBarBase *tbar = (wxToolBarBase *)NULL, // int id = wxID_SEPARATOR, -// const wxBitmap& bitmap1 = wxNullBitmap, -// const wxBitmap& bitmap2 = wxNullBitmap, -// bool toggle = FALSE, +// const wxString& label = wxEmptyString, +// const wxBitmap& bmpNormal = wxNullBitmap, +// const wxBitmap& bmpDisabled = wxNullBitmap, +// wxItemKind kind = wxITEM_NORMAL, // wxObject *clientData = (wxObject *) NULL, // const wxString& shortHelpString = wxEmptyString, -// const wxString& longHelpString = wxEmptyString); -// wxToolBarToolBase(wxToolBarBase *tbar, wxControl *control); +// const wxString& longHelpString = wxEmptyString) // ~wxToolBarToolBase(); %addmethods { void Destroy() { delete self; } } @@ -102,21 +112,24 @@ public: int IsControl(); int IsSeparator(); int GetStyle(); + wxItemKind GetKind(); bool IsEnabled(); bool IsToggled(); bool CanBeToggled(); - const wxBitmap& GetBitmap1(); - const wxBitmap& GetBitmap2(); - const wxBitmap& GetBitmap(); + const wxBitmap& GetNormalBitmap(); + const wxBitmap& GetDisabledBitmap(); + wxBitmap GetBitmap(); + wxString GetLabel(); wxString GetShortHelp(); wxString GetLongHelp(); bool Enable(bool enable); - bool Toggle(bool toggle); + void 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 SetNormalBitmap(const wxBitmap& bmp); + void SetDisabledBitmap(const wxBitmap& bmp); + void SetLabel(const wxString& label); void Detach(); void Attach(wxToolBarBase *tbar); @@ -138,6 +151,13 @@ public: self->SetClientData(new wxPyUserData(clientData)); } } + + %pragma(python) addtoclass=" + GetBitmap1 = GetNormalBitmap + GetBitmap2 = GetDisabledBitmap + SetBitmap1 = SetNormalBitmap + SetBitmap2 = SetDisabledBitmap + " }; @@ -148,57 +168,102 @@ public: // This is an Abstract Base Class %addmethods { - // wrap ClientData in a class that knows about PyObjects + + // the full AddTool() function + // + // If bmpDisabled is wxNullBitmap, a shadowed version of the normal bitmap + // is created and used as the disabled image. wxToolBarToolBase *AddTool(int id, + const wxString& label, const wxBitmap& bitmap, - const wxBitmap& pushedBitmap = wxNullBitmap, - int toggle = FALSE, - PyObject *clientData = NULL, - const wxString& shortHelpString = wxPyEmptyStr, - const wxString& longHelpString = wxPyEmptyStr) { + const wxBitmap& bmpDisabled, + wxItemKind kind = wxITEM_NORMAL, + const wxString& shortHelp = wxPyEmptyString, + const wxString& longHelp = wxPyEmptyString, + PyObject *clientData = NULL) + { wxPyUserData* udata = NULL; if (clientData) udata = new wxPyUserData(clientData); - return self->AddTool(id, bitmap, pushedBitmap, (bool)toggle, - udata, shortHelpString, longHelpString); + return self->AddTool(id, label, bitmap, bmpDisabled, kind, + shortHelp, longHelp, udata); } - // This one is easier to use... + // The most common version of AddTool wxToolBarToolBase *AddSimpleTool(int id, + const wxString& label, const wxBitmap& bitmap, - const wxString& shortHelpString = wxPyEmptyStr, - const wxString& longHelpString = wxPyEmptyStr, - int toggle = FALSE) { - return self->AddTool(id, bitmap, wxNullBitmap, toggle, NULL, - shortHelpString, longHelpString); + const wxString& shortHelp = wxPyEmptyString, + const wxString& longHelp = wxPyEmptyString, + wxItemKind kind = wxITEM_NORMAL) + { + return self->AddTool(id, label, bitmap, wxNullBitmap, kind, + shortHelp, longHelp, NULL); } + // add a check tool, i.e. a tool which can be toggled + wxToolBarToolBase *AddCheckTool(int id, + const wxString& label, + const wxBitmap& bitmap, + const wxBitmap& bmpDisabled = wxNullBitmap, + const wxString& shortHelp = wxEmptyString, + const wxString& longHelp = wxEmptyString, + PyObject *clientData = NULL) + { + wxPyUserData* udata = NULL; + if (clientData) + udata = new wxPyUserData(clientData); + return self->AddCheckTool(id, label, bitmap, bmpDisabled, + shortHelp, longHelp, udata); + } + + // add a radio tool, i.e. a tool which can be toggled and releases any + // other toggled radio tools in the same group when it happens + wxToolBarToolBase *AddRadioTool(int id, + const wxString& label, + const wxBitmap& bitmap, + const wxBitmap& bmpDisabled = wxNullBitmap, + const wxString& shortHelp = wxEmptyString, + const wxString& longHelp = wxEmptyString, + PyObject *clientData = NULL) + { + wxPyUserData* udata = NULL; + if (clientData) + udata = new wxPyUserData(clientData); + return self->AddRadioTool(id, label, bitmap, bmpDisabled, + shortHelp, longHelp, udata); + } - // wrap ClientData in a class that knows about PyObjects + // insert the new tool at the given position, if pos == GetToolsCount(), it + // is equivalent to AddTool() wxToolBarToolBase *InsertTool(size_t pos, int id, + const wxString& label, const wxBitmap& bitmap, - const wxBitmap& pushedBitmap = wxNullBitmap, - int toggle = FALSE, - PyObject *clientData = NULL, - const wxString& shortHelpString = wxPyEmptyStr, - const wxString& longHelpString = wxPyEmptyStr) { + const wxBitmap& bmpDisabled = wxNullBitmap, + wxItemKind kind = wxITEM_NORMAL, + const wxString& shortHelp = wxEmptyString, + const wxString& longHelp = wxEmptyString, + PyObject *clientData = NULL) + { wxPyUserData* udata = NULL; if (clientData) udata = new wxPyUserData(clientData); - return self->InsertTool(pos, id, bitmap, pushedBitmap, (bool)toggle, - udata, shortHelpString, longHelpString); + return self->InsertTool(pos, id, label, bitmap, bmpDisabled, kind, + shortHelp, longHelp, udata); } - // This one is easier to use... + // A simpler InsertTool 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); + int id, + const wxString& label, + const wxBitmap& bitmap, + wxItemKind kind = wxITEM_NORMAL, + const wxString& shortHelp = wxEmptyString, + const wxString& longHelp = wxEmptyString) + { + return self->InsertTool(pos, id, label, bitmap, wxNullBitmap, kind, + shortHelp, longHelp); } } @@ -223,8 +288,8 @@ public: %addmethods { // convert the ClientData back to a PyObject - PyObject* GetToolClientData(int index) { - wxPyUserData* udata = (wxPyUserData*)self->GetToolClientData(index); + PyObject* GetToolClientData(int id) { + wxPyUserData* udata = (wxPyUserData*)self->GetToolClientData(id); if (udata) { Py_INCREF(udata->m_obj); return udata->m_obj; @@ -234,8 +299,8 @@ public: } } - void SetToolClientData(int index, PyObject* clientData) { - self->SetToolClientData(index, new wxPyUserData(clientData)); + void SetToolClientData(int id, PyObject* clientData) { + self->SetToolClientData(id, new wxPyUserData(clientData)); } } @@ -252,6 +317,7 @@ public: void SetToolPacking(int packing); void SetToolSeparation(int separation); wxSize GetToolMargins(); + wxSize GetMargins(); int GetToolPacking(); int GetToolSeparation(); @@ -264,6 +330,12 @@ public: wxSize GetToolBitmapSize(); wxSize GetToolSize(); + // returns a (non separator) tool containing the point (x, y) or NULL if + // there is no tool at this point (corrdinates are client) + wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y); + + // return TRUE if this is a vertical toolbar, otherwise FALSE + bool IsVertical(); }; @@ -273,12 +345,21 @@ class wxToolBar : public wxToolBarBase { public: wxToolBar(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = wxNO_BORDER | wxTB_HORIZONTAL, - const char* name = wxToolBarNameStr); + const wxString& name = wxPyToolBarNameStr); + %name(wxPreToolBar)wxToolBar(); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" + bool Create(wxWindow *parent, + wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxNO_BORDER | wxTB_HORIZONTAL, + const wxString& name = wxPyToolBarNameStr); + + %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" + %pragma(python) addtomethod = "wxPreToolBar:val._setOORInfo(val)" wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y); }; @@ -290,131 +371,25 @@ class wxToolBarSimple : public wxToolBarBase { public: wxToolBarSimple(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = wxNO_BORDER | wxTB_HORIZONTAL, - const char* name = wxToolBarNameStr); + const wxString& name = wxPyToolBarNameStr); + %name(wxPreToolBarSimple)wxToolBarSimple(); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" + bool Create(wxWindow *parent, + wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxNO_BORDER | wxTB_HORIZONTAL, + const wxString& name = wxPyToolBarNameStr); + + %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" + %pragma(python) addtomethod = "wxPreToolBarSimple:val._setOORInfo(val)" wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y); }; //--------------------------------------------------------------------------- - - - -#ifdef THE_OLD_ONE - -class wxToolBarTool { -public: - wxToolBarTool(); - ~wxToolBarTool(); - void SetSize( long w, long h ) - long GetWidth (); - long GetHeight (); - wxControl *GetControl(); - -public: - int m_toolStyle; - wxObject * m_clientData; - int m_index; - long m_x; - long m_y; - long m_width; - long m_height; - bool m_toggleState; - bool m_isToggle; - bool m_deleteSecondBitmap; - bool m_enabled; - wxBitmap m_bitmap1; - wxBitmap m_bitmap2; - bool m_isMenuCommand; - wxString m_shortHelpString; - wxString m_longHelpString; -}; - - - -// 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)" - - - bool AddControl(wxControl * control); - void AddSeparator(); - void ClearTools(); - - // Ignoge the clientData for now... - %addmethods { - wxToolBarTool* AddTool(int toolIndex, - const wxBitmap& bitmap1, - const wxBitmap& bitmap2 = wxNullBitmap, - int isToggle = FALSE, - long xPos = -1, - long yPos = -1, - //wxObject* clientData = NULL, - const wxString& shortHelpString = wxPyEmptyStr, - const wxString& longHelpString = wxPyEmptyStr) { - return self->AddTool(toolIndex, bitmap1, bitmap2, - 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 EnableTool(int toolIndex, bool enable); -#ifdef __WXMSW__ - wxToolBarTool* FindToolForPosition(long x, long y); - wxSize GetToolSize(); - wxSize GetToolBitmapSize(); - void SetToolBitmapSize(const wxSize& size); - wxSize GetMaxSize(); -#endif - wxSize GetToolMargins(); -// wxObject* GetToolClientData(int toolIndex); - bool GetToolEnabled(int toolIndex); - wxString GetToolLongHelp(int toolIndex); - int GetToolPacking(); - int GetToolSeparation(); - wxString GetToolShortHelp(int toolIndex); - bool GetToolState(int toolIndex); - - - 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(); -}; - - -#endif - //---------------------------------------------------------------------------