初级控件的创建:
控件分为初级控件和高级控件两种,初级控制分为文本控件、图片控件、进度条控件和按钮控件,高级控件由初级控件组合而成,主要是菜单控件。
文本控件:
创建文本控件:
L_U32 L_GUI_CreatText(L_U32 WindowID, L_CHAR *str, L_U32 len, ts_LPoint point_LeftTop, ts_LPoint point_RightBottom, L_U32 ID, L_U8 mode)
WindowID:所依附的窗口ID
str:初始化时显示的字符串
len:字符串长度
point_LeftTop:控件左上角点,该点是相对于窗口而非整个显示区
point_RightBottom:控件右下角点,该点是相对于窗口而非整个显示区
ID:控件自身ID(唯一)
mode:控件模式,为1时:若控件尺寸小于输入的字符尺寸,自动根据输入字符串大小调整控件尺寸(仅在创建控件时调整)
为2时,根据前面设定的控件位置确定控件尺寸
注意:默认文字在控件中居中显示。
改变控件内的文字:
void L_GUI_ChangeText(L_U32 ID, L_CHAR* str, L_U32 len)
ID:所要改变文字控件的ID
str:所需要更新的字符串
len:字符串长度
调用后自动更新控件。
设置所选中的文字:
void L_GUI_SetSelectText(L_U32 ID, L_U32 s1, L_U32 s2)
字符选中显示
ID:所要改变文字控件的ID
s1:选中起始位置
s2:选中终止位置
注意,选中位置均为字符串内存位置,从第一个字符开始选中,该值为0。不选中默认s1和s2均为0xff。该函数调用后注意调用L_GUI_UpdataControl更新控件。
例程:
#include "L_GUI_def.h"
#define _W1_ 1
#define _T1_ 2
int main()
{
L_GUIStart(0, 0, 0);
//创建一个覆盖整个OSD区的窗口
L_GUI_CreateWindow(720, 576, OSD, L_GUI_POINT(0, 0), L_GUI_POINT(720, 576), _W1_);
L_GUI_RefreshControl(1, L_SH_SHOW);
//创建一个静态文本框,并设置控件在窗口的位置,并根据文字尺寸调整控件大小
L_GUI_CreatText(_W1_, "hello world", L_STRLEN("hello world"), L_GUI_POINT(10, 10), L_GUI_POINT(95, 30), _T1_, 1);
//显示控件
L_GUI_RefreshControl(_T1_, L_SH_SHOW);
//设置文字位置位于控件左上角
L_GUI_SetControlTextPlace(_T1_, L_DT_NON, 0, 0);
//注意:当设置控件尺寸按照不变时,默认文字在控件中居中显示
}
图片控件:
创建图片控件:
L_U32 L_GUI_CreatPicture(L_U32 WindowID, L_U16 Index, ts_LPoint point_LeftTop, ts_LPoint point_RightBottom, L_U32 ID, L_U8 mode)
WindowID:所依附的窗口ID
Index:图片索引,为0时默认不加载任何图片
point_LeftTop:控件左上角点,该点是相对于窗口而非整个显示区
point_RightBottom:控件右下角点,该点是相对于窗口而非整个显示区
ID:控件自身ID(唯一)
mode:控件模式,为1时:自动根据图片大小调整控件尺寸(仅在创建控件时调整)
为2时,根据前面设定的控件位置确定控件尺寸
注意:默认图片在控件中居中显示。
设置图片控件所显示的图片:
void L_GUI_ShowPictureItem(L_U32 ID, L_U16 PictureIndex)
ID:所要改变图片控件的ID
PictureIndex:图片索引,0索引表示无图片
进度条控件:
创建进度条控件:
L_U32 L_GUI_CreatProgress(L_U32 WindowID, L_CHAR *str, L_U32 len, ts_LPoint point_LeftTop, ts_LPoint point_RightBottom, L_U32 mode, L_U32 ID)
WindowID:所依附的窗口ID
str:初始化时显示的字符串
len:字符串长度
point_LeftTop:控件左上角点,该点是相对于窗口而非整个显示区
point_RightBottom:控件右下角点,该点是相对于窗口而非整个显示区
mode:显示模式。
0x01 完全填充,背景黑色,填充白色
0x02 完全填充,背景透明,填充白色,有黑色边框
0x03 完全填充,背景透明,填充黑色,有白色边框
ID:控件自身ID(唯一)
设置进度条进度:
void L_GUI_SetProgressRate(L_U32 ID, L_U32 rate)
ID:所设置的控件ID
rate:进度,0~100
设置进度条显示的文字:
void L_GUI_ChangeProgressText(L_U32 ID, L_CHAR *str, L_U32 len)
ID:所设置的控件ID
str:初始化时显示的字符串
len:字符串长度