about summary refs log tree commit diff stats
path: root/src/css
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2023-07-23 11:37:24 +0200
committerbptato <nincsnevem662@gmail.com>2023-07-23 11:37:24 +0200
commit417f5b376f3b446039e4653bec4ce253f94c4580 (patch)
tree3018f4584730080ad3f9d80f7cda99c52f796765 /src/css
parentdb6b5fc2a130ff0f92ac6be9af38bba00fc81e05 (diff)
downloadchawan-417f5b376f3b446039e4653bec4ce253f94c4580.tar.gz
mediaquery: better debugging functions
Diffstat (limited to 'src/css')
-rw-r--r--src/css/mediaquery.nim38
1 files changed, 35 insertions, 3 deletions
diff --git a/src/css/mediaquery.nim b/src/css/mediaquery.nim
index b9e0ed83..5df629d3 100644
--- a/src/css/mediaquery.nim
+++ b/src/css/mediaquery.nim
@@ -59,13 +59,45 @@ type
     COMPARISON_EQ, COMPARISON_GT, COMPARISON_LT, COMPARISON_GE, COMPARISON_LE
 
 # for debugging
+func `$`*(mf: MediaFeature): string =
+  case mf.t
+  of FEATURE_COLOR:
+    return "color: " & $mf.range.a & ".." & $mf.range.b
+  of FEATURE_GRID:
+    return "grid: " & $mf.b
+  of FEATURE_HOVER:
+    return "hover: " & $mf.b
+  of FEATURE_PREFERS_COLOR_SCHEME:
+    return "prefers-color-scheme: " & $mf.b
+  of FEATURE_WIDTH:
+    result &= $mf.lengthrange.a
+    result &= " <"
+    if mf.lengthaeq:
+      result &= "="
+    result &= " width <"
+    if mf.lengthbeq:
+      result &= "="
+    result &= " "
+    result &= $mf.lengthrange.b
+  of FEATURE_HEIGHT:
+    result &= $mf.lengthrange.a
+    result &= " <"
+    if mf.lengthaeq:
+      result &= "="
+    result &= " width "
+    result &= "<"
+    if mf.lengthbeq:
+      result &= "="
+    result &= " "
+    result &= $mf.lengthrange.b
+
 func `$`*(mq: MediaQuery): string =
   case mq.t
   of CONDITION_MEDIA: return $mq.media
   of CONDITION_FEATURE: return $mq.feature
-  of CONDITION_NOT: return "not " & $mq.n
-  of CONDITION_OR: return $mq.ora & " or " & $mq.orb
-  of CONDITION_AND: return $mq.anda & " or " & $mq.andb
+  of CONDITION_NOT: return "not (" & $mq.n
+  of CONDITION_OR: return "(" & $mq.ora & ") or (" & $mq.orb & ")"
+  of CONDITION_AND: return "(" & $mq.anda & ") or (" & $mq.andb & ")"
 
 const MediaTypes = {
   "all": MEDIA_TYPE_ALL,