FTK應用程式程式設計介面 API 手冊 2

2021-05-27 13:40:01 字數 4453 閱讀 4135

全域性物件訪問函式

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)

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

return ret_ok; }

6.獲取位圖工廠。

原型:ftkbitmapfactory* ftk_default_bitmap_factory(void);

說明:位圖工廠主要用於載入檔案,通過本函式獲取位圖工廠,然後載入自己需要的。

引數:無。

返回值:位圖工廠。

示例:ftkbitmap* bitmap = null;

char filename[ftk_max_path+1] = ;

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)

; 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) }

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實現者使用的,普通開發人員不會用到。

引數:無。

返回值:動畫觸發物件。

FTK應用程式程式設計介面 API 手冊 1

框架函式支撐ftk的主體,它負責初始化應用程式,啟動主迴圈和退出主迴圈。它對任何乙個ftk應用程式都是不可缺少的,即使應用程式沒有使用任何控制項 當然這也沒有什麼意義 所以我們先介紹這些函式。1.初始化ftk 原型 ret ftk init int argc,char argv 說明 用於初始化ft...

FTK應用程式程式設計介面 API 手冊 2

全域性物件訪問函式 ftk中有一些單例項的物件,這些物件是以全域性變數的形式存在的,為了有效的控制對這些物件的訪問,我們提供了相應的存 取函式。這些物件都是在ftk初始化時建立的,所以開發人員無需要再呼叫相應的 存 函式,但有時需要 取 出這些物件,以後 獲得相應的資訊。故這裡只介紹 取 的函式 1...

API應用程式程式設計介面

一 api 定義 應用程式程式設計介面,使用廣泛,用於軟體間交換資料,擁有結構化的請求和反饋。用途 獲取資料 演算法 底層裝置 rest repredentational state transfer 用url定位資源,用http描述操作 rest是一種網路應用設計的風格,基於無狀態的c s協議,比...