pull/55/head
parent 9fcf67c372
commit b91e2e358c

3
.gitignore vendored

@ -11,4 +11,5 @@ source/ubl-settings-video-cm.h
.install.sh .install.sh
terminal-commands terminal-commands
source/ubl-settings-app-chooser.* source/ubl-settings-app-chooser.*
*~ *~
*#

@ -1,8 +1,10 @@
640x480 ;4:3;VGA RESOLUTION;ASPECT_RATIO;DESC
800x480 ;5:3;WVGA 720x400;5:3;VGA
800x600 ;4:3;SVGA 640x480;4:3;VGA
854x480 ;16:9;FWVGA 800x480;5:3;WVGA
960x540 ;19:9;qHD 800x600;4:3;SVGA
854x480;16:9;FWVGA
960x540;19:9;qHD
1024x600;128:75;WSVGA 1024x600;128:75;WSVGA
1024x768;4:3;XGA 1024x768;4:3;XGA
1152x864;4:3;XGA+ 1152x864;4:3;XGA+
@ -22,6 +24,6 @@
1920x1080;16:9;FHD 1920x1080;16:9;FHD
1920x1200;16:10;WUXGA 1920x1200;16:10;WUXGA
2048x1080;19:10;2K DCI 2048x1080;19:10;2K DCI
2048x1152;16:9;,QWXGA 2048x1152;16:9;QWXGA
2560x1080;21:9;UWHD 2560x1080;21:9;UWHD
2560x1440;16:9;QHD 2560x1440;16:9;QHD

1 640x480 RESOLUTION 4:3 ASPECT_RATIO VGA DESC
2 800x480 720x400 5:3 5:3 WVGA VGA
3 800x600 640x480 4:3 4:3 SVGA VGA
4 854x480 800x480 16:9 5:3 FWVGA WVGA
5 960x540 800x600 19:9 4:3 qHD SVGA
6 854x480 16:9 FWVGA
7 960x540 19:9 qHD
8 1024x600 1024x600 128:75 128:75 WSVGA WSVGA
9 1024x768 1024x768 4:3 4:3 XGA XGA
10 1152x864 1152x864 4:3 4:3 XGA+ XGA+
24 1920x1080 1920x1080 16:9 16:9 FHD FHD
25 1920x1200 1920x1200 16:10 16:10 WUXGA WUXGA
26 2048x1080 2048x1080 19:10 19:10 2K DCI 2K DCI
27 2048x1152 2048x1152 16:9 16:9 ,QWXGA QWXGA
28 2560x1080 2560x1080 21:9 21:9 UWHD UWHD
29 2560x1440 2560x1440 16:9 16:9 QHD QHD

@ -80,8 +80,6 @@ set(SOURCE_FILES
ubl-settings-video.c ubl-settings-video.c
ubl-settings-video.h ubl-settings-video.h
ubl-strings.h ubl-strings.h
ubl-utils.h
ubl-utils.c
${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h ${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h
) )
@ -90,7 +88,10 @@ set(LIBRARIES
${WEBKIT_LIBRARIES} ${WEBKIT_LIBRARIES}
${VTE291_LIBRARIES} ${VTE291_LIBRARIES}
${JSON_LIBRARIES} ${JSON_LIBRARIES}
pthread) pthread
ublsettings
ublsettings-gtk3
ublsettingsui-gtk3)
add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}) add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C})

File diff suppressed because it is too large Load Diff

