SCV
4.2.1
Simple Components for Visual
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
Spring.h
Go to the documentation of this file.
1
#ifndef __SCV_SPRING_H__
2
#define __SCV_SPRING_H__
3
4
#include <climits>
5
6
namespace
scv {
7
8
class
Spring
{
9
public
:
10
enum
Alignment
{
11
CENTER
,
LEADING
,
TRAILING
,
NALIGNMENT
= -1
12
};
13
14
enum
Size
{
15
UNSET
= INT_MIN,
16
DEFAULT_SIZE
= -1,
17
PREFERRED_SIZE
= -2
18
};
19
20
enum
Axis
{
21
HORIZONTAL
,
VERTICAL
22
};
23
24
Spring
(
void
);
25
virtual
~Spring
(
void
) {}
26
27
virtual
int
calculateMinimumSize
(
Axis
axis) = 0;
28
virtual
int
calculatePreferredSize
(
Axis
axis) = 0;
29
virtual
int
calculateMaximumSize
(
Axis
axis) = 0;
30
31
int
getMinimumSize
(
Axis
axis);
32
int
getPreferredSize
(
Axis
axis);
33
int
getMaximumSize
(
Axis
axis);
34
35
virtual
inline
void
setAlignment
(
Alignment
alignment);
36
virtual
inline
Alignment
getAlignment
(
void
)
const
;
37
38
virtual
inline
void
setSize
(
Axis
axis,
int
origin,
int
size);
39
virtual
inline
void
unset
(
void
);
40
virtual
inline
int
getSize
(
void
)
const
;
41
42
protected
:
43
inline
int
constrain
(
int
value);
44
bool
isResizable
(
Axis
axis);
45
46
Alignment
_alignment
;
47
int
_size
,
_min
,
_max
,
_pref
;
48
private
:
49
};
50
52
53
void
Spring::setAlignment
(
Spring::Alignment
alignment) {
54
_alignment
= alignment;
55
}
56
57
Spring::Alignment
Spring::getAlignment
(
void
)
const
{
58
return
_alignment
;
59
}
60
61
void
Spring::setSize
(
Axis
axis,
int
origin,
int
size) {
62
_size
= size;
63
if
(size ==
UNSET
) {
64
unset
();
65
}
66
}
67
68
void
Spring::unset
(
void
) {
69
_size
=
_min
=
_pref
=
_max
=
UNSET
;
70
}
71
72
int
Spring::getSize
(
void
)
const
{
73
return
_size
;
74
}
75
76
int
Spring::constrain
(
int
value) {
77
return
std::min(value, INT_MAX);
78
}
79
80
}
//namespace scv
81
82
#endif //__SCV_SPRING_H__
include
SCV
Spring.h
Generated on Fri Dec 14 2012 09:44:49 for SCV by
1.8.2