zoukankan      html  css  js  c++  java
  • 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实现者使用的,普通开发人员不会用到。
    参数:无。
    返回值:动画触发对象。
  • 相关阅读:
    【乱侃】How do they look them ?
    【softeware】Messy code,some bug of Youdao notebook in EN win7
    【随谈】designing the login page of our project
    【web】Ad in security code, making good use of resource
    SQL数据库内存设置篇
    关系数据库的查询优化策略
    利用SQL未公开的存储过程实现分页
    sql语句总结
    sql中使用cmd命令注销登录用户
    SQLServer 分页存储过程
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167376.html
Copyright © 2011-2022 走看看