diff options
Diffstat (limited to 'trunk/menu')
404 files changed, 3575 insertions, 0 deletions
diff --git a/trunk/menu/applications.menu.in b/trunk/menu/applications.menu.in new file mode 100644 index 0000000..4ac2d63 --- /dev/null +++ b/trunk/menu/applications.menu.in @@ -0,0 +1,888 @@ +<?xml version="1.0"?> +<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://standards.freedesktop.org/menu-spec/menu-1.0.dtd"> +<Menu> + <Name>Applications</Name> + <Layout> + <Menuname>Internet</Menuname> + <Menuname>Office</Menuname> + <Menuname>Graphics</Menuname> + <Menuname>SoundVideo</Menuname> + <Menuname>Tools</Menuname> + <Menuname>Development</Menuname> + <Menuname>Games</Menuname> + <Menuname>Education</Menuname> + <Menuname>Sciences</Menuname> + <Menuname>Documentation</Menuname> + <Merge type="menus"/> + <Merge type="files"/> + <Separator/> + <Filename>rpmdrake.desktop</Filename> + </Layout> + <DefaultLayout> + <Merge type="files"/> + <Menuname inline="true" inline_limit="1">More</Menuname> + <Merge type="menus"/> + </DefaultLayout> + <DefaultMergeDirs/> + <KDELegacyDirs/> + <DefaultAppDirs/> + <DefaultDirectoryDirs/> + <Directory>mandrivalinux.directory</Directory> + <Include> + <Category>X-MandrivaLinux</Category> + <Filename>rpmdrake.desktop</Filename> + </Include> + <Menu> + <Name>Internet</Name> + <Directory>mandriva-internet.directory</Directory> + <Include> + <And> + <Or> + <Category>@MAIN_DESKTOP@</Category> + <Category>@MAIN_TOOLKIT@</Category> + <Category>X-MandrivaLinux-CrossDesktop</Category> + </Or> + <Or> + <Category>X-MandrivaLinux-Internet</Category> + <Category>Network</Category> + </Or> + <Not> + <Category>WebDevelopment</Category> + <Category>X-MandrivaLinux-More</Category> + </Not> + </And> + </Include> + <Menu> + <Name>More</Name> + <Directory>mandriva-internet-more.directory</Directory> + <Include> + <And> + <Or> + <Not> + <Category>@MAIN_DESKTOP@</Category> + <Category>@MAIN_TOOLKIT@</Category> + <Category>X-MandrivaLinux-CrossDesktop</Category> + </Not> + <Category>X-MandrivaLinux-More</Category> + </Or> + <Not> + <Category>WebDevelopment</Category> + </Not> + <Category>Network</Category> + </And> + </Include> + </Menu> + </Menu> + <Menu> + <Name>Office</Name> + <Directory>mandriva-office.directory</Directory> + <Layout> + <Filename>template.desktop</Filename> + <Filename>writer.desktop</Filename> + <Filename>calc.desktop</Filename> + <Filename>impress.desktop</Filename> + <Filename>base.desktop</Filename> + <Filename>web.desktop</Filename> + <Separator/> + <Merge type="files"/> + <Menuname inline="true" inline_limit="1">More</Menuname> + <Merge type="menus"/> + </Layout> + <Include> + <And> + <Or> + <Category>@MAIN_DESKTOP@</Category> + <Category>@MAIN_TOOLKIT@</Category> + <Category>X-MandrivaLinux-CrossDesktop</Category> + </Or> + <Or> + <Category>X-MandrivaLinux-Office</Category> + <Category>Office</Category> + </Or> + <Not> + <Category>Utility</Category> + <Category>X-MandrivaLinux-More</Category> + </Not> + </And> + </Include> + <Menu> + <Name>More</Name> + <Directory>mandriva-office-more.directory</Directory> + <Include> + <And> + <Or> + <Not> + <Category>@MAIN_DESKTOP@</Category> + <Category>@MAIN_TOOLKIT@</Category> + <Category>X-MandrivaLinux-CrossDesktop</Category> + </Not> + <Category>X-MandrivaLinux-More</Category> + </Or> + <Or> + <Category>Office</Category> + <Category>X-MandrivaLinux-Office-Other</Category> + </Or> + <Not> + <Category>Utility</Category> + </Not> + </And> + </Include> + </Menu> + </Menu> + <Menu> + <Name>Graphics</Name> + <Directory>mandriva-graphics.directory</Directory> + <Include> + <And> + <Or> + <Category>@MAIN_DESKTOP@</Category> + <Category>@MAIN_TOOLKIT@</Category> + <Category>X-MandrivaLinux-CrossDesktop</Category> + </Or> + <Or> + <Category>X-MandrivaLinux-Multimedia-Graphics</Category> + <Category>Graphics</Category> + </Or> + <Not> + <Category>X-MandrivaLinux-More</Category> + </Not> + </And> + </Include> + <Menu> + <Name>More</Name> + <Directory>mandriva-graphics-more.directory</Directory> + <Include> + <And> + <Or> + <Not> + <Category>@MAIN_DESKTOP@</Category> + <Category>@MAIN_TOOLKIT@</Category> + <Category>X-MandrivaLinux-CrossDesktop</Category> + </Not> + <Category>X-MandrivaLinux-More</Category> + </Or> + <Category>Graphics</Category> + </And> + </Include> + </Menu> + </Menu> + <Menu> + <Name>SoundVideo</Name> + <Directory>mandriva-soundvideo.directory</Directory> + <Include> + <And> + <Or> + <Category>@MAIN_DESKTOP@</Category> + <Category>@MAIN_TOOLKIT@</Category> + <Category>X-MandrivaLinux-CrossDesktop</Category> + </Or> + <Or> + <Category>X-MandrivaLinux-Multimedia</Category> + <Category>X-MandrivaLinux-Multimedia-Sound</Category> + <Category>X-MandrivaLinux-Multimedia-Video</Category> + <Category>AudioVideo</Category> + <Category>Audio</Category> + <Category>Video</Category> + </Or> + <Not> + <Category>X-MandrivaLinux-More</Category> + </Not> + </And> + </Include> + <Menu> + <Name>More</Name> + <Directory>mandriva-soundvideo-more.directory</Directory> + <Include> + <And> + <Or> + <Not> + <Category>@MAIN_DESKTOP@</Category> + <Category>@MAIN_TOOLKIT@</Category> + <Category>X-MandrivaLinux-CrossDesktop</Category> + </Not> + <Category>X-MandrivaLinux-More</Category> + </Or> + <Or> + <Category>X-MandrivaLinux-Multimedia-Other</Category> + <Category>X-MandrivaLinux-Multimedia-Sound</Category> + <Category>X-MandrivaLinux-Multimedia-Video</Category> + <Category>AudioVideo</Category> + <Category>Video</Category> + <Category>Audio</Category> + </Or> + </And> + </Include> + </Menu> + </Menu> + <Menu> + <Name>Tools</Name> + <Directory>mandriva-tools.directory</Directory> + <Layout> + <Menuname>SystemTools</Menuname> + <Menuname>Accessibility</Menuname> + <Menuname>Emulators</Menuname> + <Separator/> + <Merge type="files"/> + <Menuname inline="true" inline_limit="1">More</Menuname> + <Merge type="menus"/> + </Layout> + <Include> + <And> + <Or> + <Category>@MAIN_DESKTOP@</Category> + <Category>@MAIN_TOOLKIT@</Category> + <Category>X-MandrivaLinux-CrossDesktop</Category> + </Or> + <Or> + <Category>Utility</Category> + <Category>TextEditor</Category> + <And> + <Category>Settings</Category> + <Not> + <Category>X-KDE-settings-accessibility</Category> + <Category>X-KDE-settings-components</Category> + <Category>X-KDE-settings-desktop</Category> + <Category>X-KDE-settings-looknfeel</Category> + <Category>X-KDE-settings-network</Category> + <Category>X-KDE-settings-webbrowsing</Category> + <Category>X-KDE-settings-peripherals</Category> + <Category>X-KDE-settings-hardware</Category> + <Category>X-KDE-settings-power</Category> + <Category>X-KDE-settings-security</Category> + <Category>X-KDE-settings-sound</Category> + <Category>X-KDE-settings-system</Category> + <Category>X-KDE-information</Category> + <Category>GNOME</Category> + </Not> + </And> + </Or> + <Not> + <Category>Accessibility</Category> + <Category>Monitor</Category> + <Category>System</Category> + <Category>Emulator</Category> + <Category>HardwareSettings</Category> + <Category>PackageManager</Category> + <Category>X-MandrivaLinux-More</Category> + </Not> + </And> + </Include> + <Menu> + <Name>SystemTools</Name> + <Directory>mandriva-systemtools.directory</Directory> + <Layout> + <Filename>mandriva-drakconf.desktop</Filename> + <Separator/> + <Merge type="all"/> + </Layout> + <Include> + <And> + <!-- never show those, they are in a separate menu for GNOME and not relevant for KDE --> + <Not> + <Category>GNOME</Category> + </Not> + <Category>HardwareSettings</Category> + </And> + <And> + <Or> + <Category>@MAIN_TOOLKIT@</Category> + <Category>X-MandrivaLinux-CrossDesktop</Category> + </Or> + <Or> + <And> + <Category>System</Category> + <Not> + <And> + <Category>GNOME</Category> + <Category>Settings</Category> + </And> + </Not> + </And> + <Category>Monitor</Category> + <Category>PackageManager</Category> + </Or> + </And> + </Include> + </Menu> + <Menu> + <Name>Accessibility</Name> + <Directory>mandriva-accessibility.directory</Directory> + <Include> + <And> + <Not> + <Category>Settings</Category> + </Not> + <Or> + <Category>Accessibility</Category> + </Or> + </And> + </Include> + </Menu> + <Menu> + <Name>Emulators</Name> + <Directory>mandriva-emulators.directory</Directory> + <Include> + <Category>Emulator</Category> + </Include> + </Menu> + <!-- always present, just to ensure GNOME preferences don't appear in any menu --> + <Menu> + <Name>GNOME Preferences</Name> + <Directory>mandriva-system-configuration-gnome.directory</Directory> + <Include> + <And> + <Category>GNOME</Category> + <Or> + <Category>Settings</Category> + <Category>DesktopSettings</Category> + </Or> + </And> + <Category>X-MandrivaLinux-System-Configuration-GNOME-Advanced</Category> + <Category>X-MandrivaLinux-System-Configuration-GNOME</Category> + </Include> + </Menu> + <!-- always present, just to ensure KDE preferences don't appear in any menu --> + <Menu> + <Name>KDE Preferences</Name> + <Directory>mandriva-system-configuration-kde.directory</Directory> + <MergeFile>/etc/xdg/kde/menus/kde-settings.menu</MergeFile> + </Menu> + <Menu> + <Name>KDE Info Center</Name> + <Directory>mandriva-system-configuration-kde.directory</Directory> + <MergeFile>/etc/xdg/kde/menus/kde-information.menu</MergeFile> + </Menu> + <Menu> + <Name>More</Name> + <Directory>mandriva-tools-more.directory</Directory> + <Include> + <And> + <Or> + <Not> + <Category>@MAIN_DESKTOP@</Category> + <Category>@MAIN_TOOLKIT@</Category> + <Category>Accessibility</Category> + <Category>X-MandrivaLinux-CrossDesktop</Category> + </Not> + <Category>X-MandrivaLinux-More</Category> + </Or> + <Not> + <And> + <Category>GNOME</Category> + <Category>Settings</Category> + </And> + </Not> + <Or> + <Category>Utility</Category> + <And> + <Category>System</Category> + <Category>Emulator</Category> + </And> + <Category>TextEditor</Category> + <Category>Settings</Category> + </Or> + </And> + </Include> + </Menu> + </Menu> + <Menu> + <Name>Development</Name> + <Layout> + <Menuname>Databases</Menuname> + <Menuname>Development Environment</Menuname> + <Menuname>Web Development</Menuname> + <Menuname>Interpreters</Menuname> + <Menuname>Tools</Menuname> + <Menuname>Code Generators</Menuname> + <Merge type="menus"/> + <Merge type="files"/> + </Layout> + <Directory>mandriva-development.directory</Directory> + <Include> + <And> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Development</Category> + <Category>Development</Category> + </Or> + <Not> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Development-Tools</Category> + <Category>X-MandrivaLinux-MoreApplications-Development-Other</Category> + <Category>Building</Category> + <Category>Profiling</Category> + <Category>Debugger</Category> + <Category>RevisionControl</Category> + <Category>Translation</Category> + <Category>IDE</Category> + <Category>GUIDesigner</Category> + <Category>X-MandrivaLinux-MoreApplications-Development-DevelopmentEnvironments</Category> + <Category>WebDevelopment</Category> + </Or> + </Not> + </And> + </Include> + <Menu> + <Name>Databases</Name> + <Directory>mandriva-development-databases.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Databases</Category> + <Category>Database</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Development Environments</Name> + <Directory>mandriva-development-developmentenvironments.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Development-DevelopmentEnvironments</Category> + <Category>IDE</Category> + <Category>GUIDesigner</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Web Development</Name> + <Directory>mandriva-development-webdevelopment.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-Internet-WebEditors</Category> + <Category>WebDevelopment</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Tools</Name> + <Directory>mandriva-development-tools.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Development-Other</Category> + <Category>X-MandrivaLinux-MoreApplications-Development-Tools</Category> + <Category>X-MandrivaLinux-MoreApplications-Development-Interpreters</Category> + <Category>Building</Category> + <Category>Profiling</Category> + <Category>Debugger</Category> + <Category>RevisionControl</Category> + <And> + <Category>Development</Category> + <Category>Translation</Category> + </And> + </Or> + </Include> + </Menu> + </Menu> + <Menu> + <Name>Games</Name> + <Layout> + <Menuname>Adventure</Menuname> + <Menuname>Arcade</Menuname> + <Menuname>Boards</Menuname> + <Menuname>Cards</Menuname> + <Menuname>Puzzles</Menuname> + <Menuname>Sports</Menuname> + <Menuname>Strategy</Menuname> + <Menuname>Toys</Menuname> + <Merge type="menus"/> + <Merge type="files"/> + </Layout> + <Directory>mandriva-games.directory</Directory> + <OnlyUnallocated/> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Games</Category> + <Category>Game</Category> + </Or> + </Include> + <Menu> + <Name>Adventure</Name> + <Directory>mandriva-games-adventure.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Games-Adventure</Category> + <Category>AdventureGame</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Arcade</Name> + <Directory>mandriva-games-arcade.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Games-Arcade</Category> + <Category>ArcadeGame</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Boards</Name> + <Directory>mandriva-games-boards.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Games-Boards</Category> + <Category>BoardGame</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Cards</Name> + <Directory>mandriva-games-cards.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Games-Cards</Category> + <Category>CardGame</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Puzzles</Name> + <Directory>mandriva-games-puzzles.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Games-Puzzles</Category> + <Category>LogicGame</Category> + <Category>BlocksGame</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Sports</Name> + <Directory>mandriva-games-sports.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Games-Sports</Category> + <Category>SportsGame</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Strategy</Name> + <Directory>mandriva-games-strategy.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Games-Strategy</Category> + <Category>StrategyGame</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Other</Name> + <Directory>mandriva-games-other.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Games-Other</Category> + <Category>KidsGame</Category> + <Category>RolePlaying</Category> + <Category>Simulation</Category> + <Category>ActionGame</Category> + <And> + <Category>Game</Category> + <Category>Emulator</Category> + </And> + </Or> + </Include> + </Menu> + <Menu> + <Name>Toys</Name> + <Directory>mandriva-games-toys.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Games-Toys</Category> + <Category>Amusement</Category> + </Or> + </Include> + </Menu> + </Menu> + <Menu> + <Name>Education</Name> + <Layout> + <Menuname>Economy</Menuname> + <Menuname>Geography</Menuname> + <Menuname>History</Menuname> + <Menuname>Languages</Menuname> + <Menuname>Literature</Menuname> + <Menuname>Sciences</Menuname> + <Menuname>Sports</Menuname> + <Menuname>Other</Menuname> + <Merge type="menus"/> + <Merge type="files"/> + </Layout> + <Directory>mandriva-education.directory</Directory> + <OnlyUnallocated/> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Education</Category> + <Category>Education</Category> + </Or> + </Include> + <Menu> + <Name>Economy</Name> + <Directory>mandriva-education-economy.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Education-Economy</Category> + <Category>Economy</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Geography</Name> + <Directory>mandriva-education-geography.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Education-Geography</Category> + <Category>Geography</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>History</Name> + <Directory>mandriva-education-history.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Education-History</Category> + <Category>History</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Languages</Name> + <Directory>mandriva-education-languages.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Education-Languages</Category> + <Category>Languages</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Literature</Name> + <Directory>mandriva-education-literature.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Education-Literature</Category> + <Category>Literature</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Sciences</Name> + <Directory>mandriva-education-sciences.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Education-Sciences</Category> + <And> + <Category>Science</Category> + <Category>Education</Category> + </And> + </Or> + </Include> + </Menu> + <Menu> + <Name>Sports</Name> + <Directory>mandriva-education-sports.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Education-Sports</Category> + <Category>Sports</Category> + </Or> + </Include> + </Menu> + <Menu> + <Name>Other</Name> + <Directory>mandriva-education-other.directory</Directory> + <Include> + <Or> + <Category>X-MandrivaLinux-MoreApplications-Education-Other</Category> + <Category>Art</Category> + <Category>Construction</Category> + <Category>Teaching</Category> + <And> + <Category>Education</Category> + <Category>Music</Category> + </And> + </Or> + </Include> + </Menu> + </Menu> + <Menu> + <Name>Sciences</Name> + <Layout> + <Menuname>Artificial Intelligence</Menuname> + <Menuname>Astronomy</Menuname> + <Menuname>Biology</Menuname> + <Menuname>Chemistry</Menuname> + <Menuname>Computer Science</Menuname> + <Menuname>Data Visualization</Menuname> + <Menuname>Electricity</Menuname> + <Menuname>Geosciences</Menuname> + <Menuname>Image Processing</Menuname> + <Menuname>Mathematics</Menuname> + <Menuname>Numeric Analysis</Menuname> + <Menuname>Parallel Computing</Menuname> + <Menuname>Physics</Menuname> + <Menuname>Robotics</Menuname> + <Menuname>Other</Menuname> + <Merge type="menus"/> + <Merge type="files"/> + </Layout> + <Directory>mandriva-sciences.directory</Directory> + <OnlyUnallocated/> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences</Category> + <Category>Science</Category> + </Include> + <Menu> + <Name>Artificial Intelligence</Name> + <Directory>mandriva-sciences-artificialintelligence.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-ArtificialIntelligence</Category> + <Category>ArtificialIntelligence</Category> + </Include> + </Menu> + <Menu> + <Name>Astronomy</Name> + <Directory>mandriva-sciences-astronomy.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-Astronomy</Category> + <Category>Astronomy</Category> + </Include> + </Menu> + <Menu> + <Name>Biology</Name> + <Directory>mandriva-sciences-biology.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-Biology</Category> + <Category>Biology</Category> + </Include> + </Menu> + <Menu> + <Name>Chemistry</Name> + <Directory>mandriva-sciences-chemistry.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-Chemistry</Category> + <Category>Chemistry</Category> + </Include> + </Menu> + <Menu> + <Name>Computer Science</Name> + <Directory>mandriva-sciences-computerscience.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-ComputerScience</Category> + <Category>ComputerScience</Category> + </Include> + </Menu> + <Menu> + <Name>Data Visualization</Name> + <Directory>mandriva-sciences-datavisualization.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-DataVisualization</Category> + <Category>DataVisualization</Category> + </Include> + </Menu> + <Menu> + <Name>Electricity</Name> + <Directory>mandriva-sciences-electricity.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-Electricity</Category> + <Category>Electricity</Category> + </Include> + </Menu> + <Menu> + <Name>Geosciences</Name> + <Directory>mandriva-sciences-geosciences.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-Geosciences</Category> + <Category>Geoscience</Category> + <Category>Geology</Category> + </Include> + </Menu> + <Menu> + <Name>Image Processing</Name> + <Directory>mandriva-sciences-imageprocessing.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-ImageProcessing</Category> + <Category>ImageProcessing</Category> + </Include> + </Menu> + <Menu> + <Name>Mathematics</Name> + <Directory>mandriva-sciences-mathematics.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-Mathematics</Category> + <Category>Math</Category> + </Include> + </Menu> + <Menu> + <Name>Numeric Analysis</Name> + <Directory>mandriva-sciences-numericanalysis.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-NumericAnalysis</Category> + <Category>NumericAnalysis</Category> + <Category>NumericalAnalysis</Category> + </Include> + </Menu> + <Menu> + <Name>Parallel Computing</Name> + <Directory>mandriva-sciences-parallelcomputing.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-ParallelComptuting</Category> + <Category>ParallelComptuting</Category> + </Include> + </Menu> + <Menu> + <Name>Physics</Name> + <Directory>mandriva-sciences-physics.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-Physics</Category> + <Category>Physics</Category> + </Include> + </Menu> + <Menu> + <Name>Robotics</Name> + <Directory>mandriva-sciences-robotics.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-Robotics</Category> + <Category>Robotics</Category> + </Include> + </Menu> + <Menu> + <Name>Other</Name> + <Directory>mandriva-sciences-other.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Sciences-Other</Category> + <Category>MedicalSoftware</Category> + <Category>Electronics</Category> + <Category>Engineering</Category> + </Include> + </Menu> + </Menu> + <Menu> + <Name>Documentation</Name> + <Directory>mandriva-documentation.directory</Directory> + <Include> + <Category>X-MandrivaLinux-MoreApplications-Documentation</Category> + <Category>Documentation</Category> + </Include> + </Menu> + <!-- + <Menu> + <Name>Other</Name> + <Directory>mandriva-other.directory</Directory> + <OnlyUnallocated/> + <Include> + <All/> + </Include> + <Exclude> + <Category>Core</Category> + </Exclude> + </Menu>--> + <Menu> + <Name>.hidden</Name> + <Directory>mandriva-hidden.directory</Directory> + <Include> + <Category>X-MandrivaLinux-.hidden</Category> + </Include> + </Menu> + <MergeFile>applications-kmenuedit.menu</MergeFile> +</Menu> diff --git a/trunk/menu/desktop-directories/mandriva-accessibility.directory.in b/trunk/menu/desktop-directories/mandriva-accessibility.directory.in new file mode 100644 index 0000000..f43220c --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-accessibility.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Accessibility +Icon=accessibility_section diff --git a/trunk/menu/desktop-directories/mandriva-development-databases.directory.in b/trunk/menu/desktop-directories/mandriva-development-databases.directory.in new file mode 100644 index 0000000..53be655 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-development-databases.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Databases +Icon=databases_section diff --git a/trunk/menu/desktop-directories/mandriva-development-developmentenvironments.directory.in b/trunk/menu/desktop-directories/mandriva-development-developmentenvironments.directory.in new file mode 100644 index 0000000..dd6b40e --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-development-developmentenvironments.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Development Environments +Icon=development_environment_section diff --git a/trunk/menu/desktop-directories/mandriva-development-tools.directory.in b/trunk/menu/desktop-directories/mandriva-development-tools.directory.in new file mode 100644 index 0000000..df038a7 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-development-tools.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Tools +Icon=development_tools_section diff --git a/trunk/menu/desktop-directories/mandriva-development-webdevelopment.directory.in b/trunk/menu/desktop-directories/mandriva-development-webdevelopment.directory.in new file mode 100644 index 0000000..477debd --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-development-webdevelopment.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Web Development +Icon=web_editors_section diff --git a/trunk/menu/desktop-directories/mandriva-development.directory.in b/trunk/menu/desktop-directories/mandriva-development.directory.in new file mode 100644 index 0000000..410858c --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-development.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Development +Icon=development_section diff --git a/trunk/menu/desktop-directories/mandriva-documentation.directory.in b/trunk/menu/desktop-directories/mandriva-documentation.directory.in new file mode 100644 index 0000000..c4e892d --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-documentation.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Documentation +Icon=documentation_section diff --git a/trunk/menu/desktop-directories/mandriva-education-economy.directory.in b/trunk/menu/desktop-directories/mandriva-education-economy.directory.in new file mode 100644 index 0000000..582e3c5 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-education-economy.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Economy +Icon=education_economy_section diff --git a/trunk/menu/desktop-directories/mandriva-education-geography.directory.in b/trunk/menu/desktop-directories/mandriva-education-geography.directory.in new file mode 100644 index 0000000..738fd42 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-education-geography.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Geography +Icon=education_geography_section diff --git a/trunk/menu/desktop-directories/mandriva-education-history.directory.in b/trunk/menu/desktop-directories/mandriva-education-history.directory.in new file mode 100644 index 0000000..80b37e1 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-education-history.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=History +Icon=education_history_section diff --git a/trunk/menu/desktop-directories/mandriva-education-languages.directory.in b/trunk/menu/desktop-directories/mandriva-education-languages.directory.in new file mode 100644 index 0000000..c8ad555 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-education-languages.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Languages +Icon=education_languages_section diff --git a/trunk/menu/desktop-directories/mandriva-education-literature.directory.in b/trunk/menu/desktop-directories/mandriva-education-literature.directory.in new file mode 100644 index 0000000..8643eb9 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-education-literature.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Literature +Icon=education_literature_section diff --git a/trunk/menu/desktop-directories/mandriva-education-other.directory.in b/trunk/menu/desktop-directories/mandriva-education-other.directory.in new file mode 100644 index 0000000..18dc436 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-education-other.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Other +Icon=education_other_section diff --git a/trunk/menu/desktop-directories/mandriva-education-sciences.directory.in b/trunk/menu/desktop-directories/mandriva-education-sciences.directory.in new file mode 100644 index 0000000..b8c71b7 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-education-sciences.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Sciences +Icon=education_sciences diff --git a/trunk/menu/desktop-directories/mandriva-education-sports.directory.in b/trunk/menu/desktop-directories/mandriva-education-sports.directory.in new file mode 100644 index 0000000..877f2bc --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-education-sports.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Sports +Icon=education_sport_section diff --git a/trunk/menu/desktop-directories/mandriva-education.directory.in b/trunk/menu/desktop-directories/mandriva-education.directory.in new file mode 100644 index 0000000..edca46a --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-education.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Education +Icon=education_section diff --git a/trunk/menu/desktop-directories/mandriva-emulators.directory.in b/trunk/menu/desktop-directories/mandriva-emulators.directory.in new file mode 100644 index 0000000..273fdab --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-emulators.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Emulators +Icon=emulators_section diff --git a/trunk/menu/desktop-directories/mandriva-games-adventure.directory.in b/trunk/menu/desktop-directories/mandriva-games-adventure.directory.in new file mode 100644 index 0000000..2aa1562 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-games-adventure.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Adventure +Icon=adventure_section diff --git a/trunk/menu/desktop-directories/mandriva-games-arcade.directory.in b/trunk/menu/desktop-directories/mandriva-games-arcade.directory.in new file mode 100644 index 0000000..c1b0e90 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-games-arcade.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Arcade +Icon=arcade_section diff --git a/trunk/menu/desktop-directories/mandriva-games-boards.directory.in b/trunk/menu/desktop-directories/mandriva-games-boards.directory.in new file mode 100644 index 0000000..18954fa --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-games-boards.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Boards +Icon=boards_section diff --git a/trunk/menu/desktop-directories/mandriva-games-cards.directory.in b/trunk/menu/desktop-directories/mandriva-games-cards.directory.in new file mode 100644 index 0000000..2ac788f --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-games-cards.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Cards +Icon=cards_section diff --git a/trunk/menu/desktop-directories/mandriva-games-other.directory.in b/trunk/menu/desktop-directories/mandriva-games-other.directory.in new file mode 100644 index 0000000..39f3a69 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-games-other.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Other +Icon=other_amusement diff --git a/trunk/menu/desktop-directories/mandriva-games-puzzles.directory.in b/trunk/menu/desktop-directories/mandriva-games-puzzles.directory.in new file mode 100644 index 0000000..8ce0de8 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-games-puzzles.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Puzzles +Icon=puzzle_section diff --git a/trunk/menu/desktop-directories/mandriva-games-sports.directory.in b/trunk/menu/desktop-directories/mandriva-games-sports.directory.in new file mode 100644 index 0000000..abf35c7 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-games-sports.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Sports +Icon=sport_section diff --git a/trunk/menu/desktop-directories/mandriva-games-strategy.directory.in b/trunk/menu/desktop-directories/mandriva-games-strategy.directory.in new file mode 100644 index 0000000..e034101 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-games-strategy.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Strategy +Icon=strategy_section diff --git a/trunk/menu/desktop-directories/mandriva-games-toys.directory.in b/trunk/menu/desktop-directories/mandriva-games-toys.directory.in new file mode 100644 index 0000000..6565d42 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-games-toys.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Toys +Icon=toys_section diff --git a/trunk/menu/desktop-directories/mandriva-games.directory.in b/trunk/menu/desktop-directories/mandriva-games.directory.in new file mode 100644 index 0000000..018fb82 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-games.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Games +Icon=amusement_section diff --git a/trunk/menu/desktop-directories/mandriva-graphics-more.directory.in b/trunk/menu/desktop-directories/mandriva-graphics-more.directory.in new file mode 100644 index 0000000..404ebb8 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-graphics-more.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=More +Icon=graphics_section diff --git a/trunk/menu/desktop-directories/mandriva-graphics.directory.in b/trunk/menu/desktop-directories/mandriva-graphics.directory.in new file mode 100644 index 0000000..5dfcef9 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-graphics.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Graphics +Icon=graphics_section diff --git a/trunk/menu/desktop-directories/mandriva-hidden.directory.in b/trunk/menu/desktop-directories/mandriva-hidden.directory.in new file mode 100644 index 0000000..d45295c --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-hidden.directory.in @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=.hidden +NoDisplay=true +_Comment=Please don't remove or modify +Icon=go diff --git a/trunk/menu/desktop-directories/mandriva-internet-more.directory.in b/trunk/menu/desktop-directories/mandriva-internet-more.directory.in new file mode 100644 index 0000000..d8c7289 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-internet-more.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=More +Icon=other_networking diff --git a/trunk/menu/desktop-directories/mandriva-internet.directory.in b/trunk/menu/desktop-directories/mandriva-internet.directory.in new file mode 100644 index 0000000..e6bf925 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-internet.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Internet +Icon=internet_section diff --git a/trunk/menu/desktop-directories/mandriva-moreapplications.directory.in b/trunk/menu/desktop-directories/mandriva-moreapplications.directory.in new file mode 100644 index 0000000..92b384f --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-moreapplications.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=More Applications +Icon=more_applications_section diff --git a/trunk/menu/desktop-directories/mandriva-networking.directory.in b/trunk/menu/desktop-directories/mandriva-networking.directory.in new file mode 100644 index 0000000..b920097 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-networking.directory.in @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Networking diff --git a/trunk/menu/desktop-directories/mandriva-office-more.directory.in b/trunk/menu/desktop-directories/mandriva-office-more.directory.in new file mode 100644 index 0000000..5fb3eec --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-office-more.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=More +Icon=office_section diff --git a/trunk/menu/desktop-directories/mandriva-office.directory.in b/trunk/menu/desktop-directories/mandriva-office.directory.in new file mode 100644 index 0000000..97a7706 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-office.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Office +Icon=office_section diff --git a/trunk/menu/desktop-directories/mandriva-other.directory.in b/trunk/menu/desktop-directories/mandriva-other.directory.in new file mode 100644 index 0000000..85301a2 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-other.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Other +Icon=more_applications_other_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-artificialintelligence.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-artificialintelligence.directory.in new file mode 100644 index 0000000..7cb1564 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-artificialintelligence.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Artificial Intelligence +Icon=artificial_intelligence_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-astronomy.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-astronomy.directory.in new file mode 100644 index 0000000..a90b846 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-astronomy.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Astronomy +Icon=astronomy_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-biology.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-biology.directory.in new file mode 100644 index 0000000..080fe41 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-biology.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Biology +Icon=biology_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-chemistry.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-chemistry.directory.in new file mode 100644 index 0000000..6d26b77 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-chemistry.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Chemistry +Icon=chemistry_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-computerscience.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-computerscience.directory.in new file mode 100644 index 0000000..3af7cb0 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-computerscience.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Computer Science +Icon=computer_science_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-datavisualization.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-datavisualization.directory.in new file mode 100644 index 0000000..34474cc --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-datavisualization.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Data Visualization +Icon=data_visualization_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-electricity.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-electricity.directory.in new file mode 100644 index 0000000..dfbfd6f --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-electricity.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Electricity +Icon=electricity_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-geosciences.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-geosciences.directory.in new file mode 100644 index 0000000..1163474 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-geosciences.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Geosciences +Icon=geosciences_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-imageprocessing.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-imageprocessing.directory.in new file mode 100644 index 0000000..27c465a --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-imageprocessing.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Image Processing +Icon=image_processing_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-mathematics.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-mathematics.directory.in new file mode 100644 index 0000000..e63c918 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-mathematics.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Mathematics +Icon=mathematics_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-numericanalysis.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-numericanalysis.directory.in new file mode 100644 index 0000000..8fb6220 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-numericanalysis.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Numeric Analysis +Icon=numerical_analysis_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-other.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-other.directory.in new file mode 100644 index 0000000..1662a74 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-other.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Other +Icon=other_sciences diff --git a/trunk/menu/desktop-directories/mandriva-sciences-parallelcomputing.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-parallelcomputing.directory.in new file mode 100644 index 0000000..37e9ff5 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-parallelcomputing.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Parallel Computing +Icon=parallel_computing_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-physics.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-physics.directory.in new file mode 100644 index 0000000..c1b1df4 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-physics.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Physics +Icon=physics_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences-robotics.directory.in b/trunk/menu/desktop-directories/mandriva-sciences-robotics.directory.in new file mode 100644 index 0000000..225c8d5 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences-robotics.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Robotics +Icon=robotics_section diff --git a/trunk/menu/desktop-directories/mandriva-sciences.directory.in b/trunk/menu/desktop-directories/mandriva-sciences.directory.in new file mode 100644 index 0000000..c662b55 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-sciences.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Sciences +Icon=sciences_section diff --git a/trunk/menu/desktop-directories/mandriva-soundvideo-more.directory.in b/trunk/menu/desktop-directories/mandriva-soundvideo-more.directory.in new file mode 100644 index 0000000..e0f013f --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-soundvideo-more.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=More +Icon=multimedia_section diff --git a/trunk/menu/desktop-directories/mandriva-soundvideo.directory.in b/trunk/menu/desktop-directories/mandriva-soundvideo.directory.in new file mode 100644 index 0000000..055b5cc --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-soundvideo.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Sound & Video +Icon=multimedia_section diff --git a/trunk/menu/desktop-directories/mandriva-system-configuration-gnome-advanced.directory.in b/trunk/menu/desktop-directories/mandriva-system-configuration-gnome-advanced.directory.in new file mode 100644 index 0000000..1fa5fe7 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-system-configuration-gnome-advanced.directory.in @@ -0,0 +1,6 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Advanced +_Comment=Advanced Settings +Icon=advanced-directory diff --git a/trunk/menu/desktop-directories/mandriva-system-configuration-gnome.directory.in b/trunk/menu/desktop-directories/mandriva-system-configuration-gnome.directory.in new file mode 100644 index 0000000..bb5ff38 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-system-configuration-gnome.directory.in @@ -0,0 +1,6 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=GNOME +Icon=gnome_section +NoDisplay=true diff --git a/trunk/menu/desktop-directories/mandriva-system-configuration-kde.directory.in b/trunk/menu/desktop-directories/mandriva-system-configuration-kde.directory.in new file mode 100644 index 0000000..f732c46 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-system-configuration-kde.directory.in @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=KDE +X-KDE-BaseGroup=settings +Icon=kde_section +NoDisplay=true diff --git a/trunk/menu/desktop-directories/mandriva-systemtools.directory.in b/trunk/menu/desktop-directories/mandriva-systemtools.directory.in new file mode 100644 index 0000000..8894e31 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-systemtools.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=System Tools +Icon=configuration_section diff --git a/trunk/menu/desktop-directories/mandriva-tools-more.directory.in b/trunk/menu/desktop-directories/mandriva-tools-more.directory.in new file mode 100644 index 0000000..6d11a29 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-tools-more.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=More +Icon=system_section diff --git a/trunk/menu/desktop-directories/mandriva-tools.directory.in b/trunk/menu/desktop-directories/mandriva-tools.directory.in new file mode 100644 index 0000000..99112c6 --- /dev/null +++ b/trunk/menu/desktop-directories/mandriva-tools.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Tools +Icon=system_section diff --git a/trunk/menu/desktop-directories/mandrivalinux.directory.in b/trunk/menu/desktop-directories/mandrivalinux.directory.in new file mode 100644 index 0000000..926cada --- /dev/null +++ b/trunk/menu/desktop-directories/mandrivalinux.directory.in @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Directory +Encoding=UTF-8 +_Name=Applications +Icon=mandriva diff --git a/trunk/menu/icons/accessibility_section.png b/trunk/menu/icons/accessibility_section.png Binary files differnew file mode 100644 index 0000000..18d276f --- /dev/null +++ b/trunk/menu/icons/accessibility_section.png diff --git a/trunk/menu/icons/addressbook_section.png b/trunk/menu/icons/addressbook_section.png Binary files differnew file mode 100644 index 0000000..6b3e60a --- /dev/null +++ b/trunk/menu/icons/addressbook_section.png diff --git a/trunk/menu/icons/adventure_section.png b/trunk/menu/icons/adventure_section.png Binary files differnew file mode 100644 index 0000000..fc68ca0 --- /dev/null +++ b/trunk/menu/icons/adventure_section.png diff --git a/trunk/menu/icons/amusement_section.png b/trunk/menu/icons/amusement_section.png Binary files differnew file mode 100644 index 0000000..f30969f --- /dev/null +++ b/trunk/menu/icons/amusement_section.png diff --git a/trunk/menu/icons/applications_section.png b/trunk/menu/icons/applications_section.png Binary files differnew file mode 100644 index 0000000..9140a71 --- /dev/null +++ b/trunk/menu/icons/applications_section.png diff --git a/trunk/menu/icons/arcade_section.png b/trunk/menu/icons/arcade_section.png Binary files differnew file mode 100644 index 0000000..3003afa --- /dev/null +++ b/trunk/menu/icons/arcade_section.png diff --git a/trunk/menu/icons/archiving_section.png b/trunk/menu/icons/archiving_section.png Binary files differnew file mode 100644 index 0000000..6f81dab --- /dev/null +++ b/trunk/menu/icons/archiving_section.png diff --git a/trunk/menu/icons/artificial_intelligence_section.png b/trunk/menu/icons/artificial_intelligence_section.png Binary files differnew file mode 100644 index 0000000..0a1d0cf --- /dev/null +++ b/trunk/menu/icons/artificial_intelligence_section.png diff --git a/trunk/menu/icons/astronomy_section.png b/trunk/menu/icons/astronomy_section.png Binary files differnew file mode 100644 index 0000000..5a7f0a0 --- /dev/null +++ b/trunk/menu/icons/astronomy_section.png diff --git a/trunk/menu/icons/backup_section.png b/trunk/menu/icons/backup_section.png Binary files differnew file mode 100644 index 0000000..2d8db19 --- /dev/null +++ b/trunk/menu/icons/backup_section.png diff --git a/trunk/menu/icons/biology_section.png b/trunk/menu/icons/biology_section.png Binary files differnew file mode 100644 index 0000000..8a9b9be --- /dev/null +++ b/trunk/menu/icons/biology_section.png diff --git a/trunk/menu/icons/boards_section.png b/trunk/menu/icons/boards_section.png Binary files differnew file mode 100644 index 0000000..601d1ef --- /dev/null +++ b/trunk/menu/icons/boards_section.png diff --git a/trunk/menu/icons/boot_init_section.png b/trunk/menu/icons/boot_init_section.png Binary files differnew file mode 100644 index 0000000..283038a --- /dev/null +++ b/trunk/menu/icons/boot_init_section.png diff --git a/trunk/menu/icons/buyit-mdv.png b/trunk/menu/icons/buyit-mdv.png Binary files differnew file mode 100644 index 0000000..3baa99e --- /dev/null +++ b/trunk/menu/icons/buyit-mdv.png diff --git a/trunk/menu/icons/cards_section.png b/trunk/menu/icons/cards_section.png Binary files differnew file mode 100644 index 0000000..68a4e36 --- /dev/null +++ b/trunk/menu/icons/cards_section.png diff --git a/trunk/menu/icons/cd_burning_section.png b/trunk/menu/icons/cd_burning_section.png Binary files differnew file mode 100644 index 0000000..7053283 --- /dev/null +++ b/trunk/menu/icons/cd_burning_section.png diff --git a/trunk/menu/icons/chat_section.png b/trunk/menu/icons/chat_section.png Binary files differnew file mode 100644 index 0000000..9cc2a8b --- /dev/null +++ b/trunk/menu/icons/chat_section.png diff --git a/trunk/menu/icons/chemistry_section.png b/trunk/menu/icons/chemistry_section.png Binary files differnew file mode 100644 index 0000000..7abf315 --- /dev/null +++ b/trunk/menu/icons/chemistry_section.png diff --git a/trunk/menu/icons/chinese_section.png b/trunk/menu/icons/chinese_section.png Binary files differnew file mode 100644 index 0000000..6487bde --- /dev/null +++ b/trunk/menu/icons/chinese_section.png diff --git a/trunk/menu/icons/code_generator_section.png b/trunk/menu/icons/code_generator_section.png Binary files differnew file mode 100644 index 0000000..fb063ca --- /dev/null +++ b/trunk/menu/icons/code_generator_section.png diff --git a/trunk/menu/icons/communications_fax_section.png b/trunk/menu/icons/communications_fax_section.png Binary files differnew file mode 100644 index 0000000..839451b --- /dev/null +++ b/trunk/menu/icons/communications_fax_section.png diff --git a/trunk/menu/icons/communications_other_section.png b/trunk/menu/icons/communications_other_section.png Binary files differnew file mode 100644 index 0000000..354976c --- /dev/null +++ b/trunk/menu/icons/communications_other_section.png diff --git a/trunk/menu/icons/communications_phone_section.png b/trunk/menu/icons/communications_phone_section.png Binary files differnew file mode 100644 index 0000000..05aff8e --- /dev/null +++ b/trunk/menu/icons/communications_phone_section.png diff --git a/trunk/menu/icons/communications_section.png b/trunk/menu/icons/communications_section.png Binary files differnew file mode 100644 index 0000000..510d302 --- /dev/null +++ b/trunk/menu/icons/communications_section.png diff --git a/trunk/menu/icons/compression_section.png b/trunk/menu/icons/compression_section.png Binary files differnew file mode 100644 index 0000000..8f7197a --- /dev/null +++ b/trunk/menu/icons/compression_section.png diff --git a/trunk/menu/icons/computer_science_section.png b/trunk/menu/icons/computer_science_section.png Binary files differnew file mode 100644 index 0000000..310b91f --- /dev/null +++ b/trunk/menu/icons/computer_science_section.png diff --git a/trunk/menu/icons/configuration_section.png b/trunk/menu/icons/configuration_section.png Binary files differnew file mode 100644 index 0000000..54979c4 --- /dev/null +++ b/trunk/menu/icons/configuration_section.png diff --git a/trunk/menu/icons/data_visualization_section.png b/trunk/menu/icons/data_visualization_section.png Binary files differnew file mode 100644 index 0000000..b1fcbef --- /dev/null +++ b/trunk/menu/icons/data_visualization_section.png diff --git a/trunk/menu/icons/databases_section.png b/trunk/menu/icons/databases_section.png Binary files differnew file mode 100644 index 0000000..d3f9299 --- /dev/null +++ b/trunk/menu/icons/databases_section.png diff --git a/trunk/menu/icons/development_environment_section.png b/trunk/menu/icons/development_environment_section.png Binary files differnew file mode 100644 index 0000000..4585dd4 --- /dev/null +++ b/trunk/menu/icons/development_environment_section.png diff --git a/trunk/menu/icons/development_section.png b/trunk/menu/icons/development_section.png Binary files differnew file mode 100644 index 0000000..fc33637 --- /dev/null +++ b/trunk/menu/icons/development_section.png diff --git a/trunk/menu/icons/development_tools_section.png b/trunk/menu/icons/development_tools_section.png Binary files differnew file mode 100644 index 0000000..0be303e --- /dev/null +++ b/trunk/menu/icons/development_tools_section.png diff --git a/trunk/menu/icons/documentation_section.png b/trunk/menu/icons/documentation_section.png Binary files differnew file mode 100644 index 0000000..27aa0dc --- /dev/null +++ b/trunk/menu/icons/documentation_section.png diff --git a/trunk/menu/icons/editors_section.png b/trunk/menu/icons/editors_section.png Binary files differnew file mode 100644 index 0000000..499b97d --- /dev/null +++ b/trunk/menu/icons/editors_section.png diff --git a/trunk/menu/icons/education_economy_section.png b/trunk/menu/icons/education_economy_section.png Binary files differnew file mode 100644 index 0000000..bd958a3 --- /dev/null +++ b/trunk/menu/icons/education_economy_section.png diff --git a/trunk/menu/icons/education_geography_section.png b/trunk/menu/icons/education_geography_section.png Binary files differnew file mode 100644 index 0000000..bfa3c38 --- /dev/null +++ b/trunk/menu/icons/education_geography_section.png diff --git a/trunk/menu/icons/education_history_section.png b/trunk/menu/icons/education_history_section.png Binary files differnew file mode 100644 index 0000000..7b55ca4 --- /dev/null +++ b/trunk/menu/icons/education_history_section.png diff --git a/trunk/menu/icons/education_languages_section.png b/trunk/menu/icons/education_languages_section.png Binary files differnew file mode 100644 index 0000000..1457811 --- /dev/null +++ b/trunk/menu/icons/education_languages_section.png diff --git a/trunk/menu/icons/education_literature_section.png b/trunk/menu/icons/education_literature_section.png Binary files differnew file mode 100644 index 0000000..c4c7e48 --- /dev/null +++ b/trunk/menu/icons/education_literature_section.png diff --git a/trunk/menu/icons/education_mathematics.png b/trunk/menu/icons/education_mathematics.png Binary files differnew file mode 100644 index 0000000..9ef0469 --- /dev/null +++ b/trunk/menu/icons/education_mathematics.png diff --git a/trunk/menu/icons/education_other_section.png b/trunk/menu/icons/education_other_section.png Binary files differnew file mode 100644 index 0000000..6fea767 --- /dev/null +++ b/trunk/menu/icons/education_other_section.png diff --git a/trunk/menu/icons/education_sciences.png b/trunk/menu/icons/education_sciences.png Binary files differnew file mode 100644 index 0000000..b858fab --- /dev/null +++ b/trunk/menu/icons/education_sciences.png diff --git a/trunk/menu/icons/education_section.png b/trunk/menu/icons/education_section.png Binary files differnew file mode 100644 index 0000000..96a5826 --- /dev/null +++ b/trunk/menu/icons/education_section.png diff --git a/trunk/menu/icons/education_sport_section.png b/trunk/menu/icons/education_sport_section.png Binary files differnew file mode 100644 index 0000000..d150eb7 --- /dev/null +++ b/trunk/menu/icons/education_sport_section.png diff --git a/trunk/menu/icons/education_tool.png b/trunk/menu/icons/education_tool.png Binary files differnew file mode 100644 index 0000000..b13cc87 --- /dev/null +++ b/trunk/menu/icons/education_tool.png diff --git a/trunk/menu/icons/electricity_section.png b/trunk/menu/icons/electricity_section.png Binary files differnew file mode 100644 index 0000000..1b8f225 --- /dev/null +++ b/trunk/menu/icons/electricity_section.png diff --git a/trunk/menu/icons/emulators_section.png b/trunk/menu/icons/emulators_section.png Binary files differnew file mode 100644 index 0000000..a1c8399 --- /dev/null +++ b/trunk/menu/icons/emulators_section.png diff --git a/trunk/menu/icons/file_tools_section.png b/trunk/menu/icons/file_tools_section.png Binary files differnew file mode 100644 index 0000000..b4a1139 --- /dev/null +++ b/trunk/menu/icons/file_tools_section.png diff --git a/trunk/menu/icons/file_transfer_section.png b/trunk/menu/icons/file_transfer_section.png Binary files differnew file mode 100644 index 0000000..f672912 --- /dev/null +++ b/trunk/menu/icons/file_transfer_section.png diff --git a/trunk/menu/icons/finances_section.png b/trunk/menu/icons/finances_section.png Binary files differnew file mode 100644 index 0000000..b23df72 --- /dev/null +++ b/trunk/menu/icons/finances_section.png diff --git a/trunk/menu/icons/geosciences_section.png b/trunk/menu/icons/geosciences_section.png Binary files differnew file mode 100644 index 0000000..d0611cd --- /dev/null +++ b/trunk/menu/icons/geosciences_section.png diff --git a/trunk/menu/icons/gnome_section.png b/trunk/menu/icons/gnome_section.png Binary files differnew file mode 100644 index 0000000..f2f9254 --- /dev/null +++ b/trunk/menu/icons/gnome_section.png diff --git a/trunk/menu/icons/graphics_section.png b/trunk/menu/icons/graphics_section.png Binary files differnew file mode 100644 index 0000000..7511e1e --- /dev/null +++ b/trunk/menu/icons/graphics_section.png diff --git a/trunk/menu/icons/graphs_section.png b/trunk/menu/icons/graphs_section.png Binary files differnew file mode 100644 index 0000000..242430d --- /dev/null +++ b/trunk/menu/icons/graphs_section.png diff --git a/trunk/menu/icons/hardware_configuration_section.png b/trunk/menu/icons/hardware_configuration_section.png Binary files differnew file mode 100644 index 0000000..1e9a2ab --- /dev/null +++ b/trunk/menu/icons/hardware_configuration_section.png diff --git a/trunk/menu/icons/hardware_section.png b/trunk/menu/icons/hardware_section.png Binary files differnew file mode 100644 index 0000000..f1775b7 --- /dev/null +++ b/trunk/menu/icons/hardware_section.png diff --git a/trunk/menu/icons/image_processing_section.png b/trunk/menu/icons/image_processing_section.png Binary files differnew file mode 100644 index 0000000..9f9b8b7 --- /dev/null +++ b/trunk/menu/icons/image_processing_section.png diff --git a/trunk/menu/icons/instant_messaging_section.png b/trunk/menu/icons/instant_messaging_section.png Binary files differnew file mode 100644 index 0000000..36f9d08 --- /dev/null +++ b/trunk/menu/icons/instant_messaging_section.png diff --git a/trunk/menu/icons/internet_section.png b/trunk/menu/icons/internet_section.png Binary files differnew file mode 100644 index 0000000..ee4dab8 --- /dev/null +++ b/trunk/menu/icons/internet_section.png diff --git a/trunk/menu/icons/interpreters_section.png b/trunk/menu/icons/interpreters_section.png Binary files differnew file mode 100644 index 0000000..b5f7094 --- /dev/null +++ b/trunk/menu/icons/interpreters_section.png diff --git a/trunk/menu/icons/irc_section.png b/trunk/menu/icons/irc_section.png Binary files differnew file mode 100644 index 0000000..90f5488 --- /dev/null +++ b/trunk/menu/icons/irc_section.png diff --git a/trunk/menu/icons/kde_section.png b/trunk/menu/icons/kde_section.png Binary files differnew file mode 100644 index 0000000..ff9d36f --- /dev/null +++ b/trunk/menu/icons/kde_section.png diff --git a/trunk/menu/icons/large/accessibility_section.png b/trunk/menu/icons/large/accessibility_section.png Binary files differnew file mode 100644 index 0000000..b51e00b --- /dev/null +++ b/trunk/menu/icons/large/accessibility_section.png diff --git a/trunk/menu/icons/large/addressbook_section.png b/trunk/menu/icons/large/addressbook_section.png Binary files differnew file mode 100644 index 0000000..a525e7b --- /dev/null +++ b/trunk/menu/icons/large/addressbook_section.png diff --git a/trunk/menu/icons/large/adventure_section.png b/trunk/menu/icons/large/adventure_section.png Binary files differnew file mode 100644 index 0000000..cbb3192 --- /dev/null +++ b/trunk/menu/icons/large/adventure_section.png diff --git a/trunk/menu/icons/large/amusement_section.png b/trunk/menu/icons/large/amusement_section.png Binary files differnew file mode 100644 index 0000000..51038db --- /dev/null +++ b/trunk/menu/icons/large/amusement_section.png diff --git a/trunk/menu/icons/large/applications_section.png b/trunk/menu/icons/large/applications_section.png Binary files differnew file mode 100644 index 0000000..8d5f554 --- /dev/null +++ b/trunk/menu/icons/large/applications_section.png diff --git a/trunk/menu/icons/large/arcade_section.png b/trunk/menu/icons/large/arcade_section.png Binary files differnew file mode 100644 index 0000000..5052c2d --- /dev/null +++ b/trunk/menu/icons/large/arcade_section.png diff --git a/trunk/menu/icons/large/archiving_section.png b/trunk/menu/icons/large/archiving_section.png Binary files differnew file mode 100644 index 0000000..5ca5700 --- /dev/null +++ b/trunk/menu/icons/large/archiving_section.png diff --git a/trunk/menu/icons/large/artificial_intelligence_section.png b/trunk/menu/icons/large/artificial_intelligence_section.png Binary files differnew file mode 100644 index 0000000..30f48ce --- /dev/null +++ b/trunk/menu/icons/large/artificial_intelligence_section.png diff --git a/trunk/menu/icons/large/astronomy_section.png b/trunk/menu/icons/large/astronomy_section.png Binary files differnew file mode 100644 index 0000000..751558b --- /dev/null +++ b/trunk/menu/icons/large/astronomy_section.png diff --git a/trunk/menu/icons/large/backup_section.png b/trunk/menu/icons/large/backup_section.png Binary files differnew file mode 100644 index 0000000..cf08148 --- /dev/null +++ b/trunk/menu/icons/large/backup_section.png diff --git a/trunk/menu/icons/large/biology_section.png b/trunk/menu/icons/large/biology_section.png Binary files differnew file mode 100644 index 0000000..9707049 --- /dev/null +++ b/trunk/menu/icons/large/biology_section.png diff --git a/trunk/menu/icons/large/boards_section.png b/trunk/menu/icons/large/boards_section.png Binary files differnew file mode 100644 index 0000000..e2f857c --- /dev/null +++ b/trunk/menu/icons/large/boards_section.png diff --git a/trunk/menu/icons/large/boot_init_section.png b/trunk/menu/icons/large/boot_init_section.png Binary files differnew file mode 100644 index 0000000..eec582f --- /dev/null +++ b/trunk/menu/icons/large/boot_init_section.png diff --git a/trunk/menu/icons/large/buyit-mdv.png b/trunk/menu/icons/large/buyit-mdv.png Binary files differnew file mode 100644 index 0000000..c81f7bd --- /dev/null +++ b/trunk/menu/icons/large/buyit-mdv.png diff --git a/trunk/menu/icons/large/cards_section.png b/trunk/menu/icons/large/cards_section.png Binary files differnew file mode 100644 index 0000000..8c38517 --- /dev/null +++ b/trunk/menu/icons/large/cards_section.png diff --git a/trunk/menu/icons/large/cd_burning_section.png b/trunk/menu/icons/large/cd_burning_section.png Binary files differnew file mode 100644 index 0000000..a75175a --- /dev/null +++ b/trunk/menu/icons/large/cd_burning_section.png diff --git a/trunk/menu/icons/large/chat_section.png b/trunk/menu/icons/large/chat_section.png Binary files differnew file mode 100644 index 0000000..1009e00 --- /dev/null +++ b/trunk/menu/icons/large/chat_section.png diff --git a/trunk/menu/icons/large/chemistry_section.png b/trunk/menu/icons/large/chemistry_section.png Binary files differnew file mode 100644 index 0000000..9305201 --- /dev/null +++ b/trunk/menu/icons/large/chemistry_section.png diff --git a/trunk/menu/icons/large/chinese_section.png b/trunk/menu/icons/large/chinese_section.png Binary files differnew file mode 100644 index 0000000..304f308 --- /dev/null +++ b/trunk/menu/icons/large/chinese_section.png diff --git a/trunk/menu/icons/large/code_generator_section.png b/trunk/menu/icons/large/code_generator_section.png Binary files differnew file mode 100644 index 0000000..01d7ed6 --- /dev/null +++ b/trunk/menu/icons/large/code_generator_section.png diff --git a/trunk/menu/icons/large/communications_fax_section.png b/trunk/menu/icons/large/communications_fax_section.png Binary files differnew file mode 100644 index 0000000..1007128 --- /dev/null +++ b/trunk/menu/icons/large/communications_fax_section.png diff --git a/trunk/menu/icons/large/communications_other_section.png b/trunk/menu/icons/large/communications_other_section.png Binary files differnew file mode 100644 index 0000000..f01bc2d --- /dev/null +++ b/trunk/menu/icons/large/communications_other_section.png diff --git a/trunk/menu/icons/large/communications_phone_section.png b/trunk/menu/icons/large/communications_phone_section.png Binary files differnew file mode 100644 index 0000000..d9c9c9f --- /dev/null +++ b/trunk/menu/icons/large/communications_phone_section.png diff --git a/trunk/menu/icons/large/communications_section.png b/trunk/menu/icons/large/communications_section.png Binary files differnew file mode 100644 index 0000000..362fc23 --- /dev/null +++ b/trunk/menu/icons/large/communications_section.png diff --git a/trunk/menu/icons/large/compression_section.png b/trunk/menu/icons/large/compression_section.png Binary files differnew file mode 100644 index 0000000..e6772c8 --- /dev/null +++ b/trunk/menu/icons/large/compression_section.png diff --git a/trunk/menu/icons/large/computer_science_section.png b/trunk/menu/icons/large/computer_science_section.png Binary files differnew file mode 100644 index 0000000..a84ca67 --- /dev/null +++ b/trunk/menu/icons/large/computer_science_section.png diff --git a/trunk/menu/icons/large/configuration_section.png b/trunk/menu/icons/large/configuration_section.png Binary files differnew file mode 100644 index 0000000..ba22103 --- /dev/null +++ b/trunk/menu/icons/large/configuration_section.png diff --git a/trunk/menu/icons/large/data_visualization_section.png b/trunk/menu/icons/large/data_visualization_section.png Binary files differnew file mode 100644 index 0000000..6c7c73c --- /dev/null +++ b/trunk/menu/icons/large/data_visualization_section.png diff --git a/trunk/menu/icons/large/databases_section.png b/trunk/menu/icons/large/databases_section.png Binary files differnew file mode 100644 index 0000000..a2371ad --- /dev/null +++ b/trunk/menu/icons/large/databases_section.png diff --git a/trunk/menu/icons/large/development_environment_section.png b/trunk/menu/icons/large/development_environment_section.png Binary files differnew file mode 100644 index 0000000..b77ead3 --- /dev/null +++ b/trunk/menu/icons/large/development_environment_section.png diff --git a/trunk/menu/icons/large/development_section.png b/trunk/menu/icons/large/development_section.png Binary files differnew file mode 100644 index 0000000..5b60abd --- /dev/null +++ b/trunk/menu/icons/large/development_section.png diff --git a/trunk/menu/icons/large/development_tools_section.png b/trunk/menu/icons/large/development_tools_section.png Binary files differnew file mode 100644 index 0000000..f92a808 --- /dev/null +++ b/trunk/menu/icons/large/development_tools_section.png diff --git a/trunk/menu/icons/large/documentation_section.png b/trunk/menu/icons/large/documentation_section.png Binary files differnew file mode 100644 index 0000000..a2c946e --- /dev/null +++ b/trunk/menu/icons/large/documentation_section.png diff --git a/trunk/menu/icons/large/editors_section.png b/trunk/menu/icons/large/editors_section.png Binary files differnew file mode 100644 index 0000000..2ba7bc2 --- /dev/null +++ b/trunk/menu/icons/large/editors_section.png diff --git a/trunk/menu/icons/large/education_economy_section.png b/trunk/menu/icons/large/education_economy_section.png Binary files differnew file mode 100644 index 0000000..3edae59 --- /dev/null +++ b/trunk/menu/icons/large/education_economy_section.png diff --git a/trunk/menu/icons/large/education_geography_section.png b/trunk/menu/icons/large/education_geography_section.png Binary files differnew file mode 100644 index 0000000..50a32eb --- /dev/null +++ b/trunk/menu/icons/large/education_geography_section.png diff --git a/trunk/menu/icons/large/education_history_section.png b/trunk/menu/icons/large/education_history_section.png Binary files differnew file mode 100644 index 0000000..8c722e7 --- /dev/null +++ b/trunk/menu/icons/large/education_history_section.png diff --git a/trunk/menu/icons/large/education_languages_section.png b/trunk/menu/icons/large/education_languages_section.png Binary files differnew file mode 100644 index 0000000..df32f35 --- /dev/null +++ b/trunk/menu/icons/large/education_languages_section.png diff --git a/trunk/menu/icons/large/education_literature_section.png b/trunk/menu/icons/large/education_literature_section.png Binary files differnew file mode 100644 index 0000000..78b533c --- /dev/null +++ b/trunk/menu/icons/large/education_literature_section.png diff --git a/trunk/menu/icons/large/education_mathematics.png b/trunk/menu/icons/large/education_mathematics.png Binary files differnew file mode 100644 index 0000000..6026c20 --- /dev/null +++ b/trunk/menu/icons/large/education_mathematics.png diff --git a/trunk/menu/icons/large/education_other_section.png b/trunk/menu/icons/large/education_other_section.png Binary files differnew file mode 100644 index 0000000..006730a --- /dev/null +++ b/trunk/menu/icons/large/education_other_section.png diff --git a/trunk/menu/icons/large/education_sciences.png b/trunk/menu/icons/large/education_sciences.png Binary files differnew file mode 100644 index 0000000..2caacb7 --- /dev/null +++ b/trunk/menu/icons/large/education_sciences.png diff --git a/trunk/menu/icons/large/education_section.png b/trunk/menu/icons/large/education_section.png Binary files differnew file mode 100644 index 0000000..c56099a --- /dev/null +++ b/trunk/menu/icons/large/education_section.png diff --git a/trunk/menu/icons/large/education_sport_section.png b/trunk/menu/icons/large/education_sport_section.png Binary files differnew file mode 100644 index 0000000..0b6e59a --- /dev/null +++ b/trunk/menu/icons/large/education_sport_section.png diff --git a/trunk/menu/icons/large/education_tool.png b/trunk/menu/icons/large/education_tool.png Binary files differnew file mode 100644 index 0000000..9ea3024 --- /dev/null +++ b/trunk/menu/icons/large/education_tool.png diff --git a/trunk/menu/icons/large/electricity_section.png b/trunk/menu/icons/large/electricity_section.png Binary files differnew file mode 100644 index 0000000..c96bfec --- /dev/null +++ b/trunk/menu/icons/large/electricity_section.png diff --git a/trunk/menu/icons/large/emulators_section.png b/trunk/menu/icons/large/emulators_section.png Binary files differnew file mode 100644 index 0000000..34b05a2 --- /dev/null +++ b/trunk/menu/icons/large/emulators_section.png diff --git a/trunk/menu/icons/large/file_tools_section.png b/trunk/menu/icons/large/file_tools_section.png Binary files differnew file mode 100644 index 0000000..f45ce9e --- /dev/null +++ b/trunk/menu/icons/large/file_tools_section.png diff --git a/trunk/menu/icons/large/file_transfer_section.png b/trunk/menu/icons/large/file_transfer_section.png Binary files differnew file mode 100644 index 0000000..7904a10 --- /dev/null +++ b/trunk/menu/icons/large/file_transfer_section.png diff --git a/trunk/menu/icons/large/finances_section.png b/trunk/menu/icons/large/finances_section.png Binary files differnew file mode 100644 index 0000000..5a828c3 --- /dev/null +++ b/trunk/menu/icons/large/finances_section.png diff --git a/trunk/menu/icons/large/geosciences_section.png b/trunk/menu/icons/large/geosciences_section.png Binary files differnew file mode 100644 index 0000000..4d8ddc0 --- /dev/null +++ b/trunk/menu/icons/large/geosciences_section.png diff --git a/trunk/menu/icons/large/gnome_section.png b/trunk/menu/icons/large/gnome_section.png Binary files differnew file mode 100644 index 0000000..0958e57 --- /dev/null +++ b/trunk/menu/icons/large/gnome_section.png diff --git a/trunk/menu/icons/large/graphics_section.png b/trunk/menu/icons/large/graphics_section.png Binary files differnew file mode 100644 index 0000000..618c01f --- /dev/null +++ b/trunk/menu/icons/large/graphics_section.png diff --git a/trunk/menu/icons/large/graphs_section.png b/trunk/menu/icons/large/graphs_section.png Binary files differnew file mode 100644 index 0000000..bb00a78 --- /dev/null +++ b/trunk/menu/icons/large/graphs_section.png diff --git a/trunk/menu/icons/large/hardware_configuration_section.png b/trunk/menu/icons/large/hardware_configuration_section.png Binary files differnew file mode 100644 index 0000000..daa4820 --- /dev/null +++ b/trunk/menu/icons/large/hardware_configuration_section.png diff --git a/trunk/menu/icons/large/hardware_section.png b/trunk/menu/icons/large/hardware_section.png Binary files differnew file mode 100644 index 0000000..2c9da56 --- /dev/null +++ b/trunk/menu/icons/large/hardware_section.png diff --git a/trunk/menu/icons/large/image_processing_section.png b/trunk/menu/icons/large/image_processing_section.png Binary files differnew file mode 100644 index 0000000..6c7971a --- /dev/null +++ b/trunk/menu/icons/large/image_processing_section.png diff --git a/trunk/menu/icons/large/instant_messaging_section.png b/trunk/menu/icons/large/instant_messaging_section.png Binary files differnew file mode 100644 index 0000000..fd5d7b8 --- /dev/null +++ b/trunk/menu/icons/large/instant_messaging_section.png diff --git a/trunk/menu/icons/large/internet_section.png b/trunk/menu/icons/large/internet_section.png Binary files differnew file mode 100644 index 0000000..d2c306a --- /dev/null +++ b/trunk/menu/icons/large/internet_section.png diff --git a/trunk/menu/icons/large/interpreters_section.png b/trunk/menu/icons/large/interpreters_section.png Binary files differnew file mode 100644 index 0000000..811b12f --- /dev/null +++ b/trunk/menu/icons/large/interpreters_section.png diff --git a/trunk/menu/icons/large/irc_section.png b/trunk/menu/icons/large/irc_section.png Binary files differnew file mode 100644 index 0000000..64b15ac --- /dev/null +++ b/trunk/menu/icons/large/irc_section.png diff --git a/trunk/menu/icons/large/kde_section.png b/trunk/menu/icons/large/kde_section.png Binary files differnew file mode 100644 index 0000000..ffd82d7 --- /dev/null +++ b/trunk/menu/icons/large/kde_section.png diff --git a/trunk/menu/icons/large/mail_section.png b/trunk/menu/icons/large/mail_section.png Binary files differnew file mode 100644 index 0000000..ceb01ef --- /dev/null +++ b/trunk/menu/icons/large/mail_section.png diff --git a/trunk/menu/icons/large/mandrake.png b/trunk/menu/icons/large/mandrake.png Binary files differnew file mode 100644 index 0000000..495e0d9 --- /dev/null +++ b/trunk/menu/icons/large/mandrake.png diff --git a/trunk/menu/icons/large/mathematics_section.png b/trunk/menu/icons/large/mathematics_section.png Binary files differnew file mode 100644 index 0000000..2f49d29 --- /dev/null +++ b/trunk/menu/icons/large/mathematics_section.png diff --git a/trunk/menu/icons/large/monitoring_section.png b/trunk/menu/icons/large/monitoring_section.png Binary files differnew file mode 100644 index 0000000..1c669e9 --- /dev/null +++ b/trunk/menu/icons/large/monitoring_section.png diff --git a/trunk/menu/icons/large/more_applications_other_section.png b/trunk/menu/icons/large/more_applications_other_section.png Binary files differnew file mode 100644 index 0000000..6d6b95e --- /dev/null +++ b/trunk/menu/icons/large/more_applications_other_section.png diff --git a/trunk/menu/icons/large/more_applications_section.png b/trunk/menu/icons/large/more_applications_section.png Binary files differnew file mode 100644 index 0000000..6d6b95e --- /dev/null +++ b/trunk/menu/icons/large/more_applications_section.png diff --git a/trunk/menu/icons/large/multimedia_section.png b/trunk/menu/icons/large/multimedia_section.png Binary files differnew file mode 100644 index 0000000..2112b8d --- /dev/null +++ b/trunk/menu/icons/large/multimedia_section.png diff --git a/trunk/menu/icons/large/networking_configuration_section.png b/trunk/menu/icons/large/networking_configuration_section.png Binary files differnew file mode 100644 index 0000000..278f4b2 --- /dev/null +++ b/trunk/menu/icons/large/networking_configuration_section.png diff --git a/trunk/menu/icons/large/networking_section.png b/trunk/menu/icons/large/networking_section.png Binary files differnew file mode 100644 index 0000000..00150e9 --- /dev/null +++ b/trunk/menu/icons/large/networking_section.png diff --git a/trunk/menu/icons/large/networking_www_section.png b/trunk/menu/icons/large/networking_www_section.png Binary files differnew file mode 100644 index 0000000..982315a --- /dev/null +++ b/trunk/menu/icons/large/networking_www_section.png diff --git a/trunk/menu/icons/large/news_section.png b/trunk/menu/icons/large/news_section.png Binary files differnew file mode 100644 index 0000000..b3055eb --- /dev/null +++ b/trunk/menu/icons/large/news_section.png diff --git a/trunk/menu/icons/large/numerical_analysis_section.png b/trunk/menu/icons/large/numerical_analysis_section.png Binary files differnew file mode 100644 index 0000000..a656f84 --- /dev/null +++ b/trunk/menu/icons/large/numerical_analysis_section.png diff --git a/trunk/menu/icons/large/office_accessories_section.png b/trunk/menu/icons/large/office_accessories_section.png Binary files differnew file mode 100644 index 0000000..231f630 --- /dev/null +++ b/trunk/menu/icons/large/office_accessories_section.png diff --git a/trunk/menu/icons/large/office_drawing_section.png b/trunk/menu/icons/large/office_drawing_section.png Binary files differnew file mode 100644 index 0000000..85b8243 --- /dev/null +++ b/trunk/menu/icons/large/office_drawing_section.png diff --git a/trunk/menu/icons/large/office_section.png b/trunk/menu/icons/large/office_section.png Binary files differnew file mode 100644 index 0000000..34f8887 --- /dev/null +++ b/trunk/menu/icons/large/office_section.png diff --git a/trunk/menu/icons/large/other_amusement.png b/trunk/menu/icons/large/other_amusement.png Binary files differnew file mode 100644 index 0000000..6d2f9a4 --- /dev/null +++ b/trunk/menu/icons/large/other_amusement.png diff --git a/trunk/menu/icons/large/other_archiving.png b/trunk/menu/icons/large/other_archiving.png Binary files differnew file mode 100644 index 0000000..a1d1672 --- /dev/null +++ b/trunk/menu/icons/large/other_archiving.png diff --git a/trunk/menu/icons/large/other_configuration.png b/trunk/menu/icons/large/other_configuration.png Binary files differnew file mode 100644 index 0000000..8a369bc --- /dev/null +++ b/trunk/menu/icons/large/other_configuration.png diff --git a/trunk/menu/icons/large/other_networking.png b/trunk/menu/icons/large/other_networking.png Binary files differnew file mode 100644 index 0000000..17112af --- /dev/null +++ b/trunk/menu/icons/large/other_networking.png diff --git a/trunk/menu/icons/large/other_sciences.png b/trunk/menu/icons/large/other_sciences.png Binary files differnew file mode 100644 index 0000000..a8db7cc --- /dev/null +++ b/trunk/menu/icons/large/other_sciences.png diff --git a/trunk/menu/icons/large/packaging_section.png b/trunk/menu/icons/large/packaging_section.png Binary files differnew file mode 100644 index 0000000..b190bef --- /dev/null +++ b/trunk/menu/icons/large/packaging_section.png diff --git a/trunk/menu/icons/large/parallel_computing_section.png b/trunk/menu/icons/large/parallel_computing_section.png Binary files differnew file mode 100644 index 0000000..2207b63 --- /dev/null +++ b/trunk/menu/icons/large/parallel_computing_section.png diff --git a/trunk/menu/icons/large/pda_section.png b/trunk/menu/icons/large/pda_section.png Binary files differnew file mode 100644 index 0000000..10bfd3c --- /dev/null +++ b/trunk/menu/icons/large/pda_section.png diff --git a/trunk/menu/icons/large/physics_section.png b/trunk/menu/icons/large/physics_section.png Binary files differnew file mode 100644 index 0000000..2873f76 --- /dev/null +++ b/trunk/menu/icons/large/physics_section.png diff --git a/trunk/menu/icons/large/presentation_section.png b/trunk/menu/icons/large/presentation_section.png Binary files differnew file mode 100644 index 0000000..909a6bb --- /dev/null +++ b/trunk/menu/icons/large/presentation_section.png diff --git a/trunk/menu/icons/large/printing_section.png b/trunk/menu/icons/large/printing_section.png Binary files differnew file mode 100644 index 0000000..37b24e8 --- /dev/null +++ b/trunk/menu/icons/large/printing_section.png diff --git a/trunk/menu/icons/large/publishing_section.png b/trunk/menu/icons/large/publishing_section.png Binary files differnew file mode 100644 index 0000000..4804c1e --- /dev/null +++ b/trunk/menu/icons/large/publishing_section.png diff --git a/trunk/menu/icons/large/puzzle_section.png b/trunk/menu/icons/large/puzzle_section.png Binary files differnew file mode 100644 index 0000000..94d1321 --- /dev/null +++ b/trunk/menu/icons/large/puzzle_section.png diff --git a/trunk/menu/icons/large/remote_access_section.png b/trunk/menu/icons/large/remote_access_section.png Binary files differnew file mode 100644 index 0000000..1b795c8 --- /dev/null +++ b/trunk/menu/icons/large/remote_access_section.png diff --git a/trunk/menu/icons/large/robotics_section.png b/trunk/menu/icons/large/robotics_section.png Binary files differnew file mode 100644 index 0000000..ce1e868 --- /dev/null +++ b/trunk/menu/icons/large/robotics_section.png diff --git a/trunk/menu/icons/large/sciences_section.png b/trunk/menu/icons/large/sciences_section.png Binary files differnew file mode 100644 index 0000000..e1cf469 --- /dev/null +++ b/trunk/menu/icons/large/sciences_section.png diff --git a/trunk/menu/icons/large/shells_section.png b/trunk/menu/icons/large/shells_section.png Binary files differnew file mode 100644 index 0000000..794a17f --- /dev/null +++ b/trunk/menu/icons/large/shells_section.png diff --git a/trunk/menu/icons/large/sound_section.png b/trunk/menu/icons/large/sound_section.png Binary files differnew file mode 100644 index 0000000..0757872 --- /dev/null +++ b/trunk/menu/icons/large/sound_section.png diff --git a/trunk/menu/icons/large/sport_section.png b/trunk/menu/icons/large/sport_section.png Binary files differnew file mode 100644 index 0000000..d813cd8 --- /dev/null +++ b/trunk/menu/icons/large/sport_section.png diff --git a/trunk/menu/icons/large/spreadsheet_section.png b/trunk/menu/icons/large/spreadsheet_section.png Binary files differnew file mode 100644 index 0000000..840bf45 --- /dev/null +++ b/trunk/menu/icons/large/spreadsheet_section.png diff --git a/trunk/menu/icons/large/strategy_section.png b/trunk/menu/icons/large/strategy_section.png Binary files differnew file mode 100644 index 0000000..dc29d60 --- /dev/null +++ b/trunk/menu/icons/large/strategy_section.png diff --git a/trunk/menu/icons/large/subscribe-mdv.png b/trunk/menu/icons/large/subscribe-mdv.png Binary files differnew file mode 100644 index 0000000..0f1f12c --- /dev/null +++ b/trunk/menu/icons/large/subscribe-mdv.png diff --git a/trunk/menu/icons/large/system_other_section.png b/trunk/menu/icons/large/system_other_section.png Binary files differnew file mode 100644 index 0000000..6f3124c --- /dev/null +++ b/trunk/menu/icons/large/system_other_section.png diff --git a/trunk/menu/icons/large/system_section.png b/trunk/menu/icons/large/system_section.png Binary files differnew file mode 100644 index 0000000..9805474 --- /dev/null +++ b/trunk/menu/icons/large/system_section.png diff --git a/trunk/menu/icons/large/taskmanagement_section.png b/trunk/menu/icons/large/taskmanagement_section.png Binary files differnew file mode 100644 index 0000000..3083897 --- /dev/null +++ b/trunk/menu/icons/large/taskmanagement_section.png diff --git a/trunk/menu/icons/large/terminals_section.png b/trunk/menu/icons/large/terminals_section.png Binary files differnew file mode 100644 index 0000000..39e70e7 --- /dev/null +++ b/trunk/menu/icons/large/terminals_section.png diff --git a/trunk/menu/icons/large/text_tools_section.png b/trunk/menu/icons/large/text_tools_section.png Binary files differnew file mode 100644 index 0000000..520efff --- /dev/null +++ b/trunk/menu/icons/large/text_tools_section.png diff --git a/trunk/menu/icons/large/timemanagement_section.png b/trunk/menu/icons/large/timemanagement_section.png Binary files differnew file mode 100644 index 0000000..3d2fc18 --- /dev/null +++ b/trunk/menu/icons/large/timemanagement_section.png diff --git a/trunk/menu/icons/large/toys_section.png b/trunk/menu/icons/large/toys_section.png Binary files differnew file mode 100644 index 0000000..fd7f914 --- /dev/null +++ b/trunk/menu/icons/large/toys_section.png diff --git a/trunk/menu/icons/large/video_conferences_section.png b/trunk/menu/icons/large/video_conferences_section.png Binary files differnew file mode 100644 index 0000000..a882620 --- /dev/null +++ b/trunk/menu/icons/large/video_conferences_section.png diff --git a/trunk/menu/icons/large/video_section.png b/trunk/menu/icons/large/video_section.png Binary files differnew file mode 100644 index 0000000..5cb4d11 --- /dev/null +++ b/trunk/menu/icons/large/video_section.png diff --git a/trunk/menu/icons/large/web_browser_section.png b/trunk/menu/icons/large/web_browser_section.png Binary files differnew file mode 100644 index 0000000..d62e8f6 --- /dev/null +++ b/trunk/menu/icons/large/web_browser_section.png diff --git a/trunk/menu/icons/large/web_editors_section.png b/trunk/menu/icons/large/web_editors_section.png Binary files differnew file mode 100644 index 0000000..22c2282 --- /dev/null +++ b/trunk/menu/icons/large/web_editors_section.png diff --git a/trunk/menu/icons/large/windowmanager_section.png b/trunk/menu/icons/large/windowmanager_section.png Binary files differnew file mode 100644 index 0000000..04b39af --- /dev/null +++ b/trunk/menu/icons/large/windowmanager_section.png diff --git a/trunk/menu/icons/large/wordprocessor_section.png b/trunk/menu/icons/large/wordprocessor_section.png Binary files differnew file mode 100644 index 0000000..6b89666 --- /dev/null +++ b/trunk/menu/icons/large/wordprocessor_section.png diff --git a/trunk/menu/icons/mail_section.png b/trunk/menu/icons/mail_section.png Binary files differnew file mode 100644 index 0000000..4895e87 --- /dev/null +++ b/trunk/menu/icons/mail_section.png diff --git a/trunk/menu/icons/mandrake.png b/trunk/menu/icons/mandrake.png Binary files differnew file mode 100644 index 0000000..058efcf --- /dev/null +++ b/trunk/menu/icons/mandrake.png diff --git a/trunk/menu/icons/mathematics_section.png b/trunk/menu/icons/mathematics_section.png Binary files differnew file mode 100644 index 0000000..77ed070 --- /dev/null +++ b/trunk/menu/icons/mathematics_section.png diff --git a/trunk/menu/icons/mini/accessibility_section.png b/trunk/menu/icons/mini/accessibility_section.png Binary files differnew file mode 100644 index 0000000..e2d3958 --- /dev/null +++ b/trunk/menu/icons/mini/accessibility_section.png diff --git a/trunk/menu/icons/mini/addressbook_section.png b/trunk/menu/icons/mini/addressbook_section.png Binary files differnew file mode 100644 index 0000000..7c90ed7 --- /dev/null +++ b/trunk/menu/icons/mini/addressbook_section.png diff --git a/trunk/menu/icons/mini/adventure_section.png b/trunk/menu/icons/mini/adventure_section.png Binary files differnew file mode 100644 index 0000000..84e4155 --- /dev/null +++ b/trunk/menu/icons/mini/adventure_section.png diff --git a/trunk/menu/icons/mini/amusement_section.png b/trunk/menu/icons/mini/amusement_section.png Binary files differnew file mode 100644 index 0000000..71a09d9 --- /dev/null +++ b/trunk/menu/icons/mini/amusement_section.png diff --git a/trunk/menu/icons/mini/applications_section.png b/trunk/menu/icons/mini/applications_section.png Binary files differnew file mode 100644 index 0000000..df2acaf --- /dev/null +++ b/trunk/menu/icons/mini/applications_section.png diff --git a/trunk/menu/icons/mini/arcade_section.png b/trunk/menu/icons/mini/arcade_section.png Binary files differnew file mode 100644 index 0000000..0b9edeb --- /dev/null +++ b/trunk/menu/icons/mini/arcade_section.png diff --git a/trunk/menu/icons/mini/archiving_section.png b/trunk/menu/icons/mini/archiving_section.png Binary files differnew file mode 100644 index 0000000..9b974cf --- /dev/null +++ b/trunk/menu/icons/mini/archiving_section.png diff --git a/trunk/menu/icons/mini/artificial_intelligence_section.png b/trunk/menu/icons/mini/artificial_intelligence_section.png Binary files differnew file mode 100644 index 0000000..ae9e01f --- /dev/null +++ b/trunk/menu/icons/mini/artificial_intelligence_section.png diff --git a/trunk/menu/icons/mini/astronomy_section.png b/trunk/menu/icons/mini/astronomy_section.png Binary files differnew file mode 100644 index 0000000..a900f92 --- /dev/null +++ b/trunk/menu/icons/mini/astronomy_section.png diff --git a/trunk/menu/icons/mini/backup_section.png b/trunk/menu/icons/mini/backup_section.png Binary files differnew file mode 100644 index 0000000..bef6ec6 --- /dev/null +++ b/trunk/menu/icons/mini/backup_section.png diff --git a/trunk/menu/icons/mini/biology_section.png b/trunk/menu/icons/mini/biology_section.png Binary files differnew file mode 100644 index 0000000..1afcad1 --- /dev/null +++ b/trunk/menu/icons/mini/biology_section.png diff --git a/trunk/menu/icons/mini/boards_section.png b/trunk/menu/icons/mini/boards_section.png Binary files differnew file mode 100644 index 0000000..b74790a --- /dev/null +++ b/trunk/menu/icons/mini/boards_section.png diff --git a/trunk/menu/icons/mini/boot_init_section.png b/trunk/menu/icons/mini/boot_init_section.png Binary files differnew file mode 100644 index 0000000..25b02c2 --- /dev/null +++ b/trunk/menu/icons/mini/boot_init_section.png diff --git a/trunk/menu/icons/mini/buyit-mdv.png b/trunk/menu/icons/mini/buyit-mdv.png Binary files differnew file mode 100644 index 0000000..d7179c3 --- /dev/null +++ b/trunk/menu/icons/mini/buyit-mdv.png diff --git a/trunk/menu/icons/mini/cards_section.png b/trunk/menu/icons/mini/cards_section.png Binary files differnew file mode 100644 index 0000000..1bf7be5 --- /dev/null +++ b/trunk/menu/icons/mini/cards_section.png diff --git a/trunk/menu/icons/mini/cd_burning_section.png b/trunk/menu/icons/mini/cd_burning_section.png Binary files differnew file mode 100644 index 0000000..4dd1cee --- /dev/null +++ b/trunk/menu/icons/mini/cd_burning_section.png diff --git a/trunk/menu/icons/mini/chat_section.png b/trunk/menu/icons/mini/chat_section.png Binary files differnew file mode 100644 index 0000000..3aa85bd --- /dev/null +++ b/trunk/menu/icons/mini/chat_section.png diff --git a/trunk/menu/icons/mini/chemistry_section.png b/trunk/menu/icons/mini/chemistry_section.png Binary files differnew file mode 100644 index 0000000..a29fac3 --- /dev/null +++ b/trunk/menu/icons/mini/chemistry_section.png diff --git a/trunk/menu/icons/mini/chinese_section.png b/trunk/menu/icons/mini/chinese_section.png Binary files differnew file mode 100644 index 0000000..bcd698f --- /dev/null +++ b/trunk/menu/icons/mini/chinese_section.png diff --git a/trunk/menu/icons/mini/code_generator_section.png b/trunk/menu/icons/mini/code_generator_section.png Binary files differnew file mode 100644 index 0000000..8500349 --- /dev/null +++ b/trunk/menu/icons/mini/code_generator_section.png diff --git a/trunk/menu/icons/mini/communications_fax_section.png b/trunk/menu/icons/mini/communications_fax_section.png Binary files differnew file mode 100644 index 0000000..5d53f2a --- /dev/null +++ b/trunk/menu/icons/mini/communications_fax_section.png diff --git a/trunk/menu/icons/mini/communications_other_section.png b/trunk/menu/icons/mini/communications_other_section.png Binary files differnew file mode 100644 index 0000000..63084b2 --- /dev/null +++ b/trunk/menu/icons/mini/communications_other_section.png diff --git a/trunk/menu/icons/mini/communications_phone_section.png b/trunk/menu/icons/mini/communications_phone_section.png Binary files differnew file mode 100644 index 0000000..8c20abb --- /dev/null +++ b/trunk/menu/icons/mini/communications_phone_section.png diff --git a/trunk/menu/icons/mini/communications_section.png b/trunk/menu/icons/mini/communications_section.png Binary files differnew file mode 100644 index 0000000..d906d7e --- /dev/null +++ b/trunk/menu/icons/mini/communications_section.png diff --git a/trunk/menu/icons/mini/compression_section.png b/trunk/menu/icons/mini/compression_section.png Binary files differnew file mode 100644 index 0000000..d613c10 --- /dev/null +++ b/trunk/menu/icons/mini/compression_section.png diff --git a/trunk/menu/icons/mini/computer_science_section.png b/trunk/menu/icons/mini/computer_science_section.png Binary files differnew file mode 100644 index 0000000..6e4b0ff --- /dev/null +++ b/trunk/menu/icons/mini/computer_science_section.png diff --git a/trunk/menu/icons/mini/configuration_section.png b/trunk/menu/icons/mini/configuration_section.png Binary files differnew file mode 100644 index 0000000..f8b81d2 --- /dev/null +++ b/trunk/menu/icons/mini/configuration_section.png diff --git a/trunk/menu/icons/mini/data_visualization_section.png b/trunk/menu/icons/mini/data_visualization_section.png Binary files differnew file mode 100644 index 0000000..42d6d7c --- /dev/null +++ b/trunk/menu/icons/mini/data_visualization_section.png diff --git a/trunk/menu/icons/mini/databases_section.png b/trunk/menu/icons/mini/databases_section.png Binary files differnew file mode 100644 index 0000000..7b373db --- /dev/null +++ b/trunk/menu/icons/mini/databases_section.png diff --git a/trunk/menu/icons/mini/development_environment_section.png b/trunk/menu/icons/mini/development_environment_section.png Binary files differnew file mode 100644 index 0000000..b33ed65 --- /dev/null +++ b/trunk/menu/icons/mini/development_environment_section.png diff --git a/trunk/menu/icons/mini/development_section.png b/trunk/menu/icons/mini/development_section.png Binary files differnew file mode 100644 index 0000000..f10e7e4 --- /dev/null +++ b/trunk/menu/icons/mini/development_section.png diff --git a/trunk/menu/icons/mini/development_tools_section.png b/trunk/menu/icons/mini/development_tools_section.png Binary files differnew file mode 100644 index 0000000..2b93e5d --- /dev/null +++ b/trunk/menu/icons/mini/development_tools_section.png diff --git a/trunk/menu/icons/mini/documentation_section.png b/trunk/menu/icons/mini/documentation_section.png Binary files differnew file mode 100644 index 0000000..e26b85e --- /dev/null +++ b/trunk/menu/icons/mini/documentation_section.png diff --git a/trunk/menu/icons/mini/editors_section.png b/trunk/menu/icons/mini/editors_section.png Binary files differnew file mode 100644 index 0000000..2194fc8 --- /dev/null +++ b/trunk/menu/icons/mini/editors_section.png diff --git a/trunk/menu/icons/mini/education_economy_section.png b/trunk/menu/icons/mini/education_economy_section.png Binary files differnew file mode 100644 index 0000000..7efff4e --- /dev/null +++ b/trunk/menu/icons/mini/education_economy_section.png diff --git a/trunk/menu/icons/mini/education_geography_section.png b/trunk/menu/icons/mini/education_geography_section.png Binary files differnew file mode 100644 index 0000000..9769d5d --- /dev/null +++ b/trunk/menu/icons/mini/education_geography_section.png diff --git a/trunk/menu/icons/mini/education_history_section.png b/trunk/menu/icons/mini/education_history_section.png Binary files differnew file mode 100644 index 0000000..a16c1e6 --- /dev/null +++ b/trunk/menu/icons/mini/education_history_section.png diff --git a/trunk/menu/icons/mini/education_languages_section.png b/trunk/menu/icons/mini/education_languages_section.png Binary files differnew file mode 100644 index 0000000..5cc46f7 --- /dev/null +++ b/trunk/menu/icons/mini/education_languages_section.png diff --git a/trunk/menu/icons/mini/education_literature_section.png b/trunk/menu/icons/mini/education_literature_section.png Binary files differnew file mode 100644 index 0000000..fd1fe2c --- /dev/null +++ b/trunk/menu/icons/mini/education_literature_section.png diff --git a/trunk/menu/icons/mini/education_mathematics.png b/trunk/menu/icons/mini/education_mathematics.png Binary files differnew file mode 100644 index 0000000..cb40172 --- /dev/null +++ b/trunk/menu/icons/mini/education_mathematics.png diff --git a/trunk/menu/icons/mini/education_other_section.png b/trunk/menu/icons/mini/education_other_section.png Binary files differnew file mode 100644 index 0000000..cc3319f --- /dev/null +++ b/trunk/menu/icons/mini/education_other_section.png diff --git a/trunk/menu/icons/mini/education_sciences.png b/trunk/menu/icons/mini/education_sciences.png Binary files differnew file mode 100644 index 0000000..63a1578 --- /dev/null +++ b/trunk/menu/icons/mini/education_sciences.png diff --git a/trunk/menu/icons/mini/education_section.png b/trunk/menu/icons/mini/education_section.png Binary files differnew file mode 100644 index 0000000..104a592 --- /dev/null +++ b/trunk/menu/icons/mini/education_section.png diff --git a/trunk/menu/icons/mini/education_sport_section.png b/trunk/menu/icons/mini/education_sport_section.png Binary files differnew file mode 100644 index 0000000..e5fa00b --- /dev/null +++ b/trunk/menu/icons/mini/education_sport_section.png diff --git a/trunk/menu/icons/mini/education_tool.png b/trunk/menu/icons/mini/education_tool.png Binary files differnew file mode 100644 index 0000000..c59488a --- /dev/null +++ b/trunk/menu/icons/mini/education_tool.png diff --git a/trunk/menu/icons/mini/electricity_section.png b/trunk/menu/icons/mini/electricity_section.png Binary files differnew file mode 100644 index 0000000..b505c9b --- /dev/null +++ b/trunk/menu/icons/mini/electricity_section.png diff --git a/trunk/menu/icons/mini/emulators_section.png b/trunk/menu/icons/mini/emulators_section.png Binary files differnew file mode 100644 index 0000000..0174b35 --- /dev/null +++ b/trunk/menu/icons/mini/emulators_section.png diff --git a/trunk/menu/icons/mini/file_tools_section.png b/trunk/menu/icons/mini/file_tools_section.png Binary files differnew file mode 100644 index 0000000..545b0bd --- /dev/null +++ b/trunk/menu/icons/mini/file_tools_section.png diff --git a/trunk/menu/icons/mini/file_transfer_section.png b/trunk/menu/icons/mini/file_transfer_section.png Binary files differnew file mode 100644 index 0000000..8f3ed86 --- /dev/null +++ b/trunk/menu/icons/mini/file_transfer_section.png diff --git a/trunk/menu/icons/mini/finances_section.png b/trunk/menu/icons/mini/finances_section.png Binary files differnew file mode 100644 index 0000000..e7bdec0 --- /dev/null +++ b/trunk/menu/icons/mini/finances_section.png diff --git a/trunk/menu/icons/mini/geosciences_section.png b/trunk/menu/icons/mini/geosciences_section.png Binary files differnew file mode 100644 index 0000000..7338593 --- /dev/null +++ b/trunk/menu/icons/mini/geosciences_section.png diff --git a/trunk/menu/icons/mini/gnome_section.png b/trunk/menu/icons/mini/gnome_section.png Binary files differnew file mode 100644 index 0000000..ede32ec --- /dev/null +++ b/trunk/menu/icons/mini/gnome_section.png diff --git a/trunk/menu/icons/mini/graphics_section.png b/trunk/menu/icons/mini/graphics_section.png Binary files differnew file mode 100644 index 0000000..9c2753a --- /dev/null +++ b/trunk/menu/icons/mini/graphics_section.png diff --git a/trunk/menu/icons/mini/graphs_section.png b/trunk/menu/icons/mini/graphs_section.png Binary files differnew file mode 100644 index 0000000..b34a124 --- /dev/null +++ b/trunk/menu/icons/mini/graphs_section.png diff --git a/trunk/menu/icons/mini/hardware_configuration_section.png b/trunk/menu/icons/mini/hardware_configuration_section.png Binary files differnew file mode 100644 index 0000000..a985ad0 --- /dev/null +++ b/trunk/menu/icons/mini/hardware_configuration_section.png diff --git a/trunk/menu/icons/mini/hardware_section.png b/trunk/menu/icons/mini/hardware_section.png Binary files differnew file mode 100644 index 0000000..e844864 --- /dev/null +++ b/trunk/menu/icons/mini/hardware_section.png diff --git a/trunk/menu/icons/mini/image_processing_section.png b/trunk/menu/icons/mini/image_processing_section.png Binary files differnew file mode 100644 index 0000000..e308210 --- /dev/null +++ b/trunk/menu/icons/mini/image_processing_section.png diff --git a/trunk/menu/icons/mini/instant_messaging_section.png b/trunk/menu/icons/mini/instant_messaging_section.png Binary files differnew file mode 100644 index 0000000..6be8d44 --- /dev/null +++ b/trunk/menu/icons/mini/instant_messaging_section.png diff --git a/trunk/menu/icons/mini/internet_section.png b/trunk/menu/icons/mini/internet_section.png Binary files differnew file mode 100644 index 0000000..9136637 --- /dev/null +++ b/trunk/menu/icons/mini/internet_section.png diff --git a/trunk/menu/icons/mini/interpreters_section.png b/trunk/menu/icons/mini/interpreters_section.png Binary files differnew file mode 100644 index 0000000..e2910a6 --- /dev/null +++ b/trunk/menu/icons/mini/interpreters_section.png diff --git a/trunk/menu/icons/mini/irc_section.png b/trunk/menu/icons/mini/irc_section.png Binary files differnew file mode 100644 index 0000000..2c394c8 --- /dev/null +++ b/trunk/menu/icons/mini/irc_section.png diff --git a/trunk/menu/icons/mini/kde_section.png b/trunk/menu/icons/mini/kde_section.png Binary files differnew file mode 100644 index 0000000..d674ca7 --- /dev/null +++ b/trunk/menu/icons/mini/kde_section.png diff --git a/trunk/menu/icons/mini/mail_section.png b/trunk/menu/icons/mini/mail_section.png Binary files differnew file mode 100644 index 0000000..3c0f393 --- /dev/null +++ b/trunk/menu/icons/mini/mail_section.png diff --git a/trunk/menu/icons/mini/mandrake.png b/trunk/menu/icons/mini/mandrake.png Binary files differnew file mode 100644 index 0000000..ff5e3d5 --- /dev/null +++ b/trunk/menu/icons/mini/mandrake.png diff --git a/trunk/menu/icons/mini/mathematics_section.png b/trunk/menu/icons/mini/mathematics_section.png Binary files differnew file mode 100644 index 0000000..4685410 --- /dev/null +++ b/trunk/menu/icons/mini/mathematics_section.png diff --git a/trunk/menu/icons/mini/monitoring_section.png b/trunk/menu/icons/mini/monitoring_section.png Binary files differnew file mode 100644 index 0000000..a04b436 --- /dev/null +++ b/trunk/menu/icons/mini/monitoring_section.png diff --git a/trunk/menu/icons/mini/more_applications_other_section.png b/trunk/menu/icons/mini/more_applications_other_section.png Binary files differnew file mode 100644 index 0000000..200f7a6 --- /dev/null +++ b/trunk/menu/icons/mini/more_applications_other_section.png diff --git a/trunk/menu/icons/mini/more_applications_section.png b/trunk/menu/icons/mini/more_applications_section.png Binary files differnew file mode 100644 index 0000000..200f7a6 --- /dev/null +++ b/trunk/menu/icons/mini/more_applications_section.png diff --git a/trunk/menu/icons/mini/multimedia_section.png b/trunk/menu/icons/mini/multimedia_section.png Binary files differnew file mode 100644 index 0000000..9b4979d --- /dev/null +++ b/trunk/menu/icons/mini/multimedia_section.png diff --git a/trunk/menu/icons/mini/networking_configuration_section.png b/trunk/menu/icons/mini/networking_configuration_section.png Binary files differnew file mode 100644 index 0000000..f10f6fd --- /dev/null +++ b/trunk/menu/icons/mini/networking_configuration_section.png diff --git a/trunk/menu/icons/mini/networking_section.png b/trunk/menu/icons/mini/networking_section.png Binary files differnew file mode 100644 index 0000000..1f9c6fa --- /dev/null +++ b/trunk/menu/icons/mini/networking_section.png diff --git a/trunk/menu/icons/mini/networking_www_section.png b/trunk/menu/icons/mini/networking_www_section.png Binary files differnew file mode 100644 index 0000000..a9dae1e --- /dev/null +++ b/trunk/menu/icons/mini/networking_www_section.png diff --git a/trunk/menu/icons/mini/news_section.png b/trunk/menu/icons/mini/news_section.png Binary files differnew file mode 100644 index 0000000..6afdf91 --- /dev/null +++ b/trunk/menu/icons/mini/news_section.png diff --git a/trunk/menu/icons/mini/numerical_analysis_section.png b/trunk/menu/icons/mini/numerical_analysis_section.png Binary files differnew file mode 100644 index 0000000..b5eefc1 --- /dev/null +++ b/trunk/menu/icons/mini/numerical_analysis_section.png diff --git a/trunk/menu/icons/mini/office_accessories_section.png b/trunk/menu/icons/mini/office_accessories_section.png Binary files differnew file mode 100644 index 0000000..9cbf688 --- /dev/null +++ b/trunk/menu/icons/mini/office_accessories_section.png diff --git a/trunk/menu/icons/mini/office_drawing_section.png b/trunk/menu/icons/mini/office_drawing_section.png Binary files differnew file mode 100644 index 0000000..69b53d8 --- /dev/null +++ b/trunk/menu/icons/mini/office_drawing_section.png diff --git a/trunk/menu/icons/mini/office_section.png b/trunk/menu/icons/mini/office_section.png Binary files differnew file mode 100644 index 0000000..ad01280 --- /dev/null +++ b/trunk/menu/icons/mini/office_section.png diff --git a/trunk/menu/icons/mini/other_amusement.png b/trunk/menu/icons/mini/other_amusement.png Binary files differnew file mode 100644 index 0000000..559636e --- /dev/null +++ b/trunk/menu/icons/mini/other_amusement.png diff --git a/trunk/menu/icons/mini/other_archiving.png b/trunk/menu/icons/mini/other_archiving.png Binary files differnew file mode 100644 index 0000000..31a30bf --- /dev/null +++ b/trunk/menu/icons/mini/other_archiving.png diff --git a/trunk/menu/icons/mini/other_configuration.png b/trunk/menu/icons/mini/other_configuration.png Binary files differnew file mode 100644 index 0000000..54d9839 --- /dev/null +++ b/trunk/menu/icons/mini/other_configuration.png diff --git a/trunk/menu/icons/mini/other_networking.png b/trunk/menu/icons/mini/other_networking.png Binary files differnew file mode 100644 index 0000000..74766d0 --- /dev/null +++ b/trunk/menu/icons/mini/other_networking.png diff --git a/trunk/menu/icons/mini/other_sciences.png b/trunk/menu/icons/mini/other_sciences.png Binary files differnew file mode 100644 index 0000000..61d18b7 --- /dev/null +++ b/trunk/menu/icons/mini/other_sciences.png diff --git a/trunk/menu/icons/mini/packaging_section.png b/trunk/menu/icons/mini/packaging_section.png Binary files differnew file mode 100644 index 0000000..3a19324 --- /dev/null +++ b/trunk/menu/icons/mini/packaging_section.png diff --git a/trunk/menu/icons/mini/parallel_computing_section.png b/trunk/menu/icons/mini/parallel_computing_section.png Binary files differnew file mode 100644 index 0000000..1f28902 --- /dev/null +++ b/trunk/menu/icons/mini/parallel_computing_section.png diff --git a/trunk/menu/icons/mini/pda_section.png b/trunk/menu/icons/mini/pda_section.png Binary files differnew file mode 100644 index 0000000..cba8ec5 --- /dev/null +++ b/trunk/menu/icons/mini/pda_section.png diff --git a/trunk/menu/icons/mini/physics_section.png b/trunk/menu/icons/mini/physics_section.png Binary files differnew file mode 100644 index 0000000..c7f338e --- /dev/null +++ b/trunk/menu/icons/mini/physics_section.png diff --git a/trunk/menu/icons/mini/presentation_section.png b/trunk/menu/icons/mini/presentation_section.png Binary files differnew file mode 100644 index 0000000..6f5709e --- /dev/null +++ b/trunk/menu/icons/mini/presentation_section.png diff --git a/trunk/menu/icons/mini/printing_section.png b/trunk/menu/icons/mini/printing_section.png Binary files differnew file mode 100644 index 0000000..9dee710 --- /dev/null +++ b/trunk/menu/icons/mini/printing_section.png diff --git a/trunk/menu/icons/mini/publishing_section.png b/trunk/menu/icons/mini/publishing_section.png Binary files differnew file mode 100644 index 0000000..88f1192 --- /dev/null +++ b/trunk/menu/icons/mini/publishing_section.png diff --git a/trunk/menu/icons/mini/puzzle_section.png b/trunk/menu/icons/mini/puzzle_section.png Binary files differnew file mode 100644 index 0000000..94ee70d --- /dev/null +++ b/trunk/menu/icons/mini/puzzle_section.png diff --git a/trunk/menu/icons/mini/remote_access_section.png b/trunk/menu/icons/mini/remote_access_section.png Binary files differnew file mode 100644 index 0000000..e284407 --- /dev/null +++ b/trunk/menu/icons/mini/remote_access_section.png diff --git a/trunk/menu/icons/mini/robotics_section.png b/trunk/menu/icons/mini/robotics_section.png Binary files differnew file mode 100644 index 0000000..b13ce44 --- /dev/null +++ b/trunk/menu/icons/mini/robotics_section.png diff --git a/trunk/menu/icons/mini/sciences_section.png b/trunk/menu/icons/mini/sciences_section.png Binary files differnew file mode 100644 index 0000000..5c56aa7 --- /dev/null +++ b/trunk/menu/icons/mini/sciences_section.png diff --git a/trunk/menu/icons/mini/shells_section.png b/trunk/menu/icons/mini/shells_section.png Binary files differnew file mode 100644 index 0000000..93c7721 --- /dev/null +++ b/trunk/menu/icons/mini/shells_section.png diff --git a/trunk/menu/icons/mini/sound_section.png b/trunk/menu/icons/mini/sound_section.png Binary files differnew file mode 100644 index 0000000..4ca4318 --- /dev/null +++ b/trunk/menu/icons/mini/sound_section.png diff --git a/trunk/menu/icons/mini/sport_section.png b/trunk/menu/icons/mini/sport_section.png Binary files differnew file mode 100644 index 0000000..20fd2b7 --- /dev/null +++ b/trunk/menu/icons/mini/sport_section.png diff --git a/trunk/menu/icons/mini/spreadsheet_section.png b/trunk/menu/icons/mini/spreadsheet_section.png Binary files differnew file mode 100644 index 0000000..557ce03 --- /dev/null +++ b/trunk/menu/icons/mini/spreadsheet_section.png diff --git a/trunk/menu/icons/mini/strategy_section.png b/trunk/menu/icons/mini/strategy_section.png Binary files differnew file mode 100644 index 0000000..a3d6344 --- /dev/null +++ b/trunk/menu/icons/mini/strategy_section.png diff --git a/trunk/menu/icons/mini/subscribe-mdv.png b/trunk/menu/icons/mini/subscribe-mdv.png Binary files differnew file mode 100644 index 0000000..238b64d --- /dev/null +++ b/trunk/menu/icons/mini/subscribe-mdv.png diff --git a/trunk/menu/icons/mini/system_other_section.png b/trunk/menu/icons/mini/system_other_section.png Binary files differnew file mode 100644 index 0000000..997adab --- /dev/null +++ b/trunk/menu/icons/mini/system_other_section.png diff --git a/trunk/menu/icons/mini/system_section.png b/trunk/menu/icons/mini/system_section.png Binary files differnew file mode 100644 index 0000000..a1c5a43 --- /dev/null +++ b/trunk/menu/icons/mini/system_section.png diff --git a/trunk/menu/icons/mini/taskmanagement_section.png b/trunk/menu/icons/mini/taskmanagement_section.png Binary files differnew file mode 100644 index 0000000..a151c94 --- /dev/null +++ b/trunk/menu/icons/mini/taskmanagement_section.png diff --git a/trunk/menu/icons/mini/terminals_section.png b/trunk/menu/icons/mini/terminals_section.png Binary files differnew file mode 100644 index 0000000..3f7d9ea --- /dev/null +++ b/trunk/menu/icons/mini/terminals_section.png diff --git a/trunk/menu/icons/mini/text_tools_section.png b/trunk/menu/icons/mini/text_tools_section.png Binary files differnew file mode 100644 index 0000000..622d3f9 --- /dev/null +++ b/trunk/menu/icons/mini/text_tools_section.png diff --git a/trunk/menu/icons/mini/timemanagement_section.png b/trunk/menu/icons/mini/timemanagement_section.png Binary files differnew file mode 100644 index 0000000..5f4073e --- /dev/null +++ b/trunk/menu/icons/mini/timemanagement_section.png diff --git a/trunk/menu/icons/mini/toys_section.png b/trunk/menu/icons/mini/toys_section.png Binary files differnew file mode 100644 index 0000000..ca3077a --- /dev/null +++ b/trunk/menu/icons/mini/toys_section.png diff --git a/trunk/menu/icons/mini/video_conferences_section.png b/trunk/menu/icons/mini/video_conferences_section.png Binary files differnew file mode 100644 index 0000000..6f5b66d --- /dev/null +++ b/trunk/menu/icons/mini/video_conferences_section.png diff --git a/trunk/menu/icons/mini/video_section.png b/trunk/menu/icons/mini/video_section.png Binary files differnew file mode 100644 index 0000000..074cc97 --- /dev/null +++ b/trunk/menu/icons/mini/video_section.png diff --git a/trunk/menu/icons/mini/web_browser_section.png b/trunk/menu/icons/mini/web_browser_section.png Binary files differnew file mode 100644 index 0000000..84abb8f --- /dev/null +++ b/trunk/menu/icons/mini/web_browser_section.png diff --git a/trunk/menu/icons/mini/web_editors_section.png b/trunk/menu/icons/mini/web_editors_section.png Binary files differnew file mode 100644 index 0000000..99c8db8 --- /dev/null +++ b/trunk/menu/icons/mini/web_editors_section.png diff --git a/trunk/menu/icons/mini/windowmanager_section.png b/trunk/menu/icons/mini/windowmanager_section.png Binary files differnew file mode 100644 index 0000000..70c0ba9 --- /dev/null +++ b/trunk/menu/icons/mini/windowmanager_section.png diff --git a/trunk/menu/icons/mini/wordprocessor_section.png b/trunk/menu/icons/mini/wordprocessor_section.png Binary files differnew file mode 100644 index 0000000..617ccd6 --- /dev/null +++ b/trunk/menu/icons/mini/wordprocessor_section.png diff --git a/trunk/menu/icons/monitoring_section.png b/trunk/menu/icons/monitoring_section.png Binary files differnew file mode 100644 index 0000000..51f85dc --- /dev/null +++ b/trunk/menu/icons/monitoring_section.png diff --git a/trunk/menu/icons/more_applications_other_section.png b/trunk/menu/icons/more_applications_other_section.png Binary files differnew file mode 100644 index 0000000..88b7904 --- /dev/null +++ b/trunk/menu/icons/more_applications_other_section.png diff --git a/trunk/menu/icons/more_applications_section.png b/trunk/menu/icons/more_applications_section.png Binary files differnew file mode 100644 index 0000000..88b7904 --- /dev/null +++ b/trunk/menu/icons/more_applications_section.png diff --git a/trunk/menu/icons/multimedia_section.png b/trunk/menu/icons/multimedia_section.png Binary files differnew file mode 100644 index 0000000..9e394a3 --- /dev/null +++ b/trunk/menu/icons/multimedia_section.png diff --git a/trunk/menu/icons/networking_configuration_section.png b/trunk/menu/icons/networking_configuration_section.png Binary files differnew file mode 100644 index 0000000..8f8df46 --- /dev/null +++ b/trunk/menu/icons/networking_configuration_section.png diff --git a/trunk/menu/icons/networking_section.png b/trunk/menu/icons/networking_section.png Binary files differnew file mode 100644 index 0000000..be00baa --- /dev/null +++ b/trunk/menu/icons/networking_section.png diff --git a/trunk/menu/icons/networking_www_section.png b/trunk/menu/icons/networking_www_section.png Binary files differnew file mode 100644 index 0000000..8ce7fc1 --- /dev/null +++ b/trunk/menu/icons/networking_www_section.png diff --git a/trunk/menu/icons/news_section.png b/trunk/menu/icons/news_section.png Binary files differnew file mode 100644 index 0000000..728fb7a --- /dev/null +++ b/trunk/menu/icons/news_section.png diff --git a/trunk/menu/icons/numerical_analysis_section.png b/trunk/menu/icons/numerical_analysis_section.png Binary files differnew file mode 100644 index 0000000..9cec33f --- /dev/null +++ b/trunk/menu/icons/numerical_analysis_section.png diff --git a/trunk/menu/icons/office_accessories_section.png b/trunk/menu/icons/office_accessories_section.png Binary files differnew file mode 100644 index 0000000..0e408bd --- /dev/null +++ b/trunk/menu/icons/office_accessories_section.png diff --git a/trunk/menu/icons/office_drawing_section.png b/trunk/menu/icons/office_drawing_section.png Binary files differnew file mode 100644 index 0000000..2080bc2 --- /dev/null +++ b/trunk/menu/icons/office_drawing_section.png diff --git a/trunk/menu/icons/office_section.png b/trunk/menu/icons/office_section.png Binary files differnew file mode 100644 index 0000000..20c61ff --- /dev/null +++ b/trunk/menu/icons/office_section.png diff --git a/trunk/menu/icons/other_amusement.png b/trunk/menu/icons/other_amusement.png Binary files differnew file mode 100644 index 0000000..fb66635 --- /dev/null +++ b/trunk/menu/icons/other_amusement.png diff --git a/trunk/menu/icons/other_archiving.png b/trunk/menu/icons/other_archiving.png Binary files differnew file mode 100644 index 0000000..bbc4b0f --- /dev/null +++ b/trunk/menu/icons/other_archiving.png diff --git a/trunk/menu/icons/other_configuration.png b/trunk/menu/icons/other_configuration.png Binary files differnew file mode 100644 index 0000000..fff49dd --- /dev/null +++ b/trunk/menu/icons/other_configuration.png diff --git a/trunk/menu/icons/other_networking.png b/trunk/menu/icons/other_networking.png Binary files differnew file mode 100644 index 0000000..ab0fd13 --- /dev/null +++ b/trunk/menu/icons/other_networking.png diff --git a/trunk/menu/icons/other_sciences.png b/trunk/menu/icons/other_sciences.png Binary files differnew file mode 100644 index 0000000..df1a7b4 --- /dev/null +++ b/trunk/menu/icons/other_sciences.png diff --git a/trunk/menu/icons/packaging_section.png b/trunk/menu/icons/packaging_section.png Binary files differnew file mode 100644 index 0000000..2706dea --- /dev/null +++ b/trunk/menu/icons/packaging_section.png diff --git a/trunk/menu/icons/parallel_computing_section.png b/trunk/menu/icons/parallel_computing_section.png Binary files differnew file mode 100644 index 0000000..a37b9ec --- /dev/null +++ b/trunk/menu/icons/parallel_computing_section.png diff --git a/trunk/menu/icons/pda_section.png b/trunk/menu/icons/pda_section.png Binary files differnew file mode 100644 index 0000000..6bbacf1 --- /dev/null +++ b/trunk/menu/icons/pda_section.png diff --git a/trunk/menu/icons/physics_section.png b/trunk/menu/icons/physics_section.png Binary files differnew file mode 100644 index 0000000..5fd6b60 --- /dev/null +++ b/trunk/menu/icons/physics_section.png diff --git a/trunk/menu/icons/presentation_section.png b/trunk/menu/icons/presentation_section.png Binary files differnew file mode 100644 index 0000000..bd71e7c --- /dev/null +++ b/trunk/menu/icons/presentation_section.png diff --git a/trunk/menu/icons/printing_section.png b/trunk/menu/icons/printing_section.png Binary files differnew file mode 100644 index 0000000..420563e --- /dev/null +++ b/trunk/menu/icons/printing_section.png diff --git a/trunk/menu/icons/publishing_section.png b/trunk/menu/icons/publishing_section.png Binary files differnew file mode 100644 index 0000000..21738a2 --- /dev/null +++ b/trunk/menu/icons/publishing_section.png diff --git a/trunk/menu/icons/puzzle_section.png b/trunk/menu/icons/puzzle_section.png Binary files differnew file mode 100644 index 0000000..8367733 --- /dev/null +++ b/trunk/menu/icons/puzzle_section.png diff --git a/trunk/menu/icons/remote_access_section.png b/trunk/menu/icons/remote_access_section.png Binary files differnew file mode 100644 index 0000000..525fcb1 --- /dev/null +++ b/trunk/menu/icons/remote_access_section.png diff --git a/trunk/menu/icons/robotics_section.png b/trunk/menu/icons/robotics_section.png Binary files differnew file mode 100644 index 0000000..9fcf78c --- /dev/null +++ b/trunk/menu/icons/robotics_section.png diff --git a/trunk/menu/icons/sciences_section.png b/trunk/menu/icons/sciences_section.png Binary files differnew file mode 100644 index 0000000..1676fc3 --- /dev/null +++ b/trunk/menu/icons/sciences_section.png diff --git a/trunk/menu/icons/shells_section.png b/trunk/menu/icons/shells_section.png Binary files differnew file mode 100644 index 0000000..d214a7a --- /dev/null +++ b/trunk/menu/icons/shells_section.png diff --git a/trunk/menu/icons/sound_section.png b/trunk/menu/icons/sound_section.png Binary files differnew file mode 100644 index 0000000..6072de8 --- /dev/null +++ b/trunk/menu/icons/sound_section.png diff --git a/trunk/menu/icons/sport_section.png b/trunk/menu/icons/sport_section.png Binary files differnew file mode 100644 index 0000000..3258e82 --- /dev/null +++ b/trunk/menu/icons/sport_section.png diff --git a/trunk/menu/icons/spreadsheet_section.png b/trunk/menu/icons/spreadsheet_section.png Binary files differnew file mode 100644 index 0000000..5e394bb --- /dev/null +++ b/trunk/menu/icons/spreadsheet_section.png diff --git a/trunk/menu/icons/strategy_section.png b/trunk/menu/icons/strategy_section.png Binary files differnew file mode 100644 index 0000000..355c080 --- /dev/null +++ b/trunk/menu/icons/strategy_section.png diff --git a/trunk/menu/icons/subscribe-mdv.png b/trunk/menu/icons/subscribe-mdv.png Binary files differnew file mode 100644 index 0000000..240b661 --- /dev/null +++ b/trunk/menu/icons/subscribe-mdv.png diff --git a/trunk/menu/icons/system_other_section.png b/trunk/menu/icons/system_other_section.png Binary files differnew file mode 100644 index 0000000..020adee --- /dev/null +++ b/trunk/menu/icons/system_other_section.png diff --git a/trunk/menu/icons/system_section.png b/trunk/menu/icons/system_section.png Binary files differnew file mode 100644 index 0000000..8c3426c --- /dev/null +++ b/trunk/menu/icons/system_section.png diff --git a/trunk/menu/icons/taskmanagement_section.png b/trunk/menu/icons/taskmanagement_section.png Binary files differnew file mode 100644 index 0000000..cf3be48 --- /dev/null +++ b/trunk/menu/icons/taskmanagement_section.png diff --git a/trunk/menu/icons/terminals_section.png b/trunk/menu/icons/terminals_section.png Binary files differnew file mode 100644 index 0000000..11cd164 --- /dev/null +++ b/trunk/menu/icons/terminals_section.png diff --git a/trunk/menu/icons/text_tools_section.png b/trunk/menu/icons/text_tools_section.png Binary files differnew file mode 100644 index 0000000..8fc2092 --- /dev/null +++ b/trunk/menu/icons/text_tools_section.png diff --git a/trunk/menu/icons/timemanagement_section.png b/trunk/menu/icons/timemanagement_section.png Binary files differnew file mode 100644 index 0000000..dcb6fb3 --- /dev/null +++ b/trunk/menu/icons/timemanagement_section.png diff --git a/trunk/menu/icons/toys_section.png b/trunk/menu/icons/toys_section.png Binary files differnew file mode 100644 index 0000000..11f558a --- /dev/null +++ b/trunk/menu/icons/toys_section.png diff --git a/trunk/menu/icons/video_conferences_section.png b/trunk/menu/icons/video_conferences_section.png Binary files differnew file mode 100644 index 0000000..132eba9 --- /dev/null +++ b/trunk/menu/icons/video_conferences_section.png diff --git a/trunk/menu/icons/video_section.png b/trunk/menu/icons/video_section.png Binary files differnew file mode 100644 index 0000000..a4d324d --- /dev/null +++ b/trunk/menu/icons/video_section.png diff --git a/trunk/menu/icons/web_browser_section.png b/trunk/menu/icons/web_browser_section.png Binary files differnew file mode 100644 index 0000000..c01ff68 --- /dev/null +++ b/trunk/menu/icons/web_browser_section.png diff --git a/trunk/menu/icons/web_editors_section.png b/trunk/menu/icons/web_editors_section.png Binary files differnew file mode 100644 index 0000000..b5eb19e --- /dev/null +++ b/trunk/menu/icons/web_editors_section.png diff --git a/trunk/menu/icons/windowmanager_section.png b/trunk/menu/icons/windowmanager_section.png Binary files differnew file mode 100644 index 0000000..b9fb93e --- /dev/null +++ b/trunk/menu/icons/windowmanager_section.png diff --git a/trunk/menu/icons/wordprocessor_section.png b/trunk/menu/icons/wordprocessor_section.png Binary files differnew file mode 100644 index 0000000..d22e664 --- /dev/null +++ b/trunk/menu/icons/wordprocessor_section.png diff --git a/trunk/menu/menu.dtd b/trunk/menu/menu.dtd new file mode 100644 index 0000000..1bca3ed --- /dev/null +++ b/trunk/menu/menu.dtd @@ -0,0 +1,84 @@ +<!-- For explanations see http://www.freedesktop.org/standards/menu-spec --> +<!ELEMENT Menu ( + Name, ( + Directory + | DefaultAppDirs + | AppDir + | DefaultDirectoryDirs + | DirectoryDir + | LegacyDir + | KDELegacyDirs + | MergeFile + | DefaultMergeDirs + | MergeDir + | OnlyUnallocated + | NotOnlyUnallocated + | Deleted + | NotDeleted + | Include + | Exclude + | Move + | Menu + | Layout + | DefaultLayout + )* +)> + +<!ELEMENT Name (#PCDATA)> + +<!ELEMENT Directory (#PCDATA)> + +<!ELEMENT DefaultAppDirs EMPTY> +<!ELEMENT AppDir (#PCDATA)> + +<!ELEMENT DefaultDirectoryDirs EMPTY> +<!ELEMENT DirectoryDir (#PCDATA)> + +<!ELEMENT LegacyDir (#PCDATA)> +<!ATTLIST LegacyDir prefix CDATA #IMPLIED> +<!ELEMENT KDELegacyDirs EMPTY> + +<!ELEMENT MergeFile (#PCDATA)> +<!ATTLIST MergeFile type (path|parent) #IMPLIED> + +<!ELEMENT DefaultMergeDirs EMPTY> +<!ELEMENT MergeDir (#PCDATA)> + +<!ELEMENT OnlyUnallocated EMPTY> +<!ELEMENT NotOnlyUnallocated EMPTY> + +<!ELEMENT Deleted EMPTY> +<!ELEMENT NotDeleted EMPTY> + +<!ELEMENT Exclude ((Category|Filename|And|Or|Not|All)*)> +<!ELEMENT Include ((Category|Filename|And|Or|Not|All)*)> + +<!ELEMENT And ((Category|Filename|And|Or|Not|All)*)> +<!ELEMENT Or ((Category|Filename|And|Or|Not|All)*)> +<!ELEMENT Not ((Category|Filename|And|Or|Not|All)*)> +<!ELEMENT Filename (#PCDATA)> +<!ELEMENT Category (#PCDATA)> +<!ELEMENT All EMPTY> + +<!ELEMENT Move ((Old,New)*)> +<!ELEMENT Old (#PCDATA)> +<!ELEMENT New (#PCDATA)> + +<!ELEMENT Layout ((Filename|Menuname|Separator|Merge)*)> +<!ELEMENT DefaultLayout ((Filename|Menuname|Separator|Merge)*)> +<!ATTLIST DefaultLayout show_empty (true|false) #IMPLIED> +<!ATTLIST DefaultLayout inline (true|false) #IMPLIED> +<!ATTLIST DefaultLayout inline_limit CDATA #IMPLIED> +<!ATTLIST DefaultLayout inline_header (true|false) #IMPLIED> +<!ATTLIST DefaultLayout inline_alias (true|false) #IMPLIED> + +<!ELEMENT Menuname (#PCDATA)> +<!ATTLIST Menuname inline (true|false) #IMPLIED> +<!ATTLIST Menuname inline_limit CDATA #IMPLIED> +<!ATTLIST Menuname inline_header (true|false) #IMPLIED> +<!ATTLIST Menuname inline_alias (true|false) #IMPLIED> + +<!ELEMENT Separator EMPTY> + +<!ELEMENT Merge EMPTY> +<!ATTLIST Merge type (menus|files|all) #REQUIRED> diff --git a/trunk/menu/menustyle.csh b/trunk/menu/menustyle.csh new file mode 100755 index 0000000..6c43314 --- /dev/null +++ b/trunk/menu/menustyle.csh @@ -0,0 +1,13 @@ +set MDV_MENU_STYLE=mandriva + +foreach file (/etc/sysconfig/menustyle $HOME/.menustyle) + if ( -f $file ) then + eval `sed 's|^#.*||' $file | sed 's|\([^=]*\)=\([^=]*\)|set \1=\2|g' | sed 's|$|;|' ` + endif +end + +if ($MDV_MENU_STYLE == discovery && ! ${?XDG_CONFIG_DIRS}) then + set MDV_MENU_STYLE=mandriva +endif + +setenv MDV_MENU_STYLE $MDV_MENU_STYLE diff --git a/trunk/menu/menustyle.sh b/trunk/menu/menustyle.sh new file mode 100755 index 0000000..5a3d46e --- /dev/null +++ b/trunk/menu/menustyle.sh @@ -0,0 +1,10 @@ +MDV_MENU_STYLE=mandriva + +[ -r /etc/sysconfig/menustyle ] && source /etc/sysconfig/menustyle +[ -r $HOME/.menustyle ] && source $HOME/.menustyle + +if [ "$MDV_MENU_STYLE" = "discovery" ]; then + MDV_MENU_STYLE=mandriva +fi + +export MDV_MENU_STYLE diff --git a/trunk/menu/update-menus b/trunk/menu/update-menus new file mode 100755 index 0000000..bd21520 --- /dev/null +++ b/trunk/menu/update-menus @@ -0,0 +1,48 @@ +#!/bin/sh + +usage() { +echo "Usage: update-menus [options]" +echo " -v Be verbose about what is going on." +echo " -u generate only user menu (useful for root user)" +echo " -h, --help This message." + +exit 0 +} + + +VERBOSE=0 + +if [ "$DURING_INSTALL" = "1" ]; then + exit 0 +fi + +if [ "$UID" == "0" ]; then + USER_MENU=0 +else + USER_MENU=1 +fi + +if [ $# != 0 ]; then + +while getopts ":vunh" option +do + case $option in + v ) VERBOSE=1 ; RUN_PARTS_ARG="--verbose" ;; + u ) USER_MENU=1 ;; + h ) usage ;; + esac +done +fi + +export VERBOSE +export USER_MENU + +if [ -d /etc/menu.d ]; then + run-parts $RUN_PARTS_ARG /etc/menu.d + if [ "$USER_MENU" = "1" ]; then + touch "$HOME/.menu-updates.stamp" 2> /dev/null + else + touch /var/lib/menu/.menu-updates.stamp 2> /dev/null + fi +fi + diff --git a/trunk/menu/xdg_menu b/trunk/menu/xdg_menu new file mode 100755 index 0000000..0ac1768 --- /dev/null +++ b/trunk/menu/xdg_menu @@ -0,0 +1,2217 @@ +#!/usr/bin/perl + +# Copyright (c) 2003 SuSE Linux AG, Nuernberg, Germany. All rights reserved. +# +# Author: nadvornik@suse.cz +# +# + +use strict; +use Locale::gettext; +use Getopt::Long; +use Encode; +use I18N::Langinfo qw(langinfo CODESET); +use POSIX qw(locale_h); + +my $Version = "0.2"; + +my $DefaultAppDirs; +my $DefaultDirectoryDirs; +my @KDELegacyDirs; + +my $format = 'WindowMaker'; +my $desktop_name; +my $language = ''; +my $charset = 'iso-8859-1'; +my $root_cmd = 'xdg_menu_su'; + +my $die_on_error = 0; +my $verbose = 0; +my $fullmenu = 0; + +my @language_keys; + +my @accessed_files; +my @save_ARGV = @ARGV; + + +my %Desktop_entries; +my %Directory_entries; + +sub check_file ($) +{ + my ($file) =@_; + + unless (-e $file) { + push @accessed_files, "X $file"; + return ''; + } + + if (-d $file) { + push @accessed_files, "D $file"; + return 'D'; + } else { + push @accessed_files, "F $file"; + return 'F'; + } +} + +sub add_png_extension_if_needed ($) +{ + my ($f) = @_; + return $f =~ /\.(png|xpm|svg)$/ ? $f : "$f.png"; +} + +sub scan_AppDir ($$;$) +{ + my ($pool, $dir, $topdir) = @_; + + check_file($dir); + $topdir = $dir unless defined $topdir; + + opendir(DIR, $dir) or return; + + foreach my $entry (readdir(DIR)) { + + if ( -f "$dir/$entry" && $entry =~ /\.desktop$/ ) { + read_desktop_entry($pool, "$dir/$entry", $topdir); + } + elsif ( -d "$dir/$entry" && $entry ne '.' && $entry ne '..' && $entry ne '.hidden') { + scan_AppDir ($pool, "$dir/$entry", $topdir); + } + } + closedir DIR; +} + +sub scan_DirectoryDir ($$;$) +{ + my ($pool, $dir, $topdir) = @_; + + check_file($dir); + $topdir = $dir unless defined $topdir; + + opendir(DIR, $dir) or return; + + foreach my $entry (readdir(DIR)) { + + if ( -f "$dir/$entry" && $entry =~ /\.directory$/ ) { + read_directory_entry($pool, "$dir/$entry", $topdir); + } + elsif ( -d "$dir/$entry" && $entry ne '.' && $entry ne '..' && $entry ne '.hidden') { + scan_DirectoryDir ($pool, "$dir/$entry", $topdir); + } + } + + closedir DIR; +} + +sub read_directory_entry +{ + my ($pool, $file, $topdir) = @_; + + + unless (defined $Directory_entries{$file}) { + + check_file($file); + + open(FILE, "<$file") or return; + + my $in_desktop_entry = 0; + my %entry; + while (<FILE>) { + if (/^\[/) { + if (/^\[Desktop Entry\]/) { + $in_desktop_entry = 1; + } + elsif (/^\[.*\]/) { + $in_desktop_entry = 0; + } + } + elsif ($in_desktop_entry && /^([^=]*)=([^[:cntrl:]]*)/) { + $entry{$1} = $2; + } + } + close(FILE); + + my $id = $file; + $id =~ s/^$topdir//; + $id =~ s/^\/*//; + $id =~ s/\//-/g; + $entry{'id'} = $id; + + $Directory_entries{$file} = \%entry; + } + + my $entry = $Directory_entries{$file}; + + $pool->{'Directory_entries'}{$entry->{'id'}} = $entry; +} + +sub check_show_in ($) +{ + my ($entry) = @_; + + return 1 unless defined $entry; + + my %OnlyShowIn; + my %NotShowIn; + + if (defined $entry->{'OnlyShowIn'}) { + foreach my $showin (split /;/, $entry->{'OnlyShowIn'}) { + $OnlyShowIn{$showin} = 1; + } + return 0 unless defined $OnlyShowIn{$desktop_name}; + } + if (defined $entry->{'NotShowIn'}) { + foreach my $showin (split /;/, $entry->{'NotShowIn'}) { + $NotShowIn{$showin} = 1; + } + return 0 if defined $NotShowIn{$desktop_name} ; + } + + return 1; +} + +sub read_desktop_entry +{ + my ($pool, $file, $topdir) = @_; + + + unless (defined $Desktop_entries{$file}) { + + check_file($file); + + open(FILE, "<$file") or return; + + my $in_desktop_entry = 0; + my %entry; + while (<FILE>) { + if (/^\[/) { + if (/^\[Desktop Entry\]/) { + $in_desktop_entry = 1; + } + elsif (/^\[.*\]/) { + $in_desktop_entry = 0; + } + } + elsif ($in_desktop_entry && /^([^=]*)=([^[:cntrl:]]*)/) { + $entry{$1} = $2; + } + } + close(FILE); + + my $id = $file; + $id =~ s/^$topdir//; + $id =~ s/^\/*//; + $id =~ s/\//-/g; + $entry{'id'} = $id; + + $entry{'refcount'} = 0; + + $Desktop_entries{$file} = \%entry; + } + + my $entry = $Desktop_entries{$file}; + + return unless defined $entry->{'Name'}; + return unless defined $entry->{'Exec'}; + return if $entry->{'Hidden'} eq 'true'; + return if $entry->{'NoDisplay'} eq 'true'; + + return unless check_show_in($entry); + + return if defined $entry->{'NotShowIn'} && $entry->{'NotShowIn'} eq $desktop_name; + + + if (defined $pool) { + + foreach my $category (split /;/, $entry->{'Categories'}) { + $pool->{'Categories'}{$category} = [] unless defined $pool->{'Categories'}{$category}; + push @{$pool->{'Categories'}{$category}}, $entry; + } + + $pool->{'Desktop_entries'}{$entry->{'id'}} = $entry; + } + + return $entry; +} + +my $cached_pool; + +sub read_desktop_entries ($$) +{ + my ($directory_paths, $desktop_paths) = @_; + + if ($cached_pool->{'Directory_paths'} eq $directory_paths && + $cached_pool->{'Desktop_paths'} eq $desktop_paths) { + + return $cached_pool; + } + + + my $pool = {'Desktop_entries' => {}, + 'Categories' => {}, + 'Directory_entries' => {}, + 'Directory_paths' => $directory_paths, + 'Desktop_paths' => $desktop_paths + }; + + foreach my $dir (split /:/, $directory_paths) { + next if $dir =~ /^\s*$/; + scan_DirectoryDir($pool, $dir); + } + + foreach my $dir (split /:/, $desktop_paths) { + next if $dir =~ /^\s*$/; + scan_AppDir($pool, $dir); + } + + $cached_pool = $pool; + + return $pool; +} + +sub dump_entry_list ($) +{ + my ($list) = @_; + + print "list: "; + foreach my $entry (@$list) { + print "$entry->{id} "; + } + print "\n"; + +} + +sub get_directory_entry ($$) +{ + my ($entry, $pool) = @_; + + return $pool->{'Directory_entries'}{$entry}; +} + +sub interpret_Include +{ + my ($tree, $entries, $pool) = @_; + my %exist; + + my $i = 0; + + + my @list = interpret_entry_node($tree, 'Or', $pool); + + foreach my $e (@$entries) { + if ($e->{type} eq 'desktop') { + $exist{$e->{desktop}} = 1; + } + } + + +# dump_entry_list(\@list); + + foreach my $entry (@list) { + + next if $exist{$entry}; + + push @$entries, {type => 'desktop', desktop => $entry}; + $entry->{'refcount'}++; + + $exist{$entry} = 1; + + } +} + +sub interpret_Exclude +{ + my ($tree, $entries, $pool) = @_; + + my $i = 0; + + my @list = interpret_entry_node($tree, 'Or', $pool); + + + foreach my $entry (@list) { + + my $i = 0; + while (defined $entries->[$i]) { + my $exist = $entries->[$i]; + if ($exist->{type} eq 'desktop' && + $exist->{desktop} eq $entry) { + splice @$entries, $i, 1; + $entry->{'refcount'}--; + } + else { + $i++; + } + } + } +} + + +sub interpret_entry_node ($$$) +{ + my ($tree, $node, $pool) = @_; + + my $i = 0; + $i++ if (ref($tree->[$i]) eq 'HASH'); + + my @subtree; + + while (defined $tree->[$i]) { + if ($tree->[$i] eq 'Filename') { + $i++; + if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') { + my $entry = $tree->[$i][2]; + if (defined $pool->{'Desktop_entries'}{$entry}) { + push @subtree, [$pool->{'Desktop_entries'}{$entry}]; + } + else { + push @subtree, []; + } + } + else { + print STDERR "Filename\n"; + exit 1 if $die_on_error; + } + $i++; + } + elsif ($tree->[$i] eq 'Category') { + $i++; + if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') { + my $category = $tree->[$i][2]; + if (defined $pool->{'Categories'}{$category}) { + push @subtree, $pool->{'Categories'}{$category}; + } + else { + push @subtree, []; + } + } + else { + print STDERR "Category\n"; + exit 1 if $die_on_error; + } + $i++; + } + elsif ($tree->[$i] eq 'All') { + $i++; + if (values %{$pool->{'Desktop_entries'}} > 0) { + push @subtree, [values %{$pool->{'Desktop_entries'}}]; + } + else { + push @subtree, []; + } + $i++; + } + elsif ($tree->[$i] eq '0') { + $i++; + $i++; + } + else { + my @res = interpret_entry_node($tree->[$i+1], $tree->[$i], $pool); + push @subtree, \@res; + $i++; $i++; + } + } + + if ($node eq 'Or') + { +# print "or - \n"; + + my %used; + my @res; + foreach my $st (@subtree) { +# print " st: "; +# dump_entry_list($st); + foreach my $entry (@$st) { + if (! defined $used{$entry}) { + push @res, $entry; + $used{$entry} = 1; + } + } + } +# print " res: "; +# dump_entry_list(\@res); + return @res; + } elsif ($node eq 'And') + { + my %used; + my @res; +# print "and - \n"; + my $cnt = @subtree; + my $min = @{$subtree[0]}; + my $min_idx = 0; + my $idx = 0; + + foreach my $st (@subtree) { +# print " st: "; +# dump_entry_list($st); + + my $num = @$st; + if ($num < $min) { + $min = $num; + $min_idx = $idx; + } + + my %dupes; + foreach my $entry (@$st) { + next if $dupes{$entry}; + $dupes{$entry} = 1; + + if (! defined $used{$entry}) { + $used{$entry} = 1; + } + else { + $used{$entry} ++ + } + } + + $idx ++; + } + return () if $cnt == 0; + foreach my $entry (@{$subtree[$min_idx]}) { + push @res, $entry if $used{$entry} == $cnt; + } + +# print " res: "; +# dump_entry_list(\@res); + return @res; + } elsif ($node eq 'Not') + { + my %used; + my @res; +# print "not - \n"; + my $cnt = @subtree; + foreach my $st (@subtree) { +# print " st: "; +# dump_entry_list($st); + foreach my $entry (@$st) { + $used{$entry} = 1; + } + } + return if $cnt == 0; + foreach my $entry (values %{$pool->{'Desktop_entries'}}) { + push @res, $entry if !defined $used{$entry}; + } + +# print " res: "; +# dump_entry_list(\@res); + return @res; + } else { + print STDERR "Can't use '$node' inside <Include> or <Exclude>\n"; + exit 1 if $die_on_error; + return (); + } +} + +sub interpret_root ($$) +{ + my ($tree, $topdir) = @_; + if ($tree->[0] eq 'Menu') { + return interpret_menu($tree->[1]); + } + else { + print STDERR "No toplevel Menu\n"; + exit 1 if $die_on_error; + return; + } +} + + +sub interpret_menu ($;$$) +{ + my ($tree, $directory_paths, $desktop_paths) = @_; + + $directory_paths = '' unless defined $directory_paths; + $desktop_paths = '' unless defined $desktop_paths; + + my %menu = ('entries' => [], + 'OnlyUnallocated' => 0, + 'DontShowIfEmpty' => 0, + 'Deleted' => 0); + + my $i = 0; + + $i++ if (ref($tree->[$i]) eq 'HASH'); + + while (defined $tree->[$i]) { + if ($tree->[$i] eq 'AppDir') { + if (ref($tree->[$i + 1][0]) eq 'HASH' and $tree->[$i + 1][1] eq '0') { + $desktop_paths .= ':' . $tree->[$i + 1][2]; + splice @$tree, $i, 2; + } + else { + print STDERR "wrong AppDir\n"; + exit 1 if $die_on_error; + $i++; + $i++; + } + } + elsif ($tree->[$i] eq 'DefaultAppDirs') { + $desktop_paths .= ':' . $DefaultAppDirs; + splice @$tree, $i, 2; + } + elsif ($tree->[$i] eq 'DirectoryDir') { + if (ref($tree->[$i + 1][0]) eq 'HASH' and $tree->[$i + 1][1] eq '0') { + $directory_paths .= ':' . $tree->[$i + 1][2]; + splice @$tree, $i, 2; + } + else { + print STDERR "wrong DirectoryDir\n"; + exit 1 if $die_on_error; + $i++; + $i++; + } + } + elsif ($tree->[$i] eq 'DefaultDirectoryDirs') { + $directory_paths .= ':' . $DefaultDirectoryDirs; + splice @$tree, $i, 2; + } + else { + $i++; + $i++; + } + } + + + $menu{directory_paths} = $directory_paths; + $menu{desktop_paths} = $desktop_paths; + + my $pool = read_desktop_entries($directory_paths, $desktop_paths); + + + $i = 0; + + $i++ if (ref($tree->[$i]) eq 'HASH'); + + while (defined $tree->[$i]) { + if ($tree->[$i] eq 'Menu') { + $i++; + my $submenu = interpret_menu($tree->[$i], $directory_paths, $desktop_paths); + push @{$menu{'entries'}}, {type => 'menu', menu => $submenu}; + $i++; + } + elsif ($tree->[$i] eq 'Name') { + $i++; + if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') { + $menu{'Name'} = $tree->[$i][2]; + } + else { + print STDERR "wrong Name\n"; + exit 1 if $die_on_error; + } + $i++; + } + elsif ($tree->[$i] eq 'Directory') { + $i++; + if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') { + $menu{'Directory'} = get_directory_entry($tree->[$i][2], $pool); +# print "Directory " . $tree->[$i][2] . "\n"; + } + else { + print STDERR "wrong Directory\n"; + exit 1 if $die_on_error; + } + $i++; + } + elsif ($tree->[$i] eq 'OnlyUnallocated') { + $menu{'OnlyUnallocated'} = 1; + $i++; + $i++; + } + elsif ($tree->[$i] eq 'DontShowIfEmpty') { + $menu{'DontShowIfEmpty'} = 1; + $i++; + $i++; + } + elsif ($tree->[$i] eq 'Deleted') { + $menu{'Deleted'} = 1; + $i++; + $i++; + } + elsif ($tree->[$i] eq 'NotDeleted') { + $menu{'Deleted'} = 0; + $i++; + $i++; + } + elsif ($tree->[$i] eq 'Include') { + $i++; + interpret_Include($tree->[$i], $menu{'entries'}, $pool); + $i++; + } + elsif ($tree->[$i] eq 'Exclude') { + $i++; + interpret_Exclude($tree->[$i], $menu{'entries'}, $pool); + $i++; + } + elsif ($tree->[$i] eq '0') { + $i++; + if ($tree->[$i] !~ /^\s*$/) { + print STDERR "skip '$tree->[$i]'\n" ; + exit 1 if $die_on_error; + } + $i++; + } + else { + print STDERR "Unknown '$tree->[$i]':\n"; + $i++; + print STDERR " '@{$tree->[$i]}'\n"; + $i++; + exit 1 if $die_on_error; + } + } + + return \%menu; +} + + +sub read_menu ($;$) +{ + my ($file, $basedir) = @_; + + + if ($file !~ /^\// && defined $basedir) { + $file = "$basedir/$file"; + } + + unless (defined $basedir) { + $basedir = $file; + $basedir =~ s/\/[^\/]*$//; + } + + unless (check_file($file)) { + print STDERR "WARNING: '$file' does not exist\n"; + return ['Menu', [{}]]; + } + + print STDERR "reading '$file'\n" if $verbose; + + my $parser = new XML::Parser(Style => 'Tree'); + my $tree = $parser->parsefile($file); + + my $DefaultMergeDir = $file; + $DefaultMergeDir =~ s/^.*\///; + $DefaultMergeDir =~ s/\.menu$/-merged/; + + read_includes($tree, $basedir, $DefaultMergeDir); + + return $tree +} + +sub read_menu_dir ($;$) +{ + my ($dir, $basedir) = @_; + + my @out; + + if ($dir !~ /^\// && defined $basedir) { + $dir = "$basedir/$dir"; + } + + + check_file($dir); + + opendir(DIR, $dir); + + foreach my $entry (readdir(DIR)) { + + if ( -f "$dir/$entry" && $entry =~ /\.menu$/ ) { + my $menu = read_menu("$dir/$entry"); + $menu = remove_toplevel_Menu($menu); + push @out, @$menu; + } + } + closedir DIR; + + return \@out; +} + +sub quote_xml ($) +{ + my ($txt) = @_; + + $txt =~ s/&/&/g; + $txt =~ s/</</g; + $txt =~ s/>/>/g; + return $txt; +} + +sub read_legacy_dir ($;$) +{ + my ($dir,$basedir) = @_; + my $out; + + $dir =~ s/\/*$//; + + $basedir = $dir unless defined $basedir; + + return "" if check_file($dir) ne 'D'; + + $out = "<Menu>\n"; + + if ($dir eq $basedir) { + my $xmldir = quote_xml($dir); + + $out .= "<AppDir>$xmldir</AppDir>\n"; + $out .= "<DirectoryDir>$xmldir</DirectoryDir>\n"; + } + else { + my $name = $dir; + $name =~ s/\/*$//; + $name =~ s/^.*\///; + + $name = quote_xml($name); + + $out .= "<Name>$name</Name>\n"; + } + + + if (-f "$dir/.directory") { + + my $dir_id = "$dir/.directory"; + $dir_id =~ s/^$basedir//; + $dir_id =~ s/^\///; + $dir_id = quote_xml($dir_id); + + $out .= "<Directory>$dir_id</Directory>\n"; + } + + opendir(DIR, $dir); + + foreach my $entry (readdir(DIR)) { + + if ( -f "$dir/$entry" && $entry =~ /\.desktop$/ ) { + my $id = "$dir/$entry"; + $id =~ s/^$basedir//; + $id =~ s/^\///; + $id =~ s/\//-/g; + $id = quote_xml($id); + + my $desktop = read_desktop_entry(undef, "$dir/$entry", $basedir); + $out .= "<Include><Filename>$id</Filename></Include>\n" unless defined $desktop->{'Categories'} + } + elsif ( -d "$dir/$entry" && $entry ne '.' && $entry ne '..' && $entry ne '.hidden') { + $out .= read_legacy_dir("$dir/$entry", $basedir); + } + } + closedir DIR; + $out .= "</Menu>\n"; + return $out; +} + +sub remove_toplevel_Menu ($) +{ + my ($tree) = @_; + if ($tree->[0] eq 'Menu') { + shift @{$tree->[1]} if (ref($tree->[1][0]) eq 'HASH'); + return $tree->[1]; + } + else { + print STDERR "No toplevel Menu\n"; + exit 1 if $die_on_error; + return; + } +} + +sub read_includes ($$$) +{ + my ($tree, $basedir, $DefaultMergeDir) = @_; + + my $i = 0; + + $i++ if (ref($tree->[$i]) eq 'HASH'); + + while (defined $tree->[$i]) { + if ($tree->[$i] eq 'MergeFile') { + if (ref($tree->[$i + 1][0]) eq 'HASH' and $tree->[$i + 1][1] eq '0') { + my $add_tree = read_menu($tree->[$i + 1][2], $basedir); + $add_tree = remove_toplevel_Menu($add_tree); + + splice @$tree, $i, 2, @$add_tree; + + } + else { + print STDERR "wrong MergeFile\n"; + exit 1 if $die_on_error; + $i++; + $i++; + } + + } + elsif ($tree->[$i] eq 'MergeDir') { + if (ref($tree->[$i + 1][0]) eq 'HASH' and $tree->[$i + 1][1] eq '0') { + + my $add_tree = read_menu_dir($tree->[$i + 1][2], $basedir); + + splice @$tree, $i, 2, @$add_tree; + + } + else { + print STDERR "wrong MergeFile\n"; + exit 1 if $die_on_error; + $i++; + $i++; + } + + } + elsif ($tree->[$i] eq 'DefaultMergeDirs') { + my $add_tree = read_menu_dir($DefaultMergeDir, $basedir); + splice @$tree, $i, 2, @$add_tree; + } + elsif ($tree->[$i] eq 'LegacyDir') { + if (ref($tree->[$i + 1][0]) eq 'HASH' and $tree->[$i + 1][1] eq '0') { + + my $xml = read_legacy_dir($tree->[$i + 1][2]); + print STDERR "reading legacy directory '" . $tree->[$i + 1][2] . "'\n" if $verbose; + + my $parser = new XML::Parser(Style => 'Tree'); + my $add_tree = $parser->parse($xml); + $add_tree = remove_toplevel_Menu($add_tree); + splice @$tree, $i, 2, @$add_tree; + + } + else { + print STDERR "wrong LegacyDir\n"; + exit 1 if $die_on_error; + $i++; + $i++; + } + + } + elsif ($tree->[$i] eq 'KDELegacyDirs') { + my @out; + foreach my $dir (@KDELegacyDirs) { + my $xml = read_legacy_dir($dir); + print STDERR "reading legacy directory '$dir'\n" if $verbose; + + my $parser = new XML::Parser(Style => 'Tree'); + my $add_tree = $parser->parse($xml); + $add_tree = remove_toplevel_Menu($add_tree); + push @out, @$add_tree + } + splice @$tree, $i, 2, @out; + } + elsif ($tree->[$i] eq 'Menu') { + $i++; + read_includes($tree->[$i], $basedir, $DefaultMergeDir); + $i++; + } + else { + $i++; + $i++; + } + } +} + +sub get_menu_name ($) +{ + my ($tree) = @_; + my $name; + + my $i = 0; + + $i++ if (ref($tree->[$i]) eq 'HASH'); + + while (defined $tree->[$i]) { + if ($tree->[$i] eq 'Name') { + $i++; + if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') { + $name = $tree->[$i][2]; + last; + } + else { + print STDERR "wrong Name\n"; + } + $i++; + } + else { + $i++; + $i++; + } + } + + unless (defined $name) { + print STDERR "Menu has no name element\n"; + } + return $name; +} + + +sub append_menu ($$) +{ + my ($target, $source) = @_; + + my $i = 0; + + $i++ if (ref($source->[$i]) eq 'HASH'); + + while (defined $source->[$i]) { + if ($source->[$i] ne 'Name') { + push @$target, $source->[$i]; + push @$target, $source->[$i + 1]; + } + + $i++; + $i++; + } +} + + +sub merge_menus ($) +{ + my ($tree) = @_; + + my %used; #menu name already used + + my $i = 0; + + $i++ if (ref($tree->[$i]) eq 'HASH'); + + while (defined $tree->[$i]) { + if ($tree->[$i] eq 'Menu') { + my $name = get_menu_name($tree->[$i + 1]); + if (defined $used{$name}) { #second menu with the same name + my $target = $used{$name}; + + append_menu($tree->[$target], $tree->[$i + 1]); + + splice @$tree, $i, 2; + } + else { # first appearance + $used{$name} = $i + 1; + $i++; + $i++; + } + } + else { + $i++; + $i++; + } + } + + + $i = 0; + $i++ if (ref($tree->[$i]) eq 'HASH'); + + while (defined $tree->[$i]) { + if ($tree->[$i] eq 'Menu') { + merge_menus($tree->[$i + 1]); + } + $i++; + $i++; + } +} + +sub read_Move ($$) +{ + my ($tree, $hash) = @_; + + my $i = 0; + + my $old = ''; + + + $i++ if (ref($tree->[$i]) eq 'HASH'); + + while (defined $tree->[$i]) { + if ($tree->[$i] eq 'Old') { + $i++; + if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') { + $old = $tree->[$i][2]; + } + else { + print STDERR "wrong Old\n"; + exit 1 if $die_on_error; + } + $i++; + } + if ($tree->[$i] eq 'New') { + $i++; + if (ref($tree->[$i][0]) eq 'HASH' and $tree->[$i][1] eq '0') { + $hash->{$old} = $tree->[$i][2]; + } + else { + print STDERR "wrong New\n"; + exit 1 if $die_on_error; + } + $i++; + } + else { + $i++; + $i++; + } + } +} + +sub find_menu_in_tree ($$) +{ + my ($path, $tree) = @_; + + my $root = $path; + $root =~ s/\/.*$//; + + my $subpath = $path; + $subpath =~ s/^[^\/]*\/*//; + + my $i = 0; + + $i++ if (ref($tree->[$i]) eq 'HASH'); + + while (defined $tree->[$i]) { + if ($tree->[$i] eq 'Menu') { + if ($root eq get_menu_name($tree->[$i + 1])) { + + if ($subpath eq '') { + return { 'parent' => $tree, 'index' => $i, 'menu' => $tree->[$i + 1]}; + } + return find_menu_in_tree($subpath, $tree->[$i + 1]); + } + } + + $i++; + $i++; + } + + return undef; +} + +sub copy_menu ($$) +{ + my ($path, $tree) = @_; + + my $tail; + my $child; + + foreach my $elem (reverse split(/\//, $path)) { + next if $elem eq ''; + + my $menu = [{}, 'Name', [{}, 0, $elem]]; + push @$menu, ('Menu', $child) if defined $child; + + $tail = $menu unless defined $tail; + $child = $menu; + } + + append_menu($tail, $tree); + + return $child; +} + +sub move_menus ($) +{ + my ($tree) = @_; + +# print "@$tree\n"; + my %move; + + my $i = 0; + + $i++ if (ref($tree->[$i]) eq 'HASH'); + + while (defined $tree->[$i]) { + if ($tree->[$i] eq 'Move') { + + read_Move($tree->[$i + 1], \%move); + splice @$tree, $i, 2; + } + else { + $i++; + $i++; + } + } + + foreach my $source (keys %move) { + my $sourceinfo = find_menu_in_tree($source, $tree); + + if (defined $sourceinfo) { + my $target = copy_menu($move{$source}, $sourceinfo->{'menu'}); + splice @{$sourceinfo->{'parent'}}, $sourceinfo->{'index'}, 2; + push @$tree, ('Menu', $target); + merge_menus($tree); + } + } + + $i = 0; + $i++ if (ref($tree->[$i]) eq 'HASH'); + + while (defined $tree->[$i]) { + if ($tree->[$i] eq 'Menu') { + move_menus($tree->[$i + 1]); + } + $i++; + $i++; + } +} + +sub remove_allocated ($) +{ + my ($menu) = @_; + + + my $i = 0; + while ($i < @{$menu->{'entries'}}) { + my $entry = $menu->{'entries'}[$i]; + + if ($entry->{type} eq 'menu') { + remove_allocated($entry->{menu}); + $i++; + } + elsif ($entry->{type} eq 'desktop' && + $menu->{'OnlyUnallocated'} && + $entry->{desktop}{'refcount'} > 1) { + + $entry->{desktop}{'refcount'}--; + splice @{$menu->{'entries'}}, $i, 1; + } + else { + $i++; + } + + + } + return 0; +} + + +sub remove_empty_menus ($) +{ + my ($menu) = @_; + + + my $i = 0; + while ($i < @{$menu->{'entries'}}) { + my $entry = $menu->{'entries'}[$i]; + + if ($entry->{type} eq 'menu' && remove_empty_menus($entry->{menu})) { + splice @{$menu->{'entries'}}, $i, 1; + } + else { + $i++; + } + + + } + + return 1 if @{$menu->{'entries'}} == 0; # && $menu->{'DontShowIfEmpty'}; #menu is empty + + return 0; +} + + +sub prepare_exec ($$) +{ + my ($exec, $desktop) = @_; + + $exec =~ s/%f//g; + $exec =~ s/%F//g; + $exec =~ s/%u//g; + $exec =~ s/%U//g; + $exec =~ s/%d//g; + $exec =~ s/%D//g; + $exec =~ s/%n//g; + $exec =~ s/%N//g; + $exec =~ s/%i//g; + $exec =~ s/%k//g; + $exec =~ s/%v//g; + $exec =~ s/%m//g; + + my $caption = $desktop->{Name}; + + $exec =~ s/%c/$caption/g; + + $exec =~ s/%%/%/g; + + $exec = "xterm -e $exec" if $desktop->{Terminal} eq '1' || $desktop->{Terminal} eq 'true'; + + $exec = "$root_cmd $exec" if $desktop->{'X-KDE-SubstituteUID'} eq '1' || $desktop->{'X-KDE-SubstituteUID'} eq 'true'; + return $exec; +} + +sub get_loc_entry ($$) +{ + my ($desktop, $entry) = @_; + + foreach my $key (@language_keys) { + my $loc_entry = $entry . "[$key]"; + return $desktop->{$loc_entry} if defined $desktop->{$loc_entry} && $desktop->{$loc_entry} !~ /^\s*$/; + } + + return $desktop->{$entry}; +} + +sub preprocess_menu ($) +{ + # localize, sort, prepare_exec + my ($menu) = @_; + + return 0 if $menu->{'Deleted'}; + return 0 unless check_show_in($menu->{'Directory'}); + return 0 if defined $menu->{'Directory'} && $menu->{'Directory'}->{'NoDisplay'} eq 'true'; + + my $menu_name = $menu->{'Name'}; + my $menu_icon = ""; + + if (defined $menu->{'Directory'}) { + my $directory = $menu->{'Directory'}; + $menu_icon = $menu->{'Directory'}{'Icon'}; + my $directory_name = get_loc_entry($directory, 'Name'); + + if (defined $directory_name) { + Encode::from_to($directory_name, "utf8", $charset) + if !defined $directory->{"Encoding"} || $directory->{"Encoding"} eq 'UTF-8'; + + $menu_name = $directory_name; + } + } + + $menu->{'PrepName'} = $menu_name; + $menu->{'PrepIcon'} = $menu_icon; + + my $i = 0; + while (defined $menu->{'entries'}[$i]) { + my $entry = $menu->{'entries'}[$i]; + if ($entry->{'type'} eq 'desktop') { + my $desktop = $entry->{desktop}; + + my $name = $desktop->{'id'}; + + my $desktop_name = get_loc_entry($desktop, 'Name'); + + if (defined $desktop_name) { + Encode::from_to($desktop_name, "utf8", $charset) + if !defined $desktop->{"Encoding"} || $desktop->{"Encoding"} eq 'UTF-8'; + + $name = $desktop_name; + } + + $desktop->{'PrepName'} = $name; + $entry->{'Name'} = $name; + $entry->{'PrepName'} = $name; + + $desktop->{'PrepExec'} = prepare_exec($desktop->{Exec}, $desktop); + $i++; + } + elsif ($entry->{type} eq 'menu') { + if (preprocess_menu ($entry->{'menu'})) { + $entry->{'Name'} = $entry->{'menu'}{'Name'}; + $entry->{'PrepName'} = $entry->{'menu'}{'PrepName'}; + $i++; + } + else { + splice @{$menu->{'entries'}}, $i, 1; + } + } + else { + print STDERR "wrong menu entry type: $entry->{type}"; + exit 1 if $die_on_error; + splice @{$menu->{'entries'}}, $i, 1; + } + } + + $menu->{'entries'} = [ sort {$b->{'type'} cmp $a->{'type'} || $a->{'PrepName'} cmp $b->{'PrepName'}} @{$menu->{'entries'}} ]; + + my $i = 0; + my $prev_entry; + while (defined $menu->{'entries'}[$i]) { + my $entry = $menu->{'entries'}[$i]; + if (defined $prev_entry && + $entry->{'type'} eq 'desktop' && + $prev_entry->{'type'} eq 'desktop' && + $prev_entry->{'PrepName'} eq $entry->{'PrepName'} && + $prev_entry->{'desktop'}->{'PrepExec'} eq $entry->{'desktop'}->{'PrepExec'}) { + splice @{$menu->{'entries'}}, $i, 1; + } + else { + $prev_entry = $entry; + $i++; + } + } + + return 1; +} + +sub output_twm_menu ($;$$) +{ + my ($menu, $toplevel, $path) = @_; + + my $output = ''; + + $path = '' unless defined $path; + + $toplevel = 1 unless defined $toplevel; + + my $menu_name = $menu->{'PrepName'}; + my $menu_id = "$path-" . $menu->{'Name'}; + $menu_id =~ s/\s/_/g; + + $menu_id = 'xdg_menu' if $toplevel; + + foreach my $entry (@{$menu->{'entries'}}) { + if ($entry->{type} eq 'menu') { + $output .= output_twm_menu($entry->{'menu'}, 0, $menu_id); + } + } + + $output .= "menu \"$menu_id\" {\n"; + $output .= "\"$menu_name\" f.title\n"; + + foreach my $entry (@{$menu->{'entries'}}) { + if ($entry->{type} eq 'desktop') { + my $desktop = $entry->{desktop}; + + my $name = $desktop->{'PrepName'}; + my $exec = $desktop->{'PrepExec'}; + my $color = ''; + + $exec =~ s/"/\\"/g; + + $color = ' ("red":"grey")' if $desktop->{'X-KDE-SubstituteUID'} eq '1' || $desktop->{'X-KDE-SubstituteUID'} eq 'true'; + + $output .= "\"$name\"$color f.exec \"$exec&\"\n"; + } + elsif ($entry->{type} eq 'menu') { + my $name = $entry->{'menu'}{'PrepName'}; + my $id = "$menu_id-" . $entry->{'menu'}{'Name'}; + + $id =~ s/\s/_/g; + + $output .= "\"$name\" f.menu \"$id\"\n"; + } + else { + print STDERR "wrong menu entry type: $entry->{type}"; + } + + } + $output .= "}\n"; + + return $output; +} + +sub output_wmaker_menu ($;$) +{ + my ($menu, $indent) = @_; + + my $output = ''; + + $indent = 0 unless defined $indent; + + my $menu_name = $menu->{'PrepName'}; + + $output .= ' ' x $indent; + $output .= "\"$menu_name\" MENU\n"; + + if ($indent == 0) { + $output .= "\n#include \"user.menu\"\n\n"; + } + + + foreach my $entry (@{$menu->{'entries'}}) { + if ($entry->{type} eq 'desktop') { + my $desktop = $entry->{desktop}; + + my $name = $desktop->{'PrepName'}; + my $exec = $desktop->{'PrepExec'}; + + $output .= ' ' x $indent; + $output .= " \"$name\" EXEC $exec\n"; + } + elsif ($entry->{type} eq 'menu') { + $output .= output_wmaker_menu ($entry->{'menu'}, $indent + 1); + } + else { + print STDERR "wrong menu entry type: $entry->{type}"; + } + + } + + if ($indent == 0) { + textdomain("menu-messages"); + + my $exit_msg = gettext("Exit"); + my $restart_msg = gettext("Restart"); + if (langinfo(CODESET) ne 'UTF-8') { + $exit_msg = Encode::encode_utf8($exit_msg); + $restart_msg = Encode::encode_utf8($restart_msg); + } + $output .= "\t\"$exit_msg\" MENU\n\t\t\"$restart_msg\" RESTART\n\t\t\"$exit_msg\" EXIT\n\"$exit_msg\" END\n"; + } + + $output .= ' ' x $indent; + $output .= "\"$menu_name\" END\n"; + + return $output; +} + +sub output_fvwm2_menu ($;$$) +{ + my ($menu, $toplevel, $path) = @_; + + my $output = ''; + + $path = '' unless defined $path; + + $toplevel = 1 unless defined $toplevel; + + my $menu_name = $menu->{'PrepName'}; + my $menu_id = "$path-" . $menu->{'Name'}; + $menu_id =~ s/\s/_/g; + + $menu_id = 'xdg_menu' if $toplevel; + + foreach my $entry (@{$menu->{'entries'}}) { + if ($entry->{type} eq 'menu') { + $output .= output_fvwm2_menu($entry->{'menu'}, 0, $menu_id); + } + } + + $output .= "DestroyMenu \"$menu_id\"\n"; + $output .= "AddToMenu \"$menu_id\" \"$menu_name\" Title\n"; + + foreach my $entry (@{$menu->{'entries'}}) { + if ($entry->{type} eq 'desktop') { + my $desktop = $entry->{desktop}; + + my $name = $desktop->{'PrepName'}; + my $exec = $desktop->{'PrepExec'}; + + $output .= "+ \"$name\" Exec $exec\n"; + } + elsif ($entry->{type} eq 'menu') { + my $name = $entry->{'menu'}{'PrepName'}; + my $id = "$menu_id-" . $entry->{'menu'}{'Name'}; + $id =~ s/\s/_/g; + + $output .= "+ \"$name\" Popup \"$id\"\n"; + } + else { + print STDERR "wrong menu entry type: $entry->{type}"; + } + + } + $output .= "\n"; + + return $output; +} + +sub output_blackbox_menu ($;$) +{ + my ($menu, $indent) = @_; + + my $output = ''; + my $run = $format eq 'fluxbox' ? 'fbrun -nearmouse' : 'bbrun -a -w'; + + $output .= "[begin] (Menu)\n"; + $output .= output_blackbox_inner_menu ($menu, $indent); + $output .= "[separator]\n"; + $output .= '[config] (Configuration) + [workspaces] (Workspace) + [submenu] (System Styles) {Choose a style...} + [stylesdir] (/usr/share/blackbox/styles) + [stylesdir] (/usr/share/fluxbox/styles) + [stylesdir] (/usr/share/openbox/styles) + [end] + [submenu] (User Styles) {Choose a style...} + [stylesdir] (~/.blackbox/styles) + [stylesdir] (~/.fluxbox/styles) + [stylesdir] (~/.openbox/styles) + [end] + [separator] + [exec] (Run Command) {' . $run . '} + [exec] (Lock Screen) {xlock} + [restart] (Restart) {} + [exit] (Logout) +[end] +'; + $output .= "[end]\n"; + return $output; +} + + +sub output_blackbox_inner_menu ($;$) +{ + my ($menu, $indent) = @_; + + my $output = ''; + + $indent = 0 unless defined $indent; + + my $menu_name = $menu->{'PrepName'}; + + $output .= ' ' x $indent; + $output .= "[submenu] ($menu_name)\n"; + + foreach my $entry (@{$menu->{'entries'}}) { + if ($entry->{type} eq 'desktop') { + my $desktop = $entry->{desktop}; + + my $name = $desktop->{'PrepName'}; + my $exec = $desktop->{'PrepExec'}; + + $output .= ' ' x $indent; + $output .= " [exec] ($name) {$exec}\n"; + } + elsif ($entry->{type} eq 'menu') { + $output .= output_blackbox_inner_menu ($entry->{'menu'}, $indent + 1); + } + else { + print STDERR "wrong menu entry type: $entry->{type}"; + } + + } + $output .= ' ' x $indent; + $output .= "[end] # ($menu_name)\n"; + + return $output; +} + +sub output_icewm_menu ($;$) +{ + my ($menu, $indent) = @_; + + my $output = ''; + + $indent = 0 unless defined $indent; + + my $menu_name = $menu->{'PrepName'}; + my $menu_icon = $menu->{'PrepIcon'} || "folder" ; + + $output .= ' ' x $indent; + $output .= "menu \"$menu_name\" $menu_icon.png {\n"; + + foreach my $entry (@{$menu->{'entries'}}) { + if ($entry->{type} eq 'desktop') { + my $desktop = $entry->{desktop}; + + my $name = $desktop->{'PrepName'}; + my $exec = $desktop->{'PrepExec'}; + my $icon = add_png_extension_if_needed($desktop->{'Icon'}); + + $output .= ' ' x $indent; + $output .= " prog \"$name\" $icon $exec\n"; + } + elsif ($entry->{type} eq 'menu') { + $output .= output_icewm_menu ($entry->{'menu'}, $indent + 1); + } + else { + print STDERR "wrong menu entry type: $entry->{type}"; + } + + } + $output .= ' ' x $indent; + $output .= "}\n"; + + return $output; +} + +sub prepare_exec_xfce4 ($$) +{ + my ($exec, $desktop) = @_; + + $exec =~ s/%f//g; + $exec =~ s/%F//g; + $exec =~ s/%u//g; + $exec =~ s/%U//g; + $exec =~ s/%d//g; + $exec =~ s/%D//g; + $exec =~ s/%n//g; + $exec =~ s/%N//g; + $exec =~ s/%i//g; + $exec =~ s/%k//g; + $exec =~ s/%v//g; + $exec =~ s/%m//g; + + my $caption = $desktop->{Name}; + + $exec =~ s/%c/$caption/g; + + $exec =~ s/%%/%/g; + + $exec =~ s/\"/"/g; + + $exec = "$root_cmd $exec" if $desktop->{'X-KDE-SubstituteUID'} eq '1' || $desktop->{'X-KDE-SubstituteUID'} eq 'true'; + return $exec; +} + + + +sub output_xfce4_menu ($;$) +{ + my ($menu, $indent) = @_; + + my $output = ''; + + $indent = 0 unless defined $indent; + + if ($indent == 0) { + $output .= '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; + $output .= '<!DOCTYPE xfdesktop-menu [' . "\n"; + $output .= ' <!ENTITY menu2 SYSTEM "menu2.xml">' . "\n"; + $output .= ']>' . "\n\n"; + } + + my $menu_name = $menu->{'PrepName'}; + my $menu_ico = $menu->{'PrepIcon'}; + $output .= ' ' x $indent; + + if ($indent == 0) { + $output .= "<xfdesktop-menu>\n" + } + else { + $output .= "<menu name=\"" . quote_xml($menu_name) ."\" visible=\"yes\" icon=\"${menu_ico}.png \">\n"; + } + + foreach my $entry (@{$menu->{'entries'}}) { + if ($entry->{type} eq 'desktop') { + my $desktop = $entry->{desktop}; + + my $name = $desktop->{'PrepName'}; + my $exec = prepare_exec_xfce4($desktop->{Exec}, $desktop); + my $term = ($desktop->{Terminal} eq '1' || $desktop->{Terminal} eq 'true') ? "yes" : "no"; + my $ico = $desktop->{'Icon'}; + $output .= ' ' x $indent; + $output .= " <app name=\"" . quote_xml($name) ."\" cmd=\"$exec\" icon=\"$ico\" term=\"$term\"/>\n"; + } + elsif ($entry->{type} eq 'menu') { + $output .= output_xfce4_menu ($entry->{'menu'}, $indent + 1); + } + else { + print STDERR "wrong menu entry type: $entry->{type}"; + } + + } + $output .= ' ' x $indent; + + if ($indent == 0) { + $output .= "</xfdesktop-menu>\n"; + } + else { + $output .= "</menu>\n"; + } + + return $output; +} + +sub output_openbox3_menu ($;$) +{ + my ($menu, $indent) = @_; + + my $output = ''; + + $output .= '<?xml version="1.0" encoding="UTF-8"?> + +<openbox_menu xmlns="http://openbox.org/" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://openbox.org/ + file:///usr/share/openbox/menu.xsd">'; + $output .= "<menu id=\"xdg\" label=\"xdg\">\n"; + $output .= output_openbox3_inner_menu ($menu, $indent); + $output .= "</menu>\n"; + $output .= ' <menu id="root-menu" label="Openbox 3"> + <item label="xterm"> + <action name="Execute"><execute>xterm</execute></action> </item> + <separator /> + <menu id="KDE Menu" label="KDE Menu" /> + <separator /> + <menu id="client-list-menu" /> + <separator /> + <menu id="ob-menu" label="openbox3"> + <item label="ob conf"><action name="Execute"><execute>obconf</execute></action></item> + <item label="reconfigure"><action name="Reconfigure" /></item> + </menu> + <separator /> + <item label="lock screen"><action name="Execute"><execute>xlock -remote -nice 19 -mode blank -geometry 1x1 -enablesaver</execute></action></item> + <separator /> + <item label="Exit"><action name="Exit" /></item> + </menu>'; + $output .= "</openbox_menu>\n"; + return $output; +} + +sub output_openbox3_pipe_menu ($;$) +{ + my ($menu, $indent) = @_; + + my $output = ''; + + $output .= "<openbox_pipe_menu>\n"; + $output .= output_openbox3_inner_menu ($menu, $indent); + $output .= "</openbox_pipe_menu>\n"; + return $output; +} + +sub output_openbox3_inner_menu ($;$) +{ + my ($menu, $indent) = @_; + + my $output = ''; + + $indent = 0 unless defined $indent; + my $menu_name = $menu->{'PrepName'}; + + $output .= ' ' x $indent; + $output .= "<menu id=\"" . quote_xml($menu_name) . "\" label=\"".quote_xml($menu_name) . "\">\n"; +# $output .= "<menu label=\"".quote_xml($menu_name) . "\">\n"; + + foreach my $entry (@{$menu->{'entries'}}) { + if ($entry->{type} eq 'desktop') { + my $desktop = $entry->{desktop}; + + my $name = $desktop->{'PrepName'}; + my $exec = $desktop->{'PrepExec'}; + + $output .= ' ' x $indent; + $output .= " <item label=\"". quote_xml($name)."\">\n"; + $output .= " <action name=\"Execute\"><execute>$exec</execute></action>\n"; + $output .= " </item>\n"; + } + elsif ($entry->{type} eq 'menu') { + $output .= output_openbox3_inner_menu ($entry->{'menu'}, $indent + 1); + } + else { + print STDERR "wrong menu entry type: $entry->{type}"; + } + + } + $output .= ' ' x $indent; + $output .= "</menu> <!-- $menu_name -->\n"; + + return $output; +} + + +sub output_readable ($;$) +{ + my ($menu, $indent) = @_; + + my $output = ''; + + $indent = 0 unless defined $indent; + + my $menu_name = $menu->{'Name'}; + + $output .= "\t" x $indent; + $output .= "\"$menu_name\" MENU\n"; + + + foreach my $entry (@{$menu->{'entries'}}) { + if ($entry->{type} eq 'desktop') { + my $desktop = $entry->{desktop}; + + my $name = $desktop->{Name}; + + $output .= "\t" x $indent; + $output .= "\t\"$name\"\n"; + + + my @v = %$desktop; + $output .= "@v\n" if $name eq ''; + } + elsif ($entry->{type} eq 'menu') { + $output .= output_readable ($entry->{menu}, $indent + 1); + } + else { + print STDERR "wrong menu entry type: $entry->{type}"; + } + + } + + return $output; +} + +sub get_root_menu +{ + foreach my $dir (split(/:/, $ENV{XDG_CONFIG_DIRS}), "/etc/xdg") { + check_file("$dir/menus/applications.menu"); + return "$dir/menus/applications.menu" if -f "$dir/menus/applications.menu"; + } + return ""; +} + +sub get_app_dirs +{ + my %used; + my $ret = ''; + my @kde_xdgdata = $> ? split(/:/, `kde-config --path xdgdata-apps`) : (); + + foreach $_ (@kde_xdgdata) { + s/\/applications\/*\s*$//; + }; + + foreach my $d (split(/:/, $ENV{XDG_DATA_DIRS}), @kde_xdgdata, "/usr/share", "/opt/gnome/share") { + my $dir = $d; + $dir =~ s/\/*$//; + next if defined $used{$dir}; + next if check_file("$dir/applications") ne 'D'; + $ret .= ':' if $ret ne ''; + $ret .= "$dir/applications"; + $used{$dir} = 1; + } + return $ret; +} + +sub get_desktop_dirs +{ + my %used; + my $ret = ''; + foreach my $dir (split(/:/, $ENV{XDG_DATA_DIRS}), "/usr/share", "/opt/kde3/share", "/opt/gnome/share") { + next if defined $used{$dir}; + next if check_file("$dir/desktop-directories") ne 'D'; + $ret .= ':' if $ret ne ''; + $ret .= "$dir/desktop-directories"; + $used{$dir} = 1; + } + return $ret; +} + +sub get_KDE_legacy_dirs +{ + my %used; + my @ret; + foreach my $d ("/etc/opt/kde3/share/applnk", "/opt/kde3/share/applnk", reverse(split(/:/, `kde-config --path apps`))) { + my $dir = $d; + chomp $dir; + $dir =~ s/\/*$//; + next if defined $used{$dir}; + next if check_file("$dir") ne 'D'; + $used{$dir} = 1; + push @ret, $dir; + } + return @ret; +} + +sub prepare_language_keys ($) +{ + my ($language) = @_; + + my @keys; + + $language =~ s/\.[^@]*//; # remove .ENCODING + + if ($language =~ /^([^_]*)_([^@]*)@(.*)$/) { # LANG_COUNTRY@MODIFIER + push @keys, $1 . '_' . $2 . '@' . $3; + push @keys, $1 . '_' . $2; + push @keys, $1 . '@' . $3; + push @keys, $1; + } + elsif ($language =~ /^([^_]*)_([^@]*)$/) { # LANG_COUNTRY + push @keys, $1 . '_' . $2; + push @keys, $1; + } + elsif ($language =~ /^([^_]*)@(.*)$/) { # LANG@MODIFIER + push @keys, $1 . '@' . $2; + push @keys, $1; + } + elsif ($language =~ /^([^_@]*)$/) { # LANG + push @keys, $1; + } + + return @keys; +} + +sub check_cache +{ + my $cachedir = $> ? $ENV{HOME} : '/var/lib/menu'; + + return unless -d $cachedir; + + $cachedir .= "/.xdg_menu_cache"; + + return unless -f "$cachedir/inputs" && -f "$cachedir/output"; + + my @st = stat "$cachedir/output"; + my $ref_time = $st[10]; #ctime + + open(FILE, "<$cachedir/inputs"); + + my $num_opts = 0; + + while (<FILE>) { + chomp; + next if /^\s*$/; + next if /^#/; + + if (/^[FD] (.*)$/) { + my $file = $1; + my @st = stat $file; + my $time = $st[10]; #ctime + + if (!defined $time || $time >= $ref_time) { +# print STDERR "$file: is newer\n"; + return; + } + } + elsif (/^X (.*)$/) { + my $file = $1; + + if (-e $file) { +# print STDERR "$file: exists\n"; + return; + } + } + elsif (/^ENV ([^ ]+) (.*)$/) { + my $var = $1; + my $val = $2; + + if ($ENV{$var} ne $val) { +# print STDERR "$var: differs\n"; + return; + } + } + elsif (/^OPT ([0-9]+) (.*)$/) { + my $optidx = $1; + my $val = $2; + + $num_opts ++; + if ($save_ARGV[$optidx] ne $val) { +# print STDERR "$optidx: differs\n"; + return; + } + } + elsif (/^CHARSET (.*)$/) { + my $charset = $1; + + if ($charset ne langinfo(CODESET)) { +# print STDERR "charset $charset differs\n"; + return; + } + } + elsif (/^LANGUAGE (.*)$/) { + my $language = $1; + + if ($language ne setlocale(LC_MESSAGES)) { +# print STDERR "language $language differs\n"; + return; + } + } + elsif (/^VERSION (.*)$/) { + my $v = $1; + + if ($v ne $Version) { +# print STDERR "Version differs\n"; + return; + } + } + else { + print STDERR "Wrong cache inputs list\n"; + return; + } + + + } + + return if $num_opts != @save_ARGV; + + open(FILE, "<$cachedir/output") or return; + + print STDERR "Using cached output\n" if $verbose; + + my $buf; + while(read(FILE, $buf, 4096)) { + print $buf; + } + close(FILE); + + exit 0; +} + +sub write_cache ($) +{ + my ($output) = @_; + + my $cachedir = $> ? $ENV{HOME} : '/var/lib/menu'; + + return unless -d $cachedir; + + $cachedir .= "/.xdg_menu_cache"; + + mkdir $cachedir; + unlink "$cachedir/output"; + + open(FILE, ">$cachedir/inputs") or return; + print FILE "# this file contains list of inputs xdg_menu\n"; + print FILE "VERSION $Version\n"; + print FILE "\n\n"; + print FILE join("\n", @accessed_files); + print FILE "\n\n"; + + for (my $i = 0; $i < @save_ARGV; $i++) { + print FILE "OPT $i $save_ARGV[$i]\n"; + } + + print FILE "ENV XDG_CONFIG_DIRS $ENV{XDG_CONFIG_DIRS}\n"; + print FILE "ENV XDG_DATA_DIRS $ENV{XDG_DATA_DIRS}\n"; + + print FILE "CHARSET " . langinfo(CODESET) . "\n"; + print FILE "LANGUAGE " . setlocale(LC_MESSAGES) . "\n"; + + close(FILE); + open(FILE, ">$cachedir/output") or return; + print FILE $output; + close(FILE); +} + + +check_cache(); + +use XML::Parser; + +$DefaultAppDirs = get_app_dirs(); +$DefaultDirectoryDirs = get_desktop_dirs(); + +my $root_menu = get_root_menu(); + +@KDELegacyDirs = get_KDE_legacy_dirs(); + +$charset = langinfo(CODESET); +$language = setlocale(LC_MESSAGES); + +$root_cmd = "/opt/gnome/bin/gnomesu" if -x '/opt/gnome/bin/gnomesu'; +$root_cmd = "/usr/bin/gnomesu" if -x '/usr/bin/gnomesu'; +$root_cmd = "/opt/kde3/bin/kdesu" if -x '/opt/kde3/bin/kdesu'; + +my $help; + +GetOptions("format=s" => \$format, + "fullmenu" => \$fullmenu, + "desktop=s" => \$desktop_name, + "charset=s" => \$charset, + "language=s" => \$language, + "root-menu=s" => \$root_menu, + "die-on-error" => \$die_on_error, + "verbose" => \$verbose, + "help" => \$help + ); + +@language_keys = prepare_language_keys($language); + +$desktop_name = $format unless defined $desktop_name; + +if ($help) { + print <<"EOF"; + +xdg-menu - XDG menus for WindowMaker and other window managers + http://freedesktop.org/Standards/menu-spec + + +Usage: + xdg_menu [--format <format>] [--desktop <desktop>] + [--charset <charset>] [--language <language>] + [--root-menu <root-menu>] [--die-on-error] + [--fullmenu] [--help] + + format - output format + possible formats: WindowMaker, fvwm2, icewm, + blackbox, fluxbox, openbox, + xfce4, openbox3, openbox3-pipe, + mwm, readable + default: WindowMaker + + fullmenu - output a full menu and not only a submenu + + desktop - desktop name for NotShowIn and OnlyShowIn + default: the same as format + + charset - output charset + default: $charset + + language - output language + default: $language + + root-menu - location of root menu file + default: $root_menu + + die-on-error - abort execution on any error, + default: try to continue + + verbose - print debugging information + + help - print this text + +EOF + exit 0; +} + + +unless ( -f $root_menu) { + print STDERR "Can't find root menu file.\n"; + exit 1; +} + +my $tree = read_menu($root_menu); + +merge_menus($tree); +move_menus($tree); + +my $menu = interpret_root($tree, ''); + +remove_allocated($menu); +preprocess_menu($menu); +remove_empty_menus($menu); + +my $output; + +if ($format eq 'WindowMaker') { + + $output = output_wmaker_menu($menu) +} +elsif ($format eq 'fvwm2') { + + $output = output_fvwm2_menu($menu) +} +elsif ($format eq 'icewm') { + foreach my $entry (@{$menu->{'entries'}}) { + + if ($entry->{type} eq 'menu') { + $output .= output_icewm_menu ($entry->{'menu'}); + } + } +} +elsif ($format eq 'xfce4') { + + $output = output_xfce4_menu($menu) +} +elsif ($format eq 'blackbox' || ($format eq 'openbox') || ($format eq 'fluxbox') ) { + if ($fullmenu) { + $output = output_blackbox_menu($menu) + } + else + { + $output = output_blackbox_inner_menu($menu) + } +} +elsif ($format eq 'openbox3') { + if ($fullmenu) { + $output = output_openbox3_menu($menu) + } + else + { + $output = output_openbox3_inner_menu($menu) + } +} +elsif ($format eq 'openbox3-pipe') { + + $output = output_openbox3_pipe_menu($menu) +} +elsif ($format eq 'twm') { + + print STDERR "WARNING: twm does not support umlauts. Parameter --language '' to output plain ASCII.\n" unless $language eq ''; + $output = output_twm_menu($menu) +} +elsif ($format eq 'mwm') { + + $output = output_twm_menu($menu) +} +elsif ($format eq 'readable') { + + $output = output_readable($menu) +} +else +{ + print STDERR "Unknown format $format\n"; + exit 1; +} + +print $output; +write_cache($output); + +exit 0; + |