Merged the wxPy_newswig branch into the HEAD branch (main trunk)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24541 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
785
wxPython/src/_window.i
Normal file
785
wxPython/src/_window.i
Normal file
@@ -0,0 +1,785 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: _window.i
|
||||
// Purpose: SWIG interface for wxWindow
|
||||
//
|
||||
// Author: Robin Dunn
|
||||
//
|
||||
// Created: 24-June-1997
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 2003 by Total Control Software
|
||||
// Licence: wxWindows license
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Not a %module
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
%{
|
||||
%}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
%newgroup
|
||||
|
||||
class wxWindow : public wxEvtHandler
|
||||
{
|
||||
public:
|
||||
%addtofunc wxWindow "self._setOORInfo(self)"
|
||||
%addtofunc wxWindow() ""
|
||||
|
||||
wxWindow(wxWindow* parent, const wxWindowID id,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
const wxString& name = wxPyPanelNameStr);
|
||||
%name(PreWindow)wxWindow();
|
||||
|
||||
bool Create(wxWindow* parent, const wxWindowID id,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
const wxString& name = wxPyPanelNameStr);
|
||||
|
||||
|
||||
|
||||
// deleting the window
|
||||
// -------------------
|
||||
|
||||
// ask the window to close itself, return TRUE if the event handler
|
||||
// honoured our request
|
||||
bool Close( bool force = FALSE );
|
||||
|
||||
// delete window unconditionally (dangerous!), returns TRUE if ok
|
||||
virtual bool Destroy();
|
||||
|
||||
// delete all children of this window, returns TRUE if ok
|
||||
bool DestroyChildren();
|
||||
|
||||
// is the window being deleted?
|
||||
bool IsBeingDeleted() const;
|
||||
|
||||
|
||||
// window attributes
|
||||
// -----------------
|
||||
|
||||
// the text which the window shows in the title if applicable
|
||||
virtual void SetTitle( const wxString& WXUNUSED(title) );
|
||||
virtual wxString GetTitle() const;
|
||||
|
||||
// the text which the window shows in its label if applicable
|
||||
virtual void SetLabel(const wxString& label);
|
||||
virtual wxString GetLabel() const;
|
||||
|
||||
// the window name is used for ressource setting in X, it is not the
|
||||
// same as the window title/label
|
||||
virtual void SetName( const wxString &name );
|
||||
virtual wxString GetName() const;
|
||||
|
||||
// window id uniquely identifies the window among its siblings unless
|
||||
// it is -1 which means "don't care"
|
||||
void SetId( wxWindowID winid );
|
||||
wxWindowID GetId() const;
|
||||
|
||||
// generate a control id for the controls which were not given one by
|
||||
// user
|
||||
static int NewControlId();
|
||||
|
||||
// get the id of the control following the one with the given
|
||||
// (autogenerated) id
|
||||
static int NextControlId(int winid);
|
||||
|
||||
// get the id of the control preceding the one with the given
|
||||
// (autogenerated) id
|
||||
static int PrevControlId(int winid);
|
||||
|
||||
|
||||
|
||||
// moving/resizing
|
||||
// ---------------
|
||||
|
||||
// set the window size
|
||||
void SetSize( const wxSize& size );
|
||||
|
||||
// set the window size and position
|
||||
%name(SetDimensions) void SetSize( int x, int y, int width, int height,
|
||||
int sizeFlags = wxSIZE_AUTO );
|
||||
|
||||
// set the window size and position with a wxRect
|
||||
%name(SetRect) void SetSize(const wxRect& rect, int sizeFlags = wxSIZE_AUTO);
|
||||
|
||||
// set window size
|
||||
%name(SetSizeWH)void SetSize( int width, int height );
|
||||
|
||||
// set window position
|
||||
void Move(const wxPoint& pt, int flags = wxSIZE_USE_EXISTING);
|
||||
%pythoncode { SetPosition = Move }
|
||||
|
||||
// set window position
|
||||
%name(MoveXY) void Move(int x, int y, int flags = wxSIZE_USE_EXISTING);
|
||||
|
||||
// Z-order
|
||||
virtual void Raise();
|
||||
virtual void Lower();
|
||||
|
||||
// client size is the size of the area available for subwindows
|
||||
void SetClientSize( const wxSize& size );
|
||||
%name(SetClientSizeWH) void SetClientSize( int width, int height );
|
||||
%name(SetClientRect) void SetClientSize(const wxRect& rect);
|
||||
|
||||
|
||||
// get the window position
|
||||
wxPoint GetPosition() const;
|
||||
%name(GetPositionTuple) void GetPosition( int *OUTPUT, int *OUTPUT ) const;
|
||||
|
||||
|
||||
// get the window size
|
||||
wxSize GetSize() const;
|
||||
%name(GetSizeTuple) void GetSize( int *OUTPUT, int *OUTPUT ) const;
|
||||
|
||||
// get the window position and size
|
||||
wxRect GetRect() const;
|
||||
|
||||
// get the window's client size
|
||||
wxSize GetClientSize() const;
|
||||
%name(GetClientSizeTuple) void GetClientSize( int *OUTPUT, int *OUTPUT ) const;
|
||||
|
||||
|
||||
// get the origin of the client area of the window relative to the
|
||||
// window top left corner (the client area may be shifted because of
|
||||
// the borders, scrollbars, other decorations...)
|
||||
virtual wxPoint GetClientAreaOrigin() const;
|
||||
|
||||
// get the client rectangle in window (i.e. client) coordinates
|
||||
wxRect GetClientRect() const;
|
||||
|
||||
// get the size best suited for the window (in fact, minimal
|
||||
// acceptable size using which it will still look "nice")
|
||||
wxSize GetBestSize() const;
|
||||
%name(GetBestSizeTuple) void GetBestSize(int *OUTPUT, int *OUTPUT) const;
|
||||
|
||||
// There are times (and windows) where 'Best' size and 'Min' size
|
||||
// are vastly out of sync. This should be remedied somehow, but in
|
||||
// the meantime, this method will return the larger of BestSize
|
||||
// (the window's smallest legible size), and any user specified
|
||||
// MinSize hint.
|
||||
wxSize GetAdjustedBestSize() const;
|
||||
|
||||
|
||||
// the generic center function - centers the window on parent by
|
||||
// default or on screen if it doesn't have parent or
|
||||
// wxCENTER_ON_SCREEN flag is given
|
||||
void Center( int direction = wxBOTH );
|
||||
%pythoncode { Centre = Center }
|
||||
|
||||
// center on screen (only works for top level windows)
|
||||
void CenterOnScreen(int dir = wxBOTH);
|
||||
%pythoncode { CentreOnScreen = CenterOnScreen }
|
||||
|
||||
// center with respect to the the parent window
|
||||
void CenterOnParent(int dir = wxBOTH);
|
||||
%pythoncode { CentreOnParent = CenterOnParent }
|
||||
|
||||
|
||||
// set window size to wrap around its children
|
||||
virtual void Fit();
|
||||
|
||||
// set virtual size to satisfy children
|
||||
virtual void FitInside();
|
||||
|
||||
// set min/max size of the window
|
||||
virtual void SetSizeHints( int minW, int minH,
|
||||
int maxW = -1, int maxH = -1,
|
||||
int incW = -1, int incH = -1 );
|
||||
|
||||
virtual void SetVirtualSizeHints( int minW, int minH,
|
||||
int maxW = -1, int maxH = -1 );
|
||||
|
||||
virtual int GetMinWidth() const;
|
||||
virtual int GetMinHeight() const;
|
||||
int GetMaxWidth() const;
|
||||
int GetMaxHeight() const;
|
||||
|
||||
|
||||
// Override this method to control the values given to Sizers etc.
|
||||
virtual wxSize GetMaxSize() const;
|
||||
|
||||
// Methods for accessing the virtual size of a window. For most
|
||||
// windows this is just the client area of the window, but for
|
||||
// some like scrolled windows it is more or less independent of
|
||||
// the screen window size. You may override the DoXXXVirtual
|
||||
// methods below for classes where that is is the case.
|
||||
void SetVirtualSize( const wxSize &size );
|
||||
%name(SetVirtualSizeWH) void SetVirtualSize( int w, int h );
|
||||
|
||||
wxSize GetVirtualSize() const;
|
||||
%name(GetVirtualSizeTuple)void GetVirtualSize( int *OUTPUT, int *OUTPUT ) const;
|
||||
|
||||
|
||||
// TODO: using directors?
|
||||
// // Override these methods for windows that have a virtual size
|
||||
// // independent of their client size. eg. the virtual area of a
|
||||
// // wxScrolledWindow. Default is to alias VirtualSize to ClientSize.
|
||||
// virtual void DoSetVirtualSize( int x, int y );
|
||||
// virtual wxSize DoGetVirtualSize() const; // { return m_virtualSize; }
|
||||
|
||||
|
||||
// Return the largest of ClientSize and BestSize (as determined
|
||||
// by a sizer, interior children, or other means)
|
||||
virtual wxSize GetBestVirtualSize() const;
|
||||
|
||||
|
||||
|
||||
// window state
|
||||
// ------------
|
||||
|
||||
// returns TRUE if window was shown/hidden, FALSE if the nothing was
|
||||
// done (window was already shown/hidden)
|
||||
virtual bool Show( bool show = TRUE );
|
||||
bool Hide();
|
||||
|
||||
// returns TRUE if window was enabled/disabled, FALSE if nothing done
|
||||
virtual bool Enable( bool enable = TRUE );
|
||||
bool Disable();
|
||||
|
||||
bool IsShown() const;
|
||||
bool IsEnabled() const;
|
||||
|
||||
// get/set window style (setting style won't update the window and so
|
||||
// is only useful for internal usage)
|
||||
virtual void SetWindowStyleFlag( long style );
|
||||
virtual long GetWindowStyleFlag() const;
|
||||
|
||||
// get/set window style (setting style won't update the window and so
|
||||
// is only useful for internal usage)
|
||||
void SetWindowStyle( long style );
|
||||
long GetWindowStyle() const;
|
||||
|
||||
bool HasFlag(int flag) const;
|
||||
virtual bool IsRetained() const;
|
||||
|
||||
// extra style: the less often used style bits which can't be set with
|
||||
// SetWindowStyleFlag()
|
||||
virtual void SetExtraStyle(long exStyle);
|
||||
long GetExtraStyle() const;
|
||||
|
||||
// make the window modal (all other windows unresponsive)
|
||||
virtual void MakeModal(bool modal = TRUE);
|
||||
|
||||
virtual void SetThemeEnabled(bool enableTheme);
|
||||
virtual bool GetThemeEnabled() const;
|
||||
|
||||
// controls by default inherit the colours of their parents, if a
|
||||
// particular control class doesn't want to do it, it can override
|
||||
// ShouldInheritColours() to return false
|
||||
virtual bool ShouldInheritColours() const;
|
||||
|
||||
|
||||
// focus and keyboard handling
|
||||
// ---------------------------
|
||||
|
||||
// set focus to this window
|
||||
virtual void SetFocus();
|
||||
|
||||
// set focus to this window as the result of a keyboard action
|
||||
virtual void SetFocusFromKbd();
|
||||
|
||||
// return the window which currently has the focus or NULL
|
||||
static wxWindow *FindFocus();
|
||||
|
||||
// can this window have focus?
|
||||
virtual bool AcceptsFocus() const;
|
||||
|
||||
// can this window be given focus by keyboard navigation? if not, the
|
||||
// only way to give it focus (provided it accepts it at all) is to
|
||||
// click it
|
||||
virtual bool AcceptsFocusFromKeyboard() const;
|
||||
|
||||
// get the default child of this parent, i.e. the one which is
|
||||
// activated by pressing <Enter>
|
||||
virtual wxWindow *GetDefaultItem() const;
|
||||
|
||||
// set this child as default, return the old default
|
||||
virtual wxWindow *SetDefaultItem(wxWindow * WXUNUSED(child));
|
||||
|
||||
// set this child as temporary default
|
||||
virtual void SetTmpDefaultItem(wxWindow * WXUNUSED(win));
|
||||
|
||||
|
||||
|
||||
// parent/children relations
|
||||
// -------------------------
|
||||
|
||||
// get the list of children
|
||||
//wxWindowList& GetChildren(); // TODO: Do a typemap or a wrapper for wxWindowList
|
||||
%extend {
|
||||
PyObject* GetChildren() {
|
||||
wxWindowList& list = self->GetChildren();
|
||||
return wxPy_ConvertList(&list);
|
||||
}
|
||||
}
|
||||
|
||||
// get the parent or the parent of the parent
|
||||
wxWindow *GetParent() const;
|
||||
wxWindow *GetGrandParent() const;
|
||||
|
||||
// is this window a top level one?
|
||||
virtual bool IsTopLevel() const;
|
||||
|
||||
// change the real parent of this window, return TRUE if the parent
|
||||
// was changed, FALSE otherwise (error or newParent == oldParent)
|
||||
virtual bool Reparent( wxWindow *newParent );
|
||||
|
||||
// implementation mostly
|
||||
virtual void AddChild( wxWindow *child );
|
||||
virtual void RemoveChild( wxWindow *child );
|
||||
|
||||
|
||||
|
||||
// looking for windows
|
||||
// -------------------
|
||||
|
||||
// find window among the descendants of this one either by id or by
|
||||
// name (return NULL if not found)
|
||||
%name(FindWindowById) wxWindow *FindWindow( long winid );
|
||||
%name(FindWindowByName) wxWindow *FindWindow( const wxString& name );
|
||||
|
||||
|
||||
// event handler stuff
|
||||
// -------------------
|
||||
|
||||
// get the current event handler
|
||||
wxEvtHandler *GetEventHandler() const;
|
||||
|
||||
// replace the event handler (allows to completely subclass the
|
||||
// window)
|
||||
void SetEventHandler( wxEvtHandler *handler );
|
||||
|
||||
// push/pop event handler: allows to chain a custom event handler to
|
||||
// alreasy existing ones
|
||||
void PushEventHandler( wxEvtHandler *handler );
|
||||
wxEvtHandler *PopEventHandler( bool deleteHandler = FALSE );
|
||||
|
||||
// find the given handler in the event handler chain and remove (but
|
||||
// not delete) it from the event handler chain, return TRUE if it was
|
||||
// found and FALSE otherwise (this also results in an assert failure so
|
||||
// this function should only be called when the handler is supposed to
|
||||
// be there)
|
||||
bool RemoveEventHandler(wxEvtHandler *handler);
|
||||
|
||||
|
||||
|
||||
// validators
|
||||
// ----------
|
||||
|
||||
// a window may have an associated validator which is used to control
|
||||
// user input
|
||||
virtual void SetValidator( const wxValidator &validator );
|
||||
virtual wxValidator *GetValidator();
|
||||
|
||||
|
||||
// accelerators
|
||||
// ------------
|
||||
|
||||
virtual void SetAcceleratorTable( const wxAcceleratorTable& accel );
|
||||
wxAcceleratorTable *GetAcceleratorTable();
|
||||
|
||||
|
||||
|
||||
|
||||
// hot keys (system wide accelerators)
|
||||
// -----------------------------------
|
||||
%extend {
|
||||
// hot keys (system wide accelerators)
|
||||
bool RegisterHotKey(int hotkeyId, int modifiers, int keycode) {
|
||||
#if wxUSE_HOTKEY
|
||||
return self->RegisterHotKey(hotkeyId, modifiers, keycode);
|
||||
#else
|
||||
return FALSE;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool UnregisterHotKey(int hotkeyId) {
|
||||
#if wxUSE_HOTKEY
|
||||
return self->UnregisterHotKey(hotkeyId);
|
||||
#else
|
||||
return FALSE;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// "dialog units" translations
|
||||
// ---------------------------
|
||||
|
||||
%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);
|
||||
|
||||
|
||||
|
||||
// mouse functions
|
||||
// ---------------
|
||||
|
||||
// move the mouse to the specified position
|
||||
virtual void WarpPointer(int x, int y);
|
||||
|
||||
// start or end mouse capture, these functions maintain the stack of
|
||||
// windows having captured the mouse and after calling ReleaseMouse()
|
||||
// the mouse is not released but returns to the window which had had
|
||||
// captured it previously (if any)
|
||||
void CaptureMouse();
|
||||
void ReleaseMouse();
|
||||
|
||||
// get the window which currently captures the mouse or NULL
|
||||
static wxWindow *GetCapture();
|
||||
|
||||
// does this window have the capture?
|
||||
virtual bool HasCapture() const;
|
||||
|
||||
|
||||
|
||||
// painting the window
|
||||
// -------------------
|
||||
|
||||
// mark the specified rectangle (or the whole window) as "dirty" so it
|
||||
// will be repainted
|
||||
virtual void Refresh( bool eraseBackground = TRUE,
|
||||
const wxRect *rect = NULL );
|
||||
|
||||
// a less awkward wrapper for Refresh
|
||||
void RefreshRect(const wxRect& rect);
|
||||
|
||||
// repaint all invalid areas of the window immediately
|
||||
virtual void Update();
|
||||
|
||||
// clear the window background
|
||||
virtual void ClearBackground();
|
||||
|
||||
// freeze the window: don't redraw it until it is thawed
|
||||
virtual void Freeze();
|
||||
|
||||
// thaw the window: redraw it after it had been frozen
|
||||
virtual void Thaw();
|
||||
|
||||
// adjust DC for drawing on this window
|
||||
virtual void PrepareDC( wxDC & WXUNUSED(dc) );
|
||||
|
||||
// the update region of the window contains the areas which must be
|
||||
// repainted by the program
|
||||
wxRegion& GetUpdateRegion();
|
||||
|
||||
// get the update rectangle region bounding box in client coords
|
||||
wxRect GetUpdateClientRect() const;
|
||||
|
||||
// these functions verify whether the given point/rectangle belongs to
|
||||
// (or at least intersects with) the update region
|
||||
bool IsExposed( int x, int y, int w=1, int h=1 ) const;
|
||||
%name(IsExposedPoint) bool IsExposed( const wxPoint& pt ) const;
|
||||
%name(isExposedRect) bool IsExposed( const wxRect& rect ) const;
|
||||
|
||||
|
||||
|
||||
// colours, fonts and cursors
|
||||
// --------------------------
|
||||
|
||||
// set/retrieve the window colours (system defaults are used by
|
||||
// default): Set functions return TRUE if colour was changed
|
||||
virtual bool SetBackgroundColour( const wxColour &colour );
|
||||
virtual bool SetForegroundColour( const wxColour &colour );
|
||||
|
||||
wxColour GetBackgroundColour() const;
|
||||
wxColour GetForegroundColour() const;
|
||||
|
||||
// set/retrieve the cursor for this window (SetCursor() returns TRUE
|
||||
// if the cursor was really changed)
|
||||
virtual bool SetCursor( const wxCursor &cursor );
|
||||
wxCursor& GetCursor();
|
||||
|
||||
// set/retrieve the font for the window (SetFont() returns TRUE if the
|
||||
// font really changed)
|
||||
virtual bool SetFont( const wxFont &font );
|
||||
wxFont& GetFont();
|
||||
|
||||
// associate a caret with the window
|
||||
void SetCaret(wxCaret *caret);
|
||||
|
||||
// get the current caret (may be NULL)
|
||||
wxCaret *GetCaret() const;
|
||||
|
||||
// get the (average) character size for the current font
|
||||
virtual int GetCharHeight() const;
|
||||
virtual int GetCharWidth() const;
|
||||
|
||||
// get the width/height/... of the text using current or specified
|
||||
// font
|
||||
virtual void GetTextExtent(const wxString& string, int *OUTPUT, int *OUTPUT); // x, y
|
||||
%name(GetFullTextExtent) virtual void GetTextExtent(const wxString& string,
|
||||
int *OUTPUT, int *OUTPUT, // x, y
|
||||
int *OUTPUT, int* OUTPUT, // descent, externalLeading
|
||||
const wxFont* font = NULL);
|
||||
|
||||
|
||||
// client <-> screen coords
|
||||
// ------------------------
|
||||
|
||||
%apply int * INOUT { int* x, int* y };
|
||||
|
||||
// translate to/from screen/client coordinates
|
||||
%name(ClientToScreenXY) void ClientToScreen( int *x, int *y ) const;
|
||||
%name(ScreenToClientXY) void ScreenToClient( int *x, int *y ) const;
|
||||
|
||||
wxPoint ClientToScreen(const wxPoint& pt) const;
|
||||
wxPoint ScreenToClient(const wxPoint& pt) const;
|
||||
|
||||
// test where the given (in client coords) point lies
|
||||
%name(HitTestXY) wxHitTest HitTest(wxCoord x, wxCoord y) const;
|
||||
wxHitTest HitTest(const wxPoint& pt) const;
|
||||
|
||||
|
||||
|
||||
// misc
|
||||
// ----
|
||||
|
||||
// get the window border style from the given flags: this is different from
|
||||
// simply doing flags & wxBORDER_MASK because it uses GetDefaultBorder() to
|
||||
// translate wxBORDER_DEFAULT to something reasonable
|
||||
%name(GetBorderFlags) wxBorder GetBorder(long flags) const;
|
||||
|
||||
// get border for the flags of this window
|
||||
wxBorder GetBorder() const { return GetBorder(GetWindowStyleFlag()); }
|
||||
|
||||
// send wxUpdateUIEvents to this window, and children if recurse is TRUE
|
||||
virtual void UpdateWindowUI(long flags = wxUPDATE_UI_NONE);
|
||||
|
||||
// TODO: using directors?
|
||||
// // do the window-specific processing after processing the update event
|
||||
// virtual void DoUpdateWindowUI(wxUpdateUIEvent& event) ;
|
||||
|
||||
%name(PopupMenuXY) bool PopupMenu(wxMenu *menu, int x, int y);
|
||||
bool PopupMenu(wxMenu *menu, const wxPoint& pos);
|
||||
|
||||
%extend {
|
||||
long GetHandle() {
|
||||
return wxPyGetWinHandle(self);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#ifdef __WXMSW__
|
||||
// A way to do the native draw first... Too bad it isn't in wxGTK too.
|
||||
void OnPaint(wxPaintEvent& event);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
// scrollbars
|
||||
// ----------
|
||||
|
||||
// does the window have the scrollbar for this orientation?
|
||||
bool HasScrollbar(int orient) const;
|
||||
|
||||
// configure the window scrollbars
|
||||
virtual void SetScrollbar( int orient,
|
||||
int pos,
|
||||
int thumbvisible,
|
||||
int range,
|
||||
bool refresh = TRUE );
|
||||
virtual void SetScrollPos( int orient, int pos, bool refresh = TRUE );
|
||||
virtual int GetScrollPos( int orient ) const;
|
||||
virtual int GetScrollThumb( int orient ) const;
|
||||
virtual int GetScrollRange( int orient ) const;
|
||||
|
||||
// scroll window to the specified position
|
||||
virtual void ScrollWindow( int dx, int dy,
|
||||
const wxRect* rect = NULL );
|
||||
|
||||
// scrolls window by line/page: note that not all controls support this
|
||||
//
|
||||
// return TRUE if the position changed, FALSE otherwise
|
||||
virtual bool ScrollLines(int WXUNUSED(lines));
|
||||
virtual bool ScrollPages(int WXUNUSED(pages));
|
||||
|
||||
// convenient wrappers for ScrollLines/Pages
|
||||
bool LineUp();
|
||||
bool LineDown();
|
||||
bool PageUp();
|
||||
bool PageDown();
|
||||
|
||||
|
||||
|
||||
// context-sensitive help
|
||||
// ----------------------
|
||||
|
||||
// associate this help text with this window
|
||||
void SetHelpText(const wxString& text);
|
||||
|
||||
// associate this help text with all windows with the same id as this
|
||||
// one
|
||||
void SetHelpTextForId(const wxString& text);
|
||||
|
||||
// get the help string associated with this window (may be empty)
|
||||
wxString GetHelpText() const;
|
||||
|
||||
|
||||
|
||||
// tooltips
|
||||
// --------
|
||||
|
||||
// the easiest way to set a tooltip for a window is to use this method
|
||||
%name(SetToolTipString) void SetToolTip( const wxString &tip );
|
||||
|
||||
// attach a tooltip to the window
|
||||
void SetToolTip( wxToolTip *tip );
|
||||
|
||||
// get the associated tooltip or NULL if none
|
||||
wxToolTip* GetToolTip() const;
|
||||
// LINK ERROR --> wxString GetToolTipText() const;
|
||||
|
||||
|
||||
|
||||
// drag and drop
|
||||
// -------------
|
||||
|
||||
// set/retrieve the drop target associated with this window (may be
|
||||
// NULL; it's owned by the window and will be deleted by it)
|
||||
%addtofunc SetDropTarget "args[1].thisown = 0"
|
||||
virtual void SetDropTarget( wxDropTarget *dropTarget );
|
||||
virtual wxDropTarget *GetDropTarget() const;
|
||||
|
||||
#ifdef __WXMSW__ // TODO: should I drop-kick this?
|
||||
void DragAcceptFiles(bool accept);
|
||||
#endif
|
||||
|
||||
|
||||
// constraints and sizers
|
||||
// ----------------------
|
||||
|
||||
// set the constraints for this window or retrieve them (may be NULL)
|
||||
void SetConstraints( wxLayoutConstraints *constraints );
|
||||
wxLayoutConstraints *GetConstraints() const;
|
||||
|
||||
// when using constraints or sizers, it makes sense to update
|
||||
// children positions automatically whenever the window is resized
|
||||
// - this is done if autoLayout is on
|
||||
void SetAutoLayout( bool autoLayout );
|
||||
bool GetAutoLayout() const;
|
||||
|
||||
// lay out the window and its children
|
||||
virtual bool Layout();
|
||||
|
||||
// sizers
|
||||
void SetSizer(wxSizer *sizer, bool deleteOld = TRUE );
|
||||
void SetSizerAndFit( wxSizer *sizer, bool deleteOld = TRUE );
|
||||
|
||||
wxSizer *GetSizer() const;
|
||||
|
||||
// Track if this window is a member of a sizer
|
||||
void SetContainingSizer(wxSizer* sizer);
|
||||
wxSizer *GetContainingSizer() const;
|
||||
|
||||
|
||||
|
||||
// accessibility
|
||||
// ----------------------
|
||||
#if wxUSE_ACCESSIBILITY
|
||||
// Override to create a specific accessible object.
|
||||
virtual wxAccessible* CreateAccessible();
|
||||
|
||||
// Sets the accessible object.
|
||||
void SetAccessible(wxAccessible* accessible) ;
|
||||
|
||||
// Returns the accessible object.
|
||||
wxAccessible* GetAccessible() { return m_accessible; };
|
||||
|
||||
// Returns the accessible object, creating if necessary.
|
||||
wxAccessible* GetOrCreateAccessible() ;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
%pythoncode {
|
||||
def PostCreate(self, pre):
|
||||
"""Phase 3 of the 2-phase create <wink!>
|
||||
Call this method after precreating the window with the 2-phase create method."""
|
||||
self.this = pre.this
|
||||
self.thisown = pre.thisown
|
||||
pre.thisown = 0
|
||||
if hasattr(self, '_setOORInfo'):
|
||||
self._setOORInfo(self)
|
||||
if hasattr(self, '_setCallbackInfo'):
|
||||
self._setCallbackInfo(self, self.__class__)
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
%pythoncode {
|
||||
def DLG_PNT(win, point_or_x, y=None):
|
||||
if y is None:
|
||||
return win.ConvertDialogPointToPixels(point_or_x)
|
||||
else:
|
||||
return win.ConvertDialogPointToPixels(wxPoint(point_or_x, y))
|
||||
|
||||
def DLG_SZE(win, size_width, height=None):
|
||||
if height is None:
|
||||
return win.ConvertDialogSizeToPixels(size_width)
|
||||
else:
|
||||
return win.ConvertDialogSizeToPixels(wxSize(size_width, height))
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Unfortunatly the names of these new static methods clash with the
|
||||
// names wxPython has been using forever for the overloaded
|
||||
// wxWindow::FindWindow, so instead of swigging them as statics create
|
||||
// standalone functions for them.
|
||||
|
||||
|
||||
// Find a window among any window in the application (all return NULL if not found)
|
||||
%inline %{
|
||||
wxWindow* wxFindWindowById( long id, const wxWindow *parent = NULL ) {
|
||||
return wxWindow::FindWindowById(id, parent);
|
||||
}
|
||||
|
||||
wxWindow* wxFindWindowByName( const wxString& name,
|
||||
const wxWindow *parent = NULL ) {
|
||||
return wxWindow::FindWindowByName(name, parent);
|
||||
}
|
||||
|
||||
wxWindow* wxFindWindowByLabel( const wxString& label,
|
||||
const wxWindow *parent = NULL ) {
|
||||
return wxWindow::FindWindowByLabel(label, parent);
|
||||
}
|
||||
%}
|
||||
|
||||
|
||||
|
||||
%inline %{
|
||||
wxWindow* wxWindow_FromHWND(unsigned long hWnd) {
|
||||
#ifdef __WXMSW__
|
||||
wxWindow* win = new wxWindow;
|
||||
win->SetHWND(hWnd);
|
||||
win->SubclassWin(hWnd);
|
||||
return win;
|
||||
#else
|
||||
PyErr_SetNone(PyExc_NotImplementedError);
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
%}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user