From f3f30a4cf860bab5c5a141c981a9afef57a650b4 Mon Sep 17 00:00:00 2001 From: Alexander Zhirov Date: Thu, 16 Feb 2023 19:23:41 +0300 Subject: [PATCH] =?UTF-8?q?-=20=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BF=D0=B0=D1=82=D1=87=20gui.patch=20-=20?= =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=81=D0=B8=D0=BE=D0=BD=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- freerdp/client/X11/cli/about.c | 15 ++++++++++ freerdp/client/X11/cli/about.h | 13 ++++++++ freerdp/client/X11/cli/settings.c | 49 +++++++++++++++++++++++++------ gui.patch | 34 ++++----------------- 4 files changed, 73 insertions(+), 38 deletions(-) create mode 100644 freerdp/client/X11/cli/about.c create mode 100644 freerdp/client/X11/cli/about.h diff --git a/freerdp/client/X11/cli/about.c b/freerdp/client/X11/cli/about.c new file mode 100644 index 0000000..0f55c44 --- /dev/null +++ b/freerdp/client/X11/cli/about.c @@ -0,0 +1,15 @@ +/* + * about.c + * + * Created on: 16 февр. 2023 г. + * Author: alexander + */ + +#include "about.h" + +char* getAbout() +{ + char *about = "" + "GUI FreeRDP\nv1.2.1\nСобрано на основе freerdp v2.9.0"; + return about; +} diff --git a/freerdp/client/X11/cli/about.h b/freerdp/client/X11/cli/about.h new file mode 100644 index 0000000..ffe8f10 --- /dev/null +++ b/freerdp/client/X11/cli/about.h @@ -0,0 +1,13 @@ +/* + * about.h + * + * Created on: 16 февр. 2023 г. + * Author: alexander + */ + +#ifndef CLIENT_X11_CLI_ABOUT_H_ +#define CLIENT_X11_CLI_ABOUT_H_ + +char* getAbout(); + +#endif /* CLIENT_X11_CLI_ABOUT_H_ */ diff --git a/freerdp/client/X11/cli/settings.c b/freerdp/client/X11/cli/settings.c index 3992406..f845248 100644 --- a/freerdp/client/X11/cli/settings.c +++ b/freerdp/client/X11/cli/settings.c @@ -16,6 +16,7 @@ #include "settings.h" #include "arguments.h" #include "node_settings.h" +#include "about.h" void toggleActive(Ihandle *self, char *name) { @@ -347,21 +348,51 @@ static Ihandle* settingsBoxMonitor() IupSetInt(ddMonitor, "ACTIVE", getSetParameter(PARAMETER_FULLSCREEN) && !getSetParameter(PARAMETER_MULTIMONITOR)); return IupSetAttributes( - IupFrame( + IupFrame( + IupVbox( + IupSetAttributes( IupVbox( - IupSetCallbacks(IupSetAttributes(tglFullscreen, "NAME=SETTINGS_TGL_FULLSCREEN, EXPAND=YES, TIP=\"Выполнить подключение на весь экран\""), "ACTION", - (Icallback) settingsTglFullscreen, NULL), - IupSetCallbacks(IupSetAttributes(tglMultimonitor, "NAME=SETTINGS_TGL_MULTIMONITOR, TIP=\"Задействовать все подключенные мониторы\""), "ACTION", - (Icallback) settingsTglMultimonitor, NULL), - IupSetCallbacks(IupSetAttributes(ddMonitor, "NAME=MONITORS, DROPDOWN=YES, EXPAND=YES, TIP=\"Выбрать конкретный монитор для подключения\""), "ACTION", - (Icallback) settingsChooseMonitor, NULL), - NULL)), "TITLE=\"Монитор\", MARGIN=10x10, CGAP=5"); + IupSetCallbacks(IupSetAttributes(tglFullscreen, "NAME=SETTINGS_TGL_FULLSCREEN, EXPAND=YES, TIP=\"Выполнить подключение на весь экран\""), "ACTION", (Icallback) settingsTglFullscreen, NULL), + IupSetCallbacks(IupSetAttributes(tglMultimonitor, "NAME=SETTINGS_TGL_MULTIMONITOR, TIP=\"Задействовать все подключенные мониторы\""), "ACTION", (Icallback) settingsTglMultimonitor, NULL), + NULL + ), "MARGIN=0x0, GAP=0x0"), + IupSetCallbacks(IupSetAttributes(ddMonitor, "NAME=MONITORS, DROPDOWN=YES, EXPAND=YES, TIP=\"Выбрать конкретный монитор для подключения\""), "ACTION", (Icallback) settingsChooseMonitor, NULL), + NULL) + ), "TITLE=\"Монитор\", MARGIN=15x10, GAP=15x0"); +} + +static Ihandle* settingsBoxAbout() +{ + Ihandle *inputAbout; + + inputAbout = IupText(NULL); + + IupSetAttribute(inputAbout, "READONLY", "YES"); + IupSetAttribute(inputAbout, "MULTILINE", "YES"); + IupSetAttribute(inputAbout, "SIZE", "160"); + IupSetAttribute(inputAbout, "VISIBLELINES", "6"); + IupSetAttribute(inputAbout, "PADDING", "5"); + IupSetAttribute(inputAbout, "VALUE", getAbout()); + + return IupSetAttributes(IupFrame(IupHbox(inputAbout, NULL)), "TITLE=\"О программе\", MARGIN=10x10"); } static Ihandle* settingsHorizontalBox() { return IupSetAttributes( - IupHbox(IupVbox(settingsBoxCheckbox(), settingsBoxMonitor(), NULL), settingsBoxSecurity(), settingsBoxBitsPerPixel(), NULL), "MARGIN=5x5"); + IupHbox( + IupSetAttributes( + IupVbox(settingsBoxCheckbox(), settingsBoxMonitor(), NULL), + "NMARGIN=0x0" + ), + IupSetAttributes( + IupVbox( + IupSetAttributes(IupHbox(settingsBoxSecurity(), settingsBoxBitsPerPixel(), NULL), "GAP=10x0"), + settingsBoxAbout(), + NULL), + "MARGIN=0x0"), + NULL), "NMARGIN=10x0, NGAP=10x0" + ); } /* diff --git a/gui.patch b/gui.patch index 44dba98..e3fb147 100644 --- a/gui.patch +++ b/gui.patch @@ -1,8 +1,8 @@ diff --git a/client/X11/CMakeLists.txt b/client/X11/CMakeLists.txt -index 869652c..e30acc5 100644 +index 869652c..c1fffe4 100644 --- a/client/X11/CMakeLists.txt +++ b/client/X11/CMakeLists.txt -@@ -57,6 +57,37 @@ set(${MODULE_PREFIX}_SRCS +@@ -57,6 +57,38 @@ set(${MODULE_PREFIX}_SRCS xf_client.c xf_client.h) @@ -21,6 +21,7 @@ index 869652c..e30acc5 100644 + cli/db.c + cli/address.c + cli/monitor.c ++ cli/about.c + cli/xrdp.c) + +set(IUP_FEATURE_TYPE "REQUIRED") @@ -40,7 +41,7 @@ index 869652c..e30acc5 100644 if (CHANNEL_TSMF_CLIENT) set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} xf_tsmf.c -@@ -74,7 +105,7 @@ if(WITH_CLIENT_INTERFACE) +@@ -74,7 +106,7 @@ if(WITH_CLIENT_INTERFACE) endif() else() @@ -49,7 +50,7 @@ index 869652c..e30acc5 100644 add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME "xfreerdp") include_directories(..) -@@ -226,13 +257,21 @@ if(WITH_XFIXES) +@@ -226,13 +258,21 @@ if(WITH_XFIXES) set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${XFIXES_LIBRARIES}) endif() @@ -72,31 +73,6 @@ index 869652c..e30acc5 100644 if(WITH_IPP) target_link_libraries(${MODULE_NAME} ${PRIVATE_KEYWORD} ${IPP_LIBRARY_LIST}) -diff --git a/client/X11/cli/CMakeLists.txt b/client/X11/cli/CMakeLists.txt -index 5f805c2..1e7d1c4 100644 ---- a/client/X11/cli/CMakeLists.txt -+++ b/client/X11/cli/CMakeLists.txt -@@ -19,7 +19,19 @@ set(MODULE_NAME "xfreerdp-cli") - set(MODULE_PREFIX "FREERDP_CLIENT_X11") - - set(${MODULE_PREFIX}_SRCS -- xfreerdp.c) -+ xfreerdp.c -+ images.c -+ arguments.c -+ concat.c -+ gui.c -+ node_settings.c -+ rxrandr_broker.c -+ rxrandr.c -+ settings.c -+ db.c -+ address.c -+ monitor.c -+ xrdp.c) - - add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) - set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME "xfreerdp" RUNTIME_OUTPUT_DIRECTORY "..") diff --git a/client/X11/cli/xfreerdp.c b/client/X11/cli/xfreerdp.c index 8db4d39..abdf3ca 100644 --- a/client/X11/cli/xfreerdp.c