UI Layout

From Apache OpenOffice Wiki
Jump to: navigation, search


  • Mox Soini: Mox

Introduction and History

This page concerns itself with current and possible future UI Layout in OpenOffice.org, meaning the code methods and file formats used to programmatically create the locations, style and contents of Graphical User interface - the buttons, text boxes, toolbars, menus, dialogs etc.

Historically the UI layout has been hard-coded in individual applications (Writer, Impress, Calc etc.). Later this evolved into slightly de-coupled with the creation of VCL. While VCL makes porting easier for different platforms, such as Linux (KDE & Gnome) and Mac OS X, it also makes it very hard to get platform specific features and style into the UI. Some of this difficulty was lessened by the introduction (Since march 2003) of Native Widget Framework, which allows to glue the native widgets (e.g. the blue buttons in Mac OS X) over the OpenOffice.org's default widgets. This is accomplished by copying the look of the native button, while the interaction and the "feel" (how the button behaves) are coming from openoffice.org.

Before Native Widget Framework (pre-2003), OpenOffice.org more or less looked like Windows 95 on all platforms. Between 2004-2006 OpenOffice.org has begun to look more like native application, although purely in the look of widgets. The UI Layout (including menu structures, menu labels, location of widgets etc is all Windows-centric legacy).

Complementary and Related projects

The differences between different platforms are tracked in:

The possible future UI Layout work is complementary and not overlapping with:


Most work in OpenOffice.org (in general) will concentrate on platform independent OpenOffice.org, meaning that the all the UI and Layout will be the same on different platforms (except the widgets). The reasoning for this is simpler effort, consistency and easy-to-use between different platforms. See this mailing.

Parallel to the platform independent effort, a platform specific effort is suggested. This would work towards taking the most advantage of each platform - similarly as advanced rendering would use DirectX on Windows, OpenGL on Linux and Quartz on Mac OS X, also the advanced UI concepts and widgets could be used on each platform, to create a more powerful office suite, not just the lowest common denominator.

However, to accomplish such feat, much of the underlying architecture and structure would need to be changed. A cross-platform (instead of platform independent) UI framework would have to be created, to make platform-specific modifications easy and possible. One of the sources for inspiration in this area is Mozilla's XUL XUL in OOo concept test report, Developer information

Very ambitious goal, long journey, big rewards.

The middle road?

There are pieces of OpenOffice.org being worked on, which would allow OOo to be much more "native" to each platform while still keeping some of the UI platform independent, where needed.

  • a relatively simple XML layout infrastructure, see VCL_UI_Rework
  • a separated graphics rendering module (hopefully sharing as much code as possible --> Cairo backend), see Mac OS X Porting - Canvas
  • a properly isolated font searching/matching versus font rendering
  • Using CSS for styling/theming (similar to Mozilla Firefox)

The advantages of this approach would be: 1) dynamic layout allowing UI to adapt to varying lengths of localized strings, and varying screen sizes, 2) Ability to change the UI layout/style files in plain text and have changes appear while the program is running.


Research: Mac OS X Porting - Comparison to Toolkit Ports

UI Examples and Comparison

The following lists the typical applications used on various platforms and the comparison screenshots from OpenOffice.org. The aim is to show that while there are similarities in these platform-specific applications, and much of the actual functionality is quite similar, the actual UI (i.e. how you accomplish those functions) has differences both on surface and in deeper levels.

Comparison between OpenOffice.org and platform-specific UI Layouts

Kword (development version) on Linux (KDE).
Note the Photoshop-like toolbar/sidebar on the left.
Full view


OpenOffice.org 2.0 on Linux. Full view


Latest Microsoft Office on Windows Vista.
Note the task oriented layout and the merged menu/toolbars (Ribbon UI). Full view


OpenOffice.org 2.0 on all Windows versions.
Full view


Latest Microsoft Office (development version) on Mac OS X.
Note the layout and the new "modes" that are remarkably different from Windows version.
Full view


OpenOffice.org 2.0 (Aqua development version) on Mac OS X. Full view


Apple's Pages (part of iWork) on Mac OS X.
Note the design oriented, very clean layout and the powerful floating "Inspector" -toolbar/toolbox.
Full view


OpenOffice.org 2.0 (Aqua development version) on Mac OS X. Full view

Personal tools