Agar

<-- Back to AG_Intro.3

SYNOPSIS

#include <agar/core.h>

DESCRIPTION

The AG_Config object records configuration settings global to an Agar application. This includes user preferences which are to be preserved after the application has exited.

Library or application-specific data may also be stored in the configuration object as AG_Variable(3) values. Variable names should not start with "ag_", the prefix is reserved for internal Agar settings.

Note that our AG_Variable(3) system implements pointers (or "bindings"), so it is always possible for a parameter value to be specified as a pointer to an external piece of data.

INTERFACE


AG_Config * AG_ConfigObject (void)

int AG_ConfigLoad (void)

int AG_ConfigSave (void)

int AG_ConfigFind (AG_ConfigPathGroup group, const char *filename, char *dst, AG_Size dst_size)

void AG_ConfigAddPath (AG_ConfigPathGroup group, const char *format, ...)

void AG_ConfigAddPathS (AG_ConfigPathGroup group, const char *pathname)

void AG_ConfigDelPath (AG_ConfigPathGroup group, const char *format, ...)

void AG_ConfigDelPathS (AG_ConfigPathGroup group, const char *pathname)


The AG_ConfigObject() function returns a pointer to the global AG_Config object.

The AG_ConfigLoad() function loads the configuration data from disk, returning 0 on sucess or -1 on failure. It is equivalent to calling AG_ObjectLoad(3) on the agConfig object. Note that AG_ConfigLoad() must be called after the initialization of all Agar libraries (i.e., if an application uses Agar-GUI, then the AG_ConfigLoad() call must follow the AG_InitGraphics() call).

The AG_ConfigSave() function saves the configuration data to disk, returning 0 on success or -1 on failure. It is equivalent to calling AG_ObjectSave(3) on the agConfig object.

The AG_ConfigFind() function searches a list of registered paths for the given file. group may be AG_CONFIG_PATH_DATA (for object and data files), or AG_CONFIG_PATH_FONTS (for fonts). If filename is found and and the file is accessible, then its absolute pathname is copied into the fixed-size buffer dst_path (limited to dst_len bytes), and AG_ConfigFind() returns 0. If the file cannot be found, it returns -1.

AG_ConfigAddPath() adds the specified directory to the list of AG_ConfigFind() search paths. AG_ConfigDelPath() removes the given directory from the list of registered search paths.

CONFIGURATION PARAMETERS

The following parameters are registered by Agar-Core:
BOOL initial-run Application is being ran for the first time (read-only).
STRING save-path Target directory for writing the AG_Object(3) virtual filesystem.
STRING tmp-path Directory for temporary files. Default is platform-dependent (on POSIX platforms, the TMPDIR environment variable is honored).

EXAMPLES

The following code sets an integer option and a string. The configuration is then immediately saved to disk:
AG_SetInt(agConfig, "my-setting", 1);
AG_SetString(agConfig, "my-string", "Foo bar");
AG_ConfigSave();

The following Agar-GUI code displays a checkbox controlling the value of "my-setting":
AG_Checkbox *cb = AG_CheckboxNew(win, 0, "My setting");
AG_BindVariable(cb, "state", agConfig, "my-setting");

The following code binds "my-ext-setting" to an external variable, and then reads the configuration from disk. If the saved configuration has "my-ext-setting" defined, then the variable will be set accordingly:
int myExtSetting = 0;

AG_BindInt(agConfig, "my-ext-setting", &myExtSetting);
AG_ConfigLoad();

SEE ALSO

AG_Intro(3), AG_Object(3)

HISTORY

The AG_Config interface first appeared in Agar 1.0
Csoft.net ElectronTubeStore.com