全域性物件訪問函式
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 手冊 2
全域性物件訪問函式 ftk中有一些單例項的物件,這些物件是以全域性變數的形式存在的,為了有效的控制對這些物件的訪問,我們提供了相應的存 取函式。這些物件都是在ftk初始化時建立的,所以開發人員無需要再呼叫相應的 存 函式,但有時需要 取 出這些物件,以後 獲得相應的資訊。故這裡只介紹 取 的函式 1...
FTK應用程式程式設計介面 API 手冊 1
框架函式支撐ftk的主體,它負責初始化應用程式,啟動主迴圈和退出主迴圈。它對任何乙個ftk應用程式都是不可缺少的,即使應用程式沒有使用任何控制項 當然這也沒有什麼意義 所以我們先介紹這些函式。1.初始化ftk 原型 ret ftk init int argc,char argv 說明 用於初始化ft...
API應用程式程式設計介面
一 api 定義 應用程式程式設計介面,使用廣泛,用於軟體間交換資料,擁有結構化的請求和反饋。用途 獲取資料 演算法 底層裝置 rest repredentational state transfer 用url定位資源,用http描述操作 rest是一種網路應用設計的風格,基於無狀態的c s協議,比...