The present invention relates in general to interactive graphical computing environment. More particularly, the present invention relates to methods and apparatus for optimizing a transparent window.
Many early operating systems (i.e., MS DOS) could only run a single application. It was therefore possible, if not necessary, to allow the application to be directly coupled to the computer's hardware resources, such as the keyboard and video display. Primarily comprising a text-based interface, these applications received relatively little assistance from the operating system. For example, the application would directly poll the keyboard for any user keystrokes.
In contrast, most modern graphical operating systems (i.e. Microsoft Windows, Linux, MacOS, etc.) can simultaneously run multiple applications. Hence some sort of shared messaging system must be used to preclude resource sharing conflicts. User input is no longer polled by the application, but rather the application registers with the operating system, usually during installation, describing the forms of input that it would like to receive. The operating system, in turn, forwards messages to the application as appropriate. Likewise, any output to the display area or printer was also routed through the message system to the appropriate portion of the operating system (i.e., the typing of text, the scrolling of a mouse, or the resizing of the application window).
Display windows are common characteristic of most graphical operating systems. A window is a virtual entity, commonly referred to as a control, positioned on a computer display, for presenting the interaction between the user and the computer. The typical application has a single rectangular window displayed on the screen. However, some applications open multiple windows, and others permit arbitrarily shaped windows (not just rectangles) and windows of various styles and colors.
Computer platforms are also becoming smaller, faster, mobile, and more ubiquitous. Mobile, handheld computers; computing appliances; and smart telephones allow computer support to be built into task situations. Such situations include new physical environments, where computers have been impractical up to now, and also new social environments, where, previously, computers imposed a formidable barrier to social interaction. However, traditional user interface devices can be problematic. Keyboards are often awkward and bulky to carry, while the mouse (and other cursor-based input) is generally not optimized for entering text efficiently.
Pen-based computing developed as an alternative means of user input, comprising the functions of both the keyboard and the stylus. Most pen-based devices allow annotation directly on the screen display, much like the annotation of a physical sheet of paper with a marker. Furthermore, these platforms may also convert a user's handwritten notes into computer recognized text and commands. Many pen-based devices also run existing applications. For example, the Microsoft TabletPC, based on the XP platform, can run just about any XP application,
However, most applications must generally be specifically designed to take advantage of pen-based user input. Many previously written applications, such as an Internet browser, often do not allow direct annotation in the browser window. For instance, if two users are visually sharing a browser application, such as with Microsoft NetMeeting, it may be difficult, if not impossible, for a user to annotate directly on the browser display area.
In view of the foregoing, there is desired a method and apparatus for optimizing pen-based annotations on a window of a software application.
The invention relates, in one embodiment, to a method for optimizing pen-based annotations on a non-pen enabled window. The method includes starting a visible non-pen-enabled window further including position indicia and size indicia; starting a transparent pen-enabled window; and associating the visible non-pen-enabled window with the transparent pen-enabled window based on the position indicia and size indicia. The method further includes aligning the transparent pen-enabled window with the visible non-pen-enabled window, and accepting user input comprising a message. If the message further includes pen indicia, the method also includes forwarding the message to the transparent pen-enabled window. Else, the method includes forwarding the message to the first application.
In another embodiment, the invention relates to an apparatus for pen-based annotations on a non-pen enabled window. The apparatus includes a means of starting a visible non-pen-enabled window further including position indicia and size indicia; a means of starting a transparent pen-enabled window; and a means of associating the visible non-pen-enabled window with the transparent pen-enabled window based on the position indicia and size indicia. The apparatus further includes a means of aligning the transparent pen-enabled window with the visible non-pen-enabled window, and a means of accepting user input comprising a message. If the message further includes pen indicia, the apparatus also includes a means of forwarding the message to the transparent pen-enabled window. Else, the apparatus includes a means of forwarding the message to the first application.
These and other features of the present invention will be described in more detail below in the detailed description of the invention and in conjunction with the following figures.
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
The present invention will now be described in detail with reference to a few preferred embodiments thereof as illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process steps and/or structures have not been described in detail in order to not unnecessarily obscure the present invention. The features and advantages of the present invention may be better understood with reference to the drawings and discussions that follow.
In accordance with one embodiment of the present invention, a transparent window is advantageously employed to optimize pen-based annotation on a window of a software application.
Many software applications, including the operating system itself, comprise a set of windows. The Microsoft Windows desktop, for instance, functions as a large window. Normally, the operating system maintains and provides spatial information for each window in its desktop area. As windows overlap each other (e.g. windows have a Z order relative to the user), each application responds by redrawing its own window (or portion thereof) when unobstructed.
Most modern operating systems, like Linux, are also event driven. Rather than being a based upon a constant course of action (i.e., MS DOS), various system events are handled by a set of operating system routines. For example, the movement of a mouse or the redrawing of a screen. At the core is a loop—a portion of code that gets executed time and again throughout the life of the program. The sole job of the main loop, often called a message pump, is to make sure that events get handled, such as being forwarded to the appropriate program.
Messages are used for most basic interactions between applications and the operating system. If a user wants a window or control (which is just a specialized window) to do something, a message is sent. If an event happens such as the user typing on the keyboard, moving the mouse, clicking a button, then messages are sent by the system to the windows affected. If the message is not recognized, it is often ignored.
For example, in Microsoft Windows, a simplified example of the message pump is:
The message loop calls GetMessage( ), which looks in a message queue. When an event occurs causing a message to be added to the queue (i.e., a mouse click). GetMessages( ) returns a positive value indicating there is a message to be processed, and places the appropriate information into the Message variable. It is then passed to TranslateMessage( ) for additional processing (i.e., translating virtual key messages into character messages). The message is then passed to DispatchMessage( ) which determines the window for which it is intended. It then forwards a message to the application associated with the window, sending the handle of the window, the original received message, and other parameters. A handle is a unique identifier or pointer that is used to access an object, similar to an index number. Whenever a program or resource needs to access another resource, its presents the handle to the appropriate application programming interface, or API.
In order to substantially mimic the behavior of a regular pen, pen-based computer input generally must account for additional attributes, such as the angle of the pen, pressure on the writing surface, pen speed, steadiness, in-air movements, and others. Traditional operating systems generally, however, do not generally expose or use these pen characteristics. For example, with Microsoft Windows XP Tablet PC Edition, the infrastructure that makes the pen work consists of a pen service that sends out system or pen events that correspond to pen actions. The service determines whether the destination is a pen-enabled application or a mouse-enabled application, or whether the destination is a control or a window within an application. The service then sends a mouse message to the mouse application or control or both mouse and pen messages to a pen-enabled application.
In a non-obvious manner, the current invention allows a transparent pen-enabled window to be superimposed upon a non-pen-enabled window. In a fashion similar to laying a sheet of transparency over a sheet of paper, the user can make annotations on the transparent pen-enabled window directly over displayed elements of the underlying window. For example, a user could directly annotate on an existing presentation application, such as on a Microsoft PowerPoint slide. In one embodiment, the non-pen-enabled window is included in a collaboration application, such as with Microsoft NetMeeting. In another embodiment, a single application comprises both the transparent pen-enabled window and a non-pen-enabled window, such as with Iteration Active Studio or Active Viewer. In yet another embodiment, a first application including a transparent pen-enabled window is coupled to a second application including a non-pen-enabled window.
The first application may register itself with the operating system, requesting receipt of all pen messages generated by the user on the transparent window. These messages can describe pen angle, writing surface pressure, pen speed, etc. In one embodiment, the messages can be converted to a bitmap. In another embodiment, the messages are converted to a set of Bezier curves for efficient storage. In another embodiment, the messages are converted to a Microsoft Ink format. In another embodiment, the messages are converted to computer-readable characters through a handwriting recognition process.
Messages not relevant to the first application are ignored and subsequently received and processed by the second application in a normal fashion. For example, when a user selects a button control on the second application, a mouse click message is generated. The first application's transparent window, positioned before the second application's visible window, receives the mouse click message. Since it is not interested in mouse click messages, the message is instead is returned to the message pump. It is subsequently ignored by the first application, and received by the second application, wherein the mouse click message is associated with the button control. The screen is refreshed, and the user sees the appropriate button selection behavior (e.g. the mouse control being depressed and released).
In order to synchronize its movement to the underlying visible window, the first application requests the position and size of the visible window from the operating system. As the underlying visible window subsequently moves, or is resized, the pen-enabled transparent window moves or resizes as well. Furthermore, the first application can instruct the second application to redraw itself, through a refresh message, whenever a portion of the window becomes obstructed or unobstructed by another window, other than the transparent window, on the desktop.
Referring now to
In a non obvious fashion, the first application captures an image of the visible non-pen enabled window, effectively making the previously transparent window opaque. The user can then annotate on this opaque window as before. In one embodiment, when the user desires to access controls on the visible non-pen enabled window, the opaque window becomes transparent and moves behind the visible non-pen enabled window. In another embodiment, when the user desires to access controls on the visible non-pen enabled window, the opaque window is moved off the visible desktop.
Referring now to
Referring now to
Referring now to
While this invention has been described in terms of several preferred embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. For example, although reference is given to the Microsoft TabletPC, it should be understood that the invention can also integrate with other computer platforms and operating systems. It should also be noted that there are many alternative ways of implementing the apparatuses of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention.
Advantages of the invention include optimizing pen-based annotations on a window of a software application. Additional advantages enhancing existing non-pen-based applications with pen annotation capability.
Having disclosed exemplary embodiments and the best mode, modifications and variations may be made to the disclosed embodiments while remaining within the subject and spirit of the invention as defined by the following claims.
Number | Name | Date | Kind |
---|---|---|---|
5033009 | Dubnoff | Jul 1991 | A |
5510980 | Peters | Apr 1996 | A |
5553215 | Kaethler | Sep 1996 | A |
5592608 | Weber et al. | Jan 1997 | A |
5613131 | Moss et al. | Mar 1997 | A |
5615362 | Jensen et al. | Mar 1997 | A |
5654726 | Mima et al. | Aug 1997 | A |
5721847 | Johnson | Feb 1998 | A |
5754774 | Bittinger et al. | May 1998 | A |
5758337 | Hammond | May 1998 | A |
5765164 | Prasad et al. | Jun 1998 | A |
5778372 | Cordell et al. | Jul 1998 | A |
5781911 | Young et al. | Jul 1998 | A |
5784275 | Sojoodi et al. | Jul 1998 | A |
5787409 | Seiffert et al. | Jul 1998 | A |
5809267 | Moran et al. | Sep 1998 | A |
5812840 | Shwartz | Sep 1998 | A |
5831609 | London et al. | Nov 1998 | A |
5831615 | Drews et al. | Nov 1998 | A |
5857201 | Wright, Jr. et al. | Jan 1999 | A |
5862325 | Reed et al. | Jan 1999 | A |
5864669 | Osterman et al. | Jan 1999 | A |
5893126 | Drews et al. | Apr 1999 | A |
5893150 | Hagersten et al. | Apr 1999 | A |
5898434 | Small et al. | Apr 1999 | A |
5918009 | Gehani et al. | Jun 1999 | A |
5922044 | Banthia | Jul 1999 | A |
5926177 | Hatanaka et al. | Jul 1999 | A |
5928327 | Wang et al. | Jul 1999 | A |
5930794 | Linenbach et al. | Jul 1999 | A |
5943620 | Boltz et al. | Aug 1999 | A |
5974236 | Sherman | Oct 1999 | A |
6023694 | Kouchi et al. | Feb 2000 | A |
6025844 | Parsons | Feb 2000 | A |
6035324 | Chang | Mar 2000 | A |
6038558 | Powers et al. | Mar 2000 | A |
6055548 | Comer et al. | Apr 2000 | A |
6070197 | Cobb et al. | May 2000 | A |
6073242 | Hardy et al. | Jun 2000 | A |
6075530 | Lucas et al. | Jun 2000 | A |
6088481 | Okamoto et al. | Jul 2000 | A |
6092102 | Wagner | Jul 2000 | A |
6094681 | Shaffer et al. | Jul 2000 | A |
6112236 | Dollin et al. | Aug 2000 | A |
6170019 | Dresel et al. | Jan 2001 | B1 |
6175859 | Mohler | Jan 2001 | B1 |
6185582 | Zellweger et al. | Feb 2001 | B1 |
6189069 | Parkes et al. | Feb 2001 | B1 |
6201539 | Miller et al. | Mar 2001 | B1 |
6204846 | Little et al. | Mar 2001 | B1 |
6205474 | Hurley | Mar 2001 | B1 |
6208990 | Suresh et al. | Mar 2001 | B1 |
6233578 | Machihara et al. | May 2001 | B1 |
6239797 | Hills et al. | May 2001 | B1 |
6240444 | Fin et al. | May 2001 | B1 |
6243698 | Powers et al. | Jun 2001 | B1 |
6243713 | Nelson et al. | Jun 2001 | B1 |
6256649 | Mackinlay et al. | Jul 2001 | B1 |
6256676 | Taylor et al. | Jul 2001 | B1 |
6269393 | Yost et al. | Jul 2001 | B1 |
6292803 | Richardson et al. | Sep 2001 | B1 |
6301601 | Helland et al. | Oct 2001 | B1 |
6304546 | Natarajan et al. | Oct 2001 | B1 |
6314463 | Abbott et al. | Nov 2001 | B1 |
6317737 | Gorelik et al. | Nov 2001 | B1 |
6336135 | Niblett et al. | Jan 2002 | B1 |
6341312 | French et al. | Jan 2002 | B1 |
6348933 | Walls et al. | Feb 2002 | B1 |
6363363 | Haller et al. | Mar 2002 | B1 |
6393421 | Paglin | May 2002 | B1 |
6397217 | Melbin | May 2002 | B1 |
6430576 | Gates et al. | Aug 2002 | B1 |
6449344 | Goldfinger et al. | Sep 2002 | B1 |
6467052 | Kaler et al. | Oct 2002 | B1 |
6480847 | Linenbach et al. | Nov 2002 | B1 |
6501956 | Weeren et al. | Dec 2002 | B1 |
6510457 | Ayukawa et al. | Jan 2003 | B1 |
6513047 | Talley | Jan 2003 | B1 |
6519568 | Harvey et al. | Feb 2003 | B1 |
6523046 | Liu et al. | Feb 2003 | B2 |
6532465 | Hartley et al. | Mar 2003 | B2 |
6542165 | Ohkado | Apr 2003 | B1 |
6567796 | Yost et al. | May 2003 | B1 |
6567814 | Bankier et al. | May 2003 | B1 |
6574618 | Eylon et al. | Jun 2003 | B2 |
6574639 | Carey et al. | Jun 2003 | B2 |
6591277 | Spence et al. | Jul 2003 | B2 |
6591278 | Ernst | Jul 2003 | B1 |
6598167 | Devine et al. | Jul 2003 | B2 |
6606596 | Zirngibl et al. | Aug 2003 | B1 |
6640234 | Coffen et al. | Oct 2003 | B1 |
6647272 | Asikainen | Nov 2003 | B1 |
6651055 | Kilmer et al. | Nov 2003 | B1 |
6651142 | Gorelik et al. | Nov 2003 | B1 |
6687360 | Kung et al. | Feb 2004 | B2 |
6701485 | Igra et al. | Mar 2004 | B1 |
6714982 | McDonough et al. | Mar 2004 | B1 |
6731314 | Cheng et al. | May 2004 | B1 |
6745193 | Horvitz et al. | Jun 2004 | B1 |
6775267 | Kung et al. | Aug 2004 | B1 |
6782424 | Yodaiken | Aug 2004 | B2 |
6789083 | Thelen | Sep 2004 | B2 |
6832341 | Vijayan | Dec 2004 | B1 |
6870830 | Schuster et al. | Mar 2005 | B1 |
6898625 | Henry et al. | May 2005 | B2 |
6901592 | Mar et al. | May 2005 | B2 |
6907422 | Predovic | Jun 2005 | B1 |
6915457 | Miller | Jul 2005 | B1 |
6920607 | Ali et al. | Jul 2005 | B1 |
6937713 | Kung et al. | Aug 2005 | B1 |
6938221 | Nguyen | Aug 2005 | B2 |
6941345 | Kapil et al. | Sep 2005 | B1 |
6941351 | Vetrivelkumaran et al. | Sep 2005 | B2 |
6954757 | Zargham et al. | Oct 2005 | B2 |
6954902 | Noma et al. | Oct 2005 | B2 |
6996768 | Elo et al. | Feb 2006 | B1 |
7003568 | Chikada et al. | Feb 2006 | B1 |
7003731 | Rhoads et al. | Feb 2006 | B1 |
7024474 | Clubb et al. | Apr 2006 | B2 |
7028092 | MeLampy et al. | Apr 2006 | B2 |
7031314 | Craig et al. | Apr 2006 | B2 |
7032006 | Zhuk | Apr 2006 | B2 |
7058953 | Willard et al. | Jun 2006 | B2 |
7096432 | Huapaya et al. | Aug 2006 | B2 |
7113964 | Bequet et al. | Sep 2006 | B1 |
7120139 | Kung et al. | Oct 2006 | B1 |
7171473 | Eftis et al. | Jan 2007 | B1 |
7174339 | Wucherer et al. | Feb 2007 | B1 |
7177909 | Stark et al. | Feb 2007 | B2 |
7197565 | Abdelaziz et al. | Mar 2007 | B2 |
7221658 | Armstrong et al. | May 2007 | B1 |
7222294 | Coffen et al. | May 2007 | B2 |
7243124 | Gardner et al. | Jul 2007 | B1 |
7243127 | Tabayoyon, Jr. et al. | Jul 2007 | B2 |
7272660 | Powers et al. | Sep 2007 | B1 |
7275215 | Werndorfer et al. | Sep 2007 | B2 |
7296217 | Earnshaw et al. | Nov 2007 | B1 |
7313617 | Malik et al. | Dec 2007 | B2 |
7359938 | Davies et al. | Apr 2008 | B1 |
7373428 | Armstrong et al. | May 2008 | B1 |
7386588 | Mousseau et al. | Jun 2008 | B2 |
7389351 | Horvitz | Jun 2008 | B2 |
7392478 | Aureglia et al. | Jun 2008 | B2 |
7401158 | Beauchamp et al. | Jul 2008 | B2 |
7406569 | Van de Waerdt | Jul 2008 | B2 |
7412481 | Nicholls et al. | Aug 2008 | B2 |
7412486 | Petrack et al. | Aug 2008 | B1 |
7412518 | Duigou et al. | Aug 2008 | B1 |
7412645 | Kotler et al. | Aug 2008 | B2 |
7426059 | Broda et al. | Sep 2008 | B2 |
7436947 | Ordille et al. | Oct 2008 | B2 |
7454423 | Powers et al. | Nov 2008 | B2 |
7487437 | Aureglia et al. | Feb 2009 | B2 |
20010034733 | Prompt et al. | Oct 2001 | A1 |
20010039616 | Kumagai et al. | Nov 2001 | A1 |
20010040945 | Fujino et al. | Nov 2001 | A1 |
20010049683 | Yoshikawa | Dec 2001 | A1 |
20010049721 | Blair et al. | Dec 2001 | A1 |
20020013853 | Baber et al. | Jan 2002 | A1 |
20020032602 | Lanzillo et al. | Mar 2002 | A1 |
20020038217 | Young | Mar 2002 | A1 |
20020057678 | Jiang et al. | May 2002 | A1 |
20020059472 | Wollrath et al. | May 2002 | A1 |
20020065894 | Dalal et al. | May 2002 | A1 |
20020078208 | Crump et al. | Jun 2002 | A1 |
20020083067 | Tamayo et al. | Jun 2002 | A1 |
20020083072 | Steuart | Jun 2002 | A1 |
20020103909 | Devine et al. | Aug 2002 | A1 |
20020107864 | Battas et al. | Aug 2002 | A1 |
20020107905 | Roe et al. | Aug 2002 | A1 |
20020107957 | Zargham et al. | Aug 2002 | A1 |
20020116362 | Li et al. | Aug 2002 | A1 |
20020120697 | Generous et al. | Aug 2002 | A1 |
20020120765 | Boehmke | Aug 2002 | A1 |
20020138640 | Raz et al. | Sep 2002 | A1 |
20020143710 | Liu | Oct 2002 | A1 |
20020152402 | Tov et al. | Oct 2002 | A1 |
20020165849 | Singh et al. | Nov 2002 | A1 |
20020178353 | Graham | Nov 2002 | A1 |
20020184187 | Bakalash et al. | Dec 2002 | A1 |
20020198985 | Fraenkel et al. | Dec 2002 | A1 |
20030004742 | Palmer et al. | Jan 2003 | A1 |
20030023691 | Knauerhase | Jan 2003 | A1 |
20030028682 | Sutherland | Feb 2003 | A1 |
20030028683 | Yorke et al. | Feb 2003 | A1 |
20030033329 | Bergman et al. | Feb 2003 | A1 |
20030071850 | Geidl | Apr 2003 | A1 |
20030088633 | Chiu et al. | May 2003 | A1 |
20030093585 | Allan | May 2003 | A1 |
20030101201 | Saylor et al. | May 2003 | A1 |
20030101223 | Pace et al. | May 2003 | A1 |
20030105837 | Kamen et al. | Jun 2003 | A1 |
20030112948 | Brown et al. | Jun 2003 | A1 |
20030115186 | Wilkinson et al. | Jun 2003 | A1 |
20030120805 | Couts et al. | Jun 2003 | A1 |
20030154177 | Holland et al. | Aug 2003 | A1 |
20030182428 | Li et al. | Sep 2003 | A1 |
20030182461 | Stelting et al. | Sep 2003 | A1 |
20030187971 | Uliano et al. | Oct 2003 | A1 |
20030204741 | Schoen et al. | Oct 2003 | A1 |
20030208543 | Enete et al. | Nov 2003 | A1 |
20030217081 | White et al. | Nov 2003 | A1 |
20030220860 | Heytens et al. | Nov 2003 | A1 |
20030229722 | Beyda | Dec 2003 | A1 |
20030235279 | Richomme | Dec 2003 | A1 |
20040002958 | Seshadri et al. | Jan 2004 | A1 |
20040010543 | Grobman | Jan 2004 | A1 |
20040019695 | Fellenstein et al. | Jan 2004 | A1 |
20040030762 | Silverthorne et al. | Feb 2004 | A1 |
20040039776 | Ballard | Feb 2004 | A1 |
20040039800 | Black et al. | Feb 2004 | A1 |
20040049477 | Powers et al. | Mar 2004 | A1 |
20040054802 | Beauchamp et al. | Mar 2004 | A1 |
20040060001 | Coffen et al. | Mar 2004 | A1 |
20040073596 | Kloninger et al. | Apr 2004 | A1 |
20040087300 | Lewis | May 2004 | A1 |
20040146044 | Herkerdorf et al. | Jul 2004 | A1 |
20040152477 | Wu et al. | Aug 2004 | A1 |
20040254998 | Horvitz | Dec 2004 | A1 |
20050004984 | Simpson | Jan 2005 | A1 |
20050055329 | Bakalash et al. | Mar 2005 | A1 |
20050086211 | Mayer | Apr 2005 | A1 |
20050102294 | Coldewey | May 2005 | A1 |
20050102611 | Chen | May 2005 | A1 |
20050125377 | Kotler | Jun 2005 | A1 |
20060089939 | Broda et al. | Apr 2006 | A1 |
20060161540 | Schmitz et al. | Jul 2006 | A1 |
20060206589 | Lentini et al. | Sep 2006 | A1 |
20080043256 | Broda et al. | Feb 2008 | A1 |
20080046505 | Netsch et al. | Feb 2008 | A1 |
20080046506 | Broda | Feb 2008 | A1 |
20080046510 | Beauchamp et al. | Feb 2008 | A1 |
20080046536 | Broda | Feb 2008 | A1 |
20080046556 | Nicholls et al. | Feb 2008 | A1 |
20080046568 | Broda et al. | Feb 2008 | A1 |
20080046803 | Beauchamp et al. | Feb 2008 | A1 |
20080077656 | Broda | Mar 2008 | A1 |
20080148289 | Nicholls et al. | Jun 2008 | A1 |
20080155020 | Beauchamp et al. | Jun 2008 | A1 |
20090031205 | Aureglia et al. | Jan 2009 | A1 |
20090037803 | Bauchot | Feb 2009 | A1 |
Number | Date | Country |
---|---|---|
WO 0163466 | Aug 2001 | WO |
Number | Date | Country | |
---|---|---|---|
20080046837 A1 | Feb 2008 | US |