5 #include "freedesktop_cats.h"
7 // folks want to limit categories to official ones, so okay.
8 // http://standards.freedesktop.org/menu-spec/latest/apa.html
11 freedesktop_cat_t freedesktop_complete[] = {
14 { BADCATNAME, NULL, "Lazy PXML dev is lazy." },
15 { "NoParentCategory", NULL, "To mean no parent category" },
16 { "NoSubcategory", "NoneParent", "To mean no subcategory" },
19 { "AudioVideo", NULL, "A multimedia (audio/video) application" },
20 { "Audio", NULL, "An audio application" },
21 { "Video", NULL, "A video application" },
22 { "Development", NULL, "An application for development" },
23 { "Education", NULL, "Educational software" },
24 { "Game", NULL, "A game" },
25 { "Graphics", NULL, "Graphical application" },
26 { "Network", NULL, "Network application such as a web browser" },
27 { "Office", NULL, "An office type application" },
28 { "Settings", NULL, "Settings applications" },
29 { "System", NULL, "System application" },
30 { "Utility", NULL, "Small utility application" },
32 { "Building", "Development", "A tool to build applications " },
33 { "Debugger", "Development", "A tool to debug applications" },
34 { "IDE", "Development", "IDE application " },
35 { "GUIDesigner", "Development", "A GUI designer application " },
36 { "Profiling", "Development", "A profiling tool " },
37 { "RevisionControl", "Development", "Applications like cvs or subversion " },
38 { "Translation", "Development", "A translation tool " },
39 { "Calendar", "Office", "Calendar application " },
40 { "ContactManagement", "Office", "E.g. an address book " },
41 { "Database", "Office", "Application to manage a database " },
42 { "Dictionary", "Office", "A dictionary " },
43 { "Chart", "Office", "Chart application" },
44 { "Email", "Office", "Email application" },
45 { "Finance", "Office", "Application to manage your finance " },
46 { "FlowChart", "Office", "A flowchart application " },
47 { "PDA", "Office", "Tool to manage your PDA " },
48 { "ProjectManagement", "Office", "Project management application " },
49 { "Presentation", "Office", "Presentation software " },
50 { "Spreadsheet", "Office", "A spreadsheet " },
51 { "WordProcessor", "Office", "A word processor " },
52 { "2DGraphics", "Graphics", "2D based graphical application " },
53 { "VectorGraphics", "Graphics", "Vector based graphical application " },
54 { "RasterGraphics", "Graphics", "Raster based graphical application " },
55 { "3DGraphics", "Graphics", "3D based graphical application " },
56 { "Scanning", "Graphics", "Tool to scan a file/text " },
57 { "OCR", "Graphics", "Optical character recognition application " },
58 { "Photography", "Graphics", "Camera tools, etc. " },
59 { "Publishing", "Graphics", "Desktop Publishing applications and Color Management tools " },
60 { "Viewer", "Graphics", "Tool to view e.g. a graphic or pdf file " },
61 { "TextTools", "Utility", "A text tool utiliy " },
62 { "DesktopSettings", "Settings", "Configuration tool for the GUI " },
63 { "HardwareSettings", "Settings", "A tool to manage hardware components, like sound cards, video cards or printers " },
64 { "Printing", "Settings", "A tool to manage printers " },
65 { "PackageManager", "Settings", "A package manager application " },
66 { "Dialup", "Network", "A dial-up program " },
67 { "InstantMessaging", "Network", "An instant messaging client " },
68 { "Chat", "Network", "A chat client" },
69 { "IRCClient", "Network", "An IRC client" },
70 { "FileTransfer", "Network", "Tools like FTP or P2P programs " },
71 { "HamRadio", "Network", "HAM radio software " },
72 { "News", "Network", "A news reader or a news ticker " },
73 { "P2P", "Network", "A P2P program " },
74 { "RemoteAccess", "Network", "A tool to remotely manage your PC " },
75 { "Telephony", "Network", "Telephony via PC " },
76 { "TelephonyTools", "Utility", "Telephony tools, to dial a number, manage PBX, ... " },
77 { "VideoConference", "Network", "Video Conference software " },
78 { "WebBrowser", "Network", "A web browser " },
79 { "WebDevelopment", "Network", "A tool for web developers " },
80 { "Midi", "AudioVideo", "An app related to MIDI " },
81 { "Mixer", "AudioVideo", "Just a mixer " },
82 { "Sequencer", "AudioVideo", "A sequencer " },
83 { "Tuner", "AudioVideo", "A tuner " },
84 { "TV", "AudioVideo", "A TV application" },
85 { "AudioVideoEditing", "Audio", "Application to edit audio/video files " },
86 { "Player", "Audio", "Application to play audio/video files " },
87 { "Recorder", "Audio", "Application to record audio/video files " },
88 { "DiscBurning", "AudioVideo", "Application to burn a disc " },
89 { "ActionGame", "Game", "An action game " },
90 { "AdventureGame", "Game", "Adventure style game" },
91 { "ArcadeGame", "Game", "Arcade style game" },
92 { "BoardGame", "Game", "A board game" },
93 { "BlocksGame", "Game", "Falling blocks game" },
94 { "CardGame", "Game", "A card game " },
95 { "KidsGame", "Game", "A game for kids" },
96 { "LogicGame", "Game", "Logic games like puzzles, etc " },
97 { "RolePlaying", "Game", "A role playing game " },
98 { "Simulation", "Game", "A simulation game " },
99 { "SportsGame", "Game", "A sports game " },
100 { "StrategyGame", "Game", "A strategy game " },
101 { "Art", "Education", "Software to teach arts " },
102 { "Construction", "Education", NULL },
103 { "Music", "Audio", "Musical software" },
104 { "Languages", "Education", "Software to learn foreign languages " },
105 { "Science", "Education", "Scientific software " },
106 { "ArtificialIntelligence", "Education", "Artificial Intelligence software " },
107 { "Astronomy", "Education", "Astronomy software " },
108 { "Biology", "Education", "Biology software " },
109 { "Chemistry", "Education", "Chemistry software " },
110 { "ComputerScience", "Education", "ComputerSience software " },
111 { "DataVisualization", "Education", "Data visualization software " },
112 { "Economy", "Education", "Economy software " },
113 { "Electricity", "Education", "Electricity software" },
114 { "Geography", "Education", "Geography software" },
115 { "Geology", "Education", "Geology software" },
116 { "Geoscience", "Education", "Geoscience software" },
117 { "History", "Education", "History software" },
118 { "ImageProcessing", "Education", "Image Processing software " },
119 { "Literature", "Education", "Literature software " },
120 { "Math", "Education", "Math software " },
121 { "NumericalAnalysis", "Education", "Numerical analysis software " },
122 { "MedicalSoftware", "Education", "Medical software " },
123 { "Physics", "Education", "Physics software " },
124 { "Robotics", "Education", "Robotics software " },
125 { "Sports", "Education", "Sports software " },
126 { "ParallelComputing", "Education", "Parallel computing software " },
127 { "Amusement", NULL, "A simple amusement " },
128 { "Archiving", "Utility", "A tool to archive/backup data " },
129 { "Compression", "Utility", "A tool to manage compressed data/archives " },
130 { "Electronics", NULL, "Electronics software, e.g. a circuit designer" },
131 { "Emulator", "Game", "Emulator of another platform, such as a DOS emulator " },
132 { "Engineering", NULL, "Engineering software, e.g. CAD programs " },
133 { "FileTools", "Utility", "A file tool utility " },
134 { "FileManager", "System", "A file manager " },
135 { "TerminalEmulator", "System", "A terminal emulator application " },
136 { "Filesystem", "System", "A file system tool " },
137 { "Monitor", "System", "Monitor application/applet that monitors some resource or activity " },
138 { "Security", "System", "A security tool " },
139 { "Accessibility", "System", "Accessibility " },
140 { "Calculator", "Utility", "A calculator " },
141 { "Clock", "Utility", "A clock application/applet " },
142 { "TextEditor", "Utility", "A text editor " },
143 { "Documentation", NULL, "Help or documentation " },
144 { "Core", NULL, "Important application, core to the desktop such as a file manager or a help browser " },
145 { "KDE", "QT", "Application based on KDE libraries " },
146 { "GNOME", "GTK", "Application based on GNOME libraries " },
147 { "GTK", NULL, "Application based on GTK+ libraries" },
148 { "Qt", NULL, "Application based on Qt libraries" },
149 { "Motif", NULL, "Application based on Motif libraries" },
150 { "Java", NULL, "Application based on Java GUI libraries, such as AWT or Swing" },
151 { "ConsoleOnly", NULL, "Application that only works inside a terminal (text-based or command line application)" },
155 freedesktop_cat_t *freedesktop_category_query ( char *name ) {
156 freedesktop_cat_t *p = freedesktop_complete;
160 if ( strcasecmp ( p -> cat, name ) == 0 ) {
173 printf ( "check Applet (should be 1) -> %d\n", freedesktop_category_query ( "Applet" ) );
174 printf ( "check Education (should be 1) -> %d\n", freedesktop_category_query ( "Education" ) );
175 printf ( "check Mofo (should be 0) -> %d\n", freedesktop_category_query ( "Mofo" ) );