diff options
| author | ruki <[email protected]> | 2018-01-13 00:37:36 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2018-01-12 21:45:36 +0800 |
| commit | 788f52e46e4333be8522f80cd033eba206fda3ff (patch) | |
| tree | ac4db1a6452e489f817ae3a37b280840e916b8c9 /xmake/core/ui/view.lua | |
| parent | bcb58d536cb131be4358d8893cfd1db77f72d942 (diff) | |
add resize state
Diffstat (limited to 'xmake/core/ui/view.lua')
| -rw-r--r-- | xmake/core/ui/view.lua | 36 |
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() |
