- Add check menu item to select simulation mode
- Connect also simulation menu items in SimulationController - Fix typo in SchedulablesTreeWidget git-svn-id: svn://svn.gna.org/svn/sgpemv2/trunk@993 3ecf2c5c-341e-0410-92b4-d18e462d057c
This commit is contained in:
parent
3df5d38041
commit
5d837552c8
File diff suppressed because it is too large
Load Diff
|
@ -53,6 +53,7 @@
|
||||||
#include <gtkmm/menutoolbutton.h>
|
#include <gtkmm/menutoolbutton.h>
|
||||||
#include <gtkmm/filechooserdialog.h>
|
#include <gtkmm/filechooserdialog.h>
|
||||||
#include <gtkmm/main.h>
|
#include <gtkmm/main.h>
|
||||||
|
#include <gtkmm/checkmenuitem.h>
|
||||||
#include <gtkmm/radiomenuitem.h>
|
#include <gtkmm/radiomenuitem.h>
|
||||||
#include <gtkmm/menuitem.h>
|
#include <gtkmm/menuitem.h>
|
||||||
#include <gtkmm/radiobuttongroup.h>
|
#include <gtkmm/radiobuttongroup.h>
|
||||||
|
@ -362,6 +363,17 @@ GuiBuilder::on_selected_resource_policy(ResourcePolicy* pol)
|
||||||
sbar->push(_("Selected resource policy ") + pol->get_name());
|
sbar->push(_("Selected resource policy ") + pol->get_name());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
GuiBuilder::on_toggle_simulation_mode()
|
||||||
|
{
|
||||||
|
Gtk::CheckMenuItem* continuous_mode;
|
||||||
|
_refXml->get_widget("MenuItem.Simulation.ContinuousMode", continuous_mode);
|
||||||
|
if(continuous_mode->get_active() == true)
|
||||||
|
Simulation::get_instance().set_mode(Simulation::mode_continuous);
|
||||||
|
else
|
||||||
|
Simulation::get_instance().set_mode(Simulation::mode_step_by_step);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
GuiBuilder::GuiBuilder(const std::string& gladefile)
|
GuiBuilder::GuiBuilder(const std::string& gladefile)
|
||||||
: _refXml(Xml::create(gladefile)), _controller(Simulation::get_instance(), _refXml)
|
: _refXml(Xml::create(gladefile)), _controller(Simulation::get_instance(), _refXml)
|
||||||
|
@ -386,9 +398,10 @@ GuiBuilder::GuiBuilder(const std::string& gladefile)
|
||||||
file_saveas->signal_activate().connect(sigc::mem_fun(*this, &GuiBuilder::on_file_saveas_activate));
|
file_saveas->signal_activate().connect(sigc::mem_fun(*this, &GuiBuilder::on_file_saveas_activate));
|
||||||
|
|
||||||
|
|
||||||
// Connect extra signals (decide where to do this...
|
// ---------------- Menu items ------------------
|
||||||
// here -- ugly -- derive widgets and then use
|
|
||||||
// Glade::Xml::get_widget_derived -- better --)
|
// Note: the Play, Pause and Stop menu items are already managed by sgpem::SimulationController.
|
||||||
|
|
||||||
MenuItem* file_quit = NULL;
|
MenuItem* file_quit = NULL;
|
||||||
_refXml->get_widget("MenuItem.File.Quit", file_quit);
|
_refXml->get_widget("MenuItem.File.Quit", file_quit);
|
||||||
file_quit->signal_activate().connect(sigc::ptr_fun(&Main::quit));
|
file_quit->signal_activate().connect(sigc::ptr_fun(&Main::quit));
|
||||||
|
@ -398,6 +411,10 @@ GuiBuilder::GuiBuilder(const std::string& gladefile)
|
||||||
_refXml->get_widget("MenuItem.Edit.Preferences", edit_preferences);
|
_refXml->get_widget("MenuItem.Edit.Preferences", edit_preferences);
|
||||||
edit_preferences->signal_activate().connect(sigc::mem_fun(*this, &GuiBuilder::on_edit_preferences_activate));
|
edit_preferences->signal_activate().connect(sigc::mem_fun(*this, &GuiBuilder::on_edit_preferences_activate));
|
||||||
|
|
||||||
|
CheckMenuItem* continuous_mode;
|
||||||
|
_refXml->get_widget("MenuItem.Simulation.ContinuousMode", continuous_mode);
|
||||||
|
continuous_mode->signal_toggled().connect(sigc::mem_fun(*this, &GuiBuilder::on_toggle_simulation_mode));
|
||||||
|
|
||||||
|
|
||||||
// ---------------- Toolbar buttons ------------------
|
// ---------------- Toolbar buttons ------------------
|
||||||
|
|
||||||
|
@ -492,9 +509,17 @@ SimulationController::SimulationController(Simulation& simulation, Glib::RefPtr<
|
||||||
refXml->get_widget("ToolBar.Pause", _toolbt_pause);
|
refXml->get_widget("ToolBar.Pause", _toolbt_pause);
|
||||||
refXml->get_widget("ToolBar.Stop", _toolbt_stop);
|
refXml->get_widget("ToolBar.Stop", _toolbt_stop);
|
||||||
|
|
||||||
|
refXml->get_widget("MenuItem.Simulation.Play", _menuit_start);
|
||||||
|
refXml->get_widget("MenuItem.Simulation.Pause", _menuit_pause);
|
||||||
|
refXml->get_widget("MenuItem.Simulation.Stop", _menuit_stop);
|
||||||
|
|
||||||
_toolbt_start->signal_clicked().connect(sigc::mem_fun(*this, &SimulationController::on_simulation_run));
|
_toolbt_start->signal_clicked().connect(sigc::mem_fun(*this, &SimulationController::on_simulation_run));
|
||||||
_toolbt_pause->signal_clicked().connect(sigc::mem_fun(*this, &SimulationController::on_simulation_pause));
|
_toolbt_pause->signal_clicked().connect(sigc::mem_fun(*this, &SimulationController::on_simulation_pause));
|
||||||
_toolbt_stop->signal_clicked().connect(sigc::mem_fun(*this, &SimulationController::on_simulation_stop));
|
_toolbt_stop->signal_clicked().connect(sigc::mem_fun(*this, &SimulationController::on_simulation_stop));
|
||||||
|
|
||||||
|
_menuit_start->signal_activate().connect(sigc::mem_fun(*this, &SimulationController::on_simulation_run));
|
||||||
|
_menuit_pause->signal_activate().connect(sigc::mem_fun(*this, &SimulationController::on_simulation_pause));
|
||||||
|
_menuit_stop->signal_activate().connect(sigc::mem_fun(*this, &SimulationController::on_simulation_stop));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -512,6 +537,10 @@ SimulationController::on_simulation_run()
|
||||||
_toolbt_pause->set_sensitive(true);
|
_toolbt_pause->set_sensitive(true);
|
||||||
_toolbt_stop->set_sensitive(true);
|
_toolbt_stop->set_sensitive(true);
|
||||||
|
|
||||||
|
_menuit_start->set_sensitive(false);
|
||||||
|
_menuit_pause->set_sensitive(true);
|
||||||
|
_menuit_stop->set_sensitive(true);
|
||||||
|
|
||||||
_break_requested = false;
|
_break_requested = false;
|
||||||
// Used instead of simply calling "_sim.run()" to
|
// Used instead of simply calling "_sim.run()" to
|
||||||
// have exception handling only in one place:
|
// have exception handling only in one place:
|
||||||
|
@ -527,6 +556,10 @@ SimulationController::on_simulation_pause()
|
||||||
_toolbt_pause->set_sensitive(false);
|
_toolbt_pause->set_sensitive(false);
|
||||||
_toolbt_stop->set_sensitive(true);
|
_toolbt_stop->set_sensitive(true);
|
||||||
|
|
||||||
|
_menuit_start->set_sensitive(true);
|
||||||
|
_menuit_pause->set_sensitive(false);
|
||||||
|
_menuit_stop->set_sensitive(true);
|
||||||
|
|
||||||
_break_requested = true;
|
_break_requested = true;
|
||||||
_sim.pause();
|
_sim.pause();
|
||||||
}
|
}
|
||||||
|
@ -540,6 +573,10 @@ SimulationController::on_simulation_stop()
|
||||||
_toolbt_pause->set_sensitive(false);
|
_toolbt_pause->set_sensitive(false);
|
||||||
_toolbt_stop->set_sensitive(false);
|
_toolbt_stop->set_sensitive(false);
|
||||||
|
|
||||||
|
_menuit_start->set_sensitive(true);
|
||||||
|
_menuit_pause->set_sensitive(false);
|
||||||
|
_menuit_stop->set_sensitive(false);
|
||||||
|
|
||||||
_break_requested = true;
|
_break_requested = true;
|
||||||
_sim.stop();
|
_sim.stop();
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,6 +68,10 @@ namespace sgpem
|
||||||
Gtk::ToolButton* _toolbt_start;
|
Gtk::ToolButton* _toolbt_start;
|
||||||
Gtk::ToolButton* _toolbt_pause;
|
Gtk::ToolButton* _toolbt_pause;
|
||||||
Gtk::ToolButton* _toolbt_stop;
|
Gtk::ToolButton* _toolbt_stop;
|
||||||
|
|
||||||
|
Gtk::MenuItem* _menuit_start;
|
||||||
|
Gtk::MenuItem* _menuit_pause;
|
||||||
|
Gtk::MenuItem* _menuit_stop;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -88,6 +92,7 @@ namespace sgpem
|
||||||
void on_configure_resource_policy();
|
void on_configure_resource_policy();
|
||||||
void on_selected_cpu_policy(CPUPolicy* pol);
|
void on_selected_cpu_policy(CPUPolicy* pol);
|
||||||
void on_selected_resource_policy(ResourcePolicy* pol);
|
void on_selected_resource_policy(ResourcePolicy* pol);
|
||||||
|
void on_toggle_simulation_mode();
|
||||||
|
|
||||||
void populate_with_cpu_policies(Gtk::Menu& menu);
|
void populate_with_cpu_policies(Gtk::Menu& menu);
|
||||||
void populate_with_resource_policies(Gtk::Menu& menu);
|
void populate_with_resource_policies(Gtk::Menu& menu);
|
||||||
|
|
|
@ -613,7 +613,7 @@ SchedulablesTreeWidget::markup_schedulable(const Schedulable& s)
|
||||||
oss << "<small><span foreground=\""
|
oss << "<small><span foreground=\""
|
||||||
<< GlobalPreferences::get_instance().get_schedulable_color(s.get_state())
|
<< GlobalPreferences::get_instance().get_schedulable_color(s.get_state())
|
||||||
<< "\"><b>" << Markup::escape_text(s.get_name()) << "</b></span>"
|
<< "\"><b>" << Markup::escape_text(s.get_name()) << "</b></span>"
|
||||||
<< _(", arrived at: ") << s.get_arrival_time()
|
<< _(", arrives at: ") << s.get_arrival_time()
|
||||||
<< _(", base priority: ") << s.get_base_priority()
|
<< _(", base priority: ") << s.get_base_priority()
|
||||||
<< _(", elapsed time: ") << s.get_elapsed_time()
|
<< _(", elapsed time: ") << s.get_elapsed_time()
|
||||||
<< _(", current priority: ") << s.get_current_priority()
|
<< _(", current priority: ") << s.get_current_priority()
|
||||||
|
|
Loading…
Reference in New Issue