row% = 10: col% = 34: bw% = 13: bh% = 2
button_text$ = "Whole Word"
IF my%
= row%
+ bh%
- 1 AND mx%
= col%
+ bw%
- 1 OR my%
= row%
AND mx%
= col%
THEN
lbdown% = 1 ' Left mouse button down
IF lbdown%
THEN lbdown%
= 0 ' Left mouse button released
row% = my% - rdrag%
col% = mx% - cdrag%
oldrow% = row%: oldcol% = col%
IF bw%
+ (oldmx%
- mx%
) > 2 THEN bw% = bw% + (oldmx% - mx%) ' Expand or shrink width.
col% = col% - (oldmx% - mx%)
IF oldmy%
< row%
+ bh%
- 1 THEN IF bh%
- (my%
- oldmy%
) > 1 THEN row% = row% + (my% - oldmy%) ' Expand or Shrink height upwards.
bh% = bh% - (my% - oldmy%)
IF bh%
+ (my%
- oldmy%
) > 1 THEN bh% = bh% + (my% - oldmy%) ' Expand or Shrink height dowmwards.
IF bw%
+ (mx%
- oldmx%
) > 2 THEN bw% = bw% + (mx% - oldmx%) ' Expand or shrink width.
IF oldmy%
>= row%
+ bh%
- 1 THEN IF bh%
+ (my%
- oldmy%
) > 1 THEN bh% = bh% + (my% - oldmy%) ' Expand or shrink height downwards.
IF bh%
- (my%
- oldmy%
) > 1 THEN row% = row% + (my% - oldmy%) ' Expand or shrink height upwards.
bh% = bh% - (my% - oldmy%)
drag% = 0
IF my%
>= row%
AND my%
<= row%
+ bh%
AND mx%
>= col%
AND mx%
<= col%
+ bw%
THEN button_hover% = -1
button_hover% = 0
IF lbdown%
= 1 AND button_hover%
AND button_activated%
= 0 THEN button_activated% = -1
button_activated% = 0
IF mx%
= col%
AND my%
= row%
OR mx%
= col%
AND my%
= row%
+ bh%
- 1 THEN drag% = 1 ' Left upper or lower corner.
ELSEIF mx%
= col%
+ bw%
- 1 AND my%
= row%
OR mx%
= col%
+ bw%
- 1 AND my%
= row%
+ bh%
- 1 THEN drag% = 2 ' Right upper or lower corner.
drag% = -1 ' Move.
cdrag% = oldmx% - col%
rdrag% = oldmy% - row%
oldmx% = mx%: oldmy% = my%
formatbutton:
Gdown
= Button_HW
(bw%
* 8, bh%
* 16, 170, 170, 170, -9, -7, -1, MID$(button_text$
, 1, bw%
- 2))Ghover
= Button_HW
(bw%
* 8, bh%
* 16, 200, 200, 200, -8, -7, -1, MID$(button_text$
, 1, bw%
- 2))Gdrag
= Button_HW
(bw%
* 8, bh%
* 16, 200, 200, 200, -1, -1, -1, MID$(button_text$
, 1, bw%
- 2))
bdisplay:
_PUTIMAGE ((col%
- 1) * 8, (row%
- 1) * 16), Gdown
bhover:
_PUTIMAGE ((col%
- 1) * 8, (row%
- 1) * 16), Ghover
dhover:
_PUTIMAGE ((col%
- 1) * 8, (row%
- 1) * 16), Gdrag
FUNCTION Button_HW
(wide
, tall
, r
, g
, b
, rc
, gc
, bc
, caption$
) ' Courtesy of The Amazing Steve.
rm = rm + rc
gm = gm + gc
bm = bm + bc
k
= _RGB32(r
+ rm
, g
+ gm
, b
+ bm
) LINE (x
+ i
, y
+ i
)-(x
+ wide
- i
, y
+ tall
- i
), k
, B