]>
jfr.im git - irc/quakenet/qwebirc.git/blob - js/ui/uglyui.js
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
) {
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");
89 deselect: function() {
92 this.outerContainer
.addClass("tab-invisible");
93 this.tab
.removeClass("tab-selected");
94 this.tab
.addClass("tab-unselected");
99 this.parentObject
.container
.removeChild(this.outerContainer
);
100 this.parentObject
.tabs
.removeChild(this.tab
);
102 addLine: function(type
, line
, colour
) {
103 var e
= new Element("div");
106 e
.setStyles({"background": colour
});
107 } else if(this.lastcolour
) {
108 e
.addClass("linestyle1");
110 e
.addClass("linestyle2");
112 this.lastcolour
= !this.lastcolour
;
114 this.parent(type
, line
, colour
, e
);
116 setHilighted: function(state
) {
120 this.tab
.addClass("tab-highlighted");
122 this.tab
.removeClass("tab-highlighted");
127 var UglyUI
= new Class({
129 initialize: function(parentElement
, theme
) {
130 this.parent(parentElement
, UglyUIWindow
, "uglyui");
132 this.parentElement
= parentElement
;
134 postInitialize: function() {
135 this.tabs
= new Element("div");
136 this.tabs
.addClass("tabbar");
138 this.parentElement
.appendChild(this.tabs
);
140 this.container
= new Element("div");
141 this.container
.addClass("container");
143 this.parentElement
.appendChild(this.container
);
145 var form
= new Element("form");
146 var inputbox
= new Element("input");
147 inputbox
.addClass("input");
149 form
.addEvent("submit", function(e
) {
152 this.getActiveWindow().client
.exec(inputbox
.value
);
155 this.parentElement
.appendChild(form
);
156 form
.appendChild(inputbox
);
159 loginBox: function(callbackfn
, intialNickname
, initialChannels
, autoConnect
, autoNick
) {
160 this.parent(function(options
) {
161 this.postInitialize();
163 }.bind(this), intialNickname
, initialChannels
, autoConnect
, autoNick
);