Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.sys.acorn.programmer > #223

Re: How to put a caret in a window

Date 2011-04-27 19:58 +0100
From Matthew Phillips <mnews@sinenomine.freeserve.co.uk>
Newsgroups comp.sys.acorn.programmer
Subject Re: How to put a caret in a window
Message-ID <31d0a1ca51.Matthew@sinenomine.freeserve.co.uk> (permalink)
References (1 earlier) <3f7697c951.Matthew@sinenomine.freeserve.co.uk> <51c9a7e1b5Paul@sprie.nl> <702330ca51.Matthew@sinenomine.freeserve.co.uk> <8a105eca51.Matthew@sinenomine.freeserve.co.uk> <51ca78d47ePaul@sprie.nl>

Show all headers | View raw


In message <51ca78d47ePaul@sprie.nl>
 on 27 Apr 2011 Paul Sprangers  wrote:

> Let me show what I have now:
> 
> DEF PROCkeypress(wh%,k%)
>  [...]  Here, valid keypresses are added to the string 'string$'
> SYS
> "Font_ScanString",plain%,string$,(1<<7)+(1<<17),&3FFFFFFF,&3FFFFFFF,,,LEN(string$)
> TO ,,,cx%,,,,len%
> SYS "Wimp_SetCaretPosition",window%,-1,cx%+10,-44,40,-1
> PROCredraw(window%)
> ENDPROC
> 
> As you can see, I've set bit 7 and bit 17 in R2 of the ScanString call.
> I've also followed your advice to use large integers in R3 and R4.
> Moreover, I've also taken the length of the string in account, although I
> don't know what to do with it. Anyway, whatever integer or value I try, the
> resulting cx% is always 0.

Don't set bit 17.  That should fix it.  You'll need to set bit 8 in order to
make sure the right font is measured, but don't set bit 17.

I think that bit 17 should only be set if you have a real x,y of a mouse
click in your R3,4 and want to know the caret position and index into the
string that is appropriate for placing the caret given the click at that x,y
position.

That should do it!

Font_ScanString, in my experience, is one of the nastiest SWIs going because
it has so many different functions and it's so easy to get your parameters
wrong.  It pays to write a set of functions to do the real operations you
want to do (place a caret at a set position into the string, return the width
of the string, find a split point, etc.) and then stick to them!

-- 
Matthew Phillips
Durham

Back to comp.sys.acorn.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

How to put a caret in a window Paul Sprangers <Paul@sprie.nl> - 2011-04-25 17:34 +0200
  Re: How to put a caret in a window Matthew Phillips <mnews@sinenomine.freeserve.co.uk> - 2011-04-25 19:29 +0100
    Re: How to put a caret in a window Paul Sprangers <Paul@sprie.nl> - 2011-04-25 23:28 +0200
      Re: How to put a caret in a window Matthew Phillips <mnews@sinenomine.freeserve.co.uk> - 2011-04-26 23:17 +0100
        Re: How to put a caret in a window Matthew Phillips <mnews@sinenomine.freeserve.co.uk> - 2011-04-27 07:38 +0100
          Re: How to put a caret in a window Paul Sprangers <Paul@sprie.nl> - 2011-04-27 13:31 +0200
            Re: How to put a caret in a window Jeremy Nicoll - news posts <jn.nntp.scrap007@wingsandbeaks.org.uk> - 2011-04-27 13:14 +0100
              Re: How to put a caret in a window Paul Sprangers <Paul@sprie.nl> - 2011-04-27 17:15 +0200
            Re: How to put a caret in a window pdm <pd.miller2@tiscali.co.uk> - 2011-04-27 08:59 -0700
              Re: How to put a caret in a window Paul Sprangers <Paul@sprie.nl> - 2011-04-27 21:50 +0200
              Re: How to put a caret in a window pdm <pd.miller2@tiscali.co.uk> - 2011-04-27 23:19 -0700
            Re: How to put a caret in a window Matthew Phillips <mnews@sinenomine.freeserve.co.uk> - 2011-04-27 19:58 +0100
              Re: How to put a caret in a window Paul Sprangers <Paul@sprie.nl> - 2011-04-27 22:15 +0200
                Re: How to put a caret in a window Martin Wuerthner <spamtrap@mw-software.com> - 2011-04-30 17:12 +0200
                Re: How to put a caret in a window Rick Murray <heyrickmail-usenet@yahoo.co.uk> - 2011-04-30 19:12 +0200
                Re: How to put a caret in a window Paul Sprangers <Paul@sprie.nl> - 2011-05-02 09:37 +0200
                Re: How to put a caret in a window Alan Wrigley <spamhater@keepyourfilthyspamtoyourself.co.uk> - 2011-05-02 08:49 +0100
                Re: How to put a caret in a window Paul Sprangers <Paul@sprie.nl> - 2011-05-02 09:59 +0200
                Re: How to put a caret in a window Alan Adams <alan@adamshome.org.uk> - 2011-05-02 21:27 +0100
                Re: How to put a caret in a window Steve Fryatt <news@stevefryatt.org.uk> - 2011-05-02 09:08 +0100
                Re: How to put a caret in a window Paul Sprangers <Paul@sprie.nl> - 2011-04-30 12:54 +0200
                Re: How to put a caret in a window Rick Murray <heyrickmail-usenet@yahoo.co.uk> - 2011-04-30 13:52 +0200
                Re: How to put a caret in a window cferris@freeRemoveuk.com.invalid - 2011-04-30 13:34 +0100
                Re: How to put a caret in a window Rick Murray <heyrickmail-usenet@yahoo.co.uk> - 2011-04-30 15:39 +0200
                Re: How to put a caret in a window Matthew Phillips <mnews@sinenomine.freeserve.co.uk> - 2011-04-28 08:20 +0100
                Re: How to put a caret in a window pdm <pd.miller2@tiscali.co.uk> - 2011-04-28 02:16 -0700
                Re: How to put a caret in a window Paul Sprangers <Paul@sprie.nl> - 2011-04-29 17:49 +0200
                Re: How to put a caret in a window Rick Murray <heyrickmail-usenet@yahoo.co.uk> - 2011-04-30 00:05 +0200

csiph-web