zhuruiProject/1/lvgl2.ts
2023-08-02 17:23:33 +08:00

1100 lines
37 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Module, { LV_STYLE } from '../lvgl/LVGL';
// 屏幕和控件相比屏幕的flag少了几个
/*flag类*/
export class LVGL_FLAG{
public obj:number
public checkable:boolean = true;
public snappable:boolean = true;
public press_lock:boolean = true;
public gesture_bubble:boolean = true;
public hidden:boolean = false;
public clickable:boolean = false;
public click_focusable:boolean = false;
public event_bubble:boolean = false;
public adv_hittest:boolean = false;
public ignore_layout:boolean = false;
public floating:boolean = false;
public scroll_elastic:boolean = true;
public scroll_momentum:boolean = true;
public scroll_chain:boolean = true;
public scrollable:boolean = false;
public scroll_one:boolean = false;
public scroll_on_focus:boolean = false;
constructor(id:number){
this.obj = id;
}
/**< Make the object hidden. (Like it wasn't there at all)*/
public set Hidden(v:boolean){
this.hidden = v;
if(this.hidden) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_HIDDEN);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_HIDDEN);
}
public get Hidden():{[key:string]:boolean}{
return {"Hidden":this.hidden};
}
/**< Make the object clickable by the input devices*/
public set Clickable(v:boolean){
this.clickable = v;
if(this.clickable) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_CLICKABLE);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_CLICKABLE);
}
public get Clickable():{[key:string]:boolean}{
return {"Clickable":this.clickable};
}
/**< Add focused state to the object when clicked*/
public set Click_Focusable(v:boolean){
this.click_focusable = v;
if(this.click_focusable) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_CLICK_FOCUSABLE);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_CLICK_FOCUSABLE);
}
public get Click_Focusable():{[key:string]:boolean}{
return {"Click_Focusable":this.click_focusable};
}
/**< Toggle checked state when the object is clicked*/
public set Checkable(v:boolean){
this.checkable = v;
if(this.checkable) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_CHECKABLE);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_CHECKABLE);
}
public get Checkable():{[key:string]:boolean}{
return {"Checkable":this.checkable};
}
/**< Make the object scrollable*/
public set Scrollable(v:boolean){
this.scrollable = v;
if(this.scrollable) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_SCROLLABLE);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_SCROLLABLE);
}
public get Scrollable():{[key:string]:boolean}{
return {"Scrollable":this.scrollable};
}
/**< Allow scrolling inside but with slower speed*/
public set Scroll_Elastic(v:boolean){
this.scroll_elastic = v;
if(this.scroll_elastic) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_SCROLL_ELASTIC);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_SCROLL_ELASTIC);
}
public get Scroll_Elastic():{[key:string]:boolean}{
return {"Scroll_Elastic":this.scroll_elastic};
}
/**< Make the object scroll further when "thrown"*/
public set Scroll_Momentum(v:boolean){
this.scroll_momentum = v;
if(this.scroll_momentum) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_SCROLL_MOMENTUM);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_SCROLL_MOMENTUM);
}
public get Scroll_Momentum():{[key:string]:boolean}{
return {"Scroll_Momentum":this.scroll_momentum};
}
/**< Allow scrolling only one snappable children*/
public set Scroll_One(v:boolean){
this.scroll_one = v;
if(this.scroll_one) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_SCROLL_ONE);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_SCROLL_ONE);
}
public get Scroll_One():{[key:string]:boolean}{
return {"Scroll_One":this.scroll_one};
}
/**< Allow propagating the scroll to a parent*/
public set Scroll_Chain(v:boolean){
this.scroll_chain = v;
if(this.scroll_chain) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_SCROLL_CHAIN);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_SCROLL_CHAIN);
}
public get Scroll_Chain():{[key:string]:boolean}{
return {"Scroll_Chain":this.scroll_chain};
}
/**< Automatically scroll object to make it visible when focused*/
public set Scroll_On_Focus(v:boolean){
this.scroll_on_focus = v;
if(this.scroll_on_focus) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_SCROLL_ON_FOCUS);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_SCROLL_ON_FOCUS);
}
public get Scroll_On_Focus():{[key:string]:boolean}{
return {"Scroll_On_Focus":this.scroll_on_focus};
}
/**< If scroll snap is enabled on the parent it can snap to this object*/
public set Snappable(v:boolean){
this.snappable = v;
if(this.snappable) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_SNAPPABLE);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_SNAPPABLE);
}
public get Snappable():{[key:string]:boolean}{
return {"Snappable":this.snappable};
}
/**< Keep the object pressed even if the press slid from the object*/
public set Press_Lock(v:boolean){
this.press_lock = v;
if(this.press_lock) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_PRESS_LOCK);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_PRESS_LOCK);
}
public get Press_Lock():{[key:string]:boolean}{
return {"Press_Lock":this.press_lock};
}
/**< Propagate the events to the parent too*/
public set Event_Bubble(v:boolean){
this.event_bubble = v;
if(this.event_bubble) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_EVENT_BUBBLE);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_EVENT_BUBBLE);
}
public get Event_Bubble():{[key:string]:boolean}{
return {"Event_Bubble":this.event_bubble};
}
/**< Propagate the gestures to the parent*/
public set Gesture_Bubble(v:boolean){
this.gesture_bubble = v;
if(this.gesture_bubble) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_GESTURE_BUBBLE);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_GESTURE_BUBBLE);
}
public get Gesture_Bubble():{[key:string]:boolean}{
return {"Gesture_Bubble":this.gesture_bubble};
}
/**< Allow performing more accurate hit (click) test. E.g. consider rounded corners.*/
public set Adv_Hittest(v:boolean){
this.adv_hittest = v;
if(this.adv_hittest) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_ADV_HITTEST);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_ADV_HITTEST);
}
public get Adv_Hittest():{[key:string]:boolean}{
return {"Adv_Hittest":this.adv_hittest};
}
/**< Make the object position-able by the layouts*/
public set Ignore_Layout(v:boolean){
this.ignore_layout = v;
if(this.ignore_layout) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_IGNORE_LAYOUT);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_IGNORE_LAYOUT);
}
public get Ignore_Layout():{[key:string]:boolean}{
return {"Ignore_Layout":this.ignore_layout};
}
/**< Do not scroll the object when the parent scrolls and ignore layout*/
public set Floating(v:boolean){
this.floating = v;
if(this.floating) Module.lv_obj_add_flag(this.obj,Module.LV_OBJ_FLAG_FLOATING);
else Module.lv_obj_clear_flag(this.obj,Module.LV_OBJ_FLAG_FLOATING);
}
public get Floating():{[key:string]:boolean}{
return {"Floating":this.floating};
}
// public layout_1:boolean = false;
// public layout_2:boolean = false;
// public widget_1:boolean = false;
// public widget_2:boolean = false;
// public user_1:boolean = false;
// public user_2:boolean = false;
// public user_3:boolean = false;
// public user_4:boolean = false;
// LV_OBJ_FLAG_LAYOUT_1 = (1 << 23), /**< Custom flag, free to use by layouts*/
// LV_OBJ_FLAG_LAYOUT_2 = (1 << 24), /**< Custom flag, free to use by layouts*/
// LV_OBJ_FLAG_WIDGET_1 = (1 << 25), /**< Custom flag, free to use by widget*/
// LV_OBJ_FLAG_WIDGET_2 = (1 << 26), /**< Custom flag, free to use by widget*/
// LV_OBJ_FLAG_USER_1 = (1 << 27), /**< Custom flag, free to use by user*/
// LV_OBJ_FLAG_USER_2 = (1 << 28), /**< Custom flag, free to use by user*/
// LV_OBJ_FLAG_USER_3 = (1 << 29), /**< Custom flag, free to use by user*/
// LV_OBJ_FLAG_USER_4 = (1 << 30), /**< Custom flag, free to use by user*/
}
/*state类*/
export class LVGL_STATE{
public obj:number
public focused:boolean = false;
public default:boolean = false;
public checked:boolean = false;
public focus_key:boolean = false;
public edited:boolean = false;
public hovered:boolean = false;
public pressed:boolean = false;
public scrolled:boolean = false;
public disabled:boolean = false;
public user1:boolean = false;
public user2:boolean = false;
public user3:boolean = false;
public user4:boolean = false;
public any:boolean = false;
constructor(id:number){
this.obj = id;
}
public set Focused(v:boolean){
this.focused = v;
if(this.focused) Module.lv_obj_add_state(this.obj,Module.LV_STATE_FOCUSED);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_FOCUSED);
}
public get Focused():{[key:string]:boolean}{
return {"Focused":this.focused};
}
public set Default(v:boolean){
this.default = v;
if(this.default) Module.lv_obj_add_state(this.obj,Module.LV_STATE_DEFAULT);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_DEFAULT);
}
public get Default():{[key:string]:boolean}{
return {"Default":this.default};
}
public set Checked(v:boolean){
this.checked = v;
if(this.checked) Module.lv_obj_add_state(this.obj,Module.LV_STATE_CHECKED);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_CHECKED);
}
public get Checked():{[key:string]:boolean}{
return {"Checked":this.checked};
}
public set Focus_Key(v:boolean){
this.focus_key = v;
if(this.focus_key) Module.lv_obj_add_state(this.obj,Module.LV_STATE_FOCUS_KEY);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_FOCUS_KEY);
}
public get Focus_Key():{[key:string]:boolean}{
return {"Focus_Key":this.focus_key};
}
public set Edited(v:boolean){
this.edited = v;
if(this.edited) Module.lv_obj_add_state(this.obj,Module.LV_STATE_EDITED);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_EDITED);
}
public get Edited():{[key:string]:boolean}{
return {"Edited":this.edited};
}
public set Hovered(v:boolean){
this.hovered = v;
if(this.hovered) Module.lv_obj_add_state(this.obj,Module.LV_STATE_HOVERED);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_HOVERED);
}
public get Hovered():{[key:string]:boolean}{
return {"Hovered":this.hovered};
}
public set Pressed(v:boolean){
this.pressed = v;
if(this.pressed) Module.lv_obj_add_state(this.obj,Module.LV_STATE_HOVERED);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_HOVERED);
}
public get Pressed():{[key:string]:boolean}{
return {"Pressed":this.pressed};
}
public set Scrolled(v:boolean){
this.scrolled = v;
if(this.scrolled) Module.lv_obj_add_state(this.obj,Module.LV_STATE_SCROLLED);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_SCROLLED);
}
public get Scrolled():{[key:string]:boolean}{
return {"Scrolled":this.scrolled};
}
public set Disabled(v:boolean){
this.disabled = v;
if(this.disabled) Module.lv_obj_add_state(this.obj,Module.LV_STATE_DISABLED);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_DISABLED);
}
public get Disabled():{[key:string]:boolean}{
return {"Disabled":this.disabled};
}
public set User_1(v:boolean){
this.user1 = v;
if(this.user1) Module.lv_obj_add_state(this.obj,Module.LV_STATE_USER_1);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_USER_1);
}
public get User_1():{[key:string]:boolean}{
return {"User_1":this.user1};
}
public set User_2(v:boolean){
this.user2 = v;
if(this.user2) Module.lv_obj_add_state(this.obj,Module.LV_STATE_USER_1);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_USER_1);
}
public get User_2():{[key:string]:boolean}{
return {"User_2":this.user2};
}
public set User_3(v:boolean){
this.user3 = v;
if(this.user3) Module.lv_obj_add_state(this.obj,Module.LV_STATE_USER_1);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_USER_1);
}
public get USEUser_3R_3():{[key:string]:boolean}{
return {"User_3":this.user3};
}
public set User_4(v:boolean){
this.user4 = v;
if(this.user4) Module.lv_obj_add_state(this.obj,Module.LV_STATE_USER_1);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_USER_1);
}
public get User_4():{[key:string]:boolean}{
return {"User_4":this.user4};
}
public set Any(v:boolean){
this.any = v;
if(this.any) Module.lv_obj_add_state(this.obj,Module.LV_STATE_ANY);
else Module.lv_obj_clear_state(this.obj,Module.LV_STATE_ANY);
}
public get Any():{[key:string]:boolean}{
return {"Any":this.any};
}
}
/*pos*/
export class LVGL_POS{
public obj:number;
public x:number;
public y:number;
constructor(id:number){
this.obj = id;
this.x = 0;
this.y = 0;
}
public set X(v:number){
this.x = v;
Module.lv_obj_set_size(this.obj,this.x);
}
public get X():{[key:string]:number}{
return {"X:":this.x};
}
public set Y(v:number){
this.y = v;
Module.lv_obj_set_size(this.obj,this.y);
}
public get Y():{[key:string]:number}{
return {"Y:":this.y};
}
public Set_XY(x:number,y:number){
this.x = x;
this.y = y;
Module.lv_obj_set_pos(this.obj,this.x,this.y);
}
public Get_XY():{[key:string]:number}{
return {
"X:":this.x,
"Y:":this.y
};
}
}
/*size*/
export class LVGL_SIZE{
private obj:number;
public width:number;
public height:number;
constructor(id:number){
this.obj = id;
this.height = 100;
this.width = 100;
}
public set Width(v:number){
this.width = v;
Module.lv_obj_set_width(this.obj,this.width);
}
public get Width():{[key:string]:number}{
return {"Width:":this.width};
}
public set Height(v:number){
this.height = v;
Module.lv_obj_set_width(this.obj,this.width);
}
public get Height():{[key:string]:number}{
return {"Width:":this.width};
}
public Set_WH(w:number,h:number){
this.width = w;
this.height = h;
Module.lv_obj_set_width(this.obj,this.width);
}
public Get_WH():{[key:string]:number}{
return {
"Width:":this.width,
"Height:":this.height,
};
}
}
/*布局*/
export class LVGL_FLEX{
public obj:number;
public flex_flow:number;
public flex_align:number;
public main_place:number;
public cross_place:number;
public track_cross_place:number;
public grow:number;
constructor(id:number){
this.obj = id;
Module.lv_flex_init();
}
//弹性布局流动方式
public set Flow(a:number){
this.flex_flow = a;
Module.lv_obj_set_flex_flow(this.obj,this.flex_flow);
}
public get Flow():number{
return this.flex_flow;
}
//弹性布局对齐方式
public setAlign(a1:number,a2:number,a3:number){
this.main_place =a1;
this.cross_place =a2;
this.track_cross_place =a3;
Module.lv_obj_set_flex_align(this.obj,this.main_place,this.cross_place,this.track_cross_place);
}
public get Align():{[key:string]:number}{
return {
"main_place":this.main_place,
"cross_place":this.cross_place,
"track_cross_place":this.cross_place
}
}
//弹性布局伸展程度
public set Grow(a:number){
this.grow = a;
Module.lv_obj_set_flex_grow(this.obj,this.grow);
}
public get Grow():number{
return this.grow;
}
}
/*对齐*/
export class LVGL_ALIGN{
public obj:number;
public base_obj:number;
public align_mode:number;
constructor(id:number){
this.obj = id;
}
public set align(a:number){
this.align_mode = a;
Module.lv_obj_align(this.obj,this.align_mode);
}
public alignTo(a:number,base_id:number){
this.align_mode = a;
this.base_obj = base_id;
Module.lv_obj_align_to(this.obj,this.base_obj,this.align_mode);
}
public Center(){
this.align_mode = 9;
Module.lv_obj_center(this.obj);
}
public get Mode():number{
return this.align_mode;
}
}
/*共有style*/
export class LVGL_STYLE{
public style:number;
// constructor(s:number){
// this.style = s;
// Module.lv_style_init(this.style);
// }
constructor(){
this.style = Module.lv_style_create();
}
public _radius:number;
public set Radius(v:number){
this._radius = v;
Module.lv_style_set_radius(this.style,this._radius);
}
public get Radius():number{
return this._radius;
}
/**background */
public _bg_color:number;
public set BgColor(color:number){
this._bg_color = color;
Module.lv_style_set_bg_color(this.style,Module.lv_color_hex(this._bg_color));
}
public get BgColor():{[key:string]:number}{
return {"bg_color":this._bg_color};
}
public _bg_grad_color:number;
public set BgGradColor(grad_color:number){
this._bg_grad_color = grad_color;
Module.lv_style_set_bg_grad_color(this.style,Module.lv_color_hex(this._bg_grad_color));
}
public get BgGradColor():{[key:string]:number}{
return {"BgGradColor":this._bg_grad_color};
}
public _bg_opa:number;
public set BgOpa(o:number){
if(o<0) this._bg_opa = 0;
else if(o > 255) this._bg_opa = 255;
else this._bg_opa = o;
Module.lv_style_set_bg_opa(this.style,this._bg_opa);
}
public get BgOpa():{[key:string]:number}{
return {"Bg_Opa":this._bg_opa};
}
public _bg_grad_dir:number;
public set BgGradDir(d:number){
if(d == 0){
this._bg_grad_dir = d;
Module.lv_style_set_bg_grad_dir(this.style,Module.LV_GRAD_DIR_NONE);
}else if(d == 1){
this._bg_grad_dir = d;
Module.lv_style_set_bg_grad_dir(this.style,Module.LV_GRAD_DIR_VER);
}else if(d == 2){
this._bg_grad_dir = d;
Module.lv_style_set_bg_grad_dir(this.style,Module.LV_GRAD_DIR_HOR);
}
}
public get BgGradDir():{[key:string]:number}{
if (this._bg_grad_dir == 0) return {"LV_GRAD_DIR_NONE": 0};
else if (this._bg_grad_dir == 1) return {"LV_GRAD_DIR_VER": 1};
else if (this._bg_grad_dir == 2) return {"LV_GRAD_DIR_HOR": 2};
else return {};
}
private _bg_grad_stop:number;
public set bgGradStop(bg_grad_stop:number){
if( bg_grad_stop < 0 ){
this._bg_grad_stop = 0;
Module.lv_style_set_bg_grad_stop(this.style,0);
}else if( bg_grad_stop >255 ){
this._bg_grad_stop = 255;
Module.lv_style_set_bg_grad_stop(this.style,255);
}else{
this._bg_grad_stop = bg_grad_stop;
Module.lv_style_set_bg_grad_stop(this.style,this._bg_grad_stop);
}
}
public get bgGradStop():number{
return this._bg_grad_stop;
}
private _bg_main_stop:number;
public set bgMainStop(bg_main_stop:number){
if( bg_main_stop < 0 ){
this._bg_main_stop = 0;
Module.lv_style_set_bg_main_stop(this.style,0);
}else if( bg_main_stop >255 ){
this._bg_main_stop = 255;
Module.lv_style_set_bg_main_stop(this.style,255);
}else{
this._bg_main_stop = bg_main_stop;
Module.lv_style_set_bg_main_stop(this.style,this._bg_main_stop);
}
}
public get bgMainStop():number{
return this._bg_main_stop;
}
/**background image */
//背景图片透明度
private _bg_img_opa:number;
public set bgImgOpa(bg_img_opa: number){
if(bg_img_opa < 0 ){
this._bg_img_opa = 0;
}else if(bg_img_opa >255){
this._bg_img_opa = 255;
}else{
this._bg_img_opa = bg_img_opa;
}
Module.lv_style_set_bg_img_opa(this.style,this._bg_img_opa);
}
public get bgImgOpa():number{
return this._bg_img_opa;
}
//背景图片着色
private _bg_img_recolor:number;
public set bgImgRecolor(bg_img_recolor:number){
this._bg_img_recolor = bg_img_recolor;
Module.lv_style_set_bg_img_recolor(this.style,Module.lv_color_hex(this._bg_img_recolor));
}
public get bgImgRecolor():number{
return this._bg_img_recolor;
}
//着色透明度
private _bg_img_recolor_opa:number;
public set bgImgRecolorOpa(bg_img_recolor_opa :number ){
if(bg_img_recolor_opa < 0 ){
this._bg_img_recolor_opa = 0;
}else if(bg_img_recolor_opa >255){
this._bg_img_recolor_opa = 255;
}else{
this._bg_img_recolor_opa = bg_img_recolor_opa;
}
Module.lv_style_set_bg_img_recolor_opa(this.style,this._bg_img_recolor_opa);
}
public get bgImgRecolorOpa():number{
return this._bg_img_recolor_opa;
}
//tile
private _bg_img_tile:boolean;
public set bgImgTile(bg_img_tile:boolean){
this._bg_img_tile = bg_img_tile;
Module.lv_style_set_bg_img_tiled(this.style,this._bg_img_tile);
}
public get bgImgTile():boolean{
return this._bg_img_tile;
}
/**border */
//边框颜色
private _border_color: number;
public set borderColor(borderColor:number){
this._border_color = borderColor;
Module.lv_style_set_border_color(this.style,Module.lv_color_hex(this._border_color));
}
public get borderColor():number{
return this._border_color;
}
//边框透明度
private _border_opa : number;
public set borderOpa(border_opa:number) {
if(border_opa < 0){
this._border_opa = 0;
}else if(border_opa > 255){
this._border_opa = 255;
}else{
this._border_opa = border_opa;
}
Module.lv_style_set_border_opa(this.style, this._border_opa);
}
public get borderOpa():number{
return this._border_opa;
}
//边框显示侧
private _border_post:boolean;
public set borderPost(border_post :boolean){
this._border_post = border_post
Module.lv_style_set_border_post(this.style,this._border_post);
}
public get borderPost():boolean{
return this._border_post;
}
//边框显示边
private _border_side : number;
public set borderSide( border_side :number){
this._border_side = border_side;
Module.lv_style_set_border_side(this.style,this._border_side);
}
public get borderSide():{[key:string]:number}{
if(this._border_side == 0x00) return {"LV_BORDER_SIDE_NONE":0x00};
else if(this._border_side == 0x01) return {"LV_BORDER_SIDE_BOTTOM":0x01};
else if(this._border_side == 0x02) return {"LV_BORDER_SIDE_TOP":0x02};
else if(this._border_side == 0x04) return {"LV_BORDER_SIDE_LEFT":0x04};
else if(this._border_side == 0x08) return {"LV_BORDER_SIDE_RIGHT":0x08};
else if(this._border_side == 0x0F) return {"LV_BORDER_SIDE_FULL":0x0F};
else if(this._border_side == 0x10) return {"LV_BORDER_SIDE_INTERNAL":0x10};
else return {};
}
//边框宽度
private _border_width:number;
public set borderWidth(border_width:number){
this._border_width = border_width;
Module.lv_style_set_border_width(this.style,this._border_width);
}
public get borderWidth():number{
return this._border_width;
}
/**outline */
//轮廓颜色
private _outline_color:number;
public set outlineColor(outline_color : number){
this._outline_color = outline_color;
Module.lv_style_set_outline_color(this.style,Module.lv_color_hex(this._outline_color));
}
public get outlineColor():number{
return this._outline_color;
}
//轮廓透明度
private _outline_opa:number;
public set outlineOpa(outline_opa : number){
if(outline_opa < 0){
this._outline_opa = 0;
}else if(outline_opa > 255){
this._outline_opa = 255;
}else{
this._outline_opa = outline_opa;
}
Module.lv_style_set_outline_opa(this.style, this._outline_opa)
}
public get outlineOpa():number{
return this._outline_opa;
}
//轮廓宽度
private _outline_width:number;
public set outlineWidth(outline_width :number){
this._outline_width = outline_width;
Module.lv_style_set_outline_width(this.style,this._outline_width);
}
public get outlineWidth():number{
return this._outline_width;
}
//轮廓与边框的距离
private _outline_pad:number;
public set outlinePad(outline_pad :number){
this._outline_pad = outline_pad;
Module.lv_style_set_outline_pad(this.style,outline_pad);
}
public get outlinePad():number{
return this._outline_pad;
}
/**shadow */
//阴影颜色
private _shadow_color:number;
public set shadowColor(shadow_color : number){
this._shadow_color = shadow_color;
Module.lv_style_set_shadow_color(this.style,Module.lv_color_hex(this._shadow_color));
}
public get shadowColor():number{
return this._shadow_color;
}
//阴影透明度
private _shadow_opa:number;
public set shadowOpa(shadow_opa : number){
if(shadow_opa < 0){
this._shadow_opa = 0;
}else if(shadow_opa > 255){
this._shadow_opa = 255;
}else{
this._shadow_opa = shadow_opa;
}
Module.lv_style_set_shadow_opa(this.style, this._shadow_opa)
}
public get shadowOpa():number{
return this._shadow_opa;
}
//阴影水平偏移
private _shadow_ofs_x:number;
public set shadowOfsX(shadow_ofs_x:number){
this._shadow_ofs_x = shadow_ofs_x;
Module.lv_style_set_shadow_ofs_x(this.style,this._shadow_ofs_x);
}
public get shadowOfsX():number{
return this._shadow_ofs_x;
}
//阴影垂直偏移
private _shadow_ofs_y:number;
public set shadowOfsY(shadow_ofs_y:number){
this._shadow_ofs_y = shadow_ofs_y;
Module.lv_style_set_shadow_ofs_y(this.style,this._shadow_ofs_y);
}
public get shadowOfsY():number{
return this._shadow_ofs_y;
}
//阴影扩散宽度
private _shadow_spread:number;
public set shadowSpread(shadow_spread:number){
this._shadow_spread = shadow_spread;;
Module.lv_style_set_shadow_spread(this.style,this._shadow_spread);
}
public get shadowSpread(){
return this._shadow_spread;
}
//阴影宽度
private _shadow_width:number;
public set shadowWidth(shadow_width:number){
this._shadow_width = shadow_width;
Module.lv_style_set_shadow_width(this.style,this._shadow_width);
}
public get shadowWidth(){
return this._shadow_width;
}
/**blend */
//混合模式
private _blend_mode:number;
public set blendMode(blend_mode : number){
this._blend_mode = blend_mode;
Module.lv_style_set_blend_mode(this.style,this._blend_mode);
}
public get blendMode():{[key:string]:number}{
if(this._blend_mode == 0) return {["LV_BLEND_MODE_NORMAL"]:0};
else if(this._blend_mode == 1) return {["LV_BLEND_MODE_ADDITIVE"]:0};
else if(this._blend_mode == 2) return {["LV_BLEND_MODE_SUBTRACTIVE"]:0};
return {};
}
//混合透明度
private _blend_opa:number;
public set blendOpa(o:number){
if(o<0) this._blend_opa = 0;
else if(o>255) this._blend_opa = 255;
else this._blend_opa = o;
Module.lv_style_set_bg_opa(this.style,this._blend_opa);
Module.lv_style_set_bg_img_opa(this.style,this._blend_opa);
Module.lv_style_set_border_opa(this.style,this._blend_opa);
Module.lv_style_set_outline_opa(this.style,this._blend_opa);
Module.lv_style_set_shadow_opa(this.style,this._blend_opa);
}
public get blendOpa():number{
return this._blend_opa;
}
/**padding */
//上方内边距
private _pad_top:number;
public set padTop(pad_top:number){
this._pad_top = pad_top;
Module.lv_style_set_pad_top(this.style,this._pad_top);
}
public get padTop():number{
return this._pad_top;
}
//下方内边距
private _pad_bottom:number;
public set padBottom(pad_bottom:number){
this._pad_bottom = pad_bottom;
Module.lv_style_set_pad_bottom(this.style,this._pad_bottom);
}
public get padBottom():number{
return this._pad_bottom;
}
//左侧内边距
private _pad_left:number;
public set padLeft(pad_left:number){
this._pad_left = pad_left;
Module.lv_style_set_pad_left(this.style,this._pad_left);
}
public get padLeft():number{
return this._pad_left;
}
//右侧内边距
private _pad_right:number;
public set padRight(pad_right:number){
this._pad_right = pad_right;
Module.lv_style_set_pad_right(this.style,this._pad_right);
}
public get padRight():number{
return this._pad_right;
}
//行内边距
private _pad_row:number;
public set padRow(pad_row:number){
this._pad_row = pad_row;
Module.lv_style_set_pad_row(this.style,this._pad_row);
}
public get padRow():number{
return this._pad_row;
}
//列内边距
private _pad_column:number;
public set padColumn(pad_column:number){
this._pad_column = pad_column;
Module.lv_style_set_pad_column(this.style,this._pad_column);
}
public get padColumn():number{
return this._pad_column;
}
}
/*arc的style */
export class LVGL_ARC_STYLE{
}
/*创建基类 */
export class LVGL_OBJ{
public obj :number;
public Flag :LVGL_FLAG;
public State :LVGL_STATE;
public Pos :LVGL_POS;
public Size :LVGL_SIZE;
public Align :LVGL_ALIGN;
public Flex :LVGL_FLEX;
constructor(public parent:number|undefined = Module.lv_scr_act()){
this.obj = Module.lv_obj_create(parent);
this.Flag = new LVGL_FLAG (this.obj);
this.State = new LVGL_STATE (this.obj);
this.Pos = new LVGL_POS (this.obj);
this.Size = new LVGL_SIZE (this.obj);
this.Align = new LVGL_ALIGN (this.obj);
this.Flex = new LVGL_FLEX (this.obj);
}
/**基础对象obj的方法... */
//设置样式
public setStyle(style:LVGL_STYLE,part:number){
Module.lv_obj_add_style(this.obj,style,part);
}
}
/*创建子类*/
export class LVGL_ARC extends LVGL_OBJ{ //error:找不到arc的相关函数
constructor(public parent:number|undefined = Module.lv_scr_act()){
super(parent);
this.obj = Module.lv_arc_create(parent);
}
/**arc特有的方法... */
//设置圆弧的起始终止角度
private _start_angle:number;
private _end_angle:number;
public setStartAngle(a:number){
this._start_angle =a;
Module.lv_arc_set_start_angle(this.obj,this._start_angle);
}
public getStartAngle():{[key:string]:number}{
return {"start_angle":this._start_angle};
}
public setEndAngle(a:number){
this._end_angle =a;
Module.lv_arc_set_start_angle(this.obj,this._end_angle);
}
public getEndAngle():{[key:string]:number}{
return {"end_angle":this._end_angle};
}
public setAngles(a:number,b:number){
this._start_angle = a;
this._end_angle = b;
Module.lv_arc_set_angles(this.obj,this._start_angle,this._end_angle);
}
public getAngles():{[key:string]:number}{
return {
"start_angle":this._start_angle,
"end_angle":this._end_angle
};
}
//设置圆弧背景起始终止角度
private _bg_start_angle:number;
private _bg_end_angle:number;
public setBgStartAngle(a:number){
this._bg_start_angle =a;
Module.lv_arc_set_bg_start_angle(this.obj,this._bg_start_angle);
}
public getBgStartAngle():{[key:string]:number}{
return {"start_angle":this._bg_start_angle};
}
public setBgEndAngle(a:number){
this._bg_end_angle =a;
Module.lv_arc_set_start_angle(this.obj,this._bg_end_angle);
}
public getBgEndAngle():{[key:string]:number}{
return {"bg_end_angle":this._bg_end_angle};
}
public setBgAngles(a:number,b:number){
this._bg_start_angle = a;
this._bg_end_angle = b;
Module.lv_arc_set_bg_angles(this.obj,this._bg_start_angle,this._bg_end_angle);
}
public getBgAngles():{[key:string]:number}{
return {
"bg_start_angle":this._start_angle,
"bg_end_angle":this._end_angle
};
}
//设置圆弧模式
public _mode:number;
public set Mode(m:number){
if(m == 0 || m == 1 || m == 2){
this._mode = m;
Module.lv_arc_set_mode(this.obj,this._mode);
}
}
public get Mode():{[key:string]:number}{
if(this._mode == 0) return { "LV_ARC_MODE_NORMAL":0 };
else if(this._mode == 1) return {"LV_ARC_MODE_SYMMETRICAL":1};
else if(this._mode == 2) return {"LV_ARC_MODE_REVERSE":2};
else return {};
}
//设置圆弧旋转角度
public _rotation:number;
public set Rotation(r:number){
this._rotation = r;
Module.lv_arc_set_rotation(this.obj,this._rotation);
}
public get Rotation():number{
return this._rotation;
}
//设置当前值
private _value:number;
public set Value(n:number){
this._value = n;
Module.lv_arc_set_value(this.obj,this._value);
}
public get Value():number{
return this._value;
}
//设置弧度取值范围
private _min:number;
private _max:number;
public setRange(a:number,b:number){
this._min =a;
this._max = b;
Module.lv_arc_set_range(this.obj,this._min,this._max);
}
public getRange():{[key:string]:number}{
return {
"min_value":this._min,
"max_value":this._max
}
}
}
export class LVGL_BTN extends LVGL_OBJ{
constructor(public parent:number|undefined = Module.lv_scr_act()){
super(parent);
this.obj = Module.lv_btn_create(parent);
}
/**btn特有的方法... */
}
/**示例 */
/*
const btn = new LVGL_BTN();
btn.Flag.Hidden = true;
btn.State.Default = true;
btn.Pos.Set_XY(200,200);
btn.Pos.X = 20;
btn.Size.Set_WH(480,320);
btn.Align.Center();
btn.Align.base_obj = 123;
btn.Align.alignTo(0,btn.Align.base_obj);
btn.Flex.setAlign(1,2,3);
console.log(btn.Flag.Hidden);
console.log(btn.Size.Get_WH());
const btn_style = new LVGL_STYLE();
btn.setStyle(btn_style,Module.LV_PART_MAIN);
.。,,
*/