Merge lp:~dbusmenu-team/libdbusmenu/ubuntu into lp:~ubuntu-desktop/libdbusmenu/ubuntu

Proposed by Ted Gould
Status: Merged
Merged at revision: 82
Proposed branch: lp:~dbusmenu-team/libdbusmenu/ubuntu
Merge into: lp:~ubuntu-desktop/libdbusmenu/ubuntu
Diff against target: 6233 lines (+5104/-241)
37 files modified
configure (+32/-21)
configure.ac (+7/-4)
debian/changelog (+11/-0)
debian/control (+29/-0)
debian/libdbusmenu-jsonloader-dev.install (+4/-0)
debian/libdbusmenu-jsonloader1.install (+1/-0)
docs/libdbusmenu-glib/reference/html/ch01.html (+1/-1)
docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuClient.html (+1/-0)
docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuMenuitem.html (+1/-1)
docs/libdbusmenu-glib/reference/tmpl/client-menuitem.sgml (+0/-2)
docs/libdbusmenu-glib/reference/tmpl/client.sgml (+1/-2)
docs/libdbusmenu-glib/reference/tmpl/menuitem-proxy.sgml (+0/-2)
docs/libdbusmenu-glib/reference/tmpl/menuitem.sgml (+1/-2)
docs/libdbusmenu-glib/reference/tmpl/server.sgml (+0/-2)
docs/libdbusmenu-glib/reference/version.xml (+1/-1)
docs/libdbusmenu-glib/reference/xml/client.xml (+1/-0)
docs/libdbusmenu-glib/reference/xml/menuitem.xml (+1/-1)
docs/libdbusmenu-gtk/reference/html/ch01.html (+1/-1)
docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkClient.html (+18/-18)
docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkMenu.html (+3/-3)
docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-menuitem.html (+6/-6)
docs/libdbusmenu-gtk/reference/tmpl/client.sgml (+0/-2)
docs/libdbusmenu-gtk/reference/tmpl/genericmenuitem.sgml (+0/-2)
docs/libdbusmenu-gtk/reference/tmpl/menu.sgml (+0/-2)
docs/libdbusmenu-gtk/reference/tmpl/menuitem.sgml (+0/-2)
docs/libdbusmenu-gtk/reference/version.xml (+1/-1)
libdbusmenu-gtk/client.c (+1/-0)
tests/Makefile.am (+89/-4)
tests/Makefile.in (+341/-87)
tests/dbusmenu-jsonloader.pc.in (+14/-0)
tests/json-loader.c (+220/-0)
tests/json-loader.h (+31/-0)
tests/test-gtk-label-server.c (+2/-69)
tests/test-json-01.json (+4023/-0)
tests/test-json-client.c (+75/-0)
tests/test-json-server.c (+81/-0)
tools/dbusmenu-dumper.c (+106/-5)
To merge this branch: bzr merge lp:~dbusmenu-team/libdbusmenu/ubuntu
Reviewer Review Type Date Requested Status
Sebastien Bacher Pending
Review via email: mp+28996@code.launchpad.net

Description of the change

0.3.4

To post a comment you must log in.
lp:~dbusmenu-team/libdbusmenu/ubuntu updated
82. By Sebastien Bacher

releasing version 0.3.4-0ubuntu1

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'configure'
2--- configure 2010-06-24 14:27:00 +0000
3+++ configure 2010-07-01 14:04:28 +0000
4@@ -1,6 +1,6 @@
5 #! /bin/sh
6 # Guess values for system-dependent variables and create Makefiles.
7-# Generated by GNU Autoconf 2.65 for libdbusmenu 0.3.3.
8+# Generated by GNU Autoconf 2.65 for libdbusmenu 0.3.4.
9 #
10 # Report bugs to <ted@canonical.com>.
11 #
12@@ -703,8 +703,8 @@
13 # Identity of this package.
14 PACKAGE_NAME='libdbusmenu'
15 PACKAGE_TARNAME='libdbusmenu'
16-PACKAGE_VERSION='0.3.3'
17-PACKAGE_STRING='libdbusmenu 0.3.3'
18+PACKAGE_VERSION='0.3.4'
19+PACKAGE_STRING='libdbusmenu 0.3.4'
20 PACKAGE_BUGREPORT='ted@canonical.com'
21 PACKAGE_URL=''
22
23@@ -1524,7 +1524,7 @@
24 # Omit some internal or obsolete options to make the list less imposing.
25 # This message is too long to be a string in the A/UX 3.1 sh.
26 cat <<_ACEOF
27-\`configure' configures libdbusmenu 0.3.3 to adapt to many kinds of systems.
28+\`configure' configures libdbusmenu 0.3.4 to adapt to many kinds of systems.
29
30 Usage: $0 [OPTION]... [VAR=VALUE]...
31
32@@ -1594,7 +1594,7 @@
33
34 if test -n "$ac_init_help"; then
35 case $ac_init_help in
36- short | recursive ) echo "Configuration of libdbusmenu 0.3.3:";;
37+ short | recursive ) echo "Configuration of libdbusmenu 0.3.4:";;
38 esac
39 cat <<\_ACEOF
40
41@@ -1724,7 +1724,7 @@
42 test -n "$ac_init_help" && exit $ac_status
43 if $ac_init_version; then
44 cat <<\_ACEOF
45-libdbusmenu configure 0.3.3
46+libdbusmenu configure 0.3.4
47 generated by GNU Autoconf 2.65
48
49 Copyright (C) 2009 Free Software Foundation, Inc.
50@@ -2097,7 +2097,7 @@
51 This file contains any messages produced by compilers while
52 running configure, to aid debugging if configure makes a mistake.
53
54-It was created by libdbusmenu $as_me 0.3.3, which was
55+It was created by libdbusmenu $as_me 0.3.4, which was
56 generated by GNU Autoconf 2.65. Invocation command line was
57
58 $ $0 $@
59@@ -2911,7 +2911,7 @@
60
61 # Define the identity of the package.
62 PACKAGE=libdbusmenu
63- VERSION=0.3.3
64+ VERSION=0.3.4
65
66
67 # Some tools Automake needs.
68@@ -12684,6 +12684,7 @@
69 ###########################
70
71 JSON_GLIB_REQUIRED_VERSION=0.6.0
72+GIO_UNIX_REQUIRED_VERSION=2.24
73
74
75 pkg_failed=no
76@@ -12695,12 +12696,15 @@
77 pkg_cv_DBUSMENUTESTS_CFLAGS="$DBUSMENUTESTS_CFLAGS"
78 else
79 if test -n "$PKG_CONFIG" && \
80- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0 >= \$JSON_GLIB_REQUIRED_VERSION\""; } >&5
81- ($PKG_CONFIG --exists --print-errors "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION") 2>&5
82+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0 >= \$JSON_GLIB_REQUIRED_VERSION
83+ gio-unix-2.0 >= \$GIO_UNIX_REQUIRED_VERSION\""; } >&5
84+ ($PKG_CONFIG --exists --print-errors "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
85+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION") 2>&5
86 ac_status=$?
87 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
88 test $ac_status = 0; }; then
89- pkg_cv_DBUSMENUTESTS_CFLAGS=`$PKG_CONFIG --cflags "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION" 2>/dev/null`
90+ pkg_cv_DBUSMENUTESTS_CFLAGS=`$PKG_CONFIG --cflags "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
91+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION" 2>/dev/null`
92 else
93 pkg_failed=yes
94 fi
95@@ -12713,12 +12717,15 @@
96 pkg_cv_DBUSMENUTESTS_LIBS="$DBUSMENUTESTS_LIBS"
97 else
98 if test -n "$PKG_CONFIG" && \
99- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0 >= \$JSON_GLIB_REQUIRED_VERSION\""; } >&5
100- ($PKG_CONFIG --exists --print-errors "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION") 2>&5
101+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-glib-1.0 >= \$JSON_GLIB_REQUIRED_VERSION
102+ gio-unix-2.0 >= \$GIO_UNIX_REQUIRED_VERSION\""; } >&5
103+ ($PKG_CONFIG --exists --print-errors "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
104+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION") 2>&5
105 ac_status=$?
106 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
107 test $ac_status = 0; }; then
108- pkg_cv_DBUSMENUTESTS_LIBS=`$PKG_CONFIG --libs "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION" 2>/dev/null`
109+ pkg_cv_DBUSMENUTESTS_LIBS=`$PKG_CONFIG --libs "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
110+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION" 2>/dev/null`
111 else
112 pkg_failed=yes
113 fi
114@@ -12737,14 +12744,17 @@
115 _pkg_short_errors_supported=no
116 fi
117 if test $_pkg_short_errors_supported = yes; then
118- DBUSMENUTESTS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION"`
119+ DBUSMENUTESTS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
120+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION"`
121 else
122- DBUSMENUTESTS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION"`
123+ DBUSMENUTESTS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
124+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION"`
125 fi
126 # Put the nasty error message in config.log where it belongs
127 echo "$DBUSMENUTESTS_PKG_ERRORS" >&5
128
129- as_fn_error "Package requirements (json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION) were not met:
130+ as_fn_error "Package requirements (json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
131+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION) were not met:
132
133 $DBUSMENUTESTS_PKG_ERRORS
134
135@@ -12927,7 +12937,7 @@
136 ###########################
137
138 LIBDBUSMENU_CURRENT=1
139-LIBDBUSMENU_REVISION=8
140+LIBDBUSMENU_REVISION=9
141 LIBDBUSMENU_AGE=0
142
143
144@@ -13673,7 +13683,7 @@
145 # Files
146 ###########################
147
148-ac_config_files="$ac_config_files Makefile po/Makefile.in libdbusmenu-glib/Makefile libdbusmenu-glib/dbusmenu-glib.pc libdbusmenu-gtk/Makefile libdbusmenu-gtk/dbusmenu-gtk.pc tools/Makefile tools/testapp/Makefile tests/Makefile docs/Makefile docs/libdbusmenu-glib/Makefile docs/libdbusmenu-glib/reference/Makefile docs/libdbusmenu-glib/reference/version.xml docs/libdbusmenu-gtk/Makefile docs/libdbusmenu-gtk/reference/Makefile docs/libdbusmenu-gtk/reference/version.xml"
149+ac_config_files="$ac_config_files Makefile po/Makefile.in libdbusmenu-glib/Makefile libdbusmenu-glib/dbusmenu-glib.pc libdbusmenu-gtk/Makefile libdbusmenu-gtk/dbusmenu-gtk.pc tools/Makefile tools/testapp/Makefile tests/Makefile tests/dbusmenu-jsonloader.pc docs/Makefile docs/libdbusmenu-glib/Makefile docs/libdbusmenu-glib/reference/Makefile docs/libdbusmenu-glib/reference/version.xml docs/libdbusmenu-gtk/Makefile docs/libdbusmenu-gtk/reference/Makefile docs/libdbusmenu-gtk/reference/version.xml"
150
151 cat >confcache <<\_ACEOF
152 # This file is a shell script that caches the results of configure
153@@ -14240,7 +14250,7 @@
154 # report actual input values of CONFIG_FILES etc. instead of their
155 # values after options handling.
156 ac_log="
157-This file was extended by libdbusmenu $as_me 0.3.3, which was
158+This file was extended by libdbusmenu $as_me 0.3.4, which was
159 generated by GNU Autoconf 2.65. Invocation command line was
160
161 CONFIG_FILES = $CONFIG_FILES
162@@ -14306,7 +14316,7 @@
163 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
164 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
165 ac_cs_version="\\
166-libdbusmenu config.status 0.3.3
167+libdbusmenu config.status 0.3.4
168 configured by $0, generated by GNU Autoconf 2.65,
169 with options \\"\$ac_cs_config\\"
170
171@@ -14698,6 +14708,7 @@
172 "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
173 "tools/testapp/Makefile") CONFIG_FILES="$CONFIG_FILES tools/testapp/Makefile" ;;
174 "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
175+ "tests/dbusmenu-jsonloader.pc") CONFIG_FILES="$CONFIG_FILES tests/dbusmenu-jsonloader.pc" ;;
176 "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;;
177 "docs/libdbusmenu-glib/Makefile") CONFIG_FILES="$CONFIG_FILES docs/libdbusmenu-glib/Makefile" ;;
178 "docs/libdbusmenu-glib/reference/Makefile") CONFIG_FILES="$CONFIG_FILES docs/libdbusmenu-glib/reference/Makefile" ;;
179
180=== modified file 'configure.ac'
181--- configure.ac 2010-06-24 14:27:00 +0000
182+++ configure.ac 2010-07-01 14:04:28 +0000
183@@ -1,11 +1,11 @@
184
185-AC_INIT(libdbusmenu, 0.3.3, ted@canonical.com)
186+AC_INIT(libdbusmenu, 0.3.4, ted@canonical.com)
187 AC_COPYRIGHT([Copyright 2009,2010 Canonical])
188
189 AC_PREREQ(2.62)
190
191 AM_CONFIG_HEADER(config.h)
192-AM_INIT_AUTOMAKE(libdbusmenu, 0.3.3, [-Wno-portability])
193+AM_INIT_AUTOMAKE(libdbusmenu, 0.3.4, [-Wno-portability])
194
195 AM_MAINTAINER_MODE
196
197@@ -62,8 +62,10 @@
198 ###########################
199
200 JSON_GLIB_REQUIRED_VERSION=0.6.0
201+GIO_UNIX_REQUIRED_VERSION=2.24
202
203-PKG_CHECK_MODULES(DBUSMENUTESTS, json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION)
204+PKG_CHECK_MODULES(DBUSMENUTESTS, json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
205+ gio-unix-2.0 >= $GIO_UNIX_REQUIRED_VERSION)
206
207 AC_SUBST(DBUSMENUTESTS_CFLAGS)
208 AC_SUBST(DBUSMENUTESTS_LIBS)
209@@ -85,7 +87,7 @@
210 ###########################
211
212 LIBDBUSMENU_CURRENT=1
213-LIBDBUSMENU_REVISION=8
214+LIBDBUSMENU_REVISION=9
215 LIBDBUSMENU_AGE=0
216
217 AC_SUBST(LIBDBUSMENU_CURRENT)
218@@ -126,6 +128,7 @@
219 tools/Makefile
220 tools/testapp/Makefile
221 tests/Makefile
222+tests/dbusmenu-jsonloader.pc
223 docs/Makefile
224 docs/libdbusmenu-glib/Makefile
225 docs/libdbusmenu-glib/reference/Makefile
226
227=== modified file 'debian/changelog'
228--- debian/changelog 2010-06-24 16:18:44 +0000
229+++ debian/changelog 2010-07-01 14:04:28 +0000
230@@ -1,3 +1,14 @@
231+libdbusmenu (0.3.4-0ubuntu1~ppa1) lucid; urgency=low
232+
233+ * New upstream release.
234+ * Block building submenus on separators (LP: #598620)
235+ * Adding more through JSON support for testing
236+ * Fixing up value handling in dbusmenu-dumper
237+ * debian/control, debian/libdbusmenu-jsonloader*install: Adding
238+ two binary packages for the jsonloader test library.
239+
240+ -- Ted Gould <ted@ubuntu.com> Thu, 01 Jul 2010 09:00:16 -0500
241+
242 libdbusmenu (0.3.3-0ubuntu1) maverick; urgency=low
243
244 * New upstream release.
245
246=== modified file 'debian/control'
247--- debian/control 2010-06-16 15:39:20 +0000
248+++ debian/control 2010-07-01 14:04:28 +0000
249@@ -149,3 +149,32 @@
250 .
251 This package contains developer documentation for libdbusmenu-gtk.
252
253+Package: libdbusmenu-jsonloader1
254+Section: libs
255+Architecture: any
256+Depends: ${shlibs:Depends},
257+ ${misc:Depends}
258+Description: library for passing menus over DBus - Test lib
259+ libdbusmenu passes a menu structure across DBus so that a program can
260+ create a menu simply without worrying about how it is displayed on the
261+ other side of the bus.
262+ .
263+ This package contains shared libraries to be by test suites in applications
264+ or libraries using dbusmenu.
265+
266+Package: libdbusmenu-jsonloader-dev
267+Section: libdevel
268+Architecture: any
269+Depends: ${shlibs:Depends},
270+ ${misc:Depends},
271+ libdbus-glib-1-dev (>= 0.76),
272+ libdbusmenu-glib-dev (= ${binary:Version}),
273+ libjson-glib-dev
274+Description: library for passing menus over DBus - Test lib
275+ libdbusmenu passes a menu structure across DBus so that a program can
276+ create a menu simply without worrying about how it is displayed on the
277+ other side of the bus.
278+ .
279+ This package contains files that are needed to build test suites in applications
280+ or libraries using dbusmenu.
281+
282
283=== added file 'debian/libdbusmenu-jsonloader-dev.install'
284--- debian/libdbusmenu-jsonloader-dev.install 1970-01-01 00:00:00 +0000
285+++ debian/libdbusmenu-jsonloader-dev.install 2010-07-01 14:04:28 +0000
286@@ -0,0 +1,4 @@
287+debian/tmp/usr/include/libdbusmenu-0.1/libdbusmenu-jsonloader/*
288+debian/tmp/usr/lib/pkgconfig/dbusmenu-jsonloader.pc
289+debian/tmp/usr/lib/libdbusmenu-jsonloader.a
290+debian/tmp/usr/lib/libdbusmenu-jsonloader.so
291
292=== added file 'debian/libdbusmenu-jsonloader1.install'
293--- debian/libdbusmenu-jsonloader1.install 1970-01-01 00:00:00 +0000
294+++ debian/libdbusmenu-jsonloader1.install 2010-07-01 14:04:28 +0000
295@@ -0,0 +1,1 @@
296+debian/tmp/usr/lib/libdbusmenu-jsonloader.so.*
297
298=== modified file 'docs/libdbusmenu-glib/reference/html/ch01.html'
299--- docs/libdbusmenu-glib/reference/html/ch01.html 2010-06-10 17:33:17 +0000
300+++ docs/libdbusmenu-glib/reference/html/ch01.html 2010-07-01 14:04:28 +0000
301@@ -21,7 +21,7 @@
302 </tr></table>
303 <div class="chapter" title="API">
304 <div class="titlepage"><div><div><h2 class="title">
305-<a name="id339465"></a>API</h2></div></div></div>
306+<a name="id390460"></a>API</h2></div></div></div>
307 <div class="toc"><dl>
308 <dt>
309 <span class="refentrytitle"><a href="libdbusmenu-glib-DbusmenuServer.html">DbusmenuServer</a></span><span class="refpurpose"></span>
310
311=== modified file 'docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuClient.html'
312--- docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuClient.html 2010-06-24 14:27:00 +0000
313+++ docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuClient.html 2010-07-01 14:04:28 +0000
314@@ -455,6 +455,7 @@
315 <td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
316 <td>
317 <em class="parameter"><code>gpointer</code></em> user_data:
318+<em class="parameter"><code>gpointer</code></em> user_data:
319 </td>
320 </tr>
321 <tr>
322
323=== modified file 'docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuMenuitem.html'
324--- docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuMenuitem.html 2010-06-24 14:21:02 +0000
325+++ docs/libdbusmenu-glib/reference/html/libdbusmenu-glib-DbusmenuMenuitem.html 2010-07-01 14:04:28 +0000
326@@ -287,7 +287,7 @@
327 <hr>
328 <div class="refsect2" title="DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY">
329 <a name="DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS"></a><h3>DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY</h3>
330-<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY "child-display"
331+<pre class="programlisting">#define DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY "children-display"
332 </pre>
333 <p>
334 </p>
335
336=== modified file 'docs/libdbusmenu-glib/reference/tmpl/client-menuitem.sgml'
337--- docs/libdbusmenu-glib/reference/tmpl/client-menuitem.sgml 2010-06-10 17:33:17 +0000
338+++ docs/libdbusmenu-glib/reference/tmpl/client-menuitem.sgml 2010-07-01 14:04:28 +0000
339@@ -9,13 +9,11 @@
340
341 </para>
342
343-
344 <!-- ##### SECTION See_Also ##### -->
345 <para>
346
347 </para>
348
349-
350 <!-- ##### SECTION Stability_Level ##### -->
351
352
353
354=== modified file 'docs/libdbusmenu-glib/reference/tmpl/client.sgml'
355--- docs/libdbusmenu-glib/reference/tmpl/client.sgml 2010-06-10 17:33:17 +0000
356+++ docs/libdbusmenu-glib/reference/tmpl/client.sgml 2010-07-01 14:04:28 +0000
357@@ -9,13 +9,11 @@
358
359 </para>
360
361-
362 <!-- ##### SECTION See_Also ##### -->
363 <para>
364
365 </para>
366
367-
368 <!-- ##### SECTION Stability_Level ##### -->
369
370
371@@ -159,6 +157,7 @@
372
373 @client:
374 @id:
375+@gpointer user_data:
376 @gpointer user_data:
377 @cb_data:
378
379
380=== modified file 'docs/libdbusmenu-glib/reference/tmpl/menuitem-proxy.sgml'
381--- docs/libdbusmenu-glib/reference/tmpl/menuitem-proxy.sgml 2010-06-10 17:33:17 +0000
382+++ docs/libdbusmenu-glib/reference/tmpl/menuitem-proxy.sgml 2010-07-01 14:04:28 +0000
383@@ -9,13 +9,11 @@
384
385 </para>
386
387-
388 <!-- ##### SECTION See_Also ##### -->
389 <para>
390
391 </para>
392
393-
394 <!-- ##### SECTION Stability_Level ##### -->
395
396
397
398=== modified file 'docs/libdbusmenu-glib/reference/tmpl/menuitem.sgml'
399--- docs/libdbusmenu-glib/reference/tmpl/menuitem.sgml 2010-06-10 17:33:17 +0000
400+++ docs/libdbusmenu-glib/reference/tmpl/menuitem.sgml 2010-07-01 14:04:28 +0000
401@@ -9,13 +9,11 @@
402
403 </para>
404
405-
406 <!-- ##### SECTION See_Also ##### -->
407 <para>
408
409 </para>
410
411-
412 <!-- ##### SECTION Stability_Level ##### -->
413
414
415@@ -507,6 +505,7 @@
416 </para>
417
418 @mi:
419+@DbusmenuMenuitem * mi, gpointer data:
420 @DbusmenuMenuitem * mi, gpointer data:
421 @data:
422
423
424=== modified file 'docs/libdbusmenu-glib/reference/tmpl/server.sgml'
425--- docs/libdbusmenu-glib/reference/tmpl/server.sgml 2010-06-10 17:33:17 +0000
426+++ docs/libdbusmenu-glib/reference/tmpl/server.sgml 2010-07-01 14:04:28 +0000
427@@ -9,13 +9,11 @@
428
429 </para>
430
431-
432 <!-- ##### SECTION See_Also ##### -->
433 <para>
434
435 </para>
436
437-
438 <!-- ##### SECTION Stability_Level ##### -->
439
440
441
442=== modified file 'docs/libdbusmenu-glib/reference/version.xml'
443--- docs/libdbusmenu-glib/reference/version.xml 2010-06-24 14:27:00 +0000
444+++ docs/libdbusmenu-glib/reference/version.xml 2010-07-01 14:04:28 +0000
445@@ -1,1 +1,1 @@
446-0.3.3
447+0.3.4
448
449=== modified file 'docs/libdbusmenu-glib/reference/xml/client.xml'
450--- docs/libdbusmenu-glib/reference/xml/client.xml 2010-06-10 17:33:17 +0000
451+++ docs/libdbusmenu-glib/reference/xml/client.xml 2010-07-01 14:04:28 +0000
452@@ -342,6 +342,7 @@
453 <varlistentry><term><parameter>id</parameter>&#160;:</term>
454 <listitem><simpara>
455 <parameter>gpointer</parameter> user_data:
456+<parameter>gpointer</parameter> user_data:
457 </simpara></listitem></varlistentry>
458 <varlistentry><term><parameter>cb_data</parameter>&#160;:</term>
459 <listitem><simpara>
460
461=== modified file 'docs/libdbusmenu-glib/reference/xml/menuitem.xml'
462--- docs/libdbusmenu-glib/reference/xml/menuitem.xml 2010-06-10 17:33:17 +0000
463+++ docs/libdbusmenu-glib/reference/xml/menuitem.xml 2010-07-01 14:04:28 +0000
464@@ -257,7 +257,7 @@
465 <refsect2 id="DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS" role="macro">
466 <title>DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY</title>
467 <indexterm zone="DBUSMENU-MENUITEM-PROP-CHILD-DISPLAY:CAPS"><primary>DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY</primary></indexterm>
468-<programlisting>#define DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY "child-display"
469+<programlisting>#define DBUSMENU_MENUITEM_PROP_CHILD_DISPLAY "children-display"
470 </programlisting>
471 <para>
472 </para></refsect2>
473
474=== modified file 'docs/libdbusmenu-gtk/reference/html/ch01.html'
475--- docs/libdbusmenu-gtk/reference/html/ch01.html 2010-06-10 17:33:17 +0000
476+++ docs/libdbusmenu-gtk/reference/html/ch01.html 2010-07-01 14:04:28 +0000
477@@ -21,7 +21,7 @@
478 </tr></table>
479 <div class="chapter" title="API">
480 <div class="titlepage"><div><div><h2 class="title">
481-<a name="id422170"></a>API</h2></div></div></div>
482+<a name="id512726"></a>API</h2></div></div></div>
483 <div class="toc"><dl>
484 <dt>
485 <span class="refentrytitle"><a href="libdbusmenu-gtk-DbusmenuGtkMenu.html">DbusmenuGtkMenu</a></span><span class="refpurpose"></span>
486
487=== modified file 'docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkClient.html'
488--- docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkClient.html 2010-06-24 14:27:00 +0000
489+++ docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkClient.html 2010-07-01 14:04:28 +0000
490@@ -43,14 +43,14 @@
491 <span class="returnvalue">DbusmenuGtkClient</span> * <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-new" title="dbusmenu_gtkclient_new ()">dbusmenu_gtkclient_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_name</code></em>,
492 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_object</code></em>);
493 <a href="/usr/share/gtk-doc/html/gtk/GtkMenuItem.html"><span class="returnvalue">GtkMenuItem</span></a> * <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-menuitem-get" title="dbusmenu_gtkclient_menuitem_get ()">dbusmenu_gtkclient_menuitem_get</a> (<em class="parameter"><code><span class="type">DbusmenuGtkClient</span> *client</code></em>,
494- <em class="parameter"><code><span class="type">DbusmenuMenuitem</span> *item</code></em>);
495+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *item</code></em>);
496 <a href="/usr/share/gtk-doc/html/gtk/GtkMenu.html"><span class="returnvalue">GtkMenu</span></a> * <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-menuitem-get-submenu" title="dbusmenu_gtkclient_menuitem_get_submenu ()">dbusmenu_gtkclient_menuitem_get_submenu</a>
497 (<em class="parameter"><code><span class="type">DbusmenuGtkClient</span> *client</code></em>,
498- <em class="parameter"><code><span class="type">DbusmenuMenuitem</span> *item</code></em>);
499+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *item</code></em>);
500 <span class="returnvalue">void</span> <a class="link" href="libdbusmenu-gtk-DbusmenuGtkClient.html#dbusmenu-gtkclient-newitem-base" title="dbusmenu_gtkclient_newitem_base ()">dbusmenu_gtkclient_newitem_base</a> (<em class="parameter"><code><span class="type">DbusmenuGtkClient</span> *client</code></em>,
501- <em class="parameter"><code><span class="type">DbusmenuMenuitem</span> *item</code></em>,
502+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *item</code></em>,
503 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> *gmi</code></em>,
504- <em class="parameter"><code><span class="type">DbusmenuMenuitem</span> *parent</code></em>);
505+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *parent</code></em>);
506 </pre>
507 </div>
508 <div class="refsect1" title="Description">
509@@ -95,7 +95,7 @@
510 <col align="left" valign="top">
511 <tbody>
512 <tr>
513-<td><p><span class="term"><span class="type">DbusmenuClientClass</span> <em class="structfield"><code><a name="DbusmenuGtkClientClass.parent-class"></a>parent_class</code></em>;</span></p></td>
514+<td><p><span class="term"><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DbusmenuClientClass"><span class="type">DbusmenuClientClass</span></a> <em class="structfield"><code><a name="DbusmenuGtkClientClass.parent-class"></a>parent_class</code></em>;</span></p></td>
515 <td>
516 <span class="type">GtkMenuClass</span>
517 </td>
518@@ -134,15 +134,15 @@
519 <pre class="programlisting"><span class="returnvalue">DbusmenuGtkClient</span> * dbusmenu_gtkclient_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_name</code></em>,
520 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_object</code></em>);</pre>
521 <p>
522-Creates a new <span class="type">DbusmenuGtkClient</span> object and creates a <span class="type">DbusmenuClient</span>
523- that connects across DBus to a <span class="type">DbusmenuServer</span>.
524+Creates a new <span class="type">DbusmenuGtkClient</span> object and creates a <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient"><span class="type">DbusmenuClient</span></a>
525+ that connects across DBus to a <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a>.
526 </p>
527 <div class="variablelist"><table border="0">
528 <col align="left" valign="top">
529 <tbody>
530 <tr>
531 <td><p><span class="term"><em class="parameter"><code>dbus_name</code></em> :</span></p></td>
532-<td>Name of the <span class="type">DbusmenuServer</span> on DBus
533+<td>Name of the <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a> on DBus
534 </td>
535 </tr>
536 <tr>
537@@ -162,10 +162,10 @@
538 <div class="refsect2" title="dbusmenu_gtkclient_menuitem_get ()">
539 <a name="dbusmenu-gtkclient-menuitem-get"></a><h3>dbusmenu_gtkclient_menuitem_get ()</h3>
540 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gtk/GtkMenuItem.html"><span class="returnvalue">GtkMenuItem</span></a> * dbusmenu_gtkclient_menuitem_get (<em class="parameter"><code><span class="type">DbusmenuGtkClient</span> *client</code></em>,
541- <em class="parameter"><code><span class="type">DbusmenuMenuitem</span> *item</code></em>);</pre>
542+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *item</code></em>);</pre>
543 <p>
544 This grabs the <a href="/usr/share/gtk-doc/html/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> that is associated with the
545- <span class="type">DbusmenuMenuitem</span>.
546+ <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a>.
547 </p>
548 <div class="variablelist"><table border="0">
549 <col align="left" valign="top">
550@@ -178,7 +178,7 @@
551 <tr>
552 <td><p><span class="term"><em class="parameter"><code>item</code></em> :</span></p></td>
553 <td>
554-<span class="type">DbusmenuMenuitem</span> to get associated <a href="/usr/share/gtk-doc/html/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> on.
555+<a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to get associated <a href="/usr/share/gtk-doc/html/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> on.
556 </td>
557 </tr>
558 <tr>
559@@ -194,7 +194,7 @@
560 <a name="dbusmenu-gtkclient-menuitem-get-submenu"></a><h3>dbusmenu_gtkclient_menuitem_get_submenu ()</h3>
561 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gtk/GtkMenu.html"><span class="returnvalue">GtkMenu</span></a> * dbusmenu_gtkclient_menuitem_get_submenu
562 (<em class="parameter"><code><span class="type">DbusmenuGtkClient</span> *client</code></em>,
563- <em class="parameter"><code><span class="type">DbusmenuMenuitem</span> *item</code></em>);</pre>
564+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *item</code></em>);</pre>
565 <p>
566 This grabs the submenu associated with the menuitem.
567 </p>
568@@ -209,7 +209,7 @@
569 <tr>
570 <td><p><span class="term"><em class="parameter"><code>item</code></em> :</span></p></td>
571 <td>
572-<span class="type">DbusmenuMenuitem</span> to get associated <a href="/usr/share/gtk-doc/html/gtk/GtkMenu.html"><span class="type">GtkMenu</span></a> on.
573+<a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to get associated <a href="/usr/share/gtk-doc/html/gtk/GtkMenu.html"><span class="type">GtkMenu</span></a> on.
574 </td>
575 </tr>
576 <tr>
577@@ -224,9 +224,9 @@
578 <div class="refsect2" title="dbusmenu_gtkclient_newitem_base ()">
579 <a name="dbusmenu-gtkclient-newitem-base"></a><h3>dbusmenu_gtkclient_newitem_base ()</h3>
580 <pre class="programlisting"><span class="returnvalue">void</span> dbusmenu_gtkclient_newitem_base (<em class="parameter"><code><span class="type">DbusmenuGtkClient</span> *client</code></em>,
581- <em class="parameter"><code><span class="type">DbusmenuMenuitem</span> *item</code></em>,
582+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *item</code></em>,
583 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gtk/GtkMenuItem.html"><span class="type">GtkMenuItem</span></a> *gmi</code></em>,
584- <em class="parameter"><code><span class="type">DbusmenuMenuitem</span> *parent</code></em>);</pre>
585+ <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *parent</code></em>);</pre>
586 <p>
587 This function provides some of the basic connectivity for being in
588 the GTK world. Things like visibility and sensitivity of the item are
589@@ -236,7 +236,7 @@
590 </p>
591 <p>
592 This also handles passing the "activate" signal back to the
593- <span class="type">DbusmenuMenuitem</span> side of thing.
594+ <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> side of thing.
595 </p>
596 <div class="variablelist"><table border="0">
597 <col align="left" valign="top">
598@@ -248,7 +248,7 @@
599 </tr>
600 <tr>
601 <td><p><span class="term"><em class="parameter"><code>item</code></em> :</span></p></td>
602-<td>The <span class="type">DbusmenuMenuitem</span> to attach the GTK-isms to
603+<td>The <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to attach the GTK-isms to
604 </td>
605 </tr>
606 <tr>
607@@ -258,7 +258,7 @@
608 </tr>
609 <tr>
610 <td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
611-<td>The parent <span class="type">DbusmenuMenuitem</span>
612+<td>The parent <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a>
613 </td>
614 </tr>
615 </tbody>
616
617=== modified file 'docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkMenu.html'
618--- docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkMenu.html 2010-06-24 14:27:00 +0000
619+++ docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-DbusmenuGtkMenu.html 2010-07-01 14:04:28 +0000
620@@ -109,15 +109,15 @@
621 <pre class="programlisting"><span class="returnvalue">DbusmenuGtkMenu</span> * dbusmenu_gtkmenu_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_name</code></em>,
622 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *dbus_object</code></em>);</pre>
623 <p>
624-Creates a new <span class="type">DbusmenuGtkMenu</span> object and creates a <span class="type">DbusmenuClient</span>
625- that connects across DBus to a <span class="type">DbusmenuServer</span>.
626+Creates a new <span class="type">DbusmenuGtkMenu</span> object and creates a <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuClient.html#DbusmenuClient"><span class="type">DbusmenuClient</span></a>
627+ that connects across DBus to a <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a>.
628 </p>
629 <div class="variablelist"><table border="0">
630 <col align="left" valign="top">
631 <tbody>
632 <tr>
633 <td><p><span class="term"><em class="parameter"><code>dbus_name</code></em> :</span></p></td>
634-<td>Name of the <span class="type">DbusmenuServer</span> on DBus
635+<td>Name of the <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuServer.html#DbusmenuServer"><span class="type">DbusmenuServer</span></a> on DBus
636 </td>
637 </tr>
638 <tr>
639
640=== modified file 'docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-menuitem.html'
641--- docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-menuitem.html 2010-06-24 14:27:00 +0000
642+++ docs/libdbusmenu-gtk/reference/html/libdbusmenu-gtk-menuitem.html 2010-07-01 14:04:28 +0000
643@@ -38,11 +38,11 @@
644 <div class="refsynopsisdiv" title="Synopsis">
645 <a name="libdbusmenu-gtk-menuitem.synopsis"></a><h2>Synopsis</h2>
646 <pre class="synopsis"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-set-image" title="dbusmenu_menuitem_property_set_image ()">dbusmenu_menuitem_property_set_image</a>
647- (<em class="parameter"><code><span class="type">DbusmenuMenuitem</span> *menuitem</code></em>,
648+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
649 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
650 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *data</code></em>);
651 <a href="/usr/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="returnvalue">GdkPixbuf</span></a> * <a class="link" href="libdbusmenu-gtk-menuitem.html#dbusmenu-menuitem-property-get-image" title="dbusmenu_menuitem_property_get_image ()">dbusmenu_menuitem_property_get_image</a>
652- (<em class="parameter"><code><span class="type">DbusmenuMenuitem</span> *menuitem</code></em>,
653+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
654 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);
655 </pre>
656 </div>
657@@ -56,20 +56,20 @@
658 <div class="refsect2" title="dbusmenu_menuitem_property_set_image ()">
659 <a name="dbusmenu-menuitem-property-set-image"></a><h3>dbusmenu_menuitem_property_set_image ()</h3>
660 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dbusmenu_menuitem_property_set_image
661- (<em class="parameter"><code><span class="type">DbusmenuMenuitem</span> *menuitem</code></em>,
662+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
663 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>,
664 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *data</code></em>);</pre>
665 <p>
666 This function takes the pixbuf that is stored in <em class="parameter"><code>data</code></em> and
667 turns it into a base64 encoded PNG so that it can be placed
668- onto a standard <span class="type">DbusmenuMenuitem</span> property.
669+ onto a standard <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> property.
670 </p>
671 <div class="variablelist"><table border="0">
672 <col align="left" valign="top">
673 <tbody>
674 <tr>
675 <td><p><span class="term"><em class="parameter"><code>menuitem</code></em> :</span></p></td>
676-<td>The <span class="type">DbusmenuMenuitem</span> to set the property on.
677+<td>The <a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> to set the property on.
678 </td>
679 </tr>
680 <tr>
681@@ -95,7 +95,7 @@
682 <div class="refsect2" title="dbusmenu_menuitem_property_get_image ()">
683 <a name="dbusmenu-menuitem-property-get-image"></a><h3>dbusmenu_menuitem_property_get_image ()</h3>
684 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="returnvalue">GdkPixbuf</span></a> * dbusmenu_menuitem_property_get_image
685- (<em class="parameter"><code><span class="type">DbusmenuMenuitem</span> *menuitem</code></em>,
686+ (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libdbusmenu-glib/libdbusmenu-glib-DbusmenuMenuitem.html#DbusmenuMenuitem"><span class="type">DbusmenuMenuitem</span></a> *menuitem</code></em>,
687 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property</code></em>);</pre>
688 <p>
689 This function looks on the menu item for a property by the
690
691=== modified file 'docs/libdbusmenu-gtk/reference/tmpl/client.sgml'
692--- docs/libdbusmenu-gtk/reference/tmpl/client.sgml 2010-06-10 17:33:17 +0000
693+++ docs/libdbusmenu-gtk/reference/tmpl/client.sgml 2010-07-01 14:04:28 +0000
694@@ -9,13 +9,11 @@
695
696 </para>
697
698-
699 <!-- ##### SECTION See_Also ##### -->
700 <para>
701
702 </para>
703
704-
705 <!-- ##### SECTION Stability_Level ##### -->
706
707
708
709=== modified file 'docs/libdbusmenu-gtk/reference/tmpl/genericmenuitem.sgml'
710--- docs/libdbusmenu-gtk/reference/tmpl/genericmenuitem.sgml 2010-06-10 17:33:17 +0000
711+++ docs/libdbusmenu-gtk/reference/tmpl/genericmenuitem.sgml 2010-07-01 14:04:28 +0000
712@@ -9,13 +9,11 @@
713
714 </para>
715
716-
717 <!-- ##### SECTION See_Also ##### -->
718 <para>
719
720 </para>
721
722-
723 <!-- ##### SECTION Stability_Level ##### -->
724
725
726
727=== modified file 'docs/libdbusmenu-gtk/reference/tmpl/menu.sgml'
728--- docs/libdbusmenu-gtk/reference/tmpl/menu.sgml 2010-06-10 17:33:17 +0000
729+++ docs/libdbusmenu-gtk/reference/tmpl/menu.sgml 2010-07-01 14:04:28 +0000
730@@ -9,13 +9,11 @@
731
732 </para>
733
734-
735 <!-- ##### SECTION See_Also ##### -->
736 <para>
737
738 </para>
739
740-
741 <!-- ##### SECTION Stability_Level ##### -->
742
743
744
745=== modified file 'docs/libdbusmenu-gtk/reference/tmpl/menuitem.sgml'
746--- docs/libdbusmenu-gtk/reference/tmpl/menuitem.sgml 2010-06-10 17:33:17 +0000
747+++ docs/libdbusmenu-gtk/reference/tmpl/menuitem.sgml 2010-07-01 14:04:28 +0000
748@@ -9,13 +9,11 @@
749
750 </para>
751
752-
753 <!-- ##### SECTION See_Also ##### -->
754 <para>
755
756 </para>
757
758-
759 <!-- ##### SECTION Stability_Level ##### -->
760
761
762
763=== modified file 'docs/libdbusmenu-gtk/reference/version.xml'
764--- docs/libdbusmenu-gtk/reference/version.xml 2010-06-24 14:27:00 +0000
765+++ docs/libdbusmenu-gtk/reference/version.xml 2010-07-01 14:04:28 +0000
766@@ -1,1 +1,1 @@
767-0.3.3
768+0.3.4
769
770=== modified file 'libdbusmenu-gtk/client.c'
771--- libdbusmenu-gtk/client.c 2010-06-22 21:29:08 +0000
772+++ libdbusmenu-gtk/client.c 2010-07-01 14:04:28 +0000
773@@ -503,6 +503,7 @@
774 #endif
775
776 if (dbusmenu_menuitem_get_root(mi)) { return; }
777+ if (g_strcmp0(dbusmenu_menuitem_property_get(mi, DBUSMENU_MENUITEM_PROP_TYPE), DBUSMENU_CLIENT_TYPES_SEPARATOR) == 0) { return; }
778
779 gpointer ann_menu = g_object_get_data(G_OBJECT(mi), data_menu);
780 GtkMenu * menu = GTK_MENU(ann_menu);
781
782=== modified file 'tests/Makefile.am'
783--- tests/Makefile.am 2010-06-21 19:47:08 +0000
784+++ tests/Makefile.am 2010-07-01 14:04:28 +0000
785@@ -1,14 +1,17 @@
786
787 DBUS_RUNNER=dbus-test-runner
788
789+CLEANFILES=
790+
791 TESTS = \
792 test-glib-objects-test \
793 test-glib-layout \
794 test-glib-properties \
795 test-glib-proxy \
796 test-glib-simple-items \
797+ test-glib-submenu \
798+ test-json \
799 test-gtk-objects-test \
800- test-glib-submenu \
801 test-gtk-label \
802 test-gtk-shortcut \
803 test-gtk-reorder
804@@ -31,11 +34,50 @@
805 test-gtk-shortcut-client \
806 test-gtk-shortcut-server \
807 test-glib-simple-items \
808- test-gtk-reorder-server
809+ test-gtk-reorder-server \
810+ test-json-client \
811+ test-json-server
812
813 XVFB_RUN=". $(srcdir)/run-xvfb.sh"
814
815 ######################
816+# JSON Loader lib
817+######################
818+
819+lib_LTLIBRARIES = libdbusmenu-jsonloader.la
820+
821+libdbusmenu_jsonloaderincludedir=$(includedir)/libdbusmenu-0.1/libdbusmenu-jsonloader/
822+
823+libdbusmenu_jsonloaderinclude_HEADERS = \
824+ json-loader.h
825+
826+libdbusmenu_jsonloader_la_SOURCES = \
827+ json-loader.h \
828+ json-loader.c
829+
830+libdbusmenu_jsonloader_la_LDFLAGS = \
831+ -version-info $(LIBDBUSMENU_CURRENT):$(LIBDBUSMENU_REVISION):$(LIBDBUSMENU_AGE) \
832+ -no-undefined \
833+ -export-symbols-regex "^[^_].*"
834+
835+libdbusmenu_jsonloader_la_CFLAGS = \
836+ $(DBUSMENUGLIB_CFLAGS) \
837+ $(DBUSMENUTESTS_CFLAGS) \
838+ -I $(srcdir)/.. \
839+ -Wall \
840+ -Werror \
841+ -DG_DISABLE_DEPRECATED \
842+ -DG_LOG_DOMAIN="\"LIBDBUSMENU-JSONLOADER\""
843+
844+libdbusmenu_jsonloader_la_LIBADD = \
845+ ../libdbusmenu-glib/libdbusmenu-glib.la \
846+ $(DBUSMENUGLIB_LIBS) \
847+ $(DBUSMENUTESTS_LIBS)
848+
849+pkgconfig_DATA = dbusmenu-jsonloader.pc
850+pkgconfigdir = $(libdir)/pkgconfig
851+
852+######################
853 # Test GLib server
854 ######################
855
856@@ -84,6 +126,47 @@
857 $(DBUSMENUGLIB_LIBS)
858
859 ######################
860+# Test JSON
861+######################
862+
863+test-json: test-json-client test-json-server Makefile.am
864+ @echo "#!/bin/bash" > $@
865+ @echo $(XVFB_RUN) >> $@
866+ @echo $(DBUS_RUNNER) --task ./test-json-client --task-name Client --parameter $(top_builddir)/tools/dbusmenu-dumper --parameter test-json-01.output.json --ignore-return --task ./test-json-server --task-name Server --parameter $(srcdir)/test-json-01.json --ignore-return >> $@
867+ @echo diff $(srcdir)/test-json-01.json test-json-01.output.json \> /dev/null >> $@
868+ @chmod +x $@
869+
870+CLEANFILES += test-json-01.output.json
871+
872+test_json_server_SOURCES = \
873+ test-json-server.c
874+
875+test_json_server_CFLAGS = \
876+ -I $(srcdir)/.. \
877+ -I $(srcdir) \
878+ $(DBUSMENUGLIB_CFLAGS) \
879+ $(DBUSMENUTESTS_CFLAGS) \
880+ -Wall -Werror
881+
882+test_json_server_LDADD = \
883+ ../libdbusmenu-glib/libdbusmenu-glib.la \
884+ libdbusmenu-jsonloader.la \
885+ $(DBUSMENUTESTS_LIBS) \
886+ $(DBUSMENUGLIB_LIBS)
887+
888+test_json_client_SOURCES = \
889+ test-json-client.c
890+
891+test_json_client_CFLAGS = \
892+ -I $(srcdir)/.. \
893+ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror
894+
895+test_json_client_LDADD = \
896+ ../libdbusmenu-glib/libdbusmenu-glib.la \
897+ $(DBUSMENUTESTS_LIBS) \
898+ $(DBUSMENUGLIB_LIBS)
899+
900+######################
901 # Test Glib Submenu
902 ######################
903
904@@ -286,6 +369,7 @@
905 test_gtk_label_server_LDADD = \
906 ../libdbusmenu-glib/libdbusmenu-glib.la \
907 ../libdbusmenu-gtk/libdbusmenu-gtk.la \
908+ libdbusmenu-jsonloader.la \
909 $(DBUSMENUGTK_LIBS) \
910 $(DBUSMENUTESTS_LIBS)
911
912@@ -421,9 +505,10 @@
913 dbusmenu-gtk/mago_tests/data/several_submenus_recursive.json \
914 dbusmenu-gtk/mago_tests/data/several_submenus_utf8.json \
915 dbusmenu-gtk/mago_tests/data/static.json \
916- dbusmenu-gtk/mago_tests/data/test-gtk-label.json
917+ dbusmenu-gtk/mago_tests/data/test-gtk-label.json \
918+ test-json-01.json
919
920-CLEANFILES = \
921+CLEANFILES += \
922 dbusmenu-gtk/mago_tests/dbusmenu.pyc
923
924 distclean-local:
925
926=== modified file 'tests/Makefile.in'
927--- tests/Makefile.in 2010-06-24 14:27:00 +0000
928+++ tests/Makefile.in 2010-07-01 14:04:28 +0000
929@@ -15,6 +15,8 @@
930
931 @SET_MAKE@
932
933+
934+
935 VPATH = @srcdir@
936 pkgdatadir = $(datadir)/@PACKAGE@
937 pkgincludedir = $(includedir)/@PACKAGE@
938@@ -36,8 +38,8 @@
939 host_triplet = @host@
940 TESTS = test-glib-objects-test test-glib-layout test-glib-properties \
941 test-glib-proxy test-glib-simple-items$(EXEEXT) \
942- test-gtk-objects-test test-glib-submenu test-gtk-label \
943- test-gtk-shortcut test-gtk-reorder
944+ test-glib-submenu test-json test-gtk-objects-test \
945+ test-gtk-label test-gtk-shortcut test-gtk-reorder
946 check_PROGRAMS = glib-server-nomenu$(EXEEXT) \
947 test-glib-objects$(EXEEXT) test-glib-layout-client$(EXEEXT) \
948 test-glib-layout-server$(EXEEXT) \
949@@ -51,26 +53,65 @@
950 test-gtk-shortcut-client$(EXEEXT) \
951 test-gtk-shortcut-server$(EXEEXT) \
952 test-glib-simple-items$(EXEEXT) \
953- test-gtk-reorder-server$(EXEEXT)
954+ test-gtk-reorder-server$(EXEEXT) test-json-client$(EXEEXT) \
955+ test-json-server$(EXEEXT)
956 subdir = tests
957-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
958+DIST_COMMON = $(libdbusmenu_jsonloaderinclude_HEADERS) \
959+ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
960+ $(srcdir)/dbusmenu-jsonloader.pc.in
961 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
962 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
963 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
964 $(ACLOCAL_M4)
965 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
966 CONFIG_HEADER = $(top_builddir)/config.h
967-CONFIG_CLEAN_FILES =
968+CONFIG_CLEAN_FILES = dbusmenu-jsonloader.pc
969 CONFIG_CLEAN_VPATH_FILES =
970+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
971+am__vpath_adj = case $$p in \
972+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
973+ *) f=$$p;; \
974+ esac;
975+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
976+am__install_max = 40
977+am__nobase_strip_setup = \
978+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
979+am__nobase_strip = \
980+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
981+am__nobase_list = $(am__nobase_strip_setup); \
982+ for p in $$list; do echo "$$p $$p"; done | \
983+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
984+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
985+ if (++n[$$2] == $(am__install_max)) \
986+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
987+ END { for (dir in files) print dir, files[dir] }'
988+am__base_list = \
989+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
990+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
991+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(examplesdir)" \
992+ "$(DESTDIR)$(jsondir)" "$(DESTDIR)$(pkgconfigdir)" \
993+ "$(DESTDIR)$(libdbusmenu_jsonloaderincludedir)"
994+LTLIBRARIES = $(lib_LTLIBRARIES)
995+am__DEPENDENCIES_1 =
996+libdbusmenu_jsonloader_la_DEPENDENCIES = \
997+ ../libdbusmenu-glib/libdbusmenu-glib.la $(am__DEPENDENCIES_1) \
998+ $(am__DEPENDENCIES_1)
999+am_libdbusmenu_jsonloader_la_OBJECTS = \
1000+ libdbusmenu_jsonloader_la-json-loader.lo
1001+libdbusmenu_jsonloader_la_OBJECTS = \
1002+ $(am_libdbusmenu_jsonloader_la_OBJECTS)
1003+AM_V_lt = $(am__v_lt_$(V))
1004+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
1005+am__v_lt_0 = --silent
1006+libdbusmenu_jsonloader_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
1007+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
1008+ $(libdbusmenu_jsonloader_la_CFLAGS) $(CFLAGS) \
1009+ $(libdbusmenu_jsonloader_la_LDFLAGS) $(LDFLAGS) -o $@
1010 am_glib_server_nomenu_OBJECTS = \
1011 glib_server_nomenu-glib-server-nomenu.$(OBJEXT)
1012 glib_server_nomenu_OBJECTS = $(am_glib_server_nomenu_OBJECTS)
1013-am__DEPENDENCIES_1 =
1014 glib_server_nomenu_DEPENDENCIES = \
1015 ../libdbusmenu-glib/libdbusmenu-glib.la $(am__DEPENDENCIES_1)
1016-AM_V_lt = $(am__v_lt_$(V))
1017-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
1018-am__v_lt_0 = --silent
1019 glib_server_nomenu_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
1020 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
1021 $(glib_server_nomenu_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
1022@@ -194,7 +235,8 @@
1023 test_gtk_label_server_OBJECTS = $(am_test_gtk_label_server_OBJECTS)
1024 test_gtk_label_server_DEPENDENCIES = \
1025 ../libdbusmenu-glib/libdbusmenu-glib.la \
1026- ../libdbusmenu-gtk/libdbusmenu-gtk.la $(am__DEPENDENCIES_1) \
1027+ ../libdbusmenu-gtk/libdbusmenu-gtk.la \
1028+ libdbusmenu-jsonloader.la $(am__DEPENDENCIES_1) \
1029 $(am__DEPENDENCIES_1)
1030 test_gtk_label_server_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
1031 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
1032@@ -247,6 +289,27 @@
1033 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
1034 $(test_gtk_shortcut_server_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
1035 $(LDFLAGS) -o $@
1036+am_test_json_client_OBJECTS = \
1037+ test_json_client-test-json-client.$(OBJEXT)
1038+test_json_client_OBJECTS = $(am_test_json_client_OBJECTS)
1039+test_json_client_DEPENDENCIES = \
1040+ ../libdbusmenu-glib/libdbusmenu-glib.la $(am__DEPENDENCIES_1) \
1041+ $(am__DEPENDENCIES_1)
1042+test_json_client_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
1043+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
1044+ $(test_json_client_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
1045+ -o $@
1046+am_test_json_server_OBJECTS = \
1047+ test_json_server-test-json-server.$(OBJEXT)
1048+test_json_server_OBJECTS = $(am_test_json_server_OBJECTS)
1049+test_json_server_DEPENDENCIES = \
1050+ ../libdbusmenu-glib/libdbusmenu-glib.la \
1051+ libdbusmenu-jsonloader.la $(am__DEPENDENCIES_1) \
1052+ $(am__DEPENDENCIES_1)
1053+test_json_server_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
1054+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
1055+ $(test_json_server_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
1056+ -o $@
1057 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
1058 depcomp = $(SHELL) $(top_srcdir)/depcomp
1059 am__depfiles_maybe = depfiles
1060@@ -273,63 +336,46 @@
1061 AM_V_GEN = $(am__v_GEN_$(V))
1062 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
1063 am__v_GEN_0 = @echo " GEN " $@;
1064-SOURCES = $(glib_server_nomenu_SOURCES) \
1065- $(test_glib_layout_client_SOURCES) \
1066- $(test_glib_layout_server_SOURCES) \
1067- $(test_glib_objects_SOURCES) \
1068- $(test_glib_properties_client_SOURCES) \
1069- $(test_glib_properties_server_SOURCES) \
1070- $(test_glib_proxy_client_SOURCES) \
1071- $(test_glib_proxy_proxy_SOURCES) \
1072- $(test_glib_proxy_server_SOURCES) \
1073- $(test_glib_simple_items_SOURCES) \
1074- $(test_glib_submenu_client_SOURCES) \
1075- $(test_glib_submenu_server_SOURCES) \
1076- $(test_gtk_label_client_SOURCES) \
1077- $(test_gtk_label_server_SOURCES) $(test_gtk_objects_SOURCES) \
1078- $(test_gtk_reorder_server_SOURCES) \
1079- $(test_gtk_shortcut_client_SOURCES) \
1080- $(test_gtk_shortcut_server_SOURCES)
1081-DIST_SOURCES = $(glib_server_nomenu_SOURCES) \
1082- $(test_glib_layout_client_SOURCES) \
1083- $(test_glib_layout_server_SOURCES) \
1084- $(test_glib_objects_SOURCES) \
1085- $(test_glib_properties_client_SOURCES) \
1086- $(test_glib_properties_server_SOURCES) \
1087- $(test_glib_proxy_client_SOURCES) \
1088- $(test_glib_proxy_proxy_SOURCES) \
1089- $(test_glib_proxy_server_SOURCES) \
1090- $(test_glib_simple_items_SOURCES) \
1091- $(test_glib_submenu_client_SOURCES) \
1092- $(test_glib_submenu_server_SOURCES) \
1093- $(test_gtk_label_client_SOURCES) \
1094- $(test_gtk_label_server_SOURCES) $(test_gtk_objects_SOURCES) \
1095- $(test_gtk_reorder_server_SOURCES) \
1096- $(test_gtk_shortcut_client_SOURCES) \
1097- $(test_gtk_shortcut_server_SOURCES)
1098-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
1099-am__vpath_adj = case $$p in \
1100- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
1101- *) f=$$p;; \
1102- esac;
1103-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
1104-am__install_max = 40
1105-am__nobase_strip_setup = \
1106- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
1107-am__nobase_strip = \
1108- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
1109-am__nobase_list = $(am__nobase_strip_setup); \
1110- for p in $$list; do echo "$$p $$p"; done | \
1111- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
1112- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
1113- if (++n[$$2] == $(am__install_max)) \
1114- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
1115- END { for (dir in files) print dir, files[dir] }'
1116-am__base_list = \
1117- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
1118- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
1119-am__installdirs = "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(jsondir)"
1120-DATA = $(examples_DATA) $(json_DATA)
1121+SOURCES = $(libdbusmenu_jsonloader_la_SOURCES) \
1122+ $(glib_server_nomenu_SOURCES) \
1123+ $(test_glib_layout_client_SOURCES) \
1124+ $(test_glib_layout_server_SOURCES) \
1125+ $(test_glib_objects_SOURCES) \
1126+ $(test_glib_properties_client_SOURCES) \
1127+ $(test_glib_properties_server_SOURCES) \
1128+ $(test_glib_proxy_client_SOURCES) \
1129+ $(test_glib_proxy_proxy_SOURCES) \
1130+ $(test_glib_proxy_server_SOURCES) \
1131+ $(test_glib_simple_items_SOURCES) \
1132+ $(test_glib_submenu_client_SOURCES) \
1133+ $(test_glib_submenu_server_SOURCES) \
1134+ $(test_gtk_label_client_SOURCES) \
1135+ $(test_gtk_label_server_SOURCES) $(test_gtk_objects_SOURCES) \
1136+ $(test_gtk_reorder_server_SOURCES) \
1137+ $(test_gtk_shortcut_client_SOURCES) \
1138+ $(test_gtk_shortcut_server_SOURCES) \
1139+ $(test_json_client_SOURCES) $(test_json_server_SOURCES)
1140+DIST_SOURCES = $(libdbusmenu_jsonloader_la_SOURCES) \
1141+ $(glib_server_nomenu_SOURCES) \
1142+ $(test_glib_layout_client_SOURCES) \
1143+ $(test_glib_layout_server_SOURCES) \
1144+ $(test_glib_objects_SOURCES) \
1145+ $(test_glib_properties_client_SOURCES) \
1146+ $(test_glib_properties_server_SOURCES) \
1147+ $(test_glib_proxy_client_SOURCES) \
1148+ $(test_glib_proxy_proxy_SOURCES) \
1149+ $(test_glib_proxy_server_SOURCES) \
1150+ $(test_glib_simple_items_SOURCES) \
1151+ $(test_glib_submenu_client_SOURCES) \
1152+ $(test_glib_submenu_server_SOURCES) \
1153+ $(test_gtk_label_client_SOURCES) \
1154+ $(test_gtk_label_server_SOURCES) $(test_gtk_objects_SOURCES) \
1155+ $(test_gtk_reorder_server_SOURCES) \
1156+ $(test_gtk_shortcut_client_SOURCES) \
1157+ $(test_gtk_shortcut_server_SOURCES) \
1158+ $(test_json_client_SOURCES) $(test_json_server_SOURCES)
1159+DATA = $(examples_DATA) $(json_DATA) $(pkgconfig_DATA)
1160+HEADERS = $(libdbusmenu_jsonloaderinclude_HEADERS)
1161 ETAGS = etags
1162 CTAGS = ctags
1163 am__tty_colors = \
1164@@ -499,9 +545,45 @@
1165 top_builddir = @top_builddir@
1166 top_srcdir = @top_srcdir@
1167 DBUS_RUNNER = dbus-test-runner
1168+CLEANFILES = test-json-01.output.json \
1169+ dbusmenu-gtk/mago_tests/dbusmenu.pyc
1170 XVFB_RUN = ". $(srcdir)/run-xvfb.sh"
1171
1172 ######################
1173+# JSON Loader lib
1174+######################
1175+lib_LTLIBRARIES = libdbusmenu-jsonloader.la
1176+libdbusmenu_jsonloaderincludedir = $(includedir)/libdbusmenu-0.1/libdbusmenu-jsonloader/
1177+libdbusmenu_jsonloaderinclude_HEADERS = \
1178+ json-loader.h
1179+
1180+libdbusmenu_jsonloader_la_SOURCES = \
1181+ json-loader.h \
1182+ json-loader.c
1183+
1184+libdbusmenu_jsonloader_la_LDFLAGS = \
1185+ -version-info $(LIBDBUSMENU_CURRENT):$(LIBDBUSMENU_REVISION):$(LIBDBUSMENU_AGE) \
1186+ -no-undefined \
1187+ -export-symbols-regex "^[^_].*"
1188+
1189+libdbusmenu_jsonloader_la_CFLAGS = \
1190+ $(DBUSMENUGLIB_CFLAGS) \
1191+ $(DBUSMENUTESTS_CFLAGS) \
1192+ -I $(srcdir)/.. \
1193+ -Wall \
1194+ -Werror \
1195+ -DG_DISABLE_DEPRECATED \
1196+ -DG_LOG_DOMAIN="\"LIBDBUSMENU-JSONLOADER\""
1197+
1198+libdbusmenu_jsonloader_la_LIBADD = \
1199+ ../libdbusmenu-glib/libdbusmenu-glib.la \
1200+ $(DBUSMENUGLIB_LIBS) \
1201+ $(DBUSMENUTESTS_LIBS)
1202+
1203+pkgconfig_DATA = dbusmenu-jsonloader.pc
1204+pkgconfigdir = $(libdir)/pkgconfig
1205+
1206+######################
1207 # Test GLib server
1208 ######################
1209 glib_server_nomenu_SOURCES = \
1210@@ -539,6 +621,34 @@
1211 ../libdbusmenu-glib/libdbusmenu-glib.la \
1212 $(DBUSMENUGLIB_LIBS)
1213
1214+test_json_server_SOURCES = \
1215+ test-json-server.c
1216+
1217+test_json_server_CFLAGS = \
1218+ -I $(srcdir)/.. \
1219+ -I $(srcdir) \
1220+ $(DBUSMENUGLIB_CFLAGS) \
1221+ $(DBUSMENUTESTS_CFLAGS) \
1222+ -Wall -Werror
1223+
1224+test_json_server_LDADD = \
1225+ ../libdbusmenu-glib/libdbusmenu-glib.la \
1226+ libdbusmenu-jsonloader.la \
1227+ $(DBUSMENUTESTS_LIBS) \
1228+ $(DBUSMENUGLIB_LIBS)
1229+
1230+test_json_client_SOURCES = \
1231+ test-json-client.c
1232+
1233+test_json_client_CFLAGS = \
1234+ -I $(srcdir)/.. \
1235+ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror
1236+
1237+test_json_client_LDADD = \
1238+ ../libdbusmenu-glib/libdbusmenu-glib.la \
1239+ $(DBUSMENUTESTS_LIBS) \
1240+ $(DBUSMENUGLIB_LIBS)
1241+
1242 test_glib_submenu_server_SOURCES = \
1243 test-glib-submenu.h \
1244 test-glib-submenu-server.c
1245@@ -687,6 +797,7 @@
1246 test_gtk_label_server_LDADD = \
1247 ../libdbusmenu-glib/libdbusmenu-glib.la \
1248 ../libdbusmenu-gtk/libdbusmenu-gtk.la \
1249+ libdbusmenu-jsonloader.la \
1250 $(DBUSMENUGTK_LIBS) \
1251 $(DBUSMENUTESTS_LIBS)
1252
1253@@ -785,10 +896,8 @@
1254 dbusmenu-gtk/mago_tests/data/several_submenus_recursive.json \
1255 dbusmenu-gtk/mago_tests/data/several_submenus_utf8.json \
1256 dbusmenu-gtk/mago_tests/data/static.json \
1257- dbusmenu-gtk/mago_tests/data/test-gtk-label.json
1258-
1259-CLEANFILES = \
1260- dbusmenu-gtk/mago_tests/dbusmenu.pyc
1261+ dbusmenu-gtk/mago_tests/data/test-gtk-label.json \
1262+ test-json-01.json
1263
1264 DISTCLEANFILES = \
1265 $(TESTS) \
1266@@ -829,6 +938,41 @@
1267 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
1268 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
1269 $(am__aclocal_m4_deps):
1270+dbusmenu-jsonloader.pc: $(top_builddir)/config.status $(srcdir)/dbusmenu-jsonloader.pc.in
1271+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
1272+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
1273+ @$(NORMAL_INSTALL)
1274+ test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
1275+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
1276+ list2=; for p in $$list; do \
1277+ if test -f $$p; then \
1278+ list2="$$list2 $$p"; \
1279+ else :; fi; \
1280+ done; \
1281+ test -z "$$list2" || { \
1282+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
1283+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
1284+ }
1285+
1286+uninstall-libLTLIBRARIES:
1287+ @$(NORMAL_UNINSTALL)
1288+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
1289+ for p in $$list; do \
1290+ $(am__strip_dir) \
1291+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
1292+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
1293+ done
1294+
1295+clean-libLTLIBRARIES:
1296+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
1297+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
1298+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
1299+ test "$$dir" != "$$p" || dir=.; \
1300+ echo "rm -f \"$${dir}/so_locations\""; \
1301+ rm -f "$${dir}/so_locations"; \
1302+ done
1303+libdbusmenu-jsonloader.la: $(libdbusmenu_jsonloader_la_OBJECTS) $(libdbusmenu_jsonloader_la_DEPENDENCIES)
1304+ $(AM_V_CCLD)$(libdbusmenu_jsonloader_la_LINK) -rpath $(libdir) $(libdbusmenu_jsonloader_la_OBJECTS) $(libdbusmenu_jsonloader_la_LIBADD) $(LIBS)
1305
1306 clean-checkPROGRAMS:
1307 @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
1308@@ -892,6 +1036,12 @@
1309 test-gtk-shortcut-server$(EXEEXT): $(test_gtk_shortcut_server_OBJECTS) $(test_gtk_shortcut_server_DEPENDENCIES)
1310 @rm -f test-gtk-shortcut-server$(EXEEXT)
1311 $(AM_V_CCLD)$(test_gtk_shortcut_server_LINK) $(test_gtk_shortcut_server_OBJECTS) $(test_gtk_shortcut_server_LDADD) $(LIBS)
1312+test-json-client$(EXEEXT): $(test_json_client_OBJECTS) $(test_json_client_DEPENDENCIES)
1313+ @rm -f test-json-client$(EXEEXT)
1314+ $(AM_V_CCLD)$(test_json_client_LINK) $(test_json_client_OBJECTS) $(test_json_client_LDADD) $(LIBS)
1315+test-json-server$(EXEEXT): $(test_json_server_OBJECTS) $(test_json_server_DEPENDENCIES)
1316+ @rm -f test-json-server$(EXEEXT)
1317+ $(AM_V_CCLD)$(test_json_server_LINK) $(test_json_server_OBJECTS) $(test_json_server_LDADD) $(LIBS)
1318
1319 mostlyclean-compile:
1320 -rm -f *.$(OBJEXT)
1321@@ -900,6 +1050,7 @@
1322 -rm -f *.tab.c
1323
1324 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glib_server_nomenu-glib-server-nomenu.Po@am__quote@
1325+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdbusmenu_jsonloader_la-json-loader.Plo@am__quote@
1326 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_glib_layout_client-test-glib-layout-client.Po@am__quote@
1327 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_glib_layout_server-test-glib-layout-server.Po@am__quote@
1328 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_glib_objects-test-glib-objects.Po@am__quote@
1329@@ -917,6 +1068,8 @@
1330 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_gtk_reorder_server-test-gtk-reorder-server.Po@am__quote@
1331 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_gtk_shortcut_client-test-gtk-shortcut-client.Po@am__quote@
1332 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_gtk_shortcut_server-test-gtk-shortcut-server.Po@am__quote@
1333+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_json_client-test-json-client.Po@am__quote@
1334+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_json_server-test-json-server.Po@am__quote@
1335
1336 .c.o:
1337 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
1338@@ -942,6 +1095,14 @@
1339 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1340 @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
1341
1342+libdbusmenu_jsonloader_la-json-loader.lo: json-loader.c
1343+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbusmenu_jsonloader_la_CFLAGS) $(CFLAGS) -MT libdbusmenu_jsonloader_la-json-loader.lo -MD -MP -MF $(DEPDIR)/libdbusmenu_jsonloader_la-json-loader.Tpo -c -o libdbusmenu_jsonloader_la-json-loader.lo `test -f 'json-loader.c' || echo '$(srcdir)/'`json-loader.c
1344+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdbusmenu_jsonloader_la-json-loader.Tpo $(DEPDIR)/libdbusmenu_jsonloader_la-json-loader.Plo
1345+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
1346+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='json-loader.c' object='libdbusmenu_jsonloader_la-json-loader.lo' libtool=yes @AMDEPBACKSLASH@
1347+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1348+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdbusmenu_jsonloader_la_CFLAGS) $(CFLAGS) -c -o libdbusmenu_jsonloader_la-json-loader.lo `test -f 'json-loader.c' || echo '$(srcdir)/'`json-loader.c
1349+
1350 glib_server_nomenu-glib-server-nomenu.o: glib-server-nomenu.c
1351 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(glib_server_nomenu_CFLAGS) $(CFLAGS) -MT glib_server_nomenu-glib-server-nomenu.o -MD -MP -MF $(DEPDIR)/glib_server_nomenu-glib-server-nomenu.Tpo -c -o glib_server_nomenu-glib-server-nomenu.o `test -f 'glib-server-nomenu.c' || echo '$(srcdir)/'`glib-server-nomenu.c
1352 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/glib_server_nomenu-glib-server-nomenu.Tpo $(DEPDIR)/glib_server_nomenu-glib-server-nomenu.Po
1353@@ -1230,6 +1391,38 @@
1354 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1355 @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_gtk_shortcut_server_CFLAGS) $(CFLAGS) -c -o test_gtk_shortcut_server-test-gtk-shortcut-server.obj `if test -f 'test-gtk-shortcut-server.c'; then $(CYGPATH_W) 'test-gtk-shortcut-server.c'; else $(CYGPATH_W) '$(srcdir)/test-gtk-shortcut-server.c'; fi`
1356
1357+test_json_client-test-json-client.o: test-json-client.c
1358+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_json_client_CFLAGS) $(CFLAGS) -MT test_json_client-test-json-client.o -MD -MP -MF $(DEPDIR)/test_json_client-test-json-client.Tpo -c -o test_json_client-test-json-client.o `test -f 'test-json-client.c' || echo '$(srcdir)/'`test-json-client.c
1359+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_json_client-test-json-client.Tpo $(DEPDIR)/test_json_client-test-json-client.Po
1360+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
1361+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-json-client.c' object='test_json_client-test-json-client.o' libtool=no @AMDEPBACKSLASH@
1362+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1363+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_json_client_CFLAGS) $(CFLAGS) -c -o test_json_client-test-json-client.o `test -f 'test-json-client.c' || echo '$(srcdir)/'`test-json-client.c
1364+
1365+test_json_client-test-json-client.obj: test-json-client.c
1366+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_json_client_CFLAGS) $(CFLAGS) -MT test_json_client-test-json-client.obj -MD -MP -MF $(DEPDIR)/test_json_client-test-json-client.Tpo -c -o test_json_client-test-json-client.obj `if test -f 'test-json-client.c'; then $(CYGPATH_W) 'test-json-client.c'; else $(CYGPATH_W) '$(srcdir)/test-json-client.c'; fi`
1367+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_json_client-test-json-client.Tpo $(DEPDIR)/test_json_client-test-json-client.Po
1368+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
1369+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-json-client.c' object='test_json_client-test-json-client.obj' libtool=no @AMDEPBACKSLASH@
1370+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1371+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_json_client_CFLAGS) $(CFLAGS) -c -o test_json_client-test-json-client.obj `if test -f 'test-json-client.c'; then $(CYGPATH_W) 'test-json-client.c'; else $(CYGPATH_W) '$(srcdir)/test-json-client.c'; fi`
1372+
1373+test_json_server-test-json-server.o: test-json-server.c
1374+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_json_server_CFLAGS) $(CFLAGS) -MT test_json_server-test-json-server.o -MD -MP -MF $(DEPDIR)/test_json_server-test-json-server.Tpo -c -o test_json_server-test-json-server.o `test -f 'test-json-server.c' || echo '$(srcdir)/'`test-json-server.c
1375+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_json_server-test-json-server.Tpo $(DEPDIR)/test_json_server-test-json-server.Po
1376+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
1377+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-json-server.c' object='test_json_server-test-json-server.o' libtool=no @AMDEPBACKSLASH@
1378+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1379+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_json_server_CFLAGS) $(CFLAGS) -c -o test_json_server-test-json-server.o `test -f 'test-json-server.c' || echo '$(srcdir)/'`test-json-server.c
1380+
1381+test_json_server-test-json-server.obj: test-json-server.c
1382+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_json_server_CFLAGS) $(CFLAGS) -MT test_json_server-test-json-server.obj -MD -MP -MF $(DEPDIR)/test_json_server-test-json-server.Tpo -c -o test_json_server-test-json-server.obj `if test -f 'test-json-server.c'; then $(CYGPATH_W) 'test-json-server.c'; else $(CYGPATH_W) '$(srcdir)/test-json-server.c'; fi`
1383+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_json_server-test-json-server.Tpo $(DEPDIR)/test_json_server-test-json-server.Po
1384+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
1385+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-json-server.c' object='test_json_server-test-json-server.obj' libtool=no @AMDEPBACKSLASH@
1386+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1387+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_json_server_CFLAGS) $(CFLAGS) -c -o test_json_server-test-json-server.obj `if test -f 'test-json-server.c'; then $(CYGPATH_W) 'test-json-server.c'; else $(CYGPATH_W) '$(srcdir)/test-json-server.c'; fi`
1388+
1389 mostlyclean-libtool:
1390 -rm -f *.lo
1391
1392@@ -1275,6 +1468,46 @@
1393 test -n "$$files" || exit 0; \
1394 echo " ( cd '$(DESTDIR)$(jsondir)' && rm -f" $$files ")"; \
1395 cd "$(DESTDIR)$(jsondir)" && rm -f $$files
1396+install-pkgconfigDATA: $(pkgconfig_DATA)
1397+ @$(NORMAL_INSTALL)
1398+ test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
1399+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
1400+ for p in $$list; do \
1401+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
1402+ echo "$$d$$p"; \
1403+ done | $(am__base_list) | \
1404+ while read files; do \
1405+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
1406+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
1407+ done
1408+
1409+uninstall-pkgconfigDATA:
1410+ @$(NORMAL_UNINSTALL)
1411+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
1412+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
1413+ test -n "$$files" || exit 0; \
1414+ echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
1415+ cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
1416+install-libdbusmenu_jsonloaderincludeHEADERS: $(libdbusmenu_jsonloaderinclude_HEADERS)
1417+ @$(NORMAL_INSTALL)
1418+ test -z "$(libdbusmenu_jsonloaderincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libdbusmenu_jsonloaderincludedir)"
1419+ @list='$(libdbusmenu_jsonloaderinclude_HEADERS)'; test -n "$(libdbusmenu_jsonloaderincludedir)" || list=; \
1420+ for p in $$list; do \
1421+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
1422+ echo "$$d$$p"; \
1423+ done | $(am__base_list) | \
1424+ while read files; do \
1425+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libdbusmenu_jsonloaderincludedir)'"; \
1426+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libdbusmenu_jsonloaderincludedir)" || exit $$?; \
1427+ done
1428+
1429+uninstall-libdbusmenu_jsonloaderincludeHEADERS:
1430+ @$(NORMAL_UNINSTALL)
1431+ @list='$(libdbusmenu_jsonloaderinclude_HEADERS)'; test -n "$(libdbusmenu_jsonloaderincludedir)" || list=; \
1432+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
1433+ test -n "$$files" || exit 0; \
1434+ echo " ( cd '$(DESTDIR)$(libdbusmenu_jsonloaderincludedir)' && rm -f" $$files ")"; \
1435+ cd "$(DESTDIR)$(libdbusmenu_jsonloaderincludedir)" && rm -f $$files
1436
1437 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
1438 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
1439@@ -1454,9 +1687,9 @@
1440 $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
1441 $(MAKE) $(AM_MAKEFLAGS) check-TESTS
1442 check: check-am
1443-all-am: Makefile $(DATA)
1444+all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
1445 installdirs:
1446- for dir in "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(jsondir)"; do \
1447+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(jsondir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(libdbusmenu_jsonloaderincludedir)"; do \
1448 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
1449 done
1450 install: install-am
1451@@ -1488,8 +1721,8 @@
1452 @echo "it deletes files that may require special tools to rebuild."
1453 clean: clean-am
1454
1455-clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
1456- mostlyclean-am
1457+clean-am: clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \
1458+ clean-libtool mostlyclean-am
1459
1460 distclean: distclean-am
1461 -rm -rf ./$(DEPDIR)
1462@@ -1509,13 +1742,15 @@
1463
1464 info-am:
1465
1466-install-data-am: install-examplesDATA install-jsonDATA
1467+install-data-am: install-examplesDATA install-jsonDATA \
1468+ install-libdbusmenu_jsonloaderincludeHEADERS \
1469+ install-pkgconfigDATA
1470
1471 install-dvi: install-dvi-am
1472
1473 install-dvi-am:
1474
1475-install-exec-am:
1476+install-exec-am: install-libLTLIBRARIES
1477
1478 install-html: install-html-am
1479
1480@@ -1555,24 +1790,32 @@
1481
1482 ps-am:
1483
1484-uninstall-am: uninstall-examplesDATA uninstall-jsonDATA
1485+uninstall-am: uninstall-examplesDATA uninstall-jsonDATA \
1486+ uninstall-libLTLIBRARIES \
1487+ uninstall-libdbusmenu_jsonloaderincludeHEADERS \
1488+ uninstall-pkgconfigDATA
1489
1490 .MAKE: check-am install-am install-strip
1491
1492 .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
1493- clean-checkPROGRAMS clean-generic clean-libtool ctags \
1494- distclean distclean-compile distclean-generic \
1495- distclean-libtool distclean-local distclean-tags distdir dvi \
1496- dvi-am html html-am info info-am install install-am \
1497- install-data install-data-am install-dvi install-dvi-am \
1498- install-examplesDATA install-exec install-exec-am install-html \
1499- install-html-am install-info install-info-am install-jsonDATA \
1500- install-man install-pdf install-pdf-am install-ps \
1501+ clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \
1502+ clean-libtool ctags distclean distclean-compile \
1503+ distclean-generic distclean-libtool distclean-local \
1504+ distclean-tags distdir dvi dvi-am html html-am info info-am \
1505+ install install-am install-data install-data-am install-dvi \
1506+ install-dvi-am install-examplesDATA install-exec \
1507+ install-exec-am install-html install-html-am install-info \
1508+ install-info-am install-jsonDATA install-libLTLIBRARIES \
1509+ install-libdbusmenu_jsonloaderincludeHEADERS install-man \
1510+ install-pdf install-pdf-am install-pkgconfigDATA install-ps \
1511 install-ps-am install-strip installcheck installcheck-am \
1512 installdirs maintainer-clean maintainer-clean-generic \
1513 mostlyclean mostlyclean-compile mostlyclean-generic \
1514 mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
1515- uninstall-am uninstall-examplesDATA uninstall-jsonDATA
1516+ uninstall-am uninstall-examplesDATA uninstall-jsonDATA \
1517+ uninstall-libLTLIBRARIES \
1518+ uninstall-libdbusmenu_jsonloaderincludeHEADERS \
1519+ uninstall-pkgconfigDATA
1520
1521
1522 ######################
1523@@ -1585,6 +1828,17 @@
1524 @chmod +x $@
1525
1526 ######################
1527+# Test JSON
1528+######################
1529+
1530+test-json: test-json-client test-json-server Makefile.am
1531+ @echo "#!/bin/bash" > $@
1532+ @echo $(XVFB_RUN) >> $@
1533+ @echo $(DBUS_RUNNER) --task ./test-json-client --task-name Client --parameter $(top_builddir)/tools/dbusmenu-dumper --parameter test-json-01.output.json --ignore-return --task ./test-json-server --task-name Server --parameter $(srcdir)/test-json-01.json --ignore-return >> $@
1534+ @echo diff $(srcdir)/test-json-01.json test-json-01.output.json \> /dev/null >> $@
1535+ @chmod +x $@
1536+
1537+######################
1538 # Test Glib Submenu
1539 ######################
1540
1541
1542=== added file 'tests/dbusmenu-jsonloader.pc.in'
1543--- tests/dbusmenu-jsonloader.pc.in 1970-01-01 00:00:00 +0000
1544+++ tests/dbusmenu-jsonloader.pc.in 2010-07-01 14:04:28 +0000
1545@@ -0,0 +1,14 @@
1546+prefix=@prefix@
1547+exec_prefix=@exec_prefix@
1548+libdir=@libdir@
1549+bindir=@bindir@
1550+includedir=@includedir@
1551+
1552+Cflags: -I${includedir}/libdbusmenu-0.1
1553+Requires: dbus-glib-1,dbusmenu-glib,json-glib-1.0
1554+Libs: -L${libdir} -ldbusmenu-jsonloader
1555+
1556+Name: libdbusmenu-jsonloader
1557+Description: A small library to load JSON descriptions of menus. Mostly for testing.
1558+Version: @VERSION@
1559+
1560
1561=== added file 'tests/json-loader.c'
1562--- tests/json-loader.c 1970-01-01 00:00:00 +0000
1563+++ tests/json-loader.c 2010-07-01 14:04:28 +0000
1564@@ -0,0 +1,220 @@
1565+/*
1566+A loader to turn JSON into dbusmenu menuitems
1567+
1568+Copyright 2010 Canonical Ltd.
1569+
1570+Authors:
1571+ Ted Gould <ted@canonical.com>
1572+
1573+This program is free software: you can redistribute it and/or modify it
1574+under the terms of the GNU General Public License version 3, as published
1575+by the Free Software Foundation.
1576+
1577+This program is distributed in the hope that it will be useful, but
1578+WITHOUT ANY WARRANTY; without even the implied warranties of
1579+MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
1580+PURPOSE. See the GNU General Public License for more details.
1581+
1582+You should have received a copy of the GNU General Public License along
1583+with this program. If not, see <http://www.gnu.org/licenses/>.
1584+*/
1585+
1586+#include "json-loader.h"
1587+#include <dbus/dbus-gtype-specialized.h>
1588+
1589+static GValue *
1590+node2value (JsonNode * node)
1591+{
1592+ if (node == NULL) {
1593+ return NULL;
1594+ }
1595+
1596+ GValue * value = g_new0(GValue, 1);
1597+
1598+ if (JSON_NODE_TYPE(node) == JSON_NODE_VALUE) {
1599+ json_node_get_value(node, value);
1600+ return value;
1601+ }
1602+
1603+ if (JSON_NODE_TYPE(node) == JSON_NODE_ARRAY) {
1604+ JsonArray * array = json_node_get_array(node);
1605+ JsonNode * first = json_array_get_element(array, 0);
1606+
1607+ if (JSON_NODE_TYPE(first) == JSON_NODE_VALUE) {
1608+ GValue subvalue = {0};
1609+ json_node_get_value(first, &subvalue);
1610+
1611+ if (G_VALUE_TYPE(&subvalue) == G_TYPE_STRING) {
1612+ GArray * garray = g_array_sized_new(TRUE, TRUE, sizeof(gchar *), json_array_get_length(array));
1613+ g_value_init(value, G_TYPE_STRV);
1614+ g_value_take_boxed(value, garray->data);
1615+
1616+ int i;
1617+ for (i = 0; i < json_array_get_length(array); i++) {
1618+ const gchar * str = json_node_get_string(json_array_get_element(array, i));
1619+ gchar * dupstr = g_strdup(str);
1620+ g_array_append_val(garray, dupstr);
1621+ }
1622+
1623+ g_array_free(garray, FALSE);
1624+ } else {
1625+ GValueArray * varray = g_value_array_new(json_array_get_length(array));
1626+ g_value_init(value, G_TYPE_VALUE_ARRAY);
1627+ g_value_take_boxed(value, varray);
1628+
1629+ g_value_array_append(varray, &subvalue);
1630+ g_value_unset(&subvalue);
1631+
1632+ int i;
1633+ for (i = 1; i < json_array_get_length(array); i++) {
1634+ json_node_get_value(first, &subvalue);
1635+ g_value_array_append(varray, &subvalue);
1636+ g_value_unset(&subvalue);
1637+ }
1638+ }
1639+
1640+ } else {
1641+ GValue * subvalue = node2value(first);
1642+ GType type = dbus_g_type_get_collection("GPtrArray", G_VALUE_TYPE(subvalue));
1643+ gpointer * wrapper = dbus_g_type_specialized_construct(type);
1644+
1645+ g_value_init(value, type);
1646+ g_value_take_boxed(value, wrapper);
1647+
1648+ DBusGTypeSpecializedAppendContext ctx;
1649+ dbus_g_type_specialized_init_append(value, &ctx);
1650+
1651+ dbus_g_type_specialized_collection_append(&ctx, subvalue);
1652+ int i;
1653+ for (i = 1; i < json_array_get_length(array); i++) {
1654+ GValue * subvalue = node2value(node);
1655+ dbus_g_type_specialized_collection_append(&ctx, subvalue);
1656+ }
1657+
1658+ dbus_g_type_specialized_collection_end_append(&ctx);
1659+ }
1660+ }
1661+
1662+ if (JSON_NODE_TYPE(node) == JSON_NODE_OBJECT) {
1663+ JsonObject * obj = json_node_get_object(node);
1664+
1665+ GType type = dbus_g_type_get_map("GHashTable", G_TYPE_STRING, G_TYPE_VALUE);
1666+ GHashTable * hash = (GHashTable *)dbus_g_type_specialized_construct(type);
1667+
1668+ g_value_init(value, type);
1669+ g_value_take_boxed(value, hash);
1670+
1671+ DBusGTypeSpecializedAppendContext ctx;
1672+ dbus_g_type_specialized_init_append(value, &ctx);
1673+
1674+ GList * members = NULL;
1675+ for (members = json_object_get_members(obj); members != NULL; members = g_list_next(members)) {
1676+ const gchar * member = members->data;
1677+
1678+ JsonNode * lnode = json_object_get_member(obj, member);
1679+ GValue * value = node2value(lnode);
1680+
1681+ if (value != NULL) {
1682+ GValue name = {0};
1683+ g_value_init(&name, G_TYPE_STRING);
1684+ g_value_set_static_string(&name, member);
1685+
1686+ dbus_g_type_specialized_map_append(&ctx, &name, value);
1687+
1688+ g_value_unset(&name);
1689+ g_value_unset(value);
1690+ g_free(value);
1691+ }
1692+ }
1693+ }
1694+
1695+ return value;
1696+}
1697+
1698+static void
1699+set_props (DbusmenuMenuitem * mi, JsonObject * node)
1700+{
1701+ if (node == NULL) return;
1702+
1703+ GList * members = NULL;
1704+ for (members = json_object_get_members(node); members != NULL; members = g_list_next(members)) {
1705+ const gchar * member = members->data;
1706+
1707+ if (!g_strcmp0(member, "id")) { continue; }
1708+ if (!g_strcmp0(member, "submenu")) { continue; }
1709+
1710+ JsonNode * lnode = json_object_get_member(node, member);
1711+ GValue * value = node2value(lnode);
1712+
1713+ if (value != NULL) {
1714+ dbusmenu_menuitem_property_set_value(mi, member, value);
1715+ g_value_unset(value);
1716+ g_free(value);
1717+ }
1718+ }
1719+
1720+ return;
1721+}
1722+
1723+DbusmenuMenuitem *
1724+dbusmenu_json_build_from_node (const JsonNode * cnode)
1725+{
1726+ JsonNode * node = (JsonNode *)cnode; /* To match the jsonglib API :( */
1727+
1728+ if (node == NULL) return NULL;
1729+ if (JSON_NODE_TYPE(node) != JSON_NODE_OBJECT) return NULL;
1730+
1731+ JsonObject * layout = json_node_get_object(node);
1732+
1733+ DbusmenuMenuitem * local = NULL;
1734+ if (json_object_has_member(layout, "id")) {
1735+ JsonNode * node = json_object_get_member(layout, "id");
1736+ g_return_val_if_fail(JSON_NODE_TYPE(node) == JSON_NODE_VALUE, NULL);
1737+ local = dbusmenu_menuitem_new_with_id(json_node_get_int(node));
1738+ } else {
1739+ local = dbusmenu_menuitem_new();
1740+ }
1741+
1742+ set_props(local, layout);
1743+
1744+ if (json_object_has_member(layout, "submenu")) {
1745+ JsonNode * node = json_object_get_member(layout, "submenu");
1746+ g_return_val_if_fail(JSON_NODE_TYPE(node) == JSON_NODE_ARRAY, local);
1747+ JsonArray * array = json_node_get_array(node);
1748+ guint count;
1749+ for (count = 0; count < json_array_get_length(array); count++) {
1750+ DbusmenuMenuitem * child = dbusmenu_json_build_from_node(json_array_get_element(array, count));
1751+ if (child != NULL) {
1752+ dbusmenu_menuitem_child_append(local, child);
1753+ }
1754+ }
1755+ }
1756+
1757+ /* g_debug("Layout to menu return: 0x%X", (unsigned int)local); */
1758+ return local;
1759+}
1760+
1761+DbusmenuMenuitem *
1762+dbusmenu_json_build_from_file (const gchar * filename)
1763+{
1764+ JsonParser * parser = json_parser_new();
1765+
1766+ GError * error = NULL;
1767+ if (!json_parser_load_from_file(parser, filename, &error)) {
1768+ g_warning("Failed parsing file %s because: %s", filename, error->message);
1769+ g_error_free(error);
1770+ return NULL;
1771+ }
1772+
1773+ JsonNode * root_node = json_parser_get_root(parser);
1774+ if (JSON_NODE_TYPE(root_node) != JSON_NODE_OBJECT) {
1775+ g_warning("Root node is not an object, fail. It's an: %s", json_node_type_name(root_node));
1776+ return NULL;
1777+ }
1778+
1779+ DbusmenuMenuitem * mi = dbusmenu_json_build_from_node(root_node);
1780+
1781+ g_object_unref(parser);
1782+
1783+ return mi;
1784+}
1785
1786=== added file 'tests/json-loader.h'
1787--- tests/json-loader.h 1970-01-01 00:00:00 +0000
1788+++ tests/json-loader.h 2010-07-01 14:04:28 +0000
1789@@ -0,0 +1,31 @@
1790+/*
1791+A loader to turn JSON into dbusmenu menuitems
1792+
1793+Copyright 2010 Canonical Ltd.
1794+
1795+Authors:
1796+ Ted Gould <ted@canonical.com>
1797+
1798+This program is free software: you can redistribute it and/or modify it
1799+under the terms of the GNU General Public License version 3, as published
1800+by the Free Software Foundation.
1801+
1802+This program is distributed in the hope that it will be useful, but
1803+WITHOUT ANY WARRANTY; without even the implied warranties of
1804+MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
1805+PURPOSE. See the GNU General Public License for more details.
1806+
1807+You should have received a copy of the GNU General Public License along
1808+with this program. If not, see <http://www.gnu.org/licenses/>.
1809+*/
1810+
1811+#ifndef __DBUSMENU_JSON_LOADER_H__
1812+#define __DBUSMENU_JSON_LOADER_H__
1813+
1814+#include <libdbusmenu-glib/menuitem.h>
1815+#include <json-glib/json-glib.h>
1816+
1817+DbusmenuMenuitem * dbusmenu_json_build_from_node (const JsonNode * node);
1818+DbusmenuMenuitem * dbusmenu_json_build_from_file (const gchar * filename);
1819+
1820+#endif /* __DBUSMENU_JSON_LOADER_H__ */
1821
1822=== modified file 'tests/test-gtk-label-server.c'
1823--- tests/test-gtk-label-server.c 2010-02-04 19:04:28 +0000
1824+++ tests/test-gtk-label-server.c 2010-07-01 14:04:28 +0000
1825@@ -30,74 +30,7 @@
1826 #include <libdbusmenu-glib/server.h>
1827
1828 #include <json-glib/json-glib.h>
1829-
1830-static void
1831-menuitem_click(DbusmenuMenuitem * mi, guint32 time, gpointer user_data)
1832-{
1833- g_debug("Clicked on: %d @ %d", dbusmenu_menuitem_get_id(mi), time);
1834- return;
1835-}
1836-
1837-static void
1838-set_props (DbusmenuMenuitem * mi, JsonObject * node)
1839-{
1840- if (node == NULL) return;
1841-
1842- GList * members = NULL;
1843- for (members = json_object_get_members(node); members != NULL; members = g_list_next(members)) {
1844- const gchar * member = members->data;
1845-
1846- if (!g_strcmp0(member, "id")) { continue; }
1847- if (!g_strcmp0(member, "submenu")) { continue; }
1848-
1849- JsonNode * lnode = json_object_get_member(node, member);
1850- if (JSON_NODE_TYPE(lnode) != JSON_NODE_VALUE) { continue; }
1851-
1852- GValue value = {0};
1853- json_node_get_value(lnode, &value);
1854- dbusmenu_menuitem_property_set_value(mi, member, &value);
1855- g_value_unset(&value);
1856- }
1857-
1858- return;
1859-}
1860-
1861-static DbusmenuMenuitem *
1862-layout2menuitem (JsonNode * inlayout)
1863-{
1864- if (inlayout == NULL) return NULL;
1865- if (JSON_NODE_TYPE(inlayout) != JSON_NODE_OBJECT) return NULL;
1866-
1867- JsonObject * layout = json_node_get_object(inlayout);
1868-
1869- DbusmenuMenuitem * local = NULL;
1870- if (json_object_has_member(layout, "id")) {
1871- JsonNode * node = json_object_get_member(layout, "id");
1872- g_return_val_if_fail(JSON_NODE_TYPE(node) == JSON_NODE_VALUE, NULL);
1873- local = dbusmenu_menuitem_new_with_id(json_node_get_int(node));
1874- } else {
1875- local = dbusmenu_menuitem_new();
1876- }
1877- g_signal_connect(G_OBJECT(local), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(menuitem_click), NULL);
1878-
1879- set_props(local, layout);
1880-
1881- if (json_object_has_member(layout, "submenu")) {
1882- JsonNode * node = json_object_get_member(layout, "submenu");
1883- g_return_val_if_fail(JSON_NODE_TYPE(node) == JSON_NODE_ARRAY, local);
1884- JsonArray * array = json_node_get_array(node);
1885- guint count;
1886- for (count = 0; count < json_array_get_length(array); count++) {
1887- DbusmenuMenuitem * child = layout2menuitem(json_array_get_element(array, count));
1888- if (child != NULL) {
1889- dbusmenu_menuitem_child_append(local, child);
1890- }
1891- }
1892- }
1893-
1894- /* g_debug("Layout to menu return: 0x%X", (unsigned int)local); */
1895- return local;
1896-}
1897+#include "json-loader.h"
1898
1899 static JsonArray * root_array = NULL;
1900 static guint layouton = 0;
1901@@ -114,7 +47,7 @@
1902 }
1903 g_debug("Updating to Layout %d", layouton);
1904
1905- dbusmenu_server_set_root(server, layout2menuitem(json_array_get_element(root_array, layouton)));
1906+ dbusmenu_server_set_root(server, dbusmenu_json_build_from_node(json_array_get_element(root_array, layouton)));
1907 layouton++;
1908
1909 return TRUE;
1910
1911=== added file 'tests/test-json-01.json'
1912--- tests/test-json-01.json 1970-01-01 00:00:00 +0000
1913+++ tests/test-json-01.json 2010-07-01 14:04:28 +0000
1914@@ -0,0 +1,4023 @@
1915+{
1916+ "id": 0,
1917+ "children-display": "submenu",
1918+ "submenu": [
1919+ {
1920+ "id": 5,
1921+ "enabled": true,
1922+ "label": "File",
1923+ "children-display": "submenu",
1924+ "visible": true,
1925+ "submenu": [
1926+ {
1927+ "id": 6,
1928+ "shortcut": [["Control", "q"]],
1929+ "enabled": true,
1930+ "label": "Quit",
1931+ "visible": true
1932+ },
1933+ {
1934+ "id": 7,
1935+ "shortcut": [["Control", "Shift", "w"]],
1936+ "enabled": true,
1937+ "label": "Close all",
1938+ "visible": true
1939+ },
1940+ {
1941+ "id": 8,
1942+ "shortcut": [["Control", "w"]],
1943+ "enabled": true,
1944+ "label": "Close",
1945+ "visible": true
1946+ },
1947+ {
1948+ "id": 9,
1949+ "type": "separator"
1950+ },
1951+ {
1952+ "id": 10,
1953+ "enabled": true,
1954+ "label": "Send by Email...",
1955+ "visible": true
1956+ },
1957+ {
1958+ "id": 11,
1959+ "shortcut": [["Control", "p"]],
1960+ "enabled": true,
1961+ "label": "Print...",
1962+ "visible": true
1963+ },
1964+ {
1965+ "id": 12,
1966+ "enabled": true,
1967+ "label": "Page Setup",
1968+ "visible": true
1969+ },
1970+ {
1971+ "id": 13,
1972+ "type": "separator"
1973+ },
1974+ {
1975+ "id": 14,
1976+ "enabled": true,
1977+ "label": "Revert",
1978+ "visible": true
1979+ },
1980+ {
1981+ "id": 15,
1982+ "enabled": true,
1983+ "label": "Save as Template...",
1984+ "visible": true
1985+ },
1986+ {
1987+ "id": 16,
1988+ "enabled": true,
1989+ "label": "Save a Copy...",
1990+ "visible": true
1991+ },
1992+ {
1993+ "id": 17,
1994+ "shortcut": [["Control", "Shift", "s"]],
1995+ "enabled": true,
1996+ "label": "Save As...",
1997+ "visible": true
1998+ },
1999+ {
2000+ "id": 18,
2001+ "shortcut": [["Control", "s"]],
2002+ "enabled": true,
2003+ "label": "Save",
2004+ "visible": true
2005+ },
2006+ {
2007+ "id": 19,
2008+ "type": "separator"
2009+ },
2010+ {
2011+ "id": 20,
2012+ "enabled": true,
2013+ "label": "Open Recent",
2014+ "children-display": "submenu",
2015+ "visible": true,
2016+ "submenu": [
2017+ {
2018+ "id": 21,
2019+ "enabled": true,
2020+ "label": "Document History",
2021+ "visible": true
2022+ },
2023+ {
2024+ "id": 22,
2025+ "type": "separator"
2026+ },
2027+ {
2028+ "id": 23,
2029+ "shortcut": [["Control", "2"]],
2030+ "enabled": true,
2031+ "label": "giggity.jpg",
2032+ "visible": true
2033+ },
2034+ {
2035+ "id": 24,
2036+ "shortcut": [["Control", "1"]],
2037+ "enabled": true,
2038+ "label": "Icon Height.svg",
2039+ "visible": true
2040+ }
2041+ ]
2042+ },
2043+ {
2044+ "id": 25,
2045+ "enabled": true,
2046+ "label": "Open Location...",
2047+ "visible": true
2048+ },
2049+ {
2050+ "id": 26,
2051+ "shortcut": [["Control", "Alt", "o"]],
2052+ "enabled": true,
2053+ "label": "Open as Layers...",
2054+ "visible": true
2055+ },
2056+ {
2057+ "id": 27,
2058+ "shortcut": [["Control", "o"]],
2059+ "enabled": true,
2060+ "label": "Open...",
2061+ "visible": true
2062+ },
2063+ {
2064+ "id": 28,
2065+ "enabled": true,
2066+ "label": "Create",
2067+ "children-display": "submenu",
2068+ "visible": true,
2069+ "submenu": [
2070+ {
2071+ "id": 29,
2072+ "enabled": true,
2073+ "label": "Web Page Themes",
2074+ "children-display": "submenu",
2075+ "visible": true,
2076+ "submenu": [
2077+ {
2078+ "id": 30,
2079+ "enabled": true,
2080+ "label": "Classic.Gimp.Org",
2081+ "children-display": "submenu",
2082+ "visible": true,
2083+ "submenu": [
2084+ {
2085+ "id": 31,
2086+ "enabled": true,
2087+ "label": "Tube Sub-Sub-Button Label...",
2088+ "visible": true
2089+ },
2090+ {
2091+ "id": 32,
2092+ "enabled": true,
2093+ "label": "Tube Sub-Button Label...",
2094+ "visible": true
2095+ },
2096+ {
2097+ "id": 33,
2098+ "enabled": true,
2099+ "label": "Tube Button Label...",
2100+ "visible": true
2101+ },
2102+ {
2103+ "id": 34,
2104+ "enabled": true,
2105+ "label": "Small Header...",
2106+ "visible": true
2107+ },
2108+ {
2109+ "id": 35,
2110+ "enabled": true,
2111+ "label": "General Tube Labels...",
2112+ "visible": true
2113+ },
2114+ {
2115+ "id": 36,
2116+ "enabled": true,
2117+ "label": "Big Header...",
2118+ "visible": true
2119+ }
2120+ ]
2121+ },
2122+ {
2123+ "id": 37,
2124+ "enabled": true,
2125+ "label": "Beveled Pattern",
2126+ "children-display": "submenu",
2127+ "visible": true,
2128+ "submenu": [
2129+ {
2130+ "id": 38,
2131+ "enabled": true,
2132+ "label": "Hrule...",
2133+ "visible": true
2134+ },
2135+ {
2136+ "id": 39,
2137+ "enabled": true,
2138+ "label": "Heading...",
2139+ "visible": true
2140+ },
2141+ {
2142+ "id": 40,
2143+ "enabled": true,
2144+ "label": "Button...",
2145+ "visible": true
2146+ },
2147+ {
2148+ "id": 41,
2149+ "enabled": true,
2150+ "label": "Bullet...",
2151+ "visible": true
2152+ },
2153+ {
2154+ "id": 42,
2155+ "enabled": true,
2156+ "label": "Arrow...",
2157+ "visible": true
2158+ }
2159+ ]
2160+ },
2161+ {
2162+ "id": 43,
2163+ "enabled": true,
2164+ "label": "Alien Glow",
2165+ "children-display": "submenu",
2166+ "visible": true,
2167+ "submenu": [
2168+ {
2169+ "id": 44,
2170+ "enabled": true,
2171+ "label": "Hrule...",
2172+ "visible": true
2173+ },
2174+ {
2175+ "id": 45,
2176+ "enabled": true,
2177+ "label": "Button...",
2178+ "visible": true
2179+ },
2180+ {
2181+ "id": 46,
2182+ "enabled": true,
2183+ "label": "Bullet...",
2184+ "visible": true
2185+ },
2186+ {
2187+ "id": 47,
2188+ "enabled": true,
2189+ "label": "Arrow...",
2190+ "visible": true
2191+ }
2192+ ]
2193+ }
2194+ ]
2195+ },
2196+ {
2197+ "id": 48,
2198+ "enabled": true,
2199+ "label": "Patterns",
2200+ "children-display": "submenu",
2201+ "visible": true,
2202+ "submenu": [
2203+ {
2204+ "id": 49,
2205+ "enabled": true,
2206+ "label": "Truchet...",
2207+ "visible": true
2208+ },
2209+ {
2210+ "id": 50,
2211+ "enabled": true,
2212+ "label": "Swirly...",
2213+ "visible": true
2214+ },
2215+ {
2216+ "id": 51,
2217+ "enabled": true,
2218+ "label": "Swirl-Tile...",
2219+ "visible": true
2220+ },
2221+ {
2222+ "id": 52,
2223+ "enabled": true,
2224+ "label": "Render Map...",
2225+ "visible": true
2226+ },
2227+ {
2228+ "id": 53,
2229+ "enabled": true,
2230+ "label": "Land...",
2231+ "visible": true
2232+ },
2233+ {
2234+ "id": 54,
2235+ "enabled": true,
2236+ "label": "Flatland...",
2237+ "visible": true
2238+ },
2239+ {
2240+ "id": 55,
2241+ "enabled": true,
2242+ "label": "Camouflage...",
2243+ "visible": true
2244+ },
2245+ {
2246+ "id": 56,
2247+ "enabled": true,
2248+ "label": "3D Truchet...",
2249+ "visible": true
2250+ }
2251+ ]
2252+ },
2253+ {
2254+ "id": 57,
2255+ "enabled": true,
2256+ "label": "Logos",
2257+ "children-display": "submenu",
2258+ "visible": true,
2259+ "submenu": [
2260+ {
2261+ "id": 58,
2262+ "enabled": true,
2263+ "label": "Web Title Header...",
2264+ "visible": true
2265+ },
2266+ {
2267+ "id": 59,
2268+ "enabled": true,
2269+ "label": "Textured...",
2270+ "visible": true
2271+ },
2272+ {
2273+ "id": 60,
2274+ "enabled": true,
2275+ "label": "Text Circle...",
2276+ "visible": true
2277+ },
2278+ {
2279+ "id": 61,
2280+ "enabled": true,
2281+ "label": "Starscape...",
2282+ "visible": true
2283+ },
2284+ {
2285+ "id": 62,
2286+ "enabled": true,
2287+ "label": "Speed Text...",
2288+ "visible": true
2289+ },
2290+ {
2291+ "id": 63,
2292+ "enabled": true,
2293+ "label": "SOTA Chrome...",
2294+ "visible": true
2295+ },
2296+ {
2297+ "id": 64,
2298+ "enabled": true,
2299+ "label": "Particle Trace...",
2300+ "visible": true
2301+ },
2302+ {
2303+ "id": 65,
2304+ "enabled": true,
2305+ "label": "Newsprint Text...",
2306+ "visible": true
2307+ },
2308+ {
2309+ "id": 66,
2310+ "enabled": true,
2311+ "label": "Neon...",
2312+ "visible": true
2313+ },
2314+ {
2315+ "id": 67,
2316+ "enabled": true,
2317+ "label": "Imigre-26...",
2318+ "visible": true
2319+ },
2320+ {
2321+ "id": 68,
2322+ "enabled": true,
2323+ "label": "Gradient Bevel...",
2324+ "visible": true
2325+ },
2326+ {
2327+ "id": 69,
2328+ "enabled": true,
2329+ "label": "Glowing Hot...",
2330+ "visible": true
2331+ },
2332+ {
2333+ "id": 70,
2334+ "enabled": true,
2335+ "label": "Glossy...",
2336+ "visible": true
2337+ },
2338+ {
2339+ "id": 71,
2340+ "enabled": true,
2341+ "label": "Frosty...",
2342+ "visible": true
2343+ },
2344+ {
2345+ "id": 72,
2346+ "enabled": true,
2347+ "label": "Crystal...",
2348+ "visible": true
2349+ },
2350+ {
2351+ "id": 73,
2352+ "enabled": true,
2353+ "label": "Cool Metal...",
2354+ "visible": true
2355+ },
2356+ {
2357+ "id": 74,
2358+ "enabled": true,
2359+ "label": "Comic Book...",
2360+ "visible": true
2361+ },
2362+ {
2363+ "id": 75,
2364+ "enabled": true,
2365+ "label": "Chrome...",
2366+ "visible": true
2367+ },
2368+ {
2369+ "id": 76,
2370+ "enabled": true,
2371+ "label": "Chip Away...",
2372+ "visible": true
2373+ },
2374+ {
2375+ "id": 77,
2376+ "enabled": true,
2377+ "label": "Chalk...",
2378+ "visible": true
2379+ },
2380+ {
2381+ "id": 78,
2382+ "enabled": true,
2383+ "label": "Carved...",
2384+ "visible": true
2385+ },
2386+ {
2387+ "id": 79,
2388+ "enabled": true,
2389+ "label": "Bovination...",
2390+ "visible": true
2391+ },
2392+ {
2393+ "id": 80,
2394+ "enabled": true,
2395+ "label": "Blended...",
2396+ "visible": true
2397+ },
2398+ {
2399+ "id": 81,
2400+ "enabled": true,
2401+ "label": "Basic I...",
2402+ "visible": true
2403+ },
2404+ {
2405+ "id": 82,
2406+ "enabled": true,
2407+ "label": "Basic II...",
2408+ "visible": true
2409+ },
2410+ {
2411+ "id": 83,
2412+ "enabled": true,
2413+ "label": "Alien Neon...",
2414+ "visible": true
2415+ },
2416+ {
2417+ "id": 84,
2418+ "enabled": true,
2419+ "label": "Alien Glow...",
2420+ "visible": true
2421+ },
2422+ {
2423+ "id": 85,
2424+ "enabled": true,
2425+ "label": "3D Outline...",
2426+ "visible": true
2427+ }
2428+ ]
2429+ },
2430+ {
2431+ "id": 86,
2432+ "enabled": true,
2433+ "label": "Buttons",
2434+ "children-display": "submenu",
2435+ "visible": true,
2436+ "submenu": [
2437+ {
2438+ "id": 87,
2439+ "enabled": true,
2440+ "label": "Simple Beveled Button...",
2441+ "visible": true
2442+ },
2443+ {
2444+ "id": 88,
2445+ "enabled": true,
2446+ "label": "Round Button...",
2447+ "visible": true
2448+ }
2449+ ]
2450+ },
2451+ {
2452+ "id": 89,
2453+ "type": "separator"
2454+ },
2455+ {
2456+ "id": 90,
2457+ "enabled": true,
2458+ "label": "xscanimage",
2459+ "children-display": "submenu",
2460+ "visible": true,
2461+ "submenu": [
2462+ {
2463+ "id": 91,
2464+ "enabled": false,
2465+ "label": "Device dialog...",
2466+ "visible": true
2467+ }
2468+ ]
2469+ },
2470+ {
2471+ "id": 92,
2472+ "enabled": true,
2473+ "label": "Screenshot...",
2474+ "visible": true
2475+ },
2476+ {
2477+ "id": 93,
2478+ "shortcut": [["Control", "Shift", "v"]],
2479+ "enabled": true,
2480+ "label": "From Clipboard",
2481+ "visible": true
2482+ }
2483+ ]
2484+ },
2485+ {
2486+ "id": 94,
2487+ "shortcut": [["Control", "n"]],
2488+ "enabled": true,
2489+ "label": "New...",
2490+ "visible": true
2491+ }
2492+ ]
2493+ },
2494+ {
2495+ "id": 95,
2496+ "enabled": true,
2497+ "label": "Edit",
2498+ "children-display": "submenu",
2499+ "visible": true,
2500+ "submenu": [
2501+ {
2502+ "id": 96,
2503+ "enabled": true,
2504+ "label": "Units",
2505+ "visible": true
2506+ },
2507+ {
2508+ "id": 97,
2509+ "enabled": true,
2510+ "label": "Modules",
2511+ "visible": true
2512+ },
2513+ {
2514+ "id": 98,
2515+ "enabled": true,
2516+ "label": "Keyboard Shortcuts",
2517+ "visible": true
2518+ },
2519+ {
2520+ "id": 99,
2521+ "enabled": true,
2522+ "label": "Preferences",
2523+ "visible": true
2524+ },
2525+ {
2526+ "id": 100,
2527+ "type": "separator"
2528+ },
2529+ {
2530+ "id": 101,
2531+ "enabled": false,
2532+ "label": "Stroke Path...",
2533+ "visible": true
2534+ },
2535+ {
2536+ "id": 102,
2537+ "enabled": false,
2538+ "label": "Stroke Selection...",
2539+ "visible": true
2540+ },
2541+ {
2542+ "id": 103,
2543+ "shortcut": [["Control", "semicolon"]],
2544+ "enabled": true,
2545+ "label": "Fill with Pattern",
2546+ "visible": true
2547+ },
2548+ {
2549+ "id": 104,
2550+ "shortcut": [["Control", "period"]],
2551+ "enabled": true,
2552+ "label": "Fill with BG Color",
2553+ "visible": true
2554+ },
2555+ {
2556+ "id": 105,
2557+ "shortcut": [["Control", "comma"]],
2558+ "enabled": true,
2559+ "label": "Fill with FG Color",
2560+ "visible": true
2561+ },
2562+ {
2563+ "id": 106,
2564+ "shortcut": [["Delete"]],
2565+ "enabled": true,
2566+ "label": "Clear",
2567+ "visible": true
2568+ },
2569+ {
2570+ "id": 107,
2571+ "type": "separator"
2572+ },
2573+ {
2574+ "id": 108,
2575+ "enabled": true,
2576+ "label": "Buffer",
2577+ "children-display": "submenu",
2578+ "visible": true,
2579+ "submenu": [
2580+ {
2581+ "id": 109,
2582+ "enabled": true,
2583+ "label": "Paste Named...",
2584+ "visible": true
2585+ },
2586+ {
2587+ "id": 110,
2588+ "enabled": true,
2589+ "label": "Copy Visible Named...",
2590+ "visible": true
2591+ },
2592+ {
2593+ "id": 111,
2594+ "enabled": true,
2595+ "label": "Copy Named...",
2596+ "visible": true
2597+ },
2598+ {
2599+ "id": 112,
2600+ "enabled": true,
2601+ "label": "Cut Named...",
2602+ "visible": true
2603+ }
2604+ ]
2605+ },
2606+ {
2607+ "id": 113,
2608+ "enabled": true,
2609+ "label": "Paste as",
2610+ "children-display": "submenu",
2611+ "visible": true,
2612+ "submenu": [
2613+ {
2614+ "id": 114,
2615+ "enabled": true,
2616+ "label": "New Pattern...",
2617+ "visible": true
2618+ },
2619+ {
2620+ "id": 115,
2621+ "enabled": true,
2622+ "label": "New Brush...",
2623+ "visible": true
2624+ },
2625+ {
2626+ "id": 116,
2627+ "enabled": true,
2628+ "label": "New Layer",
2629+ "visible": true
2630+ },
2631+ {
2632+ "id": 117,
2633+ "shortcut": [["Control", "Shift", "v"]],
2634+ "enabled": true,
2635+ "label": "New Image",
2636+ "visible": true
2637+ }
2638+ ]
2639+ },
2640+ {
2641+ "id": 118,
2642+ "enabled": true,
2643+ "label": "Paste Into",
2644+ "visible": true
2645+ },
2646+ {
2647+ "id": 119,
2648+ "shortcut": [["Control", "v"]],
2649+ "enabled": true,
2650+ "label": "Paste",
2651+ "visible": true
2652+ },
2653+ {
2654+ "id": 120,
2655+ "shortcut": [["Control", "Shift", "c"]],
2656+ "enabled": true,
2657+ "label": "Copy Visible",
2658+ "visible": true
2659+ },
2660+ {
2661+ "id": 121,
2662+ "shortcut": [["Control", "c"]],
2663+ "enabled": true,
2664+ "label": "Copy",
2665+ "visible": true
2666+ },
2667+ {
2668+ "id": 122,
2669+ "shortcut": [["Control", "x"]],
2670+ "enabled": true,
2671+ "label": "Cut",
2672+ "visible": true
2673+ },
2674+ {
2675+ "id": 123,
2676+ "type": "separator"
2677+ },
2678+ {
2679+ "id": 124,
2680+ "enabled": true,
2681+ "label": "Undo History",
2682+ "visible": true
2683+ },
2684+ {
2685+ "id": 3,
2686+ "enabled": false,
2687+ "label": "_Fade...",
2688+ "visible": true
2689+ },
2690+ {
2691+ "id": 2,
2692+ "shortcut": [["Control", "y"]],
2693+ "enabled": false,
2694+ "label": "_Redo",
2695+ "visible": true
2696+ },
2697+ {
2698+ "id": 1,
2699+ "shortcut": [["Control", "z"]],
2700+ "enabled": false,
2701+ "label": "_Undo",
2702+ "visible": true
2703+ }
2704+ ]
2705+ },
2706+ {
2707+ "id": 125,
2708+ "enabled": true,
2709+ "label": "Select",
2710+ "children-display": "submenu",
2711+ "visible": true,
2712+ "submenu": [
2713+ {
2714+ "id": 126,
2715+ "enabled": false,
2716+ "label": "To Path",
2717+ "visible": true
2718+ },
2719+ {
2720+ "id": 127,
2721+ "enabled": true,
2722+ "label": "Save to Channel",
2723+ "visible": true
2724+ },
2725+ {
2726+ "id": 128,
2727+ "shortcut": [["Shift", "q"]],
2728+ "enabled": true,
2729+ "toggle-state": 0,
2730+ "label": "Toggle Quick Mask",
2731+ "toggle-type": "checkmark",
2732+ "visible": true
2733+ },
2734+ {
2735+ "id": 129,
2736+ "type": "separator"
2737+ },
2738+ {
2739+ "id": 130,
2740+ "enabled": true,
2741+ "label": "Distort...",
2742+ "visible": true
2743+ },
2744+ {
2745+ "id": 131,
2746+ "enabled": false,
2747+ "label": "Border...",
2748+ "visible": true
2749+ },
2750+ {
2751+ "id": 132,
2752+ "enabled": false,
2753+ "label": "Grow...",
2754+ "visible": true
2755+ },
2756+ {
2757+ "id": 133,
2758+ "enabled": false,
2759+ "label": "Shrink...",
2760+ "visible": true
2761+ },
2762+ {
2763+ "id": 134,
2764+ "enabled": false,
2765+ "label": "Sharpen",
2766+ "visible": true
2767+ },
2768+ {
2769+ "id": 135,
2770+ "enabled": false,
2771+ "label": "Feather...",
2772+ "visible": true
2773+ },
2774+ {
2775+ "id": 136,
2776+ "type": "separator"
2777+ },
2778+ {
2779+ "id": 137,
2780+ "enabled": true,
2781+ "label": "Selection Editor",
2782+ "visible": true
2783+ },
2784+ {
2785+ "id": 138,
2786+ "shortcut": [["Shift", "v"]],
2787+ "enabled": false,
2788+ "label": "From Path",
2789+ "visible": true
2790+ },
2791+ {
2792+ "id": 139,
2793+ "shortcut": [["Shift", "o"]],
2794+ "enabled": true,
2795+ "label": "By Color",
2796+ "visible": true
2797+ },
2798+ {
2799+ "id": 140,
2800+ "shortcut": [["Control", "Shift", "l"]],
2801+ "enabled": false,
2802+ "label": "Float",
2803+ "visible": true
2804+ },
2805+ {
2806+ "id": 141,
2807+ "shortcut": [["Control", "i"]],
2808+ "enabled": true,
2809+ "label": "Invert",
2810+ "visible": true
2811+ },
2812+ {
2813+ "id": 142,
2814+ "shortcut": [["Control", "Shift", "a"]],
2815+ "enabled": false,
2816+ "label": "None",
2817+ "visible": true
2818+ },
2819+ {
2820+ "id": 143,
2821+ "shortcut": [["Control", "a"]],
2822+ "enabled": true,
2823+ "label": "All",
2824+ "visible": true
2825+ }
2826+ ]
2827+ },
2828+ {
2829+ "id": 144,
2830+ "enabled": true,
2831+ "label": "View",
2832+ "children-display": "submenu",
2833+ "visible": true,
2834+ "submenu": [
2835+ {
2836+ "id": 145,
2837+ "enabled": true,
2838+ "toggle-state": 1,
2839+ "label": "Show Statusbar",
2840+ "toggle-type": "checkmark",
2841+ "visible": true
2842+ },
2843+ {
2844+ "id": 146,
2845+ "enabled": true,
2846+ "toggle-state": 0,
2847+ "label": "Show Scrollbars",
2848+ "toggle-type": "checkmark",
2849+ "visible": true
2850+ },
2851+ {
2852+ "id": 147,
2853+ "shortcut": [["Control", "Shift", "r"]],
2854+ "enabled": true,
2855+ "toggle-state": 0,
2856+ "label": "Show Rulers",
2857+ "toggle-type": "checkmark",
2858+ "visible": true
2859+ },
2860+ {
2861+ "id": 148,
2862+ "enabled": true,
2863+ "toggle-state": 1,
2864+ "label": "Show Menubar",
2865+ "toggle-type": "checkmark",
2866+ "visible": true
2867+ },
2868+ {
2869+ "id": 149,
2870+ "enabled": true,
2871+ "label": "Padding Color",
2872+ "children-display": "submenu",
2873+ "visible": true,
2874+ "submenu": [
2875+ {
2876+ "id": 150,
2877+ "enabled": true,
2878+ "label": "As in Preferences",
2879+ "visible": true
2880+ },
2881+ {
2882+ "id": 151,
2883+ "type": "separator"
2884+ },
2885+ {
2886+ "id": 152,
2887+ "enabled": true,
2888+ "label": "Select Custom Color...",
2889+ "visible": true
2890+ },
2891+ {
2892+ "id": 153,
2893+ "enabled": true,
2894+ "label": "Dark Check Color",
2895+ "visible": true
2896+ },
2897+ {
2898+ "id": 154,
2899+ "enabled": true,
2900+ "label": "Light Check Color",
2901+ "visible": true
2902+ },
2903+ {
2904+ "id": 155,
2905+ "enabled": true,
2906+ "label": "From Theme",
2907+ "visible": true
2908+ }
2909+ ]
2910+ },
2911+ {
2912+ "id": 156,
2913+ "type": "separator"
2914+ },
2915+ {
2916+ "id": 157,
2917+ "enabled": true,
2918+ "toggle-state": 0,
2919+ "label": "Snap to Active Path",
2920+ "toggle-type": "checkmark",
2921+ "visible": true
2922+ },
2923+ {
2924+ "id": 158,
2925+ "enabled": true,
2926+ "toggle-state": 0,
2927+ "label": "Snap to Canvas Edges",
2928+ "toggle-type": "checkmark",
2929+ "visible": true
2930+ },
2931+ {
2932+ "id": 159,
2933+ "enabled": true,
2934+ "toggle-state": 0,
2935+ "label": "Snap to Grid",
2936+ "toggle-type": "checkmark",
2937+ "visible": true
2938+ },
2939+ {
2940+ "id": 160,
2941+ "enabled": true,
2942+ "toggle-state": 1,
2943+ "label": "Snap to Guides",
2944+ "toggle-type": "checkmark",
2945+ "visible": true
2946+ },
2947+ {
2948+ "id": 161,
2949+ "type": "separator"
2950+ },
2951+ {
2952+ "id": 162,
2953+ "enabled": true,
2954+ "toggle-state": 0,
2955+ "label": "Show Sample Points",
2956+ "toggle-type": "checkmark",
2957+ "visible": true
2958+ },
2959+ {
2960+ "id": 163,
2961+ "enabled": true,
2962+ "toggle-state": 0,
2963+ "label": "Show Grid",
2964+ "toggle-type": "checkmark",
2965+ "visible": true
2966+ },
2967+ {
2968+ "id": 164,
2969+ "shortcut": [["Control", "Shift", "t"]],
2970+ "enabled": true,
2971+ "toggle-state": 0,
2972+ "label": "Show Guides",
2973+ "toggle-type": "checkmark",
2974+ "visible": true
2975+ },
2976+ {
2977+ "id": 165,
2978+ "enabled": true,
2979+ "toggle-state": 0,
2980+ "label": "Show Layer Boundary",
2981+ "toggle-type": "checkmark",
2982+ "visible": true
2983+ },
2984+ {
2985+ "id": 166,
2986+ "shortcut": [["Control", "t"]],
2987+ "enabled": true,
2988+ "toggle-state": 0,
2989+ "label": "Show Selection",
2990+ "toggle-type": "checkmark",
2991+ "visible": true
2992+ },
2993+ {
2994+ "id": 167,
2995+ "type": "separator"
2996+ },
2997+ {
2998+ "id": 168,
2999+ "enabled": true,
3000+ "label": "Display Filters...",
3001+ "visible": true
3002+ },
3003+ {
3004+ "id": 169,
3005+ "enabled": true,
3006+ "label": "Navigation Window",
3007+ "visible": true
3008+ },
3009+ {
3010+ "id": 170,
3011+ "type": "separator"
3012+ },
3013+ {
3014+ "id": 171,
3015+ "enabled": true,
3016+ "shortcut": [["F11"]],
3017+ "toggle-state": 0,
3018+ "label": "Fullscreen",
3019+ "toggle-type": "checkmark",
3020+ "children-display": "submenu",
3021+ "visible": true,
3022+ "submenu": [
3023+ {
3024+ "id": 172,
3025+ "enabled": true,
3026+ "label": "Open Display...",
3027+ "visible": true
3028+ }
3029+ ]
3030+ },
3031+ {
3032+ "id": 173,
3033+ "shortcut": [["Control", "e"]],
3034+ "enabled": true,
3035+ "label": "Shrink Wrap",
3036+ "visible": true
3037+ },
3038+ {
3039+ "id": 174,
3040+ "type": "separator"
3041+ },
3042+ {
3043+ "id": 175,
3044+ "enabled": true,
3045+ "label": "_Zoom (67%)",
3046+ "children-display": "submenu",
3047+ "visible": true,
3048+ "submenu": [
3049+ {
3050+ "id": 176,
3051+ "enabled": true,
3052+ "toggle-state": 0,
3053+ "label": "Othe_r (67%)...",
3054+ "toggle-type": "checkmark",
3055+ "visible": true
3056+ },
3057+ {
3058+ "id": 177,
3059+ "type": "separator"
3060+ },
3061+ {
3062+ "id": 178,
3063+ "enabled": true,
3064+ "toggle-state": 0,
3065+ "label": "1:16 (6.25%)",
3066+ "toggle-type": "checkmark",
3067+ "visible": true
3068+ },
3069+ {
3070+ "id": 179,
3071+ "enabled": true,
3072+ "toggle-state": 0,
3073+ "label": "1:8 (12.5%)",
3074+ "toggle-type": "checkmark",
3075+ "visible": true
3076+ },
3077+ {
3078+ "id": 180,
3079+ "enabled": true,
3080+ "toggle-state": 0,
3081+ "label": "1:4 (25%)",
3082+ "toggle-type": "checkmark",
3083+ "visible": true
3084+ },
3085+ {
3086+ "id": 181,
3087+ "enabled": true,
3088+ "toggle-state": 0,
3089+ "label": "1:2 (50%)",
3090+ "toggle-type": "checkmark",
3091+ "visible": true
3092+ },
3093+ {
3094+ "id": 182,
3095+ "shortcut": [["1"]],
3096+ "enabled": true,
3097+ "toggle-state": 1,
3098+ "label": "1:1 (100%)",
3099+ "toggle-type": "checkmark",
3100+ "visible": true
3101+ },
3102+ {
3103+ "id": 183,
3104+ "enabled": true,
3105+ "toggle-state": 0,
3106+ "label": "2:1 (200%)",
3107+ "toggle-type": "checkmark",
3108+ "visible": true
3109+ },
3110+ {
3111+ "id": 184,
3112+ "enabled": true,
3113+ "toggle-state": 0,
3114+ "label": "4:1 (400%)",
3115+ "toggle-type": "checkmark",
3116+ "visible": true
3117+ },
3118+ {
3119+ "id": 185,
3120+ "enabled": true,
3121+ "toggle-state": 0,
3122+ "label": "8:1 (800%)",
3123+ "toggle-type": "checkmark",
3124+ "visible": true
3125+ },
3126+ {
3127+ "id": 186,
3128+ "enabled": true,
3129+ "toggle-state": 0,
3130+ "label": "16:1 (1600%)",
3131+ "toggle-type": "checkmark",
3132+ "visible": true
3133+ },
3134+ {
3135+ "id": 187,
3136+ "type": "separator"
3137+ },
3138+ {
3139+ "id": 188,
3140+ "enabled": true,
3141+ "label": "Fill Window",
3142+ "visible": true
3143+ },
3144+ {
3145+ "id": 189,
3146+ "shortcut": [["Control", "Shift", "e"]],
3147+ "enabled": true,
3148+ "label": "Fit Image in Window",
3149+ "visible": true
3150+ },
3151+ {
3152+ "id": 190,
3153+ "shortcut": [["plus"]],
3154+ "enabled": true,
3155+ "label": "Zoom In",
3156+ "visible": true
3157+ },
3158+ {
3159+ "id": 191,
3160+ "shortcut": [["minus"]],
3161+ "enabled": true,
3162+ "label": "Zoom Out",
3163+ "visible": true
3164+ },
3165+ {
3166+ "id": 4,
3167+ "shortcut": [["grave"]],
3168+ "enabled": true,
3169+ "label": "Re_vert Zoom (67%)",
3170+ "visible": true
3171+ }
3172+ ]
3173+ },
3174+ {
3175+ "id": 192,
3176+ "enabled": true,
3177+ "toggle-state": 1,
3178+ "label": "Dot for Dot",
3179+ "toggle-type": "checkmark",
3180+ "visible": true
3181+ },
3182+ {
3183+ "id": 193,
3184+ "enabled": true,
3185+ "label": "New View",
3186+ "visible": true
3187+ }
3188+ ]
3189+ },
3190+ {
3191+ "id": 194,
3192+ "enabled": true,
3193+ "label": "Image",
3194+ "children-display": "submenu",
3195+ "visible": true,
3196+ "submenu": [
3197+ {
3198+ "id": 195,
3199+ "shortcut": [["Alt", "Return"]],
3200+ "enabled": true,
3201+ "label": "Image Properties",
3202+ "visible": true
3203+ },
3204+ {
3205+ "id": 196,
3206+ "enabled": true,
3207+ "label": "Configure Grid...",
3208+ "visible": true
3209+ },
3210+ {
3211+ "id": 197,
3212+ "enabled": true,
3213+ "label": "Guides",
3214+ "children-display": "submenu",
3215+ "visible": true,
3216+ "submenu": [
3217+ {
3218+ "id": 198,
3219+ "enabled": true,
3220+ "label": "Remove all Guides",
3221+ "visible": true
3222+ },
3223+ {
3224+ "id": 199,
3225+ "enabled": true,
3226+ "label": "New Guides from Selection",
3227+ "visible": true
3228+ },
3229+ {
3230+ "id": 200,
3231+ "enabled": true,
3232+ "label": "New Guide...",
3233+ "visible": true
3234+ },
3235+ {
3236+ "id": 201,
3237+ "enabled": true,
3238+ "label": "New Guide (by Percent)...",
3239+ "visible": true
3240+ }
3241+ ]
3242+ },
3243+ {
3244+ "id": 202,
3245+ "type": "separator"
3246+ },
3247+ {
3248+ "id": 203,
3249+ "enabled": true,
3250+ "label": "Align Visible Layers...",
3251+ "visible": true
3252+ },
3253+ {
3254+ "id": 204,
3255+ "enabled": true,
3256+ "label": "Flatten Image",
3257+ "visible": true
3258+ },
3259+ {
3260+ "id": 205,
3261+ "shortcut": [["Control", "m"]],
3262+ "enabled": true,
3263+ "label": "Merge Visible Layers...",
3264+ "visible": true
3265+ },
3266+ {
3267+ "id": 206,
3268+ "type": "separator"
3269+ },
3270+ {
3271+ "id": 207,
3272+ "enabled": true,
3273+ "label": "Zealous Crop",
3274+ "visible": true
3275+ },
3276+ {
3277+ "id": 208,
3278+ "enabled": true,
3279+ "label": "Autocrop Image",
3280+ "visible": true
3281+ },
3282+ {
3283+ "id": 209,
3284+ "enabled": false,
3285+ "label": "Crop to Selection",
3286+ "visible": true
3287+ },
3288+ {
3289+ "id": 210,
3290+ "type": "separator"
3291+ },
3292+ {
3293+ "id": 211,
3294+ "enabled": true,
3295+ "label": "Scale Image...",
3296+ "visible": true
3297+ },
3298+ {
3299+ "id": 212,
3300+ "enabled": true,
3301+ "label": "Print Size...",
3302+ "visible": true
3303+ },
3304+ {
3305+ "id": 213,
3306+ "enabled": false,
3307+ "label": "Fit Canvas to Selection",
3308+ "visible": true
3309+ },
3310+ {
3311+ "id": 214,
3312+ "enabled": true,
3313+ "label": "Fit Canvas to Layers",
3314+ "visible": true
3315+ },
3316+ {
3317+ "id": 215,
3318+ "enabled": true,
3319+ "label": "Canvas Size...",
3320+ "visible": true
3321+ },
3322+ {
3323+ "id": 216,
3324+ "type": "separator"
3325+ },
3326+ {
3327+ "id": 217,
3328+ "enabled": true,
3329+ "label": "Transform",
3330+ "children-display": "submenu",
3331+ "visible": true,
3332+ "submenu": [
3333+ {
3334+ "id": 218,
3335+ "enabled": true,
3336+ "label": "Guillotine",
3337+ "visible": true
3338+ },
3339+ {
3340+ "id": 219,
3341+ "type": "separator"
3342+ },
3343+ {
3344+ "id": 220,
3345+ "enabled": true,
3346+ "label": "Rotate 180\302\260",
3347+ "visible": true
3348+ },
3349+ {
3350+ "id": 221,
3351+ "enabled": true,
3352+ "label": "Rotate 90\302\260 counter-clockwise",
3353+ "visible": true
3354+ },
3355+ {
3356+ "id": 222,
3357+ "enabled": true,
3358+ "label": "Rotate 90\302\260 clockwise",
3359+ "visible": true
3360+ },
3361+ {
3362+ "id": 223,
3363+ "type": "separator"
3364+ },
3365+ {
3366+ "id": 224,
3367+ "enabled": true,
3368+ "label": "Flip Vertically",
3369+ "visible": true
3370+ },
3371+ {
3372+ "id": 225,
3373+ "enabled": true,
3374+ "label": "Flip Horizontally",
3375+ "visible": true
3376+ }
3377+ ]
3378+ },
3379+ {
3380+ "id": 226,
3381+ "enabled": true,
3382+ "label": "Mode",
3383+ "children-display": "submenu",
3384+ "visible": true,
3385+ "submenu": [
3386+ {
3387+ "id": 227,
3388+ "enabled": true,
3389+ "label": "Convert to Color Profile...",
3390+ "visible": true
3391+ },
3392+ {
3393+ "id": 228,
3394+ "enabled": true,
3395+ "label": "Assign Color Profile...",
3396+ "visible": true
3397+ },
3398+ {
3399+ "id": 229,
3400+ "type": "separator"
3401+ },
3402+ {
3403+ "id": 230,
3404+ "enabled": true,
3405+ "toggle-state": 0,
3406+ "label": "Indexed...",
3407+ "toggle-type": "checkmark",
3408+ "visible": true
3409+ },
3410+ {
3411+ "id": 231,
3412+ "enabled": true,
3413+ "toggle-state": 0,
3414+ "label": "Grayscale",
3415+ "toggle-type": "checkmark",
3416+ "visible": true
3417+ },
3418+ {
3419+ "id": 232,
3420+ "enabled": true,
3421+ "toggle-state": 1,
3422+ "label": "RGB",
3423+ "toggle-type": "checkmark",
3424+ "visible": true
3425+ }
3426+ ]
3427+ },
3428+ {
3429+ "id": 233,
3430+ "shortcut": [["Control", "d"]],
3431+ "enabled": true,
3432+ "label": "Duplicate",
3433+ "visible": true
3434+ }
3435+ ]
3436+ },
3437+ {
3438+ "id": 234,
3439+ "enabled": true,
3440+ "label": "Layer",
3441+ "children-display": "submenu",
3442+ "visible": true,
3443+ "submenu": [
3444+ {
3445+ "id": 235,
3446+ "enabled": true,
3447+ "label": "Autocrop Layer",
3448+ "visible": true
3449+ },
3450+ {
3451+ "id": 236,
3452+ "enabled": false,
3453+ "label": "Crop to Selection",
3454+ "visible": true
3455+ },
3456+ {
3457+ "id": 237,
3458+ "enabled": true,
3459+ "label": "Scale Layer...",
3460+ "visible": true
3461+ },
3462+ {
3463+ "id": 238,
3464+ "enabled": true,
3465+ "label": "Layer to Image Size",
3466+ "visible": true
3467+ },
3468+ {
3469+ "id": 239,
3470+ "enabled": true,
3471+ "label": "Layer Boundary Size...",
3472+ "visible": true
3473+ },
3474+ {
3475+ "id": 240,
3476+ "type": "separator"
3477+ },
3478+ {
3479+ "id": 241,
3480+ "enabled": true,
3481+ "label": "Transform",
3482+ "children-display": "submenu",
3483+ "visible": true,
3484+ "submenu": [
3485+ {
3486+ "id": 242,
3487+ "shortcut": [["Control", "Shift", "o"]],
3488+ "enabled": true,
3489+ "label": "Offset...",
3490+ "visible": true
3491+ },
3492+ {
3493+ "id": 243,
3494+ "type": "separator"
3495+ },
3496+ {
3497+ "id": 244,
3498+ "enabled": true,
3499+ "label": "Arbitrary Rotation...",
3500+ "visible": true
3501+ },
3502+ {
3503+ "id": 245,
3504+ "enabled": true,
3505+ "label": "Rotate 180\302\260",
3506+ "visible": true
3507+ },
3508+ {
3509+ "id": 246,
3510+ "enabled": true,
3511+ "label": "Rotate 90\302\260 counter-clockwise",
3512+ "visible": true
3513+ },
3514+ {
3515+ "id": 247,
3516+ "enabled": true,
3517+ "label": "Rotate 90\302\260 clockwise",
3518+ "visible": true
3519+ },
3520+ {
3521+ "id": 248,
3522+ "type": "separator"
3523+ },
3524+ {
3525+ "id": 249,
3526+ "enabled": true,
3527+ "label": "Flip Vertically",
3528+ "visible": true
3529+ },
3530+ {
3531+ "id": 250,
3532+ "enabled": true,
3533+ "label": "Flip Horizontally",
3534+ "visible": true
3535+ }
3536+ ]
3537+ },
3538+ {
3539+ "id": 251,
3540+ "enabled": true,
3541+ "label": "Transparency",
3542+ "children-display": "submenu",
3543+ "visible": true,
3544+ "submenu": [
3545+ {
3546+ "id": 252,
3547+ "enabled": true,
3548+ "label": "Intersect with Selection",
3549+ "visible": true
3550+ },
3551+ {
3552+ "id": 253,
3553+ "enabled": true,
3554+ "label": "Subtract from Selection",
3555+ "visible": true
3556+ },
3557+ {
3558+ "id": 254,
3559+ "enabled": true,
3560+ "label": "Add to Selection",
3561+ "visible": true
3562+ },
3563+ {
3564+ "id": 255,
3565+ "enabled": true,
3566+ "label": "Alpha to Selection",
3567+ "visible": true
3568+ },
3569+ {
3570+ "id": 256,
3571+ "type": "separator"
3572+ },
3573+ {
3574+ "id": 257,
3575+ "enabled": true,
3576+ "label": "Threshold Alpha...",
3577+ "visible": true
3578+ },
3579+ {
3580+ "id": 258,
3581+ "enabled": true,
3582+ "label": "Semi-Flatten",
3583+ "visible": true
3584+ },
3585+ {
3586+ "id": 259,
3587+ "enabled": true,
3588+ "label": "Color to Alpha...",
3589+ "visible": true
3590+ },
3591+ {
3592+ "id": 260,
3593+ "enabled": true,
3594+ "label": "Remove Alpha Channel",
3595+ "visible": true
3596+ },
3597+ {
3598+ "id": 261,
3599+ "enabled": false,
3600+ "label": "Add Alpha Channel",
3601+ "visible": true
3602+ }
3603+ ]
3604+ },
3605+ {
3606+ "id": 262,
3607+ "enabled": true,
3608+ "label": "Mask",
3609+ "children-display": "submenu",
3610+ "visible": true,
3611+ "submenu": [
3612+ {
3613+ "id": 263,
3614+ "enabled": false,
3615+ "label": "Intersect with Selection",
3616+ "visible": true
3617+ },
3618+ {
3619+ "id": 264,
3620+ "enabled": false,
3621+ "label": "Subtract from Selection",
3622+ "visible": true
3623+ },
3624+ {
3625+ "id": 265,
3626+ "enabled": false,
3627+ "label": "Add to Selection",
3628+ "visible": true
3629+ },
3630+ {
3631+ "id": 266,
3632+ "enabled": false,
3633+ "label": "Mask to Selection",
3634+ "visible": true
3635+ },
3636+ {
3637+ "id": 267,
3638+ "type": "separator"
3639+ },
3640+ {
3641+ "id": 268,
3642+ "enabled": false,
3643+ "toggle-state": 0,
3644+ "label": "Disable Layer Mask",
3645+ "toggle-type": "checkmark",
3646+ "visible": true
3647+ },
3648+ {
3649+ "id": 269,
3650+ "enabled": false,
3651+ "toggle-state": 0,
3652+ "label": "Edit Layer Mask",
3653+ "toggle-type": "checkmark",
3654+ "visible": true
3655+ },
3656+ {
3657+ "id": 270,
3658+ "enabled": false,
3659+ "toggle-state": 0,
3660+ "label": "Show Layer Mask",
3661+ "toggle-type": "checkmark",
3662+ "visible": true
3663+ },
3664+ {
3665+ "id": 271,
3666+ "type": "separator"
3667+ },
3668+ {
3669+ "id": 272,
3670+ "enabled": false,
3671+ "label": "Delete Layer Mask",
3672+ "visible": true
3673+ },
3674+ {
3675+ "id": 273,
3676+ "enabled": false,
3677+ "label": "Apply Layer Mask",
3678+ "visible": true
3679+ },
3680+ {
3681+ "id": 274,
3682+ "enabled": true,
3683+ "label": "Add Layer Mask...",
3684+ "visible": true
3685+ }
3686+ ]
3687+ },
3688+ {
3689+ "id": 275,
3690+ "enabled": true,
3691+ "label": "Stack",
3692+ "children-display": "submenu",
3693+ "visible": true,
3694+ "submenu": [
3695+ {
3696+ "id": 276,
3697+ "enabled": true,
3698+ "label": "Reverse Layer Order",
3699+ "visible": true
3700+ },
3701+ {
3702+ "id": 277,
3703+ "type": "separator"
3704+ },
3705+ {
3706+ "id": 278,
3707+ "enabled": false,
3708+ "label": "Layer to Bottom",
3709+ "visible": true
3710+ },
3711+ {
3712+ "id": 279,
3713+ "enabled": false,
3714+ "label": "Layer to Top",
3715+ "visible": true
3716+ },
3717+ {
3718+ "id": 280,
3719+ "enabled": false,
3720+ "label": "Lower Layer",
3721+ "visible": true
3722+ },
3723+ {
3724+ "id": 281,
3725+ "enabled": false,
3726+ "label": "Raise Layer",
3727+ "visible": true
3728+ },
3729+ {
3730+ "id": 282,
3731+ "type": "separator"
3732+ },
3733+ {
3734+ "id": 283,
3735+ "shortcut": [["End"]],
3736+ "enabled": false,
3737+ "label": "Select Bottom Layer",
3738+ "visible": true
3739+ },
3740+ {
3741+ "id": 284,
3742+ "shortcut": [["Home"]],
3743+ "enabled": false,
3744+ "label": "Select Top Layer",
3745+ "visible": true
3746+ },
3747+ {
3748+ "id": 285,
3749+ "shortcut": [["Page_Down"]],
3750+ "enabled": false,
3751+ "label": "Select Next Layer",
3752+ "visible": true
3753+ },
3754+ {
3755+ "id": 286,
3756+ "shortcut": [["Page_Up"]],
3757+ "enabled": false,
3758+ "label": "Select Previous Layer",
3759+ "visible": true
3760+ }
3761+ ]
3762+ },
3763+ {
3764+ "id": 287,
3765+ "type": "separator",
3766+ "children-display": "submenu",
3767+ "submenu": [
3768+ {
3769+ "id": 288,
3770+ "enabled": false,
3771+ "label": "Empty",
3772+ "visible": true
3773+ }
3774+ ]
3775+ },
3776+ {
3777+ "id": 289,
3778+ "enabled": true,
3779+ "label": "Delete Layer",
3780+ "visible": true
3781+ },
3782+ {
3783+ "id": 290,
3784+ "enabled": false,
3785+ "label": "Merge Down",
3786+ "visible": true
3787+ },
3788+ {
3789+ "id": 291,
3790+ "shortcut": [["Control", "h"]],
3791+ "enabled": false,
3792+ "label": "Anchor Layer",
3793+ "visible": true
3794+ },
3795+ {
3796+ "id": 292,
3797+ "shortcut": [["Control", "Shift", "d"]],
3798+ "enabled": true,
3799+ "label": "Duplicate Layer",
3800+ "visible": true
3801+ },
3802+ {
3803+ "id": 293,
3804+ "enabled": true,
3805+ "label": "New from Visible",
3806+ "visible": true
3807+ },
3808+ {
3809+ "id": 294,
3810+ "shortcut": [["Control", "Shift", "n"]],
3811+ "enabled": true,
3812+ "label": "New Layer...",
3813+ "visible": true
3814+ }
3815+ ]
3816+ },
3817+ {
3818+ "id": 295,
3819+ "enabled": true,
3820+ "label": "Colors",
3821+ "children-display": "submenu",
3822+ "visible": true,
3823+ "submenu": [
3824+ {
3825+ "id": 296,
3826+ "enabled": true,
3827+ "label": "Retinex...",
3828+ "visible": true
3829+ },
3830+ {
3831+ "id": 297,
3832+ "enabled": true,
3833+ "label": "Maximum RGB...",
3834+ "visible": true
3835+ },
3836+ {
3837+ "id": 298,
3838+ "enabled": false,
3839+ "label": "Hot...",
3840+ "visible": true
3841+ },
3842+ {
3843+ "id": 299,
3844+ "enabled": true,
3845+ "label": "Filter Pack...",
3846+ "visible": true
3847+ },
3848+ {
3849+ "id": 300,
3850+ "enabled": true,
3851+ "label": "Color to Alpha...",
3852+ "visible": true
3853+ },
3854+ {
3855+ "id": 301,
3856+ "enabled": true,
3857+ "label": "Colorify...",
3858+ "visible": true
3859+ },
3860+ {
3861+ "id": 302,
3862+ "type": "separator"
3863+ },
3864+ {
3865+ "id": 303,
3866+ "enabled": true,
3867+ "label": "Info",
3868+ "children-display": "submenu",
3869+ "visible": true,
3870+ "submenu": [
3871+ {
3872+ "id": 304,
3873+ "enabled": true,
3874+ "label": "Smooth Palette...",
3875+ "visible": true
3876+ },
3877+ {
3878+ "id": 305,
3879+ "enabled": true,
3880+ "label": "Colorcube Analysis...",
3881+ "visible": true
3882+ },
3883+ {
3884+ "id": 306,
3885+ "enabled": true,
3886+ "label": "Border Average...",
3887+ "visible": true
3888+ },
3889+ {
3890+ "id": 307,
3891+ "enabled": true,
3892+ "label": "Histogram",
3893+ "visible": true
3894+ }
3895+ ]
3896+ },
3897+ {
3898+ "id": 308,
3899+ "enabled": true,
3900+ "label": "Map",
3901+ "children-display": "submenu",
3902+ "visible": true,
3903+ "submenu": [
3904+ {
3905+ "id": 309,
3906+ "enabled": true,
3907+ "label": "Sample Colorize...",
3908+ "visible": true
3909+ },
3910+ {
3911+ "id": 310,
3912+ "enabled": true,
3913+ "label": "Rotate Colors...",
3914+ "visible": true
3915+ },
3916+ {
3917+ "id": 311,
3918+ "enabled": true,
3919+ "label": "Palette Map",
3920+ "visible": true
3921+ },
3922+ {
3923+ "id": 312,
3924+ "enabled": true,
3925+ "label": "Gradient Map",
3926+ "visible": true
3927+ },
3928+ {
3929+ "id": 313,
3930+ "enabled": true,
3931+ "label": "Color Exchange...",
3932+ "visible": true
3933+ },
3934+ {
3935+ "id": 314,
3936+ "enabled": true,
3937+ "label": "Alien Map...",
3938+ "visible": true
3939+ },
3940+ {
3941+ "id": 315,
3942+ "type": "separator"
3943+ },
3944+ {
3945+ "id": 316,
3946+ "enabled": false,
3947+ "label": "Set Colormap...",
3948+ "visible": true
3949+ },
3950+ {
3951+ "id": 317,
3952+ "enabled": false,
3953+ "label": "Rearrange Colormap...",
3954+ "visible": true
3955+ }
3956+ ]
3957+ },
3958+ {
3959+ "id": 318,
3960+ "enabled": true,
3961+ "label": "Components",
3962+ "children-display": "submenu",
3963+ "visible": true,
3964+ "submenu": [
3965+ {
3966+ "id": 319,
3967+ "enabled": false,
3968+ "label": "Recompose",
3969+ "visible": true
3970+ },
3971+ {
3972+ "id": 320,
3973+ "enabled": true,
3974+ "label": "Decompose...",
3975+ "visible": true
3976+ },
3977+ {
3978+ "id": 321,
3979+ "enabled": false,
3980+ "label": "Compose...",
3981+ "visible": true
3982+ },
3983+ {
3984+ "id": 322,
3985+ "enabled": true,
3986+ "label": "Channel Mixer...",
3987+ "visible": true
3988+ }
3989+ ]
3990+ },
3991+ {
3992+ "id": 323,
3993+ "enabled": true,
3994+ "label": "Auto",
3995+ "children-display": "submenu",
3996+ "visible": true,
3997+ "submenu": [
3998+ {
3999+ "id": 324,
4000+ "enabled": true,
4001+ "label": "Stretch HSV",
4002+ "visible": true
4003+ },
4004+ {
4005+ "id": 325,
4006+ "enabled": true,
4007+ "label": "Stretch Contrast",
4008+ "visible": true
4009+ },
4010+ {
4011+ "id": 326,
4012+ "enabled": true,
4013+ "label": "Normalize",
4014+ "visible": true
4015+ },
4016+ {
4017+ "id": 327,
4018+ "enabled": true,
4019+ "label": "Color Enhance",
4020+ "visible": true
4021+ },
4022+ {
4023+ "id": 328,
4024+ "enabled": true,
4025+ "label": "White Balance",
4026+ "visible": true
4027+ },
4028+ {
4029+ "id": 329,
4030+ "enabled": true,
4031+ "label": "Equalize",
4032+ "visible": true
4033+ }
4034+ ]
4035+ },
4036+ {
4037+ "id": 330,
4038+ "type": "separator"
4039+ },
4040+ {
4041+ "id": 331,
4042+ "enabled": true,
4043+ "toggle-state": 0,
4044+ "label": "Use GEGL",
4045+ "toggle-type": "checkmark",
4046+ "visible": true
4047+ },
4048+ {
4049+ "id": 332,
4050+ "type": "separator"
4051+ },
4052+ {
4053+ "id": 333,
4054+ "enabled": true,
4055+ "label": "Value Invert",
4056+ "visible": true
4057+ },
4058+ {
4059+ "id": 334,
4060+ "enabled": true,
4061+ "label": "Invert",
4062+ "visible": true
4063+ },
4064+ {
4065+ "id": 335,
4066+ "type": "separator"
4067+ },
4068+ {
4069+ "id": 336,
4070+ "enabled": true,
4071+ "label": "Desaturate...",
4072+ "visible": true
4073+ },
4074+ {
4075+ "id": 337,
4076+ "enabled": true,
4077+ "label": "Posterize...",
4078+ "visible": true
4079+ },
4080+ {
4081+ "id": 338,
4082+ "enabled": true,
4083+ "label": "Curves...",
4084+ "visible": true
4085+ },
4086+ {
4087+ "id": 339,
4088+ "enabled": true,
4089+ "label": "Levels...",
4090+ "visible": true
4091+ },
4092+ {
4093+ "id": 340,
4094+ "enabled": true,
4095+ "label": "Threshold...",
4096+ "visible": true
4097+ },
4098+ {
4099+ "id": 341,
4100+ "enabled": true,
4101+ "label": "Brightness-Contrast...",
4102+ "visible": true
4103+ },
4104+ {
4105+ "id": 342,
4106+ "enabled": true,
4107+ "label": "Colorize...",
4108+ "visible": true
4109+ },
4110+ {
4111+ "id": 343,
4112+ "enabled": true,
4113+ "label": "Hue-Saturation...",
4114+ "visible": true
4115+ },
4116+ {
4117+ "id": 344,
4118+ "enabled": true,
4119+ "label": "Color Balance...",
4120+ "visible": true
4121+ }
4122+ ]
4123+ },
4124+ {
4125+ "id": 345,
4126+ "enabled": true,
4127+ "label": "Tools",
4128+ "children-display": "submenu",
4129+ "visible": true,
4130+ "submenu": [
4131+ {
4132+ "id": 346,
4133+ "shortcut": [["x"]],
4134+ "enabled": true,
4135+ "label": "Swap Colors",
4136+ "visible": true
4137+ },
4138+ {
4139+ "id": 347,
4140+ "shortcut": [["d"]],
4141+ "enabled": true,
4142+ "label": "Default Colors",
4143+ "visible": true
4144+ },
4145+ {
4146+ "id": 348,
4147+ "shortcut": [["Control", "b"]],
4148+ "enabled": true,
4149+ "label": "Toolbox",
4150+ "visible": true
4151+ },
4152+ {
4153+ "id": 349,
4154+ "type": "separator"
4155+ },
4156+ {
4157+ "id": 350,
4158+ "enabled": true,
4159+ "label": "GEGL Operation...",
4160+ "visible": true
4161+ },
4162+ {
4163+ "id": 351,
4164+ "shortcut": [["t"]],
4165+ "enabled": true,
4166+ "label": "Text",
4167+ "visible": true
4168+ },
4169+ {
4170+ "id": 352,
4171+ "shortcut": [["Shift", "m"]],
4172+ "enabled": true,
4173+ "label": "Measure",
4174+ "visible": true
4175+ },
4176+ {
4177+ "id": 353,
4178+ "shortcut": [["z"]],
4179+ "enabled": true,
4180+ "label": "Zoom",
4181+ "visible": true
4182+ },
4183+ {
4184+ "id": 354,
4185+ "shortcut": [["o"]],
4186+ "enabled": true,
4187+ "label": "Color Picker",
4188+ "visible": true
4189+ },
4190+ {
4191+ "id": 355,
4192+ "shortcut": [["b"]],
4193+ "enabled": true,
4194+ "label": "Paths",
4195+ "visible": true
4196+ },
4197+ {
4198+ "id": 356,
4199+ "enabled": true,
4200+ "label": "Color Tools",
4201+ "children-display": "submenu",
4202+ "visible": true,
4203+ "submenu": [
4204+ {
4205+ "id": 357,
4206+ "enabled": true,
4207+ "label": "Desaturate...",
4208+ "visible": true
4209+ },
4210+ {
4211+ "id": 358,
4212+ "enabled": true,
4213+ "label": "Posterize...",
4214+ "visible": true
4215+ },
4216+ {
4217+ "id": 359,
4218+ "enabled": true,
4219+ "label": "Curves...",
4220+ "visible": true
4221+ },
4222+ {
4223+ "id": 360,
4224+ "enabled": true,
4225+ "label": "Levels...",
4226+ "visible": true
4227+ },
4228+ {
4229+ "id": 361,
4230+ "enabled": true,
4231+ "label": "Threshold...",
4232+ "visible": true
4233+ },
4234+ {
4235+ "id": 362,
4236+ "enabled": true,
4237+ "label": "Brightness-Contrast...",
4238+ "visible": true
4239+ },
4240+ {
4241+ "id": 363,
4242+ "enabled": true,
4243+ "label": "Colorize...",
4244+ "visible": true
4245+ },
4246+ {
4247+ "id": 364,
4248+ "enabled": true,
4249+ "label": "Hue-Saturation...",
4250+ "visible": true
4251+ },
4252+ {
4253+ "id": 365,
4254+ "enabled": true,
4255+ "label": "Color Balance...",
4256+ "visible": true
4257+ }
4258+ ]
4259+ },
4260+ {
4261+ "id": 366,
4262+ "enabled": true,
4263+ "label": "Transform Tools",
4264+ "children-display": "submenu",
4265+ "visible": true,
4266+ "submenu": [
4267+ {
4268+ "id": 367,
4269+ "shortcut": [["Shift", "f"]],
4270+ "enabled": true,
4271+ "label": "Flip",
4272+ "visible": true
4273+ },
4274+ {
4275+ "id": 368,
4276+ "shortcut": [["Shift", "p"]],
4277+ "enabled": true,
4278+ "label": "Perspective",
4279+ "visible": true
4280+ },
4281+ {
4282+ "id": 369,
4283+ "shortcut": [["Shift", "s"]],
4284+ "enabled": true,
4285+ "label": "Shear",
4286+ "visible": true
4287+ },
4288+ {
4289+ "id": 370,
4290+ "shortcut": [["Shift", "t"]],
4291+ "enabled": true,
4292+ "label": "Scale",
4293+ "visible": true
4294+ },
4295+ {
4296+ "id": 371,
4297+ "shortcut": [["Shift", "r"]],
4298+ "enabled": true,
4299+ "label": "Rotate",
4300+ "visible": true
4301+ },
4302+ {
4303+ "id": 372,
4304+ "shortcut": [["Shift", "c"]],
4305+ "enabled": true,
4306+ "label": "Crop",
4307+ "visible": true
4308+ },
4309+ {
4310+ "id": 373,
4311+ "shortcut": [["m"]],
4312+ "enabled": true,
4313+ "label": "Move",
4314+ "visible": true
4315+ },
4316+ {
4317+ "id": 374,
4318+ "shortcut": [["q"]],
4319+ "enabled": true,
4320+ "label": "Align",
4321+ "visible": true
4322+ }
4323+ ]
4324+ },
4325+ {
4326+ "id": 375,
4327+ "enabled": true,
4328+ "label": "Paint Tools",
4329+ "children-display": "submenu",
4330+ "visible": true,
4331+ "submenu": [
4332+ {
4333+ "id": 376,
4334+ "shortcut": [["Shift", "d"]],
4335+ "enabled": true,
4336+ "label": "Dodge / Burn",
4337+ "visible": true
4338+ },
4339+ {
4340+ "id": 377,
4341+ "shortcut": [["s"]],
4342+ "enabled": true,
4343+ "label": "Smudge",
4344+ "visible": true
4345+ },
4346+ {
4347+ "id": 378,
4348+ "shortcut": [["Shift", "u"]],
4349+ "enabled": true,
4350+ "label": "Blur / Sharpen",
4351+ "visible": true
4352+ },
4353+ {
4354+ "id": 379,
4355+ "enabled": true,
4356+ "label": "Perspective Clone",
4357+ "visible": true
4358+ },
4359+ {
4360+ "id": 380,
4361+ "shortcut": [["h"]],
4362+ "enabled": true,
4363+ "label": "Heal",
4364+ "visible": true
4365+ },
4366+ {
4367+ "id": 381,
4368+ "shortcut": [["c"]],
4369+ "enabled": true,
4370+ "label": "Clone",
4371+ "visible": true
4372+ },
4373+ {
4374+ "id": 382,
4375+ "shortcut": [["k"]],
4376+ "enabled": true,
4377+ "label": "Ink",
4378+ "visible": true
4379+ },
4380+ {
4381+ "id": 383,
4382+ "shortcut": [["a"]],
4383+ "enabled": true,
4384+ "label": "Airbrush",
4385+ "visible": true
4386+ },
4387+ {
4388+ "id": 384,
4389+ "shortcut": [["Shift", "e"]],
4390+ "enabled": true,
4391+ "label": "Eraser",
4392+ "visible": true
4393+ },
4394+ {
4395+ "id": 385,
4396+ "shortcut": [["p"]],
4397+ "enabled": true,
4398+ "label": "Paintbrush",
4399+ "visible": true
4400+ },
4401+ {
4402+ "id": 386,
4403+ "shortcut": [["n"]],
4404+ "enabled": true,
4405+ "label": "Pencil",
4406+ "visible": true
4407+ },
4408+ {
4409+ "id": 387,
4410+ "shortcut": [["l"]],
4411+ "enabled": true,
4412+ "label": "Blend",
4413+ "visible": true
4414+ },
4415+ {
4416+ "id": 388,
4417+ "shortcut": [["Shift", "b"]],
4418+ "enabled": true,
4419+ "label": "Bucket Fill",
4420+ "visible": true
4421+ }
4422+ ]
4423+ },
4424+ {
4425+ "id": 389,
4426+ "enabled": true,
4427+ "label": "Selection Tools",
4428+ "children-display": "submenu",
4429+ "visible": true,
4430+ "submenu": [
4431+ {
4432+ "id": 390,
4433+ "shortcut": [["i"]],
4434+ "enabled": true,
4435+ "label": "Intelligent Scissors",
4436+ "visible": true
4437+ },
4438+ {
4439+ "id": 391,
4440+ "shortcut": [["Shift", "o"]],
4441+ "enabled": true,
4442+ "label": "By Color Select",
4443+ "visible": true
4444+ },
4445+ {
4446+ "id": 392,
4447+ "shortcut": [["u"]],
4448+ "enabled": true,
4449+ "label": "Fuzzy Select",
4450+ "visible": true
4451+ },
4452+ {
4453+ "id": 393,
4454+ "enabled": true,
4455+ "label": "Foreground Select",
4456+ "visible": true
4457+ },
4458+ {
4459+ "id": 394,
4460+ "shortcut": [["f"]],
4461+ "enabled": true,
4462+ "label": "Free Select",
4463+ "visible": true
4464+ },
4465+ {
4466+ "id": 395,
4467+ "shortcut": [["e"]],
4468+ "enabled": true,
4469+ "label": "Ellipse Select",
4470+ "visible": true
4471+ },
4472+ {
4473+ "id": 396,
4474+ "shortcut": [["r"]],
4475+ "enabled": true,
4476+ "label": "Rectangle Select",
4477+ "visible": true
4478+ }
4479+ ]
4480+ }
4481+ ]
4482+ },
4483+ {
4484+ "id": 397,
4485+ "enabled": true,
4486+ "label": "Filters",
4487+ "children-display": "submenu",
4488+ "visible": true,
4489+ "submenu": [
4490+ {
4491+ "id": 398,
4492+ "enabled": true,
4493+ "label": "Script-Fu",
4494+ "children-display": "submenu",
4495+ "visible": true,
4496+ "submenu": [
4497+ {
4498+ "id": 399,
4499+ "enabled": true,
4500+ "label": "Start Server...",
4501+ "visible": true
4502+ },
4503+ {
4504+ "id": 400,
4505+ "enabled": true,
4506+ "label": "Refresh Scripts",
4507+ "visible": true
4508+ },
4509+ {
4510+ "id": 401,
4511+ "enabled": true,
4512+ "label": "Console",
4513+ "visible": true
4514+ }
4515+ ]
4516+ },
4517+ {
4518+ "id": 402,
4519+ "enabled": true,
4520+ "label": "Python-Fu",
4521+ "children-display": "submenu",
4522+ "visible": true,
4523+ "submenu": [
4524+ {
4525+ "id": 403,
4526+ "enabled": true,
4527+ "label": "Console",
4528+ "visible": true
4529+ }
4530+ ]
4531+ },
4532+ {
4533+ "id": 404,
4534+ "type": "separator"
4535+ },
4536+ {
4537+ "id": 405,
4538+ "enabled": true,
4539+ "label": "Alpha to Logo",
4540+ "children-display": "submenu",
4541+ "visible": true,
4542+ "submenu": [
4543+ {
4544+ "id": 406,
4545+ "enabled": true,
4546+ "label": "Textured...",
4547+ "visible": true
4548+ },
4549+ {
4550+ "id": 407,
4551+ "enabled": true,
4552+ "label": "Particle Trace...",
4553+ "visible": true
4554+ },
4555+ {
4556+ "id": 408,
4557+ "enabled": true,
4558+ "label": "Neon...",
4559+ "visible": true
4560+ },
4561+ {
4562+ "id": 409,
4563+ "enabled": true,
4564+ "label": "Gradient Bevel...",
4565+ "visible": true
4566+ },
4567+ {
4568+ "id": 410,
4569+ "enabled": true,
4570+ "label": "Glowing Hot...",
4571+ "visible": true
4572+ },
4573+ {
4574+ "id": 411,
4575+ "enabled": true,
4576+ "label": "Glossy...",
4577+ "visible": true
4578+ },
4579+ {
4580+ "id": 412,
4581+ "enabled": true,
4582+ "label": "Frosty...",
4583+ "visible": true
4584+ },
4585+ {
4586+ "id": 413,
4587+ "enabled": true,
4588+ "label": "Cool Metal...",
4589+ "visible": true
4590+ },
4591+ {
4592+ "id": 414,
4593+ "enabled": true,
4594+ "label": "Comic Book...",
4595+ "visible": true
4596+ },
4597+ {
4598+ "id": 415,
4599+ "enabled": true,
4600+ "label": "Chrome...",
4601+ "visible": true
4602+ },
4603+ {
4604+ "id": 416,
4605+ "enabled": true,
4606+ "label": "Chip Away...",
4607+ "visible": true
4608+ },
4609+ {
4610+ "id": 417,
4611+ "enabled": true,
4612+ "label": "Chalk...",
4613+ "visible": true
4614+ },
4615+ {
4616+ "id": 418,
4617+ "enabled": true,
4618+ "label": "Bovination...",
4619+ "visible": true
4620+ },
4621+ {
4622+ "id": 419,
4623+ "enabled": true,
4624+ "label": "Blended...",
4625+ "visible": true
4626+ },
4627+ {
4628+ "id": 420,
4629+ "enabled": true,
4630+ "label": "Basic I...",
4631+ "visible": true
4632+ },
4633+ {
4634+ "id": 421,
4635+ "enabled": true,
4636+ "label": "Basic II...",
4637+ "visible": true
4638+ },
4639+ {
4640+ "id": 422,
4641+ "enabled": true,
4642+ "label": "Alien Neon...",
4643+ "visible": true
4644+ },
4645+ {
4646+ "id": 423,
4647+ "enabled": true,
4648+ "label": "Alien Glow...",
4649+ "visible": true
4650+ },
4651+ {
4652+ "id": 424,
4653+ "enabled": true,
4654+ "label": "3D Outline...",
4655+ "visible": true
4656+ }
4657+ ]
4658+ },
4659+ {
4660+ "id": 425,
4661+ "type": "separator"
4662+ },
4663+ {
4664+ "id": 426,
4665+ "enabled": true,
4666+ "label": "Animation",
4667+ "children-display": "submenu",
4668+ "visible": true,
4669+ "submenu": [
4670+ {
4671+ "id": 427,
4672+ "enabled": true,
4673+ "label": "Unoptimize",
4674+ "visible": true
4675+ },
4676+ {
4677+ "id": 428,
4678+ "enabled": true,
4679+ "label": "Playback...",
4680+ "visible": true
4681+ },
4682+ {
4683+ "id": 429,
4684+ "enabled": true,
4685+ "label": "Optimize (for GIF)",
4686+ "visible": true
4687+ },
4688+ {
4689+ "id": 430,
4690+ "enabled": true,
4691+ "label": "Optimize (Difference)",
4692+ "visible": true
4693+ },
4694+ {
4695+ "id": 431,
4696+ "type": "separator"
4697+ },
4698+ {
4699+ "id": 432,
4700+ "enabled": true,
4701+ "label": "Waves...",
4702+ "visible": true
4703+ },
4704+ {
4705+ "id": 433,
4706+ "enabled": true,
4707+ "label": "Spinning Globe...",
4708+ "visible": true
4709+ },
4710+ {
4711+ "id": 434,
4712+ "enabled": true,
4713+ "label": "Rippling...",
4714+ "visible": true
4715+ },
4716+ {
4717+ "id": 435,
4718+ "enabled": true,
4719+ "label": "Burn-In...",
4720+ "visible": true
4721+ },
4722+ {
4723+ "id": 436,
4724+ "enabled": true,
4725+ "label": "Blend...",
4726+ "visible": true
4727+ }
4728+ ]
4729+ },
4730+ {
4731+ "id": 437,
4732+ "enabled": true,
4733+ "label": "Web",
4734+ "children-display": "submenu",
4735+ "visible": true,
4736+ "submenu": [
4737+ {
4738+ "id": 438,
4739+ "enabled": true,
4740+ "label": "Slice...",
4741+ "visible": true
4742+ },
4743+ {
4744+ "id": 439,
4745+ "enabled": true,
4746+ "label": "Semi-Flatten",
4747+ "visible": true
4748+ },
4749+ {
4750+ "id": 440,
4751+ "enabled": true,
4752+ "label": "Image Map...",
4753+ "visible": true
4754+ }
4755+ ]
4756+ },
4757+ {
4758+ "id": 441,
4759+ "enabled": true,
4760+ "label": "Render",
4761+ "children-display": "submenu",
4762+ "visible": true,
4763+ "submenu": [
4764+ {
4765+ "id": 442,
4766+ "enabled": true,
4767+ "label": "Spyrogimp...",
4768+ "visible": true
4769+ },
4770+ {
4771+ "id": 443,
4772+ "enabled": true,
4773+ "label": "Sphere Designer...",
4774+ "visible": true
4775+ },
4776+ {
4777+ "id": 444,
4778+ "enabled": true,
4779+ "label": "Line Nova...",
4780+ "visible": true
4781+ },
4782+ {
4783+ "id": 445,
4784+ "enabled": true,
4785+ "label": "Lava...",
4786+ "visible": true
4787+ },
4788+ {
4789+ "id": 446,
4790+ "enabled": true,
4791+ "label": "Gfig...",
4792+ "visible": true
4793+ },
4794+ {
4795+ "id": 447,
4796+ "enabled": true,
4797+ "label": "Fractal Explorer...",
4798+ "visible": true
4799+ },
4800+ {
4801+ "id": 448,
4802+ "enabled": true,
4803+ "label": "Circuit...",
4804+ "visible": true
4805+ },
4806+ {
4807+ "id": 449,
4808+ "type": "separator"
4809+ },
4810+ {
4811+ "id": 450,
4812+ "enabled": true,
4813+ "label": "Pattern",
4814+ "children-display": "submenu",
4815+ "visible": true,
4816+ "submenu": [
4817+ {
4818+ "id": 451,
4819+ "enabled": true,
4820+ "label": "Sinus...",
4821+ "visible": true
4822+ },
4823+ {
4824+ "id": 452,
4825+ "enabled": true,
4826+ "label": "Qbist...",
4827+ "visible": true
4828+ },
4829+ {
4830+ "id": 453,
4831+ "enabled": true,
4832+ "label": "Maze...",
4833+ "visible": true
4834+ },
4835+ {
4836+ "id": 454,
4837+ "enabled": true,
4838+ "label": "Jigsaw...",
4839+ "visible": true
4840+ },
4841+ {
4842+ "id": 455,
4843+ "enabled": true,
4844+ "label": "Grid...",
4845+ "visible": true
4846+ },
4847+ {
4848+ "id": 456,
4849+ "enabled": true,
4850+ "label": "Diffraction Patterns...",
4851+ "visible": true
4852+ },
4853+ {
4854+ "id": 457,
4855+ "enabled": true,
4856+ "label": "CML Explorer...",
4857+ "visible": true
4858+ },
4859+ {
4860+ "id": 458,
4861+ "enabled": true,
4862+ "label": "Checkerboard...",
4863+ "visible": true
4864+ }
4865+ ]
4866+ },
4867+ {
4868+ "id": 459,
4869+ "enabled": true,
4870+ "label": "Nature",
4871+ "children-display": "submenu",
4872+ "visible": true,
4873+ "submenu": [
4874+ {
4875+ "id": 460,
4876+ "enabled": true,
4877+ "label": "IFS Fractal...",
4878+ "visible": true
4879+ },
4880+ {
4881+ "id": 461,
4882+ "enabled": true,
4883+ "label": "Flame...",
4884+ "visible": true
4885+ }
4886+ ]
4887+ },
4888+ {
4889+ "id": 462,
4890+ "enabled": true,
4891+ "label": "Clouds",
4892+ "children-display": "submenu",
4893+ "visible": true,
4894+ "submenu": [
4895+ {
4896+ "id": 463,
4897+ "enabled": true,
4898+ "label": "Solid Noise...",
4899+ "visible": true
4900+ },
4901+ {
4902+ "id": 464,
4903+ "enabled": true,
4904+ "label": "Plasma...",
4905+ "visible": true
4906+ },
4907+ {
4908+ "id": 465,
4909+ "enabled": true,
4910+ "label": "Fog...",
4911+ "visible": true
4912+ },
4913+ {
4914+ "id": 466,
4915+ "enabled": true,
4916+ "label": "Difference Clouds...",
4917+ "visible": true
4918+ }
4919+ ]
4920+ }
4921+ ]
4922+ },
4923+ {
4924+ "id": 467,
4925+ "enabled": true,
4926+ "label": "Map",
4927+ "children-display": "submenu",
4928+ "visible": true,
4929+ "submenu": [
4930+ {
4931+ "id": 468,
4932+ "enabled": true,
4933+ "label": "Warp...",
4934+ "visible": true
4935+ },
4936+ {
4937+ "id": 469,
4938+ "enabled": true,
4939+ "label": "Tile...",
4940+ "visible": true
4941+ },
4942+ {
4943+ "id": 470,
4944+ "enabled": true,
4945+ "label": "Small Tiles...",
4946+ "visible": true
4947+ },
4948+ {
4949+ "id": 471,
4950+ "enabled": true,
4951+ "label": "Paper Tile...",
4952+ "visible": true
4953+ },
4954+ {
4955+ "id": 472,
4956+ "enabled": true,
4957+ "label": "Map Object...",
4958+ "visible": true
4959+ },
4960+ {
4961+ "id": 473,
4962+ "enabled": true,
4963+ "label": "Make Seamless",
4964+ "visible": true
4965+ },
4966+ {
4967+ "id": 474,
4968+ "enabled": true,
4969+ "label": "Illusion...",
4970+ "visible": true
4971+ },
4972+ {
4973+ "id": 475,
4974+ "enabled": true,
4975+ "label": "Fractal Trace...",
4976+ "visible": true
4977+ },
4978+ {
4979+ "id": 476,
4980+ "enabled": true,
4981+ "label": "Displace...",
4982+ "visible": true
4983+ },
4984+ {
4985+ "id": 477,
4986+ "enabled": true,
4987+ "label": "Bump Map...",
4988+ "visible": true
4989+ }
4990+ ]
4991+ },
4992+ {
4993+ "id": 478,
4994+ "enabled": true,
4995+ "label": "Decor",
4996+ "children-display": "submenu",
4997+ "visible": true,
4998+ "submenu": [
4999+ {
5000+ "id": 479,
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: