X-Git-Url: https://jfr.im/git/irc/quakenet/qwebirc.git/blobdiff_plain/9d538d7335351b48dc1fc7dacc72ffd1a3e6a64c..5f2808af69256656fead748a8c5ee46f41177ce1:/js/ui/baseuiwindow.js diff --git a/js/ui/baseuiwindow.js b/js/ui/baseuiwindow.js index cc05e90..84d337e 100644 --- a/js/ui/baseuiwindow.js +++ b/js/ui/baseuiwindow.js @@ -19,13 +19,15 @@ qwebirc.ui.Window = new Class({ this.scrollpos = null; this.lastNickHash = {}; this.lastSelected = null; - }, - updateNickList: function(nicks) { + this.subWindow = null; + this.closed = false; }, updateTopic: function(topic, element) { qwebirc.ui.Colourise("[" + topic + "]", element, this.client.exec, this.parentObject.urlDispatcher.bind(this.parentObject), this); }, close: function() { + this.closed = true; + if($defined(this.scrolltimer)) { $clear(this.scrolltimer); this.scrolltimer = null; @@ -34,16 +36,26 @@ qwebirc.ui.Window = new Class({ this.parentObject.__closed(this); this.fireEvent("close", this); }, + subEvent: function(event) { + if($defined(this.subWindow)) + this.subWindow.fireEvent(event); + }, + setSubWindow: function(window) { + this.subWindow = window; + }, select: function() { this.active = true; this.parentObject.__setActiveWindow(this); if(this.hilighted) this.setHilighted(qwebirc.ui.HILIGHT_NONE); - + + this.subEvent("select"); this.resetScrollPos(); this.lastSelected = new Date(); }, deselect: function() { + this.subEvent("deselect"); + this.setScrollPos(); if($defined(this.scrolltimer)) { $clear(this.scrolltimer); @@ -73,12 +85,18 @@ qwebirc.ui.Window = new Class({ hilight = qwebirc.ui.HILIGHT_ACTIVITY; if(type.match(/(NOTICE|ACTION|MSG)$/)) { - if(this.type == qwebirc.ui.WINDOW_QUERY) { - hilight = qwebirc.ui.HILIGHT_US; + if(this.type == qwebirc.ui.WINDOW_QUERY || this.type == qwebirc.ui.WINDOW_MESSAGES) { + if(type.match(/^OUR/) || type.match(/NOTICE$/)) { + hilight = qwebirc.ui.HILIGHT_ACTIVITY; + } else { + hilight = qwebirc.ui.HILIGHT_US; + this.parentObject.beep(); + } } if(!type.match(/^OUR/) && this.client.hilightController.match(line["m"])) { lhilight = true; hilight = qwebirc.ui.HILIGHT_US; + this.parentObject.beep(); } else if(hilight != qwebirc.ui.HILIGHT_US) { hilight = qwebirc.ui.HILIGHT_SPEECH; } @@ -95,7 +113,10 @@ qwebirc.ui.Window = new Class({ this.scrollAdd(element); }, errorMessage: function(message) { - this.addLine("", message, "red"); + this.addLine("", message, "warncolour"); + }, + infoMessage: function(message) { + this.addLine("", message, "infocolour"); }, setHilighted: function(state) { if(state == qwebirc.ui.HILIGHT_NONE || state >= this.hilighted) @@ -125,6 +146,9 @@ qwebirc.ui.Window = new Class({ return scrollparent; }, scrollToBottom: function() { + if(this.type == qwebirc.ui.WINDOW_CUSTOM || this.type == qwebirc.ui.WINDOW_CONNECT) + return; + var parent = this.lines; var scrollparent = this.getScrollParent(); @@ -179,5 +203,5 @@ qwebirc.ui.Window = new Class({ historyExec: function(line) { this.commandhistory.addLine(line); this.client.exec(line); - } + } });