diff -r 000000000000 -r 1450b09d0cfd ginebra2/chrome/bedrockchrome/toolbar.snippet/toolbar.js --- /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(''); + } + } + function RightCornerButton() { + this.writeButton = function() { + document.write(''); + + 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(''); + 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(''); + 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(''); + + // 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(''); + 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(''); + } + } + + /* + ** Bookmarks Toolbar Buttons + */ + function BMBackButton() { + this.writeButton = function() { + document.write(''); + 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(''); + 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(''); + 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(''); + 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(''); + 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(''); + 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 +