diff options
| author | Markus Engel <markus.engel@tum.de> | 2013-03-29 23:52:42 +0000 |
|---|---|---|
| committer | Markus Engel <markus.engel@tum.de> | 2013-03-29 23:52:42 +0000 |
| commit | a168040d5a452544328a1e6ad35aaac351f94d44 (patch) | |
| tree | fae1ba829f543a473da281bd5fa6e4deabbf6912 /src/ui/dialog/tile.cpp | |
| parent | Removed function pointers from SPObject and subclasses. (diff) | |
| parent | Dutch translation update (diff) | |
| download | inkscape-a168040d5a452544328a1e6ad35aaac351f94d44.tar.gz inkscape-a168040d5a452544328a1e6ad35aaac351f94d44.zip | |
merged from trunk
(bzr r11608.1.56)
Diffstat (limited to 'src/ui/dialog/tile.cpp')
| -rw-r--r-- | src/ui/dialog/tile.cpp | 59 |
1 files changed, 41 insertions, 18 deletions
diff --git a/src/ui/dialog/tile.cpp b/src/ui/dialog/tile.cpp index 77dae056f..c35d3b554 100644 --- a/src/ui/dialog/tile.cpp +++ b/src/ui/dialog/tile.cpp @@ -14,14 +14,17 @@ */ //#define DEBUG_GRID_ARRANGE 1 -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - #include "tile.h" #include <gtk/gtk.h> //for GTK_RESPONSE* types #include <glibmm/i18n.h> #include <gtkmm/stock.h> + +#if WITH_GTKMM_3_0 +# include <gtkmm/grid.h> +#else +# include <gtkmm/table.h> +#endif + #include <2geom/transforms.h> #include "verbs.h" @@ -42,7 +45,7 @@ * 0 *elem1 == *elem2 * >0 *elem1 goes after *elem2 */ -int sp_compare_x_position(SPItem *first, SPItem *second) +static int sp_compare_x_position(SPItem *first, SPItem *second) { using Geom::X; using Geom::Y; @@ -84,7 +87,7 @@ int sp_compare_x_position(SPItem *first, SPItem *second) /* * Sort items by their y co-ordinates. */ -int +static int sp_compare_y_position(SPItem *first, SPItem *second) { Geom::OptRect a = first->documentVisualBounds(); @@ -124,7 +127,7 @@ void TileDialog::Grid_Arrange () { int cnt,row_cnt,col_cnt,a,row,col; - double grid_left,grid_top,col_width,row_height,paddingx,paddingy,width, height, new_x, new_y,cx,cy; + double grid_left,grid_top,col_width,row_height,paddingx,paddingy,width, height, new_x, new_y; double total_col_width,total_row_height; col_width = 0; row_height = 0; @@ -175,9 +178,6 @@ void TileDialog::Grid_Arrange () width = b->dimensions()[Geom::X]; height = b->dimensions()[Geom::Y]; - cx = b->midpoint()[Geom::X]; - cy = b->midpoint()[Geom::Y]; - if (b->min()[Geom::X] < grid_left) { grid_left = b->min()[Geom::X]; } @@ -197,7 +197,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); @@ -615,8 +615,13 @@ static void updateSelectionCallback(Inkscape::Application */*inkscape*/, Inkscap */ TileDialog::TileDialog() : UI::Widget::Panel("", "/dialogs/gridtiler", SP_VERB_SELECTION_GRIDTILE), - XPadding(_("X:"), _("Horizontal spacing between columns."), UNIT_TYPE_LINEAR, "", "object-columns"), - YPadding(_("Y:"), _("Vertical spacing between rows."), XPadding, "", "object-rows") + XPadding(_("X:"), _("Horizontal spacing between columns."), UNIT_TYPE_LINEAR, "", "object-columns", &PaddingUnitMenu), + YPadding(_("Y:"), _("Vertical spacing between rows."), UNIT_TYPE_LINEAR, "", "object-rows", &PaddingUnitMenu), +#if WITH_GTKMM_3_0 + PaddingTable(Gtk::manage(new Gtk::Grid())) +#else + PaddingTable(Gtk::manage(new Gtk::Table(2, 2, false))) +#endif { // bool used by spin button callbacks to stop loops where they change each other. updating = false; @@ -669,7 +674,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); @@ -726,7 +731,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 ####*/ @@ -741,7 +746,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); @@ -817,6 +822,8 @@ TileDialog::TileDialog() { /*#### Padding ####*/ + PaddingUnitMenu.setUnitType(UNIT_TYPE_LINEAR); + PaddingUnitMenu.setUnit("px"); YPadding.setDigits(5); YPadding.setIncrements(0.2, 0); @@ -833,8 +840,24 @@ TileDialog::TileDialog() XPadding.signal_value_changed().connect(sigc::mem_fun(*this, &TileDialog::on_xpad_spinbutton_changed)); } - TileBox.pack_start(XPadding, false, false, MARGIN); - TileBox.pack_start(YPadding, false, false, MARGIN); + + PaddingTable->set_border_width(MARGIN); + +#if WITH_GTKMM_3_0 + PaddingTable->set_row_spacing(MARGIN); + PaddingTable->set_column_spacing(MARGIN); + PaddingTable->attach(XPadding, 0, 0, 1, 1); + PaddingTable->attach(PaddingUnitMenu, 1, 0, 1, 1); + PaddingTable->attach(YPadding, 0, 1, 1, 1); +#else + PaddingTable->set_row_spacings(MARGIN); + PaddingTable->set_col_spacings(MARGIN); + PaddingTable->attach(XPadding, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + PaddingTable->attach(PaddingUnitMenu, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + PaddingTable->attach(YPadding, 0, 1, 1, 2, Gtk::SHRINK, Gtk::SHRINK); +#endif + + TileBox.pack_start(*PaddingTable, false, false, MARGIN); contents->pack_start(TileBox); |
