|
|
|
|
@ -9,9 +9,8 @@ Menu_os::~Menu_os()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Menu_os::set_bnt_save(Gtk::Button *btnSave, bool flag_save) {
|
|
|
|
|
this->btnSave = btnSave;
|
|
|
|
|
this->flag_save = flag_save;
|
|
|
|
|
void Menu_os::set_last_launched_os(string str_last_launched_os) {
|
|
|
|
|
this->str_last_launched_os = str_last_launched_os;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Menu_os::set_builder(Glib::RefPtr<Gtk::Builder>& builder, string path_glade) {
|
|
|
|
|
@ -44,9 +43,9 @@ void Menu_os::init() {
|
|
|
|
|
map_menu_level_1[key]->btnToL2AndLv3_css = map_menu_level_1[key]->btnToL2AndLv3->get_style_context();
|
|
|
|
|
map_menu_level_1[key]->btnToL2AndLv3_css->add_class("noborder");
|
|
|
|
|
map_menu_level_1[key]->builder = builder_level_1;
|
|
|
|
|
map_menu_level_1[key]->lblRevL1->set_text(key);
|
|
|
|
|
boxLevel1->pack_end(*(map_menu_level_1[key]->boxMenuLevel1));
|
|
|
|
|
map_menu_level_1[key]->name = key;
|
|
|
|
|
this->html_last_launched_os(key, map_menu_level_1[key]->lblRevL1);
|
|
|
|
|
map_menu_level_1[key]->btnToL2AndLv3->signal_clicked().connect(
|
|
|
|
|
sigc::bind<Gtk::Label*, string&, string&> (sigc::mem_fun( *this,
|
|
|
|
|
&Menu_os::event_template), map_menu_level_1[key]->lblRevL1,
|
|
|
|
|
@ -62,7 +61,7 @@ void Menu_os::init() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
size_t index_l3 = 0;
|
|
|
|
|
for (string& str_level_2: vec_value) {
|
|
|
|
|
for (string& str_level_3: vec_value) {
|
|
|
|
|
auto builder_level_3 = Gtk::Builder::create_from_file(path_glade);
|
|
|
|
|
map_menu_level_1[key]->vec_menu_level_3.push_back(new struct_menu_level_3);
|
|
|
|
|
builder_level_3->get_widget("btnToL3",
|
|
|
|
|
@ -72,7 +71,7 @@ void Menu_os::init() {
|
|
|
|
|
map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3_css =
|
|
|
|
|
map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3->get_style_context();
|
|
|
|
|
map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3_css->add_class("noborder");
|
|
|
|
|
map_menu_level_1[key]->vec_menu_level_3[index_l3]->lblToL3->set_text(str_level_2);
|
|
|
|
|
this->html_last_launched_os(str_level_3, map_menu_level_1[key]->vec_menu_level_3[index_l3]->lblToL3);
|
|
|
|
|
map_menu_level_1[key]->boxLevel3->pack_start(
|
|
|
|
|
*(map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3));
|
|
|
|
|
map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3->signal_clicked().connect(
|
|
|
|
|
@ -108,7 +107,10 @@ void Menu_os::set_entry(Gtk::Entry *entry) {
|
|
|
|
|
void Menu_os::event_template(Gtk::Label* label, string& name_level, string& key) {
|
|
|
|
|
name_level = label->get_label();
|
|
|
|
|
key_global = key;
|
|
|
|
|
|
|
|
|
|
Utils::str_remove(name_level_1, "<b>");
|
|
|
|
|
Utils::str_remove(name_level_1, "</b>");
|
|
|
|
|
Utils::str_remove(name_level_3, "<b>");
|
|
|
|
|
Utils::str_remove(name_level_3, "</b>");
|
|
|
|
|
Gtk::Revealer *revealer = map_menu_level_1[key]->revealer;
|
|
|
|
|
if (&name_level == &name_level_1 && map_menu_level_1[key]->vec_menu_level_3.size() != 0) {
|
|
|
|
|
this->close_revealer();
|
|
|
|
|
@ -134,4 +136,34 @@ void Menu_os::to_l1() {
|
|
|
|
|
map_menu_level_1[key_global]->revealer->set_reveal_child(false);
|
|
|
|
|
key_global = "";
|
|
|
|
|
}
|
|
|
|
|
void Menu_os::html_last_launched_os(string name_os, Gtk::Label *label) {
|
|
|
|
|
string margin_name_os = "";
|
|
|
|
|
size_t index_find = this->str_last_launched_os.find(">");
|
|
|
|
|
size_t len_last_launched_os = this->str_last_launched_os.length();
|
|
|
|
|
if (index_find != string::npos) {
|
|
|
|
|
string level_1 = this->str_last_launched_os.substr(0, index_find + 1);
|
|
|
|
|
string level_3 = this->str_last_launched_os.substr(index_find + 1, len_last_launched_os - 1);
|
|
|
|
|
if (name_os == level_1) {
|
|
|
|
|
margin_name_os = "<b>" + name_os + "</b>";
|
|
|
|
|
label->set_markup(margin_name_os);
|
|
|
|
|
}
|
|
|
|
|
else if (name_os == level_3) {
|
|
|
|
|
margin_name_os = "<b>" + name_os + "</b>";
|
|
|
|
|
label->set_markup(margin_name_os);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
label->set_text(name_os);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (this->str_last_launched_os == name_os) {
|
|
|
|
|
margin_name_os = "<b>" + name_os + "</b>";
|
|
|
|
|
label->set_markup(margin_name_os);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
label->set_text(name_os);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|