]>
Commit | Line | Data |
---|---|---|
daddcd5d CP |
1 | var UglyUIWindow = new Class({\r |
2 | Extends: UIWindow,\r | |
4d256d41 | 3 | \r |
daddcd5d CP |
4 | initialize: function(parentObject, client, type, name) {\r |
5 | this.parent(parentObject, client, type, name);\r | |
6 | \r | |
bed65087 CP |
7 | this.outerContainer = new Element("div");\r |
8 | this.outerContainer.addClass("outercontainer");\r | |
9 | this.outerContainer.addClass("tab-invisible");\r | |
10 | \r | |
daddcd5d CP |
11 | parentObject.container.appendChild(this.outerContainer);\r |
12 | \r | |
13 | if(type == WINDOW_CHANNEL) {\r | |
bed65087 CP |
14 | this.nicklist = new Element("div");\r |
15 | this.nicklist.addClass("nicklist");\r | |
16 | \r | |
daddcd5d | 17 | this.outerContainer.appendChild(this.nicklist);\r |
4d256d41 CP |
18 | }\r |
19 | \r | |
bed65087 CP |
20 | var innerContainer = new Element("div");\r |
21 | innerContainer.addClass("innercontainer");\r | |
daddcd5d CP |
22 | this.outerContainer.appendChild(innerContainer);\r |
23 | \r | |
24 | if(type == WINDOW_CHANNEL) {\r | |
bed65087 CP |
25 | this.topic = new Element("div");\r |
26 | this.topic.addClass("topic");\r | |
daddcd5d | 27 | innerContainer.appendChild(this.topic);\r |
4d256d41 | 28 | }\r |
4d256d41 | 29 | \r |
bed65087 CP |
30 | this.lines = new Element("div");\r |
31 | this.lines.addClass("lines");\r | |
daddcd5d CP |
32 | innerContainer.appendChild(this.lines);\r |
33 | \r | |
bed65087 CP |
34 | this.tab = new Element("span");\r |
35 | this.tab.addClass("tab");\r | |
36 | \r | |
daddcd5d CP |
37 | this.tab.appendText(name);\r |
38 | this.tab.addEvent("click", function() {\r | |
39 | parentObject.selectWindow(this);\r | |
40 | }.bind(this));\r | |
41 | \r | |
42 | parentObject.tabs.appendChild(this.tab);\r | |
43 | \r | |
44 | if(type != WINDOW_STATUS) {\r | |
bed65087 CP |
45 | tabclose = new Element("span");\r |
46 | tabclose.addClass("tabclose");\r | |
daddcd5d CP |
47 | tabclose.addEvent("click", function(e) {\r |
48 | new Event(e).stop();\r | |
49 | \r | |
50 | if(type == WINDOW_CHANNEL)\r | |
ecde4837 | 51 | this.client.exec("/PART " + name);\r |
b15204e3 | 52 | \r |
daddcd5d CP |
53 | this.close();\r |
54 | }.bind(this));\r | |
a67a945d | 55 | tabclose.set("text", "X");\r |
daddcd5d | 56 | this.tab.appendChild(tabclose);\r |
c3efd9cc | 57 | }\r |
daddcd5d CP |
58 | },\r |
59 | updateNickList: function(nicks) {\r | |
60 | this.parent(nicks);\r | |
4d256d41 | 61 | \r |
daddcd5d | 62 | var n = this.nicklist;\r |
4d256d41 CP |
63 | while(n.firstChild)\r |
64 | n.removeChild(n.firstChild);\r | |
65 | \r | |
ecde4837 | 66 | nicks.each(function(nick) {\r |
daddcd5d | 67 | var e = new Element("div");\r |
4d256d41 CP |
68 | n.appendChild(e);\r |
69 | e.appendChild(document.createTextNode(nick));\r | |
70 | });\r | |
daddcd5d CP |
71 | },\r |
72 | updateTopic: function(topic) {\r | |
73 | this.parent(topic);\r | |
74 | \r | |
75 | var t = this.topic;\r | |
4d256d41 CP |
76 | \r |
77 | while(t.firstChild)\r | |
78 | t.removeChild(t.firstChild);\r | |
79 | \r | |
da4b5be7 | 80 | Colourise(topic, t);\r |
daddcd5d CP |
81 | },\r |
82 | select: function() {\r | |
83 | this.parent();\r | |
84 | \r | |
bed65087 CP |
85 | this.outerContainer.removeClass("tab-invisible");\r |
86 | this.tab.removeClass("tab-unselected");\r | |
87 | this.tab.removeClass("tab-highlighted");\r | |
88 | this.tab.addClass("tab-selected");\r | |
daddcd5d CP |
89 | },\r |
90 | deselect: function() {\r | |
91 | this.parent();\r | |
92 | \r | |
bed65087 CP |
93 | this.outerContainer.addClass("tab-invisible");\r |
94 | this.tab.removeClass("tab-selected");\r | |
95 | this.tab.addClass("tab-unselected");\r | |
daddcd5d CP |
96 | },\r |
97 | close: function() {\r | |
98 | this.parent();\r | |
99 | \r | |
100 | this.parentObject.container.removeChild(this.outerContainer);\r | |
101 | this.parentObject.tabs.removeChild(this.tab);\r | |
102 | },\r | |
103 | addLine: function(type, line, colour) {\r | |
104 | this.parent(type, line, colour);\r | |
4d256d41 | 105 | \r |
bed65087 CP |
106 | var e = new Element("div");\r |
107 | \r | |
c3efd9cc | 108 | if(colour) {\r |
bed65087 | 109 | e.addStyle("background", colour);\r |
daddcd5d | 110 | } else if(this.lastcolour) {\r |
bed65087 | 111 | e.addClass("linestyle1");\r |
4d256d41 | 112 | } else {\r |
bed65087 | 113 | e.addClass("linestyle2");\r |
4d256d41 CP |
114 | }\r |
115 | \r | |
c3efd9cc | 116 | if(type)\r |
daddcd5d | 117 | line = this.parentObject.theme.message(type, line);\r |
c3efd9cc | 118 | \r |
da4b5be7 | 119 | Colourise(IRCTimestamp(new Date()) + " " + line, e);\r |
4d256d41 | 120 | \r |
daddcd5d | 121 | this.lastcolour = !this.lastcolour;\r |
4379a101 CP |
122 | \r |
123 | var prev = this.lines.getScroll();\r | |
124 | var prevbottom = this.lines.getScrollSize().y;\r | |
125 | var prevsize = this.lines.getSize();\r | |
126 | this.lines.appendChild(e);\r | |
127 | \r | |
128 | if(prev.y + prevsize.y == prevbottom)\r | |
129 | this.lines.scrollTo(prev.x, this.lines.getScrollSize().y);\r | |
130 | \r | |
131 | if(!this.active)\r | |
bed65087 | 132 | this.tab.addClass("tab-highlighted");\r |
b15204e3 | 133 | }\r |
daddcd5d CP |
134 | });\r |
135 | \r | |
136 | var UglyUI = new Class({\r | |
137 | Extends: UI,\r | |
138 | initialize: function(parentElement, theme) {\r | |
bed65087 | 139 | this.parent(parentElement, UglyUIWindow, "uglyui");\r |
c3efd9cc | 140 | \r |
daddcd5d | 141 | this.theme = theme;\r |
b15204e3 | 142 | \r |
bed65087 CP |
143 | this.tabs = new Element("div");\r |
144 | this.tabs.addClass("tabbar");\r | |
145 | \r | |
daddcd5d | 146 | parentElement.appendChild(this.tabs);\r |
c3efd9cc | 147 | \r |
bed65087 CP |
148 | this.container = new Element("div");\r |
149 | this.container.addClass("container");\r | |
150 | \r | |
daddcd5d | 151 | parentElement.appendChild(this.container);\r |
b15204e3 | 152 | \r |
daddcd5d | 153 | var form = new Element("form");\r |
bed65087 CP |
154 | var inputbox = new Element("input");\r |
155 | inputbox.addClass("input");\r | |
daddcd5d CP |
156 | \r |
157 | form.addEvent("submit", function(e) {\r | |
158 | new Event(e).stop();\r | |
159 | \r | |
ecde4837 | 160 | this.getActiveWindow().client.exec(inputbox.value);\r |
daddcd5d CP |
161 | inputbox.value = "";\r |
162 | }.bind(this));\r | |
163 | parentElement.appendChild(form); \r | |
164 | form.appendChild(inputbox);\r | |
165 | inputbox.focus();\r | |
4379a101 | 166 | }\r |
daddcd5d | 167 | }); |