summaryrefslogtreecommitdiffstats
path: root/src/ui/widget
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2014-04-01 17:00:00 +0000
committerJabiertxof <jtx@jtx.marker.es>2014-04-01 17:00:00 +0000
commit208ccdf9782984702f79b8ba416e67dd1e2c2dfa (patch)
tree79d15123aa526c49c6386db6245fbfc6b7a63eaf /src/ui/widget
parentupdate to trunk (diff)
parentpartial 2geom update: (diff)
downloadinkscape-208ccdf9782984702f79b8ba416e67dd1e2c2dfa.tar.gz
inkscape-208ccdf9782984702f79b8ba416e67dd1e2c2dfa.zip
update to trunk
(bzr r12588.1.32)
Diffstat (limited to 'src/ui/widget')
-rw-r--r--src/ui/widget/Makefile_insert2
-rw-r--r--src/ui/widget/anchor-selector.cpp97
-rw-r--r--src/ui/widget/anchor-selector.h59
-rw-r--r--src/ui/widget/filter-effect-chooser.h1
-rw-r--r--src/ui/widget/imageicon.cpp55
-rw-r--r--src/ui/widget/licensor.cpp8
-rw-r--r--src/ui/widget/page-sizer.cpp30
-rw-r--r--src/ui/widget/panel.cpp30
-rw-r--r--src/ui/widget/registered-widget.cpp12
-rw-r--r--src/ui/widget/registered-widget.h8
-rw-r--r--src/ui/widget/selected-style.cpp5
-rw-r--r--src/ui/widget/style-swatch.h1
-rw-r--r--src/ui/widget/tolerance-slider.cpp16
13 files changed, 242 insertions, 82 deletions
diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert
index 710b95c2b..608dd5334 100644
--- a/src/ui/widget/Makefile_insert
+++ b/src/ui/widget/Makefile_insert
@@ -1,6 +1,8 @@
## Makefile.am fragment sourced by src/Makefile.am.
ink_common_sources += \
+ ui/widget/anchor-selector.h \
+ ui/widget/anchor-selector.cpp \
ui/widget/attr-widget.h \
ui/widget/button.h \
ui/widget/button.cpp \
diff --git a/src/ui/widget/anchor-selector.cpp b/src/ui/widget/anchor-selector.cpp
new file mode 100644
index 000000000..82e27ee89
--- /dev/null
+++ b/src/ui/widget/anchor-selector.cpp
@@ -0,0 +1,97 @@
+/*
+ * anchor-selector.cpp
+ *
+ * Created on: Mar 22, 2012
+ * Author: denis
+ *
+ * Released under GNU GPL. Read the file 'COPYING' for more information.
+ */
+
+#include "ui/widget/anchor-selector.h"
+#include <iostream>
+#include "widgets/icon.h"
+#include "ui/icon-names.h"
+
+namespace Inkscape {
+namespace UI {
+namespace Widget {
+
+void AnchorSelector::setupButton(const Glib::ustring& icon, Gtk::ToggleButton& button) {
+ Gtk::Widget* buttonIcon = Gtk::manage(sp_icon_get_icon(icon, Inkscape::ICON_SIZE_SMALL_TOOLBAR));
+ buttonIcon->show();
+
+ button.set_relief(Gtk::RELIEF_NONE);
+ button.show();
+ button.add(*buttonIcon);
+ button.set_can_focus(false);
+}
+
+AnchorSelector::AnchorSelector()
+ : Gtk::Alignment(0.5, 0, 0, 0),
+ _container(3, 3, true)
+{
+ setupButton(INKSCAPE_ICON("boundingbox_top_left"), _buttons[0]);
+ setupButton(INKSCAPE_ICON("boundingbox_top"), _buttons[1]);
+ setupButton(INKSCAPE_ICON("boundingbox_top_right"), _buttons[2]);
+ setupButton(INKSCAPE_ICON("boundingbox_left"), _buttons[3]);
+ setupButton(INKSCAPE_ICON("boundingbox_center"), _buttons[4]);
+ setupButton(INKSCAPE_ICON("boundingbox_right"), _buttons[5]);
+ setupButton(INKSCAPE_ICON("boundingbox_bottom_left"), _buttons[6]);
+ setupButton(INKSCAPE_ICON("boundingbox_bottom"), _buttons[7]);
+ setupButton(INKSCAPE_ICON("boundingbox_bottom_right"), _buttons[8]);
+
+ for(int i = 0; i < 9; ++i) {
+ _buttons[i].signal_clicked().connect(
+ sigc::bind(sigc::mem_fun(*this, &AnchorSelector::btn_activated), i));
+ _container.attach(_buttons[i], i % 3, i % 3+1, i / 3, i / 3+1, Gtk::FILL, Gtk::FILL);
+ }
+ _selection = 4;
+ _buttons[4].set_active();
+
+ this->add(_container);
+}
+
+AnchorSelector::~AnchorSelector()
+{
+ // TODO Auto-generated destructor stub
+}
+
+void AnchorSelector::btn_activated(int index)
+{
+
+ if(_selection == index && _buttons[index].get_active() == false)
+ {
+ _buttons[index].set_active(true);
+ }
+ else if(_selection != index && _buttons[index].get_active())
+ {
+ int old_selection = _selection;
+ _selection = index;
+ _buttons[old_selection].set_active(false);
+ _selectionChanged.emit();
+ }
+}
+
+void AnchorSelector::setAlignment(int horizontal, int vertical)
+{
+ int index = 3 * vertical + horizontal;
+ if(index >= 0 && index < 9)
+ {
+ _buttons[index].set_active(!_buttons[index].get_active());
+ }
+}
+
+} // namespace Widget
+} // namespace UI
+} // namespace Inkscape
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
diff --git a/src/ui/widget/anchor-selector.h b/src/ui/widget/anchor-selector.h
new file mode 100644
index 000000000..2263438e3
--- /dev/null
+++ b/src/ui/widget/anchor-selector.h
@@ -0,0 +1,59 @@
+/*
+ * anchor-selector.h
+ *
+ * Created on: Mar 22, 2012
+ * Author: denis
+ *
+ * Released under GNU GPL. Read the file 'COPYING' for more information.
+ */
+
+#ifndef ANCHOR_SELECTOR_H_
+#define ANCHOR_SELECTOR_H_
+
+#include <gtkmm.h>
+
+namespace Inkscape {
+namespace UI {
+namespace Widget {
+
+class AnchorSelector : public Gtk::Alignment
+{
+private:
+ Gtk::ToggleButton _buttons[9];
+ int _selection;
+ Gtk::Table _container;
+
+ sigc::signal<void> _selectionChanged;
+
+ void setupButton(const Glib::ustring &icon, Gtk::ToggleButton &button);
+ void btn_activated(int index);
+
+public:
+
+ int getHorizontalAlignment() { return _selection % 3; }
+ int getVerticalAlignment() { return _selection / 3; }
+
+ sigc::signal<void> &on_selectionChanged() { return _selectionChanged; }
+
+ void setAlignment(int horizontal, int vertical);
+
+ AnchorSelector();
+ virtual ~AnchorSelector();
+};
+
+} // namespace Widget
+} // namespace UI
+} // namespace Inkscape
+
+#endif /* ANCHOR_SELECTOR_H_ */
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=c++:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
diff --git a/src/ui/widget/filter-effect-chooser.h b/src/ui/widget/filter-effect-chooser.h
index 6f0c2f26e..8d2389b15 100644
--- a/src/ui/widget/filter-effect-chooser.h
+++ b/src/ui/widget/filter-effect-chooser.h
@@ -25,7 +25,6 @@
#include "combo-enums.h"
#include "filter-enums.h"
-#include "spin-slider.h"
#include "spin-scale.h"
namespace Inkscape {
diff --git a/src/ui/widget/imageicon.cpp b/src/ui/widget/imageicon.cpp
index cf41a16a4..22abd04ba 100644
--- a/src/ui/widget/imageicon.cpp
+++ b/src/ui/widget/imageicon.cpp
@@ -369,60 +369,47 @@ isValidImageIconFile(const Glib::ustring &fileName)
return false;
}
+/// \fixme This function is almost an exact duplicate of SVGPreview::set() in ui/dialog/filedialogimpl-gtkmm.cpp.
bool ImageIcon::show(const Glib::ustring &fileName)
{
-
- if (!Glib::file_test(fileName, Glib::FILE_TEST_EXISTS))
+ if (!Glib::file_test(fileName, Glib::FILE_TEST_EXISTS)) {
+ showBrokenImage("File does not exist");
return false;
+ }
- gchar *fName = const_cast<gchar *>(fileName.c_str());
- //g_message("fname:%s\n", fName);
-
-
- if (Glib::file_test(fileName, Glib::FILE_TEST_IS_REGULAR))
- {
+ if (Glib::file_test(fileName, Glib::FILE_TEST_IS_REGULAR)) {
+ gchar *fName = const_cast<gchar *>(fileName.c_str()); // this const-cast seems not necessary, was it put there because of older sys/stat.h version?
struct stat info;
- if (g_file_test (fName, G_FILE_TEST_EXISTS) && stat(fName, &info))
- {
- Glib::ustring err = "cannot get file info";
- showBrokenImage(err);
+ if (stat(fName, &info)) // stat returns 0 upon success
+ {
+ showBrokenImage("Cannot get file info");
return false;
- }
- long fileLen = info.st_size;
- if (fileLen > 0x150000L)
- {
- Glib::ustring err = "File too large";
- showBrokenImage(err);
+ }
+ if (info.st_size > 0x150000L) {
+ showBrokenImage("File too large");
return false;
- }
}
+ }
Glib::ustring svg = ".svg";
Glib::ustring svgz = ".svgz";
- if (hasSuffix(fileName, svg) || hasSuffix(fileName, svgz) )
- {
- if (!showSvgFile(fileName))
- {
+ if (hasSuffix(fileName, svg) || hasSuffix(fileName, svgz)) {
+ if (!showSvgFile(fileName)) {
showBrokenImage(bitmapError);
return false;
- }
- return true;
}
- else if (isValidImageIconFile(fileName))
- {
- if (!showBitmap(fileName))
- {
+ return true;
+ } else if (isValidImageIconFile(fileName)) {
+ if (!showBitmap(fileName)) {
showBrokenImage(bitmapError);
return false;
- }
- return true;
}
- else
- {
+ return true;
+ } else {
showBrokenImage("unsupported file type");
return false;
- }
+ }
}
diff --git a/src/ui/widget/licensor.cpp b/src/ui/widget/licensor.cpp
index c729354cb..42f352e3c 100644
--- a/src/ui/widget/licensor.cpp
+++ b/src/ui/widget/licensor.cpp
@@ -97,7 +97,7 @@ void Licensor::init (Registry& wr)
LicenseItem *i;
wr.setUpdating (true);
- i = manage (new LicenseItem (&_proprietary_license, _eentry, wr, NULL));
+ i = Gtk::manage (new LicenseItem (&_proprietary_license, _eentry, wr, NULL));
Gtk::RadioButtonGroup group = i->get_group();
add (*i);
LicenseItem *pd = i;
@@ -105,17 +105,17 @@ void Licensor::init (Registry& wr)
for (struct rdf_license_t * license = rdf_licenses;
license && license->name;
license++) {
- i = manage (new LicenseItem (license, _eentry, wr, &group));
+ i = Gtk::manage (new LicenseItem (license, _eentry, wr, &group));
add(*i);
}
// add Other at the end before the URI field for the confused ppl.
- LicenseItem *io = manage (new LicenseItem (&_other_license, _eentry, wr, &group));
+ LicenseItem *io = Gtk::manage (new LicenseItem (&_other_license, _eentry, wr, &group));
add (*io);
pd->set_active();
wr.setUpdating (false);
- Gtk::HBox *box = manage (new Gtk::HBox);
+ Gtk::HBox *box = Gtk::manage (new Gtk::HBox);
pack_start (*box, true, true, 0);
box->pack_start (_eentry->_label, false, false, 5);
diff --git a/src/ui/widget/page-sizer.cpp b/src/ui/widget/page-sizer.cpp
index b13567adb..eae0d4a95 100644
--- a/src/ui/widget/page-sizer.cpp
+++ b/src/ui/widget/page-sizer.cpp
@@ -547,36 +547,40 @@ PageSizer::updateFitMarginsUI(Inkscape::XML::Node *nv_repr)
/**
* Returns an iterator pointing to a row in paperSizeListStore which
- * contains a paper of the specified size (specified in px), or
+ * contains a paper of the specified size, or
* paperSizeListStore->children().end() if no such paper exists.
+ *
+ * The code is not tested for the case where w and h have different units.
*/
Gtk::ListStore::iterator
PageSizer::find_paper_size (Inkscape::Util::Quantity w, Inkscape::Util::Quantity h) const
{
- double smaller = w.quantity;
- double larger = h.quantity;
+ using Inkscape::Util::Quantity;
+ using std::swap;
+
+ // The code below assumes that w < h, so make sure that's the case:
if ( h < w ) {
- smaller = h.quantity; larger = w.quantity;
+ swap(h,w);
}
- g_return_val_if_fail(smaller <= larger, _paperSizeListStore->children().end());
+ g_return_val_if_fail(w <= h, _paperSizeListStore->children().end());
std::map<Glib::ustring, PaperSize>::const_iterator iter;
for (iter = _paperSizeTable.begin() ;
iter != _paperSizeTable.end() ; ++iter) {
PaperSize paper = iter->second;
- double smallX = Inkscape::Util::Quantity::convert(paper.smaller, paper.unit, w.unit);
- double largeX = Inkscape::Util::Quantity::convert(paper.larger, paper.unit, w.unit);
+ Quantity smallX (paper.smaller, paper.unit);
+ Quantity largeX (paper.larger, paper.unit);
- g_return_val_if_fail(smallX <= largeX, _paperSizeListStore->children().end());
+ g_return_val_if_fail(smallX.quantity < largeX.quantity + 0.001, _paperSizeListStore->children().end());
- if ((std::abs(smaller - smallX) <= 0.1) &&
- (std::abs(larger - largeX) <= 0.1) ) {
- Gtk::ListStore::iterator p;
+ if ( are_near(w, smallX, 0.1) && are_near(h, largeX, 0.1) ) {
+ Gtk::ListStore::iterator p = _paperSizeListStore->children().begin();
+ Gtk::ListStore::iterator pend = _paperSizeListStore->children().end();
// We need to search paperSizeListStore explicitly for the
// specified paper size because it is sorted in a different
// way than paperSizeTable (which is sorted alphabetically)
- for (p = _paperSizeListStore->children().begin(); p != _paperSizeListStore->children().end(); ++p) {
+ for ( ; p != pend; ++p) {
if ((*p)[_paperSizeListColumns.nameColumn] == paper.name) {
return p;
}
@@ -601,7 +605,7 @@ PageSizer::fire_fit_canvas_to_selection_or_drawing()
SPDocument *doc;
SPNamedView *nv;
Inkscape::XML::Node *nv_repr;
-
+
if ((doc = sp_desktop_document(SP_ACTIVE_DESKTOP))
&& (nv = sp_document_namedview(doc, 0))
&& (nv_repr = nv->getRepr())) {
diff --git a/src/ui/widget/panel.cpp b/src/ui/widget/panel.cpp
index d60eeefe0..b37137228 100644
--- a/src/ui/widget/panel.cpp
+++ b/src/ui/widget/panel.cpp
@@ -115,8 +115,8 @@ void Panel::_init()
Gtk::RadioMenuItem::Group group;
Glib::ustring one_label(_("List"));
Glib::ustring two_label(_("Grid"));
- Gtk::RadioMenuItem *one = manage(new Gtk::RadioMenuItem(group, one_label));
- Gtk::RadioMenuItem *two = manage(new Gtk::RadioMenuItem(group, two_label));
+ Gtk::RadioMenuItem *one = Gtk::manage(new Gtk::RadioMenuItem(group, one_label));
+ Gtk::RadioMenuItem *two = Gtk::manage(new Gtk::RadioMenuItem(group, two_label));
if (panel_mode == 0) {
one->set_active(true);
@@ -128,7 +128,7 @@ void Panel::_init()
_non_horizontal.push_back(one);
_menu->append(*two);
_non_horizontal.push_back(two);
- Gtk::MenuItem* sep = manage(new Gtk::SeparatorMenuItem());
+ Gtk::MenuItem* sep = Gtk::manage(new Gtk::SeparatorMenuItem());
_menu->append(*sep);
_non_horizontal.push_back(sep);
one->signal_activate().connect(sigc::bind<int, int>(sigc::mem_fun(*this, &Panel::_bounceCall), PANEL_SETTING_MODE, 0));
@@ -147,14 +147,14 @@ void Panel::_init()
NC_("Swatches height", "Huge")
};
- Gtk::MenuItem *sizeItem = manage(new Gtk::MenuItem(heightItemLabel));
- Gtk::Menu *sizeMenu = manage(new Gtk::Menu());
+ Gtk::MenuItem *sizeItem = Gtk::manage(new Gtk::MenuItem(heightItemLabel));
+ Gtk::Menu *sizeMenu = Gtk::manage(new Gtk::Menu());
sizeItem->set_submenu(*sizeMenu);
Gtk::RadioMenuItem::Group heightGroup;
for (unsigned int i = 0; i < G_N_ELEMENTS(heightLabels); i++) {
Glib::ustring _label(g_dpgettext2(NULL, "Swatches height", heightLabels[i]));
- Gtk::RadioMenuItem* _item = manage(new Gtk::RadioMenuItem(heightGroup, _label));
+ Gtk::RadioMenuItem* _item = Gtk::manage(new Gtk::RadioMenuItem(heightGroup, _label));
sizeMenu->append(*_item);
if (i == panel_size) {
_item->set_active(true);
@@ -177,8 +177,8 @@ void Panel::_init()
NC_("Swatches width", "Wider")
};
- Gtk::MenuItem *item = manage( new Gtk::MenuItem(widthItemLabel));
- Gtk::Menu *type_menu = manage(new Gtk::Menu());
+ Gtk::MenuItem *item = Gtk::manage( new Gtk::MenuItem(widthItemLabel));
+ Gtk::Menu *type_menu = Gtk::manage(new Gtk::Menu());
item->set_submenu(*type_menu);
_menu->append(*item);
@@ -194,7 +194,7 @@ void Panel::_init()
}
for ( guint i = 0; i < G_N_ELEMENTS(widthLabels); ++i ) {
Glib::ustring _label(g_dpgettext2(NULL, "Swatches width", widthLabels[i]));
- Gtk::RadioMenuItem *_item = manage(new Gtk::RadioMenuItem(widthGroup, _label));
+ Gtk::RadioMenuItem *_item = Gtk::manage(new Gtk::RadioMenuItem(widthGroup, _label));
type_menu->append(*_item);
if ( i <= hot_index ) {
_item->set_active(true);
@@ -213,8 +213,8 @@ void Panel::_init()
NC_("Swatches border", "Wide"),
};
- Gtk::MenuItem *item = manage( new Gtk::MenuItem(widthItemLabel));
- Gtk::Menu *type_menu = manage(new Gtk::Menu());
+ Gtk::MenuItem *item = Gtk::manage( new Gtk::MenuItem(widthItemLabel));
+ Gtk::Menu *type_menu = Gtk::manage(new Gtk::Menu());
item->set_submenu(*type_menu);
_menu->append(*item);
@@ -230,7 +230,7 @@ void Panel::_init()
}
for ( guint i = 0; i < G_N_ELEMENTS(widthLabels); ++i ) {
Glib::ustring _label(g_dpgettext2(NULL, "Swatches border", widthLabels[i]));
- Gtk::RadioMenuItem *_item = manage(new Gtk::RadioMenuItem(widthGroup, _label));
+ Gtk::RadioMenuItem *_item = Gtk::manage(new Gtk::RadioMenuItem(widthGroup, _label));
type_menu->append(*_item);
if ( i <= hot_index ) {
_item->set_active(true);
@@ -242,7 +242,7 @@ void Panel::_init()
{
//TRANSLATORS: "Wrap" indicates how colour swatches are displayed
Glib::ustring wrap_label(C_("Swatches","Wrap"));
- Gtk::CheckMenuItem *check = manage(new Gtk::CheckMenuItem(wrap_label));
+ Gtk::CheckMenuItem *check = Gtk::manage(new Gtk::CheckMenuItem(wrap_label));
check->set_active(panel_wrap);
_menu->append(*check);
_non_vertical.push_back(check);
@@ -251,7 +251,7 @@ void Panel::_init()
}
Gtk::SeparatorMenuItem *sep;
- sep = manage(new Gtk::SeparatorMenuItem());
+ sep = Gtk::manage(new Gtk::SeparatorMenuItem());
_menu->append(*sep);
_menu->show_all_children();
@@ -284,7 +284,7 @@ void Panel::_init()
pack_start(_top_bar, false, false);
- Gtk::HBox* boxy = manage(new Gtk::HBox());
+ Gtk::HBox* boxy = Gtk::manage(new Gtk::HBox());
boxy->pack_start(_contents, true, true);
boxy->pack_start(_right_bar, false, true);
diff --git a/src/ui/widget/registered-widget.cpp b/src/ui/widget/registered-widget.cpp
index ae6a7d1e0..92cb3f03d 100644
--- a/src/ui/widget/registered-widget.cpp
+++ b/src/ui/widget/registered-widget.cpp
@@ -49,8 +49,10 @@ RegisteredCheckButton::~RegisteredCheckButton()
_toggled_connection.disconnect();
}
-RegisteredCheckButton::RegisteredCheckButton (const Glib::ustring& label, const Glib::ustring& tip, const Glib::ustring& key, Registry& wr, bool right, Inkscape::XML::Node* repr_in, SPDocument *doc_in)
+RegisteredCheckButton::RegisteredCheckButton (const Glib::ustring& label, const Glib::ustring& tip, const Glib::ustring& key, Registry& wr, bool right, Inkscape::XML::Node* repr_in, SPDocument *doc_in, char const *active_str, char const *inactive_str)
: RegisteredWidget<Gtk::CheckButton>()
+ , _active_str(active_str)
+ , _inactive_str(inactive_str)
{
init_parent(key, wr, repr_in, doc_in);
@@ -88,7 +90,7 @@ RegisteredCheckButton::on_toggled()
return;
_wr->setUpdating (true);
- write_to_xml(get_active() ? "true" : "false");
+ write_to_xml(get_active() ? _active_str : _inactive_str);
//The slave button is greyed out if the master button is unchecked
for (std::list<Gtk::Widget*>::const_iterator i = _slavewidgets.begin(); i != _slavewidgets.end(); ++i) {
(*i)->set_sensitive(get_active());
@@ -427,11 +429,11 @@ RegisteredRadioButtonPair::RegisteredRadioButtonPair (const Glib::ustring& label
setProgrammatically = false;
- add (*manage (new Gtk::Label (label)));
- _rb1 = manage (new Gtk::RadioButton (label1, true));
+ add(*Gtk::manage(new Gtk::Label(label)));
+ _rb1 = Gtk::manage(new Gtk::RadioButton(label1, true));
add (*_rb1);
Gtk::RadioButtonGroup group = _rb1->get_group();
- _rb2 = manage (new Gtk::RadioButton (group, label2, true));
+ _rb2 = Gtk::manage(new Gtk::RadioButton(group, label2, true));
add (*_rb2);
_rb2->set_active();
_rb1->set_tooltip_text(tip1);
diff --git a/src/ui/widget/registered-widget.h b/src/ui/widget/registered-widget.h
index 883a9e1a2..d64c09c16 100644
--- a/src/ui/widget/registered-widget.h
+++ b/src/ui/widget/registered-widget.h
@@ -55,6 +55,11 @@ public:
event_description = _event_description;
write_undo = true;
}
+ void set_xml_target(Inkscape::XML::Node *xml_node, SPDocument *document)
+ {
+ repr = xml_node;
+ doc = document;
+ }
bool is_updating() {if (_wr) return _wr->isUpdating(); else return false;}
@@ -136,7 +141,7 @@ private:
class RegisteredCheckButton : public RegisteredWidget<Gtk::CheckButton> {
public:
virtual ~RegisteredCheckButton();
- RegisteredCheckButton (const Glib::ustring& label, const Glib::ustring& tip, const Glib::ustring& key, Registry& wr, bool right=true, Inkscape::XML::Node* repr_in=NULL, SPDocument *doc_in=NULL);
+ RegisteredCheckButton (const Glib::ustring& label, const Glib::ustring& tip, const Glib::ustring& key, Registry& wr, bool right=true, Inkscape::XML::Node* repr_in=NULL, SPDocument *doc_in=NULL, char const *active_str = "true", char const *inactive_str = "false");
void setActive (bool);
@@ -153,6 +158,7 @@ public:
// if a callback checks it, it must reset it back to false
protected:
+ char const *_active_str, *_inactive_str;
sigc::connection _toggled_connection;
void on_toggled();
};
diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp
index d29554c41..042a6614e 100644
--- a/src/ui/widget/selected-style.cpp
+++ b/src/ui/widget/selected-style.cpp
@@ -1267,6 +1267,11 @@ RotateableSwatch::color_adjust(float *hsla, double by, guint32 cc, guint modifie
} else if (modifier == 3) { // alpha
double old = hsla[3];
hsla[3] += by/2;
+ if (hsla[3] < 0) {
+ hsla[3] = 0;
+ } else if (hsla[3] > 1) {
+ hsla[3] = 1;
+ }
diff = hsla[3] - old;
} else { // hue
double old = hsla[0];
diff --git a/src/ui/widget/style-swatch.h b/src/ui/widget/style-swatch.h
index 6da58a2dd..23ecbdfda 100644
--- a/src/ui/widget/style-swatch.h
+++ b/src/ui/widget/style-swatch.h
@@ -27,7 +27,6 @@
#include <gtkmm/enums.h>
#include "desktop.h"
-#include "button.h"
#include "preferences.h"
struct SPStyle;
diff --git a/src/ui/widget/tolerance-slider.cpp b/src/ui/widget/tolerance-slider.cpp
index d166e3831..5fc588fdc 100644
--- a/src/ui/widget/tolerance-slider.cpp
+++ b/src/ui/widget/tolerance-slider.cpp
@@ -71,19 +71,19 @@ void ToleranceSlider::init (const Glib::ustring& label1, const Glib::ustring& la
// hbox
_vbox = new Gtk::VBox;
- _hbox = manage (new Gtk::HBox);
+ _hbox = Gtk::manage(new Gtk::HBox);
- Gtk::Label *theLabel1 = manage (new Gtk::Label (label1));
+ Gtk::Label *theLabel1 = Gtk::manage(new Gtk::Label(label1));
theLabel1->set_use_underline();
theLabel1->set_alignment(0, 0.5);
// align the label with the checkbox text above by indenting 22 px.
_hbox->pack_start(*theLabel1, Gtk::PACK_EXPAND_WIDGET, 22);
#if WITH_GTKMM_3_0
- _hscale = manage(new Gtk::Scale(Gtk::ORIENTATION_HORIZONTAL));
+ _hscale = Gtk::manage(new Gtk::Scale(Gtk::ORIENTATION_HORIZONTAL));
_hscale->set_range(1.0, 51.0);
#else
- _hscale = manage (new Gtk::HScale (1.0, 51, 1.0));
+ _hscale = Gtk::manage (new Gtk::HScale (1.0, 51, 1.0));
#endif
theLabel1->set_mnemonic_widget (*_hscale);
@@ -96,13 +96,13 @@ void ToleranceSlider::init (const Glib::ustring& label1, const Glib::ustring& la
_hbox->add (*_hscale);
- Gtk::Label *theLabel2 = manage (new Gtk::Label (label2));
+ Gtk::Label *theLabel2 = Gtk::manage(new Gtk::Label(label2));
theLabel2->set_use_underline();
- Gtk::Label *theLabel3 = manage (new Gtk::Label (label3));
+ Gtk::Label *theLabel3 = Gtk::manage(new Gtk::Label(label3));
theLabel3->set_use_underline();
- _button1 = manage (new Gtk::RadioButton);
+ _button1 = Gtk::manage(new Gtk::RadioButton);
_radio_button_group = _button1->get_group();
- _button2 = manage (new Gtk::RadioButton);
+ _button2 = Gtk::manage(new Gtk::RadioButton);
_button2->set_group(_radio_button_group);
_button1->set_tooltip_text (tip2);
_button2->set_tooltip_text (tip3);