~valavanisalex/ubuntu/oneiric/inkscape/inkscape_0.48.1-2ubuntu4

« back to all changes in this revision

Viewing changes to src/widgets/gradient-toolbar.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Kees Cook, Ted Gould, Kees Cook
  • Date: 2009-06-24 14:00:43 UTC
  • mfrom: (1.1.8 upstream)
  • Revision ID: james.westby@ubuntu.com-20090624140043-07stp20mry48hqup
Tags: 0.47~pre0-0ubuntu1
* New upstream release

[ Ted Gould ]
* debian/control: Adding libgsl0 and removing version specifics on boost

[ Kees Cook ]
* debian/watch: updated to run uupdate and mangle pre-release versions.
* Dropped patches that have been taken upstream:
  - 01_mips
  - 02-poppler-0.8.3
  - 03-chinese-inkscape
  - 05_fix_latex_patch
  - 06_gcc-4.4
  - 07_cdr2svg
  - 08_skip-bad-utf-on-pdf-import
  - 09_gtk-clist
  - 10_belarussian
  - 11_libpng
  - 12_desktop
  - 13_slider
  - 100_svg_import_improvements
  - 102_sp_pattern_painter_free
  - 103_bitmap_type_print

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
#include "widgets/gradient-image.h"
27
27
#include "style.h"
28
28
 
29
 
#include "prefs-utils.h"
 
29
#include "preferences.h"
30
30
#include "document-private.h"
31
31
#include "desktop.h"
32
32
#include "desktop-handles.h"
38
38
#include "sp-radial-gradient.h"
39
39
#include "gradient-chemistry.h"
40
40
#include "selection.h"
 
41
#include "ui/icon-names.h"
41
42
 
42
43
#include "toolbox.h"
43
44
 
47
48
//########################
48
49
 
49
50
static void gr_toggle_type (GtkWidget *button, gpointer data) {
 
51
    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
50
52
    GtkWidget *linear = (GtkWidget *) g_object_get_data (G_OBJECT(data), "linear");
51
53
    GtkWidget *radial = (GtkWidget *) g_object_get_data (G_OBJECT(data), "radial");
52
54
    if (button == linear && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (linear))) {
53
 
        prefs_set_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR);
 
55
        prefs->setInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR);
54
56
        if (radial) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radial), FALSE);
55
57
    } else if (button == radial && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (radial))) {
56
 
        prefs_set_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_RADIAL);
 
58
        prefs->setInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_RADIAL);
57
59
        if (linear) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (linear), FALSE);
58
60
    }
59
61
}
60
62
 
61
63
static void gr_toggle_fillstroke (GtkWidget *button, gpointer data) {
 
64
    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
62
65
    GtkWidget *fill = (GtkWidget *) g_object_get_data (G_OBJECT(data), "fill");
63
66
    GtkWidget *stroke = (GtkWidget *) g_object_get_data (G_OBJECT(data), "stroke");
64
67
    if (button == fill && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fill))) {
65
 
        prefs_set_int_attribute ("tools.gradient", "newfillorstroke", 1);
 
68
        prefs->setBool("/tools/gradient/newfillorstroke", true);
66
69
        if (stroke) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (stroke), FALSE);
67
70
    } else if (button == stroke && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (stroke))) {
68
 
        prefs_set_int_attribute ("tools.gradient", "newfillorstroke", 0);
 
71
        prefs->setBool("/tools/gradient/newfillorstroke", false);
69
72
        if (fill) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fill), FALSE);
70
73
    }
71
74
}
113
116
void
114
117
gr_apply_gradient (Inkscape::Selection *selection, GrDrag *drag, SPGradient *gr)
115
118
{
116
 
    SPGradientType new_type = (SPGradientType) prefs_get_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR);
117
 
    guint new_fill = prefs_get_int_attribute ("tools.gradient", "newfillorstroke", 1);
 
119
    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
120
    SPGradientType new_type = (SPGradientType) prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR);
 
121
    guint new_fill = prefs->getBool("/tools/gradient/newfillorstroke", true);
118
122
 
119
123
 
