Toggle navigation
ivorium
iv_components
Example project
GitHub
Main Page
Modules
Classes
Files
File List
File Members
ivorium_graphics
Elements
Align.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
Elem.hpp
"
4
#include "
Slot.hpp
"
5
#include "
OneChildElem.hpp
"
6
7
namespace
iv
8
{
9
22
class
Align
:
public
OneChildElem
< SlotChild >,
public
SlotChild
23
{
24
public
:
25
ClientMarker
cm
;
26
using
Elem::instance
;
27
Align
(
Instance
* );
28
29
void
status
(
iv::TableDebugView
* view );
30
31
// initialization parameters
32
DirtyAttr< bool >
attr_dontExpand
;
33
DirtyAttr< bool >
attr_keepAspect
;
34
DirtyAttr< bool >
attr_resizeScales
;
35
DirtyAttr< float3 >
attr_innerAnchor
;
36
37
// utility methods
38
// Elem
39
Align
*
enabled
(
bool
);
40
41
// Align
42
Align
*
dontExpand
(
bool
);
43
Align
*
keepAspect
(
bool
);
44
Align
*
resizeScales
(
bool
);
45
Align
*
innerAnchor
(
float3
);
46
47
protected
:
48
// Elem
49
virtual
void
first_pass_impl
(
ElementRenderer
* )
override
;
50
virtual
void
second_pass_impl
(
ElementRenderer
* )
override
;
51
52
private
:
53
void
inner_layout(
float3
& out_size,
float3
& out_position,
float3
& out_scale )
const
;
54
55
private
:
56
// cache
57
float3
insize;
58
float3
inpos;
59
float3
inscale;
60
};
61
62
}