summaryrefslogtreecommitdiffstats
path: root/src/ui
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2013-01-06 19:53:50 +0000
committerJabiertxo Arraiza Cenoz <jtx@jtx.marker.es>2013-01-06 19:53:50 +0000
commit38cba87ca97f83927c94519eda2c326c8bde16cd (patch)
tree0390c36513eaf3ab61ff9b182000e63bfc592ffe /src/ui
parentFixed StartAnchor continue errors with bspline (diff)
parentvisual bbox minimum width (Bug 1094802) (diff)
downloadinkscape-38cba87ca97f83927c94519eda2c326c8bde16cd.tar.gz
inkscape-38cba87ca97f83927c94519eda2c326c8bde16cd.zip
Update to trunk
(bzr r11950.1.14)
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/dialog/debug.cpp2
-rw-r--r--src/ui/dialog/document-properties.cpp2
-rw-r--r--src/ui/dialog/filedialogimpl-gtkmm.cpp16
-rw-r--r--src/ui/dialog/filter-effects-dialog.cpp64
-rw-r--r--src/ui/dialog/filter-effects-dialog.h22
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp1
-rw-r--r--src/ui/dialog/ocaldialogs.cpp49
-rw-r--r--src/ui/dialog/ocaldialogs.h13
-rw-r--r--src/ui/dialog/tile.cpp8
-rw-r--r--src/ui/widget/color-preview.cpp90
-rw-r--r--src/ui/widget/color-preview.h19
-rw-r--r--src/ui/widget/imageicon.cpp6
-rw-r--r--src/ui/widget/object-composite-settings.cpp4
-rw-r--r--src/ui/widget/preferences-widget.cpp34
-rw-r--r--src/ui/widget/preferences-widget.h7
15 files changed, 242 insertions, 95 deletions
diff --git a/src/ui/dialog/debug.cpp b/src/ui/dialog/debug.cpp
index da38e2dde..429ed57bf 100644
--- a/src/ui/dialog/debug.cpp
+++ b/src/ui/dialog/debug.cpp
@@ -126,7 +126,7 @@ void DebugDialogImpl::show()
{
//call super()
Gtk::Dialog::show();
- //sp_transientize((GtkWidget *)gobj()); //Make transient
+ //sp_transientize(GTK_WIDGET(gobj())); //Make transient
raise();
Gtk::Dialog::present();
}
diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp
index ab1e8fbd8..460e223a3 100644
--- a/src/ui/dialog/document-properties.cpp
+++ b/src/ui/dialog/document-properties.cpp
@@ -103,7 +103,7 @@ DocumentProperties::DocumentProperties()
_rcb_canb(_("Show page _border"), _("If set, rectangular page border is shown"), "showborder", _wr, false),
_rcb_bord(_("Border on _top of drawing"), _("If set, border is always on top of the drawing"), "borderlayer", _wr, false),
_rcb_shad(_("_Show border shadow"), _("If set, page border shows a shadow on its right and lower side"), "inkscape:showpageshadow", _wr, false),
- _rcp_bg(_("Back_ground color:"), _("Background color"), _("Color and transparency of the page background (also used for bitmap export)"), "pagecolor", "inkscape:pageopacity", _wr),
+ _rcp_bg(_("Back_ground color:"), _("Background color"), _("Color of the page background. Note: transparency setting ignored while editing but used when exporting to bitmap."), "pagecolor", "inkscape:pageopacity", _wr),
_rcp_bord(_("Border _color:"), _("Page border color"), _("Color of the page border"), "bordercolor", "borderopacity", _wr),
_rum_deflt(_("Default _units:"), "inkscape:document-units", _wr),
_page_sizer(_wr),
diff --git a/src/ui/dialog/filedialogimpl-gtkmm.cpp b/src/ui/dialog/filedialogimpl-gtkmm.cpp
index 553acac84..75f80ed4a 100644
--- a/src/ui/dialog/filedialogimpl-gtkmm.cpp
+++ b/src/ui/dialog/filedialogimpl-gtkmm.cpp
@@ -100,9 +100,9 @@ findEntryWidgets(Gtk::Container *parent,
Gtk::Widget *child = children[i];
GtkWidget *wid = child->gobj();
if (GTK_IS_ENTRY(wid))
- result.push_back((Gtk::Entry *)child);
+ result.push_back(dynamic_cast<Gtk::Entry *>(child));
else if (GTK_IS_CONTAINER(wid))
- findEntryWidgets((Gtk::Container *)child, result);
+ findEntryWidgets(dynamic_cast<Gtk::Container *>(child), result);
}
}
@@ -119,9 +119,9 @@ findExpanderWidgets(Gtk::Container *parent,
Gtk::Widget *child = children[i];
GtkWidget *wid = child->gobj();
if (GTK_IS_EXPANDER(wid))
- result.push_back((Gtk::Expander *)child);
+ result.push_back(dynamic_cast<Gtk::Expander *>(child));
else if (GTK_IS_CONTAINER(wid))
- findExpanderWidgets((Gtk::Container *)child, result);
+ findExpanderWidgets(dynamic_cast<Gtk::Container *>(child), result);
}
}
@@ -522,7 +522,7 @@ bool SVGPreview::set(Glib::ustring &fileName, int dialogType)
if (Glib::file_test(fileName, Glib::FILE_TEST_IS_REGULAR))
{
Glib::ustring fileNameUtf8 = Glib::filename_to_utf8(fileName);
- gchar *fName = (gchar *)fileNameUtf8.c_str();
+ gchar *fName = const_cast<gchar *>(fileNameUtf8.c_str());
struct stat info;
if (g_stat(fName, &info))
{
@@ -898,7 +898,7 @@ bool
FileOpenDialogImplGtk::show()
{
set_modal (TRUE); //Window
- sp_transientize((GtkWidget *)gobj()); //Make transient
+ sp_transientize(GTK_WIDGET(gobj())); //Make transient
gint b = run(); //Dialog
svgPreview.showNoPreview();
hide();
@@ -1241,7 +1241,7 @@ FileSaveDialogImplGtk::show()
{
change_path(myFilename);
set_modal (TRUE); //Window
- sp_transientize((GtkWidget *)gobj()); //Make transient
+ sp_transientize(GTK_WIDGET(gobj())); //Make transient
gint b = run(); //Dialog
svgPreview.showNoPreview();
set_preview_widget_active(false);
@@ -1688,7 +1688,7 @@ FileExportDialogImpl::show()
s = getcwd (NULL, 0);
set_current_folder(Glib::filename_from_utf8(s)); //hack to force initial dir listing
set_modal (TRUE); //Window
- sp_transientize((GtkWidget *)gobj()); //Make transient
+ sp_transientize(GTK_WIDGET(gobj())); //Make transient
gint b = run(); //Dialog
svgPreview.showNoPreview();
hide();
diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp
index 6769a25ef..7574b9266 100644
--- a/src/ui/dialog/filter-effects-dialog.cpp
+++ b/src/ui/dialog/filter-effects-dialog.cpp
@@ -1454,6 +1454,41 @@ Glib::PropertyProxy<void*> FilterEffectsDialog::CellRendererConnection::property
return _primitive.get_proxy();
}
+#if WITH_GTKMM_3_0
+void FilterEffectsDialog::CellRendererConnection::get_preferred_width_vfunc(Gtk::Widget& widget,
+ int& minimum_width,
+ int& natural_width) const
+{
+ PrimitiveList& primlist = dynamic_cast<PrimitiveList&>(widget);
+ minimum_width = natural_width = size * primlist.primitive_count() + primlist.get_input_type_width() * 6;
+}
+
+void FilterEffectsDialog::CellRendererConnection::get_preferred_width_for_height_vfunc(Gtk::Widget& widget,
+ int /* height */,
+ int& minimum_width,
+ int& natural_width) const
+{
+ get_preferred_width(widget, minimum_width, natural_width);
+}
+
+void FilterEffectsDialog::CellRendererConnection::get_preferred_height_vfunc(Gtk::Widget& widget,
+ int& minimum_height,
+ int& natural_height) const
+{
+ // Scale the height depending on the number of inputs, unless it's
+ // the first primitive, in which case there are no connections
+ SPFilterPrimitive* prim = SP_FILTER_PRIMITIVE(_primitive.get_value());
+ minimum_height = natural_height = size * input_count(prim);
+}
+
+void FilterEffectsDialog::CellRendererConnection::get_preferred_height_for_width_vfunc(Gtk::Widget& widget,
+ int /* width */,
+ int& minimum_height,
+ int& natural_height) const
+{
+ get_preferred_height(widget, minimum_height, natural_height);
+}
+#else
void FilterEffectsDialog::CellRendererConnection::get_size_vfunc(
Gtk::Widget& widget, const Gdk::Rectangle* /*cell_area*/,
int* x_offset, int* y_offset, int* width, int* height) const
@@ -1473,6 +1508,7 @@ void FilterEffectsDialog::CellRendererConnection::get_size_vfunc(
(*height) = size * input_count(prim);
}
}
+#endif
/*** PrimitiveList ***/
FilterEffectsDialog::PrimitiveList::PrimitiveList(FilterEffectsDialog& d)
@@ -1481,8 +1517,8 @@ FilterEffectsDialog::PrimitiveList::PrimitiveList(FilterEffectsDialog& d)
_observer(new Inkscape::XML::SignalObserver)
{
#if WITH_GTKMM_3_0
- d.signal_draw().connect(sigc::mem_fun(*this, &PrimitiveList::on_draw));
- signal_draw().connect(sigc::mem_fun(*this, &PrimitiveList::on_draw));
+ d.signal_draw().connect(sigc::mem_fun(*this, &PrimitiveList::on_draw_signal));
+ signal_draw().connect(sigc::mem_fun(*this, &PrimitiveList::on_draw_signal));
#else
d.signal_expose_event().connect(sigc::mem_fun(*this, &PrimitiveList::on_expose_signal));
signal_expose_event().connect(sigc::mem_fun(*this, &PrimitiveList::on_expose_signal));
@@ -1496,6 +1532,7 @@ FilterEffectsDialog::PrimitiveList::PrimitiveList(FilterEffectsDialog& d)
set_model(_model);
append_column(_("_Effect"), _columns.type);
+ set_headers_visible();
_observer->signal_changed().connect(signal_primitive_changed().make_slot());
get_selection()->signal_changed().connect(sigc::mem_fun(*this, &PrimitiveList::on_primitive_selection_changed));
@@ -1648,19 +1685,32 @@ void FilterEffectsDialog::PrimitiveList::remove_selected()
}
#if !WITH_GTKMM_3_0
-bool FilterEffectsDialog::PrimitiveList::on_expose_signal(GdkEventExpose* /*e*/)
+bool FilterEffectsDialog::PrimitiveList::on_expose_signal(GdkEventExpose *e)
{
- Glib::RefPtr<Gdk::Window> win = get_bin_window();
- Cairo::RefPtr<Cairo::Context> cr = win->create_cairo_context();
- return on_draw(cr);
+ bool result = false;
+
+ if (get_is_drawable())
+ {
+ Cairo::RefPtr<Cairo::Context> cr = get_bin_window()->create_cairo_context();
+ result = on_draw_signal(cr);
+ }
+
+ return result;
}
#endif
-bool FilterEffectsDialog::PrimitiveList::on_draw(const Cairo::RefPtr<Cairo::Context> &cr)
+bool FilterEffectsDialog::PrimitiveList::on_draw_signal(const Cairo::RefPtr<Cairo::Context> & cr)
{
cr->set_line_width(1.0);
#if GTK_CHECK_VERSION(3,0,0)
+ // In GTK+ 3, the draw function receives the widget window, not the
+ // bin_window (i.e., just the area under the column headers). We
+ // therefore translate the origin of our coordinate system to account for this
+ int x_origin, y_origin;
+ convert_bin_window_to_widget_coords(0,0,x_origin,y_origin);
+ cr->translate(x_origin, y_origin);
+
GtkStyleContext *sc = gtk_widget_get_style_context(GTK_WIDGET(gobj()));
GdkRGBA bg_color, fg_color;
gtk_style_context_get_background_color(sc, GTK_STATE_FLAG_NORMAL, &bg_color);
diff --git a/src/ui/dialog/filter-effects-dialog.h b/src/ui/dialog/filter-effects-dialog.h
index 1652a314f..355a8b1b2 100644
--- a/src/ui/dialog/filter-effects-dialog.h
+++ b/src/ui/dialog/filter-effects-dialog.h
@@ -151,8 +151,28 @@ private:
static const int size = 24;
protected:
+#if WITH_GTKMM_3_0
+ virtual void get_preferred_width_vfunc(Gtk::Widget& widget,
+ int& minimum_width,
+ int& natural_width) const;
+
+ virtual void get_preferred_width_for_height_vfunc(Gtk::Widget& widget,
+ int height,
+ int& minimum_width,
+ int& natural_width) const;
+
+ virtual void get_preferred_height_vfunc(Gtk::Widget& widget,
+ int& minimum_height,
+ int& natural_height) const;
+
+ virtual void get_preferred_height_for_width_vfunc(Gtk::Widget& widget,
+ int width,
+ int& minimum_height,
+ int& natural_height) const;
+#else
virtual void get_size_vfunc(Gtk::Widget& widget, const Gdk::Rectangle* cell_area,
int* x_offset, int* y_offset, int* width, int* height) const;
+#endif
private:
// void* should be SPFilterPrimitive*, some weirdness with properties prevents this
Glib::Property<void*> _primitive;
@@ -177,7 +197,7 @@ private:
int get_input_type_width() const;
protected:
- bool on_draw(const Cairo::RefPtr<Cairo::Context> &cr);
+ bool on_draw_signal(const Cairo::RefPtr<Cairo::Context> &cr);
#if !WITH_GTKMM_3_0
bool on_expose_signal(GdkEventExpose*);
diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp
index 20e5d3ca6..6e6473c5a 100644
--- a/src/ui/dialog/inkscape-preferences.cpp
+++ b/src/ui/dialog/inkscape-preferences.cpp
@@ -320,6 +320,7 @@ void InkscapePreferences::initPageTools()
AddSelcueCheckbox(_page_selector, "/tools/select", false);
+ AddGradientCheckbox(_page_selector, "/tools/select", false);
_page_selector.add_group_header( _("When transforming, show"));
_t_sel_trans_obj.init ( _("Objects"), "/tools/select/show", "content", true, 0);
_page_selector.add_line( true, "", _t_sel_trans_obj, "",
diff --git a/src/ui/dialog/ocaldialogs.cpp b/src/ui/dialog/ocaldialogs.cpp
index 8f5f2ed22..75c766566 100644
--- a/src/ui/dialog/ocaldialogs.cpp
+++ b/src/ui/dialog/ocaldialogs.cpp
@@ -139,7 +139,7 @@ bool
ExportDialog::show()
{
set_modal (TRUE); //Window
- sp_transientize((GtkWidget *)gobj()); //Make transient
+ sp_transientize(GTK_WIDGET(gobj())); //Make transient
gint b = run(); //Dialog
hide();
@@ -244,7 +244,7 @@ bool
ExportPasswordDialog::show()
{
set_modal (TRUE); //Window
- sp_transientize((GtkWidget *)gobj()); //Make transient
+ sp_transientize(GTK_WIDGET(gobj())); //Make transient
gint b = run(); //Dialog
hide();
@@ -561,6 +561,7 @@ void StatusWidget::end_process()
clear();
}
+#if !GTK_CHECK_VERSION(3,6,0)
SearchEntry::SearchEntry() : Gtk::Entry()
{
signal_changed().connect(sigc::mem_fun(*this, &SearchEntry::_on_changed));
@@ -589,6 +590,8 @@ void SearchEntry::_on_changed()
set_icon_from_stock(Gtk::Stock::CLEAR, Gtk::ENTRY_ICON_SECONDARY);
}
}
+#endif
+
BaseBox::BaseBox() : Gtk::EventBox()
{
@@ -957,40 +960,40 @@ void SearchResultList::populate_from_xml(xmlNode * a_node)
for (xmlNode *cur_node = a_node; cur_node; cur_node = cur_node->next) {
// Get items information
- if (strcmp((const char*)cur_node->name, "rss")) // Avoid the root
+ if (strcmp(reinterpret_cast<const char*>(cur_node->name), "rss")) // Avoid the root
if (cur_node->type == XML_ELEMENT_NODE &&
- (cur_node->parent->name && !strcmp((const char*)cur_node->parent->name, "item")))
+ (cur_node->parent->name && !strcmp(reinterpret_cast<const char*>(cur_node->parent->name), "item")))
{
- if (!strcmp((const char*)cur_node->name, "title"))
+ if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "title"))
{
row_num = append("");
xmlChar *xml_title = xmlNodeGetContent(cur_node);
- char* title = (char*) xml_title;
+ char* title = reinterpret_cast<char*>(xml_title);
set_text(row_num, RESULTS_COLUMN_TITLE, title);
xmlFree(title);
}
- else if (!strcmp((const char*)cur_node->name, "pubDate"))
+ else if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "pubDate"))
{
xmlChar *xml_date = xmlNodeGetContent(cur_node);
- char* date = (char*) xml_date;
+ char* date = reinterpret_cast<char*>(xml_date);
set_text(row_num, RESULTS_COLUMN_DATE, date);
xmlFree(xml_date);
}
- else if (!strcmp((const char*)cur_node->name, "creator"))
+ else if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "creator"))
{
xmlChar *xml_creator = xmlNodeGetContent(cur_node);
- char* creator = (char*) xml_creator;
+ char* creator = reinterpret_cast<char*>(xml_creator);
set_text(row_num, RESULTS_COLUMN_CREATOR, creator);
xmlFree(xml_creator);
}
- else if (!strcmp((const char*)cur_node->name, "description"))
+ else if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "description"))
{
xmlChar *xml_description = xmlNodeGetContent(cur_node);
//char* final_description;
- char* stripped_description = g_strstrip((char*) xml_description);
+ char* stripped_description = g_strstrip(reinterpret_cast<char*>(xml_description));
if (!strcmp(stripped_description, "")) {
stripped_description = _("No description");
@@ -1002,30 +1005,30 @@ void SearchResultList::populate_from_xml(xmlNode * a_node)
set_text(row_num, RESULTS_COLUMN_DESCRIPTION, stripped_description);
xmlFree(xml_description);
}
- else if (!strcmp((const char*)cur_node->name, "enclosure"))
+ else if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "enclosure"))
{
- xmlChar *xml_url = xmlGetProp(cur_node, (xmlChar*) "url");
- char* url = (char*) xml_url;
+ xmlChar *xml_url = xmlGetProp(cur_node, reinterpret_cast<xmlChar*>(g_strdup("url")));
+ char* url = reinterpret_cast<char*>(xml_url);
char* filename = g_path_get_basename(url);
set_text(row_num, RESULTS_COLUMN_URL, url);
set_text(row_num, RESULTS_COLUMN_FILENAME, filename);
xmlFree(xml_url);
}
- else if (!strcmp((const char*)cur_node->name, "thumbnail"))
+ else if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "thumbnail"))
{
- xmlChar *xml_thumbnail_url = xmlGetProp(cur_node, (xmlChar*) "url");
- char* thumbnail_url = (char*) xml_thumbnail_url;
+ xmlChar *xml_thumbnail_url = xmlGetProp(cur_node, reinterpret_cast<xmlChar*>(g_strdup("url")));
+ char* thumbnail_url = reinterpret_cast<char*>(xml_thumbnail_url);
char* thumbnail_filename = g_path_get_basename(thumbnail_url);
set_text(row_num, RESULTS_COLUMN_THUMBNAIL_URL, thumbnail_url);
set_text(row_num, RESULTS_COLUMN_THUMBNAIL_FILENAME, thumbnail_filename);
xmlFree(xml_thumbnail_url);
}
- else if (!strcmp((const char*)cur_node->name, "guid"))
+ else if (!strcmp(reinterpret_cast<const char*>(cur_node->name), "guid"))
{
xmlChar *xml_guid = xmlNodeGetContent(cur_node);
- char* guid_url = (char*) xml_guid;
+ char* guid_url = reinterpret_cast<char*>(xml_guid);
char* guid = g_path_get_basename(guid_url);
set_text(row_num, RESULTS_COLUMN_GUID, guid);
@@ -1208,7 +1211,13 @@ ImportDialog::ImportDialog(Gtk::Window& parent_window, FileDialogType file_types
BaseBox *basebox_no_search_results = new BaseBox();
label_not_found = new Gtk::Label();
label_description = new Gtk::Label();
+
+#if GTK_CHECK_VERSION(3,6,0)
+ entry_search = new Gtk::SearchEntry();
+#else
entry_search = new SearchEntry();
+#endif
+
button_search = new Gtk::Button(_("Search"));
#if WITH_GTKMM_3_0
diff --git a/src/ui/dialog/ocaldialogs.h b/src/ui/dialog/ocaldialogs.h
index 1cdfa15bb..326542579 100644
--- a/src/ui/dialog/ocaldialogs.h
+++ b/src/ui/dialog/ocaldialogs.h
@@ -21,6 +21,11 @@
#include <gtkmm/listviewtext.h>
#include <gtkmm/scrolledwindow.h>
#include <gtkmm/window.h>
+
+#if GTK_CHECK_VERSION(3,6,0)
+# include <gtkmm/searchentry.h>
+#endif
+
#include <giomm/file.h>
//Inkscape includes
@@ -328,6 +333,7 @@ public:
Gtk::Label* label;
};
+#if !GTK_CHECK_VERSION(3,6,0)
/**
* A Gtk::Entry with search & clear icons
*/
@@ -340,6 +346,7 @@ private:
void _on_icon_pressed(Gtk::EntryIconPosition icon_position, const GdkEventButton* event);
void _on_changed();
};
+#endif
/**
* A box which paints an overlay of the OCAL logo
@@ -449,7 +456,13 @@ protected:
private:
Glib::ustring filename_image;
Glib::ustring filename_thumbnail;
+
+#if GTK_CHECK_VERSION(3,6,0)
+ Gtk::SearchEntry *entry_search;
+#else
SearchEntry *entry_search;
+#endif
+
LogoArea *drawingarea_logo;
SearchResultList *list_results;
PreviewWidget *preview_files;
diff --git a/src/ui/dialog/tile.cpp b/src/ui/dialog/tile.cpp
index 1ce78a278..410cdbda9 100644
--- a/src/ui/dialog/tile.cpp
+++ b/src/ui/dialog/tile.cpp
@@ -194,7 +194,7 @@ void TileDialog::Grid_Arrange ()
g_return_if_fail(selection);
const GSList *items2 = selection->itemList();
- GSList *rev = g_slist_copy((GSList *) items2);
+ GSList *rev = g_slist_copy(const_cast<GSList *>(items2));
GSList *sorted = NULL;
rev = g_slist_sort(rev, (GCompareFunc) sp_compare_y_position);
sorted = g_slist_sort(rev, (GCompareFunc) sp_compare_x_position);
@@ -667,7 +667,7 @@ TileDialog::TileDialog()
NoOfRowsSpinner.signal_changed().connect(sigc::mem_fun(*this, &TileDialog::on_col_spinbutton_changed));
NoOfRowsSpinner.set_tooltip_text(_("Number of rows"));
NoOfRowsBox.pack_start(NoOfRowsSpinner, false, false, MARGIN);
- gtk_size_group_add_widget(_col1, (GtkWidget *) NoOfRowsBox.gobj());
+ gtk_size_group_add_widget(_col1, GTK_WIDGET(NoOfRowsBox.gobj()));
RowHeightButton.set_label(_("Equal _height"));
RowHeightButton.set_use_underline(true);
@@ -724,7 +724,7 @@ TileDialog::TileDialog()
XByYLabel.set_markup(" &#215; ");
XByYLabelVBox.pack_start(XByYLabel, false, false, MARGIN);
SpinsHBox.pack_start(XByYLabelVBox, false, false, MARGIN);
- gtk_size_group_add_widget(_col2, (GtkWidget *) XByYLabelVBox.gobj());
+ gtk_size_group_add_widget(_col2, GTK_WIDGET(XByYLabelVBox.gobj()));
/*#### Number of columns ####*/
@@ -739,7 +739,7 @@ TileDialog::TileDialog()
NoOfColsSpinner.signal_changed().connect(sigc::mem_fun(*this, &TileDialog::on_row_spinbutton_changed));
NoOfColsSpinner.set_tooltip_text(_("Number of columns"));
NoOfColsBox.pack_start(NoOfColsSpinner, false, false, MARGIN);
- gtk_size_group_add_widget(_col3, (GtkWidget *) NoOfColsBox.gobj());
+ gtk_size_group_add_widget(_col3, GTK_WIDGET(NoOfColsBox.gobj()));
ColumnWidthButton.set_label(_("Equal _width"));
ColumnWidthButton.set_use_underline(true);
diff --git a/src/ui/widget/color-preview.cpp b/src/ui/widget/color-preview.cpp
index 3ebb282ec..4b4a7b738 100644
--- a/src/ui/widget/color-preview.cpp
+++ b/src/ui/widget/color-preview.cpp
@@ -26,13 +26,6 @@ ColorPreview::ColorPreview (guint32 rgba)
}
void
-ColorPreview::on_size_request (Gtk::Requisition *req)
-{
- req->width = SPCP_DEFAULT_WIDTH;
- req->height = SPCP_DEFAULT_HEIGHT;
-}
-
-void
ColorPreview::on_size_allocate (Gtk::Allocation &all)
{
set_allocation (all);
@@ -40,14 +33,55 @@ ColorPreview::on_size_allocate (Gtk::Allocation &all)
queue_draw();
}
+#if WITH_GTKMM_3_0
+void
+ColorPreview::get_preferred_height_vfunc(int& minimum_height, int& natural_height) const
+{
+ minimum_height = natural_height = SPCP_DEFAULT_HEIGHT;
+}
+
+void
+ColorPreview::get_preferred_height_for_width_vfunc(int /* width */, int& minimum_height, int& natural_height) const
+{
+ minimum_height = natural_height = SPCP_DEFAULT_HEIGHT;
+}
+
+void
+ColorPreview::get_preferred_width_vfunc(int& minimum_width, int& natural_width) const
+{
+ minimum_width = natural_width = SPCP_DEFAULT_WIDTH;
+}
+
+void
+ColorPreview::get_preferred_width_for_height_vfunc(int /* height */, int& minimum_width, int& natural_width) const
+{
+ minimum_width = natural_width = SPCP_DEFAULT_WIDTH;
+}
+#else
+void
+ColorPreview::on_size_request (Gtk::Requisition *req)
+{
+ req->width = SPCP_DEFAULT_WIDTH;
+ req->height = SPCP_DEFAULT_HEIGHT;
+}
+
bool
ColorPreview::on_expose_event (GdkEventExpose *event)
{
+ bool result = true;
+
if (get_is_drawable())
- paint (&event->area);
+ {
+ Cairo::RefPtr<Cairo::Context> cr = get_window()->create_cairo_context();
+ cr->rectangle(event->area.x, event->area.y,
+ event->area.width, event->area.height);
+ cr->clip();
+ result = on_draw(cr);
+ }
- return true;
+ return result;
}
+#endif
void
ColorPreview::setRgba32 (guint32 rgba)
@@ -58,11 +92,10 @@ ColorPreview::setRgba32 (guint32 rgba)
queue_draw();
}
-void
-ColorPreview::paint (GdkRectangle *area)
+bool
+ColorPreview::on_draw(const Cairo::RefPtr<Cairo::Context>& cr)
{
GdkRectangle warea, carea;
- GdkRectangle wpaint, cpaint;
gint w2;
const Gtk::Allocation& allocation = get_allocation();
@@ -71,12 +104,6 @@ ColorPreview::paint (GdkRectangle *area)
warea.width = allocation.get_width();
warea.height = allocation.get_height();
- if (!gdk_rectangle_intersect (area, &warea, &wpaint))
- return;
-
- GtkWidget *widget = GTK_WIDGET(this->gobj());
- cairo_t *ct = gdk_cairo_create(gtk_widget_get_window(widget));
-
/* Transparent area */
w2 = warea.width / 2;
@@ -86,17 +113,15 @@ ColorPreview::paint (GdkRectangle *area)
carea.width = w2;
carea.height = warea.height;
- if (gdk_rectangle_intersect (area, &carea, &cpaint)) {
- cairo_pattern_t *checkers = ink_cairo_pattern_create_checkerboard();
+ cairo_pattern_t *checkers = ink_cairo_pattern_create_checkerboard();
- cairo_rectangle(ct, carea.x, carea.y, carea.width, carea.height);
- cairo_set_source(ct, checkers);
- cairo_fill_preserve(ct);
- ink_cairo_set_source_rgba32(ct, _rgba);
- cairo_fill(ct);
+ cr->rectangle(carea.x, carea.y, carea.width, carea.height);
+ cairo_set_source(cr->cobj(), checkers);
+ cr->fill_preserve();
+ ink_cairo_set_source_rgba32(cr->cobj(), _rgba);
+ cr->fill();
- cairo_pattern_destroy(checkers);
- }
+ cairo_pattern_destroy(checkers);
/* Solid area */
@@ -105,13 +130,11 @@ ColorPreview::paint (GdkRectangle *area)
carea.width = warea.width - w2;
carea.height = warea.height;
- if (gdk_rectangle_intersect (area, &carea, &cpaint)) {
- cairo_rectangle(ct, carea.x, carea.y, carea.width, carea.height);
- ink_cairo_set_source_rgba32(ct, _rgba | 0xff);
- cairo_fill(ct);
- }
+ cr->rectangle(carea.x, carea.y, carea.width, carea.height);
+ ink_cairo_set_source_rgba32(cr->cobj(), _rgba | 0xff);
+ cr->fill();
- cairo_destroy(ct);
+ return true;
}
GdkPixbuf*
@@ -173,3 +196,4 @@ ColorPreview::toPixbuf (int width, int height)
fill-column:99
End:
*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
diff --git a/src/ui/widget/color-preview.h b/src/ui/widget/color-preview.h
index d6d3da01c..caddfb9a2 100644
--- a/src/ui/widget/color-preview.h
+++ b/src/ui/widget/color-preview.h
@@ -11,6 +11,10 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
#include <gtkmm/widget.h>
namespace Inkscape {
@@ -27,10 +31,19 @@ public:
GdkPixbuf* toPixbuf (int width, int height);
protected:
- virtual void on_size_request (Gtk::Requisition *req);
virtual void on_size_allocate (Gtk::Allocation &all);
- virtual bool on_expose_event (GdkEventExpose *event);
- void paint (GdkRectangle *area);
+
+#if WITH_GTKMM_3_0
+ virtual void get_preferred_height_vfunc(int& minimum_height, int& natural_height) const;
+ virtual void get_preferred_height_for_width_vfunc(int width, int& minimum_height, int& natural_height) const;
+ virtual void get_preferred_width_vfunc(int& minimum_width, int& natural_width) const;
+ virtual void get_preferred_width_for_height_vfunc(int height, int& minimum_width, int& natural_width) const;
+#else
+ virtual void on_size_request (Gtk::Requisition *req);
+ virtual bool on_expose_event(GdkEventExpose *event);
+#endif
+
+ virtual bool on_draw(const Cairo::RefPtr<Cairo::Context>& cr);
guint32 _rgba;
};
diff --git a/src/ui/widget/imageicon.cpp b/src/ui/widget/imageicon.cpp
index 567608ef8..1c36dc36e 100644
--- a/src/ui/widget/imageicon.cpp
+++ b/src/ui/widget/imageicon.cpp
@@ -117,7 +117,7 @@ bool ImageIcon::showSvgDocument(const SPDocument *docArg)
viewerGtkmm->show();
pack_start(*viewerGtkmm, TRUE, TRUE, 0);
- //GtkWidget *vbox = (GtkWidget *)gobj();
+ //GtkWidget *vbox = GTK_WIDGET(gobj());
//gtk_box_pack_start(GTK_BOX(vbox), viewerGtk, TRUE, TRUE, 0);
return true;
@@ -306,7 +306,7 @@ void ImageIcon::showBrokenImage(const Glib::ustring &errorMessage)
"</svg>";
//Fill in the template
- char *cErrorMessage = (char *)errorMessage.c_str();
+ char *cErrorMessage = const_cast<char *>(errorMessage.c_str());
gchar *xmlBuffer = g_strdup_printf(xformat, cErrorMessage);
//g_message("%s\n", xmlBuffer);
@@ -375,7 +375,7 @@ bool ImageIcon::show(const Glib::ustring &fileName)
if (!Glib::file_test(fileName, Glib::FILE_TEST_EXISTS))
return false;
- gchar *fName = (gchar *)fileName.c_str();
+ gchar *fName = const_cast<gchar *>(fileName.c_str());
//g_message("fname:%s\n", fName);
diff --git a/src/ui/widget/object-composite-settings.cpp b/src/ui/widget/object-composite-settings.cpp
index 2789676ea..537db0fdd 100644
--- a/src/ui/widget/object-composite-settings.cpp
+++ b/src/ui/widget/object-composite-settings.cpp
@@ -89,8 +89,8 @@ ObjectCompositeSettings::ObjectCompositeSettings(unsigned int verb_code, char co
/* SizeGroup keeps the blur and opacity labels aligned in Fill & Stroke dlg */
/*
GtkSizeGroup *labels = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
- gtk_size_group_add_widget(labels, (GtkWidget *) _opacity_label.gobj());
- gtk_size_group_add_widget(labels, (GtkWidget *) _fe_cb.get_blur_label()->gobj());
+ gtk_size_group_add_widget(labels, GTK_WIDGET(_opacity_label.gobj()));
+ gtk_size_group_add_widget(labels, GTK_WIDGET(_fe_cb.get_blur_label()->gobj()));
*/
show_all_children();
diff --git a/src/ui/widget/preferences-widget.cpp b/src/ui/widget/preferences-widget.cpp
index e7e317d11..e5b062ec9 100644
--- a/src/ui/widget/preferences-widget.cpp
+++ b/src/ui/widget/preferences-widget.cpp
@@ -373,10 +373,27 @@ ZoomCorrRuler::draw_marks(Cairo::RefPtr<Cairo::Context> cr, double dist, int maj
}
}
-void
-ZoomCorrRuler::redraw() {
+#if !WITH_GTKMM_3_0
+bool
+ZoomCorrRuler::on_expose_event(GdkEventExpose *event) {
+ bool result = false;
+
+ if(get_is_drawable())
+ {
+ Cairo::RefPtr<Cairo::Context> cr = get_window()->create_cairo_context();
+ cr->rectangle(event->area.x, event->area.y,
+ event->area.width, event->area.height);
+ cr->clip();
+ result = on_draw(cr);
+ }
+
+ return result;
+}
+#endif
+
+bool
+ZoomCorrRuler::on_draw(const Cairo::RefPtr<Cairo::Context>& cr) {
Glib::RefPtr<Gdk::Window> window = get_window();
- Cairo::RefPtr<Cairo::Context> cr = window->create_cairo_context();
int w = window->get_width();
_drawing_width = w - _border * 2;
@@ -415,14 +432,11 @@ ZoomCorrRuler::redraw() {
draw_marks(cr, 1, 1);
}
cr->stroke();
-}
-bool
-ZoomCorrRuler::on_expose_event(GdkEventExpose */*event*/) {
- this->redraw();
return true;
}
+
void
ZoomCorrRulerSlider::on_slider_value_changed()
{
@@ -432,7 +446,7 @@ ZoomCorrRulerSlider::on_slider_value_changed()
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
prefs->setDouble("/options/zoomcorrection/value", _slider.get_value() / 100.0);
_sb.set_value(_slider.get_value());
- _ruler.redraw();
+ _ruler.queue_draw();
freeze = false;
}
}
@@ -446,7 +460,7 @@ ZoomCorrRulerSlider::on_spinbutton_value_changed()
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
prefs->setDouble("/options/zoomcorrection/value", _sb.get_value() / 100.0);
_slider.set_value(_sb.get_value());
- _ruler.redraw();
+ _ruler.queue_draw();
freeze = false;
}
}
@@ -463,7 +477,7 @@ ZoomCorrRulerSlider::on_unit_changed() {
double conv = _unit.getConversion(_unit.getUnitAbbr(), "px");
_ruler.set_unit_conversion(conv);
if (_ruler.get_visible()) {
- _ruler.redraw();
+ _ruler.queue_draw();
}
}
diff --git a/src/ui/widget/preferences-widget.h b/src/ui/widget/preferences-widget.h
index bfe0deaba..646a8b2fa 100644
--- a/src/ui/widget/preferences-widget.h
+++ b/src/ui/widget/preferences-widget.h
@@ -101,8 +101,6 @@ public:
ZoomCorrRuler(int width = 100, int height = 20);
void set_size(int x, int y);
void set_unit_conversion(double conv) { _unitconv = conv; }
- void set_cairo_context(Cairo::RefPtr<Cairo::Context> cr);
- void redraw();
int width() { return _min_width + _border*2; }
@@ -110,7 +108,12 @@ public:
static const double textpadding;
private:
+#if !WITH_GTKMM_3_0
bool on_expose_event(GdkEventExpose *event);
+#endif
+
+ bool on_draw(const Cairo::RefPtr<Cairo::Context>& cr);
+
void draw_marks(Cairo::RefPtr<Cairo::Context> cr, double dist, int major_interval);
double _unitconv;