]>
jfr.im git - irc/quakenet/qwebirc.git/blob - js/ui/frontends/uglyui.js
1 qwebirc
.ui
.UglyUI
= new Class({
2 Extends: qwebirc
.ui
.RootUI
,
3 initialize: function(parentElement
, theme
, options
) {
4 this.parent(parentElement
, qwebirc
.ui
.UglyUI
.Window
, "uglyui", options
);
6 this.parentElement
= parentElement
;
8 postInitialize: function() {
9 this.tabs
= new Element("div");
10 this.tabs
.addClass("tabbar");
12 this.parentElement
.appendChild(this.tabs
);
14 this.container
= new Element("div");
15 this.container
.addClass("container");
17 this.parentElement
.appendChild(this.container
);
19 var form
= new Element("form");
22 var inputbox
= new Element("input");
23 inputbox
.addClass("input");
25 form
.addEvent("submit", function(e
) {
28 this.getActiveWindow().client
.exec(inputbox
.value
);
31 this.parentElement
.appendChild(form
);
32 form
.appendChild(inputbox
);
35 showInput: function(state
) {
36 this.form
.setStyle("display", state
?"block":"none");
40 qwebirc
.ui
.UglyUI
.Window
= new Class({
41 Extends: qwebirc
.ui
.Window
,
43 initialize: function(parentObject
, client
, type
, name
, identifier
) {
44 this.parent(parentObject
, client
, type
, name
, identifier
);
46 this.outerContainer
= new Element("div");
47 this.outerContainer
.addClass("outercontainer");
48 this.outerContainer
.addClass("tab-invisible");
50 parentObject
.container
.appendChild(this.outerContainer
);
52 if(type
== qwebirc
.ui
.WINDOW_CHANNEL
) {
53 this.nicklist
= new Element("div");
54 this.nicklist
.addClass("nicklist");
56 this.outerContainer
.appendChild(this.nicklist
);
59 var innerContainer
= new Element("div");
60 innerContainer
.addClass("innercontainer");
61 this.outerContainer
.appendChild(innerContainer
);
63 if(type
== qwebirc
.ui
.WINDOW_CHANNEL
) {
64 this.topic
= new Element("div");
65 this.topic
.addClass("topic");
66 innerContainer
.appendChild(this.topic
);
69 this.lines
= new Element("div");
70 this.lines
.addClass("lines");
71 innerContainer
.appendChild(this.lines
);
73 this.tab
= new Element("span");
74 this.tab
.addClass("tab");
76 this.tab
.appendText(name
);
77 this.tab
.addEvent("click", function() {
78 parentObject
.selectWindow(this);
81 parentObject
.tabs
.appendChild(this.tab
);
83 if(type
!= qwebirc
.ui
.WINDOW_STATUS
&& type
!= qwebirc
.ui
.WINDOW_CONNECT
) {
84 tabclose
= new Element("span");
85 tabclose
.addClass("tabclose");
86 tabclose
.addEvent("click", function(e
) {
89 if(type
== qwebirc
.ui
.WINDOW_CHANNEL
)
90 this.client
.exec("/PART " + name
);
94 tabclose
.set("text", "X");
95 this.tab
.appendChild(tabclose
);
98 updateNickList: function(nicks
) {
101 var n
= this.nicklist
;
103 n
.removeChild(n
.firstChild
);
105 nicks
.each(function(nick
) {
106 var e
= new Element("div");
108 e
.appendChild(document
.createTextNode(nick
));
111 updateTopic: function(topic
) {
117 t
.removeChild(t
.firstChild
);
119 qwebirc
.ui
.Colourise(topic
, t
);
124 this.outerContainer
.removeClass("tab-invisible");
125 this.tab
.removeClass("tab-unselected");
126 this.tab
.addClass("tab-selected");
127 this.parentObject
.showInput(this.type
!= qwebirc
.ui
.WINDOW_CONNECT
&& this.type
!= qwebirc
.ui
.WINDOW_CUSTOM
);
129 deselect: function() {
132 this.outerContainer
.addClass("tab-invisible");
133 this.tab
.removeClass("tab-selected");
134 this.tab
.addClass("tab-unselected");
139 this.parentObject
.container
.removeChild(this.outerContainer
);
140 this.parentObject
.tabs
.removeChild(this.tab
);
142 addLine: function(type
, line
, colour
) {
143 var e
= new Element("div");
146 e
.setStyles({"background": colour
});
147 } else if(this.lastcolour
) {
148 e
.addClass("linestyle1");
150 e
.addClass("linestyle2");
152 this.lastcolour
= !this.lastcolour
;
154 this.parent(type
, line
, colour
, e
);
156 setHilighted: function(state
) {
160 this.tab
.addClass("tab-highlighted");
162 this.tab
.removeClass("tab-highlighted");