00001 #include "confirmquit.h"
00002 #include "keys.h"
00003 #include "language.h"
00004 #include "mwindow.h"
00005 #include "mwindowgui.h"
00006 #include "theme.h"
00007
00008
00009
00010
00011 ConfirmQuitWindow::ConfirmQuitWindow(MWindow *mwindow)
00012 : BC_Window(PROGRAM_NAME ": Question",
00013 mwindow->gui->get_abs_cursor_x(1),
00014 mwindow->gui->get_abs_cursor_y(1),
00015 375,
00016 160)
00017 {
00018 this->mwindow = mwindow;
00019 }
00020
00021 ConfirmQuitWindow::~ConfirmQuitWindow()
00022 {
00023 }
00024
00025 int ConfirmQuitWindow::create_objects(char *string)
00026 {
00027 int x = 10, y = 10;
00028 BC_Title *title;
00029
00030 add_subwindow(title = new BC_Title(x, y, string));
00031 y += title->get_h();
00032 add_subwindow(title = new BC_Title(x, y, _("( Answering ""No"" will destroy changes )")));
00033
00034 add_subwindow(new ConfirmQuitYesButton(mwindow, this));
00035 add_subwindow(new ConfirmQuitNoButton(mwindow, this));
00036 add_subwindow(new ConfirmQuitCancelButton(mwindow, this));
00037 return 0;
00038 }
00039
00040 ConfirmQuitYesButton::ConfirmQuitYesButton(MWindow *mwindow,
00041 ConfirmQuitWindow *gui)
00042 : BC_GenericButton(10,
00043 gui->get_h() - BC_GenericButton::calculate_h() - 10,
00044 _("Yes"))
00045 {
00046 set_underline(0);
00047 }
00048
00049 int ConfirmQuitYesButton::handle_event()
00050 {
00051 set_done(2);
00052 return 1;
00053 }
00054
00055 int ConfirmQuitYesButton::keypress_event()
00056 {;
00057 if(get_keypress() == 'y') return handle_event();
00058 return 0;
00059 }
00060
00061 ConfirmQuitNoButton::ConfirmQuitNoButton(MWindow *mwindow,
00062 ConfirmQuitWindow *gui)
00063 : BC_GenericButton(gui->get_w() / 2 - BC_GenericButton::calculate_w(gui, _("No")) / 2,
00064 gui->get_h() - BC_GenericButton::calculate_h() - 10,
00065 _("No"))
00066 {
00067 set_underline(0);
00068 }
00069
00070 int ConfirmQuitNoButton::handle_event()
00071 {
00072 set_done(0);
00073 return 1;
00074 }
00075
00076 int ConfirmQuitNoButton::keypress_event()
00077 {
00078 if(get_keypress() == 'n') return handle_event();
00079 return 0;
00080 }
00081
00082 ConfirmQuitCancelButton::ConfirmQuitCancelButton(MWindow *mwindow,
00083 ConfirmQuitWindow *gui)
00084 : BC_GenericButton(gui->get_w() - BC_GenericButton::calculate_w(gui, _("Cancel")) - 10,
00085 gui->get_h() - BC_GenericButton::calculate_h() - 10,
00086 _("Cancel"))
00087 {
00088 }
00089
00090 int ConfirmQuitCancelButton::handle_event()
00091 {
00092 set_done(1);
00093 return 1;
00094 }
00095
00096 int ConfirmQuitCancelButton::keypress_event()
00097 {
00098 if(get_keypress() == ESC) return handle_event();
00099 return 0;
00100 }
00101