From d971b82f45097e4a6e0b5a4a7de28dda91893b6f Mon Sep 17 00:00:00 2001 From: anekos Date: Tue, 12 Aug 2008 20:23:57 +0000 Subject: キャンセルしたときに検索文字列をリセットするようにした。 見つからないときにエラーメッセージを出すようにした。 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@17562 d0d07461-0603-4401-acd4-de1884942a52 --- migemized_find.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/migemized_find.js b/migemized_find.js index 7fcfc8a..d56d05c 100644 --- a/migemized_find.js +++ b/migemized_find.js @@ -24,9 +24,25 @@ // findMode := FIND_MODE_NATIVE | FIND_MODE_MIGEMO | FIND_MODE_REGEXP + let elem = document.getElementById('FindToolbar').getElement('findbar-textbox'); + const DOMUtils = Components.classes["@mozilla.org/inspector/dom-utils;1"]. + getService(Components.interfaces["inIDOMUtils"]); + + let previousKeyword = null; let lastKeyword = null; let original = {}; + const findbarTextbox = document.getElementById('FindToolbar').getElement('findbar-textbox'); + + // アレな方法で not found を検出 + function isNotFound () { + let rules = DOMUtils.getCSSStyleRules(elem); + for (let i = 0; i < rules.Count(); i++) { + if (rules.GetElementAt(i).selectorText.indexOf('notfound') >= 0) + return true; + } + } + // 検索文字列から検索モードと検索文字列を得る。 function getFindMode (str) { let [head, tail] = [str[0], str.slice(1)]; @@ -47,19 +63,23 @@ if (!word) return; XMigemoFind.findMode = mode; - XMigemoFind.find(backwards, lastKeyword = word, true); + let found = XMigemoFind.find(backwards, lastKeyword = word, true); + liberator.log(XMigemoFind.NOTFOUND); }, findAgain: function findAgain (reverse) { - XMigemoFind.find(reverse, lastKeyword, true); + let found = XMigemoFind.find(reverse, lastKeyword || previousKeyword, true); + liberator.log(XMigemoFind.NOTFOUND); }, searchSubmitted: function searchSubmitted (command, forcedBackward) { + previousKeyword = lastKeyword; XMigemoFind.clear(false); liberator.modes.reset(); }, searchCanceled: function searchCanceled () { + lastKeyword = null; XMigemoFind.clear(false); }, }; -- cgit v1.2.3