You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ublexec/source/main.cc

74 lines
2.2 KiB

#include "ublexec.h"
void pars_flag(int index_start, int argc, char* argv[]);
int main(int argc, char** argv) {
string str_argv= "";
string str_cmd_argv = "";
setlocale(LC_ALL, "");
bindtextdomain("ublexec", "/usr/share/locale/");
bind_textdomain_codeset("ublexec", "UTF-8");
textdomain(app_name);
if (argc > 1){
str_argv = argv[1];
}
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_file(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();
SettingsPlug plug{socketID, builder};
plug.show();
app->run(plug);
return 0;
}
else {
if (argc == 3) {
name_app_cmd = argv[2];
string str_flag = argv[1];
if (str_flag == "-x") {
flag_prog_file = 1;
}
else if (str_flag == "-e") {
flag_prog_file = 2;
}
}
pars_flag(1,argc, argv);
int local_argc = 1;
auto app = Gtk::Application::create(local_argc, argv, "org.gtkmm.example.plug");
auto builder = Gtk::Builder::create_from_file(path_glade);
MainWindow* wnd = nullptr;
builder->get_widget_derived("window", wnd);
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);
}
}
}