ginebra2/chrome/bedrockchrome/contextmenu.snippet/ViewContextMenu.js
author hgs
Fri, 15 Oct 2010 17:30:59 -0400
changeset 16 3c88a81ff781
parent 12 afcd8e6d025b
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
hgs
parents:
diff changeset
     1
// This file contains the functions used to create the context menu for the browser's
hgs
parents:
diff changeset
     2
// main content web view.
hgs
parents:
diff changeset
     3
hgs
parents:
diff changeset
     4
hgs
parents:
diff changeset
     5
 // Context menu spec:
hgs
parents:
diff changeset
     6
 // ------------------
hgs
parents:
diff changeset
     7
 //Images---Options to be shown under an "Links/Pictures" tab
hgs
parents:
diff changeset
     8
 // Save
hgs
parents:
diff changeset
     9
 // Share
hgs
parents:
diff changeset
    10
 //
hgs
parents:
diff changeset
    11
 //Images that are also links---Options to be shown under an "Links/Pictures" tab
hgs
parents:
diff changeset
    12
 // Open link in new window
hgs
parents:
diff changeset
    13
 // Save
hgs
parents:
diff changeset
    14
 // Share
hgs
parents:
diff changeset
    15
 //
hgs
parents:
diff changeset
    16
 //URLs-- Options to be shown under a "Links/Picture" tab
hgs
parents:
diff changeset
    17
 // Open link in new window
hgs
parents:
diff changeset
    18
 // Share
hgs
parents:
diff changeset
    19
 //
hgs
parents:
diff changeset
    20
 // Note: the options offered for a link or a picture or a combo
hgs
parents:
diff changeset
    21
 // link/picture are slightly different, but the right set should
hgs
parents:
diff changeset
    22
 // always be shown under a single tab contextual to what's been
hgs
parents:
diff changeset
    23
 // pressed.
hgs
parents:
diff changeset
    24
 //
hgs
parents:
diff changeset
    25
 // If no link or picture has been long-pressed and the user is in
hgs
parents:
diff changeset
    26
 // the CMB - say to see page options or the view switcher--the user
hgs
parents:
diff changeset
    27
 // can still press on the Links/Pictures tab. Because there is no
hgs
parents:
diff changeset
    28
 // known context to present options, we instead show menu items for
hgs
parents:
diff changeset
    29
 // the combined link/image object as grayed out with text on top
hgs
parents:
diff changeset
    30
 // approximating this: "Long-press on a web link or picture to use
hgs
parents:
diff changeset
    31
 // these actions."
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
function viewMenu_getImageItems(imageUrl) {
hgs
parents:
diff changeset
    34
    var items  = new Array();
hgs
parents:
diff changeset
    35
    items =
hgs
parents:
diff changeset
    36
        [
hgs
parents:
diff changeset
    37
         {
hgs
parents:
diff changeset
    38
             "text": window.localeDelegate.translateText("txt_browser_content_view_menu_image_save_image"), // "Save Image",
hgs
parents:
diff changeset
    39
             "onclick": function() {
hgs
parents:
diff changeset
    40
                 if (window.downloads != null) {
hgs
parents:
diff changeset
    41
                     window.downloads.downloadImage(imageUrl);
hgs
parents:
diff changeset
    42
                 } else {
hgs
parents:
diff changeset
    43
                     alert("Save " + imageUrl);
hgs
parents:
diff changeset
    44
                 }
hgs
parents:
diff changeset
    45
             },
hgs
parents:
diff changeset
    46
         },
hgs
parents:
diff changeset
    47
        ]
hgs
parents:
diff changeset
    48
    ;
hgs
parents:
diff changeset
    49
    return items;
hgs
parents:
diff changeset
    50
}
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
function viewMenu_getLinkItems(linkUrl) {
hgs
parents:
diff changeset
    53
    const maxWindowCount = 5;
16
hgs
parents: 12
diff changeset
    54
    var browserSchemeFound = true;
hgs
parents: 12
diff changeset
    55
    // schemes other than http(s) and file may be handled by other app
hgs
parents: 12
diff changeset
    56
    var browserSchemePattern = /^(http|https|file):/i;
hgs
parents: 12
diff changeset
    57
    var matchFound = false;
hgs
parents: 12
diff changeset
    58
    var errorUrl= "javascript:"
hgs
parents: 12
diff changeset
    59
    var disableLink = false;
hgs
parents: 12
diff changeset
    60
    
hgs
parents: 12
diff changeset
    61
    if (linkUrl.substring(0,errorUrl.length) == errorUrl) {
hgs
parents: 12
diff changeset
    62
        matchFound = true;
hgs
parents: 12
diff changeset
    63
    }
hgs
parents: 12
diff changeset
    64
    
hgs
parents: 12
diff changeset
    65
    if (!browserSchemePattern.test(linkUrl)) {
hgs
parents: 12
diff changeset
    66
        // scheme not directly handled by browser and therefore not displayed 
hgs
parents: 12
diff changeset
    67
        // in browser window
hgs
parents: 12
diff changeset
    68
        browserSchemeFound = false;
hgs
parents: 12
diff changeset
    69
    }
hgs
parents: 12
diff changeset
    70
    
hgs
parents: 12
diff changeset
    71
    if ((pageController.pageCount() >= maxWindowCount)
hgs
parents: 12
diff changeset
    72
        || matchFound || !browserSchemeFound) {
hgs
parents: 12
diff changeset
    73
        disableLink = true;
hgs
parents: 12
diff changeset
    74
    }
hgs
parents: 12
diff changeset
    75
    
3
hgs
parents:
diff changeset
    76
    var items = new Array();
hgs
parents:
diff changeset
    77
    items =
hgs
parents:
diff changeset
    78
        [
hgs
parents:
diff changeset
    79
         {
12
hgs
parents: 9
diff changeset
    80
            "text": window.localeDelegate.translateText("txt_browser_content_view_menu_link_open_link"), // "Open Link In New Window",
hgs
parents: 9
diff changeset
    81
            "onclick": function() {
hgs
parents: 9
diff changeset
    82
            pageController.LoadInNewWindow(linkUrl);
hgs
parents: 9
diff changeset
    83
          },
16
hgs
parents: 12
diff changeset
    84
         "disabled": disableLink ? "true" : "false",
3
hgs
parents:
diff changeset
    85
         },
hgs
parents:
diff changeset
    86
        ]
hgs
parents:
diff changeset
    87
    ;
hgs
parents:
diff changeset
    88
    return items;
hgs
parents:
diff changeset
    89
}
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
function viewMenu_getNavMenuData(current) {
hgs
parents:
diff changeset
    92
    return {
hgs
parents:
diff changeset
    93
         "text": window.localeDelegate.translateText("txt_browser_content_view_menu_tab_navigation"), // "Navigation",
16
hgs
parents: 12
diff changeset
    94
         "iconHighlighted": "/contextmenu/nav_selected.png",
hgs
parents: 12
diff changeset
    95
         "icon": "/contextmenu/nav_deselected.png",
3
hgs
parents:
diff changeset
    96
         "current": current ? "true" : "false",
hgs
parents:
diff changeset
    97
         "menuItems":
hgs
parents:
diff changeset
    98
             [
hgs
parents:
diff changeset
    99
               {
hgs
parents:
diff changeset
   100
                 "text": window.localeDelegate.translateText("txt_browser_content_view_menu_nav_bookmarks"),
hgs
parents:
diff changeset
   101
                 "onclick": chrome_showBookmarksView,
hgs
parents:
diff changeset
   102
               },
hgs
parents:
diff changeset
   103
               {
hgs
parents:
diff changeset
   104
                 "text": window.localeDelegate.translateText("txt_browser_content_view_menu_nav_history"),
hgs
parents:
diff changeset
   105
                 "onclick": chrome_showHistoryView,
hgs
parents:
diff changeset
   106
               },
hgs
parents:
diff changeset
   107
               {
hgs
parents:
diff changeset
   108
                 "text": window.localeDelegate.translateText("txt_browser_content_view_menu_nav_windows"),
hgs
parents:
diff changeset
   109
                 "onclick": chrome_showWindowsView,
hgs
parents:
diff changeset
   110
               },
hgs
parents:
diff changeset
   111
               {
hgs
parents:
diff changeset
   112
                 "text": window.localeDelegate.translateText("txt_browser_content_view_menu_nav_settings"),
hgs
parents:
diff changeset
   113
                 "onclick": chrome_showSettingsView,
hgs
parents:
diff changeset
   114
               },
hgs
parents:
diff changeset
   115
               {
hgs
parents:
diff changeset
   116
                 "text": window.localeDelegate.translateText("txt_browser_content_view_menu_nav_exit"),
hgs
parents:
diff changeset
   117
                 "onclick": window.app.quit,
hgs
parents:
diff changeset
   118
               },               
hgs
parents:
diff changeset
   119
             ],
hgs
parents:
diff changeset
   120
    };
hgs
parents:
diff changeset
   121
}
hgs
parents:
diff changeset
   122
16
hgs
parents: 12
diff changeset
   123
function viewMenu_getTextEditMenuData(isContentSelected) {
hgs
parents: 12
diff changeset
   124
hgs
parents: 12
diff changeset
   125
    var items = new Array();
hgs
parents: 12
diff changeset
   126
    items = [
hgs
parents: 12
diff changeset
   127
         {
hgs
parents: 12
diff changeset
   128
            "text": "copy",
hgs
parents: 12
diff changeset
   129
            "disabled" : isContentSelected ? "false" : "true",
hgs
parents: 12
diff changeset
   130
            "onclick": function() {
hgs
parents: 12
diff changeset
   131
                pageController.copy();
hgs
parents: 12
diff changeset
   132
            },
hgs
parents: 12
diff changeset
   133
         },
hgs
parents: 12
diff changeset
   134
         {
hgs
parents: 12
diff changeset
   135
             "text": "cut",
hgs
parents: 12
diff changeset
   136
             "disabled" : isContentSelected ? "false" : "true",
hgs
parents: 12
diff changeset
   137
             "onclick": function() {
hgs
parents: 12
diff changeset
   138
                 pageController.cut();
hgs
parents: 12
diff changeset
   139
             },
hgs
parents: 12
diff changeset
   140
         },
hgs
parents: 12
diff changeset
   141
        ];
hgs
parents: 12
diff changeset
   142
hgs
parents: 12
diff changeset
   143
    items = items.concat( [ {
hgs
parents: 12
diff changeset
   144
                 "text": "paste",
hgs
parents: 12
diff changeset
   145
                 "disabled": pageController.hasTextOnClipBoard() ? "false" : "true",
hgs
parents: 12
diff changeset
   146
                 "onclick": function() {
hgs
parents: 12
diff changeset
   147
                     pageController.paste();
hgs
parents: 12
diff changeset
   148
                   },
hgs
parents: 12
diff changeset
   149
               },]);
hgs
parents: 12
diff changeset
   150
hgs
parents: 12
diff changeset
   151
    return {
hgs
parents: 12
diff changeset
   152
         "text": "",
hgs
parents: 12
diff changeset
   153
         "current": "true",
hgs
parents: 12
diff changeset
   154
         "menuItems": items,
hgs
parents: 12
diff changeset
   155
    };
hgs
parents: 12
diff changeset
   156
}
hgs
parents: 12
diff changeset
   157
3
hgs
parents:
diff changeset
   158
function viewMenu_getPageMenuData(current) {
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
    var popupsBlocked =  pageController.getPopupSettings();
12
hgs
parents: 9
diff changeset
   161
    var tempUrl = pageController.currentDocUrl;
3
hgs
parents:
diff changeset
   162
    return {
hgs
parents:
diff changeset
   163
         "text": window.localeDelegate.translateText("txt_browser_content_view_menu_tab_page"), // "Page",
16
hgs
parents: 12
diff changeset
   164
         "iconHighlighted": "/contextmenu/page_selected.png",
hgs
parents: 12
diff changeset
   165
         "icon": "/contextmenu/page_deselected.png",
3
hgs
parents:
diff changeset
   166
         "current": current ? "true" : "false",
hgs
parents:
diff changeset
   167
         "menuItems":
hgs
parents:
diff changeset
   168
             [
hgs
parents:
diff changeset
   169
               {
hgs
parents:
diff changeset
   170
                 "text": window.localeDelegate.translateText("txt_browser_content_view_menu_page_add_bookmark"), // "Add Bookmark",
hgs
parents:
diff changeset
   171
                 "onclick": function() {
12
hgs
parents: 9
diff changeset
   172
                   launchBookmarkDialog(pageController.currentDocTitle, pageController.currentDocUrl,-1,0);
3
hgs
parents:
diff changeset
   173
                 },
hgs
parents:
diff changeset
   174
               },
hgs
parents:
diff changeset
   175
               {
hgs
parents:
diff changeset
   176
                 "text": (popupsBlocked ) ?
hgs
parents:
diff changeset
   177
                    window.localeDelegate.translateText("txt_browser_content_view_menu_page_allow_popups"): 
hgs
parents:
diff changeset
   178
                    window.localeDelegate.translateText("txt_browser_content_view_menu_page_block_popups"), // "Block/Allow Pop-ups"
hgs
parents:
diff changeset
   179
                  "onclick": function() {
hgs
parents:
diff changeset
   180
                    pageController.savePopupSettings(!popupsBlocked);
hgs
parents:
diff changeset
   181
                 },
hgs
parents:
diff changeset
   182
               },
hgs
parents:
diff changeset
   183
               {
hgs
parents:
diff changeset
   184
                 "text": window.localeDelegate.translateText("txt_browser_content_view_menu_page_share"), // "Share",
12
hgs
parents: 9
diff changeset
   185
                 "disabled": tempUrl ? "false" : "true",
3
hgs
parents:
diff changeset
   186
                 "onclick": function() {
hgs
parents:
diff changeset
   187
                 pageController.share(tempUrl);    
hgs
parents:
diff changeset
   188
                },                 
hgs
parents:
diff changeset
   189
               },
hgs
parents:
diff changeset
   190
             ],
hgs
parents:
diff changeset
   191
    };
hgs
parents:
diff changeset
   192
}
hgs
parents:
diff changeset
   193
hgs
parents:
diff changeset
   194
// Return a data structure representing the context menu for the main web view based
hgs
parents:
diff changeset
   195
// on the information in contextEvent.
hgs
parents:
diff changeset
   196
function viewMenu_getWebViewContextMenuData(contextEvent) {
hgs
parents:
diff changeset
   197
    var tabList = new Array;
hgs
parents:
diff changeset
   198
    var linkUrl = contextEvent != undefined ? contextEvent.linkUrl : "";
hgs
parents:
diff changeset
   199
    var imageUrl = contextEvent != undefined ? contextEvent.imageUrl : "";
hgs
parents:
diff changeset
   200
    var isLink = linkUrl != "";
hgs
parents:
diff changeset
   201
    var isImage = imageUrl != "";
hgs
parents:
diff changeset
   202
    var isLinkOrImage = isLink || isImage;
16
hgs
parents: 12
diff changeset
   203
    var isContentEditable = contextEvent != undefined ? contextEvent.isContentEditable : false;
hgs
parents: 12
diff changeset
   204
    var isContentSelected = contextEvent != undefined ? contextEvent.isContentSelected : false;
hgs
parents: 12
diff changeset
   205
hgs
parents: 12
diff changeset
   206
    if (isContentEditable) {
hgs
parents: 12
diff changeset
   207
         var menuList = new Array;
hgs
parents: 12
diff changeset
   208
         menuList = menuList.concat(viewMenu_getTextEditMenuData(isContentSelected));
hgs
parents: 12
diff changeset
   209
         return {
hgs
parents: 12
diff changeset
   210
             "menus": menuList
hgs
parents: 12
diff changeset
   211
         };
hgs
parents: 12
diff changeset
   212
    }
3
hgs
parents:
diff changeset
   213
hgs
parents:
diff changeset
   214
    // Build Navigation tab and its menu.
hgs
parents:
diff changeset
   215
    if (contextEvent == undefined)
hgs
parents:
diff changeset
   216
      tabList = tabList.concat(viewMenu_getNavMenuData(true));
hgs
parents:
diff changeset
   217
    else
hgs
parents:
diff changeset
   218
      tabList = tabList.concat(viewMenu_getNavMenuData(false));
hgs
parents:
diff changeset
   219
hgs
parents:
diff changeset
   220
    var linkMenuItems = new Array();
hgs
parents:
diff changeset
   221
9
hgs
parents: 3
diff changeset
   222
	// Get link related menu items.
hgs
parents: 3
diff changeset
   223
    if (isLink || !isLinkOrImage)
hgs
parents: 3
diff changeset
   224
        linkMenuItems = linkMenuItems.concat(viewMenu_getLinkItems(linkUrl));
hgs
parents: 3
diff changeset
   225
3
hgs
parents:
diff changeset
   226
    // Get image related menu items.
hgs
parents:
diff changeset
   227
    if (isImage || !isLinkOrImage)
hgs
parents:
diff changeset
   228
        linkMenuItems = linkMenuItems.concat(viewMenu_getImageItems(imageUrl));
hgs
parents:
diff changeset
   229
9
hgs
parents: 3
diff changeset
   230
   
3
hgs
parents:
diff changeset
   231
    linkMenuItems = linkMenuItems.concat(
hgs
parents:
diff changeset
   232
         [
hgs
parents:
diff changeset
   233
             {
9
hgs
parents: 3
diff changeset
   234
             	// Show "Share" for Image or empty area, "Share Link" for link in the menu item.
hgs
parents: 3
diff changeset
   235
		     	"text": (isImage || !isLinkOrImage) ?
hgs
parents: 3
diff changeset
   236
                	window.localeDelegate.translateText("txt_browser_content_view_menu_page_share"): 
hgs
parents: 3
diff changeset
   237
                    window.localeDelegate.translateText("txt_browser_content_view_menu_link_share_link"),//Share Link	
3
hgs
parents:
diff changeset
   238
                 "onclick": function() {
hgs
parents:
diff changeset
   239
                  if ( isImage || !isLinkOrImage)
hgs
parents:
diff changeset
   240
                      {
hgs
parents:
diff changeset
   241
               	      pageController.share(imageUrl); 
hgs
parents:
diff changeset
   242
                      }
hgs
parents:
diff changeset
   243
                  else
hgs
parents:
diff changeset
   244
                      { 
hgs
parents:
diff changeset
   245
             	        pageController.share(linkUrl); 
hgs
parents:
diff changeset
   246
         	      }
hgs
parents:
diff changeset
   247
                 },
hgs
parents:
diff changeset
   248
             }
hgs
parents:
diff changeset
   249
         ]);
hgs
parents:
diff changeset
   250
hgs
parents:
diff changeset
   251
    // Build image/link tab and menu data.
hgs
parents:
diff changeset
   252
    tabList = tabList.concat( {
hgs
parents:
diff changeset
   253
         "text": (isLink && isImage || !isLink && !isImage)
hgs
parents:
diff changeset
   254
            ? window.localeDelegate.translateText("txt_browser_content_view_menu_tab_link_image") // "Link/image"
hgs
parents:
diff changeset
   255
            : (isLink
hgs
parents:
diff changeset
   256
               ? window.localeDelegate.translateText("txt_browser_content_view_menu_tab_link") // "Link"
hgs
parents:
diff changeset
   257
               : window.localeDelegate.translateText("txt_browser_content_view_menu_tab_image")), // "image"
16
hgs
parents: 12
diff changeset
   258
         "icon": "/contextmenu/links_deselected.png",
hgs
parents: 12
diff changeset
   259
         "iconHighlighted": "/contextmenu/links_selected.png",
3
hgs
parents:
diff changeset
   260
         "current": isLinkOrImage ? "true" : "false",
hgs
parents:
diff changeset
   261
         "disabled": isLinkOrImage ? "false" : "true",
hgs
parents:
diff changeset
   262
         "menuItems": linkMenuItems,
hgs
parents:
diff changeset
   263
    });
hgs
parents:
diff changeset
   264
hgs
parents:
diff changeset
   265
    // Build Page tab and menu data.
hgs
parents:
diff changeset
   266
    if (contextEvent == undefined)
hgs
parents:
diff changeset
   267
      tabList = tabList.concat(viewMenu_getPageMenuData(false));
hgs
parents:
diff changeset
   268
    else
hgs
parents:
diff changeset
   269
      tabList = tabList.concat(viewMenu_getPageMenuData(!isLinkOrImage));
hgs
parents:
diff changeset
   270
hgs
parents:
diff changeset
   271
    // Combine the tabs and return them.
hgs
parents:
diff changeset
   272
    return {
hgs
parents:
diff changeset
   273
        "tabs": tabList
hgs
parents:
diff changeset
   274
    };
hgs
parents:
diff changeset
   275
}
hgs
parents:
diff changeset
   276
16
hgs
parents: 12
diff changeset
   277
// Return a data structure representing the context menu for the edit widget
hgs
parents: 12
diff changeset
   278
function viewMenu_getEditWidgetContextMenuData(isContentSelected, snippetId) {
hgs
parents: 12
diff changeset
   279
    var menuItems = new Array();
hgs
parents: 12
diff changeset
   280
    menuItems = [
hgs
parents: 12
diff changeset
   281
         {
hgs
parents: 12
diff changeset
   282
            "text": "copy",
hgs
parents: 12
diff changeset
   283
            "disabled" : isContentSelected ? "false" : "true",
hgs
parents: 12
diff changeset
   284
            "onclick": function() {
hgs
parents: 12
diff changeset
   285
                window.snippets[snippetId].copy();
hgs
parents: 12
diff changeset
   286
            },
hgs
parents: 12
diff changeset
   287
         },
hgs
parents: 12
diff changeset
   288
         {
hgs
parents: 12
diff changeset
   289
             "text": "cut",
hgs
parents: 12
diff changeset
   290
             "disabled" : isContentSelected ? "false" : "true",
hgs
parents: 12
diff changeset
   291
             "onclick": function() {
hgs
parents: 12
diff changeset
   292
                 window.snippets[snippetId].cut();
hgs
parents: 12
diff changeset
   293
             },
hgs
parents: 12
diff changeset
   294
         },
hgs
parents: 12
diff changeset
   295
        ];
hgs
parents: 12
diff changeset
   296
hgs
parents: 12
diff changeset
   297
    menuItems = menuItems.concat( [ {
hgs
parents: 12
diff changeset
   298
                 "text": "paste",
hgs
parents: 12
diff changeset
   299
                 "disabled": pageController.hasTextOnClipBoard() ? "false" : "true",
hgs
parents: 12
diff changeset
   300
                 "onclick": function() {
hgs
parents: 12
diff changeset
   301
                     window.snippets[snippetId].paste();
hgs
parents: 12
diff changeset
   302
                 },
hgs
parents: 12
diff changeset
   303
               },]);
hgs
parents: 12
diff changeset
   304
hgs
parents: 12
diff changeset
   305
    return {
hgs
parents: 12
diff changeset
   306
        "menus": [
hgs
parents: 12
diff changeset
   307
                   { "text": "",
hgs
parents: 12
diff changeset
   308
                     "current": "true",
hgs
parents: 12
diff changeset
   309
                     "menuItems": menuItems,
hgs
parents: 12
diff changeset
   310
                   },
hgs
parents: 12
diff changeset
   311
                 ]
hgs
parents: 12
diff changeset
   312
    };
hgs
parents: 12
diff changeset
   313
}
hgs
parents: 12
diff changeset
   314
3
hgs
parents:
diff changeset
   315
// Initialize the WebView's context menu.
hgs
parents:
diff changeset
   316
function viewMenu_initWebViewContextMenu() {
hgs
parents:
diff changeset
   317
    // Connect to the view's contextEvent signal.
hgs
parents:
diff changeset
   318
    views.WebView.contextEvent.connect(
hgs
parents:
diff changeset
   319
        function(contextEvent) {
hgs
parents:
diff changeset
   320
            //printProp(contextEvent);
16
hgs
parents: 12
diff changeset
   321
            var menuData = viewMenu_getWebViewContextMenuData(contextEvent);
hgs
parents: 12
diff changeset
   322
            if (menuData.menus != undefined && menuData.menus[0].menuItems.length == 0)
hgs
parents: 12
diff changeset
   323
                return;
hgs
parents: 12
diff changeset
   324
            cm_TheContextMenu.editingSnippet = undefined;
hgs
parents: 12
diff changeset
   325
            cm_TheContextMenu.show(menuData);
3
hgs
parents:
diff changeset
   326
        }
hgs
parents:
diff changeset
   327
    );
16
hgs
parents: 12
diff changeset
   328
hgs
parents: 12
diff changeset
   329
    // Connect to the snippets' contextEvent signal
hgs
parents: 12
diff changeset
   330
    for(var i = 0; i < chrome.snippets.length; i++) {
hgs
parents: 12
diff changeset
   331
        var snippet = chrome.snippets[i];
hgs
parents: 12
diff changeset
   332
        if (snippet.editable() && !snippet.useNativeCopyPasteMenu()) {
hgs
parents: 12
diff changeset
   333
            //alert(snippet);
hgs
parents: 12
diff changeset
   334
            snippet.contextEvent.connect(
hgs
parents: 12
diff changeset
   335
                function(isContentSelected, snippetId) {
hgs
parents: 12
diff changeset
   336
                    var menuData = viewMenu_getEditWidgetContextMenuData(isContentSelected, snippetId);
hgs
parents: 12
diff changeset
   337
                    if (menuData.menus != undefined && menuData.menus[0].menuItems.length == 0)
hgs
parents: 12
diff changeset
   338
                        return;
hgs
parents: 12
diff changeset
   339
                    cm_TheContextMenu.editingSnippet = window.snippets[snippetId];
hgs
parents: 12
diff changeset
   340
                    cm_TheContextMenu.show(menuData);
hgs
parents: 12
diff changeset
   341
                }
hgs
parents: 12
diff changeset
   342
            );
hgs
parents: 12
diff changeset
   343
        }
hgs
parents: 12
diff changeset
   344
    }
hgs
parents: 12
diff changeset
   345
3
hgs
parents:
diff changeset
   346
}
hgs
parents:
diff changeset
   347
hgs
parents:
diff changeset
   348
chrome.chromeComplete.connect(viewMenu_initWebViewContextMenu);