AbiWord: A Cross Platform GNOME Office Component



Similar documents
AbiWord "The Wrath Of Dom"

The MaXX Desktop. Workstation Environment. Revised Road Map Version 0.7. for Graphics Professionals

Practical Example: Building Reports for Bugzilla

In this chapter, we want to make sure that your computer (and you) is ready for the Red Hat Linux installation.

Operating Systems. and Windows

START TEACHER'S GUIDE

Enterprise Office Desktop Usage. Ing. Peter-Paul Witta

A single user ran a single program ran on a single computer there was no need for Page 1 of 6 Copyright Virtual University of Pakistan

START TEACHER'S GUIDE

FileMaker Pro and Microsoft Office Integration

Blogging overview. A blog is similar in format to a monthly diary

AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev

Create a Poster Using Publisher

Cross-Platform. Mac OS X ЧЯУ

From Windows to Ubuntu & Ticket to Read Instructions

from Microsoft Office

A Semi-Technical White Paper: An Introduction to Wine

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

Guide to SAS/AF Applications Development

Jing Yang Spring 2010

Stress Testing Technologies for Citrix MetaFrame. Michael G. Norman, CEO December 5, 2001

After studying this lesson, you will have a clear understanding of, what an Operating System is. functions of an Operating System

Lecture 1 Introduction to Android

My Documentum. Personal Access to Documentum from Everyday Applications. Copyright 2009 EMC Corporation. All rights reserved.

Frequently Asked Questions

Simplify Suite in a VDI Environment

Steven Wood Software, 2 Harksome Hill, West Hunsbury Northampton. NN4 9YF. United Kingdom

OpenOffice.org Writer

Engineering the Ambulant Multimedia Player

#d8rules - Support the Rules module for Drupal 8

SMS (Server Management Software) Digital Video Recorder. User s Manual

Using Crystal Reports with VFP

BogDan Vatra and Andy Gryc. Qt on Android: Is it right for you?

Technology Spoken Here...

Android Developer Fundamental 1

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Framework as a master tool in modern web development

Creating a High Resolution PDF File with Adobe Acrobat Software

imageprograf Software Solutions Advanced Software Features for Your Canon imageprograf

Preservation Handbook

Rapid Application Development with GNOME and Python

SOLO NETWORK (11) (21) (31) (41) (48) (51) (61) version Adobe PageMaker 7.

Web-based based Access to ROOT

INTRODUCTION TO DESKTOP PUBLISHING

Melbourne IT The Ecommerce Widget Guide - user guide

CRM for Small Businesses: A Beginner s Guide

Tablets: Will They Replace PCs?

Working With Templates in Web Publisher. Contributed by Paul O Mahony Developer Program

What's new in OneNote 2010

How to demonstrate the WolfVision Connectivity-Software

HTML-eZ: The Easy Way to Create a Class Website

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

How To Make A Free Office Suite Work For You

Fall Lecture 1. Operating Systems: Configuration & Use CIS345. Introduction to Operating Systems. Mostafa Z. Ali. mzali@just.edu.

Whitepaper. 5 Dos and Don ts of Embedded Analytics.

White Paper Using Webinars for Online Marketing

Bangla Localization of OpenOffice.org. Asif Iqbal Sarkar Research Programmer BRAC University Bangladesh

Technical Information Abstract

HITT101 H-ITT Audience Response System 101

Operating System Today s Operating Systems File Basics File Management Application Software

3F6 - Software Engineering and Design. Handout 9 User Interface Design With Markup. Ed Rosten

Making Data Available on the Web

Using USB Flash Drives

Credits: Some of the slides are based on material adapted from

Building Applications With DUIM

Manual. OIRE Escuela de Profesiones de la Salud. Power Point 2007

IE Class Web Design Curriculum

Google Sites: Creating, editing, and sharing a site

A Guide to Mobile App Development Platforms

Google Drive Create, Share and Edit Documents Online

Trends in Developing and Publishing Content: How HTML5 and Mobile Change the Game

Windows Presentation Foundation: What, Why and When

PowerPoint 2013: Basic Skills

CSC 551: Web Programming. Spring 2004

White Paper. Java Security. What You Need to Know, and How to Protect Yourself

Mobile Device Design Tips For Marketing

Lesson 07: MS ACCESS - Handout. Introduction to database (30 mins)

SAS on a Mac? Yes! Jack Hamilton, Kaiser Foundation Health Plan, Oakland, California

Mensch-Maschine-Interaktion 1. Chapter 8 (June 21st, 2012, 9am-12pm): Implementing Interactive Systems

Ansur Test Executive. Users Manual

