Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 165c48458dd5fb511ed6f94e6a7dd70c > files > 134

geany-devel-1.23.1-2.mga4.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>Geany: stash.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Geany
   &#160;<span id="projectnumber">1.23.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">stash.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Lightweight library for reading/writing <code>GKeyFile</code> settings and synchronizing widgets with C variables.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a3afd3193cc9a18b69df8e6936d83efdf"><td class="memItemLeft" align="right" valign="top">typedef typedefG_BEGIN_DECLS <br class="typebreak"/>
struct StashGroup&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a></td></tr>
<tr class="memdesc:a3afd3193cc9a18b69df8e6936d83efdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque type for a group of settings.  <a href="#a3afd3193cc9a18b69df8e6936d83efdf">More...</a><br/></td></tr>
<tr class="separator:a3afd3193cc9a18b69df8e6936d83efdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85ab8977a73631effbcb8ce64adc0e8b"><td class="memItemLeft" align="right" valign="top">typedef gconstpointer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a></td></tr>
<tr class="memdesc:a85ab8977a73631effbcb8ce64adc0e8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be <code>GtkWidget*</code> or <code>gchar*</code> depending on whether the <em>owner</em> argument is used for <a class="el" href="stash_8h.html#a4dcf7692381c00315467bfed8da6da31" title="Applies Stash settings to widgets, usually called before displaying the widgets. ">stash_group_display()</a> and <a class="el" href="stash_8h.html#aae26428424ceac586890d0b9b6d017f9" title="Applies widget values to Stash settings, usually called after displaying the widgets. ">stash_group_update()</a>.  <a href="#a85ab8977a73631effbcb8ce64adc0e8b">More...</a><br/></td></tr>
<tr class="separator:a85ab8977a73631effbcb8ce64adc0e8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ad6c04aa05565985b82d60528b6611600"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#ad6c04aa05565985b82d60528b6611600">stash_group_add_boolean</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, gboolean *setting, const gchar *key_name, gboolean default_value)</td></tr>
<tr class="memdesc:ad6c04aa05565985b82d60528b6611600"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds boolean setting.  <a href="#ad6c04aa05565985b82d60528b6611600">More...</a><br/></td></tr>
<tr class="separator:ad6c04aa05565985b82d60528b6611600"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf51a719815c512d262d8ee9d38488df"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#abf51a719815c512d262d8ee9d38488df">stash_group_add_combo_box</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, gint *setting, const gchar *key_name, gint default_value, <a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a> widget_id)</td></tr>
<tr class="memdesc:abf51a719815c512d262d8ee9d38488df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a <code>GtkComboBox</code> widget pref.  <a href="#abf51a719815c512d262d8ee9d38488df">More...</a><br/></td></tr>
<tr class="separator:abf51a719815c512d262d8ee9d38488df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02af96d48cc9c184129cdce9093da839"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a02af96d48cc9c184129cdce9093da839">stash_group_add_combo_box_entry</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, gchar **setting, const gchar *key_name, const gchar *default_value, <a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a> widget_id)</td></tr>
<tr class="memdesc:a02af96d48cc9c184129cdce9093da839"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a <code>GtkComboBoxEntry</code> widget pref.  <a href="#a02af96d48cc9c184129cdce9093da839">More...</a><br/></td></tr>
<tr class="separator:a02af96d48cc9c184129cdce9093da839"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afab734dc626bed4f910009eb1f474e96"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#afab734dc626bed4f910009eb1f474e96">stash_group_add_entry</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, gchar **setting, const gchar *key_name, const gchar *default_value, <a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a> widget_id)</td></tr>
<tr class="memdesc:afab734dc626bed4f910009eb1f474e96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a <code>GtkEntry</code> widget pref.  <a href="#afab734dc626bed4f910009eb1f474e96">More...</a><br/></td></tr>
<tr class="separator:afab734dc626bed4f910009eb1f474e96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71dfa4afcb3c721a9338c3ecf91da90c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a71dfa4afcb3c721a9338c3ecf91da90c">stash_group_add_integer</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, gint *setting, const gchar *key_name, gint default_value)</td></tr>
<tr class="memdesc:a71dfa4afcb3c721a9338c3ecf91da90c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds integer setting.  <a href="#a71dfa4afcb3c721a9338c3ecf91da90c">More...</a><br/></td></tr>
<tr class="separator:a71dfa4afcb3c721a9338c3ecf91da90c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0089855ff8d255b986ed459981a01e95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a0089855ff8d255b986ed459981a01e95">stash_group_add_radio_buttons</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, gint *setting, const gchar *key_name, gint default_value, <a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a> widget_id, gint enum_id,...) G_GNUC_NULL_TERMINATED</td></tr>
<tr class="memdesc:a0089855ff8d255b986ed459981a01e95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a <code>GtkRadioButton</code> widget group pref.  <a href="#a0089855ff8d255b986ed459981a01e95">More...</a><br/></td></tr>
<tr class="separator:a0089855ff8d255b986ed459981a01e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26254f33543f48e05b15569681b2891d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a26254f33543f48e05b15569681b2891d">stash_group_add_spin_button_integer</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, gint *setting, const gchar *key_name, gint default_value, <a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a> widget_id)</td></tr>
<tr class="memdesc:a26254f33543f48e05b15569681b2891d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a <code>GtkSpinButton</code> widget pref.  <a href="#a26254f33543f48e05b15569681b2891d">More...</a><br/></td></tr>
<tr class="separator:a26254f33543f48e05b15569681b2891d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e50062fed452034c7f0e3c9919c43bd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a3e50062fed452034c7f0e3c9919c43bd">stash_group_add_string</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, gchar **setting, const gchar *key_name, const gchar *default_value)</td></tr>
<tr class="memdesc:a3e50062fed452034c7f0e3c9919c43bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds string setting.  <a href="#a3e50062fed452034c7f0e3c9919c43bd">More...</a><br/></td></tr>
<tr class="separator:a3e50062fed452034c7f0e3c9919c43bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a740daabf56fa44a8fac60ae7073b6cea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a740daabf56fa44a8fac60ae7073b6cea">stash_group_add_string_vector</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, gchar ***setting, const gchar *key_name, const gchar **default_value)</td></tr>
<tr class="memdesc:a740daabf56fa44a8fac60ae7073b6cea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds string vector setting (array of strings).  <a href="#a740daabf56fa44a8fac60ae7073b6cea">More...</a><br/></td></tr>
<tr class="separator:a740daabf56fa44a8fac60ae7073b6cea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4974033abb92118cf6e91d109692c9e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a4974033abb92118cf6e91d109692c9e7">stash_group_add_toggle_button</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, gboolean *setting, const gchar *key_name, gboolean default_value, <a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a> widget_id)</td></tr>
<tr class="memdesc:a4974033abb92118cf6e91d109692c9e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a <code>GtkToggleButton</code> (or <code>GtkCheckButton</code>) widget pref.  <a href="#a4974033abb92118cf6e91d109692c9e7">More...</a><br/></td></tr>
<tr class="separator:a4974033abb92118cf6e91d109692c9e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade0d8980af35c7fe74e1318f770fdec5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#ade0d8980af35c7fe74e1318f770fdec5">stash_group_add_widget_property</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, gpointer setting, const gchar *key_name, gpointer default_value, <a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a> widget_id, const gchar *property_name, GType type)</td></tr>
<tr class="memdesc:ade0d8980af35c7fe74e1318f770fdec5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a widget's read/write property to the stash group.  <a href="#ade0d8980af35c7fe74e1318f770fdec5">More...</a><br/></td></tr>
<tr class="separator:ade0d8980af35c7fe74e1318f770fdec5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4dcf7692381c00315467bfed8da6da31"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a4dcf7692381c00315467bfed8da6da31">stash_group_display</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, GtkWidget *owner)</td></tr>
<tr class="memdesc:a4dcf7692381c00315467bfed8da6da31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies Stash settings to widgets, usually called before displaying the widgets.  <a href="#a4dcf7692381c00315467bfed8da6da31">More...</a><br/></td></tr>
<tr class="separator:a4dcf7692381c00315467bfed8da6da31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3e4b533975b5b732a4a1d55fd590444"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#ae3e4b533975b5b732a4a1d55fd590444">stash_group_free</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group)</td></tr>
<tr class="memdesc:ae3e4b533975b5b732a4a1d55fd590444"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees a group.  <a href="#ae3e4b533975b5b732a4a1d55fd590444">More...</a><br/></td></tr>
<tr class="separator:ae3e4b533975b5b732a4a1d55fd590444"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a1fcb5df42b98f2cfe214a5ed4cb18e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a1a1fcb5df42b98f2cfe214a5ed4cb18e">stash_group_free_settings</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group)</td></tr>
<tr class="memdesc:a1a1fcb5df42b98f2cfe214a5ed4cb18e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the memory allocated for setting values in a group.  <a href="#a1a1fcb5df42b98f2cfe214a5ed4cb18e">More...</a><br/></td></tr>
<tr class="separator:a1a1fcb5df42b98f2cfe214a5ed4cb18e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7804616f767ee50364caa7ecba6858c4"><td class="memItemLeft" align="right" valign="top">gboolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a7804616f767ee50364caa7ecba6858c4">stash_group_load_from_file</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, const gchar *filename)</td></tr>
<tr class="memdesc:a7804616f767ee50364caa7ecba6858c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads group settings from a configuration file using <code>GKeyFile</code>.  <a href="#a7804616f767ee50364caa7ecba6858c4">More...</a><br/></td></tr>
<tr class="separator:a7804616f767ee50364caa7ecba6858c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b173ae58f08a07775f939e29110b0ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a9b173ae58f08a07775f939e29110b0ba">stash_group_load_from_key_file</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, GKeyFile *keyfile)</td></tr>
<tr class="memdesc:a9b173ae58f08a07775f939e29110b0ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads key values from <em>keyfile</em> into the group settings.  <a href="#a9b173ae58f08a07775f939e29110b0ba">More...</a><br/></td></tr>
<tr class="separator:a9b173ae58f08a07775f939e29110b0ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b4766025f96efa595380a9e143850f3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a8b4766025f96efa595380a9e143850f3">stash_group_new</a> (const gchar *name)</td></tr>
<tr class="memdesc:a8b4766025f96efa595380a9e143850f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new group.  <a href="#a8b4766025f96efa595380a9e143850f3">More...</a><br/></td></tr>
<tr class="separator:a8b4766025f96efa595380a9e143850f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f8f9f765ef3cb9234b78da8b6204da0"><td class="memItemLeft" align="right" valign="top">gint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a4f8f9f765ef3cb9234b78da8b6204da0">stash_group_save_to_file</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, const gchar *filename, GKeyFileFlags flags)</td></tr>
<tr class="memdesc:a4f8f9f765ef3cb9234b78da8b6204da0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes group settings to a configuration file using <code>GKeyFile</code>.  <a href="#a4f8f9f765ef3cb9234b78da8b6204da0">More...</a><br/></td></tr>
<tr class="separator:a4f8f9f765ef3cb9234b78da8b6204da0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e9af4712a026b177f3ba556423e56ee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#a4e9af4712a026b177f3ba556423e56ee">stash_group_save_to_key_file</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, GKeyFile *keyfile)</td></tr>
<tr class="memdesc:a4e9af4712a026b177f3ba556423e56ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes group settings into key values in <em>keyfile</em>.  <a href="#a4e9af4712a026b177f3ba556423e56ee">More...</a><br/></td></tr>
<tr class="separator:a4e9af4712a026b177f3ba556423e56ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae26428424ceac586890d0b9b6d017f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stash_8h.html#aae26428424ceac586890d0b9b6d017f9">stash_group_update</a> (<a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group, GtkWidget *owner)</td></tr>
<tr class="memdesc:aae26428424ceac586890d0b9b6d017f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies widget values to Stash settings, usually called after displaying the widgets.  <a href="#aae26428424ceac586890d0b9b6d017f9">More...</a><br/></td></tr>
<tr class="separator:aae26428424ceac586890d0b9b6d017f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Lightweight library for reading/writing <code>GKeyFile</code> settings and synchronizing widgets with C variables. </p>
<p>Note: Stash should only depend on GLib and GTK, but currently has some minor dependencies on Geany's utils.c.</p>
<h1><a class="anchor" id="Terms"></a>
Terms</h1>
<p>'Setting' is used only for data stored on disk or in memory. 'Pref' can also include visual widget information.</p>
<h1><a class="anchor" id="Memory"></a>
Usage</h1>
<p>Stash will not duplicate strings if they are normally static arrays, such as keyfile group names and key names, string default values, widget_id names, property names.</p>
<h1><a class="anchor" id="String"></a>
Settings</h1>
<p>String settings and other dynamically allocated settings will be initialized to NULL when added to a StashGroup (so they can safely be reassigned later).</p>
<h1><a class="anchor" id="Widget"></a>
Support</h1>
<p>Widgets very commonly used in configuration dialogs will be supported with their own function. Widgets less commonly used such as <code>GtkExpander</code> or widget settings that aren't commonly needed to be persistent won't be directly supported, to keep the library lightweight. However, you can use <a class="el" href="stash_8h.html#ade0d8980af35c7fe74e1318f770fdec5" title="Adds a widget&#39;s read/write property to the stash group. ">stash_group_add_widget_property()</a> to also save these settings for any read/write widget property. Macros could be added for common widget properties such as <code>GtkExpander:"expanded"</code>.</p>
<h1><a class="anchor" id="settings-example"></a>
Settings Example</h1>
<p>Here we have some settings for how to make a cup - whether it should be made of china and who's going to make it. (Yes, it's a stupid example). </p>
<div class="fragment"><div class="line"><a class="code" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group;</div>
<div class="line">gboolean china_enabled;</div>
<div class="line">gchar *potter_name;</div>
<div class="line"><span class="keyword">const</span> gchar filename[] = <span class="stringliteral">&quot;/path/data.conf&quot;</span>;</div>
<div class="line"></div>
<div class="line"><span class="comment">/* setup the group */</span></div>
<div class="line">group = <a class="code" href="stash_8h.html#a8b4766025f96efa595380a9e143850f3">stash_group_new</a>(<span class="stringliteral">&quot;cup&quot;</span>);</div>
<div class="line"><a class="code" href="stash_8h.html#ad6c04aa05565985b82d60528b6611600">stash_group_add_boolean</a>(group, &amp;china_enabled, <span class="stringliteral">&quot;china&quot;</span>, TRUE);</div>
<div class="line"><a class="code" href="stash_8h.html#a3e50062fed452034c7f0e3c9919c43bd">stash_group_add_string</a>(group, &amp;potter_name, <span class="stringliteral">&quot;potter_name&quot;</span>, <span class="stringliteral">&quot;Miss Clay&quot;</span>);</div>
<div class="line"></div>
<div class="line"><span class="comment">/* load the settings from a file */</span></div>
<div class="line"><span class="keywordflow">if</span> (!<a class="code" href="stash_8h.html#a7804616f767ee50364caa7ecba6858c4">stash_group_load_from_file</a>(group, filename))</div>
<div class="line">    g_warning(_(<span class="stringliteral">&quot;Could not load keyfile %s!&quot;</span>), filename);</div>
<div class="line"></div>
<div class="line"><span class="comment">/* now use settings china_enabled and potter_name */</span></div>
<div class="line">...</div>
<div class="line"></div>
<div class="line"><span class="comment">/* save settings to file */</span></div>
<div class="line">if (<a class="code" href="stash_8h.html#a4f8f9f765ef3cb9234b78da8b6204da0">stash_group_save_to_file</a>(group, filename, G_KEY_FILE_NONE) != 0)</div>
<div class="line">    g_error(_(<span class="stringliteral">&quot;Could not save keyfile %s!&quot;</span>), filename);</div>
<div class="line"></div>
<div class="line"><span class="comment">/* free memory */</span></div>
<div class="line"><a class="code" href="stash_8h.html#ae3e4b533975b5b732a4a1d55fd590444">stash_group_free</a>(group);</div>
</div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd>You might want to handle the warning/error conditions differently from above.</dd></dl>
<h1><a class="anchor" id="prefs-example"></a>
GUI Prefs Example</h1>
<p>For prefs, it's the same as the above example but you tell Stash to add widget prefs instead of just data settings.</p>
<p>This example uses lookup strings for widgets as they are more flexible than widget pointers. Code to load and save the settings is omitted - see the first example instead.</p>
<p>Here we show a dialog with a toggle button for whether the cup should have a handle. </p>
<div class="fragment"><div class="line">gboolean want_handle;</div>
<div class="line"><a class="code" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *group = ...;</div>
<div class="line"></div>
<div class="line"><span class="comment">/* Add the stash setting first so we can load it from disk if we want.</span></div>
<div class="line"><span class="comment"> * Effectively, stash_group_add_boolean() is called for you.</span></div>
<div class="line"><span class="comment"> * We need to use either a widget pointer or a widget name, and as we</span></div>
<div class="line"><span class="comment"> * haven&#39;t created the widget yet we&#39;ll use a name - check_handle. */</span></div>
<div class="line"><a class="code" href="stash_8h.html#a4974033abb92118cf6e91d109692c9e7">stash_group_add_toggle_button</a>(group, &amp;want_handle, <span class="stringliteral">&quot;handle&quot;</span>, TRUE, <span class="stringliteral">&quot;check_handle&quot;</span>);</div>
<div class="line"></div>
<div class="line"><span class="comment">/* here we could load the setting from disk */</span></div>
<div class="line"></div>
<div class="line">...</div>
<div class="line"><span class="comment">/* Later we create a dialog holding the toggle button widget.</span></div>
<div class="line"><span class="comment"> * (Note: a check button is a subclass of a toggle button). */</span></div>
<div class="line">GtkWidget *dialog = ...;</div>
<div class="line">GtkWidget *check_button = gtk_check_button_new_with_label(_(<span class="stringliteral">&quot;Handle&quot;</span>));</div>
<div class="line"></div>
<div class="line"><span class="comment">/* pack the widget into the dialog */</span></div>
<div class="line">gtk_container_add(GTK_CONTAINER(dialog-&gt;vbox), check_button);</div>
<div class="line"></div>
<div class="line"><span class="comment">/* Now we set a name to lookup the widget from the dialog.</span></div>
<div class="line"><span class="comment"> * We must remember to pass &#39;dialog&#39; as an argument to Stash later. */</span></div>
<div class="line"><a class="code" href="ui__utils_8h.html#a1b85118a02d043d001b58f0fdaeaa762">ui_hookup_widget</a>(dialog, check_button, <span class="stringliteral">&quot;check_handle&quot;</span>);</div>
<div class="line"></div>
<div class="line">...</div>
<div class="line"><span class="comment">/* At some point we want to display the dialog.</span></div>
<div class="line"><span class="comment"> * First we apply the want_handle boolean variable to the widget */</span></div>
<div class="line">stash_group_display(group, dialog);</div>
<div class="line"></div>
<div class="line"><span class="comment">/* now display the dialog */</span></div>
<div class="line">gtk_widget_show_all(dialog);</div>
<div class="line"></div>
<div class="line"><span class="comment">/* let the user manipulate widgets */</span></div>
<div class="line">...</div>
<div class="line"><span class="comment">/* Now synchronize the want_handle variable */</span></div>
<div class="line">stash_group_update(group, dialog);</div>
</div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd>This example should also work for other widget containers besides dialogs, e.g. popup menus. </dd></dl>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a3afd3193cc9a18b69df8e6936d83efdf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef typedefG_BEGIN_DECLS struct StashGroup StashGroup</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Opaque type for a group of settings. </p>

