Summer of Code 2007

From Apache OpenOffice Wiki
Jump to: navigation, search

Please note that Summer of Code 2008 started!

Similar to last year, is participating in the Google Summer of Code(tm) initiative sponsored by Google.

This page lists the 10 tasks that have been accepted from the proposals for this year. Students work with their mentors on the projects with a mid-term milestone in July until August.

Accepted Tasks


Integration of R into Calc

Create an add-on component that allows a Calc user to let the R environment do calculations on data from Calc cells and put the results into the spreadsheet again.

This should include a dialog to select input parameters and options, and allow results to be values or graph images. Note that the incompatible licenses (R is under GPL) have to be taken care of, possibly by starting R as a separate process.

Some more thoughts on the subject have been collected at Statistical Data Analysis Tool#Third Party Library Integration.

  • Required skills/knowledge: Some familiarity with statistical methods
Niklas.Nebel at
Leonard Mada
(on statistics and R syntax)
discoleo at
More Information
Check Wojciech's blog for regular updates. wiki page: R and Calc


Status bar control to display/change the language

Currently the Writer lacks means to display the language in use. There's also no easy way to change the language as the user has to use the menu. A status bar control would help to solve these problems. It should help to determine about the language used at the cursor position or the document. The control should be implemented using existing UNO APIs.

  • Required skills/knowledge: C++
  • Useful skills: Basic UNO API knowledge
Carsten.Driesner at
Thomas.Lange at
Carsten Driesner
Thomas Lange
Lili Sun


Draw/Impress: SVG Import Filter

SVG (Scalable Vector Graphics) is a vector graphics format that describes 2D graphics in XML.

There's no native SVG import filter for OOo. There exists an external one, but unfortunately it has very strong dependencies - Java 5.0, and Batik. The goal of this task is to create a new implementation that does not require any too big libraries.

A proof of concept implementation written in C++ using the UNO Drawing API and a lighweight libsvg library exists here, but it needs a lot of work to be really usable. Another problem is that libsvg does not seem to be too actively maintained; so the real implementation should use OOo's internal XML parser.

More information is available in Kendy's blog.

  • Required skills/knowledge: C++, XML knowledge is a plus
Jan Holesovsky - kendy at openoffice org
Fridrich Strba - fridrich_strba at openoffice org

Impress: OpenGL rendered transitions

The goal is to add 3D transitions to the Impress application. Transition is an animation where one page is visible in the beginning and another in the end. It is used during presentation slideshow to switch pages.

In the process of implementing OpenGL transitions an UNO API should be added to slideshow code, so that OpenGL transitions engine might be created as standalone UNO component. Current transitions should be refactored to another UNO component.

The engine will get the previous and next pages and should render the transition at given speed.

The participant should also implement at least 5 OpenGL transitions, rendered by the UNO component.

  • Reguired skills/knowledge: C++, OpenGL. familiarity with UNO is welcomed
Thorsten Behrens - thb at openoffice org
Radek Doulik - radekdoulik at openoffice org

ODF Toolkit

.net Module AODL: Forms and Fields implementation

Tools and best practice samples for ODF creation and manipulation

We already have some code snippets in Java and C# and looking for help to extend these tool sets or to provide tool sets in other languages. These tool sets are designed to offer basic ODF functionality even outside of OO.o.

  • Required skills/knowledge: Java or C# or Perl or C++ ...
  • Useful skills: ODF, XML
Dieter Loeschky at
Lars Behrmann at


Improving UI editing / coupling

Currently all dialogs (along with most translated strings) are stored in a rather unusual binary resource file format, that has not had much love in the last decade. We need to write some new code that separates the process of designing & laying out the UI from the code - to allow UE to make our UI more beautiful, and allow future re-factoring. The existing Basic GUI dialog editor and it's XML format should be re-used, a simple C++ compatibility API created, and a number of dialogs converted to the new format.

  • Required skills/knowledge: C++
  • Useful skills: courage, stickability, X-rated code reading
michael.meeks at
hfiguiere at


MacOSX: Complete User Interface respecting Aqua Human Interface Guidelines

  • Concerns: 2.x for Mac OS X Aqua only
  • Skills: Knowledge of languages C/C++ Mac OS X APIs and Application frameworks like Carbon

Original vcl widgets are not Aqua HIG compliant, and we need to implement all controls, respecting Aqua Human Interface Guidelines, some will use HIView, or HITheme or even other part of Carbon API.

  • Tasks: some controls are already implemented, but some are still missing.

The job consists in write the code and implement:

- tabs (implement and bind the TabitemValue class, using Carbon API)

- spinbuttons (implement and bind SpinbuttonValue class, using Carbon API)

- comboboxes (implement and use HICombobox)

- listboxes (work already started)

- texts in comboboxes / listboxes (better task definition to be completed)

- other types of controls: highlight, respect dimensions/spacing ..etc

- Windows background (using Aqua theme)

Proposed by
Eric Bachard
Eric Bachard ( ericb at openoffice dot org )

MacOSX: Address book integration

Synopsis: OOo currently is integrated with the Mozilla address book but not with the native Mac OS X address book. This is annoying for Mac OS X user. For better system integration it would be desirable to integrate with the Mac OS X address book.

Concerns: 2.x for Mac OS X (both Aqua and X11 versions)

Knowledge of languages C/C++, Mac OS X APIs and Application frameworks like Carbon or Cocoa for instance, knowledge of the Mac OS X address book APIs

Familiarize with the Mac OS X address book APIs

Familiarize with the current OOo Mozilla address book integration

Make a prototype for OOo Mac OS X address book integration

Document all produced code and aspects, Extend the principles to support docuemnt (text/media) Drag'n Drop.


Sebastien Plisson


Better "Notes" functionality: Notes2

The "Notes" functionality in Writer could be better in terms of usability and does not look very appealing.

  • Required skills/knowledge: C++
Mathias.Bauer at

hopefully helpful illustrative patch

Notes2 project wikipage

RTF Generator

The current RTF export of is not as good as the export to the Word (.doc) format. Parsing the generated Word format stream with a Word tokenizer and handing over the generated events to an RTF generator would lead to an RTF export filter with the same quality as the binary Word export filter. Remark: the tokenizer itself isn't complete today but in its current state covers enough parts of the Word format to make this a valuable project for the planned time span.

  • Required skills/knowledge: C++, some knowledge about the Word file format would be a plus
Henning.Brinkmann at
Personal tools