-
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.