gchar *generic; /*!< Generic name for the object (eg Web Browser) */
gchar *comment; /*!< Comment/description to display for the object */
gchar *icon; /*!< Name/path for an icon for the object */
+ guint env_required; /*!< The environments that must be present to use this
+ link. */
+ guint env_restricted; /*!< The environments that must _not_ be present to
+ use this link. */
union _ObtLinkData {
struct _ObtLinkApp {
if ((v = g_hash_table_lookup(keys, "Icon")))
link->icon = v->value.string, v->value.string = NULL;
- /* XXX handle Only/NotShowIn, better know the current environment */
+ if ((v = g_hash_table_lookup(keys, "OnlyShowIn")))
+ link->env_required = v->value.environments;
+ else
+ link->env_required = 0;
+
+ if ((v = g_hash_table_lookup(keys, "NotShowIn")))
+ link->env_restricted = v->value.environments;
+ else
+ link->env_restricted = 0;
if (link->type == OBT_LINK_TYPE_APPLICATION) {
if ((v = g_hash_table_lookup(keys, "TryExec"))) {
obt_paths_try_exec(p, v->value.string);
}
+ if ((v = g_hash_table_lookup(keys, "Path"))) {
+ /* steal the string */
+ link->d.app.wdir = v->value.string;
+ v->value.string = NULL;
+ }
+
+ if ((v = g_hash_table_lookup(keys, "Terminal")))
+ link->d.app.term = v->value.boolean;
+
+ if ((v = g_hash_table_lookup(keys, "StartupNotify")))
+ link->d.app.startup = v->value.boolean ?
+ OBT_LINK_APP_STARTUP_PROTOCOL_SUPPORT :
+ OBT_LINK_APP_STARTUP_NO_SUPPORT;
+ else
+ link->d.app.startup = OBT_LINK_APP_STARTUP_LEGACY_SUPPORT;
+
+ /* XXX parse link->d.app.exec to determine link->d.app.open */
+
/* XXX there's more app specific stuff */
}