窗口控件
控件操作接口
设置窗口Alpha
void TwWindowSetAlpha(TWidget *widget, Tint alpha);
功能:设置窗口的透明度。
参数:
参数 | 说明 |
---|---|
widget | 窗口对象 |
alpha | 窗口需要设置的透明度值(范围:0-255) |
返回值:无
示例:
TWidget *main_win = TObjectGetFromName("main_win");
TwWindowSetAlpha(main_win, 0);
获取窗口Alpha
Tint TwWindowGetAlpha(TWidget *widget);
功能:获取窗口的透明度值。
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
返回值:控件的透明度值。
示例:
TWidget *main_win = TObjectGetFromName("main_win");
Tint alpha = TwWindowGetAlpha(main_win);
TLogP("alpha = %d\n",alpha);
提升窗口
void TwWindowRaise(TWidget *widget);
功能:系统默认后创建的窗口显示在上面,此函数的功能可以强行将先创建的窗口显示在后创建的窗口上面。
参数:
参数 | 说明 |
---|---|
widget | 窗口对象 |
返回值:无
示例:
TWidget *main_win = TObjectGetFromName("main_win");
TwWindowRaise(main_win);
将窗口提升到above层
void TwWindowSetAbove(TWidget *widget, Tbool above);
功能:将窗口提升到above层
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
above | 为True将窗口提升到above层,为False则取消设置 |
返回值:无
示例:
// 窗口事件的回调函数
void tip_window_show_func(void *obj, T_ID event, TTable *in, void *arg, TExist *exist)
{
TwWindowSetAbove(obj, TRUE);
}
注解:窗口的层次自上而下依次为:dock_fullscreen、dock_above、dock、above、dock_below、normal、below、desktop;普通应用程序的窗口一般都在normal层。
将窗口降到below层
void TwWindowSetBelow(TWidget *widget, Tbool below);
功能:将窗口降到below层
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
below | 为TRUE将窗口降到below层,为False则取消设置 |
返回值:无
示例:
// 窗口事件的回调函数
void window_show_func(void *obj, T_ID event, TTable *in, void *arg, TExist *exist)
{
TwWindowSetBelow(obj, TRUE);
}
设置窗口最大化
void TwWindowSetMax(TWidget *widget, Tbool max);
功能:设置窗口最大化
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
max | 为TRUE则设置窗口最大化,为FALSE则取消设置 |
返回值:无
示例:
TWidget *mainWin = TObjectGetFromName("mainWin");
TwWindowSetFullscreen(mainWin, True);
注解:设置窗口最大化是将不足root窗口大小的窗口通过stretch_tile拉伸方式,拉伸至root窗口大小。
设置窗口全屏
void TwWindowSetFullscreen(TWidget *widget, Tbool fullscreen);
功能:将窗口全屏显示
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
fullscreen | TRUE为设置窗口全屏,FALSE为取消设置 |
返回值:无
示例:
TWidget *mainWin = TObjectGetFromName("mainWin");
TwWindowSetFullscreen(mainWin, True);
注解:设置窗口最大化是将不足root窗口大小的窗口通过stretch_tile拉伸方式,拉伸至root窗口大小,不是将运行窗口拉伸到和屏幕一样大。
以模态的方式显示窗口
void TwShowModelWindow(TWidget *window);
功能:模态窗口的特点是当模态窗口显示时,所属进程的其他控件不接收任何事件。
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
返回值:无
示例:
TWidget *dock_win = TObjectGetFromName("dock_win")
TwShowModelWindow(dock_win);
设置窗口最小尺寸
void TwWindowSetMinSize(TWidget *widget, Tint min_w, Tint min_h);
功能:设置窗口最小尺寸
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
min_w | 最小宽度 |
min_h | 最小高度 |
返回值:无
清除窗口区域,用背景填充,并重绘相关子控件
void TwWindowClear(TWidget *widget, Tint x, Tint y, Tint w, Tint h);
功能:清除窗口区域,用背景填充,并重回相关子控件
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
x,y | 要清除的窗口区域坐标 |
w,h | 要清除的窗口区域的范围,如果传-1,就等于窗口的宽和高 |
返回值:无
设置窗口滚动区域
void TwWindowSetScrollArea(TWidget *widget, Tint maxw, Tint maxh);
功能:设置窗口的滚动区域
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
maxw | 最大的宽度 |
maxh | 最大的高度 |
返回值:无
示例:
// 窗口的flag必须设置了window_scroll属性
TWidget *mainWin = TObjectGetFromName("mainWin");
TwWindowSetScrollArea(mainWin, 140, 1280);
设置窗口滚动位置
void TwWindowSetScrollPosOffset(TWidget *widget, Tint offx, Tint offy);
功能:设置窗口滚动位置
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
offx | 滚动位置相对于当前位置的x偏移量 |
offy | 滚动位置相对于当前位置的y偏移量 |
返回值:无
设置窗口滚动位置,窗口滚动时有滚动效果
void TwWindowSetScrollPos(TWidget *widget, Tint posx, Tint posy);
功能:设置窗口滚动位置
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
posx | 滚动位置相对于滚动区域的x坐标 |
posy | 滚动位置相对于滚动区域的y坐标 |
返回值:无
示例:
TWidget *mainWin = TObjectGetFromName("mainWin");
TwWindowSetScrollArea(mainWin, 140, 2000);
TwWindowSetScrollPos(mainWin, 0, 1890);
设置窗口滚动位置,窗口滚动时有滚动效果
void TwWindowSetScrollPos_no_animate(TWidget *widget, Tint posx, Tint posy);
功能:设置窗口滚动位置,窗口滚动时有滚动效果。
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
posx | 滚动位置想对于滚动区域的x坐标 |
posy | 滚动位置相对于滚动区域的y坐标 |
返回值:无
示例:
TWidget *mainWin = TObjectGetFromName("mainWin");
TwWindowSetScrollArea(mainWin, 1400, 2000);
TwWindowSetScrollPos_no_animate(mainWin, 100, 1890);
获取窗口滚动位置
void TwWindowGetScrollPos(TWidget widget, Tint *posx, Tint *posy);
功能:获取窗口的滚动位置
参数:
参数 | 说明 |
---|---|
widget | 控件对象 |
*posx | 获取窗口滚动的x |
*posy | 获取窗口滚动的y |
返回值:
示例:
int scroll_x = 0,scroll_y = 0;
TWidget *mainWin = TObjectGetFromName("mainWin");
TwWindowSetScrollArea(mainWin, 1400, 2000);
TwWindowGetScrollPos(mainWin,&scroll_x,&scroll_y);
TLogP("scroll_x=%d scroll_y=%d\n",scroll_x,scroll_y);
设置窗口滚动位置对齐
void TwWindowSetScrollAlign(TWidget *widget, int align_x, int align_y);
功能:设置窗口滚动位置对齐
参数:
参数 | 说明 |
---|---|
widget | 控件对象 |
align_x | align_x |
align_y | align_y |
返回值:无
设置窗口拖动滚动时的最大惯性滑动距离
void TwWindowSetScrollMaxStep(TWidget *widget, int max_step_x, int max_step_y);
功能:设置窗口拖动滚动条时的最大惯性滑动距离,手松开后,由于惯性最多滑动的像素单位,0表示没有限制。
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
max_step_x | 滑动距离相对原有位置的x坐标 |
max_step_y | 滑动距离相对原有位置的y坐标 |
返回值:无
设置窗口上焦点切换按键
void TwWindowSetFocusKey(TWidget *widget, int focus_type, KeySym prev_key, KeySym next_key);
功能:设置窗口上焦点切换按键
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
focus_type | 焦点切换类型,CIRCLE_FOCUS, NOCIRCLE_FOCUS |
prev_key | 向前切换焦点按键键值 |
next_key | 向后切换焦点按键键值 |
返回值:无
设置窗口字体字号
void TwWindowSetFont(TWidget *widget, Font font_id);
功能:设置窗口字体字号,设置后窗口上所有控件的caption大小均为font_id设置的字体。
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
font_id | 字体字号 |
返回值:无
示例:
TWidget *mainWin = TObjectGetFromName("mainWin");
TwWindowSetFont(mainWin, XLoadFont(tw_display, "default-40"));
设置光标在窗口上的样式
void TwWindowSetCursor(TWidget *widget, Cursor c);
功能:设置光标在窗口上的样式
参数:
参数 | 说明 |
---|---|
widget | 窗口控件 |
c | 光标样式 |
返回值:无
示例:
Cursor c;
Pixmap cousorimage;
cousorimage = TwLoadImage(TGetExecutePath("../cursor.png"));
c = XCreateCursorFromPixmap(tw_display, cousorimage, 9, 0);
TwWindowSetCursor(myWin, c); //在窗口myWin中设置光标样式