Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/api/Button.py
blob: 97fd6c6bdda7b79fdf453a82940dd3dfad0bd2c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# -*- coding: utf-8 -*-

from api.Label import CLabel
from Mouse import CMouse


class CButton(CLabel):
    """ a button based on the label 
        same properties as label +
        mactive: True if user is clicking on sprite
                False if user is not currently clicking
        mclicked: True when user releases mouse over a 
                 currently active button
    """

    def __init__(self):
        CLabel.__init__(self)
        self.mactive = False
        self.mclicked = False
        self.bgColor = (0xCC, 0xCC, 0xCC)
        self.set_text('Button')

    def clicked(self):
        return self.mclicked
    
    def active(self):
        return self.mactive
    
    def mouseOver(self):
        if not CMouse().pressed():
            if self.rect.collidepoint(CMouse().getPos()):
                return True
            else:
                return False
        else:
            return False

    def update(self):
        CLabel.update(self)

        self.mclicked = False

        if CMouse().firstPress():
            if self.rect.collidepoint(CMouse().getPos()):
                #print "first press in button"
                self.mactive = True

        #check for mouse release
        if self.mactive == True:
            if CMouse().release():
                self.mactive = False
                if self.rect.collidepoint(CMouse().getPos()):
                    #print "release in button"
                    self.mclicked = True