diff options
Diffstat (limited to 'mobile/android/modules/Prompt.jsm')
-rw-r--r-- | mobile/android/modules/Prompt.jsm | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/mobile/android/modules/Prompt.jsm b/mobile/android/modules/Prompt.jsm deleted file mode 100644 index 5bed87650..000000000 --- a/mobile/android/modules/Prompt.jsm +++ /dev/null @@ -1,234 +0,0 @@ -/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -"use strict" - -var Cc = Components.classes; -var Ci = Components.interfaces; - -Components.utils.import("resource://gre/modules/Services.jsm"); -Components.utils.import("resource://gre/modules/Messaging.jsm"); - -this.EXPORTED_SYMBOLS = ["Prompt"]; - -function log(msg) { - Services.console.logStringMessage(msg); -} - -function Prompt(aOptions) { - this.window = "window" in aOptions ? aOptions.window : null; - - this.msg = { async: true }; - - if (this.window) { - let window = Services.wm.getMostRecentWindow("navigator:browser"); - var tab = window.BrowserApp.getTabForWindow(this.window); - if (tab) { - this.msg.tabId = tab.id; - } - } - - if (aOptions.priority === 1) - this.msg.type = "Prompt:ShowTop" - else - this.msg.type = "Prompt:Show" - - if ("title" in aOptions && aOptions.title != null) - this.msg.title = aOptions.title; - - if ("message" in aOptions && aOptions.message != null) - this.msg.text = aOptions.message; - - if ("buttons" in aOptions && aOptions.buttons != null) - this.msg.buttons = aOptions.buttons; - - if ("doubleTapButton" in aOptions && aOptions.doubleTapButton != null) - this.msg.doubleTapButton = aOptions.doubleTapButton; - - if ("hint" in aOptions && aOptions.hint != null) - this.msg.hint = aOptions.hint; -} - -Prompt.prototype = { - setHint: function(aHint) { - if (!aHint) - delete this.msg.hint; - else - this.msg.hint = aHint; - return this; - }, - - addButton: function(aOptions) { - if (!this.msg.buttons) - this.msg.buttons = []; - this.msg.buttons.push(aOptions.label); - return this; - }, - - _addInput: function(aOptions) { - let obj = aOptions; - if (this[aOptions.type + "_count"] === undefined) - this[aOptions.type + "_count"] = 0; - - obj.id = aOptions.id || (aOptions.type + this[aOptions.type + "_count"]); - this[aOptions.type + "_count"]++; - - if (!this.msg.inputs) - this.msg.inputs = []; - this.msg.inputs.push(obj); - return this; - }, - - addCheckbox: function(aOptions) { - return this._addInput({ - type: "checkbox", - label: aOptions.label, - checked: aOptions.checked, - id: aOptions.id - }); - }, - - addTextbox: function(aOptions) { - return this._addInput({ - type: "textbox", - value: aOptions.value, - hint: aOptions.hint, - autofocus: aOptions.autofocus, - id: aOptions.id - }); - }, - - addNumber: function(aOptions) { - return this._addInput({ - type: "number", - value: aOptions.value, - hint: aOptions.hint, - autofocus: aOptions.autofocus, - id: aOptions.id - }); - }, - - addPassword: function(aOptions) { - return this._addInput({ - type: "password", - value: aOptions.value, - hint: aOptions.hint, - autofocus: aOptions.autofocus, - id : aOptions.id - }); - }, - - addDatePicker: function(aOptions) { - return this._addInput({ - type: aOptions.type || "date", - value: aOptions.value, - id: aOptions.id, - max: aOptions.max, - min: aOptions.min - }); - }, - - addColorPicker: function(aOptions) { - return this._addInput({ - type: "color", - value: aOptions.value, - id: aOptions.id - }); - }, - - addLabel: function(aOptions) { - return this._addInput({ - type: "label", - label: aOptions.label, - id: aOptions.id - }); - }, - - addMenulist: function(aOptions) { - return this._addInput({ - type: "menulist", - values: aOptions.values, - id: aOptions.id - }); - }, - - addIconGrid: function(aOptions) { - return this._addInput({ - type: "icongrid", - items: aOptions.items, - id: aOptions.id - }); - }, - - addTabs: function(aOptions) { - return this._addInput({ - type: "tabs", - items: aOptions.items, - id: aOptions.id - }); - }, - - show: function(callback) { - this.callback = callback; - log("Sending message"); - this._innerShow(); - }, - - _innerShow: function() { - Messaging.sendRequestForResult(this.msg).then((data) => { - if (this.callback) - this.callback(data); - }); - }, - - _setListItems: function(aItems) { - let hasSelected = false; - this.msg.listitems = []; - - aItems.forEach(function(item) { - let obj = { id: item.id }; - - obj.label = item.label; - - if (item.disabled) - obj.disabled = true; - - if (item.selected) { - if (!this.msg.choiceMode) { - this.msg.choiceMode = "single"; - } - obj.selected = item.selected; - } - - if (item.header) - obj.isGroup = true; - - if (item.menu) - obj.isParent = true; - - if (item.child) - obj.inGroup = true; - - if (item.showAsActions) - obj.showAsActions = item.showAsActions; - - if (item.icon) - obj.icon = item.icon; - - this.msg.listitems.push(obj); - - }, this); - return this; - }, - - setSingleChoiceItems: function(aItems) { - return this._setListItems(aItems); - }, - - setMultiChoiceItems: function(aItems) { - this.msg.choiceMode = "multiple"; - return this._setListItems(aItems); - }, - -} |