del /q compiled\*.js\r
\r
cd js\r
-copy qwebirc.js + version.js + jslib.js + irc\ircconnection.js + irc\irclib.js + irc\numerics.js + irc\baseircclient.js + irc\irctracker.js + irc\commandparser.js + irc\ircclient.js + ui\baseui.js + ui\baseuiwindow.js + ui\colour.js + ui\url.js + ui\theme.js + ui\genericlogin.js + ui\embedwizard.js + qwebircinterface.js + irc\commandhistory.js + ui\hilightcontroller.js ..\compiled\qwebirc-concat.js /b\r
+copy qwebirc.js + version.js + jslib.js + irc\ircconnection.js + irc\irclib.js + irc\numerics.js + irc\baseircclient.js + irc\irctracker.js + irc\commandparser.js + irc\ircclient.js + ui\baseui.js + ui\baseuiwindow.js + ui\colour.js + ui\url.js + ui\theme.js + ui\genericlogin.js + ui\embedwizard.js + qwebircinterface.js + irc\commandhistory.js + ui\hilightcontroller.js + ui\menuitems.js ..\compiled\qwebirc-concat.js /b\r
copy ui\swmui.js + ui\swmlayout.js ..\compiled\swmui-concat.js /b\r
cd ..\compiled\r
\r
rm -f compiled/*.js
cd js
-cat qwebirc.js version.js jslib.js irc/ircconnection.js irc/irclib.js irc/numerics.js irc/baseircclient.js irc/irctracker.js irc/commandparser.js irc/ircclient.js ui/baseui.js ui/baseuiwindow.js ui/colour.js ui/url.js ui/theme.js ui/genericlogin.js ui/embedwizard.js irc/commandhistory.js ui/hilightcontroller.js qwebircinterface.js > ../compiled/qwebirc-concat.js
+cat qwebirc.js version.js jslib.js irc/ircconnection.js irc/irclib.js irc/numerics.js irc/baseircclient.js irc/irctracker.js irc/commandparser.js irc/ircclient.js ui/baseui.js ui/baseuiwindow.js ui/colour.js ui/url.js ui/theme.js ui/genericlogin.js ui/embedwizard.js irc/commandhistory.js ui/hilightcontroller.js ui/menuitems.js qwebircinterface.js > ../compiled/qwebirc-concat.js
cat ui/swmui.js ui/swmlayout.js > ../compiled/swmui-concat.js
error() {
--- /dev/null
+qwebirc.ui.MENU_ITEMS = [
+ ["whois", function(nick) {
+ this.client.exec("/WHOIS " + nick);
+ }],
+ ["query", function(nick) {
+ this.client.exec("/QUERY " + nick);
+ }],
+ ["slap", function(nick) {
+ this.client.exec("/ME slaps " + nick + " around a bit with a large fishbot");
+ }]
+];
this.nicklist = new Element("div");
this.nicklist.addClass("nicklist");
this.nicklist.addClass("tab-invisible");
- this.nicklist.addEvent("click", function(x) {
- if(this.prevNick) {
- this.prevNick.removeClass("selected");
- this.prevNick = null;
- }
- }.bind(this));
+ this.nicklist.addEvent("click", this.removePrevMenu.bind(this));
this.parentObject.qjsui.applyClasses("nicklist", this.nicklist);
}
if(this.scrolleddown)
this.scrollToBottom();
},
+ createMenu: function(nick, parent) {
+ var e = document.createElement("div");
+ parent.appendChild(e);
+ e.addClass("menu");
+
+ qwebirc.ui.MENU_ITEMS.forEach(function(x) {
+ var e2 = document.createElement("a");
+ e.appendChild(e2);
+
+ e2.href = "#";
+ e2.set("text", "- " + x[0]);
+
+ e2.addEvent("focus", function() { this.blur() }.bind(e2));
+ e2.addEvent("click", function(ev) { new Event(ev.stop()); this.menuClick(x[1]); }.bind(this));
+ }.bind(this));
+ return e;
+ },
+ menuClick: function(fn) {
+ /*
+ this.prevNick.removeChild(this.prevNick.menu);
+ this.prevNick.menu = null;
+ */
+ fn.bind(this)(this.prevNick.realNick);
+ this.removePrevMenu();
+ },
+ removePrevMenu: function() {
+ if(!this.prevNick)
+ return;
+
+ this.prevNick.removeClass("selected");
+ if(this.prevNick.menu)
+ this.prevNick.removeChild(this.prevNick.menu);
+ this.prevNick = null;
+ },
nickListAdd: function(nick, position) {
var e = new Element("a");
qwebirc.ui.insertAt(position, this.nicklist, e);
e.realNick = this.client.stripPrefix(nick);
e.addEvent("click", function(x) {
- if(this.prevNick)
- this.prevNick.removeClass("selected");
+ this.removePrevMenu();
this.prevNick = e;
e.addClass("selected");
+ e.menu = this.createMenu(x.realNick, e);
new Event(x).stop();
}.bind(this));
e.addEvent("dblclick", function(x) {
import os, sys
IRC_BASE = ["ircconnection", "irclib", "numerics", "baseircclient", "irctracker", "commandparser", "ircclient", "commandhistory"]
-UI_BASE = ["baseui", "baseuiwindow", "colour", "url", "theme", "genericlogin", "embedwizard", "hilightcontroller"]
+UI_BASE = ["baseui", "baseuiwindow", "colour", "url", "theme", "genericlogin", "embedwizard", "hilightcontroller", "menuitems"]
DEBUG_BASE = ["qwebirc", "version", "jslib", ["irc/%s" % x for x in IRC_BASE], ["ui/%s" % x for x in UI_BASE], "qwebircinterface"]
BUILD_BASE = ["qwebirc"]
position: absolute;
top: 0px;
right: 0px;
- width: 125px;
+ width: 140px;
overflow: auto;
background: #f2f0ff;
color: black;
text-align: center;
font-family: Verdana, sans-serif;
font-weight: bold;
+}
+
+.qwebirc-qui .nicklist div.menu {
+ margin: 0px 0px 0px 5px;
+}
+
+.qwebirc-qui .nicklist div.menu a {
+ border-bottom: 0;
+ border-top: 0;
}
\ No newline at end of file