Ubuntu Linux Reza Ghaffaripour May 2008

Computing Concepts with Java Essentials

Using HTML5 Pack for ADOBE ILLUSTRATOR CS5

Why HTML5 Tests the Limits of Automated Testing Solutions

OPERATING SYSTEMS Software in the Background. Chapter 2

Extending Desktop Applications to the Web

SPEED AND EASE Spreadsheets. Workflow Apps. SECURITY Spreadsheets. Workflow Apps

Mobile Maker. Software Requirements Specification

SMART Board Tips & Tricks (version 9.0) Getting Started. SMART Tools vs. SMART Notebook software

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

User Guide. DYMO Label TM v.8

Software User's Guide

Mobile App Design and Development

Archiving digital documents and s in PDF/A

To be productive in today s graphic s industry, a designer, artist, or. photographer needs to have some basic knowledge of various file

GOOGLE DOCS APPLICATION WORK WITH GOOGLE DOCUMENTS

JavaPOS TM FAQ. What is an FAQ? What is JavaPOS?

A Modular Approach to Teaching Mobile APPS Development

Printing Guide. MapInfo Pro Version Contents:

APPLICATION VIRTUALIZATION TECHNOLOGIES WHITEPAPER

Transcription:

AbiWord: A Cross Platform GNOME Office Component Dom Lachowicz <doml@appligent.com> Hubert Figuière <hfiguiere@teaser.fr> 1

Abstract AbiWord is a cross platform Word Processor, but it is also GNOME s word processor. The future of AbiWord is definitely related to the future of the GNOME project as a whole, and to GNOME Office in particular. The future of GNOME Office looks promising, with the leading hackers of the Gnumeric, AbiWord, and Guppi team resolving to tackle the many tough issues that lie ahead. 2

AbiWord s Goals and Ambitions AbiWord aims to be the word processor of and for the masses. AbiWord does its best to inter operate with the user s native environment and its existing applications, toolkits, and file formats while providing an incomparable level of quality, service, and performance. AbiWord achieves this through: 1. A unique approach to cross platform application development 2. A very robust import/export architecture, with a profound focus on inter operability with the many existing word processors on the market today 3. An ever growing array of plugins, capable of everything from providing new image loaders to inline translations to dictionaries and thesauri. 3

Glossary Here is a short list of acronyms we use that may be using and confusing: AP: designates application framework code XAP: designates cross application framework code XP: designates cross platform code 4

The Future of AbiWord At the time of this writing, AbiWord is nearing its 1.0 milestone release. While this is a very important milestone for the team and the project, it is only the first of many steps toward achieving the complete feature set that a user expects and deserves. The next milestone release 1.2 will add several long awaited features. Here s a peek at what the developers have on their white boards: Tables Table support has probably been our most requested feature and something that we will definitely address in our 1.2 series. This involve reworking our text formatting engine. That leaves entirely in the XP code. Changing it will benefit to all platforms quite immediately. Compound object embedding After tables, object embedding is the feature that most users ask for. With AbiWord 1.2 it should be possible to embed and edit equations, spreadsheets, graphs, and other data AbiWord as an embeddable component OEOne recently demonstrated that AbiWord can be embeded as a XPCOM component inside of their Mozilla based desktop. We d like to leverage Bonobo and OLE2 to make AbiWord an embeddable component. The über cool side effect you ll be able to do inline previews of AbiWord or MS Word documents inside of Evolution and Nautilus. Here are a few application examples of AbiWord embedding. 5

The biggest problem will be to keep embedding and embeddability as much in the XP world as possible. 6

The Future of GNOME Office With GNOME 2.0 just recently released, much effort is going into porting existing applications to this tremendous new platform. AbiWord and the other GNOME Office applications are no exceptions. Not only are these applications being "ported to the new framework, but they are also being re architected to leverage the many wonderful new controls, widgets, and technologies that it provides. Some of the more important technologies are: Bonobo GConf GTK+2 AbiWord 1.2 will strive to utilize many of these technologies to its advantage. The AbiWord team will also be working closely with the Gnumeric team in order to create a very solid, robust, full featured, and well integrated office environment for the GNOME desktop. We endeavor to work on: An escher drawing model (new canvas) Better support for popular MS Windows graphic types (WMF and EMF included) Better support for popular MS Windows file formats (DOC, XLS,...), including LibOLE2 "The child that nobody wanted" Cross Application embedability Shared dialogs and other controls (toolbars, menus, font selection dialogs, etc...) Improved font handling Improved printing support 7

