Remove Canvas* widgets and other hippo-canvas using parts
hippo-canvas isn't available in the GTK3 world, so we need to remove anything that depends on it. Activities that still use it will need replace hippo-canvas based widgets with native GTK ones before they can be ported to GTK3. [replaced description] Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
This commit is contained in:
		
							parent
							
								
									1edc6ca1b1
								
							
						
					
					
						commit
						9cb18cdcf3
					
				@ -2,10 +2,8 @@ sugardir = $(pythondir)/sugar3/graphics
 | 
			
		||||
sugar_PYTHON =              \
 | 
			
		||||
	alert.py                \
 | 
			
		||||
	animator.py             \
 | 
			
		||||
	canvastextview.py       \
 | 
			
		||||
	colorbutton.py          \
 | 
			
		||||
	combobox.py             \
 | 
			
		||||
	entry.py                \
 | 
			
		||||
	iconentry.py            \
 | 
			
		||||
	icon.py                 \
 | 
			
		||||
	__init__.py             \
 | 
			
		||||
@ -18,7 +16,6 @@ sugar_PYTHON =              \
 | 
			
		||||
	panel.py                \
 | 
			
		||||
	radiopalette.py         \
 | 
			
		||||
	radiotoolbutton.py      \
 | 
			
		||||
	roundbox.py             \
 | 
			
		||||
	style.py                \
 | 
			
		||||
	toggletoolbutton.py     \
 | 
			
		||||
	toolbarbox.py           \
 | 
			
		||||
 | 
			
		||||
@ -1,41 +0,0 @@
 | 
			
		||||
# Copyright (C) 2008 One Laptop Per Child
 | 
			
		||||
#
 | 
			
		||||
# This library is free software; you can redistribute it and/or
 | 
			
		||||
# modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
# License as published by the Free Software Foundation; either
 | 
			
		||||
# version 2 of the License, or (at your option) any later version.
 | 
			
		||||
#
 | 
			
		||||
# This library is distributed in the hope that it will be useful,
 | 
			
		||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
# Lesser General Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
# You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
# License along with this library; if not, write to the
 | 
			
		||||
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
# Boston, MA 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
import gtk
 | 
			
		||||
import hippo
 | 
			
		||||
 | 
			
		||||
from sugar3.graphics import style
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CanvasTextView(hippo.CanvasWidget):
 | 
			
		||||
 | 
			
		||||
    def __init__(self, text, **kwargs):
 | 
			
		||||
        hippo.CanvasWidget.__init__(self, **kwargs)
 | 
			
		||||
        self.text_view_widget = gtk.TextView()
 | 
			
		||||
        self.text_view_widget.props.buffer.props.text = text
 | 
			
		||||
        self.text_view_widget.props.left_margin = style.DEFAULT_SPACING
 | 
			
		||||
        self.text_view_widget.props.right_margin = style.DEFAULT_SPACING
 | 
			
		||||
        self.text_view_widget.props.wrap_mode = gtk.WRAP_WORD
 | 
			
		||||
        self.text_view_widget.show()
 | 
			
		||||
 | 
			
		||||
        # TODO: These fields should expand vertically instead of scrolling
 | 
			
		||||
        scrolled_window = gtk.ScrolledWindow()
 | 
			
		||||
        scrolled_window.set_shadow_type(gtk.SHADOW_OUT)
 | 
			
		||||
        scrolled_window.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
 | 
			
		||||
        scrolled_window.add(self.text_view_widget)
 | 
			
		||||
 | 
			
		||||
        self.props.widget = scrolled_window
 | 
			
		||||
@ -1,41 +0,0 @@
 | 
			
		||||
# Copyright (C) 2007, Red Hat, Inc.
 | 
			
		||||
#
 | 
			
		||||
# This library is free software; you can redistribute it and/or
 | 
			
		||||
# modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
# License as published by the Free Software Foundation; either
 | 
			
		||||
# version 2 of the License, or (at your option) any later version.
 | 
			
		||||
#
 | 
			
		||||
# This library is distributed in the hope that it will be useful,
 | 
			
		||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
# Lesser General Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
# You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
# License along with this library; if not, write to the
 | 
			
		||||
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
# Boston, MA 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
STABLE.
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import gtk
 | 
			
		||||
