FTK应用程序编程接口(API)手册-2

全局对象存取函数

FTK中有一些单实例的对象,这些对象是以全局变量的形式存在的,为了有效的控制对这些对象的访问,我们提供了相应的存/取函数。这些对象都是在FTK初始化时创建的,所以开发人员无需要再调用相应的“存”函数,但有时需要“取”出这些对象,以后 获得相应的信息。故这里只介绍“取”的函数:

1.获取缺省显示设备。
原型 :FtkDisplay* ftk_default_display(void);
说明 :目前FTK只支持一个显示设备,本函数用于获取这个显示设备对象。对于普通开发人员来说,获取显示设备的主要目的,是通过FtkDisplay对象来获得显示设备的宽度和高度。
参数 :无。
返回值 :缺省的显示设备对象。
示例: 获取显示设备的宽度和高度
int screen_width = ftk_display_width(ftk_default_display());
int screen_height = ftk_display_height(ftk_default_display());



2.获取缺省的主循环对象。
原型 :FtkMainLoop* ftk_default_main_loop(void);
说明 :这个函数主要是给FTK实现者使用的,普通开发人员不会用到。
参数 :无。
返回值 :缺省的主循环对象。

3.获取调试信息的输出级别。
原型 :FtkLogLevel ftk_default_log_level(void);
说明 :log_level决定了FTK输出哪些调试信息,本函数用于返回当前的级别。调试信息的级别可以在配置文件中指定,也可以通过命令行参数传入。
参数 :无。
返回值 :见FtkLogLevel。

4.获取缺省的窗口管理器。
原型 :FtkWndManager* ftk_default_wnd_manager(void);
说明 : 窗口管理器负责窗口的管理和事件的分发,可以通过窗口管理器可以向GUI注入事件,或者拦截事件。
参数 :无。
返回值 :缺省的窗口管理器
示例: 向FTK中注入按键事件。
ftk_event_init(&event, FTK_EVT_KEY_DOWN);
event.u.key.code = code;
ftk_wnd_manager_dispatch_event(ftk_default_wnd_manager(), &event);

ftk_event_init(&event, FTK_EVT_KEY_UP);
event.u.key.code = code;
ftk_wnd_manager_dispatch_event(ftk_default_wnd_manager(), &event);


5.获取状态栏窗口。
原型 :FtkWidget* ftk_default_status_panel(void);
说明 :状态栏窗口通常是显示在屏幕上方,用于显示当前窗口的标题或关闭按键等。开发人员通过本函数获取状态栏窗口,然后可以向状态栏窗口中增加自己的控件。
参数 :无。
返回值 :状态栏窗口。
示例: 桌面向状态栏中增加显示时间的控件。
static Ret desktop_add_time_item_on_statusbar(void)
{

FtkWidget* item = NULL;

FtkWidget* panel = NULL;


panel = ftk_default_status_panel();

if(panel != NULL)

{

item = ftk_status_item_create(panel, -2, 60);

ftk_widget_set_id(item, IDC_TIME_ITEM);

ftk_widget_show(item, 1);

}


ftk_logd("%s\n", __func__);

return RET_OK;

}


6.获取位图工厂。
原型 :FtkBitmapFactory* ftk_default_bitmap_factory(void);
说明 :位图工厂主要用于加载图片文件,通过本函数获取位图工厂,然后加载自己需要的图片。
参数 :无。
返回值 :位图工厂。
示例:
FtkBitmap* bitmap = NULL;
char filename[FTK_MAX_PATH+1] = {0};

ftk_snprintf(filename, FTK_MAX_PATH, "%s/earth.png",

ftk_config_get_test_data_dir(ftk_default_config()));

bitmap = ftk_bitmap_factory_load(ftk_default_bitmap_factory(), filename);


7.获取事件源管理器对象。
原型 :FtkSourcesManager* ftk_default_sources_manager(void);
说明 :这个函数主要是给FTK实现者使用的,普通开发人员不会用到。
参数 :无。
返回值 :事件源管理器对象。

8.获取共享画板对象。
原型 :FtkCanvas* ftk_shared_canvas(void);
说明 :这个函数主要是给FTK实现者使用的,普通开发人员不会用到。
参数 :无。
返回值 :共享画板对象。

9.获取主题对象。
原型 :FtkTheme* ftk_default_theme(void);
说明 :主题对象负责FTK的外在表现,换一个主题,FTK可能有完全不同的表现效果。通常开发人员可以利用主题对象来加载主题相关的图片,或者获取相关的配置信息。
参数 :无。
返回值 :主题对象。
示例 :加载主题中的图片。
FtkBitmap* bitmap = ftk_theme_load_image(ftk_default_theme(), filename);



10.获取基本事件源。
原型 :FtkSource* ftk_primary_source(void);
说明 :这个函数主要是给FTK实现者使用的,普通开发人员不会用到。
参数 :无。
返回值 :基本事件源。

11.获取配置信息对象。
原型 :FtkConfig* ftk_default_config(void);
说明 :配置信息对象提供了一些函数用于获取系统的配置信息。
参数 :无。
返回值 :配置信息对象。

12.获取内存分配器。
原型 :FtkAllocator* ftk_default_allocator(void);
说明 :一般不要直接使用这个对象,而且用FTK_ALLOC/FTK_ZALLOC/FTK_FREE等宏来管理内存。
参数 :无。
返回值 :内存分配器。

13.获取文本排版对象。
原型 :FtkTextLayout* ftk_default_text_layout(void);
说明 :显示文本时可以利用FtkTextLayout对文字进行排版。
参数 :无。
返回值 :文本排版对象。
示例: button控件使用文本排版对象计算文字宽度。
static Ret ftk_button_on_paint(FtkWidget* thiz)
{
FTK_BEGIN_PAINT(x, y, width, height, canvas);

ftk_canvas_reset_gc(canvas, ftk_widget_get_gc(thiz));
if(ftk_widget_get_text(thiz) != NULL)
{

int xoffset = 0;

int yoffset = FTK_HALF(height);

FtkTextLine line = {0};

const char* text = ftk_widget_get_text(thiz);

FtkTextLayout* text_layout = ftk_default_text_layout();

ftk_text_layout_init(text_layout, text, -1, ftk_widget_get_gc(thiz)->font, width);

if(ftk_text_layout_get_visual_line(text_layout, &line) == RET_OK)

{

xoffset = FTK_HALF(width - line.extent);

ftk_canvas_draw_string(canvas, x + xoffset, y + yoffset, line.text, line.len, 1);

}

}

FTK_END_PAINT();
}


14.获取输入法管理器。
原型 :FtkInputMethodManager* ftk_default_input_method_manager(void);
说明 :这个函数主要是给FTK实现者使用的,普通开发人员不会用到。
参数 :无。
返回值 :输入法管理器。

15.获取输入法预编辑器。
原型 :FtkImPreeditor* ftk_default_input_method_preeditor(void);
说明 :这个函数主要是给FTK实现者使用的,普通开发人员不会用到。
参数 :无。
返回值 :输入法预编辑器。

16.获取字体管理对象。
原型 :FtkFontManager* ftk_default_font_manager(void);
说明 :通过字体管理器可以加载自己需要的字体,要使用不同大小的字体,一定要在编译配置时使用freetype。因为缺省字体是点阵字体,只有一种大小。
参数 :无。
返回值 :字体管理对象。

17.获取动画触发对象。
原型 :FtkAnimationTrigger* ftk_default_animation_trigger(void);
说明 :这个函数主要是给FTK实现者使用的,普通开发人员不会用到。
参数 :无。
返回值 :动画触发对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值