예제 #1
0
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
예제 #2
0
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)
예제 #3
0
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
예제 #4
0
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)