DE60314563T2 - Überlagerung mit elektronischer Tinte - Google Patents

Überlagerung mit elektronischer Tinte Download PDF

Info

Publication number
DE60314563T2
DE60314563T2 DE60314563T DE60314563T DE60314563T2 DE 60314563 T2 DE60314563 T2 DE 60314563T2 DE 60314563 T DE60314563 T DE 60314563T DE 60314563 T DE60314563 T DE 60314563T DE 60314563 T2 DE60314563 T2 DE 60314563T2
Authority
DE
Germany
Prior art keywords
ink
window
inkoverlay
document
inkpicture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60314563T
Other languages
English (en)
Other versions
DE60314563D1 (de
Inventor
Alexander Kirkland Gounares
Steve Sammamish Dodge
Tobiasz A. Redmond Zielinski
Arin J. Woodinville Goldberg
Eugene A. Bellevue Tsimberg
Todd A. Woodinville Torset
Robert L. Sammamish Chambers
Timothy H. Bellevue Kannapel
Rudolph Redmond Balaz
Subha Bellevue Bhattacharyay
Manoj K. Bellevue Biswas
Bodin Bellevue Dresevic
Stephen A. Kenmore Fisher
Brigette E. Redmond Krantz
Shiraz M. Kenmore Somji
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of DE60314563D1 publication Critical patent/DE60314563D1/de
Application granted granted Critical
Publication of DE60314563T2 publication Critical patent/DE60314563T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/171Editing, e.g. inserting or deleting by use of digital ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04804Transparency, e.g. transparent or translucent windows

Description

  • GEBIET DER ERFINDUNG
  • Aspekte der vorliegenden Erfindung beziehen sich auf Verfahren und Einrichtungen zum Überlagern elektronischer Tinte im allgemeinen, und im besonderen auf eine anwendungsprogrammierende Schnittstelle, die einem Entwickler erlaubt, problemlos verschiedene tintenüberlagernde Eigenschaften zu nutzen.
  • HINTERGRUND
  • Typische Computersysteme, insbesondere Computersysteme, die Graphical User Interface (GUI) Systeme wie etwa Microsoft WINDOWS verwenden, sind zum Annehmen von einer Benutzer-Eingabe aus einer oder mehreren getrennten Eingabevorrichtungen optimiert, wie etwa einer Tastatur zur Texteingabe und einer Cursor-Vorrichtung wie etwa einer Maus mit einer oder mehreren Tasten zum Betrieb der Benutzer-Schnittstelle. Die allgegenwärtige Tastatur- und Maus-Schnittstelle sorgt für ein schnelles Erstellen und Modifizieren von Dokumenten, Kalkulationstabellen, Datenbankfeldern, Zeichnungen, Fotos und dergleichen. Indes gibt es eine signifikante Lücke in der Flexibilität, die Tastatur- und Maus-Schnittstelle zur Verfügung stellen, wenn man es mit dem nicht-computerisierten (d. h. Standard-)Verfahren mit Stift und Papier vergleicht. Mit dem Standardverfahren mit Stift und Papier bearbeitet ein Benutzer ein Dokument, schreibt Anmerkungen an einen Rand und zeichnet Bilder und andere Formen und dergleichen. In einigen Fällen mag ein Benutzer lieber einen Stift verwenden, um ein Dokument zu bearbeiten, als es auf dem Bildschirm durchzugehen, weil ihm das gestattet, Anmerkungen unbeschränkt außerhalb der Grenzen zu notieren, die ihm die Tastatur- und die Maus-Schnittstelle ziehen.
  • Einige Computersysteme erlauben einem Benutzer, auf einem Bildschirm zu zeichnen. Die Microsoft READER Anwendung zum Beispiel erlaubt einem Benutzer, einem Dokument elektronische Tinte (hierin auch „Tinte" genannt) hinzuzufügen. Das System speichert die Tinte und stellt sie bei Bedarf einem Benutzer zur Verfügung. Andere Anwendungen (zum Beispiel Zeichnungs-Anwendungen, wie man sie technisch im Zusammenhang mit den Palm 3.x und 4.x und PocketPC-Betriebssystemen kennt) erlauben die Erfassung und Speicherung von Zeichnungen. Außerdem können verschiedene Zeichnungs-Anwendungen wie etwa Coral Draw und Foto- und Bearbeitungsanwendungen wie etwa Photoshop mit Eingabeprodukten auf Griffelbasis, wie etwa das Wacom Tablet Product, verwendet werden. Diese Zeichnungen schließen weitere Eigenschaften ein, welche mit den Tintenstrichen assoziiert sind, die zum Erstellen der Zeichnungen verwendet werden. Zum Beispiel können mit der Tinte zugleich Liniendicke und Farbe gespeichert werden. Ein Ziel dieser Systeme ist es, das Aussehen und den Gesamteindruck materieller Tinte wiederzugeben, welche auf einem Blatt Papier aufgetragen wird. Indes kann materielle Tinte auf Papier eine beträchtliche Menge an Informationen aufweisen, die von der elektronischen Sammlung von Koordinaten- und Linienverbindungssegmenten nicht erfasst wird. Einige dieser Informationen können die Dicke der verwendeten Spitze des Stiftes (ersichtlich aus der Breite der materiellen Tinte) oder den Aufsetzwinkel des Stiftes auf dem Papier, die Form der Stiftspitze, die Geschwindigkeit, mit der die Tinte aufgetragen wurde, und dergleichen einschließen.
  • Ein weiteres Problem mit elektronischer Tinte ist aufgetreten. Sie gilt als Teil der Anwendung, in der sie geschrieben wird. Dies führt zu einem fundamentalen Unvermögen, die Ergiebigkeit elektronischer Tinte anderen Anwendungen oder Umgebungen zur Verfügung zu stellen. Während Text zwischen einer Vielzahl von Anwendungen (z. B. mittels Verwendung einer Grafik-Zwischenablage) portiert werden kann, hat Tinte nicht diese Fähigkeit, mit der Tinte interagieren zu können. Zum Beispiel könnte man nicht ein Bild einer Ziffer Acht erstellen, das erschaffene Bild kopieren und mittels der Grafik-Zwischenablage einem Dokument einkleben und dann die Tinte fettgedruckt erscheinen lassen. Eine Schwierigkeit ist die Nichtportabilität des Bildes zwischen Anwendungen.
  • N. J. Freehafer, „Handwriting Recognition in Office XP", Microsoft Product Services, 30. Juli 2006, offenbart die Einfügung eines handschriftlichen Datenfelds an einer Einfügungsstelle in einem Text. US 5 893 126 offenbart ein Verfahren und eine Einrichtung zur Annotierung eines Computer-Dokuments, unter Einbeziehung von Schall.
  • Das White Paper Dokument „Handwriting Recognition in Office XP" von Freehafer, N.J., 2001, beschreibt ein Handschrift-Erkennungsmerkmal, das das Eingeben von Text durch Schreiben anstatt durch Eintippen mithilfe eines digitalen Stifts und eines Tablets oder einer Maus ermöglicht. Der handgeschriebene Text wird in der Zeile in bestehendem Text eines Dokuments eingefügt.
  • Das US-Patent Nr. 5 893 126 offenbart ein Verfahren und eine Vorrichtung zum Annotieren eines Dokumentenfensters, in denen ein Annotationsfenster über einem Teil des Dokumentenfensters angezeigt wird. Das Annotationsfenster wird durch ein transparentes Fenster gebildet, wobei ein ausgewählter Teil des Dokuments durch das Annotationsfenster hindurch sichtbar ist,
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung stellt ein Verfahren zum Überlagern elektronischer Tinte auf einem Dokument in Übereinstimmung mit Anspruch 1 zur Verfügung. Aspekte der vorliegenden Erfindung stellen eine flexible und effiziente Schnittstelle zum Interagieren mit Eigenschaften, zum Aufrufen von Verfahren und/oder Empfangen von Ereignissen in Bezug auf elektronische Tinte zur Verfügung, wodurch eines oder mehrere der Probleme gelöst werden, die man mit herkömmlichen Einrichtungen und Systemen identifiziert. Einige Aspekte der vorliegenden Erfindung beziehen sich auf die Verbesserung des Inhalts von gespeicherter Tinte. Andere Aspekte beziehen sich auf die Modifizierung gespeicherter Tinte.
  • Es mag wünschenswert sein, es den Entwicklern zu ermöglichen, ihre schon bestehenden und neuen Anwendungen problemlos eine erstklassige Unterstützung für Tinteneigenschaften hinzuzufügen. Es ist auch wünschenswert, zur Aneignung eines konsistenten Aussehens und Gesamteindrucks tintenaktivierter Anwendungen zu ermutigen. Es kann z. B. wünschenswert sein, eine Unterstützung zum Schreiben und/oder Interagieren mit Dokumenten hinzufügen zu können, die normalerweise eine Tinten-Eingabe akzeptieren können oder nicht.
  • Diese und andere Eigenschaften der Erfindung sollen bei Erwägung der folgenden detaillierten Beschreibung bevorzugter Ausführungsformen ersichtlich werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorausgehende Zusammenfassung der Erfindung sowie die folgende detaillierte Beschreibung bevorzugter Ausführungsformen sind besser zu verstehen, wenn man sie in Verbindung mit den begleitenden Zeichnungen liest, welche hier nicht im Sinne einer Beschränkung hinsichtlich der beanspruchten Erfindung, sondern nur als Beispiele eingeschlossen sind.
  • 1 ist ein funktionales Blockdiagramm einer veranschaulichenden, allgemeinen Zwecken dienenden digitalen Computerumgebung, die zur Implementierung verschiedener Aspekte der Erfindung verwendet werden kann.
  • 2 ist eine Aufsichtsdarstellung eines veranschaulichenden Tablet-Computers mit Griffel, der in Übereinstimmung mit verschiedenen Aspekten der Erfindung verwendet werden kann.
  • 3 bis 6 sind funktionale Blockdiagramme von veranschaulichenden Architekturen und Schnittstellen, die in Übereinstimmung mit verschiedenen Aspekten der Erfindung verwendet werden können.
  • 7 bis 9 sind veranschaulichende Screenshots eines Dokuments mit einem oder mehreren Tintenüberlagerungsobjekten in Übereinstimmung mit verschiedenen Aspekten der Erfindung.
  • DETAILLIERTE BESCHREIBUNG VERANSCHAULICHEINDER AUSFÜHRUNGSFORMEN
  • Im folgenden wird beschrieben, auf welche Weise elektronische Tinte auf einem Dokument überlagert werden kann.
  • Allgemeine Computerplattformen
  • 1 ist ein funktionales Blockdiagramm am Beispiel einer herkömmlichen, allgemeinen Zwecken dienenden digitalen Computerumgebung, die dazu verwendet werden kann, verschiedene Aspekte der vorliegenden Erfindung zu implementieren. In 1 schließt ein Computer 100 eine Verarbeitungseinheit 110, einen Systemspeicher 120 und einen Systembus 130 ein, der verschiedene Systemkomponenten einschließlich des Systemspeichers mit der Verarbeitungseinheit 110 verbindet. Der Systembus 130 kann einer von mehreren Arten von Bus-Strukturen sein, einschließlich eines Speicherbusses oder eines Speicherkontrollers, eines peripheren Busses und eines lokalen Busses unter Verwendung einer aus mehreren verschiedenen Bus-Architekturen. Der Systemspeicher 120 schließt Read Only Memory (ROM) 140 und Random Access Memory (RAM) 150 ein.
  • Ein Basic Input/Output System 160 (BIOS), das die Basis-Routinen enthält, welche dabei helfen, im Computer 100 Information zwischen Elementen, etwa beim Start, zu übermitteln, wird in dem ROM 140 gespeichert. Der Computer 100 schließt außerdem ein Festplattenlaufwerk 170 zum Lesen und Beschreiben einer Festplatte (nicht abgebildet) ein, ein Laufwerk für eine magnetische Disk 180 zum Lesen oder Beschreiben einer entnehmbaren magnetischen Disk 190 sowie ein Laufwerk für eine optische Disk 191 zum Lesen und Beschreiben einer entnehmbaren optischen Disk 192, wie etwa einer CD-ROM oder anderer optischer Medien, ein. Das Festplattenlaufwerk 170, das Laufwerk für eine magnetische Disk 180 und das Laufwerk für eine optische Disk 180 191 sind mit dem System-Bus 130 mittels einer Schnittstelle für ein Festplattenlaufwerk 192, einer Schnittstelle für ein Laufwerk für eine magnetische Disk 193 beziehungsweise einer Schnittstelle für ein Laufwerk für eine optische Disk 194 verbunden. Die Laufwerke und die mit ihnen assoziierten computerlesbaren Medien stellen einen nichtflüchtigen Speicher von computerlesbaren Anweisungen, Datenstrukturen, Programm-Modulen und anderen Daten für den Personal Computer 100 zur Verfügung. Fachleute werden erkennen, dass andere Arten computerlesbarer Medien, die Daten speichern können, welche mittels einem Computer zugänglich sind, wie etwa magnetische Kassetten, Flash-Speicherkarten, digitale Video-Disks, Bernouilli-Kassetten, Random Access Memories (RAMs), Read Only Memories (ROMs) und dergleichen ebenfalls in der beispielhaften Umgebung verwendet werden können.
  • Eine Anzahl von Programm-Modulen kann auf dem Festplattenlaufwerk 170, auf der magnetische Disk 190, der optischen Disk 192, in dem ROM 140 oder RAM 150 gespeichert werden, einschließlich eines Betriebssystems 195, eines oder mehrerer Anwendungsprogramme 196, anderer Programm-Module 197 und Programmdaten 198. Ein Benutzer kann dem Computer 100 Befehle und Informationen mittels Eingabevorrichtungen wie etwa einer Tastatur 101 und einer Cursor-Vorrichtung 102 eingeben. Andere Eingabevorrichtungen (nicht abgebildet) können ein Mikrofon, einen Joystick, ein Gamepad, eine Satellitenschüssel, einen Scanner oder dergleichen einschließen. Diese und andere Eingabevorrichtungen sind oft mit der Verarbeitungseinheit 110 durch eine serielle Schnittstelle 106 verbunden, die an den Systembus angeschlossen ist, können aber auch durch andere Schnittstellen verbunden sein, etwa einen parallelen Port, einen Game-Port oder einen Universal Serial Bus (USB). Überdies können diese Einrichtungen direkt mit dem Systembus 130 mittels einer passenden Schnittstelle (nicht abgebildet) verbunden werden. Ein Monitor 107 oder eine andere Art Bildschirmvorrichtung ist ebenfalls mit dem Systembus 130 mittels einer Schnittstelle, etwa eines Video-Adapters 108, verbunden. Zusätzlich zum Monitor schließen Personalcomputer typischerweise weitere periphere Ausgabe-Vorrichtungen (nicht abgebildet) ein, wie etwa Lautsprecher und Drucker. In einer bevorzugten Ausführungsform werden ein Schreibstift-Digitalisierer 165 mit begleitendem Stift oder Griffel 166 zwecks digitaler Erfassung einer handschriftlichen Eingabe zur Verfügung gestellt. Wiewohl eine direkte Verbindung zwischen dem Schreibstift-Digitalisierer 165 und der Verarbeitungseinheit 110 gezeigt wird, kann in der Praxis der Schreibstift-Digitalisierer 165 an die Verarbeitungseinheit 110 mittels eines seriellen Ports, eines parallelen Ports oder einer anderen Schnittstelle und, wie in dem Stand der Technik bekannt, des Systembusses 130 verbunden werden. Darüber hinaus, auch wenn der Digitalisierer 165 getrennt vom Monitor 107 gezeigt wird, ist es besser, wenn die nutzbare Eingabezone des Digitalisierers 165 von gleicher Ausdehnung ist wie die Bildschirmzone des Monitors 107. Überdies kann der Digitalisierer 165 in den Monitor 107 integriert werden oder als separate Einrichtung bestehen, die den Monitor 107 überlagert oder an ihm auf andere Weise angebracht ist.
  • Der Computer 100 kann in einer vernetzten Umgebung arbeiten unter Verwendung logischer Verbindungen mit einem oder mehreren entfernten Computern, etwa einem entfernten Computer 109. Der entfernte Computer 109 kann ein Server sein, ein Router, ein Netzwerk-PC, eine Peer-Einrichtung oder ein anderer gewöhnlicher Netzwerkknoten, und schließt typischerweise viele oder all die Elemente ein, welche oben in Bezug auf den Computer 100 beschrieben sind, auch wenn in 1 nur eine Speichervorrichtung 111 abgebildet ist. Die logischen Verbindungen, die in 1 abgebildet sind, schließen ein Local Area Network (LAN) 112 und ein Wide Area Network (WAN) 113 ein. Solche Netzwerk-Umgebungen sind in Büros, in Computernetzen von Firmen und Unternehmen, in lokalen Netzen und im Internet weit verbreitet.
  • Wenn der Computer 100 in einer LAN-Netzwerk-Umgebung verwendet wird, wird er mit dem lokalen Netz 112 mittels einer Netzwerk-Schnittstelle oder eines Adapters 114 verbunden. Wenn er in einer WAN-Netzwerk-Umgebung verwendet wird, schließt der Personal Computer 100 typischerweise ein Modem 115 oder andere Mittel zur Herstel lung einer Kommunikation über das Wide Area Network 113, etwa das Internet, ein. Das Modem 115, das intern oder extern sein kann, wird mit dem System-Bus 130 über die Schnittstelle des seriellen Ports 106 verbunden. In einer Netz-Umgebung können Programm-Module, wie sie in Bezug auf den Personal Computer 100 abgebildet sind, oder Teile von ihnen, in der entfernte Speicher-Vorrichtung gespeichert werden.
  • Man wird erkennen, dass die gezeigten Netzwerk-Verbindungen nur Beispielcharakter haben und dass andere Techniken zur Einrichtung einer Kommunikationsverbindung zwischen den Computern verwendet werden können. Die Existenz irgendeines der verschiedenen wohlbekannten Protokolle wie TCP/IP, Ethernet, FTP, HTTP und dergleichen wird angenommen, und das System kann in einer Client-Server-Konfiguration in Betrieb genommen werden, welches einem Benutzer gestattet, Web-Seiten von einem netzbasierten Server abzurufen. Irgendeiner von verschiedenen herkömmlichen Web-Browsern kann dazu verwendet werden, Daten auf Web-Seiten anzuzeigen und zu manipulieren.
  • 2 zeigt ein Beispiel eines Computer-Verarbeitungssystems auf Griffel-Basis 201 (auch Tablet PC genannt), das in Übereinstimmung mit verschiedenen Aspekten der vorliegenden Erfindung verwendet werden kann. Irgendeine oder alle Eigenschaften, Subsysteme und Funktionen im System von 1 können im Computer von 2 eingeschlossen sein. Tablet PC 201 schließt eine große Bildschirmfläche 202 ein, z. B. einen digitalisierenden Flachbildschirm, vorzugsweise einen Flüssigkristall-(LCD-)Bildschirm, auf dem eine Mehrzahl von Fenstern 203 ausgestellt ist. Andere Bildschirmtechnologien, die verwendet werden können, schließen OLED-Bildschirme, Plasma-Bildschirme und dergleichen ein, sind aber nicht auf diese beschränkt. Mittels Verwendung der Spitze des Griffels 204 (diese Spitze hierin „Cursor" genannt) kann ein Benutzer auf der digitalisierenden Bildschirmzone auswählen, hervorheben und schreiben. Beispiele passender digitalisierenden Bildschirmfelder schließen elektromagnetische Stift-Digitalisierer ein wie etwa die Mutoh oder Wacom Pen Digitizers. Andere Arten von Stift-Digitalisierern, z. B. optische Digitalisierer, können ebenfalls verwendet werden. Tablet PC 201 interpretiert Markierungen, die unter Verwendung von Griffel 204 gemacht wurden, zur Manipulierung von Daten, zur Texteingabe und zur Durchführung herkömmlicher Computer-Anwendungsaufgaben wie etwa Tabellen, Word-Verarbeitungsprogramme und dergleichen.
  • Ein Griffel könnte mit Knöpfen/Tasten oder anderen Eigenschaften zur Erweiterung seiner Auswählfähigkeiten ausgestattet werden. In einer Ausführungsform könnte ein Griffel als „Bleistift" (pencil) bzw. „Zeichenstift" (pen) implementiert werden, bei dem ein Ende einen Schreibbereich und das andere Ende ein ,Radiergummi'-Ende bildet, welches, wenn es über den Bildschirm bewegt wird, Bereiche des Bildschirms anzeigt, die gelöscht werden sollen. Andere Arten von Eingabe-Vorrichtungen wie etwa eine Maus, Rollkugel oder dergleichen könnten verwendet werden. Zusätzlich könnte ein Benutzer seinen eigenen Finger dazu verwenden, Bereiche des angezeigten Bildes auf einem berührungsempfindlichen oder nähesensiblen Bildschirm auszuwählen oder anzuzeigen. Folglich hat der Begriff „Benutzer-Eingabevorrichtung", wie er hierin verwendet wird, den Zweck, eine weitgefächerte Definition zu geben, und umfasst zahlreiche Abwandlungen wohlbekannter Eingabevorrichtungen.
  • Elektronische Tinte und das Konzept eines Ink-Objekts
  • Das Wort Tinte, wie es hierin verwendet wird, bezieht sich auf elektronische Tinte. Elektronische Tinte kann als eine Sequenz oder ein Satz von Strichen strukturiert sein, wobei jeder Strich eine Sequenz oder einen Satz von Punkten einschließt. Eine Sequenz von Strichen und/oder Punkten kann geordnet werden nach Maßgabe der Zeiterfassung und/oder danach, wo die Striche und/oder Punkte auf einer Seite erscheinen. Ein Satz von Strichen kann Sequenzen von Strichen und/oder Punkten und/oder ungeordneten Strichen und/oder Punkten einschließen. Die Punkte können dargestellt werden mittels Verwendung einer Vielzahl von bekannten Techniken einschließlich kartesianischer Koordinaten (X, Y), polarer Koordinaten (r, q) und anderer nach dem Stand der Technik bekannter Techniken. Ersatzweise kann ein Strich als ein Punkt und ein Vektor in Richtung des nächsten Punktes dargestellt werden. Ein Strich hat den Zweck, eine jegliche Darstellung von Punkten oder Segmenten im Verhältnis zu Tinte zu umfassen, ungeachtet der zugrundeliegenden Darstellung von Punkten und/oder dessen, was die Punkte verbindet. Tintensammlung beginnt typischerweise in einem Digitalisierer (etwa dem Digitalisierer der Bildschirmfläche 202). Ein Benutzer kann dem Digitalisierer einen Griffel aufsetzen und zu schreiben oder zu zeichnen beginnen. An dieser Stelle können neue Tintenpakete (d. h. Pakete tintenbezogener Daten) erzeugt werden. Der Benutzer kann den Griffel auch in der Luft, nah genug am Digitalisierer bewegen, so dass jener vom Digitalisierer wahrgenommen wird. Wenn dies stattfindet, können Datenpakete (hierin „In-Air-Pakete" genannt) entsprechend der wahrgenommenen In-der-Luft-Bewegung des Griffels erzeugt werden. Pakete können nicht nur Positionsinformation, sondern auch Griffeldruck- und/oder Aufsetzwinkel-Information einschließen.
  • Um Tinte zu speichern, kann ein Ink-Objekt erzeugt werden, das die originalen Tintenstriche darstellt, welche vom Griffel 204 auf der Bildschirmfläche 202 und/oder anderer Eingabe gezogen wurden. Die gesammelten Tintenstriche können von überallher auf der Bildschirmfläche 202 oder nur aus einem begrenzten Bereich von ihr, etwa einem besonderen Fenster, gesammelt werden. Das Ink-Objekt ist im wesentlichen ein Behälter von Tintendaten. Das spezielle Format dessen, wie Tinte in dem Ink-Objekt gespeichert ist, ist für die vorliegende Erfindung nicht wichtig. Jedoch ist es vorzuziehen, dass die Tintenstriche so, wie sie ursprünglich gezogen sind, in dem Ink-Objekt gespeichert werden.
  • Zwei veranschaulichende Arten von Ink-Objekt en können definiert werden. Ein tInk-Objekt (das „t" bedeutet „Text") kann als ein OLE-Objekt ausgeführt werden, welches Tinte darstellt, die Buchstaben oder Wörter bilden soll. Das tInk-Objekt ermöglicht es, dass die handgeschriebene Tinte zu Text konvertiert wird, etwa mittels eines Texterkennungsprogramms. Als tInk-Objekt kann ein Ink-Objekt bezeichnet werden, das sich auf Tinte bezieht und einen textuellen Kontext hat. Die Farbe und/oder Schriftgröße der textuellen Tinte, sowie, ob die textuelle Tinte unterstrichen, fett, kursiv und/oder dergleichen sein soll, kann im Programm eingestellt werden und auf den Attributen des Textes rund um das tInk-Objekt basieren. Mit andern Worten: Die umgebenden Eigenschaften bei der intendierten Eingabestelle des tInk-Objekts können dem tInk-Objekt zugelegt werden. In einer Ausführungsform enthält das tInk-Objekt nur ein einziges Wort zur Vorlage beim Texterkennungsprogramm, so dass ein Satz mehrere tInk-Objekte enthalten kann. Andererseits kann auch ein sInk-Objekt (das „s" bedeutet „Skizze") als ein Objekt definiert werden kann, welches Tinte darstellt, die nicht Worte bilden soll. Das sInk-Objekt kann ebenfalls ein OLE-Objekt sein. Ein sInk-Objekt kann deshalb als eine Zeichnung oder irgendein sonstiger non-textueller Kontext gedeutet werden. Ein sInk-Objekt kann außerdem zur Darstellung mehrerer Wörter verwendet werden. Eine tintenkompatible Anwendung (und/oder der Benutzer) kann bestimmte Ink-Objekt e als tInk-Objekte und andere als sInk-Objekte kennzeichnen. Zu Beschreibungszwecken werden die beiden Tintenarten hierin als „tInk" und „sInk" beschrieben. Es wird aber erkannt, dass auch andere Namen zur Darstellung der verschiedenen Arten von Ink-Objekt en, die verwendet werden können, benutzt werden können. Außerdem können alternative Arten von Objekten zur Speicherung von elektronischer Tinte in jedem erwünschten Format verwendet werden.
  • Ink Controls API im Überblick
  • Bezugnehmend auf 3 stellt ein API, hierin Ink Controls API genannt, Entwicklern ein Modell für verschiedene Objekte und Steuerungen zur Verfügung. Das Ink Controls API kann erhältlich sein für Entwickler, die verschiedene Anwendungsentwicklungs-Software verwenden, wie etwa das systemeigene Microsoft Win32 COM API, Microsoft ActiveX API, und/oder Microsoft Managed API. Das Ink Controls API ermöglicht es dem Entwickler, problemlos erstklassige Unterstützung für Tinte schon bestehenden nicht-tintenkompatiblen Anwendungen und neuen Anwendungen hinzuzufügen. Der Entwickler braucht lediglich die passenden Steuerungen hinzuzufügen und verschiedene Eigenschaften einzustellen. Das Ink Controls API ermutigt ferner zur Übernahme eines konsistenten Aussehens und Gesamteindrucks für tintenaktivierte Anwendungen; das Ink Controls API kann als ausgezeichneter Ausgangspunkt zur Implementierung einer Benutzer-Erfahrung dienen. Zusätzlich stellt das Ink Controls API einfärbende Benutzerschnittstellen-Elemente zur Verfügung, die Entwickler gerne zur Verfügung hätten, sich andernfalls jedoch vom Reißbrett aus erschaffen müssten.
  • Verschiedene Objekte und Steuerungen des Ink Controls API schließen ein InkCollector-Automationsobjekt 302, ein vom InkCollector verwaltetes Objekt 306, ein InkOverlay-Automationsobjekt 303, eine InkPicture ActiveX-Control 304, ein vom InkOverlay verwaltetes Objekt 305, eine PictureBox WinForms-Control 301 und/oder eine InkPicture WinForms-Control 307 ein. Das InkCollector-Objekt 302 sammelt Tinte, die von einem Benutzer gezogen wird (wie etwa auf der Bildschirmfläche 202). Das InkOverlay-Objekt ermöglicht es dem Entwickler, einer Anwendung problemlos eine Annotationsfunktionalität hinzuzufügen, und erweitert die Tintensammelfunktionalität des InkCollector-Objekts 302, um Unterstützung für grundlegende Editierung wie etwa Auswählen, Bewegen, Skalieren und Löschen von Tinte zur Verfügung zu stellen. Die InkPicture-Control umfasst einige oder alle API-Elemente des InkOverlay-Objekts und erlaubt Entwicklern, einem Fenster eine Zone zum Zwecke des Sammelns und Editierens von Tinte hinzuzufügen. Die InkPicture-Control kann darüber hinaus dem Entwickler gestatten, dem Fenster Hintergrundbilder, Abbildungen und/oder Farben hinzuzufügen.
  • Diese Objekte und Steuerungen, wie sie weiter unten beschrieben werden, können mit einer oder mehreren Hosts-Anwendungen interagieren, etwa einer ActiveX Hosts-Anwendung (z. B. VB6) und/oder einer Win32 Hosts-Anwendung (gemeinsam: 301) und/oder einer Programmiersprachen-Laufzeit-(CLR-) Hosts-Anwendung (VB7/C#) 306. Das InkOverlay-Automationsobjekt 303 und die InkPicture ActiveX-Control 304 können von systemeigenen Win32/ActiveX Entwicklern verwendet werden, und das InkOverlay-betriebene Objekt 305 und die InkPicture WinForms-Control 307 können von Entwicklern verwendet werden, welche CRL nutzen. In dieser Figur stellen undurchbrochene Pfeile eine veranschaulichende Vererbungsmetapher und gestrichelte Pfeile eine veranschaulichende Nutzungsmetapher dar.
  • InkCollector-Objekt
  • Das InkCollector-Objekt wird zum Erfassen von Tinte aus einer Tinten-Eingabevorrichtung und/oder zur Ausgabe von Tinte an eine Anwendung verwendet. Das InkCollector-Objekt wirkt in gewissem Sinne als eine Füllvorrichtung, die Tinte in eine oder mehrere verschiedene und/oder getrennte Ink-Objekte ,gießt', indem es Tinte als einen oder mehrere Tintenstriche sammelt und die Tinte in einem oder mehreren assoziierten Ink-Objekt en speichert. Das InkCollector-Objekt kann sich selbst an einem bekannten Anwendungsfenster anbringen. Dann kann es auf diesem Fenster ein Einfärben in Echtzeit durch Verwenden irgendeiner oder aller verfügbaren Tablet-Vorrichtungen (die den Griffel 204 und/oder eine Maus einschließen können) zur Verfügung stellen. Um das InkCollector-Objekt zu verwenden, kann der Entwickler es erschaffen, das Fenster bestimmen, welches die ausgezogene Tinte einsammeln soll, und das Objekt aktivieren. Nachdem das InkCollector-Objekt aktiviert ist, kann es so eingestellt werden, dass es Tinte in einer Vielzahl von Tintensammlungsarten sammelt, bei denen Tintenstriche und/oder -Gesten gesammelt werden. Eine Geste ist eine Bewegung oder eine andere Aktion des Griffels 204, die nicht als gerenderte Tinte gedeutet wird, sondern als Aufforderung oder Befehl, irgendeine Handlung oder Funktion auszuführen. Eine besondere Geste kann zum Beispiel zum Zwecke der Auswahl von Tinte ausgeführt werden, während eine andere Geste dem Zwecke dienen kann, Tinte kursiv erscheinen zu lassen.
  • Für jede Bewegung eines Griffels auf oder nahe der Digitalisierer-Eingabe wird das InkCollector-Objekt einen Strich und/oder eine Geste sammeln.
  • InkOverlay-Objekt
  • Das InkOverlay-Objekt ist ein Objekt, das für Annotations-Szenarien nützlich ist, in denen sich Endbenutzer nicht unbedingt mit der Ausführung von Erkennung auf Tinte beschäftigen, sondern womöglich eher an der Größe, Form, Farbe und Position der Tinte interessiert sind. Es ist gut geeignet für Notizen und einfaches Geschreibsel. Der primäre Zweck dieses Objekts ist es, Tinte als Tinte anzuzeigen. Die Standard-Benutzer-Schnittstelle ist ein transparentes Rechteck mit opaker Tinte. InkOverlay erweitert die InkCollector-Klasse auf mehrfache Weise. Das InkOverlay-Objekt (und/oder die Ink-Picture Control, die oben erläutert wurde) kann zum Beispiel das Auswählen, Löschen und Skalieren von Tinte ebenso unterstützen wie Delete-, Cut-, Copy- und Paste-Befehle.
  • Ein typisches Szenario, bei dem das InkOverlay-Objekt von Nutzen sein kann, ist, wenn ein Dokument bearbeitet werden soll, etwa mittels handschriftlicher Kommentare, Zeichnungen und dergleichen über dem zugrundeliegenden Dokument. Das InkOverlay-Objekt erlaubt problemlose Implementierung des Einfärbens und der Layout-Fähigkeiten, die für dieses Szenario gebraucht werden. Um zum Beispiel mit InkOverlay-Objekt zu arbeiten, kann man ein InkOverlay-Objekt instantieren, das InkOverlay am hWnd eines weiteren Fensters anbringen und die InkOverlay-„Enabled"-Eigenschaft auf „True" einstellen.
  • Bezugnehmend auf 4 wird ein High-Level-Blockdiagramm der Komponenten gezeigt, aus denen die inneren und äußeren Abhängigkeiten des InkOverlay-Objekts bestehen. Pfeile zeigen eine Nutzungsmetapher an. Ein InkOverlay-Objekt 401 kann Tinte aus einem InkCollector-Objekt 402 aufnehmen. Das InkOverlay-Objekt 401 kann Auswahl-Management-Funktionalität 403 und/oder Editier-Funktionalität 404 aufweisen. Wie an Beispielen unten erörtert, kann das InkOverlay-Objekt 401 eine transparente Overlay-Fenster-Management-Funktionalität 405 aufweisen, um ein anderes Objekt, ein anderes Fenster, oder ein anderes angezeigtes Datenfeld, etwa ein eingescanntes Papierformular, transparent zu überlagern. Extern kann das InkOverlay-Objekt 401 mit verschiedenen Anwendungen und API interagieren. Zum Beispiel kann eine Anwendung das InkOverlay-Objekt 401 dazu nutzen, verschiedene Low-Level-Einfärbungs-Funktionen zu implementieren. In einer Ausführungsform kann solch eine Anwendung Microsoft WINDOWS® INK SERVICES PLATFORM® (WISP) 406 sein. Es sollte angemerkt werden, dass die Anwendung 406, wie die anderen hierin erörterten Elemente, weder auf WISP noch auf die Microsoft WINDOWS® Umgebung beschränkt ist. Darüber hinaus kann das InkOverlay-Objekt 401 mit einem API interagieren, das viel von der Lower-Level-WISP 406-Funktionalität automatisiert. In dieser Ausführungsform wird solch ein API „Automation API" 407 genannt. Das Automation API 407 schließt das oben erörterte Ink Controls API ein und stellt Entwicklern das Objektmodell zur Verfügung, welches das Ink-Objekt, das InkCollector-Objekt, das InkOverlay-Objekt und das InkPicture Objekt einschließt. Überdies kann das InkOverlay-Objekt 401 mit einem oder mehreren Betriebssystem-APIs interagieren, etwa mit dem Microsoft WINDOWS® Win32 API 408 und/oder dem Microsoft.NET® API.
  • Die Auswahl-Management-Funktionalität 403 des InkOverlay-Objekts 401 unterstützt die Auswahl von Tinte. Tinte kann auf vielfältige Weise ausgewählt werden, etwa mittels eines Lasso-Werkzeugs (Auswahl von Objekten, die in einem verfolgten Bereich enthalten sind). Das InkOverlay-Objekt 401 kann außerdem eine Antipp-Auswahl unterstützen, bei der jedes Ink-Objekt, das angeklickt und/oder nahebei angetippt wird, ausgewählt wird. Wenn ein Ink-Objekt oder Satz von Ink-Objekt en ausgewählt wird, können Skalier-Ziehpunkte (z. B. acht Skalier-Ziehpunkte) ebensowohl in den vier Ecken des Tinten-Ziehpunktrahmens erscheinen wie auf einem oder mehreren Mittelpunkten zwischen benachbarten Ecken. Bewegen der Skalier-Ziehpunkte kann die ausgewählte Tinte veranlassen, entsprechend der Ziehpunkt-Bewegung skaliert zu werden. Tastatur oder andere Modifikatoren können dazu verwendet werden, das InkOverlay-Objekt anzuweisen, beim Skalieren das originale Ansichtsverhältnis beim Skalieren beizubehalten. Darüber hinaus kann Tinte durch Verwenden etwelcher anderen erwünschten Mittel skaliert werden. Außerdem können Tastatur und andere Modifikatoren dazu verwendet werden, das InkOverlay-Objekt anzuweisen, die ausgewählte Tinte während eines Ausziehbetriebs zu kopieren, statt die Tinte während des Ausziehens zu skalieren. Wenn der Benutzer irgendwo innerhalb des ausgewählten Bereichs drückt und anhält, wird die Tinte innerhalb der Steuerung beweglich. Eine rechteckige Auswahl-Metapher und/oder eine Wort-, Satz- und/oder Absatz-Auswahl-Metapher kann überdies genutzt werden. Zum Beispiel wird Klicken innerhalb eines Tintenworts das Wort auswählen, Klicken irgendwo innerhalb eines Tintensatzes diesen kompletten Satz auswählen und gleicherweise Klicken irgendwo innerhalb eines Tintenabsatzes den gesamten Absatz auswählen. Andere Mittel zum Auswählen schließen die Nutzung besonderer Gesten ein, die Auswahlverhalten anzeigen, wie etwa ein Einzelklick auf oder nahe einem Tintenstrich, der Auswahl des Tintenstriches anzeigt, ein Doppelklick auf oder nahe einem Wort, der Auswahl des ganzen Wortes anzeigt, und ein Dreifachklick, der einen kompletten Satz auswählt. Zusätzlich kann Tinte durch direkten Aufruf des API des InkOverlay-Objekts, entweder durch ein Programm, oder mittels Endbenutzer-Eingabe, ausgewählt und/oder modifiziert werden.
  • Zusätzlich kann das InkOverlay-Objekt eine Tintenlöschfunktionalität zur Verfügung stellen. Zum Beispiel kann das InkOverlay-Objekt einen Strich-Löschmodus und/oder Punkt-Löschmodus bereitstellen. Bei dem Strich-Löschmodus wird, wenn der Cursor unten ist und in Kontakt mit einem bestehenden Tintenstrich gerät, dieser Strich komplett entfernt. Beim Punkt-Löschmodus werden, wenn der Cursor unten ist und in Kontakt mit einem bestehenden Tintenstrich gerät, nur die überlappenden Bereiche des Cursors und des Tintenstriches gelöscht.
  • InkOverlay API
  • Eine veranschaulichende anwendungsprogrammierende Schnittstelle (API) für das InkOverlay-Objekt wird jetzt unter Bezugnahme auf 5 erörtert. In 5 wird ein InkOverlay-Objekt 501 von einem Kasten dargestellt, und verschiedene Elemente (bzw. funktional gruppierte Elemente) eines API werden als gekennzeichnete Pfeile 542-558 dargestellt, die aus dem Kasten, der das InkOverlay-Objekt 501 darstellt, hervorgehen und/oder in ihn hineinzielen. Im allgemeinen beziehen sich Pfeile, die in den InkOverlay-Objekt – 501 – Kasten hineinzielen, auf API-Elemente (bzw. funktional gruppierte Elemente), welche meistenteils das InkOverlay-Objekt 501 (z. B. durch Veränderung einer seiner Eigenschaften) modifizieren und/oder andernfalls dem InkOverlay-Objekt 501 Information zur Verfügung stellen. Pfeile, die aus dem InkOverlay-Objekt – 501 – Kasten hervorgehen, beziehen sich auf API-Elemente (bzw. funktional gruppierte Elemente), die meistenteils eine Flag oder irgendeine andere Information darstellen, die von dem InkOverlay-Objekt 501 für seine Umgebung zur Verfügung gestellt wird. Die Richtungen der Pfeile sollen jedoch nicht einschränkend sein, und so ist ein Pfeil, der in das InkOverlay-Objekt 501 hineinzielt, nicht daran gehindert, außerdem noch Information darzustellen, die von dem InkOverlay-Objekt 501 seiner Umgebung zur Verfügung gestellt wird. Gleicherweise wird ein Pfeil, der aus dem InkOverlay-Objekt 501 hervorgeht, nicht daran gehindert, außerdem noch für das InkOverlay-Objekt 501 Information zu modifizieren oder zur Verfügung zu stellen. 5 zeigt darüber hinaus eine Mehrzahl von Eigenschaften 502-520 des InkOverlay-Objekts 501.
  • In der exemplarischen Ausführungsform weist das InkOverlay API einige oder alle der folgenden Aufzählungen (nicht abgebildet) in jeglicher Kombination oder Subkombination auf. Eine Aufzählung der Anwendungs-Gesten definiert Werte, die das Interesse an einem Satz anwendungsspezifischer Gesten einstellen. Eine Sammelmodus-Aufzählung definiert Werte, welche die Sammelmodus-Einstellungen des InkOverlay-Objekts bestimmen. Eine Ereignisinteressen-Aufzählung definiert die Ereignisse, an deren Empfang der Entwickler, der das InkOverlay-Objekt und/oder InkCollector-Objekt verwendet, interessiert ist. Das InkOverlay-Objekt kann die Ereignisinteressen-Aufzählung dazu verwenden, zu entscheiden, welche Information dem Entwickler über Ereignisse zur Verfügung gestellt wird. Eine Maus-Pointer-Aufzählung definiert Werte, die spezifizieren, welcher Maus-Cursor-Typus angezeigt werden soll. Diese Aufzählung tritt auch in der InkPicture-Control und in dem InkCollector-Objekt auf.
  • Eine Überlagerungseditiennodus-Aufzählung definiert Werte, die spezifizieren, wo das neue InkOverlay-Objekt angebracht werden soll-hinter oder vor Steuerungen und/oder Text in dem Fenster, an dem das InkOverlay-Objekt angebracht wird. Wird das InkOverlay-Objekt davor angebracht, heißt das, dass die Tinte vor Steuerungen und/oder Text im Fenster gerendert wird. Wird das InkOverlay-Objekt dahinter angebracht, heißt das, dass die Tinte direkt in dem Fenster, an dem sie angebracht wird, gerendert wird, mithin hinter allen anderen Steuerungen oder untergeordneten Fenstern in der Fenster-Hierarchie. Eine Überlagerungseditiermodus-Aufzählung definiert Werte, die spezifizieren, welchen Editiermodus das InkOverlay-Objekt verwenden soll: Tinte zeichnen, Tinte löschen oder Tinte editieren. Eine Löschmodus-Aufzählung definiert Werte, welche die Art und Weise spezifizieren, mit der Tinte gelöscht wird, wenn eine Editiermodus-Aufzählung auf Löschen eingestellt wird. Eine System-Gesten-Aufzählung definiert Werte, die das Interesse an einem Satz betriebssystemspezifischer Gesten einstellen.
  • Das InkOverlay API in der exemplarischen Ausführungsform weist außerdem eine oder mehrere der folgenden Eigenschaften in jeglicher Kombination oder Subkombination auf, die eingestellt werden können und welche die Information, die sie darstellen, wiedergeben können. Eine Anbringungsmodus-Eigenschaft 502 stellt dar, ob das Objekt hinter oder vor dem gegebenen Fenster angebracht ist. Eine Selbstneuzeichnungs-Eigenschaft 503 stellt dar, ob der InkCollector aufs neue malen wird, wenn das Fenster annulliert wird. Eine Sammeltinteneigenschaft 504 stellt dar, ob das Objekt damit beschäftigt ist, Tinte zu sammeln. Eine Sammelmodus-Eigenschaft 505 stellt dar, ob das Objekt nur Tinte, nur Gesten sammelt, oder sowohl Tinte als auch Gesten. Eine cursor-sammelbezogene Eigenschaft 506 stellt die Sammlung von Cursoren dar, denen das Objekt begegnet ist. Eine Zeichnungsattribute-Eigenschaft 507 stellt die Standard-Zeichnungsattribute dar, die beim Sammeln und Anzeigen von Tinte zu verwenden sind. Die Zeichnungsattribute, die mit dieser Eigenschaft spezifiziert worden sind, sind die Attribute, die einem neuen Cursor zugewiesen werden, und können denjenigen Cursor in der Cursorsammlung zugelegt werden, für die Standard-Zeichnungsattribute auf Null eingestellt sind. Eine Paketbeschreibungseigenschaft 508 stellt die Paketbeschreibung des InkOverlay-Objekts 501 dar. Eine Dynamisch-Rendern-Eigenschaft 509 stellt dar, ob das InkOverlay-Objekt 501 die Tinte, wenn sie gesammelt wird, dynamisch rendert. Eine Editiermodus-Eigenschaft 510 stellt dar, ob sich das Objekt im Tintenmodus, Löschmodus oder Auswahl/Editiermodus befindet. Eine InkCollectoraktiviert-Eigenschaft 511 stellt dar, ob der InkCollector eine Stift-Eingabe sammelt (In-Air-Pakete, Cursor-in-Reichweite-Ereignisse und so weiter). Verschiedene ,Radier'-Eigenschaften 512 stellen dar, ob Tinte mittels Strich oder mittels Punkt gelöscht wird, und wie Tinte gelöscht wird, und die Breite der ,Radierstift'-Spitze. Eine Fenster-Handle-Eigenschaft 513 stellt den Ziehpunkt dar, an dem sich das InkOverlay-Objekt 501 selbst anbringt. Eine Assoziiertes-Ink-Objekt-Eigenschaft 514 stellt das Ink-Objekt dar, das an dem InkOverlay-Objekt assoziiert ist. Rand-Eigenschaften 515 stellen, vorzugsweise in Bildschirmkoordinaten, die X-Achsen- und Y -Achsen-Ränder des InkOverlay-Objekts 501 entlang des Fensterrechtecks dar, das mit dem Fenstergriff assoziiert ist, der angebracht ist. Außerdem können die Rand-Eigenschaften 515 ein Ersatzmittel zum Erreichen des Verhaltens zur Verfügung stellen, welches mit Fensterrechteck-Verfahren 555, die unten erörtert werden, assoziiert wird. Eine oder mehrere spezifische Maus-Cursor-Eigenschaften 516 stellen das aktuelle spezielle Maus-Bildsymbol dar, die Art von Maus-Cursor, die angezeigt wird, wenn sich die Maus über dem InkOverlay-Objekt 501 sowie über einem tintenfähigen Bereich des Objekts befindet, und/oder den Cursor, der angezeigt wird, wenn die aktive Cursor-Vorrichtung (z. B. der Griffel 204 oder die Maus 102) den angezeigten Cursor veranlasst, über dem InkOverlay-Objekt zu sein. Eine Renderer-Eigenschaft 517 stellt den Renderer dar, der verwendet wird, um Tinte auf dem Bildschirm auszuziehen. Eine Auswahleigenschaft 518 stellt die Sammlung von Tintenstrichen dar, die meistens ausgewählt werden. Hochkontrast-Tinten-Eigenschaften 519 stellen dar, ob die Tinte in hohem Kontrast, z. B. in nur einer Farbe gerendert wird, und ob alle Auswahl-UI (z. B. Auswahl-Ziehpunktrahmen und Auswahl-Ziehpunkte) in hohem Kontrast- Ziehpunkte) in hohem Kontrast ausgezogen werden, wenn das System sich im Hochkontrast-Modus befindet. Eine Tablet-Eigenschaft 520 stellt das Tablet dar, welches das Objekt zum Sammeln von Cursor-Eingabe gegenwärtig verwendet.
  • Das InkOverlay API in der exemplarischen Ausführungsform weist außerdem eine Mehrzahl von assoziierten Ereignissen und Verfahren in jeglicher Kombination oder Subkombination auf. Zum Beispiel kann es cursorbezogene Ereignisse und Verfahren 542/544 geben. Solche cursorbezogenen Ereignisse treten je nachdem ein, ob ein Cursor (etwa die Spitze des Griffels 204) innerhalb materieller Detektionsreichweite des Tablet-Kontextes ist, oder, in Reaktion auf den Cursor, physisch sich in Kontakt mit der digitalisierenden Tablet-Fläche (z. B. Fläche 202) befindet. Cursorbezogene Verfahren werden auf das jeweilige cursorbezogene Ereignis bei seinem Eintreten reaktiv genannt. Diese Eigenschaften können einem Entwickler gestatten, die Cursor-Funktionalität des InkOverlay-Objekts zu erweitern und außer Kraft zu setzen.
  • Das InkOverlay API kann darüber hinaus cursortastenbezogene Ereignisse und Verfahren 543 aufweisen. Solche Cursortasten-Ereignisse treten abhängig davon ein, ob eine Taste auf dem Cursor (z. B. dem Griffel 204) oben ist oder niedergedrückt wird. Cursortastenbezogene Ereignisse werden als reaktiv auf das jeweilige cursortastenbezogene Ereignis bei seinem Eintreten bezeichnet. Diese Eigenschaften können einem Entwickler gestatten, die Cursortastenfunktionalität des InkOverlay-Objekts zu erweitern und außer Kraft zu setzen.
  • Ferner kann das InkOverlay API gestenbezogene Ereignisse und Verfahren 545, 554 aufweisen. Solche gestenbezogenen Ereignisse treten in Reaktion auf eine System-Geste, die erkannt wird, oder auf eine anwendungsspezifische Geste, die erkannt wird, ein. Bestimmte gestenbezogene Verfahren werden als reaktiv auf das jeweilige gestenbezogene Ereignis bei seinem Eintreten bezeichnet. Ein weiteres gestenbezogenes Verfahren spezifiziert das Interesse des InkOverlay-Objekts 501 an einem gegebenen Satz von Gesten bzw. ruft dieses Interesse ab. Diese Eigenschaften gestatten einem Entwickler, die Gestenfunktionalität des InkOverlay-Objekts zu erweitern und außer Kraft zu setzen.
  • Das InkOverlay API kann darüber hinaus Tablet-bezogene Ereignisse und Verfahren 546, 558 aufweisen. Einige Tablet-bezogene Ereignisse treten in Reaktion auf ein Tablet ein, das dem System hinzugefügt oder von ihm entfernt wird. Tablet-bezogene Verfahren werden als reaktiv auf das jeweilige Tablet-bezogene Ereignis bei seinem Eintreten bezeichnet. Andere Tablet-bezogene Verfahren 558 spezifizieren die Einstellung des InkOverlay-Objekts 501 in einen Alle-Tablets-Modus oder in einen Integrated-Tablet-Modus. Beim All-Tablets-Modus (der ein Standardmodus sein kann) sind alle Tablet-Vorrichtungen integriert, wenn es mehrfache Vorrichtungen gibt, die am System angebracht sind. Da alle Tablet-Vorrichtungen integriert sind, können zugängliche Cursor auf irgendeinem der Tablet-Vorrichtungen verwendet werden, und jedes Tablet wird sich auf dem ganzen Bildschirm unter Verwendung derselben Zeichnungs-Attribute abbilden. Beim Integrated-Tablet-Modus hat eine integrierte Tablet-Style-Computer-Eingabefläche dieselbe Fläche wie der Anzeige-Bildschirm: Dies bedeutet, dass die gesamte Tablet-Style-Computer-Eingabefläche den kompletten Bildschirm einnimmt, was ein automatisches Aktualisieren eines Fensters gestattet.
  • Das InkOverlay API kann darüber hinaus paketbezogene Ereignisse und Verfahren 547 aufweisen. Solche paketbezogenen Ereignisse sind in Bezug auf neugezeichnete Pakete und neue In-Air-Pakete reaktiv. Paketbezogene Verfahren werden als reaktiv auf das jeweilige paketbezogene Ereignis bei seinem Eintreten bezeichnet. Diese Eigenschaften können einem Entwickler gestatten, die Griffel-Funktionalität und Ansprechbarkeit des InkOverlay-Objekts zu erweitern und außer Kraft zu setzen.
  • Das InkOverlay API kann außerdem auf Malen bezogene Ereignisse und Verfahren 548 aufweisen. Solche auf das Malen bezogene Ereignisse ereignen sich unmittelbar bevor das InkOverlay-Objekt 501 die Tinte entlang irgendeiner Auswahl von Tinte malt und dadurch wird dem Entwickler eine Gelegenheit gewährt, das Erscheinungsbild der Tinte oder die Tinte selbst zu verändern. Ein auf Malen bezogenes Ereignis kann außerdem in Reaktion auf das InkOverlay-Objekt 501 eintreten, wenn es das Malen einer Untermenge der Tinte abgeschlossen hat und dadurch dem Entwickler erlaubt, etwas zusätzlich zur bereits gezeichneten Tinte zu zeichnen. Auf Malen bezogene Verfahren werden als reaktiv auf das jeweilige auf Malen bezogene Ereignis bei seinem Eintreten bezeichnet. Diese Funktionalität kann dem Entwickler gestatten, das Renderverhalten der Tinte des InkOverlay-Objekts zu erweitern und außer Kraft zu setzen. Diese auf Malen bezogenen Verfahren können außerdem nicht eigentlich Teil des InkOverlay-Objekts sein, sondern statt dessen für den Entwickler zur Implementierung solcher Verfahren und zu ihrer Verbindung mit dem InkOverlay-Objekt zugänglich sein, so dass sie passender weise als reaktiv auf die auf Malen bezogenen Ereignisse bezeichnet werden, wenn diese ausgelöst werden.
  • Das InkOverlay API kann außerdem auswahlbezogene Ereignisse und Verfahren 549 aufweisen. Einige auswahlbezogene Ereignisse treten ein, bevor die Auswahl wechselt, wodurch sie dem Entwickler die Gelegenheit zur Verfügung stellen, die Auswahländerung, die bevorsteht, zu ändern. Ein auswahlbezogenes Ereignis kann auch reaktiv auf die Auswahl, die die Veränderung abgeschlossen hat, sein-entweder durch ein Programm, oder als Ergebnis einer Endnutzer-Aktion. Andere auswahlbezogenen Ereignisse treten in Reaktion auf die Position der aktuellen Auswahl ein, die sich gleich bewegen soll, oder wenn die Position der aktuellen Auswahl gewechselt hat. Weitere auswahlbezogene Ereignisse treten in Reaktion auf die Größe der aktuellen Auswahl ein, die gleich wechseln soll, oder auf die Größe der aktuellen Auswahl, nachdem sie sich verändert hat. Auswahlbezogene Verfahren werden als reaktiv auf das jeweilige auswahlbezogene Ereignis bei seinem Eintreten bezeichnet. Diese Eigenschaften können einem Entwickler gestatten, die Auswahl- und Editierfunktionalität des InkOverlay-Objekts zu erweitern und außer Kraft zu setzen.
  • Das InkOverlay API kann überdies tintenstrichbezogene Ereignisse und Verfahren 550/511 aufweisen. Ein solches strichbezogenes Ereignis ist reaktiv auf den Benutzer, der auf irgendeinem Tablet einen neuen Strich zieht. Andere strichbezogenen Ereignisse sind reaktiv auf Striche, die gleich gelöscht werden sollen, oder auf Striche, die gelöscht worden sind. Strichbezogene Verfahren werden als reaktiv auf das jeweilige strichbezogene Ereignis bei seinem Eintreten bezeichnet. Diese Eigenschaften können einem Entwickler gestatten, die Tintenlöschfunktionalität des InkOverlay-Objekts zu erweitern und außer Kraft zu setzen.
  • Das InkOverlay API kann verschiedene weitere gemischte Verfahren aufweisen. Zum Beispiel kann ein Ziehverfahren 552 Tinte und Auswahl UI für ein spezifiziertes Rechteck im Kontext der bereitgestellten Einrichtung (z. B. Bildschirm, Drucker usw.) ausziehen. Andere Verfahren 553 stellen den aktuellen Status eines besonderen InkOverlay-Ereignisses ein (z. B., ob dem Ereignis zugehört wird oder ob es benutzt wird), oder rufen diesen aktuellen Status ab. Andere Verfahren 555 wiederum spezifizieren die Einstellung des Fenster-Rechtecks, die Fenster-Koordinaten, in welchen Tinte gezeichnet wird, oder rufen dieses Fensterrechteck ab. Ein weiteres Verfahren 556 entscheidet, ob eine gegebene Koordinate mit einem der Skalier-Ziehpunkte, dem inneren Abschnitt eines ausgewählten Bereichs, oder überhaupt keiner Auswahl korrespondiert. Ein Konstruktor 557 spezifiziert die Erschaffung eines neuen InkOverlay-Objekts, das an einem spezifizierten Fenster-Ziehpunkt angebracht werden kann, welcher sich auf einem spezifizierten Tablet befinden und ein Fenstereingaberechteck zu einem Tablet-Eingaberechteck abbilden kann.
  • Das InkOverlay API in der exemplarischen Ausführungsform kann außerdem verschiedene Randkonstanten (nicht abgebildet) aufweisen. Eine erste Randkonstante gibt einen Wert wider, der spezifiziert, ob Striche ausgeschnitten werden sollen, wenn sie sich außerhalb des Standardrands befinden. Eine zweite Randkonstante gibt den Standardrand wider, der von den Randeigenschaften verwendet wird. Diese Konstanten erscheinen außerdem als Eigenschaften in dem InkCollector-Objekt und in der InkPicture-Control.
  • InkPicture Control
  • Wie schon erwähnt, kann eine Steuerung (hierin die InkPicture Control genannt) erschaffen werden (die z. B. eine ActiveX-Control sein kann), welche es Entwicklern gestattet, ein Fenster zum Zwecke der Sammelns und Editierens von Tinte hinzuzufügen. Die Ink-Picture Control stellt die Fähigkeit zur Verfügung, in einer Anwendung oder Web-Seite eine Abbildung zu platzieren, welcher von Benutzern Tinte hinzugefügt werden kann. Die Abbildung kann in irgendeinem Format wie.jpg-,.bmp-,.png- oder.gif-Format vorliegen. Die InkPicture Control kann primär für Szenarien beabsichtigt sein, in denen Tinte nicht notwendig als Text erkannt zu werden braucht, sondern statt dessen oder zusätzlich als Tinte gespeichert sein kann. In einer veranschaulichenden Ausführungsform umwickelt die InkPicture Control das InkOverlay-Objekt mit einer ActiveX oder einer anderen Steuerung.
  • InkPicture API
  • Bezugnehmend auf 6 wird eine veranschaulichende InkPicture Control 601 gezeigt. Die InkPicture Control 601 zeigt einige oder alle API-Elemente des InkOverlay-Objekts 501 an sowie zusätzlich einige oder alle API-Elemente, die in 6 dargestellt werden. In einer veranschaulichenden Ausführungsform kann zum Beispiel die Ink-Picture Control 601 Zugang gewähren zu allen InkOverlay-API-Elementen, mit Aus nahme der Anbringungsmodus-Eigenschaft 502 und/oder der Fenster-Handle-Eigenschaft 513. Die InkPicture Control 601 kann, wie unten erörtert, ihre eigene API haben, die zur Funktionalität des InkOverlay API hinzutritt. In einigen Ausführungsformen kann die InkPicture Control 601 eine ActiveX Control sein und, verglichen mit dem InkOverlay-Objekt 501, die folgende Funktionalität hinzufügen: Tastatur-Ereignisse, Steuerungsdimensionierungsereignisse, zusätzliche Maus-Ereignisse und/oder Hintergrundfarben- und abbildungsbezogene Eigenschaften. Zusätzlich kann die InkPicture Control 601 von Microsoft PictureBox erben. Zum Beispiel kann PictureBox einige oder alle Eigenschaften implementieren, die, wie etwa die Hintergrundabbildung, im Hinblick auf die InkPicture Control 601 hierin erörtert werden.
  • In 6 wird die InkPicture Control 601 von einem Kasten dargestellt und verschiedene Elemente (oder funktional gruppierte Elemente) eines API werden als bezeichnete Pfeile 640-658 dargestellt, die aus jenem Kasten hervorgehen und/oder in ihn hineinzielen, der die InkPicture Control 601 darstellt. Im allgemeinen beziehen sich Pfeile, die in den InkPicture Control 601 -Kasten hineinzielen, auf API-Elemente (oder funktional gruppierte Elemente), die meistenteils die InkPicture Control 601 modifizieren (z. B. mittels Veränderung einer ihrer Eigenschaften) und/oder andernfalls der InkPicture Control 601 Information zur Verfügung stellen. Pfeile, die aus dem InkPicture Control 601 -Kasten hervorgehen, beziehen sich auf API-Elemente (oder funktional gruppierte Elemente), die meistenteils eine Flag oder irgendeine weitere Information darstellen, die von der InkPicture Control 601 ihrer Umgebung zur Verfügung gestellt wird. Die Richtungen der Pfeile jedoch sollen nicht einschränkend sein, und daher ist ein Pfeil, der in das InkPicture Control 601 hineinzielt, nicht daran gehindert, auch Information darzustellen, die von der InkPicture Control 601 ihrer Umgebung zur Verfügung gestellt wird. Gleicherweise ist ein Pfeil, der aus der InkPicture Control 601 hervorgeht, nicht daran gehindert, auch Information zu modifizieren oder der InkPicture Control 601 zur Verfügung zu stellen. 6 zeigt überdies eine Mehrzahl von Eigenschaften 602-626 der InkPicture Control 601.
  • In einer veranschaulichenden Ausführungsform kann das API für die InkPicture Control 601 eine oder mehrere Aufzählungen (nicht abgebildet) aufweisen. Eine Tinte-Bildgrößen-Aufzählung zum Beispiel definiert Werte, die spezifizieren, wie sich ein Hintergrundbild innerhalb der InkPicture Control verhält, also etwa, ob das Bild seine Größe automatisch der Steuerung anpasst oder in der Steuerung sich zentriert, oder ob es innerhalb der Steuerung in seiner regulären Größe erscheint oder in der Steuerung ver größert wird. Außerdem definiert eine Benutzerschnittstellenaufzählung Werte, die den Status der Benutzerschnittstelle für die InkPicture Control spezifizieren, etwa den Status von Fokus und Tastatur-Aufrufen, ob Fokus-Rechtecke nach einem Status-Wechsel angezeigt werden, und/oder ob Tastatur-Aufrufe nach einem Status-Wechsel unterstrichen werden.
  • In der veranschaulichenden Ausführungsform kann das API für die InkPicture Control 601 einige oder all die verschiedenen assoziierten Eigenschaften 602-626, in jeglicher Kombination oder Subkombination, aufweisen. Zum Beispiel stellen eine oder mehrere Zugreifbarkeitseigenschaften 602 sowohl den Namen und die Beschreibung der InkPicture Control dar, die von Zugreifbarkeit-Client-Anwendungen verwendet werden, als auch die zugreifbare Rolle der InkPicture Control. Eine Anker-Eigenschaft 603 stellt dar, welche Kanten der InkPicture Control an den Kanten ihres Behälters verankert sind. Eine oder mehrere Hintergrundeigenschaften 604 stellen die Hintergrundfarbe für die InkPicture Control und das Hintergrundbild dar, das in der InkPicture Control angezeigt wird. Eine Randlinienstileigenschaft 605 stellt den Randlinienstil dar, der für die InkPicture Control verwendet wird. Eine Bewertungseigenschaft 606 stellt dar, ob die InkPicture Control die Ausführung einer Bewertung all derjenigen Steuerungen veranlasst, welche Bewertung verlangen, wenn Fokus empfangen wird. Eine Behälter-Eigenschaft 607 stellt den Behälter dar, der die InkPicture Control enthält. Eine Andock-Eigenschaft 608 stellt dar, an welche Kante oder Kanten des übergeordneten Behälters die InkPicture Control angedockt ist. Eine oder mehrere Zieh-Eigenschaften 609 stellen das Bildsymbol dar, das als Cursor in einem Zieh- und -Auslös-Betrieb angezeigt werden soll, und ob für einen Zieh- und -Auslös-Betrieb ein manueller oder automatischer Zieh-Modus verwendet wird. Eine Freigabe-Eigenschaft 610 stellt dar, ob die InkPicture Control fokussierbar ist. Ein-oder mehrdimensionale Eigenschaften 611 stellen die Höhe der Ink-Picture Control, die Breite der InkPicture Control und sowohl die Höhe wie die Breite der InkPicture Control dar. Diese dimensionalen Eigenschaften können sich in irgendwelchen Einheiten, wie etwa in Pixeln, befinden. Eine kontextsensible Hilfs-Eigenschaft 612 stellt eine assoziierte Kontext-Identifizierung für die InkPicture Control dar und kann dazu verwendet werden, einer Anwendung kontextsensible Hilfe zur Verfügung zu stellen. Eine Fenster-Ziehpunkt-Eigenschaft 613 stellt den Ziehpunkt des Fensters dar, auf dem Tinte ausgezogen wird. Eine Bild-Eigenschaft 614 stellt das Bild dar, das in der InkPicture Control angezeigt wird. Eine Steuerbereichsindex-Eigenschaft 615 stellt die Zahl dar, welche die InkPicture Control in einem Steuerbereich identifiziert. Eine oder mehrere Positionseigenschaften 616 stellen die Entfernung zwischen der inneren linken Kante der Steuerung und der linken Kante ihres Behälters sowie zwischen der inneren oberen Kante der Steuerung und der oberen Kante ihres Behälters dar. Eine Sperreigenschaft 617 stellt dar, ob die Inhalte der InkPicture Control ausgegeben werden können. Eine Sichtbarkeitseigenschaft 618 stellt dar, ob die InkPicture Control zu sehen ist. Eine Steuernamen-Eigenschaft 619 stellt den Namen der InkPicture Control dar. Eine Objekt-Eigenschaft 620 stellt das Objekt dar, das der InkPicture Control entspricht. Eine Eltern-Objekt-Eigenschaft 621 stellt das Objekt dar, auf dem die Steuerung sich befindet. Eine Größenmodus-Eigenschaft 622 stellt dar, wie die InkPicture Control die Platzierung und Größenbestimmung von Abbildungen handhabt. Eine oder mehrere Tabulatoreigenschaften 623 stellen die Tabulator-Anordnung der InkPicture Control innerhalb ihres Eltern-Behälters dar, und ob der Benutzer die Tabulator-Taste verwenden kann, um Fokus auf die InkPicture Control zur Verfügung zu stellen. Eine Objekt-Tag-Eigenschaft 624 stellt erweiterte Eigenschaften oder speziellen Daten über ein Objekt dar. Eine Werkzeughinweis-Eigenschaft 625 stellt den Text dar, der angezeigt wird, wenn die Maus (oder der Griffel) über der InkPicture Control angehalten wird. Eine Hilfe-Eigenschaft 626 stellt eine assoziierte Kontext-Zahl für die InkPicture Control dar. Die Hilfe-Eigenschaft 626 kann dazu verwendet werden, kontextsensible Hilfe für eine Anwendung unter Verwendung des „Was ist das?"-Pop-Ups zur Verfügung zu stellen.
  • Das InkPicture API in der veranschaulichenden Ausführungsform kann weiterhin eine Mehrzahl assoziierter Ereignisse und Verfahren in jeglicher Kombination oder Subkombination aufweisen. Zum Beispiel spezifiziert ein Einstellfokus-Verfahren 640, dass der Fokus der InkPicture Control zugeordnet sein sollte. Ein oder mehrere Fokus-Ereignisse 641 treten ansprechbar auf die InkPicture Control ein, indem sie Fokus verlieren oder Fokus empfangen. Ein Benutzerschnittstellen-Fokus-Ereignis 642 tritt ansprechbar auf den Wechsel von Fokus oder Tastatur-Benutzerschnittstellen-Aufrufen ein. Ein Z-Ordnungsverfahren 643 spezifiziert, dass die InkPicture Control vorne oder hinten in der Z-Ordnung innerhalb ihres grafischen Levels positioniert werden soll. Ein Steuergrößenereignis 644 tritt in Reaktion auf die InkPicture Control ein, die skaliert worden ist. Ein Größenmodus-Ereignis 654 tritt ansprechbar auf die Größenmodus-Eigenschaft 622 ein, die geändert worden ist. Ein Skalier/Bewegungsverfahren 646 spezifiziert die Bewegung und/oder das Skalieren der InkPicture Control. Ein Stil-Ereignis 647 tritt in Reaktion auf den Stil des InkPicture-Control-Wechsels ein. Ein Erschaffungsverfahren 648 spezifiziert die Erschaffung einer neuen InkPicture Control. Ein Ausziehverfahren 649 spezifiziert das beginnende Ende und/oder die Annullierung eines Ausziehbetriebs auf der InkPicture Control. Ein oder mehrere Maus/Griffeltasten-Ereignisse 650 treten in Reaktion auf den Maus/Griffel-Cursor ein, der sich über der InkPicture Control befindet, sowie auf eine Maustaste (oder einen Knopf eines Griffels), der gedrückt oder losgelassen wird. Ein oder mehrere Klick-Ereignisse 651 treten in Reaktion auf die InkPicture-Control auf, wenn sie mit Einfach- oder Doppelklick angeklickt wird. Ein oder mehrere Mauseingabe/-ausgabe-Ereignisse 652 treten in Reaktion auf den Maus/Griffel-Cursor auf, der die angezeigte Zone betritt oder verlässt, die an die InkPicture Control angeschlossen ist. Ein oder mehrere Mausbewegungsereignisse 653 treten in Reaktion auf den Maus/Griffel-Cursor ein, der sich über der InkPicture Control bewegt oder über der InkPicture Control schwebt. Ein Mausradereignis 654 tritt in Reaktion auf das Mausrad ein, wenn es sich bewegt, während die InkPicture Control Fokus hat. Ein Überziehungsereignis 655 tritt in Reaktion auf ein Objekt ein, das über die Grenzen der InkPicture Control hinweggezogen wird. Ein Zieh- und -Loslass-Ereignis 656 tritt in Reaktion auf einen Zieh- und -Loslass-Betrieb ein, der abgeschlossen wird. Ein oder mehrere Ziehpunkt-Verfahren 657 verursachen Ereignisse, die Reaktion auf einen Ziehpunkt sind, der erschaffen oder ausgelöscht wird. Ein oder mehrere Tastenereignisse 658 treten in Reaktion auf eine Taste ein, welche gedrückt oder Iosgelassen wird, während die InkPicture Control Fokus hat. Die InkPicture Control kann überdies irgendeines oder alle der Ereignisse versenden, die zuvor im Hinblick auf das InkOverlay-Objekt 501 erörtert worden sind.
  • Überlagern elektronischer Tinte
  • Bezugnehmend auf 7 kann ein Dokument 701 generiert oder auf andere Weise zur Verfügung gestellt werden. Das Dokument in der veranschaulichenden Ausführungsform von 7 ist ein Textdokument. Indes sollte der Begriff „Dokument" hierin weiter gefasst werden, um jedweden anderen Dokumenten-Typus zu umfassen, als da wären (aber nicht auf diese beschränkt:) ein Word-Verarbeitungs-Dokument (wie es etwa bei Verwendung von Microsoft WORD® generiert wird), ein Bilddokument, ein grafisches Dokument, ein Text-plus-Grafik-Dokument, ein Scanned-Paper-Dokument, ein Arbeitsblatt- bzw. ein Tabellen-Dokument, eine Fotografie und/oder ein Formular, das eine Mehrzahl von Feldern aufweist. Der Begriff „Dokument", wie er hierin zur Beschreibung der vorliegenden Erfindung verwendet wird, schließt außerdem innerhalb seines Bereiches eine Software-Anwendung ein.
  • Ein InkOverlay-Objekt und/oder eine InkPicture Control kann dahingehend definiert werden, dass sie eine oder mehrere einfärbende Flächen (etwa Fenster) erschaffen, die über dem ganzen Dokument 701 oder einem Teil von ihm angeordnet sind. Einem Beispiel gemäß, welches nicht unter die Erfindung fällt, kann das Fenster oder eine andere einfärbende Fläche transparent (entweder ganz oder halb durchsichtig) sein, so dass das darunter befindliche Dokument 701 zu sehen ist. Indes kann das ganze Fenster oder ein Teil von ihm opak sein und ein Hintergrundbild und/oder eine Hintergrundfarbe aufweisen (etwa durch Verwenden einer oder mehrerer der veranschaulichenden Hintergrund-Eigenschaften 604 der veranschaulichenden InkPicture Control). Wo ein Hintergrundbild verwendet wird, kann das Hintergrundbild das Dokument, als eine Alternative zum Überlagern des Fensters über ein separates Dokument, selber sein. Das Fenster kann wahlweise eine Randlinie 702 (hierin veranschaulichend dargestellt als gestrichelte Linie) haben, die opak oder in anderer Weise sichtbar sein kann. Wenn ein Benutzer unter Verwendung des Griffels 204 in der Fenster-Zone auf dem Bildschirm schreibt, werden aus der Handschrift Tintendaten eingesammelt, und dann können die Tintendaten gerendert und im Fenster als elektronische Tinte 703 angezeigt werden. Von daher mag es so aussehen, als werde die Tinte auf dem Dokument 701 von Hand geschrieben. Die Tintendaten können außerdem in einem Objekt, wie etwa dem Ink-Objekt, gespeichert werden. Außerdem können ein oder mehrere Ereignisse, etwa auf Malen bezogene Ereignisse 548, beim Rendern und/oder beim Beginn des Renderns und/oder nach Beendigung des Renderns der Tinte auslösen.
  • Der Benutzer kann überdies einen Bereich der bereits gerenderten Tinte 703 auswählen und den ausgewählten Bereich auf verschiedene Weise ändern. Wo zumindest ein Bereich der Tinte 703 ausgewählt ist (z. B. durch Umkreisen des ausgewählten Bereichs mit dem Griffel 204), kann ein Verweis auf den ausgewählten Bereich gespeichert werden. Der Auswahlbereich kann bewegt und/oder skaliert werden, in welchem Falle ein oder mehrere Ereignisse, wie etwa Ereignisse 549, während der Auswahlbewegung oder Skalierung und/oder zu Beginn des Bewegens und Skalierens und/oder nach Beendigung des Bewegens oder Skalierens der Auswahl auslösen können. Die ganze Tinte 703 oder einiges von ihr (etwa ein oder mehrere Striche) können darüber hinaus gelöscht werden. Der Benutzer und/oder eine Anwendung zum Beispiel können darum ersuchen, dass zumindest ein Bereich der Tinte 703 gelöscht werde und ein oder mehrere Ereignisse, etwa Ereignisse 551, während des Löschens der Tinte und/oder zu Beginn des Löschens der Tinte und/oder nach dem Löschen der Tinte auslösen können.
  • Im Hinblick auf das Obengesagte kann ein Anwendungsentwickler zu der Tinte innerhalb des InkOverlay-Objekts und/oder der InkPicture Control programiertechnischen Zugriff haben (d. h. die internen Strukturen direkt und nicht unbedingt via Benutzer-Eingabe oder Steuer-APIs modifizieren können). Der Entwickler und/oder Benutzer kann überdies in der Lage sein, die Auswahl von Tinte und/oder verschiedenen anderen Eigenschaften zu modifizieren. Das InkOverlay-Objekt kann dann die internen Details der Einrichtung eines Tablet-Kontextes, des Wartens auf Digitalisierer-Ereignisse und/oder des Sammelns und Deutens von Tintenstrichen gemäß ihres gegenwärtigen Modus verwalten.
  • Zum Beispiel kann der Entwickler problemlos Zugang zu Ereignissen haben, die mit neuen Strichen assoziiert sind, und die Position der neuen Tintenstriche mit Text und/oder Objekten im zugrundeliegenden Dokument 701 durch Abrufen von Positions-Metadaten aus den neuen Strichen vergleichen. Dergestalt kann ein Anwendungsentwickler, indem er Zugang zu den verschiedenen Ereignissen und Verfahren hat, die hierin beschrieben werden, einer Anwendung Datenstrukturen hinzufügen, um das Abbilden von Tinte auf Anwendungsdaten zu erleichtern. Dies kann zum Beispiel über das InkOverlay-Objekt erlauben, dass Gesten und/oder andere Befehle, die von dem Benutzer und/oder einer Anwendung ausgegeben werden, das zugrundeliegende Dokument 701 modifizieren. Zum Beispiel wird, wie in 7 dargestellt, ein Bereich des Textes im Dokument 701 mit Tinte eingekreist und ein großes „B" (für „ fett (bold)") in die Umkreisung geschrieben. Dies kann als Befehl zur Modifizierung des Textes im Dokument 701 gedeutet werden, welches eingekreist wird, um Fettdruck-Text zu sein. Oder ein Wort kann, wie in 7 dargestellt, gelöscht und/oder eingefügt werden (z. B. wird das Wort „defense" im zugrundeliegenden Dokument 701 gelöscht und ersetzt durch das neu eingefügte Wort „defence") unter Verwendung einer Geste und/oder eines anderen Befehls. Das Ergebnis dieser Gesten wird in 8 dargestellt.
  • Der Entwickler kann überdies problemlos seine oder ihre Anwendung konfigurieren, um Tinte im InkOverlay-Objekt als zugrundeliegenden Text und/oder Objekte in dem zugrundeliegenden Dokuments 701 neu anzuordnen. Dies kann zum Beispiel dadurch erreicht werden, dass Tintenstriche im InkOverlay-Objekt-Fenster positioniert und die Striche bewegt und/oder skaliert werden.
  • Der Entwickler kann ferner die systemeigene Editierfunktionalität des InkOverlay-Objekts problemlos erweitern, indem er auf verschiedene Ereignissen wartet, wie sie hierin beschrieben werden, um verschiedene Konzepte wie etwa Hervorhebung einzuschließen. Dies kann beispielsweise durch Außerkraftsetzen der Standard-Zeichnungsattribute-Eigenschaft erreicht werden. Der Entwickler kann außerdem Funktionalität hinzufügen wie etwa selektive Nur-Lese-Striche (durch selektiv zurückweisende Benutzer-Handhabung spezifischer Striche) sowie Syntaxanalyse (durch Zuführen von Strichen in ein Erkennungsprogramm) und/oder natürliche Benutzer-Gesten wie ,Radieren' mit dem Rücken des Griffels 204 (durch Warten auf „newcursor"-Ereignisse und Umschalten des InkOverlay Control-Modus').
  • Auch können mehr als nur ein InkOverlay-Objekt und/oder eine InkPicture Control über dem Dokument 701 zu jeweils einer Zeit disponiert werden, und diese multiplen Objekte und/oder Steuerungen können geschichtet werden. Unter Bezugnahme auf 9 kann (zum Beispiel) ein zweites InkOverlay-Objekt sofort gebildet werden und ein zweites Fenster mit einer zweiten optionalen Randlinie 901 aufweisen. Derselbe Benutzer oder ein weiterer Benutzer kann Tinte 902 auf dem zweiten InkOverlay-Objekt-Fenster schreiben, und die assoziierten Tintendaten können in dem InkOverlay-Objekt gespeichert und/oder in dem Fenster des zweiten InkOverlay-Objekts gerendert werden. Ersatzweise kann der Benutzer Tinte in das erste InkOverlay-Objekt-Fenster auf einer Position schreiben, an der das erste und das zweite Fenster sich überlappen, und die Tinte kann zu dem zweiten Fenster gesandt werden.
  • Während exemplarische Systeme und Verfahren, die, wie hierin beschrieben, verschiedene Aspekte der vorliegenden Erfindung ausführen, nur zu Beispielszwecken dargestellt sind, wird selbstverständlich vorausgesetzt, dass die Erfindung nicht auf diese Ausführungsformen beschränkt ist. Modifikationen können, zumal im Lichte der vorausgehenden Unterrichtung, von technischen Fachleuten vorgenommen werden. Zum Beispiel kann jedes der Elemente der zuvor erwähnten Ausführungsformen allein oder in Kombination mit Elementen der anderen Ausführungsformen genutzt werden. Wiewohl die Erfindung unter Verwendung der angehängten Ansprüche definiert worden ist, sind diese Ansprüche insofern exemplarisch, als die Erfindung darauf zielt, die hierin beschriebenen Elemente und Schritte in jeglicher Kombination oder Subkombination einzuschließen. Dementsprechend gibt es zum Definieren der Erfindung eine beliebige Anzahl alternativer Kombinationen, welche ein oder mehrere Elemente aus der Beschreibung in sich enthalten, einschließlich der Beschreibung, Ansprüche und Zeichnungen in verschiedenen Kombinationen oder Subkombinationen. Im Lichte der vorliegenden Beschreibung wird denjenigen, die in der relevanten Technologie geschult sind, evident sein, dass alternative Kombinationen von Aspekten der Erfindung, sei es allein, sei es in Kombination mit einem oder mehreren hierin definierten Elementen oder Schritten als Modifikationen oder Abwandlungen der Erfindung oder als Teil der Erfindung genutzt werden können. Es ist beabsichtigt, dass die schriftliche Beschreibung der Erfindung, wie sie hierin enthalten ist, alle solche Modifikationen und Abwandlungen abdeckt. Auch sollte anerkannt werden, dass, wiewohl verschiedene Namen von Objekten und anderen API-Elementen hierin zur Verfügung gestellt werden, solche Namen lediglich veranschaulichender Natur sind und jegliche Namen verwendet werden können, ohne dass dadurch der Bereich der Erfindung verlassen werden würde.

Claims (15)

  1. Ein Verfahren zum Überlagern elektronischer Tinte auf einem Dokument (701) in einem ersten Fenster, wobei das Verfahren die Schritte umfasst: Erzeugen eines zweiten Fensters über dem ersten Fenster, wobei das zweite Fenster ein Hintergrundbild besitzt, das zumindest einen Teil des Dokuments (701) umfasst; Sammeln von Tintendaten (504), die einen Befehl definieren und eine Sequenz oder einen Satz von Strichen umfassen, in dem zweiten Fenster; und Rendern der Tintendaten als gerenderte elektronische Tinte (703) in dem zweiten Fenster, so dass es erscheint, als ob die handgeschriebene Tinte auf dem Dokument geschrieben ist; Ändern des Dokuments in Übereinstimmung mit dem Befehl.
  2. Das Verfahren von Anspruch 1, weiterhin den Schritt des Speicherns der Tintendaten als ein Objekt einschließend.
  3. Das Verfahren von Anspruch 1, in dem das zweite Fenster eine opake Grenze (702) besitzt.
  4. Das Verfahren von Anspruch 1, in dem das Dokument (701) ein Textdokument umfasst.
  5. Das Verfahren von Anspruch 1, weiterhin die Schritte einschließend: Erzeugen eines ersten Ereignisses während des Schritts des Renderns; und Erzeugen eines zweiten Ereignisses, wenn der Schritt des Rendems beendet worden ist.
  6. Das Verfahren von Anspruch 1, weiterhin die Schritte einschließend: Empfangen einer Anforderung, zumindest einen Teil der gerenderten elektronischen Tinte (703) zu löschen; Erzeugen eines ersten Ereignisses in Reaktion auf die Anforderung; Löschen zumindest eines Teils der gerenderten elektronischen Tinte (703); und Erzeugen eines zweiten Ereignisses, wenn der Schritt des Löschens beendet worden ist.
  7. Das Verfahren von Anspruch 1, weiterhin die Schritte einschließend: Empfangen einer Anforderung, zumindest einen Teil der gerenderten elektronischen Tinte (703) auszuwählen; Auswählen des zumindest einen Teils der gerenderten elektronischen Tinte (703); und Speichern einer Referenz auf den zumindest einen Teil der gerenderten elektronischen Tinte (703).
  8. Das Verfahren von Anspruch 1, weiterhin die Schritte einschließend: Auswählen zumindest eines Teils der gerenderten elektronischen Tinte (703); Empfangen einer Anforderung, den zumindest einen Teil der gerenderten elektronischen Tinte (703) zu ändern; Erzeugen eines ersten Ereignisses in Reaktion auf die Anforderung; Ändern des zumindest einen Teils der gerenderten elektronischen Tinte (703); und Erzeugen eines zweiten Ereignisses, wenn der Schritt des Änderns beendet worden ist.
  9. Das Verfahren von Anspruch 8, in dem der Schritt des Änderns das Ändern der Menge des zumindest einen Teils der gerenderten elektronischen Tinte (703), der ausgewählt worden ist, einschließt.
  10. Das Verfahren von Anspruch 8, in dem der Schritt des Änderns das Ändern des zumindest einen Teils der gerenderten elektronischen Tinte (703) zu einem anderen zumindest einen Teil der gerenderten elektronischen Tinte (703) einschließt.
  11. Das Verfahren von Anspruch 1, weiterhin einen Schritt einer Anwendung einschließend, die dem entspricht, dass das erste Fenster die Erzeugung des zweiten Fensters anfordert.
  12. Das Verfahren von Anspruch 1, weiterhin das Setzen einer Eigenschaft einschließend, die mit dem zweiten Fenster assoziiert ist und das Handle des ersten Fensters repräsentiert.
  13. Das Verfahren von Anspruch 1, weiterhin das Lesen einer Eigenschaft einschließend, die mit dem zweiten Fenster assoziiert ist, und die darstellt, ob sich das zweite Fenster in einem Nur-Tinte-Sammelmodus, Nur-Gestik-Sammelmodus oder einem Gestik- und -Tinte-Sammelmodus befindet.
  14. Das Verfahren von Anspruch 1, weiterhin einen Schritt einer Anwendung einschließend, die von dem Auswählen zumindest eines Teils der Tintendaten in dem zweiten Fenster durch das zweite Fenster verschieden ist.
  15. Das Verfahren von Anspruch 1, weiterhin einen Schritt einer Anwendung einschließend, die von dem Ändern zumindest eines Teils der Tintendaten in dem zweiten Fenster durch das zweite Fenster verschieden ist.
DE60314563T 2002-05-14 2003-04-23 Überlagerung mit elektronischer Tinte Expired - Lifetime DE60314563T2 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US37978102P 2002-05-14 2002-05-14
US37974902P 2002-05-14 2002-05-14
US379749P 2002-05-14
US379781P 2002-05-14
US10/183,987 US8166388B2 (en) 2002-05-14 2002-06-28 Overlaying electronic ink
US183987 2002-06-28

Publications (2)

Publication Number Publication Date
DE60314563D1 DE60314563D1 (de) 2007-08-09
DE60314563T2 true DE60314563T2 (de) 2007-10-25

Family

ID=29273574

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60314563T Expired - Lifetime DE60314563T2 (de) 2002-05-14 2003-04-23 Überlagerung mit elektronischer Tinte

Country Status (8)

Country Link
US (1) US8166388B2 (de)
EP (1) EP1363231B1 (de)
JP (1) JP2004030632A (de)
CN (1) CN1318940C (de)
AT (1) ATE365950T1 (de)
DE (1) DE60314563T2 (de)
HK (1) HK1061586A1 (de)
TW (1) TWI291114B (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020019845A1 (en) 2000-06-16 2002-02-14 Hariton Nicholas T. Method and system for distributed scripting of presentations
US7397949B2 (en) * 2000-06-21 2008-07-08 Microsoft Corporation Serial storage of ink and its properties
US7284200B2 (en) * 2002-11-10 2007-10-16 Microsoft Corporation Organization of handwritten notes using handwritten titles
US7634729B2 (en) * 2002-11-10 2009-12-15 Microsoft Corporation Handwritten file names
US20040117724A1 (en) * 2002-12-03 2004-06-17 Microsoft Corporation Extensible schema for ink
US7551187B2 (en) * 2004-02-10 2009-06-23 Microsoft Corporation Systems and methods that utilize a dynamic digital zooming interface in connection with digital inking
US7284192B2 (en) 2004-06-24 2007-10-16 Avaya Technology Corp. Architecture for ink annotations on web documents
US20060064643A1 (en) * 2004-09-14 2006-03-23 Hariton Nicholas T Distributed scripting for presentations with touch screen displays
US20060059432A1 (en) * 2004-09-15 2006-03-16 Matthew Bells User interface having viewing area with non-transparent and semi-transparent regions
JP2007156219A (ja) * 2005-12-07 2007-06-21 Seiko Epson Corp 情報表示システム、情報表示装置および位置指示装置
US7818660B2 (en) 2006-01-29 2010-10-19 Litera Technology Llc Method of compound document comparison
US7774722B2 (en) * 2006-01-31 2010-08-10 Microsoft Corporation Creation and manipulation of canvases based on ink strokes
WO2007120773A2 (en) * 2006-04-14 2007-10-25 Advanced Solutions, Inc. Method, system, and computer-readable medium to uniformly render document annotations across multiple computer platforms
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US20080168402A1 (en) * 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US20090219250A1 (en) * 2008-02-29 2009-09-03 Ure Michael J Interface with and communication between mobile electronic devices
KR101383716B1 (ko) * 2007-08-17 2014-04-10 삼성디스플레이 주식회사 전기 영동 표시 장치의 구동 장치 및 구동 방법
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US7930642B1 (en) * 2008-03-20 2011-04-19 Intuit Inc. System and method for interacting with hard copy documents
US9186579B2 (en) * 2008-06-27 2015-11-17 John Nicholas and Kristin Gross Trust Internet based pictorial game system and method
US10685177B2 (en) 2009-01-07 2020-06-16 Litera Corporation System and method for comparing digital data in spreadsheets or database tables
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US8136031B2 (en) 2009-03-17 2012-03-13 Litera Technologies, LLC Comparing the content of tables containing merged or split cells
US9063932B2 (en) * 2009-12-18 2015-06-23 Vertafore, Inc. Apparatus, method and article to manage electronic or digital documents in a networked environment
US8700682B2 (en) * 2009-12-24 2014-04-15 Vertafore, Inc. Systems, methods and articles for template based generation of markup documents to access back office systems
CN101882432B (zh) * 2010-02-01 2012-07-04 深圳市同洲电子股份有限公司 一种焦点元素显示方法、装置及数字电视接收终端
US10216408B2 (en) 2010-06-14 2019-02-26 Apple Inc. Devices and methods for identifying user interface objects based on view hierarchy
US9323807B2 (en) * 2010-11-03 2016-04-26 Sap Se Graphical manipulation of data objects
US9384198B2 (en) 2010-12-10 2016-07-05 Vertafore, Inc. Agency management system and content management system integration
US8731973B2 (en) 2011-04-19 2014-05-20 Vertafore, Inc. Overlaying images in automated insurance policy form generation
KR101873741B1 (ko) * 2011-10-26 2018-07-03 엘지전자 주식회사 휴대 단말기 및 그 제어 방법
US9529486B2 (en) * 2012-03-29 2016-12-27 FiftyThree, Inc. Methods and apparatus for providing a digital illustration system
US9280524B2 (en) * 2012-06-28 2016-03-08 Texas Instruments Incorporated Combining a handwritten marking with a rendered symbol to modify the rendered symbol
KR101899816B1 (ko) * 2012-07-26 2018-09-20 엘지전자 주식회사 단말 장치 및 이의 필기 공유 방법
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
US9696810B2 (en) 2013-06-11 2017-07-04 Microsoft Technology Licensing, Llc Managing ink content in structured formats
JP6201488B2 (ja) * 2013-07-29 2017-09-27 富士通株式会社 選択文字特定プログラム、選択文字特定方法、及び、選択文字特定装置
US9507814B2 (en) 2013-12-10 2016-11-29 Vertafore, Inc. Bit level comparator systems and methods
US9367435B2 (en) 2013-12-12 2016-06-14 Vertafore, Inc. Integration testing method and system for web services
KR102266869B1 (ko) 2014-04-03 2021-06-21 삼성전자주식회사 전자 장치 및 전자 장치의 디스플레이 방법
US10270819B2 (en) 2014-05-14 2019-04-23 Microsoft Technology Licensing, Llc System and method providing collaborative interaction
US9552473B2 (en) 2014-05-14 2017-01-24 Microsoft Technology Licensing, Llc Claiming data from a virtual whiteboard
US9747556B2 (en) 2014-08-20 2017-08-29 Vertafore, Inc. Automated customized web portal template generation systems and methods
KR102393295B1 (ko) 2014-09-18 2022-05-02 삼성전자주식회사 컨텐트를 스타일링하는 장치 및 방법
JP2016071819A (ja) * 2014-10-02 2016-05-09 株式会社東芝 電子機器および方法
CN104391834A (zh) * 2014-12-11 2015-03-04 成都明日星辰科技有限公司 一种对电子书内容进行注释的方法
US10089291B2 (en) * 2015-02-27 2018-10-02 Microsoft Technology Licensing, Llc Ink stroke editing and manipulation
US9950542B2 (en) 2015-03-12 2018-04-24 Microsoft Technology Licensing, Llc Processing digital ink input subject to monitoring and intervention by an application program
US9600400B1 (en) 2015-10-29 2017-03-21 Vertafore, Inc. Performance testing of web application components using image differentiation
US20170351650A1 (en) * 2016-06-01 2017-12-07 Cisco Technology, Inc. Digital conversation annotation
US10699746B2 (en) 2017-05-02 2020-06-30 Microsoft Technology Licensing, Llc Control video playback speed based on user interaction
CN111524211B (zh) * 2020-04-17 2024-01-23 杭州海康威视数字技术股份有限公司 笔迹擦除方法、装置及设备

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002799A (en) 1986-07-25 1999-12-14 Ast Research, Inc. Handwritten keyboardless entry computer system
US5125039A (en) 1989-06-16 1992-06-23 Hawkins Jeffrey C Object recognition system
US5309555A (en) 1990-05-15 1994-05-03 International Business Machines Corporation Realtime communication of hand drawn images in a multiprogramming window environment
US5347295A (en) 1990-10-31 1994-09-13 Go Corporation Control of a computer through a position-sensed stylus
US5220649A (en) 1991-03-20 1993-06-15 Forcier Mitchell D Script/binary-encoded-character processing method and system with moving space insertion mode
EP0566293B1 (de) 1992-04-15 2003-07-16 Xerox Corporation Vorrichtungen und Verfahren zum graphischen Zeichnen und Ausgabe
US5583543A (en) * 1992-11-05 1996-12-10 Sharp Kabushiki Kaisha Pen input processing apparatus
US5404442A (en) 1992-11-30 1995-04-04 Apple Computer, Inc. Visible clipboard for graphical computer environments
JPH06310472A (ja) 1993-04-21 1994-11-04 Rohm Co Ltd 透明基板上の薄膜段差の平坦化法
US5528743A (en) * 1993-05-27 1996-06-18 Apple Computer, Inc. Method and apparatus for inserting text on a pen-based computer system
US5710831A (en) * 1993-07-30 1998-01-20 Apple Computer, Inc. Method for correcting handwriting on a pen-based computer
US5367453A (en) 1993-08-02 1994-11-22 Apple Computer, Inc. Method and apparatus for correcting words
US5500937A (en) * 1993-09-08 1996-03-19 Apple Computer, Inc. Method and apparatus for editing an inked object while simultaneously displaying its recognized object
US5749070A (en) 1993-09-09 1998-05-05 Apple Computer, Inc. Multi-representational data structure for recognition in computer systems
US5546538A (en) * 1993-12-14 1996-08-13 Intel Corporation System for processing handwriting written by user of portable computer by server or processing by the computer when the computer no longer communicate with server
US5534893A (en) * 1993-12-15 1996-07-09 Apple Computer, Inc. Method and apparatus for using stylus-tablet input in a computer system
US5561446A (en) 1994-01-28 1996-10-01 Montlick; Terry F. Method and apparatus for wireless remote information retrieval and pen-based data entry
EP0769175B9 (de) 1994-07-01 2005-01-12 Palm Computing, Inc. Zeichensatz mit zeichen aus mehreren strichen und handschrifterkennungssystem
JPH0816313A (ja) 1994-07-04 1996-01-19 Sanyo Electric Co Ltd 手書き入力方法及び装置
US5680480A (en) 1994-07-29 1997-10-21 Apple Computer, Inc. Method and apparatus for training a recognizer
JPH0869351A (ja) 1994-08-26 1996-03-12 Toshiba Corp ペン入力装置及びペン入力方法
US5768607A (en) * 1994-09-30 1998-06-16 Intel Corporation Method and apparatus for freehand annotation and drawings incorporating sound and for compressing and synchronizing sound
DE69422406T2 (de) 1994-10-28 2000-05-04 Hewlett Packard Co Verfahren zum Durchführen eines Vergleichs von Datenketten
JPH08305821A (ja) 1995-04-28 1996-11-22 Canon Inc データ処理方法とその装置
EP0741379A1 (de) * 1995-05-04 1996-11-06 Winbond Electronics Corporation Skalierter Video-Ausgang, der einen graphischen Computerausgang überlagert
US5761328A (en) 1995-05-22 1998-06-02 Solberg Creations, Inc. Computer automated system and method for converting source-documents bearing alphanumeric text relating to survey measurements
US5682439A (en) 1995-08-07 1997-10-28 Apple Computer, Inc. Boxed input correction system and method for pen based computer systems
JPH09160914A (ja) 1995-12-08 1997-06-20 Matsushita Electric Ind Co Ltd ペン入力装置
US5917493A (en) 1996-04-17 1999-06-29 Hewlett-Packard Company Method and apparatus for randomly generating information for subsequent correlating
JPH09305698A (ja) 1996-05-10 1997-11-28 Sharp Corp 文字入力表示装置
US5850480A (en) 1996-05-30 1998-12-15 Scan-Optics, Inc. OCR error correction methods and apparatus utilizing contextual comparison
US5862256A (en) 1996-06-14 1999-01-19 International Business Machines Corporation Distinguishing gestures from handwriting in a pen based computer by size discrimination
JP3839877B2 (ja) 1996-07-05 2006-11-01 キヤノン株式会社 手書きパターン処理装置及び手書きパターン処理方法
US6128007A (en) * 1996-07-29 2000-10-03 Motorola, Inc. Method and apparatus for multi-mode handwritten input and hand directed control of a computing device
JPH1069479A (ja) 1996-08-29 1998-03-10 Sharp Corp 文書作成方法および文書作成プログラムを記録した媒体
US5953523A (en) * 1996-10-28 1999-09-14 International Business Machines Corporation Method and apparatus for creating "smart forms "
US5889888A (en) * 1996-12-05 1999-03-30 3Com Corporation Method and apparatus for immediate response handwriting recognition system that handles multiple character sets
JPH1186015A (ja) 1997-09-09 1999-03-30 Canon Inc 情報処理方法及び装置及びその記憶媒体
JPH11143986A (ja) 1997-10-17 1999-05-28 Internatl Business Mach Corp <Ibm> ビットマップイメージの処理方法及び処理装置、ビットマップイメージの処理を行うイメージ処理プログラムを格納した記憶媒体
US6000946A (en) * 1998-03-09 1999-12-14 Hewlett-Packard Company Collaborative drawing device
US6584479B2 (en) * 1998-06-17 2003-06-24 Xerox Corporation Overlay presentation of textual and graphical annotations
US6563494B1 (en) 1998-10-08 2003-05-13 International Business Machines Corporation Cut and paste pen for pervasive computing devices
US6389435B1 (en) * 1999-02-05 2002-05-14 Fuji Xerox, Co, Ltd. Method and system for copying a freeform digital ink mark on an object to a related object
US6565611B1 (en) 1999-02-26 2003-05-20 Xerox Corporation Automatic index creation for handwritten digital ink notes
US20010040551A1 (en) * 1999-07-29 2001-11-15 Interlink Electronics, Inc. Hand-held remote computer input peripheral with touch pad used for cursor control and text entry on a separate display
US6909439B1 (en) 1999-08-26 2005-06-21 International Business Machines Corporation Method and apparatus for maximizing efficiency of small display in a data processing system
US6813396B1 (en) 2000-02-16 2004-11-02 Telefonatiebolaget L.M. Ericsson (Publ) Method for sharing information between electronic reading devices
US6924791B1 (en) 2000-03-09 2005-08-02 Palmone, Inc. Method and apparatus for automatic power-up and power-down of a computer system based on the positions of an associated stylus and/or hinge
JP2001266071A (ja) 2000-03-21 2001-09-28 Fujitsu Ltd 手書き文字入力装置と方法及びそれを実現するためのプログラムを記録した記録媒体
US6355889B1 (en) 2000-06-28 2002-03-12 International Business Machines Corporation Method and apparatus for linking electronic ink to electronic personal information systems
US6961029B1 (en) 2000-11-08 2005-11-01 Palm, Inc. Pixel border for improved viewability of a display device
GB2372339A (en) * 2001-01-17 2002-08-21 Priorlease Ltd An arrangement for applying handwriting to an HTML document
US6741749B2 (en) 2001-01-24 2004-05-25 Advanced Digital Systems, Inc. System, device, computer program product, and method for representing a plurality of electronic ink data points
US6661409B2 (en) 2001-08-22 2003-12-09 Motorola, Inc. Automatically scrolling handwritten input user interface for personal digital assistants and the like
US6903751B2 (en) 2002-03-22 2005-06-07 Xerox Corporation System and method for editing electronic images
US7120872B2 (en) * 2002-03-25 2006-10-10 Microsoft Corporation Organizing, editing, and rendering digital ink
US7158675B2 (en) 2002-05-14 2007-01-02 Microsoft Corporation Interfacing with ink

Also Published As

Publication number Publication date
CN1318940C (zh) 2007-05-30
HK1061586A1 (en) 2004-09-24
CN1461986A (zh) 2003-12-17
TWI291114B (en) 2007-12-11
ATE365950T1 (de) 2007-07-15
DE60314563D1 (de) 2007-08-09
JP2004030632A (ja) 2004-01-29
US20030217336A1 (en) 2003-11-20
US8166388B2 (en) 2012-04-24
EP1363231A3 (de) 2004-06-30
EP1363231B1 (de) 2007-06-27
EP1363231A2 (de) 2003-11-19
TW200406696A (en) 2004-05-01

Similar Documents

Publication Publication Date Title
DE60314563T2 (de) Überlagerung mit elektronischer Tinte
DE4301766C2 (de) Verfahren zum Darstellen eines doppelseitigen, umwendbaren elektronischen Papiers
DE60314977T2 (de) Tintensegmentierer und zugehöriges Programm
DE69732547T2 (de) Verfahren und Gerät zum Zusammenklappen und zur Ausdehnung auserwählter Bereiche von Arbeitsräumen auf einem von einem Rechner kontrollierten Anzeigesystem
EP0635808B1 (de) Verfahren und Vorrichtung zum Bearbeiten von Modell-Datenstrukturen eines Bildes, um ein für Menschen erkennbares Resultat zu erreichen
CA2124604C (en) Method and apparatus for operating on an object-based model data structure to produce a second image in the spatial context of a first image
US20030214553A1 (en) Ink regions in an overlay control
DE60012971T2 (de) System, verfahren und benutzerschnittstelle zum aktiven lesen eines elektronischen dokuments
US7870501B2 (en) Method for hollow selection feedback
US6965384B2 (en) In-situ digital inking for applications
DE69907287T2 (de) Rechnersysteme
DE102012202558A1 (de) Erzeugung einer Abfrage aus dargestellten Textdokumenten unter Anwendung virtueller Magnete
AU2010219367B2 (en) Ink collection and rendering
DE10051680A1 (de) Schema zur Darstellung mehrerer Druckauftragsabänderungselemente in einer Drucksoftware-Benutzerschnittstelle
US7428711B2 (en) Glow highlighting as an ink attribute
MXPA05000208A (es) Representacion grafica, almacenamiento y divulgacion de pensamiento desplegado.
DE60203525T2 (de) Vorrichtung und verfahren in einer büroapplikation zur bereitstellung von inhaltsabhängiger hilfeinformation
JP3950937B2 (ja) インターフェースの方法、複合文書生成方法、及び複合文書表示方法
DE60015967T2 (de) System und verfahren zur änderung der drehlage von anzeigedaten
DE112012003949T5 (de) Auf Zeichen beruhendes elektronisches System und Verfahren für Enthaltensein
DE102021005893A1 (de) Automatisierte digitale Werkzeugidentifikation aus einem Rasterbild
WO2023083663A1 (de) Organisationsmodul und verfahren zur datenorganisation
RU2365979C2 (ru) Ввод и воспроизведение электронных чернил
KR100952562B1 (ko) 스타일러스-기반 입력 시스템 및 그를 위한 컴퓨터-구현 프로세스
Bournique et al. The Interactive Planning Work Station: A Graphics-Based UNIX™ Tool for Application Users and Developers

Legal Events

Date Code Title Description
8364 No opposition during term of opposition