3f66f6a5b3
This keyword is not expanded by Git which means it's not replaced with the correct revision value in the releases made using git-based scripts and it's confusing to have lines with unexpanded "$Id$" in the released files. As expanding them with Git is not that simple (it could be done with git archive and export-subst attribute) and there are not many benefits in having them in the first place, just remove all these lines. If nothing else, this will make an eventual transition to Git simpler. Closes #14487. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
137 lines
3.7 KiB
C++
137 lines
3.7 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: layout.h
|
|
// Purpose: interface of layout constraints classes
|
|
// Author: wxWidgets team
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
enum wxEdge
|
|
{
|
|
wxLeft, wxTop, wxRight, wxBottom, wxWidth, wxHeight,
|
|
wxCentre, wxCenter = wxCentre, wxCentreX, wxCentreY
|
|
};
|
|
|
|
enum wxRelationship
|
|
{
|
|
wxUnconstrained,
|
|
wxAsIs,
|
|
wxPercentOf,
|
|
wxAbove,
|
|
wxBelow,
|
|
wxLeftOf,
|
|
wxRightOf,
|
|
wxSameAs,
|
|
wxAbsolute
|
|
};
|
|
|
|
const int wxLAYOUT_DEFAULT_MARGIN = 0;
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxIndividualLayoutConstraint: a constraint on window position
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class wxIndividualLayoutConstraint : public wxObject
|
|
{
|
|
public:
|
|
wxIndividualLayoutConstraint();
|
|
|
|
// note that default copy ctor and assignment operators are ok
|
|
|
|
virtual ~wxIndividualLayoutConstraint();
|
|
|
|
void Set(wxRelationship rel,
|
|
wxWindow *otherW,
|
|
wxEdge otherE,
|
|
int val = 0,
|
|
int margin = wxLAYOUT_DEFAULT_MARGIN);
|
|
|
|
//
|
|
// Sibling relationships
|
|
//
|
|
void LeftOf(wxWindow *sibling, int margin = wxLAYOUT_DEFAULT_MARGIN);
|
|
void RightOf(wxWindow *sibling, int margin = wxLAYOUT_DEFAULT_MARGIN);
|
|
void Above(wxWindow *sibling, int margin = wxLAYOUT_DEFAULT_MARGIN);
|
|
void Below(wxWindow *sibling, int margin = wxLAYOUT_DEFAULT_MARGIN);
|
|
|
|
//
|
|
// 'Same edge' alignment
|
|
//
|
|
void SameAs(wxWindow *otherW, wxEdge edge, int margin = wxLAYOUT_DEFAULT_MARGIN);
|
|
|
|
// The edge is a percentage of the other window's edge
|
|
void PercentOf(wxWindow *otherW, wxEdge wh, int per);
|
|
|
|
//
|
|
// Edge has absolute value
|
|
//
|
|
void Absolute(int val);
|
|
|
|
//
|
|
// Dimension is unconstrained
|
|
//
|
|
void Unconstrained();
|
|
|
|
//
|
|
// Dimension is 'as is' (use current size settings)
|
|
//
|
|
void AsIs();
|
|
|
|
//
|
|
// Accessors
|
|
//
|
|
wxWindow *GetOtherWindow();
|
|
wxEdge GetMyEdge() const;
|
|
void SetEdge(wxEdge which);
|
|
void SetValue(int v);
|
|
int GetMargin();
|
|
void SetMargin(int m);
|
|
int GetValue() const;
|
|
int GetPercent() const;
|
|
int GetOtherEdge() const;
|
|
bool GetDone() const;
|
|
void SetDone(bool d);
|
|
wxRelationship GetRelationship();
|
|
void SetRelationship(wxRelationship r);
|
|
|
|
// Reset constraint if it mentions otherWin
|
|
bool ResetIfWin(wxWindow *otherW);
|
|
|
|
// Try to satisfy constraint
|
|
bool SatisfyConstraint(wxLayoutConstraints *constraints, wxWindow *win);
|
|
|
|
// Get the value of this edge or dimension, or if this
|
|
// is not determinable, -1.
|
|
int GetEdge(wxEdge which, wxWindow *thisWin, wxWindow *other) const;
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxLayoutConstraints: the complete set of constraints for a window
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class wxLayoutConstraints : public wxObject
|
|
{
|
|
public:
|
|
// Edge constraints
|
|
wxIndividualLayoutConstraint left;
|
|
wxIndividualLayoutConstraint top;
|
|
wxIndividualLayoutConstraint right;
|
|
wxIndividualLayoutConstraint bottom;
|
|
// Size constraints
|
|
wxIndividualLayoutConstraint width;
|
|
wxIndividualLayoutConstraint height;
|
|
// Centre constraints
|
|
wxIndividualLayoutConstraint centreX;
|
|
wxIndividualLayoutConstraint centreY;
|
|
|
|
wxLayoutConstraints();
|
|
|
|
// note that default copy ctor and assignment operators are ok
|
|
|
|
virtual ~wxLayoutConstraints();
|
|
|
|
bool SatisfyConstraints(wxWindow *win, int *noChanges);
|
|
bool AreSatisfied() const;
|
|
};
|
|
|