root/src/onScreenButton.py @ 513

Revision 513, 1.9 KB (checked in by ecoughlan, 2 years ago)

Added dim files, more edits in general

Line 
1""""
2Created 23 March 2012
3
4@author: TechTreck
5"""
6
7from window import Window
8from rectangle import Rectangle
9from text import Text
10from image import Image
11from globals import *
12
13
14class OnScreenButton(Window):
15    def __init__(self, pos, visible, title, isDepressed=False):
16        """
17            initializes the components of the OnScreenButton subclass
18
19            input type: int((x,y)), bool(visible), str(title),
20                        bool(isDepressed)
21        """
22        Window.__init__(self, pos, visible)
23
24        self.isDepressed = isDepressed
25
26        icon = None
27        width = 160
28        height = 50
29        self.hoverDescription = None
30
31        for button in BUTTON_LUT:
32            if button[0] == title:
33                if not isDepressed:
34                    icon = button[1]
35                else:
36                    icon = button[1] + '_in'
37                width = button[2]
38                height = button[3]
39
40        if icon == None:
41            self.rectangles.append(Rectangle(self.pos, width, height, BLUE))
42            self.text.append(Text((self.pos[0],
43                               self.pos[1] + (height / 2) * .55),
44                              title, SM_TEXT, WHITE, width, True))
45        else:
46            icon = buttonDir + icon
47            self.images.append(Image(self.pos, width, height, icon))
48
49    def openWindow(self):
50        """
51            opens subwindows if the button is depressed, otherwise just
52            opens itself
53
54            input type: none
55            return type: none
56        """
57        if self.isDepressed:
58            self.visible = True
59            for window in self.subwindows:
60                window.openWindow()
61        else:
62            self.visible = True
63
64    def hover(self, surface):
65        """
66            Define the hover window for the object, by default none.
67
68            input type: None
69            return type: None
70        """
71        self.hoverDescription.render(surface)
Note: See TracBrowser for help on using the browser.