[tekui-devel] tekui: Sudoku example fixed; Border:draw() no longer receives a ...
Timm S. Mueller
tmueller at neoscientists.org
Wed Apr 9 22:00:20 CEST 2008
details: http://hg.teklib.org/tekui/rev/ee9d6b08d933
changeset: 413:ee9d6b08d933
user: Timm S. Mueller <tmueller at neoscientists.org>
date: Wed Apr 09 18:13:29 2008 +0200
description:
Sudoku example fixed; Border:draw() no longer receives a table argument,
Border:getBorder() now returns numbers instead of a table; CheckMark.new()
added, removed TextWidth/Height, added ImageRect, optimized layout/drawing;
added Frame.new(), quicker drawing, adapted to new Border; Slider: adapted to
new Border; Text:layout(): TextRect calculation now independent of changed
Rect
diffs (truncated from 691 to 100 lines):
diff -r c5337aa81c7b -r ee9d6b08d933 tek/app/ui/sudoku.lua
--- a/tek/app/ui/sudoku.lua Wed Apr 09 12:19:12 2008 +0200
+++ b/tek/app/ui/sudoku.lua Wed Apr 09 18:13:29 2008 +0200
@@ -105,10 +105,6 @@ function sudokubutton.init(self)
return ui.text.init(self)
end
-function sudokubutton.new(class, self)
- return ui.Text.new(class, self, sudokubutton.init(self or { }))
-end
-
function sudokubutton:onRelease()
if self.changeable then
local n = self.Label and tonumber(self.Label)
@@ -116,8 +112,7 @@ function sudokubutton:onRelease()
if n >= 10 then
n = nil
end
- self.Label = n and tostring(n)
- self.Redraw = true
+ self:setLabel(n and tostring(n))
self.Application:modify()
end
end
@@ -139,22 +134,19 @@ function sudokubutton:setState()
self.Redraw = true
end
-function sudokubutton:askMinMax()
-
- local m1, m2 = ui.Display:textSize(self.Font, "W")
- m1 = m1 + 1 -- +1 for disabled state
- m2 = m2 + 1 -- +1 for disabled state
-
- local m = self.TextMargin
- local p = self.PaddingAndBorder
- m1 = m1 + m[1] + m[3] + p[1] + p[3]
- m2 = m2 + m[2] + m[4] + p[2] + p[4]
-
- local m3 = self.MaxWidth and max(self.MaxWidth, m1) or nil
- local m4 = self.MaxHeight and max(self.MaxHeight, m2) or nil
-
+function sudokubutton:setupDisplay(display, drawable)
+ if ui.Text.setupDisplay(self, display, drawable) then
+ self.MinWidth = ui.Display:textSize(self.Font, "W")
+ return true
+ end
+end
+
+function sudokubutton:askMinMax(m1, m2, m3, m4)
+ local savelabel = self.Label
+ self.Label = "8"
+ local m1, m2, m3, m4 = ui.Text.askMinMax(self, m1, m2, m3, m4)
+ self.Label = savelabel
return m1, m2, m3, m4
-
end
-------------------------------------------------------------------------------
diff -r c5337aa81c7b -r ee9d6b08d933 tek/class/ui/border.lua
--- a/tek/class/ui/border.lua Wed Apr 09 12:19:12 2008 +0200
+++ b/tek/class/ui/border.lua Wed Apr 09 18:13:29 2008 +0200
@@ -10,13 +10,7 @@ local newregion = ui.Region.new
local newregion = ui.Region.new
module("tek.class.ui.border", tek.class.ui.object)
-_VERSION = "Border 1.5"
-
--------------------------------------------------------------------------------
--- Constants & Class data:
--------------------------------------------------------------------------------
-
-local DEF_BORDER = { 0, 0, 0, 0 }
+_VERSION = "Border 2.0"
-------------------------------------------------------------------------------
-- Class implementation:
@@ -32,15 +26,15 @@ function Border.loadClass(style)
return class or Border
end
-function Border:getBorder(element, border)
- return DEF_BORDER
+function Border:getBorder()
+ return 0, 0, 0, 0
end
function Border:draw()
end
function Border:getRegion(element, border, rect)
- local b1, b2, b3, b4 = unpack(self:getBorder(element, border))
+ local b1, b2, b3, b4 = self:getBorder(element, border)
if b1 > 0 or b2 > 0 or b3 > 0 or b4 > 0 then
local x0, y0, x1, y1 = unpack(rect or element.Rect)
local b = newregion(x0 - b1, y0 - b2, x1 + b3, y1 + b4)
diff -r c5337aa81c7b -r ee9d6b08d933 tek/class/ui/border/blank.lua
--- a/tek/class/ui/border/blank.lua Wed Apr 09 12:19:12 2008 +0200
+++ b/tek/class/ui/border/blank.lua Wed Apr 09 18:13:29 2008 +0200
@@ -9,7 +9,7 @@ local unpack = unpack
More information about the tekui-devel
mailing list