Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
750da71d1This file is pinned to the selected release. Download the original to open it in your design tool.
// screen_test_msgbox.c
#include "gui.h"
#include "config.h"
#pragma pack(push)
#pragma pack(1)
typedef struct
{
window_frame_t frame;
window_text_t tst;
window_text_t back;
window_text_t tst_ok;
window_text_t tst_okcancel;
window_text_t tst_abortretryignore;
window_text_t tst_yesnocancel;
window_text_t tst_yesno;
window_text_t tst_retrycancel;
window_text_t tst_ico_custom;
window_text_t tst_ico_error;
window_text_t tst_ico_question;
window_text_t tst_ico_warning;
window_text_t tst_ico_info;
} screen_test_msgbox_data_t;
#pragma pack(pop)
#define pd ((screen_test_msgbox_data_t*)screen->pdata)
const char* test_text = "Hi, this is your Original Prusa Buddy printer. I would like to guide you through the setup process?";
void screen_test_msgbox_init(screen_t* screen)
{
int16_t id;
int16_t id0 = window_create_ptr(WINDOW_CLS_FRAME, -1, rect_ui16(0, 0, 0, 0), &(pd->frame));
id = window_create_ptr(WINDOW_CLS_TEXT, id0, rect_ui16(10, 32, 220, 22), &(pd->tst));
window_set_text(id, (const char*)"TEST MSGBOX");
id = window_create_ptr(WINDOW_CLS_TEXT, id0, rect_ui16(10, 54, 220, 22), &(pd->back));
window_set_text(id, (const char*)"back");
window_enable(id);
window_set_tag(id, MSGBOX_BTN_MAX + 2);
id = window_create_ptr(WINDOW_CLS_TEXT, id0, rect_ui16(10, 76, 220, 22), &(pd->tst_ok));
window_set_text(id, (const char*)"OK");
window_enable(id);
window_set_tag(id, MSGBOX_BTN_OK + 1);
id = window_create_ptr(WINDOW_CLS_TEXT, id0, rect_ui16(10, 98, 220, 22), &(pd->tst_okcancel));
window_set_text(id, (const char*)"OK-CANCEL");
window_enable(id);
window_set_tag(id, MSGBOX_BTN_OKCANCEL + 1);
id = window_create_ptr(WINDOW_CLS_TEXT, id0, rect_ui16(10, 120, 220, 22), &(pd->tst_abortretryignore));
window_set_text(id, (const char*)"ABORT-RETRY-IGNORE");
window_enable(id);
window_set_tag(id, MSGBOX_BTN_ABORTRETRYIGNORE + 1);
id = window_create_ptr(WINDOW_CLS_TEXT, id0, rect_ui16(10, 142, 220, 22), &(pd->tst_yesnocancel));
window_set_text(id, (const char*)"YES-NO-CANCEL");
window_enable(id);
window_set_tag(id, MSGBOX_BTN_YESNOCANCEL + 1);
id = window_create_ptr(WINDOW_CLS_TEXT, id0, rect_ui16(10, 164, 220, 22), &(pd->tst_yesno));
window_set_text(id, (const char*)"YES-NO");
window_enable(id);
window_set_tag(id, MSGBOX_BTN_YESNO + 1);
id = window_create_ptr(WINDOW_CLS_TEXT, id0, rect_ui16(10, 186, 220, 22), &(pd->tst_retrycancel));
window_set_text(id, (const char*)"RETRY-CANCEL");
window_enable(id);
window_set_tag(id, MSGBOX_BTN_RETRYCANCEL + 1);
id = window_create_ptr(WINDOW_CLS_TEXT, id0, rect_ui16(20, 208, 90, 22), &(pd->tst_ico_custom));
window_set_text(id, (const char*)"CUSTOM");
window_enable(id);
window_set_tag(id, MSGBOX_BTN_MAX + 3);
id = window_create_ptr(WINDOW_CLS_TEXT, id0, rect_ui16(20, 230, 90, 22), &(pd->tst_ico_error));
window_set_text(id, (const char*)"ERROR");
window_enable(id);
window_set_tag(id, MSGBOX_BTN_MAX + 4);
id = window_create_ptr(WINDOW_CLS_TEXT, id0, rect_ui16(110, 208, 90, 22), &(pd->tst_ico_question));
window_set_text(id, (const char*)"QUESTION");
window_enable(id);
window_set_tag(id, MSGBOX_BTN_MAX + 5);
id = window_create_ptr(WINDOW_CLS_TEXT, id0, rect_ui16(110, 230, 90, 22), &(pd->tst_ico_warning));
window_set_text(id, (const char*)"WARNING");
window_enable(id);
window_set_tag(id, MSGBOX_BTN_MAX + 6);
}
void screen_test_msgbox_done(screen_t* screen)
{
window_destroy(pd->frame.win.id);
}
void screen_test_msgbox_draw(screen_t* screen)
{
}
int screen_test_msgbox_event(screen_t* screen, window_t* window, uint8_t event, void* param)
{
if (event == WINDOW_EVENT_CLICK)
switch ((int)param) {
case MSGBOX_BTN_MAX + 2:
screen_close();
return 1;
case MSGBOX_BTN_OK + 1:
case MSGBOX_BTN_OKCANCEL + 1:
case MSGBOX_BTN_ABORTRETRYIGNORE + 1:
case MSGBOX_BTN_YESNOCANCEL + 1:
case MSGBOX_BTN_YESNO + 1:
case MSGBOX_BTN_RETRYCANCEL + 1: {
uint16_t btn = ((int)param - 1) & MSGBOX_MSK_BTN;
gui_msgbox(test_text, btn | MSGBOX_ICO_INFO);
} break;
case MSGBOX_BTN_MAX + 3:
case MSGBOX_BTN_MAX + 4:
case MSGBOX_BTN_MAX + 5:
case MSGBOX_BTN_MAX + 6: {
uint16_t ico = (((int)param - (MSGBOX_BTN_MAX + 3)) << MSGBOX_SHI_ICO) & MSGBOX_MSK_ICO;
gui_msgbox(test_text, MSGBOX_BTN_OK | ico);
} break;
}
/* else if (event == WINDOW_EVENT_LOOP)
{
float temp = window_get_value(screen->pd->spin0.window.win.id);
int val = sim_heater_temp2val(temp);
window_set_value(screen->pd->numb0.win.id, val);
}*/
return 0;
}
screen_t screen_test_msgbox = {
0,
0,
screen_test_msgbox_init,
screen_test_msgbox_done,
screen_test_msgbox_draw,
screen_test_msgbox_event,
sizeof(screen_test_msgbox_data_t), //data_size
0, //pdata
};
const screen_t* pscreen_test_msgbox = &screen_test_msgbox;