Commit 957015e3 authored by Sven Neumann's avatar Sven Neumann Committed by Sven Neumann

menus/Makefile.am added a DTD (basically copied from the GTK+ API docs).

2004-04-19  Sven Neumann  <sven@gimp.org>

	* menus/Makefile.am
	* menus/gtkuimanager.dtd: added a DTD (basically copied from the
	GTK+ API docs). Added a "validate" rule that allows to easily
	validate the XML files.

	* menus/*.xml: added a DOCTYPE declaration that refers to the
	newly added DTD.

	* app/widgets/gimpenumstore.[ch]:
	* app/widgets/gimpenumcombobox.c: documented the new API.
parent a4f6eca8
......@@ -65,9 +65,13 @@ gimp_enum_combo_box_get_type (void)
* gimp_enum_combo_box_new:
* @enum_type: the #GType of an enum.
*
* Creates a new #GtkComboBox using the #GimpEnumStore. The enum needs
* to be registered to the type system and should have translatable
* value names.
* Creates a #GtkComboBox readily filled with all enum values from a
* given @enum_type. The enum needs to be registered to the type
* system and should have translatable value names.
*
* This is just a convenience function. If you need more control over
* the enum values that appear in the combo_box, you can create your
* own #GimpEnumStore and use gimp_enum_combo_box_new_with_model().
*
* Return value: a new #GimpEnumComboBox.
**/
......@@ -88,6 +92,14 @@ gimp_enum_combo_box_new (GType enum_type)
return combo_box;
}
/**
* gimp_enum_combo_box_new_with_model:
* @enum_type: the #GType of an enum.
*
* Creates a new #GimpEnumComboBox using the #GimpEnumStore as its model.
*
* Return value: a new #GimpEnumComboBox.
**/
GtkWidget *
gimp_enum_combo_box_new_with_model (GimpEnumStore *enum_store)
{
......@@ -115,6 +127,17 @@ gimp_enum_combo_box_new_with_model (GimpEnumStore *enum_store)
return combo_box;
}
/**
* gimp_enum_combo_box_set_active:
* @combo_box: a #GimpEnumComboBox
* @value: an enum value
*
* Looks up the item that belongs to the given @value and makes it the
* selected item in the @combo_box.
*
* Return value: %TRUE on success or %FALSE if there was no item for
* this value.
**/
gboolean
gimp_enum_combo_box_set_active (GimpEnumComboBox *combo_box,
gint value)
......@@ -135,6 +158,17 @@ gimp_enum_combo_box_set_active (GimpEnumComboBox *combo_box,
return FALSE;
}
/**
* gimp_enum_combo_box_get_active:
* @combo_box: a #GimpEnumComboBox
* @value: return location for enum value
*
* Retrieves the enum value of the selected (active) item in the
* @combo_box.
*
* Return value: %TRUE if @value has been set or %FALSE if no item was
* active.
**/
gboolean
gimp_enum_combo_box_get_active (GimpEnumComboBox *combo_box,
gint *value)
......@@ -155,6 +189,14 @@ gimp_enum_combo_box_get_active (GimpEnumComboBox *combo_box,
return FALSE;
}
/**
* gimp_enum_combo_box_set_stock_prefix:
* @combo_box: a #GimpEnumComboBox
* @stock_prefix: a prefix to create icon stock ID from enum values
*
* Attempts to create and set icons for all items in the
* @combo_box. See gimp_enum_store_set_icons() for more info.
**/
void
gimp_enum_combo_box_set_stock_prefix (GimpEnumComboBox *combo_box,
const gchar *stock_prefix)
......@@ -170,11 +212,33 @@ gimp_enum_combo_box_set_stock_prefix (GimpEnumComboBox *combo_box,
stock_prefix, GTK_ICON_SIZE_MENU);
}
/* This is a kludge to allow to work around bug #135875 */
/* This is a kludge to allow to work around bug #135875. */
/**
* gimp_enum_combo_box_set_visible:
* @combo_box: a #GimpEnumComboBox
* @func: a #GtkTreeModelFilterVisibleFunc
* @data: a pointer that is passed to @func
*
* Sets a filter on the combo_box that selectively hides items. The
* registered callback @func is called with an iter for each item and
* returns %TRUE or %FALSE indicating whether the respective row
* should be visible or not.
*
* This function must only be called once for a @combo_box. If you
* want to refresh the visibility of the items in the @combo_box
* later, call gtk_tree_model_filter_refilter() on the @combo_box's
* model.
*
* This is a kludge to allow to work around the inability of
* #GtkComboBox to set the sensitivity of it's items (bug #135875).
* It should be removed as soon as this bug is fixed (probably with
* GTK+-2.6).
**/
void
gimp_enum_combo_box_set_visible (GimpEnumComboBox *combo_box,
GtkTreeModelFilterVisibleFunc func,
gpointer data)
gimp_enum_combo_box_set_visible (GimpEnumComboBox *combo_box,
GtkTreeModelFilterVisibleFunc func,
gpointer data)
{
GtkTreeModel *model;
GtkTreeModelFilter *filter;
......@@ -183,19 +247,9 @@ gimp_enum_combo_box_set_visible (GimpEnumComboBox *combo_box,
model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo_box));
if (GTK_IS_TREE_MODEL_FILTER (model))
{
filter = GTK_TREE_MODEL_FILTER (model);
}
else
{
filter = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new (model, NULL));
gtk_combo_box_set_model (GTK_COMBO_BOX (combo_box),
GTK_TREE_MODEL (filter));
g_object_unref (filter);
}
filter = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new (model, NULL));
gtk_combo_box_set_model (GTK_COMBO_BOX (combo_box), GTK_TREE_MODEL (filter));
g_object_unref (filter);
gtk_tree_model_filter_set_visible_func (filter, func, data, NULL);
gtk_tree_model_filter_refilter (filter);
......
......@@ -110,6 +110,22 @@ gimp_enum_store_finalize (GObject *object)
G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void
gimp_enum_store_add_value (GtkListStore *store,
GEnumValue *value)
{
GtkTreeIter iter;
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
GIMP_ENUM_STORE_VALUE, value->value,
GIMP_ENUM_STORE_LABEL, gettext (value->value_name),
GIMP_ENUM_STORE_ICON, NULL,
GIMP_ENUM_STORE_USER_DATA, NULL,
-1);
}
/**
* gimp_enum_store_new:
* @enum_type: the #GType of an enum.
......@@ -139,6 +155,17 @@ gimp_enum_store_new (GType enum_type)
return store;
}
/**
* gimp_enum_store_new_with_range:
* @enum_type: the #GType of an enum.
* @minimum: the minimum value to include
* @maximum: the maximum value to include
*
* Creates a new #GimpEnumStore like gimp_enum_store_new() but allows
* to limit the enum values to a certain range.
*
* Return value: a new #GimpEnumStore.
**/
GtkListStore *
gimp_enum_store_new_with_range (GType enum_type,
gint minimum,
......@@ -166,6 +193,17 @@ gimp_enum_store_new_with_range (GType enum_type,
return store;
}
/**
* gimp_enum_store_new_with_values
* @enum_type: the #GType of an enum.
* @n_values: the number of enum values to include
* @...: a list of enum values (exactly @n_values)
*
* Creates a new #GimpEnumStore like gimp_enum_store_new() but allows
* to list the enum values that should be added to the store.
*
* Return value: a new #GimpEnumStore.
**/
GtkListStore *
gimp_enum_store_new_with_values (GType enum_type,
gint n_values,
......@@ -185,6 +223,16 @@ gimp_enum_store_new_with_values (GType enum_type,
return store;
}
/**
* gimp_enum_store_new_with_values_valist:
* @enum_type: the #GType of an enum.
* @n_values: the number of enum values to include
* @args: a va_list of enum values (exactly @n_values)
*
* See gimp_enum_store_new_with_values().
*
* Return value: a new #GimpEnumStore.
**/
GtkListStore *
gimp_enum_store_new_with_values_valist (GType enum_type,
gint n_values,
......@@ -213,6 +261,17 @@ gimp_enum_store_new_with_values_valist (GType enum_type,
return store;
}
/**
* gimp_enum_store_lookup_by_value:
* @model: a #GimpEnumStore
* @value: an enum values to lookup in the @model
* @iter: return location for the iter of the given @value
*
* Iterate over the @model looking for @value.
*
* Return value: %TRUE if the value has been located and @iter is
* valid, %FALSE otherwise.
**/
gboolean
gimp_enum_store_lookup_by_value (GtkTreeModel *model,
gint value,
......@@ -239,6 +298,19 @@ gimp_enum_store_lookup_by_value (GtkTreeModel *model,
return iter_valid;
}
/**
* gimp_enum_store_lookup_by_value:
* @store: a #GimpEnumStore
* @widget: the widget used to create the icon pixbufs
* @stock_prefix: a prefix to create icon stock ID from enum values
*
* Creates a stock ID for each enum value in the @store by appending
* the value's nick to the given @stock_prefix inserting a hyphen
* between them. If an icon is registered for the resulting stock ID,
* it is rendered by @widget (which should be the @combo_box using
* this @store as it's model). The rendered pixbuf is then added to
* the @store in the %GIMP_ENUM_STORE_PIXBUF column.
**/
void
gimp_enum_store_set_icons (GimpEnumStore *store,
GtkWidget *widget,
......@@ -290,19 +362,3 @@ gimp_enum_store_set_icons (GimpEnumStore *store,
g_object_unref (pixbuf);
}
}
static void
gimp_enum_store_add_value (GtkListStore *store,
GEnumValue *value)
{
GtkTreeIter iter;
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
GIMP_ENUM_STORE_VALUE, value->value,
GIMP_ENUM_STORE_LABEL, gettext (value->value_name),
GIMP_ENUM_STORE_ICON, NULL,
GIMP_ENUM_STORE_USER_DATA, NULL,
-1);
}
......@@ -71,9 +71,9 @@ GtkListStore * gimp_enum_store_new_with_values_valist (GType enum_type,
gint n_values,
va_list args);
gboolean gimp_enum_store_lookup_by_value (GtkTreeModel *model,
gint value,
GtkTreeIter *iter);
gboolean gimp_enum_store_lookup_by_value (GtkTreeModel *model,
gint value,
GtkTreeIter *iter);
void gimp_enum_store_set_icons (GimpEnumStore *store,
GtkWidget *widget,
......
......@@ -65,9 +65,13 @@ gimp_enum_combo_box_get_type (void)
* gimp_enum_combo_box_new:
* @enum_type: the #GType of an enum.
*
* Creates a new #GtkComboBox using the #GimpEnumStore. The enum needs
* to be registered to the type system and should have translatable
* value names.
* Creates a #GtkComboBox readily filled with all enum values from a
* given @enum_type. The enum needs to be registered to the type
* system and should have translatable value names.
*
* This is just a convenience function. If you need more control over
* the enum values that appear in the combo_box, you can create your
* own #GimpEnumStore and use gimp_enum_combo_box_new_with_model().
*
* Return value: a new #GimpEnumComboBox.
**/
......@@ -88,6 +92,14 @@ gimp_enum_combo_box_new (GType enum_type)
return combo_box;
}
/**
* gimp_enum_combo_box_new_with_model:
* @enum_type: the #GType of an enum.
*
* Creates a new #GimpEnumComboBox using the #GimpEnumStore as its model.
*
* Return value: a new #GimpEnumComboBox.
**/
GtkWidget *
gimp_enum_combo_box_new_with_model (GimpEnumStore *enum_store)
{
......@@ -115,6 +127,17 @@ gimp_enum_combo_box_new_with_model (GimpEnumStore *enum_store)
return combo_box;
}
/**
* gimp_enum_combo_box_set_active:
* @combo_box: a #GimpEnumComboBox
* @value: an enum value
*
* Looks up the item that belongs to the given @value and makes it the
* selected item in the @combo_box.
*
* Return value: %TRUE on success or %FALSE if there was no item for
* this value.
**/
gboolean
gimp_enum_combo_box_set_active (GimpEnumComboBox *combo_box,
gint value)
......@@ -135,6 +158,17 @@ gimp_enum_combo_box_set_active (GimpEnumComboBox *combo_box,
return FALSE;
}
/**
* gimp_enum_combo_box_get_active:
* @combo_box: a #GimpEnumComboBox
* @value: return location for enum value
*
* Retrieves the enum value of the selected (active) item in the
* @combo_box.
*
* Return value: %TRUE if @value has been set or %FALSE if no item was
* active.
**/
gboolean
gimp_enum_combo_box_get_active (GimpEnumComboBox *combo_box,
gint *value)
......@@ -155,6 +189,14 @@ gimp_enum_combo_box_get_active (GimpEnumComboBox *combo_box,
return FALSE;
}
/**
* gimp_enum_combo_box_set_stock_prefix:
* @combo_box: a #GimpEnumComboBox
* @stock_prefix: a prefix to create icon stock ID from enum values
*
* Attempts to create and set icons for all items in the
* @combo_box. See gimp_enum_store_set_icons() for more info.
**/
void
gimp_enum_combo_box_set_stock_prefix (GimpEnumComboBox *combo_box,
const gchar *stock_prefix)
......@@ -170,11 +212,33 @@ gimp_enum_combo_box_set_stock_prefix (GimpEnumComboBox *combo_box,
stock_prefix, GTK_ICON_SIZE_MENU);
}
/* This is a kludge to allow to work around bug #135875 */
/* This is a kludge to allow to work around bug #135875. */
/**
* gimp_enum_combo_box_set_visible:
* @combo_box: a #GimpEnumComboBox
* @func: a #GtkTreeModelFilterVisibleFunc
* @data: a pointer that is passed to @func
*
* Sets a filter on the combo_box that selectively hides items. The
* registered callback @func is called with an iter for each item and
* returns %TRUE or %FALSE indicating whether the respective row
* should be visible or not.
*
* This function must only be called once for a @combo_box. If you
* want to refresh the visibility of the items in the @combo_box
* later, call gtk_tree_model_filter_refilter() on the @combo_box's
* model.
*
* This is a kludge to allow to work around the inability of
* #GtkComboBox to set the sensitivity of it's items (bug #135875).
* It should be removed as soon as this bug is fixed (probably with
* GTK+-2.6).
**/
void
gimp_enum_combo_box_set_visible (GimpEnumComboBox *combo_box,
GtkTreeModelFilterVisibleFunc func,
gpointer data)
gimp_enum_combo_box_set_visible (GimpEnumComboBox *combo_box,
GtkTreeModelFilterVisibleFunc func,
gpointer data)
{
GtkTreeModel *model;
GtkTreeModelFilter *filter;
......@@ -183,19 +247,9 @@ gimp_enum_combo_box_set_visible (GimpEnumComboBox *combo_box,
model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo_box));
if (GTK_IS_TREE_MODEL_FILTER (model))
{
filter = GTK_TREE_MODEL_FILTER (model);
}
else
{
filter = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new (model, NULL));
gtk_combo_box_set_model (GTK_COMBO_BOX (combo_box),
GTK_TREE_MODEL (filter));
g_object_unref (filter);
}
filter = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new (model, NULL));
gtk_combo_box_set_model (GTK_COMBO_BOX (combo_box), GTK_TREE_MODEL (filter));
g_object_unref (filter);
gtk_tree_model_filter_set_visible_func (filter, func, data, NULL);
gtk_tree_model_filter_refilter (filter);
......
......@@ -110,6 +110,22 @@ gimp_enum_store_finalize (GObject *object)
G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void
gimp_enum_store_add_value (GtkListStore *store,
GEnumValue *value)
{
GtkTreeIter iter;
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
GIMP_ENUM_STORE_VALUE, value->value,
GIMP_ENUM_STORE_LABEL, gettext (value->value_name),
GIMP_ENUM_STORE_ICON, NULL,
GIMP_ENUM_STORE_USER_DATA, NULL,
-1);
}
/**
* gimp_enum_store_new:
* @enum_type: the #GType of an enum.
......@@ -139,6 +155,17 @@ gimp_enum_store_new (GType enum_type)
return store;
}
/**
* gimp_enum_store_new_with_range:
* @enum_type: the #GType of an enum.
* @minimum: the minimum value to include
* @maximum: the maximum value to include
*
* Creates a new #GimpEnumStore like gimp_enum_store_new() but allows
* to limit the enum values to a certain range.
*
* Return value: a new #GimpEnumStore.
**/
GtkListStore *
gimp_enum_store_new_with_range (GType enum_type,
gint minimum,
......@@ -166,6 +193,17 @@ gimp_enum_store_new_with_range (GType enum_type,
return store;
}
/**
* gimp_enum_store_new_with_values
* @enum_type: the #GType of an enum.
* @n_values: the number of enum values to include
* @...: a list of enum values (exactly @n_values)
*
* Creates a new #GimpEnumStore like gimp_enum_store_new() but allows
* to list the enum values that should be added to the store.
*
* Return value: a new #GimpEnumStore.
**/
GtkListStore *
gimp_enum_store_new_with_values (GType enum_type,
gint n_values,
......@@ -185,6 +223,16 @@ gimp_enum_store_new_with_values (GType enum_type,
return store;
}
/**
* gimp_enum_store_new_with_values_valist:
* @enum_type: the #GType of an enum.
* @n_values: the number of enum values to include
* @args: a va_list of enum values (exactly @n_values)
*
* See gimp_enum_store_new_with_values().
*
* Return value: a new #GimpEnumStore.
**/
GtkListStore *
gimp_enum_store_new_with_values_valist (GType enum_type,
gint n_values,
......@@ -213,6 +261,17 @@ gimp_enum_store_new_with_values_valist (GType enum_type,
return store;
}
/**
* gimp_enum_store_lookup_by_value:
* @model: a #GimpEnumStore
* @value: an enum values to lookup in the @model
* @iter: return location for the iter of the given @value
*
* Iterate over the @model looking for @value.
*
* Return value: %TRUE if the value has been located and @iter is
* valid, %FALSE otherwise.
**/
gboolean
gimp_enum_store_lookup_by_value (GtkTreeModel *model,
gint value,
......@@ -239,6 +298,19 @@ gimp_enum_store_lookup_by_value (GtkTreeModel *model,
return iter_valid;
}
/**
* gimp_enum_store_lookup_by_value:
* @store: a #GimpEnumStore
* @widget: the widget used to create the icon pixbufs
* @stock_prefix: a prefix to create icon stock ID from enum values
*
* Creates a stock ID for each enum value in the @store by appending
* the value's nick to the given @stock_prefix inserting a hyphen
* between them. If an icon is registered for the resulting stock ID,
* it is rendered by @widget (which should be the @combo_box using
* this @store as it's model). The rendered pixbuf is then added to
* the @store in the %GIMP_ENUM_STORE_PIXBUF column.
**/
void
gimp_enum_store_set_icons (GimpEnumStore *store,
GtkWidget *widget,
......@@ -290,19 +362,3 @@ gimp_enum_store_set_icons (GimpEnumStore *store,
g_object_unref (pixbuf);
}
}
static void
gimp_enum_store_add_value (GtkListStore *store,
GEnumValue *value)
{
GtkTreeIter iter;
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
GIMP_ENUM_STORE_VALUE, value->value,
GIMP_ENUM_STORE_LABEL, gettext (value->value_name),
GIMP_ENUM_STORE_ICON, NULL,
GIMP_ENUM_STORE_USER_DATA, NULL,
-1);
}
......@@ -71,9 +71,9 @@ GtkListStore * gimp_enum_store_new_with_values_valist (GType enum_type,
gint n_values,
va_list args);
gboolean gimp_enum_store_lookup_by_value (GtkTreeModel *model,
gint value,
GtkTreeIter *iter);
gboolean gimp_enum_store_lookup_by_value (GtkTreeModel *model,
gint value,
GtkTreeIter *iter);
void gimp_enum_store_set_icons (GimpEnumStore *store,
GtkWidget *widget,
......
......@@ -23,4 +23,20 @@ menudata_DATA = \
toolbox-menu.xml \
vectors-menu.xml
EXTRA_DIST = $(menudata_DATA)
EXTRA_DIST = \
$(menudata_DATA) \
gtkuimanager.dtd
validate: $(menudata_DATA)
@( xmllint=`which xmllint`; \
if test x$$xmllint != x && test -x $$xmllint; then \
for menu in $(menudata_DATA); do \
$$xmllint --noout --valid $$menu || \
( echo "* $$menu INVALID *"; exit 1; ) ; \
done; \
else \
echo "Can't find xmllint to validate the menu files; proceed with fingers crossed..."; \
fi )
dist-hook: validate
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<!-- DTD for GtkUIManager files, copied from the documentation -->
<!ELEMENT ui (menubar|toolbar|popup|accelerator)* >
<!ELEMENT menubar (menuitem|separator|placeholder|menu)* >
<!ELEMENT menu (menuitem|separator|placeholder|menu)* >
<!ELEMENT popup (menuitem|separator|placeholder|menu)* >
<!ELEMENT toolbar (toolitem|separator|placeholder)* >
<!ELEMENT placeholder (menuitem|toolitem|separator|placeholder|menu)* >
<!ELEMENT menuitem EMPTY >
<!ELEMENT toolitem EMPTY >
<!ELEMENT separator EMPTY >
<!ELEMENT accelerator EMPTY >
<!ATTLIST menubar name CDATA #IMPLIED >
<!ATTLIST toolbar name CDATA #IMPLIED >
<!ATTLIST popup name CDATA #IMPLIED >
<!ATTLIST placeholder name CDATA #IMPLIED >
<!ATTLIST menu name CDATA #IMPLIED
action CDATA #REQUIRED
position (top|bot) #IMPLIED >
<!ATTLIST menuitem name CDATA #IMPLIED
action CDATA #REQUIRED
position (top|bot) #IMPLIED >
<!ATTLIST toolitem name CDATA #IMPLIED
action CDATA #REQUIRED
position (top|bot) #IMPLIED >
<!ATTLIST accelerator name CDATA #IMPLIED
action CDATA #REQUIRED >
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<popup>
......
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
<ui>
<menubar>
......@@ -15,7 +16,7 @@
</menu>
<separator />
<menuitem action="dialogs-preferences" />
<menu action="dialogs-menu" />
<menu action="dialogs-menu">
<menu action="dialogs-new-dock-menu">
<menuitem action="dialogs-new-dock-lcp" />
<menuitem action="dialogs-new-dock-data" />
......