diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2013-01-06 19:53:50 +0000 |
|---|---|---|
| committer | Jabiertxo Arraiza Cenoz <jtx@jtx.marker.es> | 2013-01-06 19:53:50 +0000 |
| commit | 38cba87ca97f83927c94519eda2c326c8bde16cd (patch) | |
| tree | 0390c36513eaf3ab61ff9b182000e63bfc592ffe /src/ui | |
| parent | Fixed StartAnchor continue errors with bspline (diff) | |
| parent | visual bbox minimum width (Bug 1094802) (diff) | |
| download | inkscape-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.cpp | 2 | ||||
| -rw-r--r-- | src/ui/dialog/document-properties.cpp | 2 | ||||
| -rw-r--r-- | src/ui/dialog/filedialogimpl-gtkmm.cpp | 16 | ||||
| -rw-r--r-- | src/ui/dialog/filter-effects-dialog.cpp | 64 | ||||
| -rw-r--r-- | src/ui/dialog/filter-effects-dialog.h | 22 | ||||
| -rw-r--r-- | src/ui/dialog/inkscape-preferences.cpp | 1 | ||||
| -rw-r--r-- | src/ui/dialog/ocaldialogs.cpp | 49 | ||||
| -rw-r--r-- | src/ui/dialog/ocaldialogs.h | 13 | ||||
| -rw-r--r-- | src/ui/dialog/tile.cpp | 8 | ||||
| -rw-r--r-- | src/ui/widget/color-preview.cpp | 90 | ||||
| -rw-r--r-- | src/ui/widget/color-preview.h | 19 | ||||
| -rw-r--r-- | src/ui/widget/imageicon.cpp | 6 | ||||
| -rw-r--r-- | src/ui/widget/object-composite-settings.cpp | 4 | ||||
| -rw-r--r-- | src/ui/widget/preferences-widget.cpp | 34 | ||||
| -rw-r--r-- | src/ui/widget/preferences-widget.h | 7 |
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(" × "); 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; |
