]>
jfr.im git - irc/quakenet/qwebirc.git/blob - js/ui/uglyui.js
d2ebd51127a07b8d121007ee7b2e3045245c5df2
1 var UglyUIWindow
= new Class({
4 initialize: function(parentObject
, client
, type
, name
) {
5 this.parent(parentObject
, client
, type
, name
);
7 this.outerContainer
= new Element("div");
8 this.outerContainer
.addClass("outercontainer");
9 this.outerContainer
.addClass("tab-invisible");
11 parentObject
.container
.appendChild(this.outerContainer
);
13 if(type
== WINDOW_CHANNEL
) {
14 this.nicklist
= new Element("div");
15 this.nicklist
.addClass("nicklist");
17 this.outerContainer
.appendChild(this.nicklist
);
20 var innerContainer
= new Element("div");
21 innerContainer
.addClass("innercontainer");
22 this.outerContainer
.appendChild(innerContainer
);
24 if(type
== WINDOW_CHANNEL
) {
25 this.topic
= new Element("div");
26 this.topic
.addClass("topic");
27 innerContainer
.appendChild(this.topic
);
30 this.lines
= new Element("div");
31 this.lines
.addClass("lines");
32 innerContainer
.appendChild(this.lines
);
34 this.tab
= new Element("span");
35 this.tab
.addClass("tab");
37 this.tab
.appendText(name
);
38 this.tab
.addEvent("click", function() {
39 parentObject
.selectWindow(this);
42 parentObject
.tabs
.appendChild(this.tab
);
44 if(type
!= WINDOW_STATUS
&& type
!= WINDOW_CONNECT
) {
45 tabclose
= new Element("span");
46 tabclose
.addClass("tabclose");
47 tabclose
.addEvent("click", function(e
) {
50 if(type
== WINDOW_CHANNEL
)
51 this.client
.exec("/PART " + name
);
55 tabclose
.set("text", "X");
56 this.tab
.appendChild(tabclose
);
59 updateNickList: function(nicks
) {
62 var n
= this.nicklist
;
64 n
.removeChild(n
.firstChild
);
66 nicks
.each(function(nick
) {
67 var e
= new Element("div");
69 e
.appendChild(document
.createTextNode(nick
));
72 updateTopic: function(topic
) {
78 t
.removeChild(t
.firstChild
);
85 this.outerContainer
.removeClass("tab-invisible");
86 this.tab
.removeClass("tab-unselected");
87 this.tab
.addClass("tab-selected");
88 this.parentObject
.showInput(this.type
!= WINDOW_CONNECT
&& this.type
!= WINDOW_CUSTOM
);
90 deselect: function() {
93 this.outerContainer
.addClass("tab-invisible");
94 this.tab
.removeClass("tab-selected");
95 this.tab
.addClass("tab-unselected");
100 this.parentObject
.container
.removeChild(this.outerContainer
);
101 this.parentObject
.tabs
.removeChild(this.tab
);
103 addLine: function(type
, line
, colour
) {
104 var e
= new Element("div");
107 e
.setStyles({"background": colour
});
108 } else if(this.lastcolour
) {
109 e
.addClass("linestyle1");
111 e
.addClass("linestyle2");
113 this.lastcolour
= !this.lastcolour
;
115 this.parent(type
, line
, colour
, e
);
117 setHilighted: function(state
) {
121 this.tab
.addClass("tab-highlighted");
123 this.tab
.removeClass("tab-highlighted");
128 var UglyUI
= new Class({
130 initialize: function(parentElement
, theme
) {
131 this.parent(parentElement
, UglyUIWindow
, "uglyui");
133 this.parentElement
= parentElement
;
135 postInitialize: function() {
136 this.tabs
= new Element("div");
137 this.tabs
.addClass("tabbar");
139 this.parentElement
.appendChild(this.tabs
);
141 this.container
= new Element("div");
142 this.container
.addClass("container");
144 this.parentElement
.appendChild(this.container
);
146 var form
= new Element("form");
149 var inputbox
= new Element("input");
150 inputbox
.addClass("input");
152 form
.addEvent("submit", function(e
) {
155 this.getActiveWindow().client
.exec(inputbox
.value
);
158 this.parentElement
.appendChild(form
);
159 form
.appendChild(inputbox
);
162 showInput: function(state
) {
163 this.form
.setStyle("display", state
?"block":"none");