diff --git a/pypong/networking/gui.py b/pypong/networking/gui.py new file mode 100644 index 0000000..118077c --- /dev/null +++ b/pypong/networking/gui.py @@ -0,0 +1,66 @@ +""" +Starting launcher of the game. This is where you host new games or join other ones. +""" +import tkinter as tk + +global running + + +def main(): + """ + Runs the game launcher. + """ + main_window = tk.Tk() + main_window.title('PyPong Launcher') + main_window.resizable(width=False, height=False) + + main_window.geometry('500x250') + + def quit_launcher(): + """ + Quits the main menu. + """ + global running + running = False + + def get_games(): + """ + Refresh the games list. + """ + listbox.delete(0, tk.END) + listbox.insert(0, 'Searching for games...') + # Networking code will go here eventually + + # Create the top title label + title_label = tk.Label(text='PyPong Launcher', fg='white', bg='#000040', padx=1, pady=20) + title_label.pack(side=tk.TOP, fill=tk.BOTH) + + # Create the list of games + listbox = tk.Listbox(main_window) + listbox.pack(side=tk.LEFT, expand=True, fill=tk.BOTH) + # Add scrollbar + scrollbar = tk.Scrollbar(main_window) + scrollbar.pack(side=tk.LEFT, fill=tk.Y) + # Link scrollbar to list of games + listbox.config(yscrollcommand=scrollbar.set) + scrollbar.config(command=listbox.yview) + + # Create buttons + button_frame = tk.Frame(main_window) + tk.Button(button_frame, text='Host a Game', height=3, width=30).pack() + tk.Button(button_frame, text='Join Selected Game', height=3, width=30).pack() + tk.Button(button_frame, text='Refresh Game List', height=2, width=20, command=get_games).pack() + button_frame.pack(side=tk.RIGHT) + + # Set it so that if the X is pressed the application quits + main_window.protocol('WM_DELETE_WINDOW', quit_launcher) + + global running + running = True + + while running: + main_window.update() + + +if __name__ == '__main__': + main()