From ac6ba4de7b4e2aef178cd156ed22fec0a97f2ee5 Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Sat, 7 Jul 2007 16:14:30 +0000 Subject: [PATCH] (GtkBuilderConverter._convert_menuitem): Add support for CheckMenuItems and do not set name and action on separators svn path=/trunk/; revision=18394 --- ChangeLog | 2 ++ gtk/gtk-builder-convert | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8523ccca37..9949a697ff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,6 +10,8 @@ (GtkBuilderConverter._parse): Remove unsupported atkrelation and atkproperty tags + (GtkBuilderConverter._convert_menuitem): Add support for CheckMenuItems + and do not set name and action on separators 2007-07-06 Richard Hult diff --git a/gtk/gtk-builder-convert b/gtk/gtk-builder-convert index 5435acf56d..d18e48638b 100755 --- a/gtk/gtk-builder-convert +++ b/gtk/gtk-builder-convert @@ -281,15 +281,20 @@ class GtkBuilderConverter(object): name = 'menu' object_class = obj_node.getAttribute('class') - if object_class in ['GtkMenuItem', 'GtkImageMenuItem']: + if object_class in ['GtkMenuItem', + 'GtkImageMenuItem', + 'GtkCheckMenuItem']: menu = self._dom.createElement(name) + menubar.appendChild(menu) elif object_class == 'GtkSeparatorMenuItem': - menu = self._dom.createElement('sep') + sep = self._dom.createElement('separator') + menubar.appendChild(sep) + return else: raise NotImplementedError(object_class) + menu.setAttribute('name', obj_node.getAttribute('id')) menu.setAttribute('action', obj_node.getAttribute('id')) - menubar.appendChild(menu) self._add_action_from_menuitem(uimgr, obj_node) if children: for child in get_child_nodes(menu_node): @@ -316,6 +321,14 @@ class GtkBuilderConverter(object): properties['label'] = label elif object_class == 'GtkSeparatorMenuItem': return + elif object_class == 'GtkCheckMenuItem': + name = 'GtkToggleAction' + label = get_property(node, 'label') + if label is not None: + properties['label'] = label + active = get_property(node, 'active') + if active is not None: + properties['active'] = active else: raise NotImplementedError(object_class)