another class takes ownership. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			304 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
			
		
		
	
	
			304 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        _constraints.i
 | 
						|
// Purpose:     SWIG interface defs for the layout constraints
 | 
						|
//
 | 
						|
// Author:      Robin Dunn
 | 
						|
//
 | 
						|
// Created:     3-July-1997
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Copyright:   (c) 2003 by Total Control Software
 | 
						|
// Licence:     wxWindows license
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
// Not a %module
 | 
						|
 | 
						|
 | 
						|
//---------------------------------------------------------------------------
 | 
						|
 | 
						|
%{
 | 
						|
%}
 | 
						|
 | 
						|
//---------------------------------------------------------------------------
 | 
						|
%newgroup;
 | 
						|
 | 
						|
 | 
						|
enum wxEdge
 | 
						|
{
 | 
						|
    wxLeft, wxTop, wxRight, wxBottom, wxWidth, wxHeight,
 | 
						|
    wxCentre, wxCenter = wxCentre, wxCentreX, wxCentreY
 | 
						|
};
 | 
						|
 | 
						|
enum wxRelationship
 | 
						|
{
 | 
						|
    wxUnconstrained = 0,
 | 
						|
    wxAsIs,
 | 
						|
    wxPercentOf,
 | 
						|
    wxAbove,
 | 
						|
    wxBelow,
 | 
						|
    wxLeftOf,
 | 
						|
    wxRightOf,
 | 
						|
    wxSameAs,
 | 
						|
    wxAbsolute
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
DocStr(wxIndividualLayoutConstraint,
 | 
						|
"Objects of this class are stored in the `wx.LayoutConstraints` class as
 | 
						|
one of eight possible constraints that a window can be involved in.
 | 
						|
You will never need to create an instance of
 | 
						|
wx.IndividualLayoutConstraint, rather you should create a
 | 
						|
`wx.LayoutConstraints` instance and use the individual contstraints
 | 
						|
that it contains.", "
 | 
						|
 | 
						|
Constraints are initially set to have the relationship
 | 
						|
wx.Unconstrained, which means that their values should be calculated
 | 
						|
by looking at known constraints.
 | 
						|
 | 
						|
The Edge specifies the type of edge or dimension of a window.
 | 
						|
 | 
						|
Edges
 | 
						|
------
 | 
						|
    ==================  ==============================================
 | 
						|
    wx.Left             The left edge.
 | 
						|
    wx.Top              The top edge.
 | 
						|
    wx.Right            The right edge.
 | 
						|
    wx.Bottom           The bottom edge.
 | 
						|
    wx.CentreX          The x-coordinate of the centre of the window.
 | 
						|
    wx.CentreY          The y-coordinate of the centre of the window. 
 | 
						|
    ==================  ==============================================
 | 
						|
 | 
						|
 | 
						|
The Relationship specifies the relationship that this edge or
 | 
						|
dimension has with another specified edge or dimension. Normally, the
 | 
						|
user doesn't use these directly because functions such as Below and
 | 
						|
RightOf are a convenience for using the more general Set function.
 | 
						|
 | 
						|
Relationships
 | 
						|
-------------
 | 
						|
    ==================  ==============================================
 | 
						|
    wx.Unconstrained    The edge or dimension is unconstrained
 | 
						|
                        (the default for edges.)
 | 
						|
    wx.AsIs             The edge or dimension is to be taken from the current
 | 
						|
                        window position or size (the default for dimensions.)
 | 
						|
    wx.Above            The edge should be above another edge.
 | 
						|
    wx.Below            The edge should be below another edge.
 | 
						|
    wx.LeftOf           The edge should be to the left of another edge.
 | 
						|
    wx.RightOf          The edge should be to the right of another edge.
 | 
						|
    wx.SameAs           The edge or dimension should be the same as another edge
 | 
						|
                        or dimension.
 | 
						|
    wx.PercentOf        The edge or dimension should be a percentage of another
 | 
						|
                        edge or dimension.
 | 
						|
    wx.Absolute         The edge or dimension should be a given absolute value.
 | 
						|
    ==================  ==============================================
 | 
						|
 | 
						|
:see: `wx.LayoutConstraints`, `wx.Window.SetConstraints`
 | 
						|
");
 | 
						|
 | 
						|
 | 
						|
class wxIndividualLayoutConstraint : public wxObject
 | 
						|
{
 | 
						|
public:
 | 
						|
//    wxIndividualLayoutConstraint();
 | 
						|
//    ~wxIndividualLayoutConstraint();
 | 
						|
 | 
						|
    DocDeclStr(
 | 
						|
        void , Set(wxRelationship rel, wxWindow *otherW, wxEdge otherE,
 | 
						|
                   int val = 0, int marg = wxLAYOUT_DEFAULT_MARGIN),
 | 
						|
        "Sets the properties of the constraint. Normally called by one of the
 | 
						|
convenience functions such as Above, RightOf, SameAs.", "");
 | 
						|
    
 | 
						|
 | 
						|
     DocDeclStr(
 | 
						|
        void , LeftOf(wxWindow *sibling, int marg = 0),
 | 
						|
        "Constrains this edge to be to the left of the given window, with an
 | 
						|
optional margin. Implicitly, this is relative to the left edge of the
 | 
						|
other window.", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        void , RightOf(wxWindow *sibling, int marg = 0),
 | 
						|
        "Constrains this edge to be to the right of the given window, with an
 | 
						|
optional margin. Implicitly, this is relative to the right edge of the
 | 
						|
other window.", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        void , Above(wxWindow *sibling, int marg = 0),
 | 
						|
        "Constrains this edge to be above the given window, with an optional
 | 
						|
margin. Implicitly, this is relative to the top edge of the other
 | 
						|
window.", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        void , Below(wxWindow *sibling, int marg = 0),
 | 
						|
        "Constrains this edge to be below the given window, with an optional
 | 
						|
margin. Implicitly, this is relative to the bottom edge of the other
 | 
						|
window.", "");
 | 
						|
 | 
						|
    DocDeclStr(
 | 
						|
        void , SameAs(wxWindow *otherW, wxEdge edge, int marg = 0),
 | 
						|
        "Constrains this edge or dimension to be to the same as the edge of the
 | 
						|
given window, with an optional margin.", "");
 | 
						|
    
 | 
						|
 | 
						|
    DocDeclStr(
 | 
						|
        void , PercentOf(wxWindow *otherW, wxEdge wh, int per),
 | 
						|
        "Constrains this edge or dimension to be to a percentage of the given
 | 
						|
window, with an optional margin.", "");
 | 
						|
    
 | 
						|
 | 
						|
    DocDeclStr(
 | 
						|
        void , Absolute(int val),
 | 
						|
        "Constrains this edge or dimension to be the given absolute value.", "");
 | 
						|
 | 
						|
    DocDeclStr(
 | 
						|
        void , Unconstrained(),
 | 
						|
        "Sets this edge or dimension to be unconstrained, that is, dependent on
 | 
						|
other edges and dimensions from which this value can be deduced.", "");
 | 
						|
    
 | 
						|
 | 
						|
    DocDeclStr(
 | 
						|
        void , AsIs(),
 | 
						|
        "Sets this edge or constraint to be whatever the window's value is at
 | 
						|
the moment. If either of the width and height constraints are *as is*,
 | 
						|
the window will not be resized, but moved instead. This is important
 | 
						|
when considering panel items which are intended to have a default
 | 
						|
size, such as a button, which may take its size from the size of the
 | 
						|
button label.", "");
 | 
						|
    
 | 
						|
 | 
						|
    DocDeclStr(
 | 
						|
        wxWindow *, GetOtherWindow(),
 | 
						|
        "", "");
 | 
						|
        
 | 
						|
    DocDeclStr(
 | 
						|
        wxEdge , GetMyEdge() const,
 | 
						|
        "", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        void , SetEdge(wxEdge which),
 | 
						|
        "", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        void , SetValue(int v),
 | 
						|
        "", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        int , GetMargin(),
 | 
						|
        "", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        void , SetMargin(int m),
 | 
						|
        "", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        int , GetValue() const,
 | 
						|
        "", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        int , GetPercent() const,
 | 
						|
        "", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        int , GetOtherEdge() const,
 | 
						|
        "", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        bool , GetDone() const,
 | 
						|
        "", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        void , SetDone(bool d),
 | 
						|
        "", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        wxRelationship , GetRelationship(),
 | 
						|
        "", "");
 | 
						|
    
 | 
						|
    DocDeclStr(
 | 
						|
        void , SetRelationship(wxRelationship r),
 | 
						|
        "", "");
 | 
						|
    
 | 
						|
 | 
						|
    DocDeclStr(
 | 
						|
        bool , ResetIfWin(wxWindow *otherW),
 | 
						|
        "Reset constraint if it mentions otherWin", "");
 | 
						|
    
 | 
						|
 | 
						|
    DocDeclStr(
 | 
						|
        bool , SatisfyConstraint(wxLayoutConstraints *constraints, wxWindow *win),
 | 
						|
        "Try to satisfy constraint", "");
 | 
						|
    
 | 
						|
 | 
						|
    DocDeclStr(
 | 
						|
        int , GetEdge(wxEdge which, wxWindow *thisWin, wxWindow *other) const,
 | 
						|
        "Get the value of this edge or dimension, or if this\n"
 | 
						|
        "is not determinable, -1.", "");
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
DocStr(wxLayoutConstraints,
 | 
						|
"**Note:** constraints are now deprecated and you should use sizers
 | 
						|
instead.
 | 
						|
 | 
						|
Objects of this class can be associated with a window to define its
 | 
						|
layout constraints, with respect to siblings or its parent.
 | 
						|
 | 
						|
The class consists of the following eight constraints of class
 | 
						|
wx.IndividualLayoutConstraint, some or all of which should be accessed
 | 
						|
directly to set the appropriate constraints.
 | 
						|
 | 
						|
    * left: represents the left hand edge of the window
 | 
						|
    * right: represents the right hand edge of the window
 | 
						|
    * top: represents the top edge of the window
 | 
						|
    * bottom: represents the bottom edge of the window
 | 
						|
    * width: represents the width of the window
 | 
						|
    * height: represents the height of the window
 | 
						|
    * centreX: represents the horizontal centre point of the window
 | 
						|
    * centreY: represents the vertical centre point of the window 
 | 
						|
 | 
						|
Most constraints are initially set to have the relationship
 | 
						|
wxUnconstrained, which means that their values should be calculated by
 | 
						|
looking at known constraints. The exceptions are width and height,
 | 
						|
which are set to wxAsIs to ensure that if the user does not specify a
 | 
						|
constraint, the existing width and height will be used, to be
 | 
						|
compatible with panel items which often have take a default size. If
 | 
						|
the constraint is ``wx.AsIs``, the dimension will not be changed.
 | 
						|
 | 
						|
:see: `wx.IndividualLayoutConstraint`, `wx.Window.SetConstraints`
 | 
						|
", "");
 | 
						|
       
 | 
						|
 | 
						|
class wxLayoutConstraints : public wxObject
 | 
						|
{
 | 
						|
public:
 | 
						|
    %immutable;
 | 
						|
 | 
						|
    // Edge constraints
 | 
						|
    wxIndividualLayoutConstraint left;
 | 
						|
    wxIndividualLayoutConstraint top;
 | 
						|
    wxIndividualLayoutConstraint right;
 | 
						|
    wxIndividualLayoutConstraint bottom;
 | 
						|
 | 
						|
    // Size constraints
 | 
						|
    wxIndividualLayoutConstraint width;
 | 
						|
    wxIndividualLayoutConstraint height;
 | 
						|
    
 | 
						|
    // Centre constraints
 | 
						|
    wxIndividualLayoutConstraint centreX;
 | 
						|
    wxIndividualLayoutConstraint centreY;
 | 
						|
 | 
						|
    %mutable;
 | 
						|
 | 
						|
    DocCtorStr(
 | 
						|
        wxLayoutConstraints(),
 | 
						|
        "", "");
 | 
						|
 | 
						|
    ~wxLayoutConstraints();
 | 
						|
    
 | 
						|
    DocDeclA(
 | 
						|
        bool, SatisfyConstraints(wxWindow *win, int *OUTPUT),
 | 
						|
        "SatisfyConstraints(Window win) -> (areSatisfied, noChanges)");
 | 
						|
 | 
						|
    bool AreSatisfied() const;
 | 
						|
};
 | 
						|
 | 
						|
//---------------------------------------------------------------------------
 |