Skip to content

Commit

Permalink
feat: implement about me page
Browse files Browse the repository at this point in the history
  • Loading branch information
Dabolus committed Jul 25, 2022
1 parent 679ee7a commit ca059e2
Show file tree
Hide file tree
Showing 4 changed files with 196 additions and 1 deletion.
137 changes: 137 additions & 0 deletions res/assets/phrases.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,141 @@ const unsigned char projects[] = {0x25, 0x27, 0x24, 0x1F,
// Skills
const unsigned char skills[] = {0x28, 0x20, 0x1E, 0x21, 0x21, 0x28};

// About me - description
const unsigned char about_me_description[67][20] = {
{0x22, 0x2E, 0x00, 0x23, 0x16, 0x22, 0x1A, 0x00, 0x1E, 0x28,
0x00, 0x1C, 0x1E, 0x24, 0x27, 0x1C, 0x1E, 0x24, 0x00, 0x00},
{0x1C, 0x16, 0x27, 0x16, 0x28, 0x29, 0x24, 0x00, 0x16, 0x23,
0x19, 0x00, 0x1E, 0x03, 0x22, 0x00, 0x0B, 0x0D, 0x00, 0x00},
{0x2E, 0x1A, 0x16, 0x27, 0x28, 0x00, 0x24, 0x21, 0x19, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x1E, 0x00, 0x25, 0x2A, 0x29, 0x00, 0x22, 0x2E, 0x00, 0x1D,
0x16, 0x23, 0x19, 0x28, 0x00, 0x24, 0x23, 0x00, 0x00, 0x00},
{0x1D, 0x29, 0x22, 0x21, 0x00, 0x1B, 0x24, 0x27, 0x00, 0x29,
0x1D, 0x1A, 0x00, 0x1B, 0x1E, 0x27, 0x28, 0x29, 0x00, 0x00},
{0x29, 0x1E, 0x22, 0x1A, 0x00, 0x2C, 0x1D, 0x1A, 0x23, 0x00,
0x1E, 0x00, 0x2C, 0x16, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x28, 0x1A, 0x2B, 0x1A, 0x23, 0x00, 0x2E, 0x1A, 0x16, 0x27,
0x28, 0x00, 0x24, 0x21, 0x19, 0x00, 0x29, 0x24, 0x00, 0x00},
{0x1D, 0x1A, 0x21, 0x25, 0x00, 0x22, 0x2E, 0x00, 0x1B, 0x16,
0x29, 0x1D, 0x1A, 0x27, 0x06, 0x00, 0x16, 0x23, 0x19, 0x00},
{0x1E, 0x03, 0x2B, 0x1A, 0x00, 0x23, 0x1A, 0x2B, 0x1A, 0x27,
0x00, 0x28, 0x29, 0x24, 0x25, 0x25, 0x1A, 0x19, 0x00, 0x00},
{0x25, 0x21, 0x16, 0x2E, 0x1E, 0x23, 0x1C, 0x00, 0x2C, 0x1E,
0x29, 0x1D, 0x00, 0x1E, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x28, 0x1E, 0x23, 0x18, 0x1A, 0x00, 0x29, 0x1D, 0x1A, 0x23,
0x08, 0x00, 0x29, 0x1D, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x25, 0x16, 0x28, 0x28, 0x1E, 0x24, 0x23, 0x00, 0x1B, 0x24,
0x27, 0x00, 0x2C, 0x1A, 0x17, 0x00, 0x19, 0x1A, 0x2B, 0x00},
{0x1E, 0x23, 0x1B, 0x21, 0x2A, 0x1A, 0x23, 0x18, 0x1A, 0x19,
0x00, 0x17, 0x24, 0x29, 0x1D, 0x00, 0x22, 0x2E, 0x00, 0x00},
{0x2C, 0x24, 0x27, 0x20, 0x00, 0x16, 0x23, 0x19, 0x00, 0x28,
0x29, 0x2A, 0x19, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x18, 0x1D, 0x24, 0x1E, 0x18, 0x1A, 0x28, 0x00, 0x16, 0x23,
0x19, 0x00, 0x17, 0x27, 0x24, 0x2A, 0x1C, 0x1D, 0x29, 0x00},
{0x22, 0x1A, 0x00, 0x29, 0x24, 0x00, 0x1C, 0x16, 0x1E, 0x23,
0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x28, 0x18, 0x1D, 0x24, 0x21, 0x16, 0x27, 0x28, 0x1D, 0x1E,
0x25, 0x00, 0x1B, 0x27, 0x24, 0x22, 0x00, 0x00, 0x00, 0x00},
{0x1C, 0x24, 0x24, 0x1C, 0x21, 0x1A, 0x00, 0x16, 0x23, 0x19,
0x00, 0x2A, 0x19, 0x16, 0x18, 0x1E, 0x29, 0x2E, 0x00, 0x00},
{0x29, 0x1D, 0x16, 0x29, 0x00, 0x1C, 0x16, 0x2B, 0x1A, 0x00,
0x22, 0x1A, 0x00, 0x29, 0x1D, 0x1A, 0x00, 0x00, 0x00, 0x00},
{0x18, 0x1D, 0x16, 0x23, 0x18, 0x1A, 0x00, 0x29, 0x24, 0x00,
0x24, 0x17, 0x29, 0x16, 0x1E, 0x23, 0x00, 0x29, 0x1D, 0x1A},
{0x22, 0x24, 0x17, 0x1E, 0x21, 0x1A, 0x00, 0x2C, 0x1A, 0x17,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x28, 0x25, 0x1A, 0x18, 0x1E, 0x16, 0x21, 0x1E, 0x28, 0x29,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x18, 0x1A, 0x27, 0x29, 0x1E, 0x1B, 0x1E, 0x18, 0x16, 0x29,
0x1E, 0x24, 0x23, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x16, 0x29, 0x00, 0x2C, 0x24, 0x27, 0x20, 0x06, 0x00, 0x1E,
0x00, 0x1C, 0x16, 0x1E, 0x23, 0x1A, 0x19, 0x00, 0x16, 0x00},
{0x2B, 0x16, 0x28, 0x29, 0x00, 0x1A, 0x2D, 0x25, 0x1A, 0x27,
0x1E, 0x1A, 0x23, 0x18, 0x1A, 0x00, 0x1E, 0x23, 0x00, 0x00},
{0x1B, 0x27, 0x24, 0x23, 0x29, 0x00, 0x1A, 0x23, 0x19, 0x00,
0x19, 0x1A, 0x2B, 0x00, 0x17, 0x2E, 0x00, 0x00, 0x00, 0x00},
{0x22, 0x1A, 0x16, 0x23, 0x28, 0x00, 0x24, 0x1B, 0x00, 0x21,
0x1E, 0x17, 0x28, 0x00, 0x16, 0x23, 0x19, 0x00, 0x00, 0x00},
{0x1B, 0x27, 0x16, 0x22, 0x1A, 0x2C, 0x24, 0x27, 0x20, 0x28,
0x00, 0x28, 0x2A, 0x18, 0x1D, 0x00, 0x16, 0x28, 0x00, 0x00},
{0x27, 0x1A, 0x16, 0x18, 0x29, 0x00, 0x16, 0x23, 0x19, 0x00,
0x16, 0x23, 0x1C, 0x2A, 0x21, 0x16, 0x27, 0x06, 0x00, 0x00},
{0x16, 0x28, 0x00, 0x2C, 0x1A, 0x21, 0x21, 0x00, 0x16, 0x28,
0x00, 0x2A, 0x28, 0x1E, 0x23, 0x1C, 0x00, 0x00, 0x00, 0x00},
{0x23, 0x16, 0x29, 0x1E, 0x2B, 0x1A, 0x00, 0x29, 0x1A, 0x18,
0x1D, 0x06, 0x00, 0x21, 0x1E, 0x20, 0x1A, 0x00, 0x00, 0x00},
{0x2C, 0x1A, 0x17, 0x00, 0x18, 0x24, 0x22, 0x25, 0x24, 0x23,
0x1A, 0x23, 0x29, 0x28, 0x00, 0x16, 0x23, 0x19, 0x00, 0x00},
{0x28, 0x1A, 0x27, 0x2B, 0x1E, 0x18, 0x1A, 0x00, 0x2C, 0x24,
0x27, 0x20, 0x1A, 0x27, 0x28, 0x08, 0x00, 0x24, 0x23, 0x00},
{0x29, 0x1D, 0x1A, 0x00, 0x17, 0x16, 0x18, 0x20, 0x00, 0x1A,
0x23, 0x19, 0x00, 0x28, 0x1E, 0x19, 0x1A, 0x06, 0x00, 0x1E},
{0x22, 0x16, 0x1E, 0x23, 0x21, 0x2E, 0x00, 0x2A, 0x28, 0x1A,
0x00, 0x23, 0x24, 0x19, 0x1A, 0x08, 0x1F, 0x28, 0x00, 0x00},
{0x16, 0x23, 0x19, 0x00, 0x1C, 0x24, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x24, 0x2A, 0x29, 0x28, 0x1E, 0x19, 0x1A, 0x00, 0x29, 0x1D,
0x1A, 0x00, 0x2C, 0x24, 0x27, 0x20, 0x1E, 0x23, 0x1C, 0x00},
{0x2C, 0x24, 0x27, 0x21, 0x19, 0x06, 0x00, 0x1E, 0x00, 0x21,
0x1E, 0x20, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x19, 0x1A, 0x2B, 0x24, 0x29, 0x1E, 0x23, 0x1C, 0x00, 0x22,
0x2E, 0x28, 0x1A, 0x21, 0x1B, 0x00, 0x29, 0x24, 0x00, 0x00},
{0x22, 0x2A, 0x28, 0x1E, 0x18, 0x08, 0x00, 0x1E, 0x00, 0x21,
0x24, 0x2B, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x25, 0x21, 0x16, 0x2E, 0x1E, 0x23, 0x1C, 0x00, 0x1C, 0x2A,
0x1E, 0x29, 0x16, 0x27, 0x00, 0x16, 0x23, 0x19, 0x00, 0x00},
{0x28, 0x1E, 0x23, 0x1C, 0x1E, 0x23, 0x1C, 0x06, 0x00, 0x17,
0x2A, 0x29, 0x00, 0x1E, 0x00, 0x19, 0x24, 0x00, 0x00, 0x00},
{0x19, 0x16, 0x17, 0x17, 0x21, 0x1A, 0x00, 0x16, 0x21, 0x28,
0x24, 0x00, 0x2C, 0x1E, 0x29, 0x1D, 0x00, 0x00, 0x00, 0x00},
{0x25, 0x1E, 0x16, 0x23, 0x24, 0x00, 0x16, 0x23, 0x19, 0x00,
0x19, 0x27, 0x2A, 0x22, 0x28, 0x08, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x27, 0x1E, 0x1C, 0x1D, 0x29, 0x00, 0x23, 0x24, 0x2C, 0x06,
0x00, 0x1E, 0x03, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x2C, 0x24, 0x27, 0x20, 0x1E, 0x23, 0x1C, 0x00, 0x16, 0x28,
0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x1B, 0x27, 0x24, 0x23, 0x29, 0x1A, 0x23, 0x19, 0x00, 0x1A,
0x23, 0x1C, 0x1E, 0x23, 0x1A, 0x1A, 0x27, 0x00, 0x16, 0x29},
{0x1A, 0x22, 0x25, 0x16, 0x29, 0x1E, 0x18, 0x16, 0x06, 0x00,
0x16, 0x23, 0x00, 0x22, 0x1E, 0x29, 0x00, 0x00, 0x00, 0x00},
{0x28, 0x25, 0x1E, 0x23, 0x07, 0x24, 0x1B, 0x1B, 0x00, 0x18,
0x24, 0x22, 0x25, 0x16, 0x23, 0x2E, 0x00, 0x00, 0x00, 0x00},
{0x17, 0x16, 0x28, 0x1A, 0x19, 0x00, 0x1E, 0x23, 0x00, 0x17,
0x24, 0x28, 0x29, 0x24, 0x23, 0x00, 0x16, 0x23, 0x19, 0x00},
{0x22, 0x1E, 0x21, 0x16, 0x23, 0x00, 0x2C, 0x1E, 0x29, 0x1D,
0x00, 0x22, 0x24, 0x27, 0x1A, 0x00, 0x29, 0x1D, 0x16, 0x23},
{0x0A, 0x09, 0x09, 0x00, 0x1A, 0x22, 0x25, 0x21, 0x24, 0x2E,
0x1A, 0x1A, 0x28, 0x06, 0x00, 0x2C, 0x1D, 0x24, 0x28, 0x1A},
{0x1C, 0x24, 0x16, 0x21, 0x00, 0x1E, 0x28, 0x00, 0x29, 0x24,
0x00, 0x19, 0x1A, 0x28, 0x1E, 0x1C, 0x23, 0x00, 0x00, 0x00},
{0x16, 0x23, 0x19, 0x00, 0x19, 0x1A, 0x2B, 0x1A, 0x21, 0x24,
0x25, 0x00, 0x16, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x28, 0x2E, 0x28, 0x29, 0x1A, 0x22, 0x28, 0x00, 0x29, 0x24,
0x00, 0x22, 0x24, 0x23, 0x1E, 0x29, 0x24, 0x27, 0x00, 0x00},
{0x1D, 0x2A, 0x22, 0x16, 0x23, 0x00, 0x1D, 0x1A, 0x16, 0x21,
0x29, 0x1D, 0x00, 0x29, 0x1D, 0x27, 0x24, 0x2A, 0x1C, 0x1D},
{0x2C, 0x1A, 0x16, 0x27, 0x16, 0x17, 0x21, 0x1A, 0x00, 0x28,
0x1A, 0x23, 0x28, 0x24, 0x27, 0x28, 0x08, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x1E, 0x00, 0x16, 0x21, 0x28, 0x24, 0x00, 0x1D, 0x16, 0x2B,
0x1A, 0x00, 0x16, 0x00, 0x17, 0x2A, 0x23, 0x18, 0x1D, 0x00},
{0x24, 0x1B, 0x00, 0x24, 0x25, 0x1A, 0x23, 0x00, 0x28, 0x24,
0x2A, 0x27, 0x18, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0x25, 0x27, 0x24, 0x1F, 0x1A, 0x18, 0x29, 0x28, 0x06, 0x00,
0x2C, 0x1D, 0x1E, 0x18, 0x1D, 0x00, 0x2E, 0x24, 0x2A, 0x00},
{0x18, 0x16, 0x23, 0x00, 0x18, 0x1D, 0x1A, 0x18, 0x20, 0x00,
0x24, 0x2A, 0x29, 0x00, 0x1E, 0x23, 0x00, 0x29, 0x1D, 0x1A},
{0x25, 0x27, 0x24, 0x1F, 0x1A, 0x18, 0x29, 0x28, 0x00, 0x28,
0x1A, 0x18, 0x29, 0x1E, 0x24, 0x23, 0x08, 0x00, 0x00, 0x00}};

#endif
2 changes: 2 additions & 0 deletions res/assets/phrases.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,6 @@ extern const unsigned char contacts[8];
extern const unsigned char projects[8];
extern const unsigned char skills[6];

extern const unsigned char about_me_description[67][20];

#endif
56 changes: 55 additions & 1 deletion src/pages/about.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,69 @@
#include "handler.h"
#include <gbdk/platform.h>

uint8_t about_me_current_row_index;

void draw_about_me_description_chunk() {
for (uint8_t i = 0; i < DEVICE_SCREEN_HEIGHT - PAGE_HEADER_HEIGHT; ++i) {
set_bkg_tiles(0, i + PAGE_HEADER_HEIGHT, DEVICE_SCREEN_WIDTH, 1,
about_me_description[i + about_me_current_row_index]);
}
}

void handle_about_me_scroll_row_up() {
if (about_me_current_row_index == 0) {
return;
}
--about_me_current_row_index;
draw_about_me_description_chunk();
}

void handle_about_me_scroll_row_down() {
if (about_me_current_row_index == ARRAY_LEN(about_me_description) -
DEVICE_SCREEN_HEIGHT +
PAGE_HEADER_HEIGHT) {
return;
}
++about_me_current_row_index;
draw_about_me_description_chunk();
}

void handle_about_me_scroll_page_down() {
about_me_current_row_index += DEVICE_SCREEN_HEIGHT - PAGE_HEADER_HEIGHT;
if (about_me_current_row_index > ARRAY_LEN(about_me_description) -
DEVICE_SCREEN_HEIGHT +
PAGE_HEADER_HEIGHT) {
about_me_current_row_index = ARRAY_LEN(about_me_description) -
DEVICE_SCREEN_HEIGHT + PAGE_HEADER_HEIGHT;
}
draw_about_me_description_chunk();
}

void about_setup() {
set_bkg_tiles(1, 1, ARRAY_LEN(about_me), 1, about_me);
fillarea(0, 3, DEVICE_SCREEN_WIDTH, 1, 0x33);
fillarea(0, PAGE_HEADER_HEIGHT - 1, DEVICE_SCREEN_WIDTH, 1, 0x33);
about_me_current_row_index = 0;
draw_about_me_description_chunk();
}

void about_loop(uint8_t *current_loop_count, uint8_t keys) {
if (keys & J_B) {
set_page(HOME_MENU);
}

// Allow scrolling by one row by pressing up or down
void (*about_me_scroll_row_up_handler)(void);
about_me_scroll_row_up_handler = &handle_about_me_scroll_row_up;
throttlekey(keys, J_UP, about_me_scroll_row_up_handler);

void (*about_me_scroll_row_down_handler)(void);
about_me_scroll_row_down_handler = &handle_about_me_scroll_row_down;
throttlekey(keys, J_DOWN, about_me_scroll_row_down_handler);

// Allow scrolling by one page by pressing A
void (*about_me_scroll_page_down_handler)(void);
about_me_scroll_page_down_handler = &handle_about_me_scroll_page_down;
throttlekey(keys, J_A, about_me_scroll_page_down_handler);
}

#endif
2 changes: 2 additions & 0 deletions src/pages/handler.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
#ifndef PAGES_HANDLER_H
#define PAGES_HANDLER_H

#define PAGE_HEADER_HEIGHT 4

extern enum Page {
HOME_HEADER,
HOME_MENU,
Expand Down

0 comments on commit ca059e2

Please sign in to comment.