X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fdialogs%2Ftext-edit.cpp;h=8ea0a72368c288ea529ba546c35829e168faff0a;hb=f4f507228b30d55fd7e39386ba513f3a0a54bd5d;hp=8de2dedac5b01f4b784c50428c730258856e7213;hpb=1391834bee278d740c12201a5f258cd1eda044c1;p=inkscape.git diff --git a/src/dialogs/text-edit.cpp b/src/dialogs/text-edit.cpp index 8de2dedac..8ea0a7236 100644 --- a/src/dialogs/text-edit.cpp +++ b/src/dialogs/text-edit.cpp @@ -51,7 +51,6 @@ extern "C" { #include "widgets/icon.h" #include - #define VB_MARGIN 4 static void sp_text_edit_dialog_selection_modified (Inkscape::Application *inkscape, Inkscape::Selection *sel, guint flags, GtkWidget *dlg); @@ -100,6 +99,9 @@ sp_text_edit_dialog_delete (GtkObject *object, GdkEvent *event, gpointer data) gtk_window_get_position ((GtkWindow *) dlg, &x, &y); gtk_window_get_size ((GtkWindow *) dlg, &w, &h); + if (x<0) x=0; + if (y<0) y=0; + prefs_set_int_attribute (prefs_path, "x", x); prefs_set_int_attribute (prefs_path, "y", y); prefs_set_int_attribute (prefs_path, "w", w); @@ -134,7 +136,6 @@ text_view_focus_out (GtkWidget *w, GdkEventKey *event, gpointer data) void sp_text_edit_dialog (void) { - if (!dlg) { gchar title[500]; @@ -151,6 +152,9 @@ sp_text_edit_dialog (void) h = prefs_get_int_attribute (prefs_path, "h", 0); } + if (x<0) x=0; + if (y<0) y=0; + if (x != 0 || y != 0) { gtk_window_move ((GtkWindow *) dlg, x, y); } else { @@ -203,6 +207,12 @@ sp_text_edit_dialog (void) // font and style selector GtkWidget *fontsel = sp_font_selector_new (); g_signal_connect ( G_OBJECT (fontsel), "font_set", G_CALLBACK (sp_text_edit_dialog_font_changed), dlg ); + + g_signal_connect_swapped ( G_OBJECT (g_object_get_data (G_OBJECT(fontsel), "family-treeview")), + "row-activated", + G_CALLBACK (gtk_window_activate_default), + dlg); + gtk_box_pack_start (GTK_BOX (hb), fontsel, TRUE, TRUE, 0); g_object_set_data (G_OBJECT (dlg), "fontsel", fontsel); @@ -219,6 +229,7 @@ sp_text_edit_dialog (void) // align left { + // TODO - replace with Inkscape-specific call GtkWidget *px = gtk_image_new_from_stock ( GTK_STOCK_JUSTIFY_LEFT, GTK_ICON_SIZE_LARGE_TOOLBAR ); GtkWidget *b = group = gtk_radio_button_new (NULL); gtk_tooltips_set_tip (tt, b, _("Align lines left"), NULL); @@ -232,6 +243,7 @@ sp_text_edit_dialog (void) // align center { + // TODO - replace with Inkscape-specific call GtkWidget *px = gtk_image_new_from_stock ( GTK_STOCK_JUSTIFY_CENTER, GTK_ICON_SIZE_LARGE_TOOLBAR ); GtkWidget *b = gtk_radio_button_new (gtk_radio_button_group (GTK_RADIO_BUTTON (group))); /* TRANSLATORS: `Center' here is a verb. */ @@ -246,6 +258,7 @@ sp_text_edit_dialog (void) // align right { + // TODO - replace with Inkscape-specific call GtkWidget *px = gtk_image_new_from_stock ( GTK_STOCK_JUSTIFY_RIGHT, GTK_ICON_SIZE_LARGE_TOOLBAR ); GtkWidget *b = gtk_radio_button_new (gtk_radio_button_group (GTK_RADIO_BUTTON (group))); gtk_tooltips_set_tip (tt, b, _("Align lines right"), NULL); @@ -267,7 +280,7 @@ sp_text_edit_dialog (void) // horizontal { - GtkWidget *px = sp_icon_new( GTK_ICON_SIZE_LARGE_TOOLBAR, + GtkWidget *px = sp_icon_new( Inkscape::ICON_SIZE_LARGE_TOOLBAR, INKSCAPE_STOCK_WRITING_MODE_LR ); GtkWidget *b = group = gtk_radio_button_new (NULL); gtk_tooltips_set_tip (tt, b, _("Horizontal text"), NULL); @@ -281,7 +294,7 @@ sp_text_edit_dialog (void) // vertical { - GtkWidget *px = sp_icon_new( GTK_ICON_SIZE_LARGE_TOOLBAR, + GtkWidget *px = sp_icon_new( Inkscape::ICON_SIZE_LARGE_TOOLBAR, INKSCAPE_STOCK_WRITING_MODE_TB ); GtkWidget *b = gtk_radio_button_new (gtk_radio_button_group (GTK_RADIO_BUTTON (group))); gtk_tooltips_set_tip (tt, b, _("Vertical text"), NULL); @@ -409,6 +422,7 @@ sp_text_edit_dialog (void) { GtkWidget *b = gtk_button_new_from_stock (GTK_STOCK_APPLY); + GTK_WIDGET_SET_FLAGS (b, GTK_CAN_DEFAULT | GTK_HAS_DEFAULT); g_signal_connect ( G_OBJECT (b), "clicked", G_CALLBACK (sp_text_edit_dialog_apply), dlg ); gtk_box_pack_end ( GTK_BOX (hb), b, FALSE, FALSE, 0 ); @@ -585,10 +599,8 @@ sp_text_edit_dialog_apply (GtkButton *button, GtkWidget *dlg) SPDesktop *desktop = SP_ACTIVE_DESKTOP; unsigned items = 0; - const GSList *item_list = SP_DT_SELECTION(desktop)->itemList(); - + const GSList *item_list = sp_desktop_selection(desktop)->itemList(); SPCSSAttr *css = sp_get_text_dialog_style (); - sp_desktop_set_style(desktop, css, true); for (; item_list != NULL; item_list = item_list->next) { @@ -611,24 +623,20 @@ sp_text_edit_dialog_apply (GtkButton *button, GtkWidget *dlg) gtk_widget_set_sensitive (def, FALSE); } else if (items == 1) { /* exactly one text object; now set its text, too */ - SPItem *item = SP_DT_SELECTION(SP_ACTIVE_DESKTOP)->singleItem(); + SPItem *item = sp_desktop_selection(SP_ACTIVE_DESKTOP)->singleItem(); if (SP_IS_TEXT (item) || SP_IS_FLOWTEXT(item)) { sp_text_edit_dialog_update_object_text (item); } } // complete the transaction - sp_document_done (SP_DT_DOCUMENT (SP_ACTIVE_DESKTOP)); - + sp_document_done (sp_desktop_document (SP_ACTIVE_DESKTOP), SP_VERB_CONTEXT_TEXT, + /* TODO: annotate */ "text-edit.cpp:634"); gtk_widget_set_sensitive (apply, FALSE); - sp_repr_css_attr_unref (css); - g_object_set_data (G_OBJECT (dlg), "blocked", GINT_TO_POINTER (FALSE)); } - - static void sp_text_edit_dialog_close (GtkButton *button, GtkWidget *dlg) { @@ -794,7 +802,14 @@ sp_text_edit_dialog_text_changed (GtkTextBuffer *tb, GtkWidget *dlg) } // end of sp_text_edit_dialog_text_changed() - +void +sp_text_edit_dialog_default_set_insensitive () +{ + if (!dlg) return; + gpointer data = g_object_get_data (G_OBJECT (dlg), "default"); + if (!data) return; + gtk_widget_set_sensitive (GTK_WIDGET (data), FALSE); +} static void sp_text_edit_dialog_font_changed ( SPFontSelector *fsel, @@ -814,7 +829,8 @@ sp_text_edit_dialog_font_changed ( SPFontSelector *fsel, sp_font_preview_set_font (SP_FONT_PREVIEW (preview), font, SP_FONT_SELECTOR(fsel)); - if (text) { + if (text) + { gtk_widget_set_sensitive (apply, TRUE); } gtk_widget_set_sensitive (def, TRUE); @@ -871,7 +887,7 @@ sp_ted_get_selected_text_item (void) if (!SP_ACTIVE_DESKTOP) return NULL; - for (const GSList *item = SP_DT_SELECTION(SP_ACTIVE_DESKTOP)->itemList(); + for (const GSList *item = sp_desktop_selection(SP_ACTIVE_DESKTOP)->itemList(); item != NULL; item = item->next) { @@ -892,7 +908,7 @@ sp_ted_get_selected_text_count (void) unsigned int items = 0; - for (const GSList *item = SP_DT_SELECTION(SP_ACTIVE_DESKTOP)->itemList(); + for (const GSList *item = sp_desktop_selection(SP_ACTIVE_DESKTOP)->itemList(); item != NULL; item = item->next) {