120
124
    // GRADIENTFIXME: make this work for multiple selected draggers.
381
385
}
382
386
 
383
387
static void
384
 
gr_tb_selection_modified (Inkscape::Selection *selection, guint flags, gpointer data)
 
388
gr_tb_selection_modified (Inkscape::Selection *selection, guint /*flags*/, gpointer data)
385
389
{
386
390
    gr_tb_selection_changed (selection, data);
387
391
}
388
392
 
389
393
static void
390
 
gr_drag_selection_changed (gpointer dragger, gpointer data)
 
394
gr_drag_selection_changed (gpointer /*dragger*/, gpointer data)
391
395
{
392
396
    gr_tb_selection_changed (NULL, data);
393
397
}
394
398
 
395
399
static void
396
 
gr_defs_release (SPObject *defs, GtkWidget *widget)
 
400
gr_defs_release (SPObject */*defs*/, GtkWidget *widget)
397
401
{
398
402
    gr_tb_selection_changed (NULL, (gpointer) widget);
399
403
}
400
404
 
401
405
static void
402
 
gr_defs_modified (SPObject *defs, guint flags, GtkWidget *widget)
 
406
gr_defs_modified (SPObject */*defs*/, guint /*flags*/, GtkWidget *widget)
403
407
{
404
408
    gr_tb_selection_changed (NULL, (gpointer) widget);
405
409
}
406
410
 
407
 
static void gr_disconnect_sigc (GObject *obj, sigc::connection *connection) {
 
411
static void gr_disconnect_sigc (GObject */*obj*/, sigc::connection *connection) {
408
412
    connection->disconnect();
409
413
    delete connection;
410
414
}
411
415
 
412
416
static void
413
 
gr_edit (GtkWidget *button, GtkWidget *widget)
 
417
gr_edit (GtkWidget */*button*/, GtkWidget *widget)
414
418
{
415
419
    GtkWidget *om = (GtkWidget *) g_object_get_data (G_OBJECT(widget), "menu");
416
420
 
512
516
GtkWidget *
513
517
sp_gradient_toolbox_new(SPDesktop *desktop)
514
518
{
515
 
    GtkWidget *tbl = gtk_hbox_new(FALSE, 0);
 
519
    Inkscape::Preferences *prefs = Inkscape::Preferences::get();
 
520
    GtkWidget *tbl = gtk_toolbar_new();
516
521
 
517
522
    gtk_object_set_data(GTK_OBJECT(tbl), "dtw", desktop->canvas);
518
523
    gtk_object_set_data(GTK_OBJECT(tbl), "desktop", desktop);
521
526
 
522
527
    sp_toolbox_add_label(tbl, _("<b>New:</b>"));
523
528
 
524
 
    aux_toolbox_space(tbl, AUX_SPACING);
 
529
    // TODO replace aux_toolbox_space(tbl, AUX_SPACING);
525
530
 
526
531
    {
527
532
    GtkWidget *cvbox = gtk_vbox_new (FALSE, 0);
531
536
    GtkWidget *button = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION,
532
537
                                              SP_BUTTON_TYPE_TOGGLE,
533
538
                                              NULL,
534
 
                                              "fill_gradient",
 
539
                                              INKSCAPE_ICON_PAINT_GRADIENT_LINEAR,
535
540
                                              _("Create linear gradient"),
536
541
                                              tt);
537
542
    g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_type), tbl);
538
543
    g_object_set_data(G_OBJECT(tbl), "linear", button);
539
544
    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
540
 
              prefs_get_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_LINEAR);
 
545
              prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_LINEAR);
541
546
    gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0);
542
547
    }
543
548
 
545
550
    GtkWidget *button = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION,
546
551
                                              SP_BUTTON_TYPE_TOGGLE,
547
552
                                              NULL,
548
 
                                              "fill_radial",
 
553
                                              INKSCAPE_ICON_PAINT_GRADIENT_RADIAL,
549
554
                                              _("Create radial (elliptic or circular) gradient"),
550
555
                                              tt);
551
556
    g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_type), tbl);
