| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 | 
							- /*
 
-  * Experimental code to use operators for constraint specification.
 
-  * In the end, the syntax didn't look much clearer than
 
-  * the original, so abandoned.
 
-  Example:
 
-   wxConstrain(frame->panel,
 
-     ( leftOf   (frame->panel) = leftOf   (frame),
 
-       topOf    (frame->panel) = topOf    (frame),
 
-       rightOf  (frame->panel) = rightOf  (frame),
 
-       heightOf (frame->panel) = 50 % heightOf (frame)
 
-     )
 
-   );
 
-  */
 
- // Operator experiments
 
- #define wxCONSTRAINT_OP_REL   1
 
- #define wxCONSTRAINT_OP_PERCENT 2
 
- #define wxCONSTRAINT_OP_EDGE  3
 
- #define wxCONSTRAINT_OP_ABS   4
 
- #define wxCONSTRAINT_OP_AND   5
 
- class wxConstraintOp: public wxObject
 
- {
 
-  public:
 
-    int opType;
 
-    wxEdge edge;
 
-    wxRelationship relationship;
 
-    wxWindow *win;
 
-    int value;
 
-    int margin;
 
-    wxConstraintOp *lhs;
 
-    wxConstraintOp *rhs;
 
-    wxConstraintOp(int typ)
 
-    {
 
-      opType = typ;
 
-      edge = wxLeft;
 
-      win = NULL;
 
-      value = 0;
 
-      margin = 0;
 
-      relationship = wxSameAs;
 
-      lhs = 0; rhs = 0;
 
-    }
 
-    wxConstraintOp(const wxConstraintOp& op)
 
-    {
 
-      opType = op.opType;
 
-      edge = op.edge;
 
-      relationship = op.relationship;
 
-      win = op.win;
 
-      value = op.value;
 
-      margin = op.margin;
 
-      if (op.lhs)
 
-        lhs = new wxConstraintOp(*op.lhs);
 
-      else
 
-        lhs = NULL;
 
-      if (op.rhs)
 
-        rhs = new wxConstraintOp(*op.rhs);
 
-      else
 
-        rhs = NULL;
 
-    }
 
-    ~wxConstraintOp(void)
 
-    {
 
-      if (lhs)
 
-        delete lhs;
 
-      if (rhs)
 
-        delete rhs;
 
-    }
 
-   wxConstraintOp operator = (const wxConstraintOp& arg2);
 
-   wxConstraintOp operator = (const int value);
 
-   friend wxConstraintOp operator % (const int perCent, const wxConstraintOp& arg2);
 
-   friend wxConstraintOp operator + (wxConstraintOp& arg1, int margin);
 
-   friend wxConstraintOp operator - (wxConstraintOp& arg1, int margin);
 
-   friend wxConstraintOp operator , (const wxConstraintOp& arg1, const wxConstraintOp& arg2);
 
- };
 
- wxConstraintOp leftOf(wxWindow *win)
 
- {
 
-   wxConstraintOp thing(wxCONSTRAINT_OP_EDGE);
 
-   thing.win = win;
 
-   thing.edge = wxLeft;
 
-   return thing;
 
- }
 
- wxConstraintOp topOf(wxWindow *win)
 
- {
 
-   wxConstraintOp thing(wxCONSTRAINT_OP_EDGE);
 
-   thing.win = win;
 
-   thing.edge = wxTop;
 
-   return thing;
 
- }
 
- wxConstraintOp widthOf(wxWindow *win)
 
- {
 
-   wxConstraintOp thing(wxCONSTRAINT_OP_EDGE);
 
-   thing.win = win;
 
-   thing.edge = wxWidth;
 
-   return thing;
 
- }
 
- wxConstraintOp wxConstraintOp::operator = (const wxConstraintOp& arg2)
 
- {
 
-   wxConstraintOp op3(wxCONSTRAINT_OP_REL);
 
-   op3.relationship = wxPercentOf;
 
-   op3.value = 100;
 
-   if ((op3.relationship == wxPercentOf) && (op3.value > 0))
 
-     op3.value = this->value;
 
-   op3.lhs = new wxConstraintOp(*this);
 
-   op3.rhs = new wxConstraintOp(arg2);
 
-   return op3;
 
- }
 
- wxConstraintOp wxConstraintOp::operator = (const int value)
 
- {
 
-   wxConstraintOp op3(wxCONSTRAINT_OP_REL);
 
-   op3.relationship = wxAbsolute;
 
-   op3.lhs = new wxConstraintOp(*this);
 
-   op3.rhs = new wxConstraintOp(wxCONSTRAINT_OP_ABS);
 
-   op3.value = value;
 
-   return op3;
 
- }
 
- wxConstraintOp operator % (const int perCent, const wxConstraintOp& arg2)
 
- {
 
-   wxConstraintOp op3(arg2);
 
-   op3.opType = wxCONSTRAINT_OP_EDGE;
 
-   op3.value = perCent;
 
-   if (op3.value > 0)
 
-     op3.value = arg2.value;
 
-   return op3;
 
- }
 
- wxConstraintOp operator + (wxConstraintOp& arg1, int margin)
 
- {
 
-   wxConstraintOp op3(arg1);
 
-   op3.margin = margin;
 
-   return op3;
 
- }
 
- wxConstraintOp operator - (wxConstraintOp& arg1, int margin)
 
- {
 
-   wxConstraintOp op3(arg1);
 
-   op3.margin = - margin;
 
-   return op3;
 
- }
 
- wxConstraintOp operator , (const wxConstraintOp& arg1, const wxConstraintOp& arg2)
 
- {
 
-   wxConstraintOp op3(wxCONSTRAINT_OP_AND);
 
-   op3.lhs = new wxConstraintOp(arg1);
 
-   op3.rhs = new wxConstraintOp(arg2);
 
-   return op3;
 
- }
 
 
  |