From 5c2408db5a4a9a93b5d12ef48298636857a66af6 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 15 Apr 2025 16:15:26 +0600 Subject: [PATCH] Added service window --- gresource.xml | 1 + .../com.ublinux.libublsettingsui-gtk3.svg | 4957 +++++++++++++++++ ....libublsettingsui-gtk3.active-symbolic.svg | 38 + ...ibublsettingsui-gtk3.inactive-symbolic.svg | 38 + libublsettingsui-gtk3-service-control.glade | 416 ++ libublsettingsui-gtk3.pot | 206 +- libublsettingsui-gtk3_ru.po | 205 +- source/CMakeLists.txt | 2 + source/libublsettingsui-gtk3-service.c | 182 + source/libublsettingsui-gtk3.h | 57 + 10 files changed, 5958 insertions(+), 144 deletions(-) create mode 100644 icons/apps/com.ublinux.libublsettingsui-gtk3.svg create mode 100644 icons/status/com.ublinux.libublsettingsui-gtk3.active-symbolic.svg create mode 100644 icons/status/com.ublinux.libublsettingsui-gtk3.inactive-symbolic.svg create mode 100644 libublsettingsui-gtk3-service-control.glade create mode 100644 source/libublsettingsui-gtk3-service.c diff --git a/gresource.xml b/gresource.xml index 9af9d5d..c8eccd6 100644 --- a/gresource.xml +++ b/gresource.xml @@ -8,6 +8,7 @@ libublsettingsui-gtk3-debugger.glade libublsettingsui-gtk3-filechooser.glade libublsettingsui-gtk3-config-window.glade + libublsettingsui-gtk3-service-control.glade libublsettingsui-gtk3.css diff --git a/icons/apps/com.ublinux.libublsettingsui-gtk3.svg b/icons/apps/com.ublinux.libublsettingsui-gtk3.svg new file mode 100644 index 0000000..f636c26 --- /dev/null +++ b/icons/apps/com.ublinux.libublsettingsui-gtk3.svg @@ -0,0 +1,4957 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icons/status/com.ublinux.libublsettingsui-gtk3.active-symbolic.svg b/icons/status/com.ublinux.libublsettingsui-gtk3.active-symbolic.svg new file mode 100644 index 0000000..43524f8 --- /dev/null +++ b/icons/status/com.ublinux.libublsettingsui-gtk3.active-symbolic.svg @@ -0,0 +1,38 @@ + + + + + + + diff --git a/icons/status/com.ublinux.libublsettingsui-gtk3.inactive-symbolic.svg b/icons/status/com.ublinux.libublsettingsui-gtk3.inactive-symbolic.svg new file mode 100644 index 0000000..6d2d0cc --- /dev/null +++ b/icons/status/com.ublinux.libublsettingsui-gtk3.inactive-symbolic.svg @@ -0,0 +1,38 @@ + + + + + + + diff --git a/libublsettingsui-gtk3-service-control.glade b/libublsettingsui-gtk3-service-control.glade new file mode 100644 index 0000000..fc2eb74 --- /dev/null +++ b/libublsettingsui-gtk3-service-control.glade @@ -0,0 +1,416 @@ + + + + + + + True + False + com.ublinux.libublsettingsui-gtk3.play-symbolic + + + True + False + com.ublinux.libublsettingsui-gtk3.stop-symbolic + + + True + False + com.ublinux.libublsettingsui-gtk3.reset-symbolic + + + True + False + com.ublinux.libublsettingsui-gtk3.important-symbolic + + + True + False + com.ublinux.libublsettingsui-gtk3.flag-empy-symbolic + + + True + False + com.ublinux.libublsettingsui-gtk3.flag-symbolic + + + True + False + com.ublinux.libublsettingsui-gtk3.sync-symbolic + + + 450 + 225 + False + True + com.ublinux.ubl-settings-video + + + True + False + vertical + + + True + False + vertical + + + + + + False + True + 0 + + + + + True + False + 5 + 5 + 5 + 5 + 5 + vertical + 5 + + + True + False + 25 + + + True + False + 20 + 20 + 20 + 20 + 20 + 20 + 75 + dialog-information-symbolic + + + False + True + 0 + + + + + True + False + center + vertical + 5 + + + True + False + 5 + + + True + False + ".service" service: + 0 + + + False + True + 0 + + + + + True + True + True + image7 + + + + False + True + end + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + False + com.ublinux.ubl-settings-audit.inactive-symbolic + + + False + True + 0 + + + + + True + False + Active: + + + False + True + 1 + + + + + True + False + Inactive + + + False + True + 2 + + + + + True + True + True + image4 + + + + False + True + end + 3 + + + + + False + True + 1 + + + + + True + False + 5 + + + True + False + com.ublinux.ubl-settings-audit.active-symbolic + + + False + True + 0 + + + + + True + False + Enabled: + + + False + True + 1 + + + + + True + False + Disabled + + + False + True + 2 + + + + + False + True + 2 + + + + + True + True + 1 + + + + + True + True + 0 + + + + + True + False + 5 + + + Disable + True + True + True + image5 + + + False + True + end + 0 + + + + + Enable + True + True + True + image6 + + + False + True + end + 1 + + + + + True + False + + + False + True + end + 2 + + + + + Restart + True + True + True + image3 + + + + False + True + end + 3 + + + + + Stop + True + True + True + image2 + + + False + True + end + 5 + + + + + Start + True + True + True + image1 + + + False + True + end + 6 + + + + + False + True + end + 1 + + + + + True + True + 1 + + + + + + + True + False + True + + + True + False + ".service" service configuration + + + + + + + + True + False + 32 + com.ublinux.libublsettingsui-gtk3 + + + + + + diff --git a/libublsettingsui-gtk3.pot b/libublsettingsui-gtk3.pot index 59bda21..f9bfecc 100644 --- a/libublsettingsui-gtk3.pot +++ b/libublsettingsui-gtk3.pot @@ -17,296 +17,358 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: source/libublsettingsui-gtk3.h:301 +#: source/libublsettingsui-gtk3.h:340 msgid "Version:" msgstr "" -#: source/libublsettingsui-gtk3.h:302 +#: source/libublsettingsui-gtk3.h:341 msgid " version:" msgstr "" -#: source/libublsettingsui-gtk3.h:303 +#: source/libublsettingsui-gtk3.h:342 msgid "Usage:" msgstr "" -#: source/libublsettingsui-gtk3.h:303 +#: source/libublsettingsui-gtk3.h:342 msgid "[OPTIONS]" msgstr "" -#: source/libublsettingsui-gtk3.h:304 +#: source/libublsettingsui-gtk3.h:343 msgid "Options:" msgstr "" -#: source/libublsettingsui-gtk3.h:305 +#: source/libublsettingsui-gtk3.h:344 msgid "Show this help" msgstr "" -#: source/libublsettingsui-gtk3.h:306 +#: source/libublsettingsui-gtk3.h:345 msgid "Show package version" msgstr "" -#: source/libublsettingsui-gtk3.h:307 +#: source/libublsettingsui-gtk3.h:346 msgid "Lock this help menu" msgstr "" -#: source/libublsettingsui-gtk3.h:308 +#: source/libublsettingsui-gtk3.h:347 msgid "Lock configuration saving" msgstr "" -#: source/libublsettingsui-gtk3.h:309 +#: source/libublsettingsui-gtk3.h:348 msgid "Lock local configration saving" msgstr "" -#: source/libublsettingsui-gtk3.h:310 +#: source/libublsettingsui-gtk3.h:349 msgid "Lock global configration saving" msgstr "" -#: source/libublsettingsui-gtk3.h:311 +#: source/libublsettingsui-gtk3.h:350 msgid "Lock global configration loading" msgstr "" -#: source/libublsettingsui-gtk3.h:312 +#: source/libublsettingsui-gtk3.h:351 msgid "Reset application settings" msgstr "" -#: source/libublsettingsui-gtk3.h:318 source/libublsettingsui-gtk3.h:326 +#: source/libublsettingsui-gtk3.h:357 source/libublsettingsui-gtk3.h:365 msgid "About" msgstr "" -#: source/libublsettingsui-gtk3.h:320 +#: source/libublsettingsui-gtk3.h:359 msgid "Operation succeeded" msgstr "" -#: source/libublsettingsui-gtk3.h:321 +#: source/libublsettingsui-gtk3.h:360 msgid "Operation failed" msgstr "" -#: source/libublsettingsui-gtk3.h:322 +#: source/libublsettingsui-gtk3.h:361 msgid "" "Warning! Application was launched without root - root-dependent actions are " "locked" msgstr "" -#: source/libublsettingsui-gtk3.h:324 source/libublsettingsui-gtk3.h:325 +#: source/libublsettingsui-gtk3.h:363 source/libublsettingsui-gtk3.h:364 msgid "Default" msgstr "" -#: source/libublsettingsui-gtk3.h:327 +#: source/libublsettingsui-gtk3.h:366 msgid "Documentation" msgstr "" -#: source/libublsettingsui-gtk3.h:329 +#: source/libublsettingsui-gtk3.h:368 msgid "Save to specific file" msgstr "" -#: source/libublsettingsui-gtk3.h:330 +#: source/libublsettingsui-gtk3.h:369 msgid "Save to local configuration" msgstr "" -#: source/libublsettingsui-gtk3.h:331 +#: source/libublsettingsui-gtk3.h:370 msgid "Save to global configuration" msgstr "" -#: source/libublsettingsui-gtk3.h:332 +#: source/libublsettingsui-gtk3.h:371 msgid "Save configuration" msgstr "" -#: source/libublsettingsui-gtk3.h:333 +#: source/libublsettingsui-gtk3.h:372 msgid "Save" msgstr "" -#: source/libublsettingsui-gtk3.h:334 +#: source/libublsettingsui-gtk3.h:373 msgid "Saving..." msgstr "" -#: source/libublsettingsui-gtk3.h:336 +#: source/libublsettingsui-gtk3.h:375 msgid "Load from specific file" msgstr "" -#: source/libublsettingsui-gtk3.h:337 +#: source/libublsettingsui-gtk3.h:376 msgid "Load local configuration" msgstr "" -#: source/libublsettingsui-gtk3.h:338 +#: source/libublsettingsui-gtk3.h:377 msgid "Load global configuration" msgstr "" -#: source/libublsettingsui-gtk3.h:339 +#: source/libublsettingsui-gtk3.h:378 msgid "Load" msgstr "" -#: source/libublsettingsui-gtk3.h:340 +#: source/libublsettingsui-gtk3.h:379 msgid "Load file" msgstr "" -#: source/libublsettingsui-gtk3.h:342 +#: source/libublsettingsui-gtk3.h:381 msgid "Cancel" msgstr "" -#: source/libublsettingsui-gtk3.h:343 +#: source/libublsettingsui-gtk3.h:382 msgid "Accept" msgstr "" -#: source/libublsettingsui-gtk3.h:344 +#: source/libublsettingsui-gtk3.h:383 msgid "Open" msgstr "" -#: source/libublsettingsui-gtk3.h:345 +#: source/libublsettingsui-gtk3.h:384 msgid "Create directory" msgstr "" -#: source/libublsettingsui-gtk3.h:346 +#: source/libublsettingsui-gtk3.h:385 msgid "Select directory" msgstr "" -#: source/libublsettingsui-gtk3.h:348 +#: source/libublsettingsui-gtk3.h:387 msgid "Would you like to read documentation in the Web?" msgstr "" -#: source/libublsettingsui-gtk3.h:349 +#: source/libublsettingsui-gtk3.h:388 msgid "" "You will be redirected to documentation website where documentation is\n" "translated and supported by community." msgstr "" -#: source/libublsettingsui-gtk3.h:350 +#: source/libublsettingsui-gtk3.h:389 msgid "Always redirect to online documentation" msgstr "" -#: source/libublsettingsui-gtk3.h:351 +#: source/libublsettingsui-gtk3.h:390 msgid "Open documentation" msgstr "" -#: source/libublsettingsui-gtk3.h:352 +#: source/libublsettingsui-gtk3.h:391 msgid "Project Home Page" msgstr "" -#: source/libublsettingsui-gtk3.h:353 +#: source/libublsettingsui-gtk3.h:392 msgid "Nothing were chosen" msgstr "" -#: source/libublsettingsui-gtk3.h:354 +#: source/libublsettingsui-gtk3.h:393 msgid "Copyright © 2022 - 2023, UBSoft LLC" msgstr "" -#: source/libublsettingsui-gtk3.h:357 +#: source/libublsettingsui-gtk3.h:396 msgid "Global configuration loading succeeded." msgstr "" -#: source/libublsettingsui-gtk3.h:358 +#: source/libublsettingsui-gtk3.h:397 msgid "Local configuration loading succeeded." msgstr "" -#: source/libublsettingsui-gtk3.h:359 +#: source/libublsettingsui-gtk3.h:398 msgid "Config loading failed" msgstr "" -#: source/libublsettingsui-gtk3.h:361 +#: source/libublsettingsui-gtk3.h:400 msgid "Local and global configuration saving succeeded." msgstr "" -#: source/libublsettingsui-gtk3.h:362 +#: source/libublsettingsui-gtk3.h:401 msgid "Global configuration saving succeeded." msgstr "" -#: source/libublsettingsui-gtk3.h:363 +#: source/libublsettingsui-gtk3.h:402 msgid "Local configuration saving succeeded." msgstr "" -#: source/libublsettingsui-gtk3.h:364 +#: source/libublsettingsui-gtk3.h:403 msgid "Configuration saving succeeded." msgstr "" -#: source/libublsettingsui-gtk3.h:366 +#: source/libublsettingsui-gtk3.h:405 msgid "Parameter" msgstr "" -#: source/libublsettingsui-gtk3.h:367 +#: source/libublsettingsui-gtk3.h:406 msgid "Old value" msgstr "" -#: source/libublsettingsui-gtk3.h:368 +#: source/libublsettingsui-gtk3.h:407 msgid "New value" msgstr "" -#: source/libublsettingsui-gtk3.h:369 +#: source/libublsettingsui-gtk3.h:408 msgid "" "Value\n" "(Old/New)" msgstr "" -#: source/libublsettingsui-gtk3.h:371 +#: source/libublsettingsui-gtk3.h:410 msgid "Nothing to save" msgstr "" -#: source/libublsettingsui-gtk3.h:372 +#: source/libublsettingsui-gtk3.h:411 msgid "Saving into local configuration" msgstr "" -#: source/libublsettingsui-gtk3.h:373 +#: source/libublsettingsui-gtk3.h:412 msgid "Saving into global configuration" msgstr "" -#: source/libublsettingsui-gtk3.h:374 +#: source/libublsettingsui-gtk3.h:413 msgid "Saving into global and local configuration" msgstr "" -#: source/libublsettingsui-gtk3.h:375 +#: source/libublsettingsui-gtk3.h:414 msgid "Saving into custom configuration at" msgstr "" -#: source/libublsettingsui-gtk3.h:380 +#: source/libublsettingsui-gtk3.h:419 msgid "Full saving mode" msgstr "" -#: source/libublsettingsui-gtk3.h:381 +#: source/libublsettingsui-gtk3.h:420 msgid "Saving into module" msgstr "" -#: source/libublsettingsui-gtk3.h:382 +#: source/libublsettingsui-gtk3.h:421 msgid "Sandbox mode" msgstr "" -#: source/libublsettingsui-gtk3.h:383 +#: source/libublsettingsui-gtk3.h:422 msgid "Sandbox with profile saving" msgstr "" -#: source/libublsettingsui-gtk3.h:384 +#: source/libublsettingsui-gtk3.h:423 msgid "HDD sandbox" msgstr "" -#: source/libublsettingsui-gtk3.h:385 +#: source/libublsettingsui-gtk3.h:424 msgid "HDD sandbox with profile saving" msgstr "" -#: source/libublsettingsui-gtk3.h:386 +#: source/libublsettingsui-gtk3.h:425 msgid "New configuration file creation failed" msgstr "" -#: source/libublsettingsui-gtk3.h:387 +#: source/libublsettingsui-gtk3.h:426 msgid "Upgrade to root" msgstr "" -#: source/libublsettingsui-gtk3.h:388 +#: source/libublsettingsui-gtk3.h:427 msgid "Settings" msgstr "" -#: source/libublsettingsui-gtk3.h:390 +#: source/libublsettingsui-gtk3.h:429 msgid "Application settigs" msgstr "" -#: source/libublsettingsui-gtk3.h:392 +#: source/libublsettingsui-gtk3.h:431 msgid "Invalid email adress" msgstr "" -#: source/libublsettingsui-gtk3.h:393 +#: source/libublsettingsui-gtk3.h:432 msgid "Invalid path" msgstr "" -#: source/libublsettingsui-gtk3.h:395 +#: source/libublsettingsui-gtk3.h:434 msgid "Choose path" msgstr "" -#: source/libublsettingsui-gtk3.h:398 +#: source/libublsettingsui-gtk3.h:437 msgid "Choose directory instead of file" msgstr "" + +#: source/libublsettingsui-gtk3.h:439 +msgid "Enabled" +msgstr "" + +#: source/libublsettingsui-gtk3.h:440 +msgid "Disabled" +msgstr "" + +#: source/libublsettingsui-gtk3.h:441 +msgid "Active" +msgstr "" + +#: source/libublsettingsui-gtk3.h:442 +msgid "Inactive" +msgstr "" + +#: source/libublsettingsui-gtk3.h:444 +msgid "Active:" +msgstr "" + +#: source/libublsettingsui-gtk3.h:445 +msgid "Enabled:" +msgstr "" + +#: source/libublsettingsui-gtk3.h:446 +msgid "Start" +msgstr "" + +#: source/libublsettingsui-gtk3.h:447 +msgid "Stop" +msgstr "" + +#: source/libublsettingsui-gtk3.h:448 +msgid "Restart" +msgstr "" + +#: source/libublsettingsui-gtk3.h:449 +msgid "Enable" +msgstr "" + +#: source/libublsettingsui-gtk3.h:450 +msgid "Disable" +msgstr "" + +#: source/libublsettingsui-gtk3.h:452 +#, c-format +msgid "\"%s\" service configuration" +msgstr "" + +#: source/libublsettingsui-gtk3.h:453 +#, c-format +msgid "\"%s\" service:" +msgstr "" + +#: source/libublsettingsui-gtk3.h:454 +msgid "service is active" +msgstr "" + +#: source/libublsettingsui-gtk3.h:455 +msgid "service is inactive" +msgstr "" diff --git a/libublsettingsui-gtk3_ru.po b/libublsettingsui-gtk3_ru.po index b290f3b..28eb3fd 100644 --- a/libublsettingsui-gtk3_ru.po +++ b/libublsettingsui-gtk3_ru.po @@ -17,71 +17,71 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: source/libublsettingsui-gtk3.h:301 +#: source/libublsettingsui-gtk3.h:340 msgid "Version:" msgstr "Версия:" -#: source/libublsettingsui-gtk3.h:302 +#: source/libublsettingsui-gtk3.h:341 msgid " version:" msgstr " версия:" -#: source/libublsettingsui-gtk3.h:303 +#: source/libublsettingsui-gtk3.h:342 msgid "Usage:" msgstr "Использование:" -#: source/libublsettingsui-gtk3.h:303 +#: source/libublsettingsui-gtk3.h:342 msgid "[OPTIONS]" msgstr "[АРГУМЕНТЫ]" -#: source/libublsettingsui-gtk3.h:304 +#: source/libublsettingsui-gtk3.h:343 msgid "Options:" msgstr "Аргументы:" -#: source/libublsettingsui-gtk3.h:305 +#: source/libublsettingsui-gtk3.h:344 msgid "Show this help" msgstr "Показать эту подсказку" -#: source/libublsettingsui-gtk3.h:306 +#: source/libublsettingsui-gtk3.h:345 msgid "Show package version" msgstr "Показать версию пакета" -#: source/libublsettingsui-gtk3.h:307 +#: source/libublsettingsui-gtk3.h:346 msgid "Lock this help menu" msgstr "Заблокировать это меню помощи" -#: source/libublsettingsui-gtk3.h:308 +#: source/libublsettingsui-gtk3.h:347 msgid "Lock configuration saving" msgstr "Успешно записана локальная конфигурация" -#: source/libublsettingsui-gtk3.h:309 +#: source/libublsettingsui-gtk3.h:348 msgid "Lock local configration saving" msgstr "Заблокировать сохранение локальной конфигурации" -#: source/libublsettingsui-gtk3.h:310 +#: source/libublsettingsui-gtk3.h:349 msgid "Lock global configration saving" msgstr "Заблокировать сохранение глобальной конфигурации" -#: source/libublsettingsui-gtk3.h:311 +#: source/libublsettingsui-gtk3.h:350 msgid "Lock global configration loading" msgstr "Заблокировать загрузку глобальную конфигурацию" -#: source/libublsettingsui-gtk3.h:312 +#: source/libublsettingsui-gtk3.h:351 msgid "Reset application settings" msgstr "Сбросить настройки программы" -#: source/libublsettingsui-gtk3.h:318 source/libublsettingsui-gtk3.h:326 +#: source/libublsettingsui-gtk3.h:357 source/libublsettingsui-gtk3.h:365 msgid "About" msgstr "О программе" -#: source/libublsettingsui-gtk3.h:320 +#: source/libublsettingsui-gtk3.h:359 msgid "Operation succeeded" msgstr "Операция завершена" -#: source/libublsettingsui-gtk3.h:321 +#: source/libublsettingsui-gtk3.h:360 msgid "Operation failed" msgstr "Операция завершена с ошибкой" -#: source/libublsettingsui-gtk3.h:322 +#: source/libublsettingsui-gtk3.h:361 msgid "" "Warning! Application was launched without root - root-dependent actions are " "locked" @@ -89,83 +89,83 @@ msgstr "" "Внимание! Приложение было запущено без прав суперпользователя - действия, " "требующие их наличия заблокированы" -#: source/libublsettingsui-gtk3.h:324 source/libublsettingsui-gtk3.h:325 +#: source/libublsettingsui-gtk3.h:363 source/libublsettingsui-gtk3.h:364 msgid "Default" msgstr "По умолчанию" -#: source/libublsettingsui-gtk3.h:327 +#: source/libublsettingsui-gtk3.h:366 msgid "Documentation" msgstr "Справка" -#: source/libublsettingsui-gtk3.h:329 +#: source/libublsettingsui-gtk3.h:368 msgid "Save to specific file" msgstr "Сохранить в файл" -#: source/libublsettingsui-gtk3.h:330 +#: source/libublsettingsui-gtk3.h:369 msgid "Save to local configuration" msgstr "Сохранить в локальную конфигурацию" -#: source/libublsettingsui-gtk3.h:331 +#: source/libublsettingsui-gtk3.h:370 msgid "Save to global configuration" msgstr "Сохранить в глобальную конфигурацию" -#: source/libublsettingsui-gtk3.h:332 +#: source/libublsettingsui-gtk3.h:371 msgid "Save configuration" msgstr "Сохранить конфигурацию" -#: source/libublsettingsui-gtk3.h:333 +#: source/libublsettingsui-gtk3.h:372 msgid "Save" msgstr "Сохранить" -#: source/libublsettingsui-gtk3.h:334 +#: source/libublsettingsui-gtk3.h:373 msgid "Saving..." msgstr "Сохранение..." -#: source/libublsettingsui-gtk3.h:336 +#: source/libublsettingsui-gtk3.h:375 msgid "Load from specific file" msgstr "Загрузить из файла" -#: source/libublsettingsui-gtk3.h:337 +#: source/libublsettingsui-gtk3.h:376 msgid "Load local configuration" msgstr "Загрузить локальную конфигурацию" -#: source/libublsettingsui-gtk3.h:338 +#: source/libublsettingsui-gtk3.h:377 msgid "Load global configuration" msgstr "Загрузить глобальную конфигурацию" -#: source/libublsettingsui-gtk3.h:339 +#: source/libublsettingsui-gtk3.h:378 msgid "Load" msgstr "Загрузить" -#: source/libublsettingsui-gtk3.h:340 +#: source/libublsettingsui-gtk3.h:379 msgid "Load file" msgstr "Загрузить файл" -#: source/libublsettingsui-gtk3.h:342 +#: source/libublsettingsui-gtk3.h:381 msgid "Cancel" msgstr "Отмена" -#: source/libublsettingsui-gtk3.h:343 +#: source/libublsettingsui-gtk3.h:382 msgid "Accept" msgstr "Принять" -#: source/libublsettingsui-gtk3.h:344 +#: source/libublsettingsui-gtk3.h:383 msgid "Open" msgstr "Открыть" -#: source/libublsettingsui-gtk3.h:345 +#: source/libublsettingsui-gtk3.h:384 msgid "Create directory" msgstr "Создать файл" -#: source/libublsettingsui-gtk3.h:346 +#: source/libublsettingsui-gtk3.h:385 msgid "Select directory" msgstr "Выбрать папку" -#: source/libublsettingsui-gtk3.h:348 +#: source/libublsettingsui-gtk3.h:387 msgid "Would you like to read documentation in the Web?" msgstr "Вы хотите прочитать справку в Сети?" -#: source/libublsettingsui-gtk3.h:349 +#: source/libublsettingsui-gtk3.h:388 msgid "" "You will be redirected to documentation website where documentation is\n" "translated and supported by community." @@ -173,67 +173,67 @@ msgstr "" "Вы будете перенаправлены на сайт с документацией, где страницы помощи\n" "переводятся и поддерживаются сообществом." -#: source/libublsettingsui-gtk3.h:350 +#: source/libublsettingsui-gtk3.h:389 msgid "Always redirect to online documentation" msgstr "Всегда перенаправлять" -#: source/libublsettingsui-gtk3.h:351 +#: source/libublsettingsui-gtk3.h:390 msgid "Open documentation" msgstr "Прочитать справку" -#: source/libublsettingsui-gtk3.h:352 +#: source/libublsettingsui-gtk3.h:391 msgid "Project Home Page" msgstr "Домашняя страница проекта" -#: source/libublsettingsui-gtk3.h:353 +#: source/libublsettingsui-gtk3.h:392 msgid "Nothing were chosen" msgstr "Ничего не было выбрано" -#: source/libublsettingsui-gtk3.h:354 +#: source/libublsettingsui-gtk3.h:393 msgid "Copyright © 2022 - 2023, UBSoft LLC" msgstr "Copyright © 2022 - 2023, ООО «Юбисофт»" -#: source/libublsettingsui-gtk3.h:357 +#: source/libublsettingsui-gtk3.h:396 msgid "Global configuration loading succeeded." msgstr "Успешно загружена глобальная конфигурация" -#: source/libublsettingsui-gtk3.h:358 +#: source/libublsettingsui-gtk3.h:397 msgid "Local configuration loading succeeded." msgstr "Успешно загружена локальная конфигурация" -#: source/libublsettingsui-gtk3.h:359 +#: source/libublsettingsui-gtk3.h:398 msgid "Config loading failed" msgstr "Ошибка загрузки конфига" -#: source/libublsettingsui-gtk3.h:361 +#: source/libublsettingsui-gtk3.h:400 msgid "Local and global configuration saving succeeded." msgstr "Успешно записаны локальная и глобальная конфигурация" -#: source/libublsettingsui-gtk3.h:362 +#: source/libublsettingsui-gtk3.h:401 msgid "Global configuration saving succeeded." msgstr "Успешно записана глобальная конфигурация" -#: source/libublsettingsui-gtk3.h:363 +#: source/libublsettingsui-gtk3.h:402 msgid "Local configuration saving succeeded." msgstr "Успешно записана локальная конфигурация" -#: source/libublsettingsui-gtk3.h:364 +#: source/libublsettingsui-gtk3.h:403 msgid "Configuration saving succeeded." msgstr "Успешно записана конфигурация" -#: source/libublsettingsui-gtk3.h:366 +#: source/libublsettingsui-gtk3.h:405 msgid "Parameter" msgstr "Параметр" -#: source/libublsettingsui-gtk3.h:367 +#: source/libublsettingsui-gtk3.h:406 msgid "Old value" msgstr "Старое значение" -#: source/libublsettingsui-gtk3.h:368 +#: source/libublsettingsui-gtk3.h:407 msgid "New value" msgstr "Новое значение" -#: source/libublsettingsui-gtk3.h:369 +#: source/libublsettingsui-gtk3.h:408 msgid "" "Value\n" "(Old/New)" @@ -241,78 +241,139 @@ msgstr "" "Значение\n" "(Старое/Новое)" -#: source/libublsettingsui-gtk3.h:371 +#: source/libublsettingsui-gtk3.h:410 msgid "Nothing to save" msgstr "Нечего сохранять" -#: source/libublsettingsui-gtk3.h:372 +#: source/libublsettingsui-gtk3.h:411 msgid "Saving into local configuration" msgstr "Сохранение в локальный конфигурационный файл" -#: source/libublsettingsui-gtk3.h:373 +#: source/libublsettingsui-gtk3.h:412 msgid "Saving into global configuration" msgstr "Сохранение в глобальный конфигурационный файл" -#: source/libublsettingsui-gtk3.h:374 +#: source/libublsettingsui-gtk3.h:413 msgid "Saving into global and local configuration" msgstr "Сохранение в глобальный и локальный конфигурационный файл" -#: source/libublsettingsui-gtk3.h:375 +#: source/libublsettingsui-gtk3.h:414 msgid "Saving into custom configuration at" msgstr "Сохранение в конфигурационный файл по пути" -#: source/libublsettingsui-gtk3.h:380 +#: source/libublsettingsui-gtk3.h:419 msgid "Full saving mode" msgstr "Полное сохранение" -#: source/libublsettingsui-gtk3.h:381 +#: source/libublsettingsui-gtk3.h:420 msgid "Saving into module" msgstr "Сохранение в модуль" -#: source/libublsettingsui-gtk3.h:382 +#: source/libublsettingsui-gtk3.h:421 msgid "Sandbox mode" msgstr "Полная песочница в ОЗУ" -#: source/libublsettingsui-gtk3.h:383 +#: source/libublsettingsui-gtk3.h:422 msgid "Sandbox with profile saving" msgstr "Песочница с сохранением профиля пользователя" -#: source/libublsettingsui-gtk3.h:384 +#: source/libublsettingsui-gtk3.h:423 msgid "HDD sandbox" msgstr "Полная песочница на HDD" -#: source/libublsettingsui-gtk3.h:385 +#: source/libublsettingsui-gtk3.h:424 msgid "HDD sandbox with profile saving" msgstr "Полная песочница на HDD с сохранением профиля пользователя" -#: source/libublsettingsui-gtk3.h:386 +#: source/libublsettingsui-gtk3.h:425 msgid "New configuration file creation failed" msgstr "Ошибка создания нового файла конфигурации" -#: source/libublsettingsui-gtk3.h:387 +#: source/libublsettingsui-gtk3.h:426 msgid "Upgrade to root" msgstr "Повысить права до root" -#: source/libublsettingsui-gtk3.h:388 +#: source/libublsettingsui-gtk3.h:427 msgid "Settings" msgstr "" -#: source/libublsettingsui-gtk3.h:390 +#: source/libublsettingsui-gtk3.h:429 msgid "Application settigs" msgstr "Настройки" -#: source/libublsettingsui-gtk3.h:392 +#: source/libublsettingsui-gtk3.h:431 msgid "Invalid email adress" msgstr "Неверный email-адрес" -#: source/libublsettingsui-gtk3.h:393 +#: source/libublsettingsui-gtk3.h:432 msgid "Invalid path" msgstr "Неправильный путь" -#: source/libublsettingsui-gtk3.h:395 +#: source/libublsettingsui-gtk3.h:434 msgid "Choose path" msgstr "Выбор пути" -#: source/libublsettingsui-gtk3.h:398 +#: source/libublsettingsui-gtk3.h:437 msgid "Choose directory instead of file" msgstr "Выбрать папку вместо вайла" + +#: source/libublsettingsui-gtk3.h:439 +msgid "Enabled" +msgstr "Включен" + +#: source/libublsettingsui-gtk3.h:440 +msgid "Disabled" +msgstr "Выключен" + +#: source/libublsettingsui-gtk3.h:441 +msgid "Active" +msgstr "Активен" + +#: source/libublsettingsui-gtk3.h:442 +msgid "Inactive" +msgstr "Неактивен" + +#: source/libublsettingsui-gtk3.h:444 +msgid "Active:" +msgstr "Активен:" + +#: source/libublsettingsui-gtk3.h:445 +msgid "Enabled:" +msgstr "Автозапуск:" + +#: source/libublsettingsui-gtk3.h:446 +msgid "Start" +msgstr "Запустить" + +#: source/libublsettingsui-gtk3.h:447 +msgid "Stop" +msgstr "Остановить" + +#: source/libublsettingsui-gtk3.h:448 +msgid "Restart" +msgstr "Перезапустить" + +#: source/libublsettingsui-gtk3.h:449 +msgid "Enable" +msgstr "Включить автозапуск" + +#: source/libublsettingsui-gtk3.h:450 +msgid "Disable" +msgstr "Выключить автозапуск" + +#: source/libublsettingsui-gtk3.h:452 +msgid "\"%s\" service configuration" +msgstr "Конфигурация сервиса \"%s\"" + +#: source/libublsettingsui-gtk3.h:453 +#, fuzzy, c-format +msgid "\"%s\" service:" +msgstr "Cлужба \"%s\":" + +#: source/libublsettingsui-gtk3.h:454 +msgid "service is active" +msgstr "служба активна" + +#: source/libublsettingsui-gtk3.h:455 +msgid "service is inactive" +msgstr "служба неактивна" diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 5bce0e2..90da64b 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -44,6 +44,7 @@ set(DEPENDFILES ../libublsettingsui-gtk3-filechooser.glade ../libublsettingsui-gtk3-debugger.glade ../libublsettingsui-gtk3-config-window.glade + ../libublsettingsui-gtk3-service-control.glade ../gresource.xml ../libublsettingsui-gtk3-banner.png ../libublsettingsui-gtk3.css @@ -81,6 +82,7 @@ add_library(${PROJECT_NAME} SHARED libublsettingsui-gtk3-save.c libublsettingsui-gtk3-config-window.c libublsettingsui-gtk3-filechooser.c + libublsettingsui-gtk3-service.c libublsettingsui-gtk3.h ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}) diff --git a/source/libublsettingsui-gtk3-service.c b/source/libublsettingsui-gtk3-service.c new file mode 100644 index 0000000..6c8669a --- /dev/null +++ b/source/libublsettingsui-gtk3-service.c @@ -0,0 +1,182 @@ +#include "libublsettingsui-gtk3.h" + +#define service_start_icon_name "com.ublinux.libublsettingsui-gtk3.play-symbolic" +#define service_stop_icon_name "com.ublinux.libublsettingsui-gtk3.stop-symbolic" + +#define service_start_status_icon_name "com.ublinux.libublsettingsui-gtk3.active-symbolic" +#define service_stop_status_icon_name "com.ublinux.libublsettingsui-gtk3.inactive-symbolic" + +void __on_closed(GtkWidget *, service_window *window){ + free(window->name); + free(window->start_command); + free(window->stop_command); + free(window->enable_command); + free(window->disable_command); + free(window->info_command); + free(window->check_active_command); + free(window->check_enable_command); + free(window); + gtk_main_quit(); +} + +void __on_service_update_clicked(GtkWidget *, service_window *window); + +void __on_service_start_clicked(GtkWidget *, service_window *window){ + if (system(window->start_command)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(FAIL_LABEL),5,BACKGROUND_IMAGE_SUCCESS_TYPE); + return; + }; + __on_service_update_clicked(NULL,window); + +} + +void __on_service_stop_clicked(GtkWidget *, service_window *window){ + if (system(window->stop_command)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(FAIL_LABEL),5,BACKGROUND_IMAGE_SUCCESS_TYPE); + return; + }; + __on_service_update_clicked(NULL,window); + +} + +void __on_service_enable_clicked(GtkWidget *, service_window *window){ + + + if (system(window->enable_command)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(FAIL_LABEL),5,BACKGROUND_IMAGE_SUCCESS_TYPE); + return; + }; + __on_service_update_clicked(NULL,window); + +} + +void __on_service_disable_clicked(GtkWidget *, service_window *window){ + + if (system(window->disable_command)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(FAIL_LABEL),5,BACKGROUND_IMAGE_SUCCESS_TYPE); + return; + }; + __on_service_update_clicked(NULL,window); +} + +void __on_service_restart_clicked(GtkWidget *, service_window *window){ + + + if (system(window->stop_command)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(FAIL_LABEL),5,BACKGROUND_IMAGE_SUCCESS_TYPE); + return; + }; + if (system(window->start_command)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(FAIL_LABEL),5,BACKGROUND_IMAGE_SUCCESS_TYPE); + return; + }; + __on_service_update_clicked(NULL,window); + +} + +void __on_service_status_clicked(GtkWidget *, service_window *window){ + char *success_string = _SERVICE_ACTIVE_STATUS_LABEL(window->name); + char *fail_string = _SERVICE_INACTIVE_STATUS_LABEL(window->name); + + yon_terminal_window_update_button_launch(GTK_WINDOW(window->MainWindow),window->info_command,success_string,fail_string); + +} + +void __on_service_update_clicked(GtkWidget *, service_window *window){ + if (!system(window->check_enable_command)){ + gtk_label_set_text(GTK_LABEL(window->EnableLabel),yon_char_get_localised_from_lib(_SERVICE_ENABLE_LABEL)); + gtk_image_set_from_icon_name(GTK_IMAGE(window->EnableImage),service_start_status_icon_name,GTK_ICON_SIZE_BUTTON); + } else { + gtk_label_set_text(GTK_LABEL(window->EnableLabel),yon_char_get_localised_from_lib(_SERVICE_DISABLE_LABEL)); + gtk_image_set_from_icon_name(GTK_IMAGE(window->EnableImage),service_stop_status_icon_name,GTK_ICON_SIZE_BUTTON); + + } + if (!system(window->check_active_command)){ + gtk_label_set_text(GTK_LABEL(window->ActiveLabel),yon_char_get_localised_from_lib(_SERVICE_ACTIVE_LABEL)); + gtk_image_set_from_icon_name(GTK_IMAGE(window->ActiveImage),service_start_status_icon_name,GTK_ICON_SIZE_BUTTON); + + } else { + gtk_label_set_text(GTK_LABEL(window->ActiveLabel),yon_char_get_localised_from_lib(_SERVICE_INACTIVE_LABEL)); + gtk_image_set_from_icon_name(GTK_IMAGE(window->ActiveImage),service_stop_status_icon_name,GTK_ICON_SIZE_BUTTON); + + } + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(SUCCESS_LABEL),5,BACKGROUND_IMAGE_SUCCESS_TYPE); +} + +service_window *yon_service_window_new(char *name, char *start_command, + char *stop_command, char *enable_command, + char *disable_command, char *info_command, + char *check_active_command, char *check_enable_command){ + service_window *window = new(service_window); + GtkBuilder *builder = gtk_builder_new_from_resource(ui_glade_path_service); + window->MainWindow = yon_gtk_builder_get_widget(builder,"MainWindow"); + window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox"); + window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel"); + window->TitleLabel = yon_gtk_builder_get_widget(builder,"TitleLabel"); + + window->UpdateButton = yon_gtk_builder_get_widget(builder,"UpdateButton"); + window->StatusButton = yon_gtk_builder_get_widget(builder,"StatusButton"); + + window->ActiveLabel = yon_gtk_builder_get_widget(builder,"ActiveLabel"); + window->ActiveImage = yon_gtk_builder_get_widget(builder,"ActiveImage"); + window->EnableLabel = yon_gtk_builder_get_widget(builder,"EnableLabel"); + window->EnableImage = yon_gtk_builder_get_widget(builder,"EnableImage"); + + window->RestartButton = yon_gtk_builder_get_widget(builder,"RestartButton"); + window->StartButton = yon_gtk_builder_get_widget(builder,"StartButton"); + window->StopButton = yon_gtk_builder_get_widget(builder,"StopButton"); + window->EnableButton = yon_gtk_builder_get_widget(builder,"EnableButton"); + window->DisableButton = yon_gtk_builder_get_widget(builder,"DisableButton"); + + window->name = yon_char_new(name); + window->start_command = yon_char_new(start_command); + window->stop_command = yon_char_new(stop_command); + window->enable_command = yon_char_new(enable_command); + window->disable_command = yon_char_new(disable_command); + window->info_command = yon_char_new(info_command); + window->check_active_command = yon_char_new(check_active_command); + window->check_enable_command = yon_char_new(check_enable_command); + + char *head_label = (_SERVICE_HEAD_LABEL(window->name)); + char *title_label = (_SERVICE_TITLE_LABEL(window->name)); + gtk_label_set_text(GTK_LABEL(window->HeadLabel),head_label); + gtk_label_set_text(GTK_LABEL(window->TitleLabel),title_label); + + yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),NULL,_SERVICE_HEAD_LABEL(window->name),yon_dull_icon_path,NULL); + + g_signal_connect(G_OBJECT(window->MainWindow),"destroy",G_CALLBACK(__on_closed),window); + g_signal_connect(G_OBJECT(window->StartButton),"clicked",G_CALLBACK(__on_service_start_clicked),window); + g_signal_connect(G_OBJECT(window->StopButton),"clicked",G_CALLBACK(__on_service_stop_clicked),window); + g_signal_connect(G_OBJECT(window->RestartButton),"clicked",G_CALLBACK(__on_service_restart_clicked),window); + g_signal_connect(G_OBJECT(window->StatusButton),"clicked",G_CALLBACK(__on_service_status_clicked),window); + g_signal_connect(G_OBJECT(window->UpdateButton),"clicked",G_CALLBACK(__on_service_update_clicked),window); + g_signal_connect(G_OBJECT(window->EnableButton),"clicked",G_CALLBACK(__on_service_enable_clicked),window); + g_signal_connect(G_OBJECT(window->DisableButton),"clicked",G_CALLBACK(__on_service_disable_clicked),window); + + + if (!system(window->check_enable_command)){ + gtk_label_set_text(GTK_LABEL(window->EnableLabel),yon_char_get_localised_from_lib(_SERVICE_ENABLE_LABEL)); + gtk_image_set_from_icon_name(GTK_IMAGE(window->EnableImage),service_start_status_icon_name,GTK_ICON_SIZE_BUTTON); + } else { + gtk_label_set_text(GTK_LABEL(window->EnableLabel),yon_char_get_localised_from_lib(_SERVICE_DISABLE_LABEL)); + gtk_image_set_from_icon_name(GTK_IMAGE(window->EnableImage),service_stop_status_icon_name,GTK_ICON_SIZE_BUTTON); + + } + if (!system(window->check_active_command)){ + gtk_label_set_text(GTK_LABEL(window->ActiveLabel),yon_char_get_localised_from_lib(_SERVICE_ACTIVE_LABEL)); + gtk_image_set_from_icon_name(GTK_IMAGE(window->ActiveImage),service_start_status_icon_name,GTK_ICON_SIZE_BUTTON); + + } else { + gtk_label_set_text(GTK_LABEL(window->ActiveLabel),yon_char_get_localised_from_lib(_SERVICE_INACTIVE_LABEL)); + gtk_image_set_from_icon_name(GTK_IMAGE(window->ActiveImage),service_stop_status_icon_name,GTK_ICON_SIZE_BUTTON); + + } + return window; +} + +void yon_service_window_run(service_window *window){ + if (window){ + gtk_widget_show(window->MainWindow); + gtk_main(); + } +} \ No newline at end of file diff --git a/source/libublsettingsui-gtk3.h b/source/libublsettingsui-gtk3.h index 208bcc4..cb961e0 100644 --- a/source/libublsettingsui-gtk3.h +++ b/source/libublsettingsui-gtk3.h @@ -19,12 +19,14 @@ #define _(String) gettext(String) +#define yon_dull_icon_path "com.ublinux.libublsettingsui-gtk3" #define ui_glade_path "/com/ublinux/ui/libublsettingsui-gtk3.glade" #define ui_glade_path_documentation "/com/ublinux/ui/libublsettingsui-gtk3-documentation.glade" #define ui_glade_path_about "/com/ublinux/ui/libublsettingsui-gtk3-about.glade" #define ui_glade_path_saving "/com/ublinux/ui/libublsettingsui-gtk3-saving.glade" #define ui_glade_path_filechooser "/com/ublinux/ui/libublsettingsui-gtk3-filechooser.glade" #define ui_glade_path_debug "/com/ublinux/ui/libublsettingsui-gtk3-debugger.glade" +#define ui_glade_path_service "/com/ublinux/ui/libublsettingsui-gtk3-service-control.glade" #define ui_banner_path "/com/ublinux/images/libublsettingsui-gtk3-banner.png" #define ui_CssPath "/com/ublinux/css/libublsettingsui-gtk3.css" #define ui_config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",template_app_information.app_tech_name,"/",template_app_information.app_tech_name,".conf",NULL) @@ -127,6 +129,7 @@ extern _template_config *template_config; \ GtkWidget *InterfaceBox;\ //} + typedef struct { template_window_fields } template_main_window; @@ -298,6 +301,42 @@ typedef struct { char *yon_settings_configuration_get(char *id); char *yon_custom_config_init(); +typedef struct { + GtkWidget *MainWindow; + GtkWidget *StatusBox; + GtkWidget *HeadLabel; + GtkWidget *TitleLabel; + + GtkWidget *UpdateButton; + GtkWidget *StatusButton; + + GtkWidget *ActiveLabel; + GtkWidget *EnableLabel; + GtkWidget *ActiveImage; + GtkWidget *EnableImage; + + GtkWidget *RestartButton; + GtkWidget *StartButton; + GtkWidget *StopButton; + GtkWidget *EnableButton; + GtkWidget *DisableButton; + + char *name; + char *start_command; + char *stop_command; + char *enable_command; + char *disable_command; + char *info_command; + char *check_active_command; + char *check_enable_command; +} service_window; + +service_window *yon_service_window_new(char *name, char *start_command, + char *stop_command, char *enable_command, + char *disable_command, char *info_command, + char *check_active_command, char *check_enable_command); +void yon_service_window_run(service_window *window); + #define VERSION_LABEL yon_char_unite(_("Version:")," ",!yon_char_is_empty(template_app_information.app_version)?template_app_information.app_version:"","\n",NULL) #define HELP_LABEL(rest) yon_char_unite(template_app_information.app_tech_name,_(" version:")," ", !yon_char_is_empty(template_app_information.app_version)?template_app_information.app_version:"","\n",\ template_app_information.app_title,"\n",_("Usage:"), " ",template_app_information.app_tech_name," ",_("[OPTIONS]"),"\n",\ @@ -397,4 +436,22 @@ char *yon_custom_config_init(); #define FILE_CHOOSER_CHOOSE_FILDER_LABEL _("Choose directory instead of file") + #define _SERVICE_ENABLE_LABEL _("Enabled") + #define _SERVICE_DISABLE_LABEL _("Disabled") + #define _SERVICE_ACTIVE_LABEL _("Active") + #define _SERVICE_INACTIVE_LABEL _("Inactive") + + #define _SERVICE_ACTIVE_TEXT_LABEL _("Active:") + #define _SERVICE_ENABLED_TEXT_LABEL _("Enabled:") + #define _SERVICE_START_BUTTON_LABEL _("Start") + #define _SERVICE_STOP_BUTTON_LABEL _("Stop") + #define _SERVICE_RESTART_BUTTON_LABEL _("Restart") + #define _SERVICE_ENABLE_BUTTON_LABEL _("Enable") + #define _SERVICE_DISABLE_BUTTON_LABEL _("Disable") + + #define _SERVICE_HEAD_LABEL(target) g_strdup_printf(yon_char_get_localised_from_lib(_("\"%s\" service configuration")), target) + #define _SERVICE_TITLE_LABEL(target) g_strdup_printf(yon_char_get_localised_from_lib(_("\"%s\" service:")), target) + #define _SERVICE_ACTIVE_STATUS_LABEL(target) yon_char_unite("\"",target,"\" ", yon_char_get_localised_from_lib(_("service is active")),NULL) + #define _SERVICE_INACTIVE_STATUS_LABEL(target) yon_char_unite("\"",target,"\" ",yon_char_get_localised_from_lib(_("service is inactive")),NULL) + #endif \ No newline at end of file