Dusk Audio Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
dgl
Layout.hpp
1
/*
2
* DISTRHO Plugin Framework (DPF)
3
* Copyright (C) 2012-2021 Filipe Coelho <falktx@falktx.com>
4
*
5
* Permission to use, copy, modify, and/or distribute this software for any purpose with
6
* or without fee is hereby granted, provided that the above copyright notice and this
7
* permission notice appear in all copies.
8
*
9
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
10
* TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
11
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
12
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
13
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
*/
16
17
#ifndef DGL_LAYOUT_HPP_INCLUDED
18
#define DGL_LAYOUT_HPP_INCLUDED
19
20
#include "Geometry.hpp"
21
22
#include <list>
23
24
START_NAMESPACE_DGL
25
26
class
SubWidget
;
27
28
// --------------------------------------------------------------------------------------------------------------------
29
30
// NOTE: under development, API to be finalized and documented soon
31
32
enum
SizeHint {
33
Expanding,
34
Fixed
35
};
36
37
struct
SubWidgetWithSizeHint
{
38
SubWidget
* widget;
39
SizeHint sizeHint;
40
};
41
42
template
<
bool
horizontal>
43
struct
Layout
44
{
45
std::list<SubWidgetWithSizeHint> widgets;
46
uint setAbsolutePos(
int
x,
int
y, uint padding);
47
void
setSize(uint size, uint padding);
48
};
49
50
typedef
Layout<true>
HorizontalLayout;
51
typedef
Layout<false>
VerticalLayout;
52
53
struct
HorizontallyStackedVerticalLayout
54
{
55
std::list<VerticalLayout*> items;
56
Size<uint>
adjustSize(uint padding);
// TODO
57
void
setAbsolutePos(
int
x,
int
y, uint padding);
58
};
59
60
struct
VerticallyStackedHorizontalLayout
61
{
62
std::list<HorizontalLayout*> items;
63
Size<uint>
adjustSize(uint padding);
64
void
setAbsolutePos(
int
x,
int
y, uint padding);
65
};
66
67
// --------------------------------------------------------------------------------------------------------------------
68
69
END_NAMESPACE_DGL
70
71
#endif
// DGL_LAYOUT_HPP_INCLUDED
Size
Definition
Geometry.hpp:133
SubWidget
Definition
SubWidget.hpp:40
HorizontallyStackedVerticalLayout
Definition
Layout.hpp:54
Layout
Definition
Layout.hpp:44
SubWidgetWithSizeHint
Definition
Layout.hpp:37
VerticallyStackedHorizontalLayout
Definition
Layout.hpp:61
Generated by
1.18.0