Bladeren bron

update `call` in `build` macro

Ethosa 3 jaren geleden
bovenliggende
commit
2f8daad86e
3 gewijzigde bestanden met toevoegingen van 16 en 2 verwijderingen
  1. 6 0
      examples/builder_features/main.nim
  2. 8 0
      src/nodesnim/core/scene_builder.nim
  3. 2 2
      tests/test3.nim

+ 6 - 0
examples/builder_features/main.nim

@@ -42,6 +42,12 @@ build:
       - Node nodeNumber_i:  # Translates to nodeNumber{i}
         call hide()
 
+    - Label hello_world:
+      call:
+        setText("Hello world!")
+        setAnchor(1, 0, 1, 0)
+        setTextColor(Color("#cefc"))
+
 for child in main.getChildIter():
   echo child.name
 

+ 8 - 0
src/nodesnim/core/scene_builder.nim

@@ -39,6 +39,14 @@ proc addNode(level: var seq[NimNode], code: NimNode): NimNode {.compileTime.} =
     elif line.kind == nnkCommand and $line[0] == "call" and level.len > 0:
       line[1].insert(1, level[^1])
       result.add(line[1])
+    # call:
+    #   methodName(arg1, arg2) -> currentNode.methodName(arg1, arg2)
+    #   method2(some args) -> currentNode.method2(some args)
+    elif line.kind == nnkCall and line[0].kind == nnkIdent and $line[0] == "call" and level.len > 0:
+      for i in line[1]:
+        var method_call = i
+        method_call.insert(1, level[^1])
+        result.add(method_call)
     # @onProcess() -> parent@onProcess(self)
     # @onPress(x, y) -> parent@onPress(self, x, y)
     elif line.kind == nnkCall and line[0].kind == nnkPrefix and level.len > 0:

+ 2 - 2
tests/test3.nim

@@ -372,8 +372,8 @@ suite "Work with Control nodes.":
       - Chart spiderweb_chart:
         call addChartData(
           newChartData(
-            @["one", "two", "three", "four", "five", "six"],
-            @[10, 24, 18, 32, 4, 16], "myData", current_theme~accent_dark, RADAR_CHART))
+            @["one", "two", "three", "four", "five"],
+            @[10, 24, 18, 32, 4], "myData", current_theme~accent_dark, RADAR_CHART))
 
         call move(700, 450)
         call resize(128, 128)