AbiWord s Cross Platform Ambitions AbiWord has been designed from the ground up as a cross platform application that would run on every imaginable platform. Why cross platform? This question might sound strange, but why would anyone develop a free (libre) software product to run on non free platforms as well as on free platforms? The AbiWord team does this because we whole heartedly endorse both freedom of software and freedom of choice. If either choice or necessity demands that a user must use proprietary operating environment, s/he is still free to use AbiWord there. The framework The AbiWord team has developed its own cross platform C++ framework. Abi s framework is much unlike other cross platform developments like OpenOffice, Mozilla or even Qt. Unlike these others, Abi s framework is purposefully designed to integrate well with a user s native system, primarily because Abi leverages OS system services to its advantage. In layman s terms, Abi will use native controls, widgets, filesystem drivers, plug in frameworks, printers, etc... instead of providing its own. This, of course, is not without its costs. The platform maintainers ultimately have more code to maintain, but the result (and our ultimate asset) is that Abi really is a native application everywhere it runs. It looks and behaves just like any other application on your desktop. The approach taken is to separate interfaces from implementation. We provide a set of cross platform interfaces and abstract classes which are then implemented in terms of native controls. What we do: Abstract drawing canvas: we don t reimplement our own rasterizer but instead adapt our calls to draw onto native canvases I18N and L01N: Our framework is highly adaptable and portable to a large variety of languages and locales, including Arabic, Hebrew, and CJK locales. Event mapper/dispatcher: AbiWord s native classes trap native events and actions and then dispatch them back to XP classes. Key presses, mouse motions, and other user interaction events are bound from the platform event system to the framework events. Abstract controls: The AbiWord framework abstracts or implements some important widgets such as font combo boxes, status bars, and rulers. Activate and manage dialogs... and of course provide a cross platform text formatter and management on top of that. What we don t do: 8

Manage the widget creation and layout. The reason is that widget management is mostly dependent of the toolkit, and each toolkit offer tools to do it easily. And since we don t......rewrite a complete graphics toolkit like some others that we re familiar with <cough> GTK+, QT, OpenOffice, Mozilla </cough>. This is too much work for too little benefit, and the drawbacks are huge. Look at the overhead of XUL in Mozilla, the size of the framework in OpenOffice and you ll see the benefits of our approach. Render fonts: since this is considered a graphic primitive, we let each platform do that by itself. This means that the platform implementor has to provide: Bindings between GUI events and the XP framework GUI layout for the word processor frame Ready made dialogs Graphics primitives Other platform specific features (fonts, printing,...) Despite (or perhaps because of) all of that, we are highly portable. For instance, we run on more platforms than OpenOffice does. For that matter, only "Hello World" and Mozilla run on more platforms than AbiWord does ; ) The ultimate catch Our framework is not only cross platform, but it aims to be cross application as well. So this means that many of the lower level classes are potentially available to any new application. These parts will "just work " in their new application for every platform that AbiWord supports. This includes such things as: Toolbars Menus Graphics and font handling Printing A multitude of dialogs Question: why not port an app like Gnumeric to other platforms using the Abi framework? How does that work? First we separated the framework in 2 parts: 1. The cross application framework (XAP) 2. The application framework (AP) The text engine is separate as it is a really independent engine. The cross application framework provides general purpose classes that could be useful for any application. The application framework specializes those classes to match the application specific needs. Here is an example, the frame (ie the main window). The classes inheritance scheme is as follows: 9

XAP_Frame > AP_Frame XAP_Frame, an interface class, loads its own platform implementation class, and AP_Frame can (a possibly will) do the same. AP_Frame implementation class should inherit from XAP_Frame implementation which inherit from a base virtual implementation class XAP_FrameImp > XAP_GnomeFrameImp > AP_GnomeFrameImp Those implementation classes are only used as a delegate or proxy that will abstract all the platform specific implementation code. We have bidirectional relations between the implementation and the XP class. The architecture is slightly different from what we do in version 1.0. Version 1.0 framework is not as clean as it sounds, and even if it features lot of XP code, it partly lacks separation of interface and implementation. 10

How to Help AbiWord You can help AbiWord development through a number of ways: 1. Help us out with maintaining Bugzilla 2. File bugs and perform regression and stress tests 3. Help out with "bug days" 4. Help answer questions on the abiword user list 5. Write user and developer documentation 6. Translate or update an existing translation 7. Contribute code 8. Sponsor a developer 9. Port Abi to your favorite platform (eg: Qt/KDE, MacOS 9) All of this and more is explained at http://www.abisource.com/howtohelp.html 11

Conclusions AbiWord 1.2 is poised to become one of the best word processors ever and run on an unparalleled number of platforms and architectures. It will be more than ever an integral part of GNOME Office. 12

Questions? 13