]> git.tdb.fi Git - r2c2.git/blob - source/engineer/dialog.cpp
61eb46855093e12b6b95657cd04d3c0c8ac29de6
[r2c2.git] / source / engineer / dialog.cpp
1 #include "dialog.h"
2
3 using namespace Msp;
4
5 Dialog::Dialog():
6         stale(false)
7 {
8         add(*(btn_ok=new GLtk::Button("OK")));
9         btn_ok->set_style("green");
10         btn_ok->set_geometry(GLtk::Geometry(geom.w-40, 10, 30, 25));
11         btn_ok->signal_clicked.connect(sigc::mem_fun(this, &Dialog::on_ok_clicked));
12         btn_ok->signal_clicked.connect(signal_ok);
13         btn_ok->signal_clicked.connect(sigc::mem_fun(this, &Dialog::dismiss));
14
15         add(*(btn_cancel=new GLtk::Button("Cncl")));
16         btn_cancel->set_style("red");
17         btn_cancel->set_geometry(GLtk::Geometry(geom.w-80, 10, 30, 25));
18         btn_cancel->signal_clicked.connect(signal_cancel);
19         btn_cancel->signal_clicked.connect(sigc::mem_fun(this, &Dialog::dismiss));
20 }
21
22 void Dialog::button_release(int x, int y, unsigned btn)
23 {
24         Panel::button_release(x, y, btn);
25         if(stale)
26                 delete this;
27 }
28
29 void Dialog::on_geometry_change()
30 {
31         btn_ok->set_geometry(GLtk::Geometry(geom.w-40, 10, 30, 25));
32         btn_cancel->set_geometry(GLtk::Geometry(geom.w-80, 10, 30, 25));
33 }
34
35 void Dialog::dismiss()
36 {
37         stale = true;
38 }