Hi, Sean. It's quite possible to do a GUI title screen with panels/buttons. Image buttons can be fairly easily handled in Windows with some win32 calls. For a cross-platform solution, you'd need to simulate image buttons using only MaxGUI commands (an old example:
MaxGUI Panel Image Buttons).
You don't need to worry about Flip for panel images. Panels are redrawn automatically when covered/uncovered.
A sample title screen using the win32 approach:
Strict
Local window:TGadget = CreateWindow( "Title Screen Test", 200,200, 300,180, Null,..
WINDOW_TITLEBAR | WINDOW_CLIENTCOORDS )
Local panel:TGadget = CreatePanel( 0,0, 600,360, window )
SetPanelPixmap( panel,LoadPixmap( "background.jpg" ) )
' with 64 x 32 images, button size is 64+4 x 32+4
Local btn1:TGadget = CreateImageButton( "button1.bmp", 10,10, 64+4,32+4, panel )
Local btn2:TGadget = CreateImageButton( "button2.bmp", 10,60, 64+4,32+4, panel )
Repeat
WaitEvent
If EventID() = EVENT_GADGETACTION Then
If EventSource() = btn1 Then Notify ("Button 1 pressed")
If EventSource() = btn2 Then Notify ("Button 2 pressed")
EndIf
Until EventID() = EVENT_WINDOWCLOSE
End
Function CreateImageButton:TGadget( imagefile$, x,y, width,height, group:TGadget )
Extern "win32"
Function LoadImageA:Int (hInst%, lpsz$z, un1%, n1%, n2%, un2%)
Function SetWindowLongA:Int ( hWnd%, Val%, Lng% )
Function GetWindowLongA% ( hWnd%, Val% )
Function SendMessageA% ( hWnd%, Msg%, wParam%, lParam% )
End Extern
Const LR_LOADFROMFILE = 16
Const GWL_STYLE = -16
Const BS_BITMAP = 128
Const BM_SETIMAGE = 247
Const IMAGE_BITMAP = 0
Const IMAGE_ICON = 1
Local i = LoadImageA( 0, imagefile$, IMAGE_BITMAP, 0,0, LR_LOADFROMFILE )
If Not i Then Notify imagefile + " not found.", True ; End
Local button:Tgadget = CreateButton( "", x,y, width,height, group )
Local hbutton = QueryGadget( button, QUERY_HWND_CLIENT )
Local flags = GetWindowLongA( hbutton, GWL_STYLE ) + BS_BITMAP
SetWindowLongA hbutton, GWL_STYLE,flags
SendMessageA hbutton, BM_SETIMAGE, IMAGE_BITMAP, i
Return button
End FunctionThis produces:

Here's the media used in this example:
http://neonavis.com/wendellm/button1.bmphttp://neonavis.com/wendellm/button2.bmpneonavis.com/wendellm/background.jpg