home *** CD-ROM | disk | FTP | other *** search
- property iTheIndex, iIndexTypeK, iPagePointer, iPageHeightK, iIndexLength, iLineHeight, iWinTop, iNumofColsK, iColHeightK, iFSlistType, iPrevHL, iMyPage, itheItemNow, iDontResetLineF, iCHROpointer
- global gIndxScrollFldK, gOurFontK, gStatusField, gMACListenStatus, ghitlist, gInputField, gGlobalStepCount, gCHROisScrolling, gdescfield, gAlphaState, gNumofHits, oSLlookup, gFirstYearK, gLastYearK, gModeState, gLocalStepCount, oIndexMediator, oINTERfaceAlph, oINTERfaceEpis, oINTERfaceUpdate, oIndexSlider, oTextSlider, gStashedHitsList, gStashedSEEList
-
- on birth me, pType, pHeight, pCols
- set gIndxScrollFldK to the number of cast "BltIndexWin1"
- put " " into field gIndxScrollFldK
- set iNumofColsK to pCols
- set iPageHeightK to pHeight * pCols
- set iColHeightK to pHeight
- set iPagePointer to 1
- set itheItemNow to 1
- set iMyPage to EMPTY
- set iFSlistType to 1
- mInitStyle(me)
- mGetIndexData(me)
- hputmsg(">birth event of oIndexScroller computes iIndexLength=" & iIndexLength)
- return me
- end
-
- on mClearIndexParams me
- set iPagePointer to 1
- set itheItemNow to 0
- set iIndexLength to 0
- put " " into field gIndxScrollFldK
- end
-
- on mInitStyle me
- put " " into field gIndxScrollFldK
- set the textFont of field gIndxScrollFldK to gOurFontK
- set the textHeight of cast gIndxScrollFldK to 13
- set iLineHeight to the textHeight of cast gIndxScrollFldK
- end
-
- on mGetIndexData me
- set iTheIndex to [:]
- sort(iTheIndex)
- set iTheIndex to mGrabCurrAttrList(oIndexMediator, gModeState)
- if not objectp(iTheIndex) then
- abort()
- end if
- set itheItemNow to integer(value(mGrabCurrItem(oIndexMediator)))
- set iIndexLength to mGetModesMaxEntryNum(oIndexMediator)
- put "Retrieving data..." into field "Status"
- end
-
- on mUpdatePagePointer me
- set iPagePointer to mGetItemsFirstEntryNum(oIndexMediator, itheItemNow)
- end
-
- on mSetDontResetLine me, pTo
- set iDontResetLineF to pTo
- end
-
- on mJumpIndex me, pMseLine
- if pMseLine > 0 then
- put line pMseLine of field gIndxScrollFldK into field gInputField
- hilite char 999 of field gInputField
- hHiliteItem(pMseLine)
- set iDontResetLineF to 1
- mMatchScrollBar(me)
- end if
- end
-
- on mMatchScrollBar me
- mSetSlider(oIndexSlider, iPagePointer, 0)
- if gModeState = #CHRO then
- mSetSlider(oTextSlider, iPagePointer, 0)
- end if
- hSysAlert(#LCARSREADY)
- hWinVoiceMicOn()
- end
-
- on mNextPage me
- if (iPagePointer + iPageHeightK - 1) <= iIndexLength then
- set iPagePointer to iPagePointer + iPageHeightK - 1
- hSetIncomingCurrItem(iPagePointer)
- else
- abort()
- end if
- mMatchScrollBar(me)
- end
-
- on mPriorPage me
- set iPagePointer to iPagePointer - iPageHeightK
- if iPagePointer < 1 then
- set iPagePointer to 1
- end if
- mMatchScrollBar(me)
- end
-
- on mNextLine me
- if (iPagePointer + 1) <= iIndexLength then
- set iPagePointer to iPagePointer + 1
- hSetIncomingCurrItem(iPagePointer)
- end if
- mMatchScrollBar(me)
- end
-
- on mPriorLine me
- set iPagePointer to iPagePointer - 1
- if iPagePointer < 1 then
- set iPagePointer to 1
- end if
- mMatchScrollBar(me)
- end
-
- on mIndexForwardPage me
- mNextPage(me)
- mGetPage(me)
- mMatchScrollBar(me)
- hMatchTbarToWindow()
- end
-
- on mIndexBackPage me
- mPriorPage(me)
- mGetPage(me)
- mMatchScrollBar(me)
- hMatchTbarToWindow()
- end
-
- on mIndexForwardLine me
- mNextLine(me)
- mGetPage(me)
- mMatchScrollBar(me)
- hMatchTbarToWindow()
- end
-
- on mIndexBackLine me
- mPriorLine(me)
- mGetPage(me)
- mMatchScrollBar(me)
- hMatchTbarToWindow()
- end
-
- on mUpdateChroIndex me, pGlobNdx
- hSetGlobalCounter(pGlobNdx)
- mConvertGlobaltoLocal(oIndexMediator)
- mShiftWindowToEntry(me, gLocalStepCount, 1)
- hMatchEntryToIndexLine(1)
- end
-
- on mUpdateWinToCHROEntry me, pGlobEntNum, pAtTop
- if pGlobEntNum >= 1 then
- if iDontResetLineF then
- set iPagePointer to iPagePointer
- else
- if pAtTop then
- set iPagePointer to pGlobEntNum
- else
- set iPagePointer to pGlobEntNum - (iPageHeightK / 2)
- end if
- end if
- if iPagePointer > iIndexLength then
- set iPagePointer to iIndexLength
- end if
- if iPagePointer < 1 then
- set iPagePointer to 1
- end if
- set iCHROpointer to pGlobEntNum
- mGetPage(me)
- hMatchTbarToWindow()
- else
- end if
- set iDontResetLineF to 0
- mMatchScrollBar(me)
- end
-
- on mShiftWindowToEntry me, pEntryNum, pAtTop
- if (pEntryNum >= 1) and not gCHROisScrolling then
- if iDontResetLineF then
- set iPagePointer to iPagePointer
- else
- if pAtTop then
- set iPagePointer to mTranslateLocaltoGlobal(oIndexMediator, pEntryNum)
- else
- set iPagePointer to mTranslateLocaltoGlobal(oIndexMediator, pEntryNum) - (iPageHeightK / 2)
- end if
- end if
- if iPagePointer > iIndexLength then
- set iPagePointer to iIndexLength
- end if
- if iPagePointer < 1 then
- set iPagePointer to 1
- end if
- mGetPage(me)
- hMatchTbarToWindow()
- if gModeState = #CHRO then
- mHomeTxtScroll(oTextScroller)
- end if
- else
- end if
- set iDontResetLineF to 0
- mMatchScrollBar(me)
- end
-
- on mBuildaPage me, pMyItem
- set iMyPage to EMPTY
- set LmyLocalCntr to mTranslateGlobaltoLocal(oIndexMediator, iPagePointer, pMyItem)
- if iIndexLength < iPageHeightK then
- set Llastline to iIndexLength
- else
- set lx to iPagePointer + iPageHeightK - 1
- if lx > iIndexLength then
- set Loffset to lx - iIndexLength
- set Llastline to LmyLocalCntr + iPageHeightK - 1 - Loffset
- else
- set Llastline to LmyLocalCntr + iPageHeightK - 1
- end if
- end if
- repeat with vIndexItem = LmyLocalCntr to Llastline
- put getPropAt(iTheIndex, vIndexItem) & RETURN after iMyPage
- end repeat
- set the textStyle of field gIndxScrollFldK to "plain"
- put iMyPage into field gIndxScrollFldK
- return 1
- end
-
- on mBuildEPISSUBPage me
- set iMyPage to EMPTY
- set LmyItem to the iCurrentItem of oIndexMediator
- set LmyLocalCntr to iPagePointer
- if iIndexLength < iPageHeightK then
- set Llastline to iIndexLength
- else
- set lx to iPagePointer + iPageHeightK - 1
- if lx > iIndexLength then
- set Llastline to iIndexLength
- else
- set Llastline to iPagePointer + iPageHeightK - 1
- end if
- end if
- repeat with vIndexItem = LmyLocalCntr to Llastline
- put getPropAt(iTheIndex, vIndexItem) & RETURN after iMyPage
- end repeat
- put mAddTrailingReturns(me) after iMyPage
- set the textStyle of field gIndxScrollFldK to "plain"
- put iMyPage into field gIndxScrollFldK
- return 1
- end
-
- on mAddTrailingReturns me
- set vWindowBlanks to iPagePointer + iPageHeightK - 1 - iIndexLength
- set vBlankstoAdd to EMPTY
- if vWindowBlanks > 0 then
- repeat with vLineCount = 1 to vWindowBlanks
- put RETURN after vBlankstoAdd
- end repeat
- end if
- return vBlankstoAdd
- end
-
- on mBuildFTLUPage me, pStart
- set iMyPage to EMPTY
- if iIndexLength < iPageHeightK then
- set Llastline to iIndexLength
- else
- set lx to iPagePointer + iPageHeightK - 1
- if lx > iIndexLength then
- set Llastline to iIndexLength
- else
- set Llastline to pStart + iPageHeightK - 1
- end if
- end if
- repeat with vIndexItem = pStart to Llastline
- put mSetOneFTfromLU(oSLlookup, vIndexItem) & RETURN after iMyPage
- end repeat
- set the textStyle of field gIndxScrollFldK to "plain"
- put iMyPage into field gIndxScrollFldK
- return 1
- end
-
- on mGetPage me
- if gModeState = #FoundSet then
- mBuildFTLUPage(me, iPagePointer)
- else
- if gModeState = #EPISSUB then
- mBuildEPISSUBPage(me)
- else
- set vLastLine to iPagePointer + iPageHeightK - 1
- if vLastLine > iIndexLength then
- set vLastLine to iIndexLength
- end if
- set iPagePointer to 1 + vLastLine - iPageHeightK
- if iPagePointer < 1 then
- set iPagePointer to 1
- end if
- set Lstartitem to hGetMyAlphaGroupItem(iPagePointer)
- set Lenditem to hGetMyAlphaGroupItem(vLastLine)
- set Lcurritem to integer(value(mGrabCurrItem(oIndexMediator)))
- if (Lstartitem = Lenditem) and (Lstartitem = Lcurritem) then
- if itheItemNow <> Lcurritem then
- mGetIndexData(me)
- end if
- mBuildaPage(me, Lstartitem)
- else
- set iMyPage to EMPTY
- if Lstartitem < Lcurritem then
- set Lprevitem to integer(value(Lcurritem - 1))
- mRequestAnyAttrList(oIndexMediator, Lprevitem, gModeState)
- end if
- if Lenditem > Lcurritem then
- set LnextItem to integer(value(mGrabCurrItem(oIndexMediator) + 1))
- mRequestAnyAttrList(oIndexMediator, LnextItem, gModeState)
- end if
- mBuildFragPage(me, vLastLine)
- end if
- end if
- end if
- if gModeState <> #CHRO then
- mHighlightMyScrollLine(me, gGlobalStepCount)
- else
- mHighlightMyScrollLine(me, iCHROpointer)
- end if
- if not (gModeState = #FoundSet) and not (gModeState = #Resources) and not (gModeState = #TOPICS) then
- set Lchars to char 1 to 2 of line 1 of iMyPage
- hUpdateCurrItem(hFilterSearchChars(Lchars))
- end if
- end
-
- on mSliderGetPage me
- set vLastLine to iPagePointer + iPageHeightK - 1
- if vLastLine > iIndexLength then
- set vLastLine to iIndexLength
- end if
- if gModeState = #FoundSet then
- mBuildFTLUPage(me, iPagePointer)
- else
- if gModeState = #EPISSUB then
- mBuildEPISSUBPage(me)
- else
- set Lstartitem to hGetMyAlphaGroupItem(iPagePointer)
- set Lenditem to hGetMyAlphaGroupItem(vLastLine)
- set Lcurritem to integer(value(mGrabCurrItem(oIndexMediator)))
- if (Lstartitem = Lenditem) and (Lstartitem = Lcurritem) then
- if itheItemNow <> Lcurritem then
- mGetIndexData(me)
- end if
- mBuildaPage(me, Lstartitem)
- else
- set iMyPage to EMPTY
- mBuildFragPage(me, vLastLine)
- mEndIndexToLine(me)
- end if
- end if
- end if
- end
-
- on mIndexSliderKeyPage me, pDist
- set the textStyle of field gIndxScrollFldK to "plain"
- mNudgeSlider(oIndexSlider, pDist)
- mEndIndexToLine(me)
- end
-
- on mSwitchtoEpisSubindex me, pWhich
- if pWhich = 6 then
- hSwitchBacktoEpis()
- return 1
- end if
- set LmyfldName to "ATTRIB_" & pWhich & "_EPISSUB"
- hSetMode(#EPISSUB)
- mSetCurrAttrList(oIndexMediator, LmyfldName, #EPISSUB)
- set iPagePointer to 1
- hSetAlphaState(hConvertItemtoAlpha(value(pWhich)))
- hSetGlobalCounter(1)
- set iIndexLength to count(iTheIndex)
- mGetPage(me)
- mHltfromScripts(oINTERfaceEpis, pWhich)
- set vNewSliderMax to iIndexLength - (iPageHeightK - 1)
- if vNewSliderMax < iPagePointer then
- set vNewSliderMax to iPagePointer
- end if
- mReDefineSlider(oIndexSlider, iPagePointer, vNewSliderMax, iPagePointer)
- mSetSlider(oIndexSlider, iPagePointer)
- end
-
- on mBuildFragPage me, pLast
- set the textStyle of field gIndxScrollFldK to "plain"
- repeat with i = iPagePointer to pLast
- set LmyItem to hGetMyAlphaGroupItem(i)
- set LmyLocalCntr to mTranslateGlobaltoLocal(oIndexMediator, i, LmyItem)
- put mGetThisEntryName(oIndexMediator, gModeState, LmyItem, LmyLocalCntr) & RETURN after iMyPage
- put iMyPage into field gIndxScrollFldK
- end repeat
- return 1
- end
-
- on mSetCustomList me, pTheList, pTheNum, pHitFlag
- if voidp(pTheList) then
- hearit(gNopeSND)
- hReportStatus("No search has been performed in this session as yet.")
- abort()
- end if
- setAt(mGetEntireMode(oIndexMediator, #FoundSet), 1, pTheList)
- set Lsize to count(mGetModesAttribGroup(oIndexMediator, #FoundSet, 1))
- mUpdateLimitsList(oIndexMediator, #FoundSet, Lsize)
- mUpdateIndexParams(oIndexMediator)
- set iIndexLength to mGetModesMaxEntryNum(oIndexMediator)
- set iPagePointer to pTheNum
- set iFSlistType to pHitFlag
- mReDefineSlider(oIndexSlider, iPagePointer, Lsize, 1)
- hSetGlobalCounter(1)
- end
-
- on mSetupSEEList me
- set iFSlistType to 0
- mSetSingleList(oIndexMediator, gStashedSEEList)
- hBuildFTfromEntries()
- set iIndexLength to mGetModesMaxEntryNum(oIndexMediator)
- set iPagePointer to 1
- end
-
- on mSetupHitsList me
- set thelist to gStashedHitsList
- set iFSlistType to 1
- mSetSingleList(oIndexMediator, thelist)
- mUpdateLimitsList(oIndexMediator, #FoundSet, gNumofHits)
- set iIndexLength to gNumofHits
- set iPagePointer to 1
- hAnnounce("Search Complete")
- mGetPage(me)
- hSetGlobalCounter(1)
- hReportStatus("Word search complete...")
- end
-
- on mWhatFSlistType me
- return iFSlistType
- end
-
- on mSetFSlistType me, pTowhat
- set iFSlistType to pTowhat
- end
-
- on mHighlightMyScrollLine me, pCount
- if iDontResetLineF and (gModeState = #CHRO) then
- return
- end if
- set Lnumb to pCount - iPagePointer + 1
- hHiliteItem(Lnumb)
- end
-
- on mShiftWindowToItem me, pNewItem
- set LnextField to hConstructFieldName(pNewItem, gModeState)
- mSetCurrAttrList(oIndexMediator, LnextField, gModeState)
- set LentryNum to mGetItemsFirstEntryNum(oIndexMediator, pNewItem)
- set iPagePointer to value(LentryNum)
- if iPagePointer > iIndexLength then
- set iPagePointer to iIndexLength
- end if
- if iPagePointer < 1 then
- set iPagePointer to 1
- end if
- mGetPage(me)
- mMatchScrollBar(me)
- hMatchTbarToWindow()
- end
-
- on mGetNdxLength me
- return iIndexLength
- end
-
- on mStartIndexToLine me, pWhichline
- set iPagePointer to pWhichline
- mSliderGetPage(me)
- end
-
- on mEndIndexToLine me
- if (gModeState = #ENCY) or (gModeState = #EPIS) or (gModeState = #CHRO) then
- set vNewAttr to hGetMyAlphaGroupItem(iPagePointer)
- set LnextField to hConstructFieldName(vNewAttr, gModeState)
- mSetCurrAttrList(oIndexMediator, LnextField, gModeState)
- end if
- hMatchTbarToWindow()
- if gMACListenStatus then
- hLoadIndextoLexicon()
- end if
- end
-
- on mIndexSliderPage me, pStyle
- if pStyle = #page then
- set vshift to iPageHeightK
- else
- set vshift to 1
- end if
- set the textStyle of field gIndxScrollFldK to "plain"
- mSliderBarPage(oIndexSlider, vshift)
- mEndIndexToLine(me)
- end
-
- on mDumpProps me
- put me
- put "size of itheIndex=" & count(iTheIndex)
- put "iPagePointer=" & iPagePointer
- put "iIndexLength=" & iIndexLength
- put "iLineHeight=" & iLineHeight
- put "iWinTop=" & iWinTop
- put "iFSlistType=" & iFSlistType
- put "iPrevHL=" & iPrevHL
- put "iMyPage=" & iMyPage
- end
-