BE1026977B1 - Werkwijze en inrichting en systeem voor het verschaffen van dubbele muis ondersteuning - Google Patents

Werkwijze en inrichting en systeem voor het verschaffen van dubbele muis ondersteuning Download PDF

Info

Publication number
BE1026977B1
BE1026977B1 BE20195035A BE201905035A BE1026977B1 BE 1026977 B1 BE1026977 B1 BE 1026977B1 BE 20195035 A BE20195035 A BE 20195035A BE 201905035 A BE201905035 A BE 201905035A BE 1026977 B1 BE1026977 B1 BE 1026977B1
Authority
BE
Belgium
Prior art keywords
message
pointing device
mouse
computer
pointing
Prior art date
Application number
BE20195035A
Other languages
English (en)
Other versions
BE1026977A1 (nl
Inventor
Lambert Jacobs
Original Assignee
Inventrans Bvba
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 Inventrans Bvba filed Critical Inventrans Bvba
Priority to BE20195035A priority Critical patent/BE1026977B1/nl
Priority to BE20195220A priority patent/BE1027027B1/nl
Priority to BE20195219A priority patent/BE1026980B1/nl
Priority to US16/374,305 priority patent/US11016588B2/en
Publication of BE1026977A1 publication Critical patent/BE1026977A1/nl
Application granted granted Critical
Publication of BE1026977B1 publication Critical patent/BE1026977B1/nl

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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03543Mice or pucks
    • 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
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0382Plural input, i.e. interface arrangements in which a plurality of input device of the same type are in communication with a PC
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)
  • Position Input By Displaying (AREA)

Abstract

Een computer-geïmplementeerde werkwijze (5000) voor het verschaffen van een overlay-applicatie (4551) voor een computerinrichting (4501) met twee aanwijsinrichtingen (4503R, 4503L), en met een muis-filter-driver (4563) geconfigureerd om bepaalde berichten van de aanwijsinrichtingen om te zetten naar bewegingssequenties, die onder meer de stappen omvat van: a) verschaffen (5001) van een grafisch overlayvenster; b) het besturingssysteem (4560) toelaten de native muiscursor (705) te tonen; d) verschaffen van een berichtenverwerker (4552; 4652) om ruwe inputberichten te verwerken; e) bijhouden (5005) van een eerste en tweede positie (Pos1, Pos2) in overeenstemming met bewegingen van de eerste en tweede aanwijsinrichting; f) aanpassen (5006) van een positie van de native muiscursor (705) in overeenstemming met bewegingen van de eerste of tweede aanwijsinrichting (4503R, 4503L) die het meest recent bewogen of bediend werd; g) detecteren (5007) en omzetten van de bewegingssequenties naar een overeenkomstig commando, teneinde een computerinrichting met dubbele muisfunctionaliteit te verschaffen. Een computer-programma-product. Een muis-filter-driver.

Description

WERKWIJZE EN INRICHTING EN SYSTEEM VOOR HET VERSCHAFFEN VAN DUBBELE MUIS
ONDERSTEUNING Domein van de uitvinding De onderhavige uitvinding heeft in het algemeen betrekking op het domein van computers met een grafische gebruikersinterface en meerdere aanwijsinrichtingen. Meer bepaald, heeft de onderhavige uitvinding betrekking op een overlay-applicatie, een computerinrichting, een muis-filter- driver, een computerinrichting, en een computersysteem voor dubbele muis ondersteuning. Achtergrond van de uitvinding FIG. 1 toont een schematisch blokdiagram van een klassiek computersysteem 100 omvattende een computerinrichting 101 (bijv. een desktopcomputer) met een toetsenbordingang verbonden met een toetsenbordinrichting 102, en met een muisingang verbonden met een muisinrichting 103, en met een video-uitgang verbonden met een weergavescherm of monitor of scherm 104. De computerinrichting 101 van FIG.1 omvat één of meerdere centrale verwerkingseenheden (CPU) die een besturingssysteem O/S met een grafische gebruikersinterface GUI uitvoeren, zoals bijvoorbeeld Windows 7 of Windows 10 van Microsoft Corporation, of mac OS 10.12 Sierra of mac OS 10.13 High Sierra van Apple Inc. In het voorbeeld van FIG. 1, voert de computer 101 ook twee applicaties uit: een PDF-documentviewer 107a (bijv. Acrobat Reader) getoond aan de linkerzijde van het scherm 104, en een teksteditor 107b (bijv. Microsoft Word) getoond aan de rechterzijde van het scherm 104.
Een dergelijk systeem 100 kan bijvoorbeeld gebruikt worden door een vertaler of een proeflezer voor het simultaan bekijken van een brondocument, bijvoorbeeld een verleend Europees octrooidocument met Engelse, Franse en Duitse conclusies, en een vertaling van de conclusies naar een andere taal (bijv. Nederlands of Spaans of Italiaans). Hoewel de vertaling zelf typisch zal uitgevoerd worden gebruikmakend van een CAT-tool (computerondersteund vertalen}, wordt de stap van het finaal proeflezen bij voorkeur uitgevoerd door het vergelijken van het origineel PDF-document en het finale tekstdocument, of indien het finale document ook geconverteerd is naar een PDF- document, door het vergelijken van de twee PDF documenten.
Bij het proeflezen (of het verifiëren en/of corrigeren van de vertaling), moet de vertaler of proeflezer zijn focus steeds heen en weer verschuiven tussen de visuele voorstellingen van de twee documenten 1074, 107b, en moet steeds opnieuw de huidige context verwerven in elk van deze documenten, wat tijdrovend is en mentaal veeleisend. Deze cognitieve last kan verlaagd worden door bijvoorbeeld fysiek naar de woorden van de brontekst te wijzen, gebruikmakend van een vinger van de niet-dominante hand, en door overeenkomstige woorden van de doeltekst aan te duiden gebruikmakend van de muiscursor 105, die bewogen kan worden op het scherm door de muisinrichting 103 fysiek te bewegen, welke in de dominante hand gehouden wordt, zoals getoond in
FIG. 1 voor een rechtshandig persoon. Een linkshandig persoon zal de muis typisch met zijn linkerhand bewegen, en zal met zijn rechterhand naar het scherm wijzen.
Maar dit proces is niet ideaal, onder andere omdat de arm niet altijd kan rusten op de tafel, in het bijzonder met grotere schermafmetingen, of met schermen die boven de tafel gemonteerd zijn.
Voorts, wanneer een vertaalfout gevonden wordt, en een correctie gemaakt dient te worden, worden beide handen typisch naar het toetsenbord 102 gebracht om te typen, zodanig dat de context opnieuw verloren gaat en opnieuw verworven dient te worden nadat de correctie gemaakt is. Het zou voordelig zijn indien het computersysteem 100 een mechanisme zou verschaffen dat mogelijk maakt dat een gebruiker eenvoudig de focus kan verwisselen tussen twee leeslocaties op het scherm 104, welke locaties eenvoudig en intuïtief bewogen kunnen worden.
FIG. 2 toont een ander probleem. Bij het lezen van een document, gebruikt een gebruiker doorgaans de muiscursor om te wijzen naar de woorden die hij momenteel aan het lezen is. Wanneer de persoon sommige woorden wil markeren of onderlijnen of opmerkingen wil toevoegen, dan moet de muiscursor typisch naar de top van het scherm bewogen worden, waar de gebruiker moet klikken om een markeringskleur te kiezen, of een schrijfmachinetool, of een commentaarveld, enz., maar door dit te doen, gaat de context van waar hij aan het lezen was verloren, en moet de context opnieuw verworven worden, wat tijdrovend is. Het zou voordelig zijn indien het computersysteem 200 een mechanisme zou verschaffen dat mogelijk maakt dat een gebruiker eenvoudig de focus kan verwisselen tussen een leeslocatie en een werklocatie, welke locaties eenvoudig en intuïtief bewogen kunnen worden.
FIG. 3 toont een ander probleem. Bij het schrijven of controleren van bepaalde teksten (bijvoorbeeld conclusies van een octrooi-aanvrage), kan het wenselijk zijn om twee verschillende gedeeltes van één enkel tekstdocument te vergelijken, bijvoorbeeld een eerste gedeelte dat product- conclusies bevat en een tweede gedeelte dat werkwijze-conclusies bevat. In de praktijk wil de gebruiker soms beide tekstgedeeltes wijzigen, wat tamelijk eenvoudig is voor het lagergelegen tekstgedeelte van het voorbeeld getoond in FIG. 3, omdat dat is waar de muiscursor 305 gesitueerd is, maar niet eenvoudig is voor het bovenste tekstgedeelte, waar de vinger gesitueerd is. De gebruiker kan de positie van de vinger en de muiscursor verwisselen, maar dat is niet eenvoudig in de praktijk zonder de context opnieuw te verwerven op beide locaties, wat tijdrovend is. Het zou voordelig zijn indien het computersysteem 300 een mechanisme zou verschaffen dat mogelijk maakt dat een gebruiker eenvoudig kan wisselen tussen twee verschillende locaties op het scherm, om te lezen en/of om te editeren, welke locaties eenvoudig en intuïtief bewogen kunnen worden.
FIG. 4 toont een ander probleem. Bij het transcriberen (overzetten) van een geluidsfragment (d.w.z. het converteren van gesproken tekst naar een geschreven document}, kan een gebruiker gebruik maken van een audiospeler-applicatie (bijv. VLC Media Player) om een geluidsfragment te spelen gebruikmakend van een start/stop-knop, en een teksteditor-applicatie voor het typen van deovereenkomstige tekstinformatie. Gebruikmakend van gekende computers, zou de gebruiker typisch de muiscursor verplaatsen naar de audiospeler, klikken op het venster 417 van de audiospeler om de audiospeler-applicatie te activeren, klikken op de startknop, de audiospeler enkele seconden laten spelen, klikken op de start/pauze-knop om de audiospeler te pauzeren, de muiscursor verplaatsen naar de teksteditor, klikken op het venster van de teksteditor om de teksteditor-applicatie te activeren, optioneel opnieuw klikken om de muiscursor te herpositioneren in het tekstdocument, de overeenkomstige tekst intypen gebruikmakend van het toetsenbord, de muiscursor 405 terug verplaatsen naar de audiospeler, en dezelfde stappen opnieuw en opnieuw herhalen totdat het audiofragment volledig getranscribeerd is. Het heen en weer bewegen van de muiscursor 405 tussen de start/stop-knop van de audiospeler 417 en de huidige positie in de teksteditor 407 is tijdrovend, vooral aangezien de muiscursor accuraat gepositioneerd dient te worden teneinde niet op de verkeerde knop te klikken, bijvoorbeeld op een terugspoelknop, omdat een ongewilde klik op deze knop nog méér tijd zou kosten, omdat de gebruiker het audiofragment zal moeten terugvinden. Het zou voordelig zijn indien het computersysteem 400 een mechanisme zou verschaffen dat het mogelijk maakt dat de gebruiker op twee verschillende schermlocaties kan werken door beide handen te gebruiken, vooral wanneer één van deze locaties een nagenoeg vaste positie op het scherm heeft. Samenvatting van de uitvinding Het is een doel van uitvoeringsvormen van de onderhavige uitvinding om een computer- geïmplementeerde werkwijze te verschaffen, een computerprogrammaproduct, een muis-filter-driver, een computerinrichting en een computersysteem voor het verschaffen van dubbele muisondersteuning.
Het is een doel van uitvoeringsvormen van de onderhavige uitvinding om een mechanisme te verschaffen om de functionaliteit te verbeteren of uit te breiden van een computerinrichting die een besturingssysteem (O/S) met een grafische gebruikersinterface (GUI) uitvoert teneinde twee aanwijsinrichtingen te ondersteunen in plaats van slechts één.
Het is een specifiek doel van zulke uitvoeringsvormen dat het mechanisme correct reageert wanneer de eerste en tweede muisinrichting apart bediend worden (verplaatsen, scrollen, klikken.
Het is een specifiek doel van zulke uitvoeringsvormen dat het mechanisme correct reageert wanneer beide muisinrichtingen tegelijk verplaatst worden.
Het is een specifiek doel van zulke uitvoeringsvormen dat het mechanisme correct reageert wanneer tegelijk één muisinrichting gescrold wordt, en de andere muisinrichting verplaatst wordt.
Het is een specifiek doel van zulke uitvoeringsvormen dat het mechanisme correct reageert wanneer beide muisinrichtingen tegelijk gescrold worden.
Het is een specifiek doel van zulke uitvoeringsvormen dat het mechanisme correct reageert wanneer tegelijk met één muisinrichting geklikt wordt, en de andere muisinrichting verplaatst wordt.
Het is een doel van uitvoeringsvormen van de onderhavige uitvinding om een computer- geïmplementeerde werkwijze te verschaffen om de functionaliteit te verbeteren of uit te breiden van een O/S en GUI, bijvoorbeeld een bestaand O/S en GUI dat één enkele native muiscursor of muisaanwijzer verschaft en één enkele native cursorpositie onderhoudt, teneinde twee zichtbare voorwerpen te tonen en twee voorwerpposities bij te houden, welke voorwerpen individueel beweegbaar zijn door middel van twee aanwijsinrichtingen.
Het is een doel van uitvoeringsvormen van de onderhavige uitvinding om een computer- geïmplementeerde werkwijze te verschaffen voor het verbeteren of uitbreiden van de functionaliteit van een O/S en GUI, bijvoorbeeld een bestaand O/S en GUI dat één enkele native muiscursor of muisaanwijzer verschaft en één enkele native cursorpositie onderhoudt, teneinde ten minste twee zichtbare voorwerpen te tonen en ten minste twee voorwerpposities bij te houden, welke voorwerpen individueel beweegbaar zijn door middel van ten minste twee aanwijsinrichtingen.
Het is een doel van bepaalde uitvoeringsvormen van de onderhavige uitvinding om een dergelijke computer-geïmplementeerde werkwijze te verschaffen, waar één van de zichtbare voorwerpen de native muiscursor of muisaanwijzer is die door het O/S en de GUI verschaft wordt.
Het is een doel van bepaalde uitvoeringsvormen van de onderhavige uitvinding om een dergelijke computer-geïmplementeerde werkwijze te verschaffen welke reageert op bewegingen van de ten minste twee aanwijsinrichtingen.
Het is een doel van bepaalde uitvoeringsvormen van de onderhavige uitvinding om een dergelijke computer-geïmplementeerde werkwijze te verschaffen welke reageert op bewegingen van de ten minste twee aanwijsinrichtingen, en/of op het indrukken van knoppen en het loslaten van knoppen en het klikken op knoppen van één of beide van de aanwijsinrichtingen, en/of op scrolwielbewegingen van één of beide aanwijsinrichtingen.
Het is een doel van bepaalde uitvoeringsvormen van de onderhavige uitvinding om een dergelijke computer-geïmplementeerde werkwijze te verschaffen voor het verbeteren van de functionaliteit van het Windows-besturingssysteem van Microsoft Corporation, met hoofdkantoor in Redmond, Washington, bijv. Windows 7 of Windows 10 of latere versies van Windows.
Het is een doel van bepaalde uitvoeringsvormen van de onderhavige uitvinding om een dergelijke computer-geïmplementeerde werkwijze te verschaffen voor het verbeteren van de functionaliteit van het mac OS van Apple Inc. met hoofdkantoor in Cupertino, Californië, US, bijv. mac OS Sierra of mac OS High Sierra of later.
Het is een doel van bepaalde uitvoeringsvormen van de onderhavige uitvinding om een dergelijke computer-geïmplementeerde werkwijze te verschaffen voor het verbeteren van de functionaliteit van andere Operating-Systemen, zoals bv. Linux.
Het is een doel van bepaalde uitvoeringsvormen van de onderhavige uitvinding om een dergelijke computer-geïmplementeerde werkwijze te verschaffen, waarbij de dubbele muis functionaliteit verschaft wordt als een grafische overlay-applicatie.
Het is tevens een doel van uitvoeringsvormen van de onderhavige uitvinding om een 5 computerprogrammaproduct te verschaffen voor het uitvoeren van de werkwijze, en een computerinrichting te verschaffen die een dergelijk computerprogrammaproduct omvat en/of zulke werkwijze uitvoert, en een computersysteem te verschaffen dat een dergelijke computerinrichting omvat.
Het is tevens een doel van uitvoeringsvormen van de onderhavige uitvinding om een computersysteem te verschaffen dat een computerinrichting omvat die werkzaam verbonden is met een eerste aanwijsinrichting, en een weergave-inrichting die werkzaam verbonden is met een tweede aanwijsinrichting.
Het is tevens een doel van uitvoeringsvormen van de onderhavige uitvinding om een computersysteem te verschaffen dat een computerinrichting omvat die werkzaam verbonden is met een eerste en een tweede aanwijsinrichting, en een weergave-inrichting, en een toetsenbord.
Deze en andere doelstellingen worden gerealiseerd door een computer-geïmplementeerde werkwijze voor het verschaffen van een overlay-applicatie, en een computer-programma-product, en een muis-filter-driver en een computerinrichting, en een computersysteem met de kenmerken van de onafhankelijke conclusies.
Volgens een eerste aspect verschaft de onderhavige uitvinding een computer- geïmplementeerde werkwijze voor het verschaffen van een overlay-applicatie voor een computerinrichting waaraan een eerste aanwijsinrichting en een tweede aanwijsinrichting aangesloten is, en die een besturingssysteem met een grafische gebruikersinterface uitvoert, waarbij het besturingssysteem een native muiscursor verschaft, en waarbij de computerinrichting verder een muis-filter-driver omvat die geconfigureerd is: - om bewegingsberichten afkomstig van de eerste en de tweede aanwijsinrichting te detecteren, en bij detectie van zulk bericht, het bewegingsbericht of een overeenkomstig bericht naar het besturingssysteem te sturen; en - om minstens één bericht gekozen uit de groep bestaande uit een knop-ingedrukt-bericht, een knop-losgelaten-bericht, een scrol- omhoog-bericht en een scrol-omlaag-bericht afkomstig van de eerste en/of de tweede aanwijsinrichting te detecteren, en bij detectie van zulk bericht, respectievelijk een eerste, tweede, derde of vierde vooraf bepaalde bewegingssequentie naar het besturingssysteem te sturen; en waarbij de werkwijze de stappen omvat van: a) het verschaffen van een grafisch overlayvenster; b) het toelaten dat het besturingssysteem met de grafische gebruikersinterface de native muiscursor verschaft als een zichtbaar voorwerp; c) het configureren van het grafisch overlayvenster in doorklikmodus, of het configureren van het grafisch overlayvenster als een in hoofdzaak schermvullend venster dat hoofdzakelijk bestaat uit volledig transparante pixels; d) het configurerenvan het besturingssysteem om ruwe inputberichten gerelateerd aan de eerste en tweede aanwijsinrichting te verzenden naar de overlay-applicatie, en het verschaffen van een berichtenverwerker om deze ruwe inputberichten te verwerken; e) het bijhouden en/of aanpassen van een eerste positie in overeenstemming met bewegingen van de eerste aanwijsinrichting, en het aanpassen van een tweede positie in overeenstemming met bewegingen van de tweede aanwijsinrichting; f) het aanpassen van een positie van de native muiscursor in overeenstemming met bewegingen van de eerste of de tweede aanwijsinrichting die het meest recent bewogen en/of bediend werd; g) het detecteren (bv. in de berichtenverwerker) of de ruwe berichten de eerste of de tweede of de derde of de vierde vooraf bepaalde bewegingssequentie omvat, en indien dat het geval is, het bepalen welke aanwijsinrichting deze sequentie veroorzaakt heeft; en het verplaatsen van de native muiscursor naar de bijgehouden of aangepaste positie geassocieerd met de aanwijsinrichting die de sequentie veroorzaakt heeft; en het versturen van respectievelijk een knop-ingedrukt- commando, een knop-losgelaten commando, een scrol-omhoog-commando of een scrol-omlaag- commando vanuit de overlay-applicatie naar het besturingssysteem. Deze uitvoeringsvorm is gericht op de werkwijze uitgevoerd door de overlay-applicatie.
Het applicatie-venster van deze overlay-applicatie ligt bij voorkeur bovenaan de applicatie- vensters.
Het grafisch overlayvenster kan in doorklik-modus geconfigureerd zijn, maar dat is niet strikt noodzakelijk. Het is ook mogelijk om een in hoofdzaak volledig transparant scherm te verschaffen, (bv.
met een schermvullende bitmap die volledig of voor minstens 90% bestaat uit volledig transparante pixels, d.w.z. met pixels die een pseudo-kleurwaarde hebben welke overeenkomt met volledige transparantie. In dit geval hoeft het venster niet geconfigureerd te worden in doorklikmodus, want de transparante pixels zorgen zelf reeds voor "doorklik-gedrag", maar het mag wel.
Wanneer hierna verwezen wordt naar "scrol-bericht", dan kan een "scrol-omhoog-bericht" of een "scrol-omlaag-bericht" bedoeld worden, of beiden, maar het is niet altijd nodig om het onderscheid te maken bij de beschrijving. Evenzo wordt in plaats van het "scrol-omhoog-commando" of het "scrol-omlaag-commando" soms simpelweg de term "scrol-commando" gebruikt.
De term "bewegingssequentie" betekent een opeenvolgende reeks van minstens twee of minstens drie verplaatsingsberichten (zie enkele voorbeelden in FIG. 47). Deze worden hierin ook "valse" verplaatsingen genoemd, omdat ze niet overeenkomen met werkelijke verplaatsingen van de aanwijsinrichtingen.
Het is een voordeel van deze overlay-applicatie (en de Muis-Filter-Driver) dat scrol-berichten niet zonder meer worden doorgegeven naar het besturingssysteem dat deze vervolgens doorstuurt naar één der onderliggende applicaties, waar ze soms op de verkeerde plaats terechtkomen, namelijk op de plaats waar de native muiscursor op dat moment toevallig staat, maar dat ze worden omgezet naar een serie (nep of valse) verplaatsingen, die op een later tijdstip door de overlay-applicatie wordtherkend, en dan vanuit de juiste schermpositie worden aangeroepen, afhankelijk van welke aanwijsinrichting effectief gescrold werd.
Het is een voordeel om (valse) bewegingsberichten te gebruiken, omdat dit geen aanpassingen vraagt aan het bestaande besturingssysteem of bestaande applicaties, en omdat deze, zelfs wanneer ze naar de verkeerde onderliggende applicatie worden gestuurd, voor de meeste toepassingen geen noemenswaardige negatieve effecten veroorzaken (in tegenstelling tot ongewild klikken of ongewild scrollen).
Deze werkwijze is uitermate geschikt om de functionaliteit van een computer met een O/S dat eigenlijk maar één native muiscursor heeft, uit te breiden naar een computer met twee aanwijsinrichtingen (bv. twee muizen), die de gebruiker beiden (zelfs tegelijk) kan verplaatsen en scrollen.
Zulke computer is uitermate geschikt voor bv. vertalers of proeflezers die twee documenten naast elkaar willen zien op één of meerdere schermen (bv. de brontekst links, en de vertaling rechts), en die met de linkermuis door de brontekst willen scrollen, en met de rechtermuis door de vertaling.
De eerste bewegingssequentie kan ook de "knop-ingedrukt-sequentie" genoemd worden.
De tweede bewegingssequentie kan ook de "knop-losgelaten-sequentie”" genoemd worden.
De derde bewegingssequentie kan ook de "scrol-omhoog-sequentie" genoemd worden.
De vierde bewegingssequentie kan ook de "scrol-omlaag-sequentie" genoemd worden.
De overlay-applicatie kan eventueel verder voorzien zijn om de muis-filter-driver te laden of te starten of te activeren bij het opstarten van de overlay-applicatie of in bepaalde modes; en/of verder voorzien zijn om de muis-filter-driver te ontladen of te deactiveren bij het sluiten van de overlay- applicatie, of in bepaalde modes.
In een uitvoeringsvorm wordt in stap a) een grafisch overlayvenster verschaft dat minstens een eerste zichtbaar voorwerp omvat; en omvat stap f) verder het aanpassen van een positie van het eerste zichtbaar voorwerp op de andere positie uit de eerste en tweede positie dan de positie ingenomen door de native muiscursor.
In deze uitvoeringsvorm kan de gebruiker bv. twee beweegbare voorwerpen zien: de native muiscursor, en een bitmap met een zwarte pijl (bv. zoals getoond in FIG. 8 of FIG. 9 of FIG. 10).
In een uitvoeringsvorm wordt in stap a) een grafisch overlayvenster verschaft dat minstens een eerste zichtbaar voorwerp en een tweede zichtbaar voorwerp omvat; en omvat stap f) verder het aanpassen van een positie van het eerste zichtbaar voorwerp op basis van de eerste positie, en het aanpassen van een positie van het tweede zichtbaar voorwerp op basis van de tweede positie.
In deze uitvoeringsvorm kan de gebruiker bv. drie beweegbare voorwerpen zien: de native muiscursor, en twee bitmaps met een zwarte pijl (bv. zoals getoond in FIG. 8 of FIG. 9 of FIG. 10). Dit heeft als voordeel dat de twee bitmaps altijd zichtbaar zijn, ongeacht waar de native muiscursor zich bevindt.
In een uitvoeringsvorm bevat of is de eerste en tweede en derde en vierde bewegingssequentie een vooraf bepaalde reeks van drie tot tien verplaatsingen of verplaatsingscommando's.
Het is een voordeel van een relatief lange reeks, dat de kans dat zulke reeks toevallig door de gebruiker zou veroorzaakt worden voor de muis te verplaatsen, nagenoeg onmogelijk is, vooral wanneer de reeks één of meerdere heen-en weergaande verplaatsingen of kris-kras bewegingen omvat (zoals getoond in FIG. 47).
In een uitvoeringsvorm is een cumulatieve verplaatsing van de eerste en tweede en derde en vierde vooraf bepaalde bewegingssequentie een nul-verplaatsing.
Het is een voordeel van zulke reeks(en) dat het scrollen of klikken van een aanwijsinrichting door de gebruiker geen verschuiving of drift veroorzaakt van de eerste of tweede onderhouden positie (aannemende dat de fysieke aanwijsinrichting niet wordt verplaatst). Dit is vooral belangrijk voor toepassingen zoals bv. getoond in FIG. 4(a), waar één aanwijsinrichting stationair wordt gehouden.
In een uitvoeringsvorm omvat stap e) het aanpassen van de eerste positie en van de tweede positie op basis van de ruwe inputberichten. Dat is echter niet strikt noodzakelijk, en de positie kan bv. ook bepaald worden door het opvragen van de native cursorpositie aan het besturingssysteem.
In een uitvoeringsvorm omvat stap e) het ontvangen van een inputbericht; en indien het ontvangen inputbericht gerelateerd is aan de eerste aanwijsinrichting, het bijwerken van de eerste positie; en indien het ontvangen inputbericht gerelateerd is aan de tweede aanwijsinrichting, het bijwerken van de tweede positie (Pos2); en omvat stap g) het detecteren of de eerste of tweede of derde of vierde vooraf bepaalde bewegingssequentie voorkomt in de partiële stroom van ontvangen inputberichten afkomstig van elke aanwijsinrichting afzonderlijk.
In een uitvoeringsvorm omvat stap e) het ontvangen van een inputbericht, en indien het inputbericht een bewegingsbericht is, het verkrijgen van verplaatsingswaardes (dx, dy) gerelateerd aan het bewegingsbericht.
In een uitvoeringvorm is het grafisch overlayvenster geconfigureerd als een in hoofdzaak schermvullend venster dat in hoofdzaak (bv. voor minstens 90%) bestaat uit volledig transparante pixels.
In deze uitvoeringsvorm hoeft het overlayvenster niet expliciet in doorklikmodus geconfigureerd te worden.
In een uitvoeringsvorm is het grafisch overlayvenster geconfigureerd wordt als een semi- transparant venster dat een alfamengingwaarde a heeft in het bereik van 1% tot 99%.
Of met andere woorden, met een alfa-transparantiewaarde (T) in het bereik van 1% tot 99%, of van 1% tot 90%, of van 1% tot 60%, of van 1% tot 50%. Hoe lager de alfa-transparantiewaarde (T), doorgaans hoe beter zichtbaar of hoe beter onderscheidbaar het eerste en tweede zichtbare voorwerp (bv. een pijltje of een handje) ten opzichte van de onderliggende applicaties.
In een uitvoeringsvorm zijn de eerste en tweede aanwijsinrichting HID-compatibele inrichtingen.
In een uitvoeringsvorm is het besturingssysteem Windows 7 of Windows 10 of een latere Windows versie van Microsoft Corporation.
In een uitvoeringsvorm is het besturingssysteem mac OS Sierra of mac OS High Sierra of een latere mac OS versie van Apple inc.
In een uitvoeringsvorm is het besturingssysteem Linux.
Volgens een tweede aspect verschaft de onderhavige uitvinding een computerprogramma- product dat uitvoerbare instructies bevat die de werkwijze volgens het eerste aspect uitvoert, wanneer ze worden uitgevoerd op een computerinrichting met de kenmerken zoals beschreven in het eerste aspect.
Volgens een derde aspect verschaft de onderhavige uitvinding een muis-filter-driver of een muis-filter-driver-product voor gebruik in een computerinrichting die een besturingssysteem met een grafische gebruikersinterface omvat voorzien om een native muiscursor te verschaffen; waarbij het muis-filter-driver-product uitvoerbare instructies bevat, voorzien om bewegingsberichten afkomstig van de eerste en de tweede aanwijsinrichting te detecteren, en bij detectie van zulk bericht, het bewegingsbericht of een overeenkomstig naar het besturingssysteem te sturen (eventueel volgens een ander formaat of in een andere structuur); en om minstens één bericht gekozen uit de groep bestaande uit een knop-ingedrukt-bericht, een knop-losgelaten-bericht, een scrol-omhoog-bericht en een scrol-omlaag-bericht afkomstig van de eerste en/of de tweede aanwijsinrichting te detecteren, en bij detectie van zulk bericht, respectievelijk een eerste, tweede, derde of vierde vooraf bepaalde bewegingssequentie naar het besturingssysteem te sturen.
Bij voorkeur is elk van de eerste, tweede, derde en vierde vooraf bepaalde bewegings- sequentie een vooraf bepaalde reeks van drie tot tien verplaatsingen.
Bij voorkeur is een cumulatieve verplaatsing van elk van de eerste, tweede, derde en vierde vooraf bepaalde bewegingssequentie, een nul-verplaatsing.
Volgens een vierde aspect verschaft de onderhavige uitvinding een computerinrichting, omvattende: een besturingssysteem met een grafische gebruikersinterface die een native muiscursor verschaft; en een computerprogrammaproduct volgens het tweede aspect en/of een muis-filter-driver- product volgens het derde aspect.
Volgens een vijfde aspect verschaft de onderhavige uitvinding ook een computersysteem omvattende: een computerinrichting volgens het vierde aspect; en een eerste en een tweede aanwijsinrichting, bv. twee muizen.
Bij voorkeur omvat het computersysteem verder één of twee weergave-inrichtingen.
Bij voorkeur omvat het computersysteem verder een toetsenbord.
In een uitvoeringsvorm zijn de eerste aanwijsinrichting en de tweede aanwijsinrichting USB HID-klasse apparaten of zijn compatibel met USB HID klasse apparaten; en omvat de computer- inrichting ten minste een eerste USB-poort voor verbinding met de eerste aanwijsinrichting en een tweede USB-poort voor verbinding met de tweede aanwijsinrichting.
Specifieke en voorkeursdragende aspecten van de onderhavige uitvinding zijn opgenomen in de aangehechte onafhankelijke en afhankelijke conclusies. Kenmerken van de afhankelijke conclusies kunnen worden gecombineerd met kenmerken van de onafhankelijke conclusies en met kenmerken van andere afhankelijke conclusies zoals aangewezen en niet enkel zoals uitdrukkelijk in de conclusies naar voor gebracht.
Deze en andere aspecten van de uitvinding zullen duidelijk worden aan de hand van en verhelderd worden met verwijzing naar de hiernavolgende beschreven uitvoeringsvorm(en).
Korte beschrijving van de figuren FIG. 1 toont een voorbeeld van hoe een vertaler of proeflezer een origineel document en een vertaling daarvan kan vergelijken, gebruikmakende van een klassiek computersysteem.
FIG. 2 toont een voorbeeld van hoe een persoon die een elektronisch tekstdocument aan het lezen en het editeren het of wijzigen of het becommentariëren is, zijn vinger kan gebruiken om de positie te "onthouden" waar hij aan het lezen is, wanneer hij de muiscursor naar de menubalk beweegt om een gereedschap of een kleur, of dergelijke, te kiezen, gebruikmakende van een klassiek computersysteem.
FIG. 3 toont een voorbeeld van hoe een persoon die één enkel tekstdocument aan het lezen of het editeren is, zijn vinger kan gebruiken om naar één positie in het document te wijzen, en de muiscursor kan gebruiken om naar een andere positie binnen dat één document te wijzen, gebruikmakende van een klassiek computersysteem.
FIG. 4 toont een voorbeeld van hoe een persoon een audiobestand kan transcriberen, gebruikmakende van een klassiek computersysteem. FIG. 4(a) toont hoe een audiospeler kan gestart worden om een audiofragment af te spelen. FIG. 4(b) toont hoe de audiospeler tijdelijk gestopt is, en tekst in een tekstdocument getypt wordt.
FIG.5 toont een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij een computerinrichting verbonden is met een eerste en met een tweede aanwijsinrichting, en een O/S en GUI uitvoert dat een native muisaanwijzer/-cursor (bijv. een witte pij!) verschaft, en een overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding uitvoert. De overlay-applicatie onderhoudt een eerste aanwijspositie in overeenstemming met bewegingen van de eerste aanwijsinrichting, en onderhoudt een tweede aanwijspositie in overeenstemming met bewegingen van de tweede aanwijsinrichting, en past de positie van de native muisaanwijzer/muiscursor aan, bijv. overschrijft deze, in overeenstemming met bewegingen van de eerste aanwijsinrichting. Daarenboven verschaft de overlay-applicatie een tweede zichtbaar voorwerp
(bijv. een lijn of rechthoek) die beweegt in overeenstemming met bewegingen van de tweede aanwijsinrichting. FIG. 5(a) toont bewegingen van het eerste zichtbaar voorwerp in overeenstemming met bewegingen van de eerste aanwijsinrichting. FIG. 5(b) toont bewegingen van het tweede zichtbaar voorwerp in overeenstemming met bewegingen van de tweede aanwijsinrichting. FIG. 5(c) is een schematische voorstelling van een zogenoemde "Z-orde" van vensters of beeldvlakken en een “cursorvlak" zoals gebruikt kan worden in het computersysteem van FIG. 5(a). FIG. 5(d) is een hoog- niveau flowdiagram dat een computer-geïmplementeerde werkwijze volgens een uitvoeringsvorm van de onderhavige uitvinding illustreert, zoals gebruikt kan worden in het computersysteem van FIG. 5(a). FIG. 5(e) is een meer gedetailleerd flowdiagram dat een computer-geïmplementeerde werkwijze volgens een uitvoeringsvorm van de onderhavige uitvinding illustreert, zoals gebruikt kan worden in het computersysteem van FIG. 5(a). FIG. 5(f) toont een vereenvoudigd hoogniveau-blokdiagram van hardware- en softwarecomponenten, gesitueerd in het computersysteem van FIG. 5(a). FIG. 5(g) toont enkele regels pseudo-code die een gedeelte illustreren van een vereenvoudigde berichtenverwerker zoals gebruikt kan worden door de overlay-applicatie. FIG. 5(h) toont enkele regels pseudo-code die een gedeelte illustreren van een vereenvoudigde voorwerp-herpositioneringsroutine zoals gebruikt kan worden door de overlay-applicatie om het tweede zichtbaar voorwerp te herpositioneren.
FIG. 6 toont een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij een computerinrichting verbonden is met een eerste en met een tweede aanwijsinrichting, en een O/S en GUI uitvoert dat een native muisaanwijzer/-cursor (bijv. een witte pij!) verschaft, en een overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding uitvoert. De overlay-applicatie onderhoudt een eerste aanwijspositie in overeenstemming met bewegingen van de eerste aanwijsinrichting, en onderhoudt een tweede aanwijspositie in overeenstemming met bewegingen van de tweede aanwijsinrichting, en past de positie van de native muisaanwijzer/muiscursor aan, bijv. overschrijft deze, in overeenstemming met bewegingen van de eerste aanwijsinrichting. Daarenboven verschaft de overlay-applicatie een tweede zichtbaar voorwerp (bijv. een lijn of rechthoek) die beweegt in overeenstemming met bewegingen van de tweede aanwijsinrichting, en verschaft een derde zichtbaar voorwerp, dat beweegt in overeenstemming met bewegingen van de eerste aanwijsinrichting. FIG. 6(a) toont bewegingen van het eerste en derde zichtbaar voorwerp in overeenstemming met bewegingen van de eerste aanwijsinrichting. FIG. 6(b) toont bewegingen van het tweede zichtbaar voorwerp in overeenstemming met bewegingen van de tweede aanwijsinrichting. FIG. 6(c) toont enkele regels pseudo-code die een gedeelte illustreren van een vereenvoudigde positie-bijwerkingsroutine, zoals gebruikt kan worden door de overlay-applicatie om het tweede en het derde zichtbaar voorwerp te herpositioneren.
FIG. 7 toont een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij een computerinrichting verbonden is met een eerste en met een tweede aanwijsinrichting, en een O/S en GUI uitvoert dat een native muisaanwijzer/-cursor (bijv. een witte pij!)
verschaft, en een overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding uitvoert. De overlay-applicatie onderhoudt een eerste aanwijspositie in overeenstemming met bewegingen van de eerste aanwijsinrichting, en onderhoudt een tweede aanwijspositie in overeenstemming met bewegingen van de tweede aanwijsinrichting, en past de positie van de native muisaanwijzer/-cursor aan, bijv. overschrijft deze, in overeenstemming met bewegingen van de aanwijsinrichting die het meest recent is bewogen. Daarenboven verschaft de overlay-applicatie een tweede zichtbaar voorwerp (bijv. een lijn of rechthoek) die beweegt in overeenstemming met bewegingen van de tweede aanwijsinrichting, en verschaft een derde zichtbaar voorwerp, dat beweegt in overeenstemming met bewegingen van de eerste aanwijsinrichting. FIG. 7(a) toont bewegingen van het eerste en derde zichtbaar voorwerp in overeenstemming met bewegingen van de eerste aanwijsinrichting. FIG. 7(b) toont bewegingen van het eerste en tweede zichtbaar voorwerp in overeenstemming met bewegingen van de tweede aanwijsinrichting. FIG. 7(c) is een hoog-niveau flowdiagram dat een computer-geïmplementeerde werkwijze volgens een uitvoeringsvorm van de onderhavige uitvinding illustreert, zoals gebruikt kan worden in het computersysteem van FIG. 7(a).
FIG. 7(d) is een meer gedetailleerd flowdiagram dat een computer-geïmplementeerde werkwijze volgens een uitvoeringsvorm van de onderhavige uitvinding illustreert, zoals gebruikt kan worden in het computersysteem van FIG. 7(a). FIG. 7(e) toont enkele regels pseudo-code die een gedeelte illustreren van een vereenvoudigde berichtenverwerker zoals gebruikt kan worden door de overlay- applicatie.
FIG. 8 toont een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij een computerinrichting verbonden is met een eerste en met een tweede aanwijsinrichting, en een O/S en GUI uitvoert dat een native muisaanwijzer/-cursor (bijv. een witte pij!) verschaft, en een overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding uitvoert. De overlay-applicatie onderhoudt een eerste aanwijspositie in overeenstemming met bewegingen van de eerste aanwijsinrichting, en onderhoudt een tweede aanwijspositie in overeenstemming met bewegingen van de tweede aanwijsinrichting, en past de positie van de native muisaanwijzer/muiscursor aan, bijv. overschrijft deze, in overeenstemming met bewegingen van de eerste aanwijsinrichting. Daarenboven verschaft de overlay-applicatie een tweede zichtbaar voorwerp (bijv. een zwarte pijl) die beweegt in overeenstemming met bewegingen van de tweede aanwijsinrichting. FIG. 8(a) toont bewegingen van het eerste zichtbaar voorwerp in overeenstemming met bewegingen van de eerste aanwijsinrichting. FIG. 8(b) toont bewegingen van het tweede zichtbaar voorwerp in overeenstemming met bewegingen van de tweede aanwijsinrichting. FIG. 8(c) is een schematische voorstelling van een zogenoemde "Z-orde" van vensters of beeldvlakken en een “cursorvlak" zoals gebruikt kan worden in het computersysteem van FIG. 8(a).
FIG.9 toont een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, en is een variant van het systeem getoond in FIG. 8. Waar de uitvoeringsvorm van FIG. 8 inhet bijzonder nuttig is voor rechtshandige mensen, is de uitvoeringsvorm van FIG. 9 in het bijzonder nuttig voor linkshandige mensen.
FIG. 9(a) toont bewegingen van het tweede zichtbaar voorwerp (bijv. een zwarte pijl) in overeenstemming met bewegingen van de eerste aanwijsinrichting.
FIG. 9(b) toont bewegingen van het eerste zichtbaar voorwerp (bijv. de native muiscursor/aanwijzer, hier in de vorm van een witte pijl) in overeenstemming met bewegingen van de tweede aanwijsinrichting.
FIG. 9(c) toont enkele regels pseudo-code die een gedeelte illustreren van een vereenvoudigde berichtenverwerker zoals gebruikt kan worden door de overlay-applicatie.
FIG. 10 toont een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij een computerinrichting verbonden is met een eerste en met een tweede aanwijsinrichting, en een O/S en GUI uitvoert dat een native muisaanwijzer/-cursor (bijv. een witte pij!) verschaft, en een overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding uitvoert.
De overlay-applicatie onderhoudt een eerste aanwijspositie in overeenstemming met bewegingen van de eerste aanwijsinrichting, en onderhoudt een tweede aanwijspositie in overeenstemming met bewegingen van de tweede aanwijsinrichting, en past de positie van de native muisaanwijzer/-cursor aan, bijv. overschrijft deze, in overeenstemming met bewegingen van de aanwijsinrichting die het meest recent is bewogen.
Daarenboven verschaft de overlay-applicatie een tweede zichtbaar voorwerp (bijv. een zwarte pijl) die de andere onderhouden positie inneemt.
FIG. 10(a) toont bewegingen van het eerste zichtbaar voorwerp (bijv. de native muiscursor/aanwijzer) in overeenstemming met bewegingen van de eerste aanwijsinrichting (de aanwijsinrichting die bewogen wordt), terwijl het tweede zichtbaar voorwerp zich op de andere onderhouden positie bevindt.
FIG. 10(b) toont bewegingen van het eerste zichtbaar voorwerp in overeenstemming met bewegingen van de tweede aanwijsinrichting (de aanwijsinrichting die bewogen wordt), terwijl het tweede zichtbaar voorwerp (de zwarte pijl) zich op de andere onderhouden positie bevindt.
FIG. 11 toont een vereenvoudigd hoogniveau-blokdiagram van hardware- en softwarecomponenten gesitueerd in een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij het computersysteem een computerinrichting omvat met een speciale overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding, en twee klassieke aanwijsinrichtingen rechtstreeks verbonden met de computerinrichting.
FIG. 12 toont een vereenvoudigd hoogniveau-blokdiagram van hardware- en softwarecomponenten gesitueerd in een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij het computersysteem een computerinrichting omvat met een speciale overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding, en twee klassieke aanwijsinrichtingen verbonden met de computerinrichting via een klassieke hub.
FIG. 13 toont enkele regels pseudo-code die een gedeelte illustreren van een eerste berichtenverwerkingsroutine zoals gebruikt kan worden in overlay-applicaties volgens uitvoeringsvormen van de onderhavige uitvinding.
FIG. 14(a) tot FIG. 14(c) en FIG. 15 tonen voorbeeldmatige sequenties van signalen of berichten komende van twee klassieke muisinrichtingen, en tonen hoe deze signalen bevredigend worden behandeld door het eerste berichtenverwerkingsproces weergegeven in FIG. 13.
FIG. 16 en FIG. 17 tonen twee voorbeeldmatige sequenties van signalen of berichten komende van twee klassieke muisinrichtingen, en tonen hoe deze signalen onbevredigend worden behandeld door het berichtenverwerkingsproces weergegeven in FIG. 13.
FIG. 18(a) toont enkele regels pseudo-code die een gedeelte illustreren van een tweede berichtenverwerkingsroutine zoals gebruikt kan worden in overlay-applicaties volgens uitvoeringsvormen van de onderhavige uitvinding.
FIG. 18(b) toont een variant van de routine van FIG. 18(a), zoals gebruikt kan worden in overlay-applicaties volgens uitvoeringsvormen van de onderhavige uitvinding.
FIG. 18(c) toont een meer volledige versie van de routine van FIG. 18(a), zoals gebruikt kan worden in overlay-applicaties volgens uitvoeringsvormen van de onderhavige uitvinding.
FIG. 19 en FIG. 20 tonen twee voorbeeldmatige sequenties van signalen of berichten komende van twee klassieke muisinrichtingen, en tonen hoe deze signalen bevredigend worden behandeld door het tweede berichtenverwerkingsproces weergegeven in FIG. 18(a).
FIG. 21 toont een voorbeeldmatige sequentie van signalen of berichten komende van twee klassieke muisinrichtingen, en toont hoe deze signalen onbevredigend worden behandeld door het tweede berichtenverwerkingsproces weergegeven in FIG. 18(a).
FIG. 22(a) en FIG. 22(b) tonen twee voorbeeldmatige sequenties van signalen komende van twee speciale aanwijsinrichtingen volgens een uitvoeringsvorm van de onderhavige uitvinding, en tonen hoe deze signalen of berichten bevredigend worden behandeld door het tweede berichtenverwerkingsproces weergegeven in FIG. 18(a).
FIG. 23(a) toont een vereenvoudigd hoogniveau-blokdiagram van hardware- en softwarecomponenten gesitueerd in een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij het computersysteem een computerinrichting omvat met een speciale overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding, en twee speciale muisinrichtingen omvat volgens een uitvoeringsvorm van de onderhavige uitvinding.
FIG. 23(b) toont een voorbeeldmatig blokdiagram van een speciale muisinrichting volgens een uitvoeringsvorm van de onderhavige uitvinding, zoals gebruikt kan worden in het systeem van FIG. 23(a).
FIG. 24 toont een vereenvoudigd hoogniveau-blokdiagram van hardware- en softwarecomponenten gesitueerd in een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij het computersysteem een computerinrichting omvat met een speciale overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding, en twee specialemuisinrichtingen omvat volgens een uitvoeringsvorm van de onderhavige uitvinding, verbonden met de computerinrichting via een klassieke hub.
FIG. 25 toont een vereenvoudigd hoogniveau-blokdiagram van hardware- en softwarecomponenten gesitueerd in een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij het computersysteem een computerinrichting omvat met een speciale overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding, en twee klassieke muisinrichtingen omvat verbonden met de computerinrichting via een speciale adapter of hub of dongel volgens een uitvoeringsvorm van de onderhavige uitvinding.
FIG. 26(a) tot FIG. 26(d} tonen voorbeeldmatige sequenties van signalen of berichten komende van de twee klassieke aanwijsinrichtingen van FIG. 25, en tonen hoe deze signalen of berichten worden behandeld door een berichtenverwerkingsproces weergegeven in FIG. 18, na het passeren door de speciale adapter of hub of dongel.
FIG. 27(a) toont een voorbeeldmatig blokdiagram van een hub (of donge l of adapter) volgens een uitvoeringsvorm van de onderhavige uitvinding, zoals gebruikt kan worden in het systeem van FIG. 25, welke ten minste twee fysieke connectoren heeft voor verbinding met twee klassieke bedrade aanwijsinrichtingen.
FIG. 27(b} toont een voorbeeldmatig blokdiagram van een draadloze hub (of dongel of adapter) volgens een uitvoeringsvorm van de onderhavige uitvinding, zoals gebruikt kan worden in het systeem van FIG. 25, welke één of twee RF-zendontvangers heeft voor werkzame verbinding met twee klassieke draadloze aanwijsinrichtingen.
FIG. 28(a) toont een voorbeeldmatige gebruikersinterface-venster, waarnaar hierin wordt verwezen als de "mini-gebruikersinterface", die een veelheid van ingangsmodi en een veelheid van displaymodi ondersteunt.
FIG. 28(b} toont een voorbeeldmatig pop-up-menu zoals gebruikt kan worden in uitvoeringsvormen van de onderhavige uitvinding.
FIG. 29 toont een voorbeeldmatig gebruikersinterface-venster, waarnaar hierin wordt verwezen als de "hoofdgebruikersinterface", zoals gebruikt kan worden in uitvoeringsvormen van de onderhavige uitvinding, bijv. om een inputmodus en/of een displaymodus te kiezen, en/of een grootte en/of een kleur van het tweede of verder zichtbaar voorwerp te kiezen, en/of om een semi- transparantieniveau te kiezen of af te stemmen, en/of om een semi-transparante getextureerde achtergrond te kiezen.
FIG. 30 en FIG. 31(a) tonen een vergroot aanzicht van een gedeelte van FIG. 29.
FIG. 31(b) is een variant van het gedeelte van FIG. 31(a), waar een kenmerk is toegevoegd om cursorbewegingen te dwingen om slechts horizontaal (Oost/West) of verticaal (Noord/Zuid) of diagonaal (Noord-Oost, Noord-West, Zuid-Oost, Zuid-West) te zijn.
FIG. 31(c) toont enkele regels pseudo-code die gebruikt kunnen worden in de positiebijwerkingsroutine voor het bereiken van dit effect.
FIG. 31(d) en FIG. 31(e) illustreren een variant van de verplaatsingstransformatieroutine, waarbij bijna-horizontale bewegingen naar zuiver horizontale bewegingen worden getransformeerd.
FIG. 32 toont een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij de computerinrichting een O/S en GUI en twee applicaties uitvoert (bijv. een PDF- documentviewer en een tekstverwerker), en een overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding uitvoert. De overlay-applicatie is geconfigureerd om de native muiscursor te herpositioneren en om twee beweegbare lijnen te tonen, die bewegen in overeenstemming met bewegingen van de aanwijsinrichtingen.
FIG. 33 toont een variant van het computersysteem van FIG. 32, waarbij de overlay-applicatie geconfigureerd is om de native muiscursor te herpositioneren en twee beweegbare vierkanten te tonen, die bewegen in overeenstemming met bewegingen van de aanwijsinrichtingen.
FIG. 34 toont een andere variant van het computersysteem van FIG. 32, waarbij de overlay- applicatie geconfigureerd is om de native muiscursor te herpositioneren en twee zichtbare voorwerpen te tonen, één voorwerp bevattende een beeld van een linkerhand, en het andere voorwerp bevattende een beeld van een rechterhand, welke beelden bewegen in overeenstemming met bewegingen van de aanwijsinrichtingen.
FIG. 35 toont een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij de computerinrichting een O/S en GUI en een voorbeeldmatige applicatie (bijv. een PDF-document editor) uitvoert, en een overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding uitvoert. De overlay-applicatie is geconfigureerd om de native muiscursor te herpositioneren en een beweegbare lijn te tonen, in overeenstemming met bewegingen van de aanwijsinrichtingen.
FIG. 36 toont een variant van het computersysteem van FIG. 35, waarbij de overlay-applicatie geconfigureerd is om de native muiscursor te herpositioneren en een beweegbaar kruis te tonen, in overeenstemming met bewegingen van de aanwijsinrichtingen.
FIG. 37 toont een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij de computerinrichting een O/S en GUI en een voorbeeldmatige applicatie (bijv. een teksteditor) uitvoert, en een overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding uitvoert. De overlay-applicatie is geconfigureerd om de native muiscursor te herpositioneren en twee beweegbaar lijnen te tonen, in overeenstemming met bewegingen van de aanwijsinrichtingen.
FIG. 38 toont een variant van het computersysteem van FIG. 37, waarbij de overlay-applicatie geconfigureerd is om de native muiscursor te herpositioneren en twee beweegbaar kruizen te tonen, in overeenstemming met bewegingen van de aanwijsinrichtingen.
FIG. 39 toont een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij de computerinrichting een O/S en GUI en een voorbeeldmatige applicatie (bijv. een teksteditor) uitvoert, en een overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding uitvoert. De overlay-applicatie is geconfigureerd om de native muiscursor te herpositioneren en een verticale lijn te tonen om het scherm te splitsen in een linker gedeelte en rechter gedeelte, en om twee horizontale lijnen te tonen die verticaal beweegbaar zijn, in overeenstemming met bewegingen van de aanwijsinrichtingen.
FIG. 40 toont een variant van het computersysteem van FIG. 39, waarbij de overlay-applicatie bijkomend twee vierkanten of rechthoeken binnen de horizontale lijnen verschaft, welke vierkanten ook horizontaal beweegbaar zijn, in overeenstemming met bewegingen van de aanwijsinrichtingen.
FIG. 41 toont een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding omvattende een speciale monitor of weergavescherm volgens een uitvoeringsvorm van de onderhavige uitvinding, rechtstreeks aansluitbaar op een aanwijsinrichting, waarbij het speciale weergavescherm of monitor aangepast is voor het overlayen van het beeld verschaft door de computerinrichting met ten minste één zichtbaar voorwerp dat beweegbaar is in overeenstemming met bewegingen van de aanwijsinrichting verbonden met het weergavescherm. Het O/S en GUI van de computerinrichting toont de native muiscursor/aanwijzer, die beweegbaar is door de aanwijsinrichting die verbonden is met de computer.
FIG. 42 toont een voorbeeldmatig blokdiagram van een weergave-inrichting gebruikt in het systeem van FIG. 41.
FIG. 43 toont een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding omvattende een video-adapterinrichting of video-interface-inrichting volgens een uitvoeringsvorm van de onderhavige uitvinding, die een ingangspoort heeft voor het ontvangen van eerste grafische beeldgegevens van een computerinrichting, waarbij de computerinrichting verbonden is met een eerste aanwijsinrichting. De video-adapter omvat verder een uitgangspoort voor het verschaffen van tweede grafische beeldgegevens aan een monitor of weergavescherm, waarbij de video-adapter verder een bedrade of draadloze interface omvat naar een tweede aanwijsinrichting, waarbij de video-adapter aangepast is voor het genereren van ten minste één zichtbaar voorwerp, en voor het overlayen van de eerste grafische beeldgegevens met het ten minste één zichtbaar voorwerp, en voor het bewegen van het zichtbaar voorwerp in overeenstemming met bewegingen van de tweede aanwijsinrichting verbonden met de video-adapter.
FIG. 44 toont een voorbeeldmatige hardware blokdiagram van de video-adapterinrichting van FIG. 43.
FIG. 45 toont een vereenvoudigd hoogniveau-blokdiagram van hardware- en softwarecomponenten gesitueerd in een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij het computersysteem een computerinrichting omvat met een overlay-
applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding, en met een muis-filter-driver volgens een uitvoeringsvorm van de onderhavige uitvinding.
Het computersysteem omvat verder twee klassieke muisinrichtingen die rechtstreeks verbonden zijn met de computerinrichting.
FIG. 46 toont een vereenvoudigd hoogniveau-blokdiagram van hardware- en softwarecomponenten gesitueerd in een computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, waarbij het computersysteem een computerinrichting omvat met een overlay- applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding, en met een muis-filter-driver volgens een uitvoeringsvorm van de onderhavige uitvinding.
Het computersysteem omvat verder twee klassieke muisinrichtingen en een klassieke hub, welke muisinrichtingen verbonden zijn met de computerinrichting via de hub.
FIG. 47(a) tot FIG. 47(i) tonen enkele voorbeeldmatige bewegingssequenties die gebruikt kunnen worden in uitvoeringsvormen van de onderhavige uitvinding, bv. in het computersysteem van FIG. 45 en FIG. 46. FIG. 48 toont een voorbeeldmatige implementatie, in pseudo-code, van een sterk vereenvoudigd voorbeeld, hoe de overlay-applicatie na de detectie van een scrol-omhoog sequentie afkomstig van de linker- of rechter-aanwijsinrichting, de native muiscursor op de linker- of rechter- positie plaatst, en daarna een scrol-commando verstuurt naar het O/S.
FIG. 49 toont aan de hand van een voorbeeld hoe de oplossing met de bewegingssequenties werkt.
FIG. 50 toont een flow-diagram van een voorbeeldmatige computer-geïmplementeerde werkwijze die uitgevoerd kan worden door de overlay-applicatie van FIG. 45 of FIG. 46. FIG. 51 toont een flow-diagram van een voorbeeldmatige computer-geïmplementeerde werkwijze die uitgevoerd kan worden door de muis-filter-driver van FIG. 45 of FIG. 46. Er wordt opgemerkt dat de hierin getoonde timingdiagrammen hoog-niveau timingdiagrammen zijn, en vele details zijn weggelaten, welke niet relevant zijn voor het begrijpen van de principes van de onderhavige uitvinding.
Gedetailleerde beschrijving van illustratieve uitvoeringsvormen De huidige uitvinding zal beschreven worden met betrekking tot bijzondere uitvoeringsvormen en met verwijzing naar bepaalde tekeningen, echter de uitvinding wordt daartoe niet beperkt maar is enkel beperkt door de conclusies.
De figuren zijn enkel schematisch en niet limiterend.
In de figuren kunnen de afmetingen van sommige onderdelen overdreven en niet op schaal zijn voorgesteld voor illustratieve doeleinden.
De afmetingen en de relatieve afmetingen komen soms niet overeen met de actuele praktische uitvoering van de uitvinding.
Verder worden de termen eerste, tweede en dergelijke in de beschrijving en in de conclusies gebruikt voor het onderscheiden van gelijkaardige elementen en niet noodzakelijk voor het beschrijvenvan een volgorde, noch in de tijd, noch spatiaal, noch in rangorde of op enige andere wijze. Het dient te worden begrepen dat de termen op die manier gebruikt onder geschikte omstandigheden verwisselbaar zijn en dat de uitvoeringsvormen van de uitvinding hierin beschreven geschikt zijn om in andere volgorde te werken dan hierin beschreven of weergegeven.
Het dient opgemerkt te worden dat de term "omvat", zoals gebruikt in de conclusies, niet als beperkt tot de erna beschreven middelen dient geïnterpreteerd te worden; deze term sluit geen andere elementen of stappen uit. Hij is zodoende te interpreteren als het specificeren van de aanwezigheid van de vermelde kenmerken, waarden, stappen of componenten waarnaar verwezen wordt, maar sluit de aanwezigheid of toevoeging van één of meerdere andere kenmerken, waarden, stappen of componenten, of groepen daarvan niet uit. Dus, de omvang van de uitdrukking “een inrichting omvattende middelen A en B" dient niet beperkt te worden tot inrichtingen die enkel uit componenten A en B bestaan. Het betekent dat met betrekking tot de huidige uitvinding, A en B de enige relevante componenten van de inrichting zijn.
Verwijzing doorheen deze specificatie naar “één uitvoeringsvorm” of “een uitvoeringsvorm” betekent dat een specifiek kenmerk, structuur of karakteristiek beschreven in verband met de uitvoeringsvorm is opgenomen in tenminste één uitvoeringsvorm van de onderhavige uitvinding. Dus, voorkomen van de uitdrukkingen “in één uitvoeringsvorm” of “in een uitvoeringsvorm” op diverse plaatsen doorheen deze specificatie hoeven niet noodzakelijk allemaal naar dezelfde uitvoeringsvorm te refereren, maar kunnen dit wel doen. Voorts, de specifieke kenmerken, structuren of karakteristieken kunnen gecombineerd worden op eender welke geschikte manier, zoals duidelijk zou zijn voor een gemiddelde vakman op basis van deze bekendmaking, in één of meerdere uitvoeringsvormen.
Vergelijkbaar dient het geapprecieerd te worden dat in de beschrijving van voorbeeldmatige uitvoeringsvormen van de uitvinding verscheidene kenmerken van de uitvinding soms samen gegroepeerd worden in één enkele uitvoeringsvorm, figuur of beschrijving daarvan met als doel het stroomlijnen van de openbaarmaking en het helpen in het begrijpen van één of meerdere van de verscheidene inventieve aspecten. Deze methode van openbaarmaking dient hoe dan ook niet geïnterpreteerd te worden als een weerspiegeling van een intentie dat de uitvinding meer kenmerken vereist dan expliciet vernoemd in iedere conclusie. Eerder, zoals de volgende conclusies weerspiegelen, liggen inventieve aspecten in minder dan alle kenmerken van één enkele voorafgaande openbaar gemaakte uitvoeringsvorm. Dus, de conclusies volgend op de gedetailleerde beschrijving zijn hierbij expliciet opgenomen in deze gedetailleerde beschrijving, met iedere op zichzelf staande conclusie als een afzonderlijke uitvoeringsvorm van deze uitvinding.
Voorts, terwijl sommige hierin beschreven uitvoeringsvormen sommige, maar niet andere, in andere uitvoeringsvormen inbegrepen kenmerken bevatten, zijn combinaties van kenmerken van verschillende uitvoeringsvormen bedoeld als gelegen binnen de reikwijdte van de uitvinding, envormen deze verschillende uitvoeringsvormen, zoals zou begrepen worden door de vakman. Bijvoorbeeld, in de volgende conclusies kunnen eender welke van de beschreven uitvoeringsvormen gebruikt worden in eender welke combinatie. In de hier voorziene beschrijving worden talrijke specifieke details naar voren gebracht. Het is hoe dan ook te begrijpen dat uitvoeringsvormen van de uitvinding kunnen uitgevoerd worden zonder deze specifieke details. In andere gevallen zijn welgekende werkwijzen, structuren en technieken niet in detail getoond om deze beschrijving helder te houden. In dit document wordt de term "alfamenging" of "menging" (van beelden of bitmaps) als synoniemen gebruikt. In de context van grafische overlay, is er een bovenste beeld (dat een hogere Z- orde heeft) en een lager beeld (dat een lagere Z-orde heeft). Het mengen kan gedaan worden in hardware en/of software, en is gebaseerd op een parameter genoemd "alfamengingwaarde" a, welke verwijst naar het niveau van mengen van de twee beelden, waarbij a=0% betekent dat het originele beeld (met de lagere Z-orde) niet gemengd wordt met het overlaybeeld (of dat het overlaybeeld volledig transparant is), en waarbij a=100% betekent dat de resulterende pixelwaarde die van het overlaybeeld is (of dat het overlaybeeld volledig ondoorzichtig is behalve voor volledig transparante pixels). De alfamengingwaarde kan uitgedrukt worden op een schaal van 0 tot 255, waarbij a=255 overeenkomt met a=100% en a=0 overeenkomt met a=0%. Alfamengen kan bijvoorbeeld gebruikt worden voor fade-in of fade-out van een grafisch beeld. In de context van de onderhavige uitvinding kan er ook een tweede parameter betrokken zin bij het mengen, genoemd "TransparantColorValue". Indien een pixel van het overlaybeeld deze vooraf bepaalde waarde heeft, wordt deze pixel behandeld als “volledig transparant". Volledig transparante pixels worden typisch gebruikt aan de omtrek van een bitmap, bijvoorbeeld voor het tonen van een rechthoekig beeld met afgeronde randen. "Alfamengen "en "volledig transparante pixels" zijn beide goed gekend in de stand der techniek.
In dit document behoren de uitdrukkingen "tekstverwerker" of "teksteditor" niet te eng geïnterpreteerd te worden, omdat vele zogenoemde tekstverwerkers (zoals bijv. Microsoft Word) ook tekenmogelijkheden hebben. Evenzo behoort de term "spreadsheet" of "werkblad" niet te eng geïnterpreteerd te worden, omdat vele zogenoemde werkbladapplicaties, bijv. Microsoft Excel, ook grafische mogelijkheden hebben.
De uitdrukking “het overlayvenster is geconfigureerd in doorklikmodus" of "het overlayvenster is geconfigureerd in "doorgeefmodus" of "geef-door-modus" betekent dat het overlayvenster op zodanige wijze geconfigureerd is dat gebeurtenissen van inputinrichtingen (zoals bijv. een muis, een toetsenbord, een trackball, een touchpad, een schrijfstift, een joystick, enz.) door het besturingssysteem verzonden worden naar één of meerdere onderliggende toepassingsvensters of naar voorwerpen daarvan, ondanks de hogere Z-orde van de overlay-applicatie, en ondanks dat de native muiscursor gesitueerd is boven het door het overlayvenster gedefinieerde gebied. Het berichtdat wordt “doorgegeven aan lagere vensters" is bijvoorbeeld van toepassing op gebeurtenissen veroorzaakt door een knopindrukking, en op een knoploslating, en op een knopklik, en op een scrol- event van een muiswiel, en op bewegingen van de aanwijsinrichting. In de context van de onderhavige uitvinding omvat de overlay-applicatie typisch één venster geconfigureerd in doorklikmodus, en bevat optioneel maar bij voorkeur ook een tweede, hoofdzakelijk ondoorzichtig venster met gebruikersinterface-elementen, niet geconfigureerd in doorklikmodus.
In dit document betekent de uitdrukking "het venster is geconfigureerd in niet- doorklikmodus" dat het venster "niet geconfigureerd is in doorklikmodus".
In dit document verwijst de term "werkgebied" naar een gedeelte van het pixelgebied van een scherm, namelijk het gebied dat typisch ingenomen zal worden door een applicatie in het geval dat deze gemaximaliseerd wordt. In een Microsoft Windows-omgeving betekent het "werkgebied" het ganse pixelgebied of het gebied van de desktop minus de zogenoemde "taakbalk", welke zich typisch onderaan het scherm bevindt.
In dit document worden de uitdrukkingen "muisaanwijzer" en "muiscursor" als synoniemen gebruikt, en verwijzen naar een symbool of grafisch beeld op een computermonitor of andere weergave-inrichting dat bewegingen weergeeft van een aanwijsinrichting, bijv. een muis, touchpad, of schrijfstiftpen. Deze aanwijzer of cursor kan verschillende vormen aannemen, zoals bijvoorbeeld een "pijl" of een "crosshair" (wat lijkt op een romeins cijfer "T") of als een "hand" enz.
In dit document worden de uitdrukkingen "weergavescherm" en "monitor" en "scherm" als synoniemen gebruikt.
In dit document worden de termen "lijn" of "balk" of "lijnsegment" als synoniemen gebruikt. Zij verwijzen naar een langwerpig, bijvoorbeeld een rechthoekig, voorwerp, optioneel met afgeronde randen.
In dit document betekent de uitdrukking "de muiscursor of aanwijzer volgt bewegingen van de aanwijsinrichting" dat de positie van de cursor of aanwijzer wordt aangepast in overeenstemming met bewegingen van de aanwijsinrichting.
In dit document betekenen de termen "eerste onderhouden positie" en "positie gerelateerd aan bewegingen van de eerste aanwijsinrichting" hetzelfde. Naar deze positie wordt hierin ook verwezen als Pos1 of de coördinaten (x1,y1) of de coördinaten (xR,yR).
In dit document verwijst de "eerste aanwijsinrichting" gewoonlijk naar de aanwijsinrichting te bedienen door de rechterhand van een gebruiker, tenzij expliciet anders vermeld.
In dit document betekenen de uitdrukkingen "tweede onderhouden positie" en "positie gerelateerd aan bewegingen van de tweede aanwijsinrichting" hetzelfde. Naar deze positie wordt hierin ook verwezen als Pos2 of de coördinaten (x2,y2) of de coördinaten (xL,yL).
In dit document verwijst de "tweede aanwijsinrichting" gewoonlijk naar de aanwijsinrichting te bedienen door de linkerhand van een gebruiker, tenzij expliciet anders vermeld.
In dit document betekent de uitdrukking "focus verleggen tussen twee documenten" het verleggen van de focus tussen twee locaties op het scherm, bijvoorbeeld tussen een eerste venster geassocieerd met een eerste applicatie (bijv. een PDF-viewer) dat een gedeelte van een eerste document toont, en een tweede venster geassocieerd met een tweede applicatie (bijv. een tekstverwerker) dat een gedeelte van een tweede document toont, tenzij expliciet anders vermeld.
In dit document betekent de uitdrukking "host" een "computerinrichting", tenzij expliciet anders vermeld.
In dit document betekenen de uitdrukkingen "signaal" en "bericht" verzonden door een aanwijsinrichting hetzelfde.
In dit document betekent de term “het onderlijnen" of "markeren" van een tekstfragment het schijnbaar of virtueel onderlijnen of markeren van het tekstfragment door middel van een geoverlayd voorwerp.
In dit document verwijst de term "bewegingssequentie" naar een reeks of serie van ten minste drie bewegingsberichten of verplaatsingsberichten (zoals bv. getoond in FIG. 47), of naar een datastructuur die daarmee overeenkomt.
Zoals beschreven in het achtergrondgedeelte en zoals weergegeven in FIG. 1 tot FIG. 4, zijn er vele gelegenheden wanneer een computergebruiker zou willen dat het computersysteem een mechanisme had dat de gebruiker in staat stelt om te lezen en/of te schrijven en/of te scrollen en/of te klikken op twee verschillende locaties op een scherm, terwijl vandaag de dag, in alle voornaamste besturingssystemen voor personal computers met een grafische gebruikersinterface, slechts één enkel zichtbaar voorwerp, "muisaanwijzer" of "muiscursor" genoemd, wordt ondersteund.
Hoewel de onderhavige uitvinding niet beperkt is tot "Windows-compatibele" computers, die een versie van het "Windows" besturingssysteem van Microsoft Corporation (Redmond, USA) uitvoeren, zal de onderhavige uitvinding voornamelijk uitgelegd worden met zulke computers in gedachten, teneinde de beschrijving te vereenvoudigen. Maar de principes van de onderhavige uitvinding zullen ook werken voor andere computers met een besturingssysteem O/S en een grafische gebruikersinterface GUI dat slechts één enkele muisaanwijzer verschaft, zoals bijvoorbeeld mac OS van Apple Inc, of Linux.
Hoewel de onderhavige uitvinding niet beperkt is tot het werken met twee “muisinrichtingen" als aanwijsinrichtingen, zal de onderhavige uitvinding uitgelegd worden met twee muisinrichtingen in gedachten, teneinde de beschrijving te vereenvoudigen. Maar de principes van de onderhavige uitvinding zullen ook werken met andere aanwijsinrichtingen, zoals bijvoorbeeld een touchpad of een trackball of een schrijfstift of dergelijke.
De problemen waarmee een vertaler of proeflezer of schrijver of transcriber wordt geconfronteerd in de gevallen weergegeven in FIG. 1 tot FIG. 4, zijn gerelateerd aan een kenmerk (of tekortkoming) van besturingssystemen met een GUI die slechts één enkele muiscursor of muisaanwijzer onderhouden. Vanuit een commercieel oogpunt, zou men kunnen denken dat er een eenvoudige oplossing voor deze problemen bestaat, namelijk het aansluiten van een tweede aanwijsinrichting op de computerinrichting en hopen dat er op de een of andere manier een tweede muiscursor zal verschijnen die bewegingen van de tweede aanwijsinrichting volgt. Helaas, werken klassieke besturingssystemen voor personal computers zoals bijv. Windows en mac OS niet op die wijze, omdat ze slechts één enkele cursorpositie bijhouden, en hoewel meerdere aanwijsinrichtingen fysiek verbonden kunnen worden met de computerinrichting, worden alle signalen komende van deze aanwijsinrichtingen naar de ene cursorpositie geleid. Bijvoorbeeld, wanneer twee USB- muisinrichtingen verbonden zijn met een laptopcomputer die Windows 7 of Windows 10 uitvoert, kan de Windows native muiscursor bijv. naar links bewogen worden door het naar links bewegen van elk van deze muisinrichtingen. Er zal geen tweede muiscursor automatisch verschijnen.
Daarentegen verschaft de onderhavige uitvinding een computersysteem dat twee aanwijsinrichtingen supporteert en twee of ten minste twee zichtbare voorwerpen verschaft, die individueel beweegbaar zijn door de twee aanwijsinrichtingen, bijvoorbeeld een eerste muisinrichting en een tweede muisinrichting.
Hoewel het technisch mogelijk zou zijn om een nieuw besturingssysteem te ontwikkelen met inherente ondersteuning voor meerdere aanwijsinrichtingen en meerdere cursoren, is zulk een oplossing geen realistische optie. De uitvinders van de onderhavige uitvinding hebben daarom geprobeerd een oplossing te vinden op basis van een bestaand besturingssysteem O/S met een grafische gebruikersinterface GUI dat één enkele native muiscursor verschaft, en de functionaliteit daarvan uit te breiden of te verbeteren, idealiter op een zodanige wijze dat de meeste of alle bestaande applicaties hiervan voordeel kunnen hebben, zonder wijziging van deze applicaties.
Zoals verder in meer detail uitgelegd zal worden, stelt de onderhavige uitvinding voor om het probleem gedeeltelijk op te lossen in de driver-laag, en gedeeltelijk in een "grafische overlay- applicatie". Een onderliggend principe van de onderhavige uitvinding is dat de overlay-applicatie twee posities onderhoudt, één voor elke aanwijsinrichting, en dat de overlay-applicatie de native muiscursor van het O/S één van deze twee posities laat innemen. Dit biedt het grote voordeel dat de aanblik en het uitzicht van deze muiscursor meestal onder controle blijft van het O/S en de GUI en de andere applicaties (behalve wanneer de muiscursor over een gebruikersinterface-venster van de overlay- applicatie beweegt). Derhalve laat de oplossing verschaft door de onderhavige uitvinding toe dat de muisaanwijzer van vorm verandert, afhankelijk van de context van de applicatie onder de overlay-
applicatie, bijv. naar "een pijlaanwijzer" of een "aanwijzer met een I-streepje" of een "zandloper" enz. Dit voordeel mag niet onderschat worden, want de vorm van de muiscursor geeft vaak "visuele aanwijzingen" aan de gebruiker, die anders verloren zouden gaan. Verwijzend nu naar de figuren.
FIG. 1 tot FIG. 4 zijn reeds beschreven in het achtergrondgedeelte, en illustreren verscheidene praktische voorbeelden wanneer één enkele gebruiker (meer bepaald een professionele gebruiker) een personal computer wil gebruiken met twee aanwijsinrichtingen, één bedienbaar met zijn/haar dominante hand, de andere bedienbaar met zijn/haar niet-dominante hand.
Teneinde de vereisten van een potentiële oplossing met twee aanwijsinrichtingen te kwantificeren, wordt aangenomen dat de gebruiker van FIG. 1 tot FIG. 4 rechtshandig is, en dat de computerinrichting van FIG. 1 tot FIG. 4 met twee aanwijsinrichtingen verbonden is: een "rechter muisinrichting" voor de rechterhand, en een "linker muisinrichting" voor de linkerhand, dan: (1) wil de gebruiker van FIG. 1 en FIG. 2 en FIG. 3 de rechter muisinrichting bewegen en/of klikken en/of scrollen, en wil de linker muisinrichting bewegen, maar hoeft niet noodzakelijkerwijs de linker muisinrichting te klikken of te scrollen; (2) alternatief wil de gebruiker van FIG. 1 de rechter muisinrichting bewegen en/of klikken en/of scrollen, en wil de linker muisinrichting bewegen en/of slepen (d.w.z. indrukken en bewegen en loslaten) en/of scrollen; (3) wil de gebruiker van FIG. 4 de rechter muisinrichting bewegen en/of klikken en/of scrollen, en wil de linker muisinrichting bewegen en/of klikken, maar hoeft niet noodzakelijkerwijs de linker muisinrichting te scrollen.
FIG. 5 toont een computersysteem 500 volgens een uitvoeringsvorm van de onderhavige uitvinding, omvattende een computerinrichting 501 en twee aanwijsinrichtingen 503R, 503L en een weergavescherm 504 en optioneel een toetsenbord 502. De computerinrichting 501 is verbonden met een eerste aanwijsinrichting 503R en met een tweede aanwijsinrichting 503L, en voert een O/S en GUI uit (bijv. Windows 10 van Microsoft) dat een native muisaanwijzer/muiscursor 505 verschaft (hier getoond in de vorm van een witte pijl), en voert een overlay-applicatie uit volgens een uitvoeringsvorm van de onderhavige uitvinding, en voert optioneel één of meerdere andere applicaties uit, zoals bijv. een tekstverwerker, een PDF-documentviewer, een webbrowser, enz. De overlay-applicatie onderhoudt twee posities Pos1, Pos2 in overeenstemming met bewegingen van de eerste en tweede aanwijsinrichting respectievelijk, en overschrijft herhaaldelijk de positie van de native muisaanwijzer/muiscursor 505 teneinde overeen te stemmen met bewegingen van de eerste aanwijsinrichting 503R. De overlay-applicatie maakt het mogelijk dat de native muisaanwijzer/muiscursor 505 van het O/S en de GUI getoond wordt als een eerste zichtbaarvoorwerp in de plaats van deze te verbergen.
De overlay-applicatie verschaft bijkomend een tweede zichtbaar voorwerp 506L dat beweegt in overeenstemming met bewegingen van de tweede aanwijsinrichting 503L.
FIG. 5(a) toont bewegingen van het eerste zichtbaar voorwerp 505, zijnde de native muiscursor verschaft door het O/S en de GUI, in overeenstemming met bewegingen van de eerste aanwijsinrichting 503R.
Het tweede zichtbaar voorwerp 506L toont de tweede onderhouden positie Pos2, maar is stationair in FIG. 5(a). FIG. 5{b} toont bewegingen van het tweede zichtbaar voorwerp 506L verschaft door de overlay-applicatie, in overeenstemming met bewegingen van de tweede aanwijsinrichting 503L.
Het eerste zichtbaar voorwerp 505 toont de eerste onderhouden positie Pos1, maar is stationair in FIG. 5(b). FIG. 5(c) is een schematische voorstelling van een zogenoemde "Z-orde" van vijf vensters of beeldvlakken 581-585 en een “cursorvlak" 586 zoals gebruikt kan worden in het computersysteem 500 van FIG. 5(a) en FIG. 5(b). Het vlak 581 kan een achtergrondvlak zijn (in het geval van Windows bekend als de "desktop"), het beeldvlak 582 kan de zichtbare voorstelling zijn van een venster geassocieerd met een teksteditor-applicatie bijvoorbeeld, het beeldvlak 583 kan de zichtbare voorstelling zijn van een venster geassocieerd met een PDF-viewerapplicatie bijvoorbeeld, het beeldvlak 584 kan de zichtbare voorstelling zijn van een venster geassocieerd met de grafische overlay-applicatie volgens de onderhavige uitvinding, het cursorvlak 586 is het beeldvlak geassocieerd met de native muiscursor verschaft door het O/S en de GUI, waarvan de vorm door een onderliggende applicatie gewijzigd kan worden.
De grafische overlay-applicatie van de onderhavige uitvinding kan ook een optioneel gebruikersinterface-venster 585 hebben, een voorbeeld hiervan zal in FIG. 28 tot FIG. 31 beschreven worden.
Het gebruikersinterface-venster 585 is niet geconfigureerd in doorklikmodus, maar is geconfigureerd in niet-doorklikmodus, wat wil zeggen dat zijn zichtbare componenten (bijv. knoppen, radioknoppen, checkboxes, enz.) in staat zijn (onder andere) muisklikken te ontvangen.
Het venster 584 van de overlay-applicatie kan een grootte hebben gelijk aan het zichtbare scherm, of gelijk aan het gebied van het desktopvlak 581, of gelijk aan het gebied van het zogenoemde werkgebied (d.w.z. het gebied van het scherm minus het gebied ingenomen door de zogenoemde "taakbalk"), of een andere geschikte grootte.
Het venster 584 omvat ten minste één zichtbaar voorwerp 506L, bijvoorbeeld in de vorm van een rechthoekig voorwerp.
Het voorwerp 506L kan ondoorzichtig of semi-transparant zijn.
Het voorwerp 506L kan monochrome pixels hebben, bijvoorbeeld rode of blauwe pixels, of kan een bitmap hebben met een kleurgradiënt, enz.
De andere pixels 594 van het venster 584 kunnen volledig transparante pixels zijn.
Alternatief kan het venster 584 geconfigureerd zijn als een semi-transparant venster, bijvoorbeeld met een alfatransparantie in hetbereik van 1% tot 99%, bijvoorbeeld in het bereik van 5% tot 95%. In dit geval kunnen de pixels van het venster 584 een kleur hebben, bijvoorbeeld een monochrome kleur, maar het venster 584 kan ook een "geperforeerde bitmap" of een "textuurbitmap" of een "geperforeerde textuurbitmap" omvatten.
Deze aspecten zijn in meer detail beschreven in octrooiaanvrage BE2017/5891 ingediend op 4 december 2017 door dezelfde aanvrager, met als titel "METHOD, DEVICE AND COMPUTER PROGRAM FOR OVERLAYING A GRAPHICAL IMAGE", welk document door referentie hierin in zijn geheel is opgenomen, en waarnaar hierin verder wordt verwezen als de mede in behandeling zijnde "geperforeerde bitmap aanvrage". In het geval van conflict tussen deze aanvrage en de mede in behandeling zijnde aanvrage, overheerst het onderhavige document.
De onderhavige uitvinding kan gezien worden als een variant of een uitbreiding op de octrooiaanvrage BE2017/5895, eveneens ingediend op 4 december 2017 door dezelfde aanvrager, welk document door referentie hierin in zijn geheel wordt opgenomen.
In het voorbeeld van FIG. 5(c) heeft de grafische overlay-applicatie twee vensters: - een venster 584 dat in doorklikmodus geconfigureerd is en hoofdzakelijk transparant of semi-transparant is (bijv. met een alfatransparantie in het bereik van 5% tot 95%), - en een ander venster 585 (ook gebruikers-interface venster genoemd) dat bij voorkeur niet in doorklikmodus geconfigureerd is en dat voornamelijk ondoorzichtig is.
FIG. 5{d} toont een hoog-niveau flowdiagram van een computer-geïmplementeerde werkwijze 570 volgens een uitvoeringsvorm van de onderhavige uitvinding, voor het verschaffen van een eerste en een tweede zichtbaar voorwerp 505, 506L separaat beweegbaar door respectievelijk een eerste aanwijsinrichting 503R en een tweede aanwijsinrichting 503L.
De werkwijze kan geïmplementeerd zijn in een overlay-applicatie 551 (zie FIG. 5f) die op de computerinrichting 501 (zie FIG. 5a) uitgevoerd kan worden, welke computerinrichting 501 ook een besturingssysteem O/S met een grafische gebruikersinterface GUI omvat dat één enkele native muiscursor 505 verschaft.
De computerinrichting 501 is verbonden met de eerste en de tweede aanwijsinrichting 503R, 503L.
De werkwijze onderhoudt twee posities Pos1 en Pos2 (zie ook FIG. 5f). De werkwijze weergegeven in FIG. 5d omvat de volgende stappen: a) het configureren, 571 van het besturingssysteem O/S met grafische gebruikersinterface GUI om de native muiscursor 505 te verschaffen als het eerste zichtbaar voorwerp, bijv. door toe te laten dat het O/S de muiscursor toont of door de muiscursor niet expliciet te verbergen; b) het verschaffen 572 van een grafisch overlayvenster 584 omvattende het tweede zichtbaar voorwerp 506L; c) het configureren 573 van het grafisch overlayvenster 584 in doorklikmodus;
e) het aanpassen van een positie van de native muiscursor 505 in overeenstemming met bewegingen van de eerste aanwijsinrichting 503R, en het aanpassen van een positie van het tweede zichtbaar voorwerp 506L in overeenstemming met bewegingen van de tweede aanwijsinrichting 503L.
In een uitvoeringsvorm wordt de positie van het eerste zichtbaar voorwerp 505 bijgewerkt aan dezelfde frequentie als de positie van het tweede zichtbaar voorwerp 506L.
In een andere uitvoeringsvorm wordt de positie van het eerste zichtbaar voorwerp 505 bijgewerkt aan een andere frequentie dan de positie van het tweede zichtbaar voorwerp 506L. Bijvoorbeeld, de positie van de native muiscursor kan bijgewerkt worden in een berichtenverwerkingsroutine (zie bijvoorbeeld FIG. 5g), en de positie van het tweede zichtbaar voorwerp kan bijvoorbeeld bijgewerkt worden op basis van een timer-interrupt.
FIG. 5{f) toont een meer gedetailleerd voorbeeld van een computer-geïmplementeerde werkwijze volgens een uitvoeringsvorm van de onderhavige uitvinding, die gezien kan worden als een speciaal geval van de werkwijze getoond in FIG. 5(d). De werkwijze van FIG. 5(e) omvat verder stap d): d) het configureren 574 van het besturingssysteem O/S om ruwe inputberichten te zenden; In het geval dat het O/S een Microsoft Windows variant is, kan deze stap het registreren omvatten van de applicatie bij het O/S voor het ontvangen van ruwe inputgegevens, bijv. in de vorm van inputberichten bekend als WM_ INPUT berichten, bijvoorbeeld gebruikmakende van de WinAPI functie RegisterRawlnputDevices(). Er wordt opgemerkt dat applicaties niet automatisch ruwe inputberichten ontvangen.
En waarbij stap e) omvat: het herhaaldelijk uitvoeren van: f) het ontvangen 575 van een ruw inputbericht; g) het bepalen of het ruwe inputbericht gerelateerd is aan een beweging van de eerste of tweede aanwijsinrichting 503R, 503L, en indien het resultaat van deze test waar is, het verkrijgen van verplaatsingsinformatie dx, dy gerelateerd aan de verplaatsing, en het bijwerken van de overeenkomstige eerste of tweede positie Pos1, Pos2; en indien het resultaat van deze test onwaar is, het overslaan van stap h); h) het aanpassen 577 van de positie van de native muiscursor 505 op basis van de eerste onderhouden positie Pos1, of de tweede onderhouden positie Pos2, of de positie Pos1 of Pos2 geassocieerd met de aanwijsinrichting die het meest recent werd bediend. In het voorbeeld van FIG.5(a) en FIG. 5(b) wordt de positie van de native muiscursor 505 altijd bijgewerkt in overeenstemming met bewegingen van de eerste aanwijsinrichting 503R, maar zoals verder uitgelegd zal worden kan deze positie ook op een andere manier bijgewerkt worden.
En waarbij stap e) verder omvat: i) het herhaaldelijk aanpassen 578 van een positie van het tweede zichtbaar voorwerp 506L in overeenstemming met de tweede positie (Pos2). Deze stap i) kan ook asynchroon uitgevoerd wordenten opzichte van stappen f) tot h), om performance-redenen. Alternatief kan stap i) uitgevoerd worden na elke uitvoering van stap h).
Stap g) in combinatie met stap h) wordt hierin ook de "positiebijwerkingsroutine" genoemd, het is een gedeelte van de berichtenverwerkingsroutine. Stap i) wordt hierin ook "voorwerp- herpositioneringsroutine" genoemd.
FIG. 5{f) toont een vereenvoudigd hoogniveau-blokdiagram van hardware- en software- componenten gesitueerd in het computersysteem 500, omvattende een computerinrichting 501 met een speciale overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding, en twee klassieke aanwijsinrichtingen M1, M2.
De overlay-applicatie onderhoudt twee aanwijsposities: een eerste positie Posil die coördinaten (x1, yl) heeft en een tweede positie Pos2 die coördinaten (x2, y2) heeft. Een berichtenverwerker 552 van de overlay-applicatie 551 zal de eerste en tweede positie Pos1, Pos2 bijwerken op basis van bewegingen van de twee aanwijsinrichtingen, verder besproken in FIG. 5(g).
De grafische overlay-applicatie van het systeem 500 past herhaaldelijk de positie van de native muiscursor 505 aan naar de eerste onderhouden positie Pos1, overeenkomstig bewegingen van de rechter muisinrichting 503R, en past herhaaldelijk de positie van het tweede zichtbaar voorwerp 506L aan om overeen te stemmen met de tweede onderhouden positie Pos2, overeenkomstig bewegingen van de linker muisinrichting 503L, of omgekeerd.
FIG. 5(g) toont enkele regels pseudo-code om een vereenvoudigde versie te illustreren van een berichtenverwerkingsroutine zoals gebruikt kan worden in de overlay-applicatie 551 die in de computerinrichting 501 van FIG. 5(a) en FIG. 5(b) wordt uitgevoerd. De berichtenverwerker 552 wordt getriggerd door binnenkomende ruwe berichten vanuit inputinrichtingen (zoals bijv. toetsenbord en/of aanwijsinrichtingen) op een wijze die op zich gekend is in de stand der techniek. De berichtenverwerker kan verdere informatie gerelateerd aan elk bericht verkrijgen of verzoeken, bijvoorbeeld om een device-handle te krijgen teneinde te bepalen welke aanwijsinrichting het bericht verzonden heeft, en/of om een horizontale en verticale verplaatsingswaarde dx, dy te krijgen als indicatie voor een beweging in de horizontale en/of verticale richting, en/of om een waarde te krijgen als indicatie van hoeveel een scrolwiel gescrold is, enz.
Zoals uit de pseudo-code begrepen kan worden, indien het bericht door de linker aanwijsinrichting 503L werd verzonden, zal de tweede positie Pos2 bijgewerkt worden gebruikmakende van de verplaatsingswaardes dx, dy, en zal de positie van de native muiscursor 505 ingesteld (of teruggezet) worden naar de eerste positie Pos1 gerelateerd aan de rechter aanwijsinrichting 503R. Indien het bericht door de rechter aanwijsinrichting 503R verzonden werd, zal de eerste positie Pos1 bijgewerkt worden gebruikmakende van de verplaatsingswaardes dx, dy, en zalde positie van de native muiscursor 505 aangepast worden om dienovereenkomstig te bewegen. Testen hebben aangetoond dat deze routine ook gelijktijdige bewegingen van de linker en rechter aanwijsinrichting 503L, 503R correct afhandelt.
In het voorbeeld getoond in FIG. 5(g) worden de X en Y-coördinaat van de eerste en tweede positie Posl, Pos2 verhoogd met de verplaatsingswaardes dx, dy zoals ontvangen van de aanwijsinrichtingen, maar in de praktijk kunnen de verplaatsingswaardes dx, dy eerst getransformeerd worden, lineair of niet-lineair, om de bewegingen minder of meer gevoelig te maken (zie de radioknoppen "Snelheid Linker/Rechter Muis" en de "snelheidscurve" in FIG. 31a).
Zoals in FIG. 31(b) en FIG. 31(c) verder zal worden besproken, zijn andere aanpassingen van de verplaatsingswaardes mogelijk.
FIG. 5{h} toont enkele regels pseudo-code om een vereenvoudigde versie te illustreren van een routine die de positie van het tweede zichtbaar voorwerp 506L bijwerkt, in het voorbeeld zijnde een rechthoek, maar de onderhavige uitvinding is daartoe niet beperkt. Deze routine kan op een timer- interrupt gebaseerd zijn. Op deze manier kan het bijwerken van de positie van het tweede zichtbaar voorwerp 506L buiten de berichtenverwerker behandeld worden, wat om prestatieredenen de voorkeur kan genieten. De periode van de timer kan bijvoorbeeld gekozen worden in het bereik van 1 ms tot 250 ms, bij voorkeur in het bereik van ongeveer 1 ms tot ongeveer 100 ms, bijvoorbeeld gelijk aan ongeveer 1 ms of ongeveer 5 ms of ongeveer 10 ms of ongeveer 20 ms of ongeveer 25 ms of ongeveer 30 ms of ongeveer 35 ms of ongeveer 40 ms of ongeveer 50 ms of ongeveer 75 ms of ongeveer 100 ms. De waarde van deze periode is niet kritisch. Hoe kleiner deze tijdsperiodewaarde, hoe sneller de respons, maar hoe hoger de CPU-belasting. Hoe groter deze tijdsperiodewaarde, hoe trager de respons, maar hoe lager de CPU-belasting. De vakman kan eenvoudig een geschikte waarde vinden door routinematig experimenteren. Sommige uitvoeringsvorm kunnen de eindgebruiker toelaten om een geprefereerde timerwaarde te kiezen.
FIG. 5(a) tot FIG. 5(h) illustreren een eerste uitvoeringsvorm van de onderhavige uitvinding, in het bijzonder geschikt voor rechtshandige mensen. Het O/S en GUI verschaffen de native muiscursor 505, maar de overlay-applicatie past herhaaldelijk diens positie aan, zodanig dat de positie enkel gedefinieerd wordt door bewegingen van de rechter muisinrichting 503R. De rechter muisinrichting 503R kan bewogen worden, zijn knoppen kunnen ingedrukt of losgelaten of geklikt worden, en zijn scrolwiel kan gescrold worden zoals in de stand der techniek. Daarenboven toont de overlay-applicatie een tweede zichtbaar voorwerp 506L, dat in het voorbeeld van FIG. 5(a) de vorm heeft van een lijn of rechthoek, en de overlay-applicatie past herhaaldelijk diens positie aan, zodanig dat de positie enkel gedefinieerd wordt door bewegingen van de linker muisinrichting 503L. Deze uitvoeringsvorm adresseert met succes de in FIG. 1 tot FIG. 3 weergegeven problemen. De gebruiker kan zijn niet-
dominante hand gebruiken om het tweede voorwerp 506L te bewegen om tekst die hij of zij wil lezen te onderlijnen of te markeren, en kan zijn dominante hand gebruiken om een document te bewerken, tekst te kiezen, menu's te kiezen enz, gebruikmakende van de native muiscursor 505. Dus de overlay- applicatie verbetert het O/S en GUI door één additioneel zichtbaar voorwerp 506L te verschaffen dat beweegbaar is door de linker aanwijsinrichting 503L, terwijl de meeste of alle functionaliteit van de native muiscursor behouden blijft.
Het additioneel zichtbaar voorwerp 506L kan bijvoorbeeld gebruikt worden voor het onderlijnen of markeren van tekstfragmenten.
In een uitvoeringsvorm kan de overlay-applicatie een speciaal daarvoor voorziene applicatie zijn die enkel het specifieke gedrag weergegeven in FIG. 5(a) en FIG. 5(b) implementeert, waarbij de native muiscursor 505 door de rechter aanwijsinrichting wordt bewogen, en een tweede zichtbaar voorwerp 506L dat de vorm heeft van een lijn beweegbaar is door de linker aanwijsinrichting, in welk geval het gebruikersinterface-venster 585 kan worden weggelaten.
In een andere uitvoeringsvorm kan de overlay-applicatie verscheidene opties implementeren, en kan een gebruiker een modus kiezen uit een veelheid van modi.
In dit geval is een gebruikersinterface-venster handig, zie bijvoorbeeld de voorbeeldmatige gebruikersinterface van FIG. 28(a), bijv. modus 2860(d), en de voorbeeldmatige gebruikersinterface van FIG. 30, bijv. modus 3060(d). De "grote rechter muis" getoond aan de linkerzijde van FIG. 28(a) is een hint aan de gebruiker dat de rechter muis de dominante muis is voor de modi 3060, wat wil zeggen dat de "rechter muisinrichting" de native muiscursor 505 aanstuurt.
De “kleine linker muis" is een hint aan de gebruiker dat de linker muisinrichting de niet-dominante muis is die het tweede zichtbaar voorwerp aanstuurt, in het geval van modus 2860(d) zijnde een lijn of rechthoek.
FIG. 6(a) tot FIG. 6(c) toont een computersysteem 600 volgens een andere uitvoeringsvorm van de onderhavige uitvinding, dat gezien kan worden als een variant van het computersysteem 500 van FIG.5, waarbij een computerinrichting 601 verbonden is met een eerste en tweede aanwijsinrichting 603R, 603L, en een O/S en GUI (bijv.
Windows 10) uitvoert dat een native muisaanwijzer 605 verschaft (bijv. met de vorm van een witte pijl), en een overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding uitvoert.
De overlay-applicatie onderhoudt een eerste en een tweede positie Pos1, Pos2 in overeenstemming met bewegingen van respectievelijk de eerste en tweede aanwijsinrichting 603R, 603L, en past de positie van de native muisaanwijzer 605 aan, bijv. overschrijft deze, in overeenstemming met bewegingen van de eerste aanwijsinrichting 603R.
De overlay-applicatie verschaft een tweede zichtbaar voorwerp 606L dat beweegt in overeenstemming met bewegingen van de tweede aanwijsinrichting 603L, en verschaft ook een derde zichtbaar voorwerp 606R dat beweegt in overeenstemming met bewegingen van de eerste aanwijsinrichting 603R.
In het voorbeeld van FIG. 6 zijn het tweede en het derde voorwerp 606L en 606R rechthoeken die dezelfde grootte en kleur hebben, maar dat is niet absoluut vereist, en de twee zichtbarevoorwerpen kunnen een verschillende grootte en/of een verschillende vorm en/of een verschillende kleur hebben. Dus, de overlay-applicatie gebruikt in het computersysteem 600 van FIG. 6 verbetert het O/S en de GUI door twee additionele zichtbare voorwerpen 606L, 606R te verschaffen die beweegbaar zijn door de twee aanwijsinrichtingen 603L, 603R, en die bijvoorbeeld gebruikt kunnen worden voor het onderlijnen of markeren van tekstfragmenten van klassieke applicaties die op de computer worden uitgevoerd, bijvoorbeeld: een tekstverwerker, een webbrowser, een slideshow, een PowerPointpresentatie, een PDF-documentviewer, enz. De voorwerpen 606L, 606R kunnen ondoorzichtig of semi-transparant zijn of kunnen een “geperforeerde bitmap" bevatten zoals beschreven in de mede in behandeling zijnde "geperforeerde bitmap aanvrage".
FIG. 6(a) toont bewegingen van het eerste zichtbaar voorwerp 605 (de native muiscursor) en bewegingen van het derde zichtbaar voorwerp 606R in overeenstemming met bewegingen van de eerste aanwijsinrichting 603R.
FIG. 6{b} toont bewegingen van het tweede zichtbaar voorwerp 606L in overeenstemming met bewegingen van de tweede aanwijsinrichting 603L.
FIG. 6{c} toont een voorbeeldmatige voorwerp-herpositioneringsroutine die gebruikt kan worden in de overlay-applicatie om de twee zichtbare voorwerpen 606L, 606R te bewegen, in pseudo- code. Eenvoudig gesteld, worden de coördinaten van het voorwerp 606L (genoemd rectangleL) bijgewerkt volgens de tweede positie Pos2 met coördinaten xL, yL geassocieerd met de tweede muisinrichting 603L, en worden de coördinaten van het voorwerp 606R (genoemd rectangleR) bijgewerkt volgens de eerste positie Posl met coördinaten xR, yR geassocieerd met de eerste muisinrichting 603R. Deze stappen worden herhaaldelijk uitgevoerd, bijvoorbeeld op basis van een timer.
Er wordt op gewezen dat, in FIG. 6(a) en FIG. 6(b), het eerste zichtbaar voorwerp 606R wordt getoond aan de rechterzijde van het scherm 604, en het tweede zichtbaar voorwerp 606L wordt getoond aan de linkerzijde van het scherm 604, maar dat is niet absoluut vereist, en beide voorwerpen kunnen overal op het scherm bewogen worden, zoals bijvoorbeeld getoond in FIG. 37. In de praktijk echter, zal een gebruiker het typisch meer intuïtief vinden om het voorwerp gerelateerd aan de linker aanwijsinrichting aan de linkerzijde van het scherm te positioneren. In andere uitvoeringsvormen is de beweging van het tweede en optioneel verder(e) voorwerp(en) 3906R, 3906L beperkt, zoals bijvoorbeeld getoond in FIG. 39, dat later zal besproken worden, maar zelfs dan is de beweging van de native muiscursor 3905 bij voorkeur niet beperkt.
Het computersysteem 600 van FIG. 6 kan bijvoorbeeld gebruikt worden door proeflezers voor het schijnbaar onderlijnen van tekstgedeeltes in twee documenten die zijde aan zijde op het scherm 604 worden getoond, zonder de inhoud van de documenten zelf daadwerkelijk te wijzigen. Het is een belangrijk voordeel dat tekstfragmenten schijnbaar onderlijnd kunnen worden in twee verschillende documenten tegelijk. Dit kan de cognitieve last van de gebruiker drastisch verlagen bij het heen enweer wisselen van focus tussen de twee documenten.
Het is een belangrijk voordeel dat de tekstfragmenten onafhankelijk onderlijnd kunnen worden (in tegenstelling tot bijvoorbeeld tekstverwerkers die enkel synchrone navigatie doorheen twee tekstdocumenten mogelijk maken}, niet slechts omdat zinnen in één taal langer of korter kunnen zijn dan zinnen in een andere taal, maar ook omdat de twee documenten een verschillende formattering kunnen hebben, bijv. een verschillende layout en/of een verschillend lettertype en/of een verschillende lijntussenafstand, enz.
Het is een voordeel dat "de tweede muis en het tweede voorwerp" gebruikt kunnen worden in combinatie met bijna iedere onderliggende applicatie, bijv. een tekstverwerker, een PDF-documentlezer, een werkblad, een webbrowser, een PowerPoint-toepassing, enz. zonder ook maar één van deze applicaties te hoeven wijzigen.
Bijvoorbeeld, het voorwerp 606L kan bewogen worden over een PDF-document, en het voorwerp 606R kan bewogen worden over een tekstdocument, en omgekeerd.
In het voorbeeld van FIG. 6(a) en FIG. 6(b), beweegt de native muiscursor 605 mee met het voorwerp 606R.
De gebruiker kan de native muiscursor 605 gebruiken om overal op het scherm te klikken en/of te slepen en/of menu-opties te kiezen, bijvoorbeeld om in het tekstdocument tekst te selecteren die vervolgens gewist of door andere tekst vervangen kan worden gebruikmakende van het toetsenbord 602, of om in de taakbalk (niet expliciet getoond) nieuwe applicaties te openen op dezelfde wijze als zonder de grafische overlay-applicatie kan gedaan worden.
In de voorbeeldmatige gebruikersinterface van FIG. 28(a), kan het gedrag van FIG. 6(a) en FIG. 6(b) overeenstemmen met modus 2860(h). (het woord "kan" wordt gebruikt, omdat verscheidene variaties mogelijk zijn, bijvoorbeeld voor de berichtenverwerker, zoals verder duidelijk zal worden). FIG. 7 toont een computersysteem 700 volgens een andere uitvoeringsvorm van de onderhavige uitvinding, die gezien kan worden als een variant van het computersysteem 600 van FIG. 6, waarbij een computerinrichting 701 verbonden is met een eerste aanwijsinrichting 703R en een tweede aanwijsinrichting 703L, en een O/S en GUI uitvoert dat een native muisaanwijzer of muiscursor 705 verschaft (bijv. een witte pijl), en een overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding uitvoert, die een tweede en een derde zichtbaar voorwerp 706L, 706R verschaft.
De overlay-applicatie onderhoudt een eerste en een tweede aanwijspositie Pos1, Pos2 in overeenstemming met bewegingen van de eerste en tweede aanwijsinrichting 703R, 703L respectievelijk, en past de positie van de native muisaanwijzer/-cursor 705 aan, bijv. overschrijft deze, in overeenstemming met bewegingen van de aanwijsinrichting die het meest recent werd bewogen.
Dus, indien de rechter aanwijsinrichting 703R bewogen wordt en de linker aanwijsinrichting 703L stationair is, zoals weergegeven in FIG. 7(a), dan volgt de native muiscursor 705 bewegingen van de rechter aanwijsinrichting 703R, en kunnen de knoppen en/of het scrolwiel van de rechter aanwijsinrichting 703R gebruikt worden.
Indien op een ander moment in tijd de linkeraanwijsinrichting 703L bewogen wordt en de rechter aanwijsinrichting 703R stationair is, zoals weergegeven in FIG. 7(b), dan volgt de native muiscursor 705 bewegingen van de linker aanwijsinrichting 703L, en kunnen de knoppen en/of het scrolwiel van de linker aanwijsinrichting 703L gebruikt worden. Zoals begrepen kan worden uit FIG. 7(a) en FIG. 7(b) volgt de native muiscursor bewegingen van de aanwijsinrichting die bewogen is, tot het moment dat de andere aanwijsinrichting bewogen wordt, hetgeen veroorzaakt dat de native muisaanwijzer naar de andere onderhouden positie springt. Op deze wijze kan de gebruiker de native muisaanwijzer op twee verschillende locaties van het scherm gebruiken, zij het op verschillende momenten in tijd. Of met andere woorden uitgedrukt, in deze uitvoeringsvorm, wordt de native muiscursor 705 die verschaft wordt door het O/S en de GUI tijdelijk geassocieerd met één van de aanwijsinrichtingen 703L, 703R op elk moment in de tijd, dus de native muisaanwijzer 705 wordt “gedeeld in tijd" tussen de twee aanwijsinrichtingen.
FIG. 7(c) is een hoog-niveau flowdiagram dat een computer-geïmplementeerde werkwijze toont volgens een uitvoeringsvorm van de onderhavige uitvinding, zoals gebruikt kan worden in het computersysteem van FIG. 7(a).
FIG. 7(c) toont een computer-geïmplementeerde werkwijze voor het verschaffen van een eerste zichtbaar voorwerp 705 en een tweede zichtbaar voorwerp 706L en een derde zichtbaar voorwerp 706R. Het derde zichtbaar voorwerp 706R is beweegbaar door een eerste aanwijsinrichting 703R. Het tweede zichtbaar voorwerp 706L is separaat beweegbaar door een tweede aanwijsinrichting 703L.
Het eerste zichtbaar voorwerp 705 is selectief beweegbaar door een van de eerste aanwijsinrichting 703R en de tweede aanwijsinrichting 703L, afhankelijk van welke het meest recent werd bewogen en/of bediend. In FIG. 7(a) wordt de eerste aanwijsinrichting 703R bewogen, en bewegen de native muiscursor 705 en het derde zichtbaar voorwerp 703R beide in overeenstemming met bewegingen van de rechter aanwijsinrichting, of meerbepaald, in overeenstemming met een eerste positie Pos1. In FIG. 7(b) wordt de tweede aanwijsinrichting 703L bewogen, en bewegen de native muiscursor 705 en het tweede zichtbaar voorwerp 706L beide in overeenstemming met bewegingen van de linker aanwijsinrichting 703L. Het kan begrepen worden dat de native muiscursor 705 geleidelijk beweegt zolang slechts één aanwijsinrichting wordt bewogen, maar typisch plots springt van Pos1 naar Pos2 of omgekeerd wanneer de andere aanwijsinrichting wordt bewogen.
FIG. 7(c) toont een flowdiagram dat een computer-geïmplementeerde werkwijze illustreert die de volgende stappen omvat: a) het configureren, bijv. het toelaten dat een besturingssysteem O/S met een grafische gebruikersinterface GUI een native muiscursor 705 als een eerste zichtbaar voorwerp verschaft; b) het verschaffen van een grafisch overlayvenster dat een tweede zichtbaar voorwerp 706L en een derde zichtbaar voorwerp 706R omvat;
c) het configureren van het grafisch overlayvenster in doorklikmodus; e) het aanpassen (774) van een positie van de native muiscursor 705 in overeenstemming met bewegingen van één van de eerste aanwijsinrichting 703R en de tweede aanwijsinrichting 703L, afhankelijk van welke beweging het meest recent was, en het aanpassen (775) van een positie van het tweede zichtbaar voorwerp 706L in overeenstemming met bewegingen van de tweede aanwijsinrichting 703L, en het aanpassen van een positie van het derde zichtbaar voorwerp 706R in overeenstemming met bewegingen van de eerste aanwijsinrichting 703R.
FIG. 7{d} is een meer gedetailleerd flowdiagram dat een computer-geïmplementeerde werkwijze toont volgens een uitvoeringsvorm van de onderhavige uitvinding, zoals gebruikt kan worden in het computersysteem van FIG. 7(a). De werkwijze omvat de volgende stappen: a) het configureren, bijv. het toelaten dat een besturingssysteem O/S met een grafische gebruikersinterface GUI een native muiscursor 705 als een eerste zichtbaar voorwerp verschaft; b) het verschaffen van een grafisch overlayvenster dat een tweede zichtbaar voorwerp 706L en een derde zichtbaar voorwerp 706R omvat; c) het configureren van het grafisch overlayvenster in doorklikmodus; d) het configureren van het O/S om ruwe inputberichten te zenden, en het verschaffen van een berichtenverwerker om deze ruwe inputberichten te verwerken; e) het herhaaldelijk uitvoeren van de volgende stappen: f) het ontvangen van een ruw inputbericht; g) indien het ontvangen ruwe inputbericht gerelateerd is aan een beweging van de eerste/tweede aanwijsinrichting 703R, 703L, het verkrijgen van verplaatsingsinformatie dx, dy en het bijwerken van respectievelijk een eerste en tweede positie Pos1, Pos2; h) het aanpassen van een positie van de native muiscursor 705 in overeenstemming met de eerste of tweede positie Posi, Pos2 afhankelijk van het meest recente inputbericht; en het herhaaldelijk uitvoeren van de volgende stap: i) het aanpassen van een positie van het tweede en derde zichtbaar voorwerp 706L,706R in overeenstemming met respectievelijk de eerste positie Posl en de tweede positie Pos2.
FIG. 7(e) toont een voorbeeldmatige positie-bijwerkingsroutine (als gedeelte van de berichtenverwerkingsroutine), in pseudo-code, die gebruikt kan worden om dit gedrag te verkrijgen. Zoals te zien is, worden de coördinaten (xR,yR) en (xL,yL) van de eerste en tweede positie Pos1, Pos2bijgewerkt in overeenstemming met bewegingen van respectievelijk de eerste en tweede aanwijsinrichting 703R, 703L (zij het onrechtstreeks, door gebruik te maken van een device-handle welke het O/S aan elke aanwijsinrichting toekent), en wordt de positie van de native muiscursor 705 aangepast afhankelijk van het meest recente bewegingsbericht.
Een voordeel van deze uitvoeringsvorm is dat een gebruiker twee muisinrichtingen kan gebruiken voor het tegelijk tonen van twee zichtbare voorwerpen, bijv. twee lijnen of twee rechthoeken voor het onderlijnen of markeren van tekstfragmenten op twee verschillende locaties van het scherm, en daarenboven kan de gebruiker ook de muisinrichting klikken of scrollen die het meest recent wordt bewogen. Dit kan bijvoorbeeld gebruikt worden voor het omhoog/omlaag scrollen van de respectievelijke documenten bij het proeflezen. FIG. 8 toont een ander computersysteem 800 volgens een uitvoeringsvorm van de onderhavige uitvinding, dat gezien kan worden als een variant van het computersysteem 500 van FIG. 5, waarbij het tweede zichtbaar voorwerp 806 de vorm heeft van een zwarte pijl, maar uiteraard is de uitvinding daartoe niet beperkt, en kan een pijl van een andere kleur eveneens gebruikt worden, maar de tekening is niet beperkt tot een pijl, en ook andere vormen kunnen gebruikt worden, zie bijvoorbeeld FIG. 34 waar twee handen zijn gebruikt. Zoals weergegeven in FIG. 8(c) omvat de overlay-applicatie gebruikt in het computersysteem 800 van FIG. 8 een doorklikvenster 884 gelijkend op het venster 584 van FIG. 5(c), maar waarbij het rechthoekig voorwerp 506L vervangen is door een zichtbaar voorwerp (bijv. een "beeldcomponent") bevattende een geschikte bitmap. De beeldcomponent 806L kan een bitmap bevatten die pixels bevat die een zwarte pijl voorstellen omgeven door volledig transparante pixels 895 (waarvan slechts enkele getoond zijn), wat geschikt is in het geval dat de andere pixels 894 van het venster 884 eveneens volledig transparante pixels zijn. In het geval dat het venster 884 geconfigureerd is als een semi- transparant venster en de pixels 894 een bepaalde kleur hebben (bijv. lichtgrijs), dan is de zwarte pijl bij voorkeur omgeven door semi-transparante pixels 895 die diezelfde kleur hebben (bijv. lichtgrijs). In het geval dat het venster 884 geconfigureerd is als een semi-transparante geperforeerde bitmap of een semi-transparante geperforeerde textuurbitmap zoals in meer detail beschreven in de mede in behandeling zijnde “geperforeerde bitmap aanvrage", dan is de zwarte pijl bij voorkeur ook omgeven door dezelfde of gelijkaardige geperforeerde bitmap. In het laatst genoemde geval zal de voorwerp- herpositioneringsroutine het beweegbaar voorwerp 806L bij voorkeur zodanig lokaliseren dat de geperforeerde achtergrond van het beweegbare beeld uitgelijnd is met de geperforeerde bitmap van het venster 884, wat in het geval van een 2x2 bitmap met een schaakbordpatroon geïmplementeerd kan worden door het beweegbaar voorwerp 806L, bijvoorbeeld alleen op locaties met even X- en even Y-coördinaten te positioneren, of alleen op locaties met oneven X- en oneven Y-coördinaten, afhankelijk van waar of hoe het patroon van de pixels 894 gelegen is.
FIG. 8(a) toont bewegingen van het eerste zichtbaar voorwerp 805 in overeenstemming met bewegingen van de eerste aanwijsinrichting 803R.
FIG. 8(b) toont bewegingen van het tweede zichtbaar voorwerp 806 in overeenstemming met bewegingen van de tweede aanwijsinrichting 803L. Om redenen die verder duidelijk zullen worden, zou de linker muisinrichting 803L in bepaalde uitvoeringsvormen van de onderhavige uitvinding enkel bewogen moeten worden, maar niet geklikt of gescrold in het systeem 800. Om die reden kan de voorstelling van het tweede zichtbaar voorwerp 806 in de vorm van een pijl verwarrend zijn voor een gebruiker, en kan een lijn of een rechthoek of een vierkant de voorkeur genieten als een zichtbare indicatie van de tweede positie, omdat het intuïtief duidelijk is dat een lijn of vierkant niet geklikt hoort te worden. In het systeem 800 volgt de native muiscursor 805 bewegingen van de rechter muisinrichting 803R, en is daarom waarschijnlijk beter geschikt voor rechtshandige mensen.
FIG. 9 toont een computersysteem 900 volgens een uitvoeringsvorm van de onderhavige uitvinding die gezien kan worden als een variant van het computersysteem 800 getoond in FIG. 8, waarbij de native muiscursor 905 bewegingen van de linker muisinrichting 903L volgt. De uitvoeringsvorm van FIG. 9 is daarom waarschijnlijk beter geschikt voor linkshandige mensen. In deze uitvoeringsvorm kan de zwarte pijl 906 bewogen worden door de rechter aanwijsinrichting 903R, maar deze aanwijsinrichting 903R hoort in bepaalde uitvoeringsvormen van de onderhavige uitvinding niet geklikt of gescrold te worden.
FIG. 9(a) toont dat de positie van de zwarte pijl 906 aangepast wordt in overeenstemming met bewegingen van de rechter aanwijsinrichting 903R.
FIG. 9(b} toont dat de positie van de native muiscursor 905 aangepast wordt in overeenstemming met bewegingen van de linker aanwijsinrichting 903L. Beide pijlen zijn te allen tijde zichtbaar op het scherm.
FIG. 9{c) toont een voorbeeldmatige positiebijwerkingsroutine als gedeelte van een berichtenverwerkingsroutine, in pseudo-code, die gebruikt kan worden om dit gedrag te verkrijgen. Zoals te zien is, worden de eerste en tweede positie Pos1, Pos2 bijgewerkt in overeenstemming met bewegingen van respectievelijk de eerste en tweede aanwijsinrichting 903R, 903L. In het geval dat de linker aanwijsinrichting 903L werd bewogen, wordt de positie van de native muiscursor 905 dienovereenkomstig aangepast. In het geval dat de rechter aanwijsinrichting 903R werd bewogen, wordt de positie van de native muiscursor 905 terug gedwongen naar de tweede positie Pos2 onderhouden door de overlay-applicatie. Dus zijn de twee pijlen 905, 906 individueel beweegbaar door de twee aanwijsinrichtingen.
FIG. 10 toont een computersysteem 1000 volgens een andere uitvoeringsvorm van de onderhavige uitvinding, die gezien kan worden als een variant van het computersysteem 700 van FIG. 7voor aspecten gerelateerd aan het positioneren van de native muiscursor 1005, en die gezien kan worden als een variant van het computersysteem 800 van FIG. 8 en 900 van FIG. 9 voor aspecten gerelateerd aan de vorm van het tweede zichtbaar voorwerp 1006. Het computersysteem 1000 omvat een computerinrichting 1001 verbonden met een eerste aanwijsinrichting 1003R en met een tweede aanwijsinrichting 1003L en verbonden met een weergavescherm 1004. De computerinrichting 1001 heeft ten minste één processor die een O/S en GUI uitvoert dat een native muisaanwijzer/-cursor 1005 verschaft (bijv. een witte pijl), en een overlay- applicatie uitvoert volgens een uitvoeringsvorm van de onderhavige uitvinding. De overlay-applicatie onderhoudt een eerste en een tweede aanwijspositie Pos1, Pos2 in overeenstemming met bewegingen van respectievelijk de eerste en tweede aanwijsinrichting 1003R, 1003L, en past de positie van de native muisaanwijzer/-cursor 1005 aan, bijv. overschrijft deze, in overeenstemming met bewegingen van de aanwijsinrichting die het meest recent werd bewogen.
FIG. 10(a) toont bewegingen van het eerste zichtbaar voorwerp, zijnde de native muisaanwijzer 1005, in overeenstemming met bewegingen van de eerste aanwijsinrichting 1003R omdat dit de aanwijsinrichting is die bewogen wordt, terwijl het tweede zichtbaar voorwerp 1006 (bijv. een zwarte pijl) de andere onderhouden positie Pos2 aanneemt. In deze situatie kan de gebruiker de knoppen indrukken/loslaten/klikken en/of het scrolwiel bewegen van de eerste muisaanwijzer 1003R, bijvoorbeeld om de teksteditor-applicatie te activeren, tekst te kiezen, commentaar toe te voegen, enz.
FIG. 10{b} toont bewegingen van het eerste zichtbaar voorwerp 1005 in overeenstemming met bewegingen van de tweede aanwijsinrichting 1003L, welke de aanwijsinrichting is die bewogen wordt, terwijl het tweede zichtbaar voorwerp 1006 (bijv. een zwarte pijl) de andere onderhouden positie Pos1 aanneemt. In deze situatie, kan de gebruiker de knoppen indrukken/loslaten/klikken en/of het scrolwiel bewegen van de tweede muisaanwijzer 1003L, bijvoorbeeld om de audiospeler-applicatie 1017 te activeren, op de afspeel- of pauzeknop te klikken, enz.
Zoals begrepen kan worden uit FIG. 10(a) en FIG. 10(b), kan de gebruiker beide locaties op het scherm 1004 zien, en kan hij op twee verschillende locaties op het scherm werken, zij het niet tegelijk, louter door de respectievelijke aanwijsinrichting te bewegen. De gebruiker kan op elke muisinrichting klikken of het betreffende muiswiel roteren na zeker te zijn dat de native muiscursor 1005 zich op de gewenste onderhouden positie Pos1 of Pos2 bevindt, zoals visueel aangeduid door de witte pijl.
FIG. 11 toont een specifiek voorbeeld van het vereenvoudigd hoogniveau-blokdiagram van hardware- en softwarecomponenten getoond in FIG. 5(f) in het geval dat de aanwijsinrichtingen M1, M2 HID-compatibele inrichtingen zijn (afkorting voor het "Human Interface Device"), en in het geval dat de computerinrichting een HID-interface omvat met ten minste twee aansluitpoorten, zoals typisch het geval is onder andere voor computerinrichtingen die USB-interfaces bevatten. Zoals gekend in destand der techniek, verzenden zulke muisinrichtingen signalen of berichten naar de computerinrichting, bijv. in de vorm van HID-pakketten, bevattende bewegings- of verplaatsingsinformatie dx, dy en/of informatie over een knop die wordt ingedrukt of losgelaten, en/of informatie over een scrolwiel dat wordt gedraaid. In feite is de communicatie tussen de computerinrichting en de muisinrichtingen bidirectioneel, maar de overlay-applicatie hoeft dat gedeelte van de communicatie niet te behandelen, wat daarom niet verder wordt besproken.
Zoals schematisch aangeduid door het sterretje *, is slechts de overlay-applicatie 1151 nieuw in FIG. 11, alle andere componenten (zonder sterretje) kunnen klassieke componenten zijn, met name de aanwijsinrichtingen M1, M2, het besturingssysteem O/S en GUI 1160, de muis device drivers (muisinrichtingaansturingen) 1161, en de andere applicaties 1162. Dit illustreert opnieuw dat de overlay-applicatie gebruikt kan worden om de functionaliteit van een bestaand O/S en GUI dat oorspronkelijk slechts één enkele native muiscursor verschaft, uit te breiden of te verbeteren.
De muisinrichtingen M1 en M2 kunnen bedrade muisinrichtingen zijn, of draadloze muisinrichtingen, of een combinatie van beide.
FIG. 12 toont een variant van het hoogniveau-blokdiagram van FIG. 11, waarbij twee klassieke aanwijsinrichtingen M1, M2 verbonden zijn met de computerinrichting via een klassieke hub of adapter of dongel 1220 in plaats van rechtstreeks verbonden te zijn met de computerinrichting. De hub 1220 kan een bedrade hub zijn, of een draadloze hub. De interface kan een HID-compatibele interface zijn, en de aanwijsinrichtingen kunnen HID-compatibele inrichtingen zijn, maar dat is niet absoluut vereist opdat de onderhavige uitvinding kan werken.
FIG. 13 toont enkele regels pseudo-code die een gedeelte illustreren van een berichtenverwerker die in staat is om in één van drie ingangsmodi te functioneren, die hierin als volgt worden genoemd: - "TweeHandig" (FIG. 13(a)) zoals uitgelegd in FIG. 7(c), waarbij de native muiscursor bewegingen volgt van de aanwijsinrichting die het meest recent bewogen is, of - “"RechtsHandig" (FIG. 13(b)) zoals uitgelegd in FIG. 5(g), waarbij de native muiscursor bewegingen volgt van de rechter aanwijsinrichting, en - “LinksHandig" (FIG. 13(c)) zoals uitgelegd in FIG. 9(c), waarbij de native muiscursor bewegingen volgt van de linker aanwijsinrichting.
Sommige uitvoeringsvormen van een overlay-applicatie volgens de onderhavige uitvinding kunnen mogelijks slechts één van deze ingangsmodi implementeren (bijv. hardcoderen).
Andere uitvoeringsvormen van een overlay-applicatie volgens de onderhavige uitvinding kunnen mogelijks twee van deze ingangsmodi implementeren, of alle drie van deze ingangsmodi, en de gebruiker in staat stellen om te kiezen welke inputmodus te gebruiken, bijvoorbeeld expliciet, zoalsgetoond in FIG. 31(a), door een gebruiker in staat te stellen om een "Dominante muis" te kiezen, in welk geval bijvoorbeeld de displaymodi van groep 2850 en 2870 (zie bijv. FIG. 28) verborgen kunnen worden, of impliciet door de gebruiker in staat te stellen om een displaymodus van eender welke groep 2850 tot 2870 te kiezen, in welk geval de applicatie de overeenkomstige inputmodus zelf kan veranderen, indien nodig.
FIG. 14(a) is een schematische voorstelling van een voorbeeldmatige sequentie van signalen of berichten komende van twee klassieke muisinrichtingen M1, M2, en toont hoe deze signalen correct worden behandeld door het berichtenverwerkingsproces weergegeven in FIG. 13, dat verondersteld wordt geconfigureerd te zijn in de inputmodus "Tweehandig". In realiteit kunnen veel meer signalen of berichten uitgewisseld worden tussen de computerinrichting en de muisinrichtingen, maar deze worden niet getoond teneinde de tekeningen niet te overladen. Ook toont FIG. 14 enkel hoe de positie NC van de native muiscursor wordt bijgewerkt, en vermeldt niet expliciet hoe de positie van het tweede en/of verder zichtbaar voorwerp wordt bijgewerkt, wederom om de tekeningen niet te overladen.
Op tijdstip tl wordt muisinrichting M2 bewogen en verstuurt deze een bewegingsbericht mov2 naar de computerinrichting, en als reactie werkt de overlay-applicatie Pos2 bij en stelt de positie van de native muiscursor NC in op Pos2. Afhankelijk van waar de native muiscursor vóór t1 gesitueerd was, kan dit zich voor de gebruiker voordoen als een kleine beweging of als een sprong.
Op tijdstip t2 wordt muisinrichting M1 bewogen en verstuurt deze een bewegingsbericht mov1 naar de computerinrichting, en als reactie werkt de overlay-applicatie Pos1 bij en stelt de positie van de native muiscursor NC in op Pos1, hetgeen zich voor de gebruiker typisch zal voordoen als een "sprong" van Pos2 naar Pos1.
Op tijdstip t3 wordt muisinrichting M1 opnieuw bewogen en verstuurt deze een bewegingsbericht mov1 naar de computerinrichting, en als reactie werkt de overlay-applicatie Pos1 bij en stelt de positie van de native muiscursor NC in op Pos1, hetgeen zich voor de gebruiker typisch zal voordoen als een kleine beweging.
Op tijdstip t4 wordt muisinrichting M2 bewogen en verstuurt deze een bewegingsbericht mov2 naar de computerinrichting, en als reactie werkt de overlay-applicatie Pos2 bij en stelt de positie van de native muiscursor NC in op Pos2, hetgeen zich voor de gebruiker typisch zal voordoen als een "sprong" van Pos1 naar Pos2.
Op tijdstip t5 wordt muisinrichting M1 bewogen en verstuurt deze een bewegingsbericht mov1 naar de computerinrichting, en als reactie werkt de overlay-applicatie Pos1 bij en stelt de positie van de native muiscursor NC in op Pos1, hetgeen zich voor de gebruiker typisch zal voordoen als een "sprong" van Pos2 naar Pos1.
FIG. 14{b} toont dezelfde sequentie van signalen of berichten als die van FIG. 14(a), en toont hoe een overlay-applicatie die de berichtenverwerker van FIG. 13 heeft, wanneer deze geconfigureerd is in de inputmodus "Rechtshandig", de positie NC van de native muiscursor zou bijwerken. Zoals te zien is, wanneer de rechter aanwijsinrichting M1 wordt bewogen, wordt de eerste positie Pos1 bijgewerkt, en wanneer de tweede aanwijsinrichting M2 wordt bewogen, wordt de tweede positie Pos2 bijgewerkt, maar in al deze gevallen wordt de positie van de native muiscursor NC ingesteld op de eerste positie Pos1, geassocieerd met bewegingen van de rechter aanwijsinrichting M1.
FIG. 14(c) toont dezelfde sequentie van signalen of berichten als die van FIG. 14(a), en toont hoe een overlay-applicatie die de berichtenverwerker van FIG. 13 heeft, wanneer deze geconfigureerd is in de inputmodus "Linkshandig", de positie NC van de native muiscursor zou bijwerken. Zoals te zien is, wanneer de rechter aanwijsinrichting M1 wordt bewogen, wordt de eerste positie Pos1 bijgewerkt, en wanneer de tweede aanwijsinrichting M2 wordt bewogen, wordt de tweede positie Pos2 bijgewerkt, maar in al deze gevallen wordt de positie van de native muiscursor NC ingesteld op de tweede positie Pos2, geassocieerd met bewegingen van de linker aanwijsinrichting M2.
Zoals begrepen kan worden uit FIG. 14(a) tot FIG. 14(c), worden bewegingen van beide muisinrichtingen M1, M2 correct behandeld, zelfs gelijktijdige bewegingen van de twee muisinrichtingen M1, M2.
FIG. 15 is een schematische voorstelling van een andere voorbeeldmatige sequentie van signalen of berichten komende van twee klassieke muisinrichtingen M1, M2, en toont hoe deze signalen correct worden behandeld door het berichtenverwerkingsproces weergegeven in FIG. 13, dat verondersteld wordt geconfigureerd te zijn in de inputmodus "TweeHandig".
Op tijdstip tl wordt muisinrichting M1 bewogen en verstuurt deze een bewegingsbericht mov1 naar de computerinrichting, en als reactie werkt de overlay-applicatie Pos1 bij en stelt de positie van de native muiscursor NC in op Pos1i. Afhankelijk van waar de native muiscursor NC vóór t1 gesitueerd was, kan dit zich voor de gebruiker voordoen als een kleine beweging of als een sprong.
Op tijdstip t2 wordt muisinrichting M2 bewogen en verstuurt deze een bewegingsbericht mov2 naar de computerinrichting, en als reactie werkt de overlay-applicatie Pos2 bij en stelt de positie van de native muiscursor NC in op Pos2, hetgeen zich voor de gebruiker typisch zal voordoen als een sprong van Pos1 naar Pos2.
Op tijdstip t3 wordt een knop (bijv. een linker knop M2B1) van de tweede muisinrichting M2 ingedrukt, en verstuurt de muisinrichting M2 een knop-ingedrukt-bericht press2 naar de computerinrichting. De berichtenverwerker van de overlay-applicatie ontvangt het bericht, maar aangezien het geen bewegingsbericht is, wordt stap h) van FIG. 5(e) overgeslagen, en werkt de overlay-
applicatie Pos1 of Pos2 niet bij, maar laat ze het O/S en de GUI en/of de betreffende onderliggende applicatie het indrukken van de knop M2B1 afhandelen.
Op tijdstip t4 wordt de knop M2B1 van de tweede muisinrichting M2 losgelaten en verstuurt de tweede muisinrichting M2 een drukknop-losgelaten-bericht release2 naar de computerinrichting, en opnieuw wijzigt de overlay-applicatie geen positie, maar laat ze het O/S en de GUI en/of de betreffende onderliggende applicatie het loslaten van de knop afhandelen. Zoals gekend is in de stand der techniek, zal het O/S onder sommige voorwaarden het indrukken van een knop en het loslaten van een knop als een zogenoemde "muisklik" beschouwen.
Op tijdstip t5 wordt muisinrichting M1 bewogen en verstuurt deze een bewegingsbericht mov1 naar de computerinrichting, en als reactie werkt de overlay-applicatie Pos1 bij en stelt de positie van de native muiscursor NC in op Pos1, hetgeen zich voor de gebruiker typisch zal voordoen als een sprong van Pos2 naar Pos1.
Zoals begrepen kan worden uit FIG. 15, wordt de "klik" op een knop M2B1 van de tweede muis M2 correct behandeld door de berichtenverwerker van FIG. 13, geconfigureerd in de inputmodus TweeHandig, ondanks bewegingen van de eerste muis M1 vóór en na de klik.
Testen met verder sequenties hebben echter getoond dat de berichtenverwerker van FIG. 13 niet altijd het verwachte gedrag verschaft. Nader onderzoek heeft aangetoond dat de voorbeeldmatige sequentie van signalen of berichten getoond in FIG. 16 onbevredigend wordt behandeld.
Op tijdstip t1 wordt muis M1 bewogen en verstuurt deze een bewegingsbericht mov1 naar de computerinrichting, en als reactie werkt de berichtenverwerker de eerste positie Pos1 bij en positioneert de native muiscursor dienovereenkomstig. Evenzo op tijdstip t2.
Op tijdstip t3 wordt een knop (bijv. een linker knop M1B1) van de eerste muisinrichting M1 ingedrukt en verstuurt de muis een knop-ingedrukt-bericht pressl naar de computerinrichting, waarvoor de berichtenverwerker van FIG. 13 geen actie onderneemt.
Op tijdstip t4 wordt de tweede muisinrichting M2 bewogen en verstuurt deze een bewegingsbericht mov2 naar de computerinrichting, en als reactie herpositioneert de berichtenverwerker van FIG. 13 de native muiscursor NC naar de tweede onderhouden positie Pos2.
Op tijdstip t5 wordt de knop M1B1 van de eerste muisinrichting M1 losgelaten en verstuurt de muisinrichting M1 een drukknop-losgelaten-bericht release1 naar de computerinrichting, maar het O/S beschouwt dat deze loslating plaats vindt op Pos2, die meestal verschillend is van Pos1, hetgeen niet in het verwachte "klik" gedrag van de eerste muis M1 resulteert, maar in een "sleep"-gedrag. Dit is niet het bedoelde gedrag.
In een eerste poging om dit probleem op te lossen, werd de berichtenverwerker van FIG. 13 gewijzigd door twee variabelen toe te voegen en te onderhouden, een booleaanse variabele
M1pressed als indicatie of een knop van de eerste muisinrichting M1 ingedrukt of losgelaten is, en een variabele M2pressed als indicatie of een knop van de tweede muisinrichting M2 ingedrukt of losgelaten is, en door niet te reageren op het bewegingssignaal mov2 verzonden door de tweede muis M2 op t4 gedurende de tijd dat een knop van de eerste muis M1 is ingedrukt, zoals getoond in FIG. 17, maar om de één of andere reden verschafte deze gewijzigde berichtenverwerker evenmin het correcte resultaat. In een tweede poging om dit probleem op te lossen, werd de berichtenverwerker van FIG. 13 verder gewijzigd, maar in plaats van het negeren van het "mov2" signaal (zoals in FIG. 17), werd de berichtenverwerker gewijzigd om de native muiscursor NC actief te herpositioneren op dezelfde positie Pos1 als waar de native muiscursor zich bevond op tijdstip t3 toen de knop werd ingedrukt. Testen hebben aangetoond dat zulk een berichtenverwerker werkt voor een "klik" op een knop van de eerste muis M1, maar niet werkt wanneer de eerste muis M1 wordt "gesleept". In plaats van (op t4) de positie Pos1 te bevriezen op dezelfde positie als waar de native muiscursor NC gesitueerd was toen de knop werd ingedrukt (op t3), werd de positie van de native muiscursor NC toegelaten om samen te bewegen met bewegingen van de eerste muis M1, zelfs wanneer een knop van dezelfde inrichting M1 werd ingedrukt. FIG. 18(a) toont enkele regels pseudo-code, die een gedeelte illustreren van een verbeterde berichtenverwerkingsroutine om dit gedrag te implementeren. (slechts een gedeelte van de TweeHandige-inputmodus wordt getoond). FIG. 18(b) toont een variant van de routine van FIG. 18(a), zoals gebruikt kan worden in overlay-applicaties volgens uitvoeringsvormen van de onderhavige uitvinding. (wederom wordt slechts een gedeelte van de TweeHandige-inputmodus getoond). De voornaamste verschillen met de routine van FIG. 18(a) zijn dat de tweede positie Pos2 wordt bijgewerkt zelfs indien een knop van de eerste aanwijsinrichting is ingedrukt, en omgekeerd, dat de eerste positie Pos1 wordt bijgewerkt zelfs indien een knop van de tweede aanwijsinrichting is ingedrukt. Deze routine zal verder besproken worden bij het bespreken van FIG. 26(a) en FIG. 26(b).
FIG. 18(c) toont een vollediger versie van een positie-bijwerkingsroutine, zoals gebruikt kan worden in overlay-applicaties volgens uitvoeringsvormen van de onderhavige uitvinding. Dit kan gezien worden als een combinatie van de codegedeeltes getoond in FIG. 5(g) en in FIG. 9(c) en in FIG. 18(a). FIG. 19 toont dezelfde voorbeeldmatige sequentie van signalen of berichten van FIG. 16, maar verwerkt door de berichtenverwerker van FIG. 18(a). Zoals te zien is, in reactie op de beweging signaalmov2 van de tweede muis M2 op tijdstip t4, werkt de verbeterde berichtenverwerker van FIG. 18(a) de tweede positie Pos2 bij in overeenstemming met het bewegingssignaal mov2, maar herpositioneert de native muiscursor actief naar Pos1, zodat op tijdstip t5, de knop M1B1 van de eerste muisinrichting M1 geacht wordt losgelaten te zijn op dezelfde positie Posl als waar hij werd ingedrukt. Het O/S interpreteert dit als een "klik" van de knop M1B1 van de muisinrichting M1, welke bevredigend is behandeld, ondanks het bewegingssignaal "Mov2" van de tweede muis M2 op tijdstip t4.
Er wordt opgemerkt dat het bijwerken van Pos2 op t4 niet vereist is voor de correcte interpretatie van het klik-commando verzonden door de eerste aanwijsinrichting M1, en eventueel weggelaten kan worden. Indien echter weggelaten, zal/zullen de zichtbare voorwerp(en) geassocieerd met de tweede positie Pos2 niet bewegen zolang een knop van de eerste aanwijsinrichting M1 wordt ingedrukt, zelfs indien de tweede aanwijsinrichting wordt bewogen. Om zulke bewegingen mogelijk te maken, wordt de positie Pos2 bij voorkeur bijgewerkt zelfs indien een knop van de eerste aanwijsinrichting wordt ingedrukt.
FIG. 20 toont een variant van de sequentie van signalen of berichten van FIG. 19, en laat zien dat het slepen van één muis M1 correct werkt, zelfs wanneer de tweede muis M2 wordt bewogen.
Op tijdstip t1 wordt de eerste muis M1 bewogen, de eerste muis M1 verstuurt een eerste bewegingsbericht mov1 naar de computerinrichting, en als reactie werkt de overlay-applicatie Pos1 bij en positioneert de native muiscursor NC op Pos1.
Op tijdstip t2 wordt een knop (bijv. een linker knop M1B1) van de eerste muis M1 ingedrukt, de eerste muis M1 verstuurt een knop-ingedrukt-bericht pressl naar de computerinrichting, en als reactie stelt de berichtenverwerker een interne variabele M1pressed in op WAAR.
Op tijdstip t3 wordt de tweede muis M2 bewogen, de tweede muis M2 verstuurt een tweede bewegingsbericht mov2 naar de computerinrichting, en als reactie werkt de berichtenverwerker Pos2 bij en positioneert de native muiscursor NC op Pos1.
Op tijdstip t4 wordt de eerste muis M1 bewogen, de eerste muis M1 verstuurt een eerste bewegingsbericht mov1 naar de computerinrichting, en als reactie werkt de overlay-applicatie Pos1 bij en positioneert de native muiscursor NC op Pos1.
Op tijdstip t5 wordt de knop M1B1 van de eerste muisinrichting M1 losgelaten, wat ervoor zorgt dat het O/S en de GUI een "sleepoperatie" uitvoert, en als reactie stelt de berichtenverwerker de variabele M1pressed in op ONWAAR.
Zoals begrepen kan worden uit FIG. 20, wordt het slepen van de eerste muis M1 bevredigend behandeld door de berichtenverwerker weergegeven in FIG. 18(a) geconfigureerd in de TweeHandige inputmodus, zelfs in combinatie met bewegingen van de tweede muis M2.
Verwijzend naar FIG. 21, werden verdere testen uitgevoerd, gebruikmakend van de berichtenverwerker van FIG. 18(a) in de TweeHandige inputmodus, welke nog een andere foutconditie onthulde, weergegeven door de voorbeeldmatige sequentie van signalen of berichten getoond in FIG. 21, waarbij: Op tijdstip t1 wordt de tweede muis M2 bewogen, wordt een bewegings-boodschap mov2 verzonden, de tweede positie Pos2 wordt bijgewerkt rekening houdende met de verplaatsingswaardes dx, dy, en de native muiscursor wordt ingesteld op Pos2.
Op tijdstip t2 wordt de eerste muis M1 bewogen, wordt een bewegingsboodschap mov1 verzonden, wordt de eerste positie Pos1 bijgewerkt rekening houdende met de verplaatsingswaardes dx, dy, en wordt de native muiscursor ingesteld op Pos1.
Op tijdstip t3 wordt de eerste muis M1 opnieuw bewogen, wordt een andere bewegings- boodschap mov1 verzonden, wordt de eerste positie Pos1 bijgewerkt, en wordt de native muiscursor NC ingesteld op de bijgewerkte positie Pos1.
Op tijdstip t4 wordt een knop (bijv. een linker knop M2B1) van de tweede muisinrichting M2 ingedrukt, wordt een knop-ingedrukt-bericht press2 verzonden, en als reactie stelt de berichtenverwerker van FIG. 18(a) de waarde M2pressed in op WAAR, en wijzigt de positie van de native muiscursor NC naar Pos2.
Op tijdstip t5 wordt de knop M2B1 van de tweede muisinrichting M2 losgelaten, wordt een loslaat-boodschap release2 verzonden naar de computerinrichting, en als reactie stelt de berichtenverwerker de variabele M2pressed in op ONWAAR.
Ondanks het feit dat een knop van de tweede muisinrichting M2 werd ingedrukt en losgelaten op dezelfde fysieke positie, worden de indruk- en loslaatberichten van FIG. 21 niet geïnterpreteerd als een klik. Hoewel de uitvinders niet gebonden wensen te zijn aan een theorie, lijkt analyse aan te geven dat deze sequentie verkeerd gaat, omdat op het tijdstip t4 waarop de knop M2B1 van de tweede muis M2 wordt ingedrukt, de native muispositie NC zich nog steeds bevindt op de eerste positie Pos1(x1,y1}), en daarom zullen het O/S en de GUI aannemen dat het “knop indrukken" plaatsvindt op de plaats Pos1(x1,y1) in plaats van Pos2, en pas enige tijd later (dan t4) zal de overlay-applicatie de native muiscursor NC herpositioneren op de tweede positie Pos2(x2,y2), maar dat is "te laat". Dit probleem is niet gekend in de stand der techniek, omdat er slechts één cursorpositie bestaat.
Er lijkt geen technische oplossing voor dit probleem mogelijk, omdat het onmogelijk is voor de overlay-applicatie om te voorspellen wanneer een knop van de muis M2 zal worden ingedrukt, en omdat het O/S en de GUI altijd sneller zullen zijn dan de overlay-applicatie. Verlangende om de mouse driver layer (muisaansturingslaag) 561, 1161, 1261 van het O/S en de GUI intact te laten, kwamen de uitvinders verrassend op een andere oplossing voor dit probleem.
Verwijzende naar FIG. 22(a), besloten de uitvinders een speciale muisinrichting M2* te verschaffen die, wanneer een knop daarvan wordt ingedrukt, een "dummy beweging" signaal verstuurt enige tijd AT vóór het zenden van een eigenlijke "knop-ingedrukt" signaal. Dit omzeilt effectief het probleem van FIG. 21, omdat, zoals kan begrepen worden uit FIG. 22(a): Op tijdstip t1 wordt de tweede muis M2* bewogen, wordt een (echt) bewegingsbericht mov2 verzonden naar de computerinrichting, als reactie werkt de overlay-applicatie de tweede positie Pos2 bij en stelt de native muiscursor NC in op positie Pos2.
Op tijdstip t2 wordt de eerste muis M1* bewogen, wordt een (echt) bewegingsbericht mov1 verzonden naar de computerinrichting, als reactie werkt de overlay-applicatie de eerste positie Pos1 bij en stelt de native muiscursor NC in op positie Pos1.
Op tijdstip t3 wordt een knop (bijv. een linker knop M2B1) van de speciale tweede muisinrichting M2* ingedrukt, wat ervoor zorgt dat de muisinrichting M2* eerst een dummy- bewegingsbericht "dmov2" verzendt (bij voorkeur met kleine verplaatsingswaardes dx,dy), en enige tijd AT later een knop-ingedrukt-bericht press2 verzendt. Zoals getoond, in reactie op het dummy- bewegingssignaal dmov2, zal de overlay-applicatie de native muiscursor NC instellen op de tweede positie Pos2, ruim vóórdat het knop-ingedrukt-bericht press2 wordt verzonden door de muisinrichting M2* op tijdstip t3+AT, zodanig dat het O/S en de GUI zullen aannemen dat het “knop indrukking" plaatsvindt op positie Pos2 (of nauwkeuriger: zeer dichtbij de originele positie Pos2, indien dx en dy klein zijn, maar niet precies nul).
Op tijdstip t4 wordt de knop M2B1 losgelaten, en als reactie stelt de berichtenverwerker van de overlay-applicatie een variabele M2pressed in op ONWAAR.
Er wordt opgemerkt dat een dummy-bewegingsbericht niet vereist is wanneer de knop wordt losgelaten, alleen wanneer een knop wordt ingedrukt.
FIG. 22{b} toont een variant van de sequentie van FIG. 22(a) waarbij een scrolwiel van de tweede aanwijsinrichting M2* wordt gedraaid in plaats dat een knop wordt ingedrukt en losgelaten. Op een gelijkaardige wijze als beschreven in FIG. 22(a), verzendt de speciale aanwijsinrichting M2* niet louter een scrolwiel-rotatie-bericht, maar verzendt eerst een dummy-bewegingsbericht dmov2, en pas enige tijd AT later verzendt de aanwijsinrichting M2* het eigenlijke scrolwiel-rotatiebericht rotate2, om mogelijk te maken dat de overlay-applicatie de native muiscursor NC herpositioneert voordat het eigenlijke scrolwiel-rotatiebericht bij de computerinrichting aankomt, In FIG. 22(b) wordt een scrolwiel van de aanwijsinrichting M2* fysiek gedraaid op tijdstip t3, waarop de aanwijsinrichting M2* een dummy-bewegingsbericht dmov2 verstuurt naar de computerinrichting. Als reactie zal de overlay-applicatie (geconfigureerd in TweeHandige inputmodus) de tweede positie Pos2 bijwerken en de native muiscursor instellen op Pos2.
Op tijdstip t3+AT verstuurt de aanwijsinrichting M2* een scrolwiel-rotatie-bericht rotate2, welke de overlay-applicatie eenvoudig kan negeren, omdat dit bericht door het O/S en de GUI zal behandeld worden.
Hoewel de oplossing voorgesteld in FIG. 22(a) en FIG. 22(b) een speciale muisinrichting vereist, is het een voordeel dat dit speciale muisgedrag geen hardware modificatie vereist, maar enkel een firmwaremodificatie van de muisinrichting.
Het is ook een voordeel dat de voorgestelde oplossing retro compatibel is, in de zin dat deze "speciale muis" met de "beweeg-vóór-klik" functie en/of met de "beweeg-vóór-scrol" functie eveneens gebruikt kan worden in klassieke computersystemen, die geen speciale overlay-applicatie hebben. Het voornaamste verschil met bestaande muisinrichtingen is dat het knop-ingedrukt-signaal en/of het scrolwiel-rotatie-signaal lichtjes vertraagd wordt, hetgeen waarschijnlijk totaal onacceptabel is in de gaming wereld, en om die reden alleen al niet evident is, maar dit veroorzaakt geen significant probleem voor professionele gebruikers zoals vertalers, proeflezers, transcribers, technische schrijvers, advocaten, enz. die gewend zijn om te werken met tools (bijv. CAT-tools, lokale of online- woordenboeken, lokale of online-gegevensbestanden, lokale of online-vertaalgeheugens, enz.) die sowieso tamelijk trage responstijden hebben (typisch in de orde van ten minste 500 ms).
Er bestaat enige ontwerpvrijheid in de keuze van de drie parameters AT, dx, dy.
In een uitvoeringsvorm is de vertraging AT een waarde in het bereik van 1 ms tot 250 ms of van 2 ms tot 100 ms, en is dx een waarde in het bereik van -5 tot +5, en is dy een waarde in het bereik van -5 tot +5.
In een uitvoeringsvorm is de vertraging AT een waarde in het bereik van 1 ms tot 250 ms of van 2 ms tot 100 ms, en is dx een waarde in het bereik van -2 tot +2, en is dy een waarde in het bereik van -2 tot +2.
In een uitvoeringsvorm is de vertraging AT een waarde in het bereik van 1 ms tot 250 ms of van 2 ms tot 100 ms, en is dx een waarde in het bereik van -1 tot +1, en is dy een waarde in het bereik van -1 tot +1.
In een uitvoeringsvorm is de vertraging AT een waarde in het bereik van 1 tot 250 ms of van 2 ms tot 100 ms, en dx=-1 en dy=-1.
In een uitvoeringsvorm is de vertraging AT een waarde in het bereik van 1 tot 250 ms of van 2 ms tot 100 ms, en dx=-1 en dy=0.
In een uitvoeringsvorm is de vertraging AT een waarde in het bereik van 1 tot 250 ms of van 2 ms tot 100 ms, en dx=-1 en dy=+1.
In een uitvoeringsvorm is de vertraging AT een waarde in het bereik van 1 tot 250 ms of van 2 ms tot 100 ms, en dx=0 en dy=-1.
In een uitvoeringsvorm is de vertraging AT een waarde in het bereik van 1 tot 250 ms of van 2 ms tot 100 ms, en dx=0 en dy=0.
In een uitvoeringsvorm is de vertraging AT een waarde in het bereik van 1 tot 250 ms of van 2 ms tot 100 ms, en dx=0 en dy=+1.
In een uitvoeringsvorm is de vertraging AT een waarde in het bereik van 1 tot 250 ms of van 2 ms tot 100 ms, en dx=+1 en dy=-1.
In een uitvoeringsvorm is de vertraging AT een waarde in het bereik van 1 tot 250 ms of van 2 ms tot 100 ms, en dx=+1 en dy=0.
In een uitvoeringsvorm is de vertraging AT een waarde in het bereik van 1 tot 250 ms of van 2 ms tot 100 ms, en dx=+1 en dy=+1.
In alle van de bovenvermelde uitvoeringsvormen, kan de waarde van AT bijvoorbeeld ten minste 1 ms zijn, of ten minste 2 ms of ten minste 8 ms, of ten minste 16 ms, of ten minste 24 ms, of ten minste 32 ms, of ten minste 40 ms, of ten minste 48 ms, of ten minste 56 ms, of ten minste 64 ms, of ten minste 72 ms, of ten minste 80 ms, of ten minste 88 ms, of ten minste 96 ms, of ten minste 104 ms, of ten minste 120 ms, of ten minste 144 ms, of ten minste 160 ms, of ten minste 176 ms, of ten minste 192 ms.
In alle van de bovenvermelde uitvoeringsvormen, kan de waarde van AT bijvoorbeeld gelijk zijn aan ongeveer 8 ms of ongeveer 16 ms, of ongeveer 24 ms, of ongeveer 32 ms, of ongeveer 40 ms, of ongeveer 48 ms, of ongeveer 56 ms, of ongeveer 64 ms, of ongeveer 72 ms, of ongeveer 80 ms, of ongeveer 88 ms, of ongeveer 96 ms, of ongeveer 104 ms, of ongeveer 112 ms, of ongeveer 120 ms, of ongeveer 128 ms, of ongeveer 136 ms, of ongeveer 144 ms, of ongeveer 152 ms, of ongeveer 160 ms, of ongeveer 168 ms, of ongeveer 176 ms, of ongeveer 184 ms, of ongeveer 192 ms, of ongeveer 200 ms, of ongeveer 208 ms, of ongeveer 216 ms, of ongeveer 224 ms, of ongeveer 232 ms, of ongeveer 240 ms, of ongeveer 248 ms.
Enerzijds zou de waarde van AT voldoende groot moeten zijn om de waarschijnlijkheid te vergroten dat de computerinrichting voldoende tijd heeft voor het verwerken van het dummy- bewegingssignaal door de overlay-applicatie, voordat het knop-ingedrukt signaal aankomt. Anderzijds zou de waarde van AT zo klein mogelijk moeten zijn om de vertraging te verkleinen, en om het risico te verkleinen dat een echt bewegingssignaal of een dummy bewegingssignaal van de andere muisinrichting ertussen zou kunnen komen. De vakman kan een geschikt compromis vinden.
In een uitvoeringsvorm bevat het dummy bewegingssignaal of -bericht de verplaatsingswaardes dx=0 en dy=0. Indien dit bericht niet uitgefilterd wordt door het O/S en de GUI, zou zulk een bericht ideaal zijn, omdat het de coördinaten van de eerste en tweede positie Pos1 of Pos2 niet aanpast, maar het toch mogelijk maakt dat aan de overlay-applicatie te signaleren om de native muiscursor te herpositioneren (of in andere woorden gesteld: het maakt mogelijk dat de overlay-applicatie een sprong forceert indien nodig). Indien het dummy-bewegingsbericht een nul-
verplaatsing heeft (dx=0 en dy=0), zal de native muiscursor NC niet verschuiven of driften vanwege meerdere dummy-bewegingsberichten die verzonden worden, ongeacht hoeveel keren de knop wordt geklikt, en/of het scrolwiel wordt gescrold.
In een andere uitvoeringsvorm is het dummy-bewegingsbericht niet één enkel vooraf bepaald bericht met dx=0 en dy=0, maar zijn opeenvolgende dummy-bewegingsberichten verschillend van het eerste dummy-bewegingsbericht, met dx- en dy-waardes zodanig gekozen dat een cumulatieve horizontale verplaatsing gedefinieerd als Ax => dx en een cumulatieve verticale verplaatsing gedefinieerd als Ay =>'dy kleiner zijn dan een vooraf bepaalde maximumafstand. Bij voorkeur is de vooraf bepaalde maximumafstand minder dan 10 pixels, met meer voorkeur minder dan 4 pixels, of minder dan 3 pixels, of minder dan 2 pixels.
Bijvoorbeeld kunnen de dummy-bewegingsberichten alternerend of periodisch geselecteerd worden uit een groep bestaande uit twee vooraf bepaalde dummy-bewegingsberichten, bevattende een eerste bericht met (dx=+1, dy=0) en een tweede bericht met (dx=-1, dy=0), wat leidt tot een kleine links/rechts beweging, maar andere groepen van twee berichten zijn eveneens mogelijk, bijvoorbeeld: - de groep bestaande uit twee dummy-bewegingsberichten bevattende een eerste bericht met (dx=0, dy=+1) en een tweede bericht met (dx=0, dy=-1), wat leidt tot een kleine omhoog/omlaag beweging, of - de groep bestaande uit twee dummy-bewegingsberichten bevattende een eerste bericht met (dx=+1, dy=+1) en een tweede bericht met (dx=-1, dy=-1), wat leidt tot een kleine diagonale beweging, of - de groep bestaande uit twee dummy-bewegingsberichten bevattende een eerste bericht met (dx=+1, dy=-1) en een tweede bericht met (dx=-1, dy=+1), wat leidt tot een kleine diagonale beweging, of - de groep bestaande uit drie dummy-bewegingsberichten bevattende een eerste bericht met (dx=+1, dy=0), en een tweede bericht met (dx=0, dy=+1), en een derde bericht (dx=-1,dy=-1), of - de groep bestaande uit vier dummy-bewegingsberichten, bevattende een eerste bericht met (dx=+1,dy=0), een tweede bericht met (dx=0,dy=-1), een derde bericht met (dx=-1,dy=0), en een vierde bericht met (dx=0,dy=+1), enz.
Op deze wijze blijft de muispositie in hoofdzaak stationair, zelfs na meerdere kliks en/of scrolwielrotaties, en drift deze niet weg van de originele positie tenzij de aanwijsinrichting fysiek wordt bewogen.
FIG. 23(a) toont een vereenvoudigd hoogniveau-blokdiagram van hardware- en softwarecomponenten gesitueerd in een voorbeeldmatig computersysteem volgens een uitvoeringsvorm van de onderhavige uitvinding, omvattende een computerinrichting 2301 met een speciale overlay-applicatie 2351 volgens een uitvoeringsvorm van de onderhavige uitvinding, en tweespeciale muisinrichtingen M1*, M2* volgens een uitvoeringsvorm van de onderhavige uitvinding. De speciale muisinrichtingen M1*, M2* hebben de hogervermelde "beweeg-vóór-klik" functie weergegeven in FIG. 22(a) en/of de hogervermelde "beweeg-vóór-scrol" functie weergegeven in FIG. 22(b), wat wil zeggen dat deze muisinrichtingen M1*, M2*, bij detectie van een knop die wordt ingedrukt en/of een scrolwiel dat wordt gedraaid, eerst een "dummy-bewegingsbericht" verzenden en pas enige tijd AT later een knop-ingedrukt-bericht of een scrolwiel-rotatie-bericht verzenden.
Zoals gesuggereerd door de sterretjes, zijn slechts de overlay-applicatie 2351 en de muisinrichtingen M1*, M2* speciaal. Alle andere componenten, meerbepaald het O/S en de GUI 2360, de device drivers (apparaatstuurprogramma's) 2361, de andere applicaties 2362, enz. kunnen klassieke componenten zijn.
De muisinrichtingen M1* en M2* kunnen bedrade muisinrichtingen zijn, of draadloze muisinrichtingen, of een combinatie van beide.
Maar de onderhavige uitvinding is niet beperkt tot speciale muisinrichtingen, en de voorgestelde oplossing kan ook toegepast worden op andere aanwijsinrichtingen die ten minste één knop en/of ten minste één scrolwiel hebben.
FIG. 23(b) toont een voorbeeldmatig blokdiagram van een speciale aanwijsinrichting volgens een uitvoeringsvorm van de onderhavige uitvinding, zoals gebruikt kan worden in het systeem van FIG. 23(a) of FIG. 24 (dat hierna zal besproken worden). De aanwijsinrichting 2303 omvat ten minste: - een bewegingsdetectiemechanisme 2321 voor het detecteren van een tweedimensionale beweging; - een besturingseenheid 2324 verbonden met genoemd bewegingsdetectiemechanisme 2321; - ten minste één knop B1 indrukbaar en loslaatbaar door een gebruiker; - een knopdetectiemechanisme 2322 voor het detecteren of genoemde ten minste één knop B1 wordt ingedrukt of wordt losgelaten; - waarbij de besturingseenheid 2324 verbonden is met het knopdetectiemechanisme 2322; - waarbij de besturingseenheid 2324 aangepast is voor (bijv. geprogrammeerd is voor): * wanneer een beweging wordt gedetecteerd, voor het zenden van een bewegingsbericht mov2; * wanneer gedetecteerd wordt dat de ten minste één knop B1 wordt ingedrukt, voor het zenden van een dummy-bewegingsbericht dmov2, en voor het zenden van een knop-ingedrukt-bericht press2 een vooraf bepaalde periode AT na het zenden van het dummy-bewegingsbericht dmov.
Het bewegingsbericht kan verplaatsingsparameters dx, dy omvatten gerelateerd aan de tweedimensionale beweging.
De aanwijsinrichting 2303 kan verder ten minste één scrolwiel W1 omvatten, draaibaar door een gebruiker, en een scrolwiel-detectiemechanisme 2323 voor het detecteren of het ten minste éénscrolwiel W1 heeft gedraaid, en de besturingseenheid 2324 kan verbonden zijn met het scrolwiel- detectiemechanisme 2323, en kan verder aangepast zijn, wanneer gedetecteerd wordt dat het ten minste één scrolwiel heeft gedraaid, voor het zenden van een dummy-bewegingsbericht dmov, en voor het zenden van een scrolwiel-rotatie-bericht een vooraf bepaalde periode AT na het zenden van het dummy-bewegingsbericht dmov.
De aanwijsinrichting 2303 kan verder een RF-zendontvanger 2325 omvatten, verbonden met de besturingseenheid 2324, en de besturingseenheid 2324 kan verder geconfigureerd zijn voor het zenden van berichten naar een computerinrichting 2301, en voor het ontvangen van berichten van de computerinrichting 2301 via de genoemde RF-zendontvanger 2325, bijvoorbeeld via een dongel 2311 verbonden met de computerinrichting 2301.
De besturingseenheid 2324 kan een programmeerbare besturingseenheid zijn, bijv. een microprocessor.
FIG. 24 toont een variant van het hoogniveau-blokdiagram van FIG. 23(a), waarbij de twee "speciale" aanwijsinrichtingen M1*, M2* verbonden zijn met de computerinrichting 2401 via een klassieke hub of adapter of dongel 2420 in plaats van rechtstreeks verbonden te zijn met de computerinrichting. De hub 2420 kan een bedrade hub zijn, of een draadloze hub.
FIG. 25 toont een variant van het hoogniveau-blokdiagram van FIG. 24, waarbij het in FIG. 21 getoonde probleem wordt opgelost in een speciale hub 2520 in plaats van in speciale aanwijsinrichtingen. Dus, de computerinrichting 2501 van FIG. 25 omvat bij voorkeur een klassiek O/S en GUI 2560, klassieke applicaties 2562, klassieke device drivers (apparaatstuurprogramma's) 2561, bijv. muisdrivers, klassieke aanwijsinrichtingen M1, M2, maar een speciale overlay-applicatie 2551 en een speciale hub of adapter of dongel 2520.
De functionaliteit van een speciale hub 2520 zal in meer detail uitgelegd worden in FIG. 26(a) tot FIG. 26(d). Voorbeeldmatige hardware blokdiagrammen om deze functionaliteit te implementeren zullen beschreven worden in FIG. 27(a) en FIG. 27(b).
Zoals begrepen kan worden uit FIG. 21 tot FIG. 22(b), zou de hub H* moeten vermijden dat de computerinrichting een knop-ingedrukt-boodschap ontvangt van aanwijsinrichting M2 welke voorafgegaan wordt in de tijd door een bericht van de andere aanwijsinrichting M1 (bijv. een bewegingsbericht, een knop-klik-bericht, een drukknop-losgelaten-bericht, een scrolwielbericht), en omgekeerd. Aangezien de berichten van beide aanwijsinrichtingen doorheen de hub H* moeten passeren, is de hub in staat om deze situatie te voorkomen.
In de voorbeeldmatige sequentie van FIG. 26(a), wordt deze situatie als volgt vermeden.
Op tijdstip t1 verstuurt de eerste aanwijsinrichting M1 een bewegingsboodschap mov1, en verzendt de hub H* de bewegingsboodschap naar de computerinrichting (ook "host" genoemd).
Op tijdstip t2 wordt een knop M2B1 van de tweede aanwijsinrichting M2 ingedrukt, en verstuurt de aanwijsinrichting M2 een knop-ingedrukt-boodschap naar de hub H*. De hub H* onderschept dit bericht, en verzendt een dummy-bewegingsbericht dmov2 naar de host (bij voorkeur met kleine bewegingsparameters zoals hierboven uitgelegd), bij voorkeur geformatteerd alsof dit dummy-bewegingsbericht door de tweede aanwijsinrichting M2 werd verzonden.
Enige tijd later, op tijdstip t2+AT, verstuurt de hub 2520 de knop-ingedrukt-boodschap naar de host, geformatteerd alsof dit bericht van de tweede aanwijsinrichting M2 kwam.
In de uitvoeringsvorm getoond in FIG. 26, negeert de hub H* alle berichten verzonden door de andere aanwijsinrichting M1 totdat de knop M2B1 van de aanwijsinrichting M2 wordt losgelaten op tijdstip t5. Daarom wordt in het getoonde voorbeeld het bewegingsbericht mov1 verzonden door de aanwijsinrichting M1 op t3, genegeerd.
Op tijdstip t4 verstuurt de tweede aanwijsinrichting M2 een drukknop-losgelaten-bericht naar de hub H*, en de hub H* verzendt dit bericht naar de host.
Op tijdstip t5 verstuurt de eerste aanwijsinrichting M1 een bewegingsbericht naar de hub H*, en de hub H* verzendt dit bericht naar de host.
Met andere woorden, de speciale hub H* die het gedrag van FIG. 26(a) implementeert, geeft alle berichten komende van de aanwijsinrichtingen door aan de host, behalve wanneer een knop- ingedrukt-bericht wordt ontvangen van één van de aanwijsinrichtingen (in het voorbeeld M2), in welk geval de hub H* zich tijdelijk op een speciale gedraagt wijze, namelijk door eerst een dummy- bewegingsbericht te zenden, en enige tijd AT later een knop-ingedrukt-bericht press2 te zenden, en door alle berichten te negeren van de andere aanwijsinrichting (in het voorbeeld: M1) tot een drukknop-losgelaten-bericht wordt ontvangen van de aanwijsinrichting M2 waarvan knop M2B1 werd ingedrukt.
FIG. 26(b) toont dezelfde sequentie als FIG. 26(a), maar verschillend behandeld door een variant van de speciale hub H*. In deze uitvoeringsvorm negeert de hub het op t3 verzonden bewegingsbericht mov1 niet, maar vertraagt dit bericht tot na het knop-ingedrukt press2 bericht naar de host is verzonden op t2+AT, zeg op tx=t2+AT+e, waarbij € bij voorkeur kleiner is dan 33 ms, bijvoorbeeld ongeveer 8 ms of ongeveer 16 ms of ongeveer 24 ms. Zoals hierboven uitgelegd, kan de speciale overlay-applicatie Pos1 optioneel bijwerken, maar heeft deze enige tijd nodig om de native muiscursor te herpositioneren op Pos2, anders kan het O/S de knop als zijnde losgelaten interpreteren op Posl in plaats van Pos2. Daarom, in dit voorbeeld, moet het drukknop-losgelaten-bericht verzonden door de tweede aanwijsinrichting M2 op t4 eveneens vertraagd worden tot tx+AT. Uiteraard, indien t4reeds groter was dan tx, dan kan het drukknop-losgelaten-bericht release2 eenvoudig doorgestuurd worden naar de host.
Indien het gedrag van de signalen en hoe de overlay-applicatie erop zal reageren, weergegeven in FIG. 26(b), goed begrepen is, kan nu begrepen worden worden dat de positie- bijwerkingsroutine van FIG. 18(b), die het mogelijk maakt dat het tweede voorwerp wordt bewogen terwijl een knop van de eerste aanwijsinrichting is ingedrukt, verkeerd kan gaan voor de sequentie getoond in FIG. 26(b), in het geval dat de gebruiker de knop M2B1 eerder loslaat dan tx+AT. De in FIG. 18(a) getoonde routine heeft geen last van dit probleem, omdat deze het bewegingssignaal negeert, op grotendeels dezelfde wijze als de hub van FIG. 26(a) dit doet.
Dus, wanneer de speciale hub H* gebruikt wordt, kan zowel de positie-bijwerkingsroutine van FIG. 18(a) alsook die van FIG. 18(b) beide gebruikt worden in de TweeHandige inputmodus, omdat de hub voor de timing zorgt tussen de berichten afkomstig van verschillende inrichtingen. Maar indien de speciale hub niet gebruikt wordt in het computersysteem, dan is de positie-bijwerkingsroutine getoond in FIG. 18(a) "veiliger".
FIG. 26(c) toont een voorbeeldmatige sequentie om uit te leggen hoe de speciale hub H* die het in FIG. 26(a) gespecifieerde gedrag heeft, kan reageren in reactie op een muiswiel-boodschap.
Op tijdstip t1 verstuurt de eerste aanwijsinrichting M1 een bewegingsboodschap mov1, en verzendt de hub H* de bewegingsboodschap naar de computerinrichting (ook "host" genoemd).
Op tijdstip t2 wordt een scrollwiel M2W1 van de tweede aanwijsinrichting M2 gedraaid, en de aanwijsinrichting M2 verstuurt een scrolwiel-rotatie-bericht naar de hub H*. De hub H* onderschept dit bericht, en verzendt een dummy-bewegingsbericht dmov2 naar de host (bij voorkeur met kleine bewegingsparameters zoals hierboven uitgelegd), bij voorkeur geformatteerd alsof dit dummy- bewegingsbericht verzonden werd door de tweede aanwijsinrichting M2.
Enige tijd later, op tijdstip t2+AT, verstuurt de hub H* het scrolwiel-rotatie-bericht naar de host, geformatteerd alsof dit bericht van de tweede aanwijsinrichting M2 kwam.
In de uitvoeringsvorm getoond in FIG. 27, negeert de hub H* alle berichten verzonden door de andere aanwijsinrichting M1 naar de hub H* die aankomen tussen t2 en t2+AT. Daarom wordt, in het getoonde voorbeeld, het bewegingsbericht mov1 verzonden door de aanwijsinrichting M1 op t3, genegeerd.
Op tijdstip t4 verstuurt de eerste aanwijsinrichting M1 een bewegingsbericht mov1 naar de hub H*, en de hub H* verzendt dit bericht naar de host.
Op tijdstip t5 verstuurt de tweede aanwijsinrichting M2 een bewegingsbericht naar de hub H*, en de hub H* verzendt dit bericht naar de host.
FIG. 26{d} toont dezelfde sequentie als FIG. 26(c), maar verschillend behandeld door een variant van de speciale hub H*. In deze uitvoeringsvorm, negeert de hub H* het op t3 verzonden bewegingsbericht mov1 niet, maar vertraagt dit bericht tot nadat het scrolwiel-rotatie-bericht scroll2 verzonden is naar de host op t2+AT, zeg op tx=t2+AT+e.
Het bewegingsbericht mov1 op t4 verzonden door de eerste aanwijsinrichting M1, en het bewegingsbericht mov2 verzonden door de tweede aanwijsinrichting M2 worden eenvoudig verzonden naar de host.
Bij het vergelijken van het gedrag van de speciale hub H* zoals gespecifieerd in FIG. 26(a) tot FIG. 26(d) met het gedrag van de speciale aanwijsinrichtingen, zoals gespecifieerd in FIG. 22(a) en FIG. 22(b), kan men zien dat de speciale hub H* het probleem van FIG. 21 benadert op basis van hetzelfde principe, namelijk door een dummy-bewegingsbericht in te voegen enige tijd AT vóór het doorsturen van het eigenlijke knop-ingedrukt-bericht of scrolwiel-rotatie-bericht.
Het implementeren van dit gedrag in een speciale hub in plaats van in speciale aanwijsinrichtingen verschaft het additionele voordeel dat de hub H* werkelijk kan voorkomen dat de andere aanwijsinrichting een tussenliggend bericht naar de host verstuurt tussen dit dummy-bewegingsbericht en het eigenlijke knop-ingedrukt of scrolwiel-rotatie-bericht, en daarom kan garanderen dat de situatie van FIG. 21 niet kan optreden.
Dat is niet mogelijk met de speciale aanwijsinrichtingen.
Of in andere woorden uitgedrukt, hoewel de "beweeg-vóór-klik" en de "beweeg-vóór-scrol" functie voorgesteld in FIG. 22 het risico vermindert dat de computerinrichting de berichten verkeerd zal interpreteren, is het risico niet volledig geëlimineerd, omdat één aanwijsinrichting geen invloed heeft over de berichten die verzonden worden door de andere aanwijsinrichting.
Daarentegen, heeft een speciale hub H* met de kenmerken beschreven in FIG. 26(a) tot FIG. 26(d) volledige controle over de berichten die naar de computerinrichting worden verzonden, en kan de stroom van berichten naar en van beide aanwijsinrichtingen filteren en/of aanpassen.
Op deze manier kunnen ongewenste combinaties van voorwaarden of ongewenste timing tussen de signalen/boodschappen vermeden of aangepast worden, zodanig dat het O/S en de GUI en de speciale overlay-applicatie 2551 correct zullen functioneren. "Slimme hubs" die berichten van meerdere aanwijsinrichtingen interpreteren en/of wijzigen en/of tussenvoegen en/of vertragen om dubbele muis ondersteuning op een computerinrichting mogen te maken in het algemeen, laat staan voor het faciliteren van dubbele muis ondersteuning verschaft door een overlay-applicatie die op een computerinrichting met een O/S en GUI wordt uitgevoerd dat slechts één enkele native muiscursor verschaft, om de native muiscursor te herpositioneren, teneinde een O/S en GUI te verschaffen dat virtueel dubbele muis ondersteuning verschaft, bestaan niet in de stand der techniek.
FIG. 27(a) toont een voorbeeldmatig blokdiagram van een hub of dongel of adapter volgens een uitvoeringsvorm van de onderhavige uitvinding, zoals gebruikt kan worden in het systeem van FIG. 25, die ten minste twee fysieke connectoren CON1, CON2 heeft voor verbinding met twee klassieke bedrade aanwijsinrichtingen M1, M2, en ten minste één connector CON3 (optioneel aan het einde van een kabel) voor verbinding met een computerinrichting 2701.
FIG. 27(b} toont een voorbeeldmatig blokdiagram van een draadloze hub (of dongel of adapter) volgens een uitvoeringsvorm van de onderhavige uitvinding, zoals gebruikt kan worden in het systeem van FIG. 25, die één of twee RF-zendontvangers heeft voor werkzame verbinding met twee klassieke draadloze aanwijsinrichtingen.
De hub 2720 van FIG. 27(a) omvat: - een eerste interface CON1 om te communiceren met een eerste aanwijsinrichting M1; - een tweede interface CON2 om te communiceren met een tweede aanwijsinrichting M2; - een derde interface CON3 om te communiceren met een computerinrichting 2701; - een besturingseenheid 2744 die verbonden is met de eerste interface voor het ontvangen van eerste berichten van de eerste aanwijsinrichting M1, en die verbonden is met de tweede interface voor het ontvangen van tweede berichten van de tweede aanwijsinrichting M2, en die verbonden is met de derde interface voor het verzenden van de eerste en tweede berichten naar de computerinrichting (2701); - en waarbij de besturingseenheid 2744 is aangepast voor het zenden van een dummy- bewegingsbericht een vooraf bepaalde periode (AT) vóór het zenden van een knop-ingedrukt-bericht en/of een scrolwiel-rotatie-bericht.
Meer specifiek, kan de besturingseenheid 2744 aangepast worden om zich als volgt te gedragen: * bij ontvangst van een eerste knop-ingedrukt-bericht press1 van de eerste aanwijsinrichting via de eerste interface, om een eerste dummy-bewegingsbericht dmovl te zenden naar de computerinrichting via de derde interface, en om een vooraf bepaalde periode AT later het eerste knop-ingedrukt-bericht press1 te zenden naar de computerinrichting via de derde interface; * bij ontvangst van een tweede knop-ingedrukt-bericht press2 van de tweede aanwijsinrichting via de tweede interface, om een tweede dummy-bewegingsbericht dmov2 te zenden naar de computerinrichting via de derde interface, en om een vooraf bepaalde periode AT later, het tweede knop-ingedrukt-bericht press2 te zenden naar de computerinrichting via de derde interface; * bij ontvangst van een eerste scrolwiel-rotatie-bericht van de eerste aanwijsinrichting via de eerste interface, om een eerste dummy-bewegingsbericht dmov1 te zenden naar de computerinrichting via de derde interface, en om een vooraf bepaalde periode AT later, het eerste scrolwiel-rotatie-bericht te zenden naar de computerinrichting via de derde interface;
* bij ontvangst van een tweede scrolwiel-rotatie-bericht van de tweede aanwijsinrichting via de tweede interface, om een tweede dummy-bewegingsbericht dmov2 te zenden naar de computerinrichting via de derde interface, en om een vooraf bepaalde periode AT later, het tweede scrolwiel-rotatie-bericht te zenden naar de computerinrichting via de derde interface.
De hub 2721 van FIG. 27(b) omvat: - een eerste RF-zendontvanger RFX1 voor het ontvangen van berichten van en het verzenden van berichten naar de eerste aanwijsinrichting M1; en - een tweede RF-zendontvanger RFX2 voor het ontvangen van berichten van en het verzenden van berichten naar de tweede aanwijsinrichting M2, waarbij de tweede RF-zendontvanger dezelfde is als de eerste RF-zendontvanger, of een separate RF-zendontvanger is; en - een connector CON3 die aansluitbaar is op een computerinrichting 2701; - een besturingseenheid 2745 die verbonden is met de eerste RF-zendontvanger RFX1 voor het ontvangen van eerste berichten van de eerste aanwijsinrichting M1, en die verbonden is met de tweede RF-zendontvanger RFX2 voor het ontvangen van tweede berichten van de tweede aanwijsinrichting M2, en die verbonden is met de connector CON3 voor het zenden van berichten naar (en typisch ook het ontvangen van berichten van) de computerinrichting 2701, waarbij de besturingseenheid is aangepast voor het zenden van een dummy- bewegingsbericht een vooraf bepaalde periode AT vóór het zenden van een knop-ingedrukt-bericht naar de computerinrichting en/of voor het zenden van een dummy-bewegingsbericht een vooraf bepaalde periode (AT) vóór het zenden van een scrolwiel-rotatie-bericht naar de computerinrichting.
Wat hierboven is beschreven met betrekking tot de parameters dx, dy, AT bij het bespreken van speciale aanwijsinrichtingen, wordt hier niet herhaald, maar toepasbaar op de speciale hub.
De besturingseenheid 2744, 2745 kan een programmeerbare besturingseenheid zijn, bijv. een microprocessor.
FIG. 28(a) toont een voorbeeldmatig gebruikersinterface-venster, hierin de "mini- gebruikersinterface" genoemd, zoals gebruikt kan worden in uitvoeringsvormen van de onderhavige uitvinding voor het configureren van de overlay-applicatie, bijv. om een inputmodus en/of een displaymodus te kiezen, en/of een grootte en/of een kleur van het tweede of verder zichtbaar voorwerp te kiezen, en/of een semi-transparantieniveau van het doorklikvenster te kiezen gebruikmakend van één of meerdere pop-up-menu's, waarvan een voorbeeld getoond wordt in FIG. 28(b).
Het gebruikersinterface-venster, bijv. venster 585 in FIG. 5c of venster 885 in FIG. 8c, is bij voorkeur ondoorzichtig en is niet geconfigureerd in doorklikmodus, en heeft bij voorkeur een Z-orde hoger dan die van het doorklikvenster 584, 884 in FIG. 5c en FIG. 8c. Het pop-up-menu van FIG. 28(b)
kan bijvoorbeeld verschijnen bij het klikken op een rechter knop van de dominante aanwijsinrichting wanneer de native muiscursor gepositioneerd is boven één van de pictogrammen die een specifieke displaymodus weergeven.
De overlay-applicatie kan één of meerdere ingangsmodi implementeren, gekozen uit de groep bestaande uit: een EénHandige Aanwijs-modus (aangeduid als "EénH" in FIG. 28a), een Dubbele Aanwijs-modus waarbij de linker aanwijsinrichting de dominante aanwijsinrichting is (aangeduid als LinksH" in FIG. 28a), een Dubbele Aanwijs-modus waarbij de rechter aanwijsinrichting de dominante aanwijsinrichting is (aangeduid als "RechtsH" in FIG. 28a), en een Dubbele Aanwijs-modus waarbij beide aanwijsinrichtingen dominant zijn (aangeduid als "TweeH" in FIG. 28a).
In een uitvoeringsvorm van de onderhavige uitvinding die configureerbaar is in één van meerdere ingangsmodi, kan een berichtenverwerker van de overlay-applicatie de pseudo-code van FIG. 18(c) omvatten. Er wordt opgemerkt dat het testen of een knop van de dominante aanwijsinrichting is ingedrukt of niet, niet vereist is in het geval van de RechtsHandige en LinksHandige inputmodus, omdat de native muiscursor in deze gevallen niet springt van de ene naar de andere onderhouden positie Pos1, Pos2. Dus bijvoorbeeld, in het geval van de Rechtshandige inputmodus, kan een knop van de rechter aanwijsinrichting gerust ingedrukt en bewogen worden (bijv. bij het slepen of bij het selecteren van tekst in een tekstverwerker) terwijl de linker aanwijsinrichting eveneens bewogen wordt, zonder een conflict te veroorzaken (ervan uitgaand dat geen knop van de linker aanwijsinrichting wordt ingedrukt, en dat het scrolwiel van de linker aanwijsinrichting niet wordt gedraaid).
Er wordt in dit opzicht opgemerkt dat sommige uitvoeringsvormen van de speciale hub het gedrag weergegeven in FIG. 26(a) en FIG. 26(c), of zoals weergegeven in FIG. 26(b) en FIG. 26(d), kunnen implementeren, ervan uitgaande dat beide aanwijsinrichtingen mogen worden bewogen en/of geklikt en/of gescrold.
Andere uitvoeringsvormen van de speciale hub kunnen alle knop-ingedrukt-berichten en alle drukknop-losgelaten-berichten en alle scrolwiel-rotatieberichten ontvangen via één van zijn ingangspoorten onvoorwaardelijk negeren, en alleen bewegingsberichten doorlaten. Zulke uitvoeringsvorm kan in het bijzonder nuttig zijn in combinatie met een LinksHandige of RechtsHandige inputmodus. Op deze wijze wordt gegarandeerd dat zulk bericht verzonden door de niet-dominante aanwijsinrichting de computerinrichting niet kan bereiken, zelfs indien de gebruiker per ongeluk de niet-dominante aanwijsinrichting zou klikken of scrollen.
Sommige uitvoeringsvormen van de speciale hub zijn configureerbaar, bijv. via dip-switches of in software, bijvoorbeeld via een opdracht van de overlay-applicatie, of op een andere wijze, om ofwel (i) het doorlaten toe te staan van alle bewegings- en indrukkings- en loslatings- en scrolwiel-rotatie- berichten van alle aanwijsinrichtingen, of (ii) het doorlaten toe te staan van bewegingsberichten vanalle aanwijsinrichtingen, maar slechts indrukkings- en loslatings- en scrolwielberichten van één enkele aanwijsinrichting toe te staan.
De overlay-applicatie kan één of meerdere displaymodi implementeren, bijvoorbeeld zoals voorgesteld door de pictogrammen getoond in FIG. 28(a). EERSTE GROEP: Een eerste groep 2840 displaymodi werkt met de "EénHandige Aanwijs"-inputmodus, en biedt de volgende displaymodi, die als volgt samengevat kunnen worden: - pictogram 2840(a) stelt een modus voor met de enkele (native) muisaanwijzer verschaft door een klassiek O/S en GUI, - pictogrammen 2840(b) tot 2840(f) stellen een modus voor met de enkele (native) muisaanwijzer, maar bijkomend een tweede en/of derde zichtbaar voorwerp in de vorm van (b) een hand; (c) een vierkant of lijnsegment of rechthoek; (d) een lijn of rechthoek die zich uitstrekt over de ganse breedte van het overlayvenster; (e) een klein kruis; (f) een groot kruis gevormd door een horizontale lijn of rechthoek die zich bij voorkeur uitstrekt uit over de ganse breedte van het overlayvenster 584, 884 en door een verticale lijn of rechthoek die zich bij voorkeur uitstrekt over de ganse hoogte van het overlayvenster 584, 884; - pictogram 2840(j) dat een modus weergeeft van een horizontale lijn of balk gelijkend op modus 2840(d), maar met een additioneel zichtbaar voorwerp in de vorm van een klein blok bijv. een vierkant of rechthoek beweegbaar binnen de lijn of balk; - pictogram 2840(k) stelt een modus voor met een verticale lijn die het scherm splitst in een linker gedeelte en een rechter gedeelte, deze verticale lijn is bij voorkeur beweegbaar door "slepen" (na het tijdelijk instellen van het overlayvenster 584, 884 in "niet-doorklikmodus" zoals in meer detail uitgelegd in de mede in behandeling zijnde “geperforeerde bitmap aanvrage", en met een horizontale lijn aan het linker gedeelte van de verticale lijn, welke horizontale lijn mee beweegt met de muisaanwijzer wanneer de muisaanwijzer zich aan de linkerzijde van de verticale lijn bevindt, en welke horizontale lijn bevriest wanneer de muisaanwijzer zich aan de rechterzijde van de verticale lijn bevindt. Deze modus kan in het bijzonder nuttig zijn voor rechtshandige vertalers of reviewers die met slechts één enkele muisaanwijzer werken; - pictogram 2840(1) stelt een modus voor gelijkend op modus 2840(k) maar de horizontale lijn bevindt zich aan de rechterzijde van de verticale lijn, en beweegt omhoog/omlaag wanneer de native muisaanwijzer zich aan de rechterzijde van de verticale lijn bevindt, en bevriest wanneer de muisaanwijzer zich aan de linkerzijde van de verticale lijn bevindt. Deze modus kan in het bijzonder nuttig zijn voor linkshandige vertalers of reviewers die met slechts één enkele muisaanwijzer werken.
In alle modi 2840(a)-(I) is de native muiscursor zichtbaar op het scherm, en beweegt deze mee met het ten minste tweede zichtbaar voorwerp in de vorm van een hand of een lijn of een kruis of eenblok zoals hierboven beschreven, behalve in de modi met de "bevroren lijn" voorgesteld door pictogram 2840(k) en 2840(l), waarbij het zichtbaar voorwerp slechts onder bepaalde voorwaarden met de aanwijsinrichting mee beweegt.
TWEEDE GROEP:
Een tweede groep 2850 displaymodi werkt met de “LinksHandige Dubbele Aanwijs"- inputmodus, en biedt de volgende displaymodi, die als volgt samengevat kunnen worden:
- pictogram 2850(a) stelt een modus voor met de enkele (native) muisaanwijzer verschaft door een klassiek O/S en GUI, en bijkomend een tweede zichtbaar voorwerp in de vorm van een pijl,
bijv. een zwarte pijl.
De native muiscursor wordt gestuurd door de linker aanwijsinrichting.
Aspecten van modus 2850(a) werden ook beschreven in FIG. 9;
- pictogrammen 2850(b) tot 2850(f) stellen een modus voor met de enkele (native) muisaanwijzer stuurbaar door de linker aanwijsinrichting, en met een additioneel tweede of verder zichtbaar voorwerp in de vorm van (b) een hand; (c) een vierkant; (d) een lijn of rechthoek; (e) eenklein kruis; (f) een groot kruis, regelbaar door de andere aanwijsinrichting, namelijk de rechter aanwijsinrichting;
- pictogram 2850(g) tot pictogram 2850(i) stelt een modus voor gelijkend op modus 2850(c) tot 2850(e), maar de overlay-applicatie toont verder een additioneel (g) vierkant of (h) lijn of (h) klein kruis dat mee beweegt met de native muisaanwijzer, en derhalve beweegbaar is door de linkeraanwijsinrichting;
- pictogram 2850(j) stelt een modus voor waarbij de overlay-applicatie een verticale lijn verschaft die het scherm splitst in een linker gedeelte en een rechter gedeelte, en met een eerste horizontale lijn gelegen aan de linkerzijde van de verticale lijn die beweegt in overeenstemming met bewegingen van de linker aanwijsinrichting, en met een tweede horizontale lijn gelegen aan derechterzijde van de verticale lijn die beweegt in overeenstemming met bewegingen van de rechter aanwijsinrichting.
De native muiscursor is beweegbaar over het ganse scherm, en beweegt mee met de linker aanwijsinrichting.
Deze modus kan in het bijzonder nuttig zijn voor linkshandige vertalers of reviewers die twee teksten vergelijken;
- pictogram 2850{|) stelt een variant voor van de modus 2850(j) zonder de linker horizontalelijn te tonen;
In alle modi 2850(a)-(l) is de native muiscursor zichtbaar op het scherm, en beweegt deze in overeenstemming met bewegingen van de linker aanwijsinrichting, wat de reden is waarom deze modi waarschijnlijk het meest geschikt zijn voor linkshandige mensen die de native muiscursor met hun dominante (linker) hand aansturen, en een tweede zichtbaar voorwerp met hun niet-dominante
(rechter) hand bewegen.
De gebruiker hoort niet te klikken of te scrollen met de niet-dominantaanwijsinrichting, maar deze alleen te bewegen (bijv. om tekstuele informatie op het scherm te onderlijnen). DERDE GROEP: Een derde groep 2860 displaymodi werkt met de "RechtsHandige Dubbele Aanwijs"- inputmodus, en biedt displaymodi gelijkende op de tweede groep 2850 van displaymodi, behalve dat de functie van de linker en rechter aanwijsinrichting zijn verwisseld, en dat in modus 2860(k) de linker horizontale lijn wordt getoond in de plaats van de rechter horizontale lijn.
Aspecten van modus 2860(a) werden ook beschreven in FIG. 8.
Aspecten van modus 2860(d) werden ook beschreven in FIG. 5.
Aspecten van modus 2860(h) werden ook beschreven in FIG. 6.
In alle modi 2860(a)-({k) is de native muiscursor zichtbaar op het scherm, en beweegt deze in overeenstemming met bewegingen van de rechter aanwijsinrichting, wat de reden is waarom deze modi waarschijnlijk het meest geschikt zijn voor rechtshandige mensen die de native muiscursor met hun dominante (rechter) hand aansturen, en een tweede zichtbaar voorwerp met hun niet-dominante (linker) hand bewegen. De gebruiker hoort niet te klikken of te scrollen met de niet-dominant aanwijsinrichting, maar deze alleen te bewegen (bijv. om tekstuele informatie op het scherm te onderlijnen).
VIERDE GROEP: Een vierde groep 2870 displaymodi werkt met de "TweeHandige Dubbele Aanwijs"- inputmodus, en biedt displaymodus 2870(a) met twee zichtbare voorwerpen: de native muiscursor, bijv. als een witte pijl, en een tweede pij! (bijv. zwarte pijl), reeds beschreven in FIG. 10, - pictogram 2870(b) stelt een modus voor gelijkende op modus 2850(b), behalve dat twee bitmaps met een hand worden getoond, één beweegbaar met de linker aanwijsinrichting, de andere beweegbaar met de rechter aanwijsinrichting; - pictogram 2870(g) tot pictogram 2870(j) stelt een modus voor gelijkende op modus 2850(g) tot 2850(j), behalve dat de native muiscursor de positie zal volgen die geassocieerd is met de aanwijsinrichting welke het meest recent werd bewogen, en/of waarvan een knop het meest recent werd ingedrukt, en/of waarvan een scrolwiel het meest recent werd gedraaid, zoals hierboven uitgelegd. Deze modi zijn in het bijzonder geschikt voor gebruikers die beide aanwijsinrichtingen willen bewegen en klikken en/of scrollen, bijvoorbeeld de transcribers van FIG. 4, maar bijvoorbeeld ook de vertalers of proeflezers van FIG. 1 die door beide documenten wensen te scrollen en/of te bewerken, gebruikmakende van beide aanwijsinrichtingen.
Zoals boven beschreven (zie bijv. FIG. 14 en FIG. 15 en FIG. 19 en FIG. 20), werken de modi van deze vierde groep 2870 goed, zelfs met klassieke aanwijsinrichtingen M1, M2 op voorwaarde dat deaanwijsinrichting die wordt geklikt en/of gescrold degene is die het meest recent werd bewogen, hetgeen speciale aandacht van de gebruiker vereist. Een tamelijk eenvoudige oplossing zou zijn om een muis altijd eerst manueel te bewegen alvorens deze te klikken. Maar zoals hierboven uitgelegd, werken deze modi zelfs beter wanneer gebruik wordt gemaakt van speciale aanwijsinrichtingen (zie bijv. FIG. 22) die automatisch zorg dragen van het “bewegen vóór het klikken" en/of het "bewegen vóór het scrollen", of met een speciale hub of adapter of dongel zoals hierboven beschreven, zie bijv. FIG. 26(a) tot FIG. 26(d).
FIG. 28(b) toont een voorbeeldmatig pop-up-menu dat opgeroepen kan worden door het klikken met een rechter knop van de dominante aanwijsinrichting op sommige van de displaymodi in het mini-interface venster van FIG. 28(a). In het getoonde voorbeeld, laten de menu's toe de kleur, en de grootte van het tweede en/of verder zichtbaar voorwerp(en) te veranderen, alsook een transparantieniveau te kiezen van het doorklik-overlayvenster 584 (FIG. 5c) of 884 (FIG. 8c).
FIG. 29 toont een ander voorbeeldmatig gebruikersinterface-venster, hierin de "hoofdgebruikersinterface" genoemd, zoals gebruikt kan worden in uitvoeringsvormen van de onderhavige uitvinding voor het configureren van de overlay-applicatie.
Het gebruikersinterface (UI) -venster getoond in FIG. 29 heeft een gebied met titel "Mouse/Touchpad" (Nederlands: "Muis/Touchpad") voor het selecteren van de inputmodus (bijv.
LinksHandig of RechtsHandig of TweeHandig), en voor het selecteren van welke aanwijsinrichting (of eigenlijk, welke "handle" toegewezen wordt door het besturingssysteem aan elke aanwijsinrichting) beschouwd dient te worden als de dominante aanwijsinrichting (of "handle" daarvan). De UI ook omvat componenten zoals bijv. radioknoppen voor het selecteren van relatieve snelheid van beweging, enz. In FIG. 31(a) wordt dit gebied in een vergroot aanzicht getoond.
Het interfacevenster getoond in FIG. 29 heeft ook een gebied met titel "Background") (Nederlands: "Achtergrond"), dat het mogelijk maakt dat het doorklik-overlayvenster 584, 884 dat het ten minste één tweede zichtbaar voorwerp 506L, 806L omvat, verder een bitmap bevat die pixels 594, 894 omvat, waarvan een merendeel volledig transparante pixels zijn, of semi-transparante monochrome pixels, of een semi-transparant textuurbitmap zoals in meer detail beschreven in de mede in behandeling zijnde "geperforeerde bitmap aanvrage".
Het voorbeeldmatige gebruikersinterface-venster getoond in FIG. 29 heeft ook een gebied met titel "Transparency" (Nederlands: Transparantie"), dat het mogelijk maakt een alfatransparantieniveau van het overlayvenster 584 te selecteren of te kiezen. Bijvoorbeeld, indien de achtergrondpixels 584 en 884 volledig transparante pixels zijn, kan de mate van transparantie van het beweegbare zichtbaar voorwerp op deze manier gewijzigd worden. De gebruiker kan een compromiskiezen tussen enerzijds het tonen van een voorwerp dat heel verschillend is van de achtergrondpixels, en anderzijds, dat voldoende transparant is om onderliggende tekstuele informatie te kunnen lezen. De gebruikersinterface-venster getoond in FIG. 29 heeft ook een gebied met titel "Mode" (Nederlands: "Modus"), dat reeds beschreven is in FIG. 28. Afhankelijk van welke displaymodus geselecteerd is, kan het voornaamste venster een additioneel gebied zoals het gebied "block" (Nederlands: "blok") tonen waar de gebruiker bijvoorbeeld een kleur, hoogte, breedte en verticale verschuiving kan selecteren. Het interfacevenster getoond in FIG. 29 heeft ook een gebied met titel "Examples" (Nederlands: "Voorbeelden"), voor het gebruikmaken van de displaymodi met standaardinstellingen, maar standaardinstellingen kunnen uiteraard ook anders geïmplementeerd worden. In FIG. 30 wordt dit gebied in een vergroot aanzicht getoond.
Er wordt op gewezen dat uitvoeringsvormen van de onderhavige uitvinding geenszins beperkt zijn tot deze specifieke gebruikersinterface.
FIG. 30 is een vergroot aanzicht van een gedeelte van FIG. 29. Het geeft een zichtbaar overzicht van verscheidene mogelijk uitvoeringsvormen van de onderhavige uitvinding, echter, de uitvinding is daartoe niet beperkt. Deze standaardmodi stemmen grotendeels overeen met de modi getoond in de mini-interface van FIG. 28(a). Enkele van de modi worden in meer detail beschreven in dit document, zoals aangeduid door de Romeinse getallen die naar de respectievelijke figuren verwijzen.
FIG. 31(a) is een vergroot aanzicht van een gedeelte van FIG. 29. Het toont bijvoorbeeld hoe een gebruiker een inputmodus kan kiezen, bijv. LinksHandig; RechtsHandig; TweeHandig. Er wordt opgemerkt dat bijvoorbeeld een touchpad van een laptopcomputer ook als een aanwijsinrichting wordt beschouwd, vandaar de indicatie "#3" in de titel, wat wil zeggen dat het besturingssysteem van de computerinrichting waarvan dit screenshot werd genomen, drie inputinrichtingen heeft gevonden: twee fysieke muisinrichtingen en één touchpad.
Er wordt opgemerkt dat de onderhavige uitvinding bijvoorbeeld ook zal werken met een laptopcomputer waaraan slechts één enkele fysieke muis is verbonden, bijv. door gebruik te maken van het touchpad als de niet-dominante aanwijsinrichting en de fysieke muis als de dominante aanwijsinrichting.
FIG. 31(b) is een variant van het gedeelte van FIG. 31(a), waarbij een optie is toegevoegd om de oriëntatie van de verplaatsingsvector gedefinieerd door de verplaatsingswaardes (dx, dy) aan te passen naar een geprefereerde oriëntatie gekozen uit een eerste groep van vooraf bepaalde richtingen bestaande uit de richtingen: Noord, West, Zuid, Oost, of uit een tweede groep van vooraf bepaalderichtingen bestaande uit de richtingen: Noord, Noord-West, West, Zuid-West, Zuid, Zuid-Oost, Oost, Noord-Oost. Deze transformatie kan toegepast worden op bewegingen van alleen de dominante aanwijsinrichting, of op bewegingen van alleen de niet-dominante aanwijsinrichting, of op beide aanwijsinrichtingen.
Testen hebben aangetoond dat deze functie de gebruiker sterk kan helpen om bewegingen van één of beide aanwijsinrichtingen beter aan te sturen bij het uitvoeren van bepaalde taken. Deze functie kan bijvoorbeeld in het bijzonder nuttig zijn om de door de niet-dominante hand aangestuurde aanwijsinrichting horizontaal over een tekstlijn te bewegen, bijv. bij het uitvoeren van tekst- gebaseerde taken zoals het lezen van een tekstdocument, het proeflezen van een vertaling, het wijzen naar individuele woorden op eenzelfde lijn tijdens een Webinar of presentatie, enz.
FIG. 31(c) toont enkele regels pseudo-code die gebruikt kunnen worden in de positiebijwerkingsroutine voor het transformeren van de verplaatsingswaardes dx, dy om te worden gesitueerd in een oriëntatie van de tweede groep van acht toegelaten oriëntaties hierboven vermeld (Noord, Noord-West, enz.). In het voorbeeld van FIG. 31(c), - indien dx=0, betekent dit dat de beweging reeds verticaal was, bijgevolg is geen aanpassing vereist; - indien dy=0, betekent dit dat de beweging reeds horizontaal was, bijgevolg is geen aanpassing vereist; - indien dx=dy, betekent dit dat de beweging reeds diagonaal was, bijgevolg is geen aanpassing is vereist, - anders, wordt bepaald of de hoek van de verplaatsingsvector in het bereik ligt van (-30° tot +30°) of in het bereik van (150° tot 210°), in welk geval de absolute waarde van de tangens van genoemde hoek kleiner is dan 0,5, in welk geval de beweging gedwongen wordt om horizontaal te zijn, en/of wordt bepaald of de hoek van de verplaatsingsvector in het bereik ligt van (60° tot 120°) of in het bereik van (240° tot 300°), in welk geval de absolute waarde van de tangens van de genoemde hoek groter is dan 2,0, in welk geval de beweging wordt gedwongen om verticaal te zijn, anders wordt de beweging gedwongen om diagonaal te zijn (georiënteerd op +45° of 135° of 225° of 315°).
Er wordt opgemerkt dat er geen goniometrische functies gebruikt worden in deze routine, waardoor de implementatie tamelijk eenvoudig en tamelijk snel wordt gehouden, en de CPU-belasting daardoor tamelijk laag blijft. De zorgvuldige lezer zal herkennen dat de amplitude van de verplaatsingsvector mogelijks lichtjes kan toenemen of afnemen door de aanpassing, teneinde de transformatie eenvoudig en snel te houden. Dit effect is nauwelijks merkbaar.
Testen hebben aangetoond dat de transformatie van FIG. 31(c) trage bewegingen van de aanwijsinrichting (waarvoor dx en dy zeer klein zijn) niet beïnvloedt. Voor een gebruiker voelt dit alsof tamelijk trage bewegingen in iedere richting kunnen uitgevoerd worden, hetgeen wenselijk is om finetunen van een positie op het scherm mogelijk te maken. Echter, indien de snelheid waarmee de aanwijsinrichting wordt bewogen wordt verhoogd, zal de amplitude van de verplaatsingsvector groter worden dan een vooraf bepaalde drempelwaarde (in het voorbeeld van FIG. 31c groter dan 0), in welk geval de verplaatsing wordt gedwongen om horizontaal of verticaal of diagonaal te zijn. Dit gedrag is zeer wenselijk om bijna horizontale bewegingen perfect horizontaal te houden, hetgeen moeilijk manueel te bereiken is, vooral bij tamelijk hoge snelheid.
Maar uiteraard vereist de onderhavige uitvinding niet dat deze functie aanwezig is (ze kan worden ingeschakeld of uitgeschakeld door een gebruiker). Verder, indien aanwezig, is de onderhavige uitvinding niet beperkt tot de/het specifieke routine of algoritme getoond in FIG. 31(c), en andere algoritmes voor het heroriënteren van de aanwijzerbewegingen zijn eveneens overwogen, zoals bijvoorbeeld beschreven in de volgende varianten.
FIG. 31(d) en FIG. 31(e) tonen een variant van de verplaatsings- transformatieroutine, waarbij bijna-horizontale bewegingen getransformeerd worden naar zuiver horizontale bewegingen.
Meer specifiek, toont FIG. 31(d) een grafische voorstelling van de verplaatsingsvector V die overeenkomt met de fysieke beweging van de aanwijsinrichting, geassocieerd met de verplaatsingswaardes (dx, dy). De verplaatsingsvector V vormt een hoek a ten opzichte van de X-as. Indien deze hoek in de in grijze kleur aangeduide segmenten ligt, wat wil zeggen dat de hoek a in het bereik [-amax.….+amax] of in het bereik [180°-amax .. 180°+amax] ligt, dan wordt de verplaatsingsvector getransformeerd naar een zuiver horizontale verplaatsing, door de waarde van dy gelijk aan nul in te stellen. In de plaats van met hoeken te werken, kan dit gecodificeerd worden door de absolute waarde van de tangens van de hoek, dat is abs(dy/dx), te berekenen, en te testen of deze waarde kleiner is dan, of kleiner dan of gelijk is aan een vooraf bepaalde constante. Bijvoorbeeld, amax =30° komt overeen met abs(dy/dx) < 0,577, of als een ander voorbeeld, het testen of abs(dy/dx) < 0,5 komt overeen met het testen of de hoek a in het bereik ligt van ongeveer [-26° tot +26°] of ongeveer [154° tot 206°], maar uiteraard is de onderhavige uitvinding niet beperkt tot slechts dit bereik, en andere bereiken kunnen eveneens gebruikt worden.
FIG. 31(e) toont voorbeeldmatige regels pseudo-code die de hierboven beschreven “verplaatsingstransformatie" implementeren, welke gebruikt kunnen worden in de "positiebijwerkingsroutine" (zie bijvoorbeeld stap g) van FIG. 5(e), bij het bijwerken van Pos1 en Pos2). Maar uiteraard kan een ander hoekbereik gebruikt worden, of met andere woorden, de uitvinding zal ook werken met andere waardes voor MAXTAN, bijvoorbeeld waardes in het bereik van 0,2 tot 0,75, bijvoorbeeld kleiner dan 0,25=1/4, of kleiner dan 0,33=1/3, of kleiner dan 0,5=1/2, of kleiner dan
0,66=2/3, of kleiner dan 0,75=3/4. De vakman die het voordeel van de onderhavige uitvinding heeft, kan eenvoudig andere geschikte bereiken definiëren. FIG. 32 toont een computersysteem 3200 volgens een uitvoeringsvorm van de onderhavige uitvinding, omvattende een computerinrichting 3201 volgens een uitvoeringsvorm van de onderhavige uitvinding die een overlay-applicatie volgens een uitvoeringsvorm van de onderhavige uitvinding uitvoert, en twee aanwijsinrichtingen, bijv. muisinrichtingen 3203L, 3203R verbonden met de computerinrichting, en optioneel een toetsenbord 3202. De muisinrichtingen kunnen klassieke muisinrichtingen zijn, of kunnen speciale muisinrichtingen zijn met de "beweeg-vóór-klik" functie en/of de "beweeg-vóór-scrol" functie zoals uitgelegd in FIG. 22(a) en FIG. 22(b). De muisinrichtingen kunnen rechtstreeks met de computerinrichting verbonden zijn (bijv. zoals getoond in FIG. 11 en FIG. 23(a)), of via een klassieke hub of adapter of dongel (bijv. zoals getoond in FIG. 12 en FIG. 24) of via een speciale hub (bijv. zoals getoond in FIG. 25).
De overlay-applicatie gebruikt in het systeem van FIG. 32 laat toe dat het O/S en de GUI (bijv.
Windows 7 of Windows 10 van Microsoft Corporation, of mac OS Sierra of mac OS High Sierra van Apple Inc.) de native muiscursor 3205 toont, maar past de positie daarvan aan, bijv. overschrijft deze. De overlay-applicatie verschaft verder een tweede zichtbaar voorwerp 3206L en een derde zichtbaar voorwerp 3206R, in het voorbeeld van FIG. 32 zijnde twee lijnen of rechthoekige gebieden. Deze rechthoekige gebieden kunnen ondoorzichtig of semi-transparant zijn. Ze kunnen één enkele kleur hebben, of een kleurgradiënt, of kunnen een geperforeerde bitmap bevatten. De andere pixels van het overlayvenster kunnen volledig transparante pixels zijn, of kunnen alle semi-transparante pixels zijn, of het overlayvenster kan een geperforeerde bitmap omvatten of een textuurbitmap zoals uitgelegd in de mede in behandeling zijnde "geperforeerde bitmap aanvrage".
In het geval dat de overlay-applicatie ontworpen (bijv. hardgecodeerd) is voor, of geconfigureerd is in displaymodus 2860(h), dus in de RechtsHandige inputmodus, dan volgt het voorwerp 3206L bewegingen van de linker aanwijsinrichting 3203L (of eigenlijk de aanwijsinrichting geconfigureerd of aangeduid als de linker aanwijsinrichting) en volgend de native muiscursor 3205 en het voorwerp 3206R bewegingen van de rechter aanwijsinrichting 3203R (of eigenlijk de aanwijsinrichting geconfigureerd of aangeduid als de rechter aanwijsinrichting).
In het geval dat de overlay-applicatie ontworpen (bijv. hardgecodeerd) is voor, of geconfigureerd is in displaymodus 2870(h), dus in de TweeHandige inputmodus, dan volgt het voorwerp 3206L bewegingen van de linker aanwijsinrichting 3203L (of eigenlijk de aanwijsinrichting geconfigureerd of aangeduid als de linker aanwijsinrichting) en volgt het voorwerp 3206R bewegingen van de rechter aanwijsinrichting 3203R (of eigenlijk de aanwijsinrichting geconfigureerd of aangeduid als de rechter aanwijsinrichting), en zal de native muiscursor 3205 bewegen en/of springen afhankelijk van welke aanwijsinrichting het meest recent werd bewogen en/of geklikt en/of gescrold.
De uitvoeringsvorm weergegeven in FIG. 32, en varianten daarvan, optioneel gebruikmakend van een bedrade of draadloze hub of adapter of dongel, en optioneel gebruikmakend van een bewegingstransformatie zoals uitgelegd in FIG. 31(b) en FIG. 31(c), kunnen in het bijzonder nuttig zijn voor het adresseren van het probleem beschreven in FIG. 1 en FIG. 3, waarbij het gewenst is om twee tekstfragmenten te onderlijnen.
FIG. 33 toont uitvoeringsvormen van de onderhavige uitvinding die displaymodus 2850(g), 2860(g) en 2870(g) implementeren, waarbij het O/S en de GUI de native muiscursor 3305 tonen, waarvan de vorm typisch kan en zal veranderen afhankelijk van de context, en toont de overlay- applicatie bijkomend twee zichtbare en beweegbare vierkanten 3306L, 3306R. Displaymodus 2860(g) en 2870(g) lijken in het bijzonder geschikt te zijn voor elk van de gevallen getoond in FIG. 1 tot FIG. 4 voor rechtshandige mensen, terwijl displaymodus 2850(g) en 2870(g) in het bijzonder geschikt lijken te zijn voor gelijkaardige problemen als getoond in FIG. 1 tot FIG. 4, doch voor linkshandige mensen.
FIG. 34 toont uitvoeringsvormen van de onderhavige uitvinding die displaymodus 2870(b) implementeren, waarbij het O/S en GUI de native muiscursor 3405 tonen (in het voorbeeld een witte pijl), en de overlay-applicatie bijkomend twee zichtbare voorwerpen toont, een tweede voorwerp 3406L zijnde of bevattende een bitmap of beeld van een linkerhand, en een derde voorwerp 3406R zijnde of bevattende een bitmap of beeld van een rechterhand. Ook deze modus lijkt in het bijzonder geschikt te zijn voor al de in FIG. 1 tot FIG. 4 getoonde gevallen, in het bijzonder in combinatie met een bewegingstransformatieroutine zoals uitgelegd in FIG. 31(b) en FIG. 31(c) om de gebruiker te helpen om eenvoudig horizontale bewegingen te maken, en vooral indien de handen semi-transparant zijn. Bij voorkeur is in dit geval de positie van de bitmap bevattende het beeld van de hand lichtjes verschoven ten opzichte van de positie van de native muiscursor 3405, zodanig dat de native muiscursor zich bevindt op of nabij het uiteinde van de respectievelijke wijsvingers. Testen hebben aangetoond dat de twee handen extreem nuttig kunnen zijn bij het proeflezen.
Hoewel de onderhavige uitvinding eveneens kan gebruikt worden met andere bitmaps dan een hand, wordt er opgemerkt dat de vorm van een hand, in het bijzonder een hand met een gestrekte wijsvinger, zeer natuurlijk en intuïtief aanvoelt, en de aandacht van de gebruiker niet lijkt af te leiden, misschien omdat het veel op de echte, in FIG. 1 tot FIG. 3 getoonde hand en vinger lijkt. Dat gezegd zijnde, kan een driehoekige vorm, of een veelhoekige vorm, bij voorkeur met een puntig uiteinde bovenaan, eveneens gebruikt worden.
FIG. 35 toont uitvoeringsvormen van de onderhavige uitvinding die displaymodi 2850(d) en 2860(d) implementeren, die de native muiscursor 3505 als een eerste zichtbaar en beweegbaar voorwerp tonen, en één lijn 3506 of rechthoek als het tweede zichtbaar en beweegbaar voorwerp.
Deze modi kunnen bijzonder nuttig zijn voor het benaderen van het probleem getoond in FIG. 2 en FIG. 3. Het kan een voordeel van deze uitvoeringsvorm zijn dat er geen derde voorwerp is dat de native muiscursor volgt, dat lichtjes afleidend of lichtjes vervelend zou kunnen zijn bij het selecteren van menu's of kleuren of dergelijke.
FIG. 36 toont uitvoeringsvormen van de onderhavige uitvinding die displaymodi 2850(e) en 2860(e) implementeren, die de native muiscursor 3605 als een eerste zichtbaar en beweegbaar voorwerp tonen en één klein kruis 3606 als een tweede zichtbaar en beweegbaar voorwerp. Deze modi kunnen eveneens bijzonder nuttig zijn voor het benaderen van het probleem getoond in FIG. 2 en FIG. 3.
Displaymodi 2850(j) en 2860(j) die een groot kruis tonen dat zich uitstrekt over de ganse hoogte en breedte van het overlayvenster, kunnen gezien worden als een variant van de uitvoeringsvorm getoond in FIG. 36. Deze modi kunnen bijzonder nuttig zijn bij het lezen van of extraheren van informatie uit een werkblad met de niet-dominante hand, terwijl met de native muiscursor in een ander document wordt gewerkt, bijvoorbeeld een tekstdocument. Het grote kruis in overlay biedt het voordeel dat een specifieke cel eenvoudig kan gevonden worden, en dat de rijhoofdingen en kolomhoofdingen van een bepaalde cel eveneens extreem eenvoudig te vinden zijn, zoals in meer detail uitgelegd in de mede in behandeling zijnde “geperforeerde bitmap aanvrage".
Volledigheidshalve wordt opgemerkt dat de modus 2840(f) met één enkele muis mogelijks beter geschikt kan zijn bij het editeren van een werkblad, omdat in deze uitvoeringsvorm de native muiscursor zich bevindt op de kruising van het grote kruis. Dat gezegd zijnde, kan de vakman met het voordeel van de onderhavige openbaarmaking eenvoudig een displaymodus toevoegen waarbij het kruis van displaymodus 2840(f) gebruikt wordt als het derde zichtbaar voorwerp, en een ander voorwerp, bijvoorbeeld een lijn of een vierkant of een hand wordt toegevoegd als een tweede zichtbaar voorwerp.
FIG. 37 is een variant van FIG. 32 die dezelfde modi implementeert, maar gebruikt wordt om verschillende gedeeltes van één enkel document te onderlijnen.
FIG. 38 illustreert uitvoeringsvormen van de onderhavige uitvinding die displaymodi 2850(i) tot 2870(i) implementeren die de native muiscursor en twee kleine kruisen 3806L, 3806R tonen.
FIG. 39 toont uitvoeringsvormen van de onderhavige uitvinding waarbij de overlay-applicatie geconfigureerd is in een van de displaymodi 2850(j), 2860(j) en 2870(j). De horizontale lijn of balk 3906L gesitueerd aan de linkerzijde van de verticale lijn 3907 wordt automatisch omhoog/omlaag bewogen bij het bewegen van de linker aanwijsinrichting 3903L. De horizontale lijn of balk 3906Rgesitueerd aan de rechterzijde van de verticale lijn 3907 wordt automatisch omhoog/omlaag bewogen bij het bewegen van de rechter aanwijsinrichting 3903R. Afhankelijk van welke inputmodus wordt geselecteerd of geïmplementeerd, volgt de native muiscursor 3905 bewegingen van de linker aanwijsinrichting 3903L (in de LinksHandige inputmodus), of van de rechter aanwijsinrichting 3903R (in de RechtsHandige inputmodus), of van de aanwijsinrichting die het meest recent werd bewogen en/of geklikt en/of gescrold (in de TweeHandige inputmodus). Een voordeel van deze uitvoeringsvorm voor proeflezers is dat de niet-dominante hand geen nauwkeurige positionering vereist, aangezien een ganse tekstregel onderlijnd kan worden door slechts de niet-dominante aanwijsinrichting omhoog/omlaag te bewegen. Linkse en rechtse bewegingen van de niet-dominante aanwijsinrichting zijn niet vereist. Dit is vooral waar voor “eenvoudige teksten" die tamelijk snel gelezen kunnen worden, waarbij het niet vereist of wenselijk is om elk woord afzonderlijk te onderlijnen, in tegenstelling tot bijvoorbeeld vertalingen van octrooi-conclusies, waar elk woord zorgvuldig gecontroleerd dient te worden.
FIG. 40 toont een variant van de in FIG. 39 getoonde uitvoeringsvormen, waarbij de overlay- applicatie, behalve de horizontale lijn of balk aan de linker- en rechterzijde van de verticale lijn 4007, bijkomend ook twee blokken of vierkanten of rechthoeken 4009L, 4009R toont binnen de horizontale lijn of balk 4006L, 4006R, welke blokken samen met de lijnen in verticale richting (omhoog/omlaag) bewegen, maar ook beweegbaar zijn in horizontale richting (links/rechts) in overeenstemming met bewegingen van de respectievelijke aanwijsinrichtingen 4003L, 4003R. De lijn of balk zal typisch een andere kleur hebben dan de blokken of vierkanten of rechthoeken binnen de lijn of balk, zodat ze duidelijk zichtbaar zijn. In een specifieke uitvoeringsvorm of configuratie, hebben de lijnen een monochrome kleur en zijn de blokken volledig transparant, hetgeen een visuele indruk geeft van een balk met een "gat".
De uitvinders kwamen ook op het idee om het probleem getoond in FIG. 1 tot FIG. 3 op een geheel andere wijze op te oplossen, namelijk, buiten de computerinrichting, bijvoorbeeld in een speciale weergave-inrichting 4104, zoals weergegeven in FIG. 41.
FIG. 41 toont een computersysteem 4100 volgens een uitvoeringsvorm van de onderhavige uitvinding, omvattende een speciale monitor of weergavescherm 4104 volgens een uitvoeringsvorm van de onderhavige uitvinding, en een computerinrichting 4101, dat een klassieke computerinrichting kan zijn. Het computersysteem 4100 omvat ten minste twee aanwijsinrichtingen, met inbegrip van een eerste aanwijsinrichting 4103R verbonden met de klassieke computerinrichting 4101, en een tweede aanwijsinrichting 4103L verbonden met het speciale weergavescherm 4104, op een bedrade of draadloze wijze.
In eenvoudige termen uitgedrukt, heeft de weergave-inrichting 4104 een processor die aangepast is voor het communiceren met de aanwijsinrichting 4103L en voor het onderhouden van een positie xL, yL overeenkomend met bewegingen van de aanwijsinrichting 4103L, en is aangepast voor het overlayen van het grafische beeld ontvangen van de computerinrichting 4101 met een lokaal gegenereerd zichtbaar voorwerp 4106L, dat bijvoorbeeld de vorm heeft van een vierkant of een rechthoek of een rechthoek met afgeronde randen, of een cirkel of een pijl of een hand of een klein kruis of een groot kruis dat zich uitstrekt over de ganse hoogte en breedte van het weergavescherm, of een andere geschikte vorm, en voor het bewegen van dat voorwerp in overeenstemming met bewegingen van de aanwijsinrichting 4103L door het positioneren van het voorwerp 4106L op de onderhouden positie xL, yL. Met andere woorden, in deze uitvoeringsvorm genereert de weergave- inrichting 4104 het voorwerp 4106L en toont dit op het scherm op een positie die beweegbaar is door de linker aanwijsinrichting 4103L, terwijl de computerinrichting bewegingen van de rechter aanwijsinrichting 4103R afhandelt zoals gewoonlijk.
FIG. 42 toont een voorbeeldmatig blokdiagram van een uitvoeringsvorm van de weergave- inrichting 4104 zoals gebruikt kan worden in het computersysteem 4100 van FIG. 41. De weergave- inrichting 4104 omvat: - een ingangspoort 4231, bijv. een VGA-poort of een HDMI-poort of een DVI-poort of een andere geschikte poort voor het ontvangen van grafische beeldgegevens van een computerinrichting 4101; - een interface of poort om te communiceren met de aanwijsinrichting 4203L, bijv. een fysieke connector 4237 zoals een USB-connector, of een draadloze RF-interface 4238; - een displaypaneel 4236, bijv. een LCD-paneel voor het genereren van een zichtbaar beeld; - een invoerbuffer 4232 voor het opslaan van minstens een gedeelte van de grafische beeldgegevens ontvangen aan de ingangspoort 4231; - een framebuffer 4234 voor het opslaan van minstens een gedeelte van de beeldgegevens die getoond moeten worden op het displaypaneel 4236; - en een processor aangepast voor: * het communiceren met de aanwijsinrichting 4203L voor het ontvangen van verplaatsingswaardes dx, dy gerelateerd aan bewegingen van de aanwijsinrichting; * het onderhouden van een positie xL, yL op basis van de ontvangen verplaatsingswaardes dx, dy; * het genereren van beeldgegevens van het zichtbaar voorwerp 4106L; * het genereren van de beeldgegevens die in het framebuffer 4234 moeten opgeslagen worden door het overlayen van de grafische beeldgegevens ontvangenaan zijn ingangspoort met de gegenereerde beeldgegevens van het zichtbaar voorwerp 4106L op de onderhouden positie xL,yL.
In het geval van een VGA- of andere analoge ingang, moet het binnenkomende signaal gedigitaliseerd worden door middel van één of meerdere ADC (analoog-naar-digitaal) convertoren, op wijzen die op zich gekend zijn in de stand der techniek. Evenzo, indien het uitgaande signaal analoog is, dan moet het digitale signaal dat het uitgangsbuffer verlaat geconverteerd worden naar analoge signalen gebruikmakende van één of meerdere DAC (digitaal-naar-analoog) convertoren, op wijzen die op zich gekend zijn in de stand der techniek. De weergave-inrichting kan optioneel ingangs- signaalconversiecircuits omvatten voor het converteren van analoge signalen naar digitale signalen, en/of kan optioneel uitgangs-signaalconversiecircuits omvatten voor het converteren van digitale signalen naar analoge uitgangssignalen.
De aanwijsinrichting 4203L kan een bedrade muisinrichting of een draadloze muisinrichting zijn. De aanwijsinrichting 4203L kan een HID-compatibele aanwijsinrichting zijn, bijv. een HID- compatibele muisinrichting. De aanwijsinrichting kan rechtstreeks verbonden zijn met de fysieke connector via draden, of via een klassieke hub (niet getoond).
De aanwijsinrichting kan een draadloze aanwijsinrichting zijn, bijv. een draadloze muisinrichting, die communiceert via een dongel verbonden met, bijv. ingebracht in de fysieke connector van het weergavescherm.
Het weergavescherm kan een interne of externe draadloze RF-zendontvanger 4238 omvatten om te communiceren met een draadloze aanwijsinrichting, bijv. via een Bluetooth-protocol.
Het gegenereerde zichtbaar voorwerp 4106L kan de vorm hebben van een vierkant, of een vierkant met afgeronde randen, of een rechthoek, of een rechthoek met afgeronde randen, of een langwerpig voorwerp, of een pijl of een hand, of een andere geschikte vorm.
Het voorwerp 4106L kan bestaan uit monochrome pixels, bijv. rode of blauwe of zwarte of gele pixels, of een andere geschikte kleur. Alternatief kan het voorwerp precies twee kleuren hebben, bijvoorbeeld een binnenste, inwendige kleur en een omtrekkleur (bijv. zwart), bijvoorbeeld om een groter contrast te vormen. Maar de zichtbare voorwerpen kunnen ook méér dan twee kleuren bevatten.
Het voorwerp 4106L kan ondoorzichtig zijn, wat wil zeggen dat de gebruiker niet doorheen het voorwerp 4106L kan zien. In dit geval kan de processor het geoverlayde beeld genereren door eenvoudig een deel van de grafische beeldgegevens afkomstig van de computer te vervangen door beeldgegevens van het lokaal gegenereerde zichtbaar voorwerp, zonder gegevens te moeten mengen.
Het voorwerp 4106L kan een semi-transparant monochroom voorwerp zijn, dat bijv. een alfatransparantie a heeft in het bereik van 10% tot 90%, bijv. ongeveer 25% of ongeveer 50% of ongeveer 75%. In dit geval zal de processor de grafische beeldgegevens alfamengen of mengen met de voorwerpgegevens. In het geval van 50% alfamengen, kunnen de rode, blauwe en groenekleurcomponenten R1, G1, B1 van de grafische beeldgegevens en de rode, blauwe en groene kleurcomponenten R2, G2, B2 van de pixels van het beweegbaar voorwerp eenvoudig uitgemiddeld worden, hetgeen een eenvoudige rekenkundige operatie is, bijvoorbeeld equivalent aan de volgende berekening: R:= (R1 shr 1)+(R2 shr 1), en evenzo voor de andere kleurcomponenten.
Het voorwerp 4106L kan een zogenoemde "geperforeerde bitmap" zijn of omvatten, zoals uitgelegd in de mede in behandeling zijnde "geperforeerde bitmap aanvrage". Deze bitmap kan een eerste veelheid volledig transparante pixels en een tweede veelheid monochrome pixels omvatten, waarbij de eerste veelheid pixels en de tweede veelheid pixels geïnterleaved (afwisselend gepositioneerd) zijn, bijvoorbeeld volgens een schaakbordpatroon.
* Deze geperforeerde bitmap kan op een ondoorzichtige wijze geoverlayd zijn, als volgt: In het geval dat een grafische beeldpixel afkomstig van het computerbeeld geoverlayd wordt met een volledig transparante pixel, zal het resultaat de originele grafische beeldpixel zijn. In het geval dat een grafische beeldpixel geoverlayd wordt met een monochrome pixel, zal het resultaat de monochrome pixel van het beweegbaar voorwerp zijn.
* Deze geperforeerde bitmap kan op een semi-transparante wijze geoverlayd worden, als volgt: In het geval dat een grafische beeldpixel door een volledig transparante pixel geoverlayd wordt, zal het resultaat de originele grafische beeldpixel zijn. In het geval dat een grafische beeldpixel geoverlayd wordt met een monochrome pixel, zal het resultaat de alfamenging of menging zijn van de grafische beeldpixel afkomstig van het computerbeeld en de monochrome pixel van het beweegbaar voorwerp.
Het is ook mogelijk om het voorwerp 4106L semi-transparant te doen lijken door tijdmultiplexing tussen de grafische beeldpixels (komende van de computerinrichting), en de beeldpixels van het beweegbaar voorwerp {gegenereerd binnen het weergavescherm). Bijvoorbeeld door het gebruikmaken/weergeven van de monochrome pixels van het voorwerp 4106L op een eerste moment in tijd (bijv. op even genummerde frames) en door het gebruikmaken/weergeven van de grafische beeldgegevens op een tweede moment in tijd (bijv. bij oneven genummerde frames). Dit zou bijvoorbeeld betekenen dat de helft van de frames het zichtbaar voorwerp 4106L effectief zouden tonen, en de helft van de frames niet, waardoor de indruk wordt gecreëerd van semi-transparant te zijn (gemiddeld over de tijd).
Vergelijking van FIG. 41 met FIG. 5(a) en FIG. 5(b) leert dat de beelden op het scherm er precies hetzelfde of zeer gelijkend kunnen uitzien (ervan uitgaand dat dezelfde kleur en/of hetzelfde semi-transparantieniveau worden gebruikt). Derhalve adresseert de uitvoeringsvorm van FIG. 41 eveneens het in FIG. 1 tot FIG. 3 beschreven probleem, maar de computerinrichting 4101 vereist niet de hierboven beschreven speciale overlay-applicatie en/of de speciale muis en/of de speciale hub, alleen de weergave-inrichting 4104 moet "speciaal" zijn.
Het computersysteem 4100 van FIG. 41 maakt het mogelijk dat de gebruiker de linker aanwijsinrichting 4103L beweegt teneinde de positie van het zichtbaar voorwerp 4106 op het scherm te bewegen, maar uiteraard zal het klikken op die aanwijsinrichting of het scrollen van het wiel daarvan niet het effect hebben van het selecteren van tekst of het omhoog of omlaag scrollen van een document. Met andere woorden, de uitvoeringsvorm van FIG. 41 lost niet het probleem op getoond in FIG. 4.
In een variant van de weergave-inrichting getoond in FIG. 42, omvat de weergave-inrichting ten minste twee connectoren voor het verbinden van ten minste twee aanwijsinrichtingen, en is de processor 4233 aangepast voor het onderhouden van twee aanwijsposities Pos1, Pos2, en voor het genereren van twee zichtbare voorwerpen, bijvoorbeeld twee lijnen gelijkend op FIG. 32, of twee vierkanten gelijkend op FIG. 33 of twee handen gelijkend op FIG. 34, en voor het positioneren van deze twee voorwerpen op de twee bijgehouden locaties. Met een computersysteem dat zulk een weergave- inrichting omvat, zou een gebruiker bijvoorbeeld twee speciaal daarvoor voorziene aanwijsinrichtingen kunnen gebruiken voor het vergelijken van twee tekstdocumenten (bijv. bij het proeflezen van een vertaling}, en zou een derde aanwijsinrichting kunnen gebruiken, verbonden met de computer, voor het editeren of corrigeren.
De weergave-inrichting kan een verdere connector hebben voor verbinding met een verwijderbare, niet-vluchtige geheugeninrichting, zoals een geheugenkaart of een USB-stick of dergelijke, die een bestand en een bitmap kan bevatten van de één of meerdere weer te geven zichtbare voorwerpen.
De uitvinders kwamen op nog een ander idee om het probleem getoond in FIG. 1 tot FIG. 3 op te lossen, eveneens buiten de computerinrichting 4301, namelijk door het verschaffen van een speciale video-adapter of video-interface-inrichting 4330, verbonden tussen de computerinrichting 4301 en de weergave-inrichting 4304, zoals weergegeven in FIG. 43 en FIG. 44.
Vele soorten video-adapters zijn gekend in de stand der techniek, bijvoorbeeld een video- adapter voor het converteren van een HDMI-signaal naar een VGA-signaal of omgekeerd. De video- adapter kan één of meerdere hogesnelheid analoog-naar-digitaal convertoren ADC en/of één of meerdere hogesnelheid digitaal-naar-analoog convertoren DAC bevatten.
Geen van de bestaande video-adapters onderhoudt een positie gerelateerd aan bewegingen van een aanwijsinrichting verbonden met de genoemde adapter, en geen van deze toont een zichtbaar voorwerp dat beweegbaar is in overeenstemming met deze bewegingen. En bij voorkeur, omvat de video-adapter 4330 volgens uitvoeringsvormen van de onderhavige uitvinding een digitale video- ingangsconnector (bijv. een HDMl-ingangsconnector) en een digitale video-uitgangsconnector (bijv.
een HDMI-uitgangsconnector), in welk geval de binnenkomende video- of grafische beeldgegevensdigitaal zijn, en ook de uitgaande video- of grafische beeldgegevens digitaal zijn, en de DAC(s) en de ADC(s) weggelaten kunnen worden. FIG. 43 toont een computersysteem 4300 volgens een uitvoeringsvorm van de onderhavige uitvinding, omvattende een video-adapterinrichting 4330 volgens een uitvoeringsvorm van de onderhavige uitvinding.
In de context van de onderhavige uitvinding is de "video-adapter" een elektrisch or elektronische inrichting in één enkele behuizing (bv. doosje) met een typische lengte van 4 tot 14 cm, en een typische breedte van 4 tot 12 cm, en een typische hoogte van 1 tot 4 cm, en dus geen laptop- computer of desktop-computer, en al helemaal niet een computer-systeem met meerdere netwerkservers. Deze inrichting heeft bij voorkeur geen aparte voedingskabel of voeding, maar wordt bij voorkeur gevoed vanuit de video-ingangspoort A.
De video-adapter 4330 heeft dus een video-ingangspoort A, 4431 (bijvoorbeeld een DVI- of een HDMI-poort of een VGA-poort) voor het ontvangen van eerste grafische beeldgegevens vanuit een computerinrichting 4301. De computerinrichting 4301 is verbonden met een eerste aanwijsinrichting 4303R. De video-adapter 4330 omvat verder een video-uitgangspoort C, 4436 (bijvoorbeeld een DVI- of een HDMI-poort of een VGA-poort) voor het verschaffen van tweede grafische beeldgegevens aan een monitor of weergavescherm 4304. De video-adapter 4330 omvat verder ten minste één interface (bijvoorbeeld een fysieke connector zoals een USB-poort, of een RF-zendontvanger) om te communiceren met een tweede aanwijsinrichting 4303L, werkzaam verbonden met de video-adapter. De video-adapter 4330 is aangepast voor het genereren van ten minste één zichtbaar voorwerp 4306L, bijvoorbeeld met de vorm van een vierkant of een rechthoek of een rechthoek met afgeronde randen, of een cirkel of een pijl of een hand of een klein kruis of een groot kruis dat zich uitstrekt over de ganse hoogte en breedte van het weergavescherm, of een andere geschikt vorm, en voor het genereren van het tweede grafische beeld (dat verzonden dient te worden naar het weergavescherm) door het overlayen van de eerste grafische beeldgegevens (komende van de computerinrichting) met het ten minste één zichtbaar voorwerp 4306L (intern gegenereerd), en voor het bewegen van dat ten minste één zichtbaar voorwerp 4306L in overeenstemming met bewegingen van de tweede aanwijsinrichting 4303L.
Het ten minste één zichtbaar voorwerp 4306L kan een monochrome kleur hebben. De monochrome kleur kan vooraf bepaald zijn, bijvoorbeeld rood of groen of blauw of zwart of een andere geschikte kleur. Optioneel kan de video-adapter 4330 één of meerdere knoppen 4441 hebben voor het selecteren van de monochrome kleur uit een aantal vooraf bepaalde kleuren.
De video-adapter is aangepast voor het genereren van ten minste één zichtbaar voorwerp 4306L en voor het overlayen van het ten minste één zichtbaar voorwerp met de binnenkomende grafische beeldgegevens, bijv. door alfamengen of anderszins mengen of combineren van de eerstegrafische beeldgegevens afkomstig van de computer met de beeldgegevens van het beweegbaar voorwerp. Het ten minste één zichtbaar voorwerp kan een ondoorzichtig of een semi-transparant voorwerp zijn, of kan een zogenoemde geperforeerde bitmap hebben, zoals in meer detail beschreven in de mede in behandeling zijnde “geperforeerde bitmap aanvrage". Het kan begrepen worden door het vergelijken van FIG. 41 en FIG. 43 dat ook de uitvoeringsvorm van FIG. 43 de problemen beschreven in FIG. 1 tot FIG. 3 oplost.
FIG. 44 toont een voorbeeldmatig hardware-blokdiagram van een video-adapter 4330 zoals gebruikt kan worden in het computersysteem 4300 van FIG. 43, maar de uitvinding is daartoe niet beperkt. De video-adapter 4330 van FIG. 44 omvat de volgende componenten: - een video-ingangspoort 4431 voor het ontvangen van eerste grafische beeldgegevens vanuit een computerinrichting; - een video-uitgangspoort 4436 voor het verschaffen van tweede grafische beeldgegevens aan een weergave-inrichting; - een invoerbuffer 4432 voor het opslaan van minstens een gedeelte van de eerste grafische beeldgegevens ontvangen aan de ingangspoort; - een processor 4433 verbonden met het invoerbuffer 4432, en aangepast voor het genereren van tweede grafische beeldgegevens op basis van de eerste grafische beeldgegevens; - een bedrade en/of een draadloze interface 4437, 4438 om te communiceren met een bedrade of een draadloze aanwijsinrichting 4403L; - waarbij de processor 4433 verder aangepast is voor: * het communiceren met de aanwijsinrichting 4403L voor het ontvangen van verplaatsingsinformatie dx, dy gerelateerd aan bewegingen van de aanwijsinrichting 4403L; * het bijwerken van een positie Pos2 op basis van de ontvangen verplaatsingsinformatie dx, dy; * het genereren van een zichtbaar voorwerp 4306L; * het genereren van de tweede grafische beeldgegevens door het overlayen van de eerste grafische beeldgegevens met het gegenereerde zichtbaar voorwerp 4306L op de positie Pos2.
De video-adapter kan verder een framebuffer 4434 omvatten, werkzaam verbonden met de processor 4433, aangepast voor het opslaan van minstens een gedeelte van de eerste grafische beeldgegevens ontvangen van het invoerbuffer 4432, en voor het opslaan van minstens een gedeelte van de tweede grafische gegevens die naar het uitgangsbuffer 4435 moeten verzonden worden. Een framebuffer is echter niet absoluut vereist, bijv. in het geval dat de binnenkomende videostroom en de uitgaande videostroom dezelfde beeldfrequentie en resolutie hebben.
Optioneel kan de video-adapter 4330 verder één of meerdere knoppen 4441 omvatten, bijvoorbeeld om de gebruiker in staat te stellen een kleur en/of vorm en/of grootte van het beweegbaar voorwerp 4306L te kiezen.
Optioneel kan de video-adapter 4330 verder één of meerdere indicatoren omvatten, bijvoorbeeld in de vorm van LEDs 4442 om informatie aan de gebruiker te verschaffen.
De video-adapter 4330 kan een geheugeninrichting (niet getoond) omvatten die het invoerbuffer en het uitgangsbuffer en (indien aanwezig ook) het framebuffer omvat.
Echter, de onderhavige uitvinding is niet beperkt tot deze specifieke uitvoeringsvorm, omdat andere architecturen dezelfde functionaliteit kunnen vervullen. Bijvoorbeeld, indien de kloksnelheid van de binnenkomende videogegevens en de uitgaande videogegevens dezelfde is, dan kan het tweede grafische beeld in real-time gegenereerd worden, en dan kan het framebuffer weggelaten worden, en het genereren van het zichtbaar voorwerp 4306L kan in de praktijk in real-time geïmplementeerd worden, samen met de overlayende of alfamengingsoperatie. De vakman die deskundig is op het gebied van het ontwerpen van videochips, weet hoe deze functionaliteit geïmplementeerd kan worden.
De video-interface-inrichting 4330 kan additionele interfaces hebben, bijvoorbeeld een additionele USB-poort 4439 voor verbinding met bijvoorbeeld een USB-geheugenstick die bijvoorbeeld een bitmap van het beweegbaar voorwerp kan omvatten, en/of verder een textuurbitmap kan omvatten die geoverlayd moet worden met de binnenkomende videogegevens, bijvoorbeeld op een wijze zoals beschreven in de mede in behandeling zijnde "geperforeerde bitmap aanvrage".
In een uitvoeringsvorm heeft de video-interface-inrichting 4330 een geïntegreerde RF- zendontvanger 4438 om te communiceren met een draadloze muis en/of om te communiceren met de personal-computerinrichting, bijvoorbeeld voor het configureren van de video-adapterinrichting 4330, en/of voor het selecteren van de grootte of kleur van het voorwerp, enz. Maar zulk een zendontvanger kan ook extern verschaft worden, bijv. als een dongel verbonden met de connector 4437 of 4439.
In een variant van de video-adapterinrichting getoond in FIG. 43 en FIG. 44, omvat de video- adapter ten minste twee connectoren voor het verbinden met ten minste twee aanwijsinrichtingen, en is de processor 4433 aangepast voor het onderhouden van twee aanwijsposities Pos1, Pos2, en voor het genereren van twee zichtbare voorwerpen, bijvoorbeeld twee lijnen zoals in FIG. 32, of twee vierkanten zoals in FIG. 33 of twee handen zoals in FIG. 34, en voor het positioneren van deze twee voorwerpen op de twee bijgehouden locaties. Met een computersysteem dat zulk een video-adapter omvat, zou een gebruiker bijvoorbeeld twee speciaal daarvoor voorziene aanwijsinrichtingen kunnen gebruiken voor het vergelijken van twee tekstdocumenten (bijv. bij het proeflezen van een vertaling), en een derde aanwijsinrichting kunnen gebruiken, verbonden met de computer, voor het editeren of corrigeren.
De video-adapterinrichting kan eventueel verder voorzien zijn om tamelijk heldere beeldinformatie om te zetten naar tamelijk donkere beeldinformatie en omgekeerd. Daarbij worden binnenkomende pixelwaarden (Rin, Gin, Bin) omgezet naar uitgaande pixelwaarden (Ruit, Guit, Buit). Dit kan bv. als volgt gebeuren: Eerst wordt (Rin, Gin, Bin) omgezet naar YUV-waarden, bv. door middel van de formules: Y = 0.299R + 0.587G + 0.114B; U = 0.492 (B-Y); V = 0.877 (R-Y), of door middel van de formules: Y:= (R+G+G+B) shr 2; U:= (B-Y) div 2; V:= (R-Y), of door middel van formules met licht afwijkende coëfficiënten.
waarna de uitgaande RGB waarden berekend worden aan de hand van één der volgende functies: a) YUV2RGB(255-Y, U, V, Ruit, Guit, Buit), of b) YUV2RGB(255-Y, U div 2, V div 2, Ruit, Guit, Buit), of c) YUV2RGB(255-Y, -U, -V, Ruit,Guit, Buit), of d) YUV2RGB(255-Y, -U div 2, -V div 2, Ruit,Guit,Buit), waarbij de omzetting van YUV-waarden naar RGB-waarden bv. berekend kan worden aan de hand van de volgende formules: R = Y + 1.140V; G = Y - 0.395U - 0.581V; B = Y + 2.032U, of door middel van de formules: R:= Y+V; G:= Y - ((U+V) div 2); B:= Y + (U+U), of door middel van formules met licht afwijkende coëfficiënten.
Formule (a) en (b) hebben als voordeel dat de originele kleur nagenoeg behouden blijft. Dit kan handig zijn om bv. documenten met een bepaalde opmaak waaronder bepaalde kleurconventie (bv. zwart voor claims, blauw voor voordelen, paars voor standaardtekst, gele fluo voor commentaar, blauwe fluo voor vragen) nagenoeg behouden blijft.
Formule (c) en (d) hebben als voordeel dat de niet alleen de intensiteit geïnverteerd wordt, maar ook de kleuren, wat voor sommige toepassingen, (zoals sommige email-programma's) beter leesbaar is.
De formules met floating-point bewerkingen vragen uiteraard meer processing power. De formules met integer-bewerkingen kunnen doorgaans sneller uitgevoerd worden, of op een minder krachtige processor. Testen hebben aangetoond dat het resultaat van deze vier oplossingen esthetisch mooi zijn, en mogelijks oogvermoeidheid kunnen reduceren, althans indien de originele beelden doorgaans een witte achtergrond hebben.
Zoekend of er toch geen software oplossing zou bestaan om het probleem van FIG. 21 op te lossen zonder speciale hardware (dus zonder een speciale muis of een speciale hub), maar zonder het handig verspringen van de native muiscursor op te geven, kwamen de uitvinders op het idee dat nu zal beschreven worden aan hand van FIG. 45 tot FIG. 51.
FIG. 45 toont een computersysteem 4500 met een computerinrichting 4501 dat gezien kan worden als een variant van het computersysteem 1100 van FIG. 11, waaraan een speciale muis-filter-driver 4563 wordt toegevoegd, die voorzien is om: i) bewegingsberichten afkomstig van de eerste en de tweede aanwijsinrichting 4503R, 4503L te detecteren, en bij detectie van zulk bericht, het bewegingsbericht of een overeenkomstig bericht naar het besturingssysteem 4560 te sturen; en ii) om minstens één bericht uit de groep bestaande uit een knop-ingedrukt-bericht, een knop- losgelaten-bericht, een scrol-omhoog-bericht en een scrol-omlaag-bericht afkomstig van de eerste en/of de tweede aanwijsinrichting te detecteren, en bij detectie van zulk bericht, respectievelijk een eerste, tweede, derde of vierde vooraf bepaalde bewegingssequentie naar het besturingssysteem (O/S) te sturen; en waarbij de speciale overlay-applicatie 4551 verder voorzien is om - minstens één of sommige of alle van deze vooraf bepaalde bewegingssequentie (of sequenties van bewegingscommando's) te detecteren, - en na detectie ervan, eerst de native muis-cursor 705 te (her)positioneren naar de positie die overeenkomt met de bijgehouden positie voor de muisinrichting die de betreffende sequentie heeft veroorzaakt, - en kort daarna, liefst onmiddellijk daarna, of nog beter in eenzelfde commando, een scrol- omhoog-commando of een scrol-omlaag-commando of een knop-ingedrukt commando, of een knop- losgelaten commando te versturen vanuit de overlay-applicatie, vanaf de correctie positie, naar het besturingssysteem, dat op zijn beurt het commando zal doorgeven naar de juiste onderliggende applicatie (omdat de overlay-applicatie in doorklik-modus geconfigureerd is, of in hoofdzaak volledig transparant is), meer bepaald naar de applicatie die zich "onder" de linkermuis-positie (Pos2) bevindt wanneer de linkermuis bediend werd (gescrold of geklikt) ofwel de applicatie die zich "onder" de rechtermuispositie bevindt (Pos1) wanneer de rechtermuis bediend werd.
Qua terminologie wordt naar een scrol-omhoog-bericht en een scrol-omlaag-bericht soms eenvoudig verwezen met de term "scrol-bericht", en wordt naar een "scrol-omhoog-commando" en een "scrol-omlaag-commando" soms eenvoudig verwezen als een "scrol-commando", zonder nader te specificeren welk van de twee. Met "scrol-omhoog-bericht" wordt trouwens een scrol-bericht bedoeld met parameter(s) die een opwaartse scrol dienen te veroorzaken. De vakman weet wat hiermee bedoeld wordt.
Hoewel de uitvinding voornamelijk toegelicht wordt voor een muis met één scrolwiel dat naar boven of beneden kan gedraaid worden, en met één drukknop die ingedrukt of losgelaten kan worden, en met vier overeenkomstige bewegingssequenties, kan dit principe uiteraard uitgebreid worden naar een aanwijsinrichting met meerdere scrolwielen (bv. een horizontaal scrolwiel) en/of met meerdere drukknoppen.
MUIS FILTER DRIVER: Eenvoudig uitgedrukt, dient de muis-filter-driver de volgende functies uit te voeren, of een subset hiervan.
a) een bewegingsbericht (ook verplaatsingsbericht genoemd) afkomstig van een muisinrichting detecteren, en wanneer dit gedetecteerd wordt, het bewegingsbericht (of een overeenkomstig bericht of commando) naar een input-buffer van het O/S versturen (eventueel in een ander formaat); b) een knop-ingedrukt-bericht afkomstig van een muisinrichting detecteren, en wanneer dit gedetecteerd wordt, een eerste vooraf bepaalde reeks van bewegingsberichten naar het input-buffer van het O/S versturen; c) een knop-losgelaten-bericht afkomstig van een muisinrichting detecteren, en wanneer dit gedetecteerd wordt, een tweede vooraf bepaalde reeks van bewegingsberichten naar het input-buffer van het O/S versturen in plaats van het knop-losgelaten bericht.
d) een scrol-omhoog-bericht afkomstig van een muisinrichting detecteren, en wanneer dit gedetecteerd wordt, een derde vooraf bepaalde reeks van bewegingsberichten naar het input-buffer van het O/S versturen; e) een scrol-omlaag-bericht afkomstig van een muisinrichting detecteren, en wanneer dit gedetecteerd wordt, een vierde vooraf bepaalde reeks van bewegingsberichten naar het input-buffer van het O/S versturen.
Indien de aanwijsinrichting meerdere knoppen heeft (een typische muis heeft minstens een linkerknop en een rechterknop), dan kunnen verdere vooraf bepaalde bewegingssequenties gebruikt worden, bv. een vijfde sequentie, een zesde sequentie, enz.
Indien de aanwijsinrichting meerdere scrolwielen heeft (bv. een horizontaal scrolwiel en een verticaal scrolwiel), dan kunnen verdere vooraf bepaalde bewegingssequenties gebruikt worden, bv. een zevende sequentie (voor scrol-omhoog), een achtste sequentie (voor scrol-omlaag), enz.
FIG. 51 toont een voorbeeld van een werkwijze die door zulke muis-filter-driver kan uitgevoerd worden.
In stap 5101 wordt een bericht van een muisdriver ontvangen (bv. een bericht afkomstig van een touch-pad of een muis, via een hardware-interface en een hardware abstractie-laag en een muisdriver 4561); In stap 5102 wordt nagegaan of dit bericht een bewegingsbericht is, en zoja, dan wordt in stap 5103 het bewegingsbericht (of een overeenkomstig commando) naar het besturingssysteem verstuurd,
anders wordt in stap 5104 nagegaan of het ontvangen bericht een knop-ingedrukt-bericht was, en zoja, dan wordt in stap 5105 een eerste vooraf bepaalde bewegingssequentie naar het besturingssysteem verstuurd, anders wordt in stap 5106 nagegaan of het ontvangen bericht een knop-losgelaten-bericht was, en zoja, dan wordt in stap 5107 een tweede vooraf bepaalde bewegingssequentie naar het besturingssysteem verstuurd, anders wordt in stap 5108 nagegaan of het ontvangen bericht een scrol-omhoog-bericht was, en zoja, dan wordt in stap 5109 een derde vooraf bepaalde bewegingssequentie naar het besturingssysteem verstuurd, anders wordt in stap 5110 nagegaan of het ontvangen bericht een scrol-omlaag -bericht was, en zoja, dan wordt in stap 5111 een vierde vooraf bepaalde bewegingssequentie naar het besturingssysteem verstuurd.
Stappen 5108 tot 5110 zijn optioneel. Deze zijn bv. niet nodig indien de computerinrichting twee touchpaden zou hebben, of een touchpad en een stylus, maar geen aanwijsinrichting die gescrold kan worden.
Uiteraard kan de volgorde van de stappen gewijzigd worden.
Bij voorkeur geeft de muis-filter-driver dezelfde device-handle mee aan het commando dat naar het besturingssysteem verstuurd wordt. Dit laat de overlay-applicatie toe te bepalen welke aanwijsinrichting aanleiding gaf tot het versturen van het betreffende bewegingsbericht of de reeks van bewegingsberichten (i.e. de bewegingssequentie).
De vakman met ervaring op het gebied van windows device drivers, en meer bepaald met muis-filter-drivers, en die het voordeel heeft van de onderhavige openbaring, kan zulke device-driver op een relatief eenvoudige wijze implementeren.
Zo kan in een eenvoudige implementatie bv. elk "scrol-omhoog" commando resulteren in de derde vooraf bepaalde reeks bewegingswaarden, ongeachte de waarde waarover het scrolwiel geroteerd werd, in welk geval de gebruiker het scrolwiel meermaals zal moeten bedienen om over een groter bereik te scrollen. In een andere implementatie kan de driver bv. meermaals dezelfde reeks na elkaar sturen naar het besturingssysteem. In nog een andere implementatie kunnen meerdere verschillende bewegingssequenties gebruikt worden overeenkomend met verschillende scrolwielwaarden. Deze verschillende reeksen kunnen bv. allen beginnen met eenzelfde deelsequentie, bv. om de herkenning te vergemakkelijken, enz.
Het is een zeer groot voordeel dat deze oplossing werkt met bestaande muis-drivers, en dat de muis-drivers 4561 zelf niet aangepast hoeven te worden.
Bij voorkeur is de muis-filter-driver voorzien om in kernel mode te draaien. OVERLAY-APPLICATIE: Eenvoudig uitgedrukt moet de speciale overlay-applicatie 4551, bv. de berichtenverwerker 4552 ervan, de berichten analyseren om na te gaan of één van de vooraf bepaalde sequenties voorkomt, bv. in de totale berichtenstroom, of in partiële berichtenstromen horende bij verschillende aanwijsinrichtingen. Dit kan bv. geïmplementeerd worden door een state-machine, of door bv. de laatste N bewegingscommando's bij te houden in een buffer (bv. een circulair buffer), of in een tekst- string, of op andere gekende wijzen.
FIG. 48 geeft bij wijze van voorbeeld, een mogelijke implementatie weer, in pseudo-code, van een sterk vereenvoudigd voorbeeld, hoe de berichtenverwerker na de detectie van een scrol-omhoog sequentie, de muiscursor kan (her)positioneren, en een scrol-omhoog-commando kan versturen naar het besturingssysteem O/S. Als voorbeeld kan het (her)positioneren van de native muiscursor in een Microsoft Windows10-omgeving bv. geïmplementeerd worden door gebruik te maken van de functie setCursorPos(), en kan het emuleren van een scrolbeweging of een knop-indrukking of een knop- loslating bv. geïmplementeerd worden door gebruik te maken van de functie MOUSE_EVENT(), met als eerste parameter MOUSEEVENTF WHEEL voor een scrol-commando, of MOUSEEVENTF LEFTDOWN voor een knop-ingedrukt commando, of MOUSEEVENTF_LEFTUP voor een knop-losgelaten commando.
Zoals hoger toelicht kan de waarde voor "dwheel" in sommige implementaties een vaste waarde (bv. op +120 voor een opwaartse scrol). In andere implementaties kan deze waarde gecodeerd zijn in de vooraf bepaalde bewegingssequentie (niet getoond).
FIG. 46 is een variant van FIG. 45, waarbij de twee muisinrichtingen M1, M2 niet rechtstreeks met de computer 4601 verbonden zijn, maar via een klassieke hub 4620. De speciale muis-filter-driver 4663 en de speciale overlay applicatie 4651 kunnen identiek zijn aan die van van FIG. 45.
FIG. 47(a) tot FIG. 47(i) tonen enkele voorbeeldmatige bewegingssequenties, maar uiteraard is de uitvinding hiertoe niet beperkt, en kunnen andere geschikte bewegingssequenties eveneens gebruikt worden.
Bij voorkeur is iedere vooraf bepaalde reeks van bewegingsberichten zo gekozen dat het beginpunt en het eindpunt gelijk blijft, zodanig dat de native muiscursor voor de gebruiker als het ware stil blijft staan na het scrollen van de muis, en/of na het indrukken of loslaten van een drukknop, of na het klikken of dubbelklikken.
De voorbeeldmatige reeksen van FIG. 47(a) tot (f) bestaan elk uit vijf opeenvolgende verplaatsingen, de voorbeeldmatige reeksen van FIG. 47(g) en (h) bestaan elk uit zes opeenvolgendeverplaatsingen, en de voorbeeldmatige reeks van FIG. 47(i) bestaat uit zeven opeenvolgende verplaatsingen, maar reeksen van minder dan vijf opeenvolgende verplaatsingen, of reeksen van meer dan zeven opeenvolgende verplaatsingen kunnen eveneens gebruikt worden.
Bij voorkeur bevat de reeks minimum drie verplaatsingen, en bij voorkeur bevat de reeks maximaal tien verplaatsingen.
In de voorbeeldmatige sequenties van FIG. 47 worden geen individuele nul-verplaatsingen (d.w.z. verplaatsingen met dx=0 en dy=0) gebruikt.
Zoals hoger beschreven is bij voorkeur wel de cumulatieve verplaatsing nul in de X-richting en de Y-richting.
In bepaalde uitvoeringsvormen van de onderhavige uitvinding bevat geen enkele bewegingssequentie een individuele nul-verplaatsing, wat wil zeggen dat voor geen van de individuele stappen van de sequentie zowel de dx-waarde als de dy-waarde gelijk zijn aan nul.
In bepaalde uitvoeringsvormen van de onderhavige uitvinding omvat ten minste één bewegingssequentie een nul-verplaatsing.
In bepaalde uitvoeringsvormen van de onderhavige uitvinding omvatten alle bewegingssequenties een nul-verplaatsing.
In de voorbeelden van FIG. 47 worden slechts relatief kleine verplaatsingswaarden gebruikt (bv. met dx-waarden en dy-waarden in het bereik van -2 tot +2), maar grotere verplaatsingen kunnen eveneens gebruikt worden (bv. met dx-waarden en dy-waarden in het bereik van -5 tot +5 of in het bereik van -7 tot +7, of zelfs in het bereik van -10 tot +10, of zelfs meer). Hoe meer bewegingscommando's iedere reeks bevat, en/of hoe meer heen- en weergaande bewegingen, en/of hoe groter de verplaatsingswaarden, hoe complexer de sequentie, en hoe kleiner de kans dat een dergelijke reeks ooit "toevallig" kan voorkomen als werkelijke muisbewegingen.
Aangezien ongewenst klikken grotere gevolgen kan hebben dan ongewenst scrollen (wat wel vervelend is, maar gemakkelijk ongedaan kan worden door de gebruiker door terug te scrollen), is het aangewezen de sequentie van het knop-ingedrukt bericht en de sequentie van het knop-losgelaten bericht minstens zo complex te maken als de sequentie voor het scrol-omhoog bericht en het scrol- omlaag bericht (bv. meer bewegingsopdrachten en/of groter bereik van dx en dy waarden en/of meer kris-kras bewegingen). In een uitvoeringsvorm wordt voor scrol-bewegingen wel een waarde meegegeven.
Dit kan bv. geïmplementeerd worden door de derde of vierde vooraf bepaalde reeks verplaatsingen (bv. één van de sequenties van FIG. 47(a) tot FIG. 47(h)) uit te breiden met twee extra verplaatsingen, bv. een verplaatsing naar rechts met(dx=scrol-waarde gedeeld door 120; en met dy=0), en een even grote verplaatsing terug naar links.
Op die manier blijft de cumulatieve verplaatsing nog steeds nul in beide richtingen X en Y, en kan de scrol-waarde die de aanwijsinrichting aangaf correct doorgegeven worden aan het besturingssysteem.
Uiteraard zal een verplaatsing naar boven en dezelfde verplaatsing naar beneden eveneens werken.
FIG. 49 toont in meer detail en aan de hand van een voorbeeld hoe de oplossing met de bewegingssequenties werkt. M1 stelt de eerste muisinrichting voor (bv. de rechtermuis). M2 stelt de tweede muisinrichting voor (bv. de linkermuis). "MFD*" stelt de speciale muis-filter-driver 4561, 4661 voor. Net als hierboven, worden veel details weggelaten, en worden enkel de belangrijkste principes van de uitvinding toegelicht.
Op laag niveau zou de communicatie als volgt kunnen verlopen: een aanwijsinrichting wordt verplaatst of bediend (scrolwiel geroteerd of knop ingedrukt of knop losgelaten), de aanwijsinrichting geeft dit door via een interface (bv. via een USB-interface) naar een HAL (hardware-abstractie-laag), de HAL geeft dit door aan een muisdriver, de muisdriver geeft dit door aan de muis-filter-driver, en de muis-filter-driver geeft dit door aan het besturingssysteem (bv. via de Windows-API in het voorbeeld van Windows), en het besturingssysteem geeft dit door naar de betreffende applicatie. Meer bepaald, indien de overlay-applicatie in doorklik-modus geconfigureerd is, en/of indien de native muiscursor zich bevindt boven transparante pixels, dan wordt het bericht doorgegeven naar een onderliggende applicatie.
Verwijzend naar het voorbeeld van FIG. 49, zou dit de volgende functionele werking kunnen hebben: Op tijdstip t1 verstuurt de eerste muisinrichting M1 een bewegingsbericht naar de USB-poort (voorgesteld door "mov1" met verplaatsingswaarden dx en dy), dit bericht komt terecht bij de Muis- Filter-Driver die het bewegingsbericht in principe gewoon doorstuurt naar het besturingssysteem (symbolisch voorgesteld door een wolkje), eventueel na formaatwijziging of dergelijke. Zoals hoger toegelicht (bv. in FIG. 21) komt dit bericht (of een kopie of variant ervan) vroeg of laat ook aan in de berichtenverwerker 4552, 4652 van de overlay-applicatie 4551, 4651, waar het bericht zal geanalyseerd worden om de posities Pos1 en Pos2 te updaten en eventueel de positie van de native muiscursor 705 aan te passen (bv. zoals hoger beschreven in FIG. 18a tot FIG. 18c).
Op tijdstip t2 verstuurt de tweede muisinrichting M2 een scrol-bericht scroll2 naar de computerinrichting 4501, 4601. De speciale Muis-Filter-Driver 4561, 4661 ontvangt dit scroll2-bericht, maar geeft het niet als dusdanig door aan het besturingssysteem, maar stuurt in de plaats een reeks (valse) bewegingscommando's mov2a tot dmov2N naar het besturingssysteem, waarbij N het aantal verplaatsingen is van de vooraf bepaalde reeks (bv. N=5 voor de reeksen van FIG. 47a-47f). Het besturingssysteem stuurt deze bewegingscommando's door naar de betreffende onderliggende applicatie (als verplaatsingen van de native muiscursor). In het voorbeeld is dat de "eerste positie" (want de laatste beweging was die van M1), wat eigenlijk niet de bedoeling was, want de tweede muisinrichting M2 heeft het scrol-bericht gestuurd, niet de eerste muisinrichting M1, en dus zou het scrol-bericht verstuurd moeten worden vanaf de tweede positie. De (mogelijks verkeerde) onderliggende applicatie (op de verkeerde positie Pos1) zal deze verplaatsings-commando's verwerkenals onschuldige muisbewegingen, maar zal geen scrol-opdracht uitvoeren, wat één van de principes is van de onderliggende uitvinding. Een tijdje later (en de exacte vertraging is van geen belang) komen deze boodschappen ook aan bij de overlay-applicatie, die de individuele muisbewegingen in eerste instantie zal interpreteren als echte muisbewegingen van de tweede muisinrichting M2, maar wanneer alle bewegingsberichten verwerkt zijn, zal ze de vooraf bepaalde sequentie herkennen, en zal ze een scrol-commando versturen naar het O/S vanuit de overlay-applicatie, en wel vanaf de tweede onderhouden positie Pos2, zoals toegelicht bij FIG. 48.
Het besturingssysteem zal dit scrol-commando vervolgens doorgeven naar de (juiste) onderliggende applicatie die zich bevindt "onder" positie Pos2, welke applicatie dit commando" zal uitvoeren door effectief te scrollen, wat inderdaad de bedoeling was.
De aandachtige lezer kan vaststellen, als hij FIG. 49 met FIG. 21 vergelijkt, dat het scrol-bericht van muis M2 correct wordt verwerkt als een scrol-opdracht vanaf de positie Pos2, zonder dat de gebruiker zelf eerst de muis M2 moet verplaatsen, teneinde de muiscursor naar Pos2 te laten springen. Testen hebben aangetoond dat zelfs indien de gebruiker ondertussen de rechtermuis M1 aan het bewegen is, zelfs dan komt het scrol-commando (gestuurd door M2) nog steeds terecht bij de juiste onderliggende applicatie die zich bevindt onder Pos2.
Dit kan wellicht als volgt verklaard worden. Stel dat de gebruiker op tijdstip t3 de rechtermuis M1 aan het verplaatsen was. Dit bewegingsbericht wordt door de Muis-Filter-Driver gewoon doorgestuurd naar het O/S, dat het op zijn beurt doorgeeft aan een onderliggende applicatie, namelijk die applicatie waar de native muiscursor zich toevallig op dat moment bevindt. Maar omdat dit slechts een onschuldige muisbeweging is, maakt het niet echt uit naar welke onderliggende applicatie dit bericht verstuurd wordt. Aangezien de native-muispositie op de juiste plaats wordt gezet vlak voor het versturen van het effectief scrol-commando, maakt het eigenlijk niet uit waar de native muiscursor staat op het moment dat de scrol-sequentie aankomt bij de overlay-applicatie.
FIG. 49 toont dus schematisch hoe een scrol-bericht afkomstig van de muis M2 uiteindelijk wordt omgezet naar een scrol-commando aangeroepen vanaf de tweede muispositie Pos2 vanuit de overlay-applicatie.
Op een gelijkaardige wijze zal een "knop-ingedrukt"-bericht en een "knop-losgelaten"-bericht afkomstig van de eerste of de tweede muisinrichting M1, M2 door de Muis-Filter-Driver worden omgezet in “onschuldige muisbewegingen" die door het besturingssysteem in eerste instantie mogelijks naar de "verkeerde" onderliggende applicatie worden verstuurd, (zonder daar schade aan te richten), maar uiteindelijk zal resulteren in een knop-ingedrukt of knop-losgelaten-commando dat vanaf de juiste positie vanuit de overlay-applicatie zal aangeroepen worden, waardoor het commando alsnog bij de juiste onderliggende applicatie terecht komt.
Hierboven worden de basisprincipes uitgelegd om te scrollen en/of te klikken op knoppen van twee muizen M1, M2 aangesloten op eenzelfde computer. Op een vergelijkbare manier als met de speciale hub (beschreven in FIG. 26c en FIG. 26d) laat het mechanisme met de "valse bewegingssequenties" ook toe om correct om te gaan met bepaalde "verboden combinaties", zoals bv. het tegelijk indrukken van een knop van twee verschillende muisinrichtingen, of het tegelijk slepen met één muis en scrollen met de andere, of het tegelijk indrukken van de linkerknop en de rechterknop van eenzelfde muisinrichting. In voorkeursuitvoeringsvormen van de onderhavige uitvinding wordt de berichten- verwerkingsmodule 4552 en 4652 daartoe verder uitgebreid om minstens voor de gekozen linker- en rechter-muisinrichting bij te houden of er reeds een knop is ingedrukt, en indien dat het geval is, geen bijkomend "knop-ingedrukt" commando of scrol-commando te versturen naar het besturingssysteem totdat de eerder ingedrukte knop is losgelaten. Op die manier kan de speciale overlay-applicatie en/of de speciale Muis-Filter-Driver ervoor zorgen dat de native muiscursor slechts op één locatie kan ingedrukt en/of gesleept en weer losgelaten worden, zelfs indien de gebruiker tegelijk fysiek een knop zou indrukken op elk van twee verschillende muisinrichtingen. Een bijkomend voordeel om dit in de overlay-applicatie op te vangen is dat de overlay-applicatie eventueel ook een visuele tekstboodschap of bitmap kan tonen aan de gebruiker om aan te geven dat zulke actie verboden is.
FIG. 50 toont een flow-diagram van een computer-geïmplementeerde werkwijze 5000 die uitgevoerd kan worden door de speciale overlay-applicatie 4551, 4651 wanneer die uitgevoerd wordt op de computerinrichting 4501, 4601. Aan de computerinrichting is een eerste aanwijsinrichting M1, 4503R en een tweede aanwijsinrichting M2, 4503L aangesloten. De computerinrichting 4501, 4601 omvat verder een besturingssysteem 4560, 4660 met een grafische gebruikersinterface GUI. Het besturingssysteem met GUI verschaft een native muiscursor.
De computerinrichting 4501, 4601 omvat verder een Muis-Filter-Driver die geconfigureerd is : - om bewegingsberichten afkomstig van de eerste en de tweede aanwijsinrichting 4503R , 4503L te detecteren, en bij detectie van zulk bericht, het bewegingsbericht of een overeenkomstig bericht (bv. een bericht met dezelfde betekenis maar in een ander formaat) naar het besturingssysteem te sturen; - om minstens één bericht uit de groep bestaande uit een knop-ingedrukt-bericht, een knop- losgelaten-bericht, een scrol-omhoog-bericht en een scrol-omlaag-bericht afkomstig van de eerste en/of de tweede aanwijsinrichting 4503R, 4503L te detecteren, en bij detectie van zulk bericht, respectievelijk een eerste, tweede, derde of vierde vooraf bepaalde bewegingssequentie naar het besturingssysteem 4560, 4660 te sturen; De computer-geïmplementeerde werkwijze omvat de volgende stappen:
a) het verschaffen 5001 van een grafisch overlayvenster, optioneel met één zichtbaar voorwerp, of met twee zichtbare voorwerpen, of met minstens drie zichtbare voorwerpen.
b) het toelaten 5002 dat het besturingssysteem O/S met de grafische gebruikersinterface GUI de native muiscursor 705 verschaft als een zichtbaar voorwerp 705; c) het configureren 5003 van het grafisch overlayvenster 584 in doorklikmodus, of het configureren van het grafisch overlayvenster als een in hoofdzaak schermvullend venster dat hoofdzakelijk of volledig bestaat uit volledig transparante pixels afgezien van de optionele beweegbare voorwerpen; d) het configureren 5004 van het besturingssysteem 4560; 4660 om ruwe inputberichten gerelateerd aan de eerste en tweede aanwijsinrichting 703R, 703L te verzenden, en het verschaffen van een berichtenverwerker 4552; 4652 om deze ruwe inputberichten te verwerken; e) het aanpassen 5005 van een eerste positie of aanwijspositie Pos1 in overeenstemming met bewegingen van de eerste aanwijsinrichting 703R, en het aanpassen van een tweede positie of aanwijspositie Pos2 in overeenstemming met bewegingen van de tweede aanwijsinrichting 703L, f) het aanpassen van een positie van de native muiscursor 705 in overeenstemming met de eerste of de tweede bijgehouden of onderhouden positie Pos1, Pos2 afhankelijk van welke aanwijsinrichting het meest recent bewogen en/of bediend werd; g) het detecteren 5007 of de eerste of de tweede of de derde of de vierde vooraf bepaalde bewegingssequentie voorkomt in de ruwe berichten, en wanneer zulke sequentie gedetecteerd wordt, - het bepalen van welke aanwijsinrichting 4503R, 4503L de sequentie veroorzaakt heeft; en - het verplaatsen van de native muiscursor 705 naar de eerste of tweede locatie Pos1, Pos2 afhankelijk van welke aanwijsinrichting de sequentie veroorzaakt heeft; en - het respectievelijk versturen van een knop-ingedrukt-commando of een knop-losgelaten- commando, of een scrol-omhoog-commando of een scrol-omlaag-commando vanuit de overlay- applicatie 4551; 4651 naar het besturingssysteem 4560; 4660.
In een uitvoeringsvorm wordt in stap a) een overlayvenster verschaft dat minstens één eerste zichtbaar voorwerp omvat (bv. in de vorm van een pijl 706R), en omvat stap f) verder het aanpassen 5006 van een positie van dat eerste zichtbaar voorwerp 706R op de andere positie (Pos2; Pos1) dan de positie ingenomen door de native muiscursor.
In deze uitvoeringsvorm kan de gebruiker twee beweegbare voorwerpen zien: de native muiscursor, en een ander voorwerp, bv. een bitmap met een zwarte pijl zoals getoond in FIG. 8 of FIG. 9 of FIG. 10.
In een andere uitvoeringsvorm wordt in stap a) een grafisch overlayvenster verschaft dat minstens een eerste zichtbaar voorwerp (bv in de vorm van een bitmap met een pijl of een hand) en een tweede zichtbaar voorwerp (bv. eveneens in de vorm van een bitmap met een pijl of een hand) omvat; en omvat stap f) verder het aanpassen van een positie van dat eerste zichtbaar voorwerp op basis van de eerste bijgehouden of onderhouden positie Pos1, en het aanpassen van een positie van het tweede zichtbaar voorwerp 706L op basis van de tweede bijgehouden of onderhouden positie Pos2. Preliminaire testen hebben aangetoond dat het mechanisme met de bewegingssequenties onder meer toelaat om: - beide muizen tegelijk te verplaatsen, - één muis stationair te houden en de andere muis te scrollen {ongeacht welke muis het laatste verplaatst of bediend werd), - één muis stationair te houden en de andere muis te klikken (ongeacht welke muis het laatste verplaatst of bediend werd), - één muis te bewegen en de andere muis te klikken, - beide muizen stationair te houden, en beide muizen "tegelijk" (althans tegelijk voor de gebruiker) te scrollen, - beide muizen te bewegen, en beide muizen "tegelijk" (althans tegelijk voor de gebruiker)te scrollen.
Dit is wellicht niet het gedrag dat een typische game-gebruiker wenst, maar is ruim voldoende voor professionele computergebruikers die twee muizen wensen te gebruiken.
Tenslotte, hoewel individuele kenmerken zijn uitgelegd in verschillende tekeningen en in verschillende uitvoeringsvormen van de onderhavige uitvinding, is het mogelijk dat kenmerken van verschillende uitvoeringsvormen gecombineerd worden, zoals voor de vakman logisch zou zijn bij het lezen van dit document.
Hoewel de onderhavige uitvinding wordt uitgelegd voor systemen die slechts twee aanwijsinrichtingen hebben, zal de onderhavige uitvinding ook werken met meer dan twee aanwijsinrichtingen verbonden met dezelfde computer, bijvoorbeeld met drie aanwijsinrichtingen die opgesteld zijn om twee of drie zichtbare voorwerpen te bewegen, bijkomend aan de native muiscursor.

Claims (17)

Conclusies:
1. Een computer-geïmplementeerde werkwijze (5000) voor het verschaffen van een overlay- applicatie (4551) voor een computerinrichting (4501) waaraan een eerste aanwijsinrichting (4503R) en een tweede aanwijsinrichting (4503L) aangesloten is, en die een besturingssysteem (4560) met een grafische gebruikersinterface uitvoert, waarbij het besturingssysteem een native muiscursor (705) verschaft, en waarbij de computerinrichting (4501) verder een muis-filter-driver (4563) omvat die geconfigureerd is : - om bewegingsberichten afkomstig van de eerste en de tweede aanwijsinrichting (4503R, 4503L) te detecteren, en bij detectie van zulk bericht, het bewegingsbericht of een overeenkomstig bericht naar het besturingssysteem (4560) te sturen; en - om minstens één bericht gekozen uit de groep bestaande uit een knop-ingedrukt-bericht, een knop-losgelaten-bericht, een scrol-omhoog-bericht en een scrol-omlaag-bericht afkomstig van de eerste en/of de tweede aanwijsinrichting (4503R, 4503L) te detecteren, en bij detectie van zulk bericht, respectievelijk een eerste, tweede, derde of vierde vooraf bepaalde bewegingssequentie naar het besturingssysteem (4560) te sturen; en waarbij de werkwijze de stappen omvat van: a) het verschaffen (5001) van een grafisch overlayvenster; b) het toelaten (5002) dat het besturingssysteem (4560) met de grafische gebruikersinterface de native muiscursor (705) verschaft als een zichtbaar voorwerp (705); c) het configureren (5003) van het grafisch overlayvenster (584) in doorklikmodus, of het configureren van het grafisch overlayvenster als een in hoofdzaak schermvullend venster dat hoofdzakelijk bestaat uit volledig transparante pixels; d) het configureren (5004) van het besturingssysteem (4560; 4660) om ruwe inputberichten gerelateerd aan de eerste en tweede aanwijsinrichting (4503R, 4503L) te verzenden naar de overlay-applicatie, en het verschaffen van een berichtenverwerker (4552; 4652) om deze ruwe inputberichten te verwerken; e) het bijhouden en/of aanpassen (5005) van een eerste positie (Pos1) in overeenstemming met bewegingen van de eerste aanwijsinrichting (4503R), en het aanpassen van een tweede positie (Pos2) in overeenstemming met bewegingen van de tweede aanwijsinrichting (4503L); f) het aanpassen (5006) van een positie van de native muiscursor (705) in overeenstemming met bewegingen van de eerste of de tweede aanwijsinrichting (4503R, 4503L) die het meest recent bewogen en/of bediend werd; g) het detecteren (5007) of de ruwe berichten de eerste of de tweede of de derde of de vierde vooraf bepaalde bewegingssequentie omvat, en indien dat het geval is,
- het bepalen welke aanwijsinrichting (4503R, 4503L) deze sequentie veroorzaakt heeft; en - het verplaatsen van de native muiscursor (705) naar de bijgehouden of aangepaste positie (Pos1, Pos2) geassocieerd met de aanwijsinrichting (4503R, 4503L) die de sequentie veroorzaakt heeft; en - het versturen van respectievelijk een knop-ingedrukt-commando, een knop- losgelaten commando, een scrol-omhoog-commando of een scrol-omlaag- commando vanuit de overlay-applicatie (4551; 4651) naar het besturingssysteem (4560; 4660).
2. Een computer-geïmplementeerde werkwijze volgens conclusie 1, waarbij in stap a) een grafisch overlayvenster wordt verschaft dat minstens een eerste zichtbaar voorwerp (706R; 806; 906; 1006) omvat; en waarbij stap f) verder het aanpassen van een positie van het eerste zichtbaar voorwerp omvat op de andere positie (Pos2; Pos1) uit de eerste en tweede positie (Pos1, Pos2) dan de positie ingenomen door de native muiscursor.
3. Een computer-geïmplementeerde werkwijze volgens conclusie 1, waarbij in stap a) een grafisch overlayvenster wordt verschaft dat minstens een eerste zichtbaar voorwerp (706R; 806; 906; 1006) en een tweede zichtbaar voorwerp (706L) omvat; en waarbij stap f) verder het aanpassen omvat van een positie van het eerste zichtbaar voorwerp (706R) op basis van de eerste positie (Pos1), en het aanpassen van een positie van het tweede zichtbaar voorwerp (706L) op basis van de tweede positie (Pos2).
4. Een computer-geïmplementeerde werkwijze volgens één der voorgaande conclusies, waarbij de eerste en tweede en derde en vierde bewegingssequentie een vooraf bepaalde reeks van drie tot tien verplaatsingen is.
5. Een computer-geïmplementeerde werkwijze volgens één der voorgaande conclusies, waarbij een cumulatieve verplaatsing van de eerste en tweede en derde en vierde vooraf bepaalde bewegingssequentie een nul-verplaatsing is.
6. Een computer-geïmplementeerde werkwijze volgens één der voorgaande conclusies, waarbij stap e) het aanpassen omvat van de eerste positie (Pos1) en van de tweede positie (Pos2) op basis van de ruwe inputberichten.
7. Een computer-geïmplementeerde werkwijze volgens conclusie 6, waarbij stap e) omvat: * het ontvangen (575; 775) van een inputbericht; * indien het ontvangen inputbericht gerelateerd is aan de eerste aanwijsinrichting (703R), het bijwerken van de eerste positie (Pos1); en indien het ontvangen inputbericht gerelateerd is aan de tweede aanwijsinrichting (703L), het bijwerken van de tweede positie (Pos2); en waarbij stap g) omvat: * het detecteren of de eerste of tweede of derde of vierde vooraf bepaalde bewegingssequentie voorkomt in de partiële stroom van ontvangen inputberichten afkomstig van elke aanwijsinrichting afzonderlijk.
8. Een computer-geïmplementeerde werkwijze volgens één der voorgaande conclusies, waarbij stap e) omvat: het ontvangen van een inputbericht, en indien het inputbericht een bewegingsbericht is, het verkrijgen van verplaatsingswaardes (dx, dy) gerelateerd aan het bewegingsbericht.
9. Een computer-geïmplementeerde werkwijze volgens één der voorgaande conclusies, waarbij het grafisch overlayvenster geconfigureerd is als een in hoofdzaak schermvullend venster dat voor minstens 90% bestaat uit volledig transparante pixels.
10. Een computer-geïmplementeerde werkwijze volgens één der voorgaande conclusies, waarbij het grafisch overlayvenster (584) geconfigureerd wordt als een semi-transparant venster dat een alfamengingwaarde (a) heeft in het bereik van 1% tot 99%.
11. Een computer-geïmplementeerde werkwijze volgens één der voorgaande conclusies, waarbij de eerste en tweede aanwijsinrichting (703R, 703L) HID-compatibele inrichtingen zijn.
12. Een computer-geïmplementeerde werkwijze volgens één der voorgaande conclusies, waarbij het besturingssysteem Windows 7 of Windows 10 is of een latere Windows versie van Microsoft Corporation, of waarbij het besturingssysteem mac OS Sierra is of mac OS High Sierra of een latere mac OS versie van Apple inc, of waarbij het besturingssysteem Linux is.
13. Een computerprogrammaproduct dat uitvoerbare instructies bevat die de werkwijze volgens één der voorgaande conclusies uitvoert, wanneer ze worden uitgevoerd op een computerinrichting (4501; 4601) met de kenmerken zoals beschreven in conclusie 1 tot 12.
14. Een muis-filter-driver-product voor gebruik in een computerinrichting die een besturings- systeem met een grafische gebruikersinterface omvat voorzien om een native muiscursor te verschaffen; en waarbij het muis-filter-driver-product uitvoerbare instructies bevat, voorzien - om bewegingsberichten afkomstig van de eerste en de tweede aanwijsinrichting (703R, 703L) te detecteren, en bij detectie van zulk bericht, het bewegingsbericht of een overeenkomstig naar het besturingssysteem (4560; 4660) te sturen; en - om minstens één bericht gekozen uit de groep bestaande uit een knop-ingedrukt-bericht, een knop-losgelaten-bericht, een scrol-omhoog-bericht en een scrol-omlaag-bericht afkomstig van de eerste en/of de tweede aanwijsinrichting (703R, 703L) te detecteren, en bij detectie van zulk bericht, respectievelijk een eerste, tweede, derde of vierde vooraf bepaalde bewegingssequentie naar het besturingssysteem te sturen.
15. Een computerinrichting (4501; 4601), omvattende: - een besturingssysteem (4560; 4660) met een grafische gebruikersinterface die een native muiscursor (705) verschaft; en - een computerprogrammaproduct volgens conclusie 13 en/of een muis-filter-driver-product volgens conclusie 14.
16. Een computersysteem (4500; 4600) omvattende: - een computerinrichting (4501; 4601) volgens conclusie 15; - een eerste en een tweede aanwijsinrichting (706R, 706L).
17. Een computersysteem (4500; 4600) volgens conclusie 16, waarbij de eerste aanwijsinrichting (4503R) en de tweede aanwijsinrichting (4503L) USB HID- klasse apparaten zijn of compatibel zijn met USB HID klasse apparaten; en waarbij de computerinrichting ten minste een eerste USB-poort omvat voor verbinding met de eerste aanwijsinrichting (4503R), en een tweede USB-poort voor verbinding met de tweede aanwijsinrichting (4503L).
BE20195035A 2019-01-20 2019-01-20 Werkwijze en inrichting en systeem voor het verschaffen van dubbele muis ondersteuning BE1026977B1 (nl)

Priority Applications (4)

Application Number Priority Date Filing Date Title
BE20195035A BE1026977B1 (nl) 2019-01-20 2019-01-20 Werkwijze en inrichting en systeem voor het verschaffen van dubbele muis ondersteuning
BE20195220A BE1027027B1 (nl) 2019-01-20 2019-04-03 Werkwijze en inrichting en systeem met dubbele muis ondersteuning
BE20195219A BE1026980B1 (nl) 2019-01-20 2019-04-03 Werkwijze en inrichting en systeem met dubbele muis ondersteuning
US16/374,305 US11016588B2 (en) 2019-01-20 2019-04-03 Method and device and system with dual mouse support

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
BE20195035A BE1026977B1 (nl) 2019-01-20 2019-01-20 Werkwijze en inrichting en systeem voor het verschaffen van dubbele muis ondersteuning

Publications (2)

Publication Number Publication Date
BE1026977A1 BE1026977A1 (nl) 2020-08-17
BE1026977B1 true BE1026977B1 (nl) 2020-08-24

Family

ID=65324124

Family Applications (3)

Application Number Title Priority Date Filing Date
BE20195035A BE1026977B1 (nl) 2019-01-20 2019-01-20 Werkwijze en inrichting en systeem voor het verschaffen van dubbele muis ondersteuning
BE20195219A BE1026980B1 (nl) 2019-01-20 2019-04-03 Werkwijze en inrichting en systeem met dubbele muis ondersteuning
BE20195220A BE1027027B1 (nl) 2019-01-20 2019-04-03 Werkwijze en inrichting en systeem met dubbele muis ondersteuning

