Обновлено:

- С помощью флага IUP_WITH_SOUND_CHECKBOX скрытие настроек звука при компиляции программы
Новое:
- Параметр отключения декорации окон
This commit is contained in:
Alexander Zhirov 2023-02-16 15:38:49 +03:00
parent cb6ec47e5b
commit 4dea975c45
6 changed files with 48 additions and 35 deletions

View File

@ -35,7 +35,8 @@ git apply ../GUI-FreeRDP/xrandr.patch
## Сборка
Параметр `WITH_COLOR_BUTTONS` отвечает за окрашивание кнопок.
Параметр `IUP_WITH_COLOR_BUTTONS` отвечает за окрашивание кнопок (по умолчанию `OFF`).
Параметр `IUP_WITH_SOUND_CHECKBOX` включает поддержку параметров звука (по умолчанию `OFF`).
Создать отдельный каталог `build`:
@ -47,7 +48,7 @@ cd build
и выполнить в нём сборку:
```sh
cmake -B . -S .. \
cmake -B . -S ../freerdp-2.9.0 \
-DWITH_WAYLAND=OFF \
-DWITH_OSS=OFF \
-DWITH_ALSA=OFF \
@ -63,7 +64,8 @@ cmake -B . -S .. \
-DWITH_DSP_FFMPEG=OFF \
-DWITH_FAAC=OFF \
-DWITH_SSE2=ON \
-DWITH_COLOR_BUTTONS=ON \
-DIUP_WITH_COLOR_BUTTONS=OFF \
-DIUP_WITH_SOUND_CHECKBOX=OFF \
-DBUILD_SHARED_LIBS=OFF
```

Binary file not shown.

View File

@ -39,7 +39,7 @@ static int activeBtnConnect(Ihandle *self, int c, char *value)
if (!strcmp(value, "\0") || isEmptyFieldServerUser(self))
{
IupSetInt(IupGetDialogChild(self, "CONNECT"), "ACTIVE", 0);
#ifdef WITH_COLOR_BUTTONS
#ifdef IUP_WITH_COLOR_BUTTONS
IupSetAttribute(IupGetDialogChild(self, "CONNECT"), "BGCOLOR", "49 54 61");
IupSetAttribute(IupGetDialogChild(self, "CONNECT"), "FGCOLOR", "238 238 238");
#endif
@ -47,7 +47,7 @@ static int activeBtnConnect(Ihandle *self, int c, char *value)
else
{
IupSetInt(IupGetDialogChild(self, "CONNECT"), "ACTIVE", 1);
#ifdef WITH_COLOR_BUTTONS
#ifdef IUP_WITH_COLOR_BUTTONS
IupSetAttribute(IupGetDialogChild(self, "CONNECT"), "BGCOLOR", "0 179 0");
IupSetAttribute(IupGetDialogChild(self, "CONNECT"), "FGCOLOR", "255 255 255");
#endif
@ -188,7 +188,7 @@ Ihandle* guiStart()
IupSetHandle("CONNECT", btnConnect);
IupSetAttribute(btnConnect, "NAME", "CONNECT");
IupSetAttribute(btnConnect, "TIP", "Выполнить подключение");
#ifdef WITH_COLOR_BUTTONS
#ifdef IUP_WITH_COLOR_BUTTONS
IupSetAttribute(btnConnect, "BGCOLOR", "0 179 0");
IupSetAttribute(btnConnect, "FGCOLOR", "255 255 255");
#endif
@ -197,7 +197,7 @@ Ihandle* guiStart()
IupSetHandle("CLOSE", btnClose);
IupSetAttribute(btnClose, "NAME", "CLOSE");
IupSetAttribute(btnClose, "TIP", "Закрыть FreeRDP");
#ifdef WITH_COLOR_BUTTONS
#ifdef IUP_WITH_COLOR_BUTTONS
IupSetAttribute(btnClose, "BGCOLOR", "204 0 0");
IupSetAttribute(btnClose, "FGCOLOR", "255 255 255");
#endif
@ -205,7 +205,7 @@ Ihandle* guiStart()
btnSettings = IupButton("Настройки", NULL);
IupSetAttribute(btnSettings, "NAME", "SETTINGS");
IupSetAttribute(btnSettings, "TIP", "Перейти в настройки");
#ifdef WITH_COLOR_BUTTONS
#ifdef IUP_WITH_COLOR_BUTTONS
IupSetAttribute(btnSettings, "BGCOLOR", "0 136 204");
IupSetAttribute(btnSettings, "FGCOLOR", "255 255 255");
#endif

View File

@ -27,7 +27,8 @@ typedef enum
PARAMETER_AUTHENTICATION,
PARAMETER_SECURITY,
PARAMETER_BITSPERPIXEL,
PARAMETER_USB
PARAMETER_USB,
PARAMETER_DECORATIONS
} Parameter;
#endif /* PARAMETERS_H_ */

View File

@ -63,6 +63,12 @@ static int settingsTglWallpaper(Ihandle *self)
return IUP_DEFAULT;
}
static int settingsTglDecorations(Ihandle *self)
{
changeParameter(PARAMETER_DECORATIONS);
return IUP_DEFAULT;
}
static int settingsTglSound(Ihandle *self)
{
changeParameter(PARAMETER_SOUND);
@ -204,12 +210,13 @@ static int settingsTglFullscreen(Ihandle *self)
*/
static Ihandle* settingsBoxCheckbox()
{
Ihandle *tglAuthentication, *tglCertIgnore, *tglThemes, *tglWallpaper, *tglSound, *tglFonts, *tglEncryption, *tglCompression;
Ihandle *tglAuthentication, *tglCertIgnore, *tglThemes, *tglWallpaper, *tglDecorations, *tglSound, *tglFonts, *tglEncryption, *tglCompression;
tglAuthentication = IupToggle("Аутентификация", NULL);
tglCertIgnore = IupToggle("Игнорировать сертификат", NULL);
tglThemes = IupToggle("Отключить темы", NULL);
tglWallpaper = IupToggle("Отключить обои", NULL);
tglDecorations = IupToggle("Отключить оформление окон", NULL);
tglSound = IupToggle("Поддержка звука", NULL);
tglFonts = IupToggle("Отключить прорисовку шрифтов", NULL);
@ -220,6 +227,7 @@ static Ihandle* settingsBoxCheckbox()
IupSetInt(tglCertIgnore, "VALUE", getSetParameter(PARAMETER_CERTIGNORE));
IupSetInt(tglThemes, "VALUE", getSetParameter(PARAMETER_THEMES));
IupSetInt(tglWallpaper, "VALUE", getSetParameter(PARAMETER_WALLPAPER));
IupSetInt(tglDecorations, "VALUE", getSetParameter(PARAMETER_DECORATIONS));
IupSetInt(tglSound, "VALUE", getSetParameter(PARAMETER_SOUND));
IupSetInt(tglFonts, "VALUE", getSetParameter(PARAMETER_FONTS));
IupSetInt(tglEncryption, "VALUE", getSetParameter(PARAMETER_ENCRYPTION));
@ -228,23 +236,21 @@ static Ihandle* settingsBoxCheckbox()
return IupSetAttributes(
IupFrame(
IupVbox(
IupSetCallbacks(IupSetAttributes(tglAuthentication, "NAME=SETTINGS_TGL_AUTHENTICATION, TIP=\"Получить окно входа авторизации\""), "ACTION",
(Icallback) settingsTglAuthentication, NULL),
IupSetCallbacks(IupSetAttributes(tglCertIgnore, "NAME=SETTINGS_TGL_AUTHENTICATION, TIP=\"Игнорировать подтверждение принятия сертификата\""), "ACTION",
(Icallback) settingsTglCertIgnore, NULL),
IupSetCallbacks(IupSetAttributes(tglThemes, "NAME=SETTINGS_TGL_THEMES, TIP=\"Отключить поддержку тем оформления (улучшает скорость соединения)\""), "ACTION", (Icallback) settingsTglThemes,
NULL),
IupSetCallbacks(IupSetAttributes(tglWallpaper, "NAME=SETTINGS_TGL_WALLPAPER, TIP=\"Отключить поддержку обои рабочего стола (улучшает скорость соединения)\""), "ACTION", (Icallback) settingsTglWallpaper,
NULL), IupSetCallbacks(IupSetAttributes(tglSound, "NAME=SETTINGS_TGL_SOUND, TIP=\"Включить поддержку звука с удаленного сервера\""), "ACTION", (Icallback) settingsTglSound,
NULL), IupSetCallbacks(IupSetAttributes(tglFonts, "NAME=SETTINGS_TGL_FONTS, TIP=\"Отключить прорисовку шрифтов (улучшает скорость соединения)\""), "ACTION", (Icallback) settingsTglFonts,
NULL),
IupSetCallbacks(IupSetAttributes(tglEncryption, "NAME=SETTINGS_TGL_ENCRYPTION, TIP=\"Отключить шифрование данных\""), "ACTION",
(Icallback) settingsTglEncryption,
NULL),
IupSetCallbacks(IupSetAttributes(tglCompression, "NAME=SETTINGS_TGL_COMPRESSION, TIP=\"Включить сжатие данных (улучшает скорость соединения)\""), "ACTION",
(Icallback) settingsTglCompression,
NULL),
NULL)), "TITLE=\"Общие\", MARGIN=10x10");
IupSetCallbacks(IupSetAttributes(tglAuthentication, "NAME=SETTINGS_TGL_AUTHENTICATION, TIP=\"Получить окно входа авторизации\""), "ACTION", (Icallback) settingsTglAuthentication, NULL),
IupSetCallbacks(IupSetAttributes(tglCertIgnore, "NAME=SETTINGS_TGL_AUTHENTICATION, TIP=\"Игнорировать подтверждение принятия сертификата\""), "ACTION", (Icallback) settingsTglCertIgnore, NULL),
IupSetCallbacks(IupSetAttributes(tglThemes, "NAME=SETTINGS_TGL_THEMES, TIP=\"Отключить поддержку тем оформления (улучшает скорость соединения)\""), "ACTION", (Icallback) settingsTglThemes, NULL),
IupSetCallbacks(IupSetAttributes(tglWallpaper, "NAME=SETTINGS_TGL_WALLPAPER, TIP=\"Отключить поддержку обоев рабочего стола (улучшает скорость соединения)\""), "ACTION", (Icallback) settingsTglWallpaper, NULL),
IupSetCallbacks(IupSetAttributes(tglDecorations, "NAME=SETTINGS_TGL_DECORATIONS, TIP=\"Отключить поддержку оформления окон (улучшает скорость соединения)\""), "ACTION", (Icallback) settingsTglDecorations, NULL),
#ifdef IUP_WITH_SOUND_CHECKBOX
IupSetCallbacks(IupSetAttributes(tglSound, "NAME=SETTINGS_TGL_SOUND, TIP=\"Включить поддержку звука с удаленного сервера\""), "ACTION", (Icallback) settingsTglSound, NULL),
#endif
IupSetCallbacks(IupSetAttributes(tglFonts, "NAME=SETTINGS_TGL_FONTS, TIP=\"Отключить прорисовку шрифтов (улучшает скорость соединения)\""), "ACTION", (Icallback) settingsTglFonts, NULL),
IupSetCallbacks(IupSetAttributes(tglEncryption, "NAME=SETTINGS_TGL_ENCRYPTION, TIP=\"Отключить шифрование данных\""), "ACTION", (Icallback) settingsTglEncryption, NULL),
IupSetCallbacks(IupSetAttributes(tglCompression, "NAME=SETTINGS_TGL_COMPRESSION, TIP=\"Включить сжатие данных (улучшает скорость соединения)\""), "ACTION", (Icallback) settingsTglCompression, NULL),
NULL
)
), "TITLE=\"Общие\", MARGIN=10x10"
);
}
static Ihandle* settingsBoxSecurity()
@ -368,7 +374,7 @@ static Ihandle* settingsHorizontalBoxButtons()
btnSave = IupButton("Сохранить", NULL);
IupSetAttribute(btnSave, "NAME", "SETTIGS_BTN_SAVE");
IupSetAttribute(btnSave, "TIP", "Сохранить настройки");
#ifdef WITH_COLOR_BUTTONS
#ifdef IUP_WITH_COLOR_BUTTONS
IupSetAttribute(btnSave, "BGCOLOR", "0 179 0");
IupSetAttribute(btnSave, "FGCOLOR", "255 255 255");
#endif
@ -376,7 +382,7 @@ static Ihandle* settingsHorizontalBoxButtons()
btnClose = IupButton("Закрыть", NULL);
IupSetAttribute(btnClose, "NAME", "SETTIGS_BTN_CLOSE");
IupSetAttribute(btnClose, "TIP", "Отменить изменения");
#ifdef WITH_COLOR_BUTTONS
#ifdef IUP_WITH_COLOR_BUTTONS
IupSetAttribute(btnClose, "BGCOLOR", "204 0 0");
IupSetAttribute(btnClose, "FGCOLOR", "255 255 255");
#endif

View File

@ -1,5 +1,5 @@
diff --git a/client/X11/CMakeLists.txt b/client/X11/CMakeLists.txt
index 869652c..0588402 100644
index 869652c..e30acc5 100644
--- a/client/X11/CMakeLists.txt
+++ b/client/X11/CMakeLists.txt
@@ -57,6 +57,37 @@ set(${MODULE_PREFIX}_SRCS
@ -49,12 +49,16 @@ index 869652c..0588402 100644
add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME "xfreerdp")
include_directories(..)
@@ -226,13 +257,17 @@ if(WITH_XFIXES)
@@ -226,13 +257,21 @@ if(WITH_XFIXES)
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${XFIXES_LIBRARIES})
endif()
+if(WITH_COLOR_BUTTONS)
+ add_definitions(-DWITH_COLOR_BUTTONS)
+if(IUP_WITH_COLOR_BUTTONS)
+ add_definitions(-DIUP_WITH_COLOR_BUTTONS)
+endif()
+
+if(IUP_WITH_SOUND_CHECKBOX)
+ add_definitions(-DIUP_WITH_SOUND_CHECKBOX)
+endif()
+
include_directories(${CMAKE_SOURCE_DIR}/resources)