X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Finterface.cpp;h=348e71821acf13b4c6ee2fbf80526a000b460ff7;hb=4601eacf8d5a7e695e9e83702a805afff34cd2b9;hp=212a7b9a0b11f1a79706dde6a25d4c9b4c4a7d23;hpb=ac57bf96045ac2c465a3b9df5daba43e03e8b3e1;p=inkscape.git diff --git a/src/interface.cpp b/src/interface.cpp index 212a7b9a0..348e71821 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -33,7 +33,7 @@ #include "file.h" #include "interface.h" #include "desktop.h" -#include "object-ui.h" +#include "ui/context-menu.h" #include "selection.h" #include "selection-chemistry.h" #include "svg-view-widget.h" @@ -88,9 +88,9 @@ static GtkTargetEntry ui_drop_target_entries [] = { {"image/svg", 0, SVG_DATA}, {"image/png", 0, PNG_DATA}, {"image/jpeg", 0, JPEG_DATA}, -#if ENABLE_LCMS +#if ENABLE_MAGIC_COLORS {"application/x-inkscape-color", 0, APP_X_INKY_COLOR}, -#endif // ENABLE_LCMS +#endif // ENABLE_MAGIC_COLORS {"application/x-color", 0, APP_X_COLOR} }; @@ -112,13 +112,17 @@ static void sp_ui_drag_data_received(GtkWidget *widget, static void sp_ui_menu_item_set_sensitive(SPAction *action, unsigned int sensitive, void *data); +static void sp_ui_menu_item_set_name(SPAction *action, + Glib::ustring name, + void *data); SPActionEventVector menu_item_event_vector = { {NULL}, NULL, NULL, /* set_active */ sp_ui_menu_item_set_sensitive, /* set_sensitive */ - NULL /* set_shortcut */ + NULL, /* set_shortcut */ + sp_ui_menu_item_set_name /* set_name */ }; void @@ -336,7 +340,7 @@ sp_ui_menuitem_add_icon( GtkWidget *item, gchar *icon_name ) { GtkWidget *icon; - icon = sp_icon_new( GTK_ICON_SIZE_MENU, icon_name ); + icon = sp_icon_new( Inkscape::ICON_SIZE_MENU, icon_name ); gtk_widget_show(icon); gtk_image_menu_item_set_image((GtkImageMenuItem *) item, icon); } // end of sp_ui_menu_add_icon @@ -779,10 +783,10 @@ sp_ui_checkboxes_menus(GtkMenu *m, Inkscape::UI::View::View *view) checkitem_toggled, checkitem_update, Inkscape::Verb::get(SP_VERB_TOGGLE_RULERS)); sp_ui_menu_append_check_item_from_verb(m, view, NULL, NULL, "scrollbars", checkitem_toggled, checkitem_update, Inkscape::Verb::get(SP_VERB_TOGGLE_SCROLLBARS)); - sp_ui_menu_append_check_item_from_verb(m, view, _("_Statusbar"), _("Show or hide the statusbar (at the bottom of the window)"), "statusbar", - checkitem_toggled, checkitem_update, 0); sp_ui_menu_append_check_item_from_verb(m, view, _("_Palette"), _("Show or hide the color palette"), "panels", checkitem_toggled, checkitem_update, 0); + sp_ui_menu_append_check_item_from_verb(m, view, _("_Statusbar"), _("Show or hide the statusbar (at the bottom of the window)"), "statusbar", + checkitem_toggled, checkitem_update, 0); } /** \brief This function turns XML into a menu @@ -811,9 +815,6 @@ sp_ui_build_dyn_menus(Inkscape::XML::Node *menus, GtkWidget *menu, Inkscape::UI: menu_pntr != NULL; menu_pntr = menu_pntr->next()) { if (!strcmp(menu_pntr->name(), "submenu")) { - if (!strcmp(menu_pntr->attribute("name"), "Effects") && !prefs_get_int_attribute("extensions", "show-effects-menu", 0)) { - continue; - } GtkWidget *mitem = gtk_menu_item_new_with_mnemonic(_(menu_pntr->attribute("name"))); GtkWidget *submenu = gtk_menu_new(); sp_ui_build_dyn_menus(menu_pntr->firstChild(), submenu, view); @@ -895,7 +896,7 @@ static void leave_group(GtkMenuItem *, SPDesktop *desktop) { static void enter_group(GtkMenuItem *mi, SPDesktop *desktop) { desktop->setCurrentLayer(reinterpret_cast(g_object_get_data(G_OBJECT(mi), "group"))); - SP_DT_SELECTION(desktop)->clear(); + sp_desktop_selection(desktop)->clear(); } GtkWidget * @@ -981,7 +982,7 @@ sp_ui_drag_data_received(GtkWidget *widget, gpointer user_data) { switch (info) { -#if ENABLE_LCMS +#if ENABLE_MAGIC_COLORS case APP_X_INKY_COLOR: { SPDesktop *desktop = SP_ACTIVE_DESKTOP; @@ -1008,10 +1009,7 @@ sp_ui_drag_data_received(GtkWidget *widget, //0x0ff & (data->data[3] >> 8), )); SPCSSAttr *css = sp_repr_css_attr_new(); - sp_repr_css_set_property( css, (drag_context->action != GDK_ACTION_MOVE) ? "fill":"stroke", c ); - - sp_desktop_apply_css_recursive( item, css, true ); - item->updateRepr(); + bool updatePerformed = false; if ( data->length > 14 ) { int flags = dataVals[4]; @@ -1035,11 +1033,22 @@ sp_ui_drag_data_received(GtkWidget *widget, palName.c_str(), false ); item->updateRepr(); + + sp_repr_css_set_property( css, (drag_context->action != GDK_ACTION_MOVE) ? "fill":"stroke", c ); + updatePerformed = true; } } + if ( !updatePerformed ) { + sp_repr_css_set_property( css, (drag_context->action != GDK_ACTION_MOVE) ? "fill":"stroke", c ); + } + + sp_desktop_apply_css_recursive( item, css, true ); + item->updateRepr(); + SPDocument *doc = SP_ACTIVE_DOCUMENT; - sp_document_done( doc ); + sp_document_done( doc , SP_VERB_NONE, + /* TODO: annotate */ "interface.cpp:1047"); if ( srgbProf ) { cmsCloseProfile( srgbProf ); @@ -1048,7 +1057,7 @@ sp_ui_drag_data_received(GtkWidget *widget, } } break; -#endif // ENABLE_LCMS +#endif // ENABLE_MAGIC_COLORS case APP_X_COLOR: { @@ -1080,7 +1089,8 @@ sp_ui_drag_data_received(GtkWidget *widget, item->updateRepr(); SPDocument *doc = SP_ACTIVE_DOCUMENT; - sp_document_done( doc ); + sp_document_done( doc , SP_VERB_NONE, + /* TODO: annotate */ "interface.cpp:1089"); } } } @@ -1119,21 +1129,22 @@ sp_ui_drag_data_received(GtkWidget *widget, SPObject *new_obj = NULL; new_obj = desktop->currentLayer()->appendChildRepr(newgroup); - Inkscape::Selection *selection = SP_DT_SELECTION(desktop); + Inkscape::Selection *selection = sp_desktop_selection(desktop); selection->set(SP_ITEM(new_obj)); // To move the imported object, we must temporarily set the "transform pattern with // object" option. { int const saved_pref = prefs_get_int_attribute("options.transform", "pattern", 1); prefs_set_int_attribute("options.transform", "pattern", 1); - sp_document_ensure_up_to_date(SP_DT_DOCUMENT(desktop)); + sp_document_ensure_up_to_date(sp_desktop_document(desktop)); NR::Point m( desktop->point() - selection->bounds().midpoint() ); sp_selection_move_relative(selection, m); prefs_set_int_attribute("options.transform", "pattern", saved_pref); } Inkscape::GC::release(newgroup); - sp_document_done(doc); + sp_document_done(doc, SP_VERB_NONE, + /* TODO: annotate */ "interface.cpp:1143"); break; } @@ -1192,7 +1203,8 @@ sp_ui_drag_data_received(GtkWidget *widget, desktop->currentLayer()->appendChildRepr(newImage); Inkscape::GC::release(newImage); - sp_document_done( doc ); + sp_document_done( doc , SP_VERB_NONE, + /* TODO: annotate */ "interface.cpp:1203"); break; } } @@ -1273,7 +1285,10 @@ sp_ui_overwrite_file(gchar const *filename) gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); hbox = gtk_hbox_new(FALSE, 5); + + // TODO - replace with Inkscape-specific call boxdata = gtk_image_new_from_stock(GTK_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); + gtk_widget_show(boxdata); gtk_box_pack_start(GTK_BOX(hbox), boxdata, TRUE, TRUE, 5); text = g_strdup_printf(_("The file %s already exists. Do you want to overwrite that file with the current document?"), filename); @@ -1306,6 +1321,15 @@ sp_ui_menu_item_set_sensitive(SPAction *action, unsigned int sensitive, void *da return gtk_widget_set_sensitive(GTK_WIDGET(data), sensitive); } +static void +sp_ui_menu_item_set_name(SPAction *action, Glib::ustring name, void *data) +{ + gtk_label_set_markup_with_mnemonic( + GTK_LABEL (gtk_container_get_children(GTK_CONTAINER (GTK_BIN (data)->child))->data), + name.c_str()); +} + + /* Local Variables: mode:c++