home *** CD-ROM | disk | FTP | other *** search
/ 100 Great Games for Palm OS 1 / 100PalmV1.iso / Cards / pocketjack / msgbox_fo.cpk < prev    next >
Text File  |  1999-03-06  |  7KB  |  256 lines

  1. # package file providing menu options for full screen size 
  2. #  about and help message boxes
  3.  
  4. # 30aug98, ver 0.1, frank o'brien, dianfrank@worldnet.att.net,
  5. # http://home.att.net/~dianfrank/casl_page.htm
  6. # freeware, no warranty, copyright
  7.  
  8. # 21nov98, ver 0.2, fob
  9. # added more comments to help with useage
  10. # added control variables for multiple form programs
  11. # 27nov98, fob
  12. # polished the credits for other cpk files in about text
  13.  
  14. # 6mar99, ver 0.3, fob
  15. # added function so can redraw objects after reshow of main
  16. #  frame, in case auto redraw of graphics last, covers objects
  17.  
  18. # USER GUIDE
  19.  
  20. # Main form details:
  21. #
  22. # This package file provides menu options for:
  23. # Help
  24. #  Help...
  25. #  About...
  26. #
  27. # main form must be called frMain
  28.  
  29. # Include order:
  30. #
  31. # In order that Help topmenu appear at right end of main program 
  32. #  menu, the include statement for this package must appear after 
  33. #  include statements defining other menu options.
  34.  
  35. # Public/Private:
  36. #
  37. # The code that's intended for changing by user, is labeled public.  
  38. #  Code that the user should not have to change/call is labeled 
  39. #  private.  There is no such thing in CASL, it's a note to the user.
  40.  
  41. # mb_bDisable, mb_bVerbose:
  42. #
  43. # Help/About menu option will hide frMain, show frMsgBox, and display 
  44. #  help/about string.  Because it's assumed frMain is always the 
  45. #  active frame, programs with multiple frames can use the mb_bDisable 
  46. #  flag to make the menu option unavailable.  If mb_bVerbose is set, 
  47. #  a messagebox function will appear to explain event detected but 
  48. #  disabled.  If not set, event is ignored without message.
  49.  
  50. # mb_sTitle, ..., mb_sDocName:
  51. #
  52. # About string is built based on mandatory string tokens defined by 
  53. #  user for each program, and optional string tokens which might 
  54. #  stay the same for each developer.  By default About string will 
  55. #  indicate that program is freeware, etc.  See mb_InitAbout for 
  56. #  details on About string.
  57.  
  58. # mb_sHelpBody:
  59. #
  60. # Help string is built based on optional string tokens mb_sDocName and 
  61. #  mb_sHelpBody defined by user for each program.  If both are left blank, 
  62. #  full Help string defaults to "See source code".  See mb_InitHelp 
  63. #  for details on Help string.
  64.  
  65. # mb_AppendAbout:
  66. #
  67. # means to credit authors for the package and/or library files your 
  68. #  program uses.  as a writer of a package file, you could provide
  69. #  a Initialization function which would make use of this function, 
  70. #  and would be called by main startup function for appending credit 
  71. #  information to end of about text.
  72.  
  73. # VARIABLES - PUBLIC
  74.  
  75. variables;
  76.     # control variables
  77.     #  use in multiple form programs to disable help topmenu
  78.     numeric mb_bDisable=false();
  79.     #  show message when help topmenu selected but disabled,
  80.     #   only active if mb_bDisable=true()
  81.     numeric mb_bVerbose=true();
  82.  
  83.     # about/help string tokens,
  84.     #  define in main module, can use mb_lf for starting new line,
  85.     #  normally done in startup function
  86.     string mb_sTitle;
  87.     string mb_sVersion;
  88.     string mb_sDate;
  89.     string mb_sAbstract;
  90.     # redefine in main module only if need to change defaults
  91.     #  replace with name of user manual, if available
  92.     string mb_sDocName="source code"; 
  93.     #  define with brief help string, if desired
  94.     string mb_sHelpBody;
  95.     #  add library modules to rt string, if needed
  96.     string mb_sRTVersion="CASLrt 2.6x";
  97.     string mb_sPrice="Freeware, no warranty";
  98.     #  developer info, might define once, and save as msgbox_xx.cpk,
  99.     #   where xx might be your initials
  100.     string mb_sWebSite="http://home.att.net/~dianfrank/casl_page.htm";
  101.     string mb_sAuthor="Frank O'Brien";
  102.     string mb_sMail="dianfrank@worldnet.att.net";
  103. end;
  104.  
  105. # VARIABLES - PRIVATE
  106.  
  107. variables;
  108.     # constants, don't change
  109.     string mb_sAbout; # let module build, see mb_InitAbout
  110.     numeric mb_bAboutDefined=false();
  111.     string mb_sHelp;  # let module build, see mb_InitHelp
  112.     string mb_lf=char(10)+char(10);
  113.     string mb_end=mb_lf+" - o -"+mb_lf;
  114. end;
  115.  
  116. # OBJECTS - PRIVATE, MENU for frMain
  117.  
  118. menu_top mtHelp, frMain;
  119.     display "Help";
  120. end;
  121.     
  122. menu_item miHelp, mtHelp;
  123.     display "Help...";
  124. end;
  125.     
  126. menu_item miAbout, mtHelp;
  127.     display "About...";
  128. end;
  129.     
  130. # OBJECTS - PRIVATE, HELP/ABOUT MESSAGE FRAME
  131.  
  132. frame frMsgBox;
  133.     hidden;
  134. end;
  135.  
  136. text mb_lbMsgText, frMsgBox;
  137.     position 50,100;
  138.     pixel_size 900,700;
  139.     no_input;
  140.     scrollbar top;
  141. end;
  142.  
  143. button mb_btOK, frMsgBox;
  144.     position 400,900;
  145.     pixel_size 250,75;
  146.     display "OK";
  147. end;
  148.  
  149. # FUNCTIONS - PUBLIC
  150.  
  151. # call in main program startup function to append package or 
  152. #  library file information to standard about box text
  153. # appends to front of string, main program about info appended last,
  154. #  so appears first when displayed
  155. #
  156. function mb_AppendAbout(string s);
  157.     mb_sAbout=s+mb_end+mb_sAbout;
  158. end;
  159.  
  160. # FUNCTIONS - PRIVATE
  161.  
  162. # build about and help strings
  163.  
  164. function mb_InitAbout;
  165.     # give credit to me for msgbox package, thanks
  166.     call mb_AppendAbout("Help and About box functions provided by "+
  167.      "msgbox_ii.cpk, ver 0.3, 6mar99, Frank O'Brien, "+
  168.      "http://home.att.net/~dianfrank/casl_page.htm");
  169.     # main program credit, appended to front last, so displayed first
  170.     mb_sAbout=mb_sTitle+", "+mb_sVersion+mb_lf
  171.      +mb_sAbstract+mb_lf+"Requires "+mb_sRTVersion+mb_lf
  172.      +char(169)+" "+mb_sDate+", "+mb_sAuthor+", "+mb_sMail+mb_lf
  173.      +mb_sPrice+", see "+mb_sDocName+" for details.  For "
  174.      +"updates, visit "+mb_sWebSite+mb_end+mb_sAbout;
  175. end;
  176.  
  177. function mb_InitHelp;
  178.     if mb_sHelpBody<>"";
  179.         mb_sHelp=mb_sHelpBody+mb_lf;
  180.     end_if;
  181.     mb_sHelp=mb_sHelp+"See "+mb_sDocName+" for details."+mb_end;
  182. end;
  183.  
  184. # handle show business
  185.  
  186. function mb_ShowHelp;
  187.     put frMsgBox, "Help";
  188.     show frMsgBox;
  189.     # after show, forces scrollbar show
  190.     if mb_sHelp="";
  191.         call mb_InitHelp;
  192.     end_if;
  193.     put mb_lbMsgText, mb_sHelp;
  194. end;
  195.  
  196. function mb_ShowAbout;
  197.     put frMsgBox, "About";
  198.     show frMsgBox;
  199.     # after show, forces scrollbar show
  200.     if not mb_bAboutDefined;
  201.         call mb_InitAbout;
  202.         mb_bAboutDefined=true();
  203.     end_if;
  204.     put mb_lbMsgText, mb_sAbout;
  205. end;
  206.  
  207. function mb_ShowNo(string title);
  208.     variables;
  209.         numeric mb;
  210.     end;
  211.     mb=message_box(0,title,"Not available.  "+
  212.      "Possible cause, only available from main form",
  213.      "","OK","");
  214. end;
  215.  
  216. # pilot evidently redraws objects then graphics, if your program
  217. #  has graphics that cover objects after reshow frame, redefine
  218. #  this function is your program to reshow the objects
  219. #
  220. function mb_Redraw;
  221. end;
  222.  
  223. # INVOKER FUNCTIONS - PRIVATE, MESSAGE FRAME
  224.  
  225. # swaps main and message box frames, and ok button
  226. #  reverses swap
  227. #
  228. function miHelp;
  229.     if mb_bDisable;
  230.         if mb_bVerbose;
  231.             call mb_ShowNo("Help");
  232.         end_if;
  233.     else;
  234.         hide frMain;
  235.         call mb_ShowHelp;
  236.     end_if;
  237. end;
  238.  
  239. function miAbout;
  240.     if mb_bDisable;
  241.         if mb_bVerbose;
  242.             call mb_ShowNo("About");
  243.         end_if;
  244.     else;
  245.         hide frMain;
  246.         call mb_ShowAbout;
  247.     end_if;
  248. end;
  249.  
  250. function mb_btOK;
  251.     hide frMsgBox;
  252.     show frMain;
  253.     call mb_Redraw;
  254. end;
  255.  
  256.