IIIMF GUI Open Source Software Foundry [email protected]@pwchi.info.

11
IIIMF GUI IIIMF GUI Open Source Software Open Source Software Foundry Foundry [email protected] [email protected] [email protected] [email protected]

Transcript of IIIMF GUI Open Source Software Foundry [email protected]@pwchi.info.

Page 1: IIIMF GUI Open Source Software Foundry marr@iis.sinica.edu.twpwchi@pwchi.info.

IIIMF GUIIIIMF GUIIIIMF GUIIIIMF GUIOpen Source Software Open Source Software

[email protected]@iis.sinica.edu.tw

[email protected]@pwchi.info

Page 2: IIIMF GUI Open Source Software Foundry marr@iis.sinica.edu.twpwchi@pwchi.info.

Outline

• Components for IM UI• GUI Library: wxWindows

Page 3: IIIMF GUI Open Source Software Foundry marr@iis.sinica.edu.twpwchi@pwchi.info.

Extensibility• For the IM service providers, it is essential for

an IM framework to provide features to differentiate their products from others. Some examples are:– Look and Feel– Functionality– Cooperation with special applications

• The GUI object downloading mechanism enables "look and feel" customization through the remote Language Engine.

• Cooperation with special applications depend on the platform IMSPI capability.

Page 4: IIIMF GUI Open Source Software Foundry marr@iis.sinica.edu.twpwchi@pwchi.info.

Object Downloading• IIIMF supports object downloading where

either binary or text data objects to perform operations at IIIM client side can be down-loaded from IIIM server.

• A binary data object types supported in IIIMP V2.0 is an input method GUI object which performs preedit, lookup, status, or auxiliary function, or a light weight engine object which should work as front-end input method on IIIM client side and collaborate well with the associated IIIM server.

• A text data object supported in IIIMP V2.0 is character conversion rule file, which is written in pre-defined format syntax, called CCDEF. It describes the rules of key-action binding and text composition which should be performed on the client side.

Page 5: IIIMF GUI Open Source Software Foundry marr@iis.sinica.edu.twpwchi@pwchi.info.

Components for IM UI

• Pre-edit region (文字暫區塊 )• Status region (狀態區塊 )• Lookup choice region (候選區塊 )• Auxiliary region (輔助區塊 )

Page 6: IIIMF GUI Open Source Software Foundry marr@iis.sinica.edu.twpwchi@pwchi.info.

Example

Page 7: IIIMF GUI Open Source Software Foundry marr@iis.sinica.edu.twpwchi@pwchi.info.

wxWidgets (1)• A free C++ library for cross-platform

development, with bindings for Python, Perl and C#.

• Since 1992• Features

– Supported platform: Windows, GTK+, Plain X11, Motif, MacOS

– can write C++, Python, Perl and C# code directly.

– supports importing and exporting XML resources.

Page 8: IIIMF GUI Open Source Software Foundry marr@iis.sinica.edu.twpwchi@pwchi.info.

wxWidgets (2)• Projects

– wxUniversal: to provide basic classes such as wxWindow, wxFrame and wxDC.

– wxMGL: graphic solution for industry– wxMicroWindows

• Testimony– Highest-profile user is Mitch Kapor and

his Open Source Applications Foundation.– Borland C++ Builder X adapts

wxWingets.

Page 9: IIIMF GUI Open Source Software Foundry marr@iis.sinica.edu.twpwchi@pwchi.info.

Problem (1)• Weak native resource supports

– wxWidgets is a cross-platform toolkit, and has been optimized to make writing dialogs by hand as easy as possible, but this approach has limitations as soon as dialogs reach a certain complexity.

• Weak language co-development supports– Some users might want to make use of the RAD

features of the Python bindings during development, but create a native binary using C++ at the end. This would entail rewriting (or at least reediting considerably) all dialog related code.

Page 10: IIIMF GUI Open Source Software Foundry marr@iis.sinica.edu.twpwchi@pwchi.info.

Problem (2)• Widget items size differ

– Typically, a Motif widget has rather large borders, whereas a Windows control tries to use as little space as possible. Additionally, the user is often able to change the font size or choose a different "skin" or "theme" for all dialogs, resulting in different proportions etc. The size of widgets can vary if dialogs get translated into other languages, as a word usually has a different length in different languages.

Page 11: IIIMF GUI Open Source Software Foundry marr@iis.sinica.edu.twpwchi@pwchi.info.

wxDesigner

• A commercial dialog editor and RAD tool for the free wxWidgets GUI library.

• Features– Make use sizers to query the controls

about the individual size requirements at run-time, changes in font sizes etc won't do any harm, the dialog will grow or shrink accordingly.

– Work for GTK 2.3.x