--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ginebra2/chrome/bedrockchrome/zoombar.snippet/zoombar.js Tue May 04 12:39:35 2010 +0300
@@ -0,0 +1,122 @@
+/*!
+ \file zoombar.js This module contains the ZoomBar class.
+*/
+
+/*!
+ Class to handle displaying the zoom bar. The zoom bar is displayed when the
+ user presses the zoom button on the toolbar. It provides access to the zoom
+ in and out functions. It is hidden when the main toolbar is hidden on user inactivity
+
+ \param webtb web toolbar needed to set state of zoom button
+*/
+function ZoomBar(webtb)
+{
+ var timeoutId = 0; // inactivity timer ID
+ var ZB_TIMEOUT = 5000; // hide zoombar after 5 secs
+ var zooming = false; // true when in the process of zooming
+ var enabled = true; // zooming enabled flag - initially enabled
+
+ // Private Methods
+ //! Write zoom bar HTML code to document.
+ function _zoombar_write() {
+ var html = ''+
+ '<div id="zoomBarDiv">'+
+ '<img class="zoomBarBtn" id="zoomBarBtnIn">'+
+ '<img class="zoomBarBtn" id="zoomBarBtnOut">'+
+ '</div>';
+ document.write(html);
+ }
+
+ //! Create zoom in & out buttons.
+ function _setActions() {
+ new ActionButton("zoomBarBtnIn",
+ "zoombar.snippet/icons/icon_zoom+.png",
+ "zoombar.snippet/icons/icon_zoom+_pressed.png",
+ "zoombar.snippet/icons/icon_zoom+_disabled.png",
+ window.views.WebView.actions.zoomIn,
+ true,true,true);
+
+ new ActionButton("zoomBarBtnOut",
+ "zoombar.snippet/icons/icon_zoom-.png",
+ "zoombar.snippet/icons/icon_zoom-_pressed.png",
+ "zoombar.snippet/icons/icon_zoom-_disabled.png",
+ window.views.WebView.actions.zoomOut,
+ true,true,true);
+
+ // reset toolbar timeout each time a zoom is triggered
+// window.views.WebView.actions.zoomIn.triggered.connect(
+// function(checked) {handleZoom();});
+// window.views.WebView.actions.zoomOut.triggered.connect(
+// function(checked) {handleZoom();});
+ // Connect to each action's "changed" signal.
+ window.views.WebView.actions.zoomIn.changed.connect(
+ createDelegate(this, handleChange));
+ window.views.WebView.actions.zoomOut.changed.connect(
+ createDelegate(this, handleChange));
+ }
+
+ //! Set inactivity timer when not zooming.
+ function handleZoom()
+ {
+ // zoom activation toggles zoom on/off
+ zooming = !zooming; // toggle zoom state
+ clearTimeout(timeoutId);
+ if (!zooming) {
+ // close zoom after 5 secs
+ timeoutId = setTimeout('window.snippets.ZoomBarId.hide()', ZB_TIMEOUT);
+ }
+ }
+
+ //! Start inactivity timer when zoom bar is shown.
+ function handleShow()
+ {
+ timeoutId = setTimeout('window.snippets.ZoomBarId.hide()', ZB_TIMEOUT); // close zoom after 5 secs
+ }
+
+ //! Clear inactivity timer when zoom bar is hidden.
+ function handleHide()
+ {
+ clearTimeout(timeoutId);
+ zooming = false; // ensure zooming state doesn't get out of sync
+ }
+
+ //! Handle action object changes. In particular we are interested in
+ //! changes to the enabled state of the object.
+ function handleChange() {
+ var saveEnabled = enabled;
+
+ // enable zoom button if either zoom-in or zoom-out action enabled
+ if (window.views.WebView.actions.zoomIn.enabled
+ || window.views.WebView.actions.zoomOut.enabled) {
+ enabled = true;
+ } else {
+ enabled = false;
+ }
+
+ // if state changed update web toolbar zoom button state
+ if (saveEnabled != enabled) {
+ // enabled state changed
+ webtb.setZoomEnabled(enabled);
+ }
+ }
+ function handleLoadStarted() {
+ window.snippets.ZoomBarId.hide()
+ }
+
+ //! After chrome is loaded, create zoombar buttons and setup show/hide
+ //! handlers.
+ function _chromeLoadComplete() {
+ _setActions();
+ window.pageController.loadStarted.connect(handleLoadStarted);
+// window.snippets.ZoomBarId.shown.connect(handleShow);
+// window.snippets.ZoomBarId.hidden.connect(handleHide);
+ }
+
+ _zoombar_write();
+
+ window.chrome.chromeComplete.connect(_chromeLoadComplete);
+}
+
+
+
+