new find dialog.

This commit is contained in:
blakeross%telocity.com 2002-04-05 09:44:00 +00:00
parent 57da95c52b
commit 8bd55288de
5 changed files with 292 additions and 0 deletions

View File

@ -0,0 +1,30 @@
#
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/NPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
include $(topsrcdir)/config/rules.mk

View File

@ -0,0 +1,137 @@
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is Mozilla Communicator client code, released March
* 31, 1998.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s): Alec Flett <alecf@netscape.com>
* Bill Law <law@netscape.com>
* Blake Ross <blakeross@telocity.com>
* Dean Tessman <dean_tessman@hotmail.com>
* Matt Fisher <matt@netscape.com>
* Simon Fraser <sfraser@netscape.com>
* Stuart Parmenter <pavlov@netscape.com>
*/
var dialog; // Quick access to document/form elements.
var gFindInst; // nsIWebBrowserFind that we're going to use
function initDialogObject()
{
// Create dialog object and initialize.
dialog = new Object;
dialog.findKey = document.getElementById("dialog.findKey");
dialog.caseSensitive = document.getElementById("dialog.caseSensitive");
dialog.wrap = document.getElementById("dialog.wrap");
dialog.find = document.getElementById("btnFind");
dialog.up = document.getElementById("radioUp");
dialog.down = document.getElementById("radioDown");
dialog.rg = dialog.up.radioGroup;
dialog.bundle = null;
// Move dialog to center, if it not been shown before
var windowElement = document.getElementById("findDialog");
if (!windowElement.hasAttribute("screenX") || !windowElement.hasAttribute("screenY"))
{
sizeToContent();
moveToAlertPosition();
}
}
function fillDialog()
{
// get the find service, which stores global find state
var findService = Components.classes["@mozilla.org/find/find_service;1"]
.getService(Components.interfaces.nsIFindService);
// Set initial dialog field contents. Use the gFindInst attributes first,
// this is necessary for window.find()
dialog.findKey.value = gFindInst.searchString ? gFindInst.searchString : findService.searchString;
dialog.caseSensitive.checked = gFindInst.matchCase ? gFindInst.matchCase : findService.matchCase;
dialog.wrap.checked = gFindInst.wrapFind ? gFindInst.wrapFind : findService.wrapFind;
var findBackwards = gFindInst.findBackwards ? gFindInst.findBackwards : findService.findBackwards;
if (findBackwards)
dialog.rg.selectedItem = dialog.up;
else
dialog.rg.selectedItem = dialog.down;
}
function saveFindData()
{
// get the find service, which stores global find state
var findService = Components.classes["@mozilla.org/find/find_service;1"]
.getService(Components.interfaces.nsIFindService);
// Set data attributes per user input.
findService.searchString = dialog.findKey.value;
findService.matchCase = dialog.caseSensitive.checked;
findService.wrapFind = dialog.wrap.checked;
findService.findBackwards = dialog.up.selected;
}
function onLoad()
{
initDialogObject();
// get the find instance
var finder = window.arguments[0];
// If the dialog was opened from window.find(), findInst will be an
// nsISupports interface, so QueryInterface anyway to nsIWebBrowserFind.
gFindInst = finder.QueryInterface(Components.interfaces.nsIWebBrowserFind);
fillDialog();
doEnabling();
if (dialog.findKey.value)
dialog.findKey.select();
dialog.findKey.focus();
}
function onUnload()
{
window.opener.findDialog = 0;
}
function onAccept()
{
// Transfer dialog contents to the find service.
saveFindData();
// set up the find instance
gFindInst.searchString = dialog.findKey.value;
gFindInst.matchCase = dialog.caseSensitive.checked;
gFindInst.wrapFind = dialog.wrap.checked;
gFindInst.findBackwards = dialog.up.selected;
// Search.
var result = gFindInst.findNext();
if (!result)
{
if (!dialog.bundle)
dialog.bundle = document.getElementById("findBundle");
window.alert(dialog.bundle.getString("notFoundWarning"));
dialog.findKey.select();
dialog.findKey.focus();
}
return false;
}
function doEnabling()
{
dialog.find.disabled = !dialog.findKey.value;
}

View File

@ -0,0 +1,76 @@
<?xml version="1.0"?> <!-- -*- Mode: HTML -*- -->
<!--
The contents of this file are subject to the Netscape Public
License Version 1.1 (the "License"); you may not use this file
except in compliance with the License. You may obtain a copy of
the License at http://www.mozilla.org/NPL/
Software distributed under the License is distributed on an "AS
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
implied. See the License for the specific language governing
rights and limitations under the License.
The Original Code is Mozilla Communicator client code, released
March 31, 1998.
The Initial Developer of the Original Code is Netscape
Communications Corporation. Portions created by Netscape are
Copyright (C) 1998-1999 Netscape Communications Corporation. All
Rights Reserved.
Contributor(s):
Ben Goodger <ben@netscape.com>
Bill Law <law@netscape.com>
Blake Ross <blakeross@telocity.com>
Dan Rosen <dr@netscape.com>
Dean Tessman <dean_tessman@hotmail.com>
Simon Fraser <sfraser@netscape.com>
Stuart Parmenter <pavlov@netscape.com>
-->
<?xml-stylesheet href="chrome://navigator/skin/" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://browser/locale/find/findDialog.dtd">
<window id="findDialog"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
orient="horizontal"
windowtype="findInPage"
onload="onLoad();"
onunload="onUnload();"
style="width: 30em;"
class="dialog"
title="&findDialog.title;"
persist="screenX screenY">
<script type="application/x-javascript" src="chrome://browser/content/find/findDialog.js"/>
<stringbundle id="findBundle" src="chrome://global/browser/locale/find/findDialog.properties"/>
<vbox flex="1">
<hbox flex="1">
<label value="&findField.label;" accesskey="&findField.accesskey;" control="dialog.findKey"/>
<textbox id="dialog.findKey" flex="1" oninput="doEnabling();"/>
<vbox align="start">
<button id="btnFind" label="&findButton.label;" accesskey="&findButton.accesskey;"
default="true" oncommand="return onAccept();"/>
</vbox>
</hbox>
<hbox flex="1">
<vbox>
<checkbox id="dialog.caseSensitive" label="&caseSensitiveCheckbox.label;" accesskey="&caseSensitiveCheckbox.accesskey;"/>
<checkbox id="dialog.wrap" label="&wrapCheckbox.label;" accesskey="&wrapCheckbox.accesskey;"/>
</vbox>
<groupbox orient="horizontal" align="start" flex="1">
<caption label="&direction.label;"/>
<radiogroup orient="horizontal" flex="1">
<radio id="radioUp" label="&up.label;" accesskey="&up.accesskey;"/>
<radio id="radioDown" label="&down.label;" accesskey="&down.label;" selected="true"/>
</radiogroup>
</groupbox>
<vbox align="start">
<button label="&cancelButton.label;" oncommand="close();"/>
</vbox>
</hbox>
</vbox>
</window>

View File

@ -0,0 +1,27 @@
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/NPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
browser.jar:
content/browser/find/findDialog.xul (content/findDialog.xul)
content/browser/find/findDialog.js (content/findDialog.js)
en-US.jar:
locale/en-US/browser/find/findDialog.dtd (locale/findDialog.dtd)
locale/en-US/browser/find/findDialog.dtd (locale/findDialog.properties)

View File

@ -0,0 +1,22 @@
<!-- extracted from finddialog.xul -->
<!ENTITY findDialog.title "Find in this Page">
<!ENTITY findDialogFrame.title "Find in this Frame">
<!ENTITY findField.label "Find what:">
<!ENTITY findField.accesskey "n">
<!ENTITY caseSensitiveCheckbox.label "Match case">
<!ENTITY caseSensitiveCheckbox.accesskey "c">
<!ENTITY wrapCheckbox.label "Wrap around">
<!ENTITY wrapCheckbox.accesskey "W">
<!ENTITY backwardsCheckbox.label "Search backwards">
<!ENTITY backwardsCheckbox.accesskey "b">
<!ENTITY findField.tooltip "Type one or more words to search for">
<!ENTITY cancelButton.label "Cancel">
<!ENTITY findButton.label "Find Next">
<!ENTITY findButton.accesskey "F">
<!ENTITY cancelButton.label "Cancel">
<!ENTITY up.label "Up">
<!ENTITY up.accesskey "U">
<!ENTITY down.label "Down">
<!ENTITY down.accesskey "D">
<!ENTITY direction.label "Direction">