/* Chrysalide - Outil d'analyse de fichiers binaires
* params.c - éléments de la configuration principale
*
* Copyright (C) 2014-2019 Cyrille Bagard
*
* This file is part of Chrysalide.
*
* Chrysalide is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* Chrysalide is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Chrysalide. If not, see .
*/
#include "params.h"
/******************************************************************************
* *
* Paramètres : - *
* *
* Description : Procède au chargement de la configuration principale. *
* *
* Retour : Bilan de l'opération. *
* *
* Remarques : - *
* *
******************************************************************************/
bool load_main_config_parameters(void)
{
GGenConfig *config; /* Configuration à charger */
GCfgParam *param; /* Paramètre chargé */
config = g_generic_config_new_from_file("main");
set_main_configuration(config);
param = g_generic_config_create_param(config, MPK_FORMAT_NO_NAME, CPT_BOOLEAN, false);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_INTERNAL_THEME, CPT_STRING, "Adwaita");
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_TITLE_BAR, CPT_BOOLEAN, true);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_LAST_PROJECT, CPT_STRING, NULL);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_SKIP_EXIT_MSG, CPT_BOOLEAN, false);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_MAXIMIZED, CPT_BOOLEAN, true);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_ELLIPSIS_HEADER, CPT_INTEGER, 54);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_ELLIPSIS_TAB, CPT_INTEGER, 35);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_WELCOME_STARTUP, CPT_BOOLEAN, true);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_WELCOME_CHECK, CPT_BOOLEAN, false);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_LABEL_OFFSET, CPT_INTEGER, 10);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_HEX_PADDING, CPT_INTEGER, 10);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_SELECTION_LINE, CPT_BOOLEAN, true);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_TOOLTIP_MAX_CALLS, CPT_INTEGER, 5);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_TOOLTIP_MAX_STRINGS, CPT_INTEGER, 5);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_HEX_UPPER_CASE, CPT_BOOLEAN, true);
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_LINK_DEFAULT, CPT_COLOR, ((GdkRGBA []) { { 0, 0, 0, 1.0 } }));
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_LINK_BRANCH_TRUE, CPT_COLOR, ((GdkRGBA []) { { 0, 0.6, 0, 1.0 } }));
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_LINK_BRANCH_FALSE, CPT_COLOR, ((GdkRGBA []) { { 0.8, 0, 0, 1.0 } }));
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_LINK_LOOP, CPT_COLOR, ((GdkRGBA []) { { 0, 0, 0.8, 1.0 } }));
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_KEYBINDINGS_EDIT, CPT_STRING, "F2");
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_TMPDIR, CPT_STRING, "/tmp/chrysalide");
if (param == NULL) return false;
param = g_generic_config_create_param(config, MPK_AUTO_SAVE, CPT_BOOLEAN, true);
if (param == NULL) return false;
g_generic_config_create_group(config, "gui.panels.positions", CPT_INTEGER);
g_generic_config_create_group(config, "gui.panels.dock_at_startup", CPT_BOOLEAN);
return true;
}
/******************************************************************************
* *
* Paramètres : - *
* *
* Description : Procède au déchargement de la configuration principale. *
* *
* Retour : - *
* *
* Remarques : - *
* *
******************************************************************************/
void unload_main_config_parameters(void)
{
GGenConfig *config; /* Configuration à décharger */
config = get_main_configuration();
g_object_unref(G_OBJECT(config));
}
/******************************************************************************
* *
* Paramètres : config = éventuelle configuration à définir comme principale.*
* *
* Description : Fournit un lien vers la configuration principale. *
* *
* Retour : Configuration prête à emploi ou NULL si aucune définie. *
* *
* Remarques : - *
* *
******************************************************************************/
GGenConfig *_get_main_configuration(GGenConfig *config)
{
static GGenConfig *result = NULL; /* Structure à retourner */
if (config != NULL)
result = config;
return result;
}