</div>
</div>
<a class="anchor" id="a85ab8977a73631effbcb8ce64adc0e8b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef gconstpointer <a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Can be <code>GtkWidget*</code> or <code>gchar*</code> depending on whether the <em>owner</em> argument is used for <a class="el" href="stash_8h.html#a4dcf7692381c00315467bfed8da6da31" title="Applies Stash settings to widgets, usually called before displaying the widgets. ">stash_group_display()</a> and <a class="el" href="stash_8h.html#aae26428424ceac586890d0b9b6d017f9" title="Applies widget values to Stash settings, usually called after displaying the widgets. ">stash_group_update()</a>. </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ad6c04aa05565985b82d60528b6611600"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_add_boolean </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gboolean *&#160;</td>
          <td class="paramname"><em>setting</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gboolean&#160;</td>
          <td class="paramname"><em>default_value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds boolean setting. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">setting</td><td>Address of setting variable. </td></tr>
    <tr><td class="paramname">key_name</td><td>Name for key in a <code>GKeyFile</code>. </td></tr>
    <tr><td class="paramname">default_value</td><td>Value to use if the key doesn't exist when loading. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abf51a719815c512d262d8ee9d38488df"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_add_combo_box </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gint *&#160;</td>
          <td class="paramname"><em>setting</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gint&#160;</td>
          <td class="paramname"><em>default_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a>&#160;</td>
          <td class="paramname"><em>widget_id</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a <code>GtkComboBox</code> widget pref. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">setting</td><td>Address of setting variable. </td></tr>
    <tr><td class="paramname">key_name</td><td>Name for key in a <code>GKeyFile</code>. </td></tr>
    <tr><td class="paramname">default_value</td><td>Value to use if the key doesn't exist when loading. </td></tr>
    <tr><td class="paramname">widget_id</td><td><code>GtkWidget</code> pointer or string to lookup widget later. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="stash_8h.html#a02af96d48cc9c184129cdce9093da839" title="Adds a GtkComboBoxEntry widget pref. ">stash_group_add_combo_box_entry()</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="a02af96d48cc9c184129cdce9093da839"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_add_combo_box_entry </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gchar **&#160;</td>
          <td class="paramname"><em>setting</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>default_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a>&#160;</td>
          <td class="paramname"><em>widget_id</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a <code>GtkComboBoxEntry</code> widget pref. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">setting</td><td>Address of setting variable. </td></tr>
    <tr><td class="paramname">key_name</td><td>Name for key in a <code>GKeyFile</code>. </td></tr>
    <tr><td class="paramname">default_value</td><td>Value to use if the key doesn't exist when loading. </td></tr>
    <tr><td class="paramname">widget_id</td><td><code>GtkWidget</code> pointer or string to lookup widget later. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afab734dc626bed4f910009eb1f474e96"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_add_entry </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gchar **&#160;</td>
          <td class="paramname"><em>setting</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>default_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a>&#160;</td>
          <td class="paramname"><em>widget_id</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a <code>GtkEntry</code> widget pref. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">setting</td><td>Address of setting variable. </td></tr>
    <tr><td class="paramname">key_name</td><td>Name for key in a <code>GKeyFile</code>. </td></tr>
    <tr><td class="paramname">default_value</td><td>Value to use if the key doesn't exist when loading. </td></tr>
    <tr><td class="paramname">widget_id</td><td><code>GtkWidget</code> pointer or string to lookup widget later. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a71dfa4afcb3c721a9338c3ecf91da90c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_add_integer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gint *&#160;</td>
          <td class="paramname"><em>setting</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gint&#160;</td>
          <td class="paramname"><em>default_value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds integer setting. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">setting</td><td>Address of setting variable. </td></tr>
    <tr><td class="paramname">key_name</td><td>Name for key in a <code>GKeyFile</code>. </td></tr>
    <tr><td class="paramname">default_value</td><td>Value to use if the key doesn't exist when loading. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0089855ff8d255b986ed459981a01e95"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_add_radio_buttons </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gint *&#160;</td>
          <td class="paramname"><em>setting</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gint&#160;</td>
          <td class="paramname"><em>default_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a>&#160;</td>
          <td class="paramname"><em>widget_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gint&#160;</td>
          <td class="paramname"><em>enum_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a <code>GtkRadioButton</code> widget group pref. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">setting</td><td>Address of setting variable. </td></tr>
    <tr><td class="paramname">key_name</td><td>Name for key in a <code>GKeyFile</code>. </td></tr>
    <tr><td class="paramname">default_value</td><td>Value to use if the key doesn't exist when loading. </td></tr>
    <tr><td class="paramname">widget_id</td><td><code>GtkWidget</code> pointer or string to lookup widget later. </td></tr>
    <tr><td class="paramname">enum_id</td><td>Enum value for <em>widget_id</em>. </td></tr>
    <tr><td class="paramname">...</td><td>pairs of <em>widget_id</em>, <em>enum_id</em>. Example (using widget lookup strings, but widget pointers can also work): <div class="fragment"><div class="line">* <span class="keyword">enum</span> {FOO, BAR};</div>
<div class="line">* <a class="code" href="stash_8h.html#a0089855ff8d255b986ed459981a01e95">stash_group_add_radio_buttons</a>(group, &amp;which_one_setting, <span class="stringliteral">&quot;which_one&quot;</span>, BAR,</div>
<div class="line">*   <span class="stringliteral">&quot;radio_foo&quot;</span>, FOO, <span class="stringliteral">&quot;radio_bar&quot;</span>, BAR, NULL);</div>
<div class="line">* </div>
</div><!-- fragment --> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a26254f33543f48e05b15569681b2891d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_add_spin_button_integer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gint *&#160;</td>
          <td class="paramname"><em>setting</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gint&#160;</td>
          <td class="paramname"><em>default_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a>&#160;</td>
          <td class="paramname"><em>widget_id</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a <code>GtkSpinButton</code> widget pref. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">setting</td><td>Address of setting variable. </td></tr>
    <tr><td class="paramname">key_name</td><td>Name for key in a <code>GKeyFile</code>. </td></tr>
    <tr><td class="paramname">default_value</td><td>Value to use if the key doesn't exist when loading. </td></tr>
    <tr><td class="paramname">widget_id</td><td><code>GtkWidget</code> pointer or string to lookup widget later. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3e50062fed452034c7f0e3c9919c43bd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_add_string </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gchar **&#160;</td>
          <td class="paramname"><em>setting</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>default_value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds string setting. </p>
<p>The contents of <em>setting</em> will be initialized to <code>NULL</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">setting</td><td>Address of setting variable. </td></tr>
    <tr><td class="paramname">key_name</td><td>Name for key in a <code>GKeyFile</code>. </td></tr>
    <tr><td class="paramname">default_value</td><td>String to copy if the key doesn't exist when loading, or <code>NULL</code>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a740daabf56fa44a8fac60ae7073b6cea"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_add_string_vector </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gchar ***&#160;</td>
          <td class="paramname"><em>setting</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar **&#160;</td>
          <td class="paramname"><em>default_value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds string vector setting (array of strings). </p>
<p>The contents of <em>setting</em> will be initialized to <code>NULL</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">setting</td><td>Address of setting variable. </td></tr>
    <tr><td class="paramname">key_name</td><td>Name for key in a <code>GKeyFile</code>. </td></tr>
    <tr><td class="paramname">default_value</td><td>Vector to copy if the key doesn't exist when loading. Usually <code>NULL</code>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4974033abb92118cf6e91d109692c9e7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_add_toggle_button </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gboolean *&#160;</td>
          <td class="paramname"><em>setting</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gboolean&#160;</td>
          <td class="paramname"><em>default_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a>&#160;</td>
          <td class="paramname"><em>widget_id</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a <code>GtkToggleButton</code> (or <code>GtkCheckButton</code>) widget pref. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">setting</td><td>Address of setting variable. </td></tr>
    <tr><td class="paramname">key_name</td><td>Name for key in a <code>GKeyFile</code>. </td></tr>
    <tr><td class="paramname">default_value</td><td>Value to use if the key doesn't exist when loading. </td></tr>
    <tr><td class="paramname">widget_id</td><td><code>GtkWidget</code> pointer or string to lookup widget later. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="stash_8h.html#a0089855ff8d255b986ed459981a01e95" title="Adds a GtkRadioButton widget group pref. ">stash_group_add_radio_buttons()</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="ade0d8980af35c7fe74e1318f770fdec5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_add_widget_property </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>setting</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>key_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>default_value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a>&#160;</td>
          <td class="paramname"><em>widget_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>property_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GType&#160;</td>
          <td class="paramname"><em>type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a widget's read/write property to the stash group. </p>
<p>The property will be set when calling <a class="el" href="stash_8h.html#a4dcf7692381c00315467bfed8da6da31" title="Applies Stash settings to widgets, usually called before displaying the widgets. ">stash_group_display()</a>, and read when calling <a class="el" href="stash_8h.html#aae26428424ceac586890d0b9b6d017f9" title="Applies widget values to Stash settings, usually called after displaying the widgets. ">stash_group_update()</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">setting</td><td>Address of e.g. an integer if using an integer property. </td></tr>
    <tr><td class="paramname">key_name</td><td>Name for key in a <code>GKeyFile</code>. </td></tr>
    <tr><td class="paramname">default_value</td><td>Value to use if the key doesn't exist when loading. Should be cast into a pointer e.g. with <code>GINT_TO_POINTER()</code>. </td></tr>
    <tr><td class="paramname">widget_id</td><td><code>GtkWidget</code> pointer or string to lookup widget later. </td></tr>
    <tr><td class="paramname">property_name</td><td>. </td></tr>
    <tr><td class="paramname">type</td><td>can be <code>0</code> if passing a <code>GtkWidget</code> as the <em>widget_id</em> argument to look it up from the <code>GObject</code> data. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>Currently only string GValue properties will be freed before setting; patch for other types - see <code>handle_widget_property()</code>. </dd></dl>

</div>
</div>
<a class="anchor" id="a4dcf7692381c00315467bfed8da6da31"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_display </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GtkWidget *&#160;</td>
          <td class="paramname"><em>owner</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Applies Stash settings to widgets, usually called before displaying the widgets. </p>
<p>The <em>owner</em> argument depends on which type you use for <a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">owner</td><td>If non-NULL, used to lookup widgets by name, otherwise widget pointers are assumed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="stash_8h.html#aae26428424ceac586890d0b9b6d017f9" title="Applies widget values to Stash settings, usually called after displaying the widgets. ">stash_group_update()</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="ae3e4b533975b5b732a4a1d55fd590444"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Frees a group. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1a1fcb5df42b98f2cfe214a5ed4cb18e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_free_settings </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Frees the memory allocated for setting values in a group. </p>
<p>Useful e.g. to avoid freeing strings individually. </p>
<dl class="section note"><dt>Note</dt><dd>This is <em>not</em> called by <a class="el" href="stash_8h.html#ae3e4b533975b5b732a4a1d55fd590444" title="Frees a group. ">stash_group_free()</a>. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7804616f767ee50364caa7ecba6858c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">gboolean stash_group_load_from_file </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>filename</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads group settings from a configuration file using <code>GKeyFile</code>. </p>
<dl class="section note"><dt>Note</dt><dd>Stash settings will be initialized to defaults if the keyfile couldn't be loaded from disk. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">filename</td><td>Filename of the file to read, in locale encoding. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>TRUE</code> if a key file could be loaded. </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="stash_8h.html#a9b173ae58f08a07775f939e29110b0ba" title="Reads key values from keyfile into the group settings. ">stash_group_load_from_key_file()</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="a9b173ae58f08a07775f939e29110b0ba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_load_from_key_file </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GKeyFile *&#160;</td>
          <td class="paramname"><em>keyfile</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads key values from <em>keyfile</em> into the group settings. </p>
<dl class="section note"><dt>Note</dt><dd>You should still call this even if the keyfile couldn't be loaded from disk so that all Stash settings are initialized to defaults. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">keyfile</td><td>Usually loaded from a configuration file first. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8b4766025f96efa595380a9e143850f3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a>* stash_group_new </td>
          <td>(</td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Creates a new group. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>Name used for <code>GKeyFile</code> group. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Group. </dd></dl>

</div>
</div>
<a class="anchor" id="a4f8f9f765ef3cb9234b78da8b6204da0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">gint stash_group_save_to_file </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GKeyFileFlags&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Writes group settings to a configuration file using <code>GKeyFile</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">filename</td><td>Filename of the file to write, in locale encoding. </td></tr>
    <tr><td class="paramname">flags</td><td>Keyfile options - <code>G_KEY_FILE_NONE</code> is the most efficient. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if the file was successfully written, otherwise the <code>errno</code> of the failed operation is returned. </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="stash_8h.html#a4e9af4712a026b177f3ba556423e56ee" title="Writes group settings into key values in keyfile. ">stash_group_save_to_key_file()</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="a4e9af4712a026b177f3ba556423e56ee"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_save_to_key_file </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GKeyFile *&#160;</td>
          <td class="paramname"><em>keyfile</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Writes group settings into key values in <em>keyfile</em>. </p>
<p><em>keyfile</em> is usually written to a configuration file afterwards. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">keyfile</td><td>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aae26428424ceac586890d0b9b6d017f9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void stash_group_update </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="stash_8h.html#a3afd3193cc9a18b69df8e6936d83efdf">StashGroup</a> *&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GtkWidget *&#160;</td>
          <td class="paramname"><em>owner</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Applies widget values to Stash settings, usually called after displaying the widgets. </p>
<p>The <em>owner</em> argument depends on which type you use for <a class="el" href="stash_8h.html#a85ab8977a73631effbcb8ce64adc0e8b">StashWidgetID</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>. </td></tr>
    <tr><td class="paramname">owner</td><td>If non-NULL, used to lookup widgets by name, otherwise widget pointers are assumed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="stash_8h.html#a4dcf7692381c00315467bfed8da6da31" title="Applies Stash settings to widgets, usually called before displaying the widgets. ">stash_group_display()</a>. </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Oct 18 2013 23:44:59 for Geany by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>