-
Notifications
You must be signed in to change notification settings - Fork 303
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
f81f21f
commit b5b483d
Showing
6 changed files
with
184 additions
and
79 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
/** | ||
* @file lv_windows_context.c | ||
* | ||
*/ | ||
|
||
/********************* | ||
* INCLUDES | ||
*********************/ | ||
|
||
#include "lv_windows_context.h" | ||
#ifdef LV_USE_WINDOWS | ||
|
||
/********************* | ||
* DEFINES | ||
*********************/ | ||
|
||
/********************** | ||
* TYPEDEFS | ||
**********************/ | ||
|
||
/********************** | ||
* STATIC PROTOTYPES | ||
**********************/ | ||
|
||
/********************** | ||
* STATIC VARIABLES | ||
**********************/ | ||
|
||
/********************** | ||
* MACROS | ||
**********************/ | ||
|
||
/********************** | ||
* GLOBAL FUNCTIONS | ||
**********************/ | ||
|
||
EXTERN_C HWND lv_windows_get_display_window_handle( | ||
lv_display_t* display) | ||
{ | ||
return (HWND)lv_display_get_driver_data(display); | ||
} | ||
|
||
EXTERN_C HWND lv_windows_get_indev_window_handle( | ||
lv_indev_t* indev) | ||
{ | ||
return lv_windows_get_display_window_handle(lv_indev_get_display(indev)); | ||
} | ||
|
||
lv_windows_window_context_t* lv_windows_get_window_context( | ||
HWND window_handle) | ||
{ | ||
return (lv_windows_window_context_t*)( | ||
GetPropW(window_handle, L"LVGL.Window.Context")); | ||
} | ||
|
||
/********************** | ||
* STATIC FUNCTIONS | ||
**********************/ | ||
|
||
#endif // LV_USE_WINDOWS |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
/** | ||
* @file lv_windows_context.h | ||
* | ||
*/ | ||
|
||
#ifndef LV_WINDOWS_CONTEXT_H | ||
#define LV_WINDOWS_CONTEXT_H | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
/********************* | ||
* INCLUDES | ||
*********************/ | ||
|
||
#include "lvgl.h" | ||
#define LV_USE_WINDOWS | ||
|
||
//#include "../../display/lv_display.h" | ||
//#include "../../indev/lv_indev.h" | ||
|
||
#ifdef LV_USE_WINDOWS | ||
|
||
#include <windows.h> | ||
|
||
/********************* | ||
* DEFINES | ||
*********************/ | ||
|
||
/********************** | ||
* TYPEDEFS | ||
**********************/ | ||
|
||
typedef struct _lv_windows_pointer_context_t | ||
{ | ||
lv_indev_state_t state; | ||
lv_point_t point; | ||
lv_indev_t* indev; | ||
} lv_windows_pointer_context_t; | ||
|
||
typedef struct _lv_windows_keypad_queue_item_t | ||
{ | ||
uint32_t key; | ||
lv_indev_state_t state; | ||
} lv_windows_keypad_queue_item_t; | ||
|
||
typedef struct _lv_windows_keypad_context_t | ||
{ | ||
CRITICAL_SECTION mutex; | ||
lv_ll_t queue; | ||
uint16_t utf16_high_surrogate; | ||
uint16_t utf16_low_surrogate; | ||
lv_indev_t* indev; | ||
} lv_windows_keypad_context_t; | ||
|
||
typedef struct _lv_windows_encoder_context_t | ||
{ | ||
lv_indev_state_t state; | ||
int16_t enc_diff; | ||
lv_indev_t* indev; | ||
} lv_windows_encoder_context_t; | ||
|
||
typedef struct _lv_windows_window_context_t | ||
{ | ||
lv_disp_t* display_device_object; | ||
lv_timer_t* display_timer_object; | ||
|
||
int32_t window_dpi; | ||
int32_t zoom_level; | ||
bool allow_dpi_override; | ||
bool simulator_mode; | ||
bool display_resolution_changed; | ||
lv_point_t requested_display_resolution; | ||
|
||
HDC display_framebuffer_context_handle; | ||
uint32_t* display_framebuffer_base; | ||
size_t display_framebuffer_size; | ||
|
||
lv_windows_pointer_context_t pointer; | ||
lv_windows_keypad_context_t keypad; | ||
lv_windows_encoder_context_t encoder; | ||
|
||
} lv_windows_window_context_t; | ||
|
||
/********************** | ||
* GLOBAL PROTOTYPES | ||
**********************/ | ||
|
||
HWND lv_windows_get_display_window_handle( | ||
lv_display_t* display); | ||
|
||
HWND lv_windows_get_indev_window_handle( | ||
lv_indev_t* indev); | ||
|
||
/** | ||
* @brief Get the window context from specific LVGL display window. | ||
* @param window_handle The window handle of specific LVGL display window. | ||
* @return The window context from specific LVGL display window. | ||
* @remark This is a private API which is used for LVGL Windows backend | ||
* implementation. LVGL users shouldn't use that because the | ||
* maintainer doesn't promise the application binary interface | ||
* compatibility for this API. | ||
*/ | ||
lv_windows_window_context_t* lv_windows_get_window_context( | ||
HWND window_handle); | ||
|
||
/********************** | ||
* MACROS | ||
**********************/ | ||
|
||
#endif // LV_USE_WINDOWS | ||
|
||
#ifdef __cplusplus | ||
} /*extern "C"*/ | ||
#endif | ||
|
||
#endif /*LV_WINDOWS_CONTEXT_H*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters