wxWidgets/wxPython/src/_sashwin.i
Robin Dunn 1b8c7ba607 Updated to SWIG 1.3.24 (plus a patch that corrects a bug and adds back
some things that were changed/removed from my patch I submitted to
them.)

Since it is now possible easily and simply share the SWIG type tables
across modules I reverted to always using the stock SWIG runtime
instead of my slightly hacked up version of it exported via the
wxPython C API.

The %name directive is now deprecated so replaced most uses of it with
a custom %Rename macro that uses %rename internally.  These will
evetually need to be replaced with a DocDecl macro when docstrings are
added.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31128 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-12-23 20:44:09 +00:00

281 lines
7.4 KiB
OpenEdge ABL

/////////////////////////////////////////////////////////////////////////////
// Name: _sashwin.i
// Purpose: SWIG interface defs for wxSashWindow and wxSashLayoutWindow
//
// Author: Robin Dunn
//
// Created: 22-Dec-1998
// RCS-ID: $Id$
// Copyright: (c) 2003 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// Not a %module
//---------------------------------------------------------------------------
MAKE_CONST_WXSTRING2(SashNameStr, wxT("sashWindow"));
MAKE_CONST_WXSTRING2(SashLayoutNameStr, wxT("layoutWindow"));
//---------------------------------------------------------------------------
%newgroup;
enum {
wxSASH_DRAG_NONE,
wxSASH_DRAG_DRAGGING,
wxSASH_DRAG_LEFT_DOWN,
wxSW_NOBORDER,
wxSW_BORDER,
wxSW_3DSASH,
wxSW_3DBORDER,
wxSW_3D,
};
enum wxSashEdgePosition {
wxSASH_TOP = 0,
wxSASH_RIGHT,
wxSASH_BOTTOM,
wxSASH_LEFT,
wxSASH_NONE = 100
};
// wxSashWindow allows any of its edges to have a sash which can be dragged
// to resize the window. The actual content window will be created as a child
// of wxSashWindow.
MustHaveApp(wxSashWindow);
class wxSashWindow: public wxWindow
{
public:
%pythonAppend wxSashWindow "self._setOORInfo(self)"
%pythonAppend wxSashWindow() ""
wxSashWindow(wxWindow* parent, wxWindowID id=-1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxCLIP_CHILDREN | wxSW_3D,
const wxString& name = wxPySashNameStr);
%RenameCtor(PreSashWindow, wxSashWindow());
bool Create(wxWindow* parent, wxWindowID id=-1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxCLIP_CHILDREN | wxSW_3D,
const wxString& name = wxPySashNameStr);
// Set whether there's a sash in this position
void SetSashVisible(wxSashEdgePosition edge, bool sash);
// Get whether there's a sash in this position
bool GetSashVisible(wxSashEdgePosition edge) const;
// Set whether there's a border in this position
void SetSashBorder(wxSashEdgePosition edge, bool border);
// Get whether there's a border in this position
bool HasBorder(wxSashEdgePosition edge) const;
// Get border size
int GetEdgeMargin(wxSashEdgePosition edge) const;
// Sets the default sash border size
void SetDefaultBorderSize(int width);
// Gets the default sash border size
int GetDefaultBorderSize() const;
// Sets the addition border size between child and sash window
void SetExtraBorderSize(int width);
// Gets the addition border size between child and sash window
int GetExtraBorderSize() const;
virtual void SetMinimumSizeX(int min);
virtual void SetMinimumSizeY(int min);
virtual int GetMinimumSizeX() const;
virtual int GetMinimumSizeY() const;
virtual void SetMaximumSizeX(int max);
virtual void SetMaximumSizeY(int max);
virtual int GetMaximumSizeX() const;
virtual int GetMaximumSizeY() const;
// Tests for x, y over sash
wxSashEdgePosition SashHitTest(int x, int y, int tolerance = 2);
// Resizes subwindows
void SizeWindows();
};
enum wxSashDragStatus
{
wxSASH_STATUS_OK,
wxSASH_STATUS_OUT_OF_RANGE
};
class wxSashEvent: public wxCommandEvent
{
public:
wxSashEvent(int id = 0, wxSashEdgePosition edge = wxSASH_NONE);
void SetEdge(wxSashEdgePosition edge);
wxSashEdgePosition GetEdge() const;
//// The rectangle formed by the drag operation
void SetDragRect(const wxRect& rect);
wxRect GetDragRect() const;
//// Whether the drag caused the rectangle to be reversed (e.g.
//// dragging the top below the bottom)
void SetDragStatus(wxSashDragStatus status);
wxSashDragStatus GetDragStatus() const;
};
%constant wxEventType wxEVT_SASH_DRAGGED;
%pythoncode {
EVT_SASH_DRAGGED = wx.PyEventBinder( wxEVT_SASH_DRAGGED, 1 )
EVT_SASH_DRAGGED_RANGE = wx.PyEventBinder( wxEVT_SASH_DRAGGED, 2 )
};
//---------------------------------------------------------------------------
%newgroup;
enum wxLayoutOrientation
{
wxLAYOUT_HORIZONTAL,
wxLAYOUT_VERTICAL
};
enum wxLayoutAlignment
{
wxLAYOUT_NONE,
wxLAYOUT_TOP,
wxLAYOUT_LEFT,
wxLAYOUT_RIGHT,
wxLAYOUT_BOTTOM
};
enum {
wxLAYOUT_LENGTH_Y,
wxLAYOUT_LENGTH_X,
wxLAYOUT_MRU_LENGTH,
wxLAYOUT_QUERY,
};
%constant wxEventType wxEVT_QUERY_LAYOUT_INFO;
%constant wxEventType wxEVT_CALCULATE_LAYOUT;
// This event is used to get information about window alignment,
// orientation and size.
class wxQueryLayoutInfoEvent: public wxEvent
{
public:
wxQueryLayoutInfoEvent(wxWindowID id = 0);
// Read by the app
void SetRequestedLength(int length);
int GetRequestedLength() const;
void SetFlags(int flags);
int GetFlags() const;
// Set by the app
void SetSize(const wxSize& size);
wxSize GetSize() const;
void SetOrientation(wxLayoutOrientation orient);
wxLayoutOrientation GetOrientation() const;
void SetAlignment(wxLayoutAlignment align);
wxLayoutAlignment GetAlignment() const;
};
// This event is used to take a bite out of the available client area.
class wxCalculateLayoutEvent: public wxEvent
{
public:
wxCalculateLayoutEvent(wxWindowID id = 0);
// Read by the app
void SetFlags(int flags);
int GetFlags() const;
// Set by the app
void SetRect(const wxRect& rect);
wxRect GetRect() const;
};
%pythoncode {
EVT_QUERY_LAYOUT_INFO = wx.PyEventBinder( wxEVT_QUERY_LAYOUT_INFO )
EVT_CALCULATE_LAYOUT = wx.PyEventBinder( wxEVT_CALCULATE_LAYOUT )
};
// This is window that can remember alignment/orientation, does its own layout,
// and can provide sashes too. Useful for implementing docked windows with sashes in
// an IDE-style interface.
MustHaveApp(wxSashLayoutWindow);
class wxSashLayoutWindow: public wxSashWindow
{
public:
%pythonAppend wxSashLayoutWindow "self._setOORInfo(self)"
%pythonAppend wxSashLayoutWindow() ""
wxSashLayoutWindow(wxWindow* parent, wxWindowID id=-1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxCLIP_CHILDREN | wxSW_3D,
const wxString& name = wxPySashLayoutNameStr);
%RenameCtor(PreSashLayoutWindow, wxSashLayoutWindow());
bool Create(wxWindow* parent, wxWindowID id=-1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxCLIP_CHILDREN | wxSW_3D,
const wxString& name = wxPySashLayoutNameStr);
wxLayoutAlignment GetAlignment();
wxLayoutOrientation GetOrientation();
void SetAlignment(wxLayoutAlignment alignment);
void SetDefaultSize(const wxSize& size);
void SetOrientation(wxLayoutOrientation orientation);
};
class wxLayoutAlgorithm : public wxObject {
public:
wxLayoutAlgorithm();
~wxLayoutAlgorithm();
bool LayoutMDIFrame(wxMDIParentFrame* frame, wxRect* rect = NULL);
bool LayoutFrame(wxFrame* frame, wxWindow* mainWindow = NULL);
bool LayoutWindow(wxWindow* parent, wxWindow* mainWindow = NULL);
};
//---------------------------------------------------------------------------