-var UglyUIWindow = new Class({
- Extends: UIWindow,
+qwebirc.ui.UglyUI = new Class({
+ Extends: qwebirc.ui.NewLoginUI,
+ initialize: function(parentElement, theme) {
+ this.parent(parentElement, qwebirc.ui.UglyUI.Window, "uglyui");
+ this.theme = theme;
+ this.parentElement = parentElement;
+ },
+ postInitialize: function() {
+ 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");
+ this.form = 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();
+ },
+ showInput: function(state) {
+ this.form.setStyle("display", state?"block":"none");
+ }
+});
+
+qwebirc.ui.UglyUI.Window = new Class({
+ Extends: qwebirc.ui.Window,
initialize: function(parentObject, client, type, name) {
this.parent(parentObject, client, type, name);
parentObject.container.appendChild(this.outerContainer);
- if(type == WINDOW_CHANNEL) {
+ if(type == qwebirc.ui.WINDOW_CHANNEL) {
this.nicklist = new Element("div");
this.nicklist.addClass("nicklist");
innerContainer.addClass("innercontainer");
this.outerContainer.appendChild(innerContainer);
- if(type == WINDOW_CHANNEL) {
+ if(type == qwebirc.ui.WINDOW_CHANNEL) {
this.topic = new Element("div");
this.topic.addClass("topic");
innerContainer.appendChild(this.topic);
parentObject.tabs.appendChild(this.tab);
- if(type != WINDOW_STATUS) {
+ if(type != qwebirc.ui.WINDOW_STATUS && type != qwebirc.ui.WINDOW_CONNECT) {
tabclose = new Element("span");
tabclose.addClass("tabclose");
tabclose.addEvent("click", function(e) {
new Event(e).stop();
- if(type == WINDOW_CHANNEL)
+ if(type == qwebirc.ui.WINDOW_CHANNEL)
this.client.exec("/PART " + name);
this.close();
this.parent();
this.outerContainer.removeClass("tab-invisible");
- this.tab.removeClass("tab-unselected");
- this.tab.removeClass("tab-highlighted");
+ this.tab.removeClass("tab-unselected");
this.tab.addClass("tab-selected");
+ this.parentObject.showInput(this.type != qwebirc.ui.WINDOW_CONNECT && this.type != qwebirc.ui.WINDOW_CUSTOM);
},
deselect: function() {
this.parent();
this.parentObject.tabs.removeChild(this.tab);
},
addLine: function(type, line, colour) {
- this.parent(type, line, colour);
-
var e = new Element("div");
if(colour) {
- e.addStyle("background", colour);
+ e.setStyles({"background": colour});
} else if(this.lastcolour) {
e.addClass("linestyle1");
} 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.tab.addClass("tab-highlighted");
- }
-});
-
-var UglyUI = new Class({
- Extends: UI,
- initialize: function(parentElement, theme) {
- this.parent(parentElement, UglyUIWindow, "uglyui");
- this.theme = theme;
- this.parentElement = parentElement;
+ this.parent(type, line, colour, e);
},
- postInitialize: function() {
- this.tabs = new Element("div");
- this.tabs.addClass("tabbar");
+ setHilighted: function(state) {
+ this.parent(state);
- 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();
- },
- loginBox: function(callbackfn) {
- this.parent(function(options) {
- this.postInitialize();
- callbackfn(options);
- }.bind(this));
+ if(state) {
+ this.tab.addClass("tab-highlighted");
+ } else {
+ this.tab.removeClass("tab-highlighted");
+ }
}
});