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
191 lines
5.5 KiB
C++
191 lines
5.5 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/layout.h
|
|
// Purpose: OBSOLETE layout constraint classes, use sizers instead
|
|
// Author: Julian Smart
|
|
// Modified by:
|
|
// Created: 29/01/98
|
|
// Copyright: (c) 1998 Julian Smart
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_LAYOUT_H_
|
|
#define _WX_LAYOUT_H_
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// headers
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#include "wx/object.h"
|
|
|
|
// X stupidly defines these in X.h
|
|
#ifdef Above
|
|
#undef Above
|
|
#endif
|
|
#ifdef Below
|
|
#undef Below
|
|
#endif
|
|
|
|
#if wxUSE_CONSTRAINTS
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// forward declrations
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_FWD_CORE wxWindowBase;
|
|
class WXDLLIMPEXP_FWD_CORE wxLayoutConstraints;
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// constants
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#define wxLAYOUT_DEFAULT_MARGIN 0
|
|
|
|
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
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxIndividualLayoutConstraint: a constraint on window position
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_CORE wxIndividualLayoutConstraint : public wxObject
|
|
{
|
|
public:
|
|
wxIndividualLayoutConstraint();
|
|
|
|
// note that default copy ctor and assignment operators are ok
|
|
|
|
virtual ~wxIndividualLayoutConstraint(){}
|
|
|
|
void Set(wxRelationship rel, wxWindowBase *otherW, wxEdge otherE, int val = 0, int marg = wxLAYOUT_DEFAULT_MARGIN);
|
|
|
|
//
|
|
// Sibling relationships
|
|
//
|
|
void LeftOf(wxWindowBase *sibling, int marg = wxLAYOUT_DEFAULT_MARGIN);
|
|
void RightOf(wxWindowBase *sibling, int marg = wxLAYOUT_DEFAULT_MARGIN);
|
|
void Above(wxWindowBase *sibling, int marg = wxLAYOUT_DEFAULT_MARGIN);
|
|
void Below(wxWindowBase *sibling, int marg = wxLAYOUT_DEFAULT_MARGIN);
|
|
|
|
//
|
|
// 'Same edge' alignment
|
|
//
|
|
void SameAs(wxWindowBase *otherW, wxEdge edge, int marg = wxLAYOUT_DEFAULT_MARGIN);
|
|
|
|
// The edge is a percentage of the other window's edge
|
|
void PercentOf(wxWindowBase *otherW, wxEdge wh, int per);
|
|
|
|
//
|
|
// Edge has absolute value
|
|
//
|
|
void Absolute(int val);
|
|
|
|
//
|
|
// Dimension is unconstrained
|
|
//
|
|
void Unconstrained() { relationship = wxUnconstrained; }
|
|
|
|
//
|
|
// Dimension is 'as is' (use current size settings)
|
|
//
|
|
void AsIs() { relationship = wxAsIs; }
|
|
|
|
//
|
|
// Accessors
|
|
//
|
|
wxWindowBase *GetOtherWindow() { return otherWin; }
|
|
wxEdge GetMyEdge() const { return myEdge; }
|
|
void SetEdge(wxEdge which) { myEdge = which; }
|
|
void SetValue(int v) { value = v; }
|
|
int GetMargin() { return margin; }
|
|
void SetMargin(int m) { margin = m; }
|
|
int GetValue() const { return value; }
|
|
int GetPercent() const { return percent; }
|
|
int GetOtherEdge() const { return otherEdge; }
|
|
bool GetDone() const { return done; }
|
|
void SetDone(bool d) { done = d; }
|
|
wxRelationship GetRelationship() { return relationship; }
|
|
void SetRelationship(wxRelationship r) { relationship = r; }
|
|
|
|
// Reset constraint if it mentions otherWin
|
|
bool ResetIfWin(wxWindowBase *otherW);
|
|
|
|
// Try to satisfy constraint
|
|
bool SatisfyConstraint(wxLayoutConstraints *constraints, wxWindowBase *win);
|
|
|
|
// Get the value of this edge or dimension, or if this
|
|
// is not determinable, -1.
|
|
int GetEdge(wxEdge which, wxWindowBase *thisWin, wxWindowBase *other) const;
|
|
|
|
protected:
|
|
// To be allowed to modify the internal variables
|
|
friend class wxIndividualLayoutConstraint_Serialize;
|
|
|
|
// 'This' window is the parent or sibling of otherWin
|
|
wxWindowBase *otherWin;
|
|
|
|
wxEdge myEdge;
|
|
wxRelationship relationship;
|
|
int margin;
|
|
int value;
|
|
int percent;
|
|
wxEdge otherEdge;
|
|
bool done;
|
|
|
|
DECLARE_DYNAMIC_CLASS(wxIndividualLayoutConstraint)
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxLayoutConstraints: the complete set of constraints for a window
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_CORE 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(wxWindowBase *win, int *noChanges);
|
|
bool AreSatisfied() const
|
|
{
|
|
return left.GetDone() && top.GetDone() &&
|
|
width.GetDone() && height.GetDone();
|
|
}
|
|
|
|
DECLARE_DYNAMIC_CLASS(wxLayoutConstraints)
|
|
};
|
|
|
|
#endif // wxUSE_CONSTRAINTS
|
|
|
|
#endif // _WX_LAYOUT_H_
|