1 #include "dynamicdialog.h"
2 #include "userinterface.h"
7 DynamicDialog::DynamicDialog(UserInterface &u):
10 ui.add_dynamic_dialog(*this);
13 DynamicDialog::~DynamicDialog()
15 ui.remove_dynamic_dialog(*this);
18 void DynamicDialog::save_position(list<DataFile::Statement> &st) const
20 GLtk::Root *root = find_ancestor<GLtk::Root>();
23 const GLtk::Geometry &rgeom = root->get_geometry();
24 float x = static_cast<float>(geom.x)/(rgeom.w-geom.w);
25 float y = static_cast<float>(geom.y)/(rgeom.h-geom.h);
26 st.push_back((DataFile::Statement("position"), x, y));
31 DynamicDialog::StateLoader::StateLoader(DynamicDialog &dd):
32 DataFile::ObjectLoader<DynamicDialog>(dd)
34 add("position", &StateLoader::position);
37 void DynamicDialog::StateLoader::position(float x, float y)
39 GLtk::Root *root = obj.find_ancestor<GLtk::Root>();
42 const GLtk::Geometry &rgeom = root->get_geometry();
43 obj.set_position(x*(rgeom.w-obj.geom.w), y*(rgeom.h-obj.geom.h));