home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Millennium Time Capsule
/
AC2000.BIN
/
disks
/
ac5_disk
/
tutorial.s
/
hbasic.tut
/
pdo.bas
< prev
next >
Wrap
BASIC Source File
|
1997-04-10
|
3KB
|
133 lines
REM PDO - Print Documents Out, the example project for the HBASIC
REM tutorial for Atari Computing by Paul Jones
LIBRARY "gemaes","gemvdi"
REM $option k10
REM $option g,y+,v+,u+,#,[,]
DEFINT a-z
DIM SHARED junk
REM DECLARE FUNCTION Dialog
REM $include pdo.bh
REM $include gemaes.bh
DIM SHARED tree&
DEF FNObjectAddr&(object)=tree&+object*ob_sizeof
SUB Exclob_state(object,flag_mask)
STATIC t&
t&=FNObjectAddr&(object)+ob_state
POKEW t&,PEEKW(t&) AND (NOT flag_mask)
END SUB
DEF FNDialog (dial,edit)
STATIC junk,tree&,x,y,w,h,but,type_tree,treeno,tree&
junk=FNrsrc_gaddr(0,dial,tree&)
form_center tree&,x,y,w,h
form_dial FMD_START,0,0,0,0,x,y,w,h
form_dial FMD_GROW,x+w\2,y+h\2,0,0,x,y,w,h
junk=FNobjc_draw(tree&,0,10,x,y,w,h)
but=FNform_do(tree&,edit) AND &h7fff
form_dial FMD_SHRINK,x+w\2,y+h\2,0,0,x,y,w,h
form_dial FMD_FINISH,0,0,0,0,x,y,w,h
Exclob_state but,mask_selected
FNDialog=but
END DEF
SUB ProcessUserMenus (title,item)
STATIC dummy,finished
SHARED finished
SELECT CASE item
CASE about:
dummy=FNform_alert (1,"[1][ You clicked on 'About PDO'! ][ OK ]")
CASE view:
dummy=FNform_alert (1,"[1][ You clicked on 'View'! ][ OK ]")
CASE prin:
dummy=FNform_alert (1,"[1][ You clicked on 'Print'! ][ OK ]")
CASE opts:
dummy=FNform_alert (1,"[1][ You clicked on 'Printer | options'! ][ OK ]")
CASE reg:
dummy=FNform_alert (1,"[1][ You clicked on 'REGISTER'! ][ OK ]")
CASE loads:
dummy=FNform_alert (1,"[1][ You clicked on 'Load | settings'! ][ OK ]")
CASE saves:
dummy=FNform_alert (1,"[1][ You clicked on 'Save | settings'! ][ OK ]")
CASE quit:
dummy=FNform_alert (1,"[1][ Bye Bye! ][ Ok ]")
finished=-1
END SELECT
END SUB
SUB InitResourceFile(name$)
STATIC junk
SHARED resource_loaded
IF FNrsrc_load(name$)=0 THEN
junk=FNform_alert(1,"[3][ Couldn't find PDO.RSC! ][ Quit ]")
SYSTEM
END IF
resource_loaded=-1
END SUB
SUB StartProgram(resourcefile$,treenumber)
SHARED WindX,WindY,WindW,WindH
WINDOW ON
InitResourceFile resourcefile$
junk=FNwind_get(0,WF_WORKXYWH,WindX,WindY,WindW,WindH)
InitMenuSystem treenumber
END SUB
SUB StopProgram
SHARED menu_pointer&
STATIC junk
IF menu_pointer& THEN menu_bar menu_pointer&,0
junk=FNwind_set(0,WF_NEWDESK,0,0,0,0)
junk=FNwind_update(END_UPDATE)
STOP -1
END SUB
SUB InitMenuSystem( treenumber)
SHARED menu_pointer&,exit_item,menus_enabled
junk=FNrsrc_gaddr(0,treenumber,menu_pointer&)
menu_bar menu_pointer&,1
menus_enabled=-1
END SUB
SUB do_message(val mes_type)
SHARED mess(1),menu_pointer&
SHARED title,item
STATIC title,item,junk
SELECT CASE mes_type
CASE MN_SELECTED:
title=mess(3)
item=mess(4)
CALL ProcessUserMenus (title,item)
menu_tnormal menu_pointer&,title,1
END SELECT
END SUB
DIM mess(16)
StartProgram "PDO.RSC",menu
DO
e=FNevnt_multi(MU_MESAG,0,0,0,0,0,0,0,0,0,0,0,0,0,_
varptr(mess(0)),0,0,0,0,0,k,0)
IF e AND MU_MESAG THEN do_message mess(0)
IF finished=-1 THEN CALL StopProgram
LOOP