Family Applications After (2)

Application Number Title Priority Date Filing Date
BE20195219A BE1026980B1 (nl) 2019-01-20 2019-04-03 Werkwijze en inrichting en systeem met dubbele muis ondersteuning
BE20195220A BE1027027B1 (nl) 2019-01-20 2019-04-03 Werkwijze en inrichting en systeem met dubbele muis ondersteuning

Country Status (2)

Country Link
US (1) US11016588B2 (nl)
BE (3) BE1026977B1 (nl)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866989B1 (en) * 2018-04-06 2020-12-15 Architecture Technology Corporation Real time recommender modeling system, methods of construction, and methods of use
US11714539B1 (en) * 2022-10-28 2023-08-01 Honeywell International Inc. Cursor management methods and systems
US11960668B1 (en) 2022-11-10 2024-04-16 Honeywell International Inc. Cursor management methods and systems for recovery from incomplete interactions
US11954325B1 (en) 2023-04-05 2024-04-09 Honeywell International Inc. Methods and systems for assigning text entry components to cursors

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0635780A1 (en) * 1993-07-21 1995-01-25 Xerox Corporation User interface having clicktrough tools that can be composed with other tools

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2076466C (en) 1991-10-21 2002-01-15 Alan R. Tannenbaum Method for buffering high bandwidth data from an input device
US5666499A (en) * 1995-08-04 1997-09-09 Silicon Graphics, Inc. Clickaround tool-based graphical interface with two cursors
US5805163A (en) * 1996-04-22 1998-09-08 Ncr Corporation Darkened transparent window overlapping an opaque window
US6509889B2 (en) 1998-12-03 2003-01-21 International Business Machines Corporation Method and apparatus for enabling the adaptation of the input parameters for a computer system pointing device
US7802265B2 (en) * 2004-03-15 2010-09-21 Imi Innovations, Inc. Computer interface system using multiple independent graphical data input devices
US8793620B2 (en) * 2011-04-21 2014-07-29 Sony Computer Entertainment Inc. Gaze-assisted computer interface
US9483155B2 (en) * 2012-09-13 2016-11-01 Microsoft Technology Licensing, Llc Pointer unification
US10168775B2 (en) * 2012-10-10 2019-01-01 Innovative Devices Inc. Wearable motion sensing computing interface
TW201435720A (zh) * 2013-03-01 2014-09-16 Hon Hai Prec Ind Co Ltd 滑鼠遊標控制方法
TWI489324B (zh) * 2013-07-05 2015-06-21 Pixart Imaging Inc 手持式指向裝置的游標定位方法
JP5939581B2 (ja) * 2013-07-08 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 表示画面上に表示された移動対象であるオブジェクトを移動する方法、並びに、その電子装置及び電子装置プログラム
WO2019063496A1 (en) * 2017-09-29 2019-04-04 Inventrans Bvba METHOD, DEVICE AND SYSTEM FOR PROVIDING DUAL MOUSE SUPPORT

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0635780A1 (en) * 1993-07-21 1995-01-25 Xerox Corporation User interface having clicktrough tools that can be composed with other tools

Also Published As

Publication number Publication date
US11016588B2 (en) 2021-05-25
US20200233501A1 (en) 2020-07-23
BE1026980B1 (nl) 2020-08-24
BE1027027B1 (nl) 2020-09-02
BE1027027A1 (nl) 2020-08-28
BE1026980A1 (nl) 2020-08-17
BE1026977A1 (nl) 2020-08-17

Similar Documents

Publication Publication Date Title
BE1026977B1 (nl) Werkwijze en inrichting en systeem voor het verschaffen van dubbele muis ondersteuning
US9465457B2 (en) Multi-touch interface gestures for keyboard and/or mouse inputs
US7831922B2 (en) Write anywhere tool
US9389777B2 (en) Gestures for manipulating tables, charts, and graphs
EP1285330B1 (en) Zeroclick
JP3431795B2 (ja) ウィンドウのサイズ変更方法及びコンピュータ・システム
US20130132885A1 (en) Systems and methods for using touch input to move objects to an external display and interact with objects on an external display
US20120092253A1 (en) Computer Input and Output Peripheral Device
WO2019063496A1 (en) METHOD, DEVICE AND SYSTEM FOR PROVIDING DUAL MOUSE SUPPORT
EP3683659A1 (en) Method and device and system with dual mouse support
NL2022859B1 (nl) Werkwijze en inrichting en systeem met dubbele muis ondersteuning
NL2022858B1 (nl) Werkwijze en inrichting en systeem met dubbele muis ondersteuning
NL2021697B1 (nl) Werkwijze en inrichting en systeem voor het verschaffen van dubbele muis ondersteuning
EP3276474A1 (en) View port array of graphic user interface components
US20200233504A1 (en) Method and device and system for providing dual mouse support
KR101529886B1 (ko) 제스처 기반 3d 그래픽 사용자 인터페이스 제공방법
US20210405850A1 (en) Method, computing device and program code for facilitating information display on a display
Baudisch et al. Drag-and-Pop: Accelerating Drag-and-Drop on Large Screens
Yang Blurring the boundary between direct & indirect mixed mode input environments

Legal Events

Date Code Title Description
FG Patent granted

Effective date: 20200824

MM Lapsed because of non-payment of the annual fee

Effective date: 20230131