@ -4,7 +4,7 @@
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h> #include <webkit2/webkit2.h>
#endif #endif
#include <vte-2.91/vte/vte.h> #include <vte/vte.h>
#include <locale.h> #include <locale.h>
#include <stdio.h> #include <stdio.h>
#include <time.h> #include <time.h>
@ -17,13 +17,17 @@
#include <libintl.h> #include <libintl.h>
#include <time.h> #include <time.h>
#include <json-c/json.h> #include <json-c/json.h>
#include "ubl-utils.h" // #include "ubl-utils.h"
#include "ubl-strings.h" #include "ubl-strings.h"
#define VTE_INCLUDE
#include <libublsettings.h>
#include <libublsettings-gtk3.h>
#include <libublsettingsui-gtk3.h>
#ifndef UBL_SETINGS_VIDEO_H #ifndef UBL_SETINGS_VIDEO_H
#define UBL_SETINGS_VIDEO_H #define UBL_SETINGS_VIDEO_H
#define UBLINUX_WIKI_LINK " https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/ubl-settings-video" #define WIKI_LINK " https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/ubl-settings-video"
#define UBLINUX_HOMEPAGE_LINK _("https://wiki.ublinux.com") #define HOMEPAGE_LINK _("https://wiki.ublinux.com")
#define icon_name "com.ublinux.ubl-settings-video" #define icon_name "com.ublinux.ubl-settings-video"
@ -49,7 +53,7 @@
#define get_proprietary_drivers_info_command "cut -d';' -f2- /usr/share/ubl-settings-video/csv/video-drivers.csv" #define get_proprietary_drivers_info_command "cut -d';' -f2- /usr/share/ubl-settings-video/csv/video-drivers.csv"
#define get_resolutions_supportable_command "cut -d, -f1- /usr/share/ubl-settings-video/csv/resolutions.csv |sed 's/,/ /g'" #define get_resolutions_supportable_command "/usr/share/ubl-settings-video/csv/resolutions.csv"
#define get_frequences_command "xrandr |grep -v -n \"[a-z][a-z]\" |sed 's/ * / /g' |cut -d' ' -f1,3-" #define get_frequences_command "xrandr |grep -v -n \"[a-z][a-z]\" |sed 's/ * / /g' |cut -d' ' -f1,3-"
@ -85,7 +89,44 @@
#define get_adapter_info "lshw -c display -quiet |grep -oE \"vendor:[0-9a-zA-Z ]{1,}|description:[0-9a-zA-Z ]{1,}|product:[]0-9a-zA-Z [-]{1,}\"|sed 's/: /=/g';lspci | grep -E ' VGA | Display ' | cut -d\" \" -f 1 | xargs -i lspci -v -s {} |grep -oE \"Kernel[:a-zA-Z0-9: ,_]{1,}\"|sed 's/: /=/g'|sed 's/ /-/g'" #define get_adapter_info "lshw -c display -quiet |grep -oE \"vendor:[0-9a-zA-Z ]{1,}|description:[0-9a-zA-Z ]{1,}|product:[]0-9a-zA-Z [-]{1,}\"|sed 's/: /=/g';lspci | grep -E ' VGA | Display ' | cut -d\" \" -f 1 | xargs -i lspci -v -s {} |grep -oE \"Kernel[:a-zA-Z0-9: ,_]{1,}\"|sed 's/: /=/g'|sed 's/ /-/g'"
#define get_adapter_info_json "lshw -c display -quiet -json" #define get_adapter_info_json "lshw -c display -quiet -json"
#define XORG_MONITOR(port) yon_char_append(" XORG_MONITOR[",yon_char_append(port,"] ")) #define XORG_MONITOR(port) yon_char_append("XORG_MONITOR[",yon_char_append(port,"]"))
#define VGADRV_AUTO "VGADRV_AUTO"
#define VGADRV_NOFREE "VGADRV_NOFREE"
#define XORG_EXT "XORG_EXT"
#define XORG_DPI "XORG_DPI"
#define FAILSAFEATI "FAILSAFEATI"
#define FAILSAFENVIDIA "FAILSAFENVIDIA"
#define OPTIRUN "OPTIRUN"
#define PRIMUSRUN "PRIMUSRUN"
#define INTEGRATEDVGA "INTEGRATEDVGA"
#define KWIN_TRIPLE_BUFFER "\"export KWIN_TRIPLE_BUFFER"
#define GL_YIELD "\"export __GL_YIELD"
#define VGADRV_AUTO_command "ubconfig --source global get [video] VGADRV_AUTO"
#define VGADRV_NOFREE_command "ubconfig --source global get [video] VGADRV_NOFREE"
#define XORG_EXT_command "ubconfig --source global get [video] XORG_EXT"
#define XORG_DPI_command "ubconfig --source global get [video] XORG_DPI"
#define FAILSAFEATI_command "ubconfig --source global get [video] FAILSAFEATI"
#define FAILSAFENVIDIA_command "ubconfig --source global get [video] FAILSAFENVIDIA"
#define OPTIRUN_command "ubconfig --source global get [video] OPTIRUN"
#define PRIMUSRUN_command "ubconfig --source global get [video] PRIMUSRUN"
#define INTEGRATEDVGA_command "ubconfig --source global get [video] INTEGRATEDVGA"
#define KWIN_TRIPLE_BUFFER_command "ubconfig --source global get [/etc/profile.d/ublinux.sh] \"export KWIN_TRIPLE_BUFFER\""
#define GL_YIELD_command "ubconfig --source global get [/etc/profile.d/ublinux.sh] \"export __GL_YIELD\""
#define XORG_PARAMETER "XORG_MONITOR"
#define config_get_command(target) yon_char_append("cat ",target)
#define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get [video] XORG_MONITOR[*] VGADRV_AUTO VGADRV_NOFREE XORG_EXT XORG_DPI FAILSAFEATI FAILSAFENVIDIA OPTIRUN PRIMUSRUN INTEGRATEDVGA",NULL), yon_char_unite("ubconfig --source ",target," get [/etc/profile.d/ublinux.sh] \"export KWIN_TRIPLE_BUFFER\" \"export __GL_YIELD\"",NULL)
#define config_get_local_command "ubconfig --source system get [video] XORG_MONITOR[*] VGADRV_AUTO VGADRV_NOFREE XORG_EXT XORG_DPI FAILSAFEATI FAILSAFENVIDIA OPTIRUN PRIMUSRUN INTEGRATEDVGA", "ubconfig --source system get [/etc/profile.d/ublinux.sh] \"export KWIN_TRIPLE_BUFFER\" \"export __GL_YIELD\""
#define config_get_global_command yon_char_new("ubconfig --source global get [video] XORG_MONITOR[*] VGADRV_AUTO VGADRV_NOFREE XORG_EXT XORG_DPI FAILSAFEATI FAILSAFENVIDIA OPTIRUN PRIMUSRUN INTEGRATEDVGA"), "ubconfig --source global get [/etc/profile.d/ublinux.sh] \"export KWIN_TRIPLE_BUFFER\" \"export __GL_YIELD\""
#define config_get_default_command ""
#define config_get_global_only_parameters ""
#define config_get_local_only_parameters ""
#define XORG_MONITOR_get_command "ubconfig --source global get [video] XORG_MONITOR[*]"
char *drivers_always_active[] = { "mesa","lib32-vulkan-intel","xf86-video-intel"}; char *drivers_always_active[] = { "mesa","lib32-vulkan-intel","xf86-video-intel"};
int drivers_always_active_size = 3; int drivers_always_active_size = 3;
@ -117,7 +158,77 @@ typedef struct {
typedef struct typedef struct
{ {
int alwaysredirect; template_window_fields
GtkWidget *AutoDriverCombo;
GtkWidget *FreeDriverCombo;
GtkWidget *FailsafeNvidiaCombo;
GtkWidget *FailsafeAMDCombo;
GtkWidget *MonitorsBox;
GtkWidget *DontSwitchDisplaysOffCombo;
GtkWidget *DisplayScalingCombo;
GtkWidget *DisplayDiscreteOnly;
GtkWidget *OptirunCombo;
GtkWidget *OptirunEntry;
GtkWidget *OptirunButton;
GtkWidget *PrimusrunCombo;
GtkWidget *PrimusrunEntry;
GtkWidget *PrimusrunButton;
GtkWidget *FrameGapCombo;
GtkWidget *proprietaryTreeView;
GtkWidget *proprietaryInfoButton;
GtkWidget *proprietaryDeleteButton;
GtkWidget *proprietaryInstallButton;
GtkTreeSelection *proprietaryTreeSelection;
GtkWidget *driversTreeView;
GtkWidget *driversInfoButton;
GtkWidget *driversDeleteButton;
GtkWidget *driversInstallButton;
GtkTreeSelection *driversTreeSelection;
GtkTreeViewColumn *proprietartInstalledColumn;
GtkTreeViewColumn *ProprietaryPackageColumn;
GtkTreeViewColumn *ProprietaryDriverColumn;
GtkTreeViewColumn *ProprietaryDescriptionColumn;
GtkTreeViewColumn *ProprietarySupportedColumn;
GtkTreeViewColumn *driverInstalledColumn;
GtkTreeViewColumn *driverPackageColumn;
GtkTreeViewColumn *driverDriverColumn;
GtkTreeViewColumn *driverDescriptionColumn;
GtkTreeViewColumn *driverSupportedColumn;
GtkWidget *DriverModulesTab;
GtkWidget *DriversTab;
GtkWidget *MainTabLabel;
GtkWidget *DriversTabLabel;
GtkWidget *InformationTabLabel;
GtkWidget *InformationFrameLabel;
GtkWidget *InformationOverlay;
GtkWidget *InformationCompanyLogoImage;
GtkWidget *InformationOverlay2;
GtkWidget *InformationCompanyLogoImage2;
GtkWidget *InformationLabel;
GtkWidget *InformationLabel2;
GtkWidget *TerminalOverlay;
GtkWidget *TerminalBox;
GtkWidget *TerminalRevealer;
GtkWidget *TerminalInfoLabel;
GtkWidget *TerminalMoreButton;
GtkWidget *TerminalScroll;
GtkWidget *TerminalMoreRevieler;
GtkWidget *MenusTab;
GtkWidget *LoadDriversButton;
GtkWidget *proprietaryNotebook;
} main_window;
typedef struct
{
template_config_fields
config_str loaded_config; config_str loaded_config;
int configsize; int configsize;
int autoChooseDrivers; int autoChooseDrivers;
@ -139,16 +250,11 @@ typedef struct
int resolutionssize; int resolutionssize;
render_data status_render; render_data status_render;
int socket_id;
int save_socket_id;
int load_socket_id;
int lock_save_local;
int lock_save_global;
int lock_load_global;
int lock_help;
dictionary *monitor_output_layers; dictionary *monitor_output_layers;
GtkWidget *pack_box; GtkWidget *pack_box;
int dblock; int dblock;
int save_config;
main_window *widgets;
} config; } config;
typedef struct typedef struct
@ -176,180 +282,48 @@ typedef struct {
GtkWidget *tree; GtkWidget *tree;
} combo_tree; } combo_tree;
typedef struct
{
dictionary *monitors;
dictionary *overlays;
GtkBuilder *builder;
GtkWidget *appsPackBox;
GtkWidget *appsPackWindow;
GtkWidget *extraOptirunChooseAppsButton;
GtkWidget *extraPrimusunChooseAppsButton;
GtkWidget *MainWindow;
GtkWidget *headBox;
GtkWidget *headTitleLabel;
GtkWidget *headInfoLabel;
GtkWidget *mainPlugBox;
GtkWidget *mainErrorBox;
GtkWidget *mainHeadOverlay;
GtkWidget *mainHeadBackgroundImage;
GtkWidget *mainDriverAutomaticallyChooseCheck;
GtkWidget *mainDriverProprietaryDriverLabel;
GtkWidget *mainDriverFailsafeNvidiaLabel;
GtkWidget *mainDriverFailsafeAMDLabel;
GtkWidget *mainDriverProprietaryDriverCombo;
GtkWidget *mainDriverProprietaryDriverButton;
GtkWidget *mainExtraFixGapCombo;
GtkWidget *mainDriverFailsafeNvidiaCombo;
GtkWidget *mainDriverFailsafeAMDCombo;
GtkWidget *mainDriverFrameLabel;
GtkWidget *monitorConfigurationMethodLabel;
GtkWidget *monitorConfigurationMethodCombo;
GtkWidget *mainMonitorVisualConfigurationBox;
GtkWidget *mainMonitorConfigurationBox;
GtkWidget *mainMonitorConfigurationFrameLabel;
GtkWidget *mainHybridGraphicsDiscreteLabel;
GtkWidget *mainHybridGraphicsDiscreteCheck;
GtkWidget *mainHybridGraphicsFrameLabel;
GtkWidget *mainExtraLaunchOptirunCheck;
GtkWidget *mainExtraLaunchPrismusunCheck;
GtkWidget *mainExtraFixGapLabel;
GtkWidget *mainExtraLaunchOptirunEntry;
GtkWidget *mainExtraLaunchPrismusunEntry;
GtkWidget *mainExtraLaunchThroughEntry;
GtkWidget *mainExtraFixGapLabelCombo;
GtkWidget *mainExtraLaunchThroughButton;
GtkWidget *mainExtraFrameLabel;
GtkWidget *mainHeaderTitleLabel;
GtkWidget *mainHeaderLoadButton;
GtkWidget *mainHeaderConfigLoadLabel;
GtkWidget *mainHeaderSaveConfigurationLabel;
GtkWidget *mainHeaderSaveButton;
GtkWidget *mainHeaderSettingsButton;
GtkWidget *mainHeaderLoadGlobalMenuItem;
GtkWidget *mainHeaderLoadLocalMenuItem;
GtkWidget *mainHeaderSaveGlobalLocalMenuItem;
GtkWidget *mainHeaderSaveGlobalMenuItem;
GtkWidget *mainHeaderSaveLocalMenuItem;
GtkWidget *mainHeaderSettingsDocumentationMenuItem;
GtkWidget *mainHeaderSettingsAboutMenuItem;
GtkWidget *mainStatusBox;
GtkWidget *mainStatusIcon;
GtkWidget *mainStatusLabel;
GtkWidget *templateMonitorConfigurationBox;
GtkWidget *templateMonitorConfigurationMonitorLabel;
GtkWidget *templateMonitorConfigurationResolutionLabel;
GtkWidget *templateMonitorConfigurationResolutionCombo;
GtkWidget *templateMonitorConfigurationFrequencyLabel;
GtkWidget *templateMonitorConfigurationFrequencyCombo;
GtkWidget *templateMonitorConfigurationRotationLabel;
GtkWidget *templateMonitorConfigurationRotationCombo;
GtkWidget *templateMonitorConfigurationMainRadio;
GtkWidget *templateMonitorConfigurationParameterLineCheck;
GtkWidget *templateMonitorConfigurationParameterLineEntry;
GtkWidget *templateMonitorConfigurationDoNotSwitchOffLabel;
GtkWidget *templateMonitorConfigurationDoNotSwitchOffCheck;
GtkWidget *proprietaryTreeView;
GtkWidget *proprietaryInfoButton;
GtkWidget *proprietaryDeleteButton;
GtkWidget *proprietaryInstallButton;
GtkTreeSelection *proprietaryTreeSelection;
GtkWidget *driversTreeView;
GtkWidget *driversInfoButton;
GtkWidget *driversDeleteButton;
GtkWidget *driversInstallButton;
GtkTreeSelection *driversTreeSelection;
GtkTreeViewColumn *proprietartInstalledColumn;
GtkTreeViewColumn *ProprietaryPackageColumn;
GtkTreeViewColumn *ProprietaryDriverColumn;
GtkTreeViewColumn *ProprietaryDescriptionColumn;
GtkTreeViewColumn *ProprietarySupportedColumn;
GtkTreeViewColumn *driverInstalledColumn;
GtkTreeViewColumn *driverPackageColumn;
GtkTreeViewColumn *driverDriverColumn;
GtkTreeViewColumn *driverDescriptionColumn;
GtkTreeViewColumn *driverSupportedColumn;
GtkWidget *DriverModulesTab;
GtkWidget *DriversTab;
GtkWidget *MainTabLabel;
GtkWidget *DriversTabLabel;
GtkWidget *InformationTabLabel;
GtkWidget *InformationFrameLabel;
GtkWidget *InformationOverlay;
GtkWidget *InformationCompanyLogoImage;
GtkWidget *InformationOverlay2;
GtkWidget *InformationCompanyLogoImage2;
GtkWidget *TerminalOverlay;
GtkWidget *TerminalBox;
GtkWidget *TerminalRevealer;
GtkWidget *TerminalInfoLabel;
GtkWidget *TerminalMoreButton;
GtkWidget *TerminalScroll;
GtkWidget *TerminalMoreRevieler;
GtkWidget *PlugBox;
GtkWidget *PlugSaveBox;
GtkWidget *PlugLoadBox;
GtkWidget *MenusTab;
GtkWidget *LoadDriversButton;
GtkWidget *proprietaryNotebook;
} widgets_dict;
typedef struct typedef struct
{ {
char *curport; char *curport;
config_str resolutions; config_str resolutions;
int resolutionssize; int resolutionssize;
GtkWidget *templateMonitorConfigurationWindow; GtkWidget *MainWindow;
GtkWidget *mainMonitorConfigurationBox; GtkWidget *StatusBox;
GtkWidget *templateMonitorConfigurationBox; GtkWidget *HeadLabel;
GtkWidget *templateMonitorConfigurationEnableCheck; GtkWidget *EnableConfigurationBox;
GtkWidget *templateMonitorConfigurationPortLabel; GtkWidget *InterfaceConfigurationBox;
GtkWidget *templateMonitorConfigurationPortCombo; GtkWidget *EnableCheck;
GtkWidget *templateMonitorConfigurationMainCheck; GtkWidget *PortCombo;
GtkWidget *templateMonitorConfigurationResolutionLabel; GtkWidget *MainCheck;
GtkWidget *templateMonitorConfigurationResolutionCombo; GtkWidget *ResolutionCombo;
GtkWidget *templateMonitorConfigurationShowUnsupportedCheck; GtkWidget *UnsupportedCheck;
GtkWidget *templateMonitorConfigurationFrequencyLabel; GtkWidget *FrequencyCombo;
GtkWidget *templateMonitorConfigurationFrequencyCombo; GtkWidget *RotationCombo;
GtkWidget *templateMonitorConfigurationRotationLabel; GtkWidget *PositionPosCombo;
GtkWidget *templateMonitorConfigurationRotationCombo; GtkWidget *PositionPortCombo;
GtkWidget *templateMonitorConfigurationPositionLabel; GtkWidget *DoNotSwitchOffCheck;
GtkWidget *templateMonitorConfigurationPositionPosCombo; GtkWidget *ModelineCVTCheck;
GtkWidget *templateMonitorConfigurationPositionPortCombo; GtkWidget *UseCVTReducedCheck;
GtkWidget *templateMonitorConfigurationDoNotSwitchOffCheck; GtkWidget *ModelineGTFCheck;
GtkWidget *templateMonitorConfigurationModelineCVTCheck; GtkWidget *ParameterLineCheck;
GtkWidget *templateMonitorConfigurationUseCVTReducedCheck; GtkWidget *ParameterLineEntry;
GtkWidget *templateMonitorConfigurationModelineGTFCheck; GtkWidget *CancelButton;
GtkWidget *templateMonitorConfigurationParameterLineCheck; GtkWidget *SaveButton;
GtkWidget *templateMonitorConfigurationParameterLineEntry;
GtkWidget *templateMonitorConfigurationCancelButton;
GtkWidget *templateMonitorConfigurationSaveButton;
dictionary *config;
} monitor_edit_window; } monitor_edit_window;
typedef struct { typedef struct {
GtkWidget *templateMonitorscreenOverlay; GtkWidget *ScreenOverlay;
GtkWidget *templateMonitorImage; GtkWidget *MonitorImage;
GtkWidget *templateMonitorInfoBox; GtkWidget *MonitorInfoBox;
GtkWidget *templateMonitorInfoNameLabel; GtkWidget *NameLabel;
GtkWidget *templateMonitorInfoResolutionLabel; GtkWidget *ResoulutionLabel;
GtkWidget *templateMonitorDeleteButton; GtkWidget *DeleteButton;
GtkWidget *templateMonitorSwitchButton; GtkWidget *SwitchButton;
GtkWidget *templateMonitorInfoConfigureButton; GtkWidget *ConfigureButton;
GtkWidget *templateMonitorInfoAddButton; GtkWidget *AddButton;
monitor_config config; } monitor_data;
} monitor_window;
typedef struct typedef struct
{ {
@ -364,34 +338,35 @@ typedef struct
GtkWidget *ProprietaryAcceptButton; GtkWidget *ProprietaryAcceptButton;
} driver_window; } driver_window;
monitor_data *yon_monitor_new(main_window *widgets,int dull);
// void on_closed_configuration(GtkWidget *self, MonitorSettings *monitors); // void on_closed_configuration(GtkWidget *self, MonitorSettings *monitors);
// void on_save_configuration(GtkWidget self, MonitorSettings *monitors); // void on_save_configuration(GtkWidget self, MonitorSettings *monitors);
void yon_parse_monitor(); // void yon_parse_monitor();
void on_config_fill_interface(widgets_dict *widgets); // void on_config_fill_interface(main_window *widgets);
void yon_update_config(widgets_dict *widgets); // void yon_update_config(main_window *widgets);
void on_configuration_save_global(GtkWidget *self, widgets_dict *widgets); // void on_configuration_save_global(GtkWidget *self, main_window *widgets);
void on_configuration_save__local_global(GtkWidget *self, widgets_dict *widgets); // void on_configuration_save__local_global(GtkWidget *self, main_window *widgets);
void on_configuration_save__local(GtkWidget *self, widgets_dict *widgets); // void on_configuration_save__local(GtkWidget *self, main_window *widgets);
void yon_config_monitor_string_parse(char *parameters, int *size); // void yon_config_monitor_string_parse(char *parameters, int *size);
char *yon_char_parsed_get_resolution(config_str parsed_string, int size); // char *yon_char_parsed_get_resolution(config_str parsed_string, int size);
void yon_monitor_set_resolutions(); // void yon_monitor_set_resolutions();
monitor_config yon_monitor_config_new(char *port); // monitor_config yon_monitor_config_new(char *port);
void yon_monitor_config_update(monitorconfig* monitor, char *port, char *config_string); // void yon_monitor_config_update(monitorconfig* monitor, char *port, char *config_string);
void yon_monitor_view_new(monitor_config monitor); // void yon_monitor_view_new(monitor_config monitor);
void on_configuration_save_global_local(GtkWidget *self, widgets_dict *widgets); // void on_configuration_save_global_local(GtkWidget *self, main_window *widgets);
// void on_confugure_monitor_settings(GtkWidget *self, MonitorSettings *settings); // // void on_confugure_monitor_settings(GtkWidget *self, MonitorSettings *settings);
void yon_monitor_view_draw_all(); // void yon_monitor_view_draw_all();
void on_monitor_configure(GtkWidget *self,monitor_window *window); // void on_monitor_configure(GtkWidget *self,monitor_window *window);
void on_monitor_add(GtkWidget *self,monitor_window *window); // void on_monitor_add(GtkWidget *self,monitor_window *window);
void on_monitor_switch(GtkWidget *self,monitor_window *window); // void on_monitor_switch(GtkWidget *self,monitor_window *window);
void on_monitor_delete(GtkWidget *self,monitor_view windowd); // void on_monitor_delete(GtkWidget *self,monitor_view windowd);
void yon_monitor_view_update(); // void yon_monitor_view_update();
void yon_monitor_window_update(monitor_edit_window *window); // void yon_monitor_window_update(monitor_edit_window *window);
char *yon_monitor_make_string(monitorconfig* config); // char *yon_monitor_make_string(monitorconfig* config);
void yon_launch_with_output(char *command); void yon_launch_with_output(char *command);
dictionary *yon_proprieary_get(); dictionary *yon_proprieary_get();
void yon_gtk_list_store_fill_with_proprietaries(GtkListStore *list); void yon_gtk_list_store_fill_with_proprietaries(GtkListStore *list);
void yon_setup_config(char *configcommand); void yon_monitor_view_update();
void yon_monitor_view_setup(GtkWidget *container); // void yon_setup_config(char *configcommand);
// void yon_monitor_view_setup(GtkWidget *container);
#endif #endif

@ -2,8 +2,8 @@
#define HELP_LABEL yon_char_unite(_("ubl-settings-video version:")," ", version_application,"\n",_("Video adapter and display settings"),"\n",_("Usage:"), " ubl-settings-video ",_("[OPTIONS]"),"\n",_("Options:"),"\n\t--help, -h\t\t\t",_("Show this help"),"\n\t--version, -V\t\t\t",_("Show package version"),"\n\t--lock-help\t\t\t",_("Lock this help menu"),"\n\t--lock-save\t\t\t",_("Lock configration saving"),"\n\t--lock-save-local\t\t",_("Lock local configration saving"),"\n\t--lock-save-global\t\t",_("Lock global configration saving"),"\n\t--lock-load-global\t\t",_("Lock global configration loading"),"\n",NULL) #define HELP_LABEL yon_char_unite(_("ubl-settings-video version:")," ", version_application,"\n",_("Video adapter and display settings"),"\n",_("Usage:"), " ubl-settings-video ",_("[OPTIONS]"),"\n",_("Options:"),"\n\t--help, -h\t\t\t",_("Show this help"),"\n\t--version, -V\t\t\t",_("Show package version"),"\n\t--lock-help\t\t\t",_("Lock this help menu"),"\n\t--lock-save\t\t\t",_("Lock configration saving"),"\n\t--lock-save-local\t\t",_("Lock local configration saving"),"\n\t--lock-save-global\t\t",_("Lock global configration saving"),"\n\t--lock-load-global\t\t",_("Lock global configration loading"),"\n",NULL)
#define PARAMETER_DEFAULT_LABEL _("Default settings") #define PARAMETER_DEFAULT_LABEL _("Default settings")
#define MONITOR_LABEL _("Monitor ") #define MONITOR_LABEL _("Monitor ")
#define SETTINGS_VIDEO_TITLE_LABEL _("Video adapter and display settings") #define TITLE_LABEL _("Video adapter and display settings")
#define SETTINGS_VIDEO_TITLE_INFO_LABEL _("Video output settings and video card drivers installation") #define TITLE_INFO_LABEL _("Video output settings and video card drivers installation")
#define MONITOR_PORT_LABEL _("Port: ") #define MONITOR_PORT_LABEL _("Port: ")
#define MONITOR_RESOLUTION_LABEL _("Resolution (px): ") #define MONITOR_RESOLUTION_LABEL _("Resolution (px): ")
#define MONITOR_FREQUENCY_LABEL _("Frequency (Hz): ") #define MONITOR_FREQUENCY_LABEL _("Frequency (Hz): ")
@ -38,7 +38,6 @@
#define HYBRID_GRAPHICS_LABEL _("Hybrid graphics") #define HYBRID_GRAPHICS_LABEL _("Hybrid graphics")
#define FIX_GAP_LABEL _("Fix frame gap (Nvidia)") #define FIX_GAP_LABEL _("Fix frame gap (Nvidia)")
#define EXTRA_LABEL _("Extra") #define EXTRA_LABEL _("Extra")
#define TITLE_LABEL _("UBLinux Video Configuration")
#define LOAD_LABEL _("Load") #define LOAD_LABEL _("Load")
#define SAVE_LABEL _("Save") #define SAVE_LABEL _("Save")
#define ON_LABEL _("On") #define ON_LABEL _("On")
@ -75,6 +74,7 @@
#define ADD_LABEL _("Add monitor configuration") #define ADD_LABEL _("Add monitor configuration")
#define SWITCH_LABEL _("Switch monitor") #define SWITCH_LABEL _("Switch monitor")
#define MORE_LABEL _("More") #define MORE_LABEL _("More")
#define PORT_EDIT_LABEL(target) yon_char_unite(_("Configuration: Monitor"),"(",target,")",NULL)
#define HELP_TITLE_LABEL _("Would you like to read documentation in the Web?") #define HELP_TITLE_LABEL _("Would you like to read documentation in the Web?")
#define HELP_INFO_LABEL _("You will be redirected to documentation website where documentation is\ntranslated and supported by community.") #define HELP_INFO_LABEL _("You will be redirected to documentation website where documentation is\ntranslated and supported by community.")
@ -118,4 +118,9 @@
#define MODEL_LABEL _("Model") #define MODEL_LABEL _("Model")
#define USED_KERNEL_DRIVER_LABEL _("Kernel driver in use") #define USED_KERNEL_DRIVER_LABEL _("Kernel driver in use")
#define AVALIABLE_KERNEL_DRIVERS_LABEL _("Kernel modules") #define AVALIABLE_KERNEL_DRIVERS_LABEL _("Kernel modules")
#define LOAD_DRIVERS_LABEL _("Load drivers from database") #define LOAD_DRIVERS_LABEL _("Load drivers from database")
#define INTEL_DESCRIPTION_LABEL _("UBLinux package includes Intel driver and utilities")
#define AMD_MODULE_DESCRIPTION_LABEL _("UBLinux module includes AMD driver and utilities")
#define AMD_DESCRIPTION_LABEL _("UBLinux package includes AMD Vulkan driver and utilities")
#define MISSING_IMPORTANT_LABEL _("Important field is empty")

