Mercurial > pyntnclick
comparison tools/rect_drawer.py @ 505:4c8aa01b606c
Tweak menu layout. Add keys for toggle options
author | Neil Muller <neil@dip.sun.ac.za> |
---|---|
date | Thu, 02 Sep 2010 12:25:48 +0200 |
parents | f3dbe35b6e4b |
children | d54667b2c44d |
comparison
equal
deleted
inserted
replaced
504:f3dbe35b6e4b | 505:4c8aa01b606c |
---|---|
12 from albow.widget import Widget | 12 from albow.widget import Widget |
13 from albow.controls import Button, Image | 13 from albow.controls import Button, Image |
14 from albow.palette_view import PaletteView | 14 from albow.palette_view import PaletteView |
15 from albow.file_dialogs import request_old_filename | 15 from albow.file_dialogs import request_old_filename |
16 from albow.resource import get_font | 16 from albow.resource import get_font |
17 from pygame.locals import SWSURFACE, K_LEFT, K_RIGHT, K_UP, K_DOWN, BLEND_RGBA_MIN, SRCALPHA | 17 from pygame.locals import SWSURFACE, K_LEFT, K_RIGHT, K_UP, K_DOWN, \ |
18 K_t, K_d, K_i, K_r, K_o, K_b, \ | |
19 BLEND_RGBA_MIN, SRCALPHA | |
18 import pygame | 20 import pygame |
19 from pygame.colordict import THECOLORS | 21 from pygame.colordict import THECOLORS |
20 | 22 |
21 from gamelib import constants | 23 from gamelib import constants |
22 constants.DEBUG = True | 24 constants.DEBUG = True |
37 'green', 'palegreen1', 'darkgreen', 'aquamarine', 'darkolivegreen', | 39 'green', 'palegreen1', 'darkgreen', 'aquamarine', 'darkolivegreen', |
38 ] | 40 ] |
39 | 41 |
40 def __init__(self, app_image): | 42 def __init__(self, app_image): |
41 self.image = app_image | 43 self.image = app_image |
42 super(AppPalette, self).__init__((35, 35), 5, 5, margin=2) | 44 super(AppPalette, self).__init__((35, 35), 4, 5, margin=2) |
43 self.selection = 0 | 45 self.selection = 0 |
44 self.image.rect_color = pygame.color.Color(self.colors[self.selection]) | 46 self.image.rect_color = pygame.color.Color(self.colors[self.selection]) |
45 | 47 |
46 def num_items(self): | 48 def num_items(self): |
47 return len(self.colors) | 49 return len(self.colors) |
321 self.current_image.rect.center = (cur_pos[0] + 1, cur_pos[1]) | 323 self.current_image.rect.center = (cur_pos[0] + 1, cur_pos[1]) |
322 elif e.key == K_UP: | 324 elif e.key == K_UP: |
323 self.current_image.rect.center = (cur_pos[0], cur_pos[1] - 1) | 325 self.current_image.rect.center = (cur_pos[0], cur_pos[1] - 1) |
324 elif e.key == K_DOWN: | 326 elif e.key == K_DOWN: |
325 self.current_image.rect.center = (cur_pos[0], cur_pos[1] + 1) | 327 self.current_image.rect.center = (cur_pos[0], cur_pos[1] + 1) |
328 if e.key == K_o: | |
329 self.toggle_trans_images() | |
330 elif e.key == K_t: | |
331 self.toggle_things() | |
332 elif e.key == K_r: | |
333 self.toggle_thing_rects() | |
334 elif e.key == K_i: | |
335 self.toggle_images() | |
336 elif e.key == K_d: | |
337 self.toggle_rects() | |
338 elif e.key == K_b: | |
339 self.toggle_toolbar() | |
326 | 340 |
327 def mouse_down(self, e): | 341 def mouse_down(self, e): |
328 if self.mode == 'del': | 342 if self.mode == 'del': |
329 pos = e.pos | 343 pos = e.pos |
330 cand = None | 344 cand = None |
379 if self.mode == 'draw': | 393 if self.mode == 'draw': |
380 self.end_pos = e.pos | 394 self.end_pos = e.pos |
381 self.invalidate() | 395 self.invalidate() |
382 | 396 |
383 def make_button(text, action, ypos): | 397 def make_button(text, action, ypos): |
384 button = Button(text, action=action) | 398 button = Button(text, action=action, font=get_font(15, 'VeraBd.ttf')) |
385 button.align = 'l' | 399 button.align = 'l' |
386 button.rect = pygame.rect.Rect(0, 0, 200, 35) | 400 button.rect = pygame.rect.Rect(0, 0, 200, 30) |
387 button.rect.move_ip(805, ypos) | 401 button.rect.move_ip(805, ypos) |
388 return button | 402 return button |
389 | 403 |
390 class RectApp(RootWidget): | 404 class RectApp(RootWidget): |
391 """Handle the app stuff for the rect drawer""" | 405 """Handle the app stuff for the rect drawer""" |
392 | 406 |
393 def __init__(self, display): | 407 def __init__(self, display): |
394 super(RectApp, self).__init__(display) | 408 super(RectApp, self).__init__(display) |
395 self.image = AppImage(state) | 409 self.image = AppImage(state) |
396 self.add(self.image) | 410 self.add(self.image) |
397 draw = make_button('Draw Rect', self.image.draw_mode, 0) | 411 y = 0 |
412 draw = make_button('Draw Rect', self.image.draw_mode, y) | |
398 self.add(draw) | 413 self.add(draw) |
399 load_image = make_button("Load image", self.image.image_load, 35) | 414 y += draw.get_rect().h |
415 load_image = make_button("Load image", self.image.image_load, y) | |
400 self.add(load_image) | 416 self.add(load_image) |
401 add_image = make_button("Place/Move images", self.image.image_mode, 70) | 417 y += load_image.get_rect().h |
418 add_image = make_button("Place/Move images", self.image.image_mode, y) | |
402 add_image.enabled = False | 419 add_image.enabled = False |
403 self.add(add_image) | 420 self.add(add_image) |
404 self.image.place_image_menu = add_image | 421 self.image.place_image_menu = add_image |
405 delete = make_button('Delete Objects', self.image.del_mode, 105) | 422 y += add_image.get_rect().h |
423 delete = make_button('Delete Objects', self.image.del_mode, y) | |
406 self.add(delete) | 424 self.add(delete) |
425 y += delete.get_rect().h | |
407 palette = AppPalette(self.image) | 426 palette = AppPalette(self.image) |
408 palette.rect.move_ip(810, 140) | 427 palette.rect.move_ip(810, y) |
409 self.add(palette) | 428 self.add(palette) |
410 print_rects = make_button("Print objects", self.image.print_objs, 300) | 429 y += palette.get_rect().h |
430 print_rects = make_button("Print objects", self.image.print_objs, y) | |
411 self.add(print_rects) | 431 self.add(print_rects) |
412 toggle_things = make_button("Toggle Things", self.image.toggle_things, 335) | 432 y += print_rects.get_rect().h |
433 toggle_things = make_button("Show Things (t)", self.image.toggle_things, y) | |
413 self.add(toggle_things) | 434 self.add(toggle_things) |
414 toggle_thing_rects = make_button("Toggle Thing Rects", self.image.toggle_thing_rects, 370) | 435 y += toggle_things.get_rect().h |
436 toggle_thing_rects = make_button("Show Thing Rects (r)", self.image.toggle_thing_rects, y) | |
415 self.add(toggle_thing_rects) | 437 self.add(toggle_thing_rects) |
416 toggle_images = make_button("Toggle Images", self.image.toggle_images, 405) | 438 y += toggle_thing_rects.get_rect().h |
439 toggle_images = make_button("Show Images (i)", self.image.toggle_images, y) | |
417 self.add(toggle_images) | 440 self.add(toggle_images) |
418 trans_images = make_button("Translucent Images", self.image.toggle_trans_images, 440) | 441 y += toggle_images.get_rect().h |
442 trans_images = make_button("Opaque Images (o)", self.image.toggle_trans_images, y) | |
419 self.add(trans_images) | 443 self.add(trans_images) |
420 toggle_rects = make_button("Toggle Drawn Rects", self.image.toggle_rects, 475) | 444 y += trans_images.get_rect().h |
445 toggle_rects = make_button("Show Drawn Rects (d)", self.image.toggle_rects, y) | |
421 self.add(toggle_rects) | 446 self.add(toggle_rects) |
422 toggle_toolbar = make_button("Toggle Toolbar", self.image.toggle_toolbar, 510) | 447 y += toggle_rects.get_rect().h |
448 toggle_toolbar = make_button("Show Toolbar (b)", self.image.toggle_toolbar, y) | |
423 self.add(toggle_toolbar) | 449 self.add(toggle_toolbar) |
424 quit_but = make_button("Quit", self.quit, 565) | 450 quit_but = make_button("Quit", self.quit, 570) |
425 self.add(quit_but) | 451 self.add(quit_but) |
426 | 452 |
427 def key_down(self, event): | 453 def key_down(self, event): |
428 # Dispatch to image widget | 454 # Dispatch to image widget |
429 self.image.key_down(event) | 455 self.image.key_down(event) |