home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Bonus / WSTAR2 / DISK4 / CUSTHEDR.WM_ / CUSTHEDR.bin
Encoding:
Text File  |  1994-02-28  |  19.1 KB  |  246 lines

  1. REM Description: Insert custom-sized header or footer on current page.
  2. REM Filename: custhedr.wmc
  3. REM Created by Steve Wylie - 11/15/93
  4.  
  5. ' This macro has to create frame styles for the current page.  Otherwise, subsequent
  6. ' pages that have the same header or footer will not display properly.  This is also
  7. ' why the macro has to display a message warning users to apply the frame style to the
  8. ' other pages that may already exist.
  9.  
  10. REM There will be 9 default sizes
  11. DIM sizes$(10)
  12.  
  13. sizes$(1) = "1.250" + CHR$(34)
  14. sizes$(2) = "1.333" + CHR$(34)
  15. sizes$(3) = "1.500" + CHR$(34)
  16. sizes$(4) = "1.667" + CHR$(34)
  17. sizes$(5) = "1.750" + CHR$(34)
  18. sizes$(6) = "2.000" + CHR$(34)
  19. sizes$(7) = "2.250" + CHR$(34)
  20. sizes$(8) = "2.333" + CHR$(34)
  21. sizes$(9) = "2.500" + CHR$(34)
  22. sizes$(10) = "Other"
  23.  
  24. REM Can't run if no document open
  25. IF GetDocName$() = "" THEN
  26.     MESSAGE "Please create a new document or open an existing document first."
  27.     STOP
  28. ENDIF
  29.  
  30. REM Get the current frame number so we can get back later
  31. frameID% = GetFrame(0, 0, 0)
  32.  
  33. REM Must be a page frame
  34. frameType% = GetTextFrameType()
  35. WHILE frameType% <> 1 AND frameType% <> 2
  36.     ParentFrame
  37.     frameType% = GetTextFrameType()
  38. WEND
  39.  
  40. REM Get the size and position of the header or footer from the user.
  41.  
  42. index% = 3
  43. BEGIN DIALOG Dialog1 114, 160, "Custom Header / Footer"
  44.     TEXT           4, 4, 40, 8, "&Size:"
  45.     LISTBOX        4, 14, 60, 80, sizes$, index%
  46.     TEXT           4, 100, 80, 8, "&Other Size (in inches):"
  47.     TEXTBOX        4, 110, 80, 12, otherSize$
  48.     TEXT           4, 126, 60, 8, "Position:"
  49.     OPTIONGROUP    footer%
  50.     OPTIONBUTTON   4, 136, 50, 10, "&Header"
  51.     OPTIONBUTTON   4, 146, 50, 10, "&Footer"
  52.     OKBUTTON       70, 4, 40, 14
  53.     CANCELBUTTON   70, 20, 40, 14
  54. END DIALOG
  55.  
  56. ret% = Dialog(Dialog1)
  57.  
  58. IF ret% = 2 THEN STOP
  59.  
  60. IF index% = 10 THEN
  61.     size% = TO_DP(otherSize$, 0)
  62.     sizes$(index%) = otherSize$
  63.     IF size% <= 0 THEN
  64.         BEEP
  65.         STOP
  66.     ENDIF
  67. ELSE
  68.     size% = TO_DP(sizes$(index%), 0)
  69. ENDIF
  70.  
  71. GetFrameMargins l%, r%, t%, b%
  72. GetCurrentFrameStyle oldStyle$, local%
  73.  
  74. REM Devise new frame style name from top and bottom margins.
  75. IF footer% THEN
  76.     b% = size%
  77.     newStyle$ = "P " + LEFT$(From_DP$(t%, 0), 4) + " " + LEFT$(sizes$(index%), 4)
  78. ELSE
  79.     t% = size%
  80.     newStyle$ = "P " + LEFT$(sizes$(index%), 4) + " " + LEFT$(From_DP$(b%, 0), 4)
  81. ENDIF
  82.  
  83. REM Freeze the screen, so that the activity isn't distracting.
  84. rem freeze% = ViewFreezeScreen(1)
  85.  
  86. REM If the frame style already exists, apply it.  Otherwise, create it from the settings.
  87. IF ExistFrameStyle(newStyle$) THEN
  88.     FrameApplyFrameStyle newStyle$
  89. ELSE
  90.     REM Create the new frame style and modify it.  (If local is TRUE, then we want to use the current settings.)
  91.     FrameCreateFrameStyle newStyle$, oldStyle$, local%
  92.     DefineFrameStyle newStyle$, 0
  93.     DefineFrameStyleMargins , , t%, b%
  94.     EndDefineFrameStyle
  95.     FrameApplyFrameStyle newStyle$
  96. ENDIF
  97.  
  98. REM Now add the header or footer
  99. IF footer% THEN
  100.     REM If we can't insert a footer, there must already be one, so just make it the correct size.
  101.     IF InsertFooter( , 0) = -1 THEN
  102.         EditGoto 6, , , 
  103.         FrameSize , , , size%
  104.     ENDIF
  105. ELSE
  106.     IF InsertHeader( , 0) = -1 THEN
  107.         EditGoto 5, , ,
  108.         FrameSize , , , size%
  109.     ENDIF
  110. ENDIF
  111.  
  112. REM Restore the screen
  113. freeze% = ViewFreezeScreen(0)
  114. IF footer% THEN
  115.     typeStr$ = "footer"
  116. ELSE
  117.     typeStr$ = "header"
  118. ENDIF
  119. msg$ = "The new " + typeStr$ + " may overlap text on other pages in this document.  To correct this problem, "
  120. msg$ = msg$ + "apply the " + CHR$(13) + CHR$(34) + newStyle$ + CHR$(34) + " frame style to the page."
  121. ret% = MESSAGEBOX(msg$, "Note", 64)
  122.     
  123.  
  124. 
  125. *****  WARNING *****
  126. This is a WSWin macro file.
  127. Subsequent data is binary information and should not be modified.
  128. # MF # 1.0None762570339Xêä35;
  129. 1à
  130. 82Ç
  131. 0èàïë
  132. êïîì"Äçî    èÄ
  133. 82Å
  134. 0æàÆë
  135. êÆôö"òÉô    æò
  136. 82û
  137. 0ÿàÖë
  138. êÖÜ¢"£ùÜ    ÿ£
  139. 82¥
  140. 0ƒàáë
  141. êáíó"ú₧í    ƒú
  142. 82ñ
  143. 0ªàºë
  144. 꺿⌐"¬Ñ¿    ª¬
  145. 82½
  146. 0¡à«ë
  147. ê«»░"▒¼»    ¡▒
  148. 82▓
  149. 0┤à╡ë
  150. ê╡╢╖"╕│╢    ┤╕
  151. 82╣
  152. 0╗à╝ë
  153. ê╝╜╛"┐║╜    ╗┐
  154. 82└
  155. 0…É
  156. ê├─┼"╞┴─    ┬╞
  157. 82å
  158. 0╚à    ╚╟
  159. 8╔╠═
  160. â╠╦╬â
  161. 8╤╨
  162. ╧╤╥╙
  163. 8
  164. 8 ╓╫╪╒╓╫╪╘┘
  165. 8 #█┌▄
  166. 8#$ ▐┌Ç ▀┌Åâ▐▀αâ
  167. 8$%ßΓ
  168. 8%&█┌π▌
  169. 8&+Σû
  170. 3σµτΦ4 ¥¥Θ╣Ω4¥δ∞φàΣ4 ¥εφ╣∩4¥≡φ±≥4 ¥≤∞╣⌠4 ⌡4
  171. ¥÷≈å°4
  172. ¥∙≈å· 4√¥Θδ 4    √ⁿΘδ
  173. 8+75
  174. 8796²σ
  175. 89:
  176. â²Å â
  177. 8:;
  178. 8;<
  179. âΣåâ
  180. 8<> ≥
  181. 8>?2Σ
  182. 0à    ≥
  183. 8??ââ
  184. 8?A
  185. 8AB
  186. 8BE2Σ
  187. 0    à
  188.      
  189.  
  190. 8EH 
  191. 8HI
  192. 
  193. 8IKâ⌡â
  194. 8KM
  195. 8MN  ¥  !""#!"$#2Σ
  196. 0%à&¥ %&'(")$'    )
  197. 8NP
  198. 8PQ2Σ
  199. 0*à+¥ *+,-".,"/.0 0123¥ 1345"6/4    6
  200. 8QW"
  201. 79:â9;â
  202. 8W"Y<=8
  203. 8Y\ >?
  204. 8\]A
  205. @AB
  206. 8]^CE
  207. 8^_FG
  208. 8_`<H
  209. 8`câ⌡Jâ
  210. 8ce"M KMNO!PÇ
  211. âNPQâ
  212. 8e"gS½RST
  213. 8ghUVI
  214. 8hj"Y WYZ[!\Ç
  215. âZ\]â
  216. 8j"l^ñR^_
  217. 8lmU`
  218. 8mrc
  219. bcad
  220. 8rrâ⌡fâ
  221. 8rt    ghe
  222. 8tv    gi
  223. 8vx"mkg"nml    jn
  224. 8xy"rjosp
  225. êstu"vrtwë
  226. êwxy"zvx"{z|ë
  227. ê|}~"{}"Çq    jÇ
  228. 8yzäéàâüjäà²åë~▒∞êêêêêêêêêêêêêêêêêêêê.gN.gN.gN .gN-.gN5.gN;.gNA.gNN.gN^.gN    l.gN
  229. z.gN ê.gN û.gNñ.gN▓.gN╢.gN╣.gN╜.gN└.gN┬.gN─.gN╞.gN╔.gN╠.gN╧.gN╥.gN╘.gN╓.gN┌.gN▄.gN▐.gNα.gN Γ.gN!Σ.gN"Θ.gN#∞.gN$≡.gN%⌡.gN&ⁿ.gN'/gN(
  230. /gN)/gN*/gN+/gN,"/gN-(/gN.-/gN/3/gN06/gN1;/gN2@/gN3B/gN4E/gN5J/gN6N/gN7T/gN8Y/gN9`/gN:g/gN;l/gN<o/gN=w/gN>y/gN?{/gN@/gNAê/gNBî/gNCÅ/gNDù/gNE₧/gNFú/gNG¡/gNH┤/gNI╣/gNJ╜/gNK┬/gNL╟/gNM═/gNN╤/gNO╒/gNP▄/gNQπ/gNRΩ/gNS≡/gNT≈/gNU0gNV0gNW0gNX$0gNY10gNZ:0gN[G0gN\P0gN]X0gN^`0gN_h0gN`q0gNav0gNb{0gNcÇ0gNdç0gNeÄ0gNfö0gNg¢0gNh¥0gNió0gNj¿0gNk«0gNl╡0gNm╛0gNn╟0gNo╦0gNp╙0gNq╫0gNr▄0gNsΓ0gNtΦ0gNuε0gNv⌠0gNw∙0gNx■0gNy1gNz1gN{1gN|1gN}┐N  ┐N+┐N+    ┐N┐N┐N  ┐N ┐N
  231.           
  232. '┐N+  
  233. *┐N+      2┐N
  234. ëp7┐N+  ":┐N      à?┐N  D┐N      I┐N     N┐N      S┐N+  U┐N+      ]┐N      àb┐N  g┐N      l┐N     r┐N      x┐N+  z┐N+      é┐N      àê┐N  Ä┐N      ö┐N     Ü┐N      á┐N+  ó┐N+      ¬┐N      à░┐N  ╢┐N      ╝┐N     ┬┐N      ╚┐N+  ╩┐N+      ╥┐N      à╪┐N  ▐┐N      Σ┐N     Ω┐N      ≡┐N+  ≥┐N+      ·┐N      à┐N  ┐N       ┐N     ┐N      ┐N+  ┐N+      "┐N      à(┐N  .┐N      4┐N     :┐N      @┐N+  B┐N+      J┐N      àP┐N  V┐N      \┐N     b┐N      h┐N+      j┐N+      r┐N      àx┐N  ~┐N      ä┐N     è┐N      É┐N+      ÿ┐N      à₧┐N
  235. ë¬┐N  V»┐N+      ▓┐N      ╕┐N     ╛┐N  V├┐Nç╦┐N+      ┐N      ┐N  ┐N      ┐N          )┐Nç2┐N  8┐N  >┐N  D┐N     J┐N          U┐Nçf┐N     l┐N  Æq┐N  w┐N  }┐N  αé┐NAÄ┐N     ö┐N     Ü┐N          í┐N      ⌐┐N+  r¡┐N+  á▒┐N+      ╩┐N+  (═┐N+      ╓┐N+  ┘┐N+  <▄┐N+  P▀┐N+  dπ┐N+      ■┐N+  n┐N+   ┐N
  236.           ┐N+  ~┐N+       ┐N          (┐N+  ê,┐N+  2/┐N+      9┐N+  Æ=┐N+      G┐N+  FJ┐N+  M┐N          R┐N  ╝W┐N  ╝\┐N  la┐N  Bf┐N          l┐Nçr┐N  x┐N     ~┐N      àä┐N  >ë┐N  >Å┐N      àò┐N  ¢┐N     í┐NA"▒┐N          ┤┐N          ╖┐N          ║┐N          ╜┐N     ├┐NA'╪┐N
  237.           Γ┐N          Θ┐N     ∩┐N  ¬⌡┐N  .√┐N
  238.           ┐N+      
  239. ┐N
  240. ë9┐N
  241. ë6┐N+      ┐N  #┐N      )┐N     /┐N  5┐N      ;┐N     A┐N      G┐N      M┐N      àS┐N  Y┐N      _┐N     e┐N      k┐N      àq┐N  w┐N      }┐N     â┐N      ë┐N      Å┐N  ò┐N      ¢┐N     í┐N  º┐N      ¡┐N     │┐N      ╣┐Nç<╔┐N  L╧┐N  ╒┐N     █┐N  αß┐NAN÷┐N     ⁿ┐NA@┐N     ┐NAD)┐N  0┐N     7┐NAGO┐N  V┐N      ]┐NALq┐N     x┐N     ┐N  2à┐N  ╠ï┐NçPÿ┐N  ╚₧┐N  Ñ┐N  ¼┐N     │┐N  ║┐N  ╚└┐NA`╔┐N  ╨┐N     ╫┐NAeß┐N     Φ┐Nç]⌡┐N  2√┐N  ┐N      ┐N     ┐N  ┐N  2┐N  $┐N     +┐N     2┐N          :┐NçjK┐N  R┐N     Y┐N  å_┐N  ve┐N
  242.           n┐N+      w┐N+      Ç┐N
  243.           à┐N+      É┐N+      α┐N      τ┐N      ε┐N+      √┐N+  ■┐N+      ┐N      !┐N  (┐N      /┐N     6┐N      =┐N  D┐N      K┐N     R┐N      Y┐N      `┐N  g┐N      n┐N     u┐N      |┐N      â┐NçrÄ┐N+      ò┐N+  @ÿ┐N      ƒ┐N  ª┐N     ¡┐N»┐N????01CANCELERRORNUM[T1]
  244. SIZES$10"1.250"CHR$34[T2][T3][T4][T5][T6]2"1.333"[T7][T8][T9][T10][T11]3"1.500"[T12][T13][T14][T15][T16]4"1.667"[T17][T18][T19][T20][T21]5"1.750"[T22][T23][T24][T25][T26]6"2.000"[T27][T28][T29][T30][T31]7"2.250"[T32][T33][T34][T35][T36]8"2.333"[T37][T38][T39][T40][T41]9"2.500"[T42][T43][T44][T45][T46]"Other"[T47]GETDOCNAME$[L1]""[T48][T49][L2]MESSAGE"Please create a new document or open an existing document first."[T50][T51][T52]FRAMEID%GETFRAME[T53][T54][T55][T56]FRAMETYPE%GETTEXTFRAMETYPE[T57][L3][T58][T59][L4]PARENTFRAME[T60][T61]INDEX%DIALOG1114160"Custom Header / Footer"40"&Size:"146080100"&Other Size (in inches):"11012OTHERSIZE$126"Position:"FOOTER%13650"&Header"146"&Footer"7020RET%[L5][L6][L7][L8]SIZE%TO_DP[T62][T63][T64][L9][L10][T65][T66][T67]GETFRAMEMARGINSL%R%T%B%[T68]GETCURRENTFRAMESTYLEOLDSTYLE$LOCAL%[T69][L11][L12]NEWSTYLE$"P "LEFT$FROM_DP$" "[T70][T71][T72][T73][T74][T75][T76][T77][T78][T79][T80][T81][T82][T83][T84][T85][T86][T87][T88][T89][T90][T91][T92][T93][T94][T95]EXISTFRAMESTYLE[L13][T96][T97][L14]FRAMEAPPLYFRAMESTYLE[T98]FRAMECREATEFRAMESTYLE[T99]DEFINEFRAMESTYLE[T100][T101]DEFINEFRAMESTYLEMARGINS[T102][T103]ENDDEFINEFRAMESTYLE[T104][T105][L15][L16]INSERTFOOTER[L17][T106][T107][T108][T109][L18]EDITGOTO[T110][T111]FRAMESIZE[T112]INSERTHEADER[L19][T113][T114][T115][T116][L20][T117][T118][T119]FREEZE%VIEWFREEZESCREEN[T120][T121][L21][L22]TYPESTR$"footer""header"MSG$"The new "" may overlap text on other pages in this document.  To correct this problem, "[T122][T123]"apply the "13" frame style to the page."[T124][T125][T126][T127][T128][T129][T130][T131][T132][T133][T134][T135][T136][T137][T138]MESSAGEBOX"Note"64[T139][T140][T141]
  245.