summaryrefslogtreecommitdiffstats
path: root/python/lldbutils/lldbutils/gfx.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/lldbutils/lldbutils/gfx.py')
-rw-r--r--python/lldbutils/lldbutils/gfx.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/python/lldbutils/lldbutils/gfx.py b/python/lldbutils/lldbutils/gfx.py
new file mode 100644
index 0000000000..7622dd4f9c
--- /dev/null
+++ b/python/lldbutils/lldbutils/gfx.py
@@ -0,0 +1,65 @@
+# Any copyright is dedicated to the Public Domain.
+# http://creativecommons.org/publicdomain/zero/1.0/
+
+
+def summarize_nscolor(valobj, internal_dict):
+ colors = {
+ "#800000": "maroon",
+ "#ff0000": "red",
+ "#ffa500": "orange",
+ "#ffff00": "yellow",
+ "#808000": "olive",
+ "#800080": "purple",
+ "#ff00ff": "fuchsia",
+ "#ffffff": "white",
+ "#00ff00": "lime",
+ "#008000": "green",
+ "#000080": "navy",
+ "#0000ff": "blue",
+ "#00ffff": "aqua",
+ "#008080": "teal",
+ "#000000": "black",
+ "#c0c0c0": "silver",
+ "#808080": "gray",
+ }
+ value = valobj.GetValueAsUnsigned(0)
+ if value == 0:
+ return "transparent"
+ if value & 0xFF000000 != 0xFF000000:
+ return "rgba(%d, %d, %d, %f)" % (
+ value & 0xFF,
+ (value >> 8) & 0xFF,
+ (value >> 16) & 0xFF,
+ ((value >> 24) & 0xFF) / 255.0,
+ )
+ color = "#%02x%02x%02x" % (value & 0xFF, (value >> 8) & 0xFF, (value >> 16) & 0xFF)
+ if color in colors:
+ return colors[color]
+ return color
+
+
+def summarize_rect(valobj, internal_dict):
+ x = valobj.GetChildMemberWithName("x").GetValue()
+ y = valobj.GetChildMemberWithName("y").GetValue()
+ width = valobj.GetChildMemberWithName("width").GetValue()
+ height = valobj.GetChildMemberWithName("height").GetValue()
+ return "%s, %s, %s, %s" % (x, y, width, height)
+
+
+def rect_is_empty(valobj):
+ width = valobj.GetChildMemberWithName("width").GetValueAsSigned()
+ height = valobj.GetChildMemberWithName("height").GetValueAsSigned()
+ return width <= 0 or height <= 0
+
+
+def init(debugger):
+ debugger.HandleCommand(
+ "type summary add nscolor -v -F lldbutils.gfx.summarize_nscolor"
+ )
+ debugger.HandleCommand("type summary add nsRect -v -F lldbutils.gfx.summarize_rect")
+ debugger.HandleCommand(
+ "type summary add nsIntRect -v -F lldbutils.gfx.summarize_rect"
+ )
+ debugger.HandleCommand(
+ "type summary add gfxRect -v -F lldbutils.gfx.summarize_rect"
+ )