X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b68dc582b8c6dd32ef9f0a4ec91573bd5cc0296a..4649b5eded522cdc6d76aae074f98a2c162fd648:/wxPython/src/controls.i diff --git a/wxPython/src/controls.i b/wxPython/src/controls.i index 2e8f3e4f1f..44a52957e7 100644 --- a/wxPython/src/controls.i +++ b/wxPython/src/controls.i @@ -19,7 +19,7 @@ #include #include #include -//#include +#include #ifdef __WXMSW__ #if wxUSE_OWNER_DRAWN @@ -64,8 +64,16 @@ public: long style=0, const wxValidator& validator=wxDefaultValidator, const char* name="control"); + %name(wxPreControl)wxControl(); + + bool Create(wxWindow *parent, + wxWindowID id, + const wxPoint& pos=wxDefaultPosition, + const wxSize& size=wxDefaultSize, + long style=0, + const wxValidator& validator=wxDefaultValidator, + const char* name="control"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" void Command(wxCommandEvent& event); wxString GetLabel(); @@ -75,6 +83,57 @@ public: //---------------------------------------------------------------------- + +class wxControlWithItems : public wxControl { +public: + + // void Clear(); ambiguous, redefine below... + void Delete(int n); + + int GetCount(); + %pragma(python) addtoclass = "Number = GetCount" + wxString GetString(int n); + void SetString(int n, const wxString& s); + int FindString(const wxString& s); + + void Select(int n); + int GetSelection(); + + wxString GetStringSelection() const; + + // void Append(const wxString& item); + // void Append(const wxString& item, char* clientData); + // char* GetClientData(const int n); + // void SetClientData(const int n, char* data); + %addmethods { + void Append(const wxString& item, PyObject* clientData=NULL) { + if (clientData) { + wxPyClientData* data = new wxPyClientData(clientData); + self->Append(item, data); + } else + self->Append(item); + } + + PyObject* GetClientData(int n) { + wxPyClientData* data = (wxPyClientData*)self->GetClientObject(n); + if (data) { + Py_INCREF(data->m_obj); + return data->m_obj; + } else { + Py_INCREF(Py_None); + return Py_None; + } + } + + void SetClientData(int n, PyObject* clientData) { + wxPyClientData* data = new wxPyClientData(clientData); + self->SetClientObject(n, data); + } + } + +}; +//---------------------------------------------------------------------- + class wxButton : public wxControl { public: wxButton(wxWindow* parent, wxWindowID id, const wxString& label, @@ -83,21 +142,26 @@ public: long style = 0, const wxValidator& validator = wxDefaultValidator, char* name = "button"); + %name(wxPreButton)wxButton(); + + bool Create(wxWindow* parent, wxWindowID id, const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + char* name = "button"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" void SetDefault(); void SetBackgroundColour(const wxColour& colour); void SetForegroundColour(const wxColour& colour); +#ifdef __WXMSW__ + void SetImageLabel(const wxBitmap& bitmap); + void SetImageMargins(wxCoord x, wxCoord y); +#endif + static wxSize GetDefaultSize(); }; - -%inline %{ - wxSize wxButton_GetDefaultSize() { - return wxButton::GetDefaultSize(); - } -%} - //---------------------------------------------------------------------- class wxBitmapButton : public wxButton { @@ -108,8 +172,15 @@ public: long style = wxBU_AUTODRAW, const wxValidator& validator = wxDefaultValidator, char* name = "button"); + %name(wxPreBitmapButton)wxBitmapButton(); + + bool Create(wxWindow* parent, wxWindowID id, const wxBitmap& bitmap, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxBU_AUTODRAW, + const wxValidator& validator = wxDefaultValidator, + char* name = "button"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" wxBitmap& GetBitmapLabel(); wxBitmap& GetBitmapDisabled(); @@ -125,31 +196,6 @@ public: int GetMarginY() const { return m_marginY; } }; -//---------------------------------------------------------------------- - -// class wxToggleButton : public wxControl { -// public: -// wxToggleButton(wxWindow *parent, wxWindowID id, const wxString& label, -// const wxPoint& pos = wxDefaultPosition, -// const wxSize& size = wxDefaultSize, long style = 0, -// const wxValidator& validator = wxDefaultValidator, -// const char* name = "toggle"); -// void SetValue(bool value); -// bool GetValue() const ; -// void SetLabel(const wxString& label); -// }; - -// class wxBitmapToggleButton : public wxToggleButton { -// public: -// wxBitmapToggleButton(wxWindow *parent, wxWindowID id, const wxBitmap *label, -// const wxPoint& pos = wxDefaultPosition, -// const wxSize& size = wxDefaultSize, long style = 0, -// const wxValidator& validator = wxDefaultValidator, -// const char *name = "toggle"); -// void SetLabel(const wxBitmap& bitmap); -// }; - - //---------------------------------------------------------------------- class wxCheckBox : public wxControl { @@ -160,8 +206,15 @@ public: long style = 0, const wxValidator& val = wxDefaultValidator, char* name = "checkBox"); + %name(wxPreCheckBox)wxCheckBox(); + + bool Create(wxWindow* parent, wxWindowID id, const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& val = wxDefaultValidator, + char* name = "checkBox"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" bool GetValue(); void SetValue(const bool state); @@ -169,7 +222,7 @@ public: //---------------------------------------------------------------------- -class wxChoice : public wxControl { +class wxChoice : public wxControlWithItems { public: wxChoice(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, @@ -178,20 +231,27 @@ public: long style = 0, const wxValidator& validator = wxDefaultValidator, char* name = "choice"); + %name(wxPreChoice)wxChoice(); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" + bool Create(wxWindow *parent, wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + int LCOUNT=0, wxString* choices=NULL, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + char* name = "choice"); - void Append(const wxString& item); void Clear(); - int FindString(const wxString& string); + int GetColumns(); - int GetSelection(); - wxString GetString(const int n); - wxString GetStringSelection(); - int Number(); void SetColumns(const int n = 1); void SetSelection(const int n); void SetStringSelection(const wxString& string); + void SetString(int n, const wxString& s); + + %pragma(python) addtoclass = " + Select = SetSelection + " }; //---------------------------------------------------------------------- @@ -205,34 +265,31 @@ public: long style = 0, const wxValidator& validator = wxDefaultValidator, char* name = "comboBox"); + %name(wxPreComboBox)wxComboBox(); + + bool Create(wxWindow* parent, wxWindowID id, char* value = "", + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + int LCOUNT=0, wxString* choices=NULL, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + char* name = "comboBox"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" - void Append(const wxString& item); - // TODO: void Append(const wxString& item, char* clientData); - void Clear(); void Copy(); void Cut(); - void Delete(int n); - // NotMember??: void Deselect(int n); - int FindString(const wxString& string); - // TODO: char* GetClientData(const int n); long GetInsertionPoint(); long GetLastPosition(); - int GetSelection(); - wxString GetString(int n); - wxString GetStringSelection(); wxString GetValue(); - int Number(); void Paste(); void Replace(long from, long to, const wxString& text); void Remove(long from, long to); - // TODO: void SetClientData(const int n, char* data); void SetInsertionPoint(long pos); void SetInsertionPointEnd(); void SetSelection(int n); %name(SetMark)void SetSelection(long from, long to); void SetValue(const wxString& text); + void SetEditable(bool editable); }; //---------------------------------------------------------------------- @@ -245,8 +302,15 @@ public: long style = wxGA_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, char* name = "gauge"); + %name(wxPreGauge)wxGauge(); + + bool Create(wxWindow* parent, wxWindowID id, int range, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxGA_HORIZONTAL, + const wxValidator& validator = wxDefaultValidator, + char* name = "gauge"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" int GetBezelFace(); int GetRange(); @@ -267,6 +331,13 @@ public: const wxSize& size = wxDefaultSize, long style = 0, char* name = "staticBox"); + %name(wxPreStaticBox)wxStaticBox(); + + bool Create(wxWindow* parent, wxWindowID id, const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + char* name = "staticBox"); }; @@ -280,6 +351,13 @@ public: const wxSize &size = wxDefaultSize, long style = wxLI_HORIZONTAL, const char* name = "staticLine" ); + %name(wxPreStaticLine)wxStaticLine(); + + bool Create( wxWindow *parent, wxWindowID id, + const wxPoint &pos = wxDefaultPosition, + const wxSize &size = wxDefaultSize, + long style = wxLI_HORIZONTAL, + const char* name = "staticLine" ); }; @@ -292,8 +370,14 @@ public: const wxSize& size = wxDefaultSize, long style = 0, char* name = "staticText"); + %name(wxPreStaticText)wxStaticText(); + + bool Create(wxWindow* parent, wxWindowID id, const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + char* name = "staticText"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" wxString GetLabel(); void SetLabel(const wxString& label); @@ -301,7 +385,7 @@ public: //---------------------------------------------------------------------- -class wxListBox : public wxControl { +class wxListBox : public wxControlWithItems { public: wxListBox(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, @@ -310,17 +394,18 @@ public: long style = 0, const wxValidator& validator = wxDefaultValidator, char* name = "listBox"); + %name(wxPreListBox)wxListBox(); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" + bool Create(wxWindow* parent, wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + int LCOUNT, wxString* choices = NULL, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + char* name = "listBox"); - void Append(const wxString& item); - // TODO: void Append(const wxString& item, char* clientData); void Clear(); - void Delete(int n); void Deselect(int n); - int FindString(const wxString& string); - // TODO: char* GetClientData(const int n); - int GetSelection(); // int GetSelections(int **selections); %addmethods { @@ -335,14 +420,12 @@ public: } } + void InsertItems(int LCOUNT, wxString* choices, int pos); - wxString GetString(int n); - wxString GetStringSelection(); - int Number(); + bool IsSelected(const int n); bool Selected(const int n); void Set(int LCOUNT, wxString* choices); - // TODO: void SetClientData(const int n, char* data); void SetFirstItem(int n); %name(SetFirstItemStr)void SetFirstItem(const wxString& string); void SetSelection(int n, bool select = TRUE); @@ -363,8 +446,17 @@ public: long style = 0, const wxValidator& validator = wxDefaultValidator, char* name = "listBox"); + %name(wxPreCheckListBox)wxCheckListBox(); + + bool Create(wxWindow *parent, wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + int LCOUNT = 0, + wxString* choices = NULL, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + char* name = "listBox"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" bool IsChecked(int uiIndex); void Check(int uiIndex, int bCheck = TRUE); @@ -375,6 +467,33 @@ public: //---------------------------------------------------------------------- + +class wxTextAttr +{ +public: + // ctors + wxTextAttr(const wxColour& colText = wxNullColour, + const wxColour& colBack = wxNullColour, + const wxFont& font = wxNullFont); + ~wxTextAttr(); + + // setters + void SetTextColour(const wxColour& colText); + void SetBackgroundColour(const wxColour& colBack); + void SetFont(const wxFont& font); + + // accessors + bool HasTextColour() const; + bool HasBackgroundColour() const; + bool HasFont() const; + + const wxColour& GetTextColour() const; + const wxColour& GetBackgroundColour() const; + const wxFont& GetFont() const; +}; + + + class wxTextCtrl : public wxControl { public: wxTextCtrl(wxWindow* parent, wxWindowID id, char* value = "", @@ -383,8 +502,15 @@ public: long style = 0, const wxValidator& validator = wxDefaultValidator, char* name = "text"); + %name(wxPreTextCtrl)wxTextCtrl(); + + bool Create(wxWindow* parent, wxWindowID id, char* value = "", + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + char* name = "text"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" void Clear(); void Copy(); @@ -423,9 +549,15 @@ public: void Undo(); void Redo(); + bool SetStyle(long start, long end, const wxTextAttr& style); + bool SetDefaultStyle(const wxTextAttr& style); + const wxTextAttr& GetDefaultStyle() const; + + void SetMaxLength(unsigned long len); + %addmethods { void write(const wxString& text) { - self->AppendText(text + '\n'); + self->AppendText(text); } } }; @@ -440,8 +572,15 @@ public: long style = wxSB_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, char* name = "scrollBar"); + %name(wxPreScrollBar)wxScrollBar(); + + bool Create(wxWindow* parent, wxWindowID id = -1, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxSB_HORIZONTAL, + const wxValidator& validator = wxDefaultValidator, + char* name = "scrollBar"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" int GetRange(); int GetPageSize(); @@ -463,6 +602,13 @@ public: const wxSize& size = wxDefaultSize, long style = wxSP_HORIZONTAL, char* name = "spinButton"); + %name(wxPreSpinButton)wxSpinButton(); + + bool Create(wxWindow* parent, wxWindowID id = -1, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxSP_HORIZONTAL, + char* name = "spinButton"); int GetMax(); int GetMin(); @@ -481,8 +627,15 @@ public: const wxSize& size = wxDefaultSize, long style = 0, char* name = "staticBitmap"); + %name(wxPreStaticBitmap)wxStaticBitmap(); + + bool Create(wxWindow* parent, wxWindowID id, + const wxBitmap& bitmap, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + char* name = "staticBitmap"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" const wxBitmap& GetBitmap(); void SetBitmap(const wxBitmap& bitmap); @@ -502,22 +655,43 @@ public: long style = wxRA_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, char* name = "radioBox"); + %name(wxPreRadioBox)wxRadioBox(); + + bool Create(wxWindow* parent, wxWindowID id, + const wxString& label, + const wxPoint& point = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + int LCOUNT = 0, wxString* choices = NULL, + int majorDimension = 0, + long style = wxRA_HORIZONTAL, + const wxValidator& validator = wxDefaultValidator, + char* name = "radioBox"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" void Enable(bool enable); %name(EnableItem)void Enable(int n, bool enable); int FindString(const wxString& string); -//*** wxString GetLabel(); -//*** void SetLabel(const wxString& label); + wxString GetString(int n); + +#ifdef __WXMSW__ + void SetString(int n, const wxString& label); + %pragma(python) addtoclass = " + GetItemLabel = GetString + SetItemLabel = SetString + " + int GetColumnCount(); + int GetRowCount(); +#else + %name(GetItemLabel)wxString GetLabel( int item ); + %name(SetItemLabel)void SetLabel( int item, const wxString& label ); +#endif - %name(GetItemLabel)wxString GetLabel(int n); int GetSelection(); - wxString GetString(int n); wxString GetStringSelection(); - int Number(); - %name(SetItemLabel)void SetLabel(int n, const wxString& label); + int GetCount(); + %pragma(python) addtoclass = "Number = GetCount" + void SetSelection(int n); void SetStringSelection(const wxString& string); void Show(bool show); @@ -535,8 +709,16 @@ public: long style = 0, const wxValidator& validator = wxDefaultValidator, char* name = "radioButton"); + %name(wxPreRadioButton)wxRadioButton(); + + bool Create(wxWindow* parent, wxWindowID id, + const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + char* name = "radioButton"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" bool GetValue(); void SetValue(bool value); @@ -553,8 +735,16 @@ public: long style = wxSL_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, char* name = "slider"); + %name(wxPreSlider)wxSlider(); + + bool Create(wxWindow* parent, wxWindowID id, + int value, int minValue, int maxValue, + const wxPoint& point = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxSL_HORIZONTAL, + const wxValidator& validator = wxDefaultValidator, + char* name = "slider"); - %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)" void ClearSel(); void ClearTicks(); @@ -590,6 +780,16 @@ public: long style = wxSP_ARROW_KEYS, int min = 0, int max = 100, int initial = 0, const char* name = "wxSpinCtrl"); + %name(wxPreSpinCtrl)wxSpinCtrl(); + + bool Create(wxWindow *parent, + wxWindowID id = -1, + const char* value = "", + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxSP_ARROW_KEYS, + int min = 0, int max = 100, int initial = 0, + const char* name = "wxSpinCtrl"); int GetMax(); @@ -603,5 +803,38 @@ public: //---------------------------------------------------------------------- +enum { wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, }; + +class wxToggleButton : public wxControl { +public: + wxToggleButton(wxWindow *parent, + wxWindowID id, + const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const char* name = "toggle"); + %name(wxPreToggleButton)wxToggleButton(); + + bool Create(wxWindow *parent, + wxWindowID id, + const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const char* name = "toggle"); + + void SetValue(bool value); + bool GetValue() const ; + void SetLabel(const wxString& label); + +}; + +//---------------------------------------------------------------------- +//---------------------------------------------------------------------- +//---------------------------------------------------------------------- +