I use my own AppGameKit library, basically whenever I need a new gui function (like a button for instance), I create it and keep to code for later use.
Here's the way I do buttons, the idea is extendable to just about anything you can think of (like scrolling lists, etc).
type button
state `1=down, 2=released,0=off
downimg
upimg
id
endtype
quit as button
quit.downimg=LoadImage("buttondown.png")
quit.upimg=LoadImage("buttonup.png")
quit.id=CreateSprite(quit.upimg)
SetSpriteSize(quit.id,20,10)
SetSpritePosition(quit.id,50,50)
do
quit=dobutton(quit)
if quit.state=1 then exit
sync()
loop
end
function dobutton(b as button)
x = GetPointerX()
y = GetPointerY()
if GetPointerReleased()
if GetSpriteHitTest(b.id,x,y)
b.state=2
endif
endif
if GetPointerState()
if GetSpriteHitTest(b.id,x,y)
SetSpriteImage(b.id,b.downimg)
n.state=1
else
SetSpriteImage(b.id,b.upimg)
b.state=0
endif
else
SetSpriteImage(b.id,b.upimg)
b.state=0
endif
endfunction b
[written from memory]
of course, they wont look native to the device, but you can easily make the buttons look native to the game