110 likes | 211 Views
IIIMF GUI. Open Source Software Foundry marr@iis.sinica.edu.tw pwchi@pwchi.info. Outline. Components for IM UI GUI Library: wxWindows. Extensibility.
E N D
IIIMF GUI Open Source Software Foundry marr@iis.sinica.edu.tw pwchi@pwchi.info
Outline • Components for IM UI • GUI Library: wxWindows
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.
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.
Components for IM UI • Pre-edit region (文字暫區塊) • Status region (狀態區塊) • Lookup choice region (候選區塊) • Auxiliary region (輔助區塊)
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.
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 Xadapts wxWingets.
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.
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.
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