/*! \file widget_defaults.cpp
** \brief Template File
**
-** $Id: widget_defaults.cpp,v 1.1.1.1 2005/01/07 03:34:37 darco Exp $
+** $Id$
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2008 Chris Moore
+** Copyright (c) 2008 Carlos López
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
#include "widget_distance.h"
#include "widget_enum.h"
+#include "general.h"
+
#endif
/* === U S I N G =========================================================== */
synfigapp::Main::signal_bline_width_changed().connect(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw));
studio::App::signal_instance_selected().connect(sigc::hide(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw)));
}
-
+
bool
- redraw(GdkEventExpose*bleh)
+ redraw(GdkEventExpose */*bleh*/)
{
Glib::RefPtr<Gdk::GC> gc(Gdk::GC::create(get_window()));
-
+
const int h(get_height());
- const int w(get_width());
+ const int w(get_width());
float pixelsize(0);
if(App::get_selected_canvas_view())
const RendDesc& rend_desc(App::get_selected_canvas_view()->get_canvas()->rend_desc());
pixelsize=synfigapp::Main::get_bline_width().get(Distance::SYSTEM_PIXELS,rend_desc);
}
- else
+ else
{
RendDesc rend_desc;
pixelsize=synfigapp::Main::get_bline_width().get(Distance::SYSTEM_PIXELS,rend_desc);
/*
gc->set_rgb_fg_color(colorconv_synfig2gdk(synfigapp::Main::get_background_color()));
- gc->set_line_attributes(1,Gdk::LINE_SOLID,Gdk::CAP_BUTT,Gdk::JOIN_MITER);
+ gc->set_line_attributes(1,Gdk::LINE_SOLID,Gdk::CAP_BUTT,Gdk::JOIN_MITER);
get_window()->draw_rectangle(
gc,
true, // Fill?
w,h //w,h
);
*/
-
+
// Draw in the circle
gc->set_rgb_fg_color(colorconv_synfig2gdk(synfigapp::Main::get_foreground_color()));
gc->set_function(Gdk::COPY);
round_to_int(pixelsize+0.6),
0,
360*64
- );
-
+ );
+
return true;
}
{
// const int x(static_cast<int>(event->button.x));
const int y(static_cast<int>(event->button.y));
-
+
const int h(get_height());
-// const int w(get_width());
-
+// const int w(get_width());
+
switch(event->type)
{
case GDK_MOTION_NOTIFY:
if(event->button.button==1) // Left click
{
Distance dist(synfigapp::Main::get_bline_width());
-
+
if(y<h/2) // increase BLine size
{
dist+=DEFAULT_INCREMENT;
case GDK_SCROLL:
{
Distance dist(synfigapp::Main::get_bline_width());
-
- if(event->scroll.direction==GDK_SCROLL_UP)
- {
- dist+=DEFAULT_INCREMENT;
- }
- else if(event->scroll.direction==GDK_SCROLL_DOWN)
- {
- dist-=DEFAULT_INCREMENT;
+
+ switch(event->scroll.direction){
+ case GDK_SCROLL_UP:
+ case GDK_SCROLL_RIGHT:
+ dist+=DEFAULT_INCREMENT;
+ break;
+ case GDK_SCROLL_DOWN:
+ case GDK_SCROLL_LEFT:
+ dist-=DEFAULT_INCREMENT;
+ break;
}
synfigapp::Main::set_bline_width(dist);
return true;
default:
break;
}
-
+
return false;
}
{
//set_size_request(48,48+GRADIENT_HEIGHT+16);
//set_size_request(48,-1);
-
+
{
Gtk::Table* subtable(manage(new Gtk::Table()));
-
+
// Foreground Color
widget_fg_color=manage(new Widget_Color());
widget_fg_color->show();
widget_fg_color->set_size_request(16,16);
widget_fg_color->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_fg_color_clicked));
- subtable->attach(*widget_fg_color, 0, 2, 0, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
+ subtable->attach(*widget_fg_color, 0, 4, 0, 4, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
tooltips_.set_tip(*widget_fg_color,_("Foreground Color"));
-
+
// Background Color
widget_bg_color=manage(new Widget_Color());
widget_bg_color->show();
widget_bg_color->set_size_request(16,16);
widget_bg_color->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_bg_color_clicked));
- subtable->attach(*widget_bg_color, 1, 3, 1, 3, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
+ subtable->attach(*widget_bg_color, 3, 7, 3, 7, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
tooltips_.set_tip(*widget_bg_color,_("Background Color"));
Gtk::Image* icon;
-
+
// Swap button
Gtk::Button* button_swap(manage(new Gtk::Button()));
button_swap->show();
//button_swap->set_size_request(16/3,16/3);
dynamic_cast<Gtk::Misc*>(button_swap->get_child())->set_padding(0,0);
button_swap->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_swap_color_clicked));
- subtable->attach(*button_swap, 2, 3, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);
+ subtable->attach(*button_swap, 4, 7, 0, 3, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);
tooltips_.set_tip(*button_swap,_("Swap Background and\nForeground Colors"));
// Reset button
- Gtk::Button* button_reset(manage(new Gtk::Button("R")));
+ Gtk::Button* button_reset(manage(new Gtk::Button()));
button_reset->show();
button_reset->set_relief(Gtk::RELIEF_NONE);
button_reset->set_border_width(0);
+ icon=manage(new Gtk::Image(Gtk::StockID("synfig-reset_colors"),Gtk::IconSize(1)));
+ icon->show();
+ button_reset->add(*icon);
dynamic_cast<Gtk::Misc*>(button_reset->get_child())->set_padding(0,0);
//button_reset->set_size_request(16/3,16/3);
button_reset->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_reset_color_clicked));
- subtable->attach(*button_reset, 0,1, 2, 3, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);
+ subtable->attach(*button_reset, 0, 3, 4, 7, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);
tooltips_.set_tip(*button_reset,_("Reset Colors to Black and White"));
-
+
attach(*subtable, 0, 1, 0, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 1, 1);
subtable->set_size_request(36,36);
subtable->set_homogeneous(true);
widget_bline_width->show();
bline_width_refresh();
widget_bline_width->set_digits(2);
+ widget_bline_width->set_range(0,10000000);
widget_bline_width->set_size_request(24,-1);
widget_bline_width->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::on_bline_width_changed));
attach(*widget_bline_width,1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);
widget_interpolation->set_param_desc(
ParamDesc("interpolation")
.set_hint("enum")
- .add_enum_value(INTERPOLATION_TCB,"auto",_("TCB"))
- .add_enum_value(INTERPOLATION_CONSTANT,"constant",_("Constant"))
- .add_enum_value(INTERPOLATION_HALT,"ease",_("Ease in/out"))
- .add_enum_value(INTERPOLATION_LINEAR,"linear",_("Linear"))
+ .add_enum_value(INTERPOLATION_TCB,"auto",_("_TCB"))
+ .add_enum_value(INTERPOLATION_CONSTANT,"constant",_("_Constant"))
+ .add_enum_value(INTERPOLATION_HALT,"ease",_("_Ease In/Out"))
+ .add_enum_value(INTERPOLATION_LINEAR,"linear",_("_Linear"))
);
attach(*widget_interpolation,0, 2, 5, 6, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 1, 1);
tooltips_.set_tip(*widget_interpolation,_("Default Interpolation"));
App::dialog_gradient->reset();
App::dialog_gradient->signal_edited().connect(sigc::mem_fun(synfigapp::Main::set_gradient));
}
-
+
if(App::dialog_color)
{
App::dialog_color->set_color(synfigapp::Main::get_foreground_color());
}
*/
}
-
+
Widget_Defaults::~Widget_Defaults()
{
}
App::dialog_gradient->set_gradient(synfigapp::Main::get_gradient());
App::dialog_gradient->reset();
App::dialog_gradient->signal_edited().connect(sigc::ptr_fun(synfigapp::Main::set_gradient));
+ App::dialog_gradient->grab_button_set_sensitive(false);
App::dialog_gradient->present();
}
Glib::RefPtr<Gdk::GC> gc(Gdk::GC::create(get_window()));
const int h(get_height());
- const int w(get_width());
+ const int w(get_width());
const int size=std::min(h-GRADIENT_HEIGHT,w);
-
+
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());
render_color_to_window(get_window(),Gdk::Rectangle(0,0,size/4*3-1,size/4*3-1),synfigapp::Main::get_foreground_color());
render_gradient_to_window(get_window(),Gdk::Rectangle(0,h-GRADIENT_HEIGHT,w,GRADIENT_HEIGHT-1),synfigapp::Main::get_gradient());
-
+
Glib::RefPtr<Pango::Layout> layout(Pango::Layout::create(get_pango_context()));
-
+
gc->set_rgb_fg_color(Gdk::Color("#FF0000"));
- layout->set_text(synfigapp::Main::get_bline_width().get_string(2));
+ layout->set_text(synfigapp::Main::get_bline_width().get_string(2));
layout->set_alignment(Pango::ALIGN_CENTER);
layout->set_width(w/2);
get_window()->draw_layout(gc, w*3/4, (h-GRADIENT_HEIGHT)-16, layout);
const int y(static_cast<int>(event->button.y));
const int h(get_height());
- const int w(get_width());
+ const int w(get_width());
const int size=std::min(h-GRADIENT_HEIGHT,w);
switch(event->type)
if(x>size) // Left click on BLine Width
{
Distance dist(synfigapp::Main::get_bline_width());
-
+
if(y<size/2) // increase BLine size
{
dist+=DEFAULT_INCREMENT;
synfigapp::Main::color_swap();
return true;
}
-
+
if(x>w/2)
{
// right click on bline width
synfigapp::Main::set_bline_width(DEFAULT_WIDTH);
}
-
+
}
}
break;
case GDK_SCROLL:
{
Distance dist(synfigapp::Main::get_bline_width());
-
+
if(event->scroll.direction==GDK_SCROLL_UP)
{
dist+=DEFAULT_INCREMENT;
default:
break;
}
-
+
return false;
}
*/