From is@sac.sfbay.sun.com Wed Jan 21 19:33:47 2009
Received: from newsunmail1brm.central.sun.com (newsunmail1brm.Central.Sun.COM [129.147.62.245])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n0M3Xl3C001668
	for <psarc-ext@sac.sfbay.sun.com>; Wed, 21 Jan 2009 19:33:47 -0800 (PST)
Received: from nwk-avmta-1.SFBay.Sun.COM (nwk-avmta-1.SFBay.Sun.COM [129.146.11.74])
	by newsunmail1brm.central.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2) with ESMTP id n0M3Xj1Z015494;
	Wed, 21 Jan 2009 20:33:46 -0700 (MST)
Received: from pmxchannel-daemon.nwk-avmta-1.sfbay.Sun.COM by
 nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KDU00I0HSK9OV00@nwk-avmta-1.sfbay.Sun.COM>; Wed,
 21 Jan 2009 19:33:45 -0800 (PST)
Received: from dm-sfbay-02.sfbay.sun.com ([129.146.11.31])
 by nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KDU00D0VSK8HW30@nwk-avmta-1.sfbay.Sun.COM>; Wed,
 21 Jan 2009 19:33:44 -0800 (PST)
Received: from sac.sfbay.sun.com (new-sac.SFBay.Sun.COM [129.146.175.65])
	by dm-sfbay-02.sfbay.sun.com (8.13.8+Sun/8.13.8/ENSMAIL,v2.2)
 with ESMTP id n0M3XiAU061860; Wed, 21 Jan 2009 19:33:44 -0800 (PST)
Received: from sac.sfbay.sun.com (localhost [127.0.0.1])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n0M3XhTl001663; Wed,
 21 Jan 2009 19:33:43 -0800 (PST)
Received: (from is@localhost)	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8/Submit)
 id n0M3Xh6Z001659; Wed, 21 Jan 2009 19:33:43 -0800 (PST)
Date: Wed, 21 Jan 2009 19:33:43 -0800 (PST)
From: Ienup Sung <is@sac.sfbay.sun.com>
Subject: Virtual Keyboard Input Method [PSARC/2009/041 FastTrack timeout
 01/28/2009]
To: PSARC-ext@sun.com
Cc: i18n-discuss@opensolaris.org
Message-id: <200901220333.n0M3Xh6Z001659@sac.sfbay.sun.com>
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
Status: RO
Content-Length: 11761


