Update of /cvsroot/freevo/kaa/canvas/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1828

Modified Files:
        canvasobject.py 
Log Message:
Implement CanvasRectangle and font metric functions.


Index: canvasobject.py
===================================================================
RCS file: /cvsroot/freevo/kaa/canvas/src/canvasobject.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** canvasobject.py     14 Jul 2005 03:35:36 -0000      1.2
--- canvasobject.py     14 Jul 2005 04:07:19 -0000      1.3
***************
*** 206,216 ****
--- 206,227 ----
          return int(w), int(h)
  
+     def _reset(self):
+         # TODO
+         pass
  
+     def _assert_canvased(self):
+         if not self._o:
+             raise CanvasError, "Object must be canvased to call this 
function."
  
+     #
      # Public API
+     #
  
      def get_parent(self):
          return self._parent
  
+     def get_canvas(self):
+         return self._canvas
+ 
      def move(self, (x, y)):
          assert(type(x) == int and type(y) == int)
***************
*** 236,239 ****
--- 247,255 ----
  
  
+     def clip(self, pos = (0, 0), size = (-1, -1), color = None):
+         assert( pos != (0, 0) and -1 not in size )
+         # TODO: implement me (needs support in kaa-evas first).
+ 
+ 
      def get_size(self):
          if isinstance(self._o, evas.Object):
***************
*** 276,279 ****
--- 292,300 ----
              child._sync_properties()
  
+ 
+     #
+     # Public API
+     #
+ 
      def add_child(self, child):
          if child._parent:
***************
*** 328,331 ****
--- 349,357 ----
          return self._add_common(CanvasText(text), kwargs)
  
+     def add_rectangle(self, **kwargs):
+         o = self._add_common(CanvasRectangle(), kwargs)
+         if "size" in kwargs:
+             o.resize(kwargs["size"])
+ 
  
  class CanvasText(CanvasObject):
***************
*** 340,355 ****
              self.set_text(text)
          if color != None:
!             self.set_color(color)
  
      def _canvased(self, canvas):
          super(CanvasText, self)._canvased(canvas)
  
!         if self._o:
!             o = self._o
!         else:
              o = canvas.get_evas().object_text_add()
  
-         self._wrap(o)
  
  
      def set_font(self, font, size):
--- 366,389 ----
              self.set_text(text)
          if color != None:
!             self.set_color(*color)
  
      def _canvased(self, canvas):
          super(CanvasText, self)._canvased(canvas)
  
!         if not self._o:
              o = canvas.get_evas().object_text_add()
+             self._wrap(o)
+ 
+ 
+     def _sync_property_font(self):
+         self._o.font_set(*self["font"])
+ 
+     def _sync_property_text(self):
+         self._o.text_set(self["text"])
  
  
+     #
+     # Public API
+     #
  
      def set_font(self, font, size):
***************
*** 358,362 ****
  
      def get_font(self):
!         if isinstance(self._o, evas.Object):
              return self._o.font_get()
          return self["font"]
--- 392,396 ----
  
      def get_font(self):
!         if self._o:
              return self._o.font_get()
          return self["font"]
***************
*** 366,384 ****
          self["text"] = text
          if color:
!             self.set_color(color)
  
  
      def get_text(self):
!         if isinstance(self._o, evas.Object):
              return self._o.text_get()
          return self["text"]
  
  
!     def _sync_property_font(self):
!         self._o.font_set(*self["font"])
! 
!     def _sync_property_text(self):
!         self._o.text_set(self["text"])
! 
  
  
--- 400,432 ----
          self["text"] = text
          if color:
!             self.set_color(*color)
  
  
      def get_text(self):
!         if self._o:
              return self._o.text_get()
          return self["text"]
  
+     def get_metric(self, metric):
+         self._assert_canvased()
+         if metric == "ascent":
+             return self._o.ascent_get()
+         elif metric == "descent":
+             return self._o.descent_get()
+         elif metric == "max_ascent":
+             return self._o.max_ascent_get()
+         elif metric == "max_descent":
+             return self._o.max_descent_get()
+         elif metric == "horiz_advance":
+             return self._o.horiz_advance_get()
+         elif metric == "vert_advance":
+             return self._o.vert_advance_get()
+         elif metric == "insert":
+             return self._o.inset_get()
  
!     def get_metrics(self):
!         self._assert_canvased()
!         return self._o.metrics_get()
!     
  
  
***************
*** 420,429 ****
          super(CanvasImage, self)._canvased(canvas)
  
!         if self._o:
!             o = self._o
!         else:
              o = canvas.get_evas().object_image_add()
! 
!         self._wrap(o)
  
  
--- 468,474 ----
          super(CanvasImage, self)._canvased(canvas)
  
!         if not self._o:
              o = canvas.get_evas().object_image_add()
!             self._wrap(o)
  
  
***************
*** 487,490 ****
--- 532,539 ----
  
  
+     #
+     # Public API
+     #
+ 
      def set_dirty(self, dirty = True):
          self["dirty"] = dirty
***************
*** 523,526 ****
--- 572,578 ----
  
      def get_image_size(self):
+         if self["image"]:
+             return self["image"].size
+         self._assert_canvased()
          return self._o.size_get()
  
***************
*** 529,533 ****
          self["has_alpha"] = has_alpha
  
!     
  
  
--- 581,601 ----
          self["has_alpha"] = has_alpha
  
!  
!  
! class CanvasRectangle(CanvasObject):
! 
!     def __init__(self, size = None, color = None):
!         super(CanvasRectangle, self).__init__()
! 
!         if size:
!             self.resize(size)
!         if color:
!             self.set_color(*color)
!    
!     def _canvased(self, canvas):
!         super(CanvasRectangle, self)._canvased(canvas)
!         if not self._o:
!             o = canvas.get_evas().object_rectangle_add()
!             self._wrap(o)
  
  
***************
*** 565,576 ****
              del self._names[name]
  
-     def find_object(self, name):
-         if name in self._names:
-             object = self._names[name]
-             if object:
-                 return object._ref()
-             # Dead weakref, remove it.
-             del self._names[name]
- 
  
      def _get_property_pos(self):
--- 633,636 ----
***************
*** 596,599 ****
--- 656,663 ----
  
  
+     #
+     # Public API
+     #
+ 
      def render(self):
          self._check_render_queued()
***************
*** 605,608 ****
--- 669,682 ----
  
  
+     def find_object(self, name):
+         if name in self._names:
+             object = self._names[name]
+             if object:
+                 return object._ref()
+             # Dead weakref, remove it.
+             del self._names[name]
+ 
+ 
+ 
  class X11Canvas(Canvas):
  



-------------------------------------------------------
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP, 
AMD, and NVIDIA.  To register visit http://www.hp.com/go/dualwebinar
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to