home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / WindowsServerTrial / server.iso / sources / install.wim / 2 / Windows / System32 / ieframe.dll / HTML / FIND.JS < prev    next >
Text File  |  2008-01-19  |  5KB  |  167 lines

  1. ∩╗┐//Find Text dialog box
  2.  
  3. //+---------------------------------------------------------------------
  4. //
  5. //  Synopsis:   Checks the status of the appropriate checkboxes and
  6. //              sets the flags for the findText method.
  7. //
  8. //  Arguments:  none
  9. //
  10. //  returns:    a number representing the flags for the findText
  11. //              method. (See OM spec for more info.)
  12. //
  13. //----------------------------------------------------------------------
  14.  
  15. function findFlags()
  16. {
  17.     var htmlMatchWord = 2;
  18.     var htmlMatchCase = 4;
  19.     var htmlMatchDiacritic =  536870912; // 0x20000000 FR_MATCHDIAC
  20.     var htmlMatchKashida =   1073741824; // 0x40000000 FR_MATCHKASHIDA
  21.     var htmlMatchAlefHamza = 2147483648; // 0x80000000 FR_MATCHALEFHAMZA
  22.  
  23.     //
  24.     //  Note: the CS options work "backwards" and should be 
  25.     //  assumed to be true.
  26.     //
  27.     return (htmlMatchWord * document.all.chkWholeWord.checked)
  28.         | (htmlMatchCase * document.all.chkMatchCase.checked)
  29.         | htmlMatchDiacritic | htmlMatchKashida | htmlMatchAlefHamza;
  30. } // findFlags
  31.  
  32.  
  33. //+---------------------------------------------------------------------
  34. //
  35. //  Synopsis:   Sets the focus to the find button. Also determines
  36. //              whether something is selected in the document.
  37. //
  38. //  Arguments:  none
  39. //
  40. //  Returns:    nothing
  41. //
  42. //-----------------------------------------------------------------------
  43.  
  44. function loadBdy()
  45. {
  46.     // win.screenLeft == x-coordinate of the document window (not the frame)
  47.     // doc.body.clientoffsetWidth > doc.body.clientWidth
  48.     // doc.body.clientLeft > doc.body.offsetLeft
  49.     // document.body.offsetWidth == window.dialogWidth
  50.     // document.body.clientLeft == 0
  51.     // document.body.offsetLeft == 0
  52.     // Currently there is no way to get the total dialog width (only document width).
  53.     // Positioning of the dialog is done in dhuihand.cpp after the dialog is shown.
  54.  
  55.     //
  56.     //  Bind events to controls. This is done here to load the dialog
  57.     //  quicker.
  58.     //
  59.     btnFindPrev.onclick     = new 
  60.         Function("btnFindClick(false)");
  61.     btnFindPrev.ondblclick  = new
  62.         Function("btnFindClick(false)");
  63.     btnFindNext.onclick     = new 
  64.         Function("btnFindClick(true)");
  65.     btnFindNext.ondblclick  = new
  66.         Function("btnFindClick(true)");
  67.     btnCancel.onclick       = new Function("btnCancelClick2()");
  68.  
  69.     document.onmouseup      = new Function("mouseClick()");
  70.  
  71.     txtFindText.onpropertychange = new Function("setFindState(true)");
  72.     txtFindText.onfocus = new Function("txtFindText.select()");
  73.     txtFindText.onkeypress = new Function("txtDefaultESC()");
  74.  
  75.     g_fFindStartPoint = true;
  76.  
  77.     if ("" != window.dialogArguments.findText)
  78.     {
  79.         txtFindText.value = window.dialogArguments.findText;
  80.     }
  81.     txtFindText.focus();
  82.     txtFindText.select();
  83. }   //  loadBdy
  84.  
  85. //+---------------------------------------------------------------------
  86. //
  87. //  Synopsis:   Sets the find text so it can be used next time. 
  88. //
  89. //  Arguments:  none
  90. //
  91. //  Returns:    nothing
  92. //
  93. //-----------------------------------------------------------------------
  94.  
  95. function unloadBdy()
  96. {
  97.     window.onerror = SuppressError;
  98.     window.dialogArguments.findText = txtFindText.value;
  99.     window.onerror = HandleError;
  100. }   //  unloadBdy
  101.  
  102. function findStartPoint(fForward)
  103. {
  104.     if (g_fFindStartPoint)
  105.     {
  106.         g_fFindStartPoint = false;
  107.  
  108.         var win = window.dialogArguments.unsecuredWindowOfDocument;
  109.         var doc = window.dialogArguments.document;
  110.  
  111.         //
  112.         //  Are we in a frameset?
  113.         //
  114.         if (!g_fError && win.frames.length)
  115.         {
  116.             var win2;
  117.  
  118.             g_fFrameset = true;
  119.             g_arrFrames[0] = 0;
  120.             g_arrFrames[1] = -1;
  121.  
  122.             //
  123.             //  Search through the frameset for a selection
  124.             //
  125.             win2 = CrawlPath();
  126.    
  127.             // the find dialog gets it's own error handler
  128.             // until while we're not sure if the iframe
  129.             // is hosting trident. (It could host Word, 
  130.             // explorer, etc.)
  131.             window.onerror = FindHandleError;
  132.             doc2 = win2.document;
  133.             window.onerror = HandleError;
  134.  
  135.             while (doc2.selection.type == "None")
  136.             {
  137.                 if (MoveDoc(fForward))
  138.                 {
  139.                     win2 = CrawlPath();
  140.                     doc2 = win2.document;
  141.                 }
  142.                 else    // no selection. reset search
  143.                 {
  144.                     g_arrFrames[0] = fForward ? 0 : win.frames.length - 1;
  145.                     g_arrFrames[1] = -1;
  146.                     break;
  147.                 }
  148.             }
  149.             doc = GetFirstDoc();
  150.             g_docLastFound = doc;
  151.         }
  152.  
  153.         //
  154.         //  If a control is selected, select it as a text range.
  155.         //  Dont set the text range to the control if we are doing this
  156.         //  on wrap. That will scope the wrap to within the control.
  157.         //
  158.         if (!g_fWrapped && doc.selection.type == "Control")
  159.         {
  160.             var r = doc.selection.createRange();
  161.             r = getTextRange(r(0));
  162.             r.select();
  163.         }
  164.     }
  165. } //  findStartPoint
  166.  
  167.