index 8de2dedac5b01f4b784c50428c730258856e7213..8ea0a72368c288ea529ba546c35829e168faff0a 100644 (file)
#include "widgets/icon.h"
#include <xml/repr.h>
-
#define VB_MARGIN 4
static void sp_text_edit_dialog_selection_modified (Inkscape::Application *inkscape, Inkscape::Selection *sel, guint flags, GtkWidget *dlg);
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);
void
sp_text_edit_dialog (void)
{
-
if (!dlg) {
gchar title[500];
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 {
// 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);
// 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);
// 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. */
// 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);
// 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);
// 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);
{
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 );
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) {
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)
{
} // 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,
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);
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)
{
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)
{