File diff suppressed because it is too large Load Diff

@ -1,401 +0,0 @@
#ifndef UBL_UTILS
#define UBL_UTILS
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <pthread.h>
#include <string.h>
#include <dirent.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <pwd.h>
#include <locale.h>
#include <libintl.h>
#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include <pwd.h>
#include <vte/vte.h>
#include "ubl-cmake.h"
#ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h>
#endif
#define _(String) gettext(String)
#define DesktopPath "/usr/share/applications/"
#define try bool __HadError=false;
#define catch(x) ExitJmp:if(__HadError)
#define throw(x) {__HadError=true;goto ExitJmp;}
static char** array_size_pow;
#define for_dictionaries(obj, obj1) for (obj = obj1->first; obj != NULL; obj = obj->next)
#define new(type) malloc(sizeof(type))
#define new_arr(type,size) malloc(sizeof(type)*size)
#define get_home_dir_command yon_char_unite("getent passwd \"",yon_ubl_root_user_get(),"\" | cut -d: -f6",NULL)
#define get_processes_command "systemd-cgls --no-pager |grep -oE \"[-0-9A-Za-z.:]{1,}.service\""
#define get_slices_command "systemd-cgls --no-pager |grep -oE \"[-0-9A-Za-z.:]{1,}.slice\""
#define yon_ubl_set_config_save_data_pointer(command) config_commands.config_save_data = command
#define yon_ubl_load_global_config(command, size_pointer) yon_config_load(command, size_pointer)
#define yon_ubl_load_local_config(command, size_pointer) yon_config_load(command, size_pointer)
#define yon_ubl_save_global_config(command) yon_config_save(command)
#define yon_ubl_save_local_config(command) yon_config_save(command)
typedef enum
{
#ifdef __GTK_H__
DICTIONARY_GTK_WIDGETS_TYPE,
#endif
DICTIONARY_OTHER_TYPE=0,
DICTIONARY_CHAR_TYPE,
DICTIONARY_INT_TYPE,
DICTIONARY_BOOL_TYPE,
} DICT_TYPE;
typedef struct
{
char *command;
int *exitcode;
} thread_output;
typedef struct dictionary
{
char *key;
void *data;
struct dictionary *next;
struct dictionary *prev;
struct dictionary *first;
DICT_TYPE data_type;
int flag1;
} dictionary;
typedef struct apps
{
char *filename;
char *Name;
int Type;
char *Categories;
char *Exec;
char *Icon;
int Pluggable;
int DualPluggable;
int Hidden;
} apps;
typedef char** config_str;
static dictionary *__yon__config__strings = NULL;
#define check_config if(__yon__config__strings&&__yon__config__strings->data_type==DICTIONARY_CHAR_TYPE)
#define config(key) yon_config_get_by_key(key)
#define for_config dictionary temp = NULL; for_dictionary(temp,__yon__config__strings)
#define yon_remalloc(pointer, size) (!pointer) ? malloc(size) : realloc(pointer, size)
// dictionary functions
/**yon_dictionary_get_data(dictionary, type)
* [EN]
* Gets data from dictionary.
* [dictionary] is dictionary, from which data should be extracted;
* [type] is type of data, [dictionary] contains.
* [RU]
* Возвращает данные из словаря.
* [dictionary] - словарь из которого достаются данные.
* [type] - тип данных, хранящихся в словаре [dictionary].
*/
#define yon_dictionary_get_data(dictionary, type) ((type)dictionary->data)
/**yon_dictionary_add_or_create_if_exists_with_data(dict,key,data)
* [EN]
*
* [RU]
* Добавляет элемент словаря в конец словаря [dict] c ключом [key] и данными [data].
* Если словарь не существует, создаёт его
*/
#define yon_dictionary_add_or_create_if_exists_with_data(dict,key,data) {if (!dict) dict=yon_dictionary_new_with_data(key,data); \
else dict=yon_dictionary_append_with_data(dict,key,data);}
dictionary *yon_dictionary_new();
dictionary *yon_dictionary_append(dictionary *targetdict);
dictionary *yon_dictionary_get_last(dictionary *dict);
dictionary *yon_dictionary_swap(dictionary *dict, int aim);
void yon_dictionary_make_first(dictionary *dict);
void yon_dictionary_make_nth(dictionary *dict, int nth);
dictionary *yon_dictionary_new_with_data(char *key, void *data);
dictionary *yon_dictionary_append_with_data(dictionary *dict, char *key, void *data);
dictionary *yon_dictionary_connect(dictionary *old, dictionary *toconnect);
dictionary *yon_dictionary_get(dictionary **dict, char *key);
dictionary *yon_dictionary_rip(dictionary *dict);
dictionary *yon_dictionary_get_nth(dictionary *dict, int place);
void *yon_dictionary_free_all(dictionary *dictionary,void (data_manipulation)(void*));
// char functions
#define yon_char_is_empty(string) !(string&&strcmp(string,""))
int yon_char_find_last(char *source, char find);
char *yon_char_append(char *source, char *append);
char *yon_char_new(char *chr);
char *yon_char_unite(char *source, ...);
char *yon_cut(char *source, int size, int startpos);
char *yon_char_divide(char *source, int dividepos);
char *yon_char_divide_search(char *source, char *dividepos, int delete_divider);
char *yon_char_from_int(int int_to_convert);
char *yon_char_from_long(long int_to_convert);
char *yon_char_replace(char *source, char *find, char*replace);
char **yon_char_parse(char *parameters, int *size, char *divider);
char **yon_char_parsed_rip(char **char_string, int *size, int item_to_delete);
char *yon_char_parsed_to_string(config_str parsed, int size, char *divider_replace);
int yon_char_parsed_check_exist(char **parameters, int size, char *param);
void yon_char_parsed_free(config_str source, int size);
int yon_char_find_count(char *source, char *find);
int yon_char_parsed_includes_char_parsed (config_str source, config_str to_check, int source_size, int check_size);
config_str yon_char_parsed_new (int *size, ...);
void yon_char_parsed_copy(config_str *source, config_str *to_copy);
config_str yon_char_parsed_append(config_str parsed, int *size, char *string);
int yon_char_parsed_remove_newline_symbols(config_str parsed, int *size);
int yon_ubl_check_root();
char *yon_ubl_root_user_get();
char *yon_ubl_user_get_home_directory();
config_str yon_ubl_get_all_users(int *user_size);
config_str yon_ubl_get_all_processes(int *processes_size);
config_str yon_ubl_get_all_slices(int *slices_size);
// parsing functions
config_str philos_list_user(int* size);
dictionary *yon_scan_desktops();
apps *yon_apps_scan_and_parse_desktops(int *sizef);
void yon_apps_sort(apps *applist, int size);
apps *yon_apps_get_by_name(apps *applist, char *name, int size);
char *yon_app_chooser_open_with_sections(char *section_name, char *section_filter, char *section_icon, ...);
config_str yon_config_load(char *command, int *str_len);
int yon_config_save_registered(char *path, char *section);
char *yon_config_get_parameter(config_str parameters, int size, char *param);
int yon_config_load_register(char *command);
int yon_config_remove_by_key(char *key);
int yon_config_remove_by_data(void *data);
int yon_config_remove_element(char *key, char *deleted);
void *yon_config_get_by_key(char *key);
char *yon_config_get_key_by_data(char *data);
int yon_config_set(char *key, void *data);
int yon_config_clean();
void yon_config_register(char *key, void *data);
config_str yon_config_get_all();
// terminal-using functions
int yon_launch_app_with_arguments(char *name, char *args);
void yon_launch(char *command);
void yon_launch_thread(char *command);
// Gtk functions
#ifdef __GTK_H__
#ifdef VTE_TERMINAL
void yon_terminal_integrated_launch(GtkWidget *place_to_show, char* command, void *endwork_function, void* endwork_function_argument);
void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *endwork_function, void* endwork_function_argument);
#endif
enum YON_TYPE{
YON_TYPE_STRING,
YON_TYPE_STRING_LIST,
YON_TYPE_INT,
YON_TYPE_DOUBLE,
YON_TYPE_BOOLEAN,
YON_TYPE_OTHER
};
GtkWidget *yon_ubl_menu_item_about_new(char *buttonname);
GtkWidget *yon_ubl_menu_item_documentation_new(char *buttonname);
/**yon_gtk_builder_get_widget(builder, widget_name)
* [EN]
* Returns GtkWidget from GtkBuilder *[builder].
* [builder] is GtkBuilder*;
* [widget_name] is id of widget;
*/
#define yon_gtk_builder_get_widget(builder, widget_name) GTK_WIDGET(gtk_builder_get_object(builder, widget_name))
typedef struct
{
GtkWidget *Icon;
GtkWidget *Label;
GtkWidget *IconView;
GtkListStore *List;
} expander_icon_view;
void yon_window_config_setup(GtkWindow *window);
int yon_window_config_load(char *path);
config_str yon_window_config_get_section(char *section, gsize *size);
void yon_window_config_add_listener(GtkWidget *widget, char *param_name, char *widget_property, enum YON_TYPE val_type);
void yon_window_config_add_custom_parameter(char *param_name, char *section, void *tracked_value, enum YON_TYPE val_type);
void yon_window_config_erase_custom_parameter(char *param_name, char *section);
int yon_window_config_get_parameter(char *section, char *config_parameter, void *return_value, enum YON_TYPE type);
int yon_gtk_combo_box_text_fill(GtkWidget *combo, char **parameters,int size);
int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find);
void yon_gtk_column_minimal_fixed_size_set(GtkTreeViewColumn *column);
int yon_gtk_icon_view_hide_empty(dictionary *icon_view_segment);
void yon_subwindow_close(GtkWidget *self);
int yon_dictionary_gtk_pack_start_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...);
int yon_dictionary_gtk_pack_end_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...);
void yon_gtk_widget_set_sensitive_from_toggle_button(GtkToggleButton *toggle, GtkWidget *target);
void yon_gtk_widget_set_sensitive_from_toggle_button_inversed(GtkToggleButton *toggle, GtkWidget *target);
void yon_gtk_widget_set_sensitive_from_combo_box(GtkComboBox *toggle, GtkWidget *target);
void yon_gtk_widget_set_sensitive_from_combo_box_inversed(GtkComboBox *toggle, GtkWidget *target);
typedef enum
{
BACKGROUND_IMAGE_SUCCESS_TYPE,
BACKGROUND_IMAGE_FAIL_TYPE
} BACKGROUND_IMAGE_TYPE;
typedef struct {
BACKGROUND_IMAGE_TYPE type;
GtkWidget *icon;
GtkWidget *box;
GtkWidget *label;
char* text_to_render;
} render_data;
/**yon_ubl_status_box_setup(render,icon,box,label)
* [EN]
* Sets up [render] structure of type render_data.
* [icon] is GtkImage widget of status box for showing status icons;
* [box] is GtkBox widget of status box for showing status color;
* [label] is GtkLabel widget of status box for showing status text;
* [RU]
* Настраивает структуру [render] типа render_data.
* [icon] - виджет типа GtkIcon в котором будут отображаться статусные иконки;
* [box] - виджет типа GtkBox в котором будет отображаться цвет статуса;
* [label] - виджет типа GtkLabel в котором будет отображаться текст статусного сообщения;
*/
int yon_ubl_status_box_setup(GtkWidget *icon, GtkWidget *box, GtkWidget *label);
/**yon_ubl_status_box_render(render,text,type)
* [EN]
* Renders message in status box;
* [render] is render_data structure of status box;
* [text] is text to be shown in status box;
* [type] if type of message. Can be BACKGROUND_IMAGE_FAIL_TYPE or BACKGROUND_IMAGE_SUCCESS_TYPE
* [RU]
* Отображает сообщение в статусном окне.
* [render] - структура типа render_data для нужного статусного окна;
* [text] - текст, отображаемый в статусном окне;
* [type] - тип сообщения. Может быть:
* BACKGROUND_IMAGE_FAIL_TYPE (красный фон,иконка - восклицательный знак)
* или
* BACKGROUND_IMAGE_SUCCESS_TYPE (Жёлтный фон, иконка - галка)
*/
void yon_ubl_status_box_render(char *text, BACKGROUND_IMAGE_TYPE type);
/**yon_ubl_header_setup(overlay, head, image, imag_path)
* [EN]
* Sets up header of app.
* [overlay] is overlay for app header;
* [head] is box of header, which connects to [overlay]
* [image] is header background image;
* [imag_path] is path of image, shown in [image]
* [RU]
* Настраивает заголовок приложения.
* [overlay] - оверлей заголовка приложения;
* [head] - шапка заголовка, присоединяемая к [overlay]
* [image] - виджет картинки для заднего фона;
* [imag_path] - путь до картинки, загружаемой в [image]
*/
#define yon_ubl_header_setup(overlay, head, image, imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay), GTK_WIDGET(head), GTK_WIDGET(image), (char *)imag_path)
#define yon_ubl_header_setup_resource(overlay, head, image, imag_path) _yon_ubl_header_setup_resource(GTK_WIDGET(overlay), GTK_WIDGET(head), GTK_WIDGET(image), (char *)imag_path)
#endif
void _yon_ubl_header_setup(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path);
void _yon_ubl_header_setup_resource(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path);
void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWidget *right_window, int socket_main_id, int socket_left_id, int socket_right_id);
#ifdef WEBKIT_FOUND
void yon_ubl_browser_window_open(char *link, char *browser_window_name);
#else
void yon_ubl_browser_window_open(char *link, char *browser_window_name);
#endif
#endif

@ -2,212 +2,346 @@
<!-- Generated with glade 3.38.2 --> <!-- Generated with glade 3.38.2 -->
<interface> <interface>
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<object class="GtkImage" id="image4"> <object class="GtkApplicationWindow" id="MainWindow">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">process-stop-symbolic</property>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emblem-ok-symbolic</property>
</object>
<object class="GtkWindow" id="templateMonitorConfigurationWindow">
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-video</property> <property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</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> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property> <property name="margin-start">5</property>
<property name="margin-end">5</property> <property name="margin-end">5</property>
<property name="margin-top">5</property> <property name="margin-top">5</property>
<property name="margin-bottom">5</property> <property name="margin-bottom">5</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<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="templateMonitorConfigurationEnableCheck">
<property name="label" translatable="yes">Enabled</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>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">end</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<property name="homogeneous">True</property>
<child> <child>
<object class="GtkButton" id="templateMonitorConfigurationSaveButton"> <object class="GtkCheckButton" id="EnableCheck">
<property name="label" translatable="yes">Save</property> <property name="label" translatable="yes">Enabled</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">False</property>
<property name="image">image5</property> <property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="templateMonitorConfigurationCancelButton">
<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>
</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> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox" id="mainMonitorConfigurationBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child> <child>
<object class="GtkBox" id="templateMonitorConfigurationBox"> <object class="GtkBox" id="EnableConfigurationBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox" id="InterfaceConfigurationBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkLabel" id="templateMonitorConfigurationPortLabel"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Port</property> <property name="spacing">5</property>
<child>
<object class="GtkLabel" id="templateMonitorConfigurationPortLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Port</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="PortCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="active">0</property>
<items>
<item translatable="yes">Choose port to configure</item>
</items>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="MainCheck">
<property name="label" translatable="yes">Main display</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">2</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkComboBoxText" id="templateMonitorConfigurationPortCombo"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="active">0</property> <property name="spacing">5</property>
<child>
<object class="GtkLabel" id="templateMonitorConfigurationResolutionLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Resolution (px): </property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="ResolutionCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="active">0</property>
<items>
<item translatable="yes">Default</item>
</items>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="UnsupportedCheck">
<property name="label" translatable="yes">Show unsupported</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">2</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkCheckButton" id="templateMonitorConfigurationMainCheck"> <object class="GtkBox">
<property name="label" translatable="yes">Main display</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="receives-default">False</property> <property name="spacing">5</property>
<property name="draw-indicator">True</property> <child>
<object class="GtkLabel" id="templateMonitorConfigurationFrequencyLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Frequency (Hz): </property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="FrequencyCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="active">0</property>
<items>
<item translatable="yes">Default</item>
<item translatable="yes">60</item>
<item translatable="yes">75</item>
</items>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">3</property>
</packing> </packing>
</child> </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> <child>
<object class="GtkLabel" id="templateMonitorConfigurationResolutionLabel"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Resolution (px): </property> <property name="spacing">5</property>
<child>
<object class="GtkLabel" id="templateMonitorConfigurationRotationLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Rotation: </property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="RotationCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="active">0</property>
<items>
<item translatable="yes">No rotation</item>
<item translatable="yes">Left</item>
<item translatable="yes">Right</item>
<item translatable="yes">Inversed</item>
</items>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">4</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkComboBoxText" id="templateMonitorConfigurationResolutionCombo"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="active">0</property> <property name="spacing">5</property>
<child>
<object class="GtkLabel" id="templateMonitorConfigurationPositionLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Position: </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>
<property name="homogeneous">True</property>
<child>
<object class="GtkComboBoxText" id="PositionPosCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="active">0</property>
<items>
<item translatable="yes">Default</item>
<item translatable="yes">Left of</item>
<item translatable="yes">Right of</item>
<item translatable="yes">Above</item>
<item translatable="yes">Below</item>
</items>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="PositionPortCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="active">0</property>
<items>
<item translatable="yes">Default</item>
</items>
</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>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">5</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkCheckButton" id="templateMonitorConfigurationShowUnsupportedCheck"> <object class="GtkCheckButton" id="DoNotSwitchOffCheck">
<property name="label" translatable="yes">Show unsupported</property> <property name="label" translatable="yes">Do not switch off display</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
@ -216,102 +350,82 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">6</property>
</packing> </packing>
</child> </child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkLabel" id="templateMonitorConfigurationFrequencyLabel"> <object class="GtkCheckButton" id="ModelineCVTCheck">
<property name="label" translatable="yes">Create modeline for current resolution with CVT</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">True</property>
<property name="label" translatable="yes">Frequency (Hz): </property> <property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">7</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkComboBoxText" id="templateMonitorConfigurationFrequencyCombo"> <object class="GtkCheckButton" id="UseCVTReducedCheck">
<property name="label" translatable="yes">Use "CVT Reduced Blanking"</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">True</property>
<property name="active">0</property> <property name="receives-default">False</property>
<items> <property name="draw-indicator">True</property>
<item translatable="yes">60</item>
<item translatable="yes">75</item>
</items>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">8</property>
</packing> </packing>
</child> </child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkLabel" id="templateMonitorConfigurationRotationLabel"> <object class="GtkCheckButton" id="ModelineGTFCheck">
<property name="label" translatable="yes">Create modeline for current resolution with GTF</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">True</property>
<property name="label" translatable="yes">Rotation: </property> <property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">9</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkComboBoxText" id="templateMonitorConfigurationRotationCombo"> <object class="GtkSeparator">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="active">0</property>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">10</property>
</packing> </packing>
</child> </child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">4</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkLabel" id="templateMonitorConfigurationPositionLabel"> <object class="GtkCheckButton" id="ParameterLineCheck">
<property name="label" translatable="yes">Configure manually through parameter line:</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">True</property>
<property name="label" translatable="yes">Position: </property> <property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -320,35 +434,12 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkBox"> <object class="GtkEntry" id="ParameterLineEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="sensitive">False</property>
<property name="spacing">5</property> <property name="can-focus">True</property>
<property name="homogeneous">True</property> <property name="valign">center</property>
<child> <property name="placeholder-text" translatable="yes">1920x1080</property>
<object class="GtkComboBoxText" id="templateMonitorConfigurationPositionPosCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="active">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="templateMonitorConfigurationPositionPortCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="active">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -360,116 +451,6 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="templateMonitorConfigurationDoNotSwitchOffCheck">
<property name="label" translatable="yes">Do not switch off display</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">6</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="templateMonitorConfigurationModelineCVTCheck">
<property name="label" translatable="yes">Create modeline for current resolution with CVT</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">7</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="templateMonitorConfigurationUseCVTReducedCheck">
<property name="label" translatable="yes">Use "CVT Reduced Blanking"gshgrbehr</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">8</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="templateMonitorConfigurationModelineGTFCheck">
<property name="label" translatable="yes">Create modeline for current resolution with GTF</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">9</property>
</packing>
</child>
<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">10</property>
</packing>
</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-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="templateMonitorConfigurationParameterLineCheck">
<property name="label" translatable="yes">Configure manually through parameter line:</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="GtkEntry" id="templateMonitorConfigurationParameterLineEntry">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="valign">center</property>
<property name="placeholder-text" translatable="yes">1920x1080</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
@ -477,21 +458,68 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">3</property>
</packing> </packing>
</child> </child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">3</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="SettingsBar2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child type="title">
<object class="GtkLabel" id="HeadLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repository manager</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
</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>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="SaveButton">
<property name="label" translatable="yes">Save</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing> </packing>
</child> </child>
</object> </object>

