summaryrefslogtreecommitdiffstats
path: root/src/widgets/toolbox.cpp
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2010-06-01 21:04:14 +0000
committertavmjong-free <tavmjong@free.fr>2010-06-01 21:04:14 +0000
commit732f0b7edebb12ce1414aefd29ccc6655fc8174b (patch)
tree8aaa7743033416126c56f39f47bfb51205a1fd69 /src/widgets/toolbox.cpp
parentSpanish translations updated (Bug #588232) (diff)
downloadinkscape-732f0b7edebb12ce1414aefd29ccc6655fc8174b.tar.gz
inkscape-732f0b7edebb12ce1414aefd29ccc6655fc8174b.zip
Flowed text does not support dx (kerning), dy, and rotation attributes.
Disable corresponding widgets if flowed text selected. (bzr r9468)
Diffstat (limited to 'src/widgets/toolbox.cpp')
-rw-r--r--src/widgets/toolbox.cpp56
1 files changed, 36 insertions, 20 deletions
diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp
index f0a223a3c..f3cfe621d 100644
--- a/src/widgets/toolbox.cpp
+++ b/src/widgets/toolbox.cpp
@@ -7063,6 +7063,21 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/
}
g_object_set_data( tbl, "freeze", GINT_TO_POINTER(TRUE) );
+ // Only flowed text can be justified, only normal text can be kerned...
+ // Find out if we have flowed text now so we can use it several places
+ gboolean isFlow = false;
+ for (GSList const *items = sp_desktop_selection(SP_ACTIVE_DESKTOP)->itemList();
+ items != NULL;
+ items = items->next) {
+ // const gchar* id = SP_OBJECT_ID((SPItem *) items->data);
+ // std::cout << " " << id << std::endl;
+ if( SP_IS_FLOWTEXT(( SPItem *) items->data )) {
+ isFlow = true;
+ // std::cout << " Found flowed text" << std::endl;
+ break;
+ }
+ }
+
/*
* Query from current selection:
* Font family (font-family)
@@ -7151,19 +7166,7 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/
// Note: SVG 1.1 doesn't include text-align, SVG 1.2 Tiny doesn't include text-align="justify"
// text-align="justify" was a draft SVG 1.2 item (along with flowed text).
// Only flowed text can be left and right justified at the same time.
- // Check if we have flowed text and disable botton.
- gboolean isFlow = false;
- for (GSList const *items = sp_desktop_selection(SP_ACTIVE_DESKTOP)->itemList();
- items != NULL;
- items = items->next) {
- // const gchar* id = SP_OBJECT_ID((SPItem *) items->data);
- // std::cout << " " << id << std::endl;
- if( SP_IS_FLOWTEXT(( SPItem *) items->data )) {
- isFlow = true;
- // std::cout << " Found flowed text" << std::endl;
- break;
- }
- }
+ // Disable button if we don't have flowed text.
// The GtkTreeModel class doesn't have a set function so we can't
// simply add an ege_select_one_action_set_sensitive method!
@@ -7216,7 +7219,7 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/
GtkAdjustment *wordSpacingAdjustment =
ege_adjustment_action_get_adjustment(EGE_ADJUSTMENT_ACTION( wordSpacingAction ));
gtk_adjustment_set_value( wordSpacingAdjustment, wordSpacing );
-
+
// Letter spacing
double letterSpacing;
@@ -7302,6 +7305,19 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/
}
}
}
+
+ {
+ // Set these here as we don't always have kerning/rotating attributes
+ GtkAction* dxAction = GTK_ACTION( g_object_get_data( tbl, "TextDxAction" ));
+ gtk_action_set_sensitive( GTK_ACTION(dxAction), !isFlow );
+
+ GtkAction* dyAction = GTK_ACTION( g_object_get_data( tbl, "TextDyAction" ));
+ gtk_action_set_sensitive( GTK_ACTION(dyAction), !isFlow );
+
+ GtkAction* rotationAction = GTK_ACTION( g_object_get_data( tbl, "TextRotationAction" ));
+ gtk_action_set_sensitive( GTK_ACTION(rotationAction), !isFlow );
+ }
+
#ifdef DEBUG_TEXT
std::cout << "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" << std::endl;
std::cout << std::endl;
@@ -7528,7 +7544,7 @@ static void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
_("Line Height"), /* label */
_("Line:"), /* short label */
_("Spacing between lines (times font size)"), /* tooltip */
- "/tools/text/lineheight", /* path? */
+ "/tools/text/lineheight", /* preferences path */
0.0, /* default */
GTK_WIDGET(desktop->canvas), /* focusTarget */
NULL, /* unit selector */
@@ -7559,7 +7575,7 @@ static void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
_("Word spacing"), /* label */
_("Word:"), /* short label */
_("Spacing between words (px)"), /* tooltip */
- "/tools/text/wordspacing", /* path? */
+ "/tools/text/wordspacing", /* preferences path */
0.0, /* default */
GTK_WIDGET(desktop->canvas), /* focusTarget */
NULL, /* unit selector */
@@ -7590,7 +7606,7 @@ static void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
_("Letter spacing"), /* label */
_("Letter:"), /* short label */
_("Spacing between letters (px)"), /* tooltip */
- "/tools/text/letterspacing", /* path? */
+ "/tools/text/letterspacing", /* preferences path */
0.0, /* default */
GTK_WIDGET(desktop->canvas), /* focusTarget */
NULL, /* unit selector */
@@ -7621,7 +7637,7 @@ static void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
_("Kerning"), /* label */
_("Kern:"), /* short label */
_("Horizontal kerning (px)"), /* tooltip */
- "/tools/text/dx", /* path? */
+ "/tools/text/dx", /* preferences path */
0.0, /* default */
GTK_WIDGET(desktop->canvas), /* focusTarget */
NULL, /* unit selector */
@@ -7652,7 +7668,7 @@ static void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
_("Vertical Shift"), /* label */
_("Vert:"), /* short label */
_("Vertical shift (px)"), /* tooltip */
- "/tools/text/dy", /* path? */
+ "/tools/text/dy", /* preferences path */
0.0, /* default */
GTK_WIDGET(desktop->canvas), /* focusTarget */
NULL, /* unit selector */
@@ -7683,7 +7699,7 @@ static void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions
_("Letter rotation"), /* label */
_("Rot:"), /* short label */
_("Character rotation (degrees)"),/* tooltip */
- "/tools/text/letterspacing", /* path? */
+ "/tools/text/rotation", /* preferences path */
0.0, /* default */
GTK_WIDGET(desktop->canvas), /* focusTarget */
NULL, /* unit selector */