Rewrote MooUIXML; works more or less
parent
89598f1929
commit
c2e08e6ece
61
moo.kdevelop
61
moo.kdevelop
|
@ -24,7 +24,7 @@
|
|||
</ignoreparts>
|
||||
<projectdirectory>.</projectdirectory>
|
||||
<absoluteprojectpath>false</absoluteprojectpath>
|
||||
<description></description>
|
||||
<description/>
|
||||
<secondaryLanguages>
|
||||
<language>C</language>
|
||||
</secondaryLanguages>
|
||||
|
@ -33,20 +33,20 @@
|
|||
<kdevautoproject>
|
||||
<general>
|
||||
<activetarget>moo/libmoo.la</activetarget>
|
||||
<useconfiguration>debug</useconfiguration>
|
||||
<useconfiguration>gtk-cvs</useconfiguration>
|
||||
</general>
|
||||
<run>
|
||||
<mainprogram>tests/editor</mainprogram>
|
||||
<mainprogram>tests/medit</mainprogram>
|
||||
<directoryradio>executable</directoryradio>
|
||||
<customdirectory>/</customdirectory>
|
||||
<programargs></programargs>
|
||||
<programargs/>
|
||||
<terminal>false</terminal>
|
||||
<autocompile>false</autocompile>
|
||||
<envvars/>
|
||||
</run>
|
||||
<configurations>
|
||||
<debug>
|
||||
<configargs>--enable-debug=full --enable-all-gcc-warnings=fatal --enable-developer-mode --disable-moo-module --without-python --without-mooterm --without-mooui</configargs>
|
||||
<configargs>--enable-debug=full --enable-all-gcc-warnings=fatal --enable-developer-mode --disable-moo-module --without-python --without-mooterm --without-mooapp</configargs>
|
||||
<builddir>build/debug</builddir>
|
||||
<ccompiler>kdevgccoptions</ccompiler>
|
||||
<cxxcompiler>kdevgppoptions</cxxcompiler>
|
||||
|
@ -54,14 +54,31 @@
|
|||
<cflags>-O0 -g3 -pg</cflags>
|
||||
<cxxflags>-O0 -g3 -pg</cxxflags>
|
||||
<envvars/>
|
||||
<topsourcedir></topsourcedir>
|
||||
<cppflags></cppflags>
|
||||
<ldflags></ldflags>
|
||||
<ccompilerbinary></ccompilerbinary>
|
||||
<cxxcompilerbinary></cxxcompilerbinary>
|
||||
<f77compilerbinary></f77compilerbinary>
|
||||
<f77flags></f77flags>
|
||||
<topsourcedir/>
|
||||
<cppflags/>
|
||||
<ldflags/>
|
||||
<ccompilerbinary/>
|
||||
<cxxcompilerbinary/>
|
||||
<f77compilerbinary/>
|
||||
<f77flags/>
|
||||
</debug>
|
||||
<gtk-cvs>
|
||||
<configargs>--enable-debug=full --enable-all-gcc-warnings=fatal --enable-developer-mode --disable-moo-module --without-python --without-mooterm --without-mooapp</configargs>
|
||||
<builddir>build/gtk-cvs</builddir>
|
||||
<ccompiler>kdevgccoptions</ccompiler>
|
||||
<cxxcompiler>kdevgppoptions</cxxcompiler>
|
||||
<f77compiler>kdevg77options</f77compiler>
|
||||
<cflags>-O0 -g3 -pg</cflags>
|
||||
<cxxflags>-O0 -g3 -pg</cxxflags>
|
||||
<envvars/>
|
||||
<topsourcedir/>
|
||||
<cppflags/>
|
||||
<ldflags/>
|
||||
<ccompilerbinary/>
|
||||
<cxxcompilerbinary/>
|
||||
<f77compilerbinary/>
|
||||
<f77flags/>
|
||||
</gtk-cvs>
|
||||
<optimized>
|
||||
<configargs>--enable-all-gcc-warnings=fatal --enable-developer-mode --without-mooapp --without-mooterm --without-python</configargs>
|
||||
<builddir>build/optimized</builddir>
|
||||
|
@ -175,7 +192,7 @@
|
|||
<abortonerror>true</abortonerror>
|
||||
<numberofjobs>1</numberofjobs>
|
||||
<dontact>false</dontact>
|
||||
<makebin></makebin>
|
||||
<makebin/>
|
||||
<prio>0</prio>
|
||||
</make>
|
||||
</kdevautoproject>
|
||||
|
@ -183,10 +200,10 @@
|
|||
<general>
|
||||
<dbgshell>libtool</dbgshell>
|
||||
<programargs>--g-fatal-warnings</programargs>
|
||||
<gdbpath></gdbpath>
|
||||
<configGdbScript></configGdbScript>
|
||||
<runShellScript></runShellScript>
|
||||
<runGdbScript></runGdbScript>
|
||||
<gdbpath/>
|
||||
<configGdbScript/>
|
||||
<runShellScript/>
|
||||
<runGdbScript/>
|
||||
<breakonloadinglibs>true</breakonloadinglibs>
|
||||
<separatetty>false</separatetty>
|
||||
<floatingtoolbar>true</floatingtoolbar>
|
||||
|
@ -251,16 +268,16 @@
|
|||
</kdevdoctreeview>
|
||||
<kdevfilecreate>
|
||||
<filetypes>
|
||||
<type icon="source" ext="g" create="template" name="GAP source" >
|
||||
<type icon="source" ext="g" name="GAP source" create="template" >
|
||||
<descr>A new empty GAP source file</descr>
|
||||
</type>
|
||||
<type icon="source_cpp" ext="cpp" create="template" name="C++ Source" >
|
||||
<type icon="source_cpp" ext="cpp" name="C++ Source" create="template" >
|
||||
<descr>A new empty C++ file.</descr>
|
||||
</type>
|
||||
<type icon="source_h" ext="h" create="template" name="C/C++ Header" >
|
||||
<type icon="source_h" ext="h" name="C/C++ Header" create="template" >
|
||||
<descr>A new empty header file for C/C++.</descr>
|
||||
</type>
|
||||
<type icon="source_c" ext="c" create="template" name="C Source" >
|
||||
<type icon="source_c" ext="c" name="C Source" create="template" >
|
||||
<descr>A new empty C file.</descr>
|
||||
</type>
|
||||
</filetypes>
|
||||
|
@ -287,7 +304,7 @@
|
|||
</codecompletion>
|
||||
<references/>
|
||||
<creategettersetter>
|
||||
<prefixGet></prefixGet>
|
||||
<prefixGet/>
|
||||
<prefixSet>set</prefixSet>
|
||||
<prefixVariable>m_,_</prefixVariable>
|
||||
<parameterName>theValue</parameterName>
|
||||
|
|
|
@ -604,7 +604,10 @@ static void open_recent (MooEditor *editor,
|
|||
static MooEditWindow *create_window (MooEditor *editor)
|
||||
{
|
||||
MooEditWindow *window = g_object_new (MOO_TYPE_EDIT_WINDOW,
|
||||
"editor", editor, NULL);
|
||||
"editor", editor,
|
||||
"ui-object-xml",
|
||||
moo_editor_get_ui_xml (editor),
|
||||
NULL);
|
||||
window_list_add (editor, window);
|
||||
_moo_window_attach_plugins (window);
|
||||
gtk_widget_show (GTK_WIDGET (window));
|
||||
|
|
|
@ -531,7 +531,6 @@ GObject *moo_edit_window_constructor (GType type,
|
|||
{
|
||||
GtkWidget *notebook, *paned;
|
||||
MooEditWindow *window;
|
||||
MooUIXML *xml;
|
||||
|
||||
GObject *object =
|
||||
G_OBJECT_CLASS(moo_edit_window_parent_class)->constructor (type, n_props, props);
|
||||
|
@ -539,9 +538,6 @@ GObject *moo_edit_window_constructor (GType type,
|
|||
window = MOO_EDIT_WINDOW (object);
|
||||
g_return_val_if_fail (window->priv->editor != NULL, object);
|
||||
|
||||
xml = moo_editor_get_ui_xml (window->priv->editor);
|
||||
moo_ui_object_set_ui_xml (MOO_UI_OBJECT (window), xml);
|
||||
|
||||
window->priv->statusbar = GTK_STATUSBAR (MOO_WINDOW(window)->statusbar);
|
||||
gtk_widget_show (MOO_WINDOW(window)->statusbar);
|
||||
window->priv->statusbar_context_id =
|
||||
|
|
|
@ -57,10 +57,8 @@ static void moo_action_set_sensitive_real (MooAction *action,
|
|||
static void moo_action_set_visible_real (MooAction *action,
|
||||
gboolean visible);
|
||||
|
||||
static GtkWidget *moo_action_create_menu_item_real (MooAction *action,
|
||||
GtkMenuShell *menushell,
|
||||
int position);
|
||||
static gboolean moo_action_create_tool_item_real (MooAction *action,
|
||||
static GtkWidget *moo_action_create_menu_item_real (MooAction *action);
|
||||
static GtkWidget *moo_action_create_tool_item_real (MooAction *action,
|
||||
GtkToolbar *toolbar,
|
||||
int position);
|
||||
|
||||
|
@ -687,9 +685,7 @@ gboolean moo_action_get_no_accel (MooAction *action)
|
|||
}
|
||||
|
||||
|
||||
GtkWidget *moo_action_create_menu_item (MooAction *action,
|
||||
GtkMenuShell *menushell,
|
||||
int position)
|
||||
GtkWidget *moo_action_create_menu_item (MooAction *action)
|
||||
{
|
||||
MooActionClass *klass;
|
||||
|
||||
|
@ -698,11 +694,11 @@ GtkWidget *moo_action_create_menu_item (MooAction *action,
|
|||
|
||||
klass = MOO_ACTION_GET_CLASS (action);
|
||||
g_return_val_if_fail (klass != NULL && klass->create_menu_item != NULL, NULL);
|
||||
return klass->create_menu_item (action, menushell, position);
|
||||
return klass->create_menu_item (action);
|
||||
}
|
||||
|
||||
|
||||
gboolean moo_action_create_tool_item (MooAction *action,
|
||||
GtkWidget *moo_action_create_tool_item (MooAction *action,
|
||||
GtkToolbar *toolbar,
|
||||
int position)
|
||||
{
|
||||
|
@ -762,9 +758,7 @@ const char *moo_action_make_accel_path (const char *group_id,
|
|||
}
|
||||
|
||||
|
||||
static GtkWidget *moo_action_create_menu_item_real (MooAction *action,
|
||||
GtkMenuShell *menu_shell,
|
||||
int position)
|
||||
static GtkWidget *moo_action_create_menu_item_real (MooAction *action)
|
||||
{
|
||||
GtkWidget *item = NULL;
|
||||
|
||||
|
@ -796,22 +790,17 @@ static GtkWidget *moo_action_create_menu_item_real (MooAction *action,
|
|||
|
||||
moo_action_add_proxy (action, item);
|
||||
|
||||
if (position >= 0)
|
||||
gtk_menu_shell_insert (menu_shell, item, position);
|
||||
else
|
||||
gtk_menu_shell_append (menu_shell, item);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
static gboolean moo_action_create_tool_item_real (MooAction *action,
|
||||
GtkToolbar *toolbar,
|
||||
int position)
|
||||
static GtkWidget*
|
||||
moo_action_create_tool_item_real (MooAction *action,
|
||||
GtkToolbar *toolbar,
|
||||
int position)
|
||||
{
|
||||
#if GTK_MINOR_VERSION >= 4
|
||||
GtkToolItem *item = NULL;
|
||||
GtkTooltips *tooltips = NULL;
|
||||
|
||||
if (action->stock_id)
|
||||
{
|
||||
|
@ -832,13 +821,17 @@ static gboolean moo_action_create_tool_item_real (MooAction *action,
|
|||
gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (item), TRUE);
|
||||
}
|
||||
|
||||
if (action->group)
|
||||
tooltips = moo_action_group_get_tooltips (MOO_ACTION_GROUP (action->group));
|
||||
if (tooltips && action->tooltip)
|
||||
if (action->tooltip)
|
||||
{
|
||||
GtkTooltips *tooltips = gtk_tooltips_new ();
|
||||
gtk_object_sink (g_object_ref (tooltips));
|
||||
gtk_tool_item_set_tooltip (item,
|
||||
tooltips,
|
||||
action->tooltip,
|
||||
action->tooltip);
|
||||
g_object_set_data_full (G_OBJECT (item), "moo-tooltips",
|
||||
tooltips, g_object_unref);
|
||||
}
|
||||
|
||||
gtk_toolbar_insert (toolbar, item, position);
|
||||
gtk_container_child_set (GTK_CONTAINER (toolbar), GTK_WIDGET (item),
|
||||
|
@ -883,7 +876,7 @@ static gboolean moo_action_create_tool_item_real (MooAction *action,
|
|||
|
||||
moo_action_add_proxy (action, GTK_WIDGET (item));
|
||||
|
||||
return TRUE;
|
||||
return GTK_WIDGET (item);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -68,10 +68,8 @@ struct _MooActionClass
|
|||
GObjectClass parent_class;
|
||||
|
||||
/* methods */
|
||||
GtkWidget *(*create_menu_item) (MooAction *action,
|
||||
GtkMenuShell *menushell,
|
||||
int position);
|
||||
gboolean (*create_tool_item) (MooAction *action,
|
||||
GtkWidget *(*create_menu_item) (MooAction *action);
|
||||
GtkWidget *(*create_tool_item) (MooAction *action,
|
||||
GtkToolbar *toolbar,
|
||||
int position);
|
||||
|
||||
|
@ -121,10 +119,8 @@ const char *moo_action_get_default_accel (MooAction *action);
|
|||
char *moo_action_get_accel_label (MooAction *action);
|
||||
char *moo_action_get_default_accel_label (MooAction *action);
|
||||
|
||||
GtkWidget *moo_action_create_menu_item (MooAction *action,
|
||||
GtkMenuShell *menushell,
|
||||
int position);
|
||||
gboolean moo_action_create_tool_item (MooAction *action,
|
||||
GtkWidget *moo_action_create_menu_item (MooAction *action);
|
||||
GtkWidget *moo_action_create_tool_item (MooAction *action,
|
||||
GtkToolbar *toolbar,
|
||||
int position);
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
struct _MooActionGroupPrivate {
|
||||
GHashTable *actions; /* char* -> MooAction* */
|
||||
GtkAccelGroup *accel_group;
|
||||
GtkTooltips *tooltips;
|
||||
char *name;
|
||||
};
|
||||
|
||||
|
@ -60,7 +59,6 @@ static void moo_action_group_init (MooActionGroup *group)
|
|||
(GDestroyNotify) g_free,
|
||||
(GDestroyNotify) g_object_unref);
|
||||
group->priv->accel_group = NULL;
|
||||
group->priv->tooltips = NULL;
|
||||
group->priv->name = NULL;
|
||||
}
|
||||
|
||||
|
@ -176,31 +174,6 @@ void moo_action_group_set_accel_group (MooActionGroup *group,
|
|||
}
|
||||
|
||||
|
||||
void moo_action_group_set_tooltips (MooActionGroup *group,
|
||||
GtkTooltips *tips)
|
||||
{
|
||||
g_return_if_fail (MOO_IS_ACTION_GROUP (group) && group->priv != NULL);
|
||||
g_return_if_fail (GTK_IS_TOOLTIPS (tips));
|
||||
|
||||
if (group->priv->tooltips == tips)
|
||||
return;
|
||||
if (group->priv->tooltips)
|
||||
g_object_unref (G_OBJECT (group->priv->tooltips));
|
||||
group->priv->tooltips = tips;
|
||||
if (group->priv->tooltips)
|
||||
g_object_ref (G_OBJECT (group->priv->tooltips));
|
||||
}
|
||||
|
||||
|
||||
GtkTooltips *moo_action_group_get_tooltips (MooActionGroup *group)
|
||||
{
|
||||
g_return_val_if_fail (MOO_IS_ACTION_GROUP (group) && group->priv != NULL, NULL);
|
||||
if (!group->priv->tooltips)
|
||||
group->priv->tooltips = gtk_tooltips_new ();
|
||||
return group->priv->tooltips;
|
||||
}
|
||||
|
||||
|
||||
typedef struct {
|
||||
MooActionGroupForeachFunc func;
|
||||
gpointer data;
|
||||
|
|
|
@ -59,11 +59,6 @@ void moo_action_group_set_name (MooActionGroup *group,
|
|||
void moo_action_group_set_accel_group (MooActionGroup *group,
|
||||
GtkAccelGroup *accel_group);
|
||||
|
||||
void moo_action_group_set_tooltips (MooActionGroup *group,
|
||||
GtkTooltips *tips);
|
||||
GtkTooltips *moo_action_group_get_tooltips (MooActionGroup *group);
|
||||
|
||||
|
||||
typedef gboolean (*MooActionGroupForeachFunc) (MooActionGroup *group,
|
||||
MooAction *action,
|
||||
gpointer data);
|
||||
|
|
|
@ -35,10 +35,8 @@ static void moo_menu_action_get_property (GObject *object,
|
|||
static void moo_menu_action_add_proxy (MooAction *action,
|
||||
GtkWidget *proxy);
|
||||
|
||||
static GtkWidget *moo_menu_action_create_menu_item (MooAction *action,
|
||||
GtkMenuShell *menushell,
|
||||
int position);
|
||||
static gboolean moo_menu_action_create_tool_item (MooAction *action,
|
||||
static GtkWidget *moo_menu_action_create_menu_item (MooAction *action);
|
||||
static GtkWidget *moo_menu_action_create_tool_item (MooAction *action,
|
||||
GtkToolbar *toolbar,
|
||||
int position);
|
||||
|
||||
|
@ -145,9 +143,7 @@ static void moo_menu_action_add_proxy (MooAction *action,
|
|||
}
|
||||
|
||||
|
||||
static GtkWidget *moo_menu_action_create_menu_item (MooAction *action,
|
||||
GtkMenuShell *menushell,
|
||||
int position)
|
||||
static GtkWidget *moo_menu_action_create_menu_item (MooAction *action)
|
||||
{
|
||||
MooMenuAction *menu_action;
|
||||
GtkMenuItem *item;
|
||||
|
@ -159,18 +155,17 @@ static GtkWidget *moo_menu_action_create_menu_item (MooAction *action,
|
|||
action);
|
||||
g_return_val_if_fail (item != NULL, NULL);
|
||||
|
||||
gtk_menu_shell_insert (menushell, GTK_WIDGET (item), position);
|
||||
moo_menu_action_add_proxy (action, GTK_WIDGET (item));
|
||||
return GTK_WIDGET (item);
|
||||
}
|
||||
|
||||
|
||||
static gboolean moo_menu_action_create_tool_item (G_GNUC_UNUSED MooAction *action,
|
||||
static GtkWidget *moo_menu_action_create_tool_item (G_GNUC_UNUSED MooAction *action,
|
||||
G_GNUC_UNUSED GtkToolbar *toolbar,
|
||||
G_GNUC_UNUSED int position)
|
||||
{
|
||||
g_warning ("%s: should not be called", G_STRLOC);
|
||||
return FALSE;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -32,10 +32,8 @@ static void moo_toggle_action_get_property (GObject *object,
|
|||
GValue *value,
|
||||
GParamSpec *pspec);
|
||||
|
||||
static GtkWidget *moo_toggle_action_create_menu_item (MooAction *action,
|
||||
GtkMenuShell *menushell,
|
||||
int position);
|
||||
static gboolean moo_toggle_action_create_tool_item (MooAction *action,
|
||||
static GtkWidget *moo_toggle_action_create_menu_item (MooAction *action);
|
||||
static GtkWidget *moo_toggle_action_create_tool_item (MooAction *action,
|
||||
GtkToolbar *toolbar,
|
||||
int position);
|
||||
|
||||
|
@ -186,9 +184,8 @@ void moo_toggle_action_set_active (MooToggleAction *action,
|
|||
}
|
||||
|
||||
|
||||
static GtkWidget *moo_toggle_action_create_menu_item (MooAction *action,
|
||||
GtkMenuShell *menu_shell,
|
||||
int position)
|
||||
static GtkWidget*
|
||||
moo_toggle_action_create_menu_item (MooAction *action)
|
||||
{
|
||||
GtkWidget *item = NULL;
|
||||
|
||||
|
@ -209,22 +206,17 @@ static GtkWidget *moo_toggle_action_create_menu_item (MooAction *action,
|
|||
|
||||
moo_toggle_action_add_proxy (action, item);
|
||||
|
||||
if (position >= 0)
|
||||
gtk_menu_shell_insert (menu_shell, item, position);
|
||||
else
|
||||
gtk_menu_shell_append (menu_shell, item);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
static gboolean moo_toggle_action_create_tool_item (MooAction *action,
|
||||
GtkToolbar *toolbar,
|
||||
int position)
|
||||
static GtkWidget*
|
||||
moo_toggle_action_create_tool_item (MooAction *action,
|
||||
GtkToolbar *toolbar,
|
||||
int position)
|
||||
{
|
||||
#if GTK_CHECK_VERSION(2,4,0)
|
||||
GtkToolItem *item = NULL;
|
||||
GtkTooltips *tooltips = NULL;
|
||||
|
||||
if (action->stock_id)
|
||||
{
|
||||
|
@ -246,13 +238,16 @@ static gboolean moo_toggle_action_create_tool_item (MooAction *action,
|
|||
gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (item), TRUE);
|
||||
}
|
||||
|
||||
if (action->group)
|
||||
tooltips = moo_action_group_get_tooltips (MOO_ACTION_GROUP (action->group));
|
||||
if (tooltips && action->tooltip)
|
||||
if (action->tooltip)
|
||||
{
|
||||
GtkTooltips *tooltips = gtk_tooltips_new ();
|
||||
gtk_tool_item_set_tooltip (item,
|
||||
tooltips,
|
||||
action->tooltip,
|
||||
action->tooltip);
|
||||
g_object_set_data_full (G_OBJECT (item), "moo-tooltips",
|
||||
tooltips, g_object_unref);
|
||||
}
|
||||
|
||||
gtk_toolbar_insert (toolbar, item, position);
|
||||
gtk_container_child_set (GTK_CONTAINER (toolbar), GTK_WIDGET (item),
|
||||
|
@ -287,7 +282,7 @@ static gboolean moo_toggle_action_create_tool_item (MooAction *action,
|
|||
|
||||
moo_toggle_action_add_proxy (action, GTK_WIDGET (item));
|
||||
|
||||
return TRUE;
|
||||
return GTK_WIDGET (item);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -32,10 +32,6 @@ static void moo_ui_object_set_id (MooUIObject *object,
|
|||
const char *id);
|
||||
static void moo_ui_object_add_class_actions (MooUIObject *object);
|
||||
|
||||
static void xml_changed (MooUIObject *object);
|
||||
static void disconnect_xml_changed (MooUIXML *xml,
|
||||
gpointer object);
|
||||
|
||||
|
||||
GType moo_ui_object_get_type (void)
|
||||
{
|
||||
|
@ -170,13 +166,9 @@ MooUIXML *_moo_ui_object_get_ui_xml_impl (MooUIObject *object)
|
|||
if (!xml)
|
||||
{
|
||||
xml = moo_ui_xml_new ();
|
||||
g_signal_connect_swapped (xml, "changed",
|
||||
G_CALLBACK (xml_changed), object);
|
||||
g_object_weak_ref (G_OBJECT (object),
|
||||
(GWeakNotify) disconnect_xml_changed, xml);
|
||||
g_object_set_qdata (G_OBJECT (object),
|
||||
MOO_UI_OBJECT_UI_XML_QUARK,
|
||||
xml);
|
||||
g_object_set_qdata_full (G_OBJECT (object),
|
||||
MOO_UI_OBJECT_UI_XML_QUARK,
|
||||
xml, g_object_unref);
|
||||
g_object_notify (G_OBJECT (object), "ui-object-xml");
|
||||
}
|
||||
|
||||
|
@ -193,53 +185,24 @@ void _moo_ui_object_set_ui_xml_impl (MooUIObject *object,
|
|||
g_return_if_fail (!xml || MOO_IS_UI_XML (xml));
|
||||
|
||||
old = g_object_get_qdata (G_OBJECT (object), MOO_UI_OBJECT_UI_XML_QUARK);
|
||||
if (old == xml) return;
|
||||
|
||||
if (old)
|
||||
{
|
||||
g_object_weak_unref (G_OBJECT (object),
|
||||
(GWeakNotify) disconnect_xml_changed, old);
|
||||
disconnect_xml_changed (old, object);
|
||||
}
|
||||
if (old == xml)
|
||||
return;
|
||||
|
||||
if (xml)
|
||||
{
|
||||
g_signal_connect_swapped (xml, "changed",
|
||||
G_CALLBACK (xml_changed), object);
|
||||
g_object_weak_ref (G_OBJECT (object),
|
||||
(GWeakNotify) disconnect_xml_changed, xml);
|
||||
g_object_set_qdata (G_OBJECT (object),
|
||||
MOO_UI_OBJECT_UI_XML_QUARK,
|
||||
g_object_ref (xml));
|
||||
}
|
||||
g_object_set_qdata_full (G_OBJECT (object),
|
||||
MOO_UI_OBJECT_UI_XML_QUARK,
|
||||
g_object_ref (xml),
|
||||
g_object_unref);
|
||||
else
|
||||
{
|
||||
g_object_set_qdata (G_OBJECT (object),
|
||||
MOO_UI_OBJECT_UI_XML_QUARK,
|
||||
NULL);
|
||||
}
|
||||
|
||||
g_object_notify (G_OBJECT (object), "ui-object-xml");
|
||||
}
|
||||
|
||||
|
||||
static void xml_changed (MooUIObject *object)
|
||||
{
|
||||
g_object_notify (G_OBJECT (object), "ui-object-xml");
|
||||
}
|
||||
|
||||
|
||||
static void disconnect_xml_changed (MooUIXML *xml,
|
||||
gpointer object)
|
||||
{
|
||||
guint num;
|
||||
g_assert (MOO_IS_UI_XML (xml));
|
||||
num = g_signal_handlers_disconnect_by_func (xml, (gpointer) xml_changed, object);
|
||||
g_assert (num == 1);
|
||||
g_object_unref (xml);
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
typedef struct {
|
||||
|
|
2024
moo/mooui/moouixml.c
2024
moo/mooui/moouixml.c
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* mooui/moouixml.h
|
||||
* moouixml.h
|
||||
*
|
||||
* Copyright (C) 2004-2005 by Yevgen Muntyan <muntyan@math.tamu.edu>
|
||||
*
|
||||
|
@ -11,8 +11,8 @@
|
|||
* See COPYING file that comes with this distribution.
|
||||
*/
|
||||
|
||||
#ifndef MOOUI_MOOUIXML_H
|
||||
#define MOOUI_MOOUIXML_H
|
||||
#ifndef __MOO_UI_XML_H__
|
||||
#define __MOO_UI_XML_H__
|
||||
|
||||
#include "mooutils/moomarkup.h"
|
||||
#include "mooui/mooactiongroup.h"
|
||||
|
@ -21,6 +21,69 @@
|
|||
G_BEGIN_DECLS
|
||||
|
||||
|
||||
typedef enum {
|
||||
MOO_UI_NODE_CONTAINER = 1,
|
||||
MOO_UI_NODE_WIDGET,
|
||||
MOO_UI_NODE_ITEM,
|
||||
MOO_UI_NODE_SEPARATOR,
|
||||
MOO_UI_NODE_PLACEHOLDER
|
||||
} MooUINodeType;
|
||||
|
||||
typedef struct _MooUINode MooUINode;
|
||||
typedef struct _MooUIWidgetNode MooUIWidgetNode;
|
||||
typedef struct _MooUIItemNode MooUIItemNode;
|
||||
typedef struct _MooUISeparatorNode MooUISeparatorNode;
|
||||
typedef struct _MooUIPlaceholderNode MooUIPlaceholderNode;
|
||||
|
||||
|
||||
struct _MooUINode {
|
||||
MooUINodeType type;
|
||||
char *name;
|
||||
MooUINode *parent;
|
||||
GSList *children;
|
||||
};
|
||||
|
||||
struct _MooUIWidgetNode {
|
||||
MooUINodeType type;
|
||||
char *name;
|
||||
MooUINode *parent;
|
||||
GSList *children;
|
||||
};
|
||||
|
||||
struct _MooUISeparatorNode {
|
||||
MooUINodeType type;
|
||||
char *name;
|
||||
MooUINode *parent;
|
||||
GSList *children;
|
||||
};
|
||||
|
||||
struct _MooUIPlaceholderNode {
|
||||
MooUINodeType type;
|
||||
char *name;
|
||||
MooUINode *parent;
|
||||
GSList *children;
|
||||
};
|
||||
|
||||
struct _MooUIItemNode {
|
||||
MooUINodeType type;
|
||||
char *name;
|
||||
MooUINode *parent;
|
||||
GSList *children;
|
||||
|
||||
char *action;
|
||||
|
||||
char *stock_id;
|
||||
char *label;
|
||||
char *icon_stock_id;
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
MOO_UI_MENUBAR = 1,
|
||||
MOO_UI_MENU,
|
||||
MOO_UI_TOOLBAR
|
||||
} MooUIWidgetType;
|
||||
|
||||
|
||||
#define MOO_TYPE_UI_XML (moo_ui_xml_get_type ())
|
||||
#define MOO_UI_XML(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), MOO_TYPE_UI_XML, MooUIXML))
|
||||
#define MOO_UI_XML_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MOO_TYPE_UI_XML, MooUIXMLClass))
|
||||
|
@ -36,53 +99,47 @@ typedef struct _MooUIXMLClass MooUIXMLClass;
|
|||
struct _MooUIXML
|
||||
{
|
||||
GObject object;
|
||||
MooMarkupDoc *doc;
|
||||
MooUIXMLPrivate *priv;
|
||||
};
|
||||
|
||||
struct _MooUIXMLClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
|
||||
void (*changed) (MooUIXML *xml);
|
||||
};
|
||||
|
||||
|
||||
GType moo_ui_xml_get_type (void) G_GNUC_CONST;
|
||||
GType moo_ui_xml_get_type (void) G_GNUC_CONST;
|
||||
|
||||
MooUIXML *moo_ui_xml_new (void);
|
||||
MooUIXML *moo_ui_xml_new_from_string (const char *xml,
|
||||
GError **error);
|
||||
MooUIXML *moo_ui_xml_new_from_file (const char *file,
|
||||
GError **error);
|
||||
MooUIXML *moo_ui_xml_new (void);
|
||||
|
||||
gboolean moo_ui_xml_add_ui_from_string (MooUIXML *xml,
|
||||
const char *ui,
|
||||
int len,
|
||||
GError **error);
|
||||
gboolean moo_ui_xml_add_ui_from_file (MooUIXML *xml,
|
||||
const char *file,
|
||||
GError **error);
|
||||
void moo_ui_xml_add_ui_from_string (MooUIXML *xml,
|
||||
const char *buffer,
|
||||
gssize length);
|
||||
|
||||
char *moo_ui_xml_get_ui (MooUIXML *xml);
|
||||
const MooMarkupDoc *moo_ui_xml_get_markup (MooUIXML *xml);
|
||||
MooUINode *moo_ui_xml_get_node (MooUIXML *xml,
|
||||
const char *path);
|
||||
|
||||
gboolean moo_ui_xml_has_widget (MooUIXML *xml,
|
||||
const char *path);
|
||||
GtkWidget *moo_ui_xml_create_widget (MooUIXML *xml,
|
||||
MooUIWidgetType type,
|
||||
const char *path,
|
||||
MooActionGroup *actions,
|
||||
GtkAccelGroup *accel_group);
|
||||
|
||||
GtkWidget *moo_ui_xml_create_widget (MooUIXML *xml,
|
||||
const char *path,
|
||||
MooActionGroup *actions,
|
||||
GtkAccelGroup *accel_group,
|
||||
GtkTooltips *tooltips);
|
||||
GtkWidget *moo_ui_xml_update_widget (MooUIXML *xml,
|
||||
GtkWidget *widget,
|
||||
const char *path,
|
||||
MooActionGroup *actions,
|
||||
GtkAccelGroup *accel_group,
|
||||
GtkTooltips *tooltips);
|
||||
guint moo_ui_xml_new_merge_id (MooUIXML *xml);
|
||||
MooUINode *moo_ui_xml_add_item (MooUIXML *xml,
|
||||
guint merge_id,
|
||||
const char *parent_path,
|
||||
const char *name,
|
||||
const char *action,
|
||||
int position);
|
||||
void moo_ui_xml_remove_ui (MooUIXML *xml,
|
||||
guint merge_id);
|
||||
|
||||
void moo_ui_xml_remove_node (MooUIXML *xml,
|
||||
MooUINode *node);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* MOOUI_MOOUIXML_H */
|
||||
#endif /* __MOO_UI_XML_H__ */
|
||||
|
||||
|
|
|
@ -53,37 +53,41 @@ struct _MooWindowPrivate {
|
|||
guint save_size_id;
|
||||
char *toolbar_ui_name;
|
||||
char *menubar_ui_name;
|
||||
GtkWidget *menubar_holder;
|
||||
GtkWidget *toolbar_holder;
|
||||
};
|
||||
|
||||
|
||||
static void moo_window_class_init (MooWindowClass *klass);
|
||||
GObject *moo_window_constructor (GType type,
|
||||
guint n_props,
|
||||
GObjectConstructParam *props);
|
||||
static void moo_window_class_init (MooWindowClass *klass);
|
||||
GObject *moo_window_constructor (GType type,
|
||||
guint n_props,
|
||||
GObjectConstructParam *props);
|
||||
|
||||
static void moo_window_init (MooWindow *window);
|
||||
static void moo_window_finalize (GObject *object);
|
||||
static void moo_window_init (MooWindow *window);
|
||||
static void moo_window_finalize (GObject *object);
|
||||
|
||||
static void moo_window_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec);
|
||||
static void moo_window_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec);
|
||||
static void moo_window_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec);
|
||||
static void moo_window_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec);
|
||||
|
||||
static gboolean moo_window_delete_event (GtkWidget *widget,
|
||||
GdkEventAny *event);
|
||||
static gboolean moo_window_delete_event (GtkWidget *widget,
|
||||
GdkEventAny *event);
|
||||
|
||||
static gboolean moo_window_save_size (MooWindow *window);
|
||||
static gboolean moo_window_save_size (MooWindow *window);
|
||||
|
||||
static void moo_window_shortcuts_prefs_dialog (MooWindow *window);
|
||||
static gboolean moo_window_create_ui (MooWindow *window);
|
||||
|
||||
static void moo_window_show_menubar_toggled (MooWindow *window,
|
||||
gboolean show);
|
||||
static void moo_window_show_toolbar_toggled (MooWindow *window,
|
||||
gboolean show);
|
||||
static void moo_window_shortcuts_prefs_dialog (MooWindow *window);
|
||||
|
||||
static void moo_window_show_menubar_toggled (MooWindow *window,
|
||||
gboolean show);
|
||||
static void moo_window_show_toolbar_toggled (MooWindow *window,
|
||||
gboolean show);
|
||||
|
||||
static GtkMenuItem *moo_window_create_toolbar_style_menu (MooWindow *window);
|
||||
|
||||
|
@ -283,17 +287,21 @@ GObject *moo_window_constructor (GType type,
|
|||
gtk_window_add_accel_group (GTK_WINDOW (window),
|
||||
window->accel_group);
|
||||
|
||||
window->tooltips = gtk_tooltips_new ();
|
||||
g_object_ref (window->tooltips);
|
||||
gtk_object_sink (GTK_OBJECT (window->tooltips));
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_widget_show (vbox);
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
window->menubar = gtk_menu_bar_new ();
|
||||
gtk_box_pack_start (GTK_BOX (vbox), window->menubar, FALSE, FALSE, 0);
|
||||
window->toolbar = gtk_toolbar_new ();
|
||||
gtk_box_pack_start (GTK_BOX (vbox), window->toolbar, FALSE, FALSE, 0);
|
||||
|
||||
window->priv->menubar_holder = gtk_vbox_new (FALSE, 0);
|
||||
gtk_widget_show (window->priv->menubar_holder);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), window->priv->menubar_holder, FALSE, FALSE, 0);
|
||||
|
||||
window->priv->toolbar_holder = gtk_vbox_new (FALSE, 0);
|
||||
gtk_widget_show (window->priv->toolbar_holder);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), window->priv->toolbar_holder, FALSE, FALSE, 0);
|
||||
|
||||
window->menubar = NULL;
|
||||
window->toolbar = NULL;
|
||||
|
||||
window->vbox = gtk_vbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), window->vbox, TRUE, TRUE, 0);
|
||||
window->statusbar = gtk_statusbar_new ();
|
||||
|
@ -302,16 +310,15 @@ GObject *moo_window_constructor (GType type,
|
|||
|
||||
actions = moo_ui_object_get_actions (MOO_UI_OBJECT (window));
|
||||
moo_action_group_set_accel_group (actions, window->accel_group);
|
||||
moo_action_group_set_tooltips (actions, window->tooltips);
|
||||
|
||||
g_signal_connect (window, "notify::toolbar-ui-name",
|
||||
G_CALLBACK (moo_window_update_ui), NULL);
|
||||
G_CALLBACK (moo_window_create_ui), NULL);
|
||||
g_signal_connect (window, "notify::menubar-ui-name",
|
||||
G_CALLBACK (moo_window_update_ui), NULL);
|
||||
G_CALLBACK (moo_window_create_ui), NULL);
|
||||
g_signal_connect (window, "notify::ui-object-xml",
|
||||
G_CALLBACK (moo_window_update_ui), NULL);
|
||||
G_CALLBACK (moo_window_create_ui), NULL);
|
||||
|
||||
moo_window_update_ui (window);
|
||||
g_idle_add ((GSourceFunc) moo_window_create_ui, window);
|
||||
|
||||
if (moo_prefs_get_bool (setting (window, PREFS_REMEMBER_SIZE)))
|
||||
{
|
||||
|
@ -346,8 +353,6 @@ static void moo_window_finalize (GObject *object)
|
|||
|
||||
if (window->accel_group)
|
||||
g_object_unref (window->accel_group);
|
||||
if (window->tooltips)
|
||||
g_object_unref (window->tooltips);
|
||||
|
||||
if (window->priv->save_size_id)
|
||||
g_source_remove (window->priv->save_size_id);
|
||||
|
@ -512,41 +517,63 @@ static void moo_window_get_property (GObject *object,
|
|||
}
|
||||
|
||||
|
||||
void moo_window_update_ui (MooWindow *window)
|
||||
static gboolean
|
||||
moo_window_create_ui (MooWindow *window)
|
||||
{
|
||||
MooUIXML *xml;
|
||||
MooAction *show_toolbar, *show_menubar;
|
||||
GtkToolbarStyle style;
|
||||
|
||||
g_return_if_fail (MOO_IS_WINDOW (window));
|
||||
g_return_val_if_fail (MOO_IS_WINDOW (window), FALSE);
|
||||
|
||||
xml = moo_ui_object_get_ui_xml (MOO_UI_OBJECT (window));
|
||||
|
||||
if (window->priv->menubar_ui_name && window->priv->menubar_ui_name[0] &&
|
||||
moo_ui_xml_has_widget (xml, window->priv->menubar_ui_name))
|
||||
if (window->menubar)
|
||||
{
|
||||
moo_ui_xml_update_widget (xml, window->menubar,
|
||||
window->priv->menubar_ui_name,
|
||||
moo_ui_object_get_actions (MOO_UI_OBJECT (window)),
|
||||
window->accel_group, window->tooltips);
|
||||
gtk_widget_destroy (window->menubar);
|
||||
window->menubar = NULL;
|
||||
}
|
||||
|
||||
if (window->toolbar)
|
||||
{
|
||||
gtk_widget_destroy (window->toolbar);
|
||||
window->toolbar = NULL;
|
||||
}
|
||||
|
||||
if (window->priv->menubar_ui_name && window->priv->menubar_ui_name[0])
|
||||
{
|
||||
window->menubar =
|
||||
moo_ui_xml_create_widget (xml,
|
||||
MOO_UI_MENUBAR,
|
||||
window->priv->menubar_ui_name,
|
||||
moo_ui_object_get_actions (MOO_UI_OBJECT (window)),
|
||||
window->accel_group);
|
||||
g_return_val_if_fail (window->menubar != NULL, FALSE);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (window->priv->menubar_holder),
|
||||
window->menubar, FALSE, FALSE, 0);
|
||||
gtk_widget_show (window->menubar);
|
||||
|
||||
show_menubar =
|
||||
moo_action_group_get_action (moo_ui_object_get_actions (MOO_UI_OBJECT (window)),
|
||||
"ShowMenubar");
|
||||
moo_toggle_action_set_active (MOO_TOGGLE_ACTION (show_menubar),
|
||||
moo_prefs_get_bool (setting (window, PREFS_SHOW_MENUBAR)));
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_hide (window->menubar);
|
||||
}
|
||||
|
||||
if (window->priv->toolbar_ui_name && window->priv->toolbar_ui_name[0] &&
|
||||
moo_ui_xml_has_widget (xml, window->priv->toolbar_ui_name))
|
||||
if (window->priv->toolbar_ui_name && window->priv->toolbar_ui_name[0])
|
||||
{
|
||||
moo_ui_xml_update_widget (xml, window->toolbar,
|
||||
window->priv->toolbar_ui_name,
|
||||
moo_ui_object_get_actions (MOO_UI_OBJECT (window)),
|
||||
window->accel_group, window->tooltips);
|
||||
window->toolbar =
|
||||
moo_ui_xml_create_widget (xml,
|
||||
MOO_UI_TOOLBAR,
|
||||
window->priv->toolbar_ui_name,
|
||||
moo_ui_object_get_actions (MOO_UI_OBJECT (window)),
|
||||
window->accel_group);
|
||||
g_return_val_if_fail (window->toolbar != NULL, FALSE);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (window->priv->toolbar_holder),
|
||||
window->toolbar, FALSE, FALSE, 0);
|
||||
gtk_widget_show (window->toolbar);
|
||||
|
||||
show_toolbar =
|
||||
moo_action_group_get_action (moo_ui_object_get_actions (MOO_UI_OBJECT (window)),
|
||||
|
@ -557,10 +584,8 @@ void moo_window_update_ui (MooWindow *window)
|
|||
style = get_toolbar_style (window);
|
||||
gtk_toolbar_set_style (GTK_TOOLBAR (MOO_WINDOW(window)->toolbar), style);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_hide (window->toolbar);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -37,7 +37,6 @@ struct _MooWindow
|
|||
GtkWindow gtkwindow;
|
||||
|
||||
GtkAccelGroup *accel_group;
|
||||
GtkTooltips *tooltips;
|
||||
MooWindowPrivate *priv;
|
||||
|
||||
GtkWidget *menubar;
|
||||
|
|
|
@ -549,53 +549,6 @@ moo_markup_get_content (MooMarkupNode *node)
|
|||
}
|
||||
|
||||
|
||||
static MooMarkupElement*
|
||||
get_element_by_names (MooMarkupNode *node,
|
||||
char **path)
|
||||
{
|
||||
MooMarkupNode *child;
|
||||
|
||||
if (!path || !path[0] || !path[0][0])
|
||||
return MOO_MARKUP_ELEMENT (node);
|
||||
|
||||
for (child = node->children; child; child = child->next)
|
||||
{
|
||||
if (MOO_MARKUP_IS_ELEMENT (child))
|
||||
{
|
||||
const char *name;
|
||||
|
||||
name = moo_markup_get_prop (child, "name");
|
||||
|
||||
if (name && !strcmp (path[0], name))
|
||||
return get_element_by_names (child, ++path);
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
MooMarkupNode*
|
||||
moo_markup_get_element_by_names (MooMarkupNode *node,
|
||||
const char *path)
|
||||
{
|
||||
char **p;
|
||||
MooMarkupElement *elm;
|
||||
|
||||
g_return_val_if_fail (path != NULL, NULL);
|
||||
g_return_val_if_fail (MOO_MARKUP_IS_ELEMENT (node) ||
|
||||
MOO_MARKUP_IS_DOC (node), NULL);
|
||||
|
||||
p = g_strsplit (path, "/", 0);
|
||||
g_return_val_if_fail (p != NULL, NULL);
|
||||
|
||||
elm = get_element_by_names (node, p);
|
||||
|
||||
g_strfreev (p);
|
||||
return (MooMarkupNode*) elm;
|
||||
}
|
||||
|
||||
|
||||
static MooMarkupElement*
|
||||
get_element (MooMarkupNode *node,
|
||||
char **path)
|
||||
|
|
|
@ -146,12 +146,6 @@ void moo_markup_doc_unref (MooMarkupDoc *doc);
|
|||
MooMarkupNode *moo_markup_get_root_element (MooMarkupDoc *doc,
|
||||
const char *name);
|
||||
|
||||
/* looks for element by 'name' attribute, e.g. elm2 in
|
||||
<elm name="blah"> <elm2 name="blah2"/> ..
|
||||
corresponds to "blah/blah2" */
|
||||
MooMarkupNode *moo_markup_get_element_by_names (MooMarkupNode *node,
|
||||
const char *path);
|
||||
|
||||
MooMarkupNode *moo_markup_get_element (MooMarkupNode *node,
|
||||
const char *path);
|
||||
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
<object name="Editor">
|
||||
|
||||
<menubar name="Menubar">
|
||||
<widget name="Menubar">
|
||||
|
||||
<menu name="File" label="_File">
|
||||
<item name="File" label="_File">
|
||||
<separator/>
|
||||
<item name="NewWindow" action="NewWindow"/>
|
||||
<item name="NewTab" action="NewTab"/>
|
||||
|
@ -23,9 +23,9 @@
|
|||
<separator/>
|
||||
<item name="Quit" action="Quit"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<menu name="Edit" label="_Edit">
|
||||
<item name="Edit" label="_Edit">
|
||||
<separator/>
|
||||
<item name="Undo" action="Undo"/>
|
||||
<item name="Redo" action="Redo"/>
|
||||
|
@ -38,9 +38,9 @@
|
|||
<item name="SelectAll" action="SelectAll"/>
|
||||
<separator/>
|
||||
<item name="SendToTerminal" action="SendToTerminal"/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<menu name="Search" label="_Search">
|
||||
<item name="Search" label="_Search">
|
||||
<separator/>
|
||||
<item name="Find" action="Find"/>
|
||||
<item name="FindNext" action="FindNext"/>
|
||||
|
@ -52,9 +52,9 @@
|
|||
<item name="FindInFiles" action="FindInFiles"/>
|
||||
<item name="FindFile" action="FindFile"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<menu name="View" label="_View">
|
||||
<item name="View" label="_View">
|
||||
<separator/>
|
||||
<item name="PreviousTab" action="PreviousTab"/>
|
||||
<item name="NextTab" action="NextTab"/>
|
||||
|
@ -63,9 +63,9 @@
|
|||
<separator/>
|
||||
<item name="ShowFileSelector" action="ShowFileSelector"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<menu name="Project" label="_Project">
|
||||
<item name="Project" label="_Project">
|
||||
<separator/>
|
||||
<item name="NewProject" action="NewProject"/>
|
||||
<item name="OpenProject" action="OpenProject"/>
|
||||
|
@ -76,27 +76,27 @@
|
|||
<separator/>
|
||||
<item name="CloseProject" action="CloseProject"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<menu name="Build" label="_Build">
|
||||
<item name="Build" label="_Build">
|
||||
<separator/>
|
||||
<item name="BuildProject" action="BuildProject"/>
|
||||
<item name="CompileFile" action="CompileFile"/>
|
||||
<separator/>
|
||||
<item name="Execute" action="Execute"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<menu name="Python" action="PythonMenu">
|
||||
<item name="Python" action="PythonMenu">
|
||||
<separator/>
|
||||
<item name="ExecuteSelection" action="ExecuteSelection"/>
|
||||
<item name="ExecuteScript" action="ExecuteScript"/>
|
||||
<separator/>
|
||||
<item name="ShowConsole" action="ShowConsole"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<menu name="Settings" label="_Settings">
|
||||
<item name="Settings" label="_Settings">
|
||||
<separator/>
|
||||
<item name="ShowToolbar" action="ShowToolbar"/>
|
||||
<item name="ToolbarStyle" action="ToolbarStyle"/>
|
||||
|
@ -105,17 +105,17 @@
|
|||
<separator/>
|
||||
<item name="Preferences" action="Preferences"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<menu name="Help" label="_Help">
|
||||
<item name="Help" label="_Help">
|
||||
<separator/>
|
||||
<item name="About" action="About"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
</menubar> <!-- Menubar -->
|
||||
</widget> <!-- Menubar -->
|
||||
|
||||
<toolbar name="Toolbar">
|
||||
<widget name="Toolbar">
|
||||
<separator/>
|
||||
<item name="NewTab" action="NewTab"/>
|
||||
<separator/>
|
||||
|
@ -134,15 +134,15 @@
|
|||
<item name="Replace" action="Replace"/>
|
||||
|
||||
<separator/>
|
||||
</toolbar> <!-- Toolbar -->
|
||||
</widget> <!-- Toolbar -->
|
||||
|
||||
</object> <!-- Editor -->
|
||||
|
||||
<object name="Terminal">
|
||||
|
||||
<menubar name="Menubar">
|
||||
<widget name="Menubar">
|
||||
|
||||
<menu name="File" label="_File">
|
||||
<item name="File" label="_File">
|
||||
<separator/>
|
||||
<item name="Editor" action="NewEditor"/>
|
||||
<item name="Open" action="OpenInEditor"/>
|
||||
|
@ -153,9 +153,9 @@
|
|||
<separator/>
|
||||
<item name="Quit" action="Quit"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<menu name="Edit" label="E_dit">
|
||||
<item name="Edit" label="E_dit">
|
||||
<separator/>
|
||||
<!--
|
||||
<item name="CopyLastOutput" action="CopyLastOutput"/>
|
||||
|
@ -165,26 +165,26 @@
|
|||
<separator/>
|
||||
<item name="SelectAll" action="SelectAll"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<!--
|
||||
<menu name="GAP" label="_GAP">
|
||||
<item name="GAP" label="_GAP">
|
||||
<separator/>
|
||||
<item name="Read" action="GAPRead"/>
|
||||
<separator/>
|
||||
<item name="Restart" action="Restart"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
-->
|
||||
|
||||
<menu name="Python" action="PythonMenu">
|
||||
<item name="Python" action="PythonMenu">
|
||||
<separator/>
|
||||
<item name="Execute" action="ExecuteScript"/>
|
||||
<item name="ShowConsole" action="ShowConsole"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<menu name="Settings" label="_Settings">
|
||||
<item name="Settings" label="_Settings">
|
||||
<separator/>
|
||||
<item name="ShowToolbar" action="ShowToolbar"/>
|
||||
<item name="ToolbarStyle" action="ToolbarStyle"/>
|
||||
|
@ -193,17 +193,17 @@
|
|||
<separator/>
|
||||
<item name="Preferences" action="Preferences"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<menu name="Help" label="_Help">
|
||||
<item name="Help" label="_Help">
|
||||
<separator/>
|
||||
<item name="About" action="About"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
</menubar> <!-- Menubar -->
|
||||
</widget> <!-- Menubar -->
|
||||
|
||||
<toolbar name="Toolbar">
|
||||
<widget name="Toolbar">
|
||||
<separator/>
|
||||
<item name="Editor" action="NewEditor"/>
|
||||
<item name="Open" action="OpenInEditor"/>
|
||||
|
@ -215,16 +215,16 @@
|
|||
<separator/>
|
||||
<item name="Preferences" action="Preferences"/>
|
||||
<separator/>
|
||||
</toolbar> <!-- Toolbar -->
|
||||
</widget> <!-- Toolbar -->
|
||||
|
||||
<menu name="Popup">
|
||||
<widget name="Popup">
|
||||
<separator/>
|
||||
<item name="Copy" action="Copy"/>
|
||||
<item name="Paste" action="Paste"/>
|
||||
<separator/>
|
||||
<item name="SelectAll" action="SelectAll"/>
|
||||
<separator/>
|
||||
</menu>
|
||||
</widget>
|
||||
|
||||
</object> <!-- Terminal -->
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
|
||||
static void init_actions (void);
|
||||
static void ref_types (void);
|
||||
static void ref_stuff (void);
|
||||
|
||||
int main (int argc, char **argv)
|
||||
{
|
||||
|
@ -37,7 +37,8 @@ int main (int argc, char **argv)
|
|||
moo_prefs_load (rcfile, NULL);
|
||||
|
||||
init_actions ();
|
||||
ref_types ();
|
||||
if (argc > 1000)
|
||||
ref_stuff ();
|
||||
|
||||
plugin_dir = g_build_filename (g_get_home_dir (), ".medit", "plugins", NULL);
|
||||
moo_plugin_read_dir ("@MOO_PLUGINS_DIR@");
|
||||
|
@ -54,8 +55,7 @@ int main (int argc, char **argv)
|
|||
g_signal_connect (editor, "all-windows-closed", G_CALLBACK (gtk_main_quit), NULL);
|
||||
|
||||
xml = moo_editor_get_ui_xml (editor);
|
||||
if (!moo_ui_xml_add_ui_from_string (xml, MEDIT_UI, -1, NULL))
|
||||
g_error ("%s", G_STRLOC);
|
||||
moo_ui_xml_add_ui_from_string (xml, MEDIT_UI, -1);
|
||||
|
||||
win = moo_editor_new_window (editor);
|
||||
|
||||
|
@ -131,8 +131,8 @@ static void init_actions (void)
|
|||
}
|
||||
|
||||
|
||||
static void ref_types (void)
|
||||
static void ref_stuff (void)
|
||||
{
|
||||
volatile gpointer p = moo_pane_view_new;
|
||||
g_return_if_fail (p != NULL);
|
||||
moo_pane_view_new ();
|
||||
moo_markup_create_file_element (NULL, NULL, NULL);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue