summaryrefslogtreecommitdiffstats
path: root/src/ui/widget
diff options
context:
space:
mode:
authorDenis Declara <declara91@gmail.com>2012-04-26 11:14:34 +0000
committerDenis Declara <declara91@gmail.com>2012-04-26 11:14:34 +0000
commit95a8ad7bfec98f7cede15c4e8856ce547aaf4aa4 (patch)
tree506de5a8437cb39917a66d74b68d78692d10a993 /src/ui/widget
parentAdded first support for elliptical arrangements (diff)
parentpowerstroke: cautious fix. (diff)
downloadinkscape-95a8ad7bfec98f7cede15c4e8856ce547aaf4aa4.tar.gz
inkscape-95a8ad7bfec98f7cede15c4e8856ce547aaf4aa4.zip
Trunk merge
(bzr r11073.1.20)
Diffstat (limited to 'src/ui/widget')
-rw-r--r--src/ui/widget/Makefile_insert2
-rw-r--r--src/ui/widget/frame.cpp83
-rw-r--r--src/ui/widget/frame.h79
-rw-r--r--src/ui/widget/selected-style.cpp2
-rw-r--r--src/ui/widget/toolbox.cpp11
5 files changed, 173 insertions, 4 deletions
diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert
index 718d95979..f36ffbf56 100644
--- a/src/ui/widget/Makefile_insert
+++ b/src/ui/widget/Makefile_insert
@@ -21,6 +21,8 @@ ink_common_sources += \
ui/widget/entry.h \
ui/widget/filter-effect-chooser.h \
ui/widget/filter-effect-chooser.cpp \
+ ui/widget/frame.cpp \
+ ui/widget/frame.h \
ui/widget/handlebox.cpp \
ui/widget/handlebox.h \
ui/widget/icon-widget.cpp \
diff --git a/src/ui/widget/frame.cpp b/src/ui/widget/frame.cpp
new file mode 100644
index 000000000..b2968f806
--- /dev/null
+++ b/src/ui/widget/frame.cpp
@@ -0,0 +1,83 @@
+/*
+ * Authors:
+ * Murray C
+ *
+ * Copyright (C) 2012 Authors
+ *
+ * Released under GNU GPL. Read the file 'COPYING' for more information.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "frame.h"
+
+
+// Inkscape::UI::Widget::Frame
+
+namespace Inkscape {
+namespace UI {
+namespace Widget {
+
+Frame::Frame(Glib::ustring const &label_text /*= ""*/, gboolean label_bold /*= TRUE*/ )
+ : _label(label_text, 1.0, 0.5, TRUE),
+ _alignment()
+{
+ set_shadow_type(Gtk::SHADOW_NONE);
+
+ //Put an indented GtkAlignment inside the frame.
+ //Further children should be children of this GtkAlignment:
+ Gtk::Frame::add(_alignment);
+ set_padding(4, 0, 8, 0);
+
+ set_label_widget(_label);
+ set_label(label_text, label_bold);
+
+ show_all_children();
+}
+
+void
+Frame::add(Widget& widget)
+{
+ _alignment.add(widget);
+}
+
+void
+Frame::set_label(const Glib::ustring &label_text, gboolean label_bold /*= TRUE*/)
+{
+ if (label_bold) {
+ _label.set_markup(Glib::ustring("<b>") + label_text + "</b>");
+ } else {
+ _label.set_text(label_text);
+ }
+}
+
+void
+Frame::set_padding (guint padding_top, guint padding_bottom, guint padding_left, guint padding_right)
+{
+#if WITH_GTKMM_2_24
+ _alignment.set_padding(padding_top, padding_bottom, padding_left, padding_right);
+#endif
+}
+
+Gtk::Label const *
+Frame::get_label_widget() const
+{
+ return &_label;
+}
+
+} // namespace Widget
+} // namespace UI
+} // namespace Inkscape
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/ui/widget/frame.h b/src/ui/widget/frame.h
new file mode 100644
index 000000000..cf736d8a1
--- /dev/null
+++ b/src/ui/widget/frame.h
@@ -0,0 +1,79 @@
+/*
+ * Authors:
+ * Murray C
+ *
+ * Copyright (C) 2012 Authors
+ *
+ * Released under GNU GPL. Read the file 'COPYING' for more information.
+ */
+
+#ifndef INKSCAPE_UI_WIDGET_FRAME_H
+#define INKSCAPE_UI_WIDGET_FRAME_H
+
+#include <gtkmm.h>
+
+namespace Gtk {
+class Frame;
+}
+
+namespace Inkscape {
+namespace UI {
+namespace Widget {
+
+/**
+ * Creates a Gnome HIG style indented frame with bold label
+ * See http://developer.gnome.org/hig-book/stable/controls-frames.html.en
+ */
+class Frame : public Gtk::Frame
+{
+public:
+
+ /**
+ * Construct a Frame Widget.
+ *
+ * @param label The frame text.
+ */
+ Frame(Glib::ustring const &label = "", gboolean label_bold = TRUE);
+
+ /**
+ * Return the label widget
+ */
+ Gtk::Label const *get_label_widget() const;
+
+ /**
+ * Add a widget to this frame
+ */
+ virtual void add(Widget& widget);
+
+ /**
+ * Set the frame label text and if bold or not
+ */
+ void set_label(const Glib::ustring &label, gboolean label_bold = TRUE);
+
+ /**
+ * Set the frame padding
+ */
+ void set_padding (guint padding_top, guint padding_bottom, guint padding_left, guint padding_right);
+
+protected:
+ Gtk::Label _label;
+ Gtk::Alignment _alignment;
+
+};
+
+} // namespace Widget
+} // namespace UI
+} // namespace Inkscape
+
+#endif // INKSCAPE_UI_WIDGET_FRAME_H
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp
index c81385dd7..d26005317 100644
--- a/src/ui/widget/selected-style.cpp
+++ b/src/ui/widget/selected-style.cpp
@@ -1157,7 +1157,7 @@ void SelectedStyle::on_opacity_changed () {
_("Change opacity"));
// resume interruptibility
sp_desktop_canvas(_desktop)->endForcedFullRedraws();
- spinbutton_defocus(GTK_OBJECT(_opacity_sb.gobj()));
+ spinbutton_defocus(GTK_WIDGET(_opacity_sb.gobj()));
_opacity_blocked = false;
}
diff --git a/src/ui/widget/toolbox.cpp b/src/ui/widget/toolbox.cpp
index 99891fc44..a11bd2d74 100644
--- a/src/ui/widget/toolbox.cpp
+++ b/src/ui/widget/toolbox.cpp
@@ -12,6 +12,7 @@
#endif
#include <gtkmm/radioaction.h>
+#include <gtkmm/orientable.h>
#include <gtk/gtk.h>
#include "ui/widget/toolbox.h"
#include "path-prefix.h"
@@ -97,7 +98,9 @@ Toolbox::init_actions()
void
Toolbox::init_orientation(Gtk::Orientation const &orientation)
{
- static_cast<Gtk::Toolbar*>(_widget)->set_orientation(orientation);
+ gtk_orientable_set_orientation(GTK_ORIENTABLE(static_cast<Gtk::Toolbar*>(_widget)->gobj()),
+ GtkOrientation(orientation));
+
if (orientation == Gtk::ORIENTATION_VERTICAL) {
set_handle_position(Gtk::POS_TOP);
}
@@ -226,7 +229,8 @@ Toolbox::on_change_orient_horiz()
{
Glib::RefPtr<Gtk::RadioAction> action = Glib::RefPtr<Gtk::RadioAction>::cast_static(_detach_grp->get_action("OrientHoriz"));
if (action->get_active()) {
- static_cast<Gtk::Toolbar*>(_widget)->set_orientation(Gtk::ORIENTATION_HORIZONTAL);
+ gtk_orientable_set_orientation(GTK_ORIENTABLE(static_cast<Gtk::Toolbar*>(_widget)->gobj()),
+ GTK_ORIENTATION_HORIZONTAL);
}
}
@@ -235,7 +239,8 @@ Toolbox::on_change_orient_vert()
{
Glib::RefPtr<Gtk::RadioAction> action = Glib::RefPtr<Gtk::RadioAction>::cast_static(_detach_grp->get_action("OrientVert"));
if (action->get_active()) {
- static_cast<Gtk::Toolbar*>(_widget)->set_orientation(Gtk::ORIENTATION_VERTICAL);
+ gtk_orientable_set_orientation(GTK_ORIENTABLE(static_cast<Gtk::Toolbar*>(_widget)->gobj()),
+ GTK_ORIENTATION_VERTICAL);
}
}