]> git.saurik.com Git - wxWidgets.git/blame - wxPython/src/_functions.i
Forgot this part of the event change patch from 2_8
[wxWidgets.git] / wxPython / src / _functions.i
CommitLineData
d14a1e28
RD
1/////////////////////////////////////////////////////////////////////////////
2// Name: _functions.i
3// Purpose: SWIG interface defs for various functions and such
4//
5// Author: Robin Dunn
6//
7// Created: 3-July-1997
8// RCS-ID: $Id$
9// Copyright: (c) 2003 by Total Control Software
10// Licence: wxWindows license
11/////////////////////////////////////////////////////////////////////////////
12
13// Not a %module
14
15
1e140719
RD
16%{
17#include <wx/stockitem.h>
18%}
19
d14a1e28
RD
20//---------------------------------------------------------------------------
21
b2dc1044
RD
22MAKE_CONST_WXSTRING(FileSelectorPromptStr);
23MAKE_CONST_WXSTRING(FileSelectorDefaultWildcardStr);
24MAKE_CONST_WXSTRING(DirSelectorPromptStr);
d14a1e28
RD
25
26//---------------------------------------------------------------------------
27%newgroup;
28
29
30long wxNewId();
31void wxRegisterId(long id);
32long wxGetCurrentId();
33
1e140719
RD
34// Returns true if the ID is in the list of recognized stock actions
35bool wxIsStockID(wxWindowID id);
36
37// Returns true of the label is empty or label of a stock button with
38// given ID
39bool wxIsStockLabel(wxWindowID id, const wxString& label);
40
e81b607b
RD
41enum wxStockLabelQueryFlag
42{
43 wxSTOCK_NOFLAGS = 0,
44
45 wxSTOCK_WITH_MNEMONIC = 1,
46 wxSTOCK_WITH_ACCELERATOR = 2
47};
48
1e140719
RD
49// Returns label that should be used for given stock UI element (e.g. "&OK"
50// for wxID_OK):
8815349a 51wxString wxGetStockLabel(wxWindowID id,
e81b607b 52 long flags = wxSTOCK_WITH_MNEMONIC);
42e2bbb9
RD
53
54
55enum wxStockHelpStringClient
56{
57 wxSTOCK_MENU // help string to use for menu items
58};
59
60// Returns an help string for the given stock UI element and for the given "context".
61wxString wxGetStockHelpString(wxWindowID id,
62 wxStockHelpStringClient client = wxSTOCK_MENU);
63
64
65
1e140719 66
ab1f7d2a 67MustHaveApp(wxBell);
d14a1e28 68void wxBell();
ab1f7d2a
RD
69
70MustHaveApp(wxEndBusyCursor);
d14a1e28
RD
71void wxEndBusyCursor();
72
d14a1e28
RD
73bool wxIsBusy();
74wxString wxNow();
75bool wxShell(const wxString& command = wxPyEmptyString);
322913ce 76
cbb4b39d 77
322913ce
RD
78DocDeclA(
79 int, wxGetOsVersion(int *OUTPUT, int *OUTPUT),
80 "GetOsVersion() -> (platform, major, minor)");
81
d14a1e28
RD
82wxString wxGetOsDescription();
83
09c4bfc3
RD
84
85// Get platform endianness
86bool wxIsPlatformLittleEndian();
87
88// Get platform architecture
89bool wxIsPlatform64Bit();
90
91
03d51a2d
RD
92// TODO:
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"
daf32463 98// int wxParseCommonDialogsFilter(const wxString& wildCard, wxArrayString& descriptions, wxArrayString& filters);
03d51a2d 99
941afb6b
RD
100
101%typemap(out) wxMemorySize {
102 %#if wxUSE_LONGLONG
103 $result = PyLong_FromLongLong($1.GetValue());
104 %#else
105 $result = PyInt_FromLong($1);
106 %#endif
107}
108
d14a1e28 109#if defined(__WXMSW__) || defined(__WXMAC__)
e88df737 110wxMemorySize wxGetFreeMemory();
d14a1e28
RD
111#else
112%inline %{
e88df737 113 wxMemorySize wxGetFreeMemory()
81cfe5e1 114 { wxPyRaiseNotImplemented(); return 0; }
d14a1e28
RD
115%}
116#endif
117
118enum wxShutdownFlags
119{
120 wxSHUTDOWN_POWEROFF, // power off the computer
121 wxSHUTDOWN_REBOOT // shutdown and reboot
122};
123
124// Shutdown or reboot the PC
ab1f7d2a 125MustHaveApp(wxShutdown);
d14a1e28
RD
126bool wxShutdown(wxShutdownFlags wFlags);
127
128
129void wxSleep(int secs);
705b61cc
RD
130void wxMilliSleep(unsigned long milliseconds);
131void wxMicroSleep(unsigned long microseconds);
132%pythoncode { Usleep = MilliSleep }
133
d14a1e28
RD
134void wxEnableTopLevelWindows(bool enable);
135
136wxString wxStripMenuCodes(const wxString& in);
137
138
139wxString wxGetEmailAddress();
140wxString wxGetHostName();
141wxString wxGetFullHostName();
142wxString wxGetUserId();
143wxString wxGetUserName();
144wxString wxGetHomeDir();
145wxString wxGetUserHome(const wxString& user = wxPyEmptyString);
146
147unsigned long wxGetProcessId();
148
149void wxTrap();
150
151
152// Dialog Functions
153
ab1f7d2a 154MustHaveApp(wxFileSelector);
d14a1e28
RD
155wxString 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,
160 int flags = 0,
161 wxWindow *parent = NULL,
162 int x = -1, int y = -1);
163
164// TODO: wxFileSelectorEx
165
166
167// Ask for filename to load
ab1f7d2a 168MustHaveApp(wxLoadFileSelector);
d14a1e28
RD
169wxString wxLoadFileSelector(const wxString& what,
170 const wxString& extension,
171 const wxString& default_name = wxPyEmptyString,
172 wxWindow *parent = NULL);
173
174// Ask for filename to save
ab1f7d2a 175MustHaveApp(wxSaveFileSelector);
d14a1e28
RD
176wxString wxSaveFileSelector(const wxString& what,
177 const wxString& extension,
178 const wxString& default_name = wxPyEmptyString,
179 wxWindow *parent = NULL);
180
181
ab1f7d2a 182MustHaveApp(wxDirSelector);
d14a1e28
RD
183wxString 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);
188
ab1f7d2a 189MustHaveApp(wxGetTextFromUser);
d14a1e28
RD
190wxString 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,
a72f4631 195 bool centre = true);
d14a1e28 196
ab1f7d2a 197MustHaveApp(wxGetPasswordFromUser);
d14a1e28
RD
198wxString wxGetPasswordFromUser(const wxString& message,
199 const wxString& caption = wxPyEmptyString,
200 const wxString& default_value = wxPyEmptyString,
201 wxWindow *parent = NULL);
202
203
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,
a72f4631 209// bool centre = true, int width=150, int height=200);
d14a1e28
RD
210
211
ab1f7d2a 212MustHaveApp(wxGetSingleChoice);
d14a1e28
RD
213wxString wxGetSingleChoice(const wxString& message, const wxString& caption,
214 int choices, wxString* choices_array,
215 wxWindow *parent = NULL,
216 int x = -1, int y = -1,
a72f4631 217 bool centre = true,
d14a1e28
RD
218 int width=150, int height=200);
219
ab1f7d2a 220MustHaveApp(wxGetSingleChoiceIndex);
d14a1e28
RD
221int wxGetSingleChoiceIndex(const wxString& message, const wxString& caption,
222 int choices, wxString* choices_array,
223 wxWindow *parent = NULL,
224 int x = -1, int y = -1,
a72f4631 225 bool centre = true,
d14a1e28
RD
226 int width=150, int height=200);
227
228
ab1f7d2a 229MustHaveApp(wxMessageBox);
d14a1e28
RD
230int 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);
235
ab1f7d2a 236MustHaveApp(wxGetNumberFromUser);
d14a1e28
RD
237long wxGetNumberFromUser(const wxString& message,
238 const wxString& prompt,
239 const wxString& caption,
240 long value,
241 long min = 0, long max = 100,
242 wxWindow *parent = NULL,
243 const wxPoint& pos = wxDefaultPosition);
02b800ce 244
d14a1e28
RD
245// GDI Functions
246
ab1f7d2a 247MustHaveApp(wxColourDisplay);
d14a1e28
RD
248bool wxColourDisplay();
249
ab1f7d2a 250MustHaveApp(wxDisplayDepth);
d14a1e28 251int wxDisplayDepth();
ab1f7d2a
RD
252
253MustHaveApp(wxGetDisplayDepth);
d14a1e28
RD
254int wxGetDisplayDepth();
255
ab1f7d2a 256MustHaveApp(wxDisplaySize);
322913ce
RD
257DocDeclA(
258 void, wxDisplaySize(int* OUTPUT, int* OUTPUT),
259 "DisplaySize() -> (width, height)");
ab1f7d2a
RD
260
261MustHaveApp(wxGetDisplaySize);
d14a1e28
RD
262wxSize wxGetDisplaySize();
263
ab1f7d2a 264MustHaveApp(wxDisplaySizeMM);
322913ce
RD
265DocDeclA(
266 void, wxDisplaySizeMM(int* OUTPUT, int* OUTPUT),
267 "DisplaySizeMM() -> (width, height)");
ab1f7d2a
RD
268
269MustHaveApp(wxGetDisplaySizeMM);
d14a1e28
RD
270wxSize wxGetDisplaySizeMM();
271
ab1f7d2a 272MustHaveApp(wxClientDisplayRect);
322913ce
RD
273DocDeclA(
274 void, wxClientDisplayRect(int *OUTPUT, int *OUTPUT, int *OUTPUT, int *OUTPUT),
275 "ClientDisplayRect() -> (x, y, width, height)");
ab1f7d2a
RD
276
277MustHaveApp(wxGetClientDisplayRect);
d14a1e28
RD
278wxRect wxGetClientDisplayRect();
279
ab1f7d2a
RD
280
281MustHaveApp(wxSetCursor);
d14a1e28
RD
282void wxSetCursor(wxCursor& cursor);
283
284
2327fb3b
RD
285MustHaveApp(wxGetXDisplay);
286DocStr(wxGetXDisplay,
287"Returns a swigified pointer to the X11 display. Returns None on
288other platforms.", "");
289%inline %{
290 void* wxGetXDisplay()
291 {
292#ifdef __WXGTK__
293 return wxGetDisplay();
294#else
295 return NULL;
296#endif
297 }
298%}
299
d14a1e28
RD
300
301// Miscellaneous functions
302
ab1f7d2a 303MustHaveApp(wxBeginBusyCursor);
d14a1e28 304void wxBeginBusyCursor(wxCursor *cursor = wxHOURGLASS_CURSOR);
ab1f7d2a 305
095315e2
RD
306
307MustHaveApp(wxGetMousePosition);
308DocDeclStr(
309 wxPoint, wxGetMousePosition(),
310 "Get the current mouse position on the screen.", "");
311
312MustHaveApp(FindWindowAtPointer);
313DocStr(FindWindowAtPointer,
314 "Returns the window currently under the mouse pointer, if it belongs to
315 this application. Otherwise it returns None.", "");
316%inline %{
317 wxWindow* FindWindowAtPointer() {
318 wxPoint unused;
319 return wxFindWindowAtPointer(unused);
320 }
321%}
322
323
ab1f7d2a 324MustHaveApp(wxGetActiveWindow);
095315e2
RD
325DocDeclStr(
326 wxWindow *, wxGetActiveWindow(),
327 "Get the currently active window of this application, or None", "");
328
d14a1e28 329
ab1f7d2a 330MustHaveApp(wxGenericFindWindowAtPoint);
d14a1e28 331wxWindow* wxGenericFindWindowAtPoint(const wxPoint& pt);
ab1f7d2a
RD
332
333MustHaveApp(wxFindWindowAtPoint);
d14a1e28
RD
334wxWindow* wxFindWindowAtPoint(const wxPoint& pt);
335
ab1f7d2a 336MustHaveApp(wxGetTopLevelParent);
d14a1e28
RD
337wxWindow* wxGetTopLevelParent(wxWindow *win);
338
d14a1e28 339
0b0849b5
RD
340// flags for wxLaunchDefaultBrowser
341enum
342{
343 wxBROWSER_NEW_WINDOW = 1
344};
345
aa2fc802 346DocDeclStr(
0b0849b5 347 bool , wxLaunchDefaultBrowser(const wxString& url, int flags = 0),
aa2fc802
RD
348 "Launches the user's default browser and tells it to open the location
349at ``url``. Returns ``True`` if the application was successfully
350launched.", "");
d14a1e28
RD
351
352
89c876de 353
ab1f7d2a 354MustHaveApp(wxGetKeyState);
ad411ab2
RD
355DocDeclStr(
356 bool , wxGetKeyState(wxKeyCode key),
357 "Get the state of a key (true if pressed or toggled on, false if not.)
358This is generally most useful getting the state of the modifier or
095315e2
RD
359toggle keys. On some platforms those may be the only keys that this
360function is able to detect.
ad411ab2
RD
361", "");
362
57b1892f
RD
363
364
095315e2
RD
365//---------------------------------------------------------------------------
366
367DocStr(wxMouseState,
368"`wx.MouseState` is used to hold information about mouse button and
369modifier key states and is what is returned from `wx.GetMouseState`.",
370"");
371
372class wxMouseState
373{
374public:
375 wxMouseState();
376 ~wxMouseState();
377
378 wxCoord GetX();
379 wxCoord GetY();
380
381 bool LeftDown();
382 bool MiddleDown();
383 bool RightDown();
384
385 bool ControlDown();
386 bool ShiftDown();
387 bool AltDown();
388 bool MetaDown();
389 bool CmdDown();
390
391 void SetX(wxCoord x);
392 void SetY(wxCoord y);
393
394 void SetLeftDown(bool down);
395 void SetMiddleDown(bool down);
396 void SetRightDown(bool down);
397
398 void SetControlDown(bool down);
399 void SetShiftDown(bool down);
400 void SetAltDown(bool down);
401 void SetMetaDown(bool down);
402
403 %pythoncode {
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)
414 }
415};
416
417
418DocDeclStr(
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
422pointer in screen coordinants, as well as boolean values indicating
423the up/down status of the mouse buttons and the modifier keys.", "");
424
425
d14a1e28
RD
426//---------------------------------------------------------------------------
427
ab1f7d2a
RD
428MustHaveApp(wxWakeUpMainThread);
429
d14a1e28
RD
430#if defined(__WXMSW__) || defined(__WXMAC__)
431void wxWakeUpMainThread();
432#else
433%inline %{
434 void wxWakeUpMainThread() {}
435%}
436#endif
437
ab1f7d2a
RD
438
439MustHaveApp(wxMutexGuiEnter);
d14a1e28 440void wxMutexGuiEnter();
ab1f7d2a
RD
441
442MustHaveApp(wxMutexGuiLeave);
d14a1e28
RD
443void wxMutexGuiLeave();
444
445
ab1f7d2a 446MustHaveApp(wxMutexGuiLocker);
d14a1e28
RD
447class wxMutexGuiLocker {
448public:
449 wxMutexGuiLocker();
450 ~wxMutexGuiLocker();
451};
452
453
ab1f7d2a 454MustHaveApp(wxThread);
d14a1e28
RD
455%inline %{
456 bool wxThread_IsMain() {
457#ifdef WXP_WITH_THREAD
458 return wxThread::IsMain();
459#else
a72f4631 460 return true;
d14a1e28
RD
461#endif
462 }
463%}
464
465//---------------------------------------------------------------------------
466//---------------------------------------------------------------------------