added colors

This commit is contained in:
visionmercer 2026-04-29 12:36:31 +02:00
commit d156b060a8
Notes: visionmercer 2026-04-29 12:39:55 +02:00
This also adds right button mouse click to imagebutton function, and resize functionality.
2 changed files with 71 additions and 4 deletions

View file

@ -8,6 +8,7 @@ type layertype
ihandle as long
blendmode as long
filter as long
kind as long
end type
dim shared layers(0) as layertype
@ -17,21 +18,32 @@ dim shared state as statetype
dim shared mouseclicked as integer
dim shared mousedown as integer
dim shared rmouseclicked as integer
dim shared rmousedown as integer
$resize:on
screen _newimage(640,480,32)
redim pal(0) as _unsigned long
_delay 0.1
temp&=_resize
redim shared pal(0) as _unsigned long
dim as integer ch1,ch2,ch3,bt
loadpalette "slso8",pal()
loadpalette "endesga16",pal()
do
line (0,0)-(_width-1,_height-1),backgroundcolor1,bf
IF CheckResize(_SOURCE) = -1 then rem 'whatever, maybe some day somthing needs changing if the window is resized'
while _mouseinput:wend
mouseclicked=0
rmouseclicked=0
if mousedown=-1 and _mousebutton(1)=0 then mouseclicked=-1
if rmousedown=-1 and _mousebutton(1)=0 then rmouseclicked=-1
mousedown=_mousebutton(1)
rmousedown=_mousebutton(2)
toolbox
colorpicker
canvas
locate 10,10: print state.tool
locate 11,10: color state.fcolor: print state.fcolor
locate 12,10: color state.bcolor: print state.bcolor
_limit 30
_display
loop
@ -43,7 +55,21 @@ sub toolbox
end sub
sub colorpicker
dim img as long
img=_newimage(16,16,32)
for i=0 to ubound(pal)
_dest img
cls ,pal(i)
line (0,0)-(_width-1,height-1),pal(i),bf
_dest 0
select case imagebutton(i*16,_height-17,16,16,img)
case -1
state.fcolor=pal(i)
case -2
state.bcolor=pal(i)
end select
next i
_freeimage img
end sub
sub canvas
@ -73,7 +99,6 @@ function icon(index as long)
end function
'$include: 'include/ui.bm'
'$include: 'include/imgout.bm'
'$include: 'include/palette.bm'
@ -133,3 +158,44 @@ function __internaluiicon&(index as long,imagehandle as long,mode as integer)
__internaluiicon=icons(index)
end select
end function
FUNCTION CheckResize (CurrentScreen AS _UNSIGNED LONG)
' *** Define local variable for temporary screen
DIM TempScreen AS _UNSIGNED LONG
CheckResize = 0
' *** Check to see if the user resized the window. If so, change the SCREEN image to the correct size.
IF _RESIZE THEN
' *** First, create a copy of the current SCREEN image.
TempScreen = _COPYIMAGE(CurrentScreen, 32)
' *** Set the SCREEN to the copied image, releasing the current SCREEN image.
SCREEN TempScreen
' *** Remove (FREE) the original SCREEN image.
_FREEIMAGE CurrentScreen
' *** Create a new "original" SCREEN image.
CurrentScreen = _NEWIMAGE(_RESIZEWIDTH, _RESIZEHEIGHT, 32)
' *** Set the SCREEN to the new "original" image, releasing the copied SCREEN image.
SCREEN CurrentScreen
' DRAW PREVIOUS SCREEN ON THE NEW ONE
_PUTIMAGE (0, 0), TempScreen, CurrentScreen
_DISPLAY
' *** Remove (FREE) the copied SCREEN image.
_FREEIMAGE TempScreen
' *** Tell the caller there was a resize
CheckResize = -1
END IF
END FUNCTION