//---------------------------------------------------------------------------
-%{
- // 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,
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
+};
//---------------------------------------------------------------------------
// 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 always maximized
+ // due to native guidelines or current policy
+ virtual bool IsAlwaysMaximized() const;
+
+ // return True if the frame is iconized
virtual bool IsIconized() const;
// get the frame icon
virtual void SetIcon(const wxIcon& icon);
// set the frame icons
- virtual void SetIcons(const wxIconBundle& icons );
+ virtual void SetIcons(const wxIconBundle& icons);
// 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
- // is successful.)
+ // 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__
+ %extend {
+ void MacSetMetalAppearance( bool on ) {
+ int style = self->GetExtraStyle();
+ if ( on )
+ style |= wxFRAME_EX_METAL;
+ else
+ style &= ~wxFRAME_EX_METAL;
+ self->SetExtraStyle(style);
+ }
+ }
+ 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
+
+ DocDeclStr(
+ void , CenterOnScreen(int dir = wxBOTH),
+ "Center the window on screen", "");
+ %pythoncode { CentreOnScreen = CenterOnScreen }
};
// is accounted for in client size calculations - all others should be taken
// care of manually.
-class wxFrame : public wxTopLevelWindow {
+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,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_FRAME_STYLE,
- const wxString& name = wxPyFrameNameStr);
+ // 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,
+ const wxString& name = wxPyFrameNameStr);
// frame state
// -----------
// if the frame has a toolbar) in client coordinates
virtual wxPoint GetClientAreaOrigin() const;
- // sends a size event to the window using its current size -- this has an
- // effect of refreshing the window layout
- //
- virtual void SendSizeEvent() { }
-
+ // sends a size event to the window using its current size:
+ // this has a side effect of refreshing the window layout
+ virtual void SendSizeEvent();
// menu bar functions
// ------------------
virtual void SetMenuBar(wxMenuBar *menubar);
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 }
-
// status bar functions
// --------------------
// 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?
// // return a new status bar
// virtual wxStatusBar *OnCreateStatusBar(int number,
// forward these to status bar
virtual void SetStatusText(const wxString &text, int number = 0);
- virtual void SetStatusWidths(int widths, const int* widths_field); //uses typemap above
+ virtual void SetStatusWidths(int widths, const int* widths_field); // uses typemap above
void PushStatusText(const wxString &text, int number = 0);
void PopStatusText(int number = 0);
void SetStatusBarPane(int n);
int GetStatusBarPane() const;
-
// toolbar functions
// -----------------
virtual wxToolBar* CreateToolBar(long style = -1,
wxWindowID winid = -1,
const wxString& name = wxPyToolBarNameStr);
+
// TODO: with directors?
// // return a new toolbar
// virtual wxToolBar *OnCreateToolBar(long style,
virtual wxToolBar *GetToolBar() const;
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
-class wxDialog : public wxTopLevelWindow {
+MustHaveApp(wxDialog);
+
+class wxDialog : public wxTopLevelWindow
+{
public:
- %addtofunc wxDialog "self._setOORInfo(self)"
- %addtofunc wxDialog() ""
+ enum
+ {
+ // all flags allowed in wxDialogBase::CreateButtonSizer()
+ ButtonSizerFlags = wxOK | wxCANCEL | wxYES | wxNO | wxHELP | wxNO_DEFAULT
+ };
+
+ %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,
const wxString& name = wxPyDialogNameStr);
-
- // the modal dialogs have a return code - usually the id of the last
+ // 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;
+
+ // The identifier for the affirmative button
+ void SetAffirmativeId(int affirmativeId);
+ int GetAffirmativeId() const;
+
+ // Identifier for Esc key translation
+ void SetEscapeId(int escapeId);
+ int GetEscapeId() 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,
+ bool separated = false,
+ wxCoord distance = 0 );
+ 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
// 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);
};
//---------------------------------------------------------------------------
%newgroup
-class wxMiniFrame : public wxFrame {
-public:
- %addtofunc wxMiniFrame "self._setOORInfo(self)"
- %addtofunc wxMiniFrame() ""
+MustHaveApp(wxMiniFrame);
- wxMiniFrame(wxWindow* parent, const wxWindowID id, const wxString& title,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_FRAME_STYLE,
- const wxString& name = wxPyFrameNameStr);
- %name(PreMiniFrame)wxMiniFrame();
+class wxMiniFrame : public wxFrame
+{
+public:
+ %pythonAppend wxMiniFrame "self._setOORInfo(self)"
+ %pythonAppend wxMiniFrame() ""
- bool Create(wxWindow* parent, const wxWindowID id, const wxString& title,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxDEFAULT_FRAME_STYLE,
- const wxString& name = wxPyFrameNameStr);
+ 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);
+ %RenameCtor(PreMiniFrame, wxMiniFrame());
+ 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,
+ const wxString& name = wxPyFrameNameStr);
};
%newgroup
-enum {
+enum
+{
wxSPLASH_CENTRE_ON_PARENT,
wxSPLASH_CENTRE_ON_SCREEN,
wxSPLASH_NO_CENTRE,
};
+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,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxNO_BORDER);
+ wxWindow* parent,
+ wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxNO_BORDER);
void SetBitmap(const wxBitmap& bitmap);
wxBitmap& GetBitmap();
};
-class wxSplashScreen : public wxFrame {
+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,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxSIMPLE_BORDER|wxFRAME_NO_TASKBAR|wxSTAY_ON_TOP);
+ wxSplashScreen(const wxBitmap& bitmap,
+ long splashStyle, int milliseconds,
+ wxWindow* parent,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxSIMPLE_BORDER | wxFRAME_NO_TASKBAR | wxSTAY_ON_TOP);
long GetSplashStyle() const;
wxSplashScreenWindow* GetSplashWindow() const;