Добавлено: статическая связка с sqlite, улучшено оформление
This commit is contained in:
		
							parent
							
								
									3fcfc8783f
								
							
						
					
					
						commit
						a36ac928a0
					
				
					 10 changed files with 12941 additions and 16 deletions
				
			
		
							
								
								
									
										46
									
								
								db.c
									
										
									
									
									
								
							
							
						
						
									
										46
									
								
								db.c
									
										
									
									
									
								
							| 
						 | 
					@ -6,9 +6,10 @@
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdbool.h>
 | 
					#include <stdbool.h>
 | 
				
			||||||
#include <sqlite3.h>
 | 
					#include "sqlite3.h"
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "db.h"
 | 
					#include "db.h"
 | 
				
			||||||
#include "node_settings.h"
 | 
					#include "node_settings.h"
 | 
				
			||||||
| 
						 | 
					@ -57,7 +58,7 @@ static int dbLoad(void *NotUsed, int argc, char **argv, char **azColName)
 | 
				
			||||||
                    parameters[8] ? getParameter(atoi(parameters[8])) : NULL);
 | 
					                    parameters[8] ? getParameter(atoi(parameters[8])) : NULL);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (parameters[4])
 | 
					    if (parameters[4] && parameters[5])
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        addParameterValue(atoi(parameters[0]), atoi(parameters[4]), parameters[5], atoi(parameters[6]));
 | 
					        addParameterValue(atoi(parameters[0]), atoi(parameters[4]), parameters[5], atoi(parameters[6]));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -84,7 +85,7 @@ bool dbLoadData()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (sqlite3_exec(db, sql, dbLoad, 0, &err_msg) != SQLITE_OK)
 | 
					    if (sqlite3_exec(db, sql, dbLoad, 0, &err_msg) != SQLITE_OK)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        fprintf(stderr, "SQL error: %s\n", err_msg);
 | 
					        fprintf(stderr, "Ошибка выполнения запроса: %s\n", err_msg);
 | 
				
			||||||
        sqlite3_free(err_msg);
 | 
					        sqlite3_free(err_msg);
 | 
				
			||||||
        sqlite3_close(db);
 | 
					        sqlite3_close(db);
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
| 
						 | 
					@ -167,3 +168,42 @@ bool dbWriteValue(Value name, bool set)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool dbSetValueCurrent(Value name, char *current)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    sqlite3 *db = dbGetBase("freerdp.db");
 | 
				
			||||||
 | 
					    if (!db)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    char *text = strlen(current) ? current : NULL;
 | 
				
			||||||
 | 
					    sqlite3_stmt *res;
 | 
				
			||||||
 | 
					    char *sql = "UPDATE `values` set `data` = ?, `set` = ? where id = ?";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (sqlite3_prepare_v2(db, sql, -1, &res, 0) == SQLITE_OK)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        sqlite3_bind_text(res, 1, text, -1, 0);
 | 
				
			||||||
 | 
					        sqlite3_bind_int(res, 2, text ? true : false);
 | 
				
			||||||
 | 
					        sqlite3_bind_int(res, 3, name);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (sqlite3_step(res) == SQLITE_BUSY)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        fprintf(stderr, "[ЗАНЯТО] %s - \"%s\"\n", text ? "установлено" : "очищено", getParameter(name)->key);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (sqlite3_step(res) == SQLITE_ERROR)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        fprintf(stderr, "[ОШИБКА] %s - \"%s\"\n", text ? "установлено" : "очищено", getParameter(name)->key);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (sqlite3_step(res) == SQLITE_DONE)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        fprintf(stdout, "[УСПЕШНО] %s - \"%s\"\n", text ? "установлено" : "очищено", getParameter(name)->key);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sqlite3_finalize(res);
 | 
				
			||||||
 | 
					    sqlite3_close(db);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								db.h
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								db.h
									
										
									
									
									
								
							| 
						 | 
					@ -14,5 +14,6 @@
 | 
				
			||||||
bool dbLoadData();
 | 
					bool dbLoadData();
 | 
				
			||||||
bool dbWriteParameter(Parameter name, bool set);
 | 
					bool dbWriteParameter(Parameter name, bool set);
 | 
				
			||||||
