| 404 | } |
| 405 | |
| 406 | void SettingsScreen::drawLibrary(void) const |
| 407 | { |
| 408 | const std::vector<Row>& rows = mLibraryRows; |
| 409 | if (rows.empty()) { |
| 410 | drawEmptyState(i18n::t("settings.library.empty.title"), i18n::t("settings.library.empty.body")); |
| 411 | } |
| 412 | else { |
| 413 | for (int i = 0; i < VISIBLE_ROWS && contentOffset + i < (int)rows.size(); i++) { |
| 414 | const Row& r = rows[contentOffset + i]; |
| 415 | const int rowY = 30 + i * 34; |
| 416 | drawListRow(rowY, r.primary, r.secondary, r.pip, contentFocus && contentCursor == contentOffset + i, true); |
| 417 | } |
| 418 | drawScrollbar((int)rows.size()); |
| 419 | } |
| 420 | if (!contentFocus) { |
| 421 | drawHints(320, 223, std::string(GLYPH_A) + " " + i18n::t("hint.edit")); |
| 422 | } |
| 423 | else if (rows.empty()) { |
| 424 | drawHints(320, 223, |
| 425 | std::string(GLYPH_A) + " " + i18n::t("hint.add_favorite") + " " + GLYPH_Y + " " + i18n::t("hint.hide") + " " + GLYPH_B + " " + |
| 426 | i18n::t("hint.back")); |
| 427 | } |
| 428 | else { |
| 429 | drawHints(320, 223, |
| 430 | std::string(GLYPH_A) + " " + i18n::t("hint.add_fav") + " " + GLYPH_Y + " " + i18n::t("hint.hide") + " " + GLYPH_X + " " + |
| 431 | i18n::t("hint.remove") + " " + GLYPH_B + " " + i18n::t("hint.back")); |
| 432 | } |
| 433 | } |
| 434 | |
| 435 | void SettingsScreen::drawNetwork(void) const |
| 436 | { |