Template Version: @(#)sac_nextcase %I% %G% SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
	 Virtual Keyboard Input Method
    1.2. Name of Document Author/Supplier:
	 Author:  Naoyuki Ishimura
    1.3  Date of This Document:
	21 January, 2009
4. Technical Description

OVERVIEW

As an extension to the current IIIMF keyboard layout emulation feature [1],
this project proposes to add GUI-based virtual keyboard on our desktop.

Virtual keyboard is a graphical representation of computer keyboard on
GUI desktop that can be summoned on as needed based on the current input
mode and can be used to input characters by clicking on the graphically
represented keys on the virtual keyboard.

The virtual keyboard that will be delivered by this project will not only
supply an additional way of inputting characters (by clicking on the keys on
the virtual keyboard), but also allow individual users to create a new
keyboard layout as a new emulation based input mode or customize the current
and existing keyboard layout as needed so that they can re-map keys, assign
a different character (or a set of characters) on a key, or do both on
the current keyboard layout and keys.

Once customized layout is saved with your specified name, it can be used
persistently. User can create as many as custom layout they wish; and they
will be usable for both at the virtual keyboard and, if chosen so, also
with the physical keyboard.

This feature has been asked by US government and EMEA customers specifically
for Unicode/UTF-8 locales to aid multiscript input and also to allow user
customization of the keyboard layouts. As we do not add any new features to
CDE, in the same manner and context, we do not plan to back-port this to
legacy codeset locales at this point unless we have a requirement with
some specific revenue number attached. We also consider that the existing
input modes and methods quite good enough and sufficient for such legacy
codeset locales.

Once approved by PSARC, we will also go through xDesign/HCI review so that
the resulting GUI will meet Sun standard and be intuitive as much as possible.


TECHNICAL DETAILS

(1) User Interface:

The virtual keyboard [9] which can be invoked from terminals or GUI desktop    |
menu has keyboard window and control panel as its main user interface          |
components:                                                                    |

- Keyboard window:

  This will be the main interface that users will use to see and interact
  with to input characters and also to customize with.

  Users can have and use multiple keyboard windows on their desktop.
  In terms of how to group and organize such multiple keyboard windows,
  there will be three different styles that one can choose from: stand-alone,
  internal frame, and tab styles. (For more details, please see the sub-section
  on the control panel at below.)

  Each keyboard window will show a keyboard layout with usual character and
  modifier keys based on the XKB symbol and geometry data of the current
  input mode. Users can select a specific XKB symbol, an XKB geometry, or
  both, such as "US/English" symbol, "Generic 101" geometry, and so on.
  [10, 11, 12]

  A character key will act like a push button and a modifier key will act
  like a toggle button as specified in the XKB data. Each key will show the
  currently effective character(s) based on the combined state of the key
  with the modifier keys. As an example, if Caps Lock key is in effect,
  the key for 'a' will show 'A'. (Please see "Appendix A: Visual effect with
  modifier keys" at pages 4 and 5 of [10].)

  The character(s) shown on the keys will also be customizable.

  When the keyboard window's context menu is brought up by clicking on         |
  the right mouse button at the window, one can also choose to show or hide    |
  the control panel, select symbol data, edit keys, and do some other          |
  convenience operations directly. [11]                                        |

- Control panel:

  The control panel can be used to control keyboard window style and mode
  among other things as shown in [12].
  
  The style defines how keyboard windows are organized. As noted at the above
  sub-section, the following three different styles will be supported:

  -- Stand-alone frame style: Each keyboard will be displayed as a separate
     top-level window.

  -- Internal frame style: One or more keyboards will be displayed within
     a top-level container window as internal frame windows.

  -- Tab frame style: Each keyboard will be displayed in a tab pane of
     a top-level container window.

  Please see "Appendix B: Multiple view with different styles" at pages 5 and
  6 at [10] for a couple of concept designs.

  The mode defines whether keyboard windows are in input mode or in
  design mode (i.e., edit or customization mode). When the current mode is in
  input mode, if one clicks on a key, associated character(s) will go to
  an application that had the input focus the last. While it is in design
  mode, users can edit the keyboard layout and keys for a customization.

  When "New Keyboard" button is pressed along with selections on symbol and
  geometry, a new keyboard layout (and thus a new input mode) can be created
  and saved.

  There will be also a check box for "Synchronize with physical keyboard"
  which can be used to instruct the current keyboard layout emulation input
  mode to follow the customized keyboard layout and keys on the virtual
  keyboard window.

  As noted earlier, some of the operations on the control panel can also be
  done via the context menu of the keyboard window.

(2) Keyboard customization and keyboard data handling:

When it is in design mode, the keyboard window will be used as the keyboard
layout editor. For each key, users can specify a character or a set of
characters by using an associated text field or by doing copy or swap          |
operations via drag-and-drop. (Using the same drag-and-drop, the copy          |
operation is done between two keyboards and the swap is done within            |
a single keyboard.)                                                            |

When a user creates his own keyboard layout (symbol) data, it will be saved in
the user's own directory ($HOME/.iiim/vkb/) as an XML file. It will have user
specified layout name and will be sent to the input method server. (Similar
effect will also take place if one customizes an existing keyboard layout.)

At that time, input method switcher [2] will be notified to update its
language list to include the newly created keyboard layout so that the user
can select it from the input method switcher menu afterward.

To make the customization persistent, it is one of the responsibilities of
the IIIM start-up client program (/usr/lib/iiim/iiimx-settings-init) which
will send the custom keyboard layout data, if any, to the input method server
at the start of a new GUI desktop session.

(3) Input mechanism on character(s):

The character(s) from a virtual keyboard is passed as input method committed
text to other applications. What that means is that the virtual keyboard
generated text data can be any Unicode character or text and will not be
restricted to XKeyEvent data of X11.

	[Virtual keyboard]
		|
		|
           character(s)
		|
		|     +--character(s)--> [GUI client with last input focus]
                V    /
       [Input Method Server]

(4) Pre-defined keyboard symbol and geometry data:

Virtual keyboard has pre-defined geometry and symbol data set that came from
XKB geometry and symbol data [1]. As of today, they are stored separately in
IIIM private directory and thus, during run-time, it does not need X11 XKB.
The symbol data are shared with IIIMF keyboard layout emulation functionality.

As previously discussed during the review of [1], once we have a set of
interfaces established between IM and Xlib/X servers (especially Xorg and
Xnewt) on the XKB operations, we will transparently replace this redundant
component by using the future interfaces between the IM and the X servers
so that there will be a single set of XKB data in the system for the above
mentioned system components.

(5) Candidates for future enhancement:

The first implementation from this project will not include the following.
They are possible candidates for future enhancement and we will come back
again with new PSARC case(s) as needed:

- System-wide availability of custom layout:
  Currently, the customized layout data is only for and per user.
  System-wide customization will be considered when there is a formal
  requirement.

- Function keys and other features of physical keyboards:
  The virtual keyboard input method at this point aims only at character
  input. Emulating all functionalities of physical keyboard is not currently
  considered. Thus function key support and such will be considered when
  it is formally required.


INTERFACE STABILITY

There is no significantly notable interfaces imported. The project exports
the following interfaces.

    Interfaces                      Stability        Note
    ----------                      ---------        ----
    /usr/bin/iiim-keyboard          Committed        Virtual keyboard itself [9]

    /usr/lib/iiim/VKB.jar           Project Private  Virtual keyboard jar file

    /usr/lib/iiim/libiiimvkb_jni.so Project Private  Virtual keyboard lib file

    /etc/iiim/geometry.vkz          Project Private  Virtual keyboard private
						     data file

    /usr/share/gnome/help/iiim-keyboard/*            GUI help file
				    Project Private 

    $HOME/.iiim/vkb/*               Project Private  Customized data


RELEASE BINDING

The project team asks for Micro/Patch release binding.


REFERENCES

[1] PSARC 2007/028 EMEA input methods with keyboard layout emulation
[2] PSARC 2005/525 IIIMF upgrade to revision 12
[3] Internet/Intranet Input Method Architecture:
        http://www.openi18n.org/subgroups/im/iiimf/whitepaper/whitepaper.html
    The same HTML file will be available at the case directory:
        http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/iiimf-whitepaper.html
[4] Internet-Intranet Input Method Protocol (IIIMP) specification:
        http://www.openi18n.org/subgroups/im/iiimf/protocol/spec.html
    The same HTML file will be available at the case directory:
        http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/iiimp-spec.html
[5] ASARC 1999/276 /usr/lib/im directory for platform independent Input Method
    Systems
[6] ASARC 1998/515 Multi Script Input Support in UTF-8 locales
[7] ASARC 1998/422 IIIMP - Internet/Intranet Input Method Protocol
[8] ASARC 1997/359 Multilingual Input Method Server for X/Java/Corba
[9] iiim-keyboard(1) man page:
        http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/iiim-keyboard.1
[10] High-level Virtual Keyboard UI/Module design (v0.2):
	http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/VKB_design_02.pdf
[11] Draft keyboard window screen snapshots:
	http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/Keyboard.png
	http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/Input-mode-context-menu.png
	http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/Edit-mode-context-menu.png
[12] Draft control panel window screen dump:
	http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/ControlPanel.png

6. Resources and Schedule
    6.4. Steering Committee requested information
   	6.4.1. Consolidation C-team Name:
		G11N
    6.5. ARC review type: FastTrack
    6.6. ARC Exposure: open


From Richard.Matthews@Sun.COM Tue Jan 27 16:19:46 2009
Received: from sunmail5.uk.sun.com (sunmail5.UK.Sun.COM [129.156.85.165])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n0S0JjRg005364
	for <psarc-ext@sac.sfbay.sun.com>; Tue, 27 Jan 2009 16:19:45 -0800 (PST)
Received: from brm-avmta-1.central.sun.com (brm-avmta-1.Central.Sun.COM [129.147.4.11])
	by sunmail5.uk.sun.com (8.13.8+Sun/8.13.8/ENSMAIL,v2.2) with ESMTP id n0S0JiLe015933
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Wed, 28 Jan 2009 00:19:44 GMT
Received: from pmxchannel-daemon.brm-avmta-1.central.sun.com by
 brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KE500H07NKVBP00@brm-avmta-1.central.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@Sun.Com); Tue, 27 Jan 2009 17:19:43 -0700 (MST)
Received: from brmea-mail-2.sun.com ([192.18.98.43])
 by brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KE5000GDNKSYNA0@brm-avmta-1.central.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@Sun.Com); Tue,
 27 Jan 2009 17:19:40 -0700 (MST)
Received: from fe-amer-09.sun.com ([192.18.109.79])
	by brmea-mail-2.sun.com (8.13.6+Sun/8.12.9) with ESMTP id n0S0Je7F020412	for
 <PSARC-ext@Sun.Com>; Wed, 28 Jan 2009 00:19:40 +0000 (GMT)
Received: from conversion-daemon.mail-amer.sun.com by mail-amer.sun.com
 (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007))
 id <0KE500001NJPJM00@mail-amer.sun.com>
 (original mail from Richard.Matthews@Sun.COM)
 for PSARC-ext@Sun.Com (ORCPT PSARC-ext@Sun.Com); Tue,
 27 Jan 2009 17:19:40 -0700 (MST)
Received: from [129.152.9.14] by mail-amer.sun.com
 (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007))
 with ESMTPSA id <0KE5000TINKQIO80@mail-amer.sun.com>; Tue,
 27 Jan 2009 17:19:40 -0700 (MST)
Date: Tue, 27 Jan 2009 18:19:38 -0600
From: Rick Matthews <Richard.Matthews@Sun.COM>
Subject: Re: Virtual Keyboard Input Method [PSARC/2009/041 FastTrack timeout
 01/28/2009]
In-reply-to: <200901220333.n0M3Xh6Z001659@sac.sfbay.sun.com>
Sender: Richard.Matthews@Sun.COM
To: Ienup Sung <is@sac.sfbay.sun.com>
Cc: PSARC-ext@Sun.COM, i18n-discuss@opensolaris.org
Reply-to: Richard.Matthews@Sun.COM
Message-id: <497FA49A.8000908@Sun.COM>
MIME-version: 1.0
Content-type: text/plain; format=flowed; charset=ISO-8859-1
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
References: <200901220333.n0M3Xh6Z001659@sac.sfbay.sun.com>
User-Agent: Thunderbird 2.0.0.16 (X11/20080807)
Status: RO
Content-Length: 12934

On 01/21/09 09:33 PM, Ienup Sung wrote:
> Template Version: @(#)sac_nextcase %I% %G% SMI
> This information is Copyright 2009 Sun Microsystems
> 1. Introduction
>     1.1. Project/Component Working Name:
> 	 Virtual Keyboard Input Method
>     1.2. Name of Document Author/Supplier:
> 	 Author:  Naoyuki Ishimura
>     1.3  Date of This Document:
> 	21 January, 2009
> 4. Technical Description
>
> OVERVIEW
>
> As an extension to the current IIIMF keyboard layout emulation feature [1],
> this project proposes to add GUI-based virtual keyboard on our desktop.
>
> Virtual keyboard is a graphical representation of computer keyboard on
> GUI desktop that can be summoned on as needed based on the current input
> mode and can be used to input characters by clicking on the graphically
> represented keys on the virtual keyboard.
>
> The virtual keyboard that will be delivered by this project will not only
> supply an additional way of inputting characters (by clicking on the keys on
> the virtual keyboard), but also allow individual users to create a new
> keyboard layout as a new emulation based input mode or customize the current
> and existing keyboard layout as needed so that they can re-map keys, assign
> a different character (or a set of characters) on a key, or do both on
> the current keyboard layout and keys.
>
> Once customized layout is saved with your specified name, it can be used
> persistently. User can create as many as custom layout they wish; and they
> will be usable for both at the virtual keyboard and, if chosen so, also
> with the physical keyboard.
>
> This feature has been asked by US government and EMEA customers specifically
> for Unicode/UTF-8 locales to aid multiscript input and also to allow user
> customization of the keyboard layouts. As we do not add any new features to
> CDE, in the same manner and context, we do not plan to back-port this to
> legacy codeset locales at this point unless we have a requirement with
> some specific revenue number attached. We also consider that the existing
> input modes and methods quite good enough and sufficient for such legacy
> codeset locales.
>
> Once approved by PSARC, we will also go through xDesign/HCI review so that
> the resulting GUI will meet Sun standard and be intuitive as much as possible.
>
>
> TECHNICAL DETAILS
>
> (1) User Interface:
>
> The virtual keyboard [9] which can be invoked from terminals or GUI desktop    |
> menu has keyboard window and control panel as its main user interface          |
> components:                                                                    |
>
> - Keyboard window:
>
>   This will be the main interface that users will use to see and interact
>   with to input characters and also to customize with.
>
>   Users can have and use multiple keyboard windows on their desktop.
>   In terms of how to group and organize such multiple keyboard windows,
>   there will be three different styles that one can choose from: stand-alone,
>   internal frame, and tab styles. (For more details, please see the sub-section
>   on the control panel at below.)
>
>   Each keyboard window will show a keyboard layout with usual character and
>   modifier keys based on the XKB symbol and geometry data of the current
>   input mode. Users can select a specific XKB symbol, an XKB geometry, or
>   both, such as "US/English" symbol, "Generic 101" geometry, and so on.
>   [10, 11, 12]
>
>   A character key will act like a push button and a modifier key will act
>   like a toggle button as specified in the XKB data. Each key will show the
>   currently effective character(s) based on the combined state of the key
>   with the modifier keys. As an example, if Caps Lock key is in effect,
>   the key for 'a' will show 'A'. (Please see "Appendix A: Visual effect with
>   modifier keys" at pages 4 and 5 of [10].)
>
>   The character(s) shown on the keys will also be customizable.
>
>   When the keyboard window's context menu is brought up by clicking on         |
>   the right mouse button at the window, one can also choose to show or hide    |
>   the control panel, select symbol data, edit keys, and do some other          |
>   convenience operations directly. [11]                                        |
>
> - Control panel:
>
>   The control panel can be used to control keyboard window style and mode
>   among other things as shown in [12].
>   
>   The style defines how keyboard windows are organized. As noted at the above
>   sub-section, the following three different styles will be supported:
>
>   -- Stand-alone frame style: Each keyboard will be displayed as a separate
>      top-level window.
>
>   -- Internal frame style: One or more keyboards will be displayed within
>      a top-level container window as internal frame windows.
>
>   -- Tab frame style: Each keyboard will be displayed in a tab pane of
>      a top-level container window.
>
>   Please see "Appendix B: Multiple view with different styles" at pages 5 and
>   6 at [10] for a couple of concept designs.
>
>   The mode defines whether keyboard windows are in input mode or in
>   design mode (i.e., edit or customization mode). When the current mode is in
>   input mode, if one clicks on a key, associated character(s) will go to
>   an application that had the input focus the last. While it is in design
>   mode, users can edit the keyboard layout and keys for a customization.
>
>   When "New Keyboard" button is pressed along with selections on symbol and
>   geometry, a new keyboard layout (and thus a new input mode) can be created
>   and saved.
>
>   There will be also a check box for "Synchronize with physical keyboard"
>   which can be used to instruct the current keyboard layout emulation input
>   mode to follow the customized keyboard layout and keys on the virtual
>   keyboard window.
>
>   As noted earlier, some of the operations on the control panel can also be
>   done via the context menu of the keyboard window.
>
> (2) Keyboard customization and keyboard data handling:
>
> When it is in design mode, the keyboard window will be used as the keyboard
> layout editor. For each key, users can specify a character or a set of
> characters by using an associated text field or by doing copy or swap          |
> operations via drag-and-drop. (Using the same drag-and-drop, the copy          |
> operation is done between two keyboards and the swap is done within            |
> a single keyboard.)                                                            |
>
> When a user creates his own keyboard layout (symbol) data, it will be saved in
> the user's own directory ($HOME/.iiim/vkb/) as an XML file. It will have user
> specified layout name and will be sent to the input method server. (Similar
> effect will also take place if one customizes an existing keyboard layout.)
>
> At that time, input method switcher [2] will be notified to update its
> language list to include the newly created keyboard layout so that the user
> can select it from the input method switcher menu afterward.
>
> To make the customization persistent, it is one of the responsibilities of
> the IIIM start-up client program (/usr/lib/iiim/iiimx-settings-init) which
> will send the custom keyboard layout data, if any, to the input method server
> at the start of a new GUI desktop session.
>
> (3) Input mechanism on character(s):
>
> The character(s) from a virtual keyboard is passed as input method committed
> text to other applications. What that means is that the virtual keyboard
> generated text data can be any Unicode character or text and will not be
> restricted to XKeyEvent data of X11.
>
> 	[Virtual keyboard]
> 		|
> 		|
>            character(s)
> 		|
> 		|     +--character(s)--> [GUI client with last input focus]
>                 V    /
>        [Input Method Server]
>
> (4) Pre-defined keyboard symbol and geometry data:
>
> Virtual keyboard has pre-defined geometry and symbol data set that came from
> XKB geometry and symbol data [1]. As of today, they are stored separately in
> IIIM private directory and thus, during run-time, it does not need X11 XKB.
> The symbol data are shared with IIIMF keyboard layout emulation functionality.
>
> As previously discussed during the review of [1], once we have a set of
> interfaces established between IM and Xlib/X servers (especially Xorg and
> Xnewt) on the XKB operations, we will transparently replace this redundant
> component by using the future interfaces between the IM and the X servers
> so that there will be a single set of XKB data in the system for the above
> mentioned system components.
>
> (5) Candidates for future enhancement:
>
> The first implementation from this project will not include the following.
> They are possible candidates for future enhancement and we will come back
> again with new PSARC case(s) as needed:
>
> - System-wide availability of custom layout:
>   Currently, the customized layout data is only for and per user.
>   System-wide customization will be considered when there is a formal
>   requirement.
>
> - Function keys and other features of physical keyboards:
>   The virtual keyboard input method at this point aims only at character
>   input. Emulating all functionalities of physical keyboard is not currently
>   considered. Thus function key support and such will be considered when
>   it is formally required.
>
>
> INTERFACE STABILITY
>
> There is no significantly notable interfaces imported. The project exports
> the following interfaces.
>
>     Interfaces                      Stability        Note
>     ----------                      ---------        ----
>     /usr/bin/iiim-keyboard          Committed        Virtual keyboard itself [9]
>
>     /usr/lib/iiim/VKB.jar           Project Private  Virtual keyboard jar file
>
>     /usr/lib/iiim/libiiimvkb_jni.so Project Private  Virtual keyboard lib file
>
>     /etc/iiim/geometry.vkz          Project Private  Virtual keyboard private
> 						     data file
>
>     /usr/share/gnome/help/iiim-keyboard/*            GUI help file
> 				    Project Private 
>
>     $HOME/.iiim/vkb/*               Project Private  Customized data
>
>
> RELEASE BINDING
>
> The project team asks for Micro/Patch release binding.
>
>
> REFERENCES
>
> [1] PSARC 2007/028 EMEA input methods with keyboard layout emulation
> [2] PSARC 2005/525 IIIMF upgrade to revision 12
> [3] Internet/Intranet Input Method Architecture:
>         http://www.openi18n.org/subgroups/im/iiimf/whitepaper/whitepaper.html
>     The same HTML file will be available at the case directory:
>         http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/iiimf-whitepaper.html
> [4] Internet-Intranet Input Method Protocol (IIIMP) specification:
>         http://www.openi18n.org/subgroups/im/iiimf/protocol/spec.html
>     The same HTML file will be available at the case directory:
>         http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/iiimp-spec.html
> [5] ASARC 1999/276 /usr/lib/im directory for platform independent Input Method
>     Systems
> [6] ASARC 1998/515 Multi Script Input Support in UTF-8 locales
> [7] ASARC 1998/422 IIIMP - Internet/Intranet Input Method Protocol
> [8] ASARC 1997/359 Multilingual Input Method Server for X/Java/Corba
> [9] iiim-keyboard(1) man page:
>         http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/iiim-keyboard.1
> [10] High-level Virtual Keyboard UI/Module design (v0.2):
> 	http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/VKB_design_02.pdf
> [11] Draft keyboard window screen snapshots:
> 	http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/Keyboard.png
> 	http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/Input-mode-context-menu.png
> 	http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/Edit-mode-context-menu.png
> [12] Draft control panel window screen dump:
> 	http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/ControlPanel.png
>
> 6. Resources and Schedule
>     6.4. Steering Committee requested information
>    	6.4.1. Consolidation C-team Name:
> 		G11N
>     6.5. ARC review type: FastTrack
>     6.6. ARC Exposure: open
>
>   
A couple of minor nits in VKB_design02.pdf

On page 3, first sentence after the "Virtual Keyboard" header:
    "the the"
On page 4, right before the diagram:
    "copy/past" -> "copy/paste"?

Otherwise, +1

-- 
---------------------------------------------------------------------
Rick Matthews                           email: Rick.Matthews@sun.com
Sun Microsystems, Inc.                  phone:+1(651) 554-1518
1270 Eagan Industrial Road              phone(internal): 54418
Suite 160                               fax:  +1(651) 554-1540
Eagan, MN 55121-1231 USA                main: +1(651) 554-1500		
---------------------------------------------------------------------


From Ienup.Sung@Sun.COM Tue Jan 27 16:44:37 2009
Received: from sunmail3mpk.sfbay.sun.com (sunmail3mpk.SFBay.Sun.COM [129.146.11.52])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n0S0iaO2006084
	for <psarc-ext@sac.sfbay.sun.com>; Tue, 27 Jan 2009 16:44:36 -0800 (PST)
Received: from brm-avmta-1.central.sun.com (brm-avmta-1.Central.Sun.COM [129.147.4.11])
	by sunmail3mpk.sfbay.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2) with ESMTP id n0S0iaJw008794
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Tue, 27 Jan 2009 16:44:36 -0800 (PST)
Received: from pmxchannel-daemon.brm-avmta-1.central.sun.com by
 brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KE500J01OQCUC00@brm-avmta-1.central.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@Sun.COM); Tue, 27 Jan 2009 17:44:36 -0700 (MST)
Received: from sca-es-mail-1.sun.com ([192.18.43.132])
 by brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KE5000VXOQBZ1A0@brm-avmta-1.central.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@Sun.COM); Tue,
 27 Jan 2009 17:44:35 -0700 (MST)
Received: from fe-sfbay-09.sun.com ([192.18.43.129])
	by sca-es-mail-1.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n0S0iZ9e022033	for
 <PSARC-ext@Sun.COM>; Tue, 27 Jan 2009 16:44:35 -0800 (PST)
Received: from conversion-daemon.fe-sfbay-09.sun.com by fe-sfbay-09.sun.com
 (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007))
 id <0KE500E01OGIWH00@fe-sfbay-09.sun.com>
 (original mail from Ienup.Sung@Sun.COM)
 for PSARC-ext@Sun.COM (ORCPT PSARC-ext@Sun.COM); Tue,
 27 Jan 2009 16:44:35 -0800 (PST)
Received: from [192.168.1.93] ([129.150.19.10])
 by fe-sfbay-09.sun.com (Sun Java System Messaging Server 6.2-8.04 (built Feb
 28 2007)) with ESMTPSA id <0KE500LOCOQ3SPE0@fe-sfbay-09.sun.com> for
 PSARC-ext@Sun.COM (ORCPT PSARC-ext@Sun.COM); Tue,
 27 Jan 2009 16:44:28 -0800 (PST)
Date: Tue, 27 Jan 2009 16:41:58 -0800
From: Ienup Sung <Ienup.Sung@Sun.COM>
Subject: Re: Virtual Keyboard Input Method [PSARC/2009/041 FastTrack timeout
 01/28/2009]
In-reply-to: <497FA49A.8000908@Sun.COM>
Sender: Ienup.Sung@Sun.COM
To: PSARC-ext@Sun.COM
Cc: i18n-discuss@opensolaris.org
Reply-to: Ienup.Sung@Sun.COM
Message-id: <497FA9D6.70301@sun.com>
Organization: Sun Microsystems, Inc.
MIME-version: 1.0
Content-type: text/plain; format=flowed; charset=UTF-8
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
References: <200901220333.n0M3Xh6Z001659@sac.sfbay.sun.com>
 <497FA49A.8000908@Sun.COM>
User-Agent: Thunderbird 2.0.0.17 (X11/20081010)
Status: RO
Content-Length: 602

Thanks, Rick, for your +1.

Ienup

PS. The VKB_design02.pdf has been updated with the typo corrections and
placed at the same location.

Rick Matthews wrote at 01/27/09 16:19:
>>
>> REFERENCES
>>  ...snip...
>> [10] High-level Virtual Keyboard UI/Module design (v0.2):
>>     http://www.opensolaris.org/os/community/arc/caselog/2009/041/materials/VKB_design_02.pdf
>> ...snip...
> A couple of minor nits in VKB_design02.pdf
> 
> On page 3, first sentence after the "Virtual Keyboard" header:
>    "the the"
> On page 4, right before the diagram:
>    "copy/past" -> "copy/paste"?
> 
> Otherwise, +1
> 

From Ienup.Sung@sun.com Wed Jan 28 10:09:12 2009
Received: from sunmail5.uk.sun.com (sunmail5.UK.Sun.COM [129.156.85.165])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n0SI9Bm0007887
	for <psarc-ext@sac.sfbay.sun.com>; Wed, 28 Jan 2009 10:09:11 -0800 (PST)
Received: from nwk-avmta-2.sfbay.sun.com (nwk-avmta-2.SFBay.Sun.COM [129.145.155.6])
	by sunmail5.uk.sun.com (8.13.8+Sun/8.13.8/ENSMAIL,v2.2) with ESMTP id n0SI8pIM029732
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Wed, 28 Jan 2009 18:09:10 GMT
Received: from pmxchannel-daemon.nwk-avmta-2.sfbay.sun.com by
 nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KE700M0R139ET00@nwk-avmta-2.sfbay.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Wed, 28 Jan 2009 10:09:09 -0800 (PST)
Received: from sca-es-mail-1.sun.com ([192.18.43.132])
 by nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KE700LJX137ME10@nwk-avmta-2.sfbay.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Wed,
 28 Jan 2009 10:09:07 -0800 (PST)
Received: from fe-sfbay-09.sun.com ([192.18.43.129])
	by sca-es-mail-1.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n0SI97Ap019179	for
 <PSARC-ext@sun.com>; Wed, 28 Jan 2009 10:09:07 -0800 (PST)
Received: from conversion-daemon.fe-sfbay-09.sun.com by fe-sfbay-09.sun.com
 (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007))
 id <0KE700501104TG00@fe-sfbay-09.sun.com>
 (original mail from Ienup.Sung@Sun.COM)
 for PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Wed,
 28 Jan 2009 10:09:07 -0800 (PST)
Received: from [192.168.1.93] ([129.150.19.83])
 by fe-sfbay-09.sun.com (Sun Java System Messaging Server 6.2-8.04 (built Feb
 28 2007)) with ESMTPSA id <0KE700KG112TBWC0@fe-sfbay-09.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Wed,
 28 Jan 2009 10:08:58 -0800 (PST)
Date: Wed, 28 Jan 2009 10:06:23 -0800
From: Ienup Sung <Ienup.Sung@sun.com>
Subject: Re: Virtual Keyboard Input Method [PSARC/2009/041 FastTrack timeout
 01/28/2009]
In-reply-to: <497FA9D6.70301@sun.com>
Sender: Ienup.Sung@sun.com
To: PSARC-ext@sun.com
Cc: i18n-discuss@opensolaris.org
Reply-to: Ienup.Sung@sun.com
Message-id: <49809E9F.8070204@sun.com>
Organization: Sun Microsystems, Inc.
MIME-version: 1.0
Content-type: text/plain; format=flowed; charset=UTF-8
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
References: <200901220333.n0M3Xh6Z001659@sac.sfbay.sun.com>
 <497FA49A.8000908@Sun.COM> <497FA9D6.70301@sun.com>
User-Agent: Thunderbird 2.0.0.17 (X11/20081010)
Status: RO
Content-Length: 56

This case was approved at today's PSARC meeting.

Ienup

From Ienup.Sung@sun.com Thu Feb 12 19:00:43 2009
Received: from sunmail3mpk.sfbay.sun.com (sunmail3mpk.SFBay.Sun.COM [129.146.11.52])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n1D30h7n027294
	for <psarc-ext@sac.sfbay.sun.com>; Thu, 12 Feb 2009 19:00:43 -0800 (PST)
Received: from nwk-avmta-1.SFBay.Sun.COM (nwk-avmta-1.SFBay.Sun.COM [129.146.11.74])
	by sunmail3mpk.sfbay.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2) with ESMTP id n1D30gsD015030
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Thu, 12 Feb 2009 19:00:43 -0800 (PST)
Received: from pmxchannel-daemon.nwk-avmta-1.sfbay.Sun.COM by
 nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KEZ00A0BHP7JK00@nwk-avmta-1.sfbay.Sun.COM> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Thu, 12 Feb 2009 19:00:43 -0800 (PST)
Received: from sca-es-mail-2.sun.com ([192.18.43.133])
 by nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KEZ000F4HP6A590@nwk-avmta-1.sfbay.Sun.COM> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Thu,
 12 Feb 2009 19:00:42 -0800 (PST)
Received: from fe-sfbay-10.sun.com ([192.18.43.129])
	by sca-es-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n1D30gRM011459	for
 <PSARC-ext@sun.com>; Thu, 12 Feb 2009 19:00:42 -0800 (PST)
Received: from conversion-daemon.fe-sfbay-10.sun.com by fe-sfbay-10.sun.com
 (Sun Java(tm) System Messaging Server 7.0-3.01 64bit (built Dec 23 2008))
 id <0KEZ00700HCU1N00@fe-sfbay-10.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Thu, 12 Feb 2009 19:00:42 -0800 (PST)
Received: from [192.168.1.93] ([unknown] [129.150.19.95])
 by fe-sfbay-10.sun.com
 (Sun Java(tm) System Messaging Server 7.0-3.01 64bit (built Dec 23 2008))
 with ESMTPSA id <0KEZ008U4HP5RK80@fe-sfbay-10.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Thu, 12 Feb 2009 19:00:42 -0800 (PST)
Date: Thu, 12 Feb 2009 18:59:53 -0800
From: Ienup Sung <Ienup.Sung@sun.com>
Subject: Re: Virtual Keyboard Input Method [PSARC/2009/041 FastTrack timeout
 01/28/2009]
In-reply-to: <49809E9F.8070204@sun.com>
Sender: Ienup.Sung@sun.com
To: PSARC-ext@sun.com
Cc: i18n-discuss@opensolaris.org, Frank.Ludolph@sun.com
Reply-to: Ienup.Sung@sun.com
Message-id: <4994E229.30004@sun.com>
Organization: Sun Microsystems, Inc.
MIME-version: 1.0
Content-type: text/plain; format=flowed; charset=UTF-8
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
References: <200901220333.n0M3Xh6Z001659@sac.sfbay.sun.com>
 <497FA49A.8000908@Sun.COM> <497FA9D6.70301@sun.com> <49809E9F.8070204@sun.com>
User-Agent: Thunderbird 2.0.0.17 (X11/20081010)
Status: RO
Content-Length: 3463

Resulting from the xDesign/HCI review between the xDesign and
the project team, I'd like to amend the GUI portion of the spec
with the text shown at the end of this email which is also saved at
the materials directory of the case as spec-gui-amendment.txt.

Considering that the change is only on the GUI as notified previously
and everything else stays the same, I'm not resetting the review timer on
this approved case. If you have different idea on that, please let me
know and I'll reset the review timer.

For any similar future cases requiring new GUI/CUI, we will try to do
the xDesign/HCI reviews first.

Ienup

								2/12/2009
Amendment: GUI Specification for PSARC/2009/041
-----------------------------------------------

Based on the xDesign/HCI review between Frank Ludolph (xDesign) and
Naoyuki Ishimura (project team), the GUI portion of the spec.txt at
the same directory is amended as like the following:

* Remove the control panel. Everything will be done from the pop-up menu.

* The supported styles have been reduced to two: single and tabbed frame
   styles.

* Pop-up menu {menu item > [sub menu] (comment)}
     o Show Keyboard > [list of predefined and user created keyboards]
       (Displays selected keyboard based on Show multiple keyboards setting
       below.)
     o Hide Keyboard  (Disabled if Display Multiple Keyboards is not checked)
     o Display Multiple Keyboards (a checkmark item. Off: single frame;
       On: tabbed frame. Off by default)
     o --------
     o Symbols > [Albanian, Arabic, ...]  (a temporary change to the current
       keyboard unless saved. Displays current keyboard symbol set when
       submenu is initially opened.)
     o Layout > [Generic 101, Generic 102, ...]  (a temporary change to
       the current keyboard unless saved. Displays current keyboard layout
       when submenu is initially opened.)
     o Edit Key...  (Opens the keyboard in a separate, non-modal dialog window.
       Key editing works as described in the manual. The dialog has Cancel,
       Save, and Save As... buttons. Save is disabled if editing a pre-defined
       keyboard.)
     o ---------
     o Synchronize with Physical Keyboard (a checkmark item); default off)
     o ---------
     o Save Keyboard  (saves the current keyboard symbols and layout under
       the keyboards name. Enabled only for user defined keyboard that have
       had Symbols and/or Layout have been changed)
     o Save Keyboard As...  (Enabled only if the current keyboard Symbols
       and/or Layout have been changed. Displays keyboard naming dialog)
     o Delete   (asks to confirm deletion of current keyboard by keyboard
       name. Disabled for static, predefined keyboards)

* Initially, the sub menu items will list only pre-defined. Once user
   creates user-defined, then, the sub menu items will list
   user-defined, spacer/separator, and pre-defined and in that order.

   The sub menu items (within each set of user-defined and pre-defined)
   will be sorted in the current locale's collation order.

* Frank and Naoyuki will think about if there are better labels than the
   current "Layout" menu item label at the pop-up menu for a couple of
   days. (Tentatively and by default, the "Layout" will be used.)

* The labels on the keyboard such as Shift, Tab, Caps Lock, Win, AltGr,
   and so on will get a bigger font size or something similar so that
   they will be more easily recognizable.

END_OF_MEMO.

