X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftags%2Fsynfigstudio_0_61_07_rc2%2Fsrc%2Fgtkmm%2Fwidget_filename.cpp;fp=synfig-studio%2Ftags%2Fsynfigstudio_0_61_07_rc2%2Fsrc%2Fgtkmm%2Fwidget_filename.cpp;h=6eeeb623c8b44e4141c7d7a7e3c7d8c7ba1b8037;hb=88a983aae927e85c110bb243a5197df5548c2cf2;hp=0000000000000000000000000000000000000000;hpb=3078b7103aa069392b711486dbc1eaf6d4804acc;p=synfig.git diff --git a/synfig-studio/tags/synfigstudio_0_61_07_rc2/src/gtkmm/widget_filename.cpp b/synfig-studio/tags/synfigstudio_0_61_07_rc2/src/gtkmm/widget_filename.cpp new file mode 100644 index 0000000..6eeeb62 --- /dev/null +++ b/synfig-studio/tags/synfigstudio_0_61_07_rc2/src/gtkmm/widget_filename.cpp @@ -0,0 +1,117 @@ +/* === S Y N F I G ========================================================= */ +/*! \file widget_filename.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_filename.h" +#include "app.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 ========================================================= */ + +#if ! defined(_) +#define _(x) (x) +#endif + +/* === 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_Filename::Widget_Filename() +{ + entry_filename=manage(new Gtk::Entry()); + button_choose=manage(new Gtk::Button(_("Find"))); + + pack_start(*entry_filename); + pack_start(*button_choose); + entry_filename->show(); + button_choose->show(); + + button_choose->signal_clicked().connect(sigc::mem_fun(*this, &studio::Widget_Filename::on_button_choose_pressed)); + //entry_filename->signal_value_changed().connect(sigc::mem_fun(*this, &studio::Widget_Filename::on_value_changed)); + entry_filename->signal_activate().connect(sigc::mem_fun(*this, &studio::Widget_Filename::on_value_changed)); +} + +Widget_Filename::~Widget_Filename() +{ +} + +void +Widget_Filename::set_has_frame(bool x) +{ + entry_filename->set_has_frame(x); +} + + +void +Widget_Filename::set_value(const string &data) +{ + entry_filename->set_text(data); +} + +string +Widget_Filename::get_value() const +{ + try + { + return entry_filename->get_text(); + } + catch(...) + { + throw string("Caught unknown exception"); + } +} + +void +Widget_Filename::on_value_changed() +{ + signal_value_changed()(); +} + +void +Widget_Filename::on_button_choose_pressed() +{ + string filename=entry_filename->get_text(); + if(filename.empty()) + filename="."; + if(App::dialog_open_file(_("Choose File"),filename)) + entry_filename->set_text(filename); +}