Logo Search packages:      
Sourcecode: cairo-dock version File versions

gchar* cairo_dock_manage_themes_for_applet ( gchar *  cAppletShareDataDir,
gchar *  cThemeDirName,
gchar *  cAppletConfFilePath,
GKeyFile *  pKeyFile,
gchar *  cGroupName,
gchar *  cKeyName,
gboolean *  bFlushConfFileNeeded,
gchar *  cDefaultThemeName 
)

Liste les themes contenu dans un repertoire, met a jour le fichier de conf avec, et renvoie le chemin correspondant au theme choisi.

Parameters:
cAppletShareDataDir chemin du repertoire contenant les donnees de l'applet.
cThemeDirName nom du sous-repertoire regroupant tous les themes.
cAppletConfFilePath chemin du fichier de conf.
pKeyFile le fichier de conf ouvert.
cGroupName nom du groupe (dans le fichier de conf) du parametre correspondant au theme.
cKeyName nom de la cle (dans le fichier de conf) du parametre correspondant au theme.
bFlushConfFileNeeded pointeur sur un booleen mis a TRUE si la cle n'existe pas.
cDefaultThemeName nom du theme par defaut au cas ou le precedent n'existerait pas.
Returns:
Le chemin du repertoire du theme choisi, dans une chaine nouvellement allouee.

Definition at line 303 of file cairo-dock-applet-facility.c.

{
      GError *erreur = NULL;
      gchar *cThemesDirPath = g_strdup_printf ("%s/%s", cAppletShareDataDir, cThemeDirName);
      GHashTable *pThemeTable = cairo_dock_list_themes (cThemesDirPath, NULL, &erreur);
      if (erreur != NULL)
      {
            cd_warning ("Attention : %s", erreur->message);
            g_error_free (erreur);
            erreur = NULL;
      }
      g_free (cThemesDirPath);

      gchar *cThemePath = NULL;
      if (pThemeTable != NULL)
      {
            cairo_dock_update_conf_file_with_themes (pKeyFile, cAppletConfFilePath, pThemeTable, cGroupName, cKeyName);
            
            gchar *cChosenThemeName = cairo_dock_get_string_key_value (pKeyFile, cGroupName, cKeyName, bFlushConfFileNeeded, cDefaultThemeName, NULL, NULL);
            if (cChosenThemeName != NULL)
                  cThemePath = g_strdup (g_hash_table_lookup (pThemeTable, cChosenThemeName));
            g_free (cChosenThemeName);
            
            if (cThemePath == NULL && cDefaultThemeName != NULL)
                  cThemePath = g_strdup (g_hash_table_lookup (pThemeTable, cDefaultThemeName));

            g_hash_table_destroy (pThemeTable);
      }
      return cThemePath;
}


Generated by  Doxygen 1.6.0   Back to index