1 
2 #include "layout.h"
3 
Layouts()4 Layouts::Layouts() :
5   m_current_layout(NULL),m_layouts()
6 {
7   setup_layouts();
8 }
9 
~Layouts()10 Layouts::~Layouts()
11 {
12   FOR_EACH_CONST(layouts_t,m_layouts,it)
13     delete it->second;
14 }
15 
add_layout(Layout * l,const string & name)16 void Layouts::add_layout(Layout *l,const string &name)
17 {
18   m_layouts[name] = l;
19   m_layout_names.push_back(name);
20 }
21 
setup_layouts(void)22 void Layouts::setup_layouts(void)
23 {
24   Layout *l;
25 
26   l = new Layout();
27   l->color_sea_top    = vec4(0.25f,0.4f,0.55f,1.0f);
28   l->color_sea_middle = vec4(0.25f,0.4f,0.55f,0.5f);
29   l->color_sea_bottom = vec4(0.1f,0.4f,0.3f,0.5f);
30   l->color_sky_top    = vec4(0.35f,0.55f,0.75f,1.0);
31   l->color_sky_bottom = vec4(0.35f,0.55f,0.75f,1.0);
32 	l->color_fire_start = vec4(1.0,0.784,0.1804,1.0);
33 	l->bottom_pass			= false;
34   add_layout(l,"Default");
35 
36 //  l = new Layout();
37 //  l->color_sea_top    = vec4(0.25f,0.4f,0.55f,1.0f);
38 //  l->color_sea_middle = vec4(0.25f,0.4f,0.55f,0.5f);
39 //  l->color_sea_bottom = vec4(0.1f,0.4f,0.3f,0.5f);
40 //  l->color_sky_top    = vec4(119/255.0f,125/255.0f,199/255.0f,0.0);
41 //  l->color_sky_bottom = vec4(248/255.0f,83/255.0f,19/255.0f,0.0);
42 //	l->color_fire_start = vec4(1.0,0.784,0.1804,1.0);
43 //	l->bottom_pass			= true;
44 //  add_layout(l,"Dawn");
45 
46   l = new Layout();
47   l->color_sea_top    = vec4(0.25f,0.4f,0.55f,1.0);
48   l->color_sea_middle = vec4(0.25f,0.4f,0.55f,0.5);
49   l->color_sea_bottom = vec4(0.25f,0.4f,0.55f,0.5);
50   l->color_sky_top    = vec4(0.35f,0.55f,0.75f,1.0);
51   l->color_sky_bottom = vec4(0.35f,0.55f,0.75f,1.0);
52 	l->color_fire_start = vec4(0.0,0.0,0.0,1.0);
53 	l->bottom_pass			= false;
54   add_layout(l,"Clear");
55 
56   l = new Layout();
57   l->color_sea_top    = vec4(0.55f,0.55f,0.55f,1.0);
58   l->color_sea_middle = vec4(0.55f,0.55f,0.55f,0.5);
59   l->color_sea_bottom = vec4(0.33f,0.33f,0.33f,0.5);
60   l->color_sky_top    = vec4(0.0,0.0,0.0,1.0);
61   l->color_sky_bottom = vec4(1.0,1.0,1.0,1.0);
62 	l->color_fire_start = vec4(1.0,1.0,1.0,1.0);
63 	l->bottom_pass			= true;
64   add_layout(l,"B&W");
65 
66   // default
67   set_layout("Default");
68 }
69 
set_layout(const string & name)70 void Layouts::set_layout(const string &name)
71 {
72   m_current_layout = m_layouts[name];
73 }
74 
cur(void)75 Layout *Layouts::cur(void)
76 {
77   return m_current_layout;
78 }
79 
get_names(void)80 str_ary_t Layouts::get_names(void)
81 {
82   return m_layout_names;
83 }
84