Beispiel #1
0
    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.
Beispiel #2
0
    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.
Beispiel #3
0
	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()
Beispiel #4
0
    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.