]>
jfr.im git - irc/quakenet/qwebirc.git/blob - js/ui/mochaui.js
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 this.form
= new Element("form");
10 this.inputbox
= new Element("input", {styles: {border: 0, width: "100%"}});
11 this.inputbox
.addClass("input");
13 this.inputbox
.addEvent("focus", function() {
14 /* TODO: bring to top */
16 //alert(this.windowObject.windowEl);
17 //MochaUI.focusWindow.pass(this.windowObject.windowEl, this.windowObject);
18 //this.windowObject.focusWindow();
19 this.parentObject
.selectWindow(this);
22 this.form
.addEvent("submit", function(e
) {
25 this.client
.exec(this.inputbox
.value
);
26 this.inputbox
.value
= "";
28 //this.container.appendChild(form);
29 this.form
.appendChild(this.inputbox
);
37 container: $("pageWrapper"),
38 toolbarHeight: parentObject
.inputHeight
,
39 toolbarPosition: "bottom",
42 toolbarLoadMethod: "html",
45 addClass: "hidenewwin",
47 parentObject
.selectWindow(this);
50 if(type
== WINDOW_CHANNEL
)
51 this.client
.exec("/PART " + name
);
56 if(type
== WINDOW_STATUS
)
57 prefs
.closable
= false;
60 /* var oldIndexLevel = MochaUI.Windows.indexLevel;
63 var oldfocus = MochaUI.focusWindow;
65 MochaUI.Windows.indexLevel = 0;
66 MochaUI.focusWindow = null;
69 var nw
= new MochaUI
.Window(prefs
);
72 MochaUI.Windows.indexLevel = oldIndexLevel;
73 MochaUI.focusWindow = oldfocus;
77 var toolbar
= $(nw
.options
.id
+ "_toolbar");
78 this.titleText
= $(nw
.options
.id
+ "_title");
79 this.tabText
= $(nw
.options
.id
+ "_dockTabText");
81 /*alert(toolbar.parentNode.getStyle("background"));*/
82 /*this.inputbox.setStyle("background", toolbar.parentNode.getStyle("background"));*/
83 toolbar
.appendChild(this.form
);
84 this.windowObject
= nw
;
86 this.scroller
= this.lines
.parentNode
.parentNode
;
90 if(type == WINDOW_CHANNEL) {
91 this.nicklist = new Element("div");
92 this.nicklist.addClass("nicklist");
94 this.outerContainer.appendChild(this.nicklist);
97 var innerContainer = new Element("div");
98 innerContainer.addClass("innercontainer");
99 this.outerContainer.appendChild(innerContainer);
101 if(type == WINDOW_CHANNEL) {
102 this.topic = new Element("div");
103 this.topic.addClass("topic");
104 innerContainer.appendChild(this.topic);
108 updateNickList: function(nicks
) {
112 var n
= this.nicklist
;
114 n
.removeChild(n
.firstChild
);
116 nicks
.each(function(nick
) {
117 var e
= new Element("div");
119 e
.appendChild(document
.createTextNode(nick
));
122 updateTopic: function(topic
) {
128 t
.removeChild(t
.firstChild
);
132 addLine: function(type
, line
, colour
) {
133 var e
= new Element("div");
136 e
.setStyles({"background": colour
});
137 } else if(this.lastcolour
) {
138 e
.addClass("linestyle1");
140 e
.addClass("linestyle2");
142 this.lastcolour
= !this.lastcolour
;
144 this.parent(type
, line
, colour
, e
, this.lines
);
149 this.inputbox
.focus();
151 setHilighted: function(state
) {
155 this.titleText
.setStyle("color", "#ff0000");
156 this.tabText
.setStyle("background-color", "#ff0000");
157 this.tabText
.setStyle("color", "#000000");
159 this.titleText
.setStyle("color", null);
160 this.tabText
.setStyle("background-color", null);
161 this.tabText
.setStyle("color", null);
166 var QMochaUI
= new Class({
168 initialize: function(parentElement
, theme
) {
169 this.parent(parentElement
, QMochaUIWindow
, "mochaui");
171 this.parentElement
= parentElement
;
173 window
.addEvent("domready", function() {
174 /* determine input size */
175 var l
= new Element("input", {styles: {border: 0}});
176 this.parentElement
.appendChild(l
);
177 this.inputHeight
= l
.getSize().y
;
178 this.parentElement
.removeChild(l
);
180 MochaUI
.Desktop
= new MochaUI
.Desktop();
181 MochaUI
.Dock
= new MochaUI
.Dock({
185 MochaUI
.Modal
= new MochaUI
.Modal();
186 MochaUI
.options
.useEffects
= false;
189 window
.addEvent("unload", function() {
191 MochaUI
.garbageCleanUp();
194 postInitialize: function() {
196 this.tabs
= new Element("div");
197 this.tabs
.addClass("tabbar");
199 this.parentElement
.appendChild(this.tabs
);
201 this.container
= new Element("div");
202 this.container
.addClass("container");
204 this.parentElement
.appendChild(this.container
);
206 var form
= new Element("form");
207 var inputbox
= new Element("input");
208 inputbox
.addClass("input");
210 form
.addEvent("submit", function(e
) {
213 this.getActiveWindow().client
.exec(inputbox
.value
);
216 this.parentElement
.appendChild(form
);
217 form
.appendChild(inputbox
);
220 loginBox: function(callbackfn
, intialNickname
, initialChannels
, autoConnect
, autoNick
) {
221 this.parent(function(options
) {
222 this.postInitialize();
224 }.bind(this), intialNickname
, initialChannels
, autoConnect
);