PyUNO Project: UNO IDLE

From Apache OpenOffice Wiki
< Python
Revision as of 00:29, 26 August 2013 by JZA (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Abstract

The goal of the project is to create a port of the IDLE program into UNO. The original Python IDLE is embedded in OpenOffice, but due to a compilation issue with TK, it has not been able to work at all. A port to UNO will allow Python to re-use the libraries in the original program (including debugger, interpreter, editor) but with a native look and feel to the Apache OpenOffice developer.

What would it achieve?

Have a well known IDE familiar to Pythonistas embedded in the Apache OpenOffice platform and be able to speak to the UNO designer for faster application development at the GUI (Dialog) level.

IDLE

IDLE is a Integrated Development Environment for the Python language. The IDE has evolved to become a full fledge, but simple IDE. Including things like code-coloring, introspection, debugging, project manager.

Port

Original IDLE

Original IDLE on Tkinter

UNO IDLE

UNO mockup of IDLE
The fonts, menu bar and scrollbars, sub-menu are UNO-compliant. There is also UI components like Tree control in place of the TK's Class browse.

How to Proceed?

The way to proceed, to the best of my judgement is to identify tools and resources already available. Understanding the PyUNO procedures is something that would be needed moving forward. Identifying guides, and code samples would also be something that you want to take in consideration.

Reading and understanding the way the IDLE code is written would be the second stage of the preparations to take into account. If you want to learn about the hg source code of idle please visit here.

Finally we can get some repository for a nice python project called MRI, which is used by PyUNO developers to inspect objects within OpenOffice. The code works like a study case on how to code a full user interface with the UNO widgets. It is available on github here, the GUI folder can be found here, full of UI examples.

Personal tools