update gui

This commit is contained in:
Jeff Wang 2019-10-07 03:19:26 -04:00
parent f847cd8869
commit b18969fef0
5 changed files with 61 additions and 11 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -19,7 +19,7 @@ ApplicationWindow
Rectangle{ Rectangle{
width: 100 width: 100
height: 25 height: 25
color: "red" color: "#ff9494"
Text {text: "Quit"} Text {text: "Quit"}
MouseArea { MouseArea {
onClicked: Qt.quit() onClicked: Qt.quit()
@ -56,10 +56,21 @@ ApplicationWindow
id: key_key; id: key_key;
width: 100; width: 100;
height: 100; height: 100;
color: "gray" color: getBackgroundColor(parent.objectName, index)
border { width: 1; color: "black" } border { width: 1; color: "black" }
Text { Text {
text: {getText(parent.parent.objectName, index)} horizontalAlignment: Text.AlignHCenter
font.pointSize: 16
color: "gray"
text: {getShiftedText(parent.parent.objectName, index) + "<br><br>"}
textFormat: Text.RichText
anchors.centerIn: parent
}
Text {
horizontalAlignment: Text.AlignHCenter
font.pointSize: 24
text: {"<br>" + getText(parent.parent.objectName, index) + "<br>"}
textFormat: Text.RichText
anchors.centerIn: parent anchors.centerIn: parent
} }
MouseArea { MouseArea {
@ -74,13 +85,37 @@ ApplicationWindow
function getText(row, col) { function getText(row, col) {
var keys = [ var keys = [
["Shift", "x<->y", "+/-", "C"], ["Shift", "x ⇄ y", "±", "←"],
["7", "8", "9", "/"], ["7", "8", "9", "],
["4", "5", "6", "*"], ["4", "5", "6", "×"],
["1", "2", "3", "-"], ["1", "2", "3", "-"],
["0", ".", "Enter", "+"] ["0", ".", "Enter", "+"]
] ]
return keys[row][col] return "<b>" + keys[row][col] + "</b>"
}
function getShiftedText(row, col) {
var shifted_keys = [
["Shift", "1/x", " √<span style=\"text-decoration: overline\">x</span> ", "CL<i>x</i>"],
["y<sup>x</sup> ", "ln(x)", "log(x)", ""],
["", "e<sup>x</sup>", "10<sup>x</sup>", ""],
["", "", "", ""],
["off", "", "", ""]
]
return "<small>" + shifted_keys[row][col] + "</small>"
}
function getBackgroundColor(row, col) {
var background_color = [
["white", "white", "white", "#ff9494"],
["#eeeeee", "#eeeeee", "#eeeeee", "white"],
["#eeeeee", "#eeeeee", "#eeeeee", "white"],
["#eeeeee", "#eeeeee", "#eeeeee", "white"],
["#eeeeee", "#eeeeee", "white", "white"]
]
return background_color[row][col]
} }
} }

View File

@ -16,6 +16,11 @@ void LCD_Clear(void);
void LCD_GoTo(uint8_t row, uint8_t col); void LCD_GoTo(uint8_t row, uint8_t col);
void LCD_OutString(__xdata const char* string, uint8_t max_chars); void LCD_OutString(__xdata const char* string, uint8_t max_chars);
#ifdef DESKTOP
void LCD_OutString_Initial(__xdata const char* string, uint8_t max_chars);
#else
#define LCD_OutString_Initial(a, b) LCD_OutString(a, b)
#endif
short TERMIO_PutChar(unsigned char letter); short TERMIO_PutChar(unsigned char letter);
void LCD_OutNibble(uint8_t x); void LCD_OutNibble(uint8_t x);
void LCD_ClearToEnd(uint8_t curr_row); void LCD_ClearToEnd(uint8_t curr_row);

View File

@ -15,6 +15,8 @@
static uint8_t lcd_row, lcd_col; static uint8_t lcd_row, lcd_col;
static char lcd_buf[MAX_ROWS][MAX_CHARS_PER_LINE]; static char lcd_buf[MAX_ROWS][MAX_CHARS_PER_LINE];
static char enable_checks = 1;
const char* get_lcd_buf(void){ const char* get_lcd_buf(void){
return &lcd_buf[0][0]; return &lcd_buf[0][0];
} }
@ -71,6 +73,12 @@ void LCD_OutString(const char *string, uint8_t max_chars) {
} }
} }
void LCD_OutString_Initial(const char *string, uint8_t max_chars) {
enable_checks = 0;
LCD_OutString(string, max_chars);
enable_checks = 1;
}
static int is_valid_character(char letter){ static int is_valid_character(char letter){
if (isdigit(letter)){ if (isdigit(letter)){
return 1; return 1;
@ -78,6 +86,8 @@ static int is_valid_character(char letter){
return 1; return 1;
} else if(letter == '.' || letter == ' ' || letter == '-'){ } else if(letter == '.' || letter == ' ' || letter == '-'){
return 1; return 1;
} else if(letter == '^'){
return 1;
} }
return 0; return 0;
@ -94,7 +104,7 @@ short TERMIO_PutChar(unsigned char letter) {
} }
} }
//warn if unknown character //warn if unknown character
if (!is_valid_character(letter)) { if (!is_valid_character(letter) && enable_checks) {
printf("\nerror @%d,%d, invalid character %d\n", printf("\nerror @%d,%d, invalid character %d\n",
lcd_row, lcd_col, letter); lcd_row, lcd_col, letter);
} }

View File

@ -208,7 +208,7 @@ int main()
ExpBuf[0] = 0; ExpBuf[0] = 0;
ExpBuf[1] = 0; ExpBuf[1] = 0;
LCD_OutString(VER_STR, 32); LCD_OutString_Initial(VER_STR, 32);
#ifdef DESKTOP #ifdef DESKTOP
LcdAvailable.release(); LcdAvailable.release();
#endif #endif