@ -2,6 +2,23 @@
<!-- Generated with glade 3.38.2 --> <!-- Generated with glade 3.38.2 -->
<interface> <interface>
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<object class="GtkOverlay" id="ScreenOverlay">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkImage" id="MonitorImage">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
<property name="pixel-size">128</property>
<property name="icon-name">com.ublinux.ubl-settings-video.display</property>
<property name="icon_size">6</property>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
</object>
<object class="GtkImage" id="image13"> <object class="GtkImage" id="image13">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -32,7 +49,7 @@
<class name="textoutline"/> <class name="textoutline"/>
</style> </style>
</object> </object>
<object class="GtkBox" id="templateMonitorInfoBox"> <object class="GtkBox" id="MonitorInfoBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="valign">start</property> <property name="valign">start</property>
@ -44,7 +61,7 @@
<property name="margin-bottom">20</property> <property name="margin-bottom">20</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<child> <child>
<object class="GtkLabel" id="templateMonitorInfoNameLabel"> <object class="GtkLabel" id="NameLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="single-line-mode">True</property> <property name="single-line-mode">True</property>
@ -62,7 +79,7 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkLabel" id="templateMonitorInfoResolutionLabel"> <object class="GtkLabel" id="ResoulutionLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-left">5</property> <property name="margin-left">5</property>
@ -87,9 +104,11 @@
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-start">7</property>
<property name="margin-end">7</property>
<property name="margin-top">15</property> <property name="margin-top">15</property>
<child> <child>
<object class="GtkButton" id="templateMonitorDeleteButton"> <object class="GtkButton" id="DeleteButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
@ -107,7 +126,7 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton" id="templateMonitorSwitchButton"> <object class="GtkButton" id="SwitchButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
@ -125,7 +144,7 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton" id="templateMonitorInfoConfigureButton"> <object class="GtkButton" id="ConfigureButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
@ -146,7 +165,7 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton" id="templateMonitorInfoAddButton"> <object class="GtkButton" id="AddButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
@ -172,21 +191,4 @@
</packing> </packing>
</child> </child>
</object> </object>
<object class="GtkOverlay" id="templateMonitorscreenOverlay">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkImage" id="templateMonitorImage">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
<property name="pixel-size">128</property>
<property name="icon-name">com.ublinux.ubl-settings-video.display</property>
<property name="icon_size">6</property>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
</object>
</interface> </interface>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save