[gnome-software] Show a category key color on the overview page
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Show a category key color on the overview page
- Date: Tue, 31 May 2016 13:00:18 +0000 (UTC)
commit 61a889797ce59ad6426cd1b739e01169cf7eb1a6
Author: Richard Hughes <richard hughsie com>
Date: Tue May 31 13:55:25 2016 +0100
Show a category key color on the overview page
src/gs-app-tile.c | 4 +-
src/gs-category-tile.c | 17 ++
src/gs-category.c | 35 +++
src/gs-category.h | 4 +
src/gs-common.c | 73 ++++--
src/gs-common.h | 4 +-
src/gs-feature-tile.c | 4 +-
src/gs-popular-tile.c | 4 +-
src/gs-upgrade-banner.c | 4 +-
src/plugins/gs-plugin-menu-spec-categories.c | 10 +-
src/plugins/gs-plugin-menu-spec-refine.c | 6 +-
src/plugins/menu-spec-common.c | 354 +++++++++++++-------------
src/plugins/menu-spec-common.h | 3 +-
13 files changed, 305 insertions(+), 217 deletions(-)
---
diff --git a/src/gs-app-tile.c b/src/gs-app-tile.c
index 091e643..4841c22 100644
--- a/src/gs-app-tile.c
+++ b/src/gs-app-tile.c
@@ -154,8 +154,8 @@ gs_app_tile_set_app (GsAppTile *tile, GsApp *app)
gtk_label_set_label (GTK_LABEL (tile->name), gs_app_get_name (app));
/* perhaps set custom css */
- gs_utils_widget_set_custom_css (app, GTK_WIDGET (tile),
- "GnomeSoftware::AppTile-css");
+ gs_utils_widget_set_css_app (app, GTK_WIDGET (tile),
+ "GnomeSoftware::AppTile-css");
/* some kinds have boring summaries */
switch (gs_app_get_kind (app)) {
diff --git a/src/gs-category-tile.c b/src/gs-category-tile.c
index 9a916e2..85ff8fd 100644
--- a/src/gs-category-tile.c
+++ b/src/gs-category-tile.c
@@ -25,6 +25,7 @@
#include <gtk/gtk.h>
#include "gs-category-tile.h"
+#include "gs-common.h"
struct _GsCategoryTile
{
@@ -48,6 +49,8 @@ gs_category_tile_get_category (GsCategoryTile *tile)
void
gs_category_tile_set_category (GsCategoryTile *tile, GsCategory *cat)
{
+ GPtrArray *key_colors;
+
g_return_if_fail (GS_IS_CATEGORY_TILE (tile));
g_return_if_fail (GS_IS_CATEGORY (cat));
@@ -58,6 +61,20 @@ gs_category_tile_set_category (GsCategoryTile *tile, GsCategory *cat)
gtk_image_set_from_icon_name (GTK_IMAGE (tile->image),
gs_category_get_icon (cat),
GTK_ICON_SIZE_MENU);
+
+ /* set custom CSS */
+ key_colors = gs_category_get_key_colors (cat);
+ if (key_colors->len > 0) {
+ GdkRGBA *tmp = g_ptr_array_index (key_colors, 0);
+ g_autofree gchar *css = NULL;
+ css = g_strdup_printf ("border-bottom: 3px solid "
+ "rgba(%.0f,%.0f,%.0f,%.2f);",
+ tmp->red * 255,
+ tmp->green * 255,
+ tmp->blue * 255,
+ tmp->alpha);
+ gs_utils_widget_set_css_simple (GTK_WIDGET (tile), css);
+ }
}
static void
diff --git a/src/gs-category.c b/src/gs-category.c
index 800101f..e1069fd 100644
--- a/src/gs-category.c
+++ b/src/gs-category.c
@@ -41,6 +41,7 @@ struct _GsCategory
gchar *id;
gchar *name;
gchar *icon;
+ GPtrArray *key_colors;
GsCategory *parent;
guint size;
GPtrArray *children;
@@ -204,6 +205,38 @@ gs_category_set_icon (GsCategory *category, const gchar *icon)
}
/**
+ * gs_category_get_key_colors:
+ * @category: a #GsCategory
+ *
+ * Gets the list of key colors for the category.
+ *
+ * Returns: (element-type GdkRGBA) (transfer none): An array
+ **/
+GPtrArray *
+gs_category_get_key_colors (GsCategory *category)
+{
+ g_return_val_if_fail (GS_IS_CATEGORY (category), NULL);
+ return category->key_colors;
+}
+
+/**
+ * gs_category_add_key_color:
+ * @category: a #GsCategory
+ * @key_color: a #GdkRGBA
+ *
+ * Adds a key color to the category icon.
+ *
+ * Returns: the string, or %NULL
+ **/
+void
+gs_category_add_key_color (GsCategory *category, const GdkRGBA *key_color)
+{
+ g_return_if_fail (GS_IS_CATEGORY (category));
+ g_return_if_fail (key_color != NULL);
+ g_ptr_array_add (category->key_colors, gdk_rgba_copy (key_color));
+}
+
+/**
* gs_category_find_child:
* @category: a #GsCategory
* @id: a category ID, e.g. "other"
@@ -332,6 +365,7 @@ gs_category_finalize (GObject *object)
g_object_remove_weak_pointer (G_OBJECT (category->parent),
(gpointer *) &category->parent);
g_ptr_array_unref (category->children);
+ g_ptr_array_unref (category->key_colors);
g_free (category->id);
g_free (category->name);
g_free (category->icon);
@@ -350,6 +384,7 @@ static void
gs_category_init (GsCategory *category)
{
category->children = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
+ category->key_colors = g_ptr_array_new_with_free_func ((GDestroyNotify) gdk_rgba_free);
}
/**
diff --git a/src/gs-category.h b/src/gs-category.h
index 455bd13..2a1ea23 100644
--- a/src/gs-category.h
+++ b/src/gs-category.h
@@ -24,6 +24,7 @@
#define __GS_CATEGORY_H
#include <glib-object.h>
+#include <gdk/gdk.h>
G_BEGIN_DECLS
@@ -41,6 +42,9 @@ void gs_category_set_name (GsCategory *category,
const gchar *gs_category_get_icon (GsCategory *category);
void gs_category_set_icon (GsCategory *category,
const gchar *icon);
+GPtrArray *gs_category_get_key_colors (GsCategory *category);
+void gs_category_add_key_color (GsCategory *category,
+ const GdkRGBA *key_color);
GsCategory *gs_category_find_child (GsCategory *category,
const gchar *id);
diff --git a/src/gs-common.c b/src/gs-common.c
index 29a6673..c64aa68 100644
--- a/src/gs-common.c
+++ b/src/gs-common.c
@@ -644,20 +644,65 @@ gs_utils_widget_css_parsing_error_cb (GtkCssProvider *provider,
error->message);
}
+static void
+gs_utils_widget_set_css_internal (GtkWidget *widget,
+ const gchar *class_name,
+ const gchar *css)
+{
+ GtkStyleContext *context;
+ g_autoptr(GtkCssProvider) provider = NULL;
+
+ g_debug ("using custom CSS %s", css);
+
+ /* set the custom CSS class */
+ context = gtk_widget_get_style_context (widget);
+ gtk_style_context_add_class (context, class_name);
+
+ /* set up custom provider and store on the widget */
+ provider = gtk_css_provider_new ();
+ g_signal_connect (provider, "parsing-error",
+ G_CALLBACK (gs_utils_widget_css_parsing_error_cb), NULL);
+ gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
+ GTK_STYLE_PROVIDER (provider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ gtk_css_provider_load_from_data (provider, css, -1, NULL);
+ g_object_set_data_full (G_OBJECT (widget),
+ "GnomeSoftware::provider",
+ g_object_ref (provider),
+ g_object_unref);
+}
+
/**
- * gs_utils_widget_set_custom_css:
+ * gs_utils_widget_set_css_simple:
**/
void
-gs_utils_widget_set_custom_css (GsApp *app, GtkWidget *widget, const gchar *metadata_css)
+gs_utils_widget_set_css_simple (GtkWidget *widget, const gchar *css)
+{
+ g_autofree gchar *class_name = NULL;
+ GString *str = g_string_sized_new (1024);
+
+ class_name = g_strdup_printf ("themed-widget_%p", widget);
+ g_string_append_printf (str, ".%s {\n", class_name);
+ g_string_append_printf (str, "%s\n", css);
+ g_string_append (str, "}");
+
+ gs_utils_widget_set_css_internal (widget, class_name, str->str);
+}
+
+/**
+ * gs_utils_widget_set_css_app:
+ **/
+void
+gs_utils_widget_set_css_app (GsApp *app,
+ GtkWidget *widget,
+ const gchar *metadata_css)
{
GPtrArray *key_colors;
GString *str = g_string_sized_new (1024);
- GtkStyleContext *context;
const gchar *css;
guint i;
g_autofree gchar *class_name = NULL;
g_autoptr(GString) css_str = NULL;
- g_autoptr(GtkCssProvider) provider = NULL;
g_return_if_fail (GS_IS_APP (app));
@@ -690,25 +735,7 @@ gs_utils_widget_set_custom_css (GsApp *app, GtkWidget *widget, const gchar *meta
g_string_append_printf (str, ".%s:hover {\n", class_name);
g_string_append (str, " opacity: 0.9;\n");
g_string_append (str, "}\n");
-
- g_debug ("using custom CSS %s", str->str);
-
- /* set the custom CSS class */
- context = gtk_widget_get_style_context (widget);
- gtk_style_context_add_class (context, class_name);
-
- /* set up custom provider and store on the widget */
- provider = gtk_css_provider_new ();
- g_signal_connect (provider, "parsing-error",
- G_CALLBACK (gs_utils_widget_css_parsing_error_cb), NULL);
- gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
- GTK_STYLE_PROVIDER (provider),
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
- gtk_css_provider_load_from_data (provider, str->str, -1, NULL);
- g_object_set_data_full (G_OBJECT (widget),
- "GnomeSoftware::provider",
- g_object_ref (provider),
- g_object_unref);
+ gs_utils_widget_set_css_internal (widget, class_name, str->str);
}
const gchar *
diff --git a/src/gs-common.h b/src/gs-common.h
index 448c919..43dff11 100644
--- a/src/gs-common.h
+++ b/src/gs-common.h
@@ -56,9 +56,11 @@ const gchar *gs_utils_get_content_rating (void);
const gchar *gs_user_agent (void);
gboolean gs_utils_is_current_desktop (const gchar *name);
-void gs_utils_widget_set_custom_css (GsApp *app,
+void gs_utils_widget_set_css_app (GsApp *app,
GtkWidget *widget,
const gchar *metadata_css);
+void gs_utils_widget_set_css_simple (GtkWidget *widget,
+ const gchar *css);
gboolean gs_utils_strv_fnmatch (gchar **strv,
const gchar *str);
void gs_utils_show_error_dialog (GtkWindow *parent,
diff --git a/src/gs-feature-tile.c b/src/gs-feature-tile.c
index cba49e4..80a490d 100644
--- a/src/gs-feature-tile.c
+++ b/src/gs-feature-tile.c
@@ -113,8 +113,8 @@ gs_feature_tile_set_app (GsFeatureTile *tile, GsApp *app)
gtk_label_set_label (GTK_LABEL (tile->subtitle), gs_app_get_summary (app));
/* perhaps set custom css */
- gs_utils_widget_set_custom_css (app, GTK_WIDGET (tile),
- "GnomeSoftware::FeatureTile-css");
+ gs_utils_widget_set_css_app (app, GTK_WIDGET (tile),
+ "GnomeSoftware::FeatureTile-css");
}
static void
diff --git a/src/gs-popular-tile.c b/src/gs-popular-tile.c
index cec0bc9..5a5e893 100644
--- a/src/gs-popular-tile.c
+++ b/src/gs-popular-tile.c
@@ -127,8 +127,8 @@ gs_popular_tile_set_app (GsPopularTile *tile, GsApp *app)
app_state_changed (tile->app, NULL, tile);
/* perhaps set custom css */
- gs_utils_widget_set_custom_css (app, GTK_WIDGET (tile),
- "GnomeSoftware::PopularTile-css");
+ gs_utils_widget_set_css_app (app, GTK_WIDGET (tile),
+ "GnomeSoftware::PopularTile-css");
gs_image_set_from_pixbuf (GTK_IMAGE (tile->image), gs_app_get_pixbuf (tile->app));
diff --git a/src/gs-upgrade-banner.c b/src/gs-upgrade-banner.c
index 699c6a9..41572f2 100644
--- a/src/gs-upgrade-banner.c
+++ b/src/gs-upgrade-banner.c
@@ -227,8 +227,8 @@ gs_upgrade_banner_set_app (GsUpgradeBanner *self, GsApp *app)
G_CALLBACK (app_progress_changed), self);
/* perhaps set custom css */
- gs_utils_widget_set_custom_css (app, priv->box_upgrades,
- "GnomeSoftware::UpgradeBanner-css");
+ gs_utils_widget_set_css_app (app, priv->box_upgrades,
+ "GnomeSoftware::UpgradeBanner-css");
gs_upgrade_banner_refresh (self);
}
diff --git a/src/plugins/gs-plugin-menu-spec-categories.c b/src/plugins/gs-plugin-menu-spec-categories.c
index 133eaf8..0e2bd06 100644
--- a/src/plugins/gs-plugin-menu-spec-categories.c
+++ b/src/plugins/gs-plugin-menu-spec-categories.c
@@ -48,19 +48,21 @@ gs_plugin_add_categories (GsPlugin *plugin,
for (i = 0; msdata[i].path != NULL; i++) {
tmp = g_strstr_len (msdata[i].path, -1, "::");
if (tmp == NULL) {
+ GdkRGBA key_color;
category = gs_category_new (msdata[i].path);
gs_category_set_icon (category, msdata[i].icon);
- gs_category_set_name (category, gettext (msdata[i].text));
+ gs_category_set_name (category, gettext (msdata[i].name));
+ if (gdk_rgba_parse (&key_color, msdata[i].key_colors))
+ gs_category_add_key_color (category, &key_color);
g_ptr_array_add (list, category);
- g_snprintf (msgctxt, 100, "Menu subcategory of %s", msdata[i].text);
+ g_snprintf (msgctxt, 100, "Menu subcategory of %s", msdata[i].name);
} else {
g_autoptr(GsCategory) sub = gs_category_new (tmp + 2);
gs_category_set_name (sub, g_dpgettext2 (GETTEXT_PACKAGE,
msgctxt,
- msdata[i].text));
+ msdata[i].name));
gs_category_add_child (category, sub);
}
}
-
return TRUE;
}
diff --git a/src/plugins/gs-plugin-menu-spec-refine.c b/src/plugins/gs-plugin-menu-spec-refine.c
index 6db6c6f..d120f43 100644
--- a/src/plugins/gs-plugin-menu-spec-refine.c
+++ b/src/plugins/gs-plugin-menu-spec-refine.c
@@ -62,14 +62,14 @@ gs_plugin_refine_app_category (GsPlugin *plugin,
ret = gs_app_has_category (app, tmp + 2);
if (ret) {
g_autofree gchar *msgctxt = NULL;
- msgctxt = g_strdup_printf ("Menu subcategory of %s", cat->text);
- menu_path[1] = g_dpgettext2 (GETTEXT_PACKAGE, msgctxt, msdata[i].text);
+ msgctxt = g_strdup_printf ("Menu subcategory of %s", cat->name);
+ menu_path[1] = g_dpgettext2 (GETTEXT_PACKAGE, msgctxt, msdata[i].name);
break;
}
}
/* the top-level category always exists */
- menu_path[0] = gettext (cat->text);
+ menu_path[0] = gettext (cat->name);
gs_app_set_menu_path (app, (gchar **) menu_path);
}
diff --git a/src/plugins/menu-spec-common.c b/src/plugins/menu-spec-common.c
index 1010f0c..3b3f774 100644
--- a/src/plugins/menu-spec-common.c
+++ b/src/plugins/menu-spec-common.c
@@ -27,194 +27,194 @@
static const MenuSpecData msdata[] = {
/* TRANSLATORS: this is the menu spec main category for Audio */
- { "Audio", "folder-music-symbolic", N_("Audio") },
- { "Audio::AudioVideoEditing", NULL, NC_("Menu subcategory of Audio", "Editing") },
- { "Audio::Database", NULL, NC_("Menu subcategory of Audio", "Databases") },
- { "Audio::DiscBurning", NULL, NC_("Menu subcategory of Audio", "Disc Burning") },
- { "Audio::HamRadio", NULL, NC_("Menu subcategory of Audio", "Ham Radio") },
- { "Audio::Midi", NULL, NC_("Menu subcategory of Audio", "MIDI") },
- { "Audio::Mixer", NULL, NC_("Menu subcategory of Audio", "Mixer") },
- { "Audio::Music", NULL, NC_("Menu subcategory of Audio", "Music") },
- { "Audio::Player", NULL, NC_("Menu subcategory of Audio", "Players") },
- { "Audio::Recorder", NULL, NC_("Menu subcategory of Audio", "Recorders") },
- { "Audio::Sequencer", NULL, NC_("Menu subcategory of Audio", "Sequencers") },
- { "Audio::Tuner", NULL, NC_("Menu subcategory of Audio", "Tuners") },
+ { "Audio", N_("Audio"), "folder-music-symbolic", "#cc29ae" },
+ { "Audio::AudioVideoEditing", NC_("Menu subcategory of Audio", "Editing") },
+ { "Audio::Database", NC_("Menu subcategory of Audio", "Databases") },
+ { "Audio::DiscBurning", NC_("Menu subcategory of Audio", "Disc Burning") },
+ { "Audio::HamRadio", NC_("Menu subcategory of Audio", "Ham Radio") },
+ { "Audio::Midi", NC_("Menu subcategory of Audio", "MIDI") },
+ { "Audio::Mixer", NC_("Menu subcategory of Audio", "Mixer") },
+ { "Audio::Music", NC_("Menu subcategory of Audio", "Music") },
+ { "Audio::Player", NC_("Menu subcategory of Audio", "Players") },
+ { "Audio::Recorder", NC_("Menu subcategory of Audio", "Recorders") },
+ { "Audio::Sequencer", NC_("Menu subcategory of Audio", "Sequencers") },
+ { "Audio::Tuner", NC_("Menu subcategory of Audio", "Tuners") },
/* TRANSLATORS: this is the menu spec main category for Development */
- { "Development", "applications-engineering-symbolic", N_("Development Tools")
},
- { "Development::Building", NULL, NC_("Menu subcategory of Development Tools",
"Building") },
- { "Development::Database", NULL, NC_("Menu subcategory of Development Tools",
"Databases") },
- { "Development::Debugger", NULL, NC_("Menu subcategory of Development Tools",
"Debuggers") },
- { "Development::GUIDesigner", NULL, NC_("Menu subcategory of Development Tools", "GUI
Designers") },
- { "Development::IDE", NULL, NC_("Menu subcategory of Development Tools", "IDE") },
- { "Development::Profiling", NULL, NC_("Menu subcategory of Development Tools",
"Profiling") },
- { "Development::ProjectManagement", NULL, NC_("Menu subcategory of Development Tools", "Project
Management") },
- { "Development::RevisionControl", NULL, NC_("Menu subcategory of Development Tools", "Revision
Control") },
- { "Development::Translation", NULL, NC_("Menu subcategory of Development Tools",
"Translation") },
- { "Development::WebDevelopment", NULL, NC_("Menu subcategory of Development Tools", "Web
Development") },
+ { "Development", N_("Development Tools"), "applications-engineering-symbolic",
"#297bcc" },
+ { "Development::Building", NC_("Menu subcategory of Development Tools", "Building") },
+ { "Development::Database", NC_("Menu subcategory of Development Tools", "Databases") },
+ { "Development::Debugger", NC_("Menu subcategory of Development Tools", "Debuggers") },
+ { "Development::GUIDesigner", NC_("Menu subcategory of Development Tools", "GUI Designers")
},
+ { "Development::IDE", NC_("Menu subcategory of Development Tools", "IDE") },
+ { "Development::Profiling", NC_("Menu subcategory of Development Tools", "Profiling") },
+ { "Development::ProjectManagement", NC_("Menu subcategory of Development Tools", "Project
Management") },
+ { "Development::RevisionControl", NC_("Menu subcategory of Development Tools", "Revision
Control") },
+ { "Development::Translation", NC_("Menu subcategory of Development Tools", "Translation") },
+ { "Development::WebDevelopment", NC_("Menu subcategory of Development Tools", "Web
Development") },
/* TRANSLATORS: this is the menu spec main category for Education */
- { "Education", "system-help-symbolic", N_("Education") },
- { "Education::Art", NULL, NC_("Menu subcategory of Education", "Art") },
- { "Education::ArtificialIntelligence", NULL, NC_("Menu subcategory of Education", "Artificial
Intelligence") },
- { "Education::Astronomy", NULL, NC_("Menu subcategory of Education", "Astronomy") },
- { "Education::Biology", NULL, NC_("Menu subcategory of Education", "Biology") },
- { "Education::Chemistry", NULL, NC_("Menu subcategory of Education", "Chemistry") },
- { "Education::ComputerScience", NULL, NC_("Menu subcategory of Education", "Computer
Science") },
- { "Education::Construction", NULL, NC_("Menu subcategory of Education", "Construction") },
- { "Education::DataVisualization", NULL, NC_("Menu subcategory of Education", "Data
Visualization") },
- { "Education::Economy", NULL, NC_("Menu subcategory of Education", "Economy") },
- { "Education::Electricity", NULL, NC_("Menu subcategory of Education", "Electricity") },
- { "Education::Electronics", NULL, NC_("Menu subcategory of Education", "Electronics") },
- { "Education::Engineering", NULL, NC_("Menu subcategory of Education", "Engineering") },
- { "Education::Geography", NULL, NC_("Menu subcategory of Education", "Geography") },
- { "Education::Geology", NULL, NC_("Menu subcategory of Education", "Geology") },
- { "Education::Geoscience", NULL, NC_("Menu subcategory of Education", "Geoscience") },
- { "Education::History", NULL, NC_("Menu subcategory of Education", "History") },
- { "Education::Humanities", NULL, NC_("Menu subcategory of Education", "Humanities") },
- { "Education::ImageProcessing", NULL, NC_("Menu subcategory of Education", "Image
Processing") },
- { "Education::Languages", NULL, NC_("Menu subcategory of Education", "Languages") },
- { "Education::Literature", NULL, NC_("Menu subcategory of Education", "Literature") },
- { "Education::Maps", NULL, NC_("Menu subcategory of Education", "Maps") },
- { "Education::Math", NULL, NC_("Menu subcategory of Education", "Math") },
- { "Education::MedicalSoftware", NULL, NC_("Menu subcategory of Education", "Medical") },
- { "Education::Music", NULL, NC_("Menu subcategory of Education", "Music") },
- { "Education::NumericalAnalysis", NULL, NC_("Menu subcategory of Education", "Numerical
Analysis") },
- { "Education::ParallelComputing", NULL, NC_("Menu subcategory of Education", "Parallel
Computing") },
- { "Education::Physics", NULL, NC_("Menu subcategory of Education", "Physics") },
- { "Education::Robotics", NULL, NC_("Menu subcategory of Education", "Robotics") },
- { "Education::Spirituality", NULL, NC_("Menu subcategory of Education", "Spirituality") },
- { "Education::Sports", NULL, NC_("Menu subcategory of Education", "Sports") },
+ { "Education", N_("Education"), "system-help-symbolic", "#29cc5d" },
+ { "Education::Art", NC_("Menu subcategory of Education", "Art") },
+ { "Education::ArtificialIntelligence", NC_("Menu subcategory of Education", "Artificial
Intelligence") },
+ { "Education::Astronomy", NC_("Menu subcategory of Education", "Astronomy") },
+ { "Education::Biology", NC_("Menu subcategory of Education", "Biology") },
+ { "Education::Chemistry", NC_("Menu subcategory of Education", "Chemistry") },
+ { "Education::ComputerScience", NC_("Menu subcategory of Education", "Computer Science") },
+ { "Education::Construction", NC_("Menu subcategory of Education", "Construction") },
+ { "Education::DataVisualization", NC_("Menu subcategory of Education", "Data Visualization") },
+ { "Education::Economy", NC_("Menu subcategory of Education", "Economy") },
+ { "Education::Electricity", NC_("Menu subcategory of Education", "Electricity") },
+ { "Education::Electronics", NC_("Menu subcategory of Education", "Electronics") },
+ { "Education::Engineering", NC_("Menu subcategory of Education", "Engineering") },
+ { "Education::Geography", NC_("Menu subcategory of Education", "Geography") },
+ { "Education::Geology", NC_("Menu subcategory of Education", "Geology") },
+ { "Education::Geoscience", NC_("Menu subcategory of Education", "Geoscience") },
+ { "Education::History", NC_("Menu subcategory of Education", "History") },
+ { "Education::Humanities", NC_("Menu subcategory of Education", "Humanities") },
+ { "Education::ImageProcessing", NC_("Menu subcategory of Education", "Image Processing") },
+ { "Education::Languages", NC_("Menu subcategory of Education", "Languages") },
+ { "Education::Literature", NC_("Menu subcategory of Education", "Literature") },
+ { "Education::Maps", NC_("Menu subcategory of Education", "Maps") },
+ { "Education::Math", NC_("Menu subcategory of Education", "Math") },
+ { "Education::MedicalSoftware", NC_("Menu subcategory of Education", "Medical") },
+ { "Education::Music", NC_("Menu subcategory of Education", "Music") },
+ { "Education::NumericalAnalysis", NC_("Menu subcategory of Education", "Numerical Analysis") },
+ { "Education::ParallelComputing", NC_("Menu subcategory of Education", "Parallel Computing") },
+ { "Education::Physics", NC_("Menu subcategory of Education", "Physics") },
+ { "Education::Robotics", NC_("Menu subcategory of Education", "Robotics") },
+ { "Education::Spirituality", NC_("Menu subcategory of Education", "Spirituality") },
+ { "Education::Sports", NC_("Menu subcategory of Education", "Sports") },
/* TRANSLATORS: this is the menu spec main category for Games */
- { "Game", "applications-games-symbolic", N_("Games") },
- { "Game::ActionGame", NULL, NC_("Menu subcategory of Games", "Action") },
- { "Game::AdventureGame", NULL, NC_("Menu subcategory of Games", "Adventure") },
- { "Game::ArcadeGame", NULL, NC_("Menu subcategory of Games", "Arcade") },
- { "Game::BlocksGame", NULL, NC_("Menu subcategory of Games", "Blocks") },
- { "Game::BoardGame", NULL, NC_("Menu subcategory of Games", "Board") },
- { "Game::CardGame", NULL, NC_("Menu subcategory of Games", "Card") },
- { "Game::Emulator", NULL, NC_("Menu subcategory of Games", "Emulators") },
- { "Game::KidsGame", NULL, NC_("Menu subcategory of Games", "Kids") },
- { "Game::LogicGame", NULL, NC_("Menu subcategory of Games", "Logic") },
- { "Game::RolePlaying", NULL, NC_("Menu subcategory of Games", "Role Playing") },
- { "Game::Shooter", NULL, NC_("Menu subcategory of Games", "Shooter") },
- { "Game::Simulation", NULL, NC_("Menu subcategory of Games", "Simulation") },
- { "Game::SportsGame", NULL, NC_("Menu subcategory of Games", "Sports") },
- { "Game::StrategyGame", NULL, NC_("Menu subcategory of Games", "Strategy") },
+ { "Game", N_("Games"), "applications-games-symbolic", "#cc8529" },
+ { "Game::ActionGame", NC_("Menu subcategory of Games", "Action") },
+ { "Game::AdventureGame", NC_("Menu subcategory of Games", "Adventure") },
+ { "Game::ArcadeGame", NC_("Menu subcategory of Games", "Arcade") },
+ { "Game::BlocksGame", NC_("Menu subcategory of Games", "Blocks") },
+ { "Game::BoardGame", NC_("Menu subcategory of Games", "Board") },
+ { "Game::CardGame", NC_("Menu subcategory of Games", "Card") },
+ { "Game::Emulator", NC_("Menu subcategory of Games", "Emulators") },
+ { "Game::KidsGame", NC_("Menu subcategory of Games", "Kids") },
+ { "Game::LogicGame", NC_("Menu subcategory of Games", "Logic") },
+ { "Game::RolePlaying", NC_("Menu subcategory of Games", "Role Playing") },
+ { "Game::Shooter", NC_("Menu subcategory of Games", "Shooter") },
+ { "Game::Simulation", NC_("Menu subcategory of Games", "Simulation") },
+ { "Game::SportsGame", NC_("Menu subcategory of Games", "Sports") },
+ { "Game::StrategyGame", NC_("Menu subcategory of Games", "Strategy") },
/* TRANSLATORS: this is the menu spec main category for Graphics */
- { "Graphics", "applications-graphics-symbolic", N_("Graphics") },
- { "Graphics::2DGraphics", NULL, NC_("Menu subcategory of Graphics", "2D Graphics") },
- { "Graphics::3DGraphics", NULL, NC_("Menu subcategory of Graphics", "3D Graphics") },
- { "Graphics::OCR", NULL, NC_("Menu subcategory of Graphics", "OCR") },
- { "Graphics::Photography", NULL, NC_("Menu subcategory of Graphics", "Photography") },
- { "Graphics::Publishing", NULL, NC_("Menu subcategory of Graphics", "Publishing") },
- { "Graphics::RasterGraphics", NULL, NC_("Menu subcategory of Graphics", "Raster Graphics")
},
- { "Graphics::Scanning", NULL, NC_("Menu subcategory of Graphics", "Scanning") },
- { "Graphics::VectorGraphics", NULL, NC_("Menu subcategory of Graphics", "Vector Graphics")
},
- { "Graphics::Viewer", NULL, NC_("Menu subcategory of Graphics", "Viewer") },
+ { "Graphics", N_("Graphics"), "applications-graphics-symbolic", "#ccbe29" },
+ { "Graphics::2DGraphics", NC_("Menu subcategory of Graphics", "2D Graphics") },
+ { "Graphics::3DGraphics", NC_("Menu subcategory of Graphics", "3D Graphics") },
+ { "Graphics::OCR", NC_("Menu subcategory of Graphics", "OCR") },
+ { "Graphics::Photography", NC_("Menu subcategory of Graphics", "Photography") },
+ { "Graphics::Publishing", NC_("Menu subcategory of Graphics", "Publishing") },
+ { "Graphics::RasterGraphics", NC_("Menu subcategory of Graphics", "Raster Graphics") },
+ { "Graphics::Scanning", NC_("Menu subcategory of Graphics", "Scanning") },
+ { "Graphics::VectorGraphics", NC_("Menu subcategory of Graphics", "Vector Graphics") },
+ { "Graphics::Viewer", NC_("Menu subcategory of Graphics", "Viewer") },
/* TRANSLATORS: this is the menu spec main category for Network */
- { "Network", "network-wireless-symbolic", N_("Internet") },
- { "Network::Chat", NULL, NC_("Menu subcategory of Internet", "Chat") },
- { "Network::Dialup", NULL, NC_("Menu subcategory of Internet", "Dialup") },
- { "Network::Email", NULL, NC_("Menu subcategory of Internet", "Email") },
- { "Network::Feed", NULL, NC_("Menu subcategory of Internet", "Feed") },
- { "Network::FileTransfer", NULL, NC_("Menu subcategory of Internet", "File Transfer") },
- { "Network::HamRadio", NULL, NC_("Menu subcategory of Internet", "Ham Radio") },
- { "Network::InstantMessaging", NULL, NC_("Menu subcategory of Internet", "Instant
Messaging") },
- { "Network::IRCClient", NULL, NC_("Menu subcategory of Internet", "IRC Clients") },
- { "Network::Monitor", NULL, NC_("Menu subcategory of Internet", "Monitor") },
- { "Network::News", NULL, NC_("Menu subcategory of Internet", "News") },
- { "Network::P2P", NULL, NC_("Menu subcategory of Internet", "P2P") },
- { "Network::RemoteAccess", NULL, NC_("Menu subcategory of Internet", "Remote Access") },
- { "Network::Telephony", NULL, NC_("Menu subcategory of Internet", "Telephony") },
- { "Network::VideoConference", NULL, NC_("Menu subcategory of Internet", "Video Conference")
},
- { "Network::WebBrowser", NULL, NC_("Menu subcategory of Internet", "Web Browser") },
- { "Network::WebDevelopment", NULL, NC_("Menu subcategory of Internet", "Web Development")
},
+ { "Network", N_("Internet"), "network-wireless-symbolic", "#cc2929" },
+ { "Network::Chat", NC_("Menu subcategory of Internet", "Chat") },
+ { "Network::Dialup", NC_("Menu subcategory of Internet", "Dialup") },
+ { "Network::Email", NC_("Menu subcategory of Internet", "Email") },
+ { "Network::Feed", NC_("Menu subcategory of Internet", "Feed") },
+ { "Network::FileTransfer", NC_("Menu subcategory of Internet", "File Transfer") },
+ { "Network::HamRadio", NC_("Menu subcategory of Internet", "Ham Radio") },
+ { "Network::InstantMessaging", NC_("Menu subcategory of Internet", "Instant Messaging") },
+ { "Network::IRCClient", NC_("Menu subcategory of Internet", "IRC Clients") },
+ { "Network::Monitor", NC_("Menu subcategory of Internet", "Monitor") },
+ { "Network::News", NC_("Menu subcategory of Internet", "News") },
+ { "Network::P2P", NC_("Menu subcategory of Internet", "P2P") },
+ { "Network::RemoteAccess", NC_("Menu subcategory of Internet", "Remote Access") },
+ { "Network::Telephony", NC_("Menu subcategory of Internet", "Telephony") },
+ { "Network::VideoConference", NC_("Menu subcategory of Internet", "Video Conference") },
+ { "Network::WebBrowser", NC_("Menu subcategory of Internet", "Web Browser") },
+ { "Network::WebDevelopment", NC_("Menu subcategory of Internet", "Web Development") },
/* TRANSLATORS: this is the menu spec main category for Office */
- { "Office", "text-editor-symbolic", N_("Office") },
- { "Office::Calendar", NULL, NC_("Menu subcategory of Office", "Calendar") },
- { "Office::Chart", NULL, NC_("Menu subcategory of Office", "Chart") },
- { "Office::ContactManagement", NULL, NC_("Menu subcategory of Office", "Contact Management")
},
- { "Office::Database", NULL, NC_("Menu subcategory of Office", "Database") },
- { "Office::Dictionary", NULL, NC_("Menu subcategory of Office", "Dictionary") },
- { "Office::Email", NULL, NC_("Menu subcategory of Office", "Email") },
- { "Office::Finance", NULL, NC_("Menu subcategory of Office", "Finance") },
- { "Office::FlowChart", NULL, NC_("Menu subcategory of Office", "Flow Chart") },
- { "Office::PDA", NULL, NC_("Menu subcategory of Office", "PDA") },
- { "Office::Photography", NULL, NC_("Menu subcategory of Office", "Photography") },
- { "Office::Presentation", NULL, NC_("Menu subcategory of Office", "Presentation") },
- { "Office::ProjectManagement", NULL, NC_("Menu subcategory of Office", "Project Management")
},
- { "Office::Publishing", NULL, NC_("Menu subcategory of Office", "Publishing") },
- { "Office::Spreadsheet", NULL, NC_("Menu subcategory of Office", "Spreadsheet") },
- { "Office::Viewer", NULL, NC_("Menu subcategory of Office", "Viewer") },
- { "Office::WordProcessor", NULL, NC_("Menu subcategory of Office", "Word Processor") },
+ { "Office", N_("Office"), "text-editor-symbolic", "#5d29cc" },
+ { "Office::Calendar", NC_("Menu subcategory of Office", "Calendar") },
+ { "Office::Chart", NC_("Menu subcategory of Office", "Chart") },
+ { "Office::ContactManagement", NC_("Menu subcategory of Office", "Contact Management") },
+ { "Office::Database", NC_("Menu subcategory of Office", "Database") },
+ { "Office::Dictionary", NC_("Menu subcategory of Office", "Dictionary") },
+ { "Office::Email", NC_("Menu subcategory of Office", "Email") },
+ { "Office::Finance", NC_("Menu subcategory of Office", "Finance") },
+ { "Office::FlowChart", NC_("Menu subcategory of Office", "Flow Chart") },
+ { "Office::PDA", NC_("Menu subcategory of Office", "PDA") },
+ { "Office::Photography", NC_("Menu subcategory of Office", "Photography") },
+ { "Office::Presentation", NC_("Menu subcategory of Office", "Presentation") },
+ { "Office::ProjectManagement", NC_("Menu subcategory of Office", "Project Management") },
+ { "Office::Publishing", NC_("Menu subcategory of Office", "Publishing") },
+ { "Office::Spreadsheet", NC_("Menu subcategory of Office", "Spreadsheet") },
+ { "Office::Viewer", NC_("Menu subcategory of Office", "Viewer") },
+ { "Office::WordProcessor", NC_("Menu subcategory of Office", "Word Processor") },
/* TRANSLATORS: this is the menu spec main category for Science */
- { "Science", "applications-science-symbolic", N_("Science") },
- { "Science::Art", NULL, NC_("Menu subcategory of Science", "Art") },
- { "Science::ArtificialIntelligence", NULL, NC_("Menu subcategory of Science", "Artificial
Intelligence") },
- { "Science::Astronomy", NULL, NC_("Menu subcategory of Science", "Astronomy") },
- { "Science::Biology", NULL, NC_("Menu subcategory of Science", "Biology") },
- { "Science::Chemistry", NULL, NC_("Menu subcategory of Science", "Chemistry") },
- { "Science::ComputerScience", NULL, NC_("Menu subcategory of Science", "Computer Science")
},
- { "Science::Construction", NULL, NC_("Menu subcategory of Science", "Construction") },
- { "Science::DataVisualization", NULL, NC_("Menu subcategory of Science", "Data
Visualization") },
- { "Science::Economy", NULL, NC_("Menu subcategory of Science", "Economy") },
- { "Science::Electricity", NULL, NC_("Menu subcategory of Science", "Electricity") },
- { "Science::Electronics", NULL, NC_("Menu subcategory of Science", "Electronics") },
- { "Science::Engineering", NULL, NC_("Menu subcategory of Science", "Engineering") },
- { "Science::Geography", NULL, NC_("Menu subcategory of Science", "Geography") },
- { "Science::Geology", NULL, NC_("Menu subcategory of Science", "Geology") },
- { "Science::Geoscience", NULL, NC_("Menu subcategory of Science", "Geoscience") },
- { "Science::History", NULL, NC_("Menu subcategory of Science", "History") },
- { "Science::Humanities", NULL, NC_("Menu subcategory of Science", "Humanities") },
- { "Science::ImageProcessing", NULL, NC_("Menu subcategory of Science", "Image Processing")
},
- { "Science::Languages", NULL, NC_("Menu subcategory of Science", "Languages") },
- { "Science::Literature", NULL, NC_("Menu subcategory of Science", "Literature") },
- { "Science::Maps", NULL, NC_("Menu subcategory of Science", "Maps") },
- { "Science::Math", NULL, NC_("Menu subcategory of Science", "Math") },
- { "Science::MedicalSoftware", NULL, NC_("Menu subcategory of Science", "Medical") },
- { "Science::NumericalAnalysis", NULL, NC_("Menu subcategory of Science", "Numerical
Analysis") },
- { "Science::ParallelComputing", NULL, NC_("Menu subcategory of Science", "Parallel
Computing") },
- { "Science::Physics", NULL, NC_("Menu subcategory of Science", "Physics") },
- { "Science::Robotics", NULL, NC_("Menu subcategory of Science", "Robotics") },
- { "Science::Spirituality", NULL, NC_("Menu subcategory of Science", "Spirituality") },
- { "Science::Sports", NULL, NC_("Menu subcategory of Science", "Sports") },
+ { "Science", N_("Science"), "applications-science-symbolic", "#9c29ca" },
+ { "Science::Art", NC_("Menu subcategory of Science", "Art") },
+ { "Science::ArtificialIntelligence", NC_("Menu subcategory of Science", "Artificial Intelligence")
},
+ { "Science::Astronomy", NC_("Menu subcategory of Science", "Astronomy") },
+ { "Science::Biology", NC_("Menu subcategory of Science", "Biology") },
+ { "Science::Chemistry", NC_("Menu subcategory of Science", "Chemistry") },
+ { "Science::ComputerScience", NC_("Menu subcategory of Science", "Computer Science") },
+ { "Science::Construction", NC_("Menu subcategory of Science", "Construction") },
+ { "Science::DataVisualization", NC_("Menu subcategory of Science", "Data Visualization") },
+ { "Science::Economy", NC_("Menu subcategory of Science", "Economy") },
+ { "Science::Electricity", NC_("Menu subcategory of Science", "Electricity") },
+ { "Science::Electronics", NC_("Menu subcategory of Science", "Electronics") },
+ { "Science::Engineering", NC_("Menu subcategory of Science", "Engineering") },
+ { "Science::Geography", NC_("Menu subcategory of Science", "Geography") },
+ { "Science::Geology", NC_("Menu subcategory of Science", "Geology") },
+ { "Science::Geoscience", NC_("Menu subcategory of Science", "Geoscience") },
+ { "Science::History", NC_("Menu subcategory of Science", "History") },
+ { "Science::Humanities", NC_("Menu subcategory of Science", "Humanities") },
+ { "Science::ImageProcessing", NC_("Menu subcategory of Science", "Image Processing") },
+ { "Science::Languages", NC_("Menu subcategory of Science", "Languages") },
+ { "Science::Literature", NC_("Menu subcategory of Science", "Literature") },
+ { "Science::Maps", NC_("Menu subcategory of Science", "Maps") },
+ { "Science::Math", NC_("Menu subcategory of Science", "Math") },
+ { "Science::MedicalSoftware", NC_("Menu subcategory of Science", "Medical") },
+ { "Science::NumericalAnalysis", NC_("Menu subcategory of Science", "Numerical Analysis") },
+ { "Science::ParallelComputing", NC_("Menu subcategory of Science", "Parallel Computing") },
+ { "Science::Physics", NC_("Menu subcategory of Science", "Physics") },
+ { "Science::Robotics", NC_("Menu subcategory of Science", "Robotics") },
+ { "Science::Spirituality", NC_("Menu subcategory of Science", "Spirituality") },
+ { "Science::Sports", NC_("Menu subcategory of Science", "Sports") },
/* TRANSLATORS: this is the menu spec main category for System */
- { "System", "applications-system-symbolic", N_("System") },
- { "System::Emulator", NULL, NC_("Menu subcategory of System", "Emulator") },
- { "System::FileManager", NULL, NC_("Menu subcategory of System", "File Manager") },
- { "System::Filesystem", NULL, NC_("Menu subcategory of System", "File System") },
- { "System::FileTools", NULL, NC_("Menu subcategory of System", "File Tools") },
- { "System::Monitor", NULL, NC_("Menu subcategory of System", "Monitor") },
- { "System::Security", NULL, NC_("Menu subcategory of System", "Security") },
- { "System::TerminalEmulator", NULL, NC_("Menu subcategory of System", "Terminal Emulator")
},
+ { "System", N_("System"), "applications-system-symbolic", "#cc2929" },
+ { "System::Emulator", NC_("Menu subcategory of System", "Emulator") },
+ { "System::FileManager", NC_("Menu subcategory of System", "File Manager") },
+ { "System::Filesystem", NC_("Menu subcategory of System", "File System") },
+ { "System::FileTools", NC_("Menu subcategory of System", "File Tools") },
+ { "System::Monitor", NC_("Menu subcategory of System", "Monitor") },
+ { "System::Security", NC_("Menu subcategory of System", "Security") },
+ { "System::TerminalEmulator", NC_("Menu subcategory of System", "Terminal Emulator") },
/* TRANSLATORS: this is the menu spec main category for Utility */
- { "Utility", "applications-utilities-symbolic", N_("Utilities") },
- { "Utility::Accessibility", NULL, NC_("Menu subcategory of Utilities", "Accessibility") },
- { "Utility::Archiving", NULL, NC_("Menu subcategory of Utilities", "Archiving") },
- { "Utility::Calculator", NULL, NC_("Menu subcategory of Utilities", "Calculator") },
- { "Utility::Clock", NULL, NC_("Menu subcategory of Utilities", "Clock") },
- { "Utility::Compression", NULL, NC_("Menu subcategory of Utilities", "Compression") },
- { "Utility::FileTools", NULL, NC_("Menu subcategory of Utilities", "File Tools") },
- { "Utility::Maps", NULL, NC_("Menu subcategory of Utilities", "Maps") },
- { "Utility::Spirituality", NULL, NC_("Menu subcategory of Utilities", "Spirituality") },
- { "Utility::TelephonyTools", NULL, NC_("Menu subcategory of Utilities", "Telephony Tools")
},
- { "Utility::TextEditor", NULL, NC_("Menu subcategory of Utilities", "Text Editor") },
+ { "Utility", N_("Utilities"), "applications-utilities-symbolic", "#2944cc"
},
+ { "Utility::Accessibility", NC_("Menu subcategory of Utilities", "Accessibility") },
+ { "Utility::Archiving", NC_("Menu subcategory of Utilities", "Archiving") },
+ { "Utility::Calculator", NC_("Menu subcategory of Utilities", "Calculator") },
+ { "Utility::Clock", NC_("Menu subcategory of Utilities", "Clock") },
+ { "Utility::Compression", NC_("Menu subcategory of Utilities", "Compression") },
+ { "Utility::FileTools", NC_("Menu subcategory of Utilities", "File Tools") },
+ { "Utility::Maps", NC_("Menu subcategory of Utilities", "Maps") },
+ { "Utility::Spirituality", NC_("Menu subcategory of Utilities", "Spirituality") },
+ { "Utility::TelephonyTools", NC_("Menu subcategory of Utilities", "Telephony Tools") },
+ { "Utility::TextEditor", NC_("Menu subcategory of Utilities", "Text Editor") },
/* TRANSLATORS: this is the menu spec main category for Video */
- { "Video", "folder-videos-symbolic", N_("Video") },
- { "Video::AudioVideoEditing", NULL, NC_("Menu subcategory of Video", "Editing") },
- { "Video::Database", NULL, NC_("Menu subcategory of Video", "Database") },
- { "Video::DiscBurning", NULL, NC_("Menu subcategory of Video", "Disc Burning") },
- { "Video::Player", NULL, NC_("Menu subcategory of Video", "Players") },
- { "Video::Recorder", NULL, NC_("Menu subcategory of Video", "Recorders") },
- { "Video::TV", NULL, NC_("Menu subcategory of Video", "TV") },
+ { "Video", N_("Video"), "folder-videos-symbolic", "#cc29ae" },
+ { "Video::AudioVideoEditing", NC_("Menu subcategory of Video", "Editing") },
+ { "Video::Database", NC_("Menu subcategory of Video", "Database") },
+ { "Video::DiscBurning", NC_("Menu subcategory of Video", "Disc Burning") },
+ { "Video::Player", NC_("Menu subcategory of Video", "Players") },
+ { "Video::Recorder", NC_("Menu subcategory of Video", "Recorders") },
+ { "Video::TV", NC_("Menu subcategory of Video", "TV") },
/* TRANSLATORS: this is the main category for Add-ons */
- { "Addons", "list-add-symbolic", N_("Add-ons") },
- { "Addons::Fonts", NULL, NC_("Menu subcategory of Add-ons", "Fonts") },
- { "Addons::Codecs", NULL, NC_("Menu subcategory of Add-ons", "Codecs") },
- { "Addons::InputSources", NULL, NC_("Menu subcategory of Add-ons", "Input Sources") },
- { "Addons::LanguagePacks", NULL, NC_("Menu subcategory of Add-ons", "Language Packs") },
- { "Addons::ShellExtensions", NULL, NC_("Menu subcategory of Add-ons", "Shell Extensions")
},
- { "Addons::Localization", NULL, NC_("Menu subcategory of Add-ons", "Localization") },
- { NULL, NULL, NULL }
+ { "Addons", N_("Add-ons"), "list-add-symbolic", "#cc5a29" },
+ { "Addons::Fonts", NC_("Menu subcategory of Add-ons", "Fonts") },
+ { "Addons::Codecs", NC_("Menu subcategory of Add-ons", "Codecs") },
+ { "Addons::InputSources", NC_("Menu subcategory of Add-ons", "Input Sources") },
+ { "Addons::LanguagePacks", NC_("Menu subcategory of Add-ons", "Language Packs") },
+ { "Addons::ShellExtensions", NC_("Menu subcategory of Add-ons", "Shell Extensions") },
+ { "Addons::Localization", NC_("Menu subcategory of Add-ons", "Localization") },
+ { NULL }
};
const MenuSpecData *
diff --git a/src/plugins/menu-spec-common.h b/src/plugins/menu-spec-common.h
index a05a127..b5477e4 100644
--- a/src/plugins/menu-spec-common.h
+++ b/src/plugins/menu-spec-common.h
@@ -29,8 +29,9 @@ G_BEGIN_DECLS
typedef struct {
const gchar *path;
+ const gchar *name;
const gchar *icon;
- const gchar *text;
+ const gchar *key_colors;
} MenuSpecData;
const MenuSpecData *menu_spec_get_data (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]