Added a logger for more maintainable and configurable debug messages.

Fixed a bug with context setting so that all children are updated on
context update.
This commit is contained in:
Joey Payne 2014-02-06 11:21:22 -07:00
commit 49a630e8ac
5 changed files with 28 additions and 6 deletions

1
jgui/logger/__init__.py Normal file
View file

@ -0,0 +1 @@
from jgui.logger.logger import *

6
jgui/logger/logger.py Normal file
View file

@ -0,0 +1,6 @@
from __future__ import print_function
from jgui.settings import DEBUG
def log(*args):
if DEBUG:
print(*args)

1
jgui/settings.py Normal file
View file

@ -0,0 +1 @@
DEBUG=True

View file

@ -4,6 +4,7 @@ import pangocairo as pc
import math
from .structures import Size, Position, Rectangle, Color, BorderRadius, Padding
from ..events.events import WindowEventSource
from ..logger import log
debug = True
@ -289,7 +290,7 @@ class Window(WindowEventSource, WindowSurface):
position = Position.from_value(kwargs.pop('position', Position()))
size = Size.from_value(kwargs.pop('size', Size()))
self.context = kwargs.pop('context', None)
self._context = kwargs.pop('context', None)
self.min_size = Size.from_value(kwargs.pop('min_size', Size(1,1)))
self.max_size = Size.from_value(kwargs.pop('max_size', Size(-1,-1)))
self.corner_handle_size = Size.from_value(kwargs.pop('corner_handle_size', Size(20, 20)))
@ -318,6 +319,7 @@ class Window(WindowEventSource, WindowSurface):
self.accept('mouse-move', self.process_mouse_move)
self.size = size
self.position = position
self.context = self._context
self.resizable = kwargs.pop('resizable', self._resizable)
self.draggable = kwargs.pop('draggable', self._draggable)
@ -638,7 +640,7 @@ class Window(WindowEventSource, WindowSurface):
def inject_mouse_down(self, button):
if self.mouse_inside():
print button, self.name
log(button, self.name)
self.mouse_inputs[button] = True
self.mouse_down = True
self.grab_focus()
@ -651,7 +653,7 @@ class Window(WindowEventSource, WindowSurface):
def inject_mouse_up(self, button):
if self.mouse_held() and self.mouse_inputs[button]:
print button+'-up', self.name
log(button+'-up', self.name)
self.mouse_down = False
self.mouse_inputs[button] = False
self.dispatch('{}-up'.format(button), self, self.mouse_pos)
@ -694,7 +696,7 @@ class Window(WindowEventSource, WindowSurface):
def release_focus(self):
if self.focused:
print 'released', self.name
log('released', self.name)
self.focused = False
self.mouse_down = False
#clear events that may have been triggered
@ -764,16 +766,26 @@ class Window(WindowEventSource, WindowSurface):
if not self.mouse_held():
if mouse_focus:
if not self.mouse_in:
print 'mouse-enter', self.name
log('mouse-enter', self.name)
self.dispatch('mouse-enter', self)
self.dispatch('hover', self)
self.mouse_in = True
else:
if self.mouse_in:
print 'mouse-leave', self.name
log('mouse-leave', self.name)
self.dispatch('mouse-leave', self)
self.mouse_in = False
@property
def context(self):
return self._context
@context.setter
def context(self, context):
self._context = context
for child in self.children:
child.context = self._context
def add_child(self, child_window):
if child_window not in self.children:
child_window.parent = self

View file

@ -64,6 +64,8 @@ class Test(ShowBase):
if width != self.width or height != self.height:
self.width, self.height = width, height
cairoTexture = Texture()
cairoTexture.setMagfilter(Texture.FTNearest)
cairoTexture.setMinfilter(Texture.FTNearest)
cairoTexture.setXSize(self.width)
cairoTexture.setYSize(self.height)
cairoTexture.setFormat(cairoTexture.FRgba8)