summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 82b78fb)
raw | patch | inline | side by side (parent: 82b78fb)
author | tavmjong-free <tavmjong@free.fr> | |
Sat, 15 May 2010 04:29:37 +0000 (06:29 +0200) | ||
committer | tavmjong-free <tavmjong@free.fr> | |
Sat, 15 May 2010 04:29:37 +0000 (06:29 +0200) |
src/widgets/toolbox.cpp | patch | blob | history |
index 4078fec06c36ba626673903537ab68429d60924a..62af61943c1f5238c455eb873c17a594e985628d 100644 (file)
--- a/src/widgets/toolbox.cpp
+++ b/src/widgets/toolbox.cpp
gdouble new_dx = adj->value;
- SPTextContext *const tc = SP_TEXT_CONTEXT((SP_ACTIVE_DESKTOP)->event_context);
- if( tc ) {
- unsigned char_index = -1;
- TextTagAttributes *attributes =
- text_tag_attributes_at_position( tc->text, std::min(tc->text_sel_start, tc->text_sel_end), &char_index );
- if( attributes ) {
- double old_dx = attributes->getDx( char_index );
- double delta_dx = new_dx - old_dx;
- sp_te_adjust_dx( tc->text, tc->text_sel_start, tc->text_sel_end, SP_ACTIVE_DESKTOP, delta_dx );
+ if( SP_IS_TEXT_CONTEXT((SP_ACTIVE_DESKTOP)->event_context) ) {
+ SPTextContext *const tc = SP_TEXT_CONTEXT((SP_ACTIVE_DESKTOP)->event_context);
+ if( tc ) {
+ unsigned char_index = -1;
+ TextTagAttributes *attributes =
+ text_tag_attributes_at_position( tc->text, std::min(tc->text_sel_start, tc->text_sel_end), &char_index );
+ if( attributes ) {
+ double old_dx = attributes->getDx( char_index );
+ double delta_dx = new_dx - old_dx;
+ sp_te_adjust_dx( tc->text, tc->text_sel_start, tc->text_sel_end, SP_ACTIVE_DESKTOP, delta_dx );
+ }
}
}
gdouble new_dy = adj->value;
- SPTextContext *const tc = SP_TEXT_CONTEXT((SP_ACTIVE_DESKTOP)->event_context);
- if( tc ) {
- unsigned char_index = -1;
- TextTagAttributes *attributes =
- text_tag_attributes_at_position( tc->text, std::min(tc->text_sel_start, tc->text_sel_end), &char_index );
- if( attributes ) {
- double old_dy = attributes->getDy( char_index );
- double delta_dy = new_dy - old_dy;
- sp_te_adjust_dy( tc->text, tc->text_sel_start, tc->text_sel_end, SP_ACTIVE_DESKTOP, delta_dy );
+ if( SP_IS_TEXT_CONTEXT((SP_ACTIVE_DESKTOP)->event_context) ) {
+ SPTextContext *const tc = SP_TEXT_CONTEXT((SP_ACTIVE_DESKTOP)->event_context);
+ if( tc ) {
+ unsigned char_index = -1;
+ TextTagAttributes *attributes =
+ text_tag_attributes_at_position( tc->text, std::min(tc->text_sel_start, tc->text_sel_end), &char_index );
+ if( attributes ) {
+ double old_dy = attributes->getDy( char_index );
+ double delta_dy = new_dy - old_dy;
+ sp_te_adjust_dy( tc->text, tc->text_sel_start, tc->text_sel_end, SP_ACTIVE_DESKTOP, delta_dy );
+ }
}
}
@@ -6935,15 +6939,17 @@ static void sp_text_rotation_value_changed( GtkAdjustment *adj, GObject *tbl )
gdouble new_degrees = adj->value;
- SPTextContext *const tc = SP_TEXT_CONTEXT((SP_ACTIVE_DESKTOP)->event_context);
- if( tc ) {
- unsigned char_index = -1;
- TextTagAttributes *attributes =
- text_tag_attributes_at_position( tc->text, std::min(tc->text_sel_start, tc->text_sel_end), &char_index );
- if( attributes ) {
- double old_degrees = attributes->getRotate( char_index );
- double delta_deg = new_degrees - old_degrees;
- sp_te_adjust_rotation( tc->text, tc->text_sel_start, tc->text_sel_end, SP_ACTIVE_DESKTOP, delta_deg );
+ if( SP_IS_TEXT_CONTEXT((SP_ACTIVE_DESKTOP)->event_context) ) {
+ SPTextContext *const tc = SP_TEXT_CONTEXT((SP_ACTIVE_DESKTOP)->event_context);
+ if( tc ) {
+ unsigned char_index = -1;
+ TextTagAttributes *attributes =
+ text_tag_attributes_at_position( tc->text, std::min(tc->text_sel_start, tc->text_sel_end), &char_index );
+ if( attributes ) {
+ double old_degrees = attributes->getRotate( char_index );
+ double delta_deg = new_degrees - old_degrees;
+ sp_te_adjust_rotation( tc->text, tc->text_sel_start, tc->text_sel_end, SP_ACTIVE_DESKTOP, delta_deg );
+ }
}
}
@@ -7091,6 +7097,7 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/
ink_comboboxentry_action_set_active_text( fontFamilyAction, fontFamily );
}
+
// Size (average of text selected)
double size = query->font_size.computed;
gchar size_text[G_ASCII_DTOSTR_BUF_SIZE];
@@ -7100,6 +7107,7 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/
INK_COMBOBOXENTRY_ACTION( g_object_get_data( tbl, "TextFontSizeAction" ) );
ink_comboboxentry_action_set_active_text( fontSizeAction, size_text );
+
// Weight (Bold)
// Note: in the enumeration, normal and lighter come at the end so we must explicitly test for them.
gboolean boldSet = ((query->font_weight.computed >= SP_CSS_FONT_WEIGHT_700) &&
@@ -7116,8 +7124,6 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/
InkToggleAction* textItalicAction = INK_TOGGLE_ACTION( g_object_get_data( tbl, "TextItalicAction" ) );
gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(textItalicAction), italicSet );
-
-
EgeSelectOneAction* textAlignAction = EGE_SELECT_ONE_ACTION( g_object_get_data( tbl, "TextAlignAction" ) );
// Alignment
// Note: SVG 1.1 doesn't include text-align, SVG 1.2 Tiny doesn't include text-align="justify"
@@ -7200,6 +7206,7 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/
ege_adjustment_action_get_adjustment(EGE_ADJUSTMENT_ACTION( letterSpacingAction ));
gtk_adjustment_set_value( letterSpacingAdjustment, letterSpacing );
+
// Orientation
int activeButton2 = (query->writing_mode.computed == SP_CSS_WRITING_MODE_LR_TB ? 0 : 1);
@@ -7234,42 +7241,45 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/
sp_style_unref(query);
// Kerning (xshift), yshift, rotation. NB: These are not CSS attributes.
- SPTextContext *const tc = SP_TEXT_CONTEXT((SP_ACTIVE_DESKTOP)->event_context);
- if( tc ) {
- unsigned char_index = -1;
- TextTagAttributes *attributes =
- text_tag_attributes_at_position( tc->text, std::min(tc->text_sel_start, tc->text_sel_end), &char_index );
- if( attributes ) {
-
- // Dx
- double dx = attributes->getDx( char_index );
- GtkAction* dxAction = GTK_ACTION( g_object_get_data( tbl, "TextDxAction" ));
- GtkAdjustment *dxAdjustment =
- ege_adjustment_action_get_adjustment(EGE_ADJUSTMENT_ACTION( dxAction ));
- gtk_adjustment_set_value( dxAdjustment, dx );
-
- // Dy
- double dy = attributes->getDy( char_index );
- GtkAction* dyAction = GTK_ACTION( g_object_get_data( tbl, "TextDyAction" ));
- GtkAdjustment *dyAdjustment =
- ege_adjustment_action_get_adjustment(EGE_ADJUSTMENT_ACTION( dyAction ));
- gtk_adjustment_set_value( dyAdjustment, dy );
-
- // Rotation
- double rotation = attributes->getRotate( char_index );
- GtkAction* rotationAction = GTK_ACTION( g_object_get_data( tbl, "TextRotationAction" ));
- GtkAdjustment *rotationAdjustment =
- ege_adjustment_action_get_adjustment(EGE_ADJUSTMENT_ACTION( rotationAction ));
- gtk_adjustment_set_value( rotationAdjustment, rotation );
+ if( SP_IS_TEXT_CONTEXT((SP_ACTIVE_DESKTOP)->event_context) ) {
+ SPTextContext *const tc = SP_TEXT_CONTEXT((SP_ACTIVE_DESKTOP)->event_context);
+ if( tc ) {
+ unsigned char_index = -1;
+ TextTagAttributes *attributes =
+ text_tag_attributes_at_position( tc->text, std::min(tc->text_sel_start, tc->text_sel_end), &char_index );
+ if( attributes ) {
+
+ // Dx
+ double dx = attributes->getDx( char_index );
+ GtkAction* dxAction = GTK_ACTION( g_object_get_data( tbl, "TextDxAction" ));
+ GtkAdjustment *dxAdjustment =
+ ege_adjustment_action_get_adjustment(EGE_ADJUSTMENT_ACTION( dxAction ));
+ gtk_adjustment_set_value( dxAdjustment, dx );
+
+ // Dy
+ double dy = attributes->getDy( char_index );
+ GtkAction* dyAction = GTK_ACTION( g_object_get_data( tbl, "TextDyAction" ));
+ GtkAdjustment *dyAdjustment =
+ ege_adjustment_action_get_adjustment(EGE_ADJUSTMENT_ACTION( dyAction ));
+ gtk_adjustment_set_value( dyAdjustment, dy );
+
+ // Rotation
+ double rotation = attributes->getRotate( char_index );
+ /* SVG value is between 0 and 360 but we're using -180 to 180 in widget */
+ if( rotation > 180.0 ) rotation -= 360.0;
+ GtkAction* rotationAction = GTK_ACTION( g_object_get_data( tbl, "TextRotationAction" ));
+ GtkAdjustment *rotationAdjustment =
+ ege_adjustment_action_get_adjustment(EGE_ADJUSTMENT_ACTION( rotationAction ));
+ gtk_adjustment_set_value( rotationAdjustment, rotation );
#ifdef DEBUG_TEXT
- std::cout << " GUI: Dx: " << dx << std::endl;
- std::cout << " GUI: Dy: " << dy << std::endl;
- std::cout << " GUI: Rotation: " << rotation << std::endl;
+ std::cout << " GUI: Dx: " << dx << std::endl;
+ std::cout << " GUI: Dy: " << dy << std::endl;
+ std::cout << " GUI: Rotation: " << rotation << std::endl;
#endif
+ }
}
}
-
#ifdef DEBUG_TEXT
std::cout << "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&" << std::endl;
std::cout << std::endl;