summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 81a8f44)
raw | patch | inline | side by side (parent: 81a8f44)
author | knutux <knutux@users.sourceforge.net> | |
Mon, 1 May 2006 15:57:07 +0000 (15:57 +0000) | ||
committer | knutux <knutux@users.sourceforge.net> | |
Mon, 1 May 2006 15:57:07 +0000 (15:57 +0000) |
src/dialogs/guidelinedialog.cpp | patch | blob | history | |
src/dialogs/guidelinedialog.h | patch | blob | history |
index 6fab6c1c67d51dcf6574052b9dddd261f74bacdc..7be2545f0d56a4304f99473e6d2bae41e24cf3e5 100644 (file)
GuidelinePropertiesDialog::GuidelinePropertiesDialog(SPGuide *guide, SPDesktop *desktop)
: _desktop(desktop), _guide(guide),
- _adjustment(0.0, -SP_DESKTOP_SCROLL_LIMIT, SP_DESKTOP_SCROLL_LIMIT, 1.0, 10.0, 10.0),
+ _relative_toggle(_("Rela_tive move"), _("Move guide relative to current position")),
+ _adjustment(0.0, -SP_DESKTOP_SCROLL_LIMIT, SP_DESKTOP_SCROLL_LIMIT, 1.0, 10.0, 10.0),
_unit_selector(NULL), _mode(true), _oldpos(0.0)
{
}
GuidelinePropertiesDialog::~GuidelinePropertiesDialog() {
- if ( NULL != _unit_selector) {
- //g_free(_unit_selector);
- }
}
void GuidelinePropertiesDialog::showDialog(SPGuide *guide, SPDesktop *desktop) {
- GuidelinePropertiesDialog *dialog = new GuidelinePropertiesDialog(guide, desktop);
- dialog->_setup();
- dialog->run();
- delete dialog;
+ GuidelinePropertiesDialog dialog(guide, desktop);
+ dialog._setup();
+ dialog.run();
}
void GuidelinePropertiesDialog::_modeChanged()
{
- if (_mode) {
- // TRANSLATORS: This string appears when double-clicking on a guide.
- // This is the distance by which the guide is to be moved.
- _m.set_label(_(" relative by "));
- _mode = false;
+ _mode = !_relative_toggle.get_active();
+ if (!_mode) {
+ _label_move.set_label(_("Move by:"));
} else {
- // TRANSLATORS: This string appears when double-clicking on a guide.
- // This is the target location where the guide is to be moved.
- _m.set_label(_(" absolute to "));
- _mode = true;
+ _label_move.set_label(_("Move to:"));
}
}
void GuidelinePropertiesDialog::_onApply()
{
gdouble const raw_dist = _spin_button.get_value();
- SPUnit const &unit = *sp_unit_selector_get_unit(SP_UNIT_SELECTOR(_unit_selector));
+ SPUnit const &unit = *sp_unit_selector_get_unit(SP_UNIT_SELECTOR(_unit_selector->gobj()));
gdouble const points = sp_units_get_pixels(raw_dist, unit);
gdouble const newpos = ( _mode
? points
Gtk::VBox *mainVBox = get_vbox();
- _b1.set_homogeneous(false);
- _b1.set_spacing(4);
- mainVBox->pack_start(_b1, false, false, 0);
- _b1.set_border_width(4);
-
- _b2.set_homogeneous(false);
- _b2.set_spacing(4);
- _b1.pack_start(_b2, true, true, 0);
+ _layout_table.set_spacings(4);
+ _layout_table.resize (3, 4);
- //labels
- _b3.set_homogeneous(false);
- _b3.set_spacing(4);
- _b2.pack_start(_b3, true, true, 0);
+ mainVBox->pack_start(_layout_table, false, false, 0);
- _label.set_label("foo1");
- _b3.pack_start(_label, true, true, 0);
- _label.set_alignment(1.0, 0.5);
+ _label_descr.set_label("foo1");
+ _layout_table.attach(_label_descr,
+ 0, 3, 0, 1, Gtk::FILL, Gtk::FILL);
+ _label_descr.set_alignment(0, 0.5);
- _label_id.set_label("foo2");
- _b3.pack_start(_label_id, true, true, 0);
- _label_id.set_alignment(0.0, 0.5);
+ _layout_table.attach(_label_move,
+ 0, 2, 1, 2, Gtk::FILL, Gtk::FILL);
+ _label_move.set_alignment(0, 0.5);
+ _modeChanged();
- _b4.set_homogeneous(false);
- _b4.set_spacing(4);
- _b2.pack_start(_b4, false, false, 0);
+ // indent
+ _layout_table.attach(*manage(new Gtk::Label(" ")),
+ 0, 1, 2, 3, Gtk::FILL, Gtk::FILL, 10);
- // mode button
- _but.set_relief(Gtk::RELIEF_NONE);
- _b4.pack_start(_but, false, true, 0);
- _but.signal_clicked().connect(sigc::mem_fun(*this, &GuidelinePropertiesDialog::_modeChanged));
- _m.set_label(_(" absolute to "));
- _but.add(_m);
+ // mode radio button
+ _layout_table.attach(_relative_toggle,
+ 1, 3, 3, 4, Gtk::EXPAND | Gtk::FILL, Gtk::FILL);
+ _relative_toggle.signal_toggled().connect(sigc::mem_fun(*this, &GuidelinePropertiesDialog::_modeChanged));
// unitmenu
/* fixme: We should allow percents here too, as percents of the canvas size */
- _unit_selector = sp_unit_selector_new(SP_UNIT_ABSOLUTE | SP_UNIT_DEVICE);
- sp_unit_selector_set_unit(SP_UNIT_SELECTOR(_unit_selector), _desktop->namedview->doc_units);
+ GtkWidget *unit_selector = sp_unit_selector_new(SP_UNIT_ABSOLUTE | SP_UNIT_DEVICE);
+ sp_unit_selector_set_unit(SP_UNIT_SELECTOR(unit_selector), _desktop->namedview->doc_units);
+ _unit_selector = Gtk::manage(Glib::wrap(unit_selector));
// spinbutton
- sp_unit_selector_add_adjustment(SP_UNIT_SELECTOR(_unit_selector), GTK_ADJUSTMENT(_adjustment.gobj()));
+ sp_unit_selector_add_adjustment(SP_UNIT_SELECTOR(unit_selector), GTK_ADJUSTMENT(_adjustment.gobj()));
_spin_button.configure(_adjustment, 1.0 , 2);
_spin_button.set_numeric(TRUE);
- _b4.pack_start(_spin_button, true, true, 0);
+ _layout_table.attach(_spin_button,
+ 1, 2, 2, 3, Gtk::EXPAND | Gtk::FILL, Gtk::FILL);
gtk_signal_connect_object(GTK_OBJECT(_spin_button.gobj()), "activate",
GTK_SIGNAL_FUNC(gtk_window_activate_default),
gobj());
- gtk_box_pack_start(GTK_BOX(_b4.gobj()), _unit_selector, FALSE, FALSE, 0);
+ _layout_table.attach(*_unit_selector,
+ 2, 3, 2, 3, Gtk::FILL, Gtk::FILL);
// dialog
_oldpos = _guide->position;
{
gchar *guide_description = sp_guide_description(_guide);
- gchar *label = g_strdup_printf(_("Move %s"), guide_description);
- g_free(guide_description);
- _label.set_label(label);
- g_free(label);
-
Inkscape::XML::Node *repr = SP_OBJECT_REPR (_guide);
const gchar *guide_id = repr->attribute("id");
- _label_id.set_label(guide_id);
+ gchar *label = g_strdup_printf(_("Moving %s %s"), guide_description, guide_id);
+ g_free(guide_description);
+ _label_descr.set_label(label);
+ g_free(label);
}
- SPUnit const &unit = *sp_unit_selector_get_unit(SP_UNIT_SELECTOR(_unit_selector));
+ SPUnit const &unit = *sp_unit_selector_get_unit(SP_UNIT_SELECTOR(unit_selector));
gdouble const val = sp_pixels_get_units(_oldpos, unit);
_spin_button.set_value(val);
_spin_button.grab_focus();
index d68ca4044ce69dc81309f2e4e90f186cc0abe44c..d12e34042fd03b6371e5871479677ad40d047d99 100644 (file)
#define INKSCAPE_DIALOG_GUIDELINE_H
#include <gtkmm/dialog.h>
+#include <gtkmm/table.h>
#include <gtkmm/spinbutton.h>
#include <gtkmm/label.h>
#include <gtkmm/stock.h>
#include <gtkmm/adjustment.h>
+#include "ui/widget/button.h"
namespace Inkscape {
namespace UI {
SPDesktop *_desktop;
SPGuide *_guide;
- Gtk::HBox _b1;
- Gtk::VBox _b2;
- Gtk::HBox _b3;
- Gtk::HBox _b4;
- Gtk::Label _label;
- Gtk::Label _label_id;
- Gtk::Button _but;
- Gtk::Label _m;
+ Gtk::Table _layout_table;
+ Gtk::Label _label_descr;
+ Gtk::Label _label_move;
+ Inkscape::UI::Widget::CheckButton _relative_toggle;
Gtk::Adjustment _adjustment;
Gtk::SpinButton _spin_button;
- GtkWidget *_unit_selector;
+ Gtk::Widget *_unit_selector;
bool _mode;
gdouble _oldpos;
};