2022-07-06 17:51:51 +00:00
|
|
|
|
/*
|
|
|
|
|
* settings.c
|
|
|
|
|
*
|
|
|
|
|
* Created on: 6 июл. 2022 г.
|
|
|
|
|
* Author: alexander
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include <iup.h>
|
2022-07-07 16:35:48 +00:00
|
|
|
|
|
2022-07-06 17:51:51 +00:00
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <stdbool.h>
|
|
|
|
|
|
2022-07-11 10:12:29 +00:00
|
|
|
|
#include "xrandr.h"
|
2022-07-11 17:06:05 +00:00
|
|
|
|
#include <stdio.h>
|
2022-07-11 10:12:29 +00:00
|
|
|
|
|
2022-07-06 17:51:51 +00:00
|
|
|
|
#include "settings.h"
|
|
|
|
|
#include "arguments.h"
|
2022-07-07 16:35:48 +00:00
|
|
|
|
#include "node_settings.h"
|
2022-07-06 17:51:51 +00:00
|
|
|
|
|
2022-07-08 16:45:45 +00:00
|
|
|
|
void toggleActive(Ihandle *self, char *name)
|
|
|
|
|
{
|
|
|
|
|
IupSetInt(IupGetDialogChild(self, name), "ACTIVE", !IupGetInt(IupGetDialogChild(self, name), "ACTIVE"));
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-07 16:35:48 +00:00
|
|
|
|
static int settingsClose(Ihandle *self)
|
2022-07-06 17:51:51 +00:00
|
|
|
|
{
|
2022-07-08 16:45:45 +00:00
|
|
|
|
resetChangeSettings();
|
2022-07-07 16:35:48 +00:00
|
|
|
|
IupSetAttribute(IupGetDialog(self), "SIMULATEMODAL", "OFF");
|
|
|
|
|
IupHide(IupGetDialog(self));
|
2022-07-06 17:51:51 +00:00
|
|
|
|
return IUP_DEFAULT;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int settingsSave(Ihandle *self)
|
|
|
|
|
{
|
2022-07-08 16:45:45 +00:00
|
|
|
|
saveChangeSettings();
|
2022-07-07 16:35:48 +00:00
|
|
|
|
IupSetAttribute(IupGetDialog(self), "SIMULATEMODAL", "OFF");
|
|
|
|
|
IupHide(IupGetDialog(self));
|
2022-07-06 17:51:51 +00:00
|
|
|
|
return IUP_DEFAULT;
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-07 16:35:48 +00:00
|
|
|
|
static int settingsTglAuthentication(Ihandle *self)
|
2022-07-06 17:51:51 +00:00
|
|
|
|
{
|
2022-07-08 16:45:45 +00:00
|
|
|
|
changeParameter(PARAMETER_AUTHENTICATION);
|
|
|
|
|
return IUP_DEFAULT;
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-11 10:12:29 +00:00
|
|
|
|
static int settingsTglCertIgnore(Ihandle *self)
|
|
|
|
|
{
|
|
|
|
|
changeParameter(PARAMETER_CERTIGNORE);
|
|
|
|
|
return IUP_DEFAULT;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int settingsTglThemes(Ihandle *self)
|
|
|
|
|
{
|
|
|
|
|
changeParameter(PARAMETER_THEMES);
|
|
|
|
|
return IUP_DEFAULT;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int settingsTglWallpaper(Ihandle *self)
|
|
|
|
|
{
|
|
|
|
|
changeParameter(PARAMETER_WALLPAPER);
|
|
|
|
|
return IUP_DEFAULT;
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-08 16:45:45 +00:00
|
|
|
|
static int settingsUseSecurity(Ihandle *self)
|
|
|
|
|
{
|
|
|
|
|
changeParameter(PARAMETER_SECURITY);
|
|
|
|
|
toggleActive(self, "SECURITY_TLS");
|
|
|
|
|
toggleActive(self, "SECURITY_RDP");
|
|
|
|
|
toggleActive(self, "SECURITY_NLA");
|
|
|
|
|
toggleActive(self, "SECURITY_EXT");
|
|
|
|
|
|
2022-07-07 16:35:48 +00:00
|
|
|
|
return IUP_DEFAULT;
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-08 16:45:45 +00:00
|
|
|
|
static void settingsChooseSecurity(Ihandle *self, int state)
|
|
|
|
|
{
|
|
|
|
|
if (state == 1)
|
|
|
|
|
{
|
|
|
|
|
int tool_index = IupGetInt(self, "TOOLINDEX");
|
|
|
|
|
switch (tool_index)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
{
|
|
|
|
|
changeValue(PARAMETER_SECURITY, VALUE_SECURITY_TLS);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 1:
|
|
|
|
|
{
|
|
|
|
|
changeValue(PARAMETER_SECURITY, VALUE_SECURITY_RDP);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 2:
|
|
|
|
|
{
|
|
|
|
|
changeValue(PARAMETER_SECURITY, VALUE_SECURITY_NLA);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 3:
|
|
|
|
|
{
|
|
|
|
|
changeValue(PARAMETER_SECURITY, VALUE_SECURITY_EXT);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-11 10:12:29 +00:00
|
|
|
|
static int settingsUseBitsPerPixel(Ihandle *self)
|
|
|
|
|
{
|
|
|
|
|
changeParameter(PARAMETER_BITSPERPIXEL);
|
|
|
|
|
toggleActive(self, "BITSPERPIXEL_8");
|
|
|
|
|
toggleActive(self, "BITSPERPIXEL_16");
|
|
|
|
|
toggleActive(self, "BITSPERPIXEL_24");
|
|
|
|
|
toggleActive(self, "BITSPERPIXEL_32");
|
|
|
|
|
|
|
|
|
|
return IUP_DEFAULT;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void settingsChooseBitsPerPixel(Ihandle *self, int state)
|
|
|
|
|
{
|
|
|
|
|
if (state == 1)
|
|
|
|
|
{
|
|
|
|
|
int tool_index = IupGetInt(self, "TOOLINDEX");
|
|
|
|
|
switch (tool_index)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
{
|
|
|
|
|
changeValue(PARAMETER_BITSPERPIXEL, VALUES_BITSPERPIXEL_8);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 1:
|
|
|
|
|
{
|
|
|
|
|
changeValue(PARAMETER_BITSPERPIXEL, VALUES_BITSPERPIXEL_16);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 2:
|
|
|
|
|
{
|
|
|
|
|
changeValue(PARAMETER_BITSPERPIXEL, VALUES_BITSPERPIXEL_24);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 3:
|
|
|
|
|
{
|
|
|
|
|
changeValue(PARAMETER_BITSPERPIXEL, VALUES_BITSPERPIXEL_32);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-11 17:06:05 +00:00
|
|
|
|
static int settingsChooseMonitor(Ihandle *ih, char *text, int item, int state)
|
2022-07-11 10:12:29 +00:00
|
|
|
|
{
|
2022-07-11 17:06:05 +00:00
|
|
|
|
if (state == 1)
|
|
|
|
|
{
|
|
|
|
|
changeValue(PARAMETER_MONITORS, item - 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return IUP_DEFAULT;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int settingsTglMultimonitor(Ihandle *self)
|
|
|
|
|
{
|
|
|
|
|
changeParameter(PARAMETER_MULTIMONITOR);
|
|
|
|
|
|
|
|
|
|
IupSetInt(IupGetDialogChild(self, "MONITORS"), "ACTIVE", !IupGetInt(IupGetDialogChild(self, "SETTINGS_TGL_MULTIMONITOR"), "VALUE"));
|
|
|
|
|
setParameter(PARAMETER_MONITORS, !IupGetInt(IupGetDialogChild(self, "SETTINGS_TGL_MULTIMONITOR"), "VALUE"));
|
|
|
|
|
return IUP_DEFAULT;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int settingsTglFullscreen(Ihandle *self)
|
|
|
|
|
{
|
|
|
|
|
changeParameter(PARAMETER_FULLSCREEN);
|
|
|
|
|
toggleActive(self, "SETTINGS_TGL_MULTIMONITOR");
|
|
|
|
|
IupSetInt(IupGetDialogChild(self, "MONITORS"), "ACTIVE", !IupGetInt(IupGetDialogChild(self, "SETTINGS_TGL_MULTIMONITOR"), "VALUE"));
|
|
|
|
|
setParameter(PARAMETER_MONITORS, !IupGetInt(IupGetDialogChild(self, "SETTINGS_TGL_MULTIMONITOR"), "VALUE"));
|
2022-07-11 10:12:29 +00:00
|
|
|
|
return IUP_DEFAULT;
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-07 16:35:48 +00:00
|
|
|
|
/*
|
|
|
|
|
* Блок настроек
|
|
|
|
|
*/
|
2022-07-08 16:45:45 +00:00
|
|
|
|
static Ihandle* settingsBoxCheckbox()
|
2022-07-07 16:35:48 +00:00
|
|
|
|
{
|
2022-07-11 17:06:05 +00:00
|
|
|
|
Ihandle *tglAuthentication, *tglCertIgnore, *tglThemes, *tglWallpaper;
|
2022-07-06 17:51:51 +00:00
|
|
|
|
|
2022-07-07 16:35:48 +00:00
|
|
|
|
tglAuthentication = IupToggle("Аутентификация", NULL);
|
2022-07-11 10:12:29 +00:00
|
|
|
|
tglCertIgnore = IupToggle("Игнорировать сертификат", NULL);
|
|
|
|
|
tglThemes = IupToggle("Отключить темы", NULL);
|
|
|
|
|
tglWallpaper = IupToggle("Отключить обои", NULL);
|
2022-07-07 16:35:48 +00:00
|
|
|
|
|
2022-07-08 16:45:45 +00:00
|
|
|
|
IupSetInt(tglAuthentication, "VALUE", getSetParameter(PARAMETER_AUTHENTICATION));
|
2022-07-11 10:12:29 +00:00
|
|
|
|
IupSetInt(tglCertIgnore, "VALUE", getSetParameter(PARAMETER_CERTIGNORE));
|
|
|
|
|
IupSetInt(tglThemes, "VALUE", getSetParameter(PARAMETER_THEMES));
|
|
|
|
|
IupSetInt(tglWallpaper, "VALUE", getSetParameter(PARAMETER_WALLPAPER));
|
2022-07-07 16:35:48 +00:00
|
|
|
|
|
2022-07-11 17:06:05 +00:00
|
|
|
|
return IupSetAttributes(
|
|
|
|
|
IupFrame(
|
|
|
|
|
IupVbox(
|
|
|
|
|
IupSetCallbacks(IupSetAttributes(tglAuthentication, "NAME=SETTINGS_TGL_AUTHENTICATION"), "ACTION",
|
|
|
|
|
(Icallback) settingsTglAuthentication, NULL),
|
|
|
|
|
IupSetCallbacks(IupSetAttributes(tglCertIgnore, "NAME=SETTINGS_TGL_AUTHENTICATION"), "ACTION",
|
|
|
|
|
(Icallback) settingsTglCertIgnore, NULL),
|
|
|
|
|
IupSetCallbacks(IupSetAttributes(tglThemes, "NAME=SETTINGS_TGL_THEMES"), "ACTION", (Icallback) settingsTglThemes,
|
|
|
|
|
NULL),
|
|
|
|
|
IupSetCallbacks(IupSetAttributes(tglWallpaper, "NAME=SETTINGS_TGL_WALLPAPER"), "ACTION", (Icallback) settingsTglWallpaper,
|
|
|
|
|
NULL),
|
|
|
|
|
NULL)), "TITLE=\"Общие\", MARGIN=10x10");
|
2022-07-07 16:35:48 +00:00
|
|
|
|
}
|
|
|
|
|
|
2022-07-08 16:45:45 +00:00
|
|
|
|
static Ihandle* settingsBoxSecurity()
|
2022-07-07 16:35:48 +00:00
|
|
|
|
{
|
2022-07-08 16:45:45 +00:00
|
|
|
|
Ihandle *tglSecurity;
|
|
|
|
|
Ihandle *tglTLS, *tglRDP, *tglNLA, *tglEXT;
|
|
|
|
|
Ihandle *grdSecurity;
|
|
|
|
|
|
|
|
|
|
tglSecurity = IupToggle("Использовать", NULL);
|
|
|
|
|
IupSetInt(tglSecurity, "VALUE", getSetParameter(PARAMETER_SECURITY));
|
2022-07-11 10:12:29 +00:00
|
|
|
|
IupSetCallback(tglSecurity, "ACTION", (Icallback) settingsUseSecurity);
|
2022-07-08 16:45:45 +00:00
|
|
|
|
|
|
|
|
|
tglTLS = IupToggle("TLS", NULL);
|
|
|
|
|
IupSetInt(tglTLS, "VALUE", getSetValue(PARAMETER_SECURITY, VALUE_SECURITY_TLS));
|
|
|
|
|
IupSetInt(tglTLS, "ACTIVE", getSetParameter(PARAMETER_SECURITY));
|
|
|
|
|
tglRDP = IupToggle("RDP", NULL);
|
|
|
|
|
IupSetInt(tglRDP, "VALUE", getSetValue(PARAMETER_SECURITY, VALUE_SECURITY_RDP));
|
|
|
|
|
IupSetInt(tglRDP, "ACTIVE", getSetParameter(PARAMETER_SECURITY));
|
|
|
|
|
tglNLA = IupToggle("NLA", NULL);
|
|
|
|
|
IupSetInt(tglNLA, "VALUE", getSetValue(PARAMETER_SECURITY, VALUE_SECURITY_NLA));
|
|
|
|
|
IupSetInt(tglNLA, "ACTIVE", getSetParameter(PARAMETER_SECURITY));
|
|
|
|
|
tglEXT = IupToggle("EXT", NULL);
|
|
|
|
|
IupSetInt(tglEXT, "VALUE", getSetValue(PARAMETER_SECURITY, VALUE_SECURITY_EXT));
|
|
|
|
|
IupSetInt(tglEXT, "ACTIVE", getSetParameter(PARAMETER_SECURITY));
|
|
|
|
|
|
2022-07-11 10:12:29 +00:00
|
|
|
|
grdSecurity = IupRadio(
|
|
|
|
|
IupGridBox(
|
|
|
|
|
IupSetCallbacks(IupSetAttributes(tglTLS, "NAME=SECURITY_TLS, TOOLINDEX=0"), "ACTION", (Icallback) settingsChooseSecurity, NULL),
|
|
|
|
|
IupSetCallbacks(IupSetAttributes(tglRDP, "NAME=SECURITY_RDP, TOOLINDEX=1"), "ACTION", (Icallback) settingsChooseSecurity, NULL),
|
|
|
|
|
IupSetCallbacks(IupSetAttributes(tglNLA, "NAME=SECURITY_NLA, TOOLINDEX=2"), "ACTION", (Icallback) settingsChooseSecurity, NULL),
|
|
|
|
|
IupSetCallbacks(IupSetAttributes(tglEXT, "NAME=SECURITY_EXT, TOOLINDEX=3"), "ACTION", (Icallback) settingsChooseSecurity, NULL),
|
|
|
|
|
NULL));
|
2022-07-08 16:45:45 +00:00
|
|
|
|
|
|
|
|
|
return IupHbox(IupSetAttributes(IupFrame(IupVbox(tglSecurity, grdSecurity, NULL)), "TITLE=\"Протокол безопасности\", MARGIN=15x10"), NULL);
|
|
|
|
|
}
|
2022-07-07 16:35:48 +00:00
|
|
|
|
|
2022-07-11 10:12:29 +00:00
|
|
|
|
static Ihandle* settingsBoxBitsPerPixel()
|
|
|
|
|
{
|
|
|
|
|
Ihandle *tglBitsPerPixel;
|
|
|
|
|
Ihandle *tgl8, *tgl16, *tgl24, *tgl32;
|
|
|
|
|
Ihandle *grdBitsPerPixel;
|
|
|
|
|
|
|
|
|
|
tglBitsPerPixel = IupToggle("Использовать", NULL);
|
|
|
|
|
IupSetInt(tglBitsPerPixel, "VALUE", getSetParameter(PARAMETER_BITSPERPIXEL));
|
|
|
|
|
IupSetCallback(tglBitsPerPixel, "ACTION", (Icallback) settingsUseBitsPerPixel);
|
|
|
|
|
|
|
|
|
|
tgl8 = IupToggle("8 бит", NULL);
|
|
|
|
|
IupSetInt(tgl8, "VALUE", getSetValue(PARAMETER_BITSPERPIXEL, VALUES_BITSPERPIXEL_8));
|
|
|
|
|
IupSetInt(tgl8, "ACTIVE", getSetParameter(PARAMETER_BITSPERPIXEL));
|
|
|
|
|
tgl16 = IupToggle("16 бит", NULL);
|
|
|
|
|
IupSetInt(tgl16, "VALUE", getSetValue(PARAMETER_BITSPERPIXEL, VALUES_BITSPERPIXEL_16));
|
|
|
|
|
IupSetInt(tgl16, "ACTIVE", getSetParameter(PARAMETER_BITSPERPIXEL));
|
|
|
|
|
tgl24 = IupToggle("24 бит", NULL);
|
|
|
|
|
IupSetInt(tgl24, "VALUE", getSetValue(PARAMETER_BITSPERPIXEL, VALUES_BITSPERPIXEL_24));
|
|
|
|
|
IupSetInt(tgl24, "ACTIVE", getSetParameter(PARAMETER_BITSPERPIXEL));
|
|
|
|
|
tgl32 = IupToggle("32 бит", NULL);
|
|
|
|
|
IupSetInt(tgl32, "VALUE", getSetValue(PARAMETER_BITSPERPIXEL, VALUES_BITSPERPIXEL_32));
|
|
|
|
|
IupSetInt(tgl32, "ACTIVE", getSetParameter(PARAMETER_BITSPERPIXEL));
|
|
|
|
|
|
|
|
|
|
grdBitsPerPixel = IupRadio(
|
|
|
|
|
IupGridBox(IupSetCallbacks(IupSetAttributes(tgl8, "NAME=BITSPERPIXEL_8, TOOLINDEX=0"), "ACTION", (Icallback) settingsChooseBitsPerPixel,
|
|
|
|
|
NULL), IupSetCallbacks(IupSetAttributes(tgl16, "NAME=BITSPERPIXEL_16, TOOLINDEX=1"), "ACTION", (Icallback) settingsChooseBitsPerPixel,
|
|
|
|
|
NULL), IupSetCallbacks(IupSetAttributes(tgl24, "NAME=BITSPERPIXEL_24, TOOLINDEX=2"), "ACTION", (Icallback) settingsChooseBitsPerPixel,
|
|
|
|
|
NULL), IupSetCallbacks(IupSetAttributes(tgl32, "NAME=BITSPERPIXEL_32, TOOLINDEX=3"), "ACTION", (Icallback) settingsChooseBitsPerPixel,
|
|
|
|
|
NULL),
|
|
|
|
|
NULL));
|
|
|
|
|
|
|
|
|
|
return IupHbox(IupSetAttributes(IupFrame(IupVbox(tglBitsPerPixel, grdBitsPerPixel, NULL)), "TITLE=\"Глубина цвета\", MARGIN=15x10"), NULL);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static Ihandle* settingsBoxMonitor()
|
|
|
|
|
{
|
2022-07-11 17:06:05 +00:00
|
|
|
|
Ihandle *tglFullscreen, *tglMultimonitor, *ddMonitor;
|
2022-07-11 10:12:29 +00:00
|
|
|
|
|
2022-07-11 17:06:05 +00:00
|
|
|
|
tglMultimonitor = IupToggle("Все мониторы", NULL);
|
|
|
|
|
tglFullscreen = IupToggle("На весь экран", NULL);
|
2022-07-11 10:12:29 +00:00
|
|
|
|
ddMonitor = IupList(NULL);
|
|
|
|
|
|
|
|
|
|
x_info *monitors = getXInfo();
|
2022-07-11 17:06:05 +00:00
|
|
|
|
char *allMonitorIndex = (char*) malloc(sizeof(char) * 3);
|
|
|
|
|
sprintf(allMonitorIndex, "%hu", monitors->count + 1);
|
|
|
|
|
size_t setValueIndex = 0;
|
2022-07-11 10:12:29 +00:00
|
|
|
|
|
|
|
|
|
for (short i = 0; i < monitors->count; ++i)
|
|
|
|
|
{
|
2022-07-11 17:06:05 +00:00
|
|
|
|
IupSetAttribute(ddMonitor, monitors->monitor[i].ptrIndexItem, monitors->monitor[i].ptrName);
|
|
|
|
|
if (getSetValue(PARAMETER_MONITORS, i))
|
|
|
|
|
setValueIndex = i + 1;
|
2022-07-11 10:12:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
2022-07-11 17:06:05 +00:00
|
|
|
|
IupSetInt(ddMonitor, "VALUE", setValueIndex ? setValueIndex : 1);
|
|
|
|
|
IupSetInt(tglMultimonitor, "VALUE", getSetParameter(PARAMETER_MULTIMONITOR));
|
|
|
|
|
IupSetInt(tglFullscreen, "VALUE", getSetParameter(PARAMETER_FULLSCREEN));
|
|
|
|
|
|
|
|
|
|
IupSetInt(tglMultimonitor, "ACTIVE", getSetParameter(PARAMETER_FULLSCREEN));
|
|
|
|
|
IupSetInt(ddMonitor, "ACTIVE", getSetParameter(PARAMETER_FULLSCREEN) && !getSetParameter(PARAMETER_MULTIMONITOR));
|
|
|
|
|
|
2022-07-11 10:12:29 +00:00
|
|
|
|
free(monitors);
|
|
|
|
|
|
2022-07-11 17:06:05 +00:00
|
|
|
|
return IupSetAttributes(
|
|
|
|
|
IupFrame(
|
|
|
|
|
IupVbox(
|
|
|
|
|
IupSetCallbacks(IupSetAttributes(tglFullscreen, "NAME=SETTINGS_TGL_FULLSCREEN, EXPAND=YES"), "ACTION",
|
|
|
|
|
(Icallback) settingsTglFullscreen, NULL),
|
|
|
|
|
IupSetCallbacks(IupSetAttributes(tglMultimonitor, "NAME=SETTINGS_TGL_MULTIMONITOR"), "ACTION",
|
|
|
|
|
(Icallback) settingsTglMultimonitor, NULL),
|
|
|
|
|
IupSetCallbacks(IupSetAttributes(ddMonitor, "NAME=MONITORS, DROPDOWN=YES, EXPAND=YES"), "ACTION",
|
|
|
|
|
(Icallback) settingsChooseMonitor, NULL),
|
|
|
|
|
NULL)), "TITLE=\"Монитор\", MARGIN=10x10, CGAP=5");
|
2022-07-11 10:12:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
2022-07-08 16:45:45 +00:00
|
|
|
|
static Ihandle* settingsHorizontalBox()
|
|
|
|
|
{
|
2022-07-11 17:06:05 +00:00
|
|
|
|
return IupSetAttributes(
|
|
|
|
|
IupHbox(IupVbox(settingsBoxCheckbox(), settingsBoxMonitor(), NULL), settingsBoxSecurity(), settingsBoxBitsPerPixel(), NULL), "MARGIN=5x5");
|
2022-07-07 16:35:48 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Блок кнопок
|
|
|
|
|
*/
|
2022-07-08 16:45:45 +00:00
|
|
|
|
static Ihandle* settingsHorizontalBoxButtons()
|
2022-07-07 16:35:48 +00:00
|
|
|
|
{
|
|
|
|
|
Ihandle *btnSave, *btnClose;
|
|
|
|
|
|
|
|
|
|
btnSave = IupButton("Сохранить", NULL);
|
|
|
|
|
IupSetAttribute(btnSave, "NAME", "SETTIGS_BTN_SAVE");
|
|
|
|
|
IupSetAttribute(btnSave, "TIP", "Сохранить настройки");
|
|
|
|
|
|
|
|
|
|
btnClose = IupButton("Закрыть", NULL);
|
|
|
|
|
IupSetAttribute(btnClose, "NAME", "SETTIGS_BTN_CLOSE");
|
2022-07-08 16:45:45 +00:00
|
|
|
|
IupSetAttribute(btnClose, "TIP", "Отменить изменения");
|
2022-07-07 16:35:48 +00:00
|
|
|
|
|
|
|
|
|
IupSetHandle("btnClosePointer", btnClose);
|
|
|
|
|
|
|
|
|
|
return IupSetAttributes(
|
|
|
|
|
IupHbox(IupFill(), IupSetCallbacks(btnSave, "ACTION", (Icallback) settingsSave, NULL),
|
|
|
|
|
IupSetCallbacks(btnClose, "ACTION", (Icallback) settingsClose, NULL), IupFill(),
|
|
|
|
|
NULL), "ALIGNMENT=ACENTER:ACENTER, GAP=10, MARGIN=10x10");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int settingsMainWindow(Ihandle *self)
|
|
|
|
|
{
|
|
|
|
|
Ihandle *dlg;
|
|
|
|
|
Ihandle *vBoxMain;
|
|
|
|
|
|
2022-07-08 16:45:45 +00:00
|
|
|
|
vBoxMain = IupSetAttributes(IupVbox(settingsHorizontalBox(), settingsHorizontalBoxButtons(), NULL), "NMARGIN=2x2, ALIGNMENT=ACENTER");
|
2022-07-06 17:51:51 +00:00
|
|
|
|
|
|
|
|
|
dlg = IupDialog(vBoxMain);
|
|
|
|
|
IupSetAttribute(dlg, "TITLE", "Настройки");
|
2022-07-07 16:35:48 +00:00
|
|
|
|
IupSetCallback(
|
|
|
|
|
IupSetAttributes(dlg,
|
|
|
|
|
"ICON=icon, DIALOGFRAME=ON, SIMULATEMODAL=ON, DEFAULTESC=btnClosePointer, TOPMOST=YES, BRINGFRONT=YES, NAME=SETTINGS_MAIN_WINDOW"),
|
|
|
|
|
"CLOSE_CB", (Icallback) settingsClose);
|
2022-07-06 17:51:51 +00:00
|
|
|
|
|
|
|
|
|
IupShowXY(dlg, IUP_CURRENT, IUP_CURRENT);
|
|
|
|
|
|
|
|
|
|
return IUP_DEFAULT;
|
|
|
|
|
}
|