home *** CD-ROM | disk | FTP | other *** search
/ stazsoftware.com / www.stazsoftware.com.tar / www.stazsoftware.com / futurebasic / sample-code / SwitchingToFB.sit / storage_bin / Window.incl < prev    next >
Text File  |  2002-07-31  |  5KB  |  178 lines

  1.  
  2. /*
  3.      this function insures that you are not entering
  4.      text before 'new' is selected
  5. */
  6.  
  7.  
  8. LOCAL FN storBinEFFilter
  9. '~';
  10. DIM ignore
  11. LONG IF gCurrentRecord(WINDOW(_outputWnd)) == -1//oops! no record created yet
  12. CALL PARAMTEXT("Click 'New' to create a record","before attempting to type.","","")
  13. ignore = FN NOTEALERT(1,0)
  14. EDIT FIELD 0
  15. XELSE
  16. TEKEY$ = TEKEY$
  17. END IF
  18. END FN
  19.  
  20.  
  21. /*
  22.      this routine builds a prompt field (static text) and
  23.      an editable field.
  24. */
  25.  
  26. LOCAL FN createFields(prompt$,efNum,dividingLine,prevBottom)
  27. '~';
  28. DIM r      AS RECT
  29. DIM err    AS OSErr
  30. gEFfilterAddr = @fn storBinEFFilter
  31.  
  32. err = FN USETHEMEFONT(_kThemeEmphasizedSystemFont,_smSystemScript)
  33. SETRECT(r,_margin,prevBottom + _margin,dividingLine - _margin \\2 ,prevBottom + _margin + USR FONTHEIGHT)
  34. EDIT FIELD efNum + 1000, prompt, @r,_statNoFramed,_rightJust
  35.  
  36. r.left = dividingLine + _margin\\2
  37. r.right = WINDOW(_width) -_margin
  38. err = FN USETHEMEFONT(_kThemeApplicationFont,_smSystemScript)
  39. EDIT FIELD efNum,"",@r,_framedNoCR,_leftJust,gEFfilterAddr
  40.  
  41. END FN = r.bottom
  42.  
  43. /*
  44.      this routine builds the navigation buttons in the
  45.      storage bin editor window and moves the rectangle
  46.      to the left so that it is in position for the next 
  47.      button
  48. */
  49. LOCAL FN buildButton(bRef,cTitle AS STR255,@rPtr AS ^RECT,state)
  50. '~';
  51. DIM r AS RECT
  52. DIM err AS OSErr
  53. DIM wd AS WORD
  54.  
  55. BLOCKMOVE rPtr,@r,SIZEOF(RECT)
  56.  
  57. err = FN USETHEMEFONT(_kThemeSystemFont,_smSystemScript)
  58. wd  = FN STRINGWIDTH(cTitle) + _margin * 3
  59. r.left = r.right - wd
  60.  
  61. APPEARANCE BUTTON bRef,state,1,0,1,cTitle,@r,┬
  62.           _kControlPushButtonProc_kControlUsesOwningWindowsFontVariant
  63.  
  64. rPtr.right = r.left - _margin
  65. END FN
  66.  
  67. /*
  68.      here, we open a storage bin window & build
  69.      the fields and buttons
  70. */
  71.  
  72. LOCAL FN openSBWindow(wRef AS LONG, wTitle AS STR63)
  73. '~';
  74. DIM r           AS RECT
  75. DIM wClass      AS WindowClass
  76. DIM wAttributes AS WindowAttributes
  77. DIM err         AS OSErr
  78. dim bot
  79. _edge = 96
  80.  
  81. // the window
  82. SETRECT(r,0,0,360,260)
  83. wClass = _kDocumentWindowClass 
  84. wAttributes = _kWindowCloseBoxAttribute_kWindowCollapseBoxAttribute
  85. DEF NEWWINDOWPOSITIONMETHOD(_kWindowCascadeOnMainScreen)
  86. APPEARANCE WINDOW wRef,wTitle,@r,wClass,wAttributes
  87. DEF SETWINDOWBACKGROUND( _kThemeActiveDialogBackgroundBrush,_zTrue)
  88.  
  89. // the record number
  90. err = FN USETHEMEFONT(_kThemeEmphasizedSystemFont,_smSystemScript)
  91. SETRECT(r,_margin,_margin,WINDOW(_width)-_margin,_margin + USR FONTHEIGHT)
  92. EDIT FIELD _recNumField,,@r,_statNoFramed 
  93. bot = r.bottom
  94.  
  95. bot = FN createFields("Last Name:" ,_lastNameField ,_edge ,bot)
  96. bot = FN createFields("First Name:",_firstNameField,_edge ,bot)
  97. bot = FN createFields("Address:"   ,_address1Field ,_edge ,bot)
  98. bot = FN createFields(""           ,_address2Field ,_edge ,bot)
  99. bot = FN createFields("City:"      ,_cityField     ,_edge ,bot)
  100. bot = FN createFields("State:"     ,_stateField    ,_edge ,bot)
  101. bot = FN createFields("Zip:"       ,_zipfield      ,_edge ,bot)
  102. bot = FN createFields("Phone:"     ,_phonefield    ,_edge ,bot)
  103. EDIT FIELD _lastNameField
  104.  
  105. // navigation buttons
  106. r.bottom = WINDOW(_height) - _margin
  107. r.right  = WINDOW(_width ) -_margin
  108. r.top    = r.bottom - 24
  109. r.left   = r.right  - 24
  110.  
  111. FN buildButton(_lastBtn ,"->|",r,_grayBtn)
  112. FN buildButton(_nextBtn ,"->",r,_grayBtn)
  113. FN buildButton(_prevBtn ,"<-",r,_grayBtn)
  114. FN buildButton(_firstBtn,"|<-" ,r,_grayBtn)
  115. FN buildButton(_newBtn  ,"New"   ,r,_grayBtn)
  116. FN buildButton(_delBtn  ,"Delete",r,_grayBtn)
  117.  
  118. FN displayRecord
  119.  
  120. END FN
  121.  
  122. /*
  123.      this opens the preference window & builds
  124.      the fields and buttons
  125. */
  126. LOCAL FN openPrefWindow
  127. '~';
  128. DIM r           AS RECT
  129. DIM wClass      AS WindowClass
  130. DIM wAttributes AS WindowAttributes
  131. DIM err         AS OSErr
  132. DIM b           AS WORD
  133. DIM btnValue    AS WORD
  134.  
  135. // the window
  136. SETRECT(r,0,0,300,108)
  137. wClass = _kDocumentWindowClass 
  138. wAttributes = _kWindowCloseBoxAttribute_kWindowCollapseBoxAttribute
  139. DEF NEWWINDOWPOSITIONMETHOD(_kWindowAlertPositionOnMainScreen)
  140. APPEARANCE WINDOW _prefWnd,"Preferences",@r,wClass,wAttributes
  141. DEF SETWINDOWBACKGROUND( _kThemeActiveDialogBackgroundBrush,_zTrue)
  142.  
  143. b = FN createFields("Report Title:" ,_preftitleFld ,92 ,8)
  144. EDIT$(_preftitleFld) = gPref.reportTitle
  145.  
  146. SETRECT(r,8,b + _margin * 2,WINDOW(_width)\\2,b + USR FONTHEIGHT+ _margin * 2)
  147. LONG IF gPref.titleInfoFlags AND _includeDateMask
  148. btnValue = _kControlCheckBoxCheckedValue
  149. XELSE
  150. btnValue = _kControlCheckBoxUncheckedValue
  151. END IF
  152.  
  153. APPEARANCE BUTTON _prefIncludeDateBtn,_activebtn ,btnValue,0,┬
  154.      _kControlCheckBoxCheckedValue,"Include Date",┬
  155.      @r,_kControlCheckBoxProc
  156.  
  157. r.left = r.Right + _margin
  158. r.Right = WINDOW(_width) -_margin
  159.  
  160. LONG IF gPref.titleInfoFlags AND _includePageNumber
  161. btnValue =  _kControlCheckBoxCheckedValue
  162. XELSE
  163. btnValue = _kControlCheckBoxUncheckedValue
  164. END IF
  165.  
  166. APPEARANCE BUTTON _prefIncludePageNumberBtn,_activebtn ,btnValue,0,┬
  167.      _kControlCheckBoxCheckedValue,"Include Page #",┬
  168.      @r,_kControlCheckBoxProc
  169.  
  170. r.bottom = WINDOW(_height) - _margin
  171. r.right  = WINDOW(_width ) -_margin
  172. r.top    = r.bottom - 24
  173. r.left   = r.right  - 24
  174. FN buildButton(_prefOKBtn     ,"OK"    ,r ,_activeBtn)
  175. FN buildButton(_prefCancelBtn ,"Cancel",r ,_activeBtn)
  176.  
  177. END FN
  178.