ginebra2/chrome/bedrockchrome/chrome.js
author hgs
Fri, 06 Aug 2010 17:23:08 -0400
changeset 9 b39122337a00
parent 3 0954f5dd2cd0
child 12 afcd8e6d025b
permissions -rw-r--r--
201031
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
hgs
parents: 0
diff changeset
     1
var preLoadBookmarksDone=0;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
function calcToolbarPopAnchorOffset(anchoredSnippet,
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
                                    anchorToSnippet,
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
                                    xCenterOffset,
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
                                    yBotGap)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
    //
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
    // For popup-chrome (menu, zoomBtn) they are aligned by default
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
    // to the upper left-hand corners.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
    //
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
    // This will calculate the offset needed to center the popup above the
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
    // button, or make it slightly off-center
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
    //
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
    // xCenterOffset = make x param this much off center
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
    // yBotGap = how much gap should there be between top of anchorTo,
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
    //           and bottom of anchored
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
    //
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
    anchorToGeom = anchorToSnippet.getGeometry();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
    anchoredGeom = anchoredSnippet.getGeometry();
3
hgs
parents: 0
diff changeset
    20
    xOffset = -(0.5 * anchoredGeom.width) +
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
        (0.5 * anchorToGeom.width) +
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
        xCenterOffset;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
    yOffset = -anchoredGeom.height - yBotGap;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
    return([xOffset,yOffset]);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
3
hgs
parents: 0
diff changeset
    27
// Display the super-page with the given name and path.
hgs
parents: 0
diff changeset
    28
function showSuperPage(pageName, path) {
hgs
parents: 0
diff changeset
    29
hgs
parents: 0
diff changeset
    30
    if (window.views.WebView[pageName] == undefined) {
hgs
parents: 0
diff changeset
    31
        window.views.WebView.createSuperPage(pageName, true);
hgs
parents: 0
diff changeset
    32
    		window.views.WebView[pageName].load(chrome.baseDirectory + path);
hgs
parents: 0
diff changeset
    33
    }
hgs
parents: 0
diff changeset
    34
	
hgs
parents: 0
diff changeset
    35
    if (!window.views.WebView.bedrockTiledBackingStoreEnabled())
hgs
parents: 0
diff changeset
    36
        window.views.WebView.zoomFactor = 1.0;
hgs
parents: 0
diff changeset
    37
    //window.views.WebView.showSuperPage(pageName);
hgs
parents: 0
diff changeset
    38
    window.ViewStack.switchView(pageName, "WebView");
hgs
parents: 0
diff changeset
    39
    if (!window.views.WebView.bedrockTiledBackingStoreEnabled())
hgs
parents: 0
diff changeset
    40
        window.views.WebView.touchNav.doubleClickEnabled = false;
hgs
parents: 0
diff changeset
    41
}
hgs
parents: 0
diff changeset
    42
hgs
parents: 0
diff changeset
    43
function chrome_showBookmarksView() {
hgs
parents: 0
diff changeset
    44
    showSuperPage("BookmarkTreeView", "bookmarkview.superpage/BookmarkView.html");
hgs
parents: 0
diff changeset
    45
}
hgs
parents: 0
diff changeset
    46
hgs
parents: 0
diff changeset
    47
function chrome_showHistoryView() {
hgs
parents: 0
diff changeset
    48
    showSuperPage("BookmarkHistoryView", "historyview.superpage/historyView.html");
hgs
parents: 0
diff changeset
    49
}
hgs
parents: 0
diff changeset
    50
hgs
parents: 0
diff changeset
    51
function chrome_showWindowsView() {
hgs
parents: 0
diff changeset
    52
    window.snippets.ZoomBarId.hide(); // hide Zoom Bar while showing windows view
hgs
parents: 0
diff changeset
    53
    window.snippets.MostVisitedViewId.hide();
hgs
parents: 0
diff changeset
    54
    window.ViewStack.switchView("WindowView", "WebView");
hgs
parents: 0
diff changeset
    55
}
hgs
parents: 0
diff changeset
    56
hgs
parents: 0
diff changeset
    57
function chrome_showSettingsView() {
hgs
parents: 0
diff changeset
    58
    showSuperPage("SettingsView", "settingsview.superpage/SettingsView.html");
hgs
parents: 0
diff changeset
    59
}
hgs
parents: 0
diff changeset
    60
hgs
parents: 0
diff changeset
    61
function chrome_showBasicMenu() {
hgs
parents: 0
diff changeset
    62
hgs
parents: 0
diff changeset
    63
    cm_TheContextMenu.show(viewMenu_getWebViewContextMenuData());
hgs
parents: 0
diff changeset
    64
hgs
parents: 0
diff changeset
    65
}
hgs
parents: 0
diff changeset
    66
hgs
parents: 0
diff changeset
    67
function chrome_addBookmark() {
hgs
parents: 0
diff changeset
    68
    launchBookmarkDialog(window.pageController.currentDocTitle,window.pageController.currentDocUrl,0);
hgs
parents: 0
diff changeset
    69
}
hgs
parents: 0
diff changeset
    70
hgs
parents: 0
diff changeset
    71
function chrome_cancelMenu() {
hgs
parents: 0
diff changeset
    72
hgs
parents: 0
diff changeset
    73
    cm_TheContextMenu.cancel();
hgs
parents: 0
diff changeset
    74
}
hgs
parents: 0
diff changeset
    75
hgs
parents: 0
diff changeset
    76
// Center the given snippet on-screen.
hgs
parents: 0
diff changeset
    77
function centerSnippet(snippet) {
hgs
parents: 0
diff changeset
    78
    var x = (chrome.displaySize.width - snippet.geometry.width) / 2;
hgs
parents: 0
diff changeset
    79
    var y = (chrome.displaySize.height - snippet.geometry.height) / 2;
hgs
parents: 0
diff changeset
    80
    snippet.setPosition(x, y);
hgs
parents: 0
diff changeset
    81
}
hgs
parents: 0
diff changeset
    82
hgs
parents: 0
diff changeset
    83
function getChildById(el, childId) {
hgs
parents: 0
diff changeset
    84
    var children = el.getElementsByTagName("*");
hgs
parents: 0
diff changeset
    85
    for (var i = 0; i < children.length; i++) {
hgs
parents: 0
diff changeset
    86
        var child = children[i];
hgs
parents: 0
diff changeset
    87
        if (child.id == childId)
hgs
parents: 0
diff changeset
    88
            return child;
hgs
parents: 0
diff changeset
    89
    }
hgs
parents: 0
diff changeset
    90
    return undefined;
hgs
parents: 0
diff changeset
    91
}
hgs
parents: 0
diff changeset
    92
hgs
parents: 0
diff changeset
    93
function onActivateBookmarkView() {
hgs
parents: 0
diff changeset
    94
    window.bookmarksManager.launchBookmarkEditDailog.connect(showBookmarkEditDialog);
hgs
parents: 0
diff changeset
    95
}
hgs
parents: 0
diff changeset
    96
function preLoad()
hgs
parents: 0
diff changeset
    97
{   
hgs
parents: 0
diff changeset
    98
    preloadSuperPage("BookmarkTreeView", "bookmarkview.superpage/BookmarkView.html");
hgs
parents: 0
diff changeset
    99
    preloadSuperPage("SettingsView", "settingsview.superpage/SettingsView.html"); 
hgs
parents: 0
diff changeset
   100
    preLoadBookmarksDone=1;
hgs
parents: 0
diff changeset
   101
}
hgs
parents: 0
diff changeset
   102
function _updateHistory()
hgs
parents: 0
diff changeset
   103
{
hgs
parents: 0
diff changeset
   104
	preloadSuperPage("BookmarkHistoryView", "historyview.superpage/historyView.html");
hgs
parents: 0
diff changeset
   105
hgs
parents: 0
diff changeset
   106
}
hgs
parents: 0
diff changeset
   107
hgs
parents: 0
diff changeset
   108
function _updateBookmarks()
hgs
parents: 0
diff changeset
   109
{
hgs
parents: 0
diff changeset
   110
    preloadSuperPage("BookmarkTreeView", "bookmarkview.superpage/BookmarkView.html");
hgs
parents: 0
diff changeset
   111
}
hgs
parents: 0
diff changeset
   112
hgs
parents: 0
diff changeset
   113
// chrome_popupShownCount keeps a count of how many popups are currently being shown so that
hgs
parents: 0
diff changeset
   114
// we can re-enable the appropriate UI elements only when the last one is hidden.
hgs
parents: 0
diff changeset
   115
var chrome_popupShownCount = 0;
hgs
parents: 0
diff changeset
   116
hgs
parents: 0
diff changeset
   117
// Called when a PopupChromeItem is displayed.
hgs
parents: 0
diff changeset
   118
function onPopupShown(id) {
hgs
parents: 0
diff changeset
   119
    if(chrome_popupShownCount == 0) {
hgs
parents: 0
diff changeset
   120
        // Disable snippets etc. that should be greyed-out while the popup is shown. 
hgs
parents: 0
diff changeset
   121
        snippets.UrlSearchChromeId.enabled = false;
hgs
parents: 0
diff changeset
   122
        views.WebView.enabled = false;
hgs
parents: 0
diff changeset
   123
        views.WebView.freeze();
hgs
parents: 0
diff changeset
   124
        
hgs
parents: 0
diff changeset
   125
        // Note: this can be expanded as needed.  We may want to disable all snippets except
hgs
parents: 0
diff changeset
   126
        // for the status bar and the one who's id was passed in.
hgs
parents: 0
diff changeset
   127
    }
hgs
parents: 0
diff changeset
   128
    chrome_popupShownCount++;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
    
3
hgs
parents: 0
diff changeset
   130
    if(preLoadBookmarksDone==0)
hgs
parents: 0
diff changeset
   131
    {
hgs
parents: 0
diff changeset
   132
    	preLoad();
hgs
parents: 0
diff changeset
   133
    }
hgs
parents: 0
diff changeset
   134
}
hgs
parents: 0
diff changeset
   135
hgs
parents: 0
diff changeset
   136
// Called when a PopupChromeItem is hidden.
hgs
parents: 0
diff changeset
   137
function onPopupHidden(id) {
hgs
parents: 0
diff changeset
   138
    chrome_popupShownCount--;
hgs
parents: 0
diff changeset
   139
    if(chrome_popupShownCount == 0) {
hgs
parents: 0
diff changeset
   140
        // Re-enable snippets etc. that were greyed-out while popups were being shown.
hgs
parents: 0
diff changeset
   141
        snippets.UrlSearchChromeId.enabled = true;
hgs
parents: 0
diff changeset
   142
        views.WebView.enabled = true;
hgs
parents: 0
diff changeset
   143
        views.WebView.unfreeze();
hgs
parents: 0
diff changeset
   144
    }
hgs
parents: 0
diff changeset
   145
    if(chrome_popupShownCount < 0) app.debug("onPopupHidden: error, chrome_popupShownCount invalid");
hgs
parents: 0
diff changeset
   146
}
hgs
parents: 0
diff changeset
   147
hgs
parents: 0
diff changeset
   148
function preloadSuperPage(pageName, path) {
hgs
parents: 0
diff changeset
   149
    if (window.views.WebView[pageName] == undefined) {
hgs
parents: 0
diff changeset
   150
        window.views.WebView.createSuperPage(pageName, true);
hgs
parents: 0
diff changeset
   151
    }
hgs
parents: 0
diff changeset
   152
    window.views.WebView[pageName].load(chrome.baseDirectory + path);
hgs
parents: 0
diff changeset
   153
}
hgs
parents: 0
diff changeset
   154
hgs
parents: 0
diff changeset
   155
function onChromeComplete(){
hgs
parents: 0
diff changeset
   156
    if (app.ui() == "orbit_ui") {
hgs
parents: 0
diff changeset
   157
        snippets.StatusBarChromeId.hide();
hgs
parents: 0
diff changeset
   158
    }
hgs
parents: 0
diff changeset
   159
hgs
parents: 0
diff changeset
   160
    window.snippets.WebViewToolbarId.menuButtonSelected.connect(chrome_showBasicMenu);
hgs
parents: 0
diff changeset
   161
    window.snippets.BookmarkViewToolbarId.addBookmarkSelected.connect(chrome_addBookmark);
hgs
parents: 0
diff changeset
   162
    window.snippets.UrlSearchChromeId.anchorToView("top");
hgs
parents: 0
diff changeset
   163
    window.snippets.WebViewToolbarId.menuButtonCanceled.connect(chrome_cancelMenu);
hgs
parents: 0
diff changeset
   164
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
    //window.snippets.ButtonContainer.setVisibilityAnimator("G_VISIBILITY_FADE_ANIMATOR");
3
hgs
parents: 0
diff changeset
   166
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
    result = new Array;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
    result = calcToolbarPopAnchorOffset(window.snippets.ZoomBarId,
3
hgs
parents: 0
diff changeset
   169
                                        window.snippets.ZoomButtonSnippet,
hgs
parents: 0
diff changeset
   170
                                        0,10);
hgs
parents: 0
diff changeset
   171
    window.snippets.ZoomBarId.anchorTo("ZoomButtonSnippet",result[0],result[1]);
hgs
parents: 0
diff changeset
   172
hgs
parents: 0
diff changeset
   173
    snippets.SuggestsChromeId.url = chrome.baseDirectory + "suggests.snippet/suggests.html";
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
    
3
hgs
parents: 0
diff changeset
   175
    window.ViewStack.activateBookmark.connect(onActivateBookmarkView);
hgs
parents: 0
diff changeset
   176
hgs
parents: 0
diff changeset
   177
    chrome.popupShown.connect(onPopupShown);
hgs
parents: 0
diff changeset
   178
    chrome.popupHidden.connect(onPopupHidden);
hgs
parents: 0
diff changeset
   179
    window.pageController.loadFinished.connect(_updateHistory);
9
hgs
parents: 3
diff changeset
   180
    window.pageController.loadFinishedForBackgroundWindow.connect(_updateHistory);
3
hgs
parents: 0
diff changeset
   181
    window.bookmarksManager.bookmarksCleared.connect(_updateBookmarks);
hgs
parents: 0
diff changeset
   182
    window.bookmarksManager.historyCleared.connect(_updateHistory);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
}
3
hgs
parents: 0
diff changeset
   184
hgs
parents: 0
diff changeset
   185
// For debugging: prints all properties and functions attached to a given object.
hgs
parents: 0
diff changeset
   186
function printProp(x) {
hgs
parents: 0
diff changeset
   187
    var str = "-------------\n" + x + " properties:\n";
hgs
parents: 0
diff changeset
   188
    for (property in x) {
hgs
parents: 0
diff changeset
   189
        str += ("\t" + property + ": " + x[property] + "\n");
hgs
parents: 0
diff changeset
   190
    }
hgs
parents: 0
diff changeset
   191
    app.debug(str);
hgs
parents: 0
diff changeset
   192
}