X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d14a1e28567de23c586bc80017073d0c39f8d18f..3a9becbd5439254a77e7dbc0278d80117a397264:/wxPython/src/_menu.i?ds=sidebyside diff --git a/wxPython/src/_menu.i b/wxPython/src/_menu.i index d3662b0556..f547e9f1bf 100644 --- a/wxPython/src/_menu.i +++ b/wxPython/src/_menu.i @@ -17,119 +17,126 @@ %newgroup +MustHaveApp(wxMenu); + class wxMenu : public wxEvtHandler { public: - %addtofunc wxMenu "self._setOORInfo(self)" + %pythonAppend wxMenu "self._setOORInfo(self)" + %typemap(out) wxMenu*; // turn off this typemap + wxMenu(const wxString& title = wxPyEmptyString, long style = 0); + // Turn it back on again + %typemap(out) wxMenu* { $result = wxPyMake_wxObject($1, $owner); } + // append any kind of item (normal/check/radio/separator) - void Append(int itemid, - const wxString& text, - const wxString& help = wxPyEmptyString, - wxItemKind kind = wxITEM_NORMAL); + wxMenuItem* Append(int id, + const wxString& text, + const wxString& help = wxPyEmptyString, + wxItemKind kind = wxITEM_NORMAL); // append a separator to the menu - void AppendSeparator(); + wxMenuItem* AppendSeparator(); // append a check item - void AppendCheckItem(int itemid, - const wxString& text, - const wxString& help = wxPyEmptyString); + wxMenuItem* AppendCheckItem(int id, + const wxString& text, + const wxString& help = wxPyEmptyString); // append a radio item - void AppendRadioItem(int itemid, - const wxString& text, - const wxString& help = wxPyEmptyString); + wxMenuItem* AppendRadioItem(int id, + const wxString& text, + const wxString& help = wxPyEmptyString); // append a submenu - %name(AppendMenu)void Append(int itemid, - const wxString& text, - wxMenu *submenu, - const wxString& help = wxPyEmptyString); + %Rename(AppendMenu, wxMenuItem*, Append(int id, + const wxString& text, + wxMenu *submenu, + const wxString& help = wxPyEmptyString)); // the most generic form of Append() - append anything - %name(AppendItem) void Append(wxMenuItem *item); + %Rename(AppendItem, wxMenuItem*, Append(wxMenuItem *item)); // insert a break in the menu (only works when appending the items, not // inserting them) virtual void Break(); // insert an item before given position - %name(InsertItem) bool Insert(size_t pos, wxMenuItem *item); + %Rename(InsertItem, wxMenuItem*, Insert(size_t pos, wxMenuItem *item)); // insert an item before given position - void Insert(size_t pos, - int itemid, - const wxString& text, - const wxString& help = wxPyEmptyString, - wxItemKind kind = wxITEM_NORMAL); + wxMenuItem* Insert(size_t pos, + int id, + const wxString& text, + const wxString& help = wxPyEmptyString, + wxItemKind kind = wxITEM_NORMAL); // insert a separator - void InsertSeparator(size_t pos); + wxMenuItem* InsertSeparator(size_t pos); // insert a check item - void InsertCheckItem(size_t pos, - int itemid, - const wxString& text, - const wxString& help = wxPyEmptyString); + wxMenuItem* InsertCheckItem(size_t pos, + int id, + const wxString& text, + const wxString& help = wxPyEmptyString); // insert a radio item - void InsertRadioItem(size_t pos, - int itemid, - const wxString& text, - const wxString& help = wxPyEmptyString); + wxMenuItem* InsertRadioItem(size_t pos, + int id, + const wxString& text, + const wxString& help = wxPyEmptyString); // insert a submenu - %name(InsertMenu) void Insert(size_t pos, - int itemid, - const wxString& text, - wxMenu *submenu, - const wxString& help = wxPyEmptyString); + %Rename(InsertMenu, wxMenuItem*, Insert(size_t pos, + int id, + const wxString& text, + wxMenu *submenu, + const wxString& help = wxPyEmptyString)); // prepend an item to the menu - %name(PrependItem)void Prepend(wxMenuItem *item); + %Rename(PrependItem, wxMenuItem*, Prepend(wxMenuItem *item)); // prepend any item to the menu - void Prepend(int itemid, - const wxString& text, - const wxString& help = wxPyEmptyString, - wxItemKind kind = wxITEM_NORMAL); + wxMenuItem* Prepend(int id, + const wxString& text, + const wxString& help = wxPyEmptyString, + wxItemKind kind = wxITEM_NORMAL); // prepend a separator - void PrependSeparator(); + wxMenuItem* PrependSeparator(); // prepend a check item - void PrependCheckItem(int itemid, - const wxString& text, - const wxString& help = wxPyEmptyString); + wxMenuItem* PrependCheckItem(int id, + const wxString& text, + const wxString& help = wxPyEmptyString); // prepend a radio item - void PrependRadioItem(int itemid, - const wxString& text, - const wxString& help = wxPyEmptyString); + wxMenuItem* PrependRadioItem(int id, + const wxString& text, + const wxString& help = wxPyEmptyString); // prepend a submenu - %name(PrependMenu)void Prepend(int itemid, - const wxString& text, - wxMenu *submenu, - const wxString& help = wxPyEmptyString); + %Rename(PrependMenu, wxMenuItem*, Prepend(int id, + const wxString& text, + wxMenu *submenu, + const wxString& help = wxPyEmptyString)); // detach an item from the menu, but don't delete it so that it can be // added back later (but if it's not, the caller is responsible for // deleting it!) - wxMenuItem *Remove(int itemid); - %name(RemoveItem) wxMenuItem *Remove(wxMenuItem *item); + wxMenuItem *Remove(int id); + %Rename(RemoveItem, wxMenuItem*, Remove(wxMenuItem *item)); // delete an item from the menu (submenus are not destroyed by this // function, see Destroy) - bool Delete(int itemid); - %name(DeleteItem) bool Delete(wxMenuItem *item); + bool Delete(int id); + %Rename(DeleteItem, bool, Delete(wxMenuItem *item)); // delete the item from menu and destroy it (if it's a submenu) %extend { void Destroy() { delete self; } } - %name(DestroyId) bool Destroy(int itemid); - %name(DestroyItem) bool Destroy(wxMenuItem *item); + %Rename(DestroyId, bool, Destroy(int id)); + %Rename(DestroyItem, bool, Destroy(wxMenuItem *item)); // get the items @@ -143,23 +150,23 @@ public: // search int FindItem(const wxString& item) const; - %name(FindItemById) wxMenuItem* FindItem(int itemid /*, wxMenu **menu = NULL*/) const; + %Rename(FindItemById, wxMenuItem*, FindItem(int id /*, wxMenu **menu = NULL*/) const); // find by position wxMenuItem* FindItemByPosition(size_t position) const; // get/set items attributes - void Enable(int itemid, bool enable); - bool IsEnabled(int itemid) const; + void Enable(int id, bool enable); + bool IsEnabled(int id) const; - void Check(int itemid, bool check); - bool IsChecked(int itemid) const; + void Check(int id, bool check); + bool IsChecked(int id) const; - void SetLabel(int itemid, const wxString& label); - wxString GetLabel(int itemid) const; + void SetLabel(int id, const wxString& label); + wxString GetLabel(int id) const; - virtual void SetHelpString(int itemid, const wxString& helpString); - virtual wxString GetHelpString(int itemid) const; + virtual void SetHelpString(int id, const wxString& helpString); + virtual wxString GetHelpString(int id) const; // the title @@ -203,17 +210,23 @@ public: //--------------------------------------------------------------------------- %newgroup +MustHaveApp(wxMenuBar); + class wxMenuBar : public wxWindow { public: - %addtofunc wxMenuBar "self._setOORInfo(self)" + %pythonAppend wxMenuBar "self._setOORInfo(self)" + %typemap(out) wxMenuBar*; // turn off this typemap + wxMenuBar(long style = 0); + // Turn it back on again + %typemap(out) wxMenuBar* { $result = wxPyMake_wxObject($1, $owner); } - // append a menu to the end of menubar, return TRUE if ok + // append a menu to the end of menubar, return True if ok virtual bool Append(wxMenu *menu, const wxString& title); - // insert a menu before the given position into the menubar, return TRUE + // insert a menu before the given position into the menubar, return True // if inserted ok virtual bool Insert(size_t pos, wxMenu *menu, const wxString& title); @@ -236,7 +249,7 @@ public: virtual void EnableTop(size_t pos, bool enable); // is the menu enabled? - virtual bool IsEnabledTop(size_t WXUNUSED(pos)) const { return TRUE; } + virtual bool IsEnabledTop(size_t pos) const; // get or change the label of the menu at given position virtual void SetLabelTop(size_t pos, const wxString& label); @@ -250,10 +263,10 @@ public: // find item by id (in any menu), returns NULL if not found // // if menu is !NULL, it will be filled with wxMenu this item belongs to - %name(FindItemById) virtual wxMenuItem* FindItem(int itemid /*, wxMenu **menu = NULL*/) const; + %Rename(FindItemById, virtual wxMenuItem*, FindItem(int id /*, wxMenu **menu = NULL*/) const); // find menu by its caption, return wxNOT_FOUND on failure - int FindMenu(const wxString& title) const; + int FindMenu(const wxString& title); // all these functions just use FindItem() and then call an appropriate @@ -262,22 +275,23 @@ public: // NB: under MSW, these methods can only be used after the menubar had // been attached to the frame - void Enable(int itemid, bool enable); - void Check(int itemid, bool check); - bool IsChecked(int itemid) const; - bool IsEnabled(int itemid) const; - - void SetLabel(int itemid, const wxString &label); - wxString GetLabel(int itemid) const; + void Enable(int id, bool enable); + void Check(int id, bool check); + bool IsChecked(int id) const; + bool IsEnabled(int id) const; + // TODO: bool IsEnabled() const; + + void SetLabel(int id, const wxString &label); + wxString GetLabel(int id) const; - void SetHelpString(int itemid, const wxString& helpString); - wxString GetHelpString(int itemid) const; + void SetHelpString(int id, const wxString& helpString); + wxString GetHelpString(int id) const; // get the frame we are attached to (may return NULL) wxFrame *GetFrame() const; - // returns TRUE if we're attached to a frame + // returns True if we're attached to a frame bool IsAttached() const; // associate the menubar with the frame @@ -285,6 +299,16 @@ public: // called before deleting the menubar normally virtual void Detach(); + +#ifdef __WXMAC__ + static void SetAutoWindowMenu( bool enable ); + static bool GetAutoWindowMenu(); +#else + %extend { + static void SetAutoWindowMenu( bool enable ) {} + static bool GetAutoWindowMenu() { return false; } + } +#endif }; //--------------------------------------------------------------------------- @@ -292,7 +316,7 @@ public: class wxMenuItem : public wxObject { public: - wxMenuItem(wxMenu* parentMenu=NULL, int id=wxID_SEPARATOR, + wxMenuItem(wxMenu* parentMenu=NULL, int id=wxID_ANY, const wxString& text = wxPyEmptyString, const wxString& help = wxPyEmptyString, wxItemKind kind = wxITEM_NORMAL, @@ -303,7 +327,7 @@ public: void SetMenu(wxMenu* menu); // get/set id - void SetId(int itemid); + void SetId(int id); int GetId() const; bool IsSeparator() const; @@ -322,6 +346,7 @@ public: // what kind of menu item we are wxItemKind GetKind() const; + void SetKind(wxItemKind kind); virtual void SetCheckable(bool checkable); bool IsCheckable() const; @@ -331,10 +356,10 @@ public: wxMenu *GetSubMenu() const; // state - virtual void Enable(bool enable = TRUE); + virtual void Enable(bool enable = true); virtual bool IsEnabled() const; - virtual void Check(bool check = TRUE); + virtual void Check(bool check = true); virtual bool IsChecked() const; void Toggle(); @@ -370,12 +395,28 @@ public: bool IsOwnerDrawn(); // switch on/off owner-drawing the item - void SetOwnerDrawn(bool ownerDrawn = TRUE); + void SetOwnerDrawn(bool ownerDrawn = true); void ResetOwnerDrawn(); #else - // just to keep the global renamers in sync %extend { + void SetFont(const wxFont& font) {} + wxFont GetFont() { return wxNullFont; } + void SetTextColour(const wxColour& colText) {} + wxColour GetTextColour() { return wxNullColour; } + void SetBackgroundColour(const wxColour& colBack) {} + wxColour GetBackgroundColour() { return wxNullColour; } + void SetBitmaps(const wxBitmap& bmpChecked, + const wxBitmap& bmpUnchecked = wxNullBitmap) {} + + void SetDisabledBitmap( const wxBitmap& bmpDisabled ) {} + const wxBitmap& GetDisabledBitmap() const { return wxNullBitmap; } + + void SetMarginWidth(int nWidth) {} + int GetMarginWidth() { return 0; } static int GetDefaultMarginWidth() { return 0; } + bool IsOwnerDrawn() { return false; } + void SetOwnerDrawn(bool ownerDrawn = true) {} + void ResetOwnerDrawn() {} } #endif