comparison pyntnclick/tools/rect_drawer.py @ 663:b67fdd4a152d pyntnclick

Readd buttons to rect_drawer - now with extra crashy bits
author Neil Muller <neil@dip.sun.ac.za>
date Sun, 12 Feb 2012 16:46:57 +0200
parents 6daaeffb37d1
children d1c1253fcd77
comparison
equal deleted inserted replaced
662:6daaeffb37d1 663:b67fdd4a152d
534 def draw_all(self, surface): 534 def draw_all(self, surface):
535 self.set_text('Mode : %s' % self.app_image.mode) 535 self.set_text('Mode : %s' % self.app_image.mode)
536 super(ModeLabel, self).draw_all(surface) 536 super(ModeLabel, self).draw_all(surface)
537 537
538 538
539 def make_button(text, action, ypos): 539 def make_button(text, gd, action, ypos):
540 button = Button(text, action=action, font=get_font(15, 'VeraBd.ttf')) 540 rect = pygame.rect.Rect(0, 0, constants.menu_width,
541 button.align = 'l' 541 constants.menu_button_height)
542 button.rect = pygame.rect.Rect(0, 0, constants.menu_width, 542 rect.move_ip(805, ypos)
543 constants.menu_button_height) 543 button = TextButton(rect, gd, text, fontname='Vera.ttf', fontsize=12,
544 button.rect.move_ip(805, ypos) 544 color=pygame.color.Color(255, 255, 0), border=1, padding=3)
545 button.add_callback('clicked', action)
545 return button 546 return button
546 547
547 548
548 class RectApp(Container): 549 class RectApp(Container):
549 """The actual rect drawer main app""" 550 """The actual rect drawer main app"""
552 553
553 state = gd.initial_state() 554 state = gd.initial_state()
554 555
555 self.image = AppImage(gd, state) 556 self.image = AppImage(gd, state)
556 self.add(self.image) 557 self.add(self.image)
557 mode_label = ModeLabel(pygame.Rect((805, 0), (200, 100)), 558 mode_label = ModeLabel(pygame.Rect((805, 0), (200, 25)),
558 self.gd, self.image) 559 self.gd, self.image)
559 self.add(mode_label) 560 self.add(mode_label)
561 y = mode_label.rect.height
562 draw = make_button('Draw Rect', gd, self.image.draw_mode, y)
563 self.add(draw)
564 y += draw.rect.height
565 load_image = make_button("Load image", gd, self.image.image_load, y)
566 self.add(load_image)
567 y += load_image.rect.height
568 add_image = make_button("Place/Move images", gd,
569 self.image.image_mode, y)
570 add_image.enabled = False
571 self.add(add_image)
572 self.image.place_image_menu = add_image
573 y += add_image.rect.height
574 cycle = make_button("Cycle interacts", gd, self.image.cycle_mode, y)
575 self.add(cycle)
576 y += cycle.rect.height
577 delete = make_button("Delete Objects", gd, self.image.del_mode, y)
578 self.add(delete)
579 y += delete.rect.height
580 #palette = AppPalette(self.image)
581 #palette.rect.move_ip(810, y)
582 #self.add(palette)
583 #y += palette.rect.height
584 print_rects = make_button("Print objects", gd,
585 self.image.print_objs, y)
586 self.add(print_rects)
587 y += print_rects.rect.height
588 toggle_things = make_button("Show Things (t)", gd,
589 self.image.toggle_things, y)
590 self.add(toggle_things)
591 y += toggle_things.rect.height
592 toggle_thing_rects = make_button("Show Thing Rects (r)", gd,
593 self.image.toggle_thing_rects, y)
594 self.add(toggle_thing_rects)
595 y += toggle_thing_rects.rect.height
596 toggle_images = make_button("Show Images (i)", gd,
597 self.image.toggle_images, y)
598 self.add(toggle_images)
599 y += toggle_images.rect.height
600 trans_images = make_button("Opaque Images (o)", gd,
601 self.image.toggle_trans_images, y)
602 self.add(trans_images)
603 y += trans_images.rect.height
604 toggle_rects = make_button("Show Drawn Rects (d)", gd,
605 self.image.toggle_rects, y)
606 self.add(toggle_rects)
607 y += toggle_rects.rect.height
608 toggle_toolbar = make_button("Show Toolbar (b)", gd,
609 self.image.toggle_toolbar, y)
610 self.add(toggle_toolbar)
611 y += toggle_toolbar.rect.height
612 toggle_anim = make_button("Show Animations (a)", gd,
613 self.image.toggle_anim, y)
614 self.add(toggle_anim)
615 y += toggle_anim.rect.height
616 toggle_zoom = make_button("Zoom (z)", gd, self.image.toggle_zoom, y)
617 self.add(toggle_zoom)
618 y += toggle_zoom.rect.height
619 quit_but = make_button("Quit", gd, self.quit, 570)
620 self.add(quit_but)
621
622 def quit(self, ev, widget):
623 pygame.event.post(pygame.event.Event(QUIT))
560 624
561 625
562 class RectEngine(object): 626 class RectEngine(object):
563 """Engine for the rect drawer.""" 627 """Engine for the rect drawer."""
564 628
593 state = get_initial_state() 657 state = get_initial_state()
594 state.set_current_scene(scene) 658 state.set_current_scene(scene)
595 state.set_current_detail(detail) 659 state.set_current_detail(detail)
596 state.do_check = None 660 state.do_check = None
597 661
598 mode_label = ModeLabel(pygame.Rect((805, 0), (200, 100)),
599 self.gd, self.image)
600 self.add(mode_label)
601 y = mode_label.get_rect().h
602 draw = make_button('Draw Rect', self.image.draw_mode, y)
603 self.add(draw)
604 y += draw.get_rect().h
605 load_image = make_button("Load image", self.image.image_load, y)
606 self.add(load_image)
607 y += load_image.get_rect().h
608 add_image = make_button("Place/Move images", self.image.image_mode, y)
609 add_image.enabled = False
610 self.add(add_image)
611 self.image.place_image_menu = add_image
612 y += add_image.get_rect().h
613 cycle = make_button("Cycle interacts", self.image.cycle_mode, y)
614 self.add(cycle)
615 y += cycle.get_rect().h
616 delete = make_button('Delete Objects', self.image.del_mode, y)
617 self.add(delete)
618 y += delete.get_rect().h
619 palette = AppPalette(self.image)
620 palette.rect.move_ip(810, y)
621 self.add(palette)
622 y += palette.get_rect().h
623 print_rects = make_button("Print objects", self.image.print_objs, y)
624 self.add(print_rects)
625 y += print_rects.get_rect().h
626 toggle_things = make_button("Show Things (t)",
627 self.image.toggle_things, y)
628 self.add(toggle_things)
629 y += toggle_things.get_rect().h
630 toggle_thing_rects = make_button("Show Thing Rects (r)",
631 self.image.toggle_thing_rects, y)
632 self.add(toggle_thing_rects)
633 y += toggle_thing_rects.get_rect().h
634 toggle_images = make_button("Show Images (i)",
635 self.image.toggle_images, y)
636 self.add(toggle_images)
637 y += toggle_images.get_rect().h
638 trans_images = make_button("Opaque Images (o)",
639 self.image.toggle_trans_images, y)
640 self.add(trans_images)
641 y += trans_images.get_rect().h
642 toggle_rects = make_button("Show Drawn Rects (d)",
643 self.image.toggle_rects, y)
644 self.add(toggle_rects)
645 y += toggle_rects.get_rect().h
646 toggle_toolbar = make_button("Show Toolbar (b)",
647 self.image.toggle_toolbar, y)
648 self.add(toggle_toolbar)
649 y += toggle_toolbar.get_rect().h
650 toggle_anim = make_button("Show Animations (a)",
651 self.image.toggle_anim, y)
652 self.add(toggle_anim)
653 y += toggle_anim.get_rect().h
654 toggle_zoom = make_button("Zoom (z)", self.image.toggle_zoom, y)
655 self.add(toggle_zoom)
656 y += toggle_zoom.get_rect().h
657 quit_but = make_button("Quit", self.quit, 570)
658 self.add(quit_but)
659 self.set_timer(constants.frame_rate) 662 self.set_timer(constants.frame_rate)
660 663
661 def key_down(self, event): 664 def key_down(self, event):
662 # Dispatch to image widget 665 # Dispatch to image widget
663 self.image.key_down(event) 666 self.image.key_down(event)