Write documentation for sugar3.graphics.ColorToolButton
- add one example, - part of feature Sugar3 Docs, https://wiki.sugarlabs.org/go/Features/Sugar3_Docs Added documentation and example for Colorbutton
This commit is contained in:
parent
a735c7a6ce
commit
f4fc8c0d1f
35
examples/colorbutton.py
Normal file
35
examples/colorbutton.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
from gi.repository import Gtk
|
||||||
|
|
||||||
|
from sugar3.graphics.toolbarbox import ToolbarBox
|
||||||
|
from sugar3.graphics.colorbutton import ColorToolButton
|
||||||
|
|
||||||
|
|
||||||
|
import common
|
||||||
|
|
||||||
|
|
||||||
|
test = common.Test()
|
||||||
|
test.show()
|
||||||
|
|
||||||
|
vbox = Gtk.VBox()
|
||||||
|
test.pack_start(vbox, True, True, 0)
|
||||||
|
vbox.show()
|
||||||
|
|
||||||
|
toolbar_box = ToolbarBox()
|
||||||
|
vbox.pack_start(toolbar_box, False, False, 0)
|
||||||
|
toolbar_box.show()
|
||||||
|
|
||||||
|
separator = Gtk.SeparatorToolItem()
|
||||||
|
toolbar_box.toolbar.insert(separator, -1)
|
||||||
|
separator.show()
|
||||||
|
|
||||||
|
def color_changed_cb(button, pspec):
|
||||||
|
print button.get_color()
|
||||||
|
|
||||||
|
color_button = ColorToolButton()
|
||||||
|
color_button.connect("notify::color", color_changed_cb)
|
||||||
|
toolbar_box.toolbar.insert(color_button, -1)
|
||||||
|
color_button.show()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
common.main(test)
|
@ -38,7 +38,8 @@ def get_svg_color_string(color):
|
|||||||
|
|
||||||
|
|
||||||
class _ColorButton(Gtk.Button):
|
class _ColorButton(Gtk.Button):
|
||||||
"""This is a ColorButton for Sugar. It is similar to the Gtk.ColorButton,
|
"""
|
||||||
|
This is a ColorButton for Sugar. It is similar to the Gtk.ColorButton,
|
||||||
but does not have any alpha support.
|
but does not have any alpha support.
|
||||||
Instead of a color selector dialog it will pop up a Sugar palette.
|
Instead of a color selector dialog it will pop up a Sugar palette.
|
||||||
|
|
||||||
@ -90,6 +91,11 @@ class _ColorButton(Gtk.Button):
|
|||||||
self._invoker.palette = self._palette
|
self._invoker.palette = self._palette
|
||||||
|
|
||||||
def create_palette(self):
|
def create_palette(self):
|
||||||
|
'''
|
||||||
|
Create a new palette with selected color and title.
|
||||||
|
(Here the title is 'Choose a color' and the bgcolor
|
||||||
|
is black.)
|
||||||
|
'''
|
||||||
if self._has_palette:
|
if self._has_palette:
|
||||||
self._palette = _ColorPalette(color=self._color,
|
self._palette = _ColorPalette(color=self._color,
|
||||||
primary_text=self._title)
|
primary_text=self._title)
|
||||||
@ -135,9 +141,24 @@ class _ColorButton(Gtk.Button):
|
|||||||
color = GObject.property(type=object, getter=get_color, setter=set_color)
|
color = GObject.property(type=object, getter=get_color, setter=set_color)
|
||||||
|
|
||||||
def set_icon_name(self, icon_name):
|
def set_icon_name(self, icon_name):
|
||||||
|
'''
|
||||||
|
Sets the icon for the tool button from a named themed icon.
|
||||||
|
If it is none then no icon will be shown.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
icon_name(string): The name for a themed icon.
|
||||||
|
It can be set as 'None' too.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
set_icon_name('view-radial')
|
||||||
|
'''
|
||||||
self._preview.props.icon_name = icon_name
|
self._preview.props.icon_name = icon_name
|
||||||
|
|
||||||
def get_icon_name(self):
|
def get_icon_name(self):
|
||||||
|
'''
|
||||||
|
The get_icon_name() method returns the value of the icon_name
|
||||||
|
property that contains the name of a themed icon or None.
|
||||||
|
'''
|
||||||
return self._preview.props.icon_name
|
return self._preview.props.icon_name
|
||||||
|
|
||||||
icon_name = GObject.property(type=str,
|
icon_name = GObject.property(type=str,
|
||||||
@ -468,16 +489,53 @@ class ColorToolButton(Gtk.ToolItem):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def set_accelerator(self, accelerator):
|
def set_accelerator(self, accelerator):
|
||||||
|
'''
|
||||||
|
Sets keyboard shortcut that activates this button.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
accelerator(string): accelerator to be set. Should be in
|
||||||
|
form <modifier>Letter
|
||||||
|
Find about format here :
|
||||||
|
https://developer.gnome.org/gtk3/stable/gtk3-Keyboard-Accelerators.html#gtk-accelerator-parse
|
||||||
|
|
||||||
|
Example:
|
||||||
|
set_accelerator(self, 'accel')
|
||||||
|
'''
|
||||||
self._accelerator = accelerator
|
self._accelerator = accelerator
|
||||||
setup_accelerator(self)
|
setup_accelerator(self)
|
||||||
|
|
||||||
def get_accelerator(self):
|
def get_accelerator(self):
|
||||||
|
'''
|
||||||
|
Returns the above accelerator string.
|
||||||
|
'''
|
||||||
return self._accelerator
|
return self._accelerator
|
||||||
|
|
||||||
accelerator = GObject.property(type=str, setter=set_accelerator,
|
accelerator = GObject.property(type=str, setter=set_accelerator,
|
||||||
getter=get_accelerator)
|
getter=get_accelerator)
|
||||||
|
|
||||||
def create_palette(self):
|
def create_palette(self):
|
||||||
|
'''
|
||||||
|
The create_palette function is called when the palette needs to be
|
||||||
|
invoked. For example, when the user has right clicked the icon or
|
||||||
|
the user has hovered over the icon for a long time.
|
||||||
|
|
||||||
|
The create_palette will only be called once or zero times. The palette
|
||||||
|
returned will be stored and re-used if the user invokes the palette
|
||||||
|
multiple times.
|
||||||
|
|
||||||
|
Your create_palette implementation does not need to
|
||||||
|
:any:`Gtk.Widget.show` the palette, as this will be done by the
|
||||||
|
invoker. However, you still need to show
|
||||||
|
the menu items, etc that you place in the palette.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
sugar3.graphics.palette.Palette, or None to indicate that you
|
||||||
|
do not want a palette shown
|
||||||
|
|
||||||
|
The default implementation returns None, to indicate no palette should
|
||||||
|
be shown.
|
||||||
|
'''
|
||||||
self._palette = self.get_child().create_palette()
|
self._palette = self.get_child().create_palette()
|
||||||
return self._palette
|
return self._palette
|
||||||
|
|
||||||
@ -515,35 +573,70 @@ class ColorToolButton(Gtk.ToolItem):
|
|||||||
toolbar_box = property(get_toolbar_box)
|
toolbar_box = property(get_toolbar_box)
|
||||||
|
|
||||||
def set_color(self, color):
|
def set_color(self, color):
|
||||||
|
'''
|
||||||
|
Sets the color of the colorbutton
|
||||||
|
'''
|
||||||
self.get_child().props.color = color
|
self.get_child().props.color = color
|
||||||
|
|
||||||
def get_color(self):
|
def get_color(self):
|
||||||
|
'''
|
||||||
|
Gets the above set color string.
|
||||||
|
'''
|
||||||
return self.get_child().props.color
|
return self.get_child().props.color
|
||||||
|
|
||||||
color = GObject.property(type=object, getter=get_color, setter=set_color)
|
color = GObject.property(type=object, getter=get_color, setter=set_color)
|
||||||
|
|
||||||
def set_icon_name(self, icon_name):
|
def set_icon_name(self, icon_name):
|
||||||
|
'''
|
||||||
|
Sets the icon for the tool button from a named themed icon.
|
||||||
|
If it is none then no icon will be shown.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
icon_name(string): The name for a themed icon.
|
||||||
|
It can be set as 'None' too.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
set_icon_name('view-radial')
|
||||||
|
'''
|
||||||
self.get_child().props.icon_name = icon_name
|
self.get_child().props.icon_name = icon_name
|
||||||
|
|
||||||
def get_icon_name(self):
|
def get_icon_name(self):
|
||||||
|
'''
|
||||||
|
The get_icon_name() method returns the value of the icon_name
|
||||||
|
property that contains the name of a themed icon or None.
|
||||||
|
'''
|
||||||
return self.get_child().props.icon_name
|
return self.get_child().props.icon_name
|
||||||
|
|
||||||
icon_name = GObject.property(type=str,
|
icon_name = GObject.property(type=str,
|
||||||
getter=get_icon_name, setter=set_icon_name)
|
getter=get_icon_name, setter=set_icon_name)
|
||||||
|
|
||||||
def set_icon_size(self, icon_size):
|
def set_icon_size(self, icon_size):
|
||||||
|
'''
|
||||||
|
Sets the size of icons in the colorbutton.
|
||||||
|
'''
|
||||||
self.get_child().props.icon_size = icon_size
|
self.get_child().props.icon_size = icon_size
|
||||||
|
|
||||||
def get_icon_size(self):
|
def get_icon_size(self):
|
||||||
|
'''
|
||||||
|
Gets the size of icons in the colorbutton.
|
||||||
|
'''
|
||||||
return self.get_child().props.icon_size
|
return self.get_child().props.icon_size
|
||||||
|
|
||||||
icon_size = GObject.property(type=int,
|
icon_size = GObject.property(type=int,
|
||||||
getter=get_icon_size, setter=set_icon_size)
|
getter=get_icon_size, setter=set_icon_size)
|
||||||
|
|
||||||
def set_title(self, title):
|
def set_title(self, title):
|
||||||
|
'''
|
||||||
|
The set_title() method sets the "title" property to the value of
|
||||||
|
title. The "title" property contains the string that is used to
|
||||||
|
set the colorbutton title.
|
||||||
|
'''
|
||||||
self.get_child().props.title = title
|
self.get_child().props.title = title
|
||||||
|
|
||||||
def get_title(self):
|
def get_title(self):
|
||||||
|
'''
|
||||||
|
Return the above title string.
|
||||||
|
'''
|
||||||
return self.get_child().props.title
|
return self.get_child().props.title
|
||||||
|
|
||||||
title = GObject.property(type=str, getter=get_title, setter=set_title)
|
title = GObject.property(type=str, getter=get_title, setter=set_title)
|
||||||
|
Loading…
Reference in New Issue
Block a user