--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ginebra2/chrome/bedrockchrome/toolbar.snippet/toolbar.js Tue May 04 12:39:35 2010 +0300
@@ -0,0 +1,428 @@
+/* create all functions with toolbar */
+
+//
+// INIT the webView Toolbar
+//
+
+function ToolbarSnippet()
+{
+ this.setContainerWidth = function(leftid, rightid, id) {
+ var lcbWidth = document.getElementById(leftid).offsetWidth;
+ var rcbWidth = document.getElementById(rightid).offsetWidth;
+ var totalW = window.chrome.displaySize.width;
+
+ var fcWidth = totalW - lcbWidth - rcbWidth;
+ var fcWidthPercent = (fcWidth/totalW) * 100 ;
+ fcWidthPercent = fcWidthPercent.toFixed(2);
+
+ el = document.getElementById(id);
+ el.style.width = fcWidthPercent +"%";
+ }
+
+ /*
+ ** Main View Buttons
+ */
+ function LeftCornerButton() {
+ this.writeButton = function() {
+ document.write('<img class="webToolbarBtn"id="backButton" src="toolbar.snippet/icons/icon_back.png">');
+ }
+ }
+ function RightCornerButton() {
+ this.writeButton = function() {
+ document.write('<img class="webToolbarBtn"id="mvButton">');
+
+ new ToggleButton("mvButton", "MostVisitedViewId",
+ "toolbar.snippet/icons/icon_mostvisited.png",
+ "toolbar.snippet/icons/icon_mostvisited_pressed.png",
+ "toolbar.snippet/icons/icon_mostvisited_disabled.png",
+ _activateMostVisited);
+ }
+ function _activateMostVisited() {
+ window.snippets.ZoomBarId.hide(); // hide Zoom Bar while showing most visited
+ window.snippets.MostVisitedViewId.toggleVisibility();
+ }
+ }
+
+ function WinButton() {
+ this.writeButton = function() {
+ document.write('<img class="webToolbarBtn" id="winButton">');
+ new SimpleButton("winButton",
+ "toolbar.snippet/icons/icon_windows1.png",
+ "toolbar.snippet/icons/icon_windows1_pressed.png",
+ "toolbar.snippet/icons/icon_windows1.png",
+ _activateWindows);
+ }
+ this.changeWindowIcon = function() {
+ var index = window.pageController.pageCount();
+ var base = "toolbar.snippet/icons/icon_windows" + index;
+
+ //window.app.debug("BASE "+ base);
+ document.getElementById('winButton').button.updateImages(base + ".png",
+ base + "_pressed.png",
+ base + ".png");
+ }
+
+ function _activateWindows() {
+ window.snippets.ZoomBarId.hide(); // hide Zoom Bar while showing windows view
+ window.snippets.MostVisitedViewId.hide();
+ window.app.debug("_activateWindows");
+ if(window.views.current().objectName == "WebView") {
+ window.ViewStack.switchView("WindowView", "WebView");
+ }
+ else {
+ window.ViewStack.switchView("WebView", "WindowView");
+ }
+ }
+ }
+
+ function MenuButton() {
+ this.writeButton = function() {
+ document.write('<img class="webToolbarBtn" id="contextMenuButton">');
+ new ToggleButton("contextMenuButton", "ContextMenuId",
+ "toolbar.snippet/icons/icon_menu.png",
+ "toolbar.snippet/icons/icon_menu_pressed.png",
+ "toolbar.snippet/icons/icon_menu_disabled.png",
+ _contextMenuF);
+ }
+
+ function _contextMenuF () {
+ window.app.debug("_contextMenuF");
+ if(window.snippets.ContextMenuId.dontShow)
+ {
+ window.snippets.ContextMenuId.dontShow = false;
+ return;
+ }
+
+ window.snippets.ZoomBarId.hide(); // Don't show Zoom Bar while showing Context Menu
+ window.snippets.MostVisitedViewId.hide();
+ window.snippets.ContextMenuId.repaint();
+ window.snippets.ContextMenuId.zValue = 10;
+ window.snippets.ContextMenuId.show();
+ }
+ }
+
+ /*!
+ Class to handle displaying the zoom button. The zoom button provides access
+ to the zoom bar.
+ */
+ function ZoomButton() {
+ this.writeButton = function() {
+ document.write('<img class="webToolbarBtn" id="zoomBarButton">');
+
+ // create simple button to access zoom bar
+ this.theButton = new ToggleButton("zoomBarButton", "ZoomBarId",
+ "toolbar.snippet/icons/icon_zoom.png",
+ "toolbar.snippet/icons/icon_zoom_pressed.png",
+ "toolbar.snippet/icons/icon_zoom_disabled.png",
+ _zoomBarF);
+ }
+
+ //! Handles zoom button presses.
+ function _zoomBarF()
+ {
+ window.snippets.MostVisitedViewId.hide();
+ // toggle visibility of zoom bar
+ window.snippets.ZoomBarId.toggleVisibility();
+ }
+
+ //! Set enabled state of zoom button.
+ /*!
+ \param enabled new enabled state of button
+ */
+ this.setEnabled = function(enabled)
+ {
+ this.theButton.setEnabled(enabled);
+ }
+ } //end of class ZoomButton
+
+ /*
+ ** Windows View Toolbar Buttons
+ */
+ function WinBackButton() {
+ this.writeButton = function() {
+ window.app.debug("WinBackButton:writeButton");
+ document.write('<img class="webToolbarBtn" id="goBacktoWebViewWin">');
+ new SimpleButton("goBacktoWebViewWin",
+ "toolbar.snippet/icons/icon_back.png",
+ "toolbar.snippet/icons/icon_back_pressed.png",
+ "toolbar.snippet/icons/icon_back.png",
+ _goBackFromWindowView);
+ }
+ _goBackFromWindowView = function() {
+ window.ViewStack.switchView("WebView", "WindowView");
+ }
+ }
+ function WinAddButton() {
+ this.writeButton = function() {
+ document.write('<img class="webToolbarBtn" id="addWindow" src="toolbar.snippet/icons/icon_windowsadd.png">');
+ }
+ }
+
+ /*
+ ** Bookmarks Toolbar Buttons
+ */
+ function BMBackButton() {
+ this.writeButton = function() {
+ document.write('<img class="webToolbarBtn" id="goBacktoWebViewBM">');
+ new SimpleButton("goBacktoWebViewBM",
+ "toolbar.snippet/icons/icon_back.png",
+ "toolbar.snippet/icons/icon_back_pressed.png",
+ "toolbar.snippet/icons/icon_back.png",
+ _goBackFromBookmarkView);
+ }
+ _goBackFromBookmarkView = function() {
+ window.views.WebView.showNormalPage();
+ window.ViewStack.switchView( "WebView","BookmarkTreeView");
+ views.WebView.gesturesEnabled = true;
+ }
+ }
+ function BMAddButton() {
+ this.writeButton = function() {
+ document.write('<img class="webToolbarBtn"id="addToBookMark">');
+ new SimpleButton("addToBookMark",
+ "toolbar.snippet/icons/icon_addbookmark.png",
+ "toolbar.snippet/icons/icon_addbookmark_pressed.png",
+ "toolbar.snippet/icons/icon_addbookmark_disabled.png",
+ _showBookmarkAddDialog);
+ }
+ _showBookmarkAddDialog = function() {
+ launchBookmarkAddDialog();
+ }
+ }
+
+ /*
+ ** Recent URLs Toolbar Buttons
+ */
+ function RecentURLBackButton() {
+ this.writeButton = function() {
+ document.write('<img class="webToolbarBtn" id="goBacktoWebViewRecent">');
+ new SimpleButton("goBacktoWebViewRecent",
+ "toolbar.snippet/icons/icon_back.png",
+ "toolbar.snippet/icons/icon_back_pressed.png",
+ "toolbar.snippet/icons/icon_back.png",
+ _goBackFromRecentUrlView);
+ }
+ _goBackFromRecentUrlView = function() {
+ window.views.WebView.showNormalPage();
+ window.ViewStack.switchView("WebView", "BookmarkHistoryView");
+ }
+ }
+ function RecentURLClearallButton() {
+ this.writeButton = function() {
+ document.write('<img class="webToolbarBtn"id="clearHistory">');
+ new SimpleButton("clearHistory",
+ "toolbar.snippet/icons/icon_clearall.png",
+ "toolbar.snippet/icons/icon_clearall_pressed.png",
+ "toolbar.snippet/icons/icon_clearall_disabled.png",
+ _clearHistory);
+ }
+ _clearHistory = function() {
+ if(confirm("Are you sure you want to permanently delete your history?"))
+ {
+ window.bookmarksManager.clearHistory();
+ window.views.WebView.reload();
+ }
+ }
+ }
+
+
+
+ /*
+ ** Settings Toolbar Buttons
+ */
+ function SettingsBackButton() {
+ this.writeButton = function() {
+ document.write('<img class="webToolbarBtn" id="goBacktoWebViewSettings">');
+ new SimpleButton("goBacktoWebViewSettings",
+ "toolbar.snippet/icons/icon_back.png",
+ "toolbar.snippet/icons/icon_back_pressed.png",
+ "toolbar.snippet/icons/icon_back.png",
+ _goBackFromSettingsView);
+ }
+
+
+
+ _goBackFromSettingsView = function() {
+ window.views.WebView.showNormalPage();
+ window.ViewStack.switchView("WebView", "SettingsView");
+ //window.snippets.UrlSearchChromeId.show(false);
+
+ }
+ }
+ function SettingsSaveButton() {
+ this.writeButton = function() {
+ document.write('<img class="webToolbarBtn" id="SaveSettings">');
+ new SimpleButton("SaveSettings",
+ "toolbar.snippet/icons/icon_clearall.png",
+ "toolbar.snippet/icons/icon_clearall_pressed.png",
+ "toolbar.snippet/icons/icon_clearall_disabled.png",
+ _SaveSet);
+ }
+ _SaveSet = function() {
+ window.views.WebView.showNormalPage();
+ window.ViewStack.switchView("WebView", "SettingsView");
+ //window.snippets.UrlSearchChromeId.show(false);
+ }
+ }
+
+ /*
+ ** Utility functions
+ */
+ function _chromeLoadComplete() {
+ _setActions();
+ winbutton.changeWindowIcon();
+ window.pageController.pageChanged.connect(winbutton.changeWindowIcon);
+ }
+
+ function _chromeAspectChanged() {
+ var lcbWidth = document.getElementById("LCToolbarChromeId").offsetWidth;
+ var rcbWidth = document.getElementById("RCToolbarChromeId").offsetWidth;
+ var totalW = window.chrome.displaySize.width;
+
+ var fcWidth = totalW - lcbWidth - rcbWidth;
+ var fcWidthPercent = (fcWidth/totalW) * 100 ;
+ fcWidthPercent = fcWidthPercent.toFixed(2);
+
+ // Clear popups if aspect ratio changes
+ window.snippets.ContextMenuId.hide();
+ window.snippets.ZoomBarId.hide();
+
+ el = document.getElementById("ButtonContainer");
+ el.style.width = fcWidthPercent +"%";
+
+ }
+
+ function _setActions() {
+ new ActionButton("backButton",
+ "toolbar.snippet/icons/icon_back.png",
+ "toolbar.snippet/icons/icon_back_pressed.png",
+ "toolbar.snippet/icons/icon_back_disabled.png",
+ window.pageController.actions.back);
+
+ /* Add 'addWindow' action */
+ new ActionButton("addWindow",
+ "toolbar.snippet/icons/icon_windowsadd.png",
+ "toolbar.snippet/icons/icon_windowsadd_pressed.png",
+ "toolbar.snippet/icons/icon_windowsadd_disabled.png",
+ window.views.WindowView.actions.addWindow);
+ }
+
+ function _pageLoadComplete(ok) {
+ if(ok) {
+ window.bookmarksManager.addHistory(window.pageController.currentDocUrl,window.pageController.currentDocTitle);
+ }
+ }
+
+ function _pageLoadStarted() {
+ window.snippets.MostVisitedViewId.hide();
+ //snippets.ButtonContainer.show();
+ }
+
+ // Main toolbar button instances
+ var lc = new LeftCornerButton();
+ var rc = new RightCornerButton();
+ var menubutton = new MenuButton();
+ var zoombutton = new ZoomButton();
+ var winbutton = new WinButton();
+
+ // Windows View toolbar instances
+ var winBackButton = new WinBackButton();
+ var winAddButton = new WinAddButton();
+
+ // Bookmarks View toolbar instances
+ var bmBackButton = new BMBackButton();
+ var bmAddButton = new BMAddButton();
+
+ // Recent URL View toolbar instances
+ var recentBackButton = new RecentURLBackButton();
+ var recentClearallButton = new RecentURLClearallButton();
+
+ // Settings View toolbar instances
+ var settingsBackButton = new SettingsBackButton();
+ var settingsSaveButton = new SettingsSaveButton();
+
+ // Toolbar button write accessor methods
+ this.writeLeftCornerButton = function() { lc.writeButton(); }
+ this.writeRightCornerButton = function() { rc.writeButton(); }
+ this.writeMenuButton = function() { menubutton.writeButton(); }
+ this.writeWinButton = function() { winbutton.writeButton(); }
+ this.writeZoomButton = function() { zoombutton.writeButton(); }
+ this.writeWinBackButton = function() { winBackButton.writeButton(); }
+ this.writeWinAddButton = function() { winAddButton.writeButton(); }
+ this.writeBMBackButton = function() { bmBackButton.writeButton(); }
+ this.writeBMAddButton = function() { bmAddButton.writeButton(); }
+ this.writeRecentBackButton = function() { recentBackButton.writeButton(); }
+ this.writeRecentClearallButton = function() { recentClearallButton.writeButton(); }
+ this.writeSettingsBackButton = function() { settingsBackButton.writeButton(); }
+ this.writeSettingsSaveButton = function() { settingsSaveButton.writeButton(); }
+
+ //! Set enabled state of zoom button.
+ /*!
+ \param enabled new enabled state of button
+ */
+ this.setZoomEnabled = function(enabled)
+ {
+ zoombutton.setEnabled(enabled);
+ }
+
+ window.chrome.chromeComplete.connect(_chromeLoadComplete);
+ window.chrome.prepareForGeometryChange.connect(_chromeAspectChanged);
+ window.pageController.loadFinished.connect(_pageLoadComplete);
+ window.pageController.loadStarted.connect(_pageLoadStarted);
+
+
+ window.ViewStack.activateWebView.connect(_activateWebView);
+ window.ViewStack.deActivateWebView.connect(_deActivateWebView);
+ window.ViewStack.activateWindowView.connect(_activateWindowView);
+ window.ViewStack.deActivateWindowView.connect(_deActivateWindowView);
+ window.ViewStack.activateBookmark.connect(_activateBookmarkView);
+ window.ViewStack.deActivateBookmark.connect(_deActivateBookmarkView);
+ window.ViewStack.activateBookMarkHistory.connect(_activateRecentUrlView);
+ window.ViewStack.deActivateBookMarkHistory.connect(_deActivateRecentUrlView);
+ window.ViewStack.activateSettingsView.connect(_activateSettingsView);
+ window.ViewStack.deActivateSettingsView.connect(_deActivateSettingsView);
+
+ function _activateWebView () {
+ window.snippets.WebViewToolbarId.show(false);
+ }
+
+ function _deActivateWebView () {
+ window.snippets.WebViewToolbarId.hide(false);
+ }
+
+ function _activateWindowView () {
+ window.snippets.WindowViewToolbarId.show();
+ }
+
+ function _deActivateWindowView () {
+ window.snippets.WindowViewToolbarId.hide();
+ /* Set the windows icon based on the number of windows */
+ winbutton.changeWindowIcon();
+ }
+
+ function _activateSettingsView () {
+ window.snippets.SettingsViewToolbarId.show();
+ }
+
+ function _deActivateSettingsView () {
+ window.snippets.SettingsViewToolbarId.hide();
+ }
+
+ function _activateBookmarkView () {
+ window.snippets.BookmarkViewToolbarId.show();
+ }
+
+ function _deActivateBookmarkView () {
+ window.snippets.BookmarkViewToolbarId.hide();
+ }
+
+ function _activateRecentUrlView () {
+ window.snippets.RecentUrlViewToolbarId.show();
+ }
+
+ function _deActivateRecentUrlView () {
+ window.snippets.RecentUrlViewToolbarId.hide();
+ }
+
+} //end of class WebToolbar
+