Ryan Lortie
088682d860
GApplication: implement GActionMap
...
and deprecate g_application_set_action_group().
2011-12-08 18:05:14 -05:00
Ryan Lortie
75f1802a1c
Fix some GMenu and GMenuItem leaking
2011-12-08 18:05:14 -05:00
Ryan Lortie
3821627366
GApplication: make distinction about menus
...
Rename g_application_set_menu to g_application_set_app_menu and make a
couple of fixups. Clarify the documentation about exactly what this
menu is meant to be.
Add g_application_set_menubar and document that as well.
2011-12-08 18:05:14 -05:00
Colin Walters
8777b08a5a
gsimpleaction: Ensure actions are enabled
2011-12-08 18:05:14 -05:00
Matthias Clasen
a8a8633cef
Include gactionmap.h in gio.h
2011-12-08 18:05:14 -05:00
Matthias Clasen
eb09099f65
Minor doc improvements
2011-12-08 18:05:14 -05:00
Matthias Clasen
c8e76fdda2
Add GActionMap to the docs
2011-12-08 18:05:14 -05:00
Colin Walters
41e5ba86a7
GSimpleAction: Fix to comply with constructor rules
...
foo_new_*() must be pure wrappers around g_object_new(), otherwise
their functionality is inaccessible to bindings.
2011-12-08 18:05:14 -05:00
Ryan Lortie
76527e5cd5
add GActionMap interface
...
This is an interface to represent GSimpleActionGroup-like objects (ie:
those GActionGroups that operate by containing a number of named GAction
instances).
2011-12-08 18:05:14 -05:00
Ryan Lortie
02b001f8f6
gmenu exporter: put submenus in separate groups
...
Keep sections in the same subscription group as the parent (since they
will be needed immediately) but put submenus in a separate group.
2011-12-08 18:05:13 -05:00
Ryan Lortie
a0a94cd6c6
menu tests: keep mirror of proxy
...
Create a 'mirror' model of the proxy for the testcase. In addition to
testing that the proxy model emits the proper signals this also keeps
the proxy alive (by holding references to it from the mirror).
The previous code would create the submenu proxies and destroy them
right away (from the recursive step in the equality comparison
functions). This means that the subscription would go out over D-Bus
and the proxy would be destroyed before it returned. Keeping the model
alive allows it to be actually updated.
2011-12-08 18:05:13 -05:00
Matthias Clasen
d6f2281329
Shorten a variable name
2011-12-08 18:05:13 -05:00
Matthias Clasen
ad09498fa7
Expand dbus action group tests
...
The new tests check that activation and state changes propagate
back.
2011-12-08 18:05:13 -05:00
Matthias Clasen
5718804e58
Some more assertions
2011-12-08 18:05:13 -05:00
Matthias Clasen
22c9d20b7a
Add some dbus action group tests
2011-12-08 18:05:13 -05:00
Matthias Clasen
7ef3e27255
Fix the dbus action group query_action implementation
2011-12-08 18:05:13 -05:00
Matthias Clasen
5002cb2935
Make stopping an action group export work
2011-12-08 18:05:13 -05:00
Ryan Lortie
7a0faf66fe
rework GMenuProxy links
...
Only resolve the link at the point that we pull it through the API
rather than at the point that we first are told about it. This reduces
the lifespan of subscriptions and, more importantly, avoids a tricky
reference cycle issue.
2011-12-08 18:05:13 -05:00
Ryan Lortie
2c4ded15e5
g_menu_model_get_item_link: be careful with refs
...
Don't unref the hashtable until after we already take the ref on the
value that was contained in the hashtable, otherwise we may kill the
value.
2011-12-08 18:05:13 -05:00
Matthias Clasen
1bb0a89de6
Add debug code
...
This adds a dump method to show the entire tree of proxies.
2011-12-08 18:05:13 -05:00
Matthias Clasen
2cf4866e33
Avoid cross-talk between tests
...
Each test needs to remove the sources that it attaches
to the default main context, or else things will work
fine in isolation, but go bad in a full test run.
2011-12-08 18:05:13 -05:00
Matthias Clasen
39ce59f955
Typo fix
2011-12-08 18:05:13 -05:00
Matthias Clasen
ff833ccac9
Remove unused variable
2011-12-08 18:05:13 -05:00
Matthias Clasen
500f8fbac5
Add a test for menu subscriptions
2011-12-08 18:05:13 -05:00
Matthias Clasen
efd23e23c6
Take out excessive width
2011-12-08 18:05:13 -05:00
Matthias Clasen
381b23fc85
Reduce excessive width
2011-12-08 18:05:13 -05:00
Matthias Clasen
f9f0ef19d7
whitespace fix
2011-12-08 18:05:13 -05:00
Matthias Clasen
0f88b7af33
Add some tests for links
2011-12-08 18:05:13 -05:00
Matthias Clasen
0760bf5850
Add parser roundtrip tests
2011-12-08 18:05:13 -05:00
Matthias Clasen
a2aeea7acd
GMenuMarkup: fixes uncovered by roundtrip testing
...
The print function was forgetting to emit type information for
attributes, and the parser was not handling types properly either.
2011-12-08 18:05:13 -05:00
Matthias Clasen
d5a1b674f5
Improve docs
...
Specify that g_menu_item_set_attribute_value consumes floating
@values.
2011-12-08 18:05:13 -05:00
Matthias Clasen
41c19c7df8
GApplication: Add a menu example to the docs
2011-12-08 18:05:13 -05:00
Matthias Clasen
8d96e68eeb
GMenu: Enforce attribute name restrictions
...
The code assumes in various places that ':' does not occur
in attribute names. We are a little more strict than that,
and only allow lowercase ASCII, digits and '-'.
2011-12-08 18:05:13 -05:00
Matthias Clasen
9bebf15077
Reduce excessive width of gmenu.h
2011-12-08 18:05:12 -05:00
Matthias Clasen
58a8c02dfb
Match up a parameter name
2011-12-08 18:05:12 -05:00
Matthias Clasen
60ab57c4b0
Describe the org.gtk.Menus interface
...
Even though we consider the interface to be an implementation
detail, we should have internal documentation of the interface.
2011-12-08 18:05:12 -05:00
Matthias Clasen
cd22e1967d
Describe the org.gtk.Actions interface
...
Even though we consider the interface to be an implementation
detail, we should have internal documentation for the interface.
2011-12-08 18:05:12 -05:00
Matthias Clasen
db34b1aebe
Rename exporter APIs
...
There are no public 'exporter' objects, so don't allude to them
in the function names. At the same time, we want to make it clear
that these functions are D-Bus specific.
The new APIs are
g_action_group_dbus_export_start
g_action_group_dbus_export_query
g_action_group_dbus_export_stop
g_menu_model_dbus_export_start
g_menu_model_dbus_export_query
g_menu_model_dbus_export_stop
2011-12-08 18:05:12 -05:00
Matthias Clasen
435b2418da
GActionGroup: Mention GMenuModel in the docs
2011-12-08 18:05:12 -05:00
Matthias Clasen
ae0bd032ca
Add g_application_set_menu
...
This adds ane asy way to export menu information alongside
the actions that are already exported by GApplication.
2011-12-08 18:05:12 -05:00
Ryan Lortie
6dfb9d583f
Add GMenuModel testcases
2011-12-08 18:05:12 -05:00
Ryan Lortie
d110fd9202
Add GMenuProxy
...
GMenuProxy can be used as a client-side wrapper
for the a menu model that has been exported on D-Bus.
2011-12-08 18:05:12 -05:00
Matthias Clasen
66e089f086
Add GMenuModel D-Bus exporter
2011-12-08 18:05:12 -05:00
Matthias Clasen
6b40d4eb6b
Add GMenu markup
...
These functions serialize and deserialize a GMenuModel
to and from XML.
2011-12-08 18:05:12 -05:00
Matthias Clasen
13f5977735
Add GMenu
2011-12-08 18:05:12 -05:00
Matthias Clasen
12a39a05d3
Add GMenuModel
2011-12-08 18:05:12 -05:00
Matthias Clasen
df4cd241e5
GApplication: use GDBusActionGroup
...
instead of the internal version of the same
2011-12-08 18:05:12 -05:00
Ryan Lortie
c249e10d11
Add GDBusActionGroup
...
GDBusActionGroup can be used as a client-side wrapper
for the an action group that has been exported on D-Bus.
2011-12-08 18:05:12 -05:00
Ryan Lortie
bc5fe41dec
GApplication: port action client to new D-Bus API
...
for compatibility with GActionGroup exporter
2011-12-08 18:05:12 -05:00
Ryan Lortie
20d1de3a1b
GApplication: use GActionGroup exporter
...
instead of home-grown internal implementation of the same
2011-12-08 18:05:12 -05:00