| 307 | |
| 308 | |
| 309 | class NavigationBar(tk.Frame): |
| 310 | |
| 311 | def __init__(self, master): |
| 312 | self.back_state = tk.NONE |
| 313 | self.forward_state = tk.NONE |
| 314 | self.back_image = None |
| 315 | self.forward_image = None |
| 316 | self.reload_image = None |
| 317 | |
| 318 | tk.Frame.__init__(self, master) |
| 319 | resources = os.path.join(os.path.dirname(__file__), "resources") |
| 320 | |
| 321 | # Back button |
| 322 | back_png = os.path.join(resources, "back"+IMAGE_EXT) |
| 323 | if os.path.exists(back_png): |
| 324 | self.back_image = tk.PhotoImage(file=back_png) |
| 325 | self.back_button = tk.Button(self, image=self.back_image, |
| 326 | command=self.go_back) |
| 327 | self.back_button.grid(row=0, column=0) |
| 328 | |
| 329 | # Forward button |
| 330 | forward_png = os.path.join(resources, "forward"+IMAGE_EXT) |
| 331 | if os.path.exists(forward_png): |
| 332 | self.forward_image = tk.PhotoImage(file=forward_png) |
| 333 | self.forward_button = tk.Button(self, image=self.forward_image, |
| 334 | command=self.go_forward) |
| 335 | self.forward_button.grid(row=0, column=1) |
| 336 | |
| 337 | # Reload button |
| 338 | reload_png = os.path.join(resources, "reload"+IMAGE_EXT) |
| 339 | if os.path.exists(reload_png): |
| 340 | self.reload_image = tk.PhotoImage(file=reload_png) |
| 341 | self.reload_button = tk.Button(self, image=self.reload_image, |
| 342 | command=self.reload) |
| 343 | self.reload_button.grid(row=0, column=2) |
| 344 | |
| 345 | # Url entry |
| 346 | self.url_entry = tk.Entry(self) |
| 347 | self.url_entry.bind("<FocusIn>", self.on_url_focus_in) |
| 348 | self.url_entry.bind("<FocusOut>", self.on_url_focus_out) |
| 349 | self.url_entry.bind("<Return>", self.on_load_url) |
| 350 | self.url_entry.bind("<Button-1>", self.on_button1) |
| 351 | self.url_entry.grid(row=0, column=3, |
| 352 | sticky=(tk.N + tk.S + tk.E + tk.W)) |
| 353 | tk.Grid.rowconfigure(self, 0, weight=100) |
| 354 | tk.Grid.columnconfigure(self, 3, weight=100) |
| 355 | |
| 356 | # Update state of buttons |
| 357 | self.update_state() |
| 358 | |
| 359 | def go_back(self): |
| 360 | if self.master.get_browser(): |
| 361 | self.master.get_browser().GoBack() |
| 362 | |
| 363 | def go_forward(self): |
| 364 | if self.master.get_browser(): |
| 365 | self.master.get_browser().GoForward() |
| 366 | |