X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftags%2Fsynfigstudio_%40VERSION_MAJ%40_%40VERSION_MIN%40_%40VERSION_REV%40%2Fsrc%2Fgtkmm%2Fwidget_distance.cpp;fp=synfig-studio%2Ftags%2Fsynfigstudio_%40VERSION_MAJ%40_%40VERSION_MIN%40_%40VERSION_REV%40%2Fsrc%2Fgtkmm%2Fwidget_distance.cpp;h=050b411263c399134bd3c53f9a706513c26e6afa;hb=d98a5bdd45e2c836aa7996f22516008f1ce29947;hp=0000000000000000000000000000000000000000;hpb=c33037508a9f5a0607b14f3feed692a0d364d68a;p=synfig.git diff --git a/synfig-studio/tags/synfigstudio_@VERSION_MAJ@_@VERSION_MIN@_@VERSION_REV@/src/gtkmm/widget_distance.cpp b/synfig-studio/tags/synfigstudio_@VERSION_MAJ@_@VERSION_MIN@_@VERSION_REV@/src/gtkmm/widget_distance.cpp new file mode 100644 index 0000000..050b411 --- /dev/null +++ b/synfig-studio/tags/synfigstudio_@VERSION_MAJ@_@VERSION_MIN@_@VERSION_REV@/src/gtkmm/widget_distance.cpp @@ -0,0 +1,99 @@ +/* === S Y N F I G ========================================================= */ +/*! \file widget_distance.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 +#include "widget_distance.h" +#include "app.h" + +#include "general.h" + +#endif + +/* === U S I N G =========================================================== */ + +using namespace std; +//using namespace etl; +using namespace synfig; +using namespace studio; + +/* === M A C R O S ========================================================= */ + +/* === 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_Distance::Widget_Distance(): + Gtk::SpinButton(0.05,5), + distance_(1, Distance::SYSTEM_POINTS), + adjustment(0,-100000000,100000000,1,1,0) +{ + set_adjustment(adjustment); + set_numeric(false); +} + +Widget_Distance::~Widget_Distance() +{ +} + +int +Widget_Distance::on_input(double* new_value) +{ + distance_=synfig::String(get_text()); + *new_value=distance_.get(); + return 1; +} + +bool +Widget_Distance::on_output() +{ + try{ + distance_=get_adjustment()->get_value(); + set_text(distance_.get_string(get_digits())); + } catch (...) { /* synfig::error("Widget_Distance::on_output(): Caught something..."); */ } + return true; +} + +void +Widget_Distance::set_value(const synfig::Distance &data) +{ + distance_=data; + get_adjustment()->set_value(distance_.get()); +} + +synfig::Distance +Widget_Distance::get_value() const +{ + distance_=get_adjustment()->get_value(); + return distance_; +}