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

184 lines
6.8 KiB

#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include <locale.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <libintl.h>
#include <sys/types.h>
#include <fcntl.h>
#include "ubl-utils.h"
#ifndef UBL_SETINGS_VIDEO_H
#define UBL_SETINGS_VIDEO_H
#define icon_name "com.ublinux.ubl-settings-video"
#define banner_path "/usr/share/ubl-settings-video/ui/ubl-settings-video-banner.png"
#define glade_path "/usr/share/ubl-settings-video/ui/ubl-settings-video.glade"
#define LocalePath "/usr/share/locale"
#define LocaleName "ubl-settings-video"
#define CssPath "/usr/share/ubl-settings-video/css/ubl-settings-video.css"
#define StatusLoadGlobalFailed _("Failed to load global configuration")
#define StatusLoadLocalFailed _("Failed to load local configuration")
#define StatusSaveGlobalFailed _("Saving to global configuration Succeeded")
#define StatusSaveLocalFailed _("Saving to local configuration Succeeded")
#define get_ports_command "xrandr |grep -E \"^[A-Z0-9]* connected\" |cut -d' ' -f1"
#define load_drivers_command "/usr/bin/ubconfig --default --source "
#define load_drivers_global_command "/usr/bin/ubconfig --default --source global get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN "
#define save_drivers_global_command "/usr/bin/ubconfig --target global set video FAILSAFENVIDIA=%s FAILSAFEATI=%s OPTIRUN=%s PRIMUSRUN=%s "
#define load_drivers_local_command "/usr/bin/ubconfig --default --source system get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN "
#define save_drivers_local_command "/usr/bin/ubconfig --target system set video FAILSAFENVIDIA=%s FAILSAFEATI=%s OPTIRUN=%s PRIMUSRUN=%s "
char *local;
typedef char* string;
string version_application = "1.0";
#define _(String) gettext(String)
typedef struct {
int autoChooseDrivers;
dictionary *videoconfig;
dictionary *monitors;
char *proprietary;
char *failsafenVidia;
char *failsafeATI;
int descreteOnly;
char *optirun;
char *primusrun;
int gapfix;
int optiorprimus;
apps *applist;
int appsize;
} config;
typedef struct {
int main;
char *port;
char *resolution;
char *resolutionCapabilities;
char *frequency;
char *rotation;
char *stringparameters;
} monitorconfig;
typedef struct {
dictionary *monitors;
dictionary *overlays;
GtkBuilder *builder;
GtkWidget *appsPackBox;
GtkWidget *appsPackWindow;
GtkWidget *extraOptirunChooseAppsButton;
GtkWidget *extraPrimusunChooseAppsButton;
GtkWidget *MainWindow;
GtkWidget *headBox;
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;
} widgets_dict;
typedef struct {
GtkWidget *templateMonitorConfigurationWindow;
GtkWidget *templateMonitorConfigurationBox;
GtkWidget *templateMonitorConfigurationMonitorLabel;
GtkWidget *templateMonitorConfigurationResolutionLabel;
GtkWidget *templateMonitorConfigurationResolutionCombo;
GtkWidget *templateMonitorConfigurationFrequencyLabel;
GtkWidget *templateMonitorConfigurationFrequencyCombo;
GtkWidget *templateMonitorConfigurationRotationCombo;
GtkWidget *templateMonitorConfigurationRotationLabel;
GtkWidget *templateMonitorConfigurationMainRadio;
GtkWidget *templateMonitorConfigurationParameterLineCheck;
GtkWidget *templateMonitorConfigurationParameterLineEntry;
GtkWidget *templateMonitorConfigurationDoNotSwitchOffLabel;
GtkWidget *templateMonitorConfigurationDoNotSwitchOffCheck;
GtkWidget *templateMonitorConfigurationCancelButton;
GtkWidget *templateMonitorConfigurationSaveButton;
GtkWidget *templateMonitorscreenOverlay;
GtkWidget *templateMonitorInfoBox;
GtkWidget *templateMonitorInfoNameLabel;
GtkWidget *templateMonitorInfoResolutionLabel;
GtkWidget *templateMonitorInfoConfigureButton;
dictionary *curconfig;
} MonitorSettings;
int yon_check_for_monitors();
MonitorSettings *yon_setup_monitor_settings();
dictionary *yon_dictionary_pack_monitors(MonitorSettings *monitors, int size);
dictionary *yon_dictionary_pack_overlays(MonitorSettings *monitors, int size);
void on_closed_configuration(GtkWidget *self, MonitorSettings *monitors);
void on_save_configuration(GtkWidget self, MonitorSettings *monitors);
#endif