]>
jfr.im git - irc/quakenet/qwebirc.git/blob - js/ui/mochaui.js
710e0732303f61c8325f7516ee9726d92e0de6b9
1 var QMochaUIWindow
= new Class({
4 initialize: function(parentObject
, client
, type
, name
) {
5 this.parent(parentObject
, client
, type
, name
);
7 this.lines
= new Element("div", {styles: {overflow: "auto", "width": "90"}});
9 var toolbar
= type
!= WINDOW_CUSTOM
&& type
!= WINDOW_CONNECT
;
12 this.form
= new Element("form");
13 this.inputbox
= new Element("input", {styles: {border: 0, width: "100%"}});
14 this.inputbox
.addClass("input");
16 this.inputbox
.addEvent("focus", function() {
17 /* TODO: bring to top */
19 //alert(this.windowObject.windowEl);
20 //MochaUI.focusWindow.pass(this.windowObject.windowEl, this.windowObject);
21 //this.windowObject.focusWindow();
22 this.parentObject
.selectWindow(this);
25 this.form
.addEvent("submit", function(e
) {
28 this.client
.exec(this.inputbox
.value
);
29 this.inputbox
.value
= "";
31 //this.container.appendChild(form);
32 this.form
.appendChild(this.inputbox
);
40 container: $("pageWrapper"),
41 toolbarHeight: parentObject
.inputHeight
,
42 toolbarPosition: "bottom",
45 toolbarLoadMethod: "html",
48 addClass: "hidenewwin",
50 parentObject
.selectWindow(this);
53 if(type
== WINDOW_CHANNEL
)
54 this.client
.exec("/PART " + name
);
59 prefs
.toolbar
= toolbar
;
60 prefs
.closable
= type
!= WINDOW_STATUS
&& type
!= WINDOW_CONNECT
;
63 /* var oldIndexLevel = MochaUI.Windows.indexLevel;
66 var oldfocus = MochaUI.focusWindow;
68 MochaUI.Windows.indexLevel = 0;
69 MochaUI.focusWindow = null;
72 var nw
= new MochaUI
.Window(prefs
);
76 MochaUI.Windows.indexLevel = oldIndexLevel;
77 MochaUI.focusWindow = oldfocus;
82 var toolbar
= $(nw
.options
.id
+ "_toolbar");
83 toolbar
.appendChild(this.form
);
85 this.titleText
= $(nw
.options
.id
+ "_title");
86 this.tabText
= $(nw
.options
.id
+ "_dockTabText");
88 /*alert(toolbar.parentNode.getStyle("background"));*/
89 /*this.inputbox.setStyle("background", toolbar.parentNode.getStyle("background"));*/
90 this.windowObject
= nw
;
92 this.scroller
= this.lines
.parentNode
.parentNode
;
96 if(type == WINDOW_CHANNEL) {
97 this.nicklist = new Element("div");
98 this.nicklist.addClass("nicklist");
100 this.outerContainer.appendChild(this.nicklist);
103 var innerContainer = new Element("div");
104 innerContainer.addClass("innercontainer");
105 this.outerContainer.appendChild(innerContainer);
107 if(type == WINDOW_CHANNEL) {
108 this.topic = new Element("div");
109 this.topic.addClass("topic");
110 innerContainer.appendChild(this.topic);
114 updateNickList: function(nicks
) {
118 var n
= this.nicklist
;
120 n
.removeChild(n
.firstChild
);
122 nicks
.each(function(nick
) {
123 var e
= new Element("div");
125 e
.appendChild(document
.createTextNode(nick
));
128 updateTopic: function(topic
) {
134 t
.removeChild(t
.firstChild
);
138 addLine: function(type
, line
, colour
) {
139 var e
= new Element("div");
142 e
.setStyles({"background": colour
});
143 } else if(this.lastcolour
) {
144 e
.addClass("linestyle1");
146 e
.addClass("linestyle2");
148 this.lastcolour
= !this.lastcolour
;
150 this.parent(type
, line
, colour
, e
, this.lines
);
156 this.inputbox
.focus();
158 setHilighted: function(state
) {
162 this.titleText
.setStyle("color", "#ff0000");
163 this.tabText
.setStyle("background-color", "#ff0000");
164 this.tabText
.setStyle("color", "#000000");
166 this.titleText
.setStyle("color", null);
167 this.tabText
.setStyle("background-color", null);
168 this.tabText
.setStyle("color", null);
174 MochaUI
.closeWindow(this.window
.windowEl
);
178 var QMochaUI
= new Class({
180 initialize: function(parentElement
, theme
) {
181 this.parent(parentElement
, QMochaUIWindow
, "mochaui");
183 this.parentElement
= parentElement
;
185 window
.addEvent("domready", function() {
186 /* determine input size */
187 var l
= new Element("input", {styles: {border: 0}});
188 this.parentElement
.appendChild(l
);
189 this.inputHeight
= l
.getSize().y
;
190 this.parentElement
.removeChild(l
);
192 MochaUI
.Desktop
= new MochaUI
.Desktop();
193 MochaUI
.Dock
= new MochaUI
.Dock({
197 MochaUI
.Modal
= new MochaUI
.Modal();
198 MochaUI
.options
.useEffects
= false;
201 window
.addEvent("unload", function() {
203 MochaUI
.garbageCleanUp();
206 postInitialize: function() {
208 this.tabs
= new Element("div");
209 this.tabs
.addClass("tabbar");
211 this.parentElement
.appendChild(this.tabs
);
213 this.container
= new Element("div");
214 this.container
.addClass("container");
216 this.parentElement
.appendChild(this.container
);
218 var form
= new Element("form");
219 var inputbox
= new Element("input");
220 inputbox
.addClass("input");
222 form
.addEvent("submit", function(e
) {
225 this.getActiveWindow().client
.exec(inputbox
.value
);
228 this.parentElement
.appendChild(form
);
229 form
.appendChild(inputbox
);