(self)
| 289 | self.style.theme_use(theme_name) |
| 290 | |
| 291 | def create_widgets(self) -> None: |
| 292 | # Creates and arranges the UI elements |
| 293 | # Frame |
| 294 | frame = ttk.Frame(self, padding='10 10 10 10') |
| 295 | frame.grid(column=0, row=0, sticky=(ttk.W, ttk.E, ttk.N, ttk.S)) |
| 296 | frame.columnconfigure(0, weight=1) |
| 297 | |
| 298 | logo_label = ttk.Label(frame, image=self.logo_img) |
| 299 | logo_label.grid(column=0, row=0, sticky=ttk.W, pady=(10, 20)) |
| 300 | |
| 301 | # Heading Label |
| 302 | heading_label = ttk.Label(frame, text='What would you like me to do?', font=('Helvetica', 16), |
| 303 | bootstyle="primary", |
| 304 | wraplength=300) |
| 305 | heading_label.grid(column=0, row=1, columnspan=3, sticky=ttk.W) |
| 306 | |
| 307 | # Entry widget |
| 308 | self.entry = ttk.Entry(frame, width=38) |
| 309 | self.entry.grid(column=0, row=2, sticky=(ttk.W, ttk.E)) |
| 310 | |
| 311 | # Bind the Enter key to the submit function |
| 312 | self.entry.bind("<Return>", lambda event: self.execute_user_request()) |
| 313 | self.entry.bind("<KP_Enter>", lambda event: self.execute_user_request()) |
| 314 | |
| 315 | # Mic Button |
| 316 | # mic_button = ttk.Button(frame, image=self.mic_icon, bootstyle="link", command=self.start_voice_input_thread) |
| 317 | # mic_button.grid(column=1, row=2, padx=(0, 5)) |
| 318 | |
| 319 | # Submit Button |
| 320 | button = ttk.Button(frame, text='Submit', bootstyle="success", command=self.execute_user_request) |
| 321 | button.grid(column=2, row=2, padx=10) |
| 322 | |
| 323 | # Settings Button |
| 324 | settings_button = ttk.Button(self, text='Settings', bootstyle="info-outline", command=self.open_settings) |
| 325 | settings_button.place(relx=1.0, rely=0.0, anchor='ne', x=-5, y=5) |
| 326 | |
| 327 | # Stop Button |
| 328 | stop_button = ttk.Button(self, text='Stop', bootstyle="danger-outline", command=self.stop_previous_request) |
| 329 | stop_button.place(relx=1.0, rely=1.0, anchor='se', x=-10, y=-10) |
| 330 | |
| 331 | # Text display for echoed input |
| 332 | self.input_display = ttk.Label(frame, text='', font=('Helvetica', 16), wraplength=400) |
| 333 | self.input_display.grid(column=0, row=3, columnspan=3, sticky=ttk.W) |
| 334 | |
| 335 | # Text display for additional messages |
| 336 | self.message_display = ttk.Label(frame, text='', font=('Helvetica', 14), wraplength=400) |
| 337 | self.message_display.grid(column=0, row=6, columnspan=3, sticky=ttk.W) |
| 338 | |
| 339 | def open_settings(self) -> None: |
| 340 | UI.SettingsWindow(self) |
no test coverage detected