return !fn.apply(this, arguments);
}
}
+
+qwebirc.util.deviceHasKeyboard = function() {
+ var determine = function() {
+ if(Browser.Engine.ipod)
+ return true;
+
+ var MOBILE_UAs = ["Nintendo Wii", " PIE", "BlackBerry", "IEMobile", "Windows CE", "Nokia", "Opera Mini", "Mobile", "mobile", "Pocket", "pocket", "Android"];
+ /* safari not included because iphones/ipods send that, and we checked for iphone/ipod specifically above */
+ var DESKTOP_UAs = ["Chrome", "Firefox", "Camino", "Iceweasel", "K-Meleon", "Konqueror", "SeaMonkey", "Windows NT", "Windows 9"];
+
+ var ua = navigator.userAgent;
+
+ var contains = function(v) {
+ return ua.indexOf(v) > -1;
+ }
+
+ for(var i=0;i<MOBILE_UAs.length;i++)
+ if(contains(MOBILE_UAs[i]))
+ return false;
+
+ for(var i=0;i<DESKTOP_UAs.length;i++)
+ if(contains(DESKTOP_UAs[i]))
+ return true;
+
+ return false;
+ };
+ var v = determine();
+
+ qwebirc.util.deviceHasKeyboard = function() {
+ return v;
+ }
+
+ return v;
+}
document.addEvent("mousedown", hider2);
document.addEvent("keypress", hider2);
-
},
createInput: function() {
var form = new Element("form");
this.input.appendChild(form);
+
form.addClass("input");
var inputbox = new Element("input");
form.appendChild(inputbox);
this.inputbox = inputbox;
this.inputbox.maxLength = 512;
-
- form.addEvent("submit", function(e) {
- new Event(e).stop();
-
+
+ var sendInput = function() {
if(inputbox.value == "")
return;
this.resetTabComplete();
this.getActiveWindow().historyExec(inputbox.value);
inputbox.value = "";
- }.bind(this));
+ }.bind(this);
+
+ if(!qwebirc.util.deviceHasKeyboard()) {
+ inputbox.addClass("mobile-input");
+ var inputButton = new Element("input", {type: "button"});
+ inputButton.addClass("mobile-button");
+ inputButton.addEvent("click", function() {
+ sendInput();
+ inputbox.focus();
+ });
+ inputButton.value = ">";
+ this.input.appendChild(inputButton);
+ var reflowButton = function() {
+ var containerSize = this.input.getSize();
+ var buttonSize = inputButton.getSize();
+
+ var buttonLeft = containerSize.x - buttonSize.x - 5; /* lovely 5 */
+
+ inputButton.setStyle("left", buttonLeft);
+ inputbox.setStyle("width", buttonLeft - 5);
+ inputButton.setStyle("height", containerSize.y);
+ }.bind(this);
+ this.qjsui.addEvent("reflow", reflowButton);
+ } else {
+ inputbox.addClass("keyboard-input");
+ }
+
+ form.addEvent("submit", function(e) {
+ new Event(e).stop();
+ sendInput();
+ });
inputbox.addEvent("focus", this.resetTabComplete.bind(this));
inputbox.addEvent("mousedown", this.resetTabComplete.bind(this));