Ejemplo n.º 1
0
int menu_more() {

    int i = 0;
    menu_index = 0;

    while (aptMainLoop()) {

        hidScanInput();
        u32 kDown = hidKeysDown();

        if (kDown & KEY_DOWN) {
            menu_index++;
            if (menu_index >= menu_count)
                menu_index = 0;
        }

        if (kDown & KEY_UP) {
            menu_index--;
            if (menu_index < 0)
                menu_index = menu_count - 1;
        }

        if (kDown & KEY_A) {
            if (menu_index == 0 && menu_choose() == 0) {
                return 0;
            } else if (menu_index == 1 && menu_netloader() == 0) {
                return 0;
            } else if (menu_index == 2) {
                menu_config();
            } else if (menu_index == 3) {
                reboot();
            } else if (menu_index == 4) {
                poweroff();
            }
        }

        if (kDown & KEY_B) {
            return -1;
        }

        drawBg();
        drawTitle("*** Select an option ***");

        for (i = 0; i < menu_count; i++) {
            drawItem(i == menu_index, 16 * i, menu_item[i]);
        }

        // draw "help"
        switch (menu_index) {
            case 0:
                drawInfo("Browse for a file to boot or add a boot entry");
                break;
            case 1:
                drawInfo("Netload a file (3dsx) from the computer with 3dslink");
                break;
            case 2:
                drawInfo("Edit boot settings");
                break;
            case 3:
                drawInfo("Reboot the 3ds...");
                break;
            case 4:
                drawInfo("Shutdown the 3ds...");
                break;
            default:
                break;
        }

        gfxSwap();
    }
    return -1;
}
Ejemplo n.º 2
0
int menu_more() {

    menu_index = 0;

    while (aptMainLoop()) {

        hidScanInput();
        u32 kDown = hidKeysDown();

        if (kDown & KEY_DOWN) {
            menu_index++;
            if (menu_index >= menu_count)
                menu_index = 0;
        }

        if (kDown & KEY_UP) {
            menu_index--;
            if (menu_index < 0)
                menu_index = menu_count - 1;
        }

        if (kDown & KEY_A) {
            if (menu_index == 0 && menu_choose() == 0) {
                return 0;
            } else if (menu_index == 1 && menu_netloader() == 0) {
                return 0;
            } else if (menu_index == 2) {
                menu_config();
            } else if (menu_index == 3) {
                reboot();
            } else if (menu_index == 4) {
                poweroff();
            }
        }

        if (kDown & KEY_B) {
            return -1;
        }

        gfxClear();
        gfxDrawText(GFX_TOP, GFX_LEFT, &fontDefault, "*** Select an option ***", 140, 20);

        int minX = 16;
        int maxX = 400 - 16;
        int minY = 32;
        int maxY = 240 - 16;
        drawRect(GFX_TOP, GFX_LEFT, minX, minY, maxX, maxY, 0xFF, 0xFF, 0xFF);
        minY += 20;

        int i;
        for (i = 0; i < menu_count; i++) {
            if (i >= menu_count) break;

            if (i == menu_index) {
                gfxDrawRectangle(GFX_TOP, GFX_LEFT, (u8[]) {
                    0xDC, 0xDC, 0xDC
                }, minX + 4, minY + (16 * i), maxX - 23,
                15);
                gfxDrawText(GFX_TOP, GFX_LEFT, &fontSelected, menu_item[i], minX + 6, minY + (16 * i));
            }
            else
                gfxDrawText(GFX_TOP, GFX_LEFT, &fontDefault, menu_item[i], minX + 6, minY + (16 * i));
        }