class ReportAnswerWindow(Manager): def __init__(self): g.reportAnswerWindowOpened = True self._reportid=-1 getReport(True) label1=Label("Answer to Ticket",bold=True,color=g.loginFontColor) closeBtn =HighlightedButton("",on_release=self.delete,width=19,height=19,path='delete') horzCont = HorizontalContainer(content=[label1,None,closeBtn]) #self.infoLabel = Label("No reports founds") self.report = Document("",is_fixed_size=True,width=g.SCREEN_WIDTH/3,height=g.SCREEN_HEIGHT/4) self.reportInput = TextInput(text="",padding=0,length=16,max_length=500,width=g.SCREEN_WIDTH/3,height=g.SCREEN_HEIGHT/4,multiline=True) deleteBtn = HighlightedButton("Delete",on_release=self.remove,width=120,height=30) sendBtn = HighlightedButton("Send",on_release=self.send,width=120,height=30) buttons = HorizontalContainer(content=[deleteBtn,Spacer(0,0),sendBtn]) frame = Frame(VerticalContainer(content=[horzCont,self.report,self.reportInput,buttons])) Manager.__init__(self, frame, window=g.screen, batch=g.guiBatch, is_movable=False, theme=g.theme) frame.expand(g.SCREEN_WIDTH/2,height=g.SCREEN_HEIGHT/4*3) def send(self,event): if self._reportid!=None and self._reportid!=-1: solveReport(self._reportid,self.reportInput.get_text()) infoText("Ticket has been marked as solved.") self.clear(None) getReport(True) #print self.reportInput.get_text() #sendReport(self.reportInput.get_text()) #print self.reportInput.get_text() #self.delete(None) def remove(self,event): solveReport(self._reportid,"",True) infoText("Ticket has been marked as solved.") self.clear(None) getReport(True) def clear(self,event): self._reportid=-1 self.report.set_text("") self.reportInput.set_text("") def delete(self,event): g.chatFocus=False self.reportInput.focused = False super(Manager,self).delete() g.reportAnswerWindowOpened = False
class ChatWindowManager(Manager): def __init__(self, client): self.client = client self.message_container = VerticalContainer(content=[], align=HALIGN_LEFT) self.messages = Scrollable(height=100, width=300, is_fixed_size=True, content=self.message_container) self.text_input = TextInput("", length=20, max_length=256) self.send_button = OneTimeButton("Send", on_release=self.submit_message) self.enter_field = HorizontalContainer( [self.text_input, self.send_button]) self.chat_window = VerticalContainer([self.messages, self.enter_field]) Manager.__init__(self, Frame(self.chat_window, path='chatFrame'), window=self.client.window, theme=UI_THEME, is_movable=True, anchor=ANCHOR_BOTTOM_LEFT) def add_message(self, message): step = 40 for i in range(0, len(message), step): self.message_container.add( Label("> " + message[i:step], font_name='Lucida Grande')) step += 40 self.text_input.set_text("") def submit_message(self, state): message = self.text_input.get_text() self.text_input.set_text("") if message[0] == "/": self.message_container.add( Label("> " + message, font_name='Lucida Grande', color=[200, 200, 255, 255])) self.client.command(message[1:].split(' ')) else: self.client.chat(message)
class ReportWindow(Manager): def __init__(self): g.reportWindowOpened = True getReport() label1 = Label("Send Ticket", bold=True, color=g.loginFontColor) closeBtn = HighlightedButton("", on_release=self.delete, width=19, height=19, path='delete') horzCont = HorizontalContainer(content=[label1, None, closeBtn]) #self.infoLabel = Label("No reports founds") self.reportInput = TextInput(text="", padding=5, length=16, max_length=400, width=g.SCREEN_WIDTH / 3, height=g.SCREEN_HEIGHT / 3, multiline=True) clearBtn = HighlightedButton("Clear", on_release=self.clear, width=120, height=30) deleteBtn = HighlightedButton("Delete", on_release=self.remove, width=120, height=30) sendBtn = HighlightedButton("Send", on_release=self.send, width=120, height=30) buttons = HorizontalContainer(content=[clearBtn, deleteBtn, sendBtn]) frame = Frame( VerticalContainer(content=[horzCont, self.reportInput, buttons])) Manager.__init__(self, frame, window=g.screen, batch=g.guiBatch, is_movable=False, theme=g.theme) frame.expand(g.SCREEN_WIDTH / 2, height=g.SCREEN_HEIGHT / 4 * 3) def send(self, event): sendReport(self.reportInput.get_text()) #print self.reportInput.get_text() infoText('A ticket has been sent.') self.delete(None) def remove(self, event): if self.reportInput.get_text() != "": sendReport("") infoText('Your ticket has been deleted.') #self.clear(None) self.delete(None) def clear(self, event): self.reportInput.set_text("") def delete(self, event): g.chatFocus = False self.reportInput.focused = False super(Manager, self).delete() g.reportWindowOpened = False
class Chat(Manager): def __init__(self): w1 = int(350 * (g.SCREEN_WIDTH / 1920.)) h1 = int(300 * (g.SCREEN_HEIGHT / 1080.)) if w1 > 300: g.chatTheme["font_size"] = 11 g.theme["font_size"] = 11 g.theme["button"]["font_size"] = 11 elif w1 > 250: g.chatTheme["font_size"] = 12 g.theme["font_size"] = 12 g.theme["button"]["font_size"] = 12 w1 = int(w1 * 1.1) elif w1 > 200: g.chatTheme["font_size"] = 11 g.theme["font_size"] = 11 g.theme["button"]["font_size"] = 11 w1 = int(w1 * 1.2) elif w1 > 175: g.chatTheme["font_size"] = 10 g.theme["font_size"] = 10 g.theme["button"]["font_size"] = 10 w1 = int(w1 * 1.3) else: g.chatTheme["font_size"] = 9 g.theme["font_size"] = 9 g.theme["button"]["font_size"] = 9 w1 = int(w1 * 1.3) self.chatInput = TextInput(text="", padding=0, length=16, max_length=MAX_CHAT_INPUT, width=w1 - 5 - 50) sendButton = HighlightedButton(label="Send", on_release=self.sendMessage, width=50, height=35) realtext = '{font_size ' + str( g.chatTheme["font_size"]) + '}{background_color ' + str( g.postBgColor ) + '}{font_name "' + g.chatTheme["font"] + '"}{wrap "char"} ' document = pyglet.text.decode_attributed(realtext) self.textArea = Document(document, width=w1, height=h1, background=True, font_size=g.chatTheme["font_size"], font_name=g.chatTheme["font"], chat=True) vertCont = VerticalContainer(content=[ self.textArea, HorizontalContainer(content=[self.chatInput, sendButton]) ], align=HALIGN_LEFT) Manager.__init__(self, vertCont, window=g.screen, batch=g.guiBatch, theme=g.chatTheme, anchor=ANCHOR_BOTTOM_LEFT, offset=(g.SCREEN_WIDTH * 0.05, g.SCREEN_HEIGHT * 0.1), is_movable=False) #print self.__dict__ def setPos(self, x, y): self.set_position(x, y) def sendMessage(self, event): g.chatReloaded = False text = self.chatInput.get_text() if text != "": sendChatMsg(text) else: g.chatting = None if not g.chatReloaded: self.chatInput.set_text("") if self._focus == self.chatInput: self._focus = None self.chatInput.on_lose_focus() self.chatInput.focused = False def delete(self): super(Manager, self).delete() def addText(self, constructedText): len1 = len(self.textArea._document.text) attributes = {} for c in constructedText._style_runs: for d in constructedText._style_runs[c]: if d[2] is not None: attributes.update({str(c): d[2]}) self.textArea._document.insert_text(len1, constructedText._text, attributes)