Skip to content

Commit a3d227f

Browse files
authored
Avoid drawing background color when drawing text
1 parent 70bb460 commit a3d227f

File tree

6 files changed

+71
-58
lines changed

6 files changed

+71
-58
lines changed

ats-mini/About.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ static void drawAboutCommon(uint8_t arrow)
2626
if(arrow & 1) spr.fillTriangle(307, 12, 301, 8, 301, 16, TH.text_muted);
2727

2828
spr.setTextDatum(TL_DATUM);
29-
spr.setTextColor(TH.text_muted, TH.bg);
29+
spr.setTextColor(TH.text_muted);
3030
spr.drawString(RECEIVER_DESC, 0, 0, 4);
31-
spr.setTextColor(TH.text, TH.bg);
31+
spr.setTextColor(TH.text);
3232
spr.drawString(getVersion(), 2, 25, 2);
3333
}
3434

ats-mini/Battery.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ bool drawBattery(int x, int y)
7979
spr.drawLine(x + 30, y + 6, x + 30, y + 9, TH.batt_border);
8080

8181
spr.setTextDatum(TR_DATUM);
82-
spr.setTextColor(TH.batt_voltage, TH.bg);
82+
spr.setTextColor(TH.batt_voltage);
8383

8484
if(switchThemeEditor())
8585
{

ats-mini/Draw.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ bool drawWiFiStatus(const char *statusLine1, const char *statusLine2, int x, int
7676
{
7777
// Draw two lines of network status
7878
spr.setTextDatum(TC_DATUM);
79-
spr.setTextColor(TH.rds_text, TH.bg);
79+
spr.setTextColor(TH.rds_text);
8080
if(statusLine1) spr.drawString(statusLine1, x, y, 2);
8181
if(statusLine2) spr.drawString(statusLine2, x, y+17, 2);
8282
return(true);
@@ -94,7 +94,7 @@ void drawZoomedMenu(const char *text, bool force)
9494

9595
spr.fillSmoothRoundRect(RDS_OFFSET_X - 72 + 1, RDS_OFFSET_Y - 3 + 1, 152, 26, 4, TH.menu_bg);
9696
spr.setTextDatum(TC_DATUM);
97-
spr.setTextColor(TH.menu_item, TH.menu_bg);
97+
spr.setTextColor(TH.menu_item);
9898
spr.drawString(text, RDS_OFFSET_X + 5, RDS_OFFSET_Y, 4);
9999
spr.drawSmoothRoundRect(RDS_OFFSET_X - 72, RDS_OFFSET_Y - 3, 4, 4, 154, 28, TH.menu_border, TH.menu_bg);
100100
}
@@ -116,11 +116,11 @@ void drawMessage(const char *msg)
116116
void drawBandAndMode(const char *band, const char *mode, int x, int y)
117117
{
118118
spr.setTextDatum(TC_DATUM);
119-
spr.setTextColor(TH.band_text, TH.bg);
119+
spr.setTextColor(TH.band_text);
120120
uint16_t band_width = spr.drawString(band, x, y);
121121

122122
spr.setTextDatum(TL_DATUM);
123-
spr.setTextColor(TH.mode_text, TH.bg);
123+
spr.setTextColor(TH.mode_text);
124124
uint16_t mode_width = spr.drawString(mode, x + band_width / 2 + 12, y + 8, 2);
125125

126126
spr.drawSmoothRoundRect(x + band_width / 2 + 7, y + 7, 4, 4, mode_width + 8, 17, TH.mode_border, TH.bg);
@@ -135,7 +135,7 @@ void drawRadioText(int y, int ymax)
135135

136136
// Draw potentially multi-line radio text
137137
spr.setTextDatum(TC_DATUM);
138-
spr.setTextColor(TH.rds_text, TH.bg);
138+
spr.setTextColor(TH.rds_text);
139139
for(; *rt && (y<ymax) ; y+=17, rt+=strlen(rt)+1)
140140
spr.drawString(rt, 160, y, 2);
141141

@@ -191,7 +191,7 @@ void drawFrequency(uint32_t freq, int x, int y, int ux, int uy, uint8_t hl)
191191
hl &= 0x7F;
192192

193193
spr.setTextDatum(MR_DATUM);
194-
spr.setTextColor(TH.freq_text, TH.bg);
194+
spr.setTextColor(TH.freq_text);
195195

196196
if(currentMode==FM)
197197
{
@@ -201,7 +201,7 @@ void drawFrequency(uint32_t freq, int x, int y, int ux, int uy, uint8_t hl)
201201
// FM frequency
202202
spr.drawFloat(freq/100.00, 2, x, y, 7);
203203
spr.setTextDatum(ML_DATUM);
204-
spr.setTextColor(TH.funit_text, TH.bg);
204+
spr.setTextColor(TH.funit_text);
205205
spr.drawString("MHz", ux, uy);
206206
}
207207
else
@@ -229,7 +229,7 @@ void drawFrequency(uint32_t freq, int x, int y, int ux, int uy, uint8_t hl)
229229
}
230230

231231
// SSB/AM frequencies are measured in kHz
232-
spr.setTextColor(TH.funit_text, TH.bg);
232+
spr.setTextColor(TH.funit_text);
233233
spr.drawString("kHz", ux, uy);
234234
}
235235

@@ -259,7 +259,7 @@ void drawScale(uint32_t freq)
259259
spr.drawLine(160, 130, 160, 169, TH.scale_pointer);
260260

261261
spr.setTextDatum(MC_DATUM);
262-
spr.setTextColor(TH.scale_text, TH.bg);
262+
spr.setTextColor(TH.scale_text);
263263

264264
// Extra frequencies to draw outside the screen boundaries
265265
// (ensures frequency numbers don't disappear at the edges)
@@ -344,7 +344,7 @@ void drawStereoIndicator(int x, int y, bool stereo)
344344
void drawStationName(const char *name, int x, int y)
345345
{
346346
spr.setTextDatum(TC_DATUM);
347-
spr.setTextColor(TH.rds_text, TH.bg);
347+
spr.setTextColor(TH.rds_text);
348348
spr.drawString(name, x, y, 4);
349349
}
350350

@@ -354,7 +354,7 @@ void drawStationName(const char *name, int x, int y)
354354
void drawLongStationName(const char *name, int x, int y)
355355
{
356356
int width = spr.textWidth(name, 2);
357-
spr.setTextColor(TH.rds_text, TH.bg);
357+
spr.setTextColor(TH.rds_text);
358358

359359
if((x + width) >= 320)
360360
{

ats-mini/Layout-Default.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ void drawLayoutDefault(const char *statusLine1, const char *statusLine2)
3131
if(switchThemeEditor())
3232
{
3333
spr.setTextDatum(TR_DATUM);
34-
spr.setTextColor(TH.text_warn, TH.bg);
34+
spr.setTextColor(TH.text_warn);
3535
spr.drawString(TH.name, 319, BATT_OFFSET_Y + 17, 2);
3636
}
3737

ats-mini/Layout-SMeter.cpp

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ static void drawSmallScale(uint32_t freq, int y)
5757
spr.fillCircle(scaleStart + (scaleEnd-scaleStart) * (freq - band->minimumFreq) / (band->maximumFreq - band->minimumFreq), y, 3, TH.scale_pointer);
5858

5959
char lim[8];
60-
spr.setTextColor(TH.scale_text, TH.bg);
60+
spr.setTextColor(TH.scale_text);
6161
spr.setTextDatum(MC_DATUM);
6262
if(band->bandType==FM_BAND_TYPE)
6363
sprintf(lim, "%0.2f", band->minimumFreq/100.00);
@@ -87,21 +87,34 @@ static void drawAltStereoIndicator(int x, int y, bool stereo = true)
8787
static void drawLargeSMeter(int rssi, int strength, int x, int y)
8888
{
8989
// S-Meter legend
90-
for(int i=x; i<=x+15*16 + 2; i+=2) spr.drawPixel(i, 28+y, TH.scale_line);
9190
spr.setTextDatum(TC_DATUM);
92-
spr.setTextColor(TH.scale_text, TH.bg);
91+
spr.setTextColor(TH.scale_text);
9392

93+
int last_x = x;
9494
for(int i=0; i<16; i++)
9595
{
9696
if(i%2)
9797
{
98-
if(i < 10) spr.drawNumber(i, x+(i*15)-13, 20+y, 2);
99-
if(i == 11) spr.drawString("+20", x+(i*15)-13, 20+y, 2);
100-
if(i == 13) spr.drawString("+40", x+(i*15)-13, 20+y, 2);
101-
if(i == 15) spr.drawString("+60", x+(i*15)-13, 20+y, 2);
98+
int text_width = 0;
99+
int text_x = x + (i * 15) - 13;
100+
if(i < 10) text_width = spr.drawNumber(i, text_x, 20+y, 2);
101+
if(i == 11) text_width = spr.drawString("+20", text_x, 20+y, 2);
102+
if(i == 13) text_width = spr.drawString("+40", text_x, 20+y, 2);
103+
if(i == 15) text_width = spr.drawString("+60", text_x, 20+y, 2);
104+
105+
// Draw the dotted line from end of previous number to start of current number
106+
for(int px=last_x; px<text_x-text_width/2; px++) {
107+
if(px & 1) spr.drawPixel(px, 28+y, TH.scale_line);
108+
}
109+
last_x = text_x + text_width/2;
102110
}
103111
}
104112

113+
// Draw the remaining dotted line after the last number
114+
for(int px=last_x; px <= x+15*16+2; px++) {
115+
if(px & 1) spr.drawPixel(px, 28+y, TH.scale_line);
116+
}
117+
105118
spr.setTextDatum(BL_DATUM);
106119
spr.drawString("S", x - 10, 36 + y, 2);
107120
spr.setTextDatum(BR_DATUM);
@@ -119,7 +132,7 @@ static void drawLargeSMeter(int rssi, int strength, int x, int y)
119132

120133
static void drawLargeSNMeter(int snr, int x, int y)
121134
{
122-
spr.setTextColor(TH.scale_text, TH.bg);
135+
spr.setTextColor(TH.scale_text);
123136
spr.setTextDatum(BL_DATUM);
124137
spr.drawString("N", x - 10, 12 + y, 2);
125138
spr.setTextDatum(BR_DATUM);
@@ -164,7 +177,7 @@ void drawLayoutSmeter(const char *statusLine1, const char *statusLine2)
164177
if(switchThemeEditor())
165178
{
166179
spr.setTextDatum(TR_DATUM);
167-
spr.setTextColor(TH.text_warn, TH.bg);
180+
spr.setTextColor(TH.text_warn);
168181
spr.drawString(TH.name, 319, BATT_OFFSET_Y + 17, 2);
169182
}
170183

0 commit comments

Comments
 (0)