home *** CD-ROM | disk | FTP | other *** search
-
- 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
-