index ed1082e26ef0d3b365fd082247bdf48cbf6661d0..373ee5832e43583ea01fd3c8b74df06092da6077 100644 (file)
static void sp_stroke_style_paint_changed(SPPaintSelector *psel, SPWidget *spw);
static void sp_stroke_style_widget_change_subselection ( Inkscape::Application *inkscape, SPDesktop *desktop, SPWidget *spw );
-static void sp_stroke_style_widget_transientize_callback(Inkscape::Application *inkscape,
+static void sp_stroke_style_widget_transientize_callback(Inkscape::Application *inkscape,
SPDesktop *desktop,
SPWidget *spw );
* On construction, simply does an update of the stroke style paint object.
*/
static void
-sp_stroke_style_paint_construct(SPWidget *spw, SPPaintSelector *psel)
+sp_stroke_style_paint_construct(SPWidget *spw, SPPaintSelector */*psel*/)
{
#ifdef SP_SS_VERBOSE
g_print( "Stroke style widget constructed: inkscape %p repr %p\n",
#endif
if (spw->inkscape) {
sp_stroke_style_paint_update (spw);
- }
+ }
}
/**
* On signal modified, invokes an update of the stroke style paint object.
*/
static void
-sp_stroke_style_paint_selection_modified ( SPWidget *spw,
- Inkscape::Selection *selection,
- guint flags,
- SPPaintSelector *psel)
+sp_stroke_style_paint_selection_modified( SPWidget *spw,
+ Inkscape::Selection */*selection*/,
+ guint flags,
+ SPPaintSelector */*psel*/ )
{
if (flags & ( SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_PARENT_MODIFIED_FLAG |
SP_OBJECT_STYLE_MODIFIED_FLAG) ) {
* On signal selection changed, invokes an update of the stroke style paint object.
*/
static void
-sp_stroke_style_paint_selection_changed ( SPWidget *spw,
- Inkscape::Selection *selection,
- SPPaintSelector *psel )
+sp_stroke_style_paint_selection_changed( SPWidget *spw,
+ Inkscape::Selection */*selection*/,
+ SPPaintSelector */*psel*/ )
{
sp_stroke_style_paint_update (spw);
}
* On signal change subselection, invoke an update of the stroke style widget.
*/
static void
-sp_stroke_style_widget_change_subselection ( Inkscape::Application *inkscape,
- SPDesktop *desktop,
- SPWidget *spw )
+sp_stroke_style_widget_change_subselection( Inkscape::Application */*inkscape*/,
+ SPDesktop */*desktop*/,
+ SPWidget *spw )
{
sp_stroke_style_paint_update (spw);
}
SPPaintSelector *psel = SP_PAINT_SELECTOR(gtk_object_get_data(GTK_OBJECT(spw), "paint-selector"));
// create temporary style
- SPStyle *query = sp_style_new ();
+ SPStyle *query = sp_style_new (SP_ACTIVE_DOCUMENT);
// query into it
- int result = sp_desktop_query_style (SP_ACTIVE_DESKTOP, query, QUERY_STYLE_PROPERTY_STROKE);
+ int result = sp_desktop_query_style (SP_ACTIVE_DESKTOP, query, QUERY_STYLE_PROPERTY_STROKE);
switch (result) {
case QUERY_STYLE_NOTHING:
SPPaintSelectorMode pselmode = sp_style_determine_paint_selector_mode (query, false);
sp_paint_selector_set_mode (psel, pselmode);
- if (query->stroke.set && query->stroke.type == SP_PAINT_TYPE_COLOR) {
- gfloat d[3];
- sp_color_get_rgb_floatv (&query->stroke.value.color, d);
- SPColor color;
- sp_color_set_rgb_float (&color, d[0], d[1], d[2]);
- sp_paint_selector_set_color_alpha (psel, &color, SP_SCALE24_TO_FLOAT (query->stroke_opacity.value));
-
- } else if (query->stroke.set && query->stroke.type == SP_PAINT_TYPE_PAINTSERVER) {
+ if (query->stroke.set && query->stroke.isPaintserver()) {
SPPaintServer *server = SP_STYLE_STROKE_SERVER (query);
SPPattern *pat = pattern_getroot (SP_PATTERN (server));
sp_update_pattern_list (psel, pat);
}
+ } else if (query->stroke.set && query->stroke.isColor()) {
+ sp_paint_selector_set_color_alpha (psel, &query->stroke.value.color, SP_SCALE24_TO_FLOAT (query->stroke_opacity.value));
+
}
break;
}
*/
static void
sp_stroke_style_paint_mode_changed( SPPaintSelector *psel,
- SPPaintSelectorMode mode,
+ SPPaintSelectorMode /*mode*/,
SPWidget *spw )
{
if (gtk_object_get_data(GTK_OBJECT(spw), "update")) {
sp_stroke_style_paint_changed(psel, spw);
}
-static gchar *undo_label_1 = "stroke:flatcolor:1";
-static gchar *undo_label_2 = "stroke:flatcolor:2";
-static gchar *undo_label = undo_label_1;
+static gchar const *const undo_label_1 = "stroke:flatcolor:1";
+static gchar const *const undo_label_2 = "stroke:flatcolor:2";
+static gchar const *undo_label = undo_label_1;
/**
- * When a drag callback occurs on a paint selector object, if it is a RGB or CMYK
+ * When a drag callback occurs on a paint selector object, if it is a RGB or CMYK
* color mode, then set the stroke opacity to psel's flat color.
*/
static void
case SP_PAINT_SELECTOR_MODE_COLOR_CMYK:
{
sp_paint_selector_set_flat_color (psel, SP_ACTIVE_DESKTOP, "stroke", "stroke-opacity");
- sp_document_maybe_done (sp_desktop_document(SP_ACTIVE_DESKTOP), undo_label, SP_VERB_DIALOG_FILL_STROKE,
+ sp_document_maybe_done (sp_desktop_document(SP_ACTIVE_DESKTOP), undo_label, SP_VERB_DIALOG_FILL_STROKE,
_("Set stroke color"));
break;
}
sp_repr_css_attr_unref(css);
- sp_document_done(document, SP_VERB_DIALOG_FILL_STROKE,
+ sp_document_done(document, SP_VERB_DIALOG_FILL_STROKE,
_("Remove stroke"));
break;
}
case SP_PAINT_SELECTOR_MODE_COLOR_CMYK:
{
sp_paint_selector_set_flat_color (psel, desktop, "stroke", "stroke-opacity");
- sp_document_maybe_done (sp_desktop_document(desktop), undo_label, SP_VERB_DIALOG_FILL_STROKE,
+ sp_document_maybe_done (sp_desktop_document(desktop), undo_label, SP_VERB_DIALOG_FILL_STROKE,
_("Set stroke color"));
// on release, toggle undo_label so that the next drag will not be lumped with this one
if (undo_label == undo_label_1)
undo_label = undo_label_2;
- else
+ else
undo_label = undo_label_1;
break;
if (!vector) {
/* No vector in paint selector should mean that we just changed mode */
- SPStyle *query = sp_style_new ();
- int result = objects_query_fillstroke ((GSList *) items, query, false);
+ SPStyle *query = sp_style_new (SP_ACTIVE_DOCUMENT);
+ int result = objects_query_fillstroke ((GSList *) items, query, false);
guint32 common_rgb = 0;
if (result == QUERY_STYLE_MULTIPLE_SAME) {
- if (query->fill.type != SP_PAINT_TYPE_COLOR) {
+ if (!query->fill.isColor()) {
common_rgb = sp_desktop_get_color(desktop, false);
} else {
- common_rgb = sp_color_get_rgba32_ualpha(&query->stroke.value.color, 0xff);
+ common_rgb = query->stroke.value.color.toRGBA32( 0xff );
}
vector = sp_document_default_gradient_vector(document, common_rgb);
}
for (GSList const *i = items; i != NULL; i = i->next) {
if (!vector) {
- sp_item_set_gradient(SP_ITEM(i->data),
+ sp_item_set_gradient(SP_ITEM(i->data),
sp_gradient_vector_for_object(document, desktop, SP_OBJECT(i->data), false),
gradient_type, false);
} else {
}
}
- sp_document_done(document, SP_VERB_DIALOG_FILL_STROKE,
+ sp_document_done(document, SP_VERB_DIALOG_FILL_STROKE,
_("Set gradient on stroke"));
}
break;
continue;
SPStyle *style = SP_OBJECT_STYLE (selobj);
- if (style && style->stroke.type == SP_PAINT_TYPE_PAINTSERVER) {
+ if (style && style->stroke.isPaintserver()) {
SPObject *server = SP_OBJECT_STYLE_STROKE_SERVER (selobj);
if (SP_IS_PATTERN (server) && pattern_getroot (SP_PATTERN(server)) == pattern)
// only if this object's pattern is not rooted in our selected pattern, apply
} // end if
- sp_document_done (document, SP_VERB_DIALOG_FILL_STROKE,
+ sp_document_done (document, SP_VERB_DIALOG_FILL_STROKE,
_("Set pattern on stroke"));
} // end if
if (items) {
SPCSSAttr *css = sp_repr_css_attr_new ();
sp_repr_css_unset_property (css, "stroke");
+ sp_repr_css_unset_property (css, "stroke-opacity");
+ sp_repr_css_unset_property (css, "stroke-width");
+ sp_repr_css_unset_property (css, "stroke-miterlimit");
+ sp_repr_css_unset_property (css, "stroke-linejoin");
+ sp_repr_css_unset_property (css, "stroke-linecap");
+ sp_repr_css_unset_property (css, "stroke-dashoffset");
+ sp_repr_css_unset_property (css, "stroke-dasharray");
sp_desktop_set_style (desktop, css);
sp_repr_css_attr_unref (css);
- sp_document_done (document, SP_VERB_DIALOG_FILL_STROKE,
+ sp_document_done (document, SP_VERB_DIALOG_FILL_STROKE,
_("Unset stroke"));
}
break;
}
static void
-sp_stroke_style_widget_transientize_callback(Inkscape::Application *inkscape,
- SPDesktop *desktop,
- SPWidget *spw )
+sp_stroke_style_widget_transientize_callback(Inkscape::Application */*inkscape*/,
+ SPDesktop */*desktop*/,
+ SPWidget */*spw*/ )
{
// TODO: Either of these will cause crashes sometimes
// sp_stroke_style_line_update( SP_WIDGET(spw), desktop ? sp_desktop_selection(desktop) : NULL);
static GtkWidget *
sp_marker_prev_new(unsigned psize, gchar const *mname,
SPDocument *source, SPDocument *sandbox,
- gchar *menu_id, NRArena const *arena, unsigned visionkey, NRArenaItem *root)
+ gchar const *menu_id, NRArena const */*arena*/, unsigned /*visionkey*/, NRArenaItem *root)
{
// Retrieve the marker named 'mname' from the source SVG document
SPObject const *marker = source->getObjectById(mname);
Inkscape::GC::release(mrepr);
// Uncomment this to get the sandbox documents saved (useful for debugging)
- //FILE *fp = fopen (g_strconcat(mname, ".svg", NULL), "w");
+ //FILE *fp = fopen (g_strconcat(menu_id, mname, ".svg", NULL), "w");
//sp_repr_save_stream (sp_document_repr_doc (sandbox), fp);
//fclose (fp);
return NULL; // sandbox broken?
// Find object's bbox in document
- NR::Matrix const i2doc(sp_item_i2doc_affine(SP_ITEM(object)));
- NR::Maybe<NR::Rect> dbox = SP_ITEM(object)->getBounds(i2doc);
+ Geom::Matrix const i2doc(sp_item_i2doc_affine(SP_ITEM(object)));
+ boost::optional<NR::Rect> dbox = SP_ITEM(object)->getBounds(i2doc);
if (!dbox) {
return NULL;
double sf = 0.8;
GdkPixbuf* pixbuf = NULL;
- Glib::ustring key = svg_preview_cache.cache_key(source->uri, mname, psize);
+ gchar *cache_name = g_strconcat(menu_id, mname, NULL);
+ Glib::ustring key = svg_preview_cache.cache_key(source->uri, cache_name, psize);
+ g_free (cache_name);
pixbuf = svg_preview_cache.get_preview_from_cache(key);
if (pixbuf == NULL) {
- pixbuf = render_pixbuf(root, sf, *dbox, psize);
+ pixbuf = render_pixbuf(root, sf, to_2geom(*dbox), psize);
svg_preview_cache.set_preview_in_cache(key, pixbuf);
}
* Adds previews of markers in marker_list to the given menu widget
*/
static void
-sp_marker_menu_build (GtkWidget *m, GSList *marker_list, SPDocument *source, SPDocument *sandbox, gchar *menu_id)
+sp_marker_menu_build (GtkWidget *m, GSList *marker_list, SPDocument *source, SPDocument *sandbox, gchar const *menu_id)
{
// Do this here, outside of loop, to speed up preview generation:
NRArena const *arena = NRArena::create();
@@ -717,7 +722,7 @@ sp_marker_menu_build (GtkWidget *m, GSList *marker_list, SPDocument *source, SPD
*
*/
static void
-sp_marker_list_from_doc (GtkWidget *m, SPDocument *current_doc, SPDocument *source, SPDocument *markers_doc, SPDocument *sandbox, gchar *menu_id)
+sp_marker_list_from_doc (GtkWidget *m, SPDocument */*current_doc*/, SPDocument *source, SPDocument */*markers_doc*/, SPDocument *sandbox, gchar const *menu_id)
{
GSList *ml = ink_marker_list_get(source);
GSList *clean_ml = NULL;
@@ -772,7 +777,7 @@ gchar const *buffer = "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:sodipodi=
}
static void
-ink_marker_menu_create_menu(GtkWidget *m, gchar *menu_id, SPDocument *doc, SPDocument *sandbox)
+ink_marker_menu_create_menu(GtkWidget *m, gchar const *menu_id, SPDocument *doc, SPDocument *sandbox)
{
static SPDocument *markers_doc = NULL;
@@ -806,7 +811,7 @@ ink_marker_menu_create_menu(GtkWidget *m, gchar *menu_id, SPDocument *doc, SPDoc
// suck in from current doc
sp_marker_list_from_doc ( m, NULL, doc, markers_doc, sandbox, menu_id );
-
+
// add separator
{
GtkWidget *i = gtk_separator_menu_item_new();
@@ -827,7 +832,7 @@ ink_marker_menu_create_menu(GtkWidget *m, gchar *menu_id, SPDocument *doc, SPDoc
* Creates a menu widget to display markers from markers.svg
*/
static GtkWidget *
-ink_marker_menu( GtkWidget *tbl, gchar *menu_id, SPDocument *sandbox)
+ink_marker_menu( GtkWidget */*tbl*/, gchar const *menu_id, SPDocument *sandbox)
{
SPDesktop *desktop = inkscape_active_desktop();
SPDocument *doc = sp_desktop_document(desktop);
gtk_widget_set_sensitive(mnu, TRUE);
}
- gtk_object_set_data(GTK_OBJECT(mnu), "menu_id", menu_id);
+ gtk_object_set_data(GTK_OBJECT(mnu), "menu_id", const_cast<gchar *>(menu_id));
gtk_option_menu_set_menu(GTK_OPTION_MENU(mnu), m);
/* Set history */
}
gchar *markid = (gchar *) g_object_get_data(G_OBJECT(gtk_menu_get_active(GTK_MENU(gtk_option_menu_get_menu(mnu)))),
"marker");
- gchar *marker = "";
+ gchar const *marker = "";
if (strcmp(markid, "none")){
gchar *stockid = (gchar *) g_object_get_data(G_OBJECT(gtk_menu_get_active(GTK_MENU(gtk_option_menu_get_menu(mnu)))),
"stockid");
}
SPCSSAttr *css = sp_repr_css_attr_new();
- gchar *menu_id = (gchar *) g_object_get_data(G_OBJECT(mnu), "menu_id");
+ gchar const *menu_id = (gchar const *) g_object_get_data(G_OBJECT(mnu), "menu_id");
sp_repr_css_set_property(css, menu_id, marker);
// Also update the marker dropdown menus, so the document's markers
sp_repr_css_attr_unref(css);
- sp_document_done(document, SP_VERB_DIALOG_FILL_STROKE,
+ sp_document_done(document, SP_VERB_DIALOG_FILL_STROKE,
_("Set markers"));
};
static int
-ink_marker_menu_get_pos(GtkMenu* mnu, gchar* markname) {
-
+ink_marker_menu_get_pos(GtkMenu *mnu, gchar const *markname)
+{
if (markname == NULL)
- markname = (gchar *) g_object_get_data(G_OBJECT(gtk_menu_get_active(mnu)), "marker");
+ markname = (gchar const *) g_object_get_data(G_OBJECT(gtk_menu_get_active(mnu)), "marker");
if (markname == NULL)
return 0;
- GList *kids = GTK_MENU_SHELL(mnu)->children;
+ GList const *kids = GTK_MENU_SHELL(mnu)->children;
int i = 0;
for (; kids != NULL; kids = kids->next) {
- gchar *mark = (gchar *) g_object_get_data(G_OBJECT(kids->data), "marker");
+ gchar const *mark = (gchar const *) g_object_get_data(G_OBJECT(kids->data), "marker");
if ( mark && strcmp(mark, markname) == 0 ) {
break;
}
* the stroke line style to be updated.
*/
static void
-sp_stroke_style_line_construct(SPWidget *spw, gpointer data)
+sp_stroke_style_line_construct(SPWidget *spw, gpointer /*data*/)
{
-
#ifdef SP_SS_VERBOSE
g_print( "Stroke style widget constructed: inkscape %p repr %p\n",
spw->inkscape, spw->repr );
( SP_ACTIVE_DESKTOP
? sp_desktop_selection(SP_ACTIVE_DESKTOP)
: NULL ));
- }
+ }
}
/**
- * Callback for when stroke style widget is modified.
+ * Callback for when stroke style widget is modified.
* Triggers update action.
*/
static void
-sp_stroke_style_line_selection_modified ( SPWidget *spw,
- Inkscape::Selection *selection,
- guint flags,
- gpointer data )
+sp_stroke_style_line_selection_modified( SPWidget *spw,
+ Inkscape::Selection *selection,
+ guint flags,
+ gpointer /*data*/ )
{
if (flags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_PARENT_MODIFIED_FLAG)) {
sp_stroke_style_line_update (spw, selection);
* Triggers update action.
*/
static void
-sp_stroke_style_line_selection_changed ( SPWidget *spw,
- Inkscape::Selection *selection,
- gpointer data )
+sp_stroke_style_line_selection_changed( SPWidget *spw,
+ Inkscape::Selection *selection,
+ gpointer /*data*/ )
{
sp_stroke_style_line_update (spw, selection);
}
GtkWidget *dsel = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(spw), "dash"));
// create temporary style
- SPStyle *query = sp_style_new ();
+ SPStyle *query = sp_style_new (SP_ACTIVE_DOCUMENT);
// query into it
- int result_sw = sp_desktop_query_style (SP_ACTIVE_DESKTOP, query, QUERY_STYLE_PROPERTY_STROKEWIDTH);
- int result_ml = sp_desktop_query_style (SP_ACTIVE_DESKTOP, query, QUERY_STYLE_PROPERTY_STROKEMITERLIMIT);
- int result_cap = sp_desktop_query_style (SP_ACTIVE_DESKTOP, query, QUERY_STYLE_PROPERTY_STROKECAP);
- int result_join = sp_desktop_query_style (SP_ACTIVE_DESKTOP, query, QUERY_STYLE_PROPERTY_STROKEJOIN);
+ int result_sw = sp_desktop_query_style (SP_ACTIVE_DESKTOP, query, QUERY_STYLE_PROPERTY_STROKEWIDTH);
+ int result_ml = sp_desktop_query_style (SP_ACTIVE_DESKTOP, query, QUERY_STYLE_PROPERTY_STROKEMITERLIMIT);
+ int result_cap = sp_desktop_query_style (SP_ACTIVE_DESKTOP, query, QUERY_STYLE_PROPERTY_STROKECAP);
+ int result_join = sp_desktop_query_style (SP_ACTIVE_DESKTOP, query, QUERY_STYLE_PROPERTY_STROKEJOIN);
if (result_sw == QUERY_STYLE_NOTHING) {
/* No objects stroked, set insensitive */
sp_repr_css_attr_unref(css);
- sp_document_done(document, SP_VERB_DIALOG_FILL_STROKE,
+ sp_document_done(document, SP_VERB_DIALOG_FILL_STROKE,
_("Set stroke style"));
gtk_object_set_data(GTK_OBJECT(spw), "update", GINT_TO_POINTER(FALSE));
/**
- * Callback for when the stroke style's width changes.
+ * Callback for when the stroke style's width changes.
* Causes all line styles to be applied to all selected items.
*/
static void
-sp_stroke_style_width_changed(GtkAdjustment *adj, SPWidget *spw)
+sp_stroke_style_width_changed(GtkAdjustment */*adj*/, SPWidget *spw)
{
if (gtk_object_get_data(GTK_OBJECT(spw), "update")) {
return;
}
/**
- * Callback for when the stroke style's miterlimit changes.
+ * Callback for when the stroke style's miterlimit changes.
* Causes all line styles to be applied to all selected items.
*/
static void
-sp_stroke_style_miterlimit_changed(GtkAdjustment *adj, SPWidget *spw)
+sp_stroke_style_miterlimit_changed(GtkAdjustment */*adj*/, SPWidget *spw)
{
if (gtk_object_get_data(GTK_OBJECT(spw), "update")) {
return;
}
/**
- * Callback for when the stroke style's dash changes.
+ * Callback for when the stroke style's dash changes.
* Causes all line styles to be applied to all selected items.
*/
static void
-sp_stroke_style_line_dash_changed(SPDashSelector *dsel, SPWidget *spw)
+sp_stroke_style_line_dash_changed(SPDashSelector */*dsel*/, SPWidget *spw)
{
if (gtk_object_get_data(GTK_OBJECT(spw), "update")) {
return;
}
/**
- * Updates the marker menus to highlight the appropriate marker and scroll to
+ * Updates the marker menus to highlight the appropriate marker and scroll to
* that marker.
*/
static void