File: keyboard.js

package info (click to toggle)
webdeveloper 1.2.5%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 5,364 kB
  • ctags: 1,608
  • sloc: makefile: 10
file content (84 lines) | stat: -rw-r--r-- 3,681 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
var WebDeveloper = WebDeveloper || {};

WebDeveloper.Keyboard = WebDeveloper.Keyboard || {};

// Handles the keyboard dialog being accepted
WebDeveloper.Keyboard.accept = function()
{
  // If adding the keyboard shortcut
  if(window.arguments[0][0] == "add")
  {
    WebDeveloper.Preferences.setExtensionIntegerPreference("keyboard.count", window.arguments[0][1] + 1);
  }

  // If the extension is not running on a Mac
  if(!WebDeveloper.Common.isMac())
  {
    document.getElementById("web-developer-keyboard-dialog-pane").writePreferences();
  }
};

// Initializes the keyboard dialog
WebDeveloper.Keyboard.initialize = function()
{
  var position        = window.arguments[0][1] + 1;
  var preferences     = document.getElementById("web-developer-keyboard-preferences");
  var selectedFeature = null;

  WebDeveloper.Dialog.addPreference("webdeveloper.keyboard.feature", "extensions.webdeveloper.keyboard." + position + ".feature", "unichar", preferences);
  WebDeveloper.Dialog.addPreference("webdeveloper.keyboard.key", "extensions.webdeveloper.keyboard." + position + ".key", "wstring", preferences);
  WebDeveloper.Dialog.addPreference("webdeveloper.keyboard.modifiers", "extensions.webdeveloper.keyboard." + position + ".modifiers", "unichar", preferences);

  // If editing the keyboard shortcut
  if(window.arguments[0][0] == "edit")
  {
    selectedFeature = WebDeveloper.Preferences.getExtensionStringPreference("keyboard." + (window.arguments[0][1] + 1) + ".feature");
  }

  WebDeveloper.Keyboard.populateFeatures(selectedFeature);

  document.getElementById("web-developer-keyboard-alt-shift").setAttribute("label", WebDeveloper.Locales.getString("VK_ALT", "web-developer-platform-keys") + WebDeveloper.Locales.getString("MODIFIER_SEPARATOR", "web-developer-platform-keys") + WebDeveloper.Locales.getString("VK_SHIFT", "web-developer-platform-keys"));
  document.getElementById("web-developer-keyboard-control-shift").setAttribute("label", WebDeveloper.Locales.getString("VK_CONTROL", "web-developer-platform-keys") + WebDeveloper.Locales.getString("MODIFIER_SEPARATOR", "web-developer-platform-keys") + WebDeveloper.Locales.getString("VK_SHIFT", "web-developer-platform-keys"));
  document.getElementById("web-developer-keyboard-meta-shift").setAttribute("label", WebDeveloper.Locales.getString("VK_META", "web-developer-platform-keys") + WebDeveloper.Locales.getString("MODIFIER_SEPARATOR", "web-developer-platform-keys") + WebDeveloper.Locales.getString("VK_SHIFT", "web-developer-platform-keys"));
};

// Populates the features
WebDeveloper.Keyboard.populateFeatures = function(selectedFeature)
{
  var feature        = null;
  var featureId      = null;
  var featureMenu    = document.getElementById("web-developer-keyboard-feature");
  var features       = WebDeveloper.Common.getMainWindow().document.querySelectorAll(".web-developer-feature-command");
  var sortedFeatures = [];

  // Loop through the features
  for(var i = 0, l = features.length; i < l; i++)
  {
    feature = features[i];

    sortedFeatures.push([WebDeveloper.Common.getFeatureId(feature.getAttribute("id")), feature.getAttribute("label")]);
  }

  sortedFeatures.sort(WebDeveloper.Keyboard.sortFeatures);

  // Loop through the sorted features
  for(i = 0, l = sortedFeatures.length; i < l; i++)
  {
    feature = sortedFeatures[i];
    featureId = feature[0];

    featureMenu.appendItem(feature[1], featureId);

    // If this is the selected feature
    if(selectedFeature == featureId)
    {
      featureMenu.selectedIndex = i;
    }
  }
};

// Sorts the features
WebDeveloper.Keyboard.sortFeatures = function(featureOne, featureTwo)
{
  return featureOne[1] > featureTwo[1];
};