1 /*
2 * Authors:
3 * Ted Gould <ted@gould.cx>
4 *
5 * Copyright (C) 2005-2006 Authors
6 *
7 * Released under GNU GPL, read the file 'COPYING' for more information
8 */
10 #include <gtkmm/stock.h>
11 #include <glibmm/i18n.h>
13 #include "../dialogs/dialog-events.h"
15 #include "prefdialog.h"
16 #include "helpdialog.h"
18 namespace Inkscape {
19 namespace Extension {
21 PrefDialog::PrefDialog (Glib::ustring name, gchar const * help, Gtk::Widget * controls) :
22 Gtk::Dialog::Dialog(name + _(" Preferences"), true, true), _help(help), _name(name)
23 {
24 Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox());
25 hbox->pack_start(*controls, true, true, 6);
26 hbox->show();
27 this->get_vbox()->pack_start(*hbox, true, true, 6);
29 Gtk::Button * help_button = add_button(Gtk::Stock::HELP, Gtk::RESPONSE_HELP);
30 if (_help == NULL)
31 help_button->set_sensitive(false);
32 add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
34 Gtk::Button * ok = add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK);
35 set_default_response(Gtk::RESPONSE_OK);
36 ok->grab_focus();
38 GtkWidget *dlg = GTK_WIDGET(gobj());
39 sp_transientize(dlg);
41 return;
42 }
44 int
45 PrefDialog::run (void) {
46 int resp = Gtk::RESPONSE_HELP;
47 while (resp == Gtk::RESPONSE_HELP) {
48 resp = Gtk::Dialog::run();
49 if (resp == Gtk::RESPONSE_HELP) {
50 HelpDialog help(_name, _help);
51 help.run();
52 help.hide();
53 }
54 }
55 return resp;
56 }
58 }; }; /* namespace Inkscape, Extension */
60 /*
61 Local Variables:
62 mode:c++
63 c-file-style:"stroustrup"
64 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
65 indent-tabs-mode:nil
66 fill-column:99
67 End:
68 */
69 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :