#define APPNAME "Ask Yes or No"
#include <gtkfc.h>
#include <Gapplication.h>
#include <Gdialog.h>
#include <Glabel.h>
class MyWindow : public Gwindow {
public:
MyWindow(Gstring s):Gwindow(s)
{
SetLayout(new GboxLayout(Gcontainers::VERTICAL));
}
~MyWindow()
{
Gapplication::Exit();
}
void OnAction(Gwidget *w, GdkEvent *e)
{
w->Action();
}
protected:
bool OnDestroy(){
class GyesNo : public Gdialog{
public:
Gwindow* w;
GyesNo(Gstring s, Gwindow* w):Gdialog(s, true){this->w = w;}
virtual ~GyesNo(){}
bool OnInit()
{
Gdialog::OnInit();
Insert(new Glabel(Gstring("Do you really want to exit !")));
return true;
}
void Action()
{
if(Result())
{
GetWindowMgr()->Remove(w);
}
else
{
GetWindowMgr()->Remove(this);
}
}
};
GyesNo *d = new GyesNo(Gstring("popol"), this);
GetWindowMgr()->Add(this, d);
d->Show();
return false;
}
};
int main(int argc, char **argv)
{
Gapplication app(APPNAME, argc, argv);
Gwindow *w = new MyWindow(app.GetAppName());
app.Add(w);
w->Show();
app.Run();
return EXIT_SUCCESS;
}