cgv
Loading...
Searching...
No Matches
layout_spacings.cxx
1#include <cgv/gui/layout_spacings.h>
2#include <map>
3#include <iostream>
4
5namespace cgv {
6 namespace gui {
7
8 // some presets
9 // compact layout without spacings at all
10 static const layout_spacings spacing_compact = {"compact", {0, 0}, {0, 0}};
11 // small layout with a little spacing
12 static const layout_spacings spacing_small = {"small", {1, 1}, {1, 1}};
13 // normal layout with nice spacings
14 static const layout_spacings spacing_normal = {"normal", {2, 2}, {2, 2}};
15 // broad spacing
16 static const layout_spacings spacing_broad = {"broad", {5, 5}, {5, 5}};
17 // huge spacing
18 static const layout_spacings spacing_huge = {"huge", {15, 15}, {15, 15}};
19
20
21 // the list of presets
22 std::map<std::string,layout_spacings>& ref_spacings()
23 {
24 static std::map<std::string, layout_spacings> spacings;
25 static bool presets_added = false;
26 if (!presets_added) {
27 spacings[spacing_compact.name] = spacing_compact;
28 spacings[spacing_small.name] = spacing_small;
29 spacings[spacing_normal.name] = spacing_normal;
30 spacings[spacing_broad.name] = spacing_broad;
31 spacings[spacing_huge.name] = spacing_huge;
32 presets_added = true;
33 }
34 return spacings;
35 }
36
37 // get a spacing
38 const layout_spacings& get_layout_spacings(std::string name)
39 {
40 if (ref_spacings().find(name) != ref_spacings().end())
41 return ref_spacings()[name];
42 return ref_spacings()["compact"];
43 }
44
45
46 void add_layout_spacings(const layout_spacings& new_spacings)
47 {
48 ref_spacings()[new_spacings.name] = new_spacings;
49 }
50
51
52 void remove_layout_spacings(const std::string& name)
53 {
54 ref_spacings().erase(name);
55 }
56
57 }
58}
the cgv namespace
Definition print.h:11