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)