]>
jfr.im git - irc/quakenet/qwebirc.git/blob - js/ui/theme.js
1 qwebirc
.ui
.themes
.ThemeControlCodeMap
= {
6 "[": "qwebirc://whois/",
11 qwebirc
.ui
.themes
.Default
= {
12 "PREFIX": ["$C4==$O "],
13 "SIGNON": ["Signed on!", true],
14 "CONNECT": ["Connected to server.", true],
16 "DISCONNECT": ["Disconnected from server: $m", true],
17 "ERROR": ["ERROR: $m", true],
18 "SERVERNOTICE": ["$m", true],
19 "JOIN": ["$N [$h] has joined $c", true],
20 "OURJOIN": ["$N [$h] has joined $c", true],
21 "PART": ["$N [$h] has left $c [$m]", true],
22 "KICK": ["$v was kicked from $c by $N [$m]", true],
23 "MODE": ["mode/$c [$m] by $N", true],
24 "QUIT": ["$N [$h] has quit [$m]", true],
25 "NICK": ["$n has changed nick to $[$w$]", true],
26 "TOPIC": ["$N changed the topic of $c to: $m", true],
27 "UMODE": ["Usermode change: $m", true],
28 "INVITE": ["$N invites you to join $c", true],
31 "CHANMSG": ["<$@$($N$)> $m"],
32 "PRIVMSG": ["<$($N$)> $m"],
33 "CHANNOTICE": ["-$($N$):$c- $m"],
34 "PRIVNOTICE": ["-$($N$)- $m"],
35 "OURCHANMSG": ["<$@$N> $m"],
36 "OURPRIVMSG": ["<$N> $m"],
37 "OURTARGETEDMSG": ["*$[$t$]* $m"],
38 "OURTARGETEDNOTICE": ["[notice($[$t$])] $m"],
39 "OURCHANNOTICE": ["-$N:$t- $m"],
40 "OURPRIVNOTICE": ["-$N- $m"],
41 "OURCHANACTION": [" * $N $m"],
42 "OURPRIVACTION": [" * $N $m"],
43 "CHANACTION": [" * $($N$) $m"],
44 "PRIVACTION": [" * $($N$) $m"],
45 "CHANCTCP": ["$N [$h] requested CTCP $x from $c: $m"],
46 "PRIVCTCP": ["$N [$h] requested CTCP $x from $-: $m"],
47 "CTCPREPLY": ["CTCP $x reply from $N: $m"],
48 "OURCHANCTCP": ["[ctcp($t)] $x $m"],
49 "OURPRIVCTCP": ["[ctcp($t)] $x $m"],
50 "OURTARGETEDCTCP": ["[ctcp($t)] $x $m"],
51 "WHOISUSER": ["$B$N$B [$h]", true],
52 "WHOISREALNAME": [" realname : $m", true],
53 "WHOISCHANNELS": [" channels : $m", true],
54 "WHOISSERVER": [" server : $x [$m]", true],
55 "WHOISACCOUNT": [" account : qwebirc://qwhois/$m", true],
56 "WHOISIDLE": [" idle : $x [connected: $m]", true],
57 "WHOISAWAY": [" away : $m", true],
58 "WHOISOPER": [" : $BIRC Operator$B", true],
59 "WHOISOPERNAME": [" operedas : $m", true],
60 "WHOISACTUALLY": [" realhost : $m [ip: $x]", true],
61 "WHOISEND": ["End of WHOIS", true],
62 "AWAY": ["$N is away: $m", true],
63 "GENERICERROR": ["$m: $t", true],
64 "GENERICMESSAGE": ["$m", true]
67 qwebirc
.ui
.Theme
= new Class({
68 initialize: function(themeDict
) {
69 this.__theme
= qwebirc
.util
.dictCopy(qwebirc
.ui
.themes
.Default
);
72 for(var k
in themeDict
)
73 this.__theme
[k
] = themeDict
[k
];
75 for(var k
in this.__theme
) {
79 var data
= this.__theme
[k
];
81 this.__theme
[k
] = this.__theme
["PREFIX"] + data
[0];
83 this.__theme
[k
] = data
[0];
87 this.__ccmap
= qwebirc
.util
.dictCopy(qwebirc
.ui
.themes
.ThemeControlCodeMap
);
88 this.__ccmaph
= qwebirc
.util
.dictCopy(this.__ccmap
);
90 this.__ccmap
["("] = "";
91 this.__ccmap
[")"] = "";
93 this.__ccmaph
["("] = this.message("HILIGHT", {}, this.__ccmap
);
94 this.__ccmaph
[")"] = this.message("HILIGHTEND", {}, this.__ccmap
);
96 __dollarSubstitute: function(x
, h
, mapper
) {
100 for(var i
=0;i
<n
.length
;i
++) {
102 if(c
== "$" && (i
<= n
.length
- 1)) {
117 message: function(type
, data
, hilight
) {
125 if(data
&& data
["n"])
126 data
["N"] = "qwebirc://whois/" + data
.n
+ "/";
127 return this.__dollarSubstitute(this.__theme
[type
], data
, map
);