1 /////////////////////////////////////////////////////////////////////////////
 
   3 // Purpose:     SWIG interface defs for various functions and such
 
   7 // Created:     3-July-1997
 
   9 // Copyright:   (c) 2003 by Total Control Software
 
  10 // Licence:     wxWindows license
 
  11 /////////////////////////////////////////////////////////////////////////////
 
  17 #include <wx/stockitem.h>
 
  20 //---------------------------------------------------------------------------
 
  22 MAKE_CONST_WXSTRING(FileSelectorPromptStr);
 
  23 MAKE_CONST_WXSTRING(FileSelectorDefaultWildcardStr);
 
  24 MAKE_CONST_WXSTRING(DirSelectorPromptStr);
 
  26 //---------------------------------------------------------------------------
 
  31 void wxRegisterId(long id);
 
  32 long wxGetCurrentId();
 
  34 // Returns true if the ID is in the list of recognized stock actions
 
  35 bool wxIsStockID(wxWindowID id);
 
  37 // Returns true of the label is empty or label of a stock button with
 
  39 bool wxIsStockLabel(wxWindowID id, const wxString& label);
 
  41 enum wxStockLabelQueryFlag
 
  45     wxSTOCK_WITH_MNEMONIC = 1,
 
  46     wxSTOCK_WITH_ACCELERATOR = 2
 
  49 // Returns label that should be used for given stock UI element (e.g. "&OK"
 
  51 wxString wxGetStockLabel(wxWindowID id,
 
  52                          long flags = wxSTOCK_WITH_MNEMONIC);
 
  55 enum wxStockHelpStringClient
 
  57     wxSTOCK_MENU        // help string to use for menu items
 
  60 // Returns an help string for the given stock UI element and for the given "context".
 
  61 wxString wxGetStockHelpString(wxWindowID id,
 
  62                               wxStockHelpStringClient client = wxSTOCK_MENU);
 
  70 MustHaveApp(wxEndBusyCursor);
 
  71 void wxEndBusyCursor();
 
  75 bool wxShell(const wxString& command = wxPyEmptyString);
 
  79     int, wxGetOsVersion(int *OUTPUT, int *OUTPUT),
 
  80     "GetOsVersion() -> (platform, major, minor)");
 
  82 wxString wxGetOsDescription();
 
  85 // Get platform endianness
 
  86 bool wxIsPlatformLittleEndian();
 
  88 // Get platform architecture
 
  89 bool wxIsPlatform64Bit();
 
  93 // // Parses the wildCard, returning the number of filters.
 
  94 // // Returns 0 if none or if there's a problem,
 
  95 // // The arrays will contain an equal number of items found before the error.
 
  96 // // wildCard is in the form:
 
  97 // // "All files (*)|*|Image Files (*.jpeg *.png)|*.jpg;*.png"
 
  98 // int wxParseCommonDialogsFilter(const wxString& wildCard, wxArrayString& descriptions, wxArrayString& filters);
 
 101 %typemap(out) wxMemorySize {
 
 103          $result = PyLong_FromLongLong($1.GetValue());
 
 105          $result = PyInt_FromLong($1);
 
 109 #if defined(__WXMSW__) || defined(__WXMAC__)
 
 110 wxMemorySize wxGetFreeMemory();
 
 113     wxMemorySize wxGetFreeMemory()
 
 114         { wxPyRaiseNotImplemented(); return 0; }
 
 120     wxSHUTDOWN_POWEROFF,    // power off the computer
 
 121     wxSHUTDOWN_REBOOT       // shutdown and reboot
 
 124 // Shutdown or reboot the PC
 
 125 MustHaveApp(wxShutdown);
 
 126 bool wxShutdown(wxShutdownFlags wFlags);
 
 129 void wxSleep(int secs);
 
 130 void wxMilliSleep(unsigned long milliseconds);
 
 131 void wxMicroSleep(unsigned long microseconds);
 
 132 %pythoncode { Usleep = MilliSleep }
 
 134 void wxEnableTopLevelWindows(bool enable);
 
 136 wxString wxStripMenuCodes(const wxString& in);
 
 139 wxString wxGetEmailAddress();
 
 140 wxString wxGetHostName();
 
 141 wxString wxGetFullHostName();
 
 142 wxString wxGetUserId();
 
 143 wxString wxGetUserName();
 
 144 wxString wxGetHomeDir();
 
 145 wxString wxGetUserHome(const wxString& user = wxPyEmptyString);
 
 147 unsigned long wxGetProcessId();
 
 154 MustHaveApp(wxFileSelector);
 
 155 wxString wxFileSelector(const wxString& message = wxPyFileSelectorPromptStr,
 
 156                         const wxString& default_path = wxPyEmptyString,
 
 157                         const wxString& default_filename = wxPyEmptyString,
 
 158                         const wxString& default_extension = wxPyEmptyString,
 
 159                         const wxString& wildcard = wxPyFileSelectorDefaultWildcardStr,
 
 161                         wxWindow *parent = NULL,
 
 162                         int x = -1, int y = -1);
 
 164 // TODO: wxFileSelectorEx
 
 167 // Ask for filename to load
 
 168 MustHaveApp(wxLoadFileSelector);
 
 169 wxString wxLoadFileSelector(const wxString& what,
 
 170                             const wxString& extension,
 
 171                             const wxString& default_name = wxPyEmptyString,
 
 172                             wxWindow *parent = NULL);
 
 174 // Ask for filename to save
 
 175 MustHaveApp(wxSaveFileSelector);
 
 176 wxString wxSaveFileSelector(const wxString& what,
 
 177                             const wxString& extension,
 
 178                             const wxString& default_name = wxPyEmptyString,
 
 179                             wxWindow *parent = NULL);
 
 182 MustHaveApp(wxDirSelector);
 
 183 wxString wxDirSelector(const wxString& message = wxPyDirSelectorPromptStr,
 
 184                        const wxString& defaultPath = wxPyEmptyString,
 
 185                        long style = wxDD_DEFAULT_STYLE,
 
 186                        const wxPoint& pos = wxDefaultPosition,
 
 187                        wxWindow *parent = NULL);
 
 189 MustHaveApp(wxGetTextFromUser);
 
 190 wxString wxGetTextFromUser(const wxString& message,
 
 191                            const wxString& caption = wxPyEmptyString,
 
 192                            const wxString& default_value = wxPyEmptyString,
 
 193                            wxWindow *parent = NULL,
 
 194                            int x = -1, int y = -1,
 
 197 MustHaveApp(wxGetPasswordFromUser);
 
 198 wxString wxGetPasswordFromUser(const wxString& message,
 
 199                                const wxString& caption = wxPyEmptyString,
 
 200                                const wxString& default_value = wxPyEmptyString,
 
 201                                wxWindow *parent = NULL);
 
 204 // TODO: Need to custom wrap this one...
 
 205 // int wxGetMultipleChoice(char* message, char* caption,
 
 206 //                         int LCOUNT, char** choices,
 
 207 //                         int nsel, int *selection,
 
 208 //                         wxWindow *parent = NULL, int x = -1, int y = -1,
 
 209 //                         bool centre = true, int width=150, int height=200);
 
 212 MustHaveApp(wxGetSingleChoice);
 
 213 wxString wxGetSingleChoice(const wxString& message, const wxString& caption,
 
 214                            int choices, wxString* choices_array,
 
 215                            wxWindow *parent = NULL,
 
 216                            int x = -1, int y = -1,
 
 218                            int width=150, int height=200);
 
 220 MustHaveApp(wxGetSingleChoiceIndex);
 
 221 int wxGetSingleChoiceIndex(const wxString& message, const wxString& caption,
 
 222                            int choices, wxString* choices_array,
 
 223                            wxWindow *parent = NULL,
 
 224                            int x = -1, int y = -1,
 
 226                            int width=150, int height=200);
 
 229 MustHaveApp(wxMessageBox);
 
 230 int wxMessageBox(const wxString& message,
 
 231                  const wxString& caption = wxPyEmptyString,
 
 232                  int style = wxOK | wxCENTRE,
 
 233                  wxWindow *parent = NULL,
 
 234                  int x = -1, int y = -1);
 
 236 MustHaveApp(wxGetNumberFromUser);
 
 237 long wxGetNumberFromUser(const wxString& message,
 
 238                          const wxString& prompt,
 
 239                          const wxString& caption,
 
 241                          long min = 0, long max = 100,
 
 242                          wxWindow *parent = NULL,
 
 243                          const wxPoint& pos = wxDefaultPosition);
 
 247 MustHaveApp(wxColourDisplay);
 
 248 bool wxColourDisplay();
 
 250 MustHaveApp(wxDisplayDepth);
 
 251 int wxDisplayDepth();
 
 253 MustHaveApp(wxGetDisplayDepth);
 
 254 int wxGetDisplayDepth();
 
 256 MustHaveApp(wxDisplaySize);
 
 258     void, wxDisplaySize(int* OUTPUT, int* OUTPUT),
 
 259     "DisplaySize() -> (width, height)");
 
 261 MustHaveApp(wxGetDisplaySize);
 
 262 wxSize wxGetDisplaySize();
 
 264 MustHaveApp(wxDisplaySizeMM);
 
 266     void, wxDisplaySizeMM(int* OUTPUT, int* OUTPUT),
 
 267     "DisplaySizeMM() -> (width, height)");
 
 269 MustHaveApp(wxGetDisplaySizeMM);
 
 270 wxSize wxGetDisplaySizeMM();
 
 272 MustHaveApp(wxClientDisplayRect);
 
 274     void, wxClientDisplayRect(int *OUTPUT, int *OUTPUT, int *OUTPUT, int *OUTPUT),
 
 275     "ClientDisplayRect() -> (x, y, width, height)");
 
 277 MustHaveApp(wxGetClientDisplayRect);
 
 278 wxRect wxGetClientDisplayRect();
 
 281 MustHaveApp(wxSetCursor);
 
 282 void wxSetCursor(wxCursor& cursor);
 
 285 MustHaveApp(wxGetXDisplay);
 
 286 DocStr(wxGetXDisplay,
 
 287 "Returns a swigified pointer to the X11 display.  Returns None on
 
 288 other platforms.", "");
 
 290     void* wxGetXDisplay()
 
 293         return wxGetDisplay();
 
 301 // Miscellaneous functions
 
 303 MustHaveApp(wxBeginBusyCursor);
 
 304 void wxBeginBusyCursor(wxCursor *cursor = wxHOURGLASS_CURSOR);
 
 307 MustHaveApp(wxGetMousePosition);
 
 309     wxPoint, wxGetMousePosition(),
 
 310     "Get the current mouse position on the screen.", "");
 
 312 MustHaveApp(FindWindowAtPointer);
 
 313 DocStr(FindWindowAtPointer,
 
 314        "Returns the window currently under the mouse pointer, if it belongs to
 
 315     this application.  Otherwise it returns None.", "");
 
 317     wxWindow* FindWindowAtPointer() {
 
 319         return wxFindWindowAtPointer(unused);
 
 324 MustHaveApp(wxGetActiveWindow);
 
 326     wxWindow *, wxGetActiveWindow(),
 
 327     "Get the currently active window of this application, or None", "");
 
 330 MustHaveApp(wxGenericFindWindowAtPoint);
 
 331 wxWindow* wxGenericFindWindowAtPoint(const wxPoint& pt);
 
 333 MustHaveApp(wxFindWindowAtPoint);
 
 334 wxWindow* wxFindWindowAtPoint(const wxPoint& pt);
 
 336 MustHaveApp(wxGetTopLevelParent);
 
 337 wxWindow* wxGetTopLevelParent(wxWindow *win);
 
 340 // flags for wxLaunchDefaultBrowser
 
 343     wxBROWSER_NEW_WINDOW = 1
 
 347     bool , wxLaunchDefaultBrowser(const wxString& url, int flags = 0),
 
 348     "Launches the user's default browser and tells it to open the location
 
 349 at ``url``.  Returns ``True`` if the application was successfully
 
 354 MustHaveApp(wxGetKeyState);
 
 356     bool , wxGetKeyState(wxKeyCode key),
 
 357     "Get the state of a key (true if pressed or toggled on, false if not.)
 
 358 This is generally most useful getting the state of the modifier or
 
 359 toggle keys.  On some platforms those may be the only keys that this
 
 360 function is able to detect.
 
 365 //---------------------------------------------------------------------------
 
 368 "`wx.MouseState` is used to hold information about mouse button and
 
 369 modifier key states and is what is returned from `wx.GetMouseState`.",
 
 391     void        SetX(wxCoord x);
 
 392     void        SetY(wxCoord y);
 
 394     void        SetLeftDown(bool down);
 
 395     void        SetMiddleDown(bool down);
 
 396     void        SetRightDown(bool down);
 
 398     void        SetControlDown(bool down);
 
 399     void        SetShiftDown(bool down);
 
 400     void        SetAltDown(bool down);
 
 401     void        SetMetaDown(bool down);
 
 404         x = property(GetX, SetX)
 
 405         y = property(GetY, SetY)
 
 406         leftDown = property(LeftDown, SetLeftDown)
 
 407         middleDown = property(MiddleDown, SetMiddleDown)
 
 408         rightDown = property(RightDown, SetRightDown)
 
 409         controlDown = property(ControlDown, SetControlDown)
 
 410         shiftDown = property(ShiftDown, SetShiftDown)
 
 411         altDown = property(AltDown, SetAltDown)
 
 412         metaDown = property(MetaDown, SetMetaDown)
 
 413         cmdDown = property(CmdDown)
 
 419     wxMouseState , wxGetMouseState(),
 
 420     "Returns the current state of the mouse.  Returns an instance of a
 
 421 `wx.MouseState` object that contains the current position of the mouse
 
 422 pointer in screen coordinants, as well as boolean values indicating
 
 423 the up/down status of the mouse buttons and the modifier keys.", "");
 
 426 //---------------------------------------------------------------------------
 
 428 MustHaveApp(wxWakeUpMainThread);
 
 430 #if defined(__WXMSW__) || defined(__WXMAC__)
 
 431 void wxWakeUpMainThread();
 
 434     void wxWakeUpMainThread() {}
 
 439 MustHaveApp(wxMutexGuiEnter);
 
 440 void wxMutexGuiEnter();
 
 442 MustHaveApp(wxMutexGuiLeave);
 
 443 void wxMutexGuiLeave();
 
 446 MustHaveApp(wxMutexGuiLocker);
 
 447 class wxMutexGuiLocker  {
 
 454 MustHaveApp(wxThread);
 
 456     bool wxThread_IsMain() {
 
 457 #ifdef WXP_WITH_THREAD
 
 458         return wxThread::IsMain();
 
 465 //---------------------------------------------------------------------------
 
 466 //---------------------------------------------------------------------------