X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Fsrc%2Fgui%2Fwidget_value.cpp;fp=synfig-studio%2Fsrc%2Fgui%2Fwidget_value.cpp;h=0000000000000000000000000000000000000000;hb=3c232419df8734de16ee12139a591835dc8063d5;hp=c6a8b973f4f1453d28cd46bf49a2b087ac124f38;hpb=76ba27a6690b007a956b56ba4c537c952c8c4889;p=synfig.git diff --git a/synfig-studio/src/gui/widget_value.cpp b/synfig-studio/src/gui/widget_value.cpp deleted file mode 100644 index c6a8b97..0000000 --- a/synfig-studio/src/gui/widget_value.cpp +++ /dev/null @@ -1,486 +0,0 @@ -/* === S Y N F I G ========================================================= */ -/*! \file widget_value.cpp -** \brief Template File -** -** $Id$ -** -** \legal -** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** -** This package is free software; you can redistribute it and/or -** modify it under the terms of the GNU General Public License as -** published by the Free Software Foundation; either version 2 of -** the License, or (at your option) any later version. -** -** This package is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -** General Public License for more details. -** \endlegal -*/ -/* ========================================================================= */ - -/* === H E A D E R S ======================================================= */ - -#ifdef USING_PCH -# include "pch.h" -#else -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include "widget_value.h" -#include -#include -#include -#include -#include -#include /* see XXX below */ -#include "app.h" - - -#include "widget_vector.h" -#include "widget_filename.h" -#include "widget_enum.h" -#include "widget_coloredit.h" -#include "widget_canvaschooser.h" -#include "widget_time.h" -#include "app.h" -#include "widget_distance.h" - -#include "general.h" - -#endif - -using namespace synfig; -using namespace etl; -using namespace std; -using namespace studio; - -/* === M A C R O S ========================================================= */ - -#define DIGITS 15 - -/* === G L O B A L S ======================================================= */ - -/* === P R O C E D U R E S ================================================= */ - -/* === M E T H O D S ======================================================= */ - -Widget_ValueBase::Widget_ValueBase(): - Glib::ObjectBase (typeid(Widget_ValueBase)), - Gtk::HBox(), - real_adjustment(0,-2000000000,2000000000,0.05,0.05,0), - integer_adjustment(0,-2000000000,2000000000,1,1,0), - angle_adjustment(0,-2000000000,2000000000,1,1,0) -{ - set_no_show_all(); - - label=manage(new class Gtk::Label("Unknown Datatype")); - pack_start(*label); - label->show(); - - vector_widget=manage(new class Widget_Vector()); - pack_start(*vector_widget); - - color_widget=manage(new class Widget_ColorEdit()); - pack_start(*color_widget); - - enum_widget=manage(new class Widget_Enum()); - pack_start(*enum_widget); - - real_widget=manage(new class Gtk::SpinButton(real_adjustment,0.05,DIGITS)); - pack_start(*real_widget); - - integer_widget=manage(new class Gtk::SpinButton(integer_adjustment,1,0)); - pack_start(*integer_widget); - - angle_widget=manage(new class Gtk::SpinButton(angle_adjustment,15,2)); - pack_start(*angle_widget); - - bool_widget=manage(new class Gtk::CheckButton()); - pack_start(*bool_widget); - - //color_widget=manage(new class Gtk::ColorSelection()); - //pack_start(*color_widget); - - string_widget=manage(new class Gtk::Entry()); - pack_start(*string_widget); - - canvas_widget=manage(new class Widget_CanvasChooser()); - pack_start(*canvas_widget); - - filename_widget=manage(new class Widget_Filename()); - pack_start(*filename_widget); - - time_widget=manage(new class Widget_Time()); - pack_start(*time_widget); - - distance_widget=manage(new class Widget_Distance()); - pack_start(*distance_widget); - - - vector_widget->signal_activate().connect(sigc::mem_fun(*this,&Widget_ValueBase::activate)); - color_widget->signal_activate().connect(sigc::mem_fun(*this,&Widget_ValueBase::activate)); - enum_widget->signal_activate().connect(sigc::mem_fun(*this,&Widget_ValueBase::activate)); - real_widget->signal_activate().connect(sigc::mem_fun(*this,&Widget_ValueBase::activate)); - integer_widget->signal_activate().connect(sigc::mem_fun(*this,&Widget_ValueBase::activate)); - angle_widget->signal_activate().connect(sigc::mem_fun(*this,&Widget_ValueBase::activate)); - string_widget->signal_activate().connect(sigc::mem_fun(*this,&Widget_ValueBase::activate)); - canvas_widget->signal_activate().connect(sigc::mem_fun(*this,&Widget_ValueBase::activate)); - filename_widget->signal_activate().connect(sigc::mem_fun(*this,&Widget_ValueBase::activate)); - time_widget->signal_activate().connect(sigc::mem_fun(*this,&Widget_ValueBase::activate)); - distance_widget->signal_activate().connect(sigc::mem_fun(*this,&Widget_ValueBase::activate)); - - /*signal_focus_in_event().connect( - sigc::bind_return( - sigc::hide( - sigc::mem_fun(*this,&Widget_ValueBase::grab_focus) - ),false - ) - );*/ -} - -Widget_ValueBase::~Widget_ValueBase() -{ -} - -void -Widget_ValueBase::activate() -{ - signal_activate()(); -} - -void -Widget_ValueBase::inside_cellrenderer() -{ - string_widget->set_has_frame(false); - string_widget->gobj()->is_cell_renderer = true; // XXX - - real_widget->set_has_frame(false); - //static_cast(real_widget)->gobj()->is_cell_renderer = true; // XXX - - distance_widget->set_has_frame(false); - //static_cast(distance_widget)->gobj()->is_cell_renderer = true; // XXX - - integer_widget->set_has_frame(false); - //static_cast(integer_widget)->gobj()->is_cell_renderer = true; // XXX - vector_widget->set_has_frame(false); - //vector_widget->set_digits(10); - - color_widget->set_has_frame(false); - //color_widget->set_digits(10); - filename_widget->set_has_frame(false); - time_widget->set_has_frame(false); -} - -void -Widget_ValueBase::set_sensitive(bool x) -{ - Gtk::HBox::set_sensitive(x); - label->set_sensitive(x); - vector_widget->set_sensitive(x); - real_widget->set_sensitive(x); - integer_widget->set_sensitive(x); - bool_widget->set_sensitive(x); - color_widget->set_sensitive(x); - string_widget->set_sensitive(x); - canvas_widget->set_sensitive(x); - enum_widget->set_sensitive(x); - angle_widget->set_sensitive(x); - filename_widget->set_sensitive(x); - time_widget->set_sensitive(x); - distance_widget->set_sensitive(x); -} - -void -Widget_ValueBase::set_value(const synfig::ValueBase &data) -{ - label->hide(); - vector_widget->hide(); - real_widget->hide(); - integer_widget->hide(); - bool_widget->hide(); - color_widget->hide(); - string_widget->hide(); - canvas_widget->hide(); - enum_widget->hide(); - angle_widget->hide(); - filename_widget->hide(); - time_widget->hide(); - distance_widget->hide(); - - value=data; - try{ - switch(value.get_type()) - { - case ValueBase::TYPE_VECTOR: - vector_widget->set_canvas(canvas); - vector_widget->set_value(value.get(Vector())); - vector_widget->show(); - break; - case ValueBase::TYPE_REAL: - if(param_desc.get_is_distance() && canvas) - { - Distance dist(value.get(Real()),Distance::SYSTEM_UNITS); - dist.convert(App::distance_system,canvas->rend_desc()); - distance_widget->set_value(dist); - distance_widget->show(); - } - else - { - real_widget->set_value(value.get(Real())); - real_widget->show(); - } - break; - case ValueBase::TYPE_TIME: - if(canvas)time_widget->set_fps(canvas->rend_desc().get_frame_rate()); - time_widget->set_value(value.get(Time())); - time_widget->show(); - break; - case ValueBase::TYPE_ANGLE: - angle_widget->set_value(Angle::deg(value.get(Angle())).get()); - angle_widget->show(); - break; - case ValueBase::TYPE_INTEGER: - if(param_desc.get_hint()!="enum") - { - integer_widget->set_value(value.get(int())); - integer_widget->show(); - } - else - { - enum_widget->set_param_desc(param_desc); - enum_widget->set_value(value.get(int())); - enum_widget->show(); - } - break; - case ValueBase::TYPE_CANVAS: - assert(canvas); - canvas_widget->set_parent_canvas(canvas); - canvas_widget->set_value(value.get(etl::loose_handle())); - canvas_widget->show(); - break; - case ValueBase::TYPE_BOOL: - bool_widget->set_active(value.get(bool())); - bool_widget->show(); - break; - case ValueBase::TYPE_STRING: - if(param_desc.get_hint()!="filename") - { - string_widget->set_text(value.get(string())); - string_widget->show(); - } - else - { - filename_widget->set_value(value.get(string())); - filename_widget->show(); - } - break; - case ValueBase::TYPE_COLOR: - { - color_widget->set_value(value.get(synfig::Color())); - color_widget->show(); -/* - Gdk::Color gdkcolor; - synfig::Color color=value.get(synfig::Color()); - gdkcolor.set_rgb_p(color.get_r(),color.get_g(),color.get_b()); - color_widget->set_current_color(gdkcolor); - color_widget->set_has_opacity_control(true); - color_widget->set_current_alpha((unsigned short)(color.get_a()*65535.0)); - color_widget->show(); -*/ - } - break; - default: - label->show(); - break; - } - }catch(...) { synfig::error(__FILE__":%d: Caught something that was thrown",__LINE__); } -} - -const synfig::ValueBase & -Widget_ValueBase::get_value() -{ - switch(value.get_type()) - { - case ValueBase::TYPE_VECTOR: - value=vector_widget->get_value(); - break; - case ValueBase::TYPE_REAL: - if(param_desc.get_is_distance() && canvas) - value=distance_widget->get_value().units(canvas->rend_desc()); - else - value=real_widget->get_value(); - break; - case ValueBase::TYPE_TIME: - value=time_widget->get_value(); - break; - case ValueBase::TYPE_ANGLE: - value=Angle::deg(angle_widget->get_value()); - break; - case ValueBase::TYPE_CANVAS: - value=canvas_widget->get_value(); - break; - case ValueBase::TYPE_INTEGER: - if(param_desc.get_hint()!="enum") - { - value=integer_widget->get_value_as_int(); - } - else - { - value=enum_widget->get_value(); - } - - break; - case ValueBase::TYPE_BOOL: - value=bool_widget->get_active(); - break; - case ValueBase::TYPE_STRING: - if(param_desc.get_hint()!="filename") - { - value=string(string_widget->get_text()); - } - else - { - value=string(filename_widget->get_value()); - } - break; - case ValueBase::TYPE_COLOR: - { - value=color_widget->get_value(); -/* - Gdk::Color gdkcolor; - synfig::Color color; - gdkcolor=color_widget->get_current_color(); - color.set_r(gdkcolor.get_red_p()); - color.set_g(gdkcolor.get_green_p()); - color.set_b(gdkcolor.get_blue_p()); - color.set_a(color_widget->get_current_alpha()/65535.0); - - value=color; -*/ - } - break; - default: - break; - } - - return value; -} - - -void -Widget_ValueBase::on_grab_focus() -{ - switch(value.get_type()) - { - case ValueBase::TYPE_VECTOR: - vector_widget->grab_focus(); - break; - case ValueBase::TYPE_REAL: - if(param_desc.get_is_distance()&& canvas) - distance_widget->grab_focus(); - else - real_widget->grab_focus(); - break; - case ValueBase::TYPE_TIME: - time_widget->grab_focus(); - break; - case ValueBase::TYPE_ANGLE: - angle_widget->grab_focus(); - break; - case ValueBase::TYPE_CANVAS: - canvas_widget->grab_focus(); - break; - case ValueBase::TYPE_INTEGER: - if(param_desc.get_hint()!="enum") - { - integer_widget->grab_focus(); - } - else - { - enum_widget->grab_focus(); - } - - break; - case ValueBase::TYPE_BOOL: - bool_widget->grab_focus(); - break; - case ValueBase::TYPE_STRING: - if(param_desc.get_hint()!="filename") - { - string_widget->grab_focus(); - } - else - { - filename_widget->grab_focus(); - } - break; - case ValueBase::TYPE_COLOR: - { - color_widget->grab_focus(); - } - break; - default: - break; - } -} - -/* -Glib::SignalProxy0 -Widget_ValueBase::signal_activate() -{ - switch(value.get_type()) - { - case ValueBase::TYPE_VECTOR: - return vector_widget->signal_activate(); - break; - case ValueBase::TYPE_REAL: - if(param_desc.get_is_distance()&& canvas) - return distance_widget->signal_activate(); - else - return real_widget->signal_activate(); - - break; - case ValueBase::TYPE_TIME: - return time_widget->signal_activate(); - break; - case ValueBase::TYPE_ANGLE: - return angle_widget->signal_activate(); - break; - case ValueBase::TYPE_CANVAS: - return canvas_widget->signal_activate(); - break; - case ValueBase::TYPE_INTEGER: - if(param_desc.get_hint()!="enum") - return integer_widget->signal_activate(); - else - return enum_widget->signal_activate(); - - break; - case ValueBase::TYPE_BOOL: - return string_widget->signal_activate(); - break; - case ValueBase::TYPE_STRING: - if(param_desc.get_hint()!="filename") - { - return string_widget->signal_activate(); - } - else - { - return filename_widget->signal_activate(); - } - break; - case ValueBase::TYPE_COLOR: - { - return color_widget->signal_activate(); - } - break; - default: - return string_widget->signal_activate(); - break; - } -} -*/