examples/times_table: V 0.0.8 fixes
parent
a439faf605
commit
941c069256
|
@ -2,24 +2,23 @@ import ui
|
||||||
import gx
|
import gx
|
||||||
|
|
||||||
const (
|
const (
|
||||||
WIN_SIZE = 540
|
WinSize = 540
|
||||||
MIN = 1
|
Min = 1
|
||||||
MAX = 9
|
Max = 9
|
||||||
FONT_SIZE = 30
|
FontSize = 30
|
||||||
N = MAX - MIN + 1
|
N = Max - Min + 1
|
||||||
CELL_SIZE = WIN_SIZE / N
|
CellSize = WinSize / N
|
||||||
TEXT_CFG = gx.TextCfg { color: gx.BLACK, size: FONT_SIZE }
|
TextCfg = gx.TextCfg { color: gx.BLACK, size: FontSize }
|
||||||
HEADER_COLOR = gx.rgb(240, 240, 240)
|
HeaderColor = gx.rgb(240, 240, 240)
|
||||||
)
|
)
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
cfg := ui.WinCfg {
|
ui.new_window(ui.WinCfg {
|
||||||
width: WIN_SIZE
|
width: WinSize
|
||||||
height: WIN_SIZE
|
height: WinSize
|
||||||
title: 'Times Table'
|
title: 'Times Table'
|
||||||
draw_fn: draw
|
draw_fn: draw
|
||||||
}
|
})
|
||||||
wnd := ui.new_window(cfg)
|
|
||||||
for {
|
for {
|
||||||
ui.wait_events()
|
ui.wait_events()
|
||||||
}
|
}
|
||||||
|
@ -27,29 +26,29 @@ fn main() {
|
||||||
|
|
||||||
// ui.Window uses native drawing API (Core Graphics, GDI+)
|
// ui.Window uses native drawing API (Core Graphics, GDI+)
|
||||||
fn draw() {
|
fn draw() {
|
||||||
gx.draw_rect(0, 0, WIN_SIZE, CELL_SIZE, HEADER_COLOR) // Horizontal header
|
ui.draw_rect(0, 0, WinSize, CellSize, HeaderColor)// Horizontal header
|
||||||
gx.draw_rect(0, 0, CELL_SIZE, WIN_SIZE, HEADER_COLOR) // Vertical header
|
ui.draw_rect(0, 0, CellSize, WinSize, HeaderColor)// Vertical header
|
||||||
for i := MIN; i <= MAX; i++ {
|
for i := Min; i <= Max; i++ {
|
||||||
y := CELL_SIZE * (i - MIN)
|
y := CellSize * (i - Min)
|
||||||
for j := MIN; j <= MAX; j++ {
|
for j := Min; j <= Max; j++ {
|
||||||
// Skip top left corner
|
// Skip top left corner
|
||||||
if i == MIN && j == MIN {
|
if i == Min && j == Min {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
// Draw the result
|
// Draw the result
|
||||||
x := CELL_SIZE * (j - MIN)
|
x := CellSize * (j - Min)
|
||||||
res := i * j
|
res := i * j
|
||||||
mut text_padding_x := (CELL_SIZE - FONT_SIZE) / 2 - 1
|
mut text_padding_x := (CellSize - FontSize) / 2 - 1
|
||||||
text_padding_y := text_padding_x - 3
|
text_padding_y := text_padding_x - 3
|
||||||
if res < 10 {
|
if res < 10 {
|
||||||
text_padding_x += 9
|
text_padding_x += 9
|
||||||
}
|
}
|
||||||
gx.draw_text(x + text_padding_x, y + text_padding_y, res.str(), TEXT_CFG)
|
ui.draw_text(x + text_padding_x, y + text_padding_y, res.str(), TextCfg)
|
||||||
}
|
}
|
||||||
// Horizontal lines
|
// Horizontal lines
|
||||||
gx.draw_line(0, y, WIN_SIZE, y)
|
ui.draw_line(0, y, WinSize, y)
|
||||||
// Vertical lines
|
// Vertical lines
|
||||||
gx.draw_line(y, 0, y, WIN_SIZE)
|
ui.draw_line(y, 0, y, WinSize)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue