Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/common/Util/CairoUtil.py
diff options
context:
space:
mode:
Diffstat (limited to 'common/Util/CairoUtil.py')
-rw-r--r--common/Util/CairoUtil.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/common/Util/CairoUtil.py b/common/Util/CairoUtil.py
new file mode 100644
index 0000000..7918210
--- /dev/null
+++ b/common/Util/CairoUtil.py
@@ -0,0 +1,44 @@
+# useful methods to work with cairo in TamTam
+from gi.repository import Gdk
+
+def gdk_color_to_cairo(color):
+ return (color.red / 65536.0, color.green / 65536.0, color.blue / 65536.0)
+
+def get_gdk_color(str_color):
+ result, color = Gdk.Color.parse(str_color)
+ return color
+
+def draw_round_rect(ctx, x, y, width, height, radio=10):
+ # Move to A
+ ctx.move_to(x + radio, y)
+ # Straight line to B
+ ctx.line_to(x + width - radio, y)
+ # Curve to C, Control points are both at Q
+ ctx.curve_to(x + width, y, x + width, y, x + width, y + radio)
+ # Move to D
+ ctx.line_to(x + width, y + height - radio)
+ # Curve to E
+ ctx.curve_to(x + width, y + height, x + width, y + height,
+ x + width - radio, y + height)
+ # Line to F
+ ctx.line_to(x + radio, y + height)
+ # Curve to G
+ ctx.curve_to(x, y + height, x, y + height, x, y + height - radio)
+ # Line to H
+ ctx.line_to(x, y + radio)
+ # Curve to A
+ ctx.curve_to(x, y, x, y, x + radio, y)
+
+def draw_drum_mask(ctx, x, y, size):
+ side = size / 3
+ ctx.move_to(x + side, y)
+ ctx.new_path()
+ ctx.line_to(x + side * 2, y)
+ ctx.line_to(x + size, y + side)
+ ctx.line_to(x + size, y + side * 2)
+ ctx.line_to(x + side * 2, y + size)
+ ctx.line_to(x + side, y + size)
+ ctx.line_to(x, y + side * 2)
+ ctx.line_to(x, y + side)
+ ctx.line_to(x + side, y)
+ ctx.close_path()