Display modules

desktopWhere most modules in the Smart Desktop architecture are non-visible, the desktop view (or screen) is naturally not one of them. Much like ordinary operating-systems the display is divided into spesific regions.

Each region expose behavior that you perhaps want to omit from your build. Including or excluding a part of the desktop is very straight forward, but first let’s look at the different regions that make up the display:

  • Workbench men
  • Menu apps
  • Desktop Icon and application space
  • Application icon dock [quick start]

As mentioned, each visual module is optional and can be omitted from your build. You control this via ordinary compiler constants (or “compiler switches” as some call them). It is important to understand that if you disable one of the above mentioned modules, their code is completely excluded from compilation. This means that you cannot turn the feature on during runtime. The feature is either included or excluded completely.

The workbench menu

One important design difference for our desktop, is that menus are not attached to application windows (as they are under Microsoft Windows). Instead our desktop has a global menu, similar to Apple OS X and Amiga OS, that is always visible at the top of the screen.


The Smart Desktop has a menu-bar at the top of the display

Depending on the desktop element that has focus (read: selected), the global menu will display the options for that element. For instance, if you left-click the desktop background the menu naturally displays options dealing with the background (like setting a background picture etc).

Note: Menu items are handled automatically by the system. As developer will register the menu items as a part of the program initialization process. The system takes care of the rest and the desktop communicates with the application through a shared message-port. All applications are assigned a unique message-port. The DMP (desktop message protocol) takes care of everything, a developer only needs to use the API methods.

Our API expose simple but powerful methods for registering, enabling and responding to menu activity. For more information about the menu api, please look at the Smart Desktop API. You should also look at the DMP (desktop message protocol) system for a quick introduction to how a web application communicates across domains.

  • The Smart Desktop API
  • DMP, the desktop message protocol

Menu apps

The global menu supports something called “menu apps”. These are micro applications designed to occupy a small portion of the menu. Menu apps are aligned towards the right of the display. By default the system comes with two menu app examples:

  • Date and time
  • Username and IP

Menu apps align to the right of the display

Menu apps should always be small and informative. They should never expose advanced features and focus is on quick and easy access to important qualities. This can be information like we have done in our default apps – or functionality.

Menu apps should never register menu elements; they should be as lightweight as possible, never exceed the menu height (preferably with a 2px margin) and interaction must be reduced to a single mouse-click. The single click is important because the desktop is written to work with touch devices (such as the iPad).

For example, if you click the date and time app, the content will toggle between displaying the current time – to showing the full date and name of the day.

Likewise, if you double-click the username it will perform an IP lookup and display the actual IP of the device (not the local IP).

Desktop icon and application space

The majority of the desktop screen is allocated for icons and windows (also called forms). Like any desktop, icons are located behind application windows.

Icons behave different on The Smart Desktop than traditional desktops. Storage devices that are mounted will display a desktop icon. Icons are aligned horizontally, and unlike traditional desktop’s the user cannot position icons at random locations.

There is not much else to document regarding this part of the display. If you omit this module from your build, you exclude both desktop icons and the abillity to assign a backdrop image to the display .

Note: You can manually assign a backdrop-image to the screen element, but it will be un-affected by system preferences options.

Application icon dock

The icon dock is by default aligned to the right-most of the screen. It contains icons for favorite applications or features that the user wants quick access to. This aspect of the desktop system is managed by preferences. The user can edit the content of the dock at any given time.


The application dock, here seen to the right, provides quick access to favorite programs

By excluding this module the dock options in the preferences application is also omitted. The preferences architecture and API is however still in place, but settings regarding the dock will simply be ignored.