home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 1 / ARM_CLUB_CD.iso / contents / apps / program / a / assembly / FontWindow / !Demo / NormalSrc (.txt) < prev    next >
Encoding:
RISC OS BBC BASIC V Source  |  1993-01-27  |  5.7 KB  |  208 lines

  1.   >NormalSrc
  2.      Demonstration of use of FontWindow module
  3.      Simple menu bar + dboxes
  4.      Windows are created at time of load.
  5.      Look for REM### to see where I've put FontModule code
  6.   MACHINE:  Archimedes
  7.   LANGUAGE: BBC BASIC V (v1.05)
  8.   AUTHOR:   Cy Booker,
  9.             86 Church View, Main Road, Crockenhill, Swanley, Kent.
  10.             BR8 8JW
  11.      apologies for the crappy coding, but it is done in a hurry
  12. main(FontWindow, Title$)
  13.  = &8000+64*1024
  14.   Debug% = 
  15.  q% 256
  16.   $q%="TASK"
  17.  "Wimp_Initialise",200,!q%, Title$ 
  18.  , TaskHandle%
  19.  need local error handlers before poll loop...
  20.  FontWindow 
  21. Q    
  22.  "FontWindow_Initialise", TaskHandle%, 0,0, 0,0, 0, 0, 100 
  23.  FontTable%
  24. =    
  25.  FontTable% 256:
  26.  i%= 0 
  27.  255:FontTable%?i% = 0:
  28. loadtemplates
  29. makemenus
  30. makeiconbaricon
  31. reporterror
  32. )"    
  33.  "Wimp_Poll",&31,q% 
  34. +%    
  35.  "Wimp_OpenWindow",, q%
  36. ,&    
  37.  "Wimp_CloseWindow",, q%
  38. mouseclick
  39. menuselect
  40.  17,18:
  41. message
  42. 0        
  43.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  44. closedown
  45.  FontWindow 
  46. 94    
  47.  "FontWindow_CloseDown", TaskHandle%, 
  48.  i%=0 
  49.       
  50.  FontTable%?i%
  51. =#        
  52.  "XFont_LoseFont", i%
  53.         FontTable%?i% -= 1
  54.       
  55.  "Wimp_CloseDown"
  56.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  57. loadtemplate(name$, 
  58.  wh%)
  59.   $q% = name$+ 
  60.  "Wimp_LoadTemplate",, buf%, indrove%, ind%+bufsiz%, FontTable%, q%, 0 
  61.  ,, indrove%,,,, pos%
  62.  pos%=0 
  63.  1, "Can't find template "+ name$
  64.  FontWindow 
  65. NE    
  66.  "FontWindow_CreateWindow", TaskHandle%, buf%, 0 
  67.  wh%, qq%
  68. P+    
  69.  "Wimp_CreateWindow",, buf% 
  70.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  71. message_modechange
  72.  FontWindow 
  73. Y/    
  74.  "FontWindow_ModeChange", TaskHandle%
  75.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  76. message_menuwarning
  77.   x% = q%!24
  78.   y% = q%!28
  79.   item% = q%!32
  80.  item% 
  81.  FontWindow 
  82. g@      
  83.  "FontWindow_UpdateWindow", TaskHandle%, ProgInfo_W%
  84. h        
  85. i5    
  86.  "Wimp_CreateSubMenu",, ProgInfo_W%, x%, y%
  87.  FontWindow 
  88. m>      
  89.  "FontWindow_UpdateWindow", TaskHandle%, SaveAs_W%
  90. n        
  91. o3    
  92.  "Wimp_CreateSubMenu",, SaveAs_W%, x%, y%
  93.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  94. mouseclick
  95.  (q%!12 = -2) 
  96.  (q%!16 = IconBarIcon%) 
  97.  (q%!8 
  98. xL      
  99.  "Wimp_CreateMenu",, Menu%, q%!0 - ((Menu%!16)>>1), 96+44*3+24*0
  100. y        
  101.       !q% = Document_W%
  102. {'      
  103.  "Wimp_GetWindowState",, q%
  104.       q%!28 = -1
  105.       
  106.  FontWindow 
  107. D        
  108.  "FontWindow_OpenWindow", TaskHandle%, q%, Document_W%
  109.       
  110. %        
  111.  "Wimp_OpenWindow",, q%
  112.       
  113.         
  114. menuselect
  115.  !q% = 2 
  116. closedown
  117.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  118. reporterror
  119.   !q% = 
  120.  Debug% 
  121. '    
  122. putz(q%+4, 
  123. $+ " code "+ 
  124. putz(q%+4, 
  125.  "Wimp_ReportError", q%, 3, Title$ 
  126.  , choice%
  127.  choice% = 2 
  128. closedown
  129.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  130. loadtemplates
  131.   bufsiz% = 10*1024
  132.  buf% bufsiz%  :
  133.   kludge
  134.  ind% bufsiz%  :
  135.  kludge
  136.   indrove% = ind%
  137.  "Wimp_OpenTemplate",, "<DemoFontWindow$Dir>.Templates"
  138.  local error handler...
  139. loadtemplate("ProgInfo", ProgInfo_W%)
  140. loadtemplate("SaveAs", SaveAs_W%)
  141. loadtemplate("Test", Document_W%)
  142.   the following window will not be cached, as it contains no
  143.   anti-aliased fonts.
  144. loadtemplate("Query", Query_W%)
  145.  "Wimp_CloseTemplate"
  146.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  147. makemenus
  148.   menusiz% = 10*1024
  149.  Menu% menusiz%
  150.   menu% = Menu%
  151. menutitle(Title$)
  152. menuitem("Info", 1 << 3, &8004)
  153. menuitem("Save as", 1 << 3, &8004)
  154. menuitem("Quit", 1 << 7, -1)
  155. menutitle(title$)
  156.   $menu% = title$
  157.   menu%?12 = 7
  158.   menu%?13 = 2
  159.   menu%?14 = 7
  160.   menu%?15 = 0
  161.   menu%!16 = 11*16
  162.   menu%!20 = 44
  163.   menu%!24 = 0
  164.   menu% += 28
  165. menuitem(item$, flags%, data%)
  166.   menu%!0 = flags% 
  167.   menu%!4 = data%
  168.   menu%!8 = &07000021
  169. &  $(menu%+12) = item$+ 
  170. (13))
  171.   menu%+=24
  172.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  173. makeiconbaricon
  174.  name% 13
  175.   $name% = "!demo"
  176.   q%!0 = -1
  177.   q%!4 = 0
  178.   q%!8 = 0
  179.   q%!12 = 68
  180.   q%!16 = 68
  181.   q%!20 = &07006102
  182.   q%!24 = name%
  183.   q%!28 = +1
  184.   q%!32 = 
  185. ($name%) + 1
  186.  "Wimp_CreateIcon",, q% 
  187.  IconBarIcon%
  188.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  189. message
  190.  q%!16 
  191. closedown
  192.  &400C0:
  193. message_menuwarning
  194.  &400C1:
  195. message_modechange
  196.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  197.  Debug% 
  198. !    
  199. $+ ", ["+ 
  200. )+ "]"
  201. getz(q%)
  202. ?q%:V$+=
  203. (?q%):q%+=1:
  204. putz(z%, z$)
  205.   $z% = z$
  206.   z%?
  207. z$ = 0
  208.