ftk学习记(消息框篇)
【 声明:版权全部,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
上一篇说到了输入框。闲话不多说,首先看结果显示,
大家看看效果是不是和我们之前说的一样。今天,我们谈一下消息狂。这样的消息框事实上应用得特别多,有警告用的,有提问的,有信息的,也有提示的。没关系,ftk这边也有demo代码,大家能够学习一下。
#include "ftk.h"
static const char* buttons1[] = {"Yes", NULL};
static const char* buttons2[] = {"Yes", "No", NULL};
static const char* buttons3[] = {"Yes", "No", "Cancel", NULL};
static Ret button_warning(void* ctx, void* obj)
{
int ret = ftk_warning("Warning", "December 31, 2008: patchwork.kernel.org is now available for general use. It is currently only monitoring the Linux Kernel mailing-list, but should be useful to kernel developers in dealing with patches flying across the wire.", buttons1);
ftk_logd("%s: ret = %d\n", __func__, ret);
return RET_OK;
}
static Ret button_info(void* ctx, void* obj)
{
int ret = ftk_infomation("Infomation", "September 19, 2008: mirrors.kernel.org has been flipped over to using our new GeoDNS based bind server (named-geodns). This means that, at the dns query level, our servers will attempt to direct you to the nearest / fastest kernel.org mirror for your request. This means that you no longer have to use mirrors.us.kernel.org or mirrors.eu.kernel.org to generally route you to the right place. This does mean a change to mirrors.kernel.org no longer explicitly pointing at mirrors.us.kernel.org. Additional information on named-geodns will be forth coming, check back here for an addendum soon.", buttons2);
ftk_logd("%s: ret = %d\n", __func__, ret);
return RET_OK;
}
static Ret button_question(void* ctx, void* obj)
{
int ret = ftk_question("Question", "Are you sure to quit?", buttons3);
ftk_logd("%s: ret = %d\n", __func__, ret);
return RET_OK;
}
static Ret button_tips(void* ctx, void* obj)
{
int ret = ftk_tips("The dialog will quit in 3 seconds.");
ftk_logd("%s: ret = %d\n", __func__, ret);
return RET_OK;
}
static Ret button_quit(void* ctx, void* obj)
{
ftk_quit();
return RET_OK;
}
int FTK_MAIN(int argc, char* argv[])
{
int y = 0;
int width = 0;
int height = 0;
FtkWidget* win = NULL;
FtkWidget* button = NULL;
ftk_init(argc, argv);
win = ftk_app_window_create();
width = ftk_widget_width(win);
height = ftk_widget_height(win);
y = (height - 240)/2;
y = y > 0 ? y : 0;
button = ftk_button_create(win, 0, y, width/2, 50);
ftk_widget_set_text(button, "question");
ftk_button_set_clicked_listener(button, button_question, win);
button = ftk_button_create(win, width/2, y, width/2, 50);
ftk_widget_set_text(button, "warning");
ftk_button_set_clicked_listener(button, button_warning, win);
button = ftk_button_create(win, 0, y+60, width/2, 50);
ftk_widget_set_text(button, "info");
ftk_button_set_clicked_listener(button, button_info, win);
button = ftk_button_create(win, width/2, y+60, width/2, 50);
ftk_widget_set_text(button, "tips");
ftk_button_set_clicked_listener(button, button_tips, win);
button = ftk_button_create(win, width/4, y+120, width/2, 50);
ftk_widget_set_text(button, "quit");
ftk_button_set_clicked_listener(button, button_quit, win);
ftk_widget_set_text(win, "message box demo");
ftk_widget_show_all(win, 1);
ftk_widget_set_attr(win, FTK_ATTR_QUIT_WHEN_CLOSE);
ftk_run();
return 0;
}
代码流程和之前的编写方法一样。从代码中看去,有5个button,每一个button都有自己的回调函数。这5个函数各自是button_warning、button_info、button_question、button_tips、button_quit。那回调函数中做了什么呢?
抛开button_quit,我们仅仅要看其它4个button的回调函数。函数各自是ftk_warning、ftk_info、ftk_question、ftk_tips。除了最后一个ftk_tips,你会发现其它3个函数都是3个參数。參数1为标题,參数2为内容,參数3为button形式。这样的消息框中button有多种形式,有两个button的,有三个button的,须要依据详细情况而定。
欲看效果怎样,仅仅好等下一篇文章了。
ftk学习记(消息框篇)的更多相关文章
- ftk学习记(label篇)【转】
转自:http://blog.csdn.net/feixiaoxing/article/details/25000093 版权声明:本文为博主原创文章,未经博主允许不得转载. [ 声明:版权所有,欢迎 ...
- ftk学习记(label篇)
[ 声明:版权全部,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 还是接着上面的一篇博文. 之前以前答应过大家,让大家看一下最简单的ftk程序是怎么执行的.所以 ...
- ftk学习记(首篇)
[ 声明:版权全部,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 非常早之前就知道ftk了,当时主要是由于买了李先静的书,所以知道了这么一个项目.由于对这样的g ...
- ftk学习记(icon篇)
[声明:版权全部,欢迎转载.请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在開始今天的文章之前.我们还是先看一下上一节的效果图. 大家能够參照上一节的解说,是不是存在这种 ...
- ftk学习记(输入框篇)
[ 声明:版权全部.欢迎转载.请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 昨天讲了进度条,我们还是看看它的运行效果是怎么样的.截图例如以下, 进度条使用的情况还是比較多的 ...
- ftk学习记(对话框篇)
[声明:版权全部,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 前面谈到了输入法,首先看一看效果. 上面有4个输入框,大家能够分别试试,看看效果怎样. 今天,我 ...
- ftk学习记(waitbox篇)
[声明:版权全部.欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 前面说到了脚本.那么就看看ftk中demo与script搭配的效果是什么样的? 上面的效果图就相 ...
- ftk学习记(list篇)
[声明:版权全部,欢迎转载.请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在開始今天的list主题之前,先看一下icon的执行效果. 今天说的list事实上和这个icon几 ...
- ftk学习记(combox篇)
[声明:版权全部,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 上一篇文章谈到了多窗体,还是依照约定看一下效果是什么样的. 假设大家细心一点.就会发现窗体中的l ...
随机推荐
- tbb 线程安全concurrent_queue的性能
tbb实现了线程安全的queue,这样程序员既可以不用和那些lock,mutex,criticalsection打交道,又大大提高性能,太给力了..比较的结果见代码中的注释.结果可以看出代码足足少一半 ...
- 【老鸟学算法】包含 min函数的栈设计——java实现
要求: 1. 定义栈的数据结构,要求添加一个 min函数,能够得到栈的最小元素. 2. 要求函数 min.push 以及 pop 的时间复杂度都是 O(1). 这是考验“栈”数据结构设计.众所周知,栈 ...
- 注解框架---AndroidAnnotations
AndroidAnnotations是一个开源框架,旨在加快Android开发的效率.通过使用它开放出来的注解api,你差点儿可以使用在不论什么地方, 大大的降低了无关痛痒的代码量,让开发人员可以抽身 ...
- ADO面板上的控件简介
ADO面板上的控件简介 一. TADOConnection组件该组件用于建立数据库的连接.ADO的数据源组件和命令组件可以通过该组件运行命令及数据库中提取数据等.该组件用于建立数据库的连接,该连接可被 ...
- linux nc命令使用详解
功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p ...
- 降低http请求次数
80%的终于用户响应时间花在前端程序上.而其大部分时间则花在各种页面元素,如图像.样式表.脚本和Flash等的下载上. 降低页面元素将会降低HTTP请求次数.这是高速显示页面的关键所在. 1.Imag ...
- 对struts2的OGNL的理解
OGNL:Object-Graph Navigation Language.对象图形化导航语言 OGNL是集成进struts2框架中比較强大的技术有助于传输数据和类型转换,OGNL由表达式语言和类型装 ...
- Java网络编程-对象编解码方案、优劣对照
书籍推荐: 实例代码 :http://download.csdn.net/detail/jiangtao_st/7677503 watermark/2/text/aHR0cDovL2Jsb2cuY ...
- [Android学习笔记]ShareSDK的使用
ShareSDK使用方便,集成简单,正式客户端开发人员的首选组件 集成步骤,使用说明见官方文档: http://wiki.sharesdk.cn/Android_快速集成指南 记录: 直接使用官方De ...
- ExtJS学习-------Ext正确Dom操作:Ext.get Ext.fly Ext.getDom
详细实例: (1)创建JSP文件.引入CSS和js文件,加入三个Div <%@ page language="java" import="java.util.*&q ...