Code

r10982@tres: ted | 2006-02-18 22:08:28 -0800
[inkscape.git] / src / extension / prefdialog.cpp
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();
37     
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 :