index a87f473e87b66dbf2d78a4394bd197c944b537fa..387510b361473ae64f689d3f17e52d6db555d514 100644 (file)
#endif
#include <gtkmm/stock.h>
+#include <gtkmm/dialog.h>
#include "document.h"
#include "desktop-handles.h"
* we use the ScalarUnit class for this.
*
*/
-Transformation::Transformation(Behavior::BehaviorFactory behavior_factory)
- : Dialog (behavior_factory, "dialogs.transformation", SP_VERB_DIALOG_TRANSFORM),
+Transformation::Transformation()
+ : UI::Widget::Panel ("", "dialogs.transformation", SP_VERB_DIALOG_TRANSFORM),
_page_move (4, 2),
_page_scale (4, 2),
_page_rotate (4, 2),
_check_replace_matrix (_("Edit c_urrent matrix"), _("Edit the current transform= matrix; otherwise, post-multiply transform= by this matrix"))
{
- // Top level vbox
- Gtk::VBox *vbox = get_vbox();
- vbox->set_spacing(0);
+ Gtk::Box *contents = _getContents();
+
+ contents->set_spacing(0);
// Notebook for individual transformations
- vbox->pack_start(_notebook, true, true);
+ contents->pack_start(_notebook, true, true);
_notebook.append_page(_page_move, _("_Move"), true);
layoutPageMove();
_notebook.signal_switch_page().connect(sigc::mem_fun(*this, &Transformation::onSwitchPage));
// Apply separately
- vbox->pack_start(_check_apply_separately, true, true);
+ contents->pack_start(_check_apply_separately, true, true);
_check_apply_separately.set_active(prefs_get_int_attribute_limited ("dialogs.transformation", "applyseparately", 0, 0, 1));
_check_apply_separately.signal_toggled().connect(sigc::mem_fun(*this, &Transformation::onApplySeparatelyToggled));
updateSelection(PAGE_MOVE, _getSelection());
- resetButton = add_button(Gtk::Stock::CLEAR, 0);
+ resetButton = addResponseButton(Gtk::Stock::CLEAR, 0);
if (resetButton) {
- tooltips.set_tip((*resetButton), _("Reset the values on the current tab to defaults"));
+ _tooltips.set_tip((*resetButton), _("Reset the values on the current tab to defaults"));
resetButton->set_sensitive(true);
resetButton->signal_clicked().connect(sigc::mem_fun(*this, &Transformation::onClear));
}
- applyButton = add_button(Gtk::Stock::APPLY, Gtk::RESPONSE_APPLY);
+ applyButton = addResponseButton(Gtk::Stock::APPLY, Gtk::RESPONSE_APPLY);
if (applyButton) {
- tooltips.set_tip((*applyButton), _("Apply transformation to selection"));
+ _tooltips.set_tip((*applyButton), _("Apply transformation to selection"));
applyButton->set_sensitive(false);
- set_default (*applyButton); // activable by Enter in spinbuttons
}
// Connect to the global selection changed & modified signals
}
-
/*########################################################################
# U T I L I T Y
########################################################################*/
@@ -439,15 +438,15 @@ Transformation::updateSelection(PageType page, Inkscape::Selection *selection)
}
}
- set_response_sensitive(Gtk::RESPONSE_APPLY,
- selection && !selection->isEmpty());
+ setResponseSensitive(Gtk::RESPONSE_APPLY,
+ selection && !selection->isEmpty());
}
void
Transformation::onSwitchPage(GtkNotebookPage */*page*/,
guint pagenum)
{
- updateSelection((PageType)pagenum, sp_desktop_selection(SP_ACTIVE_DESKTOP));
+ updateSelection((PageType)pagenum, sp_desktop_selection(getDesktop()));
}
void
}
//Let's play with never turning this off
- //set_response_sensitive(Gtk::RESPONSE_APPLY, false);
+ //setResponseSensitive(Gtk::RESPONSE_APPLY, false);
}
void
NR::Maybe<NR::Rect> bbox(sp_item_bbox_desktop(item));
if (bbox) {
double new_width = scaleX;
- if (new_width < 1e-6) new_width = 1e-6; // not 0, as this would result in a nasty no-bbox object
+ if (fabs(new_width) < 1e-6) new_width = 1e-6; // not 0, as this would result in a nasty no-bbox object
double new_height = scaleY;
- if (new_height < 1e-6) new_height = 1e-6;
+ if (fabs(new_height) < 1e-6) new_height = 1e-6;
scale = NR::scale(new_width / bbox->extent(NR::X), new_height / bbox->extent(NR::Y));
}
} else {
double new_width = scaleX;
- if (new_width < 1e-6) new_width = 1e-6;
+ if (fabs(new_width) < 1e-6) new_width = 1e-6;
double new_height = scaleY;
- if (new_height < 1e-6) new_height = 1e-6;
+ if (fabs(new_height) < 1e-6) new_height = 1e-6;
scale = NR::scale(new_width / 100.0, new_height / 100.0);
}
sp_item_scale_rel (item, scale);
// the values are increments!
if (_units_scale.isAbsolute()) {
double new_width = scaleX;
- if (new_width < 1e-6) new_width = 1e-6;
+ if (fabs(new_width) < 1e-6) new_width = 1e-6;
double new_height = scaleY;
- if (new_height < 1e-6) new_height = 1e-6;
+ if (fabs(new_height) < 1e-6) new_height = 1e-6;
scale = NR::scale(new_width / bbox->extent(NR::X), new_height / bbox->extent(NR::Y));
} else {
double new_width = scaleX;
- if (new_width < 1e-6) new_width = 1e-6;
+ if (fabs(new_width) < 1e-6) new_width = 1e-6;
double new_height = scaleY;
- if (new_height < 1e-6) new_height = 1e-6;
+ if (fabs(new_height) < 1e-6) new_height = 1e-6;
scale = NR::scale(new_width / 100.0, new_height / 100.0);
}
sp_selection_scale_relative(selection, center, scale);
void
Transformation::onMoveValueChanged()
{
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
}
void
}
}
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
}
void
return;
}
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
if (_check_scale_proportional.get_active()) {
if (!_units_scale.isAbsolute()) { // percentage, just copy over
return;
}
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
if (_check_scale_proportional.get_active()) {
if (!_units_scale.isAbsolute()) { // percentage, just copy over
void
Transformation::onRotateValueChanged()
{
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
}
void
Transformation::onSkewValueChanged()
{
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
}
void
// a, b, c, d, e ,f);
*/
- set_response_sensitive(Gtk::RESPONSE_APPLY, true);
+ setResponseSensitive(Gtk::RESPONSE_APPLY, true);
}
void