~ubuntu-branches/ubuntu/lucid/synfigstudio/lucid

« back to all changes in this revision

Viewing changes to src/gtkmm/widget_defaults.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Stefano Zacchiroli
  • Date: 2010-01-26 11:20:50 UTC
  • mfrom: (1.1.5 upstream) (2.1.3 sid)
  • Revision ID: james.westby@ubuntu.com-20100126112050-e43u17c5zpc5hse4
Tags: 0.62.00-1
* QA upload
* Properly orphan the package (set Maintainer to QA, empty Uploaders)
* New upstream release
* Bump build-dep on (lib)synfig to most recent version
* Bump standards-version to 3.8.3, no changes needed
* Change section of the "-dbg" package to debug, thanks lintian

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
/*!     \file widget_defaults.cpp
3
3
**      \brief Template File
4
4
**
5
 
**      $Id: widget_defaults.cpp 2098 2008-10-14 21:00:21Z genete $
 
5
**      $Id$
6
6
**
7
7
**      \legal
8
8
**      Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
75
75
                add_events(Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK);
76
76
                add_events(Gdk::BUTTON1_MOTION_MASK);
77
77
 
78
 
                synfigapp::Main::signal_foreground_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw));
79
 
                synfigapp::Main::signal_background_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw));
 
78
                synfigapp::Main::signal_outline_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw));
 
79
                synfigapp::Main::signal_fill_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw));
80
80
                synfigapp::Main::signal_bline_width_changed().connect(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw));
81
81
                studio::App::signal_instance_selected().connect(sigc::hide(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw)));
82
82
        }
100
100
                        RendDesc rend_desc;
101
101
                        pixelsize=synfigapp::Main::get_bline_width().get(Distance::SYSTEM_PIXELS,rend_desc);
102
102
                }
103
 
                // Fill in the background color
104
 
                render_color_to_window(get_window(),Gdk::Rectangle(0,0,w,h),synfigapp::Main::get_background_color());
 
103
                // Fill in the fill color
 
104
                render_color_to_window(get_window(),Gdk::Rectangle(0,0,w,h),synfigapp::Main::get_fill_color());
105
105
 
106
106
/*
107
 
                gc->set_rgb_fg_color(colorconv_synfig2gdk(synfigapp::Main::get_background_color()));
 
107
                gc->set_rgb_fg_color(colorconv_synfig2gdk(synfigapp::Main::get_fill_color()));
108
108
                gc->set_line_attributes(1,Gdk::LINE_SOLID,Gdk::CAP_BUTT,Gdk::JOIN_MITER);
109
109
                get_window()->draw_rectangle(
110
110
                        gc,
115
115
*/
116
116
 
117
117
                // Draw in the circle
118
 
                gc->set_rgb_fg_color(colorconv_synfig2gdk(synfigapp::Main::get_foreground_color()));
 
118
                gc->set_rgb_fg_color(colorconv_synfig2gdk(synfigapp::Main::get_outline_color()));
119
119
                gc->set_function(Gdk::COPY);
120
120
                gc->set_line_attributes(1,Gdk::LINE_SOLID,Gdk::CAP_BUTT,Gdk::JOIN_MITER);
121
121
                get_window()->draw_arc(
206
206
        {
207
207
                Gtk::Table* subtable(manage(new Gtk::Table()));
208
208
 
209
 
                // Foreground Color
210
 
                widget_fg_color=manage(new Widget_Color());
211
 
                widget_fg_color->show();
212
 
                widget_fg_color->set_size_request(16,16);
213
 
                widget_fg_color->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_fg_color_clicked));
214
 
                subtable->attach(*widget_fg_color, 0, 4, 0, 4, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
215
 
                tooltips_.set_tip(*widget_fg_color,_("Foreground Color"));
 
209
                // Outline Color
 
210
                widget_otln_color=manage(new Widget_Color());
 
211
                widget_otln_color->show();
 
212
                widget_otln_color->set_size_request(16,16);
 
213
                widget_otln_color->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_otln_color_clicked));
 
214
                subtable->attach(*widget_otln_color, 0, 4, 0, 4, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
 
215
                tooltips_.set_tip(*widget_otln_color,_("Outline Color"));
216
216
 
217
 
                // Background Color
218
 
                widget_bg_color=manage(new Widget_Color());
219
 
                widget_bg_color->show();
220
 
                widget_bg_color->set_size_request(16,16);
221
 
                widget_bg_color->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_bg_color_clicked));
222
 
                subtable->attach(*widget_bg_color, 3, 7, 3, 7, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
223
 
                tooltips_.set_tip(*widget_bg_color,_("Background Color"));
 
217
                // Fill Color
 
218
                widget_fill_color=manage(new Widget_Color());
 
219
                widget_fill_color->show();
 
220
                widget_fill_color->set_size_request(16,16);
 
221
                widget_fill_color->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_fill_color_clicked));
 
222
                subtable->attach(*widget_fill_color, 3, 7, 3, 7, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
 
223
                tooltips_.set_tip(*widget_fill_color,_("Fill Color"));
224
224
 
225
225
                Gtk::Image* icon;
226
226
 
237
237
                dynamic_cast<Gtk::Misc*>(button_swap->get_child())->set_padding(0,0);
238
238
                button_swap->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_swap_color_clicked));
239
239
                subtable->attach(*button_swap, 4, 7, 0, 3, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);
240
 
                tooltips_.set_tip(*button_swap,_("Swap Background and\nForeground Colors"));
 
240
                tooltips_.set_tip(*button_swap,_("Swap Fill and\nOutline Colors"));
241
241
 
242
242
                // Reset button
243
243
                Gtk::Button* button_reset(manage(new Gtk::Button()));
316
316
        // Signals
317
317
        synfigapp::Main::signal_opacity_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::opacity_refresh));
318
318
        synfigapp::Main::signal_bline_width_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::bline_width_refresh));
319
 
        synfigapp::Main::signal_foreground_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::fg_color_refresh));
320
 
        synfigapp::Main::signal_background_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::bg_color_refresh));
 
319
        synfigapp::Main::signal_outline_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::otln_color_refresh));
 
320
        synfigapp::Main::signal_fill_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::fill_color_refresh));
321
321
        synfigapp::Main::signal_gradient_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::gradient_refresh));
322
322
        synfigapp::Main::signal_blend_method_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::blend_method_refresh));
323
323
        synfigapp::Main::signal_interpolation_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::interpolation_refresh));
324
324
 
325
 
        fg_color_refresh();
326
 
        bg_color_refresh();
 
325
        otln_color_refresh();
 
326
        fill_color_refresh();
327
327
        gradient_refresh();
328
328
        blend_method_refresh();
329
329
        opacity_refresh();
334
334
        add_events(Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK);
335
335
        add_events(Gdk::BUTTON1_MOTION_MASK);
336
336
 
337
 
        synfigapp::Main::signal_foreground_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::queue_draw));
338
 
        synfigapp::Main::signal_background_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::queue_draw));
 
337
        synfigapp::Main::signal_outline_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::queue_draw));
 
338
        synfigapp::Main::signal_fill_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::queue_draw));
339
339
        synfigapp::Main::signal_gradient_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::queue_draw));
340
340
        synfigapp::Main::signal_bline_width_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::queue_draw));
341
341
 
348
348
 
349
349
        if(App::dialog_color)
350
350
        {
351
 
                App::dialog_color->set_color(synfigapp::Main::get_foreground_color());
 
351
                App::dialog_color->set_color(synfigapp::Main::get_outline_color());
352
352
                App::dialog_color->reset();
353
 
                App::dialog_color->signal_edited().connect(sigc::mem_fun(synfigapp::Main::set_foreground_color));
 
353
                App::dialog_color->signal_edited().connect(sigc::mem_fun(synfigapp::Main::set_outline_color));
354
354
        }
355
355
*/
356
356
}
360
360
}
361
361
 
362
362
void
363
 
Widget_Defaults::fg_color_refresh()
 
363
Widget_Defaults::otln_color_refresh()
364
364
{
365
 
        widget_fg_color->set_value(synfigapp::Main::get_foreground_color());
 
365
        widget_otln_color->set_value(synfigapp::Main::get_outline_color());
366
366
}
367
367
 
368
368
void
369
 
Widget_Defaults::bg_color_refresh()
 
369
Widget_Defaults::fill_color_refresh()
370
370
{
371
 
        widget_bg_color->set_value(synfigapp::Main::get_background_color());
 
371
        widget_fill_color->set_value(synfigapp::Main::get_fill_color());
372
372
}
373
373
 
374
374
void
426
426
}
427
427
 
428
428
void
429
 
Widget_Defaults::on_fg_color_clicked()
 
