This site contains information about the Deskbar architecture. It's used to analyze the current structure of Deskbar and come up with a better design.
1. Classes and their functions
1.1. Model
DeskbarApplet: Starting point of the application. Initializes GUI and ModuleLoader
DeskbarHistory: Stores/loads history
ModuleList: Stores modules
- Keybinder: Binds the global key binding
1.1.1. Module management
ModuleLoader: Searches modules and loads them
ModuleContext: Saves information about a module
Handler: Base class of modules
Match: Base class of search results
DirWatcher: Watches a directory for changes
1.2. View
DeskbarUI: Base class for UIs
CuemiacLayoutProvider: Base class to handle focus issues
- CuemiacUIManager: Handels focus issues and delegates signals to the actual UI
CuemiacHistoryView: TreeView that displays history items
CuemiacTreeView: TreeView that displays search results
CuemiacModel: Data model for CuemiacTreeView
CellRendererCuemiacCategory: Renders the categories for CuemiacTreeView
CuemiacAlignedWindow: A window that can align itsself to widget. In this case the list of results will be aligned to the applet.
LingeringSelectionWindow: Responsible for the effect when you select a search result
CuemiacHistoryPopup: The window that shows the history items
CuemiacHeader: The area around the CuemiacEntry
CuemiacEntry: The entry with the Deskbar icon in it
EntryHistoryManager: Browse history with up and down keys (bash like)
1.2.1. Preferences
- DeskbarPreferencesUI: The dialog that contains Deskbar's preferences
AccelEntry: Used to help the user to bind Deskbar to a global shortcut
ModuleListView: Displays the modules and information about each one
ModuleInstaller: Install modules (called if you drag a module onto the preferences dialog)
1.2.2. Button UI
- CuemiacButtonUI: Main class of the Button UI
ToggleEventBox: Used for the arrow and Deskbar icon. A click on them will emit an event.
CuemiacAppletButton: Contains both the arrow and Deskbar icon (that's what the user usually sees)
1.2.3. Entry UI
- CuemiacEntryUI: Main class for the Entry UI
CuemiacPopupEntry: Implementation of CuemiacLayoutProvider. Used by CuemiacEntryUI the implement the CuemiacLayoutProvider interface.
2. UML diagram