-var QMochaUIWindow = new Class({
- Extends: UIWindow,
+qwebirc.ui.MochaUI = new Class({
+ Extends: qwebirc.ui.NewLoginUI,
+ initialize: function(parentElement, theme) {
+ this.parent(parentElement, qwebirc.ui.MochaUI.Window, "mochaui");
+ this.theme = theme;
+ this.parentElement = parentElement;
+
+ window.addEvent("domready", function() {
+ /* determine input size */
+ var l = new Element("input", {styles: {border: 0}});
+ this.parentElement.appendChild(l);
+ this.inputHeight = l.getSize().y;
+ this.parentElement.removeChild(l);
+
+ MochaUI.Desktop = new MochaUI.Desktop();
+ MochaUI.Dock = new MochaUI.Dock({
+ dockPosition: "top"
+ });
+
+ MochaUI.Modal = new MochaUI.Modal();
+ MochaUI.options.useEffects = false;
+ }.bind(this));
+
+ window.addEvent("unload", function() {
+ if(MochaUI)
+ MochaUI.garbageCleanUp();
+ });
+ },
+ postInitialize: function() {
+ return;
+ this.tabs = new Element("div");
+ this.tabs.addClass("tabbar");
+
+ this.parentElement.appendChild(this.tabs);
+
+ this.container = new Element("div");
+ this.container.addClass("container");
+
+ this.parentElement.appendChild(this.container);
+
+ var form = new Element("form");
+ var inputbox = new Element("input");
+ inputbox.addClass("input");
+
+ form.addEvent("submit", function(e) {
+ new Event(e).stop();
+
+ this.getActiveWindow().client.exec(inputbox.value);
+ inputbox.value = "";
+ }.bind(this));
+ this.parentElement.appendChild(form);
+ form.appendChild(inputbox);
+ inputbox.focus();
+ }
+});
+
+qwebirc.ui.MochaUI.Window = new Class({
+ Extends: qwebirc.ui.Window,
initialize: function(parentObject, client, type, name) {
this.parent(parentObject, client, type, name);
this.lines = new Element("div", {styles: {overflow: "auto", "width": "90"}});
- this.form = new Element("form");
- this.inputbox = new Element("input", {styles: {border: 0, width: "100%"}});
- this.inputbox.addClass("input");
-
- this.form.addEvent("submit", function(e) {
- new Event(e).stop();
-
- this.client.exec(this.inputbox.value);
- this.inputbox.value = "";
- }.bind(this));
- //this.container.appendChild(form);
- this.form.appendChild(this.inputbox);
+ var toolbar = (type != qwebirc.ui.WINDOW_CUSTOM) && (type != qwebirc.ui.WINDOW_CONNECT);
+
+ if(toolbar) {
+ this.form = new Element("form");
+ this.inputbox = new Element("input", {styles: {border: 0, width: "100%"}});
+ this.inputbox.addClass("input");
+
+ this.inputbox.addEvent("focus", function() {
+ /* TODO: bring to top */
+ //alert(":O");
+ //alert(this.windowObject.windowEl);
+ //MochaUI.focusWindow.pass(this.windowObject.windowEl, this.windowObject);
+ //this.windowObject.focusWindow();
+ this.parentObject.selectWindow(this);
+ }.bind(this));
+
+ this.form.addEvent("submit", function(e) {
+ new Event(e).stop();
+
+ this.client.exec(this.inputbox.value);
+ this.inputbox.value = "";
+ }.bind(this));
+ //this.container.appendChild(form);
+ this.form.appendChild(this.inputbox);
+ }
var prefs = {
- width: 500,
+ width: 800,
height: 400,
title: name,
footerHeight: 0,
- toolbar: true,
container: $("pageWrapper"),
toolbarHeight: parentObject.inputHeight,
toolbarPosition: "bottom",
toolbarContent: "",
+ //toolbarURL: "",
+ toolbarLoadMethod: "html",
content: this.lines,
+ minimized: true,
+ addClass: "hidenewwin",
onFocus: function() {
parentObject.selectWindow(this);
}.bind(this),
onClose: function() {
- if(type == WINDOW_CHANNEL)
+ if(type == qwebirc.ui.WINDOW_CHANNEL)
this.client.exec("/PART " + name);
-
this.close();
}.bind(this)
};
- if(type == WINDOW_STATUS)
- prefs.closable = false;
+ prefs.toolbar = toolbar;
+ prefs.closable = type != qwebirc.ui.WINDOW_STATUS && type != qwebirc.ui.WINDOW_CONNECT;
+ /* HACK */
+/* var oldIndexLevel = MochaUI.Windows.indexLevel;
+
+ var focus = false;
+ var oldfocus = MochaUI.focusWindow;
+ if(!focus) {
+ MochaUI.Windows.indexLevel = 0;
+ MochaUI.focusWindow = null;
+ }
+ */
var nw = new MochaUI.Window(prefs);
+ this.window = nw;
+
+ /*if(!focus) {
+ MochaUI.Windows.indexLevel = oldIndexLevel;
+ MochaUI.focusWindow = oldfocus;
+ }*/
+
/* HACK */
- var toolbar = $(nw.options.id + "_toolbar");
- toolbar.appendChild(this.form);
+ if(toolbar) {
+ var toolbar = $(nw.options.id + "_toolbar");
+ toolbar.appendChild(this.form);
+ }
+ this.titleText = $(nw.options.id + "_title");
+ this.tabText = $(nw.options.id + "_dockTabText");
+
+ /*alert(toolbar.parentNode.getStyle("background"));*/
+ /*this.inputbox.setStyle("background", toolbar.parentNode.getStyle("background"));*/
+ this.windowObject = nw;
+
+ this.scroller = this.lines.parentNode.parentNode;
return;
/*
while(t.firstChild)
t.removeChild(t.firstChild);
- Colourise(topic, t);
+ qwebirc.ui.Colourise(topic, t);
},
addLine: function(type, line, colour) {
- this.parent(type, line, colour);
-
var e = new Element("div");
if(colour) {
} else {
e.addClass("linestyle2");
}
-
- if(type)
- line = this.parentObject.theme.message(type, line);
-
- Colourise(IRCTimestamp(new Date()) + " " + line, e);
-
this.lastcolour = !this.lastcolour;
-
- var prev = this.lines.getScroll();
- var prevbottom = this.lines.getScrollSize().y;
- var prevsize = this.lines.getSize();
- this.lines.appendChild(e);
-
- //if(prev.y + prevsize.y == prevbottom)
- this.lines.scrollTo(prev.x, this.lines.getScrollSize().y);
-
- if(!this.active)
- this.lines.showLoadingIcon();
- }
-});
-var QMochaUI = new Class({
- Extends: UI,
- initialize: function(parentElement, theme) {
- this.parent(parentElement, QMochaUIWindow, "mochaui");
- this.theme = theme;
- this.parentElement = parentElement;
-
- window.addEvent("domready", function() {
- /* determine input size */
- var l = new Element("input", {styles: {border: 0}});
- this.parentElement.appendChild(l);
- this.inputHeight = l.getSize().y;
- this.parentElement.removeChild(l);
-
- MochaUI.Desktop = new MochaUI.Desktop();
- MochaUI.Dock = new MochaUI.Dock();
- MochaUI.Modal = new MochaUI.Modal();
- MochaUI.options.useEffects = false;
- }.bind(this));
-
- window.addEvent("unload", function() {
- if(MochaUI)
- MochaUI.garbageCleanUp();
- });
+ this.parent(type, line, colour, e, this.lines);
},
- postInitialize: function() {
- return;
- this.tabs = new Element("div");
- this.tabs.addClass("tabbar");
+ select: function() {
+ this.parent();
- this.parentElement.appendChild(this.tabs);
-
- this.container = new Element("div");
- this.container.addClass("container");
+ if(this.inputbox)
+ this.inputbox.focus();
+ },
+ setHilighted: function(state) {
+ this.parent(state);
- this.parentElement.appendChild(this.container);
-
- var form = new Element("form");
- var inputbox = new Element("input");
- inputbox.addClass("input");
-
- form.addEvent("submit", function(e) {
- new Event(e).stop();
+ if(state) {
+ this.titleText.setStyle("color", "#ff0000");
+ this.tabText.setStyle("background-color", "#ff0000");
+ this.tabText.setStyle("color", "#000000");
+ } else {
+ this.titleText.setStyle("color", null);
+ this.tabText.setStyle("background-color", null);
+ this.tabText.setStyle("color", null);
+ }
+ },
+ close: function() {
+ this.parent();
- this.getActiveWindow().client.exec(inputbox.value);
- inputbox.value = "";
- }.bind(this));
- this.parentElement.appendChild(form);
- form.appendChild(inputbox);
- inputbox.focus();
+ MochaUI.closeWindow(this.window.windowEl);
},
- loginBox: function(callbackfn, intialNickname, initialChannels) {
- this.parent(function(options) {
- this.postInitialize();
- callbackfn(options);
- }.bind(this), intialNickname, initialChannels);
- }
});