552
557
    g_object_set_data(G_OBJECT(tbl), "radial", button);
553
558
    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
554
 
              prefs_get_int_attribute ("tools.gradient", "newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_RADIAL);
 
559
              prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR) == SP_GRADIENT_TYPE_RADIAL);
555
560
    gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0);
556
561
    }
557
562
 
558
563
    gtk_box_pack_start(GTK_BOX(cvbox), cbox, TRUE, FALSE, 0);
559
 
    gtk_box_pack_start(GTK_BOX(tbl), cvbox, FALSE, FALSE, 0);
 
564
    gtk_toolbar_append_widget( GTK_TOOLBAR(tbl), cvbox, "", "" );
560
565
    }
561
566
 
562
 
    aux_toolbox_space(tbl, AUX_SPACING);
 
567
    // TODO replace aux_toolbox_space(tbl, AUX_SPACING);
563
568
 
564
569
    sp_toolbox_add_label(tbl, _("on"), false);
565
570
 
566
 
    aux_toolbox_space(tbl, AUX_SPACING);
 
571
    // TODO replace aux_toolbox_space(tbl, AUX_SPACING);
567
572
 
568
573
    {
569
574
        GtkWidget *cvbox = gtk_vbox_new (FALSE, 0);
573
578
    GtkWidget *button = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION,
574
579
                                              SP_BUTTON_TYPE_TOGGLE,
575
580
                                              NULL,
576
 
                                              "controls_fill",
 
581
                                              INKSCAPE_ICON_OBJECT_FILL,
577
582
                                              _("Create gradient in the fill"),
578
583
                                              tt);
579
584
    g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_fillstroke), tbl);
580
585
    g_object_set_data(G_OBJECT(tbl), "fill", button);
581
586
    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
582
 
                                  prefs_get_int_attribute ("tools.gradient", "newfillorstroke", 1) == 1);
 
587
                                  prefs->getBool("/tools/gradient/newfillorstroke", true));
583
588
    gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0);
584
589
    }
585
590
 
587
592
    GtkWidget *button = sp_button_new_from_data( Inkscape::ICON_SIZE_DECORATION,
588
593
                                              SP_BUTTON_TYPE_TOGGLE,
589
594
                                              NULL,
590
 
                                              "controls_stroke",
 
595
                                              INKSCAPE_ICON_OBJECT_STROKE,
591
596
                                              _("Create gradient in the stroke"),
592
597
                                              tt);
593
598
    g_signal_connect_after (G_OBJECT (button), "clicked", G_CALLBACK (gr_toggle_fillstroke), tbl);
594
599
    g_object_set_data(G_OBJECT(tbl), "stroke", button);
595
600
    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button),
596
 
                                  prefs_get_int_attribute ("tools.gradient", "newfillorstroke", 1) == 0);
 
601
                                  !prefs->getBool("/tools/gradient/newfillorstroke", true));
597
602
    gtk_box_pack_start(GTK_BOX(cbox), button, FALSE, FALSE, 0);
598
603
    }
599
604
 
600
605
    gtk_box_pack_start(GTK_BOX(cvbox), cbox, TRUE, TRUE, 3);
601
 
    gtk_box_pack_start(GTK_BOX(tbl), cvbox, FALSE, FALSE, 0);
 
606
    gtk_toolbar_append_widget( GTK_TOOLBAR(tbl), cvbox, "", "" );
602
607
    }
603
608
 
604
609
 
605
610
    sp_toolbox_add_label(tbl, _("<b>Change:</b>"));
606
611
 
607
 
    aux_toolbox_space(tbl, AUX_SPACING);
 
612
    // TODO replace aux_toolbox_space(tbl, AUX_SPACING);
608
613
 
609
614
    {
610
615
        GtkWidget *vectors = gr_change_widget (desktop);
611
 
        gtk_box_pack_start (GTK_BOX (tbl), vectors, FALSE, FALSE, 0);
 
616
        gtk_toolbar_append_widget( GTK_TOOLBAR(tbl), vectors, "", "" );
612
617
    }
613
618
 
614
619
    gtk_widget_show_all(tbl);