429
Widget_Defaults::on_otln_color_clicked()
430
430
{
431
 
        // Left click on foreground
432
 
        App::dialog_color->set_color(synfigapp::Main::get_foreground_color());
 
431
        // Left click on outline color
 
432
        App::dialog_color->set_color(synfigapp::Main::get_outline_color());
433
433
        App::dialog_color->reset();
434
 
        App::dialog_color->signal_edited().connect(sigc::ptr_fun(synfigapp::Main::set_foreground_color));
 
434
        App::dialog_color->signal_edited().connect(sigc::ptr_fun(synfigapp::Main::set_outline_color));
435
435
        App::dialog_color->present();
436
436
}
437
437
 
438
438
void
439
 
Widget_Defaults::on_bg_color_clicked()
 
439
Widget_Defaults::on_fill_color_clicked()
440
440
{
441
 
        // Left click on background
442
 
        App::dialog_color->set_color(synfigapp::Main::get_background_color());
 
441
        // Left click on fill color
 
442
        App::dialog_color->set_color(synfigapp::Main::get_fill_color());
443
443
        App::dialog_color->reset();
444
 
        App::dialog_color->signal_edited().connect(sigc::ptr_fun(synfigapp::Main::set_background_color));
 
444
        App::dialog_color->signal_edited().connect(sigc::ptr_fun(synfigapp::Main::set_fill_color));
445
445
        App::dialog_color->present();
446
446
}
447
447
 
454
454
void
455
455
Widget_Defaults::on_reset_color_clicked()
456
456
{
457
 
        synfigapp::Main::set_background_color(Color::white());
458
 
        synfigapp::Main::set_foreground_color(Color::black());
 
457
        synfigapp::Main::set_fill_color(Color::white());
 
458
        synfigapp::Main::set_outline_color(Color::black());
459
459
}
460
460
 
461
461
void
464
464
        App::dialog_gradient->set_gradient(synfigapp::Main::get_gradient());
465
465
        App::dialog_gradient->reset();
466
466
        App::dialog_gradient->signal_edited().connect(sigc::ptr_fun(synfigapp::Main::set_gradient));
 
467
        App::dialog_gradient->grab_button_set_sensitive(false);
467
468
        App::dialog_gradient->present();
468
469
}
469
470
 
477
478
        const int w(get_width());
478
479
        const int size=std::min(h-GRADIENT_HEIGHT,w);
479
480
 
480
 
        render_color_to_window(get_window(),Gdk::Rectangle(size/4,size/4,size/4*3-1,size/4*3-1),synfigapp::Main::get_background_color());
481
 
        render_color_to_window(get_window(),Gdk::Rectangle(0,0,size/4*3-1,size/4*3-1),synfigapp::Main::get_foreground_color());
 
481
        render_color_to_window(get_window(),Gdk::Rectangle(size/4,size/4,size/4*3-1,size/4*3-1),synfigapp::Main::get_fill_color());
 
482
        render_color_to_window(get_window(),Gdk::Rectangle(0,0,size/4*3-1,size/4*3-1),synfigapp::Main::get_outline_color());
482
483
        render_gradient_to_window(get_window(),Gdk::Rectangle(0,h-GRADIENT_HEIGHT,w,GRADIENT_HEIGHT-1),synfigapp::Main::get_gradient());
483
484
 
484
485
 
529
530
                        {
530
531
                                if(x<size*3/4 && y<size*3/4)
531
532
                                {
532
 
                                        // Left click on foreground
533
 
                                        App::dialog_color->set_color(synfigapp::Main::get_foreground_color());
 
533
                                        // Left click on outline coloe
 
534
                                        App::dialog_color->set_color(synfigapp::Main::get_outline_color());
534
535
                                        App::dialog_color->reset();
535
 
                                        App::dialog_color->signal_edited().connect(sigc::mem_fun(synfigapp::Main::set_foreground_color));
 
536
                                        App::dialog_color->signal_edited().connect(sigc::mem_fun(synfigapp::Main::set_outline_color));
536
537
                                        App::dialog_color->present();
537
538
                                        return true;
538
539
                                }
539
540
                                if(x>size*3/4 && y>size/4)
540
541
                                {
541
 
                                        // Left click on background
542
 
                                        App::dialog_color->set_color(synfigapp::Main::get_background_color());
 
542
                                        // Left click on fill color
 
543
                                        App::dialog_color->set_color(synfigapp::Main::get_fill_color());
543
544
                                        App::dialog_color->reset();
544
 
                                        App::dialog_color->signal_edited().connect(sigc::mem_fun(synfigapp::Main::set_background_color));
 
545
                                        App::dialog_color->signal_edited().connect(sigc::mem_fun(synfigapp::Main::set_fill_color));
545
546
                                        App::dialog_color->present();
546
547
                                        return true;
547
548
                                }