Browse Source

small fix subwindow :eyes:

Ethosa 3 years ago
parent
commit
8a257f6532

+ 1 - 1
src/nodesnim/nodes3d/geometry_instance.nim

@@ -43,7 +43,7 @@ method draw*(self: GeometryInstanceRef, w, h: Glfloat) =
   glRotatef(self.global_rotation.y, 0, 1, 0)
   glRotatef(self.global_rotation.z, 0, 0, 1)
   glScalef(self.scale.x, self.scale.y, self.scale.z)
-  glColor4f(1, 1, 1, 1)
+  glColor4f(1, 1, 1, 0.8)
   glEnable(GL_DEPTH_TEST)
 
   case self.geometry

+ 7 - 1
src/nodesnim/nodescontrol/subwindow.nim

@@ -58,6 +58,11 @@ proc SubWindow*(name: string = "SubWindow"): SubWindowRef =
   result.kind = SUB_WINDOW_NODE
 
 
+method bringToFront*(self: SubWindowRef) {.base.} =
+  let par = self.parent
+  self.parent.removeChild(self)
+  par.addChild(self)
+
 method close*(self: SubWindowRef) {.base.} =
   ## Closes the window. alias of hide() method.
   self.hide()
@@ -167,8 +172,9 @@ method handle*(self: SubWindowRef, event: InputEvent, mouse_on: var NodeRef) =
     else:
       glutSetCursor(GLUT_CURSOR_LEFT_ARROW)
 
-  if event.kind == MOUSE:
+  if event.kind == MOUSE and mouse_on == self:
     if event.pressed:
+      self.bringToFront()
       if left and top:
         self.left_taked = true
         self.top_taked = true

+ 17 - 0
tests/test40.nim

@@ -7,13 +7,30 @@ Window("subwindow ._.")
 var
   main = Scene()
   window = SubWindow()
+  window1 = SubWindow()
+  window2 = SubWindow()
 
 
 main.addChild(window)
+main.addChild(window1)
+main.addChild(window2)
+
 window.move(64, 64)
 window.setIcon("assets/anim/0.jpg")
 window.open()
 
+window1.move(64, 64)
+window1.setIcon("assets/anim/0.jpg")
+window1.setBackgroundColor(Color("#efefef"))
+window1.setTitle("Hello, lol")
+window1.open()
+
+window2.move(64, 64)
+window2.setIcon("assets/anim/0.jpg")
+window2.setBackgroundColor(Color("#212112"))
+window2.setTitle("Aboba")
+window2.open()
+
 
 addMainScene(main)
 windowLaunch()