diff --git a/src/ui/dialog/tile.cpp b/src/ui/dialog/tile.cpp
index 5741fee4d469016fd570f5136dd44c1633b43119..4b994335e31fdb56a788a65d6f8c34130640a07a 100644 (file)
--- a/src/ui/dialog/tile.cpp
+++ b/src/ui/dialog/tile.cpp
* Bob Jamison ( based off trace dialog)
* John Cliff
* Other dudes from The Inkscape Organization
+ * Abhishek Sharma
*
* Copyright (C) 2004 Bob Jamison
* Copyright (C) 2004 John Cliff
#include "sp-item.h"
#include "widgets/icon.h"
#include "tile.h"
+#include "desktop.h"
/*
* Sort items by their x co-ordinates, taking account of y (keeps rows intact)
using Geom::X;
using Geom::Y;
- Geom::OptRect a = first->getBounds(sp_item_i2doc_affine(first));
- Geom::OptRect b = second->getBounds(sp_item_i2doc_affine(second));
+ Geom::OptRect a = first->getBounds(first->i2doc_affine());
+ Geom::OptRect b = second->getBounds(second->i2doc_affine());
if ( !a || !b ) {
// FIXME?
int
sp_compare_y_position(SPItem *first, SPItem *second)
{
- Geom::OptRect a = first->getBounds(sp_item_i2doc_affine(first));
- Geom::OptRect b = second->getBounds(sp_item_i2doc_affine(second));
+ Geom::OptRect a = first->getBounds(first->i2doc_affine());
+ Geom::OptRect b = second->getBounds(second->i2doc_affine());
if ( !a || !b ) {
// FIXME?
grid_top = 99999;
SPDesktop *desktop = getDesktop();
- sp_document_ensure_up_to_date(sp_desktop_document(desktop));
+ sp_desktop_document(desktop)->ensureUpToDate();
Inkscape::Selection *selection = sp_desktop_selection (desktop);
- const GSList *items = selection->itemList();
+ const GSList *items = selection ? selection->itemList() : 0;
cnt=0;
for (; items != NULL; items = items->next) {
SPItem *item = SP_ITEM(items->data);
- Geom::OptRect b = item->getBounds(sp_item_i2doc_affine(item));
+ Geom::OptRect b = item->getBounds(item->i2doc_affine());
if (!b) {
continue;
}
// require the sorting done before we can calculate row heights etc.
+ g_return_if_fail(selection);
const GSList *items2 = selection->itemList();
GSList *rev = g_slist_copy((GSList *) items2);
GSList *sorted = NULL;
const GSList *sizes = sorted;
for (; sizes != NULL; sizes = sizes->next) {
SPItem *item = SP_ITEM(sizes->data);
- Geom::OptRect b = item->getBounds(sp_item_i2doc_affine(item));
+ Geom::OptRect b = item->getBounds(item->i2doc_affine());
if (b) {
width = b->dimensions()[Geom::X];
height = b->dimensions()[Geom::Y];
for (; current_row != NULL; current_row = current_row->next) {
SPItem *item=SP_ITEM(current_row->data);
Inkscape::XML::Node *repr = SP_OBJECT_REPR(item);
- Geom::OptRect b = item->getBounds(sp_item_i2doc_affine(item));
+ Geom::OptRect b = item->getBounds(item->i2doc_affine());
Geom::Point min;
if (b) {
width = b->dimensions()[Geom::X];
// signs are inverted between x and y due to y inversion
Geom::Point move = Geom::Point(new_x - min[Geom::X], min[Geom::Y] - new_y);
Geom::Matrix const affine = Geom::Matrix(Geom::Translate(move));
- sp_item_set_i2d_affine(item, sp_item_i2d_affine(item) * affine);
- sp_item_write_transform(item, repr, item->transform, NULL);
+ item->set_i2d_affine(item->i2d_affine() * affine);
+ item->doWriteTransform(repr, item->transform, NULL);
SP_OBJECT (current_row->data)->updateRepr();
cnt +=1;
}
g_slist_free (current_row);
}
- sp_document_done (sp_desktop_document (desktop), SP_VERB_SELECTION_GRIDTILE,
- _("Arrange in a grid"));
+ DocumentUndo::done(sp_desktop_document(desktop), SP_VERB_SELECTION_GRIDTILE,
+ _("Arrange in a grid"));
}
updating = true;
SPDesktop *desktop = getDesktop();
- Inkscape::Selection *selection = sp_desktop_selection (desktop);
+ Inkscape::Selection *selection = desktop ? desktop->selection : 0;
+ g_return_if_fail( selection );
GSList const *items = selection->itemList();
int selcount = g_slist_length((GSList *)items);
// in turn, prevent listener from responding
updating = true;
SPDesktop *desktop = getDesktop();
- Inkscape::Selection *selection = sp_desktop_selection (desktop);
+ Inkscape::Selection *selection = desktop ? desktop->selection : 0;
+ g_return_if_fail(selection);
GSList const *items = selection->itemList();
int selcount = g_slist_length((GSList *)items);
// in turn, prevent listener from responding
updating = true;
SPDesktop *desktop = getDesktop();
- Inkscape::Selection *selection = sp_desktop_selection (desktop);
- const GSList *items = selection->itemList();
- int selcount = g_slist_length((GSList *)items);
-
- if (NoOfColsSpinner.get_value()>1 && NoOfRowsSpinner.get_value()>1){
- // Update the number of rows assuming number of columns wanted remains same.
- double NoOfRows = ceil(selcount / NoOfColsSpinner.get_value());
- NoOfRowsSpinner.set_value(NoOfRows);
-
- // if the selection has less than the number set for one row, reduce it appropriately
- if (selcount<NoOfColsSpinner.get_value()) {
- double NoOfCols = ceil(selcount / NoOfRowsSpinner.get_value());
- NoOfColsSpinner.set_value(NoOfCols);
- prefs->setInt("/dialogs/gridtiler/NoOfCols", NoOfCols);
+ Inkscape::Selection *selection = desktop ? desktop->selection : 0;
+ GSList const *items = selection ? selection->itemList() : 0;
+
+ if (items) {
+ int selcount = g_slist_length((GSList *)items);
+
+ if (NoOfColsSpinner.get_value() > 1 && NoOfRowsSpinner.get_value() > 1){
+ // Update the number of rows assuming number of columns wanted remains same.
+ double NoOfRows = ceil(selcount / NoOfColsSpinner.get_value());
+ NoOfRowsSpinner.set_value(NoOfRows);
+
+ // if the selection has less than the number set for one row, reduce it appropriately
+ if (selcount < NoOfColsSpinner.get_value()) {
+ double NoOfCols = ceil(selcount / NoOfRowsSpinner.get_value());
+ NoOfColsSpinner.set_value(NoOfCols);
+ prefs->setInt("/dialogs/gridtiler/NoOfCols", NoOfCols);
+ }
+ } else {
+ double PerRow = ceil(sqrt(selcount));
+ double PerCol = ceil(sqrt(selcount));
+ NoOfRowsSpinner.set_value(PerRow);
+ NoOfColsSpinner.set_value(PerCol);
+ prefs->setInt("/dialogs/gridtiler/NoOfCols", static_cast<int>(PerCol));
}
- } else {
- double PerRow = ceil(sqrt(selcount));
- double PerCol = ceil(sqrt(selcount));
- NoOfRowsSpinner.set_value(PerRow);
- NoOfColsSpinner.set_value(PerCol);
- prefs->setInt("/dialogs/gridtiler/NoOfCols", static_cast<int>(PerCol));
-
}
- updating=false;
-
+ updating = false;
}
SPDesktop *desktop = getDesktop();
- Inkscape::Selection *selection = sp_desktop_selection (desktop);
+ Inkscape::Selection *selection = desktop ? desktop->selection : 0;
+ g_return_if_fail( selection );
int selcount = 1;
if (!selection->isEmpty()) {
GSList const *items = selection->itemList();
g_print("/n PerRox = %f PerCol = %f selcount = %d",PerRow,PerCol,selcount);
#endif
- NoOfRowsLabel.set_label(_("Rows:"));
+ NoOfRowsLabel.set_text_with_mnemonic(_("_Rows:"));
+ NoOfRowsLabel.set_mnemonic_widget(NoOfRowsSpinner);
NoOfRowsBox.pack_start(NoOfRowsLabel, false, false, MARGIN);
NoOfRowsSpinner.set_digits(0);
- NoOfRowsSpinner.set_increments(1, 5);
+ NoOfRowsSpinner.set_increments(1, 0);
NoOfRowsSpinner.set_range(1.0, 100.0);
NoOfRowsSpinner.set_value(PerCol);
NoOfRowsSpinner.signal_changed().connect(sigc::mem_fun(*this, &TileDialog::on_col_spinbutton_changed));
NoOfRowsBox.pack_start(NoOfRowsSpinner, false, false, MARGIN);
gtk_size_group_add_widget(_col1, (GtkWidget *) NoOfRowsBox.gobj());
- RowHeightButton.set_label(_("Equal height"));
+ RowHeightButton.set_label(_("Equal _height"));
+ RowHeightButton.set_use_underline(true);
double AutoRow = prefs->getDouble("/dialogs/gridtiler/AutoRowSize", 15);
if (AutoRow>0)
AutoRowSize=true;
/*#### Number of columns ####*/
- NoOfColsLabel.set_label(_("Columns:"));
+ NoOfColsLabel.set_text_with_mnemonic(_("_Columns:"));
+ NoOfColsLabel.set_mnemonic_widget(NoOfColsSpinner);
NoOfColsBox.pack_start(NoOfColsLabel, false, false, MARGIN);
NoOfColsSpinner.set_digits(0);
- NoOfColsSpinner.set_increments(1, 5);
+ NoOfColsSpinner.set_increments(1, 0);
NoOfColsSpinner.set_range(1.0, 100.0);
NoOfColsSpinner.set_value(PerRow);
NoOfColsSpinner.signal_changed().connect(sigc::mem_fun(*this, &TileDialog::on_row_spinbutton_changed));
NoOfColsBox.pack_start(NoOfColsSpinner, false, false, MARGIN);
gtk_size_group_add_widget(_col3, (GtkWidget *) NoOfColsBox.gobj());
- ColumnWidthButton.set_label(_("Equal width"));
+ ColumnWidthButton.set_label(_("Equal _width"));
+ ColumnWidthButton.set_use_underline(true);
double AutoCol = prefs->getDouble("/dialogs/gridtiler/AutoColSize", 15);
if (AutoCol>0)
AutoColSize=true;
{
/*#### Radio buttons to control spacing manually or to fit selection bbox ####*/
- SpaceByBBoxRadioButton.set_label(_("Fit into selection box"));
+ SpaceByBBoxRadioButton.set_label(_("_Fit into selection box"));
+ SpaceByBBoxRadioButton.set_use_underline (true);
SpaceByBBoxRadioButton.signal_toggled().connect(sigc::mem_fun(*this, &TileDialog::Spacing_button_changed));
SpacingGroup = SpaceByBBoxRadioButton.get_group();
SpacingVBox.pack_start(SpaceByBBoxRadioButton, false, false, MARGIN);
- SpaceManualRadioButton.set_label(_("Set spacing:"));
+ SpaceManualRadioButton.set_label(_("_Set spacing:"));
+ SpaceManualRadioButton.set_use_underline (true);
SpaceManualRadioButton.set_group(SpacingGroup);
SpaceManualRadioButton.signal_toggled().connect(sigc::mem_fun(*this, &TileDialog::Spacing_button_changed));
SpacingVBox.pack_start(SpaceManualRadioButton, false, false, MARGIN);
{
/*#### Y Padding ####*/
- GtkWidget *i = sp_icon_new (Inkscape::ICON_SIZE_MENU, "clonetiler_per_row");
+ GtkWidget *i = sp_icon_new (Inkscape::ICON_SIZE_MENU, "object-rows");
YPadBox.pack_start (*(Glib::wrap(i)), false, false, MARGIN);
YPadSpinner.set_digits(1);
- YPadSpinner.set_increments(0.2, 2);
+ YPadSpinner.set_increments(0.2, 0);
YPadSpinner.set_range(-10000, 10000);
double YPad = prefs->getDouble("/dialogs/gridtiler/YPad", 15);
YPadSpinner.set_value(YPad);
{
/*#### X padding ####*/
- GtkWidget *i = sp_icon_new (Inkscape::ICON_SIZE_MENU, "clonetiler_per_column");
+ GtkWidget *i = sp_icon_new (Inkscape::ICON_SIZE_MENU, "object-columns");
XPadBox.pack_start (*(Glib::wrap(i)), false, false, MARGIN);
XPadSpinner.set_digits(1);
- XPadSpinner.set_increments(0.2, 2);
+ XPadSpinner.set_increments(0.2, 0);
XPadSpinner.set_range(-10000, 10000);
double XPad = prefs->getDouble("/dialogs/gridtiler/XPad", 15);
XPadSpinner.set_value(XPad);
SizesHBox.set_sensitive (ManualSpacing);
//## The OK button
- TileOkButton = addResponseButton(_("Arrange"), GTK_RESPONSE_APPLY);
+ TileOkButton = addResponseButton(C_("Rows and columns dialog","_Arrange"), GTK_RESPONSE_APPLY);
+ TileOkButton->set_use_underline(true);
tips.set_tip((*TileOkButton), _("Arrange selected objects"));
show_all_children();
fill-column:99
End:
*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 ::
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :