]>
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 | |
7 | this.outerContainer = new Element("div", { "styles": { "display": "none", "font-family": "Lucida Console" } });\r | |
8 | parentObject.container.appendChild(this.outerContainer);\r | |
9 | \r | |
10 | if(type == WINDOW_CHANNEL) {\r | |
11 | this.nicklist = new Element("div", {"styles": { "border-left": "1px solid black", "width": "125px", "float": "right", "height": "480px", "clear": "both", "overflow": "auto", "background": "white"} });\r | |
12 | this.outerContainer.appendChild(this.nicklist);\r | |
4d256d41 CP |
13 | }\r |
14 | \r | |
daddcd5d CP |
15 | var innerContainer = new Element("div", {"styles": { "height": "480px" }});\r |
16 | this.outerContainer.appendChild(innerContainer);\r | |
17 | \r | |
18 | if(type == WINDOW_CHANNEL) {\r | |
19 | this.topic = new Element("div", {"styles": { "background": "#fef", "height": "20px" } });\r | |
20 | innerContainer.appendChild(this.topic);\r | |
4d256d41 | 21 | }\r |
4d256d41 | 22 | \r |
daddcd5d CP |
23 | this.lines = new Element("div", {"styles": { "height": "460px", "overflow": "auto", "word-wrap": "break-word" }});\r |
24 | innerContainer.appendChild(this.lines);\r | |
25 | \r | |
26 | this.tab = new Element("span", {"styles": { "border": "1px black solid", "padding": "2px", "cursor": "default", "margin-right": "2px", "background": "#eee", "clear": "both" } });\r | |
27 | this.tab.appendText(name);\r | |
28 | this.tab.addEvent("click", function() {\r | |
29 | parentObject.selectWindow(this);\r | |
30 | }.bind(this));\r | |
31 | \r | |
32 | parentObject.tabs.appendChild(this.tab);\r | |
33 | \r | |
34 | if(type != WINDOW_STATUS) {\r | |
35 | tabclose = new Element("span", {"styles": { "border": "1px black solid", "margin-left": "5px", "padding": "2px", "font-size": "0.5em" } });\r | |
36 | tabclose.addEvent("click", function(e) {\r | |
37 | new Event(e).stop();\r | |
38 | \r | |
39 | if(type == WINDOW_CHANNEL)\r | |
ecde4837 | 40 | this.client.exec("/PART " + name);\r |
b15204e3 | 41 | \r |
daddcd5d CP |
42 | this.close();\r |
43 | }.bind(this));\r | |
a67a945d | 44 | tabclose.set("text", "X");\r |
daddcd5d | 45 | this.tab.appendChild(tabclose);\r |
c3efd9cc | 46 | }\r |
daddcd5d CP |
47 | },\r |
48 | updateNickList: function(nicks) {\r | |
49 | this.parent(nicks);\r | |
4d256d41 | 50 | \r |
daddcd5d | 51 | var n = this.nicklist;\r |
4d256d41 CP |
52 | while(n.firstChild)\r |
53 | n.removeChild(n.firstChild);\r | |
54 | \r | |
ecde4837 | 55 | nicks.each(function(nick) {\r |
daddcd5d | 56 | var e = new Element("div");\r |
4d256d41 CP |
57 | n.appendChild(e);\r |
58 | e.appendChild(document.createTextNode(nick));\r | |
59 | });\r | |
daddcd5d CP |
60 | },\r |
61 | updateTopic: function(topic) {\r | |
62 | this.parent(topic);\r | |
63 | \r | |
64 | var t = this.topic;\r | |
4d256d41 CP |
65 | \r |
66 | while(t.firstChild)\r | |
67 | t.removeChild(t.firstChild);\r | |
68 | \r | |
da4b5be7 | 69 | Colourise(topic, t);\r |
daddcd5d CP |
70 | },\r |
71 | select: function() {\r | |
72 | this.parent();\r | |
73 | \r | |
74 | this.outerContainer.setStyle("display", "block");\r | |
75 | this.tab.setStyle("background", "#dff");\r | |
76 | this.tab.setStyle("color", "");\r | |
77 | },\r | |
78 | deselect: function() {\r | |
79 | this.parent();\r | |
80 | \r | |
81 | this.outerContainer.setStyle("display", "none");\r | |
82 | this.tab.setStyle("background", "#eee");\r | |
83 | },\r | |
84 | close: function() {\r | |
85 | this.parent();\r | |
86 | \r | |
87 | this.parentObject.container.removeChild(this.outerContainer);\r | |
88 | this.parentObject.tabs.removeChild(this.tab);\r | |
89 | },\r | |
90 | addLine: function(type, line, colour) {\r | |
91 | this.parent(type, line, colour);\r | |
4d256d41 | 92 | \r |
c3efd9cc CP |
93 | var c;\r |
94 | if(colour) {\r | |
95 | c = colour;\r | |
daddcd5d | 96 | } else if(this.lastcolour) {\r |
4d256d41 CP |
97 | c = "#efefef";\r |
98 | } else {\r | |
99 | c = "#eeffff";\r | |
100 | }\r | |
101 | \r | |
102 | var e = new Element("div", { "styles": { "background": c } });\r | |
c3efd9cc | 103 | if(type)\r |
daddcd5d | 104 | line = this.parentObject.theme.message(type, line);\r |
c3efd9cc | 105 | \r |
da4b5be7 | 106 | Colourise(IRCTimestamp(new Date()) + " " + line, e);\r |
4d256d41 | 107 | \r |
daddcd5d | 108 | this.lastcolour = !this.lastcolour;\r |
4379a101 CP |
109 | \r |
110 | var prev = this.lines.getScroll();\r | |
111 | var prevbottom = this.lines.getScrollSize().y;\r | |
112 | var prevsize = this.lines.getSize();\r | |
113 | this.lines.appendChild(e);\r | |
114 | \r | |
115 | if(prev.y + prevsize.y == prevbottom)\r | |
116 | this.lines.scrollTo(prev.x, this.lines.getScrollSize().y);\r | |
117 | \r | |
118 | if(!this.active)\r | |
119 | this.tab.setStyle("color", "red");\r | |
b15204e3 | 120 | }\r |
daddcd5d CP |
121 | });\r |
122 | \r | |
123 | var UglyUI = new Class({\r | |
124 | Extends: UI,\r | |
125 | initialize: function(parentElement, theme) {\r | |
126 | this.parent(UglyUIWindow);\r | |
c3efd9cc | 127 | \r |
daddcd5d CP |
128 | this.parentElement = parentElement;\r |
129 | this.theme = theme;\r | |
b15204e3 | 130 | \r |
daddcd5d CP |
131 | this.tabs = new Element("div", {"styles": { "border": "1px solid black", "padding": "4px", "font-family": "Lucida Console" } });\r |
132 | parentElement.appendChild(this.tabs);\r | |
c3efd9cc | 133 | \r |
daddcd5d CP |
134 | this.container = new Element("div", {"styles": { "border": "1px solid black", "margin": "2px 0px 0px 0px", "height": "480px" } });\r |
135 | parentElement.appendChild(this.container);\r | |
b15204e3 | 136 | \r |
daddcd5d CP |
137 | var form = new Element("form");\r |
138 | var inputbox = new Element("input", {"styles": { "width": "400px", "border": "1px solid black", "margin": "2px 0px 0px 0px"} });\r | |
139 | \r | |
140 | form.addEvent("submit", function(e) {\r | |
141 | new Event(e).stop();\r | |
142 | \r | |
ecde4837 | 143 | this.getActiveWindow().client.exec(inputbox.value);\r |
daddcd5d CP |
144 | inputbox.value = "";\r |
145 | }.bind(this));\r | |
146 | parentElement.appendChild(form); \r | |
147 | form.appendChild(inputbox);\r | |
148 | inputbox.focus();\r | |
4379a101 | 149 | }\r |
daddcd5d | 150 | }); |