X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/714e6a9e261da3da9185acaa10c67789081a64ec..d9f39e09e82e99c422619f4e3df536d0a9e87987:/utils/wxPython/src/windows.i diff --git a/utils/wxPython/src/windows.i b/utils/wxPython/src/windows.i index aa7a4131c1..99fc69c14d 100644 --- a/utils/wxPython/src/windows.i +++ b/utils/wxPython/src/windows.i @@ -15,15 +15,7 @@ %{ #include "helpers.h" - -#ifdef __WXMSW__ - // wxGTK defines wxMenuItem inside menu.h #include -#endif - -#ifdef __WXMSW__ -#include -#endif %} //---------------------------------------------------------------------- @@ -36,11 +28,13 @@ %import misc.i %import gdi.i +%pragma(python) code = "import wx" //--------------------------------------------------------------------------- class wxEvtHandler { public: + bool ProcessEvent(wxEvent& event); %addmethods { void Connect( int id, int lastId, int eventType, PyObject* func) { if (PyCallable_Check(func)) { @@ -65,11 +59,15 @@ public: long style = 0, char* name = "panel"); + %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" void CaptureMouse(); void Center(int direction = wxHORIZONTAL); void Centre(int direction = wxHORIZONTAL); - void ClientToScreen(int *BOTH, int *BOTH); + %name(ClientToScreenXY)void ClientToScreen(int *BOTH, int *BOTH); +#ifndef __WXGTK__ + wxPoint ClientToScreen(const wxPoint& pt); +#endif bool Close(int force = FALSE); bool Destroy(); void DestroyChildren(); @@ -78,32 +76,40 @@ public: #endif void Enable(bool enable); //bool FakePopupMenu(wxMenu* menu, int x, int y); - %name(FindWindowByID) wxWindow* FindWindow(long id); + %name(FindWindowById) wxWindow* FindWindow(long id); %name(FindWindowByName) wxWindow* FindWindow(const wxString& name); void Fit(); wxColour GetBackgroundColour(); int GetCharHeight(); int GetCharWidth(); - void GetClientSize(int *OUTPUT, int *OUTPUT); + %name(GetClientSizeTuple) void GetClientSize(int *OUTPUT, int *OUTPUT); + wxSize GetClientSize(); wxLayoutConstraints * GetConstraints(); #ifdef __WXMSW__ wxButton* GetDefaultItem(); #endif //wxEvtHandler* GetEventHandler(); - wxFont* GetFont(); + + wxFont& GetFont(); wxColour GetForegroundColour(); wxWindow * GetGrandParent(); int GetId(); - void GetPosition(int *OUTPUT, int *OUTPUT); wxString GetLabel(); wxString GetName(); wxWindow * GetParent(); + %name(GetPositionTuple) void GetPosition(int *OUTPUT, int *OUTPUT); + wxPoint GetPosition(); + wxRect GetRect(); int GetReturnCode(); int GetScrollThumb(int orientation); int GetScrollPos(int orientation); int GetScrollRange(int orientation); - void GetSize(int *OUTPUT, int *OUTPUT); - void GetTextExtent(const wxString& string, int *OUTPUT, int *OUTPUT); // int* descent = NULL, int* externalLeading = NULL, const wxFont* font = NULL, bool use16 = FALSE) + %name(GetSizeTuple) void GetSize(int *OUTPUT, int *OUTPUT); + wxSize GetSize(); + void GetTextExtent(const wxString& string, int *OUTPUT, int *OUTPUT); + %name(GetFullTextExtent)void GetTextExtent(const wxString& string, + int *OUTPUT, int *OUTPUT, int *OUTPUT, int* OUTPUT, + const wxFont* font = NULL); //, bool use16 = FALSE) wxString GetTitle(); long GetWindowStyleFlag(); void InitDialog(); @@ -114,7 +120,8 @@ public: bool LoadFromResource(wxWindow* parent, const wxString& resourceName, const wxResourceTable* resourceTable = NULL); void Lower(); void MakeModal(bool flag); - void Move(int x, int y); + %name(MoveXY)void Move(int x, int y); + void Move(const wxPoint& point); //wxEvtHandler* PopEventHandler(bool deleteHandler = FALSE); bool PopupMenu(wxMenu *menu, int x, int y); @@ -123,8 +130,13 @@ public: void Raise(); void Refresh(bool eraseBackground = TRUE, const wxRect* rect = NULL); void ReleaseMouse(); - void ScreenToClient(int *BOTH, int *BOTH); + %name(ScreenToClientXY)void ScreenToClient(int *BOTH, int *BOTH); +#ifndef __WXGTK__ + wxPoint ScreenToClient(const wxPoint& pt); +#endif + void ScrollWindow(int dx, int dy, const wxRect* rect = NULL); + void SetAcceleratorTable(const wxAcceleratorTable& accel); void SetAutoLayout(bool autoLayout); void SetBackgroundColour(const wxColour& colour); void SetConstraints(wxLayoutConstraints *constraints); @@ -138,9 +150,6 @@ public: void SetScrollbar(int orientation, int position, int thumbSize, int range, bool refresh = TRUE); void SetScrollPos(int orientation, int pos, bool refresh = TRUE); - //void SetSize(int x, int y, int width, int height, int sizeFlags=wxSIZE_AUTO); - //%name(SetSizeOnly) void SetSize(int width, int height); - %name(SetDimensions) void SetSize(int x, int y, int width, int height, int sizeFlags=wxSIZE_AUTO); %addmethods { void SetSize(const wxSize& size) { @@ -153,9 +162,9 @@ public: } void SetSizeHints(int minW=-1, int minH=-1, int maxW=-1, int maxH=-1, int incW=-1, int incH=-1); - void SetClientSize(int width, int height); + %name(SetClientSizeWH)void SetClientSize(int width, int height); + void SetClientSize(const wxSize& size); //void SetPalette(wxPalette* palette); - //void SetColourMap(wxColourMap *colourMap); void SetCursor(const wxCursor&cursor); //void SetEventHandler(wxEvtHandler* handler); void SetTitle(const wxString& title); @@ -163,66 +172,48 @@ public: bool TransferDataFromWindow(); bool TransferDataToWindow(); bool Validate(); -#ifdef __WXMSW__ void WarpPointer(int x, int y); -#endif + %name(ConvertDialogPointToPixels) wxPoint ConvertDialogToPixels(const wxPoint& pt); + %name(ConvertDialogSizeToPixels) wxSize ConvertDialogToPixels(const wxSize& sz); + + %name(DLG_PNT) wxPoint ConvertDialogToPixels(const wxPoint& pt); + %name(DLG_SZE) wxSize ConvertDialogToPixels(const wxSize& sz); + + %name(ConvertPixelPointToDialog) wxPoint ConvertPixelsToDialog(const wxPoint& pt); + %name(ConvertPixelSizeToDialog) wxSize ConvertPixelsToDialog(const wxSize& sz); + + %name(SetToolTipString)void SetToolTip(const wxString &tip); + void SetToolTip(wxToolTip *tooltip); + wxToolTip* GetToolTip(); }; +%pragma(python) code = " +def wxDLG_PNT(win, point): + return win.ConvertDialogPointToPixels(point) + +def wxDLG_SZE(win, size): + return win.ConvertDialogSizeToPixels(size) +" -// Static method(s) #ifdef __WXMSW__ %inline %{ wxWindow* wxWindow_FindFocus() { return wxWindow::FindFocus(); } %} -#endif -//---------------------------------------------------------------------- - -class wxFrame : public wxWindow { -public: - wxFrame(wxWindow* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - char* name = "frame"); - void Centre(int direction = wxBOTH); -#ifdef __WXMSW__ - void Command(int id); -#endif - bool CreateStatusBar(int number = 1); - wxMenuBar* GetMenuBar(); - wxStatusBar* GetStatusBar(); - wxString GetTitle(); - void Iconize(bool iconize); - bool IsIconized(); - void Maximize(bool maximize); -#ifdef __WXMSW__ - void SetAcceleratorTable(const wxAcceleratorTable& accel); +%inline %{ +wxWindow* wxWindow_FromHWND(unsigned long hWnd) { + wxWindow* win = new wxWindow; + win->SetHWND(hWnd); + win->SubclassWin(hWnd); + return win; +} +%} #endif - void SetIcon(const wxIcon& icon); - void SetMenuBar(wxMenuBar* menuBar); - void SetStatusText(const wxString& text, int number = 0); - void SetStatusWidths(int LCOUNT, int* LIST); // use typemap - void SetTitle(const wxString& title); -}; - -//--------------------------------------------------------------------------- - -#ifdef __WXMSW__ -class wxMiniFrame : public wxFrame { -public: - wxMiniFrame(wxWindow* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - char* name = "frame"); -}; -#endif //--------------------------------------------------------------------------- @@ -235,6 +226,8 @@ public: long style = wxTAB_TRAVERSAL, const char* name = "panel"); + %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" + void InitDialog(); }; @@ -250,6 +243,8 @@ public: long style = wxDEFAULT_DIALOG_STYLE, const char* name = "dialogBox"); + %pragma(python) addtomethod = "__init__:wx._StdDialogCallbacks(self)" + void Centre(int direction = wxBOTH); void EndModal(int retCode); wxString GetTitle(); @@ -273,6 +268,9 @@ public: long style = wxHSCROLL | wxVSCROLL, char* name = "scrolledWindow"); + %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" + %pragma(python) addtomethod = "__init__:wx._StdOnScrollCallbacks(self)" + void EnableScrolling(bool xScrolling, bool yScrolling); void GetScrollPixelsPerUnit(int* OUTPUT, int* OUTPUT); void GetVirtualSize(int* OUTPUT, int* OUTPUT); @@ -297,15 +295,17 @@ public: int checkable = FALSE); %name(AppendMenu)void Append(int id, const wxString& item, wxMenu *subMenu, const wxString& helpString = wxPyEmptyStr); +#ifndef __WXGTK__ + %name(AppendItem)void Append(const wxMenuItem* item); +#endif + void AppendSeparator(); void Break(); void Check(int id, bool flag); void Enable(int id, bool enable); int FindItem(const wxString& itemString); -#ifdef __WXMSW__ wxString GetTitle(); void SetTitle(const wxString& title); -#endif wxMenuItem* FindItemForId(int id); wxString GetHelpString(int id); wxString GetLabel(int id); @@ -339,11 +339,8 @@ public: void Enable(int id, bool enable); bool Enabled(int id); int FindMenuItem(const wxString& menuString, const wxString& itemString); -#ifdef __WXGTK__ - %name(FindItemForId) wxMenuItem* FindMenuItemById( int id ); -#endif -#ifdef __WXMSW__ wxMenuItem * FindItemForId(int id); +#ifdef __WXMSW__ void EnableTop(int pos, bool enable); wxString GetHelpString(int id); wxString GetLabel(int id); @@ -361,28 +358,132 @@ public: class wxMenuItem { public: +#ifndef __WXGTK__ + wxMenuItem(wxMenu* parentMenu=NULL, int id=ID_SEPARATOR, + const wxString& text = wxPyEmptyStr, + const wxString& helpString = wxPyEmptyStr, + bool checkable = FALSE, wxMenu* subMenu = NULL); +#else + wxMenuItem(); +#endif + bool IsSeparator(); bool IsEnabled(); bool IsChecked(); bool IsCheckable(); int GetId(); wxMenu* GetSubMenu(); -#ifdef __WXMSW__ void SetName(const wxString& strName); - void DeleteSubMenu(); - const wxString& GetName(); -#endif - const wxString& GetHelp(); + wxString GetName(); + wxString GetHelp(); void SetHelp(const wxString& strHelp); void Enable(bool bDoEnable = TRUE); void Check(bool bDoCheck = TRUE); - bool IsCheckable(); + +#ifdef __WXMSW__ + wxColour& GetBackgroundColour(); + wxBitmap GetBitmap(bool checked = TRUE); + wxFont& GetFont(); + int GetMarginWidth(); + wxColour& GetTextColour(); + void SetBackgroundColour(const wxColour& colour); + void SetBitmaps(const wxBitmap& checked, const wxBitmap& unchecked = wxNullBitmap); + void SetFont(const wxFont& font); + void SetMarginWidth(int width); + void SetTextColour(const wxColour& colour); + void DeleteSubMenu(); +#endif }; //--------------------------------------------------------------------------- ///////////////////////////////////////////////////////////////////////////// // // $Log$ +// Revision 1.15 1999/04/30 03:29:19 RD +// wxPython 2.0b9, first phase (win32) +// Added gobs of stuff, see wxPython/README.txt for details +// +// Revision 1.14.4.3 1999/03/27 23:29:15 RD +// +// wxPython 2.0b8 +// Python thread support +// various minor additions +// various minor fixes +// +// Revision 1.14.4.2 1999/03/16 06:26:29 RD +// +// wxPython 2.0b7 +// +// Revision 1.14.4.1 1999/03/16 06:04:04 RD +// +// wxPython 2.0b7 +// +// Revision 1.14 1999/02/23 23:48:33 RD +// +// reenabled some methods for wxPython on wxGTK +// +// Revision 1.13 1999/02/20 10:02:38 RD +// +// Changes needed to enable wxGTK compatibility. +// +// Revision 1.12 1999/02/20 09:03:03 RD +// Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a +// window handle. If you can get the window handle into the python code, +// it should just work... More news on this later. +// +// Added wxImageList, wxToolTip. +// +// Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the +// wxRegConfig class. +// +// As usual, some bug fixes, tweaks, etc. +// +// Revision 1.11 1998/12/18 15:49:10 RR +// +// wxClipboard now serves the primary selection as well +// wxPython fixes +// warning mesages +// +// Revision 1.10 1998/12/17 17:52:20 RD +// +// wxPython 0.5.2 +// Minor fixes and SWIG code generation for RR's changes. MSW and GTK +// versions are much closer now! +// +// Revision 1.9 1998/12/17 14:07:46 RR +// +// Removed minor differences between wxMSW and wxGTK +// +// Revision 1.8 1998/12/16 22:10:56 RD +// +// Tweaks needed to be able to build wxPython with wxGTK. +// +// Revision 1.7 1998/12/15 20:41:25 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.6 1998/10/02 06:40:43 RD +// +// Version 0.4 of wxPython for MSW. +// +// Revision 1.5 1998/08/17 18:29:40 RD +// Removed an extra method definition +// // Revision 1.4 1998/08/16 04:31:11 RD // More wxGTK work. //