home *** CD-ROM | disk | FTP | other *** search
/ PSION CD 2 / PsionCDVol2.iso / Programs / 8 / GENERIC.SIS / GENERIC (.txt) < prev   
Encoding:
EPOC OPL Source  |  1998-06-29  |  15.5 KB  |  831 lines

  1.  
  2.  
  3. INCLUDE "CONST.OPH"
  4. INCLUDE "PRINTER.OXH"
  5. INCLUDE "SYSTEM.OXH"
  6. INCLUDE "TOOLBAR.OPH"
  7. INCLUDE "DATE.OXH"
  8.  
  9. APP Generic,424345
  10. ENDA
  11.  
  12. CONST NomAppli$="Generic"
  13. CONST shortpath$="\System\Apps\Generic\"
  14. CONST PictFile$="Generic.mbm"
  15. CONST IniFile$="Generic.ini"
  16. CONST Generic_UID&=424345
  17.  
  18. CONST Pointer_Used&=&408
  19. CONST Pointer_Enter&=&409
  20. CONST Pointer_Exit&=&40A
  21.  
  22. REM┬áPour ERR
  23. CONST noErr%=0
  24.  
  25. REM for gTest%
  26. CONST KgTest_Short% = 1
  27. CONST KgTest_Medium% = 2
  28. CONST KgTest_Long% = 3
  29.  
  30. REM Maximum Length for a filename (Ctrl-f)
  31. CONST MAX_FILENAME% = 20
  32. CONST MAX_STRING_FILENAME% = 22 REM 2 more than MAX_FILENAME%
  33.  
  34. REM First procedure called
  35. PROC App_Start:
  36.     LOADM "Z:\SYSTEM\OPL\TOOLBAR.OPO"
  37.     TBarLink:("App_Main")
  38. ENDP
  39.  
  40.  
  41. PROC App_Main:
  42.     
  43.     REM Run/Quit application
  44.     GLOBAL gOK%
  45.     REM Idle management
  46.     GLOBAL gIdle%
  47.     REM InfraRed management
  48.     GLOBAL gIR_flagSend%, gIR_flagReceive%
  49.     REM Cut/Copy/Paste management
  50.     GLOBAL gCCP_flagCut%, gCCP_flagCopy%, gCCP_flagPaste%
  51.     REM Menu management
  52.     GLOBAL gMinit%, gMDT$(52,20)
  53.  
  54.     REM Task "Data" for Help
  55.     GLOBAL gThread&
  56.     
  57.     REM Files paths
  58.     GLOBAL gDev$(2)    
  59.  
  60.     REM Current mode
  61.     GLOBAL gMode1%, gMode2%
  62.  
  63.     REM Window data and zoom
  64.     GLOBAL gScrWid%,gScrHght%
  65.     GLOBAL gMainscn%
  66.     GLOBAL gZoom%,gFont&,gTFont%
  67.     
  68.     REM ToolBar
  69.     GLOBAL gToolbar%, gScreenWidth%
  70.     GLOBAL g_TbPict1&,g_TbPict2&,g_TbPict3&,g_TbPict4&
  71.  
  72.     GLOBAL gPath$(255)
  73.     GLOBAL gControl%,gShift%
  74.                 
  75.     App_Init:
  76.     gOK%=KTrue%
  77.     App_Evnt:(CMD$(3),CMD$(2))
  78.  
  79.     WHILE gOK%
  80.         App_Run:
  81.     ENDWH
  82.     App_End:
  83. ENDP
  84.  
  85. PROC App_Run:
  86.     LOCAL t&
  87.     GLOBAL gA&(20)
  88.  
  89.     REM idle management
  90.     IF gIdle%
  91.         Idle_Do:
  92.         IF NOT TESTEVENT :RETURN  :ENDIF
  93.     ENDIF
  94.  
  95.  
  96.     REM wait for the next event
  97.     GETEVENT32 gA&()
  98.     t&=gA&(1)
  99.     IF t& >= KKeySidebarMenu%
  100.         Event_Sbar:(t& - KKeySidebarMenu%)
  101.     ELSEIF (t& AND &400) =0
  102.        Event_Key:
  103.     ELSE
  104.         Event_Syst:(t&)
  105.     ENDIF
  106. ENDP
  107.  
  108. REM system events management
  109. PROC App_Evnt:(t$,w$)
  110.     IF t$=KCmdLetterOpen$
  111.         File_Set:(w$)
  112.     ELSEIF t$=KCmdLetterRun$
  113.         File_Resume: 
  114.     ELSEIF t$=KCmdLetterCreate$
  115.         File_Create: 
  116.     ELSEIF t$="X"
  117.         App_Quit:
  118.     ENDIF
  119. ENDP
  120.  
  121. REM Quit the application
  122. PROC App_Quit:
  123.     REM exit of the never end loop
  124.     REM App_End is then called by App_Main
  125.     gOK%=KFalse%
  126. ENDP
  127.  
  128. REM Begining of the program
  129. PROC App_Init:
  130.     gDev$=LEFT$(CMD$(1),2)
  131.     gScrWid%=gWidth :gScrHght%=gHeight
  132.     gPath$=gDev$+shortpath$
  133.     TRAP MKDIR gPath$
  134.     IniFile_Load:
  135.     Menu_Init:
  136.     Zoom_Set:(gZoom%)
  137.     Toolbar_Init:
  138. ENDP
  139.  
  140. REM End of the program
  141. PROC App_End:
  142.     IniFile_Save:        REM save preferences
  143.     Help_End:
  144.     Draw_Close:
  145.     STOP
  146. ENDP
  147.  
  148. REM Event Management
  149. REM -+-+-+-+-+-+-+-+
  150.  
  151. REM Slidebar tap
  152. PROC Event_Sbar:(t&)
  153.     LOCAL k&
  154.  
  155.     IF t& = 0
  156.         Menu_Disp&:
  157.   ELSEIF t& = 1
  158.           CCP_Popup:
  159.     ELSEIF t& = 2
  160.         IR_Popup:
  161.     ELSEIF t& = 3
  162.         Zoom_In:
  163.     ELSEIF t& = 4
  164.         Zoom_Out:
  165.     ENDIF
  166. ENDP
  167.  
  168. REM Key press event
  169. PROC Event_Key:
  170.     LOCAL k&,Mod%
  171.  
  172.     REM key code
  173.     k&=gA&(1)
  174.  
  175.     REM Determine status of modifier keys
  176.     Mod%=gA&(4) AND 255
  177.     IF Mod% AND 2 : gShift%=KTrue%   : ELSE : gShift%=KFalse%   : ENDIF
  178.     IF Mod% AND 4 : gControl%=KTrue% : ELSE : gControl%=KFalse% : ENDIF
  179.  
  180.     REM Menu key
  181.   IF k&=KKeyMenu% :Menu_Disp&: :RETURN :ENDIF
  182.   REM Menu shortcut
  183.     IF gControl% AND k& <= 26
  184.         Menu_Key:(k&)
  185.   ELSEIF k&=KKeyEsc% :Key_Esc:
  186.   ELSEIF k&=KKeySpace% :Key_Space:
  187.   ELSEIF k&=KKeyDel% :Key_Del:
  188.   ELSEIF k&=KKeyTab% :Key_Tab:
  189.   ELSEIF k&=KKeyEnter% :Key_Enter:
  190.   ELSEIF k&=4101 : Curs_PgDwn:
  191.   ELSEIF k&=4100 : Curs_PgUp:
  192.   ELSEIF k&=4099 : Curs_End:
  193.   ELSEIF k&=4098 : Curs_Home:
  194.   ELSEIF k&=4106 : Curs_Down:
  195.   ELSEIF k&=4105 : Curs_Up:
  196.   ELSEIF k&=4104 : Curs_Right:
  197.   ELSEIF k&=4103 : Curs_Left:
  198.     ELSE
  199.         GIPRINT "Key:"+HEX$(gA&(1)) :PAUSE 20
  200.   ENDIF
  201. ENDP
  202.  
  203. REM System event
  204. PROC Event_syst:(t&)
  205.     LOCAL c$(255)
  206.  
  207.     IF t&=KEvFocusGained&
  208.         Event_Fore:
  209.      ELSEIF t&=KEvFocusLost&
  210.          Event_Back:
  211.     ELSEIF t&=KEvSwitchOn&
  212.          Event_On:
  213.     ELSEIF t&=KEvCommand&
  214.         c$=GETCMD$
  215.         App_Evnt:(LEFT$(c$,1),MID$(c$,2,255))
  216.     ELSEIF t&=KEvDateChanged&
  217.     ELSEIF t&=KEvKeyDown&
  218.     ELSEIF t&=KEvKeyUp&
  219.     ELSEIF t&=KEvPtr&
  220.         Touch_Tap:
  221.     ELSEIF t&=KEvPtrEnter&
  222.         Touch_Enter:(gA&(3))
  223.     ELSEIF t&=KEvPtrExit&
  224.         Touch_Exit:(gA&(3))
  225.     ENDIF
  226. ENDP
  227.  
  228. REM Background/foreground Managment
  229. REM -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  230.  
  231. REM Application go to background
  232. PROC Event_Back:
  233.     GIPRINT "Event_Back" :PAUSE 20
  234. ENDP
  235.  
  236. REM Application go to foreground
  237. PROC Event_Fore:
  238.     GIPRINT "Event_Fore" :PAUSE 20
  239. ENDP
  240.  
  241. REM Series 5 switch On
  242. PROC Event_On:
  243.     GIPRINT "Event_On" :PAUSE 20
  244. ENDP
  245.  
  246. REM Keys Management
  247. REM +-+-+-+-+-+-+-+
  248.  
  249. PROC Key_Esc:
  250.     GIPRINT "Key_Esc" :PAUSE 20
  251. ENDP
  252.  
  253. PROC Key_Space:
  254.     GIPRINT "Key_Space" :PAUSE 20
  255. ENDP
  256.  
  257. PROC Key_Del:
  258.     GIPRINT "Key_Del" :PAUSE 20
  259. ENDP
  260.  
  261. PROC Key_Tab:
  262.     GIPRINT "Key_Tab" :PAUSE 20
  263. ENDP
  264.  
  265. PROC Key_Enter:
  266.     GIPRINT "Key_Enter" :PAUSE 20
  267. ENDP
  268.  
  269. REM Cursor Management
  270. REM +-+-+-+-+-+-+-+-+
  271.  
  272. PROC Curs_PgDwn:
  273.     GIPRINT "Curs_PgDwn" :PAUSE 20
  274. ENDP
  275.  
  276. PROC Curs_PgUp:
  277.     GIPRINT "Curs_pgUp" :PAUSE 20
  278. ENDP
  279.  
  280. PROC Curs_End:
  281.     GIPRINT "Curs_End" :PAUSE 20
  282. ENDP
  283.  
  284. PROC Curs_Home:
  285.     GIPRINT "Curs_Home" :PAUSE 20
  286. ENDP
  287.  
  288. PROC Curs_Down:
  289.     GIPRINT "Curs_Down" :PAUSE 20
  290. ENDP
  291.  
  292. PROC Curs_Up:
  293.     GIPRINT "Curs_Up" :PAUSE 20
  294. ENDP
  295.  
  296. PROC Curs_Right:
  297.     GIPRINT "Curs_Right" :PAUSE 20
  298. ENDP
  299.  
  300. PROC Curs_Left:
  301.     GIPRINT "Curs_Left" :PAUSE 20
  302. ENDP
  303.  
  304. REM Cut/Copy/Paste Managment
  305. REM +-+-+-+-+-+-+-+-+-+-+-+-
  306.  
  307. REM Cut/Copy/Paste Popup Menu
  308. PROC CCP_Popup:
  309.     LOCAL k%
  310.  
  311.     k%=mPOPUP(10,40,KMPopupPosTopLeft%,"Cut",%x,"Copy",%c,"Paste",%v)
  312.     IF k%=%x
  313.         CCP_Cut:
  314.     ELSEIF k%=%c
  315.         CCP_Copy:
  316.     ELSEIF k%=%v
  317.         CCP_Paste:
  318.     ENDIF
  319. ENDP
  320.  
  321. REM Cut Command
  322. PROC CCP_Cut:
  323.     GIPRINT "CCP_Cut" :PAUSE 20
  324. ENDP
  325.  
  326. REM Copy Command
  327. PROC CCP_Copy:
  328.     GIPRINT "CCP_Copy" :PAUSE 20
  329. ENDP
  330.  
  331. REM Paste Command
  332. PROC CCP_Paste:
  333.     GIPRINT "CPP_Paste" :PAUSE 20
  334. ENDP
  335.  
  336. REM InfraRed Management
  337. REM +-+-+-+-+-+-+-+-+-+
  338.  
  339. REM Infrared Popup Menu
  340. PROC IR_Popup:
  341.     LOCAL k%
  342.  
  343.     k%=mPOPUP(10,95,KMPopupPosTopLeft%,"Infrared send",3,"Infrared receive",4 OR KMenuDimmed%)
  344.     IF k%=3
  345.         IR_Send:
  346.     ELSEIF k%=4
  347.         IR_Receive:
  348.     ENDIF
  349. ENDP
  350.  
  351. REM Infrared send Command
  352. PROC IR_Send:
  353.     GIPRINT "IR_Send" :PAUSE 20
  354. ENDP
  355.  
  356. REM Infrared receive Command
  357. PROC IR_Receive:
  358.     GIPRINT "IR_Receive" :PAUSE 20
  359. ENDP
  360.  
  361. REM Menu Managment
  362. REM -=-=-=-=-=-=-=
  363.  
  364. REM initialise the menu dispatch table
  365. PROC Menu_Init:
  366.     gMDT$(1)="Help_About" REM Ctrl+A
  367.     gMDT$(2)="" REM Ctrl+B
  368.     gMDT$(3)="CCP_Copy" REM Ctrl+C
  369.     gMDT$(4)="Mode_Set2" REM Ctrl+D
  370.     gMDT$(5)="App_Quit" REM Ctrl+E
  371.     gMDT$(6)="" REM Ctrl+F
  372.     gMDT$(7)="" REM Ctrl+G
  373.     gMDT$(8)="Mode_Set1" REM Ctrl+H
  374.     gMDT$(9)="IR_Send" REM Ctrl+I
  375.     gMDT$(10)="" REM Ctrl+J
  376.     gMDT$(11)="Pref_Disp" REM Ctrl+K
  377.     gMDT$(12)="" REM Ctrl+L
  378.     gMDT$(13)="Zoom_In" REM Ctrl+M
  379.     gMDT$(14)="" REM Ctrl+N
  380.     gMDT$(15)="" REM Ctrl+O
  381.     gMDT$(16)="Print_Print" REM Ctrl+P
  382.     gMDT$(17)="" REM Ctrl+Q
  383.     gMDT$(18)="" REM Ctrl+R
  384.     gMDT$(19)="" REM Ctrl+S
  385.     gMDT$(20)="Toolbar_Switch" REM Ctrl+T
  386.     gMDT$(21)="" REM Ctrl+U
  387.     gMDT$(22)="CCP_Paste" REM Ctrl+V
  388.     gMDT$(23)="" REM Ctrl+W
  389.     gMDT$(24)="CCP_Cut" REM Ctrl+X
  390.     gMDT$(25)="" REM Ctrl+Y
  391.     gMDT$(26)="" REM Ctrl+Z
  392.     gMDT$(27)="" REM Ctrl+Shift+A
  393.     gMDT$(28)="" REM Ctrl+Shift+B
  394.     gMDT$(29)="" REM Ctrl+Shift+C
  395.     gMDT$(30)="" REM Ctrl+Shift+D
  396.     gMDT$(31)="" REM Ctrl+Shift+E
  397.     gMDT$(32)="" REM Ctrl+Shift+F
  398.     gMDT$(33)="" REM Ctrl+Shift+G
  399.     gMDT$(34)="Help_Disp" REM Ctrl+Shift+H
  400.     gMDT$(35)="IR_Receive" REM Ctrl+Shift+I
  401.     gMDT$(36)="" REM Ctrl+Shift+J
  402.     gMDT$(37)="" REM Ctrl+Shift+K
  403.     gMDT$(38)="" REM Ctrl+Shift+L
  404.     gMDT$(39)="Zoom_Out" REM Ctrl+Shift+M
  405.     gMDT$(40)="" REM Ctrl+Shift+N
  406.     gMDT$(41)="" REM Ctrl+Shift+O
  407.     gMDT$(42)="Print_Setup" REM Ctrl+Shift+P
  408.     gMDT$(43)="" REM Ctrl+Shift+Q
  409.     gMDT$(44)="" REM Ctrl+Shift+R
  410.     gMDT$(45)="" REM Ctrl+Shift+S
  411.     gMDT$(46)="" REM Ctrl+Shift+T
  412.     gMDT$(47)="Print_PageSetup" REM Ctrl+Shift+U
  413.     gMDT$(48)="Print_Preview" REM Ctrl+Shift+V
  414.     gMDT$(49)="" REM Ctrl+Shift+W
  415.     gMDT$(50)="" REM Ctrl+Shift+X
  416.     gMDT$(51)="" REM Ctrl+Shift+Y
  417.     gMDT$(52)="" REM Ctrl+Shift+Z
  418. ENDP
  419.  
  420. REM display the menu and execute the user choice
  421. PROC Menu_Disp&:
  422.     LOCAL k&
  423.  
  424.     mINIT
  425.     mCASC "Printing","Page setupΓǪ",%U, "Print setupΓǪ",%P, "Print previewΓǪ",%V,"PrintΓǪ",%p
  426.     IF gMode1%=1
  427.         mCARD "File","Open FileΓǪ",-%o, "Printing>",-16,"Close",%e
  428.     ELSE
  429.         mCARD "File","Save File",-%s, "Printing>",-16,"Close",%e
  430.     ENDIF
  431.     mCARD "Edit","Undo",-%z, "Cut",%x, "Copy",%c, "Paste",%v
  432.     mCARD "View","Mode 1",%h OR KMenuOptionStart% OR KMenuSymbolOn% * gMode1%, "Mode 2",-(%d  OR KMenuOptionEnd% OR KMenuSymbolOn% * gMode2%),"Zoom in",%m, "Zoom out",-%M, "Show toolbar",%t OR $2800*(gToolbar%+1)
  433.     mCASC "Infrared","Send",%i, "Receive",%I
  434.     mCARD "Tools","Preference",%k, "About",%a,"Help",-%H,"Infrared>",15
  435.     gControl%=KTrue%
  436.     LOCK ON :k&=MENU(gMinit%)-%A+1 :LOCK OFF
  437.     IF k& > 31 : gShift%=KFalse% : k&=k&-32
  438.     ELSE : gShift%=KTrue%
  439.     ENDIF
  440.     Menu_Key:(k&)
  441. ENDP
  442.  
  443. PROC Menu_Key:(k&)
  444.     LOCAL p$(255)
  445.  
  446.     IF k&<1 OR k&>26 :RETURN :ENDIF
  447.     IF gShift%
  448.         p$=gMDT$(26+k&)
  449.     ELSE
  450.         p$=gMDT$(k&)
  451.     ENDIF
  452.     IF p$<>""
  453.         @(p$):
  454.     ENDIF
  455. ENDP
  456.  
  457. REM Touch-screen management
  458. REM +-+-+-+-+-+-+-+-+-+-+-+
  459.  
  460. REM Tap on the touch-screen
  461. PROC Touch_Tap:
  462.     IF TBarOffer%:(gA&(3),gA&(4),gA&(6),gA&(7))
  463.         RETURN
  464.     ELSE
  465.         IF gA&(KEvAPtrType%) = 0
  466.             Touch_First:(gA&(3),gA&(6),gA&(7))
  467.         ELSEIF gA&(KEvAPtrType%) = 1
  468.             Touch_Last:(gA&(3),gA&(6),gA&(7))
  469.         ELSEIF gA&(KEvAPtrType%) = 6
  470.             Touch_Middle:(gA&(3),gA&(6),gA&(7))
  471.         ENDIF
  472.     ENDIF
  473. ENDP
  474.  
  475. REM tap on the touch screen
  476. PROC Touch_First:(W&,X_P&,Y_P&)
  477.      GIPRINT "Touch_First W="+NUM$(W&,12)+", X="+NUM$(X_P&,12)+", Y="+NUM$(Y_P&,12) :PAUSE 20
  478. ENDP
  479.  
  480. REM tap on the touch screen
  481. PROC Touch_Middle:(W&,X_P&,Y_P&)
  482.      GIPRINT "Touch_Middle W="+NUM$(W&,12)+", X="+NUM$(X_P&,12)+", Y="+NUM$(Y_P&,12) :PAUSE 20
  483. ENDP
  484.  
  485. REM tap on the touch screen
  486. PROC Touch_Last:(W&,X_P&,Y_P&)
  487.      GIPRINT "Touch_Last W="+NUM$(W&,12)+", X="+NUM$(X_P&,12)+", Y="+NUM$(Y_P&,12) :PAUSE 20
  488. ENDP
  489.  
  490. REM touch-screen: the pointer enter in the area
  491. PROC Touch_Enter:(W&)
  492.     GIPRINT "Touch_Enter W="+NUM$(W&,12) :PAUSE 20
  493. ENDP
  494.  
  495. REM touch-screen: the pointer exit the area
  496. PROC Touch_Exit:(W&)
  497.     GIPRINT "Touch_Exit W="+NUM$(W&,12) :PAUSE 20
  498. ENDP
  499.  
  500. REM Display Managment
  501. REM -=-=-=-=-=-=-=-=-=
  502.  
  503. REM Create all the windows
  504. PROC Draw_Create:
  505.     IF gMainScn% = 0
  506.         gMainScn%=gCREATE (0,0,gScreenwidth%,gScrHght%,KgCreateVisible%,KgCreate2ColourMode%)
  507.     ELSE
  508.         gUSE gMainScn%
  509.         gSETWIN 0,0,gScreenwidth%,gScrHght%
  510.     ENDIF
  511.     Draw_All:
  512. ENDP
  513.  
  514. REM close all open windows
  515. PROC Draw_Close:
  516.     IF gMainScn% :gCLOSE gMainScn% :ENDIF
  517. ENDP
  518.  
  519. REM Draw the windows 
  520. PROC Draw_All:
  521.     gUSE gMainscn%
  522.     gCLS :gBORDER 0
  523.  
  524.     Time_Draw:
  525. ENDP
  526.  
  527. REM Draw the windows 
  528. PROC Time_Draw:
  529.     LOCAL ch$(255)
  530.  
  531.     gFONT gFont&
  532.     gAT 48,32 : gFILL 320,22,1 : gBOX 320,22
  533.     
  534.     ch$=DATIM$
  535.     IF gMode2% = 1
  536.         ch$=LEFT$(ch$,15)
  537.     ENDIF
  538.     gAT 50,50 :gPRINT ch$
  539. ENDP
  540.  
  541. REM Zoom Management
  542. REM -=-=-=-=-=-=-=-
  543.  
  544. REM Zoom in (magnify)
  545. PROC Zoom_In:
  546.     GIPRINT "Zoom_In" :PAUSE 20
  547.     Zoom_Set:((gZoom%+1) AND 3)
  548.     Time_Draw:
  549. ENDP
  550.  
  551. REM Zoom out (reduce)
  552. PROC Zoom_Out:
  553.     GIPRINT "Zoom_In" :PAUSE 20
  554.     Zoom_Set:((gZoom%-1) AND 3)
  555.     Time:
  556. ENDP
  557.  
  558. REM Change the current zoom level
  559. PROC Zoom_Set:(z%)
  560.     gZoom%=z%
  561.  
  562.     REM update the font
  563.     IF gTFont% = 1
  564.         gFont&=KFontArialNormal11&+gZoom%
  565.     ELSEIF gTFont% = 2
  566.         gFont&=KFontTimesNormal11&+gZoom%
  567.     ELSE
  568.         gFont&=KFontCourierNormal11&+gZoom%
  569.     ENDIF
  570. ENDP
  571.  
  572. REM Tool Bar Management
  573. REM -=-=-=-=-=-=-=-=-=-
  574.  
  575. PROC Toolbar_Init:
  576.     LOCAL mbmTbar$(255)
  577.  
  578.     mbmTbar$=gPath$+PictFile$
  579.     g_TbPict1&=gLoadBit(mbmTbar$,0,0)
  580.     g_TbPict2&=gLoadBit(mbmTbar$,0,1)
  581.     g_TbPict3&=gLoadBit(mbmTbar$,0,2)
  582.     g_TbPict4&=gLoadBit(mbmTbar$,0,3)
  583.  
  584.     TBarInit:(NomAppli$,gScrWid%,gScrHght%)
  585.     TBarButt:("h",1,"Hour",0,g_TbPict1&,g_TbPict1&, KTbFlgLatchStart%)
  586.     TBarButt:("d",2,"Day",0,g_TbPict2&,g_TbPict2&, KTbFlgLatchEnd%)
  587.     TBarButt:("V",3,"Print",0,g_TbPict3&,g_TbPict3&,0)
  588.     TBarButt:("H",4,"Help",0,g_TbPict4&,g_TbPict4&,0)
  589.     ToolBar_Mode:
  590.     ToolBar_Set:
  591.     Toolbar_Title:(NomAppli$)
  592. ENDP
  593.  
  594. PROC ToolBar_Mode:
  595.     IF gMode1% = 1
  596.         TBARLatch:(1)
  597.     ELSEIF gMode2% = 1
  598.         TBARLatch:(2)
  599.     ENDIF
  600. ENDP
  601.  
  602. PROC ToolBar_Set:
  603.     IF gToolbar% :TBarHide:
  604.     ELSE :TBarShow:
  605.     ENDIF
  606.     gScreenwidth%=gScrWid%+(TbWidth%* NOT gToolbar%)-1
  607.     Draw_Create:
  608. ENDP
  609.  
  610. PROC Toolbar_Switch:
  611.     gToolbar% = NOT gToolbar%
  612.     ToolBar_Set:
  613. ENDP
  614.  
  615. PROC Toolbar_Title:(A$)
  616.     REM 'Trim Filename to 7 characters to fit ToolBar
  617.     TBarSetTitle:(LEFT$(A$,7))
  618. ENDP
  619.  
  620. REM Help from Toolbar
  621. PROC CmdSh%:
  622.     Help_Disp:
  623. ENDP
  624.  
  625. REM Print from Toolbar
  626. PROC CmdSv%:
  627.     Print_Preview:
  628. ENDP
  629.  
  630. REM Mode 1 from Toolbar
  631. PROC Cmdh%:
  632.   Mode_Set1:
  633. ENDP
  634.  
  635. REM Mode 2 from Toolbar
  636. PROC Cmdd%:
  637.   Mode_Set2:
  638. ENDP
  639.  
  640. REM .ini File Management
  641. REM -=-=-=-=-=-=-=-=-=-=
  642.  
  643. REM default values for preferences when the
  644. REM ini file doesn't exist or when it is
  645. REM corrupted
  646. PROC IniFile_Default:
  647.     gToolbar%=KFalse%
  648.     gMode1%=1
  649.     gMode2%=0
  650.     gTFont%=1
  651.     gZoom%=1
  652. ENDP
  653.  
  654. REM load the preferences from the ini file
  655. PROC IniFile_Load:
  656.     IF EXIST (gPath$+IniFile$)
  657.         TRAP OPEN gPath$+IniFile$,A,tb%,m1%,m2%,tf%,z%
  658.         IF ERR = NoErr%
  659.             gToolbar%=A.tb%
  660.             gMode1%=A.m1%
  661.             gMode2%=A.m2%
  662.             gTFont%=A.tf%
  663.             gZoom%=A.z%
  664.             CLOSE
  665.             RETURN
  666.         ENDIF
  667.     ENDIF
  668.     IniFile_Default:
  669. ENDP
  670.  
  671. REM save the preferences to the ini file
  672. PROC IniFile_Save:
  673.     TRAP DELETE gPath$+IniFile$
  674.     CREATE gPath$+IniFile$,A,tb%,m1%,m2%,tf%,z%
  675.     A.tb%=gToolbar%
  676.     A.m1%=gMode1%
  677.     A.m2%=gMode2%
  678.     A.tf%=gTFont%
  679.     A.z%=gZoom%
  680.     APPEND
  681.     CLOSE
  682. ENDP
  683.  
  684. REM Mode Management
  685. REM -=-=-=-=-=-=-=-
  686.  
  687. PROC Mode_Set1:
  688.     IF gMode1% <> 1
  689.         gMode1%=1
  690.         gMode2%=0
  691.         ToolBar_Mode:
  692.         Draw_All:
  693.     ENDIF
  694. ENDP
  695.  
  696. PROC Mode_Set2:
  697.     IF gMode2% <> 1
  698.         gMode2%=1
  699.         gMode1%=0
  700.         ToolBar_Mode:
  701.         Draw_All:
  702.     ENDIF
  703. ENDP
  704.  
  705. REM File Management
  706. REM -=-=-=-=-=-=-=-
  707.  
  708. REM Open a existing file
  709. PROC File_Set:(w$)
  710. ENDP
  711.  
  712. REM Open the file last opened
  713. PROC File_Resume:
  714. ENDP
  715.  
  716. REM creation of a new file
  717. PROC File_Create: 
  718. ENDP
  719.  
  720. REM Printing Management
  721. REM -=-=-=-=-=-=-=-=-=-
  722.  
  723. REM Printing
  724. PROC Print_Write:
  725.     REM initialisation
  726.     RESETPRINTING:
  727.     SETFONTNAME:("Courier")
  728.     SETFONTHEIGHT:(12)
  729.  
  730.     REM write on page(s)
  731.     SENDSTRINGTOPRINTER:("Test d'impression")
  732.     SENDNEWPARATOPRINTER:
  733. ENDP
  734.  
  735. REM Menu File / Printing / Page setupΓǪ
  736. PROC Print_PageSetup:
  737.     PageSetupDialog:
  738. ENDP
  739.  
  740. REM Menu File / Printing / Print setupΓǪ
  741. PROC Print_Setup:
  742.     PrintRangeDialog:
  743. ENDP
  744.  
  745. REM Menu File / Printing / Print previewΓǪ
  746. PROC Print_Preview:
  747.     ONERR CmdSvquit::
  748.     Print_Write: : PrintPreviewDialog:
  749.     ONERR OFF : RETURN
  750.  
  751.     CmdSvquit::
  752.     ONERR OFF
  753.     giPRINT "Printer not connected" :PAUSE 20
  754. ENDP
  755.  
  756. REM File / Printing / PrintΓǪ
  757. PROC Print_Print:
  758.     ONERR CmdpQuit::
  759.     Print_Write: : PrintDialog:
  760.     ONERR OFF : RETURN
  761.  
  762.     CmdpQuit::
  763.     ONERR OFF
  764.     giPRINT "Printer not connected"
  765. ENDP
  766.  
  767. REM Preferences Management
  768. REM -=-=-=-=-=-=-=-=-=-=-=
  769.  
  770. REM Display the preference dialog
  771. PROC Pref_Disp:
  772.     LOCAL r%,old%
  773.  
  774.     old%=gTFont%
  775.     dINIT NomAppli$+" preferences"
  776.     dCHOICE gTFont%,"Font","Arial,Times,Courier"
  777.     dBUTTONS "Cancel",KDButtonEsc% OR KDButtonNoLabel% OR KDButtonPlainKey%,"Yes",KDButtonEnter% OR KDButtonNoLabel% OR KDButtonPlainKey%
  778.     LOCK ON :r%=DIALOG :LOCK OFF
  779.     IF r%=KDButtonEnter%
  780.         IF old% <> gTFont%
  781.             Zoom_Set:(gZoom%)
  782.             Draw_Time:
  783.         ENDIF
  784.     ENDIF
  785. ENDP
  786.  
  787. REM Help Management
  788. REM -=-=-=-=-=-=-=-
  789.  
  790. REM┬áMenu: Tools / About
  791. PROC Help_About:
  792.     dINIT "Generic application (Freeware)"
  793.     dTEXT "Author:"," Didier CABUZEL"
  794.     dTEXT "Email:","didier@cabuzel.com"
  795.     dTEXT "Version:","1.0"
  796.     dTEXT "Date:","08/Oct/1997"
  797.     dBUTTONS "Close",KDButtonEnter% OR KDButtonNoLabel% OR KDButtonPlainKey%
  798.     LOCK ON :DIALOG :LOCK OFF
  799. ENDP
  800.  
  801. REM┬áMenu Tools / Help and Toolbar Button
  802. PROC Help_Disp:
  803.     LOCAL HelpFile$(255)
  804.  
  805.     Helpfile$=gPath$+NomAppli$+".hlp"
  806.     IF EXIST (helpfile$)
  807.         IF gThread&<>0
  808.             ONERR HelpNotopen::
  809.             SETFOREGROUNDBYTHREAD&:(gThread&,0)
  810.         ELSE
  811.             HelpNotopen::
  812.             ONERR OFF
  813.             gThread&=RUNAPP&:("Data",Helpfile$,"",0)
  814.         ENDIF
  815.     ELSE
  816.         GIPRINT "Help file not found"
  817.     ENDIF
  818. ENDP
  819.  
  820. REM Kills the help task, if it exists
  821. PROC Help_End:
  822.     IF gThread&<>0        REM kill help thread
  823.         ONERR EndAnyway::
  824.         ENDTASK&:(gThread&,0)
  825.     ENDIF
  826.     EndAnyway::
  827. ENDP
  828.  
  829.  
  830.  
  831.