From 2be373900c4228e9f10e325319bbc2ce97ca4797 Mon Sep 17 00:00:00 2001 From: bsongis Date: Tue, 27 May 2014 08:43:05 +0200 Subject: [PATCH] Wizard confirmation page --- radio/src/lua.cpp | 24 ++++----- radio/wizard/confirm-plane.bmp | Bin 0 -> 394 bytes radio/wizard/confirm-tick.bmp | Bin 0 -> 418 bytes radio/wizard/images/confirm.png | Bin 1099 -> 0 bytes radio/wizard/wizard.lua | 88 ++++++++++++++++++++++++++++---- 5 files changed, 91 insertions(+), 21 deletions(-) create mode 100755 radio/wizard/confirm-plane.bmp create mode 100755 radio/wizard/confirm-tick.bmp delete mode 100644 radio/wizard/images/confirm.png diff --git a/radio/src/lua.cpp b/radio/src/lua.cpp index fe416da41..590c4a283 100644 --- a/radio/src/lua.cpp +++ b/radio/src/lua.cpp @@ -232,16 +232,6 @@ static int luaLcdDrawLine(lua_State *L) return 0; } -static int luaLcdDrawRectangle(lua_State *L) -{ - int x = luaL_checkinteger(L, 1); - int y = luaL_checkinteger(L, 2); - int w = luaL_checkinteger(L, 3); - int h = luaL_checkinteger(L, 4); - lcd_rect(x, y, w, h, 0xff, 0); - return 0; -} - static int luaLcdDrawText(lua_State *L) { int x = luaL_checkinteger(L, 1); @@ -297,7 +287,17 @@ static int luaLcdDrawPixmap(lua_State *L) return 0; } -static int luaLcdDrawRect(lua_State *L) +static int luaLcdDrawRectangle(lua_State *L) +{ + int x = luaL_checkinteger(L, 1); + int y = luaL_checkinteger(L, 2); + int w = luaL_checkinteger(L, 3); + int h = luaL_checkinteger(L, 4); + lcd_rect(x, y, w, h, 0xff, 0); + return 0; +} + +static int luaLcdDrawFilledRectangle(lua_State *L) { int x = luaL_checkinteger(L, 1); int y = luaL_checkinteger(L, 2); @@ -1001,11 +1001,11 @@ static const luaL_Reg lcdLib[] = { { "drawPoint", luaLcdDrawPoint }, { "drawLine", luaLcdDrawLine }, { "drawRectangle", luaLcdDrawRectangle }, + { "drawFilledRectangle", luaLcdDrawFilledRectangle }, { "drawText", luaLcdDrawText }, { "drawNumber", luaLcdDrawNumber }, { "drawSwitch", luaLcdDrawSwitch }, { "drawSource", luaLcdDrawSource }, - { "drawRect", luaLcdDrawRect }, { "drawPixmap", luaLcdDrawPixmap }, { "drawScreenTitle", luaLcdDrawScreenTitle }, { "drawCombobox", luaLcdDrawCombobox }, diff --git a/radio/wizard/confirm-plane.bmp b/radio/wizard/confirm-plane.bmp new file mode 100755 index 0000000000000000000000000000000000000000..225dae79be2903048b832fb5fb1b029dd7209812 GIT binary patch literal 394 zcma)#p$@_@5QhI1LIQ{p7VL7IAk$1^W>5&w=)C|Ii@{9yO^^i13-AzVG6{F>R)*u! z|N8aIwJkR12(IqZkCLfmB8kwK4qPS4*hjqvc(=7uer<%>n#)5n3f4&W{^QMBg_<-n|ab_ fh@JNzkSfz<6{2(#O{~o`gIk6HA$ZY_Wh~SOZ!{x? literal 0 HcmV?d00001 diff --git a/radio/wizard/confirm-tick.bmp b/radio/wizard/confirm-tick.bmp new file mode 100755 index 0000000000000000000000000000000000000000..dfecdb2deecd11364c91b201dc112a3df349c2ac GIT binary patch literal 418 zcmZ?rUBt)$2B&~z4G;@KF(U&DSo{W%6y}Ct0U#TM85sV<5SZiS9#q_a=&MHH4mnY| z*4K>2#>T>FX=!Re%r&zN4{YGG|Py%8)vIqmi_wU~s{{IJ>O$Jbc0W`gg zf)D_5HzU~bf`VW+Sb`D87GMyBvw;d>Y@kY@I*59Z!3Z``15B@=AW#w9OaUkxBp}ED Y5eGX#0Bk+fJ;-bUuwEp0f^32T0Pj&EVgLXD literal 0 HcmV?d00001 diff --git a/radio/wizard/images/confirm.png b/radio/wizard/images/confirm.png deleted file mode 100644 index bb47eeb47bb6286c1f728eb5e785fbd2050117d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1099 zcmeAS@N?(olHy`uVBq!ia0vp^*MQiGg9S)7%0Bo2q?nSt-CY>?t&Hpz19_YU9+AZi z4BWyX%*Zfnjs#GUy~NYkmHi&8l$e3)eBVn<3=GV7JY5_^DsH`UXxz-@XLZ-UPZmu_3zJjZ{>Tt-p0wtXOdw?Ub(~i zk9WlWbd|MAc~^v;S>X6nTKJ;F`jelpeLn9i8&&gqGV|rQm+I@aHKy6W*l)Dv-m{KO z1$QTZp+~MATh9r9a#^CaEp2UU?*om-8T;k7R!y^ezbCX{$5w;STGv)zU9Hhf$3_3L>Z|Zu7xUL}<2vJAEhnWUQ-0cIub^WZr zWRc3N$(u^oO2;0X{YF#4T5i*Q^?P%3RBc{ui3pd}4OKZkzb~aFrSkEq#~d*xJlD*2 z9r^X+ot4(B+uvq{9+~ml>yh5=%$eKNkB5m_8h!Y+{XXaZ-8nM9S4W*Ov0wNwPZm~*1TTGJm)G$dZ@?UgOLw(3dAh9=dhk*N^jhJfJ`pekw@mOjOn!# zHhX+CR~0D;6J8pvsyORE>&;tT$G)@vjTVa2=*%t-;4s}JPi(rq z&iC`WHG3z$wkc{W$Z^ip+w*K{zLL@}tBTS)V)yn&&wV>Xe&yCxF>yQWEdsYa zyX>7hOZY6pW`4aLx$3^u*=F5?KHHxCsI#r_cpJ7&>G->~OCNM>_dJ?DD^?@)ZcW>w z*VFbNdTI6NSnX;4srBz~XkXNBO8P!iVTPCdjuQ_~9aMRmBXlUd(==>~Vhz)NMUG8o zPy5rSeXM%@^Syc0#(SCX_wJhBJ-Mf6MWG(&UiI{=ifiRdF0dUkdB5{0FzYjTy85}S Ib4q9e06b6^I{*Lx diff --git a/radio/wizard/wizard.lua b/radio/wizard/wizard.lua index 6b23c990d..57e7cb1e0 100755 --- a/radio/wizard/wizard.lua +++ b/radio/wizard/wizard.lua @@ -184,7 +184,7 @@ local engineModeItems = {"Yes...", "No"} local function drawEngineMenu() lcd.clear() lcd.drawText(1, 0, "Has your model got an engine?", 0) - lcd.drawRect(0, 0, LCD_W, 8, GREY_DEFAULT+FILL_WHITE) + lcd.drawFilledRectangle(0, 0, LCD_W, 8, GREY_DEFAULT+FILL_WHITE) lcd.drawCombobox(0, 8, LCD_W/2, engineModeItems, engineMode, getFieldFlags(0)) lcd.drawLine(LCD_W/2-1, 18, LCD_W/2-1, LCD_H, DOTTED, 0) if engineMode == 1 then @@ -230,7 +230,7 @@ local aileronsModeItems = {"Yes...", "No", "Yes, 2 channels..."} local function drawAileronsMenu() lcd.clear() lcd.drawText(1, 0, "Has your model got ailerons?", 0) - lcd.drawRect(0, 0, LCD_W, 8, GREY_DEFAULT+FILL_WHITE) + lcd.drawFilledRectangle(0, 0, LCD_W, 8, GREY_DEFAULT+FILL_WHITE) lcd.drawCombobox(0, 8, LCD_W/2, aileronsModeItems, aileronsMode, getFieldFlags(0)) lcd.drawLine(LCD_W/2-1, 18, LCD_W/2-1, LCD_H, DOTTED, 0) if aileronsMode == 2 then @@ -279,7 +279,7 @@ local flapsModeItems = {"No", "Yes...", "Yes, 2 channels..."} local function drawFlapsMenu() lcd.clear() lcd.drawText(1, 0, "Has your model got flaps?", 0) - lcd.drawRect(0, 0, LCD_W, 8, GREY_DEFAULT+FILL_WHITE) + lcd.drawFilledRectangle(0, 0, LCD_W, 8, GREY_DEFAULT+FILL_WHITE) lcd.drawCombobox(0, 8, LCD_W/2, flapsModeItems, flapsMode, getFieldFlags(0)) lcd.drawLine(LCD_W/2-1, 18, LCD_W/2-1, LCD_H, DOTTED, 0) if flapsMode == 0 then @@ -328,7 +328,7 @@ local brakesModeItems = {"No", "Yes...", "Yes, 2 channels..."} local function drawBrakesMenu() lcd.clear() lcd.drawText(1, 0, "Has your model got air brakes?", 0) - lcd.drawRect(0, 0, LCD_W, 8, GREY_DEFAULT+FILL_WHITE) + lcd.drawFilledRectangle(0, 0, LCD_W, 8, GREY_DEFAULT+FILL_WHITE) lcd.drawCombobox(0, 8, LCD_W/2, brakesModeItems, brakesMode, getFieldFlags(0)) lcd.drawLine(LCD_W/2-1, 18, LCD_W/2-1, LCD_H, DOTTED, 0) if brakesMode == 0 then @@ -377,7 +377,7 @@ local tailModeItems = {"Ele(1ch), no Rud...", "Ele(1ch) + Rud...", "Ele(2ch) + R local function drawTailMenu() lcd.clear() lcd.drawText(1, 0, "Which is the tail config on your model?", 0) - lcd.drawRect(0, 0, LCD_W, 8, GREY_DEFAULT+FILL_WHITE) + lcd.drawFilledRectangle(0, 0, LCD_W, 8, GREY_DEFAULT+FILL_WHITE) lcd.drawCombobox(0, 8, LCD_W/2, tailModeItems, tailMode, getFieldFlags(0)) lcd.drawLine(LCD_W/2-1, 18, LCD_W/2-1, LCD_H, DOTTED, 0) lcd.drawText(LCD_W/2-19, LCD_H-8, ">>>", 0); @@ -437,7 +437,7 @@ local function drawServoMenu(limits) lcd.clear() lcd.drawSource(1, 0, SOURCE_FIRST_CH+servoPage, 0) lcd.drawText(25, 0, "servo min/max/center/direction?", 0) - lcd.drawRect(0, 0, LCD_W, 8, GREY_DEFAULT+FILL_WHITE) + lcd.drawFilledRectangle(0, 0, LCD_W, 8, GREY_DEFAULT+FILL_WHITE) lcd.drawLine(LCD_W/2-1, 8, LCD_W/2-1, LCD_H, DOTTED, 0) lcd.drawText(LCD_W/2-19, LCD_H-8, ">>>", 0); lcd.drawPixmap(122, 8, "/TEMPLATES/servo.bmp") @@ -487,11 +487,81 @@ local function applySettings() applyEngineSettings() end +local function nextLine(x, y) + y = y + 8 + if y > 50 then + y = 12 + x = 120 + end + return x, y +end + local function drawConfirmationMenu() + local x = 22 + local y = 12 lcd.clear() - lcd.drawText(2, 10, "Throttle:", 0); - lcd.drawSource(52, 10, SOURCE_FIRST_CH+engineCH1, 0) - lcd.drawText(50, LCD_H-10, "[Enter Long] to confirm", INVERS); + lcd.drawText(48, 1, "Please...", 0); + lcd.drawFilledRectangle(0, 0, LCD_W, 9, 0) + if engineMode == 0 then + lcd.drawText(x, y, "Throttle:", 0); + lcd.drawSource(x+52, y, SOURCE_FIRST_CH+engineCH1, 0) + x, y = nextLine(x, y) + end + if aileronsMode ~= 1 then + lcd.drawText(x, y, "Ailerons:", 0) + lcd.drawSource(x+52, y, SOURCE_FIRST_CH+aileronsCH1, 0) + x, y = nextLine(x, y) + if aileronsMode == 2 then + lcd.drawText(x, y, "Ailerons:", 0) + lcd.drawSource(x+52, y, SOURCE_FIRST_CH+aileronsCH2, 0) + x, y = nextLine(x, y) + end + end + if flapsMode ~= 0 then + lcd.drawText(x, y, "Flaps:", 0) + lcd.drawSource(x+52, y, SOURCE_FIRST_CH+flapsCH1, 0) + x, y = nextLine(x, y) + if flapsMode == 2 then + lcd.drawText(x, y, "Flaps:", 0) + lcd.drawSource(x+52, y, SOURCE_FIRST_CH+flapsCH2, 0) + x, y = nextLine(x, y) + end + end + if brakesMode == 1 then + lcd.drawText(x, y, "Brakes:", 0) + lcd.drawSource(x+52, y, SOURCE_FIRST_CH+brakesCH1, 0) + x, y = nextLine(x, y) + if brakesMode == 2 then + lcd.drawText(x, y, "Brakes:", 0) + lcd.drawSource(x+52, y, SOURCE_FIRST_CH+brakesCH2, 0) + x, y = nextLine(x, y) + end + end + if tailMode == 3 then + lcd.drawText(x, y, "V-Tail:", 0) + lcd.drawSource(x+52, y, SOURCE_FIRST_CH+eleCH1, 0) + x, y = nextLine(x, y) + lcd.drawText(x, y, "V-Tail:", 0) + lcd.drawSource(x+52, y, SOURCE_FIRST_CH+eleCH2, 0) + else + lcd.drawText(x, y, "Elevator:", 0) + lcd.drawSource(x+52, y, SOURCE_FIRST_CH+eleCH1, 0) + x, y = nextLine(x, y) + if tailMode == 1 then + lcd.drawText(x, y, "Rudder:", 0) + lcd.drawSource(x+52, y, SOURCE_FIRST_CH+rudCH1, 0) + else + lcd.drawText(x, y, "Elevator:", 0) + lcd.drawSource(x+52, y, SOURCE_FIRST_CH+eleCH2, 0) + x, y = nextLine(x, y) + lcd.drawText(x, y, "Rudder:", 0) + lcd.drawSource(x+52, y, SOURCE_FIRST_CH+rudCH1, 0) + end + end + lcd.drawText(48, LCD_H-8, "[Enter Long] to confirm", 0); + lcd.drawFilledRectangle(0, LCD_H-9, LCD_W, 9, 0) + lcd.drawPixmap(LCD_W-18, 0, "/TEMPLATES/confirm-tick.bmp") + lcd.drawPixmap(0, LCD_H-17, "/TEMPLATES/confirm-plane.bmp") fieldsMax = 0 end