SCV  4.2.1
Simple Components for Visual
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Group.h
Go to the documentation of this file.
1 #ifndef __SCV_GROUP_H__
2 #define __SCV_GROUP_H__
3 
4 #include "Spring.h"
5 
6 #include "Component.h"
7 
8 namespace scv {
9 
10 class Group : public Spring {
11 public:
12  typedef std::list<Spring*> SpringsList;
13 
14  enum SizeType {
16  };
17 
18  virtual Group *addGroup(Group *group);
19 
20  virtual Group *addComponent(Component *component);
21  virtual Group *addComponent(Component *component, int size);
22  virtual Group *addComponent(Component *component, int min, int pref, int max);
23  void removeComponent(scv::Component * object);
24 
25  virtual Group *addGap(int size);
26  virtual Group *addGap(int min, int pref, int max);
27 
28  virtual Group *addSpring(Spring *spring);
29 
30  virtual int calculateMinimumSize(Spring::Axis axis);
31  virtual int calculatePreferredSize(Spring::Axis axis);
32  virtual int calculateMaximumSize(Spring::Axis axis);
33 
34  virtual void setSize(Spring::Axis axis, int origin, int size);
35  virtual void setValidSize(Spring::Axis axis, int origin, int size) = 0;
36 
38  bool getAutoCreateContainerGaps(void) const;
39 
40  int calculateSize(Spring::Axis axis, SizeType type);
41 
42  int getSpringSize(Spring *spring, Spring::Axis axis, SizeType type);
43 
44  virtual int combined(int a, int b) = 0;
45 
46  inline Spring *getSpring(int index);
47 
48 protected:
50  //bool _autoCreateContainerPadding;
51 private:
52 };
53 
55 
56 Spring * Group::getSpring(int index) {
57  for (SpringsList::iterator iter = _springs.begin(); iter != _springs.end(); ++iter) {
58  if (index == 0) return (*iter);
59  index--;
60  }
61  return NULL;
62 }
63 
64 } //namespace scv
65 
66 #endif //__SCV_GROUP_H__