GNOME Launch Box is designed to be modular. The reason is that it should be easy to add third party modules (CURRENTLY NOT SUPPORTED). There is really three parts to describe in GNOME Launch Box:
Each module should support the two calls query and add_actions. The way a search is done is that first all modules are queried for all possible items that match a search.
In a second phase all modules are called again with a specific item to add all possible actions on that item. The reason for these two phases is to not use valuable time when searching to create possible actions on items that might not be interesting. Items
An item represents a file, a program, a contact for example. So when searching for a string each module creates an item for matching targets. Each item can support different actions. For example a contact item can support "Write email" or "Show addressbook entry". The item is shown in the left hand field in the search box. Actions
An action describes different operations, Launch, Open for example. This is what is shown to the right in the search dialog when a hit is presented. The actions for an item is added in the add_actions call to the module. An action has a signal activated which will most often be connected to by the module creating the action. The callback will be called when the user presses enter to activate a specific action. This could for example perform the action Launch on the item Evolution.