CVSROOT: /cvs/gnome Module name: gnome-menus Changes by: markmc 05/03/14 03:39:28
Modified files: . : Tag: layout-support ChangeLog libmenu : Tag: layout-support menu-layout.c menu-layout.h menu-tree.c menu-tree.h util : Tag: layout-support test-menu-spec.c Log message: 2005-03-14 Mark McLoughlin <[EMAIL PROTECTED]> Implement support for <Layout> and <DefaultLayout>. Based on a patch from Frederic Crozat <[EMAIL PROTECTED]> in bug #164310 [http://bugzilla.gnome.org/show_bug.cgi?id=164310]. * libmenu/menu-tree.h: API changes: - Add MenuTreeItem type as base class of other items - Make MenuTreeEntry and MenuTreeDirectory its sub-classes - Add MenuTreeSeparator, MenuTreeAlias and MenuTreeHeader - menu_tree_entry_ref/unref() becomes menu_tree_item_ref/unref() - ditto for menu_tree_directory_ref/unref() - Instead of having menu_tree_directory_get_entries() and menu_tree_directory_get_subdirs, we now have menu_tree_directory_get_contents() - menu_tree_directory/entry_get_parent() becomes menu_tree_item_get_parent() - Add menu_tree_header_get_directory (), menu_tree_alias_get_directory() and menu_tree_alias_get_item () * libmenu/menu-tree.c: (find_path): look up the path from the laid out contents. (menu_tree_item_compare): add compare function for sorting directories and entries as peers. (collect_layout_info): retain the contents of the last <Layout> node we come across for each <Menu> (process_layout): retain the attributes of the last <DefaultLayout> node we come across for each <Menu>. (process_only_unallocated): don't prune empty subdirs here. (merge_subdir), (merge_subdir_by_name), (merge_entry), (merge_entry_by_id), (merge_subdirs), (merge_entries), (merge_subdirs_and_entries): various helpers to implement <Merge type="all|files|menus"> and merging by <Filename>/<Menuname> (get_values_with_defaults): get the <Layout> attributes from a node, using the values from the <DefaultLayout> for any unset attribute. (process_layout_info): implement the final post-processing of the menu where the list of entries and subdirs gets laid out and merged according to <Layout> and <DefaultLayout> * libmenu/menu-layout.[ch]: (menu_layout_node_new): allocate DefaultLayout, Layout and Menuname structures. (menu_layout_node_copy): remove, unused. (menu_layout_node_legacy_dir_set_prefix): remove string compare by pointer. (menu_layout_node_merge_get_type), (menu_layout_node_merge_set_type), (menu_layout_node_default_layout_get_values), (menu_layout_node_menuname_get_values), (menu_layout_values_set), (menu_layout_node_default_layout_set_values): (menu_layout_node_menuname_set_values): support setting/getting the various attributes on <DefaultLayout>, <Layout> and <Menuname> (start_menu_child_element), (start_layout_child_element): set the attributes. * util/test-menu-spec.c: (append_directory_path), (print_entry), (print_directory), (handle_tree_changed), (main): adapt to API changes. URL : http://cvs.gnome.org/bonsai/cvsquery.cgi?branch=&dir=gnome-menus&who=markmc&date=explicit&mindate=2005-03-14%2003:38&maxdate=2005-03-14%2003:40 _______________________________________________ cvs-commits-list mailing list cvs-commits-list@gnome.org http://mail.gnome.org/mailman/listinfo/cvs-commits-list