summaryrefslogtreecommitdiff
path: root/xmake/core/ui/view.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2018-01-13 00:37:36 +0800
committerruki <[email protected]>2018-01-12 21:45:36 +0800
commit788f52e46e4333be8522f80cd033eba206fda3ff (patch)
treeac4db1a6452e489f817ae3a37b280840e916b8c9 /xmake/core/ui/view.lua
parentbcb58d536cb131be4358d8893cfd1db77f72d942 (diff)
add resize state
Diffstat (limited to 'xmake/core/ui/view.lua')
-rw-r--r--xmake/core/ui/view.lua36
1 files changed, 30 insertions, 6 deletions
diff --git a/xmake/core/ui/view.lua b/xmake/core/ui/view.lua
index 18b5898f7..70d4149ec 100644
--- a/xmake/core/ui/view.lua
+++ b/xmake/core/ui/view.lua
@@ -64,6 +64,7 @@ function view:init(name, bounds)
state.focused = false -- true if parent is also focused
state.redraw = true -- need redraw
state.refresh = true -- need refresh
+ state.resize = true -- need resize
self._STATE = state
-- init options
@@ -101,6 +102,11 @@ function view:name()
return self._NAME
end
+-- get view bounds
+function view:bounds()
+ return self._BOUNDS
+end
+
-- set window bounds
function view:bounds_set(bounds)
@@ -136,11 +142,6 @@ function view:size()
return self._SIZE
end
--- get view bounds
-function view:bounds()
- return self._BOUNDS
-end
-
-- get the parent view
function view:parent()
return self._PARENT
@@ -215,6 +216,16 @@ function view:refresh()
end
end
+-- resize bounds of inner child views (abstract)
+function view:resize()
+
+ -- trace
+ log:print("%s: resize ..", self)
+
+ -- clear mark
+ self:state_set("resize", false)
+end
+
-- show view?
function view:show(visible)
if self:state("visible") ~= visible then
@@ -224,7 +235,10 @@ function view:show(visible)
end
-- invalidate view to redraw it
-function view:invalidate()
+function view:invalidate(bounds)
+ if bounds then
+ self:_mark_resize()
+ end
self:_mark_redraw()
end
@@ -343,6 +357,16 @@ function view:_limit(value, minval, maxval)
return math.min(maxval, math.max(value, minval))
end
+-- need resize view
+function view:_mark_resize()
+
+ -- trace
+ log:print("%s: mark as resize", self)
+
+ -- need resize it
+ self:state_set("resize", true)
+end
+
-- need redraw view
function view:_mark_redraw()