v3.1.9: Logs - Live-Knopf (und Y) springt ans Ende und läuft wieder mit
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
9ac6167953
commit
2f4a2ff8f8
@@ -17,7 +17,7 @@ SOURCES := source
|
|||||||
INCLUDES := source
|
INCLUDES := source
|
||||||
|
|
||||||
# Bei jedem Release erhöhen - das Auto-Update vergleicht diese Nummer
|
# Bei jedem Release erhöhen - das Auto-Update vergleicht diese Nummer
|
||||||
VERSION := 3.1.8
|
VERSION := 3.1.9
|
||||||
|
|
||||||
APP_TITLE := MBMNET
|
APP_TITLE := MBMNET
|
||||||
APP_DESCRIPTION := Dein eigenes 3DS-Netzwerk
|
APP_DESCRIPTION := Dein eigenes 3DS-Netzwerk
|
||||||
|
|||||||
+18
-5
@@ -376,7 +376,9 @@ static bool ask_password(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef struct { float x, y, w, h; } Rect;
|
typedef struct { float x, y, w, h; } Rect;
|
||||||
static const Rect btnFilter = { 8, 204, 100, 30 }, btnReload = { 112, 204, 96, 30 }, btnBack = { 212, 204, 100, 30 };
|
// Knopfleiste unten: Live | Nur Fehler | Neu laden | Zurück
|
||||||
|
static const Rect btnLive = { 6, 204, 74, 30 }, btnFilter = { 84, 204, 76, 30 }, btnReload = { 164, 204, 74, 30 },
|
||||||
|
btnBack = { 242, 204, 72, 30 };
|
||||||
static bool in(Rect r, touchPosition tp) { return tp.px >= r.x && tp.px < r.x + r.w && tp.py >= r.y && tp.py < r.y + r.h; }
|
static bool in(Rect r, touchPosition tp) { return tp.px >= r.x && tp.px < r.x + r.w && tp.py >= r.y && tp.py < r.y + r.h; }
|
||||||
|
|
||||||
bool logview_update(u32 down, u32 repeat, u32 held)
|
bool logview_update(u32 down, u32 repeat, u32 held)
|
||||||
@@ -394,7 +396,9 @@ bool logview_update(u32 down, u32 repeat, u32 held)
|
|||||||
}
|
}
|
||||||
if (down & KEY_A) detail = !detail && lineCount > 0;
|
if (down & KEY_A) detail = !detail && lineCount > 0;
|
||||||
if (down & KEY_X || (down & KEY_TOUCH && in(btnFilter, tp))) { errorsOnly = !errorsOnly; following = true; start_job(JOB_RELOAD); }
|
if (down & KEY_X || (down & KEY_TOUCH && in(btnFilter, tp))) { errorsOnly = !errorsOnly; following = true; start_job(JOB_RELOAD); }
|
||||||
if (down & KEY_Y || (down & KEY_TOUCH && in(btnReload, tp))) { following = true; start_job(JOB_RELOAD); }
|
// Live: ans Ende springen, neu laden und wieder mitlaufen (alle 5 Sekunden neu)
|
||||||
|
if (down & KEY_Y || (down & KEY_TOUCH && in(btnLive, tp))) { following = true; detail = false; start_job(JOB_RELOAD); }
|
||||||
|
if (down & KEY_TOUCH && in(btnReload, tp)) start_job(JOB_RELOAD);
|
||||||
if (down & KEY_R) select_source(srcSel + 1, true);
|
if (down & KEY_R) select_source(srcSel + 1, true);
|
||||||
if (down & KEY_L) select_source(srcSel - 1, true);
|
if (down & KEY_L) select_source(srcSel - 1, true);
|
||||||
// Steuerkreuz (unten): Quellen auf dem unteren Bildschirm
|
// Steuerkreuz (unten): Quellen auf dem unteren Bildschirm
|
||||||
@@ -490,7 +494,15 @@ void logview_draw_top(void)
|
|||||||
static void button(Rect r, const char *label, bool on)
|
static void button(Rect r, const char *label, bool on)
|
||||||
{
|
{
|
||||||
ui_round_rect(r.x, r.y, r.w, r.h, 10, on ? COL_RED : COL_CARD);
|
ui_round_rect(r.x, r.y, r.w, r.h, 10, on ? COL_RED : COL_CARD);
|
||||||
ui_text(label, r.x + r.w / 2, r.y + 8, 0.42f, COL_WHITE, C2D_AlignCenter);
|
ui_text(label, r.x + r.w / 2, r.y + 8, 0.4f, COL_WHITE, C2D_AlignCenter);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void live_button(void)
|
||||||
|
{
|
||||||
|
Rect r = btnLive;
|
||||||
|
ui_round_rect(r.x, r.y, r.w, r.h, 10, following ? C2D_Color32(0x15, 0x80, 0x3D, 0xFF) : COL_CARD);
|
||||||
|
C2D_DrawCircleSolid(r.x + 14, r.y + r.h / 2, 0.5f, 4, following ? COL_WHITE : COL_MUTED);
|
||||||
|
ui_text("Live", r.x + r.w / 2 + 6, r.y + 8, 0.4f, following ? COL_WHITE : COL_MUTED, C2D_AlignCenter);
|
||||||
}
|
}
|
||||||
|
|
||||||
void logview_draw_bottom(void)
|
void logview_draw_bottom(void)
|
||||||
@@ -498,7 +510,7 @@ void logview_draw_bottom(void)
|
|||||||
C2D_DrawRectSolid(0, 0, 0, BOT_W, SCR_H, COL_BG);
|
C2D_DrawRectSolid(0, 0, 0, BOT_W, SCR_H, COL_BG);
|
||||||
C2D_DrawRectSolid(0, 0, 0.5f, BOT_W, 22, COL_BG2);
|
C2D_DrawRectSolid(0, 0, 0.5f, BOT_W, 22, COL_BG2);
|
||||||
ui_text("Quellen", 6, 3, 0.45f, COL_WHITE, 0);
|
ui_text("Quellen", 6, 3, 0.45f, COL_WHITE, 0);
|
||||||
ui_text("Steuerkreuz/L/R wechseln · A Details", BOT_W - 6, 5, 0.34f, COL_MUTED, C2D_AlignRight);
|
ui_text("Steuerkreuz/L/R wechseln · Y Live · A Details", BOT_W - 6, 5, 0.32f, COL_MUTED, C2D_AlignRight);
|
||||||
char line[96];
|
char line[96];
|
||||||
LightLock_Lock(&lock);
|
LightLock_Lock(&lock);
|
||||||
for (int r = 0; r < SRC_ROWS && srcTop + r <= sourceCount; r++) {
|
for (int r = 0; r < SRC_ROWS && srcTop + r <= sourceCount; r++) {
|
||||||
@@ -523,7 +535,8 @@ void logview_draw_bottom(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
LightLock_Unlock(&lock);
|
LightLock_Unlock(&lock);
|
||||||
button(btnFilter, errorsOnly ? "Alle Stufen" : "Nur Fehler", errorsOnly);
|
live_button();
|
||||||
|
button(btnFilter, errorsOnly ? "Alle" : "Nur Fehler", errorsOnly);
|
||||||
button(btnReload, "Neu laden", false);
|
button(btnReload, "Neu laden", false);
|
||||||
button(btnBack, detail ? "Schließen" : "Zurück", false);
|
button(btnBack, detail ? "Schließen" : "Zurück", false);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user