* use the GtkBuilder for the ui
[hkl3d.git] / gui / ghkl3d / hkl3d-gui-application.h
blob3ff7c3227c6bbaf92691fa32444dbec678db35fa
1 /*
2 * This file is part of the hkl3d library.
3 * inspired from logo-model.c of the GtkGLExt logo models.
4 * written by Naofumi Yasufuku <naofumi@users.sourceforge.net>
6 * The hkl library is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * The hkl library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with the hkl library. If not, see <http://www.gnu.org/licenses/>.
19 * Copyright (C) 2010 Synchrotron SOLEIL
20 * L'Orme des Merisiers Saint-Aubin
21 * BP 48 91192 GIF-sur-YVETTE CEDEX
23 * Authors: Oussama Sboui <oussama.sboui@synchrotron-soleil.fr>
24 * Picca Frédéric-Emmanuel <picca@synchrotron-soleil.fr>
27 #ifndef __HKL3D_GUI_APPLICATION_H__
28 #define __HKL3D_GUI_APPLICATION_H__
30 #include <gtkmm.h>
32 #include "hkl3d-gui-scene.h"
34 namespace Logo
36 class Application
38 public:
39 static const Glib::ustring APP_NAME;
41 public:
42 explicit Application(unsigned int rot_count = Model::DEFAULT_ROT_COUNT,
43 bool enable_anim = true);
44 virtual ~Application(void);
46 protected:
47 // signal handlers:
48 virtual void on_button1_quit_clicked(void);
49 virtual void on_spinbutton1_value_changed(void);
50 virtual void on_spinbutton2_value_changed(void);
51 virtual void on_spinbutton3_value_changed(void);
52 virtual void on_spinbutton4_value_changed(void);
53 virtual void on_spinbutton5_value_changed(void);
54 virtual void on_spinbutton6_value_changed(void);
55 virtual bool on_key_press_event(GdkEventKey* event);
57 protected:
58 Glib::RefPtr<Gtk::Builder> _refGlade;
60 // member widgets:
61 Gtk::Window *_window1;
62 Gtk::VBox *_vbox1;
63 Scene m_Scene;
64 Gtk::SpinButton *_spinbutton1;
65 Gtk::SpinButton *_spinbutton2;
66 Gtk::SpinButton *_spinbutton3;
67 Gtk::SpinButton *_spinbutton4;
68 Gtk::SpinButton *_spinbutton5;
69 Gtk::SpinButton *_spinbutton6;
70 Gtk::Button *_button1;
72 private:
73 void get_widgets_and_objects_from_ui(void);
74 void connect_all_signals(void);
77 } // namespace Logo
79 #endif // __HKL3D_GUI_APPLICATION_H__