bool dbWriteValue(Value name, bool set);
 | 
					bool dbWriteValue(Value name, bool set);
 | 
				
			||||||
 | 
					bool dbSetValueCurrent(Value name, char *current);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* DB_H_ */
 | 
					#endif /* DB_H_ */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								freerdp.db
									
										
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								freerdp.db
									
										
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										23
									
								
								gui.c
									
										
									
									
									
								
							
							
						
						
									
										23
									
								
								gui.c
									
										
									
									
									
								
							| 
						 | 
					@ -15,6 +15,8 @@
 | 
				
			||||||
#include "images.h"
 | 
					#include "images.h"
 | 
				
			||||||
#include "arguments.h"
 | 
					#include "arguments.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "db.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int guiExit(Ihandle *self)
 | 
					static int guiExit(Ihandle *self)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    return IUP_CLOSE;
 | 
					    return IUP_CLOSE;
 | 
				
			||||||
| 
						 | 
					@ -23,7 +25,9 @@ static int guiExit(Ihandle *self)
 | 
				
			||||||
static int guiConnect(Ihandle *self)
 | 
					static int guiConnect(Ihandle *self)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    setParameterValue(PARAMETER_SERVER, VALUE_SERVER, IupGetAttribute(IupGetDialogChild(self, "SERVER"), "LINEVALUE"));
 | 
					    setParameterValue(PARAMETER_SERVER, VALUE_SERVER, IupGetAttribute(IupGetDialogChild(self, "SERVER"), "LINEVALUE"));
 | 
				
			||||||
 | 
					    dbSetValueCurrent(VALUE_SERVER, IupGetAttribute(IupGetDialogChild(self, "SERVER"), "LINEVALUE"));
 | 
				
			||||||
    setParameterValue(PARAMETER_USERNAME, VALUE_USERNAME, IupGetAttribute(IupGetDialogChild(self, "USER"), "LINEVALUE"));
 | 
					    setParameterValue(PARAMETER_USERNAME, VALUE_USERNAME, IupGetAttribute(IupGetDialogChild(self, "USER"), "LINEVALUE"));
 | 
				
			||||||
 | 
					    dbSetValueCurrent(VALUE_USERNAME, IupGetAttribute(IupGetDialogChild(self, "USER"), "LINEVALUE"));
 | 
				
			||||||
    setParameterValue(PARAMETER_PASSWORD, VALUE_PASSWORD, IupGetAttribute(IupGetDialogChild(self, "PASSWORD"), "LINEVALUE"));
 | 
					    setParameterValue(PARAMETER_PASSWORD, VALUE_PASSWORD, IupGetAttribute(IupGetDialogChild(self, "PASSWORD"), "LINEVALUE"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Arguments args;
 | 
					    Arguments args;
 | 
				
			||||||
| 
						 | 
					@ -64,6 +68,8 @@ Ihandle* guiStart()
 | 
				
			||||||
    IupSetAttribute(labelServer, "PADDING", "5");
 | 
					    IupSetAttribute(labelServer, "PADDING", "5");
 | 
				
			||||||
    inputServer = IupText(NULL);
 | 
					    inputServer = IupText(NULL);
 | 
				
			||||||
    IupSetAttribute(inputServer, "NAME", "SERVER");
 | 
					    IupSetAttribute(inputServer, "NAME", "SERVER");
 | 
				
			||||||
 | 
					    IupSetAttribute(inputServer, "TIP", "IP-адрес или имя удаленного сервера (обязательно)");
 | 
				
			||||||
 | 
					    IupSetAttribute(inputServer, "VALUE", getSetValueCurrent(PARAMETER_SERVER));
 | 
				
			||||||
    //    IupSetAttribute(inputServer, "BORDER", "NO");
 | 
					    //    IupSetAttribute(inputServer, "BORDER", "NO");
 | 
				
			||||||
    IupSetAttribute(inputServer, "SIZE", "100");
 | 
					    IupSetAttribute(inputServer, "SIZE", "100");
 | 
				
			||||||
    //    IupSetAttribute(inputServer, "PADDING", "10x");
 | 
					    //    IupSetAttribute(inputServer, "PADDING", "10x");
 | 
				
			||||||
| 
						 | 
					@ -76,6 +82,8 @@ Ihandle* guiStart()
 | 
				
			||||||
    IupSetAttribute(labelUser, "PADDING", "5");
 | 
					    IupSetAttribute(labelUser, "PADDING", "5");
 | 
				
			||||||
    inputUser = IupText(NULL);
 | 
					    inputUser = IupText(NULL);
 | 
				
			||||||
    IupSetAttribute(inputUser, "NAME", "USER");
 | 
					    IupSetAttribute(inputUser, "NAME", "USER");
 | 
				
			||||||
 | 
					    IupSetAttribute(inputUser, "TIP", "<домен>\\<имя пользователя> (обязательно)");
 | 
				
			||||||
 | 
					    IupSetAttribute(inputUser, "VALUE", getSetValueCurrent(PARAMETER_USERNAME));
 | 
				
			||||||
    IupSetAttribute(inputUser, "SIZE", "100");
 | 
					    IupSetAttribute(inputUser, "SIZE", "100");
 | 
				
			||||||
    //    IupSetAttribute(inputUser, "PADDING", "10x10");
 | 
					    //    IupSetAttribute(inputUser, "PADDING", "10x10");
 | 
				
			||||||
    hBoxUser = IupHbox(labelUser, inputUser, NULL);
 | 
					    hBoxUser = IupHbox(labelUser, inputUser, NULL);
 | 
				
			||||||
| 
						 | 
					@ -89,6 +97,8 @@ Ihandle* guiStart()
 | 
				
			||||||
    IupSetAttribute(inputPassword, "SIZE", "100");
 | 
					    IupSetAttribute(inputPassword, "SIZE", "100");
 | 
				
			||||||
    //    IupSetAttribute(inputPassword, "PADDING", "10x10");
 | 
					    //    IupSetAttribute(inputPassword, "PADDING", "10x10");
 | 
				
			||||||
    IupSetAttribute(inputPassword, "NAME", "PASSWORD");
 | 
					    IupSetAttribute(inputPassword, "NAME", "PASSWORD");
 | 
				
			||||||
 | 
					    IupSetAttribute(inputPassword, "TIP", "Пароль пользователя (необязательно)");
 | 
				
			||||||
 | 
					    IupSetAttribute(inputPassword, "VALUE", getSetValueCurrent(PARAMETER_PASSWORD));
 | 
				
			||||||
    IupSetAttribute(inputPassword, "PASSWORD", "YES");
 | 
					    IupSetAttribute(inputPassword, "PASSWORD", "YES");
 | 
				
			||||||
    hBoxPassword = IupHbox(labelPassword, inputPassword, NULL);
 | 
					    hBoxPassword = IupHbox(labelPassword, inputPassword, NULL);
 | 
				
			||||||
    IupSetAttribute(hBoxPassword, "MARGIN", "10x10");
 | 
					    IupSetAttribute(hBoxPassword, "MARGIN", "10x10");
 | 
				
			||||||
| 
						 | 
					@ -96,13 +106,24 @@ Ihandle* guiStart()
 | 
				
			||||||
    btnConnect = IupButton("Подключение", NULL);
 | 
					    btnConnect = IupButton("Подключение", NULL);
 | 
				
			||||||
    IupSetHandle("CONNECT", btnConnect);
 | 
					    IupSetHandle("CONNECT", btnConnect);
 | 
				
			||||||
    IupSetAttribute(btnConnect, "NAME", "CONNECT");
 | 
					    IupSetAttribute(btnConnect, "NAME", "CONNECT");
 | 
				
			||||||
 | 
					    IupSetAttribute(btnConnect, "TIP", "Выполнить подключение");
 | 
				
			||||||
 | 
					    IupSetAttribute(btnConnect, "BGCOLOR", "0 179 0");
 | 
				
			||||||
 | 
					    IupSetAttribute(btnConnect, "FGCOLOR", "255 255 255");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    btnClose = IupButton("Закрыть", NULL);
 | 
					    btnClose = IupButton("Закрыть", NULL);
 | 
				
			||||||
    IupSetHandle("CLOSE", btnClose);
 | 
					    IupSetHandle("CLOSE", btnClose);
 | 
				
			||||||
    IupSetAttribute(btnClose, "NAME", "CLOSE");
 | 
					    IupSetAttribute(btnClose, "NAME", "CLOSE");
 | 
				
			||||||
 | 
					    IupSetAttribute(btnClose, "TIP", "Закрыть FreeRDP");
 | 
				
			||||||
 | 
					    IupSetAttribute(btnClose, "BGCOLOR", "204 0 0");
 | 
				
			||||||
 | 
					    IupSetAttribute(btnClose, "FGCOLOR", "255 255 255");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    btnSettings = IupButton("Настройки", NULL);
 | 
					    btnSettings = IupButton("Настройки", NULL);
 | 
				
			||||||
    IupSetAttribute(btnSettings, "NAME", "SETTINGS");
 | 
					    IupSetAttribute(btnSettings, "NAME", "SETTINGS");
 | 
				
			||||||
 | 
					    IupSetAttribute(btnSettings, "TIP", "Перейти в настройки");
 | 
				
			||||||
 | 
					    IupSetAttribute(btnSettings, "BGCOLOR", "0 136 204");
 | 
				
			||||||
 | 
					    IupSetAttribute(btnSettings, "FGCOLOR", "255 255 255");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    hBoxButtons = IupHbox(IupFill(), btnConnect, btnClose, btnSettings, IupFill(), NULL);
 | 
					    hBoxButtons = IupHbox(IupFill(), btnSettings, btnConnect, btnClose, IupFill(), NULL);
 | 
				
			||||||
    IupSetAttribute(hBoxButtons, "ALIGNMENT", "ACENTER:ACENTER");
 | 
					    IupSetAttribute(hBoxButtons, "ALIGNMENT", "ACENTER:ACENTER");
 | 
				
			||||||
    IupSetAttribute(hBoxButtons, "GAP", "10");
 | 
					    IupSetAttribute(hBoxButtons, "GAP", "10");
 | 
				
			||||||
    IupSetAttribute(hBoxButtons, "MARGIN", "10x10");
 | 
					    IupSetAttribute(hBoxButtons, "MARGIN", "10x10");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -272,6 +272,26 @@ NodeValue* getSetNodeValue(NodeParameter *node)
 | 
				
			||||||
    return NULL;
 | 
					    return NULL;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char *getSetValueCurrent(Parameter name)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    NodeParameter *nodeParameter = getNodeParameter(name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!nodeParameter)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return NULL;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (NodeValue *head = nodeParameter->value; head; head = head->next)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (head->set)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return head->current;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return NULL;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
////////////////////////////////////////////////////////////////
 | 
					////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void setParameterValue(Parameter pName, Value vName, char *current)
 | 
					void setParameterValue(Parameter pName, Value vName, char *current)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -53,6 +53,7 @@ void addParameterValue(Parameter pName, Value vName, char *current, bool set);
 | 
				
			||||||
void freeSettings();
 | 
					void freeSettings();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
NodeValue *getSetNodeValue(NodeParameter *node);
 | 
					NodeValue *getSetNodeValue(NodeParameter *node);
 | 
				
			||||||
 | 
					char *getSetValueCurrent(Parameter name);
 | 
				
			||||||
bool getSetParameter(Parameter name);
 | 
					bool getSetParameter(Parameter name);
 | 
				
			||||||
bool getSetValue(Parameter pName, Value vName);
 | 
					bool getSetValue(Parameter pName, Value vName);
 | 
				
			||||||
int getCountValue(Parameter name);
 | 
					int getCountValue(Parameter name);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,9 +21,9 @@ typedef enum
 | 
				
			||||||
    PARAMETER_FONTS,
 | 
					    PARAMETER_FONTS,
 | 
				
			||||||
    PARAMETER_SOUND,
 | 
					    PARAMETER_SOUND,
 | 
				
			||||||
    PARAMETER_COMPRESSION,
 | 
					    PARAMETER_COMPRESSION,
 | 
				
			||||||
 | 
					    PARAMETER_FULLSCREEN,
 | 
				
			||||||
    PARAMETER_MONITORS,
 | 
					    PARAMETER_MONITORS,
 | 
				
			||||||
    PARAMETER_MULTIMONITOR,
 | 
					    PARAMETER_MULTIMONITOR,
 | 
				
			||||||
    PARAMETER_FULLSCREEN,
 | 
					 | 
				
			||||||
    PARAMETER_AUTHENTICATION,
 | 
					    PARAMETER_AUTHENTICATION,
 | 
				
			||||||
    PARAMETER_SECURITY,
 | 
					    PARAMETER_SECURITY,
 | 
				
			||||||
    PARAMETER_BITSPERPIXEL,
 | 
					    PARAMETER_BITSPERPIXEL,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										28
									
								
								settings.c
									
										
									
									
									
								
							
							
						
						
									
										28
									
								
								settings.c
									
										
									
									
									
								
							| 
						 | 
					@ -227,20 +227,20 @@ static Ihandle* settingsBoxCheckbox()
 | 
				
			||||||
    return IupSetAttributes(
 | 
					    return IupSetAttributes(
 | 
				
			||||||
            IupFrame(
 | 
					            IupFrame(
 | 
				
			||||||
                    IupVbox(
 | 
					                    IupVbox(
 | 
				
			||||||
                            IupSetCallbacks(IupSetAttributes(tglAuthentication, "NAME=SETTINGS_TGL_AUTHENTICATION"), "ACTION",
 | 
					                            IupSetCallbacks(IupSetAttributes(tglAuthentication, "NAME=SETTINGS_TGL_AUTHENTICATION, TIP=\"Получить окно входа авторизации\""), "ACTION",
 | 
				
			||||||
                                    (Icallback) settingsTglAuthentication, NULL),
 | 
					                                    (Icallback) settingsTglAuthentication, NULL),
 | 
				
			||||||
                            IupSetCallbacks(IupSetAttributes(tglCertIgnore, "NAME=SETTINGS_TGL_AUTHENTICATION"), "ACTION",
 | 
					                            IupSetCallbacks(IupSetAttributes(tglCertIgnore, "NAME=SETTINGS_TGL_AUTHENTICATION, TIP=\"Игнорировать подтверждение принятия сертификата\""), "ACTION",
 | 
				
			||||||
                                    (Icallback) settingsTglCertIgnore, NULL),
 | 
					                                    (Icallback) settingsTglCertIgnore, NULL),
 | 
				
			||||||
                            IupSetCallbacks(IupSetAttributes(tglThemes, "NAME=SETTINGS_TGL_THEMES"), "ACTION", (Icallback) settingsTglThemes,
 | 
					                            IupSetCallbacks(IupSetAttributes(tglThemes, "NAME=SETTINGS_TGL_THEMES, TIP=\"Отключить поддержку тем оформления (улучшает скорость соединения)\""), "ACTION", (Icallback) settingsTglThemes,
 | 
				
			||||||
                            NULL),
 | 
					                            NULL),
 | 
				
			||||||
                            IupSetCallbacks(IupSetAttributes(tglWallpaper, "NAME=SETTINGS_TGL_WALLPAPER"), "ACTION", (Icallback) settingsTglWallpaper,
 | 
					                            IupSetCallbacks(IupSetAttributes(tglWallpaper, "NAME=SETTINGS_TGL_WALLPAPER, TIP=\"Отключить поддержку обои рабочего стола (улучшает скорость соединения)\""), "ACTION", (Icallback) settingsTglWallpaper,
 | 
				
			||||||
                            NULL), IupSetCallbacks(IupSetAttributes(tglSound, "NAME=SETTINGS_TGL_SOUND"), "ACTION", (Icallback) settingsTglSound,
 | 
					                            NULL), IupSetCallbacks(IupSetAttributes(tglSound, "NAME=SETTINGS_TGL_SOUND, TIP=\"Включить поддержку звука с удаленного сервера\""), "ACTION", (Icallback) settingsTglSound,
 | 
				
			||||||
                            NULL), IupSetCallbacks(IupSetAttributes(tglFonts, "NAME=SETTINGS_TGL_FONTS"), "ACTION", (Icallback) settingsTglFonts,
 | 
					                            NULL), IupSetCallbacks(IupSetAttributes(tglFonts, "NAME=SETTINGS_TGL_FONTS, TIP=\"Отключить прорисовку шрифтов (улучшает скорость соединения)\""), "ACTION", (Icallback) settingsTglFonts,
 | 
				
			||||||
                            NULL),
 | 
					                            NULL),
 | 
				
			||||||
                            IupSetCallbacks(IupSetAttributes(tglEncryption, "NAME=SETTINGS_TGL_ENCRYPTION"), "ACTION",
 | 
					                            IupSetCallbacks(IupSetAttributes(tglEncryption, "NAME=SETTINGS_TGL_ENCRYPTION, TIP=\"Отключить шифрование данных\""), "ACTION",
 | 
				
			||||||
                                    (Icallback) settingsTglEncryption,
 | 
					                                    (Icallback) settingsTglEncryption,
 | 
				
			||||||
                                    NULL),
 | 
					                                    NULL),
 | 
				
			||||||
                            IupSetCallbacks(IupSetAttributes(tglCompression, "NAME=SETTINGS_TGL_COMPRESSION"), "ACTION",
 | 
					                            IupSetCallbacks(IupSetAttributes(tglCompression, "NAME=SETTINGS_TGL_COMPRESSION, TIP=\"Включить сжатие данных (улучшает скорость соединения)\""), "ACTION",
 | 
				
			||||||
                                    (Icallback) settingsTglCompression,
 | 
					                                    (Icallback) settingsTglCompression,
 | 
				
			||||||
                                    NULL),
 | 
					                                    NULL),
 | 
				
			||||||
                            NULL)), "TITLE=\"Общие\", MARGIN=10x10");
 | 
					                            NULL)), "TITLE=\"Общие\", MARGIN=10x10");
 | 
				
			||||||
| 
						 | 
					@ -254,6 +254,7 @@ static Ihandle* settingsBoxSecurity()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    tglSecurity = IupToggle("Использовать", NULL);
 | 
					    tglSecurity = IupToggle("Использовать", NULL);
 | 
				
			||||||
    IupSetInt(tglSecurity, "VALUE", getSetParameter(PARAMETER_SECURITY));
 | 
					    IupSetInt(tglSecurity, "VALUE", getSetParameter(PARAMETER_SECURITY));
 | 
				
			||||||
 | 
					    IupSetAttribute(tglSecurity, "TIP", "Выбрать конкретный протокол передачи данных");
 | 
				
			||||||
    IupSetCallback(tglSecurity, "ACTION", (Icallback) settingsUseSecurity);
 | 
					    IupSetCallback(tglSecurity, "ACTION", (Icallback) settingsUseSecurity);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    tglTLS = IupToggle("TLS", NULL);
 | 
					    tglTLS = IupToggle("TLS", NULL);
 | 
				
			||||||
| 
						 | 
					@ -288,6 +289,7 @@ static Ihandle* settingsBoxBitsPerPixel()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    tglBitsPerPixel = IupToggle("Использовать", NULL);
 | 
					    tglBitsPerPixel = IupToggle("Использовать", NULL);
 | 
				
			||||||
    IupSetInt(tglBitsPerPixel, "VALUE", getSetParameter(PARAMETER_BITSPERPIXEL));
 | 
					    IupSetInt(tglBitsPerPixel, "VALUE", getSetParameter(PARAMETER_BITSPERPIXEL));
 | 
				
			||||||
 | 
					    IupSetAttribute(tglBitsPerPixel, "TIP", "Выбрать конкретную глубину цвета (меньше глубина - выше скорость и хуже качество)");
 | 
				
			||||||
    IupSetCallback(tglBitsPerPixel, "ACTION", (Icallback) settingsUseBitsPerPixel);
 | 
					    IupSetCallback(tglBitsPerPixel, "ACTION", (Icallback) settingsUseBitsPerPixel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    tgl8 = IupToggle("8 бит", NULL);
 | 
					    tgl8 = IupToggle("8 бит", NULL);
 | 
				
			||||||
| 
						 | 
					@ -346,11 +348,11 @@ static Ihandle* settingsBoxMonitor()
 | 
				
			||||||
    return IupSetAttributes(
 | 
					    return IupSetAttributes(
 | 
				
			||||||
            IupFrame(
 | 
					            IupFrame(
 | 
				
			||||||
                    IupVbox(
 | 
					                    IupVbox(
 | 
				
			||||||
                            IupSetCallbacks(IupSetAttributes(tglFullscreen, "NAME=SETTINGS_TGL_FULLSCREEN, EXPAND=YES"), "ACTION",
 | 
					                            IupSetCallbacks(IupSetAttributes(tglFullscreen, "NAME=SETTINGS_TGL_FULLSCREEN, EXPAND=YES, TIP=\"Выполнить подключение на весь экран\""), "ACTION",
 | 
				
			||||||
                                    (Icallback) settingsTglFullscreen, NULL),
 | 
					                                    (Icallback) settingsTglFullscreen, NULL),
 | 
				
			||||||
                            IupSetCallbacks(IupSetAttributes(tglMultimonitor, "NAME=SETTINGS_TGL_MULTIMONITOR"), "ACTION",
 | 
					                            IupSetCallbacks(IupSetAttributes(tglMultimonitor, "NAME=SETTINGS_TGL_MULTIMONITOR, TIP=\"Задействовать все подключенные мониторы\""), "ACTION",
 | 
				
			||||||
                                    (Icallback) settingsTglMultimonitor, NULL),
 | 
					                                    (Icallback) settingsTglMultimonitor, NULL),
 | 
				
			||||||
                            IupSetCallbacks(IupSetAttributes(ddMonitor, "NAME=MONITORS, DROPDOWN=YES, EXPAND=YES"), "ACTION",
 | 
					                            IupSetCallbacks(IupSetAttributes(ddMonitor, "NAME=MONITORS, DROPDOWN=YES, EXPAND=YES, TIP=\"Выбрать конкретный монитор для подключения\""), "ACTION",
 | 
				
			||||||
                                    (Icallback) settingsChooseMonitor, NULL),
 | 
					                                    (Icallback) settingsChooseMonitor, NULL),
 | 
				
			||||||
                            NULL)), "TITLE=\"Монитор\", MARGIN=10x10, CGAP=5");
 | 
					                            NULL)), "TITLE=\"Монитор\", MARGIN=10x10, CGAP=5");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -371,10 +373,14 @@ static Ihandle* settingsHorizontalBoxButtons()
 | 
				
			||||||
    btnSave = IupButton("Сохранить", NULL);
 | 
					    btnSave = IupButton("Сохранить", NULL);
 | 
				
			||||||
    IupSetAttribute(btnSave, "NAME", "SETTIGS_BTN_SAVE");
 | 
					    IupSetAttribute(btnSave, "NAME", "SETTIGS_BTN_SAVE");
 | 
				
			||||||
    IupSetAttribute(btnSave, "TIP", "Сохранить настройки");
 | 
					    IupSetAttribute(btnSave, "TIP", "Сохранить настройки");
 | 
				
			||||||
 | 
					    IupSetAttribute(btnSave, "BGCOLOR", "0 179 0");
 | 
				
			||||||
 | 
					    IupSetAttribute(btnSave, "FGCOLOR", "255 255 255");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    btnClose = IupButton("Закрыть", NULL);
 | 
					    btnClose = IupButton("Закрыть", NULL);
 | 
				
			||||||
    IupSetAttribute(btnClose, "NAME", "SETTIGS_BTN_CLOSE");
 | 
					    IupSetAttribute(btnClose, "NAME", "SETTIGS_BTN_CLOSE");
 | 
				
			||||||
    IupSetAttribute(btnClose, "TIP", "Отменить изменения");
 | 
					    IupSetAttribute(btnClose, "TIP", "Отменить изменения");
 | 
				
			||||||
 | 
					    IupSetAttribute(btnClose, "BGCOLOR", "204 0 0");
 | 
				
			||||||
 | 
					    IupSetAttribute(btnClose, "FGCOLOR", "255 255 255");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    IupSetHandle("btnClosePointer", btnClose);
 | 
					    IupSetHandle("btnClosePointer", btnClose);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								sqlite3.a
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								sqlite3.a
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue