Merge pull request 'master' (#83) from YanTheKaller/ubl-settings-bootloader:master into master
Reviewed-on: #83pull/91/head v2.13
commit
715e805af9
@ -1,7 +1,12 @@
|
||||
ubl-settings-bootloader.glade~
|
||||
test.cpp
|
||||
.vscode
|
||||
.vscode/
|
||||
ubl-settings-bootloader
|
||||
ubl-settings-bootloader_ru.po~
|
||||
*~
|
||||
build/
|
||||
compile/
|
||||
*#
|
||||
terminal-commands/
|
||||
compile/
|
||||
source/ubl-cmake.h
|
||||
vgcore*
|
||||
.BUILD.md
|
||||
.updatebuild.sh
|
||||
.install.sh
|
||||
|
|
|
@ -1,34 +0,0 @@
|
||||
#include "load.h"
|
||||
|
||||
namespace Lib_Load{
|
||||
void Load::set_count_error(int count_error) {
|
||||
process.set_count_error(count_error);
|
||||
}
|
||||
string Load::get_cmd_error() {
|
||||
return process.get_cmd_error();
|
||||
}
|
||||
map<string, string>& Load::get_load_data(std::map <string, string> &map_temp, string cmd) {
|
||||
string response = "";
|
||||
string key = "";
|
||||
string value = "";
|
||||
response = process.call_all_sections(cmd);
|
||||
vector<string> vec_str_key_value = Utils::split(response, '\n');
|
||||
for (const string ¶m: vec_str_key_value) {
|
||||
if ((param.find("(null)") == std::string::npos) && (param.length() != 0 )) {
|
||||
if (param.find("=") != std::string::npos) {
|
||||
size_t index = param.find("=");
|
||||
key = param.substr(0, index);
|
||||
value = param.substr(index + 1, param.length());
|
||||
Utils::str_replace_all(value, " \"","");
|
||||
Utils::str_replace_all(value, "\"","");
|
||||
map_temp[key] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
return map_temp;
|
||||
}
|
||||
int Load::get_count_error() {
|
||||
return process.get_count_error();
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
#ifndef LOAD_H
|
||||
#define LOAD_H
|
||||
|
||||
#include "my_process.h"
|
||||
namespace Lib_Load{
|
||||
class Load {
|
||||
|
||||
private:
|
||||
string sections;
|
||||
My_Process::My_Process_call process = My_Process::My_Process_call();
|
||||
public:
|
||||
int get_count_error();
|
||||
void set_count_error(int count_error);
|
||||
string get_cmd_error();
|
||||
map<string, string>& get_load_data(std::map <string, string> &map_temp, string str_flag_load);
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
#endif
|
||||
@ -1,100 +0,0 @@
|
||||
#include "ubl-settings-bootloader.h"
|
||||
|
||||
|
||||
void pars_flag(int index_start, int argc, char* argv[]);
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
string str_argv= "";
|
||||
string str_cmd_argv = "";
|
||||
for (int i=1; i<argc; i++){
|
||||
str_cmd_argv+= to_string(*argv[i]) + " ";
|
||||
}
|
||||
if (argc > 1){
|
||||
str_argv = argv[1];
|
||||
}
|
||||
bindtextdomain("ubl-settings-bootloader", "/usr/share/locale/");
|
||||
bind_textdomain_codeset("ubl-settings-bootloader", "UTF-8");
|
||||
textdomain("ubl-settings-bootloader");
|
||||
if (str_argv.find("--socket-id") != std::string::npos) {
|
||||
auto app = Gtk::Application::create(argc, argv, "org.gtkmm.example.plug");
|
||||
auto builder = Gtk::Builder::create_from_resource(path_glade);
|
||||
Glib::init();
|
||||
setlocale(LC_ALL, "");
|
||||
Glib::OptionContext context;
|
||||
|
||||
CmdArgParser parser{
|
||||
"Socket ID",
|
||||
"Command line argument for socket ID communication.",
|
||||
"No help available, sorry"
|
||||
};
|
||||
|
||||
context.set_main_group(parser);
|
||||
context.parse(argc, argv);
|
||||
|
||||
::Window socketID = parser.GetSocketID();
|
||||
|
||||
// Handle plug:
|
||||
SettingsPlug plug{socketID, builder};
|
||||
plug.show();
|
||||
|
||||
app->run(plug);
|
||||
return 0;
|
||||
}
|
||||
else if (str_argv.find("-") != std::string::npos || argc == 1) {
|
||||
int len_argv = 1;
|
||||
auto app = Gtk::Application::create(len_argv, argv, "org.gtkmm.example.plug");
|
||||
auto builder = Gtk::Builder::create_from_resource(path_glade);
|
||||
pars_flag(1, argc, argv);
|
||||
MainWindow* wnd = nullptr;
|
||||
builder->get_widget_derived("window", wnd);
|
||||
GObject *window_obj = G_OBJECT(wnd->gobj());
|
||||
Utils::yon_window_config_setup(GTK_WINDOW(window_obj));
|
||||
Utils::yon_window_config_load(ui_config_path);
|
||||
wnd->settings();
|
||||
wnd->event();
|
||||
wnd->set_menu_os_to_button();
|
||||
auto r = app->run(*wnd);
|
||||
delete wnd;
|
||||
return r;
|
||||
}
|
||||
|
||||
}
|
||||
void pars_flag(int index_start, int argc, char* argv[]) {
|
||||
string str_argv = "";
|
||||
for (int i = index_start; i<argc; i++){
|
||||
str_argv = argv[i];
|
||||
if (str_argv == "--help" || str_argv == "-h"){
|
||||
help();
|
||||
exit(1);
|
||||
}
|
||||
else if (str_argv == "--version" || str_argv == "-v"){
|
||||
string version = string(str_version) + version_application + "\n";
|
||||
cout << version.c_str();
|
||||
exit(1);
|
||||
}
|
||||
else if (str_argv == "--lock-help") {
|
||||
flag_lock_help = true;
|
||||
}
|
||||
else if (str_argv == "--lock-save") {
|
||||
flag_save = true;
|
||||
flag_save_local = true;
|
||||
flag_save_global = true;
|
||||
}
|
||||
else if (str_argv == "--lock-save-local"){
|
||||
flag_save_local = true;
|
||||
}
|
||||
else if (str_argv == "--lock-save-global"){
|
||||
flag_save_global = true;
|
||||
}
|
||||
else if (str_argv == "--lock-load-global"){
|
||||
flag_load_global = true;
|
||||
}
|
||||
else{
|
||||
if (index_start == 1){
|
||||
g_print(no_recognized);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,185 +0,0 @@
|
||||
#include "menu_os.h"
|
||||
|
||||
|
||||
Menu_os::Menu_os(/* args */)
|
||||
{
|
||||
}
|
||||
|
||||
Menu_os::~Menu_os()
|
||||
{
|
||||
}
|
||||
|
||||
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) {
|
||||
this->builder = builder;
|
||||
this->path_glade = path_glade;
|
||||
builder->get_widget("revealerL1", revealerL1);
|
||||
builder->get_widget("revealerL2", revealerL2);
|
||||
builder->get_widget("boxALLL3", boxALLL3);
|
||||
builder->get_widget("boxLevel1", boxLevel1);
|
||||
builder->get_widget("btnToLev1", btnToLev1);
|
||||
revealerL1->set_reveal_child(true);
|
||||
}
|
||||
|
||||
void Menu_os::set_btnOpenMenuOS(Gtk::Button *btnOpenMenuOS) {
|
||||
this->btnOpenMenuOS = btnOpenMenuOS;
|
||||
}
|
||||
|
||||
void Menu_os::set_map(vector<tuple<string, vector<string>>> &vec_list_os) {
|
||||
this->vec_list_os = vec_list_os;
|
||||
}
|
||||
|
||||
void Menu_os::init() {
|
||||
revealerL1->set_reveal_child(true);
|
||||
revealerL2->set_reveal_child(true);
|
||||
size_t index_l1 = 0;
|
||||
string key = "";
|
||||
|
||||
for (tuple<string, vector<string>> tuple_os: vec_list_os) {
|
||||
key = get<0>(tuple_os);
|
||||
vector<string> vec_value = get<1>(tuple_os);
|
||||
map_menu_level_1[key] = new struct_menu_level1;
|
||||
Glib::RefPtr<Gtk::Builder> builder_level_1 = Gtk::Builder::create_from_resource(path_glade);
|
||||
builder_level_1->get_widget("lblRevL1", map_menu_level_1[key]->lblRevL1);
|
||||
builder_level_1->get_widget("btnToL2AndLv3", map_menu_level_1[key]->btnToL2AndLv3);
|
||||
builder_level_1->get_widget("boxMenuLevel1", map_menu_level_1[key]->boxMenuLevel1);
|
||||
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;
|
||||
boxLevel1->pack_start(*(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,
|
||||
name_level_1, map_menu_level_1[key]->name));
|
||||
if (vec_value.size()!= 0) {
|
||||
builder_level_1->get_widget("revealerL3", map_menu_level_1[key]->revealer);
|
||||
builder_level_1->get_widget("boxLevel3", map_menu_level_1[key]->boxLevel3);
|
||||
boxALLL3->pack_start(*(map_menu_level_1[key]->revealer));
|
||||
}
|
||||
else {
|
||||
map_menu_level_1[key]->revealer = NULL;
|
||||
map_menu_level_1[key]->boxLevel3 = NULL;
|
||||
}
|
||||
size_t index_l3 = 0;
|
||||
if (vec_value.size() == 0) {
|
||||
builder_level_1->get_widget("btnToL2AndLv3Image", map_menu_level_1[key]->btnToL2AndLv3Image);
|
||||
map_menu_level_1[key]->btnToL2AndLv3Image->hide();
|
||||
}
|
||||
else {
|
||||
builder_level_1->get_widget("btnToL2AndLv3Image", map_menu_level_1[key]->btnToL2AndLv3Image);
|
||||
}
|
||||
for (string& str_level_3: vec_value) {
|
||||
auto builder_level_3 = Gtk::Builder::create_from_resource(path_glade);
|
||||
map_menu_level_1[key]->vec_menu_level_3.push_back(new struct_menu_level_3);
|
||||
builder_level_3->get_widget("btnToL3",
|
||||
map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3);
|
||||
builder_level_3->get_widget("lblToL3",
|
||||
map_menu_level_1[key]->vec_menu_level_3[index_l3]->lblToL3);
|
||||
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");
|
||||
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(
|
||||
sigc::bind<Gtk::Label*, string&, string&> (sigc::mem_fun(*this,
|
||||
&Menu_os::event_template), map_menu_level_1[key]->vec_menu_level_3[index_l3]->lblToL3,
|
||||
name_level_3, map_menu_level_1[key]->name));
|
||||
map_menu_level_1[key]->vec_menu_level_3[index_l3]->builder_level_3 = builder_level_3;
|
||||
index_l3 += 1;
|
||||
|
||||
}
|
||||
index_l1 += 1;
|
||||
}
|
||||
}
|
||||
void Menu_os::close_revealer() {
|
||||
for (auto& [key, values]: map_menu_level_1) {
|
||||
if (values->revealer != NULL) {
|
||||
values->revealer->set_reveal_child(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Menu_os::set_main_revealer(Gtk::Revealer *revealer) {
|
||||
this->main_revealer = revealer;
|
||||
}
|
||||
|
||||
void Menu_os::show() {
|
||||
revealerL1->set_reveal_child(true);
|
||||
revealerL2->set_reveal_child(false);
|
||||
this->close_revealer();
|
||||
main_revealer->set_reveal_child(true);
|
||||
}
|
||||
void Menu_os::event() {
|
||||
btnToLev1->signal_clicked().connect(sigc::mem_fun(*this, &Menu_os::to_l1));
|
||||
}
|
||||
void Menu_os::set_entry(Gtk::Entry *entry) {
|
||||
this->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) {
|
||||
revealerL1->set_reveal_child(false);
|
||||
revealerL2->set_reveal_child(true);
|
||||
this->close_revealer();
|
||||
revealer->set_reveal_child(true);
|
||||
name_level_3 = "";
|
||||
}
|
||||
else if (map_menu_level_1[key]->vec_menu_level_3.size() == 0) {
|
||||
entry->set_text(name_level_1);
|
||||
name_level_3 = "";
|
||||
main_revealer->set_reveal_child(false);
|
||||
}
|
||||
else {
|
||||
main_revealer->set_reveal_child(false);
|
||||
entry->set_text(name_level_1 + name_level_3);
|
||||
}
|
||||
}
|
||||
void Menu_os::to_l1() {
|
||||
revealerL1->set_reveal_child(true);
|
||||
revealerL2->set_reveal_child(false);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,71 +0,0 @@
|
||||
#ifndef Menu_os_H
|
||||
#define Menu_os_H
|
||||
#include <gtkmm.h>
|
||||
#include <map>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include "util.h"
|
||||
using namespace std;
|
||||
|
||||
class Menu_os
|
||||
{
|
||||
private:
|
||||
Glib::RefPtr<Gtk::Builder> builder;
|
||||
vector<tuple<string, vector<string>>> vec_list_os;
|
||||
|
||||
Gtk::Revealer *revealerL1;
|
||||
Gtk::Revealer *revealerL2;
|
||||
Gtk::Button *btnToLev1;
|
||||
Gtk::Revealer *main_revealer;
|
||||
string str_last_launched_os = "";
|
||||
private:
|
||||
string name_level_1 = "";
|
||||
string name_level_3 = "";
|
||||
string key_global = "";
|
||||
Gtk::Entry *entry;
|
||||
string path_glade = "";
|
||||
Gtk::Box *boxALLL3;
|
||||
Gtk::Box *boxLevel1;
|
||||
Gtk::Button *btnOpenMenuOS;
|
||||
struct struct_menu_level_3 {
|
||||
Gtk::Button *btnToL3;
|
||||
Gtk::Label *lblToL3;
|
||||
Glib::RefPtr<Gtk::Builder> builder_level_3;
|
||||
Glib::RefPtr<Gtk::StyleContext> btnToL3_css;
|
||||
};
|
||||
struct struct_menu_level1 {
|
||||
Gtk::Label *lblRevL1;
|
||||
Gtk::Button *btnToL2AndLv3;
|
||||
Gtk::MenuButton* btnToL2AndLv3Image;
|
||||
Gtk::Revealer *revealer;
|
||||
Gtk::Box *boxLevel3;
|
||||
Gtk::Box *boxMenuLevel1;
|
||||
string name;
|
||||
Glib::RefPtr<Gtk::Builder> builder;
|
||||
vector<struct struct_menu_level_3*> vec_menu_level_3;
|
||||
Glib::RefPtr<Gtk::StyleContext> btnToL2AndLv3_css;
|
||||
};
|
||||
|
||||
std::map<string, struct struct_menu_level1*> map_menu_level_1;
|
||||
|
||||
|
||||
public:
|
||||
Menu_os(/* args */);
|
||||
void set_builder(Glib::RefPtr<Gtk::Builder>& builder, string path_glade);
|
||||
void set_map(vector<tuple<string, vector<string>>> &vec_list_os);
|
||||
void init();
|
||||
void show();
|
||||
void close_revealer();
|
||||
void settings();
|
||||
void html_last_launched_os(string name_os, Gtk::Label *label);
|
||||
void set_last_launched_os(string str_last_launched_os);
|
||||
void set_entry(Gtk::Entry *entry);
|
||||
void event_template(Gtk::Label* label, string& name_level, string& key);
|
||||
void event();
|
||||
void set_main_revealer(Gtk::Revealer *revealer);
|
||||
void set_btnOpenMenuOS(Gtk::Button *btnOpenMenuOS);
|
||||
void to_l1();
|
||||
~Menu_os();
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -1,84 +0,0 @@
|
||||
#include "my_process.h"
|
||||
#include "util.h"
|
||||
|
||||
namespace My_Process {
|
||||
#define debug false
|
||||
struct Utils::Result<string> My_Process_call::call(string cmd) {
|
||||
this->i_error_old = this->i_error;
|
||||
struct Utils::Result<string> obj_result;
|
||||
string response = Utils::call(cmd);
|
||||
obj_result.response = response;
|
||||
if ((response.find("(null)") == std::string::npos) && (response.length() != 0 )) {
|
||||
if (response.find("=") != std::string::npos) {
|
||||
if (response.find("\n") != std::string::npos) {
|
||||
response = response.substr(response.find("=")+1,response.length());
|
||||
response = response.substr(0,response.find("\n"));
|
||||
obj_result.response = response;
|
||||
obj_result.error = 0;
|
||||
}
|
||||
else {
|
||||
obj_result.error = 1;
|
||||
this->i_error += 1;
|
||||
this->log_mess_error(cmd);
|
||||
}
|
||||
}
|
||||
else {
|
||||
obj_result.error = 2;
|
||||
this->i_error += 1;
|
||||
str_cmd_error = cmd;
|
||||
this->log_mess_error(cmd);
|
||||
}
|
||||
}
|
||||
else {
|
||||
obj_result.error = 3;
|
||||
this->i_error += 1;
|
||||
str_cmd_error = cmd;
|
||||
this->log_mess_error(cmd);
|
||||
}
|
||||
return obj_result;
|
||||
}
|
||||
|
||||
int My_Process::get_count_error() {
|
||||
return this->i_error;
|
||||
}
|
||||
|
||||
void My_Process::set_back_count_error() {
|
||||
this->i_error = this->i_error_old;
|
||||
}
|
||||
|
||||
void My_Process_system::call(string cmd, string thread_str = "") {
|
||||
string cmd_new = cmd + " " + thread_str;
|
||||
int response_cmd = system(cmd_new.c_str());
|
||||
if (response_cmd != 0) {
|
||||
this->i_error += 1;
|
||||
}
|
||||
}
|
||||
|
||||
void My_Process::set_count_error(int count_error) {
|
||||
this->i_error = count_error;
|
||||
this->str_cmd_error = "";
|
||||
}
|
||||
|
||||
void My_Process::log_mess_error(string) {
|
||||
}
|
||||
|
||||
string My_Process::get_cmd_error() {
|
||||
return this->str_cmd_error;
|
||||
}
|
||||
string My_Process_call::call_all_sections(string cmd) {
|
||||
char buffer[PATH_MAX] = {0};
|
||||
std::string result = "";
|
||||
FILE* pipe = popen(cmd.c_str(), "r");
|
||||
if (!pipe) throw std::runtime_error("popen() failed!");
|
||||
try {
|
||||
while (fgets(buffer, sizeof buffer, pipe) != NULL) {
|
||||
result += buffer;
|
||||
}
|
||||
} catch (...) {
|
||||
pclose(pipe);
|
||||
throw;
|
||||
}
|
||||
pclose(pipe);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -1,32 +0,0 @@
|
||||
#ifndef SAVE_H
|
||||
#define SAVE_H
|
||||
|
||||
#include "util.h"
|
||||
namespace My_Process{
|
||||
class My_Process {
|
||||
public:
|
||||
int i_error = 0;
|
||||
int i_error_old = 0;
|
||||
string str_cmd_error = "";
|
||||
int get_count_error();
|
||||
void set_count_error(int count_error);
|
||||
void set_back_count_error();
|
||||
void log_mess_error(string);
|
||||
string get_cmd_error();
|
||||
};
|
||||
|
||||
|
||||
class My_Process_call: public My_Process {
|
||||
public:
|
||||
struct Utils::Result<string> call(string cmd);
|
||||
string call_all_sections(string cmd);
|
||||
|
||||
};
|
||||
|
||||
class My_Process_system: public My_Process {
|
||||
public:
|
||||
void call(string cmd, string thread_str);
|
||||
|
||||
};
|
||||
}
|
||||
#endif
|
||||
@ -1,165 +0,0 @@
|
||||
#include "save.h"
|
||||
|
||||
namespace Lib_save {
|
||||
|
||||
vector<string> Save::get_error() {
|
||||
return this->vec_errors;
|
||||
}
|
||||
|
||||
bool Save::get_state_save() {
|
||||
return this->flag_no_save;
|
||||
}
|
||||
|
||||
void Save::set_data_global(std::map <string, string> &map_global) {
|
||||
this->map_global = &map_global;
|
||||
}
|
||||
|
||||
void Save::set_data_local(std::map <string, string> &map_local) {
|
||||
this->map_local = &map_local;
|
||||
}
|
||||
|
||||
void Save::set_data_gui(std::map <string, string> &map_gui) {
|
||||
this->map_gui = &map_gui;
|
||||
}
|
||||
|
||||
bool Save::check_save(string flag_save, string key_name) {
|
||||
std::map <string, string>:: iterator iter_map_data;
|
||||
std::map <string, string>:: iterator iter_map_data_old;
|
||||
std::map <string, string> *map_data_old=NULL;
|
||||
if (flag_save == "system") {
|
||||
map_data_old = map_local;
|
||||
}
|
||||
else if (flag_save == "global") {
|
||||
map_data_old = map_global;
|
||||
}
|
||||
iter_map_data = (*map_gui).find(key_name);
|
||||
iter_map_data_old = (*map_data_old).find(key_name);
|
||||
if ((*map_local).find(key_name) != (*map_local).end() && (*map_global).find(key_name) != (*map_global).end()) {
|
||||
if ((*map_local)[key_name] != (*map_global)[key_name]) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (iter_map_data_old == (*map_data_old).end() && iter_map_data != (*map_gui).end()) {
|
||||
return true;
|
||||
}
|
||||
else if (iter_map_data->second != iter_map_data_old->second) {
|
||||
return true;
|
||||
}
|
||||
else if (iter_map_data->second.length() == 0 && iter_map_data_old->second.length() == 0) {
|
||||
return false;
|
||||
}
|
||||
else if (iter_map_data->second == iter_map_data_old->second) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Save::wrapper_check_save(string flag_save, string key_name) {
|
||||
if (flag_save == "all") {
|
||||
bool bool_flag_save = this->check_save("system", key_name);
|
||||
if (bool_flag_save) {
|
||||
return true;
|
||||
}
|
||||
return this->check_save("global", key_name);
|
||||
}
|
||||
else {
|
||||
return this->check_save(flag_save, key_name);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int Save::get_count_error() {
|
||||
return process.get_count_error();
|
||||
}
|
||||
|
||||
string Save::get_cmd_error() {
|
||||
return process.get_cmd_error();
|
||||
}
|
||||
|
||||
void Save::set_count_error(int count_error) {
|
||||
process.set_count_error(count_error);
|
||||
}
|
||||
|
||||
void Save::set_vec_params(vector<string>& vec_param_names) {
|
||||
this->vec_param_names = &vec_param_names;
|
||||
}
|
||||
|
||||
void Save::save(string sections, string str_flag_save) {
|
||||
string key = "";
|
||||
string value = "";
|
||||
string cmd = "";
|
||||
string str_error = "";
|
||||
this->flag_no_save = true;
|
||||
for (const auto &key: *vec_param_names) {
|
||||
if (map_gui->find(key) != map_gui->end()) {
|
||||
value = (*map_gui)[key];
|
||||
if (this->wrapper_check_save(str_flag_save, key)) {
|
||||
if (value.length() != 0) {
|
||||
cmd = "ubconfig --target " + str_flag_save + " set " + sections + " " +
|
||||
key + "=\"" + value + "\"";
|
||||
}
|
||||
else if (value.length() == 0) {
|
||||
cmd = "ubconfig --target " + str_flag_save + " remove " + sections + " " + key;
|
||||
}
|
||||
else {
|
||||
cmd = "";
|
||||
}
|
||||
if (cmd.length() != 0) {
|
||||
process.call(cmd, "");
|
||||
this->flag_no_save = false;
|
||||
str_error = process.get_cmd_error();
|
||||
if (str_error.length() != 0) {
|
||||
this->vec_errors.push_back(str_error);
|
||||
str_error = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
void Save::save_one_cmd(string cmd1, string cmd_remove, string str_flag_save) {
|
||||
string key = "";
|
||||
string value = "";
|
||||
string cmd = "";
|
||||
this->flag_no_save = true;
|
||||
cmd = cmd1;
|
||||
string remove = cmd_remove;
|
||||
for (const auto &key: *vec_param_names) {
|
||||
if (map_gui->find(key) != map_gui->end()) {
|
||||
value = (*map_gui)[key];
|
||||
if (this->wrapper_check_save(str_flag_save, key)) {
|
||||
if (value.length() != 0) {
|
||||
cmd = cmd + key + "=\"" + value + "\" ";
|
||||
}
|
||||
else if (value.length() == 0) {
|
||||
remove = remove + key + " ";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cmd.length() != cmd1.length()) {
|
||||
this->template_save(cmd);
|
||||
}
|
||||
if (cmd_remove.length() != remove.length()) {
|
||||
this->template_save(remove);
|
||||
}
|
||||
}
|
||||
|
||||
void Save::template_save(string cmd) {
|
||||
string str_error = "";
|
||||
process.call(cmd, "");
|
||||
this->flag_no_save = false;
|
||||
str_error = process.get_cmd_error();
|
||||
if (str_error.length() != 0) {
|
||||
this->vec_errors.push_back(str_error);
|
||||
str_error = "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,33 +0,0 @@
|
||||
#ifndef MY_PROCESS_H
|
||||
#define MY_PROCESS_H
|
||||
|
||||
#include "my_process.h"
|
||||
namespace Lib_save {
|
||||
|
||||
class Save {
|
||||
private:
|
||||
std::map <string, string> *map_global;
|
||||
std::map <string, string> *map_local;
|
||||
std::map <string, string> *map_gui;
|
||||
vector<string> vec_errors;
|
||||
vector<string>* vec_param_names;
|
||||
My_Process::My_Process_system process = My_Process::My_Process_system();
|
||||
bool flag_no_save;
|
||||
void template_save(string cmd);
|
||||
public:
|
||||
void set_data_global(std::map <string, string> &map_global);
|
||||
void set_data_local(std::map <string, string> &map_local);
|
||||
void set_data_gui(std::map <string, string> &map_gui);
|
||||
bool check_save(string flag_save, string key_name);
|
||||
bool get_state_save();
|
||||
bool wrapper_check_save(string flag_save, string key_name);
|
||||
void save_one_cmd(string cmd1, string cmd_remove, string str_flag_save);
|
||||
int get_count_error();
|
||||
string get_cmd_error();
|
||||
void set_count_error(int count_error);
|
||||
void set_vec_params(vector<string>& vec_param_names);
|
||||
void save(string sections, string str_flag_save) ;
|
||||
vector<string> get_error();
|
||||
};
|
||||
}
|
||||
#endif
|
||||
@ -1 +0,0 @@
|
||||
#cmakedefine WEBKIT_FOUND
|
||||
@ -0,0 +1,115 @@
|
||||
#include "ubl-settings-bootloader.h"
|
||||
|
||||
void on_ringtone_accept(GtkWidget *,dictionary *dict){
|
||||
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
||||
yon_ringtone_window *window = yon_dictionary_get_data(dict->first->next,yon_ringtone_window*);
|
||||
const char *username = gtk_entry_get_text(GTK_ENTRY(window->NameEntry));
|
||||
const char *password = gtk_entry_get_text(GTK_ENTRY(window->CodeEntry));
|
||||
// if (yon_char_is_empty(username)){
|
||||
// yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
||||
// yon_ubl_status_highlight_incorrect(window->NameEntry);
|
||||
// return;
|
||||
// }
|
||||
if (yon_char_is_empty(password)){
|
||||
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
||||
yon_ubl_status_highlight_incorrect(window->CodeEntry);
|
||||
return;
|
||||
}
|
||||
if (!yon_char_is_empty(window->prev_name)&&strcmp(username,window->prev_name)){
|
||||
yon_window_config_erase_instant_parameter(window->prev_name,"melodies");
|
||||
char *config_melody = config(GRUB_PLAY_parameter);
|
||||
if (!yon_char_is_empty(config_melody)&&!strcmp(config_melody,password)){
|
||||
yon_config_remove_by_key(GRUB_PLAY_parameter);
|
||||
}
|
||||
}
|
||||
yon_window_config_add_instant_parameter((char*)username,"melodies",(char*)password,YON_TYPE_STRING);
|
||||
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ChooseCheck))){
|
||||
yon_config_register(GRUB_PLAY_parameter,GRUB_PLAY_command,(char*)password);
|
||||
} else {
|
||||
char *config_melody = config(GRUB_PLAY_parameter);
|
||||
if (!yon_char_is_empty(config_melody)&&!strcmp(config_melody,password)){
|
||||
yon_config_remove_by_key(GRUB_PLAY_parameter);
|
||||
}
|
||||
}
|
||||
gtk_widget_destroy(window->Window);
|
||||
yon_interface_update(widgets);
|
||||
}
|
||||
|
||||
void on_ringtone_add_clicked(GtkWidget *,main_window *widgets){
|
||||
yon_ringtone_window *window = yon_ringtone_window_new();
|
||||
|
||||
dictionary *dict = NULL;
|
||||
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
|
||||
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
|
||||
|
||||
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_ringtone_accept),dict);
|
||||
gtk_widget_show(window->Window);
|
||||
|
||||
}
|
||||
|
||||
void on_ringtone_edit_clicked(GtkWidget *,main_window *widgets){
|
||||
yon_ringtone_window *window = yon_ringtone_window_new();
|
||||
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel *model = GTK_TREE_MODEL(widgets->BootRingtoneList);
|
||||
|
||||
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->BootRingtoneTree)),&model,&iter)){
|
||||
int is_chosen;
|
||||
char *name, *code;
|
||||
gtk_tree_model_get(model,&iter,0,&is_chosen,1,&name,2,&code,-1);
|
||||
window->prev_name = yon_char_new(name);
|
||||
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->ChooseCheck),is_chosen);
|
||||
gtk_entry_set_text(GTK_ENTRY(window->NameEntry),name);
|
||||
gtk_entry_set_text(GTK_ENTRY(window->CodeEntry),code);
|
||||
}
|
||||
|
||||
dictionary *dict = NULL;
|
||||
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
|
||||
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
|
||||
|
||||
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_ringtone_accept),dict);
|
||||
gtk_widget_show(window->Window);
|
||||
|
||||
}
|
||||
|
||||
void on_ringtone_remove_clicked(GtkWidget *,main_window *widgets){
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel *model;
|
||||
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->BootRingtoneTree)),&model,&iter)){
|
||||
char *name, *code;
|
||||
gtk_tree_model_get(model,&iter,1,&name,2,&code,-1);
|
||||
dialog_confirmation_data *data = new(dialog_confirmation_data);
|
||||
data->data=NULL;
|
||||
data->function=NULL;
|
||||
data->action_text = RINGTONE_REMOVE_CONFIRM_LABEL(name);
|
||||
if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
|
||||
char *config_code = config(GRUB_PLAY_parameter);
|
||||
yon_window_config_erase_instant_parameter(name,"melodies");
|
||||
if (!yon_char_is_empty(config_code)&&strcmp(code,config_code)){
|
||||
yon_config_remove_by_key(GRUB_PLAY_parameter);
|
||||
}
|
||||
|
||||
yon_interface_update(widgets);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
yon_ringtone_window *yon_ringtone_window_new(){
|
||||
yon_ringtone_window *window = new(yon_ringtone_window);
|
||||
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ringtone);
|
||||
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
|
||||
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
|
||||
window->TitleLabel = yon_gtk_builder_get_widget(builder,"TitleLabel");
|
||||
window->ChooseCheck = yon_gtk_builder_get_widget(builder,"ChooseCheck");
|
||||
window->NameEntry = yon_gtk_builder_get_widget(builder,"NameEntry");
|
||||
window->CodeEntry = yon_gtk_builder_get_widget(builder,"CodeEntry");
|
||||
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
|
||||
window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
|
||||
window->prev_name = NULL;
|
||||
|
||||
yon_on_entry_set_allowed_symbols(GTK_ENTRY(window->CodeEntry),"01234567890 ");
|
||||
yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->NameEntry));
|
||||
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
||||
return window;
|
||||
}
|
||||
@ -0,0 +1,207 @@
|
||||
#include "ubl-settings-bootloader.h"
|
||||
|
||||
|
||||
|
||||
void on_menu_chosen(GtkWidget *, yon_menu_item *item){
|
||||
if (strcmp(item->target,DEFAULT_MENU_ITEM_LABEL)){
|
||||
gtk_entry_set_text(GTK_ENTRY(item->widgets->OSDefaultEntry),item->target);
|
||||
} else {
|
||||
gtk_entry_set_text(GTK_ENTRY(item->widgets->OSDefaultEntry),DEFAULT_MENU_ITEM_LABEL);
|
||||
}
|
||||
GdkDisplay *display = gdk_display_get_default();
|
||||
GdkSeat *seat = gdk_display_get_default_seat(display);
|
||||
if (item->window->seat_grab)
|
||||
gdk_seat_ungrab(seat);
|
||||
else
|
||||
gtk_grab_remove(item->window->MenuWindow);
|
||||
gtk_widget_destroy(item->window->MenuWindow);
|
||||
|
||||
}
|
||||
|
||||
void on_submenu_open(GtkWidget *,yon_menu_item *item){
|
||||
yon_menu_window *window = item->window;
|
||||
|
||||
dictionary *dact = NULL;
|
||||
for_dictionaries(dact,item->children){
|
||||
yon_menu_item *child = yon_dictionary_get_data(dact,yon_menu_item*);
|
||||
gtk_widget_hide(child->NextIconButton);
|
||||
gtk_list_box_insert(GTK_LIST_BOX(window->ChildrenListBox),child->MenuItemBox,-1);
|
||||
g_signal_connect(G_OBJECT(child->MenuButton),"clicked",G_CALLBACK(on_menu_chosen),dact->data);
|
||||
|
||||
}
|
||||
gtk_revealer_set_reveal_child(GTK_REVEALER(item->window->ItemsRevealer),0);
|
||||
gtk_revealer_set_reveal_child(GTK_REVEALER(item->window->ChildrenRevealer),1);
|
||||
gtk_box_set_child_packing(GTK_BOX(gtk_widget_get_parent(window->ChildrenRevealer)),window->ChildrenRevealer,1,1,0,GTK_PACK_START);
|
||||
gtk_box_set_child_packing(GTK_BOX(gtk_widget_get_parent(window->ItemsRevealer)),window->ItemsRevealer,0,0,0,GTK_PACK_START);
|
||||
yon_on_revealer_switched(window);
|
||||
g_signal_connect(G_OBJECT(window->MenuWindow),"size-allocate",G_CALLBACK(on_menu_window_size_reallocated),window);
|
||||
|
||||
}
|
||||
|
||||
yon_menu_window *yon_menu_window_open(GtkWidget *, main_window *widgets){
|
||||
yon_menu_window *window = yon_menu_window_new();
|
||||
gtk_window_set_transient_for(GTK_WINDOW(window->MenuWindow),GTK_WINDOW(widgets->Window));
|
||||
{
|
||||
yon_menu_item *item = yon_menu_item_new();
|
||||
item->widgets=widgets;
|
||||
item->window=window;
|
||||
item->children=NULL;
|
||||
gtk_label_set_text(GTK_LABEL(item->MenuTextLabel),DEFAULT_MENU_ITEM_LABEL);
|
||||
item->target=yon_char_new(DEFAULT_MENU_ITEM_LABEL);
|
||||
gtk_list_box_insert(GTK_LIST_BOX(window->ItemsListBox),item->MenuItemBox,-1);
|
||||
yon_dictionary_add_or_create_if_exists_with_data(window->menu_items,DEFAULT_MENU_ITEM_LABEL,item);
|
||||
gtk_widget_show(item->MenuItemBox);
|
||||
gtk_widget_hide(item->NextIconButton);
|
||||
g_signal_connect(G_OBJECT(item->MenuButton),"clicked",G_CALLBACK(on_menu_chosen),item);
|
||||
}
|
||||
int size;
|
||||
config_str parsed = yon_config_load(get_menus_entry_command,&size);
|
||||
for (int i=0;i<size;i++){
|
||||
yon_char_remove_last_symbol(parsed[i],'\n');
|
||||
int param_size;
|
||||
config_str parameter = yon_char_parse(parsed[i],¶m_size,">");
|
||||
dictionary * cur_item = NULL;
|
||||
if (param_size==2&&(cur_item=yon_dictionary_get(&window->menu_items,parameter[0]))){
|
||||
yon_menu_item *item = (yon_menu_item*)cur_item->data;
|
||||
yon_menu_item *item_child = yon_menu_item_new();
|
||||
gtk_widget_hide(item_child->NextIconButton);
|
||||
gtk_label_set_text(GTK_LABEL(item_child->MenuTextLabel),parameter[1]);
|
||||
item_child->target=yon_char_new(parameter[1]);
|
||||
gtk_widget_show(item_child->MenuItemBox);
|
||||
yon_dictionary_add_or_create_if_exists_with_data(item->children,parameter[1],item_child);
|
||||
item_child->widgets=widgets;
|
||||
item_child->window=window;
|
||||
|
||||
} else {
|
||||
yon_menu_item *item = yon_menu_item_new();
|
||||
item->widgets=widgets;
|
||||
item->window=window;
|
||||
gtk_label_set_text(GTK_LABEL(item->MenuTextLabel),parameter[0]);
|
||||
item->target=yon_char_new(parameter[0]);
|
||||
gtk_list_box_insert(GTK_LIST_BOX(window->ItemsListBox),item->MenuItemBox,-1);
|
||||
yon_dictionary_add_or_create_if_exists_with_data(window->menu_items,parameter[0],item);
|
||||
gtk_widget_show(item->MenuItemBox);
|
||||
if (param_size==2){
|
||||
yon_menu_item *item_child = yon_menu_item_new();
|
||||
gtk_widget_show(item->NextIconButton);
|
||||
gtk_widget_hide(item_child->NextIconButton);
|
||||
gtk_label_set_text(GTK_LABEL(item_child->MenuTextLabel),parameter[1]);
|
||||
item_child->target=yon_char_new(parameter[1]);
|
||||
gtk_widget_show(item_child->MenuItemBox);
|
||||
item_child->widgets=widgets;
|
||||
item_child->window=window;
|
||||
g_signal_connect(G_OBJECT(item->MenuButton),"clicked",G_CALLBACK(on_submenu_open),item);
|
||||
yon_dictionary_add_or_create_if_exists_with_data(item->children,parameter[1],item_child);
|
||||
} else {
|
||||
gtk_widget_hide(item->NextIconButton);
|
||||
g_signal_connect(G_OBJECT(item->MenuButton),"clicked",G_CALLBACK(on_menu_chosen),item);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
int x,y,width;
|
||||
gdk_window_get_position(gtk_widget_get_window(widgets->MenuButton),&x,&y);
|
||||
gtk_widget_translate_coordinates(widgets->MenuButton,widgets->Window,x,y,&window->button_pos_x,&window->button_pos_y);
|
||||
gtk_window_get_size(GTK_WINDOW(window->MenuWindow),&width,NULL);
|
||||
gtk_window_get_position(GTK_WINDOW(widgets->Window),&x,&y);
|
||||
gtk_window_move(GTK_WINDOW(window->MenuWindow),x+window->button_pos_x-width,y+window->button_pos_y);
|
||||
gtk_widget_realize(window->MenuWindow);
|
||||
gtk_widget_show(window->MenuWindow);
|
||||
GdkGrabStatus status = gdk_seat_grab(gdk_display_get_default_seat(gdk_display_get_default()),gtk_widget_get_window(window->MenuWindow),GDK_SEAT_CAPABILITY_POINTER,TRUE,NULL,NULL,NULL,NULL);
|
||||
if (status != GDK_GRAB_SUCCESS) {
|
||||
window->seat_grab=0;
|
||||
gtk_grab_add(window->MenuWindow);
|
||||
} else {
|
||||
window->seat_grab=1;
|
||||
}
|
||||
return window;
|
||||
}
|
||||
|
||||
gboolean on_menu_clicked(GtkWidget *, GdkEventButton *event, yon_menu_window *window){
|
||||
int x,y,width,height;
|
||||
gtk_window_get_size(GTK_WINDOW(window->MenuWindow),&width,&height);
|
||||
gtk_window_get_position(GTK_WINDOW(window->MenuWindow),&x,&y);
|
||||
if (event->x_root<x||event->y_root<y||event->x_root>x+width||event->y_root>y+height){
|
||||
|
||||
GdkDisplay *display = gdk_display_get_default();
|
||||
GdkSeat *seat = gdk_display_get_default_seat(display);
|
||||
if (window->seat_grab)
|
||||
gdk_seat_ungrab(seat);
|
||||
else
|
||||
gtk_grab_remove(window->MenuWindow);
|
||||
gtk_widget_destroy(window->MenuWindow);
|
||||
}
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
gboolean yon_on_revealer_switched (yon_menu_window *window){
|
||||
if (gtk_revealer_get_reveal_child(GTK_REVEALER(window->ItemsRevealer))){
|
||||
gtk_widget_hide(window->ChildrenRevealer);
|
||||
gtk_widget_show(window->ItemsRevealer);
|
||||
} else {
|
||||
gtk_widget_hide(window->ItemsRevealer);
|
||||
gtk_widget_show(window->ChildrenRevealer);
|
||||
|
||||
}
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
void on_children_clean(GtkWidget*, yon_menu_window *window){
|
||||
GList *list = gtk_container_get_children(GTK_CONTAINER(window->ChildrenListBox));
|
||||
list = g_list_last(list);
|
||||
for (guint i=0;i<g_list_length(list);i++){
|
||||
GList *item = gtk_container_get_children(GTK_CONTAINER(list->data));
|
||||
g_object_ref(G_OBJECT(item->data));
|
||||
gtk_container_remove(GTK_CONTAINER(list->data),GTK_WIDGET(item->data));
|
||||
gtk_widget_destroy(GTK_WIDGET(list->data));
|
||||
g_list_free(item);
|
||||
list=list->prev;
|
||||
}
|
||||
|
||||
gtk_revealer_set_reveal_child(GTK_REVEALER(window->ItemsRevealer),1);
|
||||
gtk_revealer_set_reveal_child(GTK_REVEALER(window->ChildrenRevealer),0);
|
||||
gtk_box_set_child_packing(GTK_BOX(gtk_widget_get_parent(window->ItemsRevealer)),window->ItemsRevealer,1,1,0,GTK_PACK_START);
|
||||
yon_on_revealer_switched(window);
|
||||
g_signal_connect(G_OBJECT(window->MenuWindow),"size-allocate",G_CALLBACK(on_menu_window_size_reallocated),window);
|
||||
gtk_box_set_child_packing(GTK_BOX(gtk_widget_get_parent(window->ChildrenRevealer)),window->ChildrenRevealer,0,0,0,GTK_PACK_START);
|
||||
|
||||
}
|
||||
|
||||
void on_menu_window_size_reallocated(GtkWidget *self,GtkAllocation *,yon_menu_window *window){
|
||||
|
||||
int x,y,width;
|
||||
gtk_window_get_size(GTK_WINDOW(window->MenuWindow),&width,NULL);
|
||||
gtk_window_get_position(GTK_WINDOW(gtk_window_get_transient_for(GTK_WINDOW(window->MenuWindow))),&x,&y);
|
||||
gtk_window_move(GTK_WINDOW(window->MenuWindow),x+window->button_pos_x-width,y+window->button_pos_y);
|
||||
g_signal_handlers_disconnect_by_func(self,on_menu_window_size_reallocated,window);
|
||||
}
|
||||
|
||||
yon_menu_window *yon_menu_window_new(){
|
||||
yon_menu_window *window = new(yon_menu_window);
|
||||
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_menu_window);
|
||||
window->MenuWindow = yon_gtk_builder_get_widget(builder,"MainWindow");
|
||||
window->ItemsRevealer = yon_gtk_builder_get_widget(builder,"ItemsRevealer");
|
||||
window->BackButton = yon_gtk_builder_get_widget(builder,"BackButton");
|
||||
window->ItemsListBox = yon_gtk_builder_get_widget(builder,"ItemsListBox");
|
||||
window->ChildrenRevealer = yon_gtk_builder_get_widget(builder,"ChildrenRevealer");
|
||||
window->ChildrenListBox = yon_gtk_builder_get_widget(builder,"ChildrenListBox");
|
||||
|
||||
window->menu_items=NULL;
|
||||
|
||||
g_signal_connect(G_OBJECT(window->BackButton),"clicked",G_CALLBACK(on_children_clean),window);
|
||||
g_signal_connect(G_OBJECT(window->MenuWindow),"button-press-event",G_CALLBACK(on_menu_clicked),window);
|
||||
return window;
|
||||
}
|
||||
|
||||
yon_menu_item *yon_menu_item_new(){
|
||||
yon_menu_item *item = new(yon_menu_item);
|
||||
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_menu_item);
|
||||
item->MenuItemBox = yon_gtk_builder_get_widget(builder,"MenuItemBox");
|
||||
item->MenuButton = yon_gtk_builder_get_widget(builder,"MenuButton");
|
||||
item->MenuTextLabel = yon_gtk_builder_get_widget(builder,"MenuTextLabel");
|
||||
item->NextIconButton = yon_gtk_builder_get_widget(builder,"NextIconButton");
|
||||
item->children=NULL;
|
||||
|
||||
return item;
|
||||
}
|
||||
@ -0,0 +1,122 @@
|
||||
#include "ubl-settings-bootloader.h"
|
||||
|
||||
void yon_password_change(GtkWidget *, GtkEntry *entry){
|
||||
GtkEntry *output_target = entry;
|
||||
yon_password_window *window = yon_ubl_settings_usergroups_password_new();
|
||||
dictionary *dict = NULL;
|
||||
char *password = (char*)gtk_entry_get_text(output_target);
|
||||
if (!yon_char_is_empty(password)){
|
||||
if (main_config.load_mode==0){
|
||||
password = yon_char_new(password);
|
||||
if (!check_is_password_hash(password)){
|
||||
gtk_entry_set_text(GTK_ENTRY(window->PasswordHashEntry),password);
|
||||
} else {
|
||||
if (password[0]=='%'&&password[1]=='%'){
|
||||
free(yon_char_divide(password,1));
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->NoEncriptionCheck),1);
|
||||
}
|
||||
gtk_entry_set_text(GTK_ENTRY(window->PasswordEntry),password);
|
||||
}
|
||||
}
|
||||
}
|
||||
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
|
||||
yon_dictionary_add_or_create_if_exists_with_data(dict,"target",output_target);
|
||||
g_signal_connect(G_OBJECT(window->UserOkButton),"clicked",G_CALLBACK(on_password_accept),dict);
|
||||
g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
||||
gtk_window_set_transient_for(GTK_WINDOW(window->Window),GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(output_target))));
|
||||
gtk_widget_show(window->Window);
|
||||
|
||||
}
|
||||
|
||||
void on_password_accept(GtkWidget *self, dictionary *dict){
|
||||
yon_password_window *window = yon_dictionary_get_data(dict->first,yon_password_window*);
|
||||
GtkEntry *entry = yon_dictionary_get_data(dict->first->next,GtkEntry*);
|
||||
char *password = (char*)gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry));
|
||||
|
||||
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->NoEncriptionCheck))){
|
||||
char *pasted_hash = (char*)gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry));
|
||||
if (yon_char_is_empty(pasted_hash)){
|
||||
yon_ubl_status_highlight_incorrect(window->PasswordEntry);
|
||||
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_SHORT_LABEL(yon_char_from_int(main_config.password_min_length)),5,BACKGROUND_IMAGE_FAIL_TYPE);
|
||||
return;
|
||||
}
|
||||
gtk_entry_set_text(entry,pasted_hash);
|
||||
} else {
|
||||
|
||||
char *password_check = (char*)gtk_entry_get_text(GTK_ENTRY(window->RepeatPasswordEntry));
|
||||
if (yon_char_is_empty(password)){
|
||||
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
||||
yon_ubl_status_highlight_incorrect(window->PasswordEntry);
|
||||
return;
|
||||
}
|
||||
for (size_t i=0;i<strlen(password);i++){
|
||||
if (password[i]=='!'||password[i]=='@'||password[i]=='#'||password[i]=='%'||password[i]=='^'||password[i]=='&'||password[i]=='*'||password[i]=='\"'||password[i]=='\''){
|
||||
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),RESTRICTED_SYMBOLS_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ((glong)strlen(password)<main_config.password_min_length){
|
||||
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_SHORT_LABEL(yon_char_from_int(main_config.password_min_length)),5,BACKGROUND_IMAGE_FAIL_TYPE);
|
||||
yon_ubl_status_highlight_incorrect(window->PasswordEntry);
|
||||
return;
|
||||
}
|
||||
if (strcmp(password,password_check)){
|
||||
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_MISMATCH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
||||
yon_ubl_status_highlight_incorrect(window->PasswordEntry);
|
||||
yon_ubl_status_highlight_incorrect(window->RepeatPasswordEntry);
|
||||
return;
|
||||
}
|
||||
gtk_entry_set_text(GTK_ENTRY(entry),password);
|
||||
}
|
||||
on_subwindow_close(self);
|
||||
}
|
||||
|
||||
yon_password_window *yon_ubl_settings_usergroups_password_new(){
|
||||
yon_password_window *window = malloc(sizeof(yon_password_window));
|
||||
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_password);
|
||||
window->Window=yon_gtk_builder_get_widget(builder,"MainWindow");
|
||||
window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox");
|
||||
window->TitleLabel=yon_gtk_builder_get_widget(builder,"userTitleNameLabel");
|
||||
window->PasswordEntry=yon_gtk_builder_get_widget(builder,"PasswordEntry");
|
||||
window->RepeatPasswordEntry=yon_gtk_builder_get_widget(builder,"RepeatPasswordEntry");
|
||||
window->PasswordHashEntry=yon_gtk_builder_get_widget(builder,"PasswordHashEntry");
|
||||
window->HashBox=yon_gtk_builder_get_widget(builder,"HashBox");
|
||||
window->PasswordBox=yon_gtk_builder_get_widget(builder,"PasswordBox");
|
||||
window->NoEncriptionCheck=yon_gtk_builder_get_widget(builder,"NoEncriptionCheck");
|
||||
|
||||
window->UserCancelButton=yon_gtk_builder_get_widget(builder,"UserCancelButton");
|
||||
window->UserOkButton=yon_gtk_builder_get_widget(builder,"UserOkButton");
|
||||
|
||||
yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"PasswordWindow");
|
||||
|
||||
g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
||||
g_signal_connect(G_OBJECT(window->NoEncriptionCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),window->PasswordHashEntry);
|
||||
g_signal_connect(G_OBJECT(window->NoEncriptionCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->PasswordBox);
|
||||
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordEntry));
|
||||
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->RepeatPasswordEntry));
|
||||
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordHashEntry));
|
||||
gtk_window_set_title(GTK_WINDOW(window->Window),PASSWORD_TITLE_LABEL);
|
||||
|
||||
return window;
|
||||
}
|
||||
|
||||
|
||||
int yon_check_password_blocked(char *password){
|
||||
if (!yon_char_is_empty(password)){
|
||||
if (!strcmp(password,"!*")){
|
||||
memset(password,0,strlen(password));
|
||||
return 1;
|
||||
} else if (password[0]=='!'&&password[1]=='*'){
|
||||
char *copy = yon_char_new(password);
|
||||
memcpy(copy,password+2,strlen(password+2));
|
||||
memset(password,0,strlen(password));
|
||||
memcpy(password,copy,strlen(copy));
|
||||
free(copy);
|
||||
return 1;
|
||||
} else if (password[0]=='!'||password[0]=='*'){
|
||||
free(yon_char_divide(password,0));
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,124 @@
|
||||
#include "ubl-settings-bootloader.h"
|
||||
|
||||
void on_user_accept(GtkWidget *,dictionary *dict){
|
||||
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
||||
yon_user_window *window = yon_dictionary_get_data(dict->first->next,yon_user_window*);
|
||||
const char *username = gtk_entry_get_text(GTK_ENTRY(window->UsernameEntry));
|
||||
const char *password = gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry));
|
||||
if (yon_char_is_empty(username)){
|
||||
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
||||
yon_ubl_status_highlight_incorrect(window->UsernameEntry);
|
||||
return;
|
||||
}
|
||||
if (yon_char_is_empty(password)){
|
||||
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
||||
yon_ubl_status_highlight_incorrect(window->PasswordEntry);
|
||||
return;
|
||||
}
|
||||
if (!yon_char_is_empty(window->prev_name)&&strcmp(username,window->prev_name)){
|
||||
yon_config_remove_by_key(GRUB_PASSWORD(window->prev_name));
|
||||
int size;
|
||||
char *superusers = config(GRUB_SUPERUSERS_parameter);
|
||||
config_str parsed = yon_char_parse(superusers,&size,",");
|
||||
int pos = yon_char_parsed_check_exist(parsed,size,(char*)username);
|
||||
if (pos>-1){
|
||||
parsed = yon_char_parsed_rip(parsed,&size,pos);
|
||||
char *superusers = yon_char_parsed_to_string(parsed,size,",");
|
||||
if (!yon_char_is_empty(superusers)){
|
||||
yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_command,superusers);
|
||||
} else {
|
||||
yon_config_remove_by_key(GRUB_SUPERUSERS_parameter);
|
||||
}
|
||||
}
|
||||
}
|
||||
yon_config_register(GRUB_PASSWORD(username),GRUB_PASSWORD_command,(char*)password);
|
||||
|
||||
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->AdminCheck))){
|
||||
int size;
|
||||
char *superusers = config(GRUB_SUPERUSERS_parameter);
|
||||
config_str parsed = yon_char_parse(superusers,&size,",");
|
||||
if (yon_char_parsed_check_exist(parsed,size,(char*)username)==-1){
|
||||
yon_char_parsed_add_or_create_if_exists(parsed,&size,(char*)username);
|
||||
char *superusers = yon_char_parsed_to_string(parsed,size,",");
|
||||
yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_command,superusers);
|
||||
}
|
||||
}
|
||||
gtk_widget_destroy(window->Window);
|
||||
yon_interface_update(widgets);
|
||||
}
|
||||
|
||||
void on_user_add_clicked(GtkWidget *,main_window *widgets){
|
||||
yon_user_window *window = yon_user_window_new();
|
||||
|
||||
dictionary *dict = NULL;
|
||||
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
|
||||
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
|
||||
|
||||
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_user_accept),dict);
|
||||
gtk_widget_show(window->Window);
|
||||
|
||||
}
|
||||
|
||||
void on_user_edit_clicked(GtkWidget *,main_window *widgets){
|
||||
yon_user_window *window = yon_user_window_new();
|
||||
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel *model = GTK_TREE_MODEL(widgets->BootUsersList);
|
||||
|
||||
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->BootUsersTree)),&model,&iter)){
|
||||
int is_admin;
|
||||
char *name;
|
||||
gtk_tree_model_get(model,&iter,0,&is_admin,1,&name,-1);
|
||||
window->prev_name = yon_char_new(name);
|
||||
char *password = config(GRUB_PASSWORD(name));
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->AdminCheck),is_admin);
|
||||
gtk_entry_set_text(GTK_ENTRY(window->UsernameEntry),name);
|
||||
if (password){
|
||||
gtk_entry_set_text(GTK_ENTRY(window->PasswordEntry),password);
|
||||
}
|
||||
}
|
||||
|
||||
dictionary *dict = NULL;
|
||||
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
|
||||
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
|
||||
|
||||
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_user_accept),dict);
|
||||
gtk_widget_show(window->Window);
|
||||
|
||||
}
|
||||
|
||||
void on_user_remove_clicked(GtkWidget *,main_window *widgets){
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel *model;
|
||||
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->BootUsersTree)),&model,&iter)){
|
||||
char *name;
|
||||
gtk_tree_model_get(model,&iter,1,&name,-1);
|
||||
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
|
||||
data->action_text = USER_REMOVE_CONFIRM_LABEL(name);
|
||||
if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
|
||||
yon_config_remove_by_key(GRUB_PASSWORD(name));
|
||||
yon_interface_update(widgets);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
yon_user_window *yon_user_window_new(){
|
||||
yon_user_window *window = new(yon_user_window);
|
||||
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_user);
|
||||
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
|
||||
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
|
||||
window->TitleLabel = yon_gtk_builder_get_widget(builder,"TitleLabel");
|
||||
window->AdminCheck = yon_gtk_builder_get_widget(builder,"AdminCheck");
|
||||
window->UsernameEntry = yon_gtk_builder_get_widget(builder,"UsernameEntry");
|
||||
window->PasswordEntry = yon_gtk_builder_get_widget(builder,"PasswordEntry");
|
||||
window->PasswordButton = yon_gtk_builder_get_widget(builder,"PasswordButton");
|
||||
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
|
||||
window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
|
||||
window->prev_name = NULL;
|
||||
|
||||
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
||||
g_signal_connect(G_OBJECT(window->PasswordButton),"clicked",G_CALLBACK(yon_password_change),window->PasswordEntry);
|
||||
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordEntry));
|
||||
yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->UsernameEntry));
|
||||
return window;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -1 +0,0 @@
|
||||
#cmakedefine WEBKIT_FOUND
|
||||
@ -0,0 +1,65 @@
|
||||
|
||||
#define TITLE_LABEL _("System boot")
|
||||
#define TITLE_INFO_LABEL _("Configuring system boot parameters")
|
||||
|
||||
#define BOOT_MENU_LABEL _("Boot menu")
|
||||
#define BOOT_SELECTION_LABEL _("Boot selection menu timer:")
|
||||
#define SECONDS_LABEL _("seconds")
|
||||
#define DEFAULT_LABEL _("Default")
|
||||
#define DEFAULT_OS_LABEL _("Default OS:")
|
||||
#define LOAD_DISPLAY_MODE_LABEL _("Load screen display mode:")
|
||||
#define BOOT_USERS_LABEL _("Boot Menu Users")
|
||||
#define STARTUP_RINGTONE_LABEL _("Startup ringtone")
|
||||
#define KERNEL_PARAMETERS_LABEL _("Parameters passed to the kernel")
|
||||
#define CMD_PARAMETERS_LABEL _("Command line parameters:")
|
||||
#define INPUT_TERMINAL_LABEL _("Input terminal")
|
||||
#define OUTPUT_TERMINAL_LABEL _("Output terminal")
|
||||
|
||||
#define ADMINISTRRATOR_LABEL _("Administrator")
|
||||
#define NAME_LABEL _("Name")
|
||||
#define USER_LABEL _("User")
|
||||
#define PASSWORD_LABEL _("Password")
|
||||
#define MELODY_CODE_LABEL _("Melody code")
|
||||
#define OPTION_LABEL _("Option")
|
||||
#define DESCRIPTION_LABEL _("Description")
|
||||
|
||||
#define ADD_LABEL _("Add")
|
||||
#define EDIT_LABEL _("Edit")
|
||||
#define REMOVE_LABEL _("Remove")
|
||||
|
||||
#define ACCEPT_LABEL _("Accept")
|
||||
#define CANCE_LABEL _("Cancel")
|
||||
|
||||
#define BOOT_LOG_LABEL _("Boot animation with log")
|
||||
#define BOOT_NO_LOG_LABEL _("Boot animation without log")
|
||||
#define NO_BOOT_LOG_LABEL _("No boot animation with log")
|
||||
#define NO_BOOT_NO_LOG_LABEL _("No boot animation with shortened log")
|
||||
#define BACK_LABEL _("Back")
|
||||
#define DEFAULT_MENU_ITEM_LABEL _("Default (Use last succeeded)")
|
||||
|
||||
#define PASSWORD_TITLE_LABEL _("Password input")
|
||||
#define PASSWORD_REPEAT_LABEL _("Repeat password:")
|
||||
#define PASSWORD_HASH_LABEL _("Password hash:")
|
||||
#define PASSWORD_NO_ENCRYPT_LABEL _("Do not encrypt password")
|
||||
#define RESTRICTED_SYMBOLS_LABEL _("Password contain special symbols")
|
||||
#define EMPTY_IMPORTANT_LABEL _("Empty important field")
|
||||
#define PASSWORD_MISMATCH_LABEL _("Password mismatch")
|
||||
#define PASSWORD_TEXT_LABEL _("Password:")
|
||||
#define PASSWORD_REPEAT_LABEL _("Repeat password:")
|
||||
#define PASSWORD_DO_NOT_ENCRYPT_LABEL _("Do not encrypt password")
|
||||
#define PASSWORD_HASH_LABEL _("Password hash:")
|
||||
#define PASSWORD_SHORT_LABEL(min_size_char) yon_char_unite(_("Password must be at least")," ", min_size_char," ",_("characters"))
|
||||
|
||||
#define USER_ADD_TITLE_LABEL _("Add user")
|
||||
#define USER_EDIT_TITLE_LABEL(target) yon_char_unite(_("Edit user")," - ", target,NULL)
|
||||
#define ADMINISTRATOR_LABEL _("Administrator")
|
||||
#define USER_NAME_LABEL _("User name:")
|
||||
#define USER_PASSWORD_LABEL _("User password:")
|
||||
#define USER_REMOVE_CONFIRM_LABEL(target) yon_char_unite(_("Are you sure you want to remove user")," ",target," ",_("from boot menu users"),"?",NULL)
|
||||
|
||||
#define RINGTONE_ADD_TITLE_LABEL _("Add ringtone")
|
||||
#define RINGTONE_EDIT_TITLE_LABEL(target) yon_char_unite(_("Edit ringtone")," - ", target,NULL)
|
||||
#define CHOSEN_LABEL _("Chosen")
|
||||
#define NAME_TEXT_LABEL _("Name:")
|
||||
#define MELODY_CODE_TEXT_LABEL _("Melody code:")
|
||||
#define RINGTONE_REMOVE_CONFIRM_LABEL(target) yon_char_unite(_("Are you sure you want to remove ringtone")," ",target,"?",NULL)
|
||||
@ -1,91 +0,0 @@
|
||||
#include "ubl-util-standard.h"
|
||||
#ifndef __cplusplus
|
||||
#ifndef UBL_GET_STANDARD_UI
|
||||
#define UBL_GET_STANDARD_UI
|
||||
|
||||
|
||||
inline returnstruct *ubl_make_plugs(GtkWidget *LeftWidget, GtkWidget *RightWidget, int left_plug_id, int right_plug_id){
|
||||
returnstruct *ret=(returnstruct*)malloc(sizeof(returnstruct*));
|
||||
if (left_plug_id>0&&LeftWidget){
|
||||
GtkWidget *plug=gtk_plug_new(left_plug_id);
|
||||
GtkWidget *toplug=LeftWidget;
|
||||
if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
|
||||
g_object_ref(G_OBJECT(toplug));
|
||||
GtkWidget *parent=gtk_widget_get_parent(toplug);
|
||||
gtk_container_remove(GTK_CONTAINER(parent),toplug);
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
} else
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
gtk_widget_show(GTK_WIDGET(plug));
|
||||
ret->plugLeft=plug;
|
||||
}
|
||||
if (right_plug_id>0&&RightWidget){
|
||||
GtkWidget *plug=gtk_plug_new(right_plug_id);
|
||||
GtkWidget *toplug=RightWidget;
|
||||
if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
|
||||
g_object_ref(G_OBJECT(toplug));
|
||||
GtkWidget *parent=gtk_widget_get_parent(toplug);
|
||||
gtk_container_remove(GTK_CONTAINER(parent),toplug);
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
} else
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
gtk_widget_show(GTK_WIDGET(plug));
|
||||
ret->plugRight=plug;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
|
||||
inline void ubl_make_plugs(Gtk::Widget *LeftWidget, Gtk::Widget *RightWidget, int left_plug_id, int right_plug_id){
|
||||
if (left_plug_id>0&&LeftWidget){
|
||||
GtkWidget *plug=gtk_plug_new(left_plug_id);
|
||||
GtkWidget *toplug=GTK_WIDGET(LeftWidget->gobj());
|
||||
{GdkScreen *screen = gtk_widget_get_screen(plug);
|
||||
gtk_widget_set_app_paintable(plug,TRUE);
|
||||
GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
|
||||
gtk_widget_set_visual(plug, colormap);}
|
||||
{GdkScreen *screen = gtk_widget_get_screen(toplug);
|
||||
gtk_widget_set_app_paintable(toplug,TRUE);
|
||||
GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
|
||||
gtk_widget_set_visual(toplug, colormap);}
|
||||
if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
|
||||
g_object_ref(G_OBJECT(toplug));
|
||||
GtkWidget *parent=gtk_widget_get_parent(toplug);
|
||||
gtk_container_remove(GTK_CONTAINER(parent),toplug);
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
} else
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
gtk_widget_show(GTK_WIDGET(plug));
|
||||
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"bkim");
|
||||
gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"bkim");
|
||||
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"primary-toolbar");
|
||||
}
|
||||
if (right_plug_id>0&&RightWidget){
|
||||
GtkWidget *plug=gtk_plug_new(right_plug_id);
|
||||
GtkWidget *toplug=GTK_WIDGET(RightWidget->gobj());
|
||||
{GdkScreen *screen = gtk_widget_get_screen(plug);
|
||||
gtk_widget_set_app_paintable(plug,TRUE);
|
||||
GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
|
||||
gtk_widget_set_visual(plug, colormap);}
|
||||
{GdkScreen *screen = gtk_widget_get_screen(toplug);
|
||||
gtk_widget_set_app_paintable(toplug,TRUE);
|
||||
GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
|
||||
gtk_widget_set_visual(toplug, colormap);}
|
||||
if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
|
||||
g_object_ref(G_OBJECT(toplug));
|
||||
GtkWidget *parent=gtk_widget_get_parent(toplug);
|
||||
gtk_container_remove(GTK_CONTAINER(parent),toplug);
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
} else
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
gtk_widget_show(GTK_WIDGET(plug));
|
||||
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"bkim");
|
||||
gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"bkim");
|
||||
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"primary-toolbar");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -1,20 +0,0 @@
|
||||
#ifndef __cplusplus
|
||||
#include <gtk/gtk.h>
|
||||
#include <gtk/gtkx.h>
|
||||
|
||||
typedef struct {
|
||||
GtkWidget *plugLeft;
|
||||
GtkWidget *plugRight;
|
||||
|
||||
|
||||
} returnstruct;
|
||||
static returnstruct *ubl_make_plugs(GtkWidget *LeftWidget, GtkWidget *RightWidget, int left_plug_id, int right_plug_id);
|
||||
#else
|
||||
#include <gtkmm.h>
|
||||
#include <gtkmm/stock.h>
|
||||
#include <gtkmm/window.h>
|
||||
#include <gtkmm/plug.h>
|
||||
|
||||
|
||||
static void ubl_make_plugs(Gtk::Widget *LeftWidget, Gtk::Widget *RightWidget, int left_plug_id, int right_plug_id);
|
||||
#endif
|
||||
@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface domain="ubl-settings-bootloader">
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<!-- interface-css-provider-path ubl-settings-bootloader.css -->
|
||||
<object class="GtkBox" id="MenuItemBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="MenuButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="MenuTextLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">label</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuButton" id="NextIconButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="focus-on-click">False</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="popup">menu1</property>
|
||||
<property name="direction">right</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="thin"/>
|
||||
<class name="noborder"/>
|
||||
<class name="nobackground"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="noborder"/>
|
||||
<class name="menunoborder"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkMenu" id="menu1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
</interface>
|
||||
@ -0,0 +1,203 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface domain="ubl-settings-bootloader">
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<!-- interface-css-provider-path ubl-settings-bootloader.css -->
|
||||
<object class="GtkWindow" id="MainWindow">
|
||||
<property name="width-request">450</property>
|
||||
<property name="height-request">250</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="resizable">False</property>
|
||||
<property name="modal">True</property>
|
||||
<property name="default-width">450</property>
|
||||
<property name="icon-name">com.ublinux.ubl-settings-bootloader</property>
|
||||
<property name="skip-taskbar-hint">True</property>
|
||||
<property name="skip-pager-hint">True</property>
|
||||
<property name="decorated">False</property>
|
||||
<child>
|
||||
<object class="GtkFrame">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label-xalign">0</property>
|
||||
<property name="shadow-type">in</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-end">5</property>
|
||||
<property name="margin-top">5</property>
|
||||
<property name="margin-bottom">5</property>
|
||||
<child>
|
||||
<object class="GtkRevealer" id="ItemsRevealer">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="transition-type">none</property>
|
||||
<property name="reveal-child">True</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="hscrollbar-policy">never</property>
|
||||
<property name="min-content-height">50</property>
|
||||
<property name="max-content-height">200</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="ItemsListBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<child type="placeholder">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">OS options were not found</property>
|
||||
<style>
|
||||
<class name="workingbg"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="workingbg"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRevealer" id="ChildrenRevealer">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="transition-type">none</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="BackButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkMenuButton" id="NextIconButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="focus-on-click">False</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="direction">left</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="thin"/>
|
||||
<class name="noborder"/>
|
||||
<class name="nobackground"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="MenuTextLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Back</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="noborder"/>
|
||||
<class name="menunoborder"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="hscrollbar-policy">never</property>
|
||||
<property name="min-content-height">50</property>
|
||||
<property name="max-content-height">175</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="ChildrenListBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="selection-mode">none</property>
|
||||
<child type="placeholder">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Children options were not found</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<style>
|
||||
<class name="workingbg"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child type="label_item">
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="workingbg"/>
|
||||
</style>
|
||||
</object>
|
||||
</interface>
|
||||
@ -0,0 +1,285 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface domain="ubl-settings-bootloader">
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<!-- interface-css-provider-path ubl-settings-bootloader.css -->
|
||||
<object class="GtkImage" id="image4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">com.ublinux.ubl-settings-usergroups.cancel-symbolic</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property>
|
||||
</object>
|
||||
<object class="GtkWindow" id="MainWindow">
|
||||
<property name="width-request">450</property>
|
||||
<property name="height-request">250</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="resizable">False</property>
|
||||
<property name="modal">True</property>
|
||||
<property name="default-width">450</property>
|
||||
<property name="icon-name">com.ublinux.ubl-settings-usergroups</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">5</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="StatusBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-end">5</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="PasswordBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Password:</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="PasswordEntry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="visibility">False</property>
|
||||
<property name="invisible-char">*</property>
|
||||
<property name="truncate-multiline">True</property>
|
||||
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.view-symbolic</property>
|
||||
<property name="placeholder-text" translatable="yes">********</property>
|
||||
<property name="input-purpose">password</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Repeat password:</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="RepeatPasswordEntry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="visibility">False</property>
|
||||
<property name="invisible-char">*</property>
|
||||
<property name="truncate-multiline">True</property>
|
||||
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.view-symbolic</property>
|
||||
<property name="placeholder-text" translatable="yes">********</property>
|
||||
<property name="input-purpose">password</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="HashBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="NoEncriptionCheck">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Password hash:</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="PasswordHashEntry">
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="visibility">False</property>
|
||||
<property name="invisible-char">*</property>
|
||||
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.view-symbolic</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="titlebar">
|
||||
<object class="GtkHeaderBar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child type="title">
|
||||
<object class="GtkLabel" id="userTitleNameLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Password input</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="UserCancelButton">
|
||||
<property name="label" translatable="yes">Cancel</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image4</property>
|
||||
<style>
|
||||
<class name="button"/>
|
||||
<class name="marginright"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="UserOkButton">
|
||||
<property name="label" translatable="yes">Accept</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image5</property>
|
||||
<style>
|
||||
<class name="button"/>
|
||||
<class name="marginright"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkSizeGroup">
|
||||
<widgets>
|
||||
<widget name="label3"/>
|
||||
<widget name="label2"/>
|
||||
</widgets>
|
||||
</object>
|
||||
</interface>
|
||||
@ -0,0 +1,203 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface domain="ubl-settings-bootloader">
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<!-- interface-css-provider-path ubl-settings-bootloader.css -->
|
||||
<object class="GtkWindow" id="MainWindow">
|
||||
<property name="width-request">450</property>
|
||||
<property name="height-request">250</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="resizable">False</property>
|
||||
<property name="modal">True</property>
|
||||
<property name="default-width">450</property>
|
||||
<property name="icon-name">com.ublinux.ubl-settings-usergroups</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">5</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="StatusBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-end">5</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="ChooseCheck">
|
||||
<property name="label" translatable="yes">Chosen</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Name:</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="NameEntry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Melody code:</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="CodeEntry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="invisible-char">*</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="titlebar">
|
||||
<object class="GtkHeaderBar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child type="title">
|
||||
<object class="GtkLabel" id="TitleLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Add ringtone</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="CancelButton">
|
||||
<property name="label" translatable="yes">Cancel</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image4</property>
|
||||
<style>
|
||||
<class name="button"/>
|
||||
<class name="marginright"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="AcceptButton">
|
||||
<property name="label" translatable="yes">Accept</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image5</property>
|
||||
<style>
|
||||
<class name="button"/>
|
||||
<class name="marginright"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkSizeGroup">
|
||||
<widgets>
|
||||
<widget name="label1"/>
|
||||
<widget name="label2"/>
|
||||
</widgets>
|
||||
</object>
|
||||
<object class="GtkImage" id="image4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">com.ublinux.ubl-settings-usergroups.cancel-symbolic</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property>
|
||||
</object>
|
||||
</interface>
|
||||
@ -0,0 +1,222 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface domain="ubl-settings-bootloader">
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<!-- interface-css-provider-path ubl-settings-bootloader.css -->
|
||||
<object class="GtkImage" id="image1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">document-edit-symbolic</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">com.ublinux.ubl-settings-usergroups.cancel-symbolic</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property>
|
||||
</object>
|
||||
<object class="GtkWindow" id="MainWindow">
|
||||
<property name="width-request">450</property>
|
||||
<property name="height-request">250</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="resizable">False</property>
|
||||
<property name="modal">True</property>
|
||||
<property name="default-width">450</property>
|
||||
<property name="icon-name">com.ublinux.ubl-settings-usergroups</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">5</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="StatusBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-end">5</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="AdminCheck">
|
||||
<property name="label" translatable="yes">Administrator</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">User name:</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="UsernameEntry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">User password:</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="PasswordEntry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="visibility">False</property>
|
||||
<property name="invisible-char">*</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="PasswordButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="titlebar">
|
||||
<object class="GtkHeaderBar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child type="title">
|
||||
<object class="GtkLabel" id="TitleLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Add user</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="CancelButton">
|
||||
<property name="label" translatable="yes">Cancel</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image4</property>
|
||||
<style>
|
||||
<class name="button"/>
|
||||
<class name="marginright"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="AcceptButton">
|
||||
<property name="label" translatable="yes">Accept</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">image5</property>
|
||||
<style>
|
||||
<class name="button"/>
|
||||
<class name="marginright"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkSizeGroup">
|
||||
<widgets>
|
||||
<widget name="label1"/>
|
||||
<widget name="label2"/>
|
||||
</widgets>
|
||||
</object>
|
||||
</interface>
|
||||
@ -1,166 +1,157 @@
|
||||
.textHead{
|
||||
text-shadow: 2px 2px @theme_bg_color;
|
||||
color: @theme_text_color;
|
||||
}
|
||||
.boxInfoMessError{
|
||||
background-color: #ea9999;
|
||||
}
|
||||
.boxInfoMessOK{
|
||||
background-color: #f3f0ac;
|
||||
.thin {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
.bannerbackground {
|
||||
background-color: #404040;
|
||||
.noborder {
|
||||
border:none;
|
||||
}
|
||||
.view_app {
|
||||
background-color: @theme_bg_color;
|
||||
.borders {
|
||||
border:1px;
|
||||
}
|
||||
.view_app.view.cell:selected {
|
||||
background-color:@theme_selected_bg_color;
|
||||
color:@theme_selected_text_color;
|
||||
transition: 10ms ease-out;
|
||||
border-radius: 3px;
|
||||
.nobackground {
|
||||
background:transparent;
|
||||
}
|
||||
#GnomeIcon{
|
||||
border-style:solid;
|
||||
border-bottom-width: 1px;
|
||||
border-image: linear-gradient(90deg, alpha(@theme_text_color,0.4) 55%, alpha(@theme_bg_color, 0) 100%);
|
||||
border-image-slice: 1;
|
||||
.nobackground:active {
|
||||
background:transparent;
|
||||
}
|
||||
|
||||
#SepIcon{
|
||||
background-color: alpha(@theme_text_color, 0.6);
|
||||
.textHead{
|
||||
text-shadow: 2px 2px @theme_bg_color;
|
||||
color: @theme_text_color;
|
||||
}
|
||||
|
||||
#iconlabel {
|
||||
font-size:14px;
|
||||
font-weight: bold;
|
||||
|
||||
}
|
||||
.roundborder * {
|
||||
border-width:0px;
|
||||
border-radius:5px;
|
||||
}
|
||||
.noborder {
|
||||
border: none;
|
||||
}
|
||||
.menu:hover {
|
||||
border-color:alpha(@theme_text_color, 0.01);
|
||||
}
|
||||
.menu {
|
||||
border-color:alpha(@theme_text_color, 0.01);
|
||||
.inherited>* {
|
||||
border:none;
|
||||
background:inherit;
|
||||
}
|
||||
.menu:hover >* {
|
||||
border-color:alpha(@theme_text_color, 0.01);
|
||||
.workingbg {
|
||||
background:@theme_base_color;
|
||||
}
|
||||
.menuitembottom{
|
||||
margin-top:0px;
|
||||
margin-bottom:3px;
|
||||
}
|
||||
.menuitemmiddle{
|
||||
margin-top:0px;
|
||||
margin-bottom:0px;
|
||||
}
|
||||
margin-top:0px;
|
||||
margin-bottom:3px;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitemmiddle{
|
||||
margin-top:0px;
|
||||
margin-bottom:0px;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
|
||||
.menuitemtop{
|
||||
margin-bottom:0px;
|
||||
}
|
||||
.menuitemtop *{
|
||||
margin:2px 2px 0 2px;
|
||||
padding: 5px 10px 3px 5px;
|
||||
}
|
||||
.menuitemmiddle *{
|
||||
margin:0 2px 0 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
}
|
||||
.menuitembottom *{
|
||||
margin:0 2px 2px 2px;
|
||||
padding: 3px 10px 5px 5px;
|
||||
}
|
||||
.menuitemtop:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitemmiddle:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitembottom:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
|
||||
}
|
||||
.menuitemtop:hover* {
|
||||
margin:2px 2px 0 2px;
|
||||
padding: 5px 10px 3px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
.menuitemmiddle:hover* {
|
||||
margin:0 2px 0 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
.menuitembottom:hover* {
|
||||
margin:0 2px 2px 2px;
|
||||
padding: 3px 10px 5px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
.menuitemtop{
|
||||
margin-bottom:0px;
|
||||
border-color:inherit;
|
||||
border-top-width:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitemtop >*{
|
||||
margin:4px 2px 0 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
border:transparent;
|
||||
}
|
||||
.menuitemmiddle >*{
|
||||
margin:0 2px 0 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
border:transparent;
|
||||
}
|
||||
.menuitembottom >*{
|
||||
margin:0 2px 2px 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
}
|
||||
.menuitemtop:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-top-width:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitemmiddle:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitembottom:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-bottom-width:0px;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
|
||||
}
|
||||
.menuitemtop:hover>* {
|
||||
margin:4px 2px 0 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
.menuitemmiddle:hover>* {
|
||||
margin:0 2px 0 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
.menuitembottom:hover>* {
|
||||
margin:0 2px 2px 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
.boxInfoMessError{
|
||||
background-color: #ea9999;
|
||||
}
|
||||
|
||||
.workingbg, #workingbg {
|
||||
background-color:@theme_base_color;
|
||||
}
|
||||
.workingbg.view.cell:selected {
|
||||
background-color:@theme_selected_bg_color;
|
||||
}
|
||||
.workingbg.view.cell:hover {
|
||||
background-color:darker(@theme_selected_bg_color);
|
||||
color:@theme_selected_text_color;
|
||||
border-radius:3px;
|
||||
}
|
||||
.bkim {
|
||||
transition: 200ms ease-out;
|
||||
background-image: none;
|
||||
.boxInfoMessOK{
|
||||
background-color: #f3f0ac;
|
||||
}
|
||||
.noborder{
|
||||
border:none;
|
||||
.errorBox {
|
||||
border-width: 2px;
|
||||
border-color: #ea9999;
|
||||
border-style:solid;
|
||||
}
|
||||
|
||||
.bkim{
|
||||
opacity:0.99;
|
||||
border:none;
|
||||
.chosenOutline{
|
||||
transition: 0ms;
|
||||
border-width: 1px;
|
||||
border-color: #f3f0ac;
|
||||
border-style:solid;
|
||||
}
|
||||
|
||||
.bkim_no_plug{
|
||||
background-color: transparent;
|
||||
opacity:0.99;
|
||||
.separatorTop{
|
||||
border-color: darker (@theme_bg_color);
|
||||
border-top-width:1px;
|
||||
border-style:solid;
|
||||
}
|
||||
.thin{
|
||||
margin:0px;
|
||||
padding: 0px;
|
||||
|
||||
.separatorBottom{
|
||||
border-color: darker (@theme_bg_color);
|
||||
border-bottom-width:1px;
|
||||
border-style:solid;
|
||||
}
|
||||
.nobg{
|
||||
background: none;
|
||||
|
||||
.marginright image{
|
||||
margin-right: 2px;
|
||||
}
|
||||
.addbg * {
|
||||
background-color: @theme_bg_color;
|
||||
|
||||
.menunoborder {
|
||||
border-radius: 0;
|
||||
border:none;
|
||||
}
|
||||
|
||||
.addbg_revealer * {
|
||||
background-color: @theme_base_color;
|
||||
.menunoborder:active {
|
||||
border-radius: 0;
|
||||
border:none;
|
||||
}
|
||||
.offset_revealer{
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: @theme_text_color;
|
||||
|
||||
.menunoborder:hover {
|
||||
border-radius: 0;
|
||||
border:none;
|
||||
}
|
||||
.bultar {
|
||||
border:none;
|
||||
}
|
||||
|
||||
treeview row:nth-child(odd) { background-color: #000000; }
|
||||
|
||||
treeview row:nth-child(even) { background-color: #ffffff; }
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue