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" } }