diff --git a/TODO b/TODO
index c066c5a..78e23c0 100644
--- a/TODO
+++ b/TODO
@@ -1,18 +1,11 @@
Features:
-* chumdb not working great
-* tab recombining gives wrong window icon
-* switch focus to lineedit
-* colors from ppl msging you not on your buddy list dont work - check chumdb
* scaling icons
-* menubar should pass on mouse move
* tab background
-* softcode conversation handle
* top box layout
-* mood change image -- can't it be done already?
* chat scrolls when switch theme
-* softcode menu names and protocol messages, menu location
* eliminate "SWITCH" in profile menu
* remove highlighted text area if focus in textinput
+* new sound on CEASE and BEGIN?
* windows text goes gray when out of focus
* Logging
* Block list
@@ -23,6 +16,7 @@ Features:
* color tags
* /me ghostDunk's [GD'S]
* Transparent background
+* tab recombining gives wrong window icon
-- release alpha
* shared buddy lists - changes to the buddy list should refresh it?
multiple clients share buddy list???
diff --git a/logs/chums.js b/logs/chums.js
index 0a49db4..cac9eaf 100644
--- a/logs/chums.js
+++ b/logs/chums.js
@@ -1 +1 @@
-{"gamblingGenocider": {"color": "#00ff00", "handle": "gamblingGenocider", "mood": "offline"}, "aquaMarinist": {"color": "#00caca", "handle": "aquaMarinist", "mood": "offline"}, "unknownTraveler": {"color": "#006666", "handle": "unknownTraveler", "mood": "offline"}, "captainCaveman": {"color": "#7c414e", "handle": "captainCaveman", "mood": "offline"}}
\ No newline at end of file
+{"aquaMarinist": {"color": "#00caca", "handle": "aquaMarinist", "mood": "offline"}, "superGhost": {"color": "#800564", "handle": "superGhost", "mood": "offline"}, "captainCaveman": {"color": "#7c414e", "handle": "captainCaveman", "mood": "offline"}, "gamblingGenocider": {"color": "#00ff00", "handle": "gamblingGenocider", "mood": "offline"}, "unknownTraveler": {"color": "#006666", "handle": "unknownTraveler", "mood": "offline"}, "marineAquist": {"color": "#00caca", "handle": "marineAquist", "mood": "offline"}}
\ No newline at end of file
diff --git a/pesterchum.js b/pesterchum.js
index 298cc81..81621d8 100644
--- a/pesterchum.js
+++ b/pesterchum.js
@@ -1 +1 @@
-{"tabs": true, "chums": ["aquaMarinist", "gardenGnostic", "gamblingGenocider", "schlagzeugGator", "mechanicalSpectacle", "marineAquist"], "defaultprofile": "ghostDunk"}
\ No newline at end of file
+{"tabs": true, "chums": ["aquaMarinist", "gardenGnostic", "gamblingGenocider", "schlagzeugGator", "mechanicalSpectacle", "marineAquist", "unknownTraveler"], "defaultprofile": "testProfile"}
\ No newline at end of file
diff --git a/pesterchum.py b/pesterchum.py
index fcb77b6..3016fda 100644
--- a/pesterchum.py
+++ b/pesterchum.py
@@ -6,6 +6,7 @@ import logging
import os, sys
import os.path
from datetime import *
+from string import Template
import random
import json
import re
@@ -85,11 +86,9 @@ class PesterProfileDB(dict):
fp.close()
def getColor(self, handle, default=None):
if not self.has_key(handle):
- print "no color found for %s" % (handle)
return default
else:
- print "pulled %s from db" % (handle)
- return self[handle]["color"]
+ return self[handle].color
def setColor(self, handle, color):
if self.has_key(handle):
self[handle].color = color
@@ -125,10 +124,10 @@ class PesterProfile(object):
"mood": self.mood.name(),
"color": unicode(self.color.name())})
- def beganpestermsg(self, otherchum):
- return "-- %s [%s] began pestering %s [%s] at %s --" % (self.handle, self.colorhtml(), self.initials(), otherchum.handle, otherchum.colorhtml(), otherchum.initials(), datetime.now().strftime("%H:%M"))
- def ceasedpestermsg(self, otherchum):
- return "-- %s [%s] ceased pestering %s [%s] at %s --" % (self.handle, self.colorhtml(), self.initials(), otherchum.handle, otherchum.colorhtml(), otherchum.initials(), datetime.now().strftime("%H:%M"))
+ def beganpestermsg(self, otherchum, verb="began pestering"):
+ return "-- %s [%s] %s %s [%s] at %s --" % (self.handle, self.colorhtml(), self.initials(), verb, otherchum.handle, otherchum.colorhtml(), otherchum.initials(), datetime.now().strftime("%H:%M"))
+ def ceasedpestermsg(self, otherchum, verb="ceased pestering"):
+ return "-- %s [%s] %s %s [%s] at %s --" % (self.handle, self.colorhtml(), self.initials(), verb, otherchum.handle, otherchum.colorhtml(), otherchum.initials(), datetime.now().strftime("%H:%M"))
@staticmethod
def checkLength(handle):
@@ -157,11 +156,10 @@ class pesterTheme(dict):
v = v[k]
return v
def pathHook(self, d):
- from string import Template
for (k, v) in d.iteritems():
if type(v) is unicode:
s = Template(v)
- d[k] = s.substitute(path=self.path)
+ d[k] = s.safe_substitute(path=self.path)
return d
class pesterQuirk(object):
@@ -690,14 +688,14 @@ class chumArea(QtGui.QListWidget):
self.addItem(chumLabel)
self.optionsMenu = QtGui.QMenu(self)
- pester = QtGui.QAction("PESTER", self)
- self.connect(pester, QtCore.SIGNAL('triggered()'),
+ self.pester = QtGui.QAction(self.mainwindow.theme["main/menus/rclickchumlist/pester"], self)
+ self.connect(self.pester, QtCore.SIGNAL('triggered()'),
self, QtCore.SLOT('activateChum()'))
- removechum = QtGui.QAction("REMOVE CHUM", self)
- self.connect(removechum, QtCore.SIGNAL('triggered()'),
+ self.removechum = QtGui.QAction(self.mainwindow.theme["main/menus/rclickchumlist/removechum"], self)
+ self.connect(self.removechum, QtCore.SIGNAL('triggered()'),
self, QtCore.SLOT('removeChum()'))
- self.optionsMenu.addAction(pester)
- self.optionsMenu.addAction(removechum)
+ self.optionsMenu.addAction(self.pester)
+ self.optionsMenu.addAction(self.removechum)
self.sortItems()
def addChum(self, chum):
@@ -719,6 +717,9 @@ class chumArea(QtGui.QListWidget):
def changeTheme(self, theme):
self.setGeometry(*(theme["main/chums/loc"]+theme["main/chums/size"]))
self.setStyleSheet(theme["main/chums/style"])
+ self.pester.setText(theme["main/menus/rclickchumlist/pester"])
+ self.removechum.setText(theme["main/menus/rclickchumlist/removechum"])
+
chumlistings = [self.item(i) for i in range(0, self.count())]
for c in chumlistings:
c.changeTheme(theme)
@@ -992,19 +993,19 @@ class PesterText(QtGui.QTextEdit):
parent.setChumOpen(True)
window = parent.mainwindow
me = window.profile()
- msg = chum.beganpestermsg(me)
+ msg = chum.beganpestermsg(me, window.theme["convo/text/beganpester"])
self.append(msg)
elif msg == "PESTERCHUM:CEASE":
parent = self.parent()
parent.setChumOpen(False)
window = parent.mainwindow
me = window.profile()
- msg = chum.ceasedpestermsg(me)
+ msg = chum.ceasedpestermsg(me, window.theme["convo/text/ceasepester"])
self.append(msg)
else:
if not self.parent().chumopen and chum is not self.parent().mainwindow.profile():
me = self.parent().mainwindow.profile()
- beginmsg = chum.beganpestermsg(me)
+ beginmsg = chum.beganpestermsg(me, self.parent().mainwindow.theme["convo/text/beganpester"])
self.parent().setChumOpen(True)
self.append(beginmsg)
@@ -1016,6 +1017,7 @@ class PesterText(QtGui.QTextEdit):
def focusInEvent(self, event):
self.parent().clearNewMessage()
QtGui.QTextEdit.focusInEvent(self, event)
+ self.parent().textInput.setFocus()
class PesterInput(QtGui.QLineEdit):
def __init__(self, theme, parent=None):
@@ -1039,7 +1041,9 @@ class PesterConvo(QtGui.QFrame):
self.setWindowIcon(chum.mood.icon(self.mainwindow.theme))
self.setWindowTitle(chum.handle)
- self.chumLabel = QtGui.QLabel(chum.handle, self)
+ t = Template(self.mainwindow.theme["convo/chumlabel/text"])
+
+ self.chumLabel = QtGui.QLabel(t.safe_substitute(handle=chum.handle), self)
self.chumLabel.setStyleSheet(self.mainwindow.theme["convo/chumlabel/style"])
self.textArea = PesterText(self.mainwindow.theme, self)
self.textInput = PesterInput(self.mainwindow.theme, self)
@@ -1060,13 +1064,13 @@ class PesterConvo(QtGui.QFrame):
if parent:
parent.addChat(self)
if initiated:
- msg = self.mainwindow.profile().beganpestermsg(self.chum)
+ msg = self.mainwindow.profile().beganpestermsg(self.chum, self.mainwindow.theme["convo/text/beganpester"])
self.textArea.append(msg)
self.newmessage = False
def updateMood(self, mood):
- if mood.name() == "offline":
- msg = self.mainwindow.profile().ceasedpestermsg(self.chum)
+ if mood.name() == "offline" and self.chumopen == True:
+ msg = self.chum.ceasedpestermsg(self.mainwindow.profile(), self.mainwindow.theme["convo/text/ceasepester"])
self.textArea.append(msg)
self.chumopen = False
if self.parent():
@@ -1129,6 +1133,8 @@ class PesterConvo(QtGui.QFrame):
self.resize(*theme["convo/size"])
self.setStyleSheet(theme["convo/style"])
self.setWindowIcon(self.chum.mood.icon(theme))
+ t = Template(self.mainwindow.theme["convo/chumlabel/text"])
+ self.chumLabel.setText(t.safe_substitute(handle=self.chum.handle))
self.chumLabel.setStyleSheet(theme["convo/chumlabel/style"])
self.textArea.changeTheme(theme)
self.textInput.changeTheme(theme)
@@ -1170,29 +1176,37 @@ class PesterWindow(MovingWindow):
self.move(100, 100)
- opts = QtGui.QAction("OPTIONS", self)
+ opts = QtGui.QAction(self.theme["main/menus/client/options"], self)
+ self.opts = opts
self.connect(opts, QtCore.SIGNAL('triggered()'),
self, QtCore.SLOT('openOpts()'))
- exitaction = QtGui.QAction("EXIT", self)
+ exitaction = QtGui.QAction(self.theme["main/menus/client/exit"], self)
+ self.exitaction = exitaction
self.connect(exitaction, QtCore.SIGNAL('triggered()'),
self, QtCore.SLOT('close()'))
self.menu = QtGui.QMenuBar(self)
- filemenu = self.menu.addMenu("FILE")
+ filemenu = self.menu.addMenu(self.theme["main/menus/client/_name"])
+ self.filemenu = filemenu
filemenu.addAction(opts)
filemenu.addAction(exitaction)
- switch = QtGui.QAction("SWITCH", self)
- self.connect(switch, QtCore.SIGNAL('triggered()'),
- self, QtCore.SLOT('switchProfile()'))
- changetheme = QtGui.QAction("THEME", self)
+ changetheme = QtGui.QAction(self.theme["main/menus/profile/theme"], self)
+ self.changetheme = changetheme
self.connect(changetheme, QtCore.SIGNAL('triggered()'),
self, QtCore.SLOT('pickTheme()'))
- changequirks = QtGui.QAction("QUIRKS", self)
+ changequirks = QtGui.QAction(self.theme["main/menus/profile/quirks"], self)
+ self.changequirks = changequirks
self.connect(changequirks, QtCore.SIGNAL('triggered()'),
self, QtCore.SLOT('openQuirks()'))
- profilemenu = self.menu.addMenu("PROFILE")
+ switch = QtGui.QAction(self.theme["main/menus/profile/switch"], self)
+ self.switch = switch
+ self.connect(switch, QtCore.SIGNAL('triggered()'),
+ self, QtCore.SLOT('switchProfile()'))
+
+ profilemenu = self.menu.addMenu(self.theme["main/menus/profile/_name"])
+ self.profilemenu = profilemenu
profilemenu.addAction(changetheme)
profilemenu.addAction(changequirks)
profilemenu.addAction(switch)
@@ -1206,7 +1220,7 @@ class PesterWindow(MovingWindow):
self.chumdb = PesterProfileDB()
- chums = [PesterProfile(c) for c in set(self.config.chums())]
+ chums = [PesterProfile(c, chumdb=self.chumdb) for c in set(self.config.chums())]
self.chumList = chumArea(chums, self)
self.connect(self.chumList,
QtCore.SIGNAL('itemActivated(QListWidgetItem *)'),
@@ -1265,7 +1279,7 @@ class PesterWindow(MovingWindow):
mood = matchingChums[0].mood
else:
mood = Mood(0)
- chum = PesterProfile(handle, mood=mood)
+ chum = PesterProfile(handle, mood=mood, chumdb=self.chumdb)
self.newConversation(chum, False)
if len(matchingChums) == 0:
self.moodRequest.emit(chum)
@@ -1327,11 +1341,21 @@ class PesterWindow(MovingWindow):
self.setWindowIcon(QtGui.QIcon(theme["main/icon"]))
self.setWindowTitle(theme["main/windowtitle"])
self.setStyleSheet("QFrame#main { "+theme["main/style"]+" }")
- self.menu.setStyleSheet("QMenuBar { background: transparent; %s } QMenuBar::item { background: transparent; } " % (theme["main/menubar/style"]) + "QMenu { background: transparent; %s } QMenu::item::selected { %s }" % (theme["main/menu/style"], theme["main/menu/selected"]))
+ self.menu.setStyleSheet("QMenuBar { background: transparent; %s } QMenuBar::item { background: transparent; %s } " % (theme["main/menubar/style"], theme["main/menu/menuitem"]) + "QMenu { background: transparent; %s } QMenu::item::selected { %s }" % (theme["main/menu/style"], theme["main/menu/selected"]))
self.closeButton.setIcon(QtGui.QIcon(theme["main/close/image"]))
self.closeButton.move(*theme["main/close/loc"])
self.miniButton.setIcon(QtGui.QIcon(theme["main/minimize/image"]))
self.miniButton.move(*theme["main/minimize/loc"])
+ # menus
+ self.menu.move(*theme["main/menu/loc"])
+ self.opts.setText(theme["main/menus/client/options"])
+ self.exitaction.setText(theme["main/menus/client/exit"])
+ self.filemenu.setTitle(theme["main/menus/client/_name"])
+ self.changetheme.setText(theme["main/menus/profile/theme"])
+ self.changequirks.setText(theme["main/menus/profile/quirks"])
+ self.switch.setText(theme["main/menus/profile/switch"])
+ self.profilemenu.setTitle(theme["main/menus/profile/_name"])
+
# moods
self.moodsLabel.setText(theme["main/moodlabel/text"])
self.moodsLabel.move(*theme["main/moodlabel/loc"])
@@ -1411,7 +1435,11 @@ class PesterWindow(MovingWindow):
self.newConversationWindow(curChum)
@QtCore.pyqtSlot(QtGui.QListWidgetItem)
def newConversationWindow(self, chumlisting):
+ # check chumdb
chum = chumlisting.chum
+ color = self.chumdb.getColor(chum)
+ if color:
+ chum.color = color
self.newConversation(chum)
@QtCore.pyqtSlot(QtCore.QString)
def closeConvo(self, handle):
@@ -1456,7 +1484,7 @@ class PesterWindow(MovingWindow):
errormsg.showMessage("THIS IS NOT A VALID CHUMTAG!")
self.addchumdialog = None
return
- chum = PesterProfile(handle)
+ chum = PesterProfile(handle, chumdb=self.chumdb)
self.chumList.addChum(chum)
self.config.addChum(chum)
self.moodRequest.emit(chum)
@@ -1539,8 +1567,10 @@ class PesterWindow(MovingWindow):
try:
self.changeTheme(pesterTheme(themename))
except ValueError, e:
- themeWarning = QtGui.QMessageBox()
- closeWarning.setText("Theme Error: %s", e)
+ themeWarning = QtGui.QMessageBox(self)
+ themeWarning.setText("Theme Error: %s" % (e))
+ themeWarning.exec_()
+ self.choosetheme = None
return
# update profile
self.userprofile.setTheme(self.theme)
@@ -1554,12 +1584,14 @@ class PesterWindow(MovingWindow):
self.chooseprofile.profileBox.currentIndex() > 0:
handle = unicode(self.chooseprofile.profileBox.currentText())
if handle == self.profile().handle:
+ self.chooseprofile = None
return
self.userprofile = userProfile(handle)
self.changeTheme(self.userprofile.getTheme())
else:
handle = unicode(self.chooseprofile.chumHandle.text())
if handle == self.profile().handle:
+ self.chooseprofile = None
return
profile = PesterProfile(handle,
self.chooseprofile.chumcolor)
@@ -1571,9 +1603,9 @@ class PesterWindow(MovingWindow):
self.config.set("defaultprofile", self.userprofile.chat.handle)
# this may have to be fixed
self.closeConversations()
+ self.chooseprofile = None
self.profileChanged.emit()
- self.chooseprofile = None
@QtCore.pyqtSlot()
def changeMyColor(self):
if not hasattr(self, 'colorDialog'):
@@ -1602,8 +1634,11 @@ class PesterWindow(MovingWindow):
return
self.changeProfile()
- @QtCore.pyqtSlot(QtCore.QString)
- def nickCollision(self, handle):
+ @QtCore.pyqtSlot(QtCore.QString, QtCore.QString)
+ def nickCollision(self, handle, tmphandle):
+ self.mychumhandle.setText(tmphandle)
+ if not hasattr(self, 'chooseprofile'):
+ self.chooseprofile = None
if not self.chooseprofile:
h = unicode(handle)
self.changeProfile(collision=h)
@@ -1679,7 +1714,7 @@ class PesterIRC(QtCore.QObject):
moodUpdated = QtCore.pyqtSignal(QtCore.QString, Mood)
colorUpdated = QtCore.pyqtSignal(QtCore.QString, QtGui.QColor)
messageReceived = QtCore.pyqtSignal(QtCore.QString, QtCore.QString)
- nickCollision = QtCore.pyqtSignal(QtCore.QString)
+ nickCollision = QtCore.pyqtSignal(QtCore.QString, QtCore.QString)
class PesterHandler(DefaultCommandHandler):
def privmsg(self, nick, chan, msg):
@@ -1688,6 +1723,7 @@ class PesterHandler(DefaultCommandHandler):
if msg[0] == '\x01':
return
handle = nick[0:nick.find("!")]
+ logging.info("---> recv \"PRIVMSG %s :%s\"" % (handle, msg))
if chan == "#pesterchum":
# follow instructions
if msg[0:6] == "MOOD >":
@@ -1730,8 +1766,9 @@ class PesterHandler(DefaultCommandHandler):
self.getMood(*chums)
def nicknameinuse(self, server, cmd, nick, msg):
- helpers.nick(self.client, "pesterClient%d" % (random.randint(100,999)))
- self.parent.nickCollision.emit(nick)
+ newnick = "pesterClient%d" % (random.randint(100,999))
+ helpers.nick(self.client, newnick)
+ self.parent.nickCollision.emit(nick, newnick)
def quit(self, nick, reason):
handle = nick[0:nick.find("!")]
self.parent.moodUpdated.emit(handle, Mood("offline"))
@@ -1745,7 +1782,7 @@ class PesterHandler(DefaultCommandHandler):
self.parent.moodUpdated.emit(handle, Mood("chummy"))
def nick(self, oldnick, newnick):
oldhandle = oldnick[0:oldnick.find("!")]
- newchum = PesterProfile(newnick)
+ newchum = PesterProfile(newnick, chumdb=self.mainwindow.chumdb)
self.parent.moodUpdated.emit(oldhandle, Mood("offline"))
if newnick in self.mainwindow.chumList.chums:
self.getMood(newchum)
@@ -1848,9 +1885,9 @@ def main():
widget,
QtCore.SLOT('deliverMessage(QString, QString)'))
irc.connect(irc,
- QtCore.SIGNAL('nickCollision(QString)'),
+ QtCore.SIGNAL('nickCollision(QString, QString)'),
widget,
- QtCore.SLOT('nickCollision(QString)'))
+ QtCore.SLOT('nickCollision(QString, QString)'))
ircapp = IRCThread(irc)
ircapp.start()
diff --git a/profiles/testProfile.js b/profiles/testProfile.js
index e63a331..223100d 100644
--- a/profiles/testProfile.js
+++ b/profiles/testProfile.js
@@ -1 +1 @@
-{"color": "#aa00ff", "theme": "pesterchum", "quirks": [], "handle": "testProfile"}
\ No newline at end of file
+{"color": "#aa00ff", "theme": "trollian", "quirks": [], "handle": "testProfile"}
\ No newline at end of file
diff --git a/themes/pesterchum/style.js b/themes/pesterchum/style.js
index 1d97630..8617f13 100644
--- a/themes/pesterchum/style.js
+++ b/themes/pesterchum/style.js
@@ -10,9 +10,21 @@
"loc": [255, 0]},
"menubar": { "style": "font-family: 'Courier New'; font-weight: bold; font-size: 12px;" },
"menu" : { "style": "font-family: 'Courier New'; font-weight: bold; font-size: 12px; background-color: #fdb302;border:2px solid #ffff00",
- "selected": "background-color: #ffff00"
+ "selected": "background-color: #ffff00",
+ "menuitem": "margin-right:10px;",
+ "loc": [7,3]
},
"sounds": { "alertsound": "$path/alarm.wav" },
+ "menus": {"client": {"_name": "CLIENT",
+ "options": "OPTIONS",
+ "exit": "EXIT"},
+ "profile": {"_name": "PROFILE",
+ "switch": "SWITCH",
+ "theme": "THEME",
+ "quirks": "QUIRKS"},
+ "rclickchumlist": {"pester": "PESTER",
+ "removechum": "REMOVE CHUM"}
+ },
"chums": { "style": "background-color: black;color: white;font: bold;font-family: 'Courier New';selection-background-color:#919191; ",
"loc": [20, 65],
"size": [266, 270],
@@ -66,7 +78,7 @@
"size": [100, 40],
"text": "PESTER!"
},
- "defaultmood": "chummy",
+ "defaultmood": 0,
"moodlabel": { "style": "",
"loc": [20, 430],
"text": "MOODS"
@@ -78,7 +90,7 @@
"size": [133, 30],
"text": "CHUMMY",
"icon": "$path/chummy.gif",
- "mood": "chummy"
+ "mood": 0
},
{ "style": "text-align:left; background: white; border:3px solid black; padding: 5px;color: #919191",
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
@@ -86,7 +98,7 @@
"size": [133, 30],
"text": "PLEASANT",
"icon": "$path/pleasant.gif",
- "mood": "pleasant"
+ "mood": 3
},
{ "style": "text-align:left; background: white; border:3px solid black; padding: 5px;color:#919191;",
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
@@ -94,7 +106,7 @@
"size": [133, 30],
"text": "DISTRAUGHT",
"icon": "$path/distraught.gif",
- "mood": "distraught"
+ "mood": 4
},
{ "style": "text-align:left; background: white; border:3px solid black; padding: 5px;color:#919191;",
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
@@ -102,7 +114,7 @@
"size": [133, 30],
"text": "UNRULY",
"icon": "$path/unruly.gif",
- "mood": "unruly"
+ "mood": 5
},
{ "style": "text-align:left; background: white; border:3px solid black; padding: 5px;color:#919191;",
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
@@ -110,7 +122,7 @@
"size": [133, 30],
"text": "SMOOTH",
"icon": "$path/smooth.gif",
- "mood": "smooth"
+ "mood": 6
},
{ "style": "text-align:left; background: red; border:3px solid black; padding: 5px;",
"selected": "text-align:left; background: red; border:3px solid black; padding: 5px;font: bold;",
@@ -118,7 +130,7 @@
"size": [133, 30],
"text": "RANCOROUS",
"icon": "$path/rancorous.gif",
- "mood": "rancorous"
+ "mood": 1
},
{ "style": "text-align:center; background: #919191; border:3px solid black; padding: 5px;",
"selected": "text-align:center; background: #919191; border:3px solid black; padding: 5px;font: bold;",
@@ -126,14 +138,16 @@
"size": [263, 30],
"text": "ABSCOND",
"icon": "$path/offline.gif",
- "mood": "offline"
+ "mood": 2
}
]
},
"convo":
{"style": "background: #fdb302; font-family: 'Courier New'",
"size": [600, 500],
- "chumlabel": { "style": "background: rgba(255, 255, 255, 25%);" },
+ "chumlabel": { "style": "background: rgba(255, 255, 255, 25%);",
+ "text" : ":: $handle ::"
+ },
"textarea": {
"style": "background: white;font:bold;"
},
@@ -144,6 +158,10 @@
"style": "",
"newmsgcolor": "#fdb302",
"tabstyle": 0
+ },
+ "text": {
+ "beganpester": "began pestering",
+ "ceasepester": "ceased pestering"
}
}
diff --git a/themes/pesterchum6/Thumbs.db b/themes/pesterchum6/Thumbs.db
deleted file mode 100644
index 8517079..0000000
Binary files a/themes/pesterchum6/Thumbs.db and /dev/null differ
diff --git a/themes/pesterchum6/moodcheck1.gif b/themes/pesterchum6/moodcheck1.gif
new file mode 100644
index 0000000..0804f90
Binary files /dev/null and b/themes/pesterchum6/moodcheck1.gif differ
diff --git a/themes/pesterchum6/moodcheck2.gif b/themes/pesterchum6/moodcheck2.gif
new file mode 100644
index 0000000..d646f21
Binary files /dev/null and b/themes/pesterchum6/moodcheck2.gif differ
diff --git a/themes/pesterchum6/moodcheck3.gif b/themes/pesterchum6/moodcheck3.gif
new file mode 100644
index 0000000..f88321b
Binary files /dev/null and b/themes/pesterchum6/moodcheck3.gif differ
diff --git a/themes/pesterchum6/moodcheck4.gif b/themes/pesterchum6/moodcheck4.gif
new file mode 100644
index 0000000..4cea74f
Binary files /dev/null and b/themes/pesterchum6/moodcheck4.gif differ
diff --git a/themes/pesterchum6/moodcheck5.gif b/themes/pesterchum6/moodcheck5.gif
new file mode 100644
index 0000000..40ba9a1
Binary files /dev/null and b/themes/pesterchum6/moodcheck5.gif differ
diff --git a/themes/pesterchum6/pc theme.zip b/themes/pesterchum6/pc theme.zip
index 4cb74da..f055db4 100644
Binary files a/themes/pesterchum6/pc theme.zip and b/themes/pesterchum6/pc theme.zip differ
diff --git a/themes/pesterchum6/pcbg.png b/themes/pesterchum6/pcbg.png
index dfbb11b..688eab7 100644
Binary files a/themes/pesterchum6/pcbg.png and b/themes/pesterchum6/pcbg.png differ
diff --git a/themes/pesterchum6/style.js b/themes/pesterchum6/style.js
index 978a3b0..f561d72 100644
--- a/themes/pesterchum6/style.js
+++ b/themes/pesterchum6/style.js
@@ -1,150 +1,167 @@
-{"main":
- {"style": "background-image:url($path/pcbg.png);",
- "size": [232, 380],
- "icon": "$path/trayicon.gif",
- "newmsgicon": "$path/trayicon2.gif",
- "windowtitle": "PESTERCHUM",
- "close": { "image": "$path/x.gif",
- "loc": [210, 2]},
- "minimize": { "image": "$path/m.gif",
- "loc": [190, 2]},
- "menubar": { "style": "font-family: 'Courier'; font:bold; font-size: 12px;" },
- "menu" : { "style": "font-family: 'Courier'; font: bold; font-size: 12px; background-color: #fdb302;border:2px solid #ffff00",
- "selected": "background-color: #ffff00"
- },
- "sounds": { "alertsound": "$path/alarm.wav" },
- "chums": { "style": "border:2px solid yellow; background-color: black;color: white;font: bold;font-family: 'Courier';selection-background-color:#646464; ",
- "loc": [12, 117],
- "size": [209, 82],
- "moods": { "chummy": { "icon": "$path/chummy.gif",
- "color": "white" },
- "offline": { "icon": "$path/offline.gif",
- "color": "#646464"},
- "rancorous": { "icon": "$path/rancorous.gif",
- "color": "red" },
- "detestful": { "icon": "$path/detestful.gif",
- "color": "red" },
- "devious": { "icon": "$path/devious.gif",
- "color": "white" },
- "discontent": { "icon": "$path/discontent.gif",
- "color": "white" },
- "distraught": { "icon": "$path/distraught.gif",
- "color": "white" },
- "ecstatic": { "icon": "$path/estatic.gif",
- "color": "white" },
- "pleasant": { "icon": "$path/pleasant.gif",
- "color": "white" },
- "relaxed": { "icon": "$path/relaxed.gif",
- "color": "white" },
- "sleek": { "icon": "$path/sleek.gif",
- "color": "white" },
- "smooth": { "icon": "$path/smooth.gif",
- "color": "white" },
- "unruly": { "icon": "$path/unruly.gif",
- "color": "white" }
- }
- },
- "mychumhandle": { "label": { "text": "CHUMHANDLE:",
- "loc": [19,232],
- "style": "color: rgba(255, 255, 0, 0%) ; font-family: 'Courier';" },
- "handle": { "style": "background: black; padding: 3px; color:white; font-family:'Courier'; font:bold; text-align:left;",
- "loc": [14,246],
- "size": [190, 21] },
- "colorswatch": { "loc": [196,246],
- "size": [23,21],
- "text": "" }
- },
- "defaultwindow": { "style": "background: #fdb302; font-family:'Courier';font:bold;selection-background-color:#919191; "
- },
- "addchum": { "style": "background: rgba(255, 255, 0, 0%); border:2px solid #c48a00; font: bold; color: rgba(0, 0, 0, 0%); font-family:'Courier';",
- "loc": [12,202],
- "size": [71, 22],
- "text": "ADD CHUM"
- },
- "pester": { "style": "background: rgba(255, 255, 0, 0%); border:2px solid #c48a00; font: bold; color: rgba(255, 255, 0, 0%); font-family:'Courier';",
- "loc": [150,202],
- "size": [71, 22],
- "text": "PESTER!"
- },
- "defaultmood": "chummy",
- "moodlabel": { "style": "",
- "loc": [20, 4300],
- "text": "MOODS"
- },
- "moods": [
- { "style": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'",
- "selected": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'; font:bold; font-size:9pt;",
- "loc": [12, 288],
- "size": [104, 22],
- "text": "CHUMMY",
- "icon": "$path/chummy.gif",
- "mood": "chummy"
- },
- { "style": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'",
- "selected": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'; font: bold; font-size:9pt;",
- "loc": [12, 308],
- "size": [104, 22],
- "text": "PALSY",
- "icon": "$path/chummy.gif",
- "mood": "pleasant.gif"
- },
- { "style": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'",
- "selected": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier';font: bold; font-size:9pt;",
- "loc": [12, 328],
- "size": [104, 22],
- "text": "CHIPPER",
- "icon": "$path/chummy.gif",
- "mood": "distraught"
- },
- { "style": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'",
- "selected": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'; font-size:9pt; font: bold;",
- "loc": [117, 288],
- "size": [104, 22],
- "text": "BULLY",
- "icon": "$path/chummy.gif",
- "mood": "unruly"
- },
- { "style": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier'",
- "selected": "text-align:left; background: yellow; border:2px solid #c48a00; padding: 5px;color:#000000; font-family:'Courier';font: bold; font-size:9pt;",
- "loc": [117, 308],
- "size": [104, 22],
- "text": "PEPPY",
- "icon": "$path/chummy.gif",
- "mood": "smooth"
- },
- { "style": "text-align:left; background: red; border:2px solid #c48a00; padding: 5px;color:#FFFFFF; font-family:'Courier'",
- "selected": "text-align:left; background: red; border:2px solid #c48a00; padding: 5px;color:#FFFFFF; font-family:'Courier';font: bold; font-size:9pt;",
- "loc": [117, 328],
- "size": [104, 22],
- "text": "RANCOROUS",
- "icon": "$path/rancorous.gif",
- "mood": 1
- },
- { "style": "text-align:center; background: black; border:2px solid #c48a00; padding: 5px;color:#646464; font-family:'Courier'",
- "selected": "text-align:center; background: black; border:2px solid #c48a00; padding: 5px;color:#646464; font-family:'Courier';font: bold; font-size:9pt;",
- "loc": [12, 348],
- "size": [209, 22],
- "text": "ABSCOND",
- "icon": "$path/offline.gif",
- "mood": 2
- }
- ]
- },
- "convo":
- {"style": "background: #fdb302; border:2px solid yellow; font-family: 'Courier'",
- "size": [295, 191],
- "chumlabel": { "style": "background: rgb(196, 138, 0);" },
- "textarea": {
- "style": "background: white; font:bold; border:2px solid #c48a00;"
- },
- "input": {
- "style": "background: white; border:2px solid #c48a00;"
- },
- "tabs": {
- "style": "",
- "newmsgcolor": "#fdb302",
- "tabstyle": 0
- }
- }
-
-}
+{"main":
+ {"style": "background-image:url($path/pcbg.png);",
+ "size": [232, 380],
+ "icon": "$path/trayicon.png",
+ "newmsgicon": "$path/trayicon2.png",
+ "windowtitle": "PESTERCHUM",
+ "close": { "image": "$path/x.gif",
+ "loc": [210, 2]},
+ "minimize": { "image": "$path/m.gif",
+ "loc": [190, 2]},
+ "menubar": { "style": "font-family: 'Courier'; font:bold; font-size: 12px;" },
+ "menu" : { "style": "font-family: 'Courier'; font: bold; font-size: 12px; background-color: #fdb302;border:2px solid #ffff00",
+ "menuitem": "margin-right:10px;",
+ "selected": "background-color: #ffff00",
+ "loc": [10,0]
+ },
+ "sounds": { "alertsound": "$path/alarm.wav" },
+ "menus": {"client": {"_name": "CLIENT",
+ "options": "OPTIONS",
+ "exit": "EXIT"},
+ "profile": {"_name": "PROFILE",
+ "switch": "SWITCH",
+ "theme": "THEME",
+ "quirks": "QUIRKS"},
+ "rclickchumlist": {"pester": "PESTER",
+ "removechum": "REMOVE CHUM"}
+ },
+ "chums": { "style": "border:2px solid yellow; background-color: black;color: white;font: bold;font-family: 'Courier';selection-background-color:#646464; ",
+ "loc": [12, 117],
+ "size": [209, 82],
+ "moods": { "chummy": { "icon": "$path/chummy.gif",
+ "color": "white" },
+ "offline": { "icon": "$path/offline.gif",
+ "color": "#646464"},
+ "rancorous": { "icon": "$path/rancorous.gif",
+ "color": "red" },
+ "detestful": { "icon": "$path/detestful.gif",
+ "color": "red" },
+ "devious": { "icon": "$path/devious.gif",
+ "color": "white" },
+ "discontent": { "icon": "$path/discontent.gif",
+ "color": "white" },
+ "distraught": { "icon": "$path/distraught.gif",
+ "color": "white" },
+ "ecstatic": { "icon": "$path/estatic.gif",
+ "color": "white" },
+ "pleasant": { "icon": "$path/pleasant.gif",
+ "color": "white" },
+ "relaxed": { "icon": "$path/relaxed.gif",
+ "color": "white" },
+ "sleek": { "icon": "$path/sleek.gif",
+ "color": "white" },
+ "smooth": { "icon": "$path/smooth.gif",
+ "color": "white" },
+ "unruly": { "icon": "$path/unruly.gif",
+ "color": "white" }
+ }
+ },
+ "mychumhandle": { "label": { "text": "CHUMHANDLE:",
+ "loc": [19,232],
+ "style": "color: rgba(255, 255, 0, 0%) ;font:bold; font-family: 'Courier';" },
+ "handle": { "style": "background: black; padding: 3px; color:white; font-family:'Courier'; font:bold; text-align:left;",
+ "loc": [14,246],
+ "size": [190, 21] },
+ "colorswatch": { "loc": [196,246],
+ "size": [23,21],
+ "text": "" }
+ },
+ "defaultwindow": { "style": "background: #fdb302; font-family:'Courier';font:bold;selection-background-color:#919191; "
+ },
+ "addchum": { "style": "background: rgba(255, 255, 0, 0%); border:2px solid #c48a00; font: bold; color: rgba(0, 0, 0, 0%); font-family:'Courier';",
+ "loc": [12,202],
+ "size": [71, 22],
+ "text": "ADD CHUM"
+ },
+ "pester": { "style": "background: rgba(255, 255, 0, 0%); border:2px solid #c48a00; font: bold; color: rgba(255, 255, 0, 0%); font-family:'Courier';",
+ "loc": [150,202],
+ "size": [71, 22],
+ "text": "PESTER!"
+ },
+ "defaultmood": 0,
+ "moodlabel": { "style": "",
+ "loc": [20, 430],
+ "text": "MOODS"
+ },
+ "moods": [
+ { "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
+ "selected": "text-align:left; background-image:url($path/moodcheck1.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
+ "loc": [12, 288],
+ "size": [104, 22],
+ "text": "CHUMMY",
+ "icon": "$path/chummy.gif",
+ "mood": 0
+ },
+ { "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
+ "selected": "text-align:left; background-image:url($path/moodcheck2.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
+ "loc": [12, 308],
+ "size": [104, 22],
+ "text": "PALSY",
+ "icon": "$path/chummy.gif",
+ "mood": 3
+ },
+ { "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
+ "selected": "text-align:left; background-image:url($path/moodcheck3.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
+ "loc": [12, 328],
+ "size": [104, 22],
+ "text": "CHIPPER",
+ "icon": "$path/chummy.gif",
+ "mood": 4
+ },
+ { "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
+ "selected": "text-align:left; background-image:url($path/moodcheck2.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
+ "loc": [117, 288],
+ "size": [104, 22],
+ "text": "BULLY",
+ "icon": "$path/chummy.gif",
+ "mood": 5
+ },
+ { "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
+ "selected": "text-align:left; background-image:url($path/moodcheck2.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
+ "loc": [117, 308],
+ "size": [104, 22],
+ "text": "PEPPY",
+ "icon": "$path/chummy.gif",
+ "mood": 6
+ },
+ { "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
+ "selected": "text-align:left; background-image:url($path/moodcheck4.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
+ "loc": [117, 328],
+ "size": [104, 22],
+ "text": "RANCOROUS",
+ "icon": "$path/rancorous.gif",
+ "mood": 1
+ },
+ { "style": "text-align:left; border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier'",
+ "selected": "text-align:left; background-image:url($path/moodcheck5.gif); border:2px solid #c48a00; padding: 5px;color: rgba(0, 0, 0, 0%); font-family:'Courier';",
+ "loc": [12, 348],
+ "size": [209, 22],
+ "text": "ABSCOND",
+ "icon": "$path/x.gif",
+ "mood": 2
+ }
+ ]
+ },
+ "convo":
+ {"style": "background: #fdb302; border:2px solid yellow; font-family: 'Courier'",
+ "size": [295, 191],
+ "chumlabel": { "style": "background: rgb(196, 138, 0); color: white; text-align:center;",
+ "text" : ":: $handle ::" },
+ "textarea": {
+ "style": "background: white; font:bold; border:2px solid #c48a00;text-align:center;"
+ },
+ "input": {
+ "style": "background: white; border:2px solid #c48a00;"
+ },
+ "tabs": {
+ "style": "",
+ "newmsgcolor": "#fdb302",
+ "tabstyle": 0
+ },
+ "text": {
+ "beganpester": "began pestering",
+ "ceasepester": "ceased pestering"
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/themes/trollian/style.js b/themes/trollian/style.js
index 392d496..784a101 100644
--- a/themes/trollian/style.js
+++ b/themes/trollian/style.js
@@ -10,9 +10,21 @@
"loc": [255, 0]},
"menubar": { "style": "font-family: 'Courier New'; font-weight: bold; font-size: 12px;" },
"menu" : { "style": "font-family: 'Courier New'; font-weight: bold; font-size: 12px; background-color: #e5000f; border:2px solid #ff0000",
- "selected": "background-color: #ff0000"
+ "selected": "background-color: #ff0000",
+ "menuitem": "margin-right:10px;",
+ "loc": [10,0]
},
"sounds": { "alertsound": "$path/alarm.wav" },
+ "menus": {"client": {"_name": "GRUBBER",
+ "options": "OPTIONS",
+ "exit": "ABSCOND"},
+ "profile": {"_name": "HEMOSPECTRUM",
+ "switch": "SWITCH",
+ "theme": "THEME",
+ "quirks": "ANNOYING"},
+ "rclickchumlist": {"pester": "TROLL",
+ "removechum": "REMOVE LOSER"}
+ },
"chums": { "style": "background-color: black;color: white;font: bold;font-family: 'Courier New';selection-background-color:#ffb6b6; ",
"loc": [20, 65],
"size": [266, 270],
@@ -66,7 +78,7 @@
"size": [100, 40],
"text": "TROLL"
},
- "defaultmood": "ecstatic",
+ "defaultmood": 7,
"moodlabel": { "style": "",
"loc": [20, 430],
"text": "MOODS"
@@ -78,7 +90,7 @@
"size": [133, 30],
"text": "ECSTATIC",
"icon": "$path/estatic.gif",
- "mood": "ecstatic"
+ "mood": 7
},
{ "style": "text-align:left; background: black; border:3px solid black; padding: 5px;color: #dbdbdb",
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
@@ -86,7 +98,7 @@
"size": [133, 30],
"text": "RELAXED",
"icon": "$path/relaxed.gif",
- "mood": "relaxed"
+ "mood": 8
},
{ "style": "text-align:left; background: black; border:3px solid black; padding: 5px;color:#dbdbdb;",
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
@@ -94,7 +106,7 @@
"size": [133, 30],
"text": "DISCONTENT",
"icon": "$path/discontent.gif",
- "mood": "discontent"
+ "mood": 9
},
{ "style": "text-align:left; background: black; border:3px solid black; padding: 5px;color:#dbdbdb;",
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
@@ -102,7 +114,7 @@
"size": [133, 30],
"text": "DEVIOUS",
"icon": "$path/devious.gif",
- "mood": "devious"
+ "mood": 10
},
{ "style": "text-align:left; background: black; border:3px solid black; padding: 5px;color:#dbdbdb;",
"selected": "text-align:left; background: white; border:3px solid black; padding: 5px;font: bold;",
@@ -110,7 +122,7 @@
"size": [133, 30],
"text": "SLEEK",
"icon": "$path/sleek.gif",
- "mood": "sleek"
+ "mood": 11
},
{ "style": "text-align:left; background: red; border:3px solid black; padding: 5px;",
"selected": "text-align:left; background: red; border:3px solid black; padding: 5px;font: bold;",
@@ -118,7 +130,7 @@
"size": [133, 30],
"text": "DETESTFUL",
"icon": "$path/detestful.gif",
- "mood": "detestful"
+ "mood": 12
},
{ "style": "text-align:center; background: #919191; border:3px solid black; padding: 5px;",
"selected": "text-align:center; background: #919191; border:3px solid black; padding: 5px;font: bold;",
@@ -126,14 +138,16 @@
"size": [263, 30],
"text": "ABSCOND",
"icon": "$path/offline.gif",
- "mood": "offline"
+ "mood": 2
}
]
},
"convo":
{"style": "background: #e5000f; font-family: 'Courier New'",
"size": [600, 500],
- "chumlabel": { "style": "background: rgba(255, 255, 255, 25%);" },
+ "chumlabel": { "style": "background: rgba(255, 255, 255, 25%);",
+ "text" : "trolling $handle"
+ },
"textarea": {
"style": "background: white;font:bold;"
},
@@ -144,6 +158,10 @@
"style": "",
"newmsgcolor": "red",
"tabstyle": 0
+ },
+ "text": {
+ "beganpester": "began trolling",
+ "ceasepester": "gave up trolling"
}
}