def __init__(self, parent, title): super(Frame, self).__init__(parent, title=title, size=FRAME_SIZE, style=wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX) self.Bind(wx.EVT_CLOSE, self.on_close) self.stop_threads = False # if client exists, this variable will be True, so the threads know to quit. self.SetIcon(wx.Icon("icon.ico")) # setting icon. self.SetBackgroundColour((102, 205, 170)) # setting background color. self.client = chat_client.Client(60000) # creating client. self.song_client = chat_client.Client(60100) # creating the song transfer client. self.client.send_key() # sending encryption key to server self.entrance_type = '' # initializing entrance type as '' self.username = '' # initializing username as '' self.started_playing = True # true if started playing music, false otherwise. self.songs_to_play = [] self.dir = '' # directory under the client's username, to which all the songs will be saved. self.pre_entrance_panel = PreEntrancePanel(self) # creating and showing the first panel. # initializing the next panels, afterwards they will become actual objects. self.user_entrance_panel = wx.Panel(self).Hide() self.waiting_for_party = wx.Panel(self).Hide() self.chat_panel = wx.Panel(self).Hide() self.sizer = wx.BoxSizer(wx.VERTICAL) # setting a vertical box sizer, to arrange objects on panel. self.sizer.Add(self.pre_entrance_panel, 1, wx.EXPAND) # adding panel to sizer. self.SetSizer(self.sizer) # Setting our sizer as the panel's sizer.
def __init__(self, parent, title): super(Frame, self).__init__(parent, title=title, size=FRAME_SIZE, style=wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX) self.SetIcon(wx.Icon("icon.ico")) # setting icon. self.SetBackgroundColour((102, 205, 170)) # setting background color. self.client = chat_client.Client() # creating client. self.entrance_type = '' # initializing entrance type as '' self.username = '' # initializing username as '' self.pre_entrance_panel = PreEntrancePanel( self) # creating and showing the first panel. # initializing the next panels, afterwards they will become actual objects. self.user_entrance_panel = wx.Panel(self).Hide() self.chat_panel = wx.Panel(self).Hide() self.sizer = wx.BoxSizer( wx.VERTICAL ) # setting a vertical box sizer, to arrange objects on panel. self.sizer.Add(self.pre_entrance_panel, 1, wx.EXPAND) # adding panel to sizer. self.SetSizer(self.sizer) # Setting our sizer as the panel's sizer.
def __init__(self,addr,master=None,verbose=False): super().__init__(master) ip = addr[0] port = addr[1] self.frame = Frame(self) self.frame.pack() root.protocol("WM_DELETE_WINDOW",self.on_close) #os pipe: r = [0] w = [0] #gui2s_descriptor: writes what is sent from here to socket #s2gui_descriptor: reads what is written in socket to here r1,w1 = os.pipe() r2,w2 = os.pipe() self.client = chat_client.Client( ip,port,verbose,gui=True,read_file=r1,write_file=w2 ) self.r = os.fdopen(r2,'r') self.w = os.fdopen(w1,'w') root.title('Chat - My IP = ' + str(self.client.ID)) # self.w = os.fdopen(sys.stdout.fileno(),'w') global msg_queue input_thread = threading.Thread(target=pipe_listen,args=(self.r,)) client_thread = threading.Thread(target=self.client.run) input_thread.setDaemon(True) client_thread.setDaemon(True) input_thread.start() client_thread.start() # Botões para o usuário leftframe = Frame(self.frame) leftframe.pack(side=LEFT, fill=Y) seachContact = Label(leftframe, text='Send\nMessage\nto:') go = Button(leftframe,command=self.goButton, text='Set', height=1,width=1) self.input_destiny = StringVar() self.user_field = Entry(leftframe, text=self.input_destiny, width=3) self.user_field.bind("<Return>", self.enter_pressedGO) broadcast = Button(leftframe,command=self.broadcastButton, text='Broadcast', height=1,width=5) seachContact.pack() self.user_field.pack() go.pack() broadcast.pack() # Parte aonde armazana a conversa + scroll self.topframe = Frame(self.frame) self.topframe.pack(expand=True, fill=Y) self.textarea = Text(self.topframe, state=DISABLED) self.scroll = Scrollbar(self.topframe, takefocus=0, command=self.textarea.yview) self.scroll.pack(side=RIGHT, fill=Y) self.textarea.pack(side=RIGHT, expand=YES, fill=BOTH) self.textarea["yscrollcommand"]=self.scroll.set # Parte onde escreve a mensagem (input) + botão de enviar bottomframe = Frame(self.frame) bottomframe.pack(side=BOTTOM) self.input_user = StringVar() self.input_field = Entry(bottomframe, text=self.input_user, width=65) self.input_field.bind("<Return>", self.enter_pressed) button = Button(bottomframe, command=self.button_pressed,text='Send', height=1,width=5) button.pack(side=RIGHT) self.input_field.pack(side=LEFT) self.pack()
def __init__(self, parent, title): super(Frame, self).__init__(parent, title=title, size=FRAME_SIZE, style=wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX) self.SetIcon(wx.Icon("icon.ico")) # setting icon. self.welcome_panel = WelcomePanel(self) # creating and showing the first panel. self.client = chat_client.Client() # creating client. self.client.send_key() # initializing the next panels, afterwards they will become actual objects. self.select_songs_panel = wx.Panel(self).Hide() self.wait_for_clients_panel = wx.Panel(self).Hide() self.sizer = wx.BoxSizer(wx.VERTICAL) # setting a vertical box sizer, to arrange objects on panel. self.sizer.Add(self.welcome_panel, 1, wx.EXPAND) # adding panel to sizer. self.SetSizer(self.sizer) # Setting our sizer as the panel's sizer.