mirror of
https://codeberg.org/mclemens/ubitxv6.git
synced 2024-09-05 04:44:22 -04:00
Merge pull request #10 from reedbn/text-justification
Text justification
This commit is contained in:
commit
80454612c0
13
nano_gui.cpp
13
nano_gui.cpp
@ -232,7 +232,8 @@ void displayRawText(char *text, int x1, int y1, int w, int color, int background
|
|||||||
tft.print(text);
|
tft.print(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
void displayText(char *text, int x1, int y1, int w, int h, int color, int background, int border) {
|
void displayText(char *text, int x1, int y1, int w, int h, int color, int background, int border, TextJustification_e justification)
|
||||||
|
{
|
||||||
displayFillrect(x1, y1, w ,h, background);
|
displayFillrect(x1, y1, w ,h, background);
|
||||||
displayRect(x1, y1, w ,h, border);
|
displayRect(x1, y1, w ,h, border);
|
||||||
|
|
||||||
@ -241,7 +242,15 @@ void displayText(char *text, int x1, int y1, int w, int h, int color, int backgr
|
|||||||
uint16_t width_out;
|
uint16_t width_out;
|
||||||
uint16_t height_out;
|
uint16_t height_out;
|
||||||
tft.getTextBounds(text,x1,y1,&x1_out,&y1_out,&width_out,&height_out,w);
|
tft.getTextBounds(text,x1,y1,&x1_out,&y1_out,&width_out,&height_out,w);
|
||||||
x1 += (w - ( (int32_t)width_out + (x1_out-x1)))/2;
|
if(TextJustification_e::Center == justification){
|
||||||
|
x1 += (w - ( (int32_t)width_out + (x1_out-x1)))/2;
|
||||||
|
}
|
||||||
|
else if(TextJustification_e::Right == justification){
|
||||||
|
x1 += w - ((int32_t)width_out + (x1_out-x1));
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
x1 += 2;//Give a little bit of padding from the border
|
||||||
|
}
|
||||||
y1 += (ubitx_font->yAdvance + h - ( (int32_t)height_out))/2;
|
y1 += (ubitx_font->yAdvance + h - ( (int32_t)height_out))/2;
|
||||||
displayRawText(text,x1,y1,w,color,background);
|
displayRawText(text,x1,y1,w,color,background);
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,13 @@ struct Point {
|
|||||||
};
|
};
|
||||||
extern struct Point ts_point;
|
extern struct Point ts_point;
|
||||||
|
|
||||||
|
enum TextJustification_e : uint8_t
|
||||||
|
{
|
||||||
|
Left,
|
||||||
|
Right,
|
||||||
|
Center
|
||||||
|
};
|
||||||
|
|
||||||
void displayInit();
|
void displayInit();
|
||||||
void displayClear(unsigned int color);
|
void displayClear(unsigned int color);
|
||||||
void displayPixel(unsigned int x, unsigned int y, unsigned int c);
|
void displayPixel(unsigned int x, unsigned int y, unsigned int c);
|
||||||
@ -15,7 +22,7 @@ void displayVline(unsigned int x, unsigned int y, unsigned int l, unsigned int c
|
|||||||
void displayRect(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c);
|
void displayRect(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c);
|
||||||
void displayFillrect(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c);
|
void displayFillrect(unsigned int x,unsigned int y,unsigned int w,unsigned int h,unsigned int c);
|
||||||
void displayChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg);
|
void displayChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg);
|
||||||
void displayText(char *text, int x1, int y1, int w, int h, int color, int background, int border);
|
void displayText(char *text, int x1, int y1, int w, int h, int color, int background, int border, TextJustification_e justification = TextJustification_e::Center);
|
||||||
|
|
||||||
void formatFreq(uint32_t freq, char* buff, uint16_t buff_size, uint8_t fixed_width = 0);
|
void formatFreq(uint32_t freq, char* buff, uint16_t buff_size, uint8_t fixed_width = 0);
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ void displayDialog(const char* title,
|
|||||||
strncpy_P(b,title,sizeof(b));
|
strncpy_P(b,title,sizeof(b));
|
||||||
displayText(b, LAYOUT_TITLE_X, LAYOUT_TITLE_Y, LAYOUT_TITLE_WIDTH, LAYOUT_TITLE_HEIGHT, COLOR_TEXT, COLOR_TITLE_BACKGROUND, COLOR_ACTIVE_BORDER);
|
displayText(b, LAYOUT_TITLE_X, LAYOUT_TITLE_Y, LAYOUT_TITLE_WIDTH, LAYOUT_TITLE_HEIGHT, COLOR_TEXT, COLOR_TITLE_BACKGROUND, COLOR_ACTIVE_BORDER);
|
||||||
strncpy_P(b,instructions,sizeof(b));
|
strncpy_P(b,instructions,sizeof(b));
|
||||||
displayText(b, LAYOUT_INSTRUCTIONS_TEXT_X, LAYOUT_INSTRUCTIONS_TEXT_Y, LAYOUT_INSTRUCTIONS_TEXT_WIDTH, LAYOUT_INSTRUCTIONS_TEXT_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND);
|
displayText(b, LAYOUT_INSTRUCTIONS_TEXT_X, LAYOUT_INSTRUCTIONS_TEXT_Y, LAYOUT_INSTRUCTIONS_TEXT_WIDTH, LAYOUT_INSTRUCTIONS_TEXT_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND, TextJustification_e::Left);
|
||||||
strncpy_P(b,(const char*)F("Push Tune to Save"),sizeof(b));
|
strncpy_P(b,(const char*)F("Push Tune to Save"),sizeof(b));
|
||||||
displayText(b, LAYOUT_CONFIRM_TEXT_X, LAYOUT_CONFIRM_TEXT_Y, LAYOUT_CONFIRM_TEXT_WIDTH, LAYOUT_CONFIRM_TEXT_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND);
|
displayText(b, LAYOUT_CONFIRM_TEXT_X, LAYOUT_CONFIRM_TEXT_Y, LAYOUT_CONFIRM_TEXT_WIDTH, LAYOUT_CONFIRM_TEXT_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND);
|
||||||
}
|
}
|
||||||
@ -456,11 +456,11 @@ void drawMenu(const MenuItem_t* const items, const uint16_t num_items)
|
|||||||
for(unsigned int i = 1; i < num_items; ++i){
|
for(unsigned int i = 1; i < num_items; ++i){
|
||||||
memcpy_P(&mi,&items[i],sizeof(mi));
|
memcpy_P(&mi,&items[i],sizeof(mi));
|
||||||
strncpy_P(b,mi.ItemName,sizeof(b));
|
strncpy_P(b,mi.ItemName,sizeof(b));
|
||||||
displayText(b, LAYOUT_ITEM_X, LAYOUT_ITEM_Y + (i-1)*LAYOUT_ITEM_PITCH_Y, LAYOUT_ITEM_WIDTH, LAYOUT_ITEM_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_INACTIVE_BORDER);
|
displayText(b, LAYOUT_ITEM_X, LAYOUT_ITEM_Y + (i-1)*LAYOUT_ITEM_PITCH_Y, LAYOUT_ITEM_WIDTH, LAYOUT_ITEM_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_INACTIVE_BORDER, TextJustification_e::Left);
|
||||||
}
|
}
|
||||||
memcpy_P(&mi,&exitMenu,sizeof(mi));
|
memcpy_P(&mi,&exitMenu,sizeof(mi));
|
||||||
strncpy_P(b,mi.ItemName,sizeof(b));
|
strncpy_P(b,mi.ItemName,sizeof(b));
|
||||||
displayText(b, LAYOUT_ITEM_X, LAYOUT_ITEM_Y + (num_items-1)*LAYOUT_ITEM_PITCH_Y, LAYOUT_ITEM_WIDTH, LAYOUT_ITEM_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_INACTIVE_BORDER);
|
displayText(b, LAYOUT_ITEM_X, LAYOUT_ITEM_Y + (num_items-1)*LAYOUT_ITEM_PITCH_Y, LAYOUT_ITEM_WIDTH, LAYOUT_ITEM_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_INACTIVE_BORDER, TextJustification_e::Left);
|
||||||
}
|
}
|
||||||
|
|
||||||
void movePuck(unsigned int old_index, unsigned int new_index)
|
void movePuck(unsigned int old_index, unsigned int new_index)
|
||||||
|
@ -512,13 +512,13 @@ void drawCWStatus(){
|
|||||||
itoa(globalSettings.cwSideToneFreq, c, 10);
|
itoa(globalSettings.cwSideToneFreq, c, 10);
|
||||||
strncat(b, c, sizeof(b) - strlen(b));
|
strncat(b, c, sizeof(b) - strlen(b));
|
||||||
strncat_P(b,(const char*)F("hz"), sizeof(b) - strlen(b));
|
strncat_P(b,(const char*)F("hz"), sizeof(b) - strlen(b));
|
||||||
displayText(b, LAYOUT_CW_TEXT_X, LAYOUT_CW_TEXT_Y, LAYOUT_CW_TEXT_WIDTH, LAYOUT_CW_TEXT_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND);
|
displayText(b, LAYOUT_CW_TEXT_X, LAYOUT_CW_TEXT_Y, LAYOUT_CW_TEXT_WIDTH, LAYOUT_CW_TEXT_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND, TextJustification_e::Left);
|
||||||
}
|
}
|
||||||
|
|
||||||
void drawVersion()
|
void drawVersion()
|
||||||
{
|
{
|
||||||
strncpy_P(b,VERSION_STRING,sizeof(b));
|
strncpy_P(b,VERSION_STRING,sizeof(b));
|
||||||
displayText(b, LAYOUT_VERSION_TEXT_X, LAYOUT_VERSION_TEXT_Y, LAYOUT_VERSION_TEXT_WIDTH, LAYOUT_VERSION_TEXT_HEIGHT, COLOR_VERSION_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND);
|
displayText(b, LAYOUT_VERSION_TEXT_X, LAYOUT_VERSION_TEXT_Y, LAYOUT_VERSION_TEXT_WIDTH, LAYOUT_VERSION_TEXT_HEIGHT, COLOR_VERSION_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND, TextJustification_e::Right);
|
||||||
}
|
}
|
||||||
|
|
||||||
void drawTx(){
|
void drawTx(){
|
||||||
|
Loading…
Reference in New Issue
Block a user