X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d14a1e28567de23c586bc80017073d0c39f8d18f..32485259c1342115488d219776dfebeb3d4d81b1:/wxPython/src/_toplvl.i diff --git a/wxPython/src/_toplvl.i b/wxPython/src/_toplvl.i index 33d3016044..6661972137 100644 --- a/wxPython/src/_toplvl.i +++ b/wxPython/src/_toplvl.i @@ -15,17 +15,52 @@ //--------------------------------------------------------------------------- -%{ - // Put some wx default wxChar* values into wxStrings. - DECLARE_DEF_STRING(FrameNameStr); - DECLARE_DEF_STRING(DialogNameStr); - DECLARE_DEF_STRING(StatusLineNameStr); - DECLARE_DEF_STRING(ToolBarNameStr); -%} +MAKE_CONST_WXSTRING(FrameNameStr); +MAKE_CONST_WXSTRING(DialogNameStr); +MAKE_CONST_WXSTRING(StatusLineNameStr); +MAKE_CONST_WXSTRING(ToolBarNameStr); //--------------------------------------------------------------------------- %newgroup +enum +{ + wxSTAY_ON_TOP, + wxICONIZE, + wxMINIMIZE, + wxMAXIMIZE, + wxCLOSE_BOX, + wxTHICK_FRAME, + wxSYSTEM_MENU, + wxMINIMIZE_BOX, + wxMAXIMIZE_BOX, + wxTINY_CAPTION_HORIZ, + wxTINY_CAPTION_VERT, + wxRESIZE_BOX, + wxRESIZE_BORDER, + + wxDIALOG_NO_PARENT, + + wxDEFAULT_FRAME_STYLE, + wxDEFAULT_DIALOG_STYLE, + + wxFRAME_TOOL_WINDOW, + wxFRAME_FLOAT_ON_PARENT, + wxFRAME_NO_WINDOW_MENU, + wxFRAME_NO_TASKBAR, + wxFRAME_SHAPED, + wxFRAME_DRAWER, + + wxFRAME_EX_METAL, + wxDIALOG_EX_METAL, + + // Obsolete + wxDIALOG_MODAL, + wxDIALOG_MODELESS, + wxUSER_COLOURS, + wxNO_3D, +}; + enum { wxFULLSCREEN_NOMENUBAR, @@ -38,18 +73,12 @@ enum wxTOPLEVEL_EX_DIALOG, }; - - -%typemap(in) (int widths, int* widths_field) { - $1 = PyList_Size($input); - $2 = int_LIST_helper($input); - if ($2 == NULL) SWIG_fail; -} - -%typemap(freearg) (int widths, int* widths_field) { - if ($2) delete [] $2; -} - +// Styles for RequestUserAttention +enum +{ + wxUSER_ATTENTION_INFO = 1, + wxUSER_ATTENTION_ERROR = 2 +}; //--------------------------------------------------------------------------- @@ -59,19 +88,19 @@ public: // No constructor as it can not be used directly from Python - // maximize = TRUE => maximize, otherwise - restore - virtual void Maximize(bool maximize = TRUE); + // maximize = True => maximize, otherwise - restore + virtual void Maximize(bool maximize = true); // undo Maximize() or Iconize() virtual void Restore(); - // iconize = TRUE => iconize, otherwise - restore - virtual void Iconize(bool iconize = TRUE); + // iconize = True => iconize, otherwise - restore + virtual void Iconize(bool iconize = true); - // return TRUE if the frame is maximized + // return True if the frame is maximized virtual bool IsMaximized() const; - // return TRUE if the frame is iconized + // return True if the frame is iconized virtual bool IsIconized() const; // get the frame icon @@ -86,17 +115,35 @@ public: // maximize the window to cover entire screen virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL); - // return TRUE if the frame is in fullscreen mode + // return True if the frame is in fullscreen mode virtual bool IsFullScreen() const; virtual void SetTitle(const wxString& title); virtual wxString GetTitle() const; // Set the shape of the window to the given region. - // Returns TRUE if the platform supports this feature (and the operation + // Returns True if the platform supports this feature (and the operation // is successful.) virtual bool SetShape(const wxRegion& region); + + // Attracts the users attention to this window if the application is + // inactive (should be called when a background event occurs) + virtual void RequestUserAttention(int flags = wxUSER_ATTENTION_INFO); + + // Is this the active frame (highlighted in the taskbar)? + virtual bool IsActive(); + +#ifdef __WXMAC__ + void MacSetMetalAppearance( bool on ) ; + bool MacGetMetalAppearance() const ; +#else + %extend { + // TODO: Should they raise not implemented or just NOP??? + void MacSetMetalAppearance( bool on ) { /*wxPyRaiseNotImplemented();*/ } + bool MacGetMetalAppearance() const { /*wxPyRaiseNotImplemented();*/ return false; } + } +#endif }; @@ -110,19 +157,28 @@ public: // is accounted for in client size calculations - all others should be taken // care of manually. +MustHaveApp(wxFrame); + class wxFrame : public wxTopLevelWindow { public: - %addtofunc wxFrame "self._setOORInfo(self)" - %addtofunc wxFrame() "" + %pythonAppend wxFrame "self._setOORInfo(self)" + %pythonAppend wxFrame() "" + %typemap(out) wxFrame*; // turn off this typemap - wxFrame(wxWindow* parent, const wxWindowID id, const wxString& title, + wxFrame(wxWindow* parent, const wxWindowID id=-1, + const wxString& title = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxPyFrameNameStr); - %name(PreFrame)wxFrame(); + %RenameCtor(PreFrame, wxFrame()); - bool Create(wxWindow* parent, const wxWindowID id, const wxString& title, + // Turn it back on again + %typemap(out) wxFrame* { $result = wxPyMake_wxObject($1, $owner); } + + + bool Create(wxWindow* parent, const wxWindowID id=-1, + const wxString& title = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, @@ -138,8 +194,7 @@ public: // sends a size event to the window using its current size -- this has an // effect of refreshing the window layout - // - virtual void SendSizeEvent() { } + virtual void SendSizeEvent(); // menu bar functions @@ -149,7 +204,7 @@ public: virtual wxMenuBar *GetMenuBar() const; - // process menu command: returns TRUE if processed + // process menu command: returns True if processed bool ProcessCommand(int winid); %pythoncode { Command = ProcessCommand } @@ -159,7 +214,7 @@ public: // create the main status bar by calling OnCreateStatusBar() virtual wxStatusBar* CreateStatusBar(int number = 1, - long style = wxST_SIZEGRIP, + long style = wxDEFAULT_STATUSBAR_STYLE, wxWindowID winid = 0, const wxString& name = wxPyStatusLineNameStr); // TODO: with directors? @@ -204,36 +259,45 @@ public: virtual void SetToolBar(wxToolBar *toolbar); - // show help text (typically in the statusbar); show is FALSE - // if you are hiding the help, TRUE otherwise + // show help text (typically in the statusbar); show is False + // if you are hiding the help, True otherwise virtual void DoGiveHelp(const wxString& text, bool show); // send wxUpdateUIEvents for all menu items in the menubar, // or just for menu if non-NULL void DoMenuUpdates(wxMenu* menu = NULL); + + static wxVisualAttributes + GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); }; //--------------------------------------------------------------------------- %newgroup +MustHaveApp(wxDialog); + class wxDialog : public wxTopLevelWindow { public: - %addtofunc wxDialog "self._setOORInfo(self)" - %addtofunc wxDialog() "" + %pythonAppend wxDialog "self._setOORInfo(self)" + %pythonAppend wxDialog() "" + %typemap(out) wxDialog*; // turn off this typemap wxDialog(wxWindow* parent, - const wxWindowID id, - const wxString& title, + const wxWindowID id=-1, + const wxString& title = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxPyDialogNameStr); - %name(PreDialog)wxDialog(); + %RenameCtor(PreDialog, wxDialog()); + + // Turn it back on again + %typemap(out) wxDialog* { $result = wxPyMake_wxObject($1, $owner); } bool Create(wxWindow* parent, - const wxWindowID id, - const wxString& title, + const wxWindowID id=-1, + const wxString& title = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE, @@ -242,18 +306,20 @@ public: // the modal dialogs have a return code - usually the id of the last // pressed button - void SetReturnCode(int returnCode) { m_returnCode = returnCode; } - int GetReturnCode() const { return m_returnCode; } + void SetReturnCode(int returnCode); + int GetReturnCode() const; // splits text up at newlines and places the // lines into a vertical wxBoxSizer - wxSizer *CreateTextSizer( const wxString &message ); + wxSizer* CreateTextSizer( const wxString &message ); // places buttons into a horizontal wxBoxSizer - wxSizer *CreateButtonSizer( long flags ); + wxSizer* CreateButtonSizer( long flags ); + wxStdDialogButtonSizer* CreateStdDialogButtonSizer( long flags ); + //void SetModal(bool flag); - void SetModal(bool flag); + // is the dialog in modal state right now? virtual bool IsModal() const; // Shows the dialog and starts a nested event loop that returns when @@ -263,15 +329,12 @@ public: // may be called to terminate the dialog with the given return code virtual void EndModal(int retCode); - // returns TRUE if we're in a modal loop - %extend { - bool IsModalShowing() { - #ifdef __WXGTK__ - return self->m_modalShowing; - #else - return self->IsModalShowing(); - #endif - } + static wxVisualAttributes + GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); + + %pythoncode { + def SendSizeEvent(self): + self.ProcessEvent(wx.SizeEvent((-1,-1))) } }; @@ -279,19 +342,23 @@ public: %newgroup +MustHaveApp(wxMiniFrame); + class wxMiniFrame : public wxFrame { public: - %addtofunc wxMiniFrame "self._setOORInfo(self)" - %addtofunc wxMiniFrame() "" + %pythonAppend wxMiniFrame "self._setOORInfo(self)" + %pythonAppend wxMiniFrame() "" - wxMiniFrame(wxWindow* parent, const wxWindowID id, const wxString& title, + wxMiniFrame(wxWindow* parent, const wxWindowID id=-1, + const wxString& title = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxPyFrameNameStr); - %name(PreMiniFrame)wxMiniFrame(); + %RenameCtor(PreMiniFrame, wxMiniFrame()); - bool Create(wxWindow* parent, const wxWindowID id, const wxString& title, + bool Create(wxWindow* parent, const wxWindowID id=-1, + const wxString& title = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, @@ -313,10 +380,12 @@ enum { }; +MustHaveApp(wxSplashScreenWindow); + class wxSplashScreenWindow: public wxWindow { public: - %addtofunc wxSplashScreenWindow "self._setOORInfo(self)" + %pythonAppend wxSplashScreenWindow "self._setOORInfo(self)" wxSplashScreenWindow(const wxBitmap& bitmap, wxWindow* parent, wxWindowID id, @@ -329,12 +398,14 @@ public: }; +MustHaveApp(wxSplashScreen); + class wxSplashScreen : public wxFrame { public: - %addtofunc wxSplashScreen "self._setOORInfo(self)" + %pythonAppend wxSplashScreen "self._setOORInfo(self)" wxSplashScreen(const wxBitmap& bitmap, long splashStyle, int milliseconds, - wxWindow* parent, wxWindowID id, + wxWindow* parent, wxWindowID id=-1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxSIMPLE_BORDER|wxFRAME_NO_TASKBAR|wxSTAY_ON_TOP);