summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2017-12-23 00:46:33 +0800
committerruki <[email protected]>2017-12-22 22:39:18 +0800
commit8e249fefd8265911fe4fe8ef72e489cbc8e326eb (patch)
tree39c8fa6e7b2bdb74a5bd98d77900849fab739061
parent9e2b084be73bc0b966c2c43f73403703d64b7228 (diff)
import some ui modules
-rw-r--r--tests/ui/hello.lua5
-rw-r--r--xmake/core/sandbox/modules/import/core/ui/desktop.lua26
-rw-r--r--xmake/core/sandbox/modules/import/core/ui/label.lua26
-rw-r--r--xmake/core/sandbox/modules/import/core/ui/menubar.lua26
-rw-r--r--xmake/core/sandbox/modules/import/core/ui/statusbar.lua26
-rw-r--r--xmake/core/ui/label.lua75
6 files changed, 184 insertions, 0 deletions
diff --git a/tests/ui/hello.lua b/tests/ui/hello.lua
index 4d3dcbc84..1691d6aee 100644
--- a/tests/ui/hello.lua
+++ b/tests/ui/hello.lua
@@ -24,7 +24,9 @@
-- imports
import("core.ui.log")
+import("core.ui.rect")
import("core.ui.view")
+import("core.ui.label")
import("core.ui.event")
import("core.ui.application")
@@ -39,6 +41,9 @@ function hello:init()
-- init title
self:menubar():title_set("Menu Bar (Hello)")
+
+ -- add title label
+ self:desktop():insert(label:new("title", rect {0, 1, 20, 2}, "hello xmake!"))
end
-- on event
diff --git a/xmake/core/sandbox/modules/import/core/ui/desktop.lua b/xmake/core/sandbox/modules/import/core/ui/desktop.lua
new file mode 100644
index 000000000..e9d1b3e81
--- /dev/null
+++ b/xmake/core/sandbox/modules/import/core/ui/desktop.lua
@@ -0,0 +1,26 @@
+--!A cross-platform build utility based on Lua
+--
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- Copyright (C) 2015 - 2017, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file desktop.lua
+--
+
+-- return module: desktop
+return require("ui/desktop")
diff --git a/xmake/core/sandbox/modules/import/core/ui/label.lua b/xmake/core/sandbox/modules/import/core/ui/label.lua
new file mode 100644
index 000000000..63631c76b
--- /dev/null
+++ b/xmake/core/sandbox/modules/import/core/ui/label.lua
@@ -0,0 +1,26 @@
+--!A cross-platform build utility based on Lua
+--
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- Copyright (C) 2015 - 2017, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file label.lua
+--
+
+-- return module: label
+return require("ui/label")
diff --git a/xmake/core/sandbox/modules/import/core/ui/menubar.lua b/xmake/core/sandbox/modules/import/core/ui/menubar.lua
new file mode 100644
index 000000000..12134bbd0
--- /dev/null
+++ b/xmake/core/sandbox/modules/import/core/ui/menubar.lua
@@ -0,0 +1,26 @@
+--!A cross-platform build utility based on Lua
+--
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- Copyright (C) 2015 - 2017, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file menubar.lua
+--
+
+-- return module: menubar
+return require("ui/menubar")
diff --git a/xmake/core/sandbox/modules/import/core/ui/statusbar.lua b/xmake/core/sandbox/modules/import/core/ui/statusbar.lua
new file mode 100644
index 000000000..6e5f8d4ae
--- /dev/null
+++ b/xmake/core/sandbox/modules/import/core/ui/statusbar.lua
@@ -0,0 +1,26 @@
+--!A cross-platform build utility based on Lua
+--
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- Copyright (C) 2015 - 2017, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file statusbar.lua
+--
+
+-- return module: statusbar
+return require("ui/statusbar")
diff --git a/xmake/core/ui/label.lua b/xmake/core/ui/label.lua
new file mode 100644
index 000000000..57a287cb5
--- /dev/null
+++ b/xmake/core/ui/label.lua
@@ -0,0 +1,75 @@
+--!A cross-platform build utility based on Lua
+--
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- Copyright (C) 2015 - 2017, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file label.lua
+--
+
+-- load modules
+local log = require("ui/log")
+local view = require("ui/view")
+local curses = require("ui/curses")
+
+-- define module
+local label = label or view()
+
+-- init label
+function label:init(name, bounds, text)
+
+ -- init view
+ view.init(self, name, bounds)
+
+ -- init text
+ self._TEXT = text or ""
+
+ -- init color
+ self:attr_set("color", curses.color_pair("red", "white"))
+end
+
+-- exit label
+function label:exit()
+ view.exit(self)
+end
+
+-- draw view
+function label:draw()
+
+ -- trace
+ log:print("%s: draw ..", self)
+
+ -- draw it
+ local c = self:canvas()
+ local s = string.sub(self:text(), 1, self:width()) .. string.rep(' ', self:width() - #self:text())
+ c:attr(self:attr("color")):move(0, 0):write(s, self:attr("color"))
+end
+
+-- get text
+function label:text()
+ return self._TEXT
+end
+
+-- set text
+function label:text_set(text)
+ self._TEXT = text or ""
+ self:invalidate()
+end
+
+-- return module
+return label