import hippo
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CanvasEntry(hippo.CanvasEntry):
 | 
			
		||||
 | 
			
		||||
    def set_background(self, color_spec):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        color_spec :
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        color = gtk.gdk.color_parse(color_spec)
 | 
			
		||||
        self.props.widget.modify_bg(gtk.STATE_INSENSITIVE, color)
 | 
			
		||||
        self.props.widget.modify_base(gtk.STATE_INSENSITIVE, color)
 | 
			
		||||
@ -27,7 +27,6 @@ import logging
 | 
			
		||||
 | 
			
		||||
import gobject
 | 
			
		||||
import gtk
 | 
			
		||||
import hippo
 | 
			
		||||
import cairo
 | 
			
		||||
 | 
			
		||||
from sugar3.graphics.xocolor import XoColor
 | 
			
		||||
@ -550,438 +549,6 @@ class Icon(gtk.Image):
 | 
			
		||||
        type=float, setter=set_scale)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem):
 | 
			
		||||
 | 
			
		||||
    __gtype_name__ = 'CanvasIcon'
 | 
			
		||||
 | 
			
		||||
    def __init__(self, **kwargs):
 | 
			
		||||
        from sugar3.graphics.palette import CanvasInvoker
 | 
			
		||||
 | 
			
		||||
        self._buffer = _IconBuffer()
 | 
			
		||||
        self._palette_invoker = CanvasInvoker()
 | 
			
		||||
        self._alpha = 1.0
 | 
			
		||||
 | 
			
		||||
        hippo.CanvasBox.__init__(self, **kwargs)
 | 
			
		||||
 | 
			
		||||
        self._palette_invoker.attach(self)
 | 
			
		||||
 | 
			
		||||
        self.connect('destroy', self.__destroy_cb)
 | 
			
		||||
 | 
			
		||||
    def _emit_paint_needed_icon_area(self):
 | 
			
		||||
        surface = self._buffer.get_surface()
 | 
			
		||||
        if surface:
 | 
			
		||||
            width, height = self.get_allocation()
 | 
			
		||||
            s_width = surface.get_width()
 | 
			
		||||
            s_height = surface.get_height()
 | 
			
		||||
 | 
			
		||||
            x = (width - s_width) / 2
 | 
			
		||||
            y = (height - s_height) / 2
 | 
			
		||||
 | 
			
		||||
            self.emit_paint_needed(x, y, s_width, s_height)
 | 
			
		||||
 | 
			
		||||
    def __destroy_cb(self, icon):
 | 
			
		||||
        if self._palette_invoker is not None:
 | 
			
		||||
            self._palette_invoker.detach()
 | 
			
		||||
 | 
			
		||||
    def set_file_name(self, value):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        value:
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        \"\"\"
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        if self._buffer.file_name != value:
 | 
			
		||||
            self._buffer.file_name = value
 | 
			
		||||
            self.emit_paint_needed(0, 0, -1, -1)
 | 
			
		||||
 | 
			
		||||
    def get_file_name(self):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        file name :
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        return self._buffer.file_name
 | 
			
		||||
 | 
			
		||||
    file_name = gobject.property(
 | 
			
		||||
        type=object, getter=get_file_name, setter=set_file_name)
 | 
			
		||||
 | 
			
		||||
    def set_icon_name(self, value):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        value:
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        if self._buffer.icon_name != value:
 | 
			
		||||
            self._buffer.icon_name = value
 | 
			
		||||
            self.emit_paint_needed(0, 0, -1, -1)
 | 
			
		||||
 | 
			
		||||
    def get_icon_name(self):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        icon name :
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        return self._buffer.icon_name
 | 
			
		||||
 | 
			
		||||
    icon_name = gobject.property(
 | 
			
		||||
        type=object, getter=get_icon_name, setter=set_icon_name)
 | 
			
		||||
 | 
			
		||||
    def set_xo_color(self, value):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        value:
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        if self._buffer.xo_color != value:
 | 
			
		||||
            self._buffer.xo_color = value
 | 
			
		||||
            self._emit_paint_needed_icon_area()
 | 
			
		||||
 | 
			
		||||
    xo_color = gobject.property(
 | 
			
		||||
        type=object, getter=None, setter=set_xo_color)
 | 
			
		||||
 | 
			
		||||
    def set_fill_color(self, value):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        value:
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        if self._buffer.fill_color != value:
 | 
			
		||||
            self._buffer.fill_color = value
 | 
			
		||||
            self._emit_paint_needed_icon_area()
 | 
			
		||||
 | 
			
		||||
    def get_fill_color(self):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        fill color :
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        return self._buffer.fill_color
 | 
			
		||||
 | 
			
		||||
    fill_color = gobject.property(
 | 
			
		||||
        type=object, getter=get_fill_color, setter=set_fill_color)
 | 
			
		||||
 | 
			
		||||
    def set_stroke_color(self, value):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        value:
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        if self._buffer.stroke_color != value:
 | 
			
		||||
            self._buffer.stroke_color = value
 | 
			
		||||
            self._emit_paint_needed_icon_area()
 | 
			
		||||
 | 
			
		||||
    def get_stroke_color(self):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        stroke color :
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        return self._buffer.stroke_color
 | 
			
		||||
 | 
			
		||||
    stroke_color = gobject.property(
 | 
			
		||||
        type=object, getter=get_stroke_color, setter=set_stroke_color)
 | 
			
		||||
 | 
			
		||||
    def set_background_color(self, value):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        value:
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        if self._buffer.background_color != value:
 | 
			
		||||
            self._buffer.background_color = value
 | 
			
		||||
            self.emit_paint_needed(0, 0, -1, -1)
 | 
			
		||||
 | 
			
		||||
    def get_background_color(self):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        fill color :
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        return self._buffer.background_color
 | 
			
		||||
 | 
			
		||||
    background_color = gobject.property(
 | 
			
		||||
        type=object, getter=get_background_color, setter=set_background_color)
 | 
			
		||||
 | 
			
		||||
    def set_size(self, value):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        value:
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        if self._buffer.width != value:
 | 
			
		||||
            self._buffer.width = value
 | 
			
		||||
            self._buffer.height = value
 | 
			
		||||
            self.emit_request_changed()
 | 
			
		||||
 | 
			
		||||
    def get_size(self):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        size :
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        return self._buffer.width
 | 
			
		||||
 | 
			
		||||
    size = gobject.property(
 | 
			
		||||
        type=object, getter=get_size, setter=set_size)
 | 
			
		||||
 | 
			
		||||
    def set_scale(self, value):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        value:
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        if self._buffer.scale != value:
 | 
			
		||||
            self._buffer.scale = value
 | 
			
		||||
            self.emit_request_changed()
 | 
			
		||||
 | 
			
		||||
    def get_scale(self):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        scale :
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        return self._buffer.scale
 | 
			
		||||
 | 
			
		||||
    scale = gobject.property(
 | 
			
		||||
        type=float, getter=get_scale, setter=set_scale)
 | 
			
		||||
 | 
			
		||||
    def set_alpha(self, alpha):
 | 
			
		||||
        if self._alpha != alpha:
 | 
			
		||||
            self._alpha = alpha
 | 
			
		||||
            self.emit_paint_needed(0, 0, -1, -1)
 | 
			
		||||
 | 
			
		||||
    alpha = gobject.property(
 | 
			
		||||
        type=float, setter=set_alpha)
 | 
			
		||||
 | 
			
		||||
    def set_cache(self, value):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        cache
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        self._buffer.cache = value
 | 
			
		||||
 | 
			
		||||
    def get_cache(self):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        cache :
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        return self._buffer.cache
 | 
			
		||||
 | 
			
		||||
    cache = gobject.property(
 | 
			
		||||
        type=bool, default=False, getter=get_cache, setter=set_cache)
 | 
			
		||||
 | 
			
		||||
    def set_badge_name(self, value):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        value :
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        if self._buffer.badge_name != value:
 | 
			
		||||
            self._buffer.badge_name = value
 | 
			
		||||
            self.emit_paint_needed(0, 0, -1, -1)
 | 
			
		||||
 | 
			
		||||
    def get_badge_name(self):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        badge name :
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        return self._buffer.badge_name
 | 
			
		||||
 | 
			
		||||
    badge_name = gobject.property(
 | 
			
		||||
        type=object, getter=get_badge_name, setter=set_badge_name)
 | 
			
		||||
 | 
			
		||||
    def do_paint_below_children(self, cr, damaged_box):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        cr :
 | 
			
		||||
 | 
			
		||||
        damaged_box :
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        surface = self._buffer.get_surface()
 | 
			
		||||
        if surface:
 | 
			
		||||
            width, height = self.get_allocation()
 | 
			
		||||
 | 
			
		||||
            x = (width - surface.get_width()) / 2
 | 
			
		||||
            y = (height - surface.get_height()) / 2
 | 
			
		||||
 | 
			
		||||
            cr.set_source_surface(surface, x, y)
 | 
			
		||||
            if self._alpha == 1.0:
 | 
			
		||||
                cr.paint()
 | 
			
		||||
            else:
 | 
			
		||||
                cr.paint_with_alpha(self._alpha)
 | 
			
		||||
 | 
			
		||||
    def do_get_content_width_request(self):
 | 
			
		||||
        """
 | 
			
		||||
        Parameters
 | 
			
		||||
        ----------
 | 
			
		||||
        None
 | 
			
		||||
 | 
			
		||||
        Returns
 | 
			
		||||
        -------
 | 
			
		||||
        width :
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        surface = self._buffer.get_surface()
 | 
			
		||||
        if surface:
 | 
			
		||||
            size = surface.get_width()
 | 
			
		||||
        elif self._buffer.width:
 | 
			
		||||
            size = self._buffer.width
 | 
			
		||||
        else:
 | 
			
		||||
            size = 0
 | 
			
		||||
 | 
			
		||||
        return size, size
 | 
			
		||||
 | 
			
		||||
    def do_get_content_height_request(self, for_width):
 | 
			
		||||
        surface = self._buffer.get_surface()
 | 
			
		||||
        if surface:
 | 
			
		||||
            size = surface.get_height()
 | 
			
		||||
        elif self._buffer.height:
 | 
			
		||||
            size = self._buffer.height
 | 
			
		||||
        else:
 | 
			
		||||
            size = 0
 | 
			
		||||
 | 
			
		||||
        return size, size
 | 
			
		||||
 | 
			
		||||
    def do_button_press_event(self, event):
 | 
			
		||||
        if event.button == 1:
 | 
			
		||||
            self.emit_activated()
 | 
			
		||||
            return True
 | 
			
		||||
        else:
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
    def create_palette(self):
 | 
			
		||||
        return None
 | 
			
		||||
 | 
			
		||||
    def get_palette(self):
 | 
			
		||||
        return self._palette_invoker.palette
 | 
			
		||||
 | 
			
		||||
    def set_palette(self, palette):
 | 
			
		||||
        self._palette_invoker.palette = palette
 | 
			
		||||
 | 
			
		||||
    palette = gobject.property(
 | 
			
		||||
        type=object, setter=set_palette, getter=get_palette)
 | 
			
		||||
 | 
			
		||||
    def get_palette_invoker(self):
 | 
			
		||||
        return self._palette_invoker
 | 
			
		||||
 | 
			
		||||
    def set_palette_invoker(self, palette_invoker):
 | 
			
		||||
        self._palette_invoker.detach()
 | 
			
		||||
        self._palette_invoker = palette_invoker
 | 
			
		||||
 | 
			
		||||
    palette_invoker = gobject.property(
 | 
			
		||||
        type=object, setter=set_palette_invoker, getter=get_palette_invoker)
 | 
			
		||||
 | 
			
		||||
    def set_tooltip(self, text):
 | 
			
		||||
        from sugar3.graphics.palette import Palette
 | 
			
		||||
 | 
			
		||||
        self.set_palette(Palette(text))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CellRendererIcon(gtk.GenericCellRenderer):
 | 
			
		||||
 | 
			
		||||
    __gtype_name__ = 'SugarCellRendererIcon'
 | 
			
		||||
 | 
			
		||||
@ -25,7 +25,6 @@ import logging
 | 
			
		||||
 | 
			
		||||
import gtk
 | 
			
		||||
import gobject
 | 
			
		||||
import hippo
 | 
			
		||||
 | 
			
		||||
from sugar3.graphics import palettegroup
 | 
			
		||||
from sugar3.graphics import animator
 | 
			
		||||
@ -787,64 +786,6 @@ class WidgetInvoker(Invoker):
 | 
			
		||||
    widget = gobject.property(type=object, getter=_get_widget, setter=None)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CanvasInvoker(Invoker):
 | 
			
		||||
 | 
			
		||||
    def __init__(self, parent=None):
 | 
			
		||||
        Invoker.__init__(self)
 | 
			
		||||
 | 
			
		||||
        self._position_hint = self.AT_CURSOR
 | 
			
		||||
        self._motion_hid = None
 | 
			
		||||
        self._release_hid = None
 | 
			
		||||
        self._item = None
 | 
			
		||||
 | 
			
		||||
        if parent:
 | 
			
		||||
            self.attach(parent)
 | 
			
		||||
 | 
			
		||||
    def attach(self, parent):
 | 
			
		||||
        Invoker.attach(self, parent)
 | 
			
		||||
 | 
			
		||||
        self._item = parent
 | 
			
		||||
        self._motion_hid = self._item.connect('motion-notify-event',
 | 
			
		||||
                                              self.__motion_notify_event_cb)
 | 
			
		||||
        self._release_hid = self._item.connect('button-release-event',
 | 
			
		||||
                                               self.__button_release_event_cb)
 | 
			
		||||
 | 
			
		||||
    def detach(self):
 | 
			
		||||
        Invoker.detach(self)
 | 
			
		||||
        self._item.disconnect(self._motion_hid)
 | 
			
		||||
        self._item.disconnect(self._release_hid)
 | 
			
		||||
 | 
			
		||||
    def get_default_position(self):
 | 
			
		||||
        return self.AT_CURSOR
 | 
			
		||||
 | 
			
		||||
    def get_rect(self):
 | 
			
		||||
        context = self._item.get_context()
 | 
			
		||||
        if context:
 | 
			
		||||
            x, y = context.translate_to_screen(self._item)
 | 
			
		||||
            width, height = self._item.get_allocation()
 | 
			
		||||
            return gtk.gdk.Rectangle(x, y, width, height)
 | 
			
		||||
        else:
 | 
			
		||||
            return gtk.gdk.Rectangle()
 | 
			
		||||
 | 
			
		||||
    def __motion_notify_event_cb(self, button, event):
 | 
			
		||||
        if event.detail == hippo.MOTION_DETAIL_ENTER:
 | 
			
		||||
            self.notify_mouse_enter()
 | 
			
		||||
        elif event.detail == hippo.MOTION_DETAIL_LEAVE:
 | 
			
		||||
            self.notify_mouse_leave()
 | 
			
		||||
 | 
			
		||||
        return False
 | 
			
		||||
 | 
			
		||||
    def __button_release_event_cb(self, button, event):
 | 
			
		||||
        if event.button == 3:
 | 
			
		||||
            self.notify_right_click()
 | 
			
		||||
            return True
 | 
			
		||||
        else:
 | 
			
		||||
            return False
 | 
			
		||||
 | 
			
		||||
    def get_toplevel(self):
 | 
			
		||||
        return hippo.get_canvas_for_item(self._item).get_toplevel()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ToolInvoker(WidgetInvoker):
 | 
			
		||||
 | 
			
		||||
    def __init__(self, parent=None):
 | 
			
		||||
 | 
			
		||||
@ -1,71 +0,0 @@
 | 
			
		||||
# Copyright (C) 2006-2007 Red Hat, Inc.
 | 
			
		||||
#
 | 
			
		||||
# This library is free software; you can redistribute it and/or
 | 
			
		||||
# modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
# License as published by the Free Software Foundation; either
 | 
			
		||||
# version 2 of the License, or (at your option) any later version.
 | 
			
		||||
#
 | 
			
		||||
# This library is distributed in the hope that it will be useful,
 | 
			
		||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
# Lesser General Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
# You should have received a copy of the GNU Lesser General Public
 | 
			
		||||
# License along with this library; if not, write to the
 | 
			
		||||
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
			
		||||
# Boston, MA 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
STABLE.
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import math
 | 
			
		||||
 | 
			
		||||
import hippo
 | 
			
		||||
 | 
			
		||||
from sugar3.graphics import style
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CanvasRoundBox(hippo.CanvasBox, hippo.CanvasItem):
 | 
			
		||||
    __gtype_name__ = 'SugarRoundBox'
 | 
			
		||||
 | 
			
		||||
    _BORDER_DEFAULT = style.LINE_WIDTH
 | 
			
		||||
 | 
			
		||||
    def __init__(self, **kwargs):
 | 
			
		||||
        hippo.CanvasBox.__init__(self, **kwargs)
 | 
			
		||||
 | 
			
		||||
        # TODO: we should calculate radius depending on the height of the box.
 | 
			
		||||
        self._radius = style.zoom(10)
 | 
			
		||||
 | 
			
		||||
        self.props.orientation = hippo.ORIENTATION_HORIZONTAL
 | 
			
		||||
        self.props.border = self._BORDER_DEFAULT
 | 
			
		||||
        self.props.border_left = self._radius
 | 
			
		||||
        self.props.border_right = self._radius
 | 
			
		||||
        self.props.border_color = style.COLOR_BLACK.get_int()
 | 
			
		||||
 | 
			
		||||
    def do_paint_background(self, cr, damaged_box):
 | 
			
		||||
        [width, height] = self.get_allocation()
 | 
			
		||||
 | 
			
		||||
        x = self._BORDER_DEFAULT / 2
 | 
			
		||||
        y = self._BORDER_DEFAULT / 2
 | 
			
		||||
        width -= self._BORDER_DEFAULT
 | 
			
		||||
        height -= self._BORDER_DEFAULT
 | 
			
		||||
 | 
			
		||||
        cr.move_to(x + self._radius, y)
 | 
			
		||||
        cr.arc(x + width - self._radius, y + self._radius,
 | 
			
		||||
               self._radius, math.pi * 1.5, math.pi * 2)
 | 
			
		||||
        cr.arc(x + width - self._radius, x + height - self._radius,
 | 
			
		||||
               self._radius, 0, math.pi * 0.5)
 | 
			
		||||
        cr.arc(x + self._radius, y + height - self._radius,
 | 
			
		||||
               self._radius, math.pi * 0.5, math.pi)
 | 
			
		||||
        cr.arc(x + self._radius, y + self._radius, self._radius,
 | 
			
		||||
               math.pi, math.pi * 1.5)
 | 
			
		||||
 | 
			
		||||
        hippo.cairo_set_source_rgba32(cr, self.props.background_color)
 | 
			
		||||
        cr.fill_preserve()
 | 
			
		||||
 | 
			
		||||
        # TODO: we should be more consistent here with the border properties.
 | 
			
		||||
        if self.props.border_color:
 | 
			
		||||
            hippo.cairo_set_source_rgba32(cr, self.props.border_color)
 | 
			
		||||
            cr.set_line_width(self.props.border_top)
 | 
			
		||||
            cr.stroke()
 | 
			
		||||
@ -1,51 +0,0 @@
 | 
			
		||||
import hippo
 | 
			
		||||
import gtk
 | 
			
		||||
import gobject
 | 
			
		||||
 | 
			
		||||
from sugar3.graphics.icon import CanvasIcon
 | 
			
		||||
from sugar3.graphics.roundbox import CanvasRoundBox
 | 
			
		||||
 | 
			
		||||
import common
 | 
			
		||||
 | 
			
		||||
test = common.Test()
 | 
			
		||||
 | 
			
		||||
canvas = hippo.Canvas()
 | 
			
		||||
test.pack_start(canvas)
 | 
			
		||||
canvas.show()
 | 
			
		||||
 | 
			
		||||
scrollbars = hippo.CanvasScrollbars()
 | 
			
		||||
canvas.set_root(scrollbars)
 | 
			
		||||
 | 
			
		||||
box = hippo.CanvasBox(padding=10, spacing=10)
 | 
			
		||||
scrollbars.set_root(box)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def idle_cb():
 | 
			
		||||
    global countdown
 | 
			
		||||
 | 
			
		||||
    for i in range(0, 100):
 | 
			
		||||
        entry = hippo.CanvasBox(border=2, border_color=0x000000ff,
 | 
			
		||||
                                orientation=hippo.ORIENTATION_HORIZONTAL,
 | 
			
		||||
                                padding=10, spacing=10)
 | 
			
		||||
 | 
			
		||||
        for j in range(0, 3):
 | 
			
		||||
            icon = CanvasIcon(icon_name='go-left')
 | 
			
		||||
            entry.append(icon)
 | 
			
		||||
 | 
			
		||||
        for j in range(0, 2):
 | 
			
		||||
            text = hippo.CanvasText(text='Text %s %s' % (countdown, j))
 | 
			
		||||
            entry.append(text)
 | 
			
		||||
 | 
			
		||||
        box.append(entry)
 | 
			
		||||
 | 
			
		||||
        countdown -= 1
 | 
			
		||||
 | 
			
		||||
    return countdown > 0
 | 
			
		||||
 | 
			
		||||
countdown = 1000
 | 
			
		||||
gobject.idle_add(idle_cb)
 | 
			
		||||
 | 
			
		||||
test.show()
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    common.main(test)
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user