diff --git a/Examples/TestScreen.py b/Examples/TestScreen.py old mode 100644 new mode 100755 diff --git a/Examples/hawk.png b/Examples/hawk.png old mode 100644 new mode 100755 diff --git a/Examples/run.py b/Examples/run.py old mode 100644 new mode 100755 index 8da01b0..c5c8de0 --- a/Examples/run.py +++ b/Examples/run.py @@ -20,4 +20,5 @@ ##---------------------------------------------------- window.checkForInput(screen) #checks for inputs on the screen + window.checkForHover(screen) #checks for hover on the screen window.update(screen) #updates the window to reflect the new screen diff --git a/PageElements.py b/PageElements.py old mode 100644 new mode 100755 index 5b6a912..6716358 --- a/PageElements.py +++ b/PageElements.py @@ -14,12 +14,23 @@ def wasClicked(self, clickLoc): return True return False + def wasHovered(self, mouse_pos): + if self.rect.collidepoint(mouse_pos): + return True + return False + def display(self, surface): pygame.draw.rect(surface, self.color, self.rect) def onClick(self, screen): print("You've clicked a useless page element") + def onHover(self, screen): + pass + + def notHovered(self, screen): + pass + def adjustToScreenSize(self, screenDims): #call on screen size adjust event? #https://www.pygame.org/docs/ref/display.html#:~:text=If%20the%20display%20is%20set,the%20window%20must%20be%20redrawn. @@ -94,6 +105,9 @@ def onClick(self, screen): print("a ha! You've found a useless button. Great Work") print('The text on this button is: ' + self.text) + def onHover(self, screen): + pass + def display(self, surface): font = pygame.font.Font('freesansbold.ttf', 14) textSurf = font.render(self.text, True, self.textColorRGB) @@ -184,4 +198,4 @@ def getCenterFromRect(rect): - \ No newline at end of file + diff --git a/Screen.py b/Screen.py old mode 100644 new mode 100755 diff --git a/Window.py b/Window.py old mode 100644 new mode 100755 index 5708d46..e188074 --- a/Window.py +++ b/Window.py @@ -50,3 +50,15 @@ def checkForInput(self, screen): if event.type == pygame.VIDEORESIZE: self.screenDims = self.screen.get_size() + def checkForHover(self, screen): + mouse_pos = pygame.mouse.get_pos() + for e in screen.elements[::-1]: + if pygame.mouse.get_focused() != False: + if e.wasHovered(mouse_pos): + e.onHover(screen) + else: + e.notHovered(screen) + return + + +