/* * PROJECT: LVGL PC Simulator using Visual Studio * FILE: LVGL.Simulator.cpp * PURPOSE: Implementation for LVGL ported to Windows Desktop * * LICENSE: The MIT License * * DEVELOPER: Mouri_Naruto (Mouri_Naruto AT Outlook.com) */ #include #include "resource.h" #if _MSC_VER >= 1200 // Disable compilation warnings. #pragma warning(push) // nonstandard extension used : bit field types other than int #pragma warning(disable:4214) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable:4244) #endif #include "lvgl/lvgl.h" #include "lv_drivers/win32drv/win32drv.h" extern "C"{ #include "pikascript_entry.h" } #if _MSC_VER >= 1200 // Restore compilation warnings. #pragma warning(pop) #endif #include int main() { lv_init(); if (!lv_win32_init( GetModuleHandleW(NULL), SW_SHOW, 800, 480, LoadIconW(GetModuleHandleW(NULL), MAKEINTRESOURCE(IDI_LVGL)))) { return -1; } lv_win32_add_all_input_devices_to_group(NULL); pikascript_entry(); /* * Demos, benchmarks, and tests. * * Uncomment any one (and only one) of the functions below to run that * item. */ // ---------------------------------- // my freetype application // ---------------------------------- ///*Init freetype library // *Cache max 64 faces and 1 size*/ //lv_freetype_init(64, 1, 0); ///*Create a font*/ //static lv_ft_info_t info; //info.name = "./lvgl/src/extra/libs/freetype/arial.ttf"; //info.weight = 36; //info.style = FT_FONT_STYLE_NORMAL; //lv_ft_font_init(&info); ///*Create style with the new font*/ //static lv_style_t style; //lv_style_init(&style); //lv_style_set_text_font(&style, info.font); ///*Create a label with the new style*/ //lv_obj_t* label = lv_label_create(lv_scr_act()); //lv_obj_add_style(label, &style, 0); //lv_label_set_text(label, "FreeType Arial Test"); // ---------------------------------- // my Win32 filesystem driver application // ---------------------------------- /*::lv_fs_win32_init(); lv_fs_dir_t d; if (lv_fs_dir_open(&d, "/") == LV_FS_RES_OK) { char b[MAX_PATH]; memset(b, 0, MAX_PATH); while (lv_fs_dir_read(&d, b) == LV_FS_RES_OK) { printf("%s\n", b); } lv_fs_dir_close(&d); }*/ // ---------------------------------- // Demos from lv_examples // ---------------------------------- // lv_demo_widgets(); // ok // lv_demo_benchmark(); // lv_demo_keypad_encoder(); // ok // lv_demo_music(); // removed from repository // lv_demo_printer(); // removed from repository // lv_demo_stress(); // ok // ---------------------------------- // LVGL examples // ---------------------------------- /* * There are many examples of individual widgets found under the * lvgl\exampless directory. Here are a few sample test functions. * Look in that directory to find all the rest. */ // lv_ex_get_started_1(); // lv_ex_get_started_2(); // lv_ex_get_started_3(); // lv_example_flex_1(); // lv_example_flex_2(); // lv_example_flex_3(); // lv_example_flex_4(); // lv_example_flex_5(); // lv_example_flex_6(); // ok // lv_example_grid_1(); // lv_example_grid_2(); // lv_example_grid_3(); // lv_example_grid_4(); // lv_example_grid_5(); // lv_example_grid_6(); // lv_port_disp_template(); // lv_port_fs_template(); // lv_port_indev_template(); // lv_example_scroll_1(); // lv_example_scroll_2(); // lv_example_scroll_3(); // lv_example_style_1(); // lv_example_style_2(); // lv_example_style_3(); // lv_example_style_4(); // ok // lv_example_style_6(); // file has no source code // lv_example_style_7(); // lv_example_style_8(); // lv_example_style_9(); // lv_example_style_10(); // lv_example_style_11(); // ok // ---------------------------------- // LVGL widgets examples // ---------------------------------- // lv_example_arc_1(); // lv_example_arc_2(); // lv_example_bar_1(); // ok // lv_example_bar_2(); // lv_example_bar_3(); // lv_example_bar_4(); // lv_example_bar_5(); // lv_example_bar_6(); // issues // lv_example_btn_1(); // lv_example_btn_2(); // lv_example_btn_3(); // lv_example_btnmatrix_1(); // lv_example_btnmatrix_2(); // lv_example_btnmatrix_3(); // lv_example_calendar_1(); // lv_example_canvas_1(); // lv_example_canvas_2(); // lv_example_chart_1(); // ok // lv_example_chart_2(); // ok // lv_example_chart_3(); // ok // lv_example_chart_4(); // ok // lv_example_chart_5(); // ok // lv_example_chart_6(); // ok // lv_example_checkbox_1(); // lv_example_colorwheel_1(); // ok // lv_example_dropdown_1(); // lv_example_dropdown_2(); // lv_example_dropdown_3(); // lv_example_img_1(); // lv_example_img_2(); // lv_example_img_3(); // lv_example_img_4(); // ok // lv_example_imgbtn_1(); // lv_example_keyboard_1(); // ok // lv_example_label_1(); // lv_example_label_2(); // ok // lv_example_led_1(); // lv_example_line_1(); // lv_example_list_1(); // lv_example_meter_1(); // lv_example_meter_2(); // lv_example_meter_3(); // lv_example_meter_4(); // ok // lv_example_msgbox_1(); // lv_example_obj_1(); // ok // lv_example_roller_1(); // lv_example_roller_2(); // ok // lv_example_slider_1(); // ok // lv_example_slider_2(); // issues // lv_example_slider_3(); // issues // lv_example_spinbox_1(); // lv_example_spinner_1(); // ok // lv_example_switch_1(); // ok // lv_example_table_1(); // lv_example_table_2(); // ok // lv_example_tabview_1(); // lv_example_textarea_1(); // ok // lv_example_textarea_2(); // lv_example_textarea_3(); // ok, but not all button have functions // lv_example_tileview_1(); // ok // lv_example_win_1(); // ok // ---------------------------------- // Task handler loop // ---------------------------------- while (!lv_win32_quit_signal) { lv_task_handler(); Sleep(1); } return 0; }