SCV  4.2.1
Simple Components for Visual
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
SequentialGroup.h
Go to the documentation of this file.
1 #ifndef __SCV_SEQUENTIAL_GROUP_H__
2 #define __SCV_SEQUENTIAL_GROUP_H__
3 
4 #include "Group.h"
5 
6 namespace scv {
7 
8 class SequentialGroup : public Group {
9 public:
10  SequentialGroup(void);
11 
12  virtual SequentialGroup *addGroup(Group *group);
13 
14  virtual SequentialGroup *addComponent(Component *component);
15  virtual SequentialGroup *addComponent(Component *component, int size);
16  virtual SequentialGroup *addComponent(Component *component, int min, int pref, int max);
17 
18  virtual SequentialGroup *addGap(int size);
19  virtual SequentialGroup *addGap(int min, int pref, int max);
20 
21  virtual void setValidSize(Spring::Axis axis, int origin, int size);
22 
23  virtual inline int combined(int a, int b);
24 
26  bool getAutoCreateGap(void) const;
27 
28  inline SequentialGroup *setAutoGapsSize(int autoGapSize);
29  inline int getAutoGapsSize(void) const;
30 
31 protected:
32  class SpringDelta {
33  public:
34  int _index, _delta;
35  SpringDelta(int index, int delta) {
36  _index = index;
37  _delta = delta;
38  }
39  bool operator<(const SpringDelta &rhs) const { return _delta < rhs._delta; }
40  };
41 
42  typedef std::deque<SpringDelta> SpringDeltaDeque;
43 
44  virtual void setValidSizeNotPreferred(Spring::Axis axis, int origin, int size);
45  virtual SpringDeltaDeque buildResizableList(Spring::Axis axis, bool useMin);
46 
47  void autoCreatePadding(void);
48 
50 
52  const static int s_defaultGap = 10;
53 };
54 
56 
57 int SequentialGroup::combined(int a, int b) {
58  return constrain(a) + constrain(b);
59 }
60 
62  _autoGapSize = autoGapSize;
63  return this;
64 }
65 
67  return _autoGapSize;
68 }
69 
70 } //namespace scv
71 
72 #endif //__SCV_SEQUENTIAL_GROUP_H__