天天看點

S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四

三、設定項類型

在S60平台有十種不同的設定項類型,下面我們來仔細介紹這些類型及它的資源結構。

3.1 Binary Switch

二進制開關是最簡單的設定項類型了,它允許設定成開和關,并且不需要單獨的設定頁,在設定清單中就可以改變。二進制開關設定項類型傳回一個布爾(TBool)型變量在應用程式設定資料中。設定項類中使用的二進制開關類型是CAknBinaryPopupSettingItem。

S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四

    圖1 二進制開關設定項

下面是一個二進制開關資源定義的例子:

RESOURCE AVKON_SETTING_ITEM_LIST r_setting_list_setting_binary

{

flags= EAknSettingItemNumberedStyle;

title = qtn_exsl_outline07;

initial_number = 1;

items =

{

AVKON_SETTING_ITEM

{

identifier = EAknExSettingBinary;

setting_page_resource = r_binary_setting _page;

associated_resource = r_popup_setting_binary_texts;

name = qtn_exsl_binary_title;

}

};

}

RESOURCE AVKON_POPUP_SETTING_TEXTS r_popup_setting_binary_texts

{

flags = 0;

setting_texts_resource = r_on_off_texts;

popped_up_texts_resource = r_popped_up_on_off_texts;

}

RESOURCE ARRAY r_on_off_texts

{

items =

{

AVKON_ENUMERATED_TEXT { value=1; text = qtn_exsl_texts_on; },

AVKON_ENUMERATED_TEXT { value=0; text = qtn_exsl_texts_off; }

};

}

RESOURCE ARRAY r_popped_up_on_off_texts

{

items =

{

LBUF { txt = qtn_exsl_texts_enabled; },

LBUF { txt = qtn_exsl_texts_disabled; }

};

}

RESOURCE AVKON_SETTING_PAGE r_binary_setting_page

{

number= 0;

label= qtn_exsl_binary_title;

type = EAknCtPopupSettingList;

}

3.2 Text Editor

文本設定項允許使用者輸入設定的值。這些設定值存儲在使用者指定描述符(user-specified descriptor)中。設定項類使用的文本編輯類型是CAknTextSettingItem。

S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四
S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四

                 圖2 文本設定項和文本設定頁

下面是文本編輯設定項資源定義的例子:

RESOURCE AVKON_SETTING_ITEM_LIST r_setting_list_setting_text

{

flags= EAknSettingItemNumberedStyle;

title = qtn_exsl_outline01;

initial_number = 1;

items =

{

AVKON_SETTING_ITEM

{

identifier = EAknExSettingText;

setting_page_resource = r_text_setting_page;

name = qtn_exsl_text_title;

}

};

}

RESOURCE AVKON_SETTING_PAGE r_text_setting_page

{

number = TEXT_SETTING_PAGE_NUMBER;

label = qtn_exsl_text_title;

type = EEikCtEdwin;

editor_resource_id = r_settinglist_edwin;

}

RESOURCE EDWIN r_settinglist_edwin

{

width = TEXT_SETTING_PAGE_WIDTH;

lines = TEXT_SETTING_PAGE_LINES;

maxlength = TEXT_SETTING_PAGE_MAXLENGTH20;

}

3.3 Enumerated Text

枚舉文本設定項為使用者提供一個選擇清單。它也允許為設定項再輸入一個文本值,通過選擇彈出菜單的“Other”來完成它。這樣實際上就有了三種不同的枚舉文本視圖:設定清單中包含設定項,設定頁顯示多種選擇,文本編輯器輸入非預定義的文本。這些設定值存儲在設定項構造的描述符中。設定項類使用枚舉文本類型是CAknEnumeratedTextPopupSettingItem。

S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四
S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四

                 圖3 枚舉文本設定項和設定頁

S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四

圖4 枚舉文本、文本編輯器

下面是枚舉文本設定項的資源定義的例子:

RESOURCE AVKON_SETTING_ITEM_LIST r_setting_list_setting_enumtext

{

flags= EAknSettingItemNumberedStyle;

title = qtn_exsl_outline04;

initial_number = 1;

items =

{

AVKON_SETTING_ITEM

{

identifier = EAknExSettingEnumText;

setting_page_resource = r_enumtext_setting_page;

associated_resource = r_popup_setting_list;

name = qtn_exsl_enumtext_title;

}

};

}

RESOURCE AVKON_SETTING_PAGE r_enumtext_setting_page

{

number= 1;

label= qtn_exsl_enumtext_title;

type = EAknCtPopupSettingList;

editor_resource_id = r_popup_setting_list_new_entry;

}

RESOURCE AVKON_POPUP_SETTING_TEXTS r_popup_setting_list

{

setting_texts_resource = r_settinglist_page_list;

popped_up_texts_resource = r_settinglist_list_item_array;

}

RESOURCE ARRAY r_settinglist_page_list

{

items =

{

AVKON_ENUMERATED_TEXT {value = 0;text = qtn_exsl_item_list0;},

AVKON_ENUMERATED_TEXT {value = 1;text = qtn_exsl_item_list1;},

AVKON_ENUMERATED_TEXT {value = 2;text = qtn_exsl_item_list2;},

. . .

AVKON_ENUMERATED_TEXT {value = 9;text = qtn_exsl_item_list9;}

};

}

RESOURCE ARRAY r_settinglist_list_item_array

{

items =

{

LBUF { txt = qtn_exsl_item_list0; },

LBUF { txt = qtn_exsl_item_list1; },

LBUF { txt = qtn_exsl_item_list2; },

. . .

LBUF { txt = qtn_exsl_item_list9; }

};

}

3.4 Alphanumeric Password Editor

字母數字密碼編輯器

密碼設定項允許保密資料。密碼設定項允許輸入字母或數字(3.5章節是數字密碼編輯器)。設定值存儲在設定項構造的描述符中。設定項類使用密碼類型是

CAknPasswordSettingItem。

S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四
S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四

圖5 字母密碼設定項和密碼設定頁

下面是字母數字密碼設定項的資源定義的例子:

RESOURCE AVKON_SETTING_ITEM_LIST r_setting_list_setting_pw

{

flags= EAknSettingItemNumberedStyle;

title = qtn_exsl_outline08;

initial_number = 1;

items =

{

AVKON_SETTING_ITEM

{

identifier = EAknExSettingPassAlph;

setting_page_resource = r_alpha_password_setting_page;

name = qtn_exsl_alpha_title;

}

};

}

RESOURCE AVKON_SETTING_PAGE r_alpha_password_setting_page

{

number = ALPHA_PASSWORD_SETTING_PAGE_NUMBER;

label = qtn_exsl_alpha_title;

type = EEikCtSecretEd;

editor_resource_id = r_settinglist_alpha_password;

}

RESOURCE SECRETED r_settinglist_alpha_password

{

num_letters = ALPHA_PASSWORD_LENGTH_OF_STRING;

}

3.5 Numeric Password Editor

密碼設定項允許輸入密碼。密碼設定項可以是字母數字或數字(PIN碼)。設定值存儲在設定項構造的描述符中。設定項類使用的密碼類型是CAknPasswordSettingItem。

S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四
S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四

圖6 數字密碼設定項和設定頁

下面是數字密碼設定項資源定義的例子:

RESOURCE AVKON_SETTING_ITEM_LIST r_setting_list_setting_pin

{

flags= EAknSettingItemNumberedStyle;

title = qtn_exsl_outline09;

initial_number = 1;

items =

{

AVKON_SETTING_ITEM

{

identifier = EAknExSettingPassNumber;

setting_page_resource =

r_ol09_numeric_password_setting_page;

name = qtn_exsl_numeric_title;

}

};

}

RESOURCE AVKON_SETTING_PAGE r_ol09_numeric_password_setting_page

{

number = NUMERIC_PASSWORD_OL09_SETTING_PAGE_NUMBER;

label = qtn_exsl_numeric_title;

type = EAknCtNumericSecretEditor;

editor_resource_id = r_settinglist_numeric_password;

}

RESOURCE NUMSECRETED r_settinglist_numeric_password

{

num_code_chars = NUMERIC_PASSWORD_LENGTH_OF_STRING;

}

3.6 Slider

滑塊設定項允許使用者指定一個整數值。這個整數值有個最小值和最大值,用滑動塊控件選擇指定的值。滑動塊設定項的值存儲在整型(TInt)變量中。滑動設定項類使用滑動塊類型CAknSliderSettingItem。

S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四
S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四

圖7 滑動設定項和設定頁

下面是滑動設定項的資源定義的例子:

RESOURCE AVKON_SETTING_ITEM_LIST r_setting_list_setting_slider

{

flags= EAknSettingItemNumberedStyle;

title = qtn_exsl_outline02;

initial_number = 1;

items =

{

AVKON_SETTING_ITEM

{

identifier = EAknExSettingSlider;

setting_page_resource = r_slider_setting_page;

name = qtn_exsl_slider_title;

}

};

}

RESOURCE AVKON_SETTING_PAGE r_slider_setting_page

{

number = SLIDER_SETTING_PAGE_NUMBER;

label = qtn_exsl_slider_title;

type = EAknCtSlider;

editor_resource_id = r_settinglist_slider;

}

RESOURCE SLIDER r_settinglist_slider

{

layout = EAknSettingsItemSliderLayout;

minvalue = SLIDER_SETTING_PAGE_MINVALUE;

maxvalue = SLIDER_SETTING_PAGE_MAXVALUE;

step = SLIDER_SETTING_PAGE_STEP;

valuetype = EAknSliderValuePercentage;

minlabel = qtn_slider_minlabel; maxlabel = qtn_slider_maxlabel;

}

3.7 Volume Control

音量設定項存儲一個整型值變量,類似于滑動設定項。然而,音量控件可供選擇的範圍是1到10,也沒有在設定頁上擺放可以拖動的控件。設定項類使用音量控件類型是CAknVolumeSettingItem。

S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四
S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四

圖8 音量設定項和設定頁

下面是音量控制設定項的資源定義的例子:

RESOURCE AVKON_SETTING_ITEM_LIST r_setting_list_setting_volume

{

flags= EAknSettingItemNumberedStyle;

title = qtn_exsl_outline03;

initial_number = 1;

items =

{

AVKON_SETTING_ITEM

{

identifier = EAknExSettingVolume;

setting_page_resource = r_volume_setting_page;

name = qtn_exsl_volume_title;

}

};

}

RESOURCE AVKON_SETTING_PAGE r_volume_setting_page

{

number = VOLUME_SETTING_PAGE_NUMBER;

label = qtn_exsl_volume_title;

type = EAknCtVolumeControl;

editor_resource_id = r_settinglist_volume;

}

RESOURCE VOLUME r_settinglist_volume

{

flags = ESettingsVolumeControl;

value = VOLUME_SETTING_PAGE_VALUE;

}

3.8 Time Editor

時間設定項用來設定時間值,與之相關聯設定項的變量類型是TTime。設定項類使用時間和日期的設定項類型是CAknTimeOrDateSettingItem,用第二個構造器的參數指定額外的類型。

S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四
S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四

圖9 時間設定項和設定頁

下面是時間設定項資源定義的例子:

RESOURCE AVKON_SETTING_ITEM_LIST r_setting_list_setting_time

{

flags= EAknSettingItemNumberedStyle;

title = qtn_exsl_outline06;

initial_number = 1;

items =

{

AVKON_SETTING_ITEM

{

identifier = EAknExSettingTime;

setting_page_resource = r_time_setting_page;

name = qtn_exsl_time_title;

}

};

}

RESOURCE AVKON_SETTING_PAGE r_time_setting_page

{

number = TIME_SETTING_PAGE_NUMBER;

label = qtn_exsl_time_title;

type = EEikCtTimeEditor;

editor_resource_id = r_settinglist_time_editor;

}

RESOURCE TIME_EDITOR r_settinglist_time_editor

{

minTime = TIME

{

second = TIME_EDITOR_MIN_SECOND;

minute = TIME_EDITOR_MIN_MINUTE;

hour = TIME_EDITOR_MIN_HOUR;

};

maxTime = TIME

{

second = TIME_EDITOR_MAX_SECOND;

minute = TIME_EDITOR_MAX_MINUTE;

hour = TIME_EDITOR_MAX_HOUR;

};

}

3.9 Date Editor

日期設定項類似于時間設定項類型,差別在于輸入的是日期值。

S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四
S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四

圖10 日期設定項和設定頁

下面是日期設定項資源定義的例子:

RESOURCE AVKON_SETTING_ITEM_LIST r_setting_list_setting_date

{

flags= EAknSettingItemNumberedStyle;

title = qtn_exsl_outline05;

initial_number = 1;

items =

{

AVKON_SETTING_ITEM

{

identifier = EAknExSettingDate;

setting_page_resource = r_date_setting_page;

name = qtn_exsl_date_title;

}

};

}

RESOURCE AVKON_SETTING_PAGE r_date_setting_page

{

label= qtn_exsl_date_title;

type = EEikCtDateEditor;

editor_resource_id = r_settinglist_date;

}

RESOURCE DATE_EDITOR r_settinglist_date

{

minDate= DATE {year=1980;};

maxDate= DATE {year=2060;};

flags=0;

}

3.10 IP Address Editor

IP位址設定項類型允許使用者進行IP位址設定,與之對應的設定項變量類型是TInetAddr。設定項類使用的IP位址類型是CAknIpFieldSettingItem。

S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四
S60平台:Avkon UI 資源-設定清單--S60 Platform: Avkon UI Resources- Setting Lists翻譯連載四

圖11 IP位址設定項和設定頁

下面是IP位址設定項資源定義的例子:

RESOURCE AVKON_SETTING_ITEM_LIST r_setting_list_setting_ip

{

flags= EAknSettingItemNumberedStyle;

title = qtn_exsl_outline10;

initial_number = 1;

items =

{

AVKON_SETTING_ITEM

{

identifier = EAknExSettingIpAddress;

setting_page_resource = r_ip_address_setting_page;

name = qtn_exsl_ip_editor_title;

}

};

}

RESOURCE AVKON_SETTING_PAGE r_ip_address_setting_page

{

label= qtn_exsl_ip_editor_title;

type = EAknCtIpFieldEditor;

editor_resource_id = r_settinglist_ip_editor;

}

RESOURCE IP_FIELD_EDITOR r_settinglist_ip_editor

{

min_field_values = IP_FIELD

{

first_field = IP_EDITOR_MIN_FIELD_VALUE;

second_field = IP_EDITOR_MIN_FIELD_VALUE;

third_field = IP_EDITOR_MIN_FIELD_VALUE;

fourth_field = IP_EDITOR_MIN_FIELD_VALUE;

};

max_field_values = IP_FIELD

{

first_field = IP_EDITOR_MAX_FIELD_VALUE;

second_field = IP_EDITOR_MAX_FIELD_VALUE;

third_field = IP_EDITOR_MAX_FIELD_VALUE;

fourth_field = IP_EDITOR_MAX_FIELD_VALUE;

};

flags = 0;

}

繼續閱讀