diff --git a/README.md b/README.md index 37a1131..30ddc45 100644 --- a/README.md +++ b/README.md @@ -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 ``` diff --git a/freerdp.db b/freerdp.db index 7c0f798..416201a 100644 Binary files a/freerdp.db and b/freerdp.db differ diff --git a/freerdp/client/X11/cli/gui.c b/freerdp/client/X11/cli/gui.c index 53afea6..7744dcf 100644 --- a/freerdp/client/X11/cli/gui.c +++ b/freerdp/client/X11/cli/gui.c @@ -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 diff --git a/freerdp/client/X11/cli/parameter.h b/freerdp/client/X11/cli/parameter.h index b78f3dc..203683f 100644 --- a/freerdp/client/X11/cli/parameter.h +++ b/freerdp/client/X11/cli/parameter.h @@ -27,7 +27,8 @@ typedef enum PARAMETER_AUTHENTICATION, PARAMETER_SECURITY, PARAMETER_BITSPERPIXEL, - PARAMETER_USB + PARAMETER_USB, + PARAMETER_DECORATIONS } Parameter; #endif /* PARAMETERS_H_ */ diff --git a/freerdp/client/X11/cli/settings.c b/freerdp/client/X11/cli/settings.c index 80200ec..3992406 100644 --- a/freerdp/client/X11/cli/settings.c +++ b/freerdp/client/X11/cli/settings.c @@ -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,31 +227,30 @@ 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)); IupSetInt(tglCompression, "VALUE", getSetParameter(PARAMETER_COMPRESSION)); 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"); + 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(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 diff --git a/gui.patch b/gui.patch index eb66a99..44dba98 100644 --- a/gui.patch +++ b/gui.patch @@ -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)