// src/gui_builder.hh - Copyright 2005, 2006, University // of Padova, dept. of Pure and Applied // Mathematics // // This file is part of SGPEMv2. // // This 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 3 of the License, or // (at your option) any later version. // // SGPEMv2 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. // // You should have received a copy of the GNU General Public License // along with SGPEMv2. If not, see http://www.gnu.org/licenses/. #ifndef GUI_BUILDER_HH #define GUI_BUILDER_HH 1 #include "holt_container_window.hh" #include "statistics_container_window.hh" #include "simulation_widget.hh" #include #include #include "simulation_controller.hh" #include #include #include #include namespace sgpem { class GuiBuilder; /** \brief This class initialize and starts the whole GUI */ class GuiBuilder { public: GuiBuilder(const std::string& gladefile = GLADEDIR "/main-window.glade"); ~GuiBuilder(); Gtk::Window& get_initial_window() const; void on_file_new_activate(); void on_file_open_activate(); void on_file_save_activate(); void on_file_saveas_activate(); void on_edit_preferences_activate(); void on_simulation_jump_to_clicked(); void on_view_show_threads_activate(); void on_view_show_holt_graph_activate(); void on_view_show_statistics_activate(); void on_configure_cpu_policy(); void on_configure_resource_policy(); void on_selected_cpu_policy(CPUPolicy* pol); void on_selected_resource_policy(ResourcePolicy* pol); void on_toggle_simulation_mode(); void open_file(const std::string& filename); void populate_with_cpu_policies(Gtk::Menu& menu); void populate_with_resource_policies(Gtk::Menu& menu); private: Glib::RefPtr _refXml; SimulationController _controller; // Used to store the loaded snapshot filename, when !empty std::string _filename; HoltContainerWindow _holt_container; StatisticsContainerWindow _statistics_container; SimulationWidget* _simulation_widget; bool _show_threads; void set_filename(const std::string& filename = ""); void ask_save(); }; } //~ namespace sgpem #endif //~ GUI_BUILDER_HH