static Eina_Hash *generic_name = NULL;
static Eina_Hash *comment = NULL;
static Eina_Hash *exec = NULL;
+static Eina_Hash *environments = NULL;
static int
cache_add(const char *path, const char *file_id, int priority EINA_UNUSED, int *changed)
ADD_ELEM(desk->generic_name, generic_name);
ADD_ELEM(desk->comment, comment);
ADD_ELEM(desk->exec, exec);
+ ADD_LIST(desk->only_show_in, environments);
+ ADD_LIST(desk->not_show_in, environments);
eina_hash_add(file_ids, file_id, desk->orig_path);
eina_hash_add(desktops, desk->orig_path, desk);
}
generic_name = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_array_string_free));
comment = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_array_string_free));
exec = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_array_string_free));
+ environments = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_array_string_free));
dirs = efreet_default_dirs_get(efreet_data_home_get(), efreet_data_dirs_get(),
"applications");
STORE_HASH_ARRAY(generic_name);
STORE_HASH_ARRAY(comment);
STORE_HASH_ARRAY(exec);
+ STORE_HASH_ARRAY(environments);
if (eina_hash_population(file_ids) > 0)
{
hash.hash = file_ids;
eina_hash_free(generic_name);
eina_hash_free(comment);
eina_hash_free(exec);
+ eina_hash_free(environments);
if (old_file_ids)
{
return efreet_util_cache_list("categories", category);
}
+EAPI Eina_List *
+efreet_util_desktop_environments_list(void)
+{
+ Efreet_Cache_Array_String *array;
+ Eina_List *ret = NULL;
+ unsigned int i;
+
+ array = efreet_cache_util_names("environments_list");
+ if (!array) return NULL;
+ for (i = 0; i < array->array_count; i++)
+ ret = eina_list_append(ret, array->array[i]);
+ return ret;
+}
+
static int
efreet_util_glob_match(const char *str, const char *glob)
{
EAPI Eina_List *efreet_util_menus_find(void);
/**
+ * Find all known desktop environments
+ * This list must be freed using EINA_LIST_FREE
+ * @since 1.12
+ *
+ * @return an Eina_List of desktop environments names (const char *)
+ */
+EAPI Eina_List *efreet_util_desktop_environments_list(void);
+
+
+/**
* @}
*/
#endif