Merged in kashif's, fdim's and my removal of abld.bat and .cproject files onto the fixed up version of Christian's head.
Binary file dependencies/S3libs/AKNSKINSRV.lib has changed
--- a/dependencies/S3libs/bld.inf Thu Apr 01 12:25:43 2010 +0100
+++ b/dependencies/S3libs/bld.inf Thu Apr 01 14:50:19 2010 +0100
@@ -25,4 +25,5 @@
javaregistryclient.lib \epoc32\release\winscw\udeb\javaregistryclient.lib
DrmRightsInfo.lib \epoc32\release\winscw\udeb\DrmRightsInfo.lib
SWInstCli.lib \epoc32\release\winscw\udeb\SWInstCli.lib
-peninputClient.lib \epoc32\release\winscw\udeb\peninputClient.lib
\ No newline at end of file
+fbscli.lib \epoc32\release\winscw\udeb\fbscli.lib
+peninputClient.lib \epoc32\release\winscw\udeb\peninputclient.lib
\ No newline at end of file
Binary file dependencies/S3libs/fbscli.lib has changed
--- a/dependencies/aknlayout.lag Thu Apr 01 12:25:43 2010 +0100
+++ b/dependencies/aknlayout.lag Thu Apr 01 14:50:19 2010 +0100
@@ -1,20 +1,1090 @@
-/*
-* ============================================================================
-* Name : aknlayout.lag
-* Part of : Avkon
-* Copyright (c) 2002 Nokia Corporation
-* ============================================================================
-*/
-
-#if !defined(__aknlayout_LAG__)
-#define __aknlayout_LAG__
-
-class TAknTextLineLayout;
-class TAknWindowLineLayout;
-class TAknMultiLineTextLayout;
-
-// New for backport
-#include "platform/mw/AknLayout.lag"
-
-#define AKN_LAYOUT_WINDOW_screen AknLayout::screen()
-#endif
+// ..\cdl\AknLayout.lag generated by:
+// AknLayoutCompiler Cdl2Lag ..\cdl\AknLayout.lag ..\cdl\AknLayout.cdl ..\cdl\AknApacLayout.cdl
+#if !defined(AKNLAYOUT_LAG)
+#define AKNLAYOUT_LAG
+#include <aknlayout.cdl.h>
+#define AKN_LAYOUT_WINDOW_screen AknLayout::screen()
+#define AKN_LAYOUT_WINDOW_application_window AknLayout::application_window
+#define AKN_LAYOUT_WINDOW_status_pane AknLayout::status_pane
+#define AKN_LAYOUT_WINDOW_main_pane AknLayout::main_pane
+#define AKN_LAYOUT_WINDOW_control_pane AknLayout::control_pane
+#define AKN_LAYOUT_WINDOW_signal_pane AknLayout::signal_pane
+#define AKN_LAYOUT_WINDOW_context_pane AknLayout::context_pane
+#define AKN_LAYOUT_WINDOW_title_pane AknLayout::title_pane
+#define AKN_LAYOUT_WINDOW_battery_pane AknLayout::battery_pane
+#define AKN_LAYOUT_WINDOW_uni_indicator_pane AknLayout::uni_indicator_pane
+#define AKN_LAYOUT_WINDOW_navi_pane AknLayout::navi_pane
+#define AKN_LAYOUT_WINDOW_Status_pane_elements_Line_1 AknLayout::Status_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Status_pane_elements_Line_2 AknLayout::Status_pane_elements_Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Status_pane_elements_Limits AknLayout::Status_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Status_pane_elements AknLayout::Status_pane_elements
+#define AKN_LAYOUT_WINDOW_Signal_pane_elements_Line_1 AknLayout::Signal_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Signal_pane_elements_Line_2 AknLayout::Signal_pane_elements_Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Signal_pane_elements_Limits AknLayout::Signal_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Signal_pane_elements AknLayout::Signal_pane_elements
+#define AKN_LAYOUT_WINDOW_Signal_strength_area_values_Line_1 AknLayout::Signal_strength_area_values_Line_1()
+#define AKN_LAYOUT_WINDOW_Signal_strength_area_values_Line_2 AknLayout::Signal_strength_area_values_Line_2()
+#define AKN_LAYOUT_WINDOW_Signal_strength_area_values_Line_3 AknLayout::Signal_strength_area_values_Line_3()
+#define AKN_LAYOUT_WINDOW_Signal_strength_area_values_Line_4 AknLayout::Signal_strength_area_values_Line_4()
+#define AKN_LAYOUT_WINDOW_Signal_strength_area_values_Line_5 AknLayout::Signal_strength_area_values_Line_5()
+#define AKN_LAYOUT_WINDOW_Signal_strength_area_values_Line_6 AknLayout::Signal_strength_area_values_Line_6()
+#define AKN_LAYOUT_WINDOW_Signal_strength_area_values_Line_7 AknLayout::Signal_strength_area_values_Line_7()
+#define AKN_LAYOUT_WINDOW_Signal_strength_area_values_Line_8 AknLayout::Signal_strength_area_values_Line_8()
+#define AKN_LAYOUT_TABLE_LIMITS_Signal_strength_area_values_Limits AknLayout::Signal_strength_area_values_Limits()
+#define AKN_LAYOUT_TABLE_Signal_strength_area_values AknLayout::Signal_strength_area_values
+#define AKN_LAYOUT_WINDOW_Battery_pane_elements_Line_1 AknLayout::Battery_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Battery_pane_elements_Line_2 AknLayout::Battery_pane_elements_Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Battery_pane_elements_Limits AknLayout::Battery_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Battery_pane_elements AknLayout::Battery_pane_elements
+#define AKN_LAYOUT_WINDOW_Battery_strength_area_values_Line_1 AknLayout::Battery_strength_area_values_Line_1()
+#define AKN_LAYOUT_WINDOW_Battery_strength_area_values_Line_2 AknLayout::Battery_strength_area_values_Line_2()
+#define AKN_LAYOUT_WINDOW_Battery_strength_area_values_Line_3 AknLayout::Battery_strength_area_values_Line_3()
+#define AKN_LAYOUT_WINDOW_Battery_strength_area_values_Line_4 AknLayout::Battery_strength_area_values_Line_4()
+#define AKN_LAYOUT_WINDOW_Battery_strength_area_values_Line_5 AknLayout::Battery_strength_area_values_Line_5()
+#define AKN_LAYOUT_WINDOW_Battery_strength_area_values_Line_6 AknLayout::Battery_strength_area_values_Line_6()
+#define AKN_LAYOUT_WINDOW_Battery_strength_area_values_Line_7 AknLayout::Battery_strength_area_values_Line_7()
+#define AKN_LAYOUT_WINDOW_Battery_strength_area_values_Line_8 AknLayout::Battery_strength_area_values_Line_8()
+#define AKN_LAYOUT_TABLE_LIMITS_Battery_strength_area_values_Limits AknLayout::Battery_strength_area_values_Limits()
+#define AKN_LAYOUT_TABLE_Battery_strength_area_values AknLayout::Battery_strength_area_values
+#define AKN_LAYOUT_WINDOW_Context_pane_elements_Line_1 AknLayout::Context_pane_elements_Line_1()
+#define AKN_LAYOUT_TEXT_Title_pane_texts_Line_1 AknLayout::Title_pane_texts_Line_1
+#define AKN_LAYOUT_TEXT_Title_pane_texts_Line_2 AknLayout::Title_pane_texts_Line_2
+#define AKN_LAYOUT_MULTILINE_TEXT_Title_pane_texts_Line_2 AknLayout::Multiline_Title_pane_texts_Line_2
+#define AKN_LAYOUT_WINDOW_Title_pane_elements_Line_1 AknLayout::Title_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Universal_indicator_pane_elements_Line_1 AknLayout::Universal_indicator_pane_elements_Line_1
+#define AKN_LAYOUT_WINDOW_Navi_pane_arrow_elements_Line_1 AknLayout::Navi_pane_arrow_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Navi_pane_arrow_elements_Line_2 AknLayout::Navi_pane_arrow_elements_Line_2
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_1 AknLayout::Navi_pane_tab_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_2 AknLayout::Navi_pane_tab_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_3 AknLayout::Navi_pane_tab_elements_Line_3()
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_4 AknLayout::Navi_pane_tab_elements_Line_4()
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_5 AknLayout::Navi_pane_tab_elements_Line_5()
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_6 AknLayout::Navi_pane_tab_elements_Line_6()
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_7 AknLayout::Navi_pane_tab_elements_Line_7()
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_8 AknLayout::Navi_pane_tab_elements_Line_8()
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_9 AknLayout::Navi_pane_tab_elements_Line_9()
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_10 AknLayout::Navi_pane_tab_elements_Line_10()
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_11 AknLayout::Navi_pane_tab_elements_Line_11()
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_12 AknLayout::Navi_pane_tab_elements_Line_12()
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_13 AknLayout::Navi_pane_tab_elements_Line_13()
+#define AKN_LAYOUT_WINDOW_Navi_pane_tab_elements_Line_14 AknLayout::Navi_pane_tab_elements_Line_14()
+#define AKN_LAYOUT_TABLE_LIMITS_Navi_pane_tab_elements_Limits AknLayout::Navi_pane_tab_elements_Limits()
+#define AKN_LAYOUT_TABLE_Navi_pane_tab_elements AknLayout::Navi_pane_tab_elements
+#define AKN_LAYOUT_WINDOW_Elements_on_the_tabs_Line_1 AknLayout::Elements_on_the_tabs_Line_1
+#define AKN_LAYOUT_WINDOW_Elements_on_the_tabs_Line_2 AknLayout::Elements_on_the_tabs_Line_2
+#define AKN_LAYOUT_WINDOW_Elements_on_the_tabs_Line_3 AknLayout::Elements_on_the_tabs_Line_3
+#define AKN_LAYOUT_TABLE_LIMITS_Elements_on_the_tabs_Limits AknLayout::Elements_on_the_tabs_Limits()
+#define AKN_LAYOUT_TABLE_Elements_on_the_tabs AknLayout::Elements_on_the_tabs
+#define AKN_LAYOUT_TEXT_Texts_on_the_tabs_Line_1 AknLayout::Texts_on_the_tabs_Line_1
+#define AKN_LAYOUT_TEXT_Texts_on_the_tabs_Line_2 AknLayout::Texts_on_the_tabs_Line_2
+#define AKN_LAYOUT_TEXT_Texts_on_the_tabs_Line_3 AknLayout::Texts_on_the_tabs_Line_3
+#define AKN_LAYOUT_TEXT_Texts_on_the_tabs_Line_4 AknLayout::Texts_on_the_tabs_Line_4
+#define AKN_LAYOUT_TEXT_Texts_on_the_tabs_Line_5 AknLayout::Texts_on_the_tabs_Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Texts_on_the_tabs_Limits AknLayout::Texts_on_the_tabs_Limits()
+#define AKN_LAYOUT_TABLE_Texts_on_the_tabs AknLayout::Texts_on_the_tabs
+#define AKN_LAYOUT_WINDOW_Navi_pane_icons_Line_1 AknLayout::Navi_pane_icons_Line_1()
+#define AKN_LAYOUT_WINDOW_Navi_pane_icons_Line_2 AknLayout::Navi_pane_icons_Line_2
+#define AKN_LAYOUT_TEXT_Navi_pane_texts_Line_1 AknLayout::Navi_pane_texts_Line_1
+#define AKN_LAYOUT_TEXT_Navi_pane_texts_Line_2 AknLayout::Navi_pane_texts_Line_2
+#define AKN_LAYOUT_TEXT_Navi_pane_texts_Line_3 AknLayout::Navi_pane_texts_Line_3
+#define AKN_LAYOUT_TEXT_Navi_pane_texts_Line_4 AknLayout::Navi_pane_texts_Line_4()
+#define AKN_LAYOUT_TEXT_Navi_pane_texts_Line_5 AknLayout::Navi_pane_texts_Line_5()
+#define AKN_LAYOUT_TEXT_Navi_pane_texts_Line_6 AknLayout::Navi_pane_texts_Line_6
+#define AKN_LAYOUT_TEXT_Navi_pane_texts_Line_7 AknLayout::Navi_pane_texts_Line_7
+#define AKN_LAYOUT_WINDOW_Navi_pane_area_for_editing_status_icons_Line_1 AknLayout::Navi_pane_area_for_editing_status_icons_Line_1()
+#define AKN_LAYOUT_WINDOW_Volume_glider_elements__one__Line_1 AknLayout::Volume_glider_elements__one__Line_1
+#define AKN_LAYOUT_WINDOW_volume_navi_pane AknLayout::volume_navi_pane
+#define AKN_LAYOUT_TABLE_LIMITS_Volume_glider_elements__one__Limits AknLayout::Volume_glider_elements__one__Limits()
+#define AKN_LAYOUT_TABLE_Volume_glider_elements__one_ AknLayout::Volume_glider_elements__one_
+#define AKN_LAYOUT_WINDOW_Volume_pane_elements__one__Line_1 AknLayout::Volume_pane_elements__one__Line_1
+#define AKN_LAYOUT_WINDOW_Volume_pane_elements__one__Line_2 AknLayout::Volume_pane_elements__one__Line_2
+#define AKN_LAYOUT_WINDOW_Volume_pane_elements__one__Line_3 AknLayout::Volume_pane_elements__one__Line_3
+#define AKN_LAYOUT_WINDOW_Volume_pane_elements__one__Line_4 AknLayout::Volume_pane_elements__one__Line_4
+#define AKN_LAYOUT_WINDOW_Volume_pane_elements__one__Line_5 AknLayout::Volume_pane_elements__one__Line_5
+#define AKN_LAYOUT_WINDOW_Volume_pane_elements__one__Line_6 AknLayout::Volume_pane_elements__one__Line_6
+#define AKN_LAYOUT_WINDOW_Volume_pane_elements__one__Line_7 AknLayout::Volume_pane_elements__one__Line_7
+#define AKN_LAYOUT_WINDOW_Volume_pane_elements__one__Line_8 AknLayout::Volume_pane_elements__one__Line_8
+#define AKN_LAYOUT_WINDOW_Volume_pane_elements__one__Line_9 AknLayout::Volume_pane_elements__one__Line_9
+#define AKN_LAYOUT_WINDOW_Volume_pane_elements__one__Line_10 AknLayout::Volume_pane_elements__one__Line_10
+#define AKN_LAYOUT_TABLE_LIMITS_Volume_pane_elements__one__Limits AknLayout::Volume_pane_elements__one__Limits()
+#define AKN_LAYOUT_TABLE_Volume_pane_elements__one_ AknLayout::Volume_pane_elements__one_
+#define AKN_LAYOUT_WINDOW_list_gen_pane AknLayout::list_gen_pane
+#define AKN_LAYOUT_WINDOW_find_pane AknLayout::find_pane()
+#define AKN_LAYOUT_WINDOW_wallpaper_pane AknLayout::wallpaper_pane()
+#define AKN_LAYOUT_WINDOW_indicator_pane AknLayout::indicator_pane()
+#define AKN_LAYOUT_WINDOW_soft_indicator_pane AknLayout::soft_indicator_pane
+#define AKN_LAYOUT_WINDOW_A_column AknLayout::A_column()
+#define AKN_LAYOUT_WINDOW_B_column AknLayout::B_column()
+#define AKN_LAYOUT_WINDOW_C_column AknLayout::C_column()
+#define AKN_LAYOUT_WINDOW_D_column AknLayout::D_column()
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_column_division_Limits AknLayout::List_pane_column_division_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_column_division AknLayout::List_pane_column_division
+#define AKN_LAYOUT_WINDOW_list_single_pane AknLayout::list_single_pane
+#define AKN_LAYOUT_WINDOW_list_single_number_pane AknLayout::list_single_number_pane
+#define AKN_LAYOUT_WINDOW_list_single_heading_pane AknLayout::list_single_heading_pane
+#define AKN_LAYOUT_WINDOW_list_single_graphic_pane AknLayout::list_single_graphic_pane
+#define AKN_LAYOUT_WINDOW_list_single_graphic_heading_pane AknLayout::list_single_graphic_heading_pane
+#define AKN_LAYOUT_WINDOW_list_single_number_heading_pane AknLayout::list_single_number_heading_pane
+#define AKN_LAYOUT_WINDOW_list_single_large_graphic_pane AknLayout::list_single_large_graphic_pane
+#define AKN_LAYOUT_WINDOW_list_double_pane AknLayout::list_double_pane
+#define AKN_LAYOUT_WINDOW_list_double2_pane AknLayout::list_double2_pane
+#define AKN_LAYOUT_WINDOW_list_double_number_pane_list_single_big_number_pane AknLayout::list_double_number_pane_list_single_big_number_pane
+#define AKN_LAYOUT_WINDOW_list_double_time_pane AknLayout::list_double_time_pane
+#define AKN_LAYOUT_WINDOW_list_double_large_graphic_pane_list_double2_large_graphic_pane_list_single_big_large_graphic_pane AknLayout::list_double_large_graphic_pane_list_double2_large_graphic_pane_list_single_big_large_graphic_pane
+#define AKN_LAYOUT_WINDOW_list_double_graphic_pane_list_double2_graphic_pane AknLayout::list_double_graphic_pane_list_double2_graphic_pane
+#define AKN_LAYOUT_WINDOW_list_single_big_heading_graphic_pane AknLayout::list_single_big_heading_graphic_pane
+#define AKN_LAYOUT_WINDOW_list_single_big_heading_pane AknLayout::list_single_big_heading_pane
+#define AKN_LAYOUT_WINDOW_list_setting_pane_list_big_setting_pane AknLayout::list_setting_pane_list_big_setting_pane
+#define AKN_LAYOUT_WINDOW_list_setting_number_pane_list_big_setting_number_pane AknLayout::list_setting_number_pane_list_big_setting_number_pane
+#define AKN_LAYOUT_WINDOW_list_setting_double2_pane AknLayout::list_setting_double2_pane
+#define AKN_LAYOUT_WINDOW_list_double2_graphic_pane AknLayout::list_double2_graphic_pane
+#define AKN_LAYOUT_WINDOW_list_double2_large_graphic_pane AknLayout::list_double2_large_graphic_pane
+#define AKN_LAYOUT_WINDOW_list_single_2graphic_pane AknLayout::list_single_2graphic_pane
+#define AKN_LAYOUT_WINDOW_list_double2_graphic_large_graphic_pane AknLayout::list_double2_graphic_large_graphic_pane
+#define AKN_LAYOUT_TABLE_LIMITS_General_list_pane_descendants_Limits AknLayout::General_list_pane_descendants_Limits()
+#define AKN_LAYOUT_TABLE_General_list_pane_descendants AknLayout::General_list_pane_descendants
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single__Line_1 AknLayout::List_pane_elements__single__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single__Line_2 AknLayout::List_pane_elements__single__Line_2
+#define AKN_LAYOUT_TEXT_List_pane_texts__single__Line_1 AknLayout::List_pane_texts__single__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_number__Line_1 AknLayout::List_pane_elements__single_number__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_number__Line_2 AknLayout::List_pane_elements__single_number__Line_2
+#define AKN_LAYOUT_TEXT_List_pane_texts__single_number__Line_1 AknLayout::List_pane_texts__single_number__Line_1()
+#define AKN_LAYOUT_TEXT_List_pane_texts__single_number__Line_2 AknLayout::List_pane_texts__single_number__Line_2
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_heading__Line_1 AknLayout::List_pane_elements__single_heading__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_heading__Line_2 AknLayout::List_pane_elements__single_heading__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_heading__Line_3 AknLayout::List_pane_elements__single_heading__Line_3
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__single_heading__SUB_TABLE_0_Limits AknLayout::List_pane_elements__single_heading__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__single_heading__SUB_TABLE_0 AknLayout::List_pane_elements__single_heading__SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_List_pane_texts__single_heading__Line_1 AknLayout::List_pane_texts__single_heading__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__single_heading__Line_2 AknLayout::List_pane_texts__single_heading__Line_2
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_texts__single_heading__Limits AknLayout::List_pane_texts__single_heading__Limits()
+#define AKN_LAYOUT_TABLE_List_pane_texts__single_heading_ AknLayout::List_pane_texts__single_heading_
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_graphic__Line_1 AknLayout::List_pane_elements__single_graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_graphic__Line_2 AknLayout::List_pane_elements__single_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_graphic__Line_3 AknLayout::List_pane_elements__single_graphic__Line_3
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__single_graphic__SUB_TABLE_0_Limits AknLayout::List_pane_elements__single_graphic__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__single_graphic__SUB_TABLE_0 AknLayout::List_pane_elements__single_graphic__SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_List_pane_texts__single_graphic__Line_1 AknLayout::List_pane_texts__single_graphic__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_graphic_heading__Line_1 AknLayout::List_pane_elements__single_graphic_heading__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_graphic_heading__Line_2 AknLayout::List_pane_elements__single_graphic_heading__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_graphic_heading__Line_3 AknLayout::List_pane_elements__single_graphic_heading__Line_3()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_graphic_heading__Line_4 AknLayout::List_pane_elements__single_graphic_heading__Line_4
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__single_graphic_heading__SUB_TABLE_0_Limits AknLayout::List_pane_elements__single_graphic_heading__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__single_graphic_heading__SUB_TABLE_0 AknLayout::List_pane_elements__single_graphic_heading__SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_List_pane_texts__single_graphic_heading__Line_1 AknLayout::List_pane_texts__single_graphic_heading__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__single_graphic_heading__Line_2 AknLayout::List_pane_texts__single_graphic_heading__Line_2
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_texts__single_graphic_heading__Limits AknLayout::List_pane_texts__single_graphic_heading__Limits()
+#define AKN_LAYOUT_TABLE_List_pane_texts__single_graphic_heading_ AknLayout::List_pane_texts__single_graphic_heading_
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_number_heading__Line_1 AknLayout::List_pane_elements__single_number_heading__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_number_heading__Line_2 AknLayout::List_pane_elements__single_number_heading__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_number_heading__Line_3 AknLayout::List_pane_elements__single_number_heading__Line_3
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__single_number_heading__SUB_TABLE_0_Limits AknLayout::List_pane_elements__single_number_heading__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__single_number_heading__SUB_TABLE_0 AknLayout::List_pane_elements__single_number_heading__SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_List_pane_texts__single_number_heading__Line_1 AknLayout::List_pane_texts__single_number_heading__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__single_number_heading__Line_2 AknLayout::List_pane_texts__single_number_heading__Line_2
+#define AKN_LAYOUT_TEXT_List_pane_texts__single_number_heading__Line_3 AknLayout::List_pane_texts__single_number_heading__Line_3
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_texts__single_number_heading__Limits AknLayout::List_pane_texts__single_number_heading__Limits()
+#define AKN_LAYOUT_TABLE_List_pane_texts__single_number_heading_ AknLayout::List_pane_texts__single_number_heading_
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_large_graphic__Line_1 AknLayout::List_pane_elements__single_large_graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_large_graphic__Line_2 AknLayout::List_pane_elements__single_large_graphic__Line_2
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_large_graphic__Line_3 AknLayout::List_pane_elements__single_large_graphic__Line_3
+#define AKN_LAYOUT_WINDOW_do_not_use_empty_pane1 AknLayout::do_not_use_empty_pane1()
+#define AKN_LAYOUT_WINDOW_do_not_use_empty_pane2 AknLayout::do_not_use_empty_pane2()
+#define AKN_LAYOUT_TEXT_List_pane_texts__single_large_graphic__Line_1 AknLayout::List_pane_texts__single_large_graphic__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double__Line_1 AknLayout::List_pane_elements__double__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double__Line_2 AknLayout::List_pane_elements__double__Line_2
+#define AKN_LAYOUT_TEXT_List_pane_texts__double__Line_1 AknLayout::List_pane_texts__double__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__double__Line_2 AknLayout::List_pane_texts__double__Line_2()
+#define AKN_LAYOUT_TEXT_List_pane_text__double2__Line_1 AknLayout::List_pane_text__double2__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_text__double2__Line_2 AknLayout::List_pane_text__double2__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_number__Line_1 AknLayout::List_pane_elements__double_number__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_number__Line_2 AknLayout::List_pane_elements__double_number__Line_2
+#define AKN_LAYOUT_TEXT_List_pane_texts__double_number__Line_1 AknLayout::List_pane_texts__double_number__Line_1()
+#define AKN_LAYOUT_TEXT_List_pane_texts__double_number__Line_2 AknLayout::List_pane_texts__double_number__Line_2
+#define AKN_LAYOUT_TEXT_List_pane_texts__double_number__Line_3 AknLayout::List_pane_texts__double_number__Line_3()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_graphic__Line_1 AknLayout::List_pane_elements__double_graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_graphic__Line_2 AknLayout::List_pane_elements__double_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_graphic__Line_3 AknLayout::List_pane_elements__double_graphic__Line_3
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__double_graphic__SUB_TABLE_0_Limits AknLayout::List_pane_elements__double_graphic__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__double_graphic__SUB_TABLE_0 AknLayout::List_pane_elements__double_graphic__SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_List_pane_texts__double_graphic__Line_1 AknLayout::List_pane_texts__double_graphic__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__double_graphic__Line_2 AknLayout::List_pane_texts__double_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double2_graphic__Line_1 AknLayout::List_pane_elements__double2_graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double2_graphic__Line_2 AknLayout::List_pane_elements__double2_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double2_graphic__Line_3 AknLayout::List_pane_elements__double2_graphic__Line_3
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__double2_graphic__SUB_TABLE_0_Limits AknLayout::List_pane_elements__double2_graphic__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__double2_graphic__SUB_TABLE_0 AknLayout::List_pane_elements__double2_graphic__SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_List_pane_texts__double2_graphic__Line_1 AknLayout::List_pane_texts__double2_graphic__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__double2_graphic__Line_2 AknLayout::List_pane_texts__double2_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double2_large_graphic__Line_1 AknLayout::List_pane_elements__double2_large_graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double2_large_graphic__Line_2 AknLayout::List_pane_elements__double2_large_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double2_large_graphic__Line_3 AknLayout::List_pane_elements__double2_large_graphic__Line_3
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__double2_large_graphic__SUB_TABLE_0_Limits AknLayout::List_pane_elements__double2_large_graphic__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__double2_large_graphic__SUB_TABLE_0 AknLayout::List_pane_elements__double2_large_graphic__SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_List_pane_texts__double2_large_graphic__Line_1 AknLayout::List_pane_texts__double2_large_graphic__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__double2_large_graphic__Line_2 AknLayout::List_pane_texts__double2_large_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__large_single_heading_graphic__Line_1 AknLayout::List_pane_elements__large_single_heading_graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__large_single_heading_graphic__Line_2 AknLayout::List_pane_elements__large_single_heading_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__large_single_heading_graphic__Line_3 AknLayout::List_pane_elements__large_single_heading_graphic__Line_3
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__large_single_heading_graphic__SUB_TABLE_0_Limits AknLayout::List_pane_elements__large_single_heading_graphic__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__large_single_heading_graphic__SUB_TABLE_0 AknLayout::List_pane_elements__large_single_heading_graphic__SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_List_pane_texts__large_single_heading_graphic__Line_1 AknLayout::List_pane_texts__large_single_heading_graphic__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__large_single_heading_graphic__Line_2 AknLayout::List_pane_texts__large_single_heading_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__large_single_heading__Line_1 AknLayout::List_pane_elements__large_single_heading__Line_1()
+#define AKN_LAYOUT_TEXT_List_pane_texts__large_single_heading__Line_1 AknLayout::List_pane_texts__large_single_heading__Line_1()
+#define AKN_LAYOUT_TEXT_List_pane_texts__large_single_heading__Line_2 AknLayout::List_pane_texts__large_single_heading__Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_texts__large_single_heading__Limits AknLayout::List_pane_texts__large_single_heading__Limits()
+#define AKN_LAYOUT_TABLE_List_pane_texts__large_single_heading_ AknLayout::List_pane_texts__large_single_heading_
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_time__Line_1 AknLayout::List_pane_elements__double_time__Line_1()
+#define AKN_LAYOUT_TEXT_List_pane_texts__double_time__Line_1 AknLayout::List_pane_texts__double_time__Line_1()
+#define AKN_LAYOUT_TEXT_List_pane_texts__double_time__Line_2 AknLayout::List_pane_texts__double_time__Line_2()
+#define AKN_LAYOUT_TEXT_List_pane_texts__double_time__Line_3 AknLayout::List_pane_texts__double_time__Line_3()
+#define AKN_LAYOUT_TEXT_List_pane_texts__double_time__Line_4 AknLayout::List_pane_texts__double_time__Line_4()
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_texts__double_time__Limits AknLayout::List_pane_texts__double_time__Limits()
+#define AKN_LAYOUT_TABLE_List_pane_texts__double_time_ AknLayout::List_pane_texts__double_time_
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_large_graphic__Line_1 AknLayout::List_pane_elements__double_large_graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_large_graphic__Line_2 AknLayout::List_pane_elements__double_large_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_large_graphic__Line_3 AknLayout::List_pane_elements__double_large_graphic__Line_3()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_large_graphic__Line_4 AknLayout::List_pane_elements__double_large_graphic__Line_4()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_large_graphic__Line_5 AknLayout::List_pane_elements__double_large_graphic__Line_5()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_large_graphic__Line_6 AknLayout::List_pane_elements__double_large_graphic__Line_6()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_large_graphic__Line_7 AknLayout::List_pane_elements__double_large_graphic__Line_7()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_large_graphic__Line_8 AknLayout::List_pane_elements__double_large_graphic__Line_8()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_large_graphic__Line_9 AknLayout::List_pane_elements__double_large_graphic__Line_9
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double_large_graphic__Line_10 AknLayout::List_pane_elements__double_large_graphic__Line_10()
+#define AKN_LAYOUT_TEXT_List_pane_texts__double_large_graphic__Line_1 AknLayout::List_pane_texts__double_large_graphic__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__double_large_graphic__Line_2 AknLayout::List_pane_texts__double_large_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting__Line_1 AknLayout::List_pane_elements__setting__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting__Line_2 AknLayout::List_pane_elements__setting__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting__Line_3 AknLayout::List_pane_elements__setting__Line_3()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting__Line_4 AknLayout::List_pane_elements__setting__Line_4()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting__Line_5 AknLayout::List_pane_elements__setting__Line_5()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting__Line_6 AknLayout::List_pane_elements__setting__Line_6()
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__setting__Limits AknLayout::List_pane_elements__setting__Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__setting_ AknLayout::List_pane_elements__setting_
+#define AKN_LAYOUT_TEXT_List_pane_texts__setting__Line_1 AknLayout::List_pane_texts__setting__Line_1()
+#define AKN_LAYOUT_TEXT_List_pane_texts__setting__Line_2 AknLayout::List_pane_texts__setting__Line_2()
+#define AKN_LAYOUT_TEXT_List_pane_texts__setting__Line_3 AknLayout::List_pane_texts__setting__Line_3()
+#define AKN_LAYOUT_TEXT_List_pane_texts__setting__Line_4 AknLayout::List_pane_texts__setting__Line_4()
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_texts__setting__Limits AknLayout::List_pane_texts__setting__Limits()
+#define AKN_LAYOUT_TABLE_List_pane_texts__setting_ AknLayout::List_pane_texts__setting_
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting_number__Line_1 AknLayout::List_pane_elements__setting_number__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting_number__Line_2 AknLayout::List_pane_elements__setting_number__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting_number__Line_3 AknLayout::List_pane_elements__setting_number__Line_3()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting_number__Line_4 AknLayout::List_pane_elements__setting_number__Line_4()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting_number__Line_5 AknLayout::List_pane_elements__setting_number__Line_5()
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__setting_number__Limits AknLayout::List_pane_elements__setting_number__Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__setting_number_ AknLayout::List_pane_elements__setting_number_
+#define AKN_LAYOUT_TEXT_List_pane_texts__setting_number__Line_1 AknLayout::List_pane_texts__setting_number__Line_1()
+#define AKN_LAYOUT_TEXT_List_pane_texts__setting_number__Line_2 AknLayout::List_pane_texts__setting_number__Line_2()
+#define AKN_LAYOUT_TEXT_List_pane_texts__setting_number__Line_3 AknLayout::List_pane_texts__setting_number__Line_3()
+#define AKN_LAYOUT_TEXT_List_pane_texts__setting_number__Line_4 AknLayout::List_pane_texts__setting_number__Line_4()
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_texts__setting_number__Limits AknLayout::List_pane_texts__setting_number__Limits()
+#define AKN_LAYOUT_TABLE_List_pane_texts__setting_number_ AknLayout::List_pane_texts__setting_number_
+#define AKN_LAYOUT_WINDOW_Setting_volume_elements_Line_1 AknLayout::Setting_volume_elements_Line_1
+#define AKN_LAYOUT_WINDOW_Setting_volume_elements_Line_2 AknLayout::Setting_volume_elements_Line_2
+#define AKN_LAYOUT_WINDOW_Setting_volume_elements_Line_3 AknLayout::Setting_volume_elements_Line_3
+#define AKN_LAYOUT_WINDOW_Setting_volume_elements_Line_4 AknLayout::Setting_volume_elements_Line_4
+#define AKN_LAYOUT_WINDOW_Setting_volume_elements_Line_5 AknLayout::Setting_volume_elements_Line_5
+#define AKN_LAYOUT_WINDOW_Setting_volume_elements_Line_6 AknLayout::Setting_volume_elements_Line_6
+#define AKN_LAYOUT_WINDOW_Setting_volume_elements_Line_7 AknLayout::Setting_volume_elements_Line_7
+#define AKN_LAYOUT_WINDOW_Setting_volume_elements_Line_8 AknLayout::Setting_volume_elements_Line_8
+#define AKN_LAYOUT_WINDOW_Setting_volume_elements_Line_9 AknLayout::Setting_volume_elements_Line_9
+#define AKN_LAYOUT_WINDOW_Setting_volume_elements_Line_10 AknLayout::Setting_volume_elements_Line_10
+#define AKN_LAYOUT_TABLE_LIMITS_Setting_volume_elements_Limits AknLayout::Setting_volume_elements_Limits()
+#define AKN_LAYOUT_TABLE_Setting_volume_elements AknLayout::Setting_volume_elements
+#define AKN_LAYOUT_WINDOW_Setting_slider_elements_Line_1 AknLayout::Setting_slider_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting_double2__Line_1 AknLayout::List_pane_elements__setting_double2__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting_double2__Line_2 AknLayout::List_pane_elements__setting_double2__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__setting_double2__Line_3 AknLayout::List_pane_elements__setting_double2__Line_3()
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__setting_double2__Limits AknLayout::List_pane_elements__setting_double2__Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__setting_double2_ AknLayout::List_pane_elements__setting_double2_
+#define AKN_LAYOUT_WINDOW_List_pane_lines__A_column__Line_1 AknLayout::List_pane_lines__A_column__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_lines__A_column__Line_2 AknLayout::List_pane_lines__A_column__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_lines__AB_columns__Line_1 AknLayout::List_pane_lines__AB_columns__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_lines__AB_columns__Line_2 AknLayout::List_pane_lines__AB_columns__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_lines__BC_columns__Line_1 AknLayout::List_pane_lines__BC_columns__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_lines__BC_columns__Line_2 AknLayout::List_pane_lines__BC_columns__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_highlight_graphics__various__Line_1 AknLayout::List_pane_highlight_graphics__various__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_highlight_graphics__various__Line_2 AknLayout::List_pane_highlight_graphics__various__Line_2
+#define AKN_LAYOUT_WINDOW_List_pane_highlight_graphics__various__Line_3 AknLayout::List_pane_highlight_graphics__various__Line_3
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_highlight_graphics__various__SUB_TABLE_0_Limits AknLayout::List_pane_highlight_graphics__various__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_highlight_graphics__various__SUB_TABLE_0 AknLayout::List_pane_highlight_graphics__various__SUB_TABLE_0
+#define AKN_LAYOUT_WINDOW_List_pane_highlight_graphics__setting_number__Line_1 AknLayout::List_pane_highlight_graphics__setting_number__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_highlight_graphics__setting_number__Line_2 AknLayout::List_pane_highlight_graphics__setting_number__Line_2
+#define AKN_LAYOUT_WINDOW_List_pane_highlight_graphics__setting_number__Line_3 AknLayout::List_pane_highlight_graphics__setting_number__Line_3()
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_highlight_graphics__setting_number__SUB_TABLE_0_Limits AknLayout::List_pane_highlight_graphics__setting_number__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_highlight_graphics__setting_number__SUB_TABLE_0 AknLayout::List_pane_highlight_graphics__setting_number__SUB_TABLE_0
+#define AKN_LAYOUT_WINDOW_Find_pane_elements_Line_1 AknLayout::Find_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Find_pane_elements_Line_2 AknLayout::Find_pane_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Find_pane_elements_Line_3 AknLayout::Find_pane_elements_Line_3()
+#define AKN_LAYOUT_WINDOW_Find_pane_elements_Line_4 AknLayout::Find_pane_elements_Line_4()
+#define AKN_LAYOUT_WINDOW_Find_pane_elements_Line_5 AknLayout::Find_pane_elements_Line_5()
+#define AKN_LAYOUT_TABLE_LIMITS_Find_pane_elements_Limits AknLayout::Find_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Find_pane_elements AknLayout::Find_pane_elements
+#define AKN_LAYOUT_TEXT_Find_pane_texts_Line_1 AknLayout::Find_pane_texts_Line_1()
+#define AKN_LAYOUT_WINDOW_form_field_data_pane AknLayout::form_field_data_pane
+#define AKN_LAYOUT_WINDOW_form_field_data_wide_pane AknLayout::form_field_data_wide_pane
+#define AKN_LAYOUT_WINDOW_form_field_popup_pane AknLayout::form_field_popup_pane
+#define AKN_LAYOUT_WINDOW_form_field_popup_wide_pane AknLayout::form_field_popup_wide_pane
+#define AKN_LAYOUT_WINDOW_form_field_slider_pane AknLayout::form_field_slider_pane
+#define AKN_LAYOUT_WINDOW_form_field_slider_wide_pane AknLayout::form_field_slider_wide_pane
+#define AKN_LAYOUT_TABLE_LIMITS_Form_descendant_panes_Limits AknLayout::Form_descendant_panes_Limits()
+#define AKN_LAYOUT_TABLE_Form_descendant_panes AknLayout::Form_descendant_panes
+#define AKN_LAYOUT_WINDOW_Form_data_field_elements_Line_1 AknLayout::Form_data_field_elements_Line_1
+#define AKN_LAYOUT_WINDOW_Form_data_field_elements_Line_2 AknLayout::Form_data_field_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Form_data_field_elements_Line_3 AknLayout::Form_data_field_elements_Line_3
+#define AKN_LAYOUT_WINDOW_Form_data_field_elements_Line_4 AknLayout::Form_data_field_elements_Line_4()
+#define AKN_LAYOUT_TEXT_Form_data_field_texts_Line_1 AknLayout::Form_data_field_texts_Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Form_data_field_texts_Line_1 AknLayout::Multiline_Form_data_field_texts_Line_1
+#define AKN_LAYOUT_TEXT_Form_data_field_texts_Line_2 AknLayout::Form_data_field_texts_Line_2
+#define AKN_LAYOUT_MULTILINE_TEXT_Form_data_field_texts_Line_2 AknLayout::Multiline_Form_data_field_texts_Line_2
+#define AKN_LAYOUT_WINDOW_Form_data_wide_field_elements_Line_1 AknLayout::Form_data_wide_field_elements_Line_1
+#define AKN_LAYOUT_WINDOW_Form_data_wide_field_elements_Line_2 AknLayout::Form_data_wide_field_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Form_data_wide_field_elements_Line_3 AknLayout::Form_data_wide_field_elements_Line_3
+#define AKN_LAYOUT_WINDOW_Form_data_wide_field_elements_Line_4 AknLayout::Form_data_wide_field_elements_Line_4()
+#define AKN_LAYOUT_TEXT_Form_data_wide_field_texts_Line_1 AknLayout::Form_data_wide_field_texts_Line_1()
+#define AKN_LAYOUT_TEXT_Form_data_wide_field_texts_Line_2 AknLayout::Form_data_wide_field_texts_Line_2
+#define AKN_LAYOUT_MULTILINE_TEXT_Form_data_wide_field_texts_Line_2 AknLayout::Multiline_Form_data_wide_field_texts_Line_2
+#define AKN_LAYOUT_WINDOW_Form_pop_up_field_elements_and_descendants_Line_1 AknLayout::Form_pop_up_field_elements_and_descendants_Line_1
+#define AKN_LAYOUT_WINDOW_Form_pop_up_field_elements_and_descendants_Line_2 AknLayout::Form_pop_up_field_elements_and_descendants_Line_2()
+#define AKN_LAYOUT_WINDOW_Form_pop_up_field_elements_and_descendants_Line_3 AknLayout::Form_pop_up_field_elements_and_descendants_Line_3
+#define AKN_LAYOUT_WINDOW_Form_pop_up_field_elements_and_descendants_Line_4 AknLayout::Form_pop_up_field_elements_and_descendants_Line_4()
+#define AKN_LAYOUT_WINDOW_Form_pop_up_field_elements_and_descendants_Line_5 AknLayout::Form_pop_up_field_elements_and_descendants_Line_5()
+#define AKN_LAYOUT_WINDOW_list_form_pane AknLayout::list_form_pane
+#define AKN_LAYOUT_WINDOW_list_form_graphic_pane AknLayout::list_form_graphic_pane
+#define AKN_LAYOUT_WINDOW_List_pane_elements__form_graphic__Line_1 AknLayout::List_pane_elements__form_graphic__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_elements__form_graphic__Line_2 AknLayout::List_pane_elements__form_graphic__Line_2()
+#define AKN_LAYOUT_TEXT_List_pane_texts__form_graphic__Line_1 AknLayout::List_pane_texts__form_graphic__Line_1
+#define AKN_LAYOUT_WINDOW_Form_pop_up_wide_field_elements_and_descendants_Line_1 AknLayout::Form_pop_up_wide_field_elements_and_descendants_Line_1
+#define AKN_LAYOUT_WINDOW_Form_pop_up_wide_field_elements_and_descendants_Line_2 AknLayout::Form_pop_up_wide_field_elements_and_descendants_Line_2()
+#define AKN_LAYOUT_WINDOW_Form_pop_up_wide_field_elements_and_descendants_Line_3 AknLayout::Form_pop_up_wide_field_elements_and_descendants_Line_3
+#define AKN_LAYOUT_WINDOW_Form_pop_up_wide_field_elements_and_descendants_Line_4 AknLayout::Form_pop_up_wide_field_elements_and_descendants_Line_4()
+#define AKN_LAYOUT_WINDOW_Form_pop_up_wide_field_elements_and_descendants_Line_5 AknLayout::Form_pop_up_wide_field_elements_and_descendants_Line_5()
+#define AKN_LAYOUT_WINDOW_list_form_wide_pane AknLayout::list_form_wide_pane
+#define AKN_LAYOUT_WINDOW_list_form_graphic_wide_pane AknLayout::list_form_graphic_wide_pane
+#define AKN_LAYOUT_WINDOW_List_pane_elements__form_graphic_wide__Line_1 AknLayout::List_pane_elements__form_graphic_wide__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_elements__form_graphic_wide__Line_2 AknLayout::List_pane_elements__form_graphic_wide__Line_2()
+#define AKN_LAYOUT_TEXT_List_pane_texts__form_graphic_wide__Line_1 AknLayout::List_pane_texts__form_graphic_wide__Line_1
+#define AKN_LAYOUT_WINDOW_Form_slider_field_elements_and_descendants_Line_1 AknLayout::Form_slider_field_elements_and_descendants_Line_1
+#define AKN_LAYOUT_WINDOW_Form_slider_field_elements_and_descendants_Line_2 AknLayout::Form_slider_field_elements_and_descendants_Line_2()
+#define AKN_LAYOUT_WINDOW_Form_slider_field_elements_and_descendants_Line_3 AknLayout::Form_slider_field_elements_and_descendants_Line_3
+#define AKN_LAYOUT_WINDOW_Form_slider_field_elements_and_descendants_Line_4 AknLayout::Form_slider_field_elements_and_descendants_Line_4()
+#define AKN_LAYOUT_WINDOW_Form_slider_field_elements_and_descendants_Line_5 AknLayout::Form_slider_field_elements_and_descendants_Line_5()
+#define AKN_LAYOUT_WINDOW_Form_slider_field_elements_and_descendants_Line_6 AknLayout::Form_slider_field_elements_and_descendants_Line_6
+#define AKN_LAYOUT_WINDOW_Slider_pane_elements__form__Line_1 AknLayout::Slider_pane_elements__form__Line_1()
+#define AKN_LAYOUT_WINDOW_Slider_pane_elements__form__Line_2 AknLayout::Slider_pane_elements__form__Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Slider_pane_elements__form__Limits AknLayout::Slider_pane_elements__form__Limits()
+#define AKN_LAYOUT_TABLE_Slider_pane_elements__form_ AknLayout::Slider_pane_elements__form_
+#define AKN_LAYOUT_TEXT_Form_slider_field_texts_Line_1 AknLayout::Form_slider_field_texts_Line_1()
+#define AKN_LAYOUT_TEXT_Form_slider_field_texts_Line_2 AknLayout::Form_slider_field_texts_Line_2()
+#define AKN_LAYOUT_TEXT_Form_slider_field_texts_Line_3 AknLayout::Form_slider_field_texts_Line_3
+#define AKN_LAYOUT_MULTILINE_TEXT_Form_slider_field_texts_Line_3 AknLayout::Multiline_Form_slider_field_texts_Line_3
+#define AKN_LAYOUT_TABLE_LIMITS_Form_slider_field_texts_SUB_TABLE_0_Limits AknLayout::Form_slider_field_texts_SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_Form_slider_field_texts_SUB_TABLE_0 AknLayout::Form_slider_field_texts_SUB_TABLE_0
+#define AKN_LAYOUT_WINDOW_Form_slider_field_elements_and_descendants_dup_Line_1 AknLayout::Form_slider_field_elements_and_descendants_dup_Line_1
+#define AKN_LAYOUT_WINDOW_Form_slider_field_elements_and_descendants_dup_Line_2 AknLayout::Form_slider_field_elements_and_descendants_dup_Line_2()
+#define AKN_LAYOUT_WINDOW_Form_slider_field_elements_and_descendants_dup_Line_3 AknLayout::Form_slider_field_elements_and_descendants_dup_Line_3
+#define AKN_LAYOUT_WINDOW_Form_slider_field_elements_and_descendants_dup_Line_4 AknLayout::Form_slider_field_elements_and_descendants_dup_Line_4()
+#define AKN_LAYOUT_WINDOW_Form_slider_field_elements_and_descendants_dup_Line_5 AknLayout::Form_slider_field_elements_and_descendants_dup_Line_5()
+#define AKN_LAYOUT_WINDOW_Form_slider_field_elements_and_descendants_dup_Line_6 AknLayout::Form_slider_field_elements_and_descendants_dup_Line_6
+#define AKN_LAYOUT_WINDOW_Slider_pane_elements__form__dup_Line_1 AknLayout::Slider_pane_elements__form__dup_Line_1()
+#define AKN_LAYOUT_WINDOW_Slider_pane_elements__form__dup_Line_2 AknLayout::Slider_pane_elements__form__dup_Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Slider_pane_elements__form__dup_Limits AknLayout::Slider_pane_elements__form__dup_Limits()
+#define AKN_LAYOUT_TABLE_Slider_pane_elements__form__dup AknLayout::Slider_pane_elements__form__dup
+#define AKN_LAYOUT_TEXT_Form_slider_field_texts_dup_Line_1 AknLayout::Form_slider_field_texts_dup_Line_1()
+#define AKN_LAYOUT_TEXT_Form_slider_field_texts_dup_Line_2 AknLayout::Form_slider_field_texts_dup_Line_2()
+#define AKN_LAYOUT_TEXT_Form_slider_field_texts_dup_Line_3 AknLayout::Form_slider_field_texts_dup_Line_3
+#define AKN_LAYOUT_MULTILINE_TEXT_Form_slider_field_texts_dup_Line_3 AknLayout::Multiline_Form_slider_field_texts_dup_Line_3
+#define AKN_LAYOUT_TABLE_LIMITS_Form_slider_field_texts_dup_SUB_TABLE_0_Limits AknLayout::Form_slider_field_texts_dup_SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_Form_slider_field_texts_dup_SUB_TABLE_0 AknLayout::Form_slider_field_texts_dup_SUB_TABLE_0
+#define AKN_LAYOUT_WINDOW_Cursor_graphics__13__Line_1 AknLayout::Cursor_graphics__13__Line_1()
+#define AKN_LAYOUT_WINDOW_Predictive_text_input_graphics__13__Line_1 AknLayout::Predictive_text_input_graphics__13__Line_1()
+#define AKN_LAYOUT_WINDOW_Predictive_text_input_graphics__13__Line_2 AknLayout::Predictive_text_input_graphics__13__Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Predictive_text_input_graphics__13__Limits AknLayout::Predictive_text_input_graphics__13__Limits()
+#define AKN_LAYOUT_TABLE_Predictive_text_input_graphics__13_ AknLayout::Predictive_text_input_graphics__13_
+#define AKN_LAYOUT_WINDOW_Cut_copy_and_paste_highlight_graphics__13__Line_1 AknLayout::Cut_copy_and_paste_highlight_graphics__13__Line_1()
+#define AKN_LAYOUT_WINDOW_Time_and_date_entry_graphics__13__Line_1 AknLayout::Time_and_date_entry_graphics__13__Line_1()
+#define AKN_LAYOUT_WINDOW_Cursor_graphics__12__Line_1 AknLayout::Cursor_graphics__12__Line_1()
+#define AKN_LAYOUT_WINDOW_Predictive_text_input_graphics__12__Line_1 AknLayout::Predictive_text_input_graphics__12__Line_1()
+#define AKN_LAYOUT_WINDOW_Predictive_text_input_graphics__12__Line_2 AknLayout::Predictive_text_input_graphics__12__Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Predictive_text_input_graphics__12__Limits AknLayout::Predictive_text_input_graphics__12__Limits()
+#define AKN_LAYOUT_TABLE_Predictive_text_input_graphics__12_ AknLayout::Predictive_text_input_graphics__12_
+#define AKN_LAYOUT_WINDOW_Cut_copy_and_paste_highlight_graphics__12__Line_1 AknLayout::Cut_copy_and_paste_highlight_graphics__12__Line_1()
+#define AKN_LAYOUT_WINDOW_Time_and_date_entry_graphics__12__Line_1 AknLayout::Time_and_date_entry_graphics__12__Line_1()
+#define AKN_LAYOUT_WINDOW_list_set_graphic_pane AknLayout::list_set_graphic_pane
+#define AKN_LAYOUT_WINDOW_List_pane_elements__set_graphic__Line_1 AknLayout::List_pane_elements__set_graphic__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_elements__set_graphic__Line_2 AknLayout::List_pane_elements__set_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__set_graphic__Line_3 AknLayout::List_pane_elements__set_graphic__Line_3()
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__set_graphic__SUB_TABLE_0_Limits AknLayout::List_pane_elements__set_graphic__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__set_graphic__SUB_TABLE_0 AknLayout::List_pane_elements__set_graphic__SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_List_pane_texts__set_graphic__Line_1 AknLayout::List_pane_texts__set_graphic__Line_1
+#define AKN_LAYOUT_WINDOW_Application_grid_descendant_Line_1 AknLayout::Application_grid_descendant_Line_1
+#define AKN_LAYOUT_WINDOW_Cell_pane_elements__app__Line_1 AknLayout::Cell_pane_elements__app__Line_1()
+#define AKN_LAYOUT_WINDOW_Cell_pane_elements__app__Line_2 AknLayout::Cell_pane_elements__app__Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Cell_pane_elements__app__Limits AknLayout::Cell_pane_elements__app__Limits()
+#define AKN_LAYOUT_TABLE_Cell_pane_elements__app_ AknLayout::Cell_pane_elements__app_
+#define AKN_LAYOUT_TEXT_Cell_pane_texts__app__Line_1 AknLayout::Cell_pane_texts__app__Line_1()
+#define AKN_LAYOUT_WINDOW_Cell_pane_highlight_elements__various__Line_1 AknLayout::Cell_pane_highlight_elements__various__Line_1
+#define AKN_LAYOUT_WINDOW_Wallpaper_pane_element_Line_1 AknLayout::Wallpaper_pane_element_Line_1
+#define AKN_LAYOUT_WINDOW_Indicator_pane_elements_Line_1 AknLayout::Indicator_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Soft_indicator_pane_elements_Line_1 AknLayout::Soft_indicator_pane_elements_Line_1
+#define AKN_LAYOUT_TEXT_Soft_indicator_pane_texts_Line_1 AknLayout::Soft_indicator_pane_texts_Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Soft_indicator_pane_texts_Line_1 AknLayout::Multiline_Soft_indicator_pane_texts_Line_1
+#define AKN_LAYOUT_WINDOW_power_save_pane AknLayout::power_save_pane
+#define AKN_LAYOUT_WINDOW_Power_save_pane_descendants_Line_1 AknLayout::Power_save_pane_descendants_Line_1()
+#define AKN_LAYOUT_WINDOW_Power_save_pane_descendants_Line_2 AknLayout::Power_save_pane_descendants_Line_2()
+#define AKN_LAYOUT_WINDOW_Power_save_pane_descendants_Line_3 AknLayout::Power_save_pane_descendants_Line_3()
+#define AKN_LAYOUT_TABLE_LIMITS_Power_save_pane_descendants_Limits AknLayout::Power_save_pane_descendants_Limits()
+#define AKN_LAYOUT_TABLE_Power_save_pane_descendants AknLayout::Power_save_pane_descendants
+#define AKN_LAYOUT_TEXT_Idle_power_save_state_texts_Line_1 AknLayout::Idle_power_save_state_texts_Line_1()
+#define AKN_LAYOUT_TEXT_Idle_power_save_state_texts_Line_2 AknLayout::Idle_power_save_state_texts_Line_2()
+#define AKN_LAYOUT_TEXT_Idle_power_save_state_texts_Line_3 AknLayout::Idle_power_save_state_texts_Line_3()
+#define AKN_LAYOUT_TEXT_Idle_power_save_state_texts_Line_4 AknLayout::Idle_power_save_state_texts_Line_4()
+#define AKN_LAYOUT_TABLE_LIMITS_Idle_power_save_state_texts_Limits AknLayout::Idle_power_save_state_texts_Limits()
+#define AKN_LAYOUT_TABLE_Idle_power_save_state_texts AknLayout::Idle_power_save_state_texts
+#define AKN_LAYOUT_WINDOW_grid_app_pane AknLayout::grid_app_pane()
+#define AKN_LAYOUT_TEXT_Empty_list_texts_Line_1 AknLayout::Empty_list_texts_Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Empty_list_texts_Line_1 AknLayout::Multiline_Empty_list_texts_Line_1
+#define AKN_LAYOUT_TEXT_Empty_list_texts__find__Line_1 AknLayout::Empty_list_texts__find__Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Empty_list_texts__find__Line_1 AknLayout::Multiline_Empty_list_texts__find__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_elements_and_descendants__settings_edited__Line_1 AknLayout::List_pane_elements_and_descendants__settings_edited__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements_and_descendants__settings_edited__Line_2 AknLayout::List_pane_elements_and_descendants__settings_edited__Line_2()
+#define AKN_LAYOUT_WINDOW_list_set_pane AknLayout::list_set_pane
+#define AKN_LAYOUT_WINDOW_List_pane_elements_and_descendants__settings_edited__Line_4 AknLayout::List_pane_elements_and_descendants__settings_edited__Line_4()
+#define AKN_LAYOUT_WINDOW_setting_volume_pane AknLayout::setting_volume_pane()
+#define AKN_LAYOUT_WINDOW_setting_slider_pane AknLayout::setting_slider_pane()
+#define AKN_LAYOUT_WINDOW_setting_slider_graphic_pane AknLayout::setting_slider_graphic_pane()
+#define AKN_LAYOUT_WINDOW_setting_text_pane AknLayout::setting_text_pane()
+#define AKN_LAYOUT_WINDOW_setting_code_pane AknLayout::setting_code_pane()
+#define AKN_LAYOUT_TEXT_Setting_item_texts_Line_1 AknLayout::Setting_item_texts_Line_1()
+#define AKN_LAYOUT_TEXT_Setting_item_texts_Line_2 AknLayout::Setting_item_texts_Line_2
+#define AKN_LAYOUT_WINDOW_Setting_volume_pane_elements_Line_1 AknLayout::Setting_volume_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Setting_volume_pane_elements_Line_2 AknLayout::Setting_volume_pane_elements_Line_2
+#define AKN_LAYOUT_WINDOW_Setting_volume_pane_elements_Line_3 AknLayout::Setting_volume_pane_elements_Line_3
+#define AKN_LAYOUT_WINDOW_Setting_volume_pane_elements_Line_4 AknLayout::Setting_volume_pane_elements_Line_4
+#define AKN_LAYOUT_WINDOW_Setting_volume_pane_elements_Line_5 AknLayout::Setting_volume_pane_elements_Line_5
+#define AKN_LAYOUT_WINDOW_Setting_volume_pane_elements_Line_6 AknLayout::Setting_volume_pane_elements_Line_6
+#define AKN_LAYOUT_WINDOW_Setting_volume_pane_elements_Line_7 AknLayout::Setting_volume_pane_elements_Line_7
+#define AKN_LAYOUT_WINDOW_Setting_volume_pane_elements_Line_8 AknLayout::Setting_volume_pane_elements_Line_8
+#define AKN_LAYOUT_WINDOW_Setting_volume_pane_elements_Line_9 AknLayout::Setting_volume_pane_elements_Line_9
+#define AKN_LAYOUT_WINDOW_Setting_volume_pane_elements_Line_10 AknLayout::Setting_volume_pane_elements_Line_10
+#define AKN_LAYOUT_WINDOW_Setting_volume_pane_elements_Line_11 AknLayout::Setting_volume_pane_elements_Line_11
+#define AKN_LAYOUT_TABLE_LIMITS_Setting_volume_pane_elements_SUB_TABLE_0_Limits AknLayout::Setting_volume_pane_elements_SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_Setting_volume_pane_elements_SUB_TABLE_0 AknLayout::Setting_volume_pane_elements_SUB_TABLE_0
+#define AKN_LAYOUT_WINDOW_Setting_slider_pane_elements_and_descendants_Line_1 AknLayout::Setting_slider_pane_elements_and_descendants_Line_1()
+#define AKN_LAYOUT_WINDOW_Setting_slider_pane_elements_and_descendants_Line_2 AknLayout::Setting_slider_pane_elements_and_descendants_Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Setting_slider_pane_elements_and_descendants_Limits AknLayout::Setting_slider_pane_elements_and_descendants_Limits()
+#define AKN_LAYOUT_TABLE_Setting_slider_pane_elements_and_descendants AknLayout::Setting_slider_pane_elements_and_descendants
+#define AKN_LAYOUT_WINDOW_Slider_pane_elements_Line_1 AknLayout::Slider_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Slider_pane_elements_Line_2 AknLayout::Slider_pane_elements_Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Slider_pane_elements_Limits AknLayout::Slider_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Slider_pane_elements AknLayout::Slider_pane_elements
+#define AKN_LAYOUT_TEXT_Slider_texts__set__Line_1 AknLayout::Slider_texts__set__Line_1()
+#define AKN_LAYOUT_TEXT_Slider_texts__set__Line_2 AknLayout::Slider_texts__set__Line_2
+#define AKN_LAYOUT_MULTILINE_TEXT_Slider_texts__set__Line_2 AknLayout::Multiline_Slider_texts__set__Line_2
+#define AKN_LAYOUT_WINDOW_Setting_slider_pane__graphic__elements_and_descendants_Line_1 AknLayout::Setting_slider_pane__graphic__elements_and_descendants_Line_1()
+#define AKN_LAYOUT_WINDOW_Setting_slider_pane__graphic__elements_and_descendants_Line_2 AknLayout::Setting_slider_pane__graphic__elements_and_descendants_Line_2()
+#define AKN_LAYOUT_WINDOW_Setting_slider_pane__graphic__elements_and_descendants_Line_3 AknLayout::Setting_slider_pane__graphic__elements_and_descendants_Line_3()
+#define AKN_LAYOUT_TABLE_LIMITS_Setting_slider_pane__graphic__elements_and_descendants_Limits AknLayout::Setting_slider_pane__graphic__elements_and_descendants_Limits()
+#define AKN_LAYOUT_TABLE_Setting_slider_pane__graphic__elements_and_descendants AknLayout::Setting_slider_pane__graphic__elements_and_descendants
+#define AKN_LAYOUT_TEXT_Slider_with_graphic_texts__set__Line_1 AknLayout::Slider_with_graphic_texts__set__Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Slider_with_graphic_texts__set__Line_1 AknLayout::Multiline_Slider_with_graphic_texts__set__Line_1
+#define AKN_LAYOUT_WINDOW_Setting_text_pane_elements_Line_1 AknLayout::Setting_text_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Setting_text_pane_elements_Line_2 AknLayout::Setting_text_pane_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Setting_text_pane_elements_Line_3 AknLayout::Setting_text_pane_elements_Line_3()
+#define AKN_LAYOUT_WINDOW_Setting_text_pane_elements_Line_4 AknLayout::Setting_text_pane_elements_Line_4()
+#define AKN_LAYOUT_TABLE_LIMITS_Setting_text_pane_elements_Limits AknLayout::Setting_text_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Setting_text_pane_elements AknLayout::Setting_text_pane_elements
+#define AKN_LAYOUT_TEXT_Setting_text_pane_texts_Line_1 AknLayout::Setting_text_pane_texts_Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Setting_text_pane_texts_Line_1 AknLayout::Multiline_Setting_text_pane_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Code_time_and_date_entry_pane_elements_Line_1 AknLayout::Code_time_and_date_entry_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Code_time_and_date_entry_pane_elements_Line_2 AknLayout::Code_time_and_date_entry_pane_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Code_time_and_date_entry_pane_elements_Line_3 AknLayout::Code_time_and_date_entry_pane_elements_Line_3()
+#define AKN_LAYOUT_TABLE_LIMITS_Code_time_and_date_entry_pane_elements_Limits AknLayout::Code_time_and_date_entry_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Code_time_and_date_entry_pane_elements AknLayout::Code_time_and_date_entry_pane_elements
+#define AKN_LAYOUT_TEXT_Code_time_and_date_entry_pane_texts_Line_1 AknLayout::Code_time_and_date_entry_pane_texts_Line_1()
+#define AKN_LAYOUT_WINDOW_Control_pane_elements_Line_1 AknLayout::Control_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Control_pane_elements_Line_2 AknLayout::Control_pane_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Control_pane_elements_Line_3 AknLayout::Control_pane_elements_Line_3()
+#define AKN_LAYOUT_WINDOW_Control_pane_elements_Line_4 AknLayout::Control_pane_elements_Line_4()
+#define AKN_LAYOUT_TABLE_LIMITS_Control_pane_elements_Limits AknLayout::Control_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Control_pane_elements AknLayout::Control_pane_elements
+#define AKN_LAYOUT_TEXT_Control_pane_texts_Line_1 AknLayout::Control_pane_texts_Line_1()
+#define AKN_LAYOUT_TEXT_Control_pane_texts_Line_2 AknLayout::Control_pane_texts_Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Control_pane_texts_Limits AknLayout::Control_pane_texts_Limits()
+#define AKN_LAYOUT_TABLE_Control_pane_texts AknLayout::Control_pane_texts
+#define AKN_LAYOUT_WINDOW_popup_menu_window AknLayout::popup_menu_window
+#define AKN_LAYOUT_WINDOW_Pop_up_windows__main_pane_as_parent__Line_2 AknLayout::Pop_up_windows__main_pane_as_parent__Line_2
+#define AKN_LAYOUT_WINDOW_popup_menu_graphic_window AknLayout::popup_menu_graphic_window
+#define AKN_LAYOUT_WINDOW_popup_menu_graphic_heading_window AknLayout::popup_menu_graphic_heading_window
+#define AKN_LAYOUT_WINDOW_popup_menu_double_window AknLayout::popup_menu_double_window
+#define AKN_LAYOUT_WINDOW_popup_menu_double_large_graphic_window AknLayout::popup_menu_double_large_graphic_window
+#define AKN_LAYOUT_WINDOW_popup_note_window AknLayout::popup_note_window
+#define AKN_LAYOUT_WINDOW_popup_note_wait_window AknLayout::popup_note_wait_window
+#define AKN_LAYOUT_WINDOW_popup_note_image_window AknLayout::popup_note_image_window()
+#define AKN_LAYOUT_WINDOW_popup_query_data_window AknLayout::popup_query_data_window
+#define AKN_LAYOUT_WINDOW_popup_query_code_window AknLayout::popup_query_code_window
+#define AKN_LAYOUT_WINDOW_popup_query_time_window AknLayout::popup_query_time_window
+#define AKN_LAYOUT_WINDOW_popup_query_date_window AknLayout::popup_query_date_window
+#define AKN_LAYOUT_WINDOW_popup_query_data_code_window AknLayout::popup_query_data_code_window
+#define AKN_LAYOUT_WINDOW_popup_find_window AknLayout::popup_find_window()
+#define AKN_LAYOUT_WINDOW_popup_snote_single_text_window AknLayout::popup_snote_single_text_window
+#define AKN_LAYOUT_WINDOW_popup_snote_single_graphic_window AknLayout::popup_snote_single_graphic_window
+#define AKN_LAYOUT_WINDOW_popup_snote_group_window AknLayout::popup_snote_group_window
+#define AKN_LAYOUT_WINDOW_popup_grid_graphic_window AknLayout::popup_grid_graphic_window
+#define AKN_LAYOUT_WINDOW_popup_menu_double2_window AknLayout::popup_menu_double2_window
+#define AKN_LAYOUT_WINDOW_popup_grid_large_graphic_colour_window AknLayout::popup_grid_large_graphic_colour_window()
+#define AKN_LAYOUT_WINDOW_popup_fast_swap_window AknLayout::popup_fast_swap_window
+#define AKN_LAYOUT_WINDOW_list_single_popup_menu_pane AknLayout::list_single_popup_menu_pane
+#define AKN_LAYOUT_WINDOW_list_single_heading_popup_menu_pane AknLayout::list_single_heading_popup_menu_pane
+#define AKN_LAYOUT_WINDOW_list_single_graphic_popup_menu_pane AknLayout::list_single_graphic_popup_menu_pane
+#define AKN_LAYOUT_WINDOW_list_single_graphic_heading_popup_menu_pane AknLayout::list_single_graphic_heading_popup_menu_pane
+#define AKN_LAYOUT_WINDOW_list_menu_double_popup_menu_pane AknLayout::list_menu_double_popup_menu_pane
+#define AKN_LAYOUT_WINDOW_list_single_popup_submenu_pane AknLayout::list_single_popup_submenu_pane
+#define AKN_LAYOUT_WINDOW_list_double_large_graphic_popup_menu_pane AknLayout::list_double_large_graphic_popup_menu_pane
+#define AKN_LAYOUT_WINDOW_Pop_up_window_list_pane_descendants_Line_8 AknLayout::Pop_up_window_list_pane_descendants_Line_8()
+#define AKN_LAYOUT_WINDOW_list_double2_popup_menu_pane AknLayout::list_double2_popup_menu_pane
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_single__Line_1 AknLayout::List_pane_elements__menu_single__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_single__Line_2 AknLayout::List_pane_elements__menu_single__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_single__Line_3 AknLayout::List_pane_elements__menu_single__Line_3
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__menu_single__SUB_TABLE_0_Limits AknLayout::List_pane_elements__menu_single__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__menu_single__SUB_TABLE_0 AknLayout::List_pane_elements__menu_single__SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_List_pane_texts__menu_single__Line_1 AknLayout::List_pane_texts__menu_single__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_text__submenu_single__Line_1 AknLayout::List_pane_text__submenu_single__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_single_graphic__Line_1 AknLayout::List_pane_elements__menu_single_graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_single_graphic__Line_2 AknLayout::List_pane_elements__menu_single_graphic__Line_2
+#define AKN_LAYOUT_TEXT_List_pane_texts__menu_single_graphic__Line_1 AknLayout::List_pane_texts__menu_single_graphic__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_single_heading__Line_1 AknLayout::List_pane_elements__menu_single_heading__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_single_heading__Line_2 AknLayout::List_pane_elements__menu_single_heading__Line_2
+#define AKN_LAYOUT_TEXT_List_pane_texts__menu_single_heading__Line_1 AknLayout::List_pane_texts__menu_single_heading__Line_1()
+#define AKN_LAYOUT_TEXT_List_pane_texts__menu_single_heading__Line_2 AknLayout::List_pane_texts__menu_single_heading__Line_2
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_single_graphic_heading__Line_1 AknLayout::List_pane_elements__menu_single_graphic_heading__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_single_graphic_heading__Line_2 AknLayout::List_pane_elements__menu_single_graphic_heading__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_single_graphic_heading__Line_3 AknLayout::List_pane_elements__menu_single_graphic_heading__Line_3
+#define AKN_LAYOUT_TEXT_List_pane_texts__menu_single_graphic_heading__Line_1 AknLayout::List_pane_texts__menu_single_graphic_heading__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__menu_single_graphic_heading__Line_2 AknLayout::List_pane_texts__menu_single_graphic_heading__Line_2
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_texts__menu_single_graphic_heading__Limits AknLayout::List_pane_texts__menu_single_graphic_heading__Limits()
+#define AKN_LAYOUT_TABLE_List_pane_texts__menu_single_graphic_heading_ AknLayout::List_pane_texts__menu_single_graphic_heading_
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_double__Line_1 AknLayout::List_pane_elements__menu_double__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__menu_double__Line_1 AknLayout::List_pane_texts__menu_double__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__menu_double__Line_2 AknLayout::List_pane_texts__menu_double__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_double2__Line_1 AknLayout::List_pane_elements__menu_double2__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__menu_double2__Line_1 AknLayout::List_pane_texts__menu_double2__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__menu_double2__Line_2 AknLayout::List_pane_texts__menu_double2__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_double_large_graphic__Line_1 AknLayout::List_pane_elements__menu_double_large_graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__menu_double_large_graphic__Line_2 AknLayout::List_pane_elements__menu_double_large_graphic__Line_2
+#define AKN_LAYOUT_TEXT_List_pane_texts__menu_double_large_graphic__Line_1 AknLayout::List_pane_texts__menu_double_large_graphic__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__menu_double_large_graphic__Line_2 AknLayout::List_pane_texts__menu_double_large_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_Highlight_graphics__various__Line_1 AknLayout::Highlight_graphics__various__Line_1
+#define AKN_LAYOUT_WINDOW_Highlight_graphics__various__Line_2 AknLayout::Highlight_graphics__various__Line_2
+#define AKN_LAYOUT_TABLE_LIMITS_Highlight_graphics__various__Limits AknLayout::Highlight_graphics__various__Limits()
+#define AKN_LAYOUT_TABLE_Highlight_graphics__various_ AknLayout::Highlight_graphics__various_
+#define AKN_LAYOUT_WINDOW_cell_graphic_popup_pane AknLayout::cell_graphic_popup_pane
+#define AKN_LAYOUT_WINDOW_Cell_pane_elements__pop_up_graphic__Line_1 AknLayout::Cell_pane_elements__pop_up_graphic__Line_1()
+#define AKN_LAYOUT_TEXT_Cell_pane_texts__pop_up_graphic__Line_1 AknLayout::Cell_pane_texts__pop_up_graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_cell_large_graphic_colour_popup_pane AknLayout::cell_large_graphic_colour_popup_pane
+#define AKN_LAYOUT_WINDOW_colour AknLayout::colour
+#define AKN_LAYOUT_WINDOW_Pop_up_window_cell_pane__large_graphic_colour_none__Line_1 AknLayout::Pop_up_window_cell_pane__large_graphic_colour_none__Line_1()
+#define AKN_LAYOUT_TEXT_Cell_pane_texts__pop_up_large_graphic_colour_none__Line_1 AknLayout::Cell_pane_texts__pop_up_large_graphic_colour_none__Line_1()
+#define AKN_LAYOUT_WINDOW_Highlight_elements__grid_pop_up__Line_1 AknLayout::Highlight_elements__grid_pop_up__Line_1
+#define AKN_LAYOUT_WINDOW_Highlight_elements__grid_pop_up__Line_2 AknLayout::Highlight_elements__grid_pop_up__Line_2
+#define AKN_LAYOUT_TABLE_LIMITS_Highlight_elements__grid_pop_up__Limits AknLayout::Highlight_elements__grid_pop_up__Limits()
+#define AKN_LAYOUT_TABLE_Highlight_elements__grid_pop_up_ AknLayout::Highlight_elements__grid_pop_up_
+#define AKN_LAYOUT_WINDOW_List_heading_pane_elements_Line_1 AknLayout::List_heading_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_List_heading_pane_elements_Line_2 AknLayout::List_heading_pane_elements_Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_List_heading_pane_elements_Limits AknLayout::List_heading_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_List_heading_pane_elements AknLayout::List_heading_pane_elements
+#define AKN_LAYOUT_TEXT_List_heading_pane_texts_Line_1 AknLayout::List_heading_pane_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Pop_up_menu_with_heading_window_graphics_Line_1 AknLayout::Pop_up_menu_with_heading_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Pop_up_menu_with_heading_window_graphics_Line_2 AknLayout::Pop_up_menu_with_heading_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Pop_up_menu_with_heading_window_graphics_Line_3 AknLayout::Pop_up_menu_with_heading_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Pop_up_menu_with_heading_window_graphics_Line_4 AknLayout::Pop_up_menu_with_heading_window_graphics_Line_4
+#define AKN_LAYOUT_WINDOW_Pop_up_menu_with_heading_window_graphics_Line_5 AknLayout::Pop_up_menu_with_heading_window_graphics_Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Pop_up_menu_with_heading_window_graphics_Limits AknLayout::Pop_up_menu_with_heading_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Pop_up_menu_with_heading_window_graphics AknLayout::Pop_up_menu_with_heading_window_graphics
+#define AKN_LAYOUT_WINDOW_list_menu_pane AknLayout::list_menu_pane
+#define AKN_LAYOUT_WINDOW_Menu_pop_up_window_descendants_Line_2 AknLayout::Menu_pop_up_window_descendants_Line_2()
+#define AKN_LAYOUT_WINDOW_Menu_pop_up_window_graphics_Line_1 AknLayout::Menu_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Menu_pop_up_window_graphics_Line_2 AknLayout::Menu_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Menu_pop_up_window_graphics_Line_3 AknLayout::Menu_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Menu_pop_up_window_graphics_Line_4 AknLayout::Menu_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_WINDOW_Menu_pop_up_window_graphics_Line_5 AknLayout::Menu_pop_up_window_graphics_Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Menu_pop_up_window_graphics_Limits AknLayout::Menu_pop_up_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Menu_pop_up_window_graphics AknLayout::Menu_pop_up_window_graphics
+#define AKN_LAYOUT_WINDOW_list_submenu_pane AknLayout::list_submenu_pane
+#define AKN_LAYOUT_WINDOW_Submenu_pop_up_window_graphics_Line_1 AknLayout::Submenu_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Submenu_pop_up_window_graphics_Line_2 AknLayout::Submenu_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Submenu_pop_up_window_graphics_Line_3 AknLayout::Submenu_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Submenu_pop_up_window_graphics_Line_4 AknLayout::Submenu_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_TABLE_LIMITS_Submenu_pop_up_window_graphics_Limits AknLayout::Submenu_pop_up_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Submenu_pop_up_window_graphics AknLayout::Submenu_pop_up_window_graphics
+#define AKN_LAYOUT_WINDOW_Submenu_pop_up_window_positioning_Line_1 AknLayout::Submenu_pop_up_window_positioning_Line_1
+#define AKN_LAYOUT_WINDOW_Submenu_pop_up_window_positioning_Line_2 AknLayout::Submenu_pop_up_window_positioning_Line_2
+#define AKN_LAYOUT_TABLE_LIMITS_Submenu_pop_up_window_positioning_Limits AknLayout::Submenu_pop_up_window_positioning_Limits()
+#define AKN_LAYOUT_TABLE_Submenu_pop_up_window_positioning AknLayout::Submenu_pop_up_window_positioning
+#define AKN_LAYOUT_WINDOW_list_menu_graphic_pane AknLayout::list_menu_graphic_pane
+#define AKN_LAYOUT_WINDOW_list_menu_heading_pane AknLayout::list_menu_heading_pane
+#define AKN_LAYOUT_WINDOW_Menu_pop_up_window_descendants__single_heading__Line_2 AknLayout::Menu_pop_up_window_descendants__single_heading__Line_2()
+#define AKN_LAYOUT_WINDOW_Menu_pop_up_window_descendants__single_heading__Line_3 AknLayout::Menu_pop_up_window_descendants__single_heading__Line_3
+#define AKN_LAYOUT_WINDOW_list_menu_graphic_heading_pane AknLayout::list_menu_graphic_heading_pane
+#define AKN_LAYOUT_WINDOW_Menu_pop_up_window_descendants_and_elements__single_graphic_heading__Line_2 AknLayout::Menu_pop_up_window_descendants_and_elements__single_graphic_heading__Line_2()
+#define AKN_LAYOUT_WINDOW_Menu_pop_up_window_descendants_and_elements__single_graphic_heading__Line_3 AknLayout::Menu_pop_up_window_descendants_and_elements__single_graphic_heading__Line_3
+#define AKN_LAYOUT_WINDOW_list_menu_double_pane_list_menu_double2_pane AknLayout::list_menu_double_pane_list_menu_double2_pane
+#define AKN_LAYOUT_WINDOW_Menu_pop_up_window_descendants__double_double2__Line_2 AknLayout::Menu_pop_up_window_descendants__double_double2__Line_2()
+#define AKN_LAYOUT_WINDOW_list_menu_double_large_graphic_pane AknLayout::list_menu_double_large_graphic_pane
+#define AKN_LAYOUT_WINDOW_Menu_pop_up_window_descendants__double__Line_2 AknLayout::Menu_pop_up_window_descendants__double__Line_2()
+#define AKN_LAYOUT_WINDOW_Note_pop_up_window_elements_Line_1 AknLayout::Note_pop_up_window_elements_Line_1()
+#define AKN_LAYOUT_TEXT_Note_pop_up_window_texts_Line_1 AknLayout::Note_pop_up_window_texts_Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Note_pop_up_window_texts_Line_1 AknLayout::Multiline_Note_pop_up_window_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Note_pop_up_window_graphics_Line_1 AknLayout::Note_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Note_pop_up_window_graphics_Line_2 AknLayout::Note_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Note_pop_up_window_graphics_Line_3 AknLayout::Note_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Note_pop_up_window_graphics_Line_4 AknLayout::Note_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_WINDOW_Note_pop_up_window_graphics_Line_5 AknLayout::Note_pop_up_window_graphics_Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Note_pop_up_window_graphics_Limits AknLayout::Note_pop_up_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Note_pop_up_window_graphics AknLayout::Note_pop_up_window_graphics
+#define AKN_LAYOUT_WINDOW_Wait_or_progress_note_pop_up_window_elements_Line_1 AknLayout::Wait_or_progress_note_pop_up_window_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Wait_or_progress_note_pop_up_window_elements_Line_2 AknLayout::Wait_or_progress_note_pop_up_window_elements_Line_2
+#define AKN_LAYOUT_WINDOW_Wait_or_progress_note_pop_up_window_elements_Line_3 AknLayout::Wait_or_progress_note_pop_up_window_elements_Line_3()
+#define AKN_LAYOUT_WINDOW_Wait_or_progress_note_pop_up_window_elements_Line_4 AknLayout::Wait_or_progress_note_pop_up_window_elements_Line_4()
+#define AKN_LAYOUT_TABLE_LIMITS_First_general_event_elements_Limits AknLayout::First_general_event_elements_Limits()
+#define AKN_LAYOUT_TABLE_First_general_event_elements AknLayout::First_general_event_elements
+#define AKN_LAYOUT_TEXT_Wait_or_progress_note_pop_up_window_texts_Line_1 AknLayout::Wait_or_progress_note_pop_up_window_texts_Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Wait_or_progress_note_pop_up_window_texts_Line_1 AknLayout::Multiline_Wait_or_progress_note_pop_up_window_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Note_with_an_image_pop_up_window_elements_Line_1 AknLayout::Note_with_an_image_pop_up_window_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Note_with_an_image_pop_up_window_elements_Line_2 AknLayout::Note_with_an_image_pop_up_window_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Note_with_an_image_pop_up_window_elements_Line_3 AknLayout::Note_with_an_image_pop_up_window_elements_Line_3()
+#define AKN_LAYOUT_WINDOW_Note_with_an_image_pop_up_window_elements_Line_4 AknLayout::Note_with_an_image_pop_up_window_elements_Line_4()
+#define AKN_LAYOUT_WINDOW_Note_with_an_image_pop_up_window_elements_Line_5 AknLayout::Note_with_an_image_pop_up_window_elements_Line_5()
+#define AKN_LAYOUT_WINDOW_Note_with_an_image_pop_up_window_elements_Line_6 AknLayout::Note_with_an_image_pop_up_window_elements_Line_6()
+#define AKN_LAYOUT_WINDOW_Note_with_an_image_pop_up_window_elements_Line_7 AknLayout::Note_with_an_image_pop_up_window_elements_Line_7()
+#define AKN_LAYOUT_WINDOW_Note_with_an_image_pop_up_window_elements_Line_8 AknLayout::Note_with_an_image_pop_up_window_elements_Line_8()
+#define AKN_LAYOUT_WINDOW_Note_with_an_image_pop_up_window_elements_Line_9 AknLayout::Note_with_an_image_pop_up_window_elements_Line_9()
+#define AKN_LAYOUT_WINDOW_Note_with_an_image_pop_up_window_elements_Line_10 AknLayout::Note_with_an_image_pop_up_window_elements_Line_10()
+#define AKN_LAYOUT_WINDOW_Note_with_an_image_pop_up_window_elements_Line_11 AknLayout::Note_with_an_image_pop_up_window_elements_Line_11()
+#define AKN_LAYOUT_WINDOW_Note_with_an_image_pop_up_window_elements_Line_12 AknLayout::Note_with_an_image_pop_up_window_elements_Line_12()
+#define AKN_LAYOUT_WINDOW_Note_with_an_image_pop_up_window_elements_Line_13 AknLayout::Note_with_an_image_pop_up_window_elements_Line_13()
+#define AKN_LAYOUT_TABLE_LIMITS_Note_with_an_image_pop_up_window_elements_Limits AknLayout::Note_with_an_image_pop_up_window_elements_Limits()
+#define AKN_LAYOUT_TABLE_Note_with_an_image_pop_up_window_elements AknLayout::Note_with_an_image_pop_up_window_elements
+#define AKN_LAYOUT_TEXT_Note_with_an_image_pop_up_window_texts_Line_1 AknLayout::Note_with_an_image_pop_up_window_texts_Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Note_with_an_image_pop_up_window_texts_Line_1 AknLayout::Multiline_Note_with_an_image_pop_up_window_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Query_with_heading_window_graphics_Line_1 AknLayout::Query_with_heading_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Query_with_heading_window_graphics_Line_2 AknLayout::Query_with_heading_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Query_with_heading_window_graphics_Line_3 AknLayout::Query_with_heading_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Query_with_heading_window_graphics_Line_4 AknLayout::Query_with_heading_window_graphics_Line_4
+#define AKN_LAYOUT_WINDOW_Query_with_heading_window_graphics_Line_5 AknLayout::Query_with_heading_window_graphics_Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Query_with_heading_window_graphics_Limits AknLayout::Query_with_heading_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Query_with_heading_window_graphics AknLayout::Query_with_heading_window_graphics
+#define AKN_LAYOUT_WINDOW_popup_list_heading_pane AknLayout::popup_list_heading_pane
+#define AKN_LAYOUT_WINDOW_Heading_pane_elements_Line_1 AknLayout::Heading_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Icon AknLayout::Icon
+#define AKN_LAYOUT_TEXT_Heading_pane_texts_Line_1 AknLayout::Heading_pane_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Data_query_pop_up_window_elements_Line_1 AknLayout::Data_query_pop_up_window_elements_Line_1
+#define AKN_LAYOUT_WINDOW_Data_query_pop_up_window_elements_Line_2 AknLayout::Data_query_pop_up_window_elements_Line_2
+#define AKN_LAYOUT_WINDOW_Data_query_pop_up_window_elements_Line_3 AknLayout::Data_query_pop_up_window_elements_Line_3
+#define AKN_LAYOUT_WINDOW_Data_query_pop_up_window_elements_Line_4 AknLayout::Data_query_pop_up_window_elements_Line_4
+#define AKN_LAYOUT_WINDOW_Data_query_pop_up_window_elements_Line_5 AknLayout::Data_query_pop_up_window_elements_Line_5()
+#define AKN_LAYOUT_TEXT_Data_query_pop_up_window_texts_Line_1 AknLayout::Data_query_pop_up_window_texts_Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Data_query_pop_up_window_texts_Line_1 AknLayout::Multiline_Data_query_pop_up_window_texts_Line_1
+#define AKN_LAYOUT_TEXT_Data_query_pop_up_window_texts_Line_2 AknLayout::Data_query_pop_up_window_texts_Line_2
+#define AKN_LAYOUT_MULTILINE_TEXT_Data_query_pop_up_window_texts_Line_2 AknLayout::Multiline_Data_query_pop_up_window_texts_Line_2
+#define AKN_LAYOUT_WINDOW_Data_query_pop_up_window_graphics_Line_1 AknLayout::Data_query_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Data_query_pop_up_window_graphics_Line_2 AknLayout::Data_query_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Data_query_pop_up_window_graphics_Line_3 AknLayout::Data_query_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Data_query_pop_up_window_graphics_Line_4 AknLayout::Data_query_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_WINDOW_Data_query_pop_up_window_graphics_Line_5 AknLayout::Data_query_pop_up_window_graphics_Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Data_query_pop_up_window_graphics_Limits AknLayout::Data_query_pop_up_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Data_query_pop_up_window_graphics AknLayout::Data_query_pop_up_window_graphics
+#define AKN_LAYOUT_WINDOW_Code_query_pop_up_window_elements_Line_1 AknLayout::Code_query_pop_up_window_elements_Line_1
+#define AKN_LAYOUT_WINDOW_Code_query_pop_up_window_elements_Line_2 AknLayout::Code_query_pop_up_window_elements_Line_2
+#define AKN_LAYOUT_WINDOW_Code_query_pop_up_window_elements_Line_3 AknLayout::Code_query_pop_up_window_elements_Line_3
+#define AKN_LAYOUT_WINDOW_Code_query_pop_up_window_elements_Line_4 AknLayout::Code_query_pop_up_window_elements_Line_4
+#define AKN_LAYOUT_TABLE_LIMITS_Code_query_pop_up_window_elements_Limits AknLayout::Code_query_pop_up_window_elements_Limits()
+#define AKN_LAYOUT_TABLE_Code_query_pop_up_window_elements AknLayout::Code_query_pop_up_window_elements
+#define AKN_LAYOUT_TEXT_Code_query_pop_up_window_texts_Line_1 AknLayout::Code_query_pop_up_window_texts_Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Code_query_pop_up_window_texts_Line_1 AknLayout::Multiline_Code_query_pop_up_window_texts_Line_1
+#define AKN_LAYOUT_TEXT_Code_query_pop_up_window_texts_Line_2 AknLayout::Code_query_pop_up_window_texts_Line_2
+#define AKN_LAYOUT_MULTILINE_TEXT_Code_query_pop_up_window_texts_Line_2 AknLayout::Multiline_Code_query_pop_up_window_texts_Line_2
+#define AKN_LAYOUT_TABLE_LIMITS_Code_query_pop_up_window_texts_Limits AknLayout::Code_query_pop_up_window_texts_Limits()
+#define AKN_LAYOUT_TABLE_Code_query_pop_up_window_texts AknLayout::Code_query_pop_up_window_texts
+#define AKN_LAYOUT_WINDOW_Combined_data_and_code_query_pop_up_window_elements_Line_1 AknLayout::Combined_data_and_code_query_pop_up_window_elements_Line_1
+#define AKN_LAYOUT_WINDOW_Combined_data_and_code_query_pop_up_window_elements_Line_2 AknLayout::Combined_data_and_code_query_pop_up_window_elements_Line_2
+#define AKN_LAYOUT_WINDOW_Combined_data_and_code_query_pop_up_window_elements_Line_3 AknLayout::Combined_data_and_code_query_pop_up_window_elements_Line_3
+#define AKN_LAYOUT_WINDOW_Combined_data_and_code_query_pop_up_window_elements_Line_4 AknLayout::Combined_data_and_code_query_pop_up_window_elements_Line_4
+#define AKN_LAYOUT_WINDOW_Combined_data_and_code_query_pop_up_window_elements_Line_5 AknLayout::Combined_data_and_code_query_pop_up_window_elements_Line_5
+#define AKN_LAYOUT_TEXT_Combined_data_and_code_query_pop_up_window_texts_Line_1 AknLayout::Combined_data_and_code_query_pop_up_window_texts_Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Combined_data_and_code_query_pop_up_window_texts_Line_1 AknLayout::Multiline_Combined_data_and_code_query_pop_up_window_texts_Line_1
+#define AKN_LAYOUT_TEXT_Combined_data_and_code_query_pop_up_window_texts_Line_2 AknLayout::Combined_data_and_code_query_pop_up_window_texts_Line_2
+#define AKN_LAYOUT_MULTILINE_TEXT_Combined_data_and_code_query_pop_up_window_texts_Line_2 AknLayout::Multiline_Combined_data_and_code_query_pop_up_window_texts_Line_2
+#define AKN_LAYOUT_TEXT_Combined_data_and_code_query_pop_up_window_texts_Line_3 AknLayout::Combined_data_and_code_query_pop_up_window_texts_Line_3
+#define AKN_LAYOUT_MULTILINE_TEXT_Combined_data_and_code_query_pop_up_window_texts_Line_3 AknLayout::Multiline_Combined_data_and_code_query_pop_up_window_texts_Line_3
+#define AKN_LAYOUT_TEXT_Combined_data_and_code_query_pop_up_window_texts_Line_4 AknLayout::Combined_data_and_code_query_pop_up_window_texts_Line_4
+#define AKN_LAYOUT_MULTILINE_TEXT_Combined_data_and_code_query_pop_up_window_texts_Line_4 AknLayout::Multiline_Combined_data_and_code_query_pop_up_window_texts_Line_4
+#define AKN_LAYOUT_TABLE_LIMITS_Combined_data_and_code_query_pop_up_window_texts_Limits AknLayout::Combined_data_and_code_query_pop_up_window_texts_Limits()
+#define AKN_LAYOUT_TABLE_Combined_data_and_code_query_pop_up_window_texts AknLayout::Combined_data_and_code_query_pop_up_window_texts
+#define AKN_LAYOUT_WINDOW_Combined_data_and_code_query_pop_up_window_graphics_Line_1 AknLayout::Combined_data_and_code_query_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Combined_data_and_code_query_pop_up_window_graphics_Line_2 AknLayout::Combined_data_and_code_query_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Combined_data_and_code_query_pop_up_window_graphics_Line_3 AknLayout::Combined_data_and_code_query_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Combined_data_and_code_query_pop_up_window_graphics_Line_4 AknLayout::Combined_data_and_code_query_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_WINDOW_Combined_data_and_code_query_pop_up_window_graphics_Line_5 AknLayout::Combined_data_and_code_query_pop_up_window_graphics_Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Combined_data_and_code_query_pop_up_window_graphics_SUB_TABLE_0_Limits AknLayout::Combined_data_and_code_query_pop_up_window_graphics_SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_Combined_data_and_code_query_pop_up_window_graphics_SUB_TABLE_0 AknLayout::Combined_data_and_code_query_pop_up_window_graphics_SUB_TABLE_0
+#define AKN_LAYOUT_WINDOW_Find_pop_up_window_elements_Line_1 AknLayout::Find_pop_up_window_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Find_pop_up_window_elements_Line_2 AknLayout::Find_pop_up_window_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Find_pop_up_window_elements_Line_3 AknLayout::Find_pop_up_window_elements_Line_3()
+#define AKN_LAYOUT_WINDOW_Find_pop_up_window_elements_Line_4 AknLayout::Find_pop_up_window_elements_Line_4()
+#define AKN_LAYOUT_TABLE_LIMITS_Find_pop_up_window_elements_Limits AknLayout::Find_pop_up_window_elements_Limits()
+#define AKN_LAYOUT_TABLE_Find_pop_up_window_elements AknLayout::Find_pop_up_window_elements
+#define AKN_LAYOUT_TEXT_Find_pop_up_window_texts_Line_1 AknLayout::Find_pop_up_window_texts_Line_1()
+#define AKN_LAYOUT_WINDOW_Find_pop_up_window_graphics_Line_1 AknLayout::Find_pop_up_window_graphics_Line_1()
+#define AKN_LAYOUT_WINDOW_Find_pop_up_window_graphics_Line_2 AknLayout::Find_pop_up_window_graphics_Line_2()
+#define AKN_LAYOUT_WINDOW_Find_pop_up_window_graphics_Line_3 AknLayout::Find_pop_up_window_graphics_Line_3()
+#define AKN_LAYOUT_WINDOW_Find_pop_up_window_graphics_Line_4 AknLayout::Find_pop_up_window_graphics_Line_4()
+#define AKN_LAYOUT_WINDOW_Find_pop_up_window_graphics_Line_5 AknLayout::Find_pop_up_window_graphics_Line_5()
+#define AKN_LAYOUT_TABLE_LIMITS_Find_pop_up_window_graphics_Limits AknLayout::Find_pop_up_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Find_pop_up_window_graphics AknLayout::Find_pop_up_window_graphics
+#define AKN_LAYOUT_WINDOW_Pop_up_menu_with_find_pane_graphics_Line_1 AknLayout::Pop_up_menu_with_find_pane_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Pop_up_menu_with_find_pane_graphics_Line_2 AknLayout::Pop_up_menu_with_find_pane_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Pop_up_menu_with_find_pane_graphics_Line_3 AknLayout::Pop_up_menu_with_find_pane_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Pop_up_menu_with_find_pane_graphics_Line_4 AknLayout::Pop_up_menu_with_find_pane_graphics_Line_4
+#define AKN_LAYOUT_WINDOW_Pop_up_menu_with_find_pane_graphics_Line_5 AknLayout::Pop_up_menu_with_find_pane_graphics_Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Pop_up_menu_with_find_pane_graphics_Limits AknLayout::Pop_up_menu_with_find_pane_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Pop_up_menu_with_find_pane_graphics AknLayout::Pop_up_menu_with_find_pane_graphics
+#define AKN_LAYOUT_WINDOW_Notification_pop_up_window_elements__text__Line_1 AknLayout::Notification_pop_up_window_elements__text__Line_1()
+#define AKN_LAYOUT_TEXT_Notification_pop_up_window_texts__text__Line_1 AknLayout::Notification_pop_up_window_texts__text__Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Notification_pop_up_window_texts__text__Line_1 AknLayout::Multiline_Notification_pop_up_window_texts__text__Line_1
+#define AKN_LAYOUT_WINDOW_Notification_pop_up_window_graphics__text__Line_1 AknLayout::Notification_pop_up_window_graphics__text__Line_1
+#define AKN_LAYOUT_WINDOW_Notification_pop_up_window_graphics__text__Line_2 AknLayout::Notification_pop_up_window_graphics__text__Line_2
+#define AKN_LAYOUT_WINDOW_Notification_pop_up_window_graphics__text__Line_3 AknLayout::Notification_pop_up_window_graphics__text__Line_3
+#define AKN_LAYOUT_WINDOW_Notification_pop_up_window_graphics__text__Line_4 AknLayout::Notification_pop_up_window_graphics__text__Line_4
+#define AKN_LAYOUT_WINDOW_Notification_pop_up_window_graphics__text__Line_5 AknLayout::Notification_pop_up_window_graphics__text__Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Notification_pop_up_window_graphics__text__Limits AknLayout::Notification_pop_up_window_graphics__text__Limits()
+#define AKN_LAYOUT_TABLE_Notification_pop_up_window_graphics__text_ AknLayout::Notification_pop_up_window_graphics__text_
+#define AKN_LAYOUT_WINDOW_Notification_pop_up_window_elements__graphic__Line_1 AknLayout::Notification_pop_up_window_elements__graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_Notification_pop_up_window_elements__graphic__Line_2 AknLayout::Notification_pop_up_window_elements__graphic__Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Notification_pop_up_window_elements__graphic__Limits AknLayout::Notification_pop_up_window_elements__graphic__Limits()
+#define AKN_LAYOUT_TABLE_Notification_pop_up_window_elements__graphic_ AknLayout::Notification_pop_up_window_elements__graphic_
+#define AKN_LAYOUT_TEXT_Notification_pop_up_window_texts__graphic__Line_1 AknLayout::Notification_pop_up_window_texts__graphic__Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Notification_pop_up_window_texts__graphic__Line_1 AknLayout::Multiline_Notification_pop_up_window_texts__graphic__Line_1
+#define AKN_LAYOUT_WINDOW_Identifier_icon_selection_pop_up_window_descendants_Line_1 AknLayout::Identifier_icon_selection_pop_up_window_descendants_Line_1
+#define AKN_LAYOUT_WINDOW_grid_graphic_popup_pane AknLayout::grid_graphic_popup_pane
+#define AKN_LAYOUT_WINDOW_Identifier_icon_selection_pop_up_window_elements_Line_1 AknLayout::Identifier_icon_selection_pop_up_window_elements_Line_1
+#define AKN_LAYOUT_WINDOW_Identifier_icon_selection_pop_up_window_elements_Line_2 AknLayout::Identifier_icon_selection_pop_up_window_elements_Line_2
+#define AKN_LAYOUT_WINDOW_Identifier_icon_selection_pop_up_window_graphics_Line_1 AknLayout::Identifier_icon_selection_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Identifier_icon_selection_pop_up_window_graphics_Line_2 AknLayout::Identifier_icon_selection_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Identifier_icon_selection_pop_up_window_graphics_Line_3 AknLayout::Identifier_icon_selection_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Identifier_icon_selection_pop_up_window_graphics_Line_4 AknLayout::Identifier_icon_selection_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_WINDOW_Identifier_icon_selection_pop_up_window_graphics_Line_5 AknLayout::Identifier_icon_selection_pop_up_window_graphics_Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Identifier_icon_selection_pop_up_window_graphics_SUB_TABLE_0_Limits AknLayout::Identifier_icon_selection_pop_up_window_graphics_SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_Identifier_icon_selection_pop_up_window_graphics_SUB_TABLE_0 AknLayout::Identifier_icon_selection_pop_up_window_graphics_SUB_TABLE_0
+#define AKN_LAYOUT_WINDOW_Colour_selection_pop_up_window_descendants_Line_1 AknLayout::Colour_selection_pop_up_window_descendants_Line_1()
+#define AKN_LAYOUT_WINDOW_Colour_selection_pop_up_window_descendants_Line_2 AknLayout::Colour_selection_pop_up_window_descendants_Line_2()
+#define AKN_LAYOUT_WINDOW_grid_large_graphic_colour_popup_pane AknLayout::grid_large_graphic_colour_popup_pane
+#define AKN_LAYOUT_WINDOW_Composer_symbol_selection_pop_up_window_elements_Line_1 AknLayout::Composer_symbol_selection_pop_up_window_elements_Line_1
+#define AKN_LAYOUT_WINDOW_Composer_symbol_selection_pop_up_window_elements_Line_2 AknLayout::Composer_symbol_selection_pop_up_window_elements_Line_2
+#define AKN_LAYOUT_WINDOW_Colour_selection_pop_up_window_graphics_Line_1 AknLayout::Colour_selection_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Colour_selection_pop_up_window_graphics_Line_2 AknLayout::Colour_selection_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Colour_selection_pop_up_window_graphics_Line_3 AknLayout::Colour_selection_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Colour_selection_pop_up_window_graphics_Line_4 AknLayout::Colour_selection_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_WINDOW_Colour_selection_pop_up_window_graphics_Line_5 AknLayout::Colour_selection_pop_up_window_graphics_Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Colour_selection_pop_up_window_graphics_Limits AknLayout::Colour_selection_pop_up_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Colour_selection_pop_up_window_graphics AknLayout::Colour_selection_pop_up_window_graphics
+#define AKN_LAYOUT_WINDOW_Fast_application_swapping_pop_up_window_descendants_Line_1 AknLayout::Fast_application_swapping_pop_up_window_descendants_Line_1
+#define AKN_LAYOUT_WINDOW_Fast_application_swapping_pop_up_window_graphics_Line_1 AknLayout::Fast_application_swapping_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Fast_application_swapping_pop_up_window_graphics_Line_2 AknLayout::Fast_application_swapping_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Fast_application_swapping_pop_up_window_graphics_Line_3 AknLayout::Fast_application_swapping_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Fast_application_swapping_pop_up_window_graphics_Line_4 AknLayout::Fast_application_swapping_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_WINDOW_Fast_application_swapping_pop_up_window_graphics_Line_5 AknLayout::Fast_application_swapping_pop_up_window_graphics_Line_5
+#define AKN_LAYOUT_WINDOW_Fast_application_swapping_pop_up_window_graphics_Line_6 AknLayout::Fast_application_swapping_pop_up_window_graphics_Line_6()
+#define AKN_LAYOUT_TABLE_LIMITS_Fast_application_swapping_pop_up_window_graphics_SUB_TABLE_0_Limits AknLayout::Fast_application_swapping_pop_up_window_graphics_SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_Fast_application_swapping_pop_up_window_graphics_SUB_TABLE_0 AknLayout::Fast_application_swapping_pop_up_window_graphics_SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_List_pane_texts__setting__double2__Line_1 AknLayout::List_pane_texts__setting__double2__Line_1()
+#define AKN_LAYOUT_TEXT_List_pane_texts__setting__double2__Line_2 AknLayout::List_pane_texts__setting__double2__Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_texts__setting__double2__Limits AknLayout::List_pane_texts__setting__double2__Limits()
+#define AKN_LAYOUT_TABLE_List_pane_texts__setting__double2_ AknLayout::List_pane_texts__setting__double2_
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_2graphic__Line_1 AknLayout::List_pane_elements__single_2graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_2graphic__Line_2 AknLayout::List_pane_elements__single_2graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_2graphic__Line_3 AknLayout::List_pane_elements__single_2graphic__Line_3()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__single_2graphic__Line_4 AknLayout::List_pane_elements__single_2graphic__Line_4
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__single_2graphic__SUB_TABLE_0_Limits AknLayout::List_pane_elements__single_2graphic__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__single_2graphic__SUB_TABLE_0 AknLayout::List_pane_elements__single_2graphic__SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_List_pane_texts__single_2graphic__Line_1 AknLayout::List_pane_texts__single_2graphic__Line_1
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double2_graphic_large_graphic__Line_1 AknLayout::List_pane_elements__double2_graphic_large_graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double2_graphic_large_graphic__Line_2 AknLayout::List_pane_elements__double2_graphic_large_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double2_graphic_large_graphic__Line_3 AknLayout::List_pane_elements__double2_graphic_large_graphic__Line_3()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__double2_graphic_large_graphic__Line_4 AknLayout::List_pane_elements__double2_graphic_large_graphic__Line_4
+#define AKN_LAYOUT_TABLE_LIMITS_List_pane_elements__double2_graphic_large_graphic__SUB_TABLE_0_Limits AknLayout::List_pane_elements__double2_graphic_large_graphic__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_List_pane_elements__double2_graphic_large_graphic__SUB_TABLE_0 AknLayout::List_pane_elements__double2_graphic_large_graphic__SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_List_pane_texts__double2_graphic_large_graphic__Line_1 AknLayout::List_pane_texts__double2_graphic_large_graphic__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__double2_graphic_large_graphic__Line_2 AknLayout::List_pane_texts__double2_graphic_large_graphic__Line_2()
+#define AKN_LAYOUT_TEXT_Form_data_wide_graphic_field_texts_Line_1 AknLayout::Form_data_wide_graphic_field_texts_Line_1()
+#define AKN_LAYOUT_TEXT_Form_data_wide_graphic_field_texts_Line_2 AknLayout::Form_data_wide_graphic_field_texts_Line_2
+#define AKN_LAYOUT_MULTILINE_TEXT_Form_data_wide_graphic_field_texts_Line_2 AknLayout::Multiline_Form_data_wide_graphic_field_texts_Line_2
+#define AKN_LAYOUT_WINDOW_status_small_pane AknLayout::status_small_pane()
+#define AKN_LAYOUT_WINDOW_Small_status_pane_descendants_and_elements_Line_1 AknLayout::Small_status_pane_descendants_and_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_status_small_icon_pane AknLayout::status_small_icon_pane()
+#define AKN_LAYOUT_WINDOW_status_small_wait_pane AknLayout::status_small_wait_pane()
+#define AKN_LAYOUT_WINDOW_Small_status_pane_descendants_and_elements_Line_4 AknLayout::Small_status_pane_descendants_and_elements_Line_4()
+#define AKN_LAYOUT_WINDOW_Small_status_pane_descendants_and_elements_Line_5 AknLayout::Small_status_pane_descendants_and_elements_Line_5()
+#define AKN_LAYOUT_WINDOW_Small_status_pane_descendants_and_elements_Line_6 AknLayout::Small_status_pane_descendants_and_elements_Line_6()
+#define AKN_LAYOUT_TABLE_LIMITS_Small_status_pane_descendants_and_elements_Limits AknLayout::Small_status_pane_descendants_and_elements_Limits()
+#define AKN_LAYOUT_TABLE_Small_status_pane_descendants_and_elements AknLayout::Small_status_pane_descendants_and_elements
+#define AKN_LAYOUT_TEXT_Small_status_pane_texts_Line_1 AknLayout::Small_status_pane_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Small_status_waiting_pane_components_Line_1 AknLayout::Small_status_waiting_pane_components_Line_1()
+#define AKN_LAYOUT_WINDOW_Small_status_waiting_pane_components_Line_2 AknLayout::Small_status_waiting_pane_components_Line_2()
+#define AKN_LAYOUT_WINDOW_Small_status_waiting_pane_components_Line_3 AknLayout::Small_status_waiting_pane_components_Line_3()
+#define AKN_LAYOUT_WINDOW_Small_status_waiting_pane_components_Line_4 AknLayout::Small_status_waiting_pane_components_Line_4()
+#define AKN_LAYOUT_TABLE_LIMITS_Small_status_waiting_pane_components_Limits AknLayout::Small_status_waiting_pane_components_Limits()
+#define AKN_LAYOUT_TABLE_Small_status_waiting_pane_components AknLayout::Small_status_waiting_pane_components
+#define AKN_LAYOUT_WINDOW_Note_with_additional_information_popup_window_elements_Line_1 AknLayout::Note_with_additional_information_popup_window_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Note_with_additional_information_popup_window_elements_Line_2 AknLayout::Note_with_additional_information_popup_window_elements_Line_2
+#define AKN_LAYOUT_WINDOW_Note_with_additional_information_popup_window_elements_Line_3 AknLayout::Note_with_additional_information_popup_window_elements_Line_3
+#define AKN_LAYOUT_TEXT_Note_with_additional_information_popup_window_texts_Line_1 AknLayout::Note_with_additional_information_popup_window_texts_Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Note_with_additional_information_popup_window_texts_Line_1 AknLayout::Multiline_Note_with_additional_information_popup_window_texts_Line_1
+#define AKN_LAYOUT_TEXT_Note_with_additional_information_popup_window_texts_Line_2 AknLayout::Note_with_additional_information_popup_window_texts_Line_2
+#define AKN_LAYOUT_MULTILINE_TEXT_Note_with_additional_information_popup_window_texts_Line_2 AknLayout::Multiline_Note_with_additional_information_popup_window_texts_Line_2
+#define AKN_LAYOUT_TEXT_Note_with_additional_information_popup_window_texts_Line_3 AknLayout::Note_with_additional_information_popup_window_texts_Line_3
+#define AKN_LAYOUT_MULTILINE_TEXT_Note_with_additional_information_popup_window_texts_Line_3 AknLayout::Multiline_Note_with_additional_information_popup_window_texts_Line_3
+#define AKN_LAYOUT_TEXT_Heading_pane_texts_Line_2 AknLayout::Heading_pane_texts_Line_2()
+#define AKN_LAYOUT_WINDOW_Side_volume_key_popup_window_elements_Line_1 AknLayout::Side_volume_key_popup_window_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Side_volume_key_popup_window_elements_Line_2 AknLayout::Side_volume_key_popup_window_elements_Line_2()
+#define AKN_LAYOUT_TEXT_Side_volume_key_popup_window_texts_Line_1 AknLayout::Side_volume_key_popup_window_texts_Line_1()
+#define AKN_LAYOUT_TEXT_Side_volume_key_popup_window_texts_Line_2 AknLayout::Side_volume_key_popup_window_texts_Line_2()
+#define AKN_LAYOUT_WINDOW_Side_volume_key_popup_window_background_Line_1 AknLayout::Side_volume_key_popup_window_background_Line_1
+#define AKN_LAYOUT_WINDOW_Side_volume_key_popup_window_background_Line_2 AknLayout::Side_volume_key_popup_window_background_Line_2
+#define AKN_LAYOUT_WINDOW_Side_volume_key_popup_window_background_Line_3 AknLayout::Side_volume_key_popup_window_background_Line_3
+#define AKN_LAYOUT_WINDOW_Side_volume_key_popup_window_background_Line_4 AknLayout::Side_volume_key_popup_window_background_Line_4
+#define AKN_LAYOUT_TEXT_Transparent_setting_item_texts_Line_1 AknLayout::Transparent_setting_item_texts_Line_1()
+#define AKN_LAYOUT_TEXT_Transparent_setting_item_texts_Line_2 AknLayout::Transparent_setting_item_texts_Line_2()
+#define AKN_LAYOUT_TEXT_Transparent_setting_item_texts_Line_3 AknLayout::Transparent_setting_item_texts_Line_3
+#define AKN_LAYOUT_TEXT_Transparent_setting_item_texts_Line_4 AknLayout::Transparent_setting_item_texts_Line_4
+#define AKN_LAYOUT_TEXT_List_pane_texts__set_trans_graphic__Line_1 AknLayout::List_pane_texts__set_trans_graphic__Line_1
+#define AKN_LAYOUT_TEXT_List_pane_texts__set_trans_graphic__Line_2 AknLayout::List_pane_texts__set_trans_graphic__Line_2
+#define AKN_LAYOUT_WINDOW_list_set_trans_pane AknLayout::list_set_trans_pane
+#define AKN_LAYOUT_WINDOW_list_set_trans_graphic_pane AknLayout::list_set_trans_graphic_pane
+#define AKN_LAYOUT_WINDOW_List_pane_elements__set_trans_graphic__Line_1 AknLayout::List_pane_elements__set_trans_graphic__Line_1()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__set_trans_graphic__Line_2 AknLayout::List_pane_elements__set_trans_graphic__Line_2()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__set_trans_graphic__Line_3 AknLayout::List_pane_elements__set_trans_graphic__Line_3()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__set_trans_graphic__Line_4 AknLayout::List_pane_elements__set_trans_graphic__Line_4()
+#define AKN_LAYOUT_WINDOW_List_pane_elements__set_trans_graphic__Line_5 AknLayout::List_pane_elements__set_trans_graphic__Line_5()
+#define AKN_LAYOUT_TEXT_Soft_indicator_texts_Line_1 AknLayout::Soft_indicator_texts_Line_1()
+#define AKN_LAYOUT_WINDOW_ai_links_pane AknLayout::ai_links_pane()
+#define AKN_LAYOUT_WINDOW_ai_gene_pane AknLayout::ai_gene_pane
+#define AKN_LAYOUT_WINDOW_Link_pane_elements_and_descendant_panes_Line_1 AknLayout::Link_pane_elements_and_descendant_panes_Line_1()
+#define AKN_LAYOUT_WINDOW_grid_ai_links_pane AknLayout::grid_ai_links_pane()
+#define AKN_LAYOUT_TABLE_LIMITS_Link_pane_elements_and_descendant_panes_Limits AknLayout::Link_pane_elements_and_descendant_panes_Limits()
+#define AKN_LAYOUT_TABLE_Link_pane_elements_and_descendant_panes AknLayout::Link_pane_elements_and_descendant_panes
+#define AKN_LAYOUT_WINDOW_cell_ai_link_pane AknLayout::cell_ai_link_pane
+#define AKN_LAYOUT_WINDOW_Link_shortcut_cell_pane_elements_Line_1 AknLayout::Link_shortcut_cell_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Link_shortcut_cell_pane_elements_Line_2 AknLayout::Link_shortcut_cell_pane_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Link_shortcut_cell_pane_elements_Line_3 AknLayout::Link_shortcut_cell_pane_elements_Line_3()
+#define AKN_LAYOUT_WINDOW_Link_shortcut_cell_pane_elements_Line_4 AknLayout::Link_shortcut_cell_pane_elements_Line_4()
+#define AKN_LAYOUT_TABLE_LIMITS_Link_shortcut_cell_pane_elements_Limits AknLayout::Link_shortcut_cell_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Link_shortcut_cell_pane_elements AknLayout::Link_shortcut_cell_pane_elements
+#define AKN_LAYOUT_WINDOW_popup_ai_links_title_window AknLayout::popup_ai_links_title_window()
+#define AKN_LAYOUT_TEXT_Link_shortcut_title_texts_Line_1 AknLayout::Link_shortcut_title_texts_Line_1()
+#define AKN_LAYOUT_WINDOW_Link_shortcut_title_pop_up_window_graphics_Line_1 AknLayout::Link_shortcut_title_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Link_shortcut_title_pop_up_window_graphics_Line_2 AknLayout::Link_shortcut_title_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Link_shortcut_title_pop_up_window_graphics_Line_3 AknLayout::Link_shortcut_title_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Link_shortcut_title_pop_up_window_graphics_Line_4 AknLayout::Link_shortcut_title_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_TABLE_LIMITS_Link_shortcut_title_pop_up_window_graphics_Limits AknLayout::Link_shortcut_title_pop_up_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Link_shortcut_title_pop_up_window_graphics AknLayout::Link_shortcut_title_pop_up_window_graphics
+#define AKN_LAYOUT_WINDOW_ai_gene_pane_1 AknLayout::ai_gene_pane_1()
+#define AKN_LAYOUT_WINDOW_ai_gene_pane_2 AknLayout::ai_gene_pane_2
+#define AKN_LAYOUT_WINDOW_First_general_event_elements_Line_1 AknLayout::First_general_event_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_First_general_event_elements_Line_2 AknLayout::First_general_event_elements_Line_2()
+#define AKN_LAYOUT_TEXT_First_general_event_texts_Line_1 AknLayout::First_general_event_texts_Line_1
+#define AKN_LAYOUT_TEXT_Second_general_event_pane_texts_Line_1 AknLayout::Second_general_event_pane_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Shortcut_link_highlight_Line_1 AknLayout::Shortcut_link_highlight_Line_1
+#define AKN_LAYOUT_WINDOW_Highlight_for_other_Active_Idle_items_Line_1 AknLayout::Highlight_for_other_Active_Idle_items_Line_1
+#define AKN_LAYOUT_TEXT_Find_pop_up_window_texts_Line_2 AknLayout::Find_pop_up_window_texts_Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Find_pop_up_window_texts_Limits AknLayout::Find_pop_up_window_texts_Limits()
+#define AKN_LAYOUT_TABLE_Find_pop_up_window_texts AknLayout::Find_pop_up_window_texts
+#define AKN_LAYOUT_TEXT_Find_pane_texts_Line_2 AknLayout::Find_pane_texts_Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Find_pane_texts_Limits AknLayout::Find_pane_texts_Limits()
+#define AKN_LAYOUT_TABLE_Find_pane_texts AknLayout::Find_pane_texts
+#define AKN_LAYOUT_WINDOW_ai_gene_pane_3 AknLayout::ai_gene_pane_3()
+#define AKN_LAYOUT_WINDOW_Third_general_event_elements_Line_1 AknLayout::Third_general_event_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Third_general_event_elements_Line_2 AknLayout::Third_general_event_elements_Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Third_general_event_elements_Limits AknLayout::Third_general_event_elements_Limits()
+#define AKN_LAYOUT_TABLE_Third_general_event_elements AknLayout::Third_general_event_elements
+#define AKN_LAYOUT_WINDOW_popup_ai_message_window AknLayout::popup_ai_message_window()
+#define AKN_LAYOUT_WINDOW_Active_idle_message_pop_up_window_descendants_Line_1 AknLayout::Active_idle_message_pop_up_window_descendants_Line_1()
+#define AKN_LAYOUT_WINDOW_Active_idle_message_pop_up_window_descendants_Line_2 AknLayout::Active_idle_message_pop_up_window_descendants_Line_2()
+#define AKN_LAYOUT_WINDOW_Active_idle_message_pop_up_window_descendants_Line_3 AknLayout::Active_idle_message_pop_up_window_descendants_Line_3()
+#define AKN_LAYOUT_TABLE_LIMITS_Active_idle_message_pop_up_window_descendants_Limits AknLayout::Active_idle_message_pop_up_window_descendants_Limits()
+#define AKN_LAYOUT_TABLE_Active_idle_message_pop_up_window_descendants AknLayout::Active_idle_message_pop_up_window_descendants
+#define AKN_LAYOUT_TEXT_Active_idle_message_popup_window_texts_Line_1 AknLayout::Active_idle_message_popup_window_texts_Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Active_idle_message_popup_window_texts_Line_1 AknLayout::Multiline_Active_idle_message_popup_window_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Active_idle_heading_pane_elements_Line_1 AknLayout::Active_idle_heading_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Active_idle_heading_pane_elements_Line_2 AknLayout::Active_idle_heading_pane_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Active_idle_heading_pane_elements_Line_3 AknLayout::Active_idle_heading_pane_elements_Line_3()
+#define AKN_LAYOUT_WINDOW_Active_idle_heading_pane_elements_Line_4 AknLayout::Active_idle_heading_pane_elements_Line_4()
+#define AKN_LAYOUT_TABLE_LIMITS_Active_idle_heading_pane_elements_Limits AknLayout::Active_idle_heading_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Active_idle_heading_pane_elements AknLayout::Active_idle_heading_pane_elements
+#define AKN_LAYOUT_TEXT_Active_idle_heading_pane_texts_Line_1 AknLayout::Active_idle_heading_pane_texts_Line_1
+#define AKN_LAYOUT_TEXT_Active_idle_heading_pane_texts_Line_2 AknLayout::Active_idle_heading_pane_texts_Line_2()
+#define AKN_LAYOUT_WINDOW_Active_idle_message_pop_up_window_graphics_Line_1 AknLayout::Active_idle_message_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Active_idle_message_pop_up_window_graphics_Line_2 AknLayout::Active_idle_message_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Active_idle_message_pop_up_window_graphics_Line_3 AknLayout::Active_idle_message_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Active_idle_message_pop_up_window_graphics_Line_4 AknLayout::Active_idle_message_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_WINDOW_Active_idle_message_pop_up_window_graphics_Line_5 AknLayout::Active_idle_message_pop_up_window_graphics_Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Active_idle_message_pop_up_window_graphics_Limits AknLayout::Active_idle_message_pop_up_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Active_idle_message_pop_up_window_graphics AknLayout::Active_idle_message_pop_up_window_graphics
+#include <aknapaclayout.cdl.h>
+#define AKN_LAYOUT_WINDOW_Find_pane_elements_Line_6 AknApacLayout::Find_pane_elements_Line_6()
+#define AKN_LAYOUT_WINDOW_popup_fep_china_window AknApacLayout::popup_fep_china_window
+#define AKN_LAYOUT_WINDOW_popup_fep_china_pinyin_window AknApacLayout::popup_fep_china_pinyin_window
+#define AKN_LAYOUT_WINDOW_Cursor_graphics__16__Line_1 AknApacLayout::Cursor_graphics__16__Line_1()
+#define AKN_LAYOUT_WINDOW_Cut_copy_and_paste_highlight_graphics__16__Line_1 AknApacLayout::Cut_copy_and_paste_highlight_graphics__16__Line_1()
+#define AKN_LAYOUT_WINDOW_Time_and_date_entry_graphics__16__Line_1 AknApacLayout::Time_and_date_entry_graphics__16__Line_1()
+#define AKN_LAYOUT_WINDOW_cell_apac_character_popup_pane AknApacLayout::cell_apac_character_popup_pane
+#define AKN_LAYOUT_TEXT_Cell_pane_texts__pop_up_APAC_character__Line_1 AknApacLayout::Cell_pane_texts__pop_up_APAC_character__Line_1()
+#define AKN_LAYOUT_WINDOW_APAC_character_selection_pop_up_window_descendants_Line_1 AknApacLayout::APAC_character_selection_pop_up_window_descendants_Line_1
+#define AKN_LAYOUT_WINDOW_grid_apac_character_popup_pane AknApacLayout::grid_apac_character_popup_pane
+#define AKN_LAYOUT_WINDOW_APAC_character_selection_pop_up_window_elements_Line_1 AknApacLayout::APAC_character_selection_pop_up_window_elements_Line_1
+#define AKN_LAYOUT_WINDOW_APAC_character_selection_pop_up_window_elements_Line_2 AknApacLayout::APAC_character_selection_pop_up_window_elements_Line_2
+#define AKN_LAYOUT_WINDOW_APAC_character_selection_pop_up_window_graphics_Line_1 AknApacLayout::APAC_character_selection_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_APAC_character_selection_pop_up_window_graphics_Line_2 AknApacLayout::APAC_character_selection_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_APAC_character_selection_pop_up_window_graphics_Line_3 AknApacLayout::APAC_character_selection_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_APAC_character_selection_pop_up_window_graphics_Line_4 AknApacLayout::APAC_character_selection_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_WINDOW_APAC_character_selection_pop_up_window_graphics_Line_5 AknApacLayout::APAC_character_selection_pop_up_window_graphics_Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_APAC_character_selection_pop_up_window_graphics_SUB_TABLE_0_Limits AknApacLayout::APAC_character_selection_pop_up_window_graphics_SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_APAC_character_selection_pop_up_window_graphics_SUB_TABLE_0 AknApacLayout::APAC_character_selection_pop_up_window_graphics_SUB_TABLE_0
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_pop_up_window_elements_and_descendants_panes_Line_1 AknApacLayout::Chinese_FEP_pop_up_window_elements_and_descendants_panes_Line_1
+#define AKN_LAYOUT_WINDOW_fep_china_entry_pane AknApacLayout::fep_china_entry_pane
+#define AKN_LAYOUT_WINDOW_fep_china_candidate_pane AknApacLayout::fep_china_candidate_pane
+#define AKN_LAYOUT_TEXT_Chinese_FEP_entry_pane_texts_Line_1 AknApacLayout::Chinese_FEP_entry_pane_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_candidate_pane_elements_Line_1 AknApacLayout::Chinese_FEP_candidate_pane_elements_Line_1
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_candidate_pane_elements_Line_2 AknApacLayout::Chinese_FEP_candidate_pane_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_candidate_pane_elements_Line_3 AknApacLayout::Chinese_FEP_candidate_pane_elements_Line_3()
+#define AKN_LAYOUT_WINDOW_fep_china_highlight_pane AknApacLayout::fep_china_highlight_pane
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_FEP_candidate_pane_elements_SUB_TABLE_0_Limits AknApacLayout::Chinese_FEP_candidate_pane_elements_SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_Chinese_FEP_candidate_pane_elements_SUB_TABLE_0 AknApacLayout::Chinese_FEP_candidate_pane_elements_SUB_TABLE_0
+#define AKN_LAYOUT_TEXT_Chinese_FEP_candidate_pane_texts_Line_1 AknApacLayout::Chinese_FEP_candidate_pane_texts_Line_1
+#define AKN_LAYOUT_TEXT_Chinese_FEP_candidate_pane_texts_Line_2 AknApacLayout::Chinese_FEP_candidate_pane_texts_Line_2
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_pop_up_window_graphics_Line_1 AknApacLayout::Chinese_FEP_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_pop_up_window_graphics_Line_2 AknApacLayout::Chinese_FEP_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_pop_up_window_graphics_Line_3 AknApacLayout::Chinese_FEP_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_pop_up_window_graphics_Line_4 AknApacLayout::Chinese_FEP_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_pop_up_window_graphics_Line_5 AknApacLayout::Chinese_FEP_pop_up_window_graphics_Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_FEP_pop_up_window_graphics_Limits AknApacLayout::Chinese_FEP_pop_up_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Chinese_FEP_pop_up_window_graphics AknApacLayout::Chinese_FEP_pop_up_window_graphics
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_highlight_elements_Line_1 AknApacLayout::Chinese_FEP_highlight_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_highlight_elements_Line_2 AknApacLayout::Chinese_FEP_highlight_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_highlight_elements_Line_3 AknApacLayout::Chinese_FEP_highlight_elements_Line_3()
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_FEP_highlight_elements_Limits AknApacLayout::Chinese_FEP_highlight_elements_Limits()
+#define AKN_LAYOUT_TABLE_Chinese_FEP_highlight_elements AknApacLayout::Chinese_FEP_highlight_elements
+#define AKN_LAYOUT_TEXT_Chinese_FEP_highlight_texts_Line_1 AknApacLayout::Chinese_FEP_highlight_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Unselected_string_highlight_Line_1 AknApacLayout::Unselected_string_highlight_Line_1
+#define AKN_LAYOUT_WINDOW_list_single_fep_china_pinyin_pane AknApacLayout::list_single_fep_china_pinyin_pane
+#define AKN_LAYOUT_TEXT_List_pane_texts__fep_china__Line_1 AknApacLayout::List_pane_texts__fep_china__Line_1
+#define AKN_LAYOUT_WINDOW_Pinyin_T9_candidate_pop_up_window_graphics_Line_1 AknApacLayout::Pinyin_T9_candidate_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Pinyin_T9_candidate_pop_up_window_graphics_Line_2 AknApacLayout::Pinyin_T9_candidate_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Pinyin_T9_candidate_pop_up_window_graphics_Line_3 AknApacLayout::Pinyin_T9_candidate_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Pinyin_T9_candidate_pop_up_window_graphics_Line_4 AknApacLayout::Pinyin_T9_candidate_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_TABLE_LIMITS_Pinyin_T9_candidate_pop_up_window_graphics_Limits AknApacLayout::Pinyin_T9_candidate_pop_up_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Pinyin_T9_candidate_pop_up_window_graphics AknApacLayout::Pinyin_T9_candidate_pop_up_window_graphics
+#define AKN_LAYOUT_WINDOW_Pinyin_T9_candidate_highlight_Line_1 AknApacLayout::Pinyin_T9_candidate_highlight_Line_1
+#define AKN_LAYOUT_WINDOW_popup_grid_apac_character_window AknApacLayout::popup_grid_apac_character_window
+#define AKN_LAYOUT_WINDOW_popup_fep_japan_predictive_window AknApacLayout::popup_fep_japan_predictive_window
+#define AKN_LAYOUT_WINDOW_popup_fep_japan_candidate_window AknApacLayout::popup_fep_japan_candidate_window
+#define AKN_LAYOUT_WINDOW_candidate_pane AknApacLayout::candidate_pane
+#define AKN_LAYOUT_WINDOW_list_single_popup_jap_candidate_pane AknApacLayout::list_single_popup_jap_candidate_pane
+#define AKN_LAYOUT_TEXT_List_pane_text__single_japan_fep__Line_1 AknApacLayout::List_pane_text__single_japan_fep__Line_1
+#define AKN_LAYOUT_TEXT_Predictive_candidate_selection_list_texts_Line_1 AknApacLayout::Predictive_candidate_selection_list_texts_Line_1
+#define AKN_LAYOUT_MULTILINE_TEXT_Predictive_candidate_selection_list_texts_Line_1 AknApacLayout::Multiline_Predictive_candidate_selection_list_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Predictive_candidate_selection_highlight_Line_1 AknApacLayout::Predictive_candidate_selection_highlight_Line_1()
+#define AKN_LAYOUT_WINDOW_Predictive_candidate_selection_popup_window_graphics_Line_1 AknApacLayout::Predictive_candidate_selection_popup_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Predictive_candidate_selection_popup_window_graphics_Line_2 AknApacLayout::Predictive_candidate_selection_popup_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Predictive_candidate_selection_popup_window_graphics_Line_3 AknApacLayout::Predictive_candidate_selection_popup_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Predictive_candidate_selection_popup_window_graphics_Line_4 AknApacLayout::Predictive_candidate_selection_popup_window_graphics_Line_4
+#define AKN_LAYOUT_TABLE_LIMITS_Predictive_candidate_selection_popup_window_graphics_Limits AknApacLayout::Predictive_candidate_selection_popup_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Predictive_candidate_selection_popup_window_graphics AknApacLayout::Predictive_candidate_selection_popup_window_graphics
+#define AKN_LAYOUT_TEXT_Candidate_selection_list_texts_Line_1 AknApacLayout::Candidate_selection_list_texts_Line_1()
+#define AKN_LAYOUT_WINDOW_Candidate_selection_pop_up_window_graphics_Line_1 AknApacLayout::Candidate_selection_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Candidate_selection_pop_up_window_graphics_Line_2 AknApacLayout::Candidate_selection_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Candidate_selection_pop_up_window_graphics_Line_3 AknApacLayout::Candidate_selection_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Candidate_selection_pop_up_window_graphics_Line_4 AknApacLayout::Candidate_selection_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_TABLE_LIMITS_Candidate_selection_pop_up_window_graphics_Limits AknApacLayout::Candidate_selection_pop_up_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Candidate_selection_pop_up_window_graphics AknApacLayout::Candidate_selection_pop_up_window_graphics
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_popup_window_elements_and_descendants_panes_Line_1 AknApacLayout::Chinese_FEP_Zi_popup_window_elements_and_descendants_panes_Line_1()
+#define AKN_LAYOUT_WINDOW_fep_china_zi_entry_pane AknApacLayout::fep_china_zi_entry_pane
+#define AKN_LAYOUT_WINDOW_fep_china_zi_candidate_pane AknApacLayout::fep_china_zi_candidate_pane
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_entry_pane_elements_Line_1 AknApacLayout::Chinese_FEP_Zi_entry_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_entry_pane_elements_Line_2 AknApacLayout::Chinese_FEP_Zi_entry_pane_elements_Line_2()
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_FEP_Zi_entry_pane_elements_Limits AknApacLayout::Chinese_FEP_Zi_entry_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Chinese_FEP_Zi_entry_pane_elements AknApacLayout::Chinese_FEP_Zi_entry_pane_elements
+#define AKN_LAYOUT_TEXT_Chinese_FEP_Zi_entry_pane_texts_Line_1 AknApacLayout::Chinese_FEP_Zi_entry_pane_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_candidate_pane_elements_Line_1 AknApacLayout::Chinese_FEP_Zi_candidate_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_candidate_pane_elements_Line_2 AknApacLayout::Chinese_FEP_Zi_candidate_pane_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_candidate_pane_elements_Line_3 AknApacLayout::Chinese_FEP_Zi_candidate_pane_elements_Line_3()
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_candidate_pane_elements_Line_4 AknApacLayout::Chinese_FEP_Zi_candidate_pane_elements_Line_4()
+#define AKN_LAYOUT_WINDOW_fep_china_zi_highlight_pane AknApacLayout::fep_china_zi_highlight_pane()
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_FEP_Zi_candidate_pane_elements_Limits AknApacLayout::Chinese_FEP_Zi_candidate_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Chinese_FEP_Zi_candidate_pane_elements AknApacLayout::Chinese_FEP_Zi_candidate_pane_elements
+#define AKN_LAYOUT_TEXT_Chinese_FEP_Zi_candidate_pane_texts_Line_1 AknApacLayout::Chinese_FEP_Zi_candidate_pane_texts_Line_1()
+#define AKN_LAYOUT_TEXT_Chinese_FEP_Zi_candidate_pane_texts_Line_2 AknApacLayout::Chinese_FEP_Zi_candidate_pane_texts_Line_2()
+#define AKN_LAYOUT_TEXT_Chinese_FEP_Zi_candidate_pane_texts_Line_3 AknApacLayout::Chinese_FEP_Zi_candidate_pane_texts_Line_3()
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_FEP_Zi_candidate_pane_texts_Limits AknApacLayout::Chinese_FEP_Zi_candidate_pane_texts_Limits()
+#define AKN_LAYOUT_TABLE_Chinese_FEP_Zi_candidate_pane_texts AknApacLayout::Chinese_FEP_Zi_candidate_pane_texts
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_popup_window_graphics__part_1__Line_1 AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_1__Line_1()
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_popup_window_graphics__part_1__Line_2 AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_1__Line_2
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_popup_window_graphics__part_1__Line_3 AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_1__Line_3
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_popup_window_graphics__part_1__Line_4 AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_1__Line_4()
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_popup_window_graphics__part_1__Line_5 AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_1__Line_5()
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_FEP_Zi_popup_window_graphics__part_1__SUB_TABLE_0_Limits AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_1__SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_Chinese_FEP_Zi_popup_window_graphics__part_1__SUB_TABLE_0 AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_1__SUB_TABLE_0
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_FEP_Zi_popup_window_graphics__part_1__SUB_TABLE_1_Limits AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_1__SUB_TABLE_1_Limits()
+#define AKN_LAYOUT_TABLE_Chinese_FEP_Zi_popup_window_graphics__part_1__SUB_TABLE_1 AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_1__SUB_TABLE_1
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_popup_window_graphics__part_2__Line_1 AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_2__Line_1
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_popup_window_graphics__part_2__Line_2 AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_2__Line_2
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_popup_window_graphics__part_2__Line_3 AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_2__Line_3
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_popup_window_graphics__part_2__Line_4 AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_2__Line_4
+#define AKN_LAYOUT_WINDOW_Chinese_FEP_Zi_popup_window_graphics__part_2__Line_5 AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_2__Line_5
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_FEP_Zi_popup_window_graphics__part_2__Limits AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_2__Limits()
+#define AKN_LAYOUT_TABLE_Chinese_FEP_Zi_popup_window_graphics__part_2_ AknApacLayout::Chinese_FEP_Zi_popup_window_graphics__part_2_
+#define AKN_LAYOUT_WINDOW_Input_highlight_elements_Line_1 AknApacLayout::Input_highlight_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Candidate_selection_Line_1 AknApacLayout::Candidate_selection_Line_1
+#define AKN_LAYOUT_WINDOW_Candidate_selection_Line_2 AknApacLayout::Candidate_selection_Line_2
+#define AKN_LAYOUT_TABLE_LIMITS_Candidate_selection_Limits AknApacLayout::Candidate_selection_Limits()
+#define AKN_LAYOUT_TABLE_Candidate_selection AknApacLayout::Candidate_selection
+#define AKN_LAYOUT_WINDOW_popup_fep_china_zi_window AknApacLayout::popup_fep_china_zi_window
+#define AKN_LAYOUT_WINDOW_Find_pop_up_window_elements_Line_5 AknApacLayout::Find_pop_up_window_elements_Line_5()
+#define AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_elements_and_descendants_panes_Line_1 AknApacLayout::Chinese_universal_FEP_pop_up_window_elements_and_descendants_panes_Line_1()
+#define AKN_LAYOUT_WINDOW_fep_china_uni_entry_pane AknApacLayout::fep_china_uni_entry_pane()
+#define AKN_LAYOUT_WINDOW_fep_china_uni_candidate_pane AknApacLayout::fep_china_uni_candidate_pane
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_universal_FEP_pop_up_window_elements_and_descendants_panes_SUB_TABLE_0_Limits AknApacLayout::Chinese_universal_FEP_pop_up_window_elements_and_descendants_panes_SUB_TABLE_0_Limits()
+#define AKN_LAYOUT_TABLE_Chinese_universal_FEP_pop_up_window_elements_and_descendants_panes_SUB_TABLE_0 AknApacLayout::Chinese_universal_FEP_pop_up_window_elements_and_descendants_panes_SUB_TABLE_0
+#define AKN_LAYOUT_WINDOW_Chinese_universal_FEP_entry_pane_elements_Line_1 AknApacLayout::Chinese_universal_FEP_entry_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Chinese_universal_FEP_entry_pane_elements_Line_2 AknApacLayout::Chinese_universal_FEP_entry_pane_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_fep_entry_item_pane AknApacLayout::fep_entry_item_pane()
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_universal_FEP_entry_pane_elements_Limits AknApacLayout::Chinese_universal_FEP_entry_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Chinese_universal_FEP_entry_pane_elements AknApacLayout::Chinese_universal_FEP_entry_pane_elements
+#define AKN_LAYOUT_TEXT_Chinese_universal_FEP_entry_pane_texts_Line_1 AknApacLayout::Chinese_universal_FEP_entry_pane_texts_Line_1
+#define AKN_LAYOUT_WINDOW_Chinese_universal_FEPcandidate_pane_elements_Line_1 AknApacLayout::Chinese_universal_FEPcandidate_pane_elements_Line_1()
+#define AKN_LAYOUT_WINDOW_Chinese_universal_FEPcandidate_pane_elements_Line_2 AknApacLayout::Chinese_universal_FEPcandidate_pane_elements_Line_2()
+#define AKN_LAYOUT_WINDOW_Chinese_universal_FEPcandidate_pane_elements_Line_3 AknApacLayout::Chinese_universal_FEPcandidate_pane_elements_Line_3()
+#define AKN_LAYOUT_WINDOW_Chinese_universal_FEPcandidate_pane_elements_Line_4 AknApacLayout::Chinese_universal_FEPcandidate_pane_elements_Line_4()
+#define AKN_LAYOUT_WINDOW_fep_candidate_item_pane AknApacLayout::fep_candidate_item_pane()
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_universal_FEPcandidate_pane_elements_Limits AknApacLayout::Chinese_universal_FEPcandidate_pane_elements_Limits()
+#define AKN_LAYOUT_TABLE_Chinese_universal_FEPcandidate_pane_elements AknApacLayout::Chinese_universal_FEPcandidate_pane_elements
+#define AKN_LAYOUT_TEXT_Chinese_universal_FEP_candidate_pane_texts_Line_1 AknApacLayout::Chinese_universal_FEP_candidate_pane_texts_Line_1()
+#define AKN_LAYOUT_TEXT_Chinese_universal_FEP_candidate_pane_texts_Line_2 AknApacLayout::Chinese_universal_FEP_candidate_pane_texts_Line_2()
+#define AKN_LAYOUT_TEXT_Chinese_universal_FEP_candidate_pane_texts_Line_3 AknApacLayout::Chinese_universal_FEP_candidate_pane_texts_Line_3()
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_universal_FEP_candidate_pane_texts_Limits AknApacLayout::Chinese_universal_FEP_candidate_pane_texts_Limits()
+#define AKN_LAYOUT_TABLE_Chinese_universal_FEP_candidate_pane_texts AknApacLayout::Chinese_universal_FEP_candidate_pane_texts
+#define AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_1 AknApacLayout::Chinese_universal_FEP_pop_up_window_graphics_Line_1
+#define AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_2 AknApacLayout::Chinese_universal_FEP_pop_up_window_graphics_Line_2
+#define AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_3 AknApacLayout::Chinese_universal_FEP_pop_up_window_graphics_Line_3
+#define AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_4 AknApacLayout::Chinese_universal_FEP_pop_up_window_graphics_Line_4
+#define AKN_LAYOUT_TABLE_LIMITS_Chinese_universal_FEP_pop_up_window_graphics_Limits AknApacLayout::Chinese_universal_FEP_pop_up_window_graphics_Limits()
+#define AKN_LAYOUT_TABLE_Chinese_universal_FEP_pop_up_window_graphics AknApacLayout::Chinese_universal_FEP_pop_up_window_graphics
+#define AKN_LAYOUT_WINDOW_Input_highlight_Line_1 AknApacLayout::Input_highlight_Line_1
+#define AKN_LAYOUT_WINDOW_Candidate_selection_highlight_Line_1 AknApacLayout::Candidate_selection_highlight_Line_1
+#define AKN_LAYOUT_WINDOW_Candidate_selection_highlight_Line_2 AknApacLayout::Candidate_selection_highlight_Line_2
+#define AKN_LAYOUT_TABLE_LIMITS_Candidate_selection_highlight_Limits AknApacLayout::Candidate_selection_highlight_Limits()
+#define AKN_LAYOUT_TABLE_Candidate_selection_highlight AknApacLayout::Candidate_selection_highlight
+#define AKN_LAYOUT_WINDOW_popup_fep_china_uni_window AknApacLayout::popup_fep_china_uni_window
+#endif
--- a/dependencies/bld.inf Thu Apr 01 12:25:43 2010 +0100
+++ b/dependencies/bld.inf Thu Apr 01 14:50:19 2010 +0100
@@ -60,6 +60,8 @@
SchemeHandler.inl SchemeHandler.inl
aiwcommon.hrh aiwcommon.hrh
aiwdialdata.h aiwdialdata.h
+EikSoftkeyImage.h EikSoftkeyImage.h
+AknStatuspaneUtils.h AknStatuspaneUtils.h
EikSoftkeyImage.h MW_LAYER_PLATFORM_EXPORT_PATH(eiksoftkeyimage.h)
AknStatuspaneUtils.h MW_LAYER_PLATFORM_EXPORT_PATH(AknStatuspaneUtils.h)
@@ -74,6 +76,7 @@
AknsPkgID.inl AknsPkgID.inl
+#include "extended_skin_api/bld.inf"
#include "S3libs/bld.inf"
#include "xcfw/bld.inf"
@@ -111,4 +114,5 @@
#include "ssm/bld.inf"
#include "swi/bld.inf"
#include "mifconv/group/bld.inf"
+#include "hs_content_control_ui/bld.inf"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_skin_api/AknsEffectAnim.h Thu Apr 01 14:50:19 2010 +0100
@@ -0,0 +1,274 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: ?Description
+*
+*/
+
+#ifndef AKNSEFFECTANIM_H
+#define AKNSEFFECTANIM_H
+
+// INCLUDE FILES
+#include <gdi.h> // For TDisplayMode
+
+// CONSTANTS
+enum TAknsAnimState
+ {
+ EAknsAnimStateStopped = 0,
+ EAknsAnimStateRunning = 1,
+ EAknsAnimStatePaused = 2,
+ EAknsAnimStateFinished = 3
+ };
+
+// In milliseconds
+const TInt KAknsEffectAnimDefaultIdleInterval = 333;
+
+// FORWARD DECLARATIONS
+class CFbsBitGc;
+class CWindowGc;
+class CBitmapContext;
+class CFbsBitmap;
+class TAknsItemID;
+
+class CAknsAlAnimatorBmp;
+
+// CLASS DECLARATION
+/**
+* Animation user must implement this interface to receive notification when a
+* new animation frame is ready to be drawn.
+*
+* @since 3.0
+*/
+class MAknsEffectAnimObserver
+ {
+ public:
+ /**
+ * Animation frame is ready to be drawn.
+ *
+ * @param aError KErrNone if frame has been succesfully created and is
+ * available for drawing. If !KErrNone the animation has internally
+ * failed.
+ * @param aAnimId Reserved for future use
+ */
+ virtual void AnimFrameReady( TInt aError, TInt aAnimId ) = 0;
+ };
+
+// CLASS DECLARATION
+/**
+* Animation controller for using effect animations.
+*
+* @since 3.0
+*/
+class CAknsEffectAnim: public CBase
+ {
+public: // Constructors
+ /**
+ * Creates a new animation controller. Full construction requires a call to
+ * ConstructFromSkinL. Leaves with KErrNotSupported if highlight animations
+ * have been disabled, see AknsUtils::SetAvkonHighlightAnimationEnabledL.
+ *
+ * @param aObserver Must be non-NULL
+ */
+ IMPORT_C static CAknsEffectAnim* NewL( MAknsEffectAnimObserver* aObserver );
+ IMPORT_C virtual ~CAknsEffectAnim();
+
+ /**
+ * Constructs animation from skin item. Leaves if animation construction
+ * fails.
+ * @param aItemID Animation skin item ID
+ * @return ETrue if the animation was found from the skin, EFalse if it was
+ * not found.
+ */
+ IMPORT_C TBool ConstructFromSkinL( const TAknsItemID& aItemID );
+
+private:
+ CAknsEffectAnim();
+ void ConstructL( MAknsEffectAnimObserver* aObserver );
+
+public: // Interface for using the animation
+ /**
+ * Starts the animation from the very beginning.
+ *
+ * @return Error code, KErrNone if operation was succesfull. If returned
+ * error code != KErrNone the operation has failed (OOM, internal
+ * misconfiguration etc). Recommended action is to delete the animation
+ * and fall back to normal rendering. Returns KErrNotReady if input layers
+ * have not been configured.
+ */
+ IMPORT_C TInt Start();
+
+ /**
+ * Stops the animation. Input layers are released, output layer is kept.
+ *
+ * @return Error code, KErrNone if operation was succesfull. If returned
+ * error code != KErrNone the operation has failed (OOM, internal
+ * misconfiguration etc). Recommended action is to delete the animation
+ * and fall back to normal rendering.
+ */
+ IMPORT_C TInt Stop();
+
+ /**
+ * Pauses the animation. Input layers are not released.
+ *
+ * @return Error code, KErrNone if operation was succesfull. If returned
+ * error code != KErrNone the operation has failed (OOM, internal
+ * misconfiguration etc). Recommended action is to delete the animation
+ * and fall back to normal rendering.
+ */
+ IMPORT_C TInt Pause();
+
+ /**
+ * Continues the animation from the state where it was paused.
+ *
+ * @return Error code, KErrNone if operation was succesfull. If returned
+ * error code != KErrNone the operation has failed (OOM, internal
+ * misconfiguration etc). Recommended action is to delete the animation
+ * and fall back to normal rendering.
+ */
+ IMPORT_C TInt Continue();
+
+ /**
+ * @return The current state of animation. Possible state values are
+ * described in TAknsAnimState.
+ */
+ IMPORT_C TInt State();
+
+ /**
+ * Renders the current animation frame with the provided graphics context.
+ * The animation may have an output mask. The output mask will be used in
+ * the rendering if it exists. Otherwise nonmasked renderig will be used.
+ * Rendering will use BitBlt. For more specialized rendering use the exposed
+ * output bitmaps.
+ *
+ * @param aGc The graphics context used for rendering.
+ * @param aGcRect The frame is blit to this rectangle on the graphics
+ * context target.
+ * @return ETrue if rendering was successfull, EFalse otherwise.
+ */
+ IMPORT_C TBool Render( CFbsBitGc& aGc, const TRect& aGcRect ) const;
+
+ /**
+ * Similar to the other Render, this version is just for the window graphics
+ * context.
+ */
+ IMPORT_C TBool Render( CWindowGc& aGc, const TRect& aGcRect ) const;
+
+ /**
+ * Similar to the other renders, this version is just for the bitmap
+ * graphics context.
+ *
+ * @since 3.1
+ */
+ IMPORT_C TBool Render( CBitmapContext& aGc, const TRect& aGcRect ) const;
+
+ /**
+ * @return The current animation output frame. Can be NULL if e.g. called
+ * before configuring animation layers.
+ */
+ IMPORT_C const CFbsBitmap* OutputRgb() const;
+
+ /**
+ * @return The current animation output frame mask. Output mask is optional
+ * --> can be NULL at any given time.
+ */
+ IMPORT_C const CFbsBitmap* OutputAlpha() const;
+
+ /**
+ * @return The minimum allowed size of animation.
+ */
+ IMPORT_C TSize MinimumSize() const;
+
+ /**
+ * @return The current size of animation.
+ */
+ IMPORT_C TSize Size() const;
+
+ /**
+ * @return ETrue if input layer is required for correct rendering but it is
+ * not currently present.
+ */
+ IMPORT_C TBool NeedsInputLayer() const;
+
+ /**
+ * Starts configuring input layers, should be called prior to Begin() and
+ * Continue() to restore input layers to animation. Configure sequence is as
+ * follows:
+ * 1. Call BeginConfigLayers to start configuration
+ * 2. Use InputRgbGc and InputAlphaGc to prepare input layers
+ * 3. Call EndConfigLayers to end configuration
+ *
+ * @param aNewSize The layer size, must be larger than or equal to minimum
+ * size. Providing size smaller than minimum size will lead to leave with
+ * KErrArgument.
+ * @param aAboutToStart If animation is about to be started or continued
+ * after layer configuration this should be set to ETrue (to keep input
+ * layers). Otherwise EFalse should be used.
+ */
+ IMPORT_C void BeginConfigInputLayersL( const TSize& aNewSize,
+ TBool aAboutToStart );
+
+ /**
+ * Graphics context for drawing the input layer RGB. Can be NULL, in this
+ * case animation is not expecting input layer.
+ */
+ IMPORT_C CFbsBitGc* InputRgbGc() const;
+
+ /**
+ * Graphics context for drawing the input layer alpha. Can be NULL, in this
+ * case animation is not expecting input layer alpha.
+ */
+ IMPORT_C CFbsBitGc* InputAlphaGc() const;
+
+ /**
+ * Ends layer configuration.
+ */
+ IMPORT_C void EndConfigInputLayersL();
+
+ /**
+ * Renders the output layer once without notifying the animation observer.
+ * Doesn't set animator error state if fails.
+ * @return The status of rendering, if KErrNone rendering was ok, if
+ * !KErrNone either rendering failed or animator is already in
+ * error state.
+ */
+ IMPORT_C TInt UpdateOutput();
+
+ /**
+ * When animation is idling it won't update the actual animation. Observer
+ * AnimFrameReady will be called when idle timer timeouts. Animation
+ * observer should check there whether or not animation is idling and ignore
+ * redraw calls caused by idling.
+ *
+ * Only animations in state EAknsAnimStateRunning can be set idling. Setting
+ * idling causes the animation to go in paused state. Trying to idle
+ * animation in any other state will be silently ignored. Also, idling is
+ * interrupted when animation is started, stoppped, paused or continued.
+ * Idling is not interrupted if the animation is resized when being idled.
+ * Idling can be reset, e.g. calling SetIdling multiple times is ok.
+ *
+ * @param aInterval Idling interval in milliseconds. Using the default value
+ * KAknsEffectAnimDefaultIdleInterval is recommended.
+ */
+ IMPORT_C void SetIdling( TInt aIntervalMs );
+
+ /**
+ * @return ETrue if animation is idling, EFalse otherwise.
+ */
+ IMPORT_C TBool IsIdling() const;
+
+private:
+ CAknsAlAnimatorBmp* iAnim;
+ TInt iAboutToStart;
+ };
+
+#endif // AKNSEFFECTANIM_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_skin_api/AknsItemDef.h Thu Apr 01 14:50:19 2010 +0100
@@ -0,0 +1,1452 @@
+/*
+* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: ?Description
+*
+*/
+
+
+#ifndef AKNSITEMDEF_H
+#define AKNSITEMDEF_H
+
+// INCLUDES
+#include <AknsItemID.h>
+#include <gdi.h>
+
+// FORWARD DECLARATIONS
+struct TAknsImageAttributeData;
+
+// CLASS DECLARATIONS
+
+/**
+* Base class for item definitions.
+* Item definition maps item ID specified as TAknsItemID to a specific resource
+* (such as bitmap filename and index). Content of the definition varies
+* depending of the type of the resource.
+*
+* CAknsItemDef does not itself have any dynamically allocated members.
+* Therefore the members of its friend classes can instantiate CAknsItemDef
+* into stack (e.g. to perform binary search with LineraOrder without heap
+* allocation) using CAknsItemDef::CAknsItemDef(const TAknsItemID aID)
+* constructor. Derived classes, however, require two-phased construction and
+* proper destruction.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkinSrv.lib
+*
+* @since 2.0
+*/
+class CAknsItemDef : public CBase
+ {
+
+ public: // Constructors and destructors
+
+ /**
+ * Two-phased constructor.
+ * Constructs item definition object with specified ID, item type
+ * ::EAknsITUnknown and localization type ::EAknsIDLTDefault.
+ *
+ * @param aID Item ID of the newly created item definition.
+ *
+ * @return Newly constructed CAknsItemDef object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error code.
+ */
+ IMPORT_C static CAknsItemDef* NewL( const TAknsItemID& aID );
+
+ /**
+ * Destructor.
+ * Base-class destructor does nothing. It exists only to enable
+ * destruction of derived objects using pointer to base class object.
+ */
+ IMPORT_C virtual ~CAknsItemDef();
+
+ public: // New functions
+
+ /**
+ * Returns the item type of this item definition.
+ * This method can be used to provide run-time type information.
+ * Corresponding classes are listed in definition of ::TAknsItemType.
+ *
+ * @since 2.0
+ *
+ * @return Type of the item definition as TAknsItemType.
+ */
+ IMPORT_C TAknsItemType Type() const;
+
+ /**
+ * Returns the item ID of this item definition.
+ *
+ * @since 2.0
+ *
+ * @return Item ID of the item definition as TAknsItemID.
+ */
+ IMPORT_C TAknsItemID ID() const;
+
+ /**
+ * Determines the order of two CAknsItemDef objects.
+ * Order is determined based on the item ID of the object, as described
+ * in TAknsItemID::LinearOrder().
+ *
+ * @since 2.0
+ *
+ * @param aFirst First object to be compared.
+ *
+ * @param aSecond Second object to be compared.
+ *
+ * @return 0 if the two objects are equal, negative value if the first
+ * object is less than the second and positive value if the first
+ * object is greater than the second.
+ */
+ IMPORT_C static TInt LinearOrder( const CAknsItemDef& aFirst,
+ const CAknsItemDef& aSecond );
+
+ private: // Reserved exports
+
+ /**
+ * Reserved for future use.
+ *
+ * @since 2.0
+ */
+ IMPORT_C void Reserved1();
+
+ /**
+ * Reserved for future use.
+ *
+ * @since 2.0
+ */
+ IMPORT_C void Reserved2();
+
+ protected: // C++ protected constructor for derived classes
+
+ /**
+ * C++ constructor for derived classes.
+ * Constructs item definition object with given item type and ID,
+ * and localization type ::EAknsIDLTDefault.
+ *
+ * @param aType Item type of the new object.
+ *
+ * @param aID Item ID of the new object.
+ *
+ * @internal
+ */
+ CAknsItemDef( const TAknsItemType aType, const TAknsItemID& aID );
+
+ private: // C++ private constructor for friend classes
+
+ /**
+ * C++ constructor for internal use.
+ * Constructs item definition object with specified ID and item type
+ * ::EAknsITUnknown, and localization type ::EAknsIDLTDefault.
+ *
+ * @param aID Item ID of the new item definition.
+ *
+ * @internal
+ */
+ IMPORT_C CAknsItemDef( const TAknsItemID& aID );
+
+ protected: // Data
+
+ TAknsItemType iType; //!< Item type.
+ TAknsItemID iID; //!< Item ID.
+ TInt iSpare1; //!< Reserved for future use.
+ TInt iSpare2; //!< Reserved for future use.
+
+ private: // Friend classes
+ friend class CAknsAppSkinInstance;
+
+ };
+
+/**
+* Image item definition.
+* Image item definition consists of (in addition to base class data)
+* image attributes and their values. Item type for image item definitions
+* is ::EAknsITImage
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkinSrv.lib
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsImageItemDef) : public CAknsItemDef
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * Constructs a new image item definition object.
+ *
+ * @param aID Item ID of the new object.
+ *
+ * @return Newly constructed CAknsImageItemDef object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsImageItemDef* NewL( const TAknsItemID& aID );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CAknsImageItemDef();
+
+ public: // New functions
+
+ /**
+ * Sets the image attributes for this image definition.
+ *
+ * @since 2.0
+ */
+ IMPORT_C void SetAttributesL( const TAknsImageAttributeData& aAttributes );
+
+ /**
+ * Returns the image attributes for this image definition.
+ *
+ * @since 2.0
+ */
+ IMPORT_C const TAknsImageAttributeData* Attributes() const;
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ constructor for internal use.
+ * Constructs an image item definition object with given ID.
+ *
+ * @since 2.0
+ *
+ * @param aType Type of the definition object. While this is always
+ * ::EAknsITImage for CAknsImageItemDef objects, derived classes
+ * may specify other values.
+ *
+ * @param aID Item ID of the new item definition.
+ *
+ * @internal
+ */
+ CAknsImageItemDef( const TAknsItemType aType, const TAknsItemID& aID );
+
+ protected: // Data
+
+ // Image attributes
+ TAknsImageAttributeData* iAttributeData;
+
+ };
+
+/**
+* Bitmap item definition.
+* Bitmap item definition consists of (in addition to base class data) bitmap
+* filename and index in bitmap file. Item type for bitmap item definitions
+* is always ::EAknsITBitmap.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkinSrv.lib
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsBitmapItemDef) : public CAknsImageItemDef
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor, complete initialization.
+ * Constructs a new bitmap item definition object.
+ *
+ * @param aID Item ID of the new object.
+ *
+ * @param aFilename Filename of the bitmap. Internal descriptor is
+ * constructed to point to the same data as the given one.
+ * Ownership of the original descriptor stays with the caller and
+ * it must ensure that the lifetime of the descriptor is appropriate.
+ *
+ * @param aIndex Index of the bitmap in the bitmap file.
+ *
+ * @return Newly constructed CAknsBitmapItemDef object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsBitmapItemDef* NewL( const TAknsItemID& aID,
+ const TDesC& aFilename, const TInt aIndex );
+
+ /**
+ * Two-phased constructor, partial initialization.
+ * Constructs a new bitmap item definition object. Bitmap filename
+ * and index must be set by SetFilename or SetFilenameL and SetIndex.
+ *
+ * @param aID Item ID of the new object.
+ *
+ * @return Newly constructed CAknsBitmapItemDef object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsBitmapItemDef* NewL( const TAknsItemID& aID );
+
+ /**
+ * Destructor.
+ * Deletes the internal buffer reserved for bitmap filename.
+ */
+ virtual ~CAknsBitmapItemDef();
+
+ public: // New functions
+
+ /**
+ * Sets the filename, ownership of the descriptor stays with the caller.
+ * If CAknsBitmapItemDef object already owns a filename descriptor, it
+ * is deleted.
+ *
+ * @since 2.0
+ *
+ * @param aFilename Reference to the descriptor containing new filename.
+ * Caller still owns the descriptor and must ensure that its lifetime
+ * is appropriate.
+ */
+ IMPORT_C void SetFilename( const TDesC& aFilename );
+
+ /**
+ * Sets the filename, content of the descriptor is copied into an
+ * internal buffer. If CAknsBitmapItemDef object already owns a filename
+ * descriptor, it is deleted.
+ *
+ * @since 2.0
+ *
+ * @param aFilename Reference to the descriptor containing new filename.
+ * Content of the descriptor is copied into an internal buffer owned
+ * by CAknsBitmapItemDef.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error code.
+ */
+ IMPORT_C void SetFilenameL( const TDesC& aFilename );
+
+ /**
+ * Returns a reference to filename of this item definition.
+ *
+ * @since 2.0
+ *
+ * @return Reference to descriptor containing the filename. Lifetime of
+ * the descriptor may end when SetFilename or SetFilenameL is called
+ * or CAknsBitmapItemDef object is deleted.
+ */
+ IMPORT_C const TDesC& Filename() const;
+
+ /**
+ * Sets bitmap file index of this item definition.
+ *
+ * @since 2.0
+ *
+ * @param aIndex New index.
+ */
+ IMPORT_C void SetIndex( const TInt aIndex );
+
+ /**
+ * Returns bitmap file index of this item definition.
+ *
+ * @since 2.0
+ *
+ * @return Index of the bitmap (in the bitmap file) as integer value.
+ */
+ IMPORT_C TInt Index() const;
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ constructor for internal use.
+ * Constructs bitmap item definition object with given ID and bitmap
+ * index. Filename needs to be set separately.
+ *
+ * @since 2.0
+ *
+ * @param aType Type of the definition object. While this is always
+ * ::EAknsITBitmap for CAknsBitmapItemDef objects, derived classes
+ * may specify other values.
+ *
+ * @param aID Item ID of the new item definition.
+ *
+ * @param aIndex Index of the bitmap of the new item definition.
+ *
+ * @internal
+ */
+ CAknsBitmapItemDef( const TAknsItemType aType, const TAknsItemID& aID,
+ const TInt aIndex );
+
+ protected: // Data
+
+ TPtrC iFilename; //!< Bitmap filename.
+ HBufC* iFilenameBuf; //!< Internal filename buffer.
+ TInt iIndex; //!< Index of bitmap in bitmap file.
+
+ };
+
+/**
+* Masked bitmap item definition.
+* Masked bitmap item definition is derived from CAknsBitmapItemDef
+* but additionally contains a second index specifying the mask.
+* Item type for masked bitmap item definitions is always ::EAknsITMaskedBitmap.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkinSrv.lib
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsMaskedBitmapItemDef) :public CAknsBitmapItemDef
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor, complete initialization.
+ * Constructs a new masked bitmap item definition object.
+ *
+ * @param aID Item ID of the new object.
+ *
+ * @param aFilename Filename of the bitmap. Internal descriptor is
+ * constructed to point to the same data as the given one.
+ * Ownership of the original descriptor stays with the caller and
+ * it must ensure that the lifetime of the descriptor is appropriate.
+ *
+ * @param aIndex Index of the bitmap in the bitmap file.
+ *
+ * @param aMaskIndex Index of the mask in the same bitmap file.
+ *
+ * @return Newly constructed CAknsMaskedBitmapItemDef object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsMaskedBitmapItemDef* NewL( const TAknsItemID& aID,
+ const TDesC& aFilename, const TInt aIndex, const TInt aMaskIndex );
+
+ /**
+ * Two-phased constructor, partial initialization.
+ * Constructs a new masked bitmap item definition object. Bitmap
+ * filename and indices must be set by SetFilename or SetFilenameL,
+ * SetIndex and SetMaskIndex.
+ *
+ * @param aID Item ID of the new object.
+ *
+ * @return Newly constructed CAknsMaskedBitmapItemDef object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsMaskedBitmapItemDef* NewL( const TAknsItemID& aID );
+
+ /**
+ * Destructor.
+ * Provided for completeness, does not actually do anything.
+ */
+ virtual ~CAknsMaskedBitmapItemDef();
+
+ public: // New functions
+
+ /**
+ * Sets index of mask in the bitmap file for this item definition.
+ *
+ * @since 2.0
+ *
+ * @param aMaskIndex New index.
+ */
+ IMPORT_C void SetMaskIndex( const TInt aMaskIndex );
+
+ /**
+ * Returns bitmap file index for bitmap mask.
+ *
+ * @since 2.0
+ *
+ * @return Index of the mask (in the bitmap file) as integer value.
+ */
+ IMPORT_C TInt MaskIndex() const;
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ constructor for internal use.
+ * Constructs masked bitmap item definition object with given ID and
+ * bitmap indices. Filename needs to be set separately.
+ *
+ * @param aType Type of the definition object. While this is always
+ * ::EAknsITMaskedBitmap for CAknsMaskedBitmapItemDef objects,
+ * derived classes may specify other values.
+ *
+ * @param aID Item ID of the new item definition.
+ *
+ * @param aIndex Index of the bitmap of the new item definition.
+ *
+ * @param aMaskIndex Index of the bitmap mask of the new definition.
+ *
+ * @internal
+ */
+ CAknsMaskedBitmapItemDef( const TAknsItemType aType,
+ const TAknsItemID& aID, const TInt aIndex, const TInt aMaskIndex );
+
+ protected: // Data
+
+ TInt iMaskIndex; //!< Index of mask in bitmap file.
+
+ };
+
+/**
+* Data structure for color values.
+*
+* @since 2.0
+*
+* @internal
+*/
+struct TAknsColorTableEntry
+ {
+ /**
+ * Indexed color value, or -1 if RGB value is used instead.
+ */
+ TInt iIndex;
+
+ /**
+ * RGB-value, used only if iIndex is -1.
+ */
+ TUint32 iRgb;
+ };
+
+/**
+* Color table item definition.
+* Color table item definition contains (in addition to base class data) an
+* array of color values. Item type for color table item definitions is always
+* ::EAknsITColorTable.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkinSrv.lib
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsColorTableItemDef) :public CAknsImageItemDef
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor, complete initialization.
+ * Constructs a new color table item definition object.
+ *
+ * @param aID Item ID of the new object.
+ *
+ * @param aNumberOfColors Number of colors available in aColors.
+ *
+ * @param aColors Pointer to the first color. Internal pointer is set
+ * to point to the same place as the given one. Ownership of the
+ * color array stays with the caller and it must ensure that its
+ * lifetime is appropriate.
+ *
+ * @return Newly constructed CAknsColorTableItemDef object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsColorTableItemDef* NewL( const TAknsItemID& aID,
+ const TInt aNumberOfColors,
+ const TAknsColorTableEntry *const aColors );
+
+ /**
+ * Two-phased constructor, partial initialization.
+ * Constructs a new color table item definition object. Colors must
+ * be set separately by using SetColorsL or SetColors.
+ *
+ * @param aID Item ID of the new object.
+ *
+ * @return Newly constructed CAknsColorTableItemDef object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsColorTableItemDef* NewL( const TAknsItemID& aID );
+
+ /**
+ * Destructor.
+ * If the object owns a color array, it is destroyed.
+ */
+ virtual ~CAknsColorTableItemDef();
+
+ public: // New functions
+
+ /**
+ * Sets the colors, ownership of the color array stays with the caller.
+ * If this object already owns a color array, it is destroyed.
+ *
+ * @since 2.0
+ *
+ * @param aNumberOfColors Number of colors in aColors.
+ *
+ * @param aColors Pointer to the first color. The caller still owns
+ * the color array and must ensure that its lifetime is appropriate.
+ */
+ IMPORT_C void SetColors( const TInt aNumberOfColors,
+ const TAknsColorTableEntry *const aColors );
+
+ /**
+ * Sets the colors, content of the array is copied to an internal
+ * array. If this object already owns a color array, it is destroyed.
+ *
+ * @since 2.0
+ *
+ * @param aNumberOfColors Number of colors in aColors.
+ *
+ * @param aColors Pointer to the first color.
+ *
+ * @par Exceptions:
+ * If allocation fails, returns with an error code.
+ */
+ IMPORT_C void SetColorsL( const TInt aNumberOfColors,
+ const TAknsColorTableEntry *const aColors );
+
+ /**
+ * Returns pointer to color values.
+ *
+ * @since 2.0
+ *
+ * @return Pointer to color values. The array is still owned by this
+ * object.
+ */
+ IMPORT_C const TAknsColorTableEntry* Colors() const;
+
+ /**
+ * Returns the number of colors.
+ *
+ * @since 2.0
+ *
+ * @return Number of colors.
+ */
+ IMPORT_C TInt NumberOfColors() const;
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ constructor for internal use.
+ * Constructs color item definition object with given ID. Color
+ * array must be set separately.
+ *
+ * @param aType Type of the definition object. While this is always
+ * ::EAknsITColorTable for CAknsColorTableItemDef objects, derived
+ * classes may specify other values.
+ *
+ * @param aID Item ID of the new item definition.
+ *
+ * @internal
+ */
+ CAknsColorTableItemDef( const TAknsItemType aType,
+ const TAknsItemID& aID );
+
+ protected: // Data
+
+ // Color array
+ const TAknsColorTableEntry* iColorArray;
+ // Internal (owned) color array
+ TAknsColorTableEntry* iInternalColorArray;
+ // Number of colors
+ TInt iNumberOfColors;
+ };
+
+/**
+* Image table item definition.
+* Image table item definition contains (in addition to base class data)
+* an array containing image IDs. Item type for image table item definitions is
+* always ::EAknsITImageTable.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkinSrv.lib
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsImageTableItemDef) : public CAknsImageItemDef
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor, complete initialization.
+ * Constructs an image table item definition object.
+ *
+ * @param aID Item ID of the new object.
+ *
+ * @param aNumberOfImages Number of entries in aImages.
+ *
+ * @param aImages Pointer to the first item ID.
+ * An internal pointer is set to point to the same place as the
+ * given one. Ownership of the array stays with the caller and it
+ * must ensure that its lifetime is appropriate.
+ *
+ * @return Newly constructed CAknsImageTableItemDef object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsImageTableItemDef* NewL( const TAknsItemID& aID,
+ const TInt aNumberOfImages, const TAknsItemID *const aImages );
+
+ /**
+ * Two-phased constructor, partial initialization.
+ * Constructs a new image table item definition object. Images must
+ * be set separately by using SetImagesL or SetImages.
+ *
+ * @param aID Item ID of the new object.
+ *
+ * @return Newly constructed CAknsImageTableItemDef object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsImageTableItemDef* NewL( const TAknsItemID& aID );
+
+ /**
+ * Destructor.
+ * If the object owns an array, it is destroyed.
+ */
+ virtual ~CAknsImageTableItemDef();
+
+ public: // New functions
+
+ /**
+ * Sets the images, ownership of the image item ID array stays with
+ * the caller. If this object already owns an array, it is destroyed.
+ *
+ * @since 2.0
+ *
+ * @param aNumberOfImages Number of images in aImages.
+ *
+ * @param aImages Pointer to the first TAknsItemID. The caller
+ * still owns the array and must ensure that its lifetime is
+ * appropriate.
+ */
+ IMPORT_C void SetImages( const TInt aNumberOfImages,
+ const TAknsItemID *const aImages );
+
+ /**
+ * Sets the images, content of the array is copied to an internal
+ * array. If this object already owns an array, it is destroyed.
+ *
+ * @since 2.0
+ *
+ * @param aNumberOfImages Number of images in aImages.
+ *
+ * @param aImages Pointer to the first image item ID.
+ *
+ * @par Exceptions:
+ * If allocation fails, returns with an error code.
+ */
+ IMPORT_C void SetImagesL( const TInt aNumberOfImages,
+ const TAknsItemID *const aImages );
+
+ /**
+ * Returns pointer to the first element of the image array.
+ *
+ * @since 2.0
+ *
+ * @return Pointer to the first entry. The array is still owned
+ * by this object.
+ */
+ IMPORT_C const TAknsItemID* Images() const;
+
+ /**
+ * Returns the number of images.
+ *
+ * @since 2.0
+ *
+ * @return Number of images.
+ */
+ IMPORT_C TInt NumberOfImages() const;
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ constructor for internal use.
+ * Constructs image table item definition object with given ID.
+ * The image array must be set separately.
+ *
+ * @param aType Type of the definition object. While this is always
+ * ::EAknsITImageTable for CAknsImageTableItemDef objects, derived
+ * classes may specify other values.
+ *
+ * @param aID Item ID of the new item definition.
+ *
+ * @internal
+ */
+ CAknsImageTableItemDef( const TAknsItemType aType,
+ const TAknsItemID& aID );
+
+ protected: // Data
+
+ const TAknsItemID* iImageArray; //!< Image ID array.
+ TAknsItemID* iInternalImageArray; //!< Internal (owned) image ID array.
+ TInt iNumberOfImages; //!< Number of images in the array.
+ };
+
+/**
+* Data structure for animation frame properties.
+*
+* @since 2.0
+*
+* @internal
+*/
+struct TAknsBmpAnimFrameInfo
+ {
+ /**
+ * Frame time in milliseconds or -1 if not defined.
+ */
+ TInt16 iTime;
+
+ /**
+ * Frame position X-coordinate.
+ */
+ TInt16 iPosX;
+
+ /**
+ * Frame position Y-coordinate.
+ */
+ TInt16 iPosY;
+ };
+
+/**
+* Bitmap animation item definition.
+* Bitmap animationitem definition contains (in addition to base class data)
+* animation properties and an array containing frame properties.
+* Item type for image table item definitions is
+* always ::EAknsITBmpAnim.
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkinSrv.lib
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsBmpAnimItemDef) : public CAknsImageTableItemDef
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor, complete initialization.
+ * Constructs a bitmap animation item definition object.
+ *
+ * @param aID Item ID of the new object.
+ *
+ * @param aNumberOfImages Number of entries in aImages.
+ *
+ * @param aImages Pointer to the first item ID.
+ * An internal pointer is set to point to the same place as the
+ * given one. Ownership of the array stays with the caller and it
+ * must ensure that its lifetime is appropriate.
+ *
+ * @param aFrameInfos Pointer to the first frame info.
+ * Ownership is handled as with aImages.
+ *
+ * @return Newly constructed CAknsBmpAnimItemDef object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsBmpAnimItemDef* NewL( const TAknsItemID& aID,
+ const TInt aNumberOfImages, const TAknsItemID *const aImages,
+ const TAknsBmpAnimFrameInfo *const aFrameInfos );
+
+ /**
+ * Two-phased constructor, partial initialization.
+ * Constructs a new bitmap animation item definition object. Images must
+ * be set separately by using SetImagesL and SetFrameInfosL or SetImages
+ * and SetFrameInfos.
+ *
+ * @param aID Item ID of the new object.
+ *
+ * @return Newly constructed CAknsBmpAnimItemDef object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsBmpAnimItemDef* NewL( const TAknsItemID& aID );
+
+ /**
+ * Destructor.
+ * If the object owns an array, it is destroyed.
+ */
+ virtual ~CAknsBmpAnimItemDef();
+
+ public: // New functions
+
+ /**
+ * Sets frame properties, ownership of the frame info array stays with
+ * the caller. If this object already owns an array, it is destroyed.
+ *
+ * The number of frame info objects in the array must match the number
+ * of images. This implies that SetFrameInfos can not be called before
+ * images have been set.
+ *
+ * @since 2.0
+ *
+ * @param aFrameInfos Pointer to the first TAknsBmpAnimFrameInfo. The
+ * caller still owns the array and must ensure that its lifetime is
+ * appropriate.
+ */
+ IMPORT_C void SetFrameInfos(
+ const TAknsBmpAnimFrameInfo *const aFrameInfos );
+
+ /**
+ * Sets frame propertis, content of the array is copied to an internal
+ * array. If this object already owns an array, it is destroyed.
+ *
+ * The number of frame info objects in the array must match the number
+ * of images. This implies that SetFrameInfosL can not be called before
+ * images have been set.
+ *
+ * @since 2.0
+ *
+ * @param aFrameInfos Pointer to the first TAknsBmpAnimFrameInfo.
+ *
+ * @par Exceptions:
+ * If allocation fails, returns with an error code.
+ */
+ IMPORT_C void SetFrameInfosL(
+ const TAknsBmpAnimFrameInfo *const aFrameInfos );
+
+ /**
+ * Returns pointer to the first element of the frame info array.
+ *
+ * @since 2.0
+ *
+ * @return Pointer to the first entry. The array is still owned
+ * by this object.
+ */
+ IMPORT_C const TAknsBmpAnimFrameInfo* FrameInfos() const;
+
+ /**
+ * Sets the flag indicating whether the last frame should be
+ * interpreted as the background (i.e. excluded from the animation
+ * itself).
+ *
+ * @since 2.0
+ *
+ * @param aLastFrameBg Boolean value.
+ */
+ IMPORT_C void SetLastFrameBackground( TBool aLastFrameBg );
+
+ /**
+ * Retrieves the flag value indicating whether the last frame
+ * should be interpreted as the background.
+ *
+ * @since 2.0
+ *
+ * @return Boolean value.
+ */
+ IMPORT_C TBool LastFrameBackground() const;
+
+ /**
+ * Sets the frame interval for the entire animation.
+ *
+ * @since 2.0
+ *
+ * @param aFrameInterval Frame interval in milliseconds or -1.
+ */
+ IMPORT_C void SetFrameInterval( const TInt16 aFrameInterval );
+
+ /**
+ * Retrieves the frame interval.
+ *
+ * @since 2.0
+ *
+ * @return Frame interval in milliseconds or -1.
+ */
+ IMPORT_C TInt16 FrameInterval() const;
+
+ /**
+ * Sets the play mode for the entire animation.
+ *
+ * @since 2.0
+ *
+ * @param aPlayMode Play mode.
+ */
+ IMPORT_C void SetPlayMode( const TInt16 aPlayMode );
+
+ /**
+ * Retrieves the play mode.
+ *
+ * @since 2.0
+ *
+ * @return Play mode.
+ */
+ IMPORT_C TInt16 PlayMode() const;
+
+ /**
+ * Sets the flash property for the entire animation.
+ *
+ * @since 2.0
+ *
+ * @param aFlash Flash flag value.
+ */
+ IMPORT_C void SetFlash( const TBool aFlash );
+
+ /**
+ * Retrieves the flash property.
+ *
+ * @since 2.0
+ *
+ * @return Flash flag value.
+ */
+ IMPORT_C TBool Flash() const;
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ constructor for internal use.
+ * Constructs bitmap animation item definition object with given ID.
+ * The image array and frame properties must be set separately.
+ *
+ * @param aType Type of the definition object. While this is always
+ * ::EAknsITBmpAnim for CAknsBmpAnimItemDef objects, derived
+ * classes may specify other values.
+ *
+ * @param aID Item ID of the new item definition.
+ *
+ * @internal
+ */
+ CAknsBmpAnimItemDef( const TAknsItemType aType,
+ const TAknsItemID& aID );
+
+ protected: // Data
+
+ const TAknsBmpAnimFrameInfo* iFrameArray; //!< Frame array.
+ TAknsBmpAnimFrameInfo* iInternalFrameArray; //!< Internal (owned) image frame array.
+
+ TBool iLastFrameBackground; //!< Last frame used as background flag.
+ TInt16 iFrameInterval; //!< Frame interval.
+ TInt16 iPlayMode; //!< Play mode.
+ TBool iFlash; //!< Flash flag.
+ };
+
+/**
+* String item definition.
+* String item definition consists of (in addition to base class data)
+* a single string value. Item type for string item definitions is
+* ::EAknsITString
+*
+* This is a public class with exported functions.
+* The class is not intended for derivation outside the library.
+*
+* @lib AknSkinSrv.lib
+*
+* @since 2.6
+*/
+NONSHARABLE_CLASS(CAknsStringItemDef) : public CAknsItemDef
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * Constructs a new string item definition object.
+ *
+ * @since 2.6
+ *
+ * @param aID Item ID of the new object.
+ *
+ * @return Newly constructed CAknsStringItemDef object.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error
+ * code.
+ */
+ IMPORT_C static CAknsStringItemDef* NewL( const TAknsItemID& aID );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CAknsStringItemDef();
+
+ public: // New functions
+
+ /**
+ * Sets the string, content of the descriptor is copied into an
+ * internal buffer. If CAknsStringItemDef object already owns a filename
+ * descriptor, it is deleted.
+ *
+ * @since 2.6
+ *
+ * @param aString Reference to the descriptor containing new value.
+ * Content of the descriptor is copied into an internal buffer owned
+ * by CAknsStringItemDef.
+ *
+ * @par Exceptions:
+ * If allocation fails, function leaves with a system-wide error code.
+ */
+ IMPORT_C void SetStringL( const TDesC& aString );
+
+ /**
+ * Returns a reference to the string value of this item definition.
+ *
+ * @since 2.6
+ *
+ * @return Reference to descriptor containing the value. Lifetime of
+ * the descriptor may end when SetStringL is called
+ * or CAknsStringItemDef object is deleted.
+ */
+ IMPORT_C const TDesC& String() const;
+
+ protected: // C++ protected constructor
+
+ /**
+ * C++ constructor for internal use.
+ * Constructs an string item definition object with given ID.
+ *
+ * @since 2.6
+ *
+ * @param aType Type of the definition object. While this is always
+ * ::EAknsITString for CAknsStringItemDef objects, derived classes
+ * may specify other values.
+ *
+ * @param aID Item ID of the new item definition.
+ *
+ * @internal
+ */
+ CAknsStringItemDef( const TAknsItemType aType, const TAknsItemID& aID );
+
+ protected: // Data
+
+ HBufC* iString; // String value, owned
+
+ };
+
+/**
+*
+* @since 2.8
+*/
+NONSHARABLE_CLASS(CAknsEffectParamDef) : public CBase
+ {
+ public:
+ IMPORT_C static CAknsEffectParamDef* NewL();
+ virtual ~CAknsEffectParamDef();
+
+ public:
+ IMPORT_C void SetType(TUint32 aType);
+ IMPORT_C TUint32 GetType();
+
+ IMPORT_C void SetNameL(const TDesC& aName);
+ IMPORT_C const TDesC* GetName();
+
+ IMPORT_C void SetValue(TUint32 aParam);
+ IMPORT_C void SetValueL(const TDesC& aParam);
+ IMPORT_C void SetValueL(const TDesC& aFilename,
+ TUint32 aBitmapIndex, TUint32 aMaskIndex);
+
+ IMPORT_C TUint32 GetNumber();
+ IMPORT_C const TDesC* GetString();
+ IMPORT_C const TDesC* GetFilename();
+ IMPORT_C TUint32 GetBitmapIndex();
+ IMPORT_C TUint32 GetMaskIndex();
+
+ protected:
+ CAknsEffectParamDef();
+
+ private:
+ TUint32 iParamType;
+ TUint32 iParam;
+ TUint32 iBitmapIndex;
+ TUint32 iMaskIndex;
+ HBufC* iParamName;
+ HBufC* iParamString;
+ HBufC* iFilename;
+ };
+
+/**
+*
+* @since 2.8
+*/
+NONSHARABLE_CLASS(CAknsEffectItemDef) : public CBase
+ {
+ public:
+ IMPORT_C static CAknsEffectItemDef* NewL();
+ virtual ~CAknsEffectItemDef();
+
+ public: // New functions
+
+ IMPORT_C void SetEffectUid( const TUid aUid );
+ IMPORT_C TUid EffectUid() const;
+
+ IMPORT_C void AddParameterL(CAknsEffectParamDef* aParam);
+ IMPORT_C CAknsEffectParamDef* GetParameter(TInt32 aIndex) const ;
+ IMPORT_C TInt ParameterCount() const;
+
+ IMPORT_C void SetLayerIndexesAndModes(
+ TUint32 aInputLayerAIndex, TUint32 aInputLayerAMode,
+ TUint32 aInputLayerBIndex, TUint32 aInputLayerBMode,
+ TUint32 aOutputLayerIndex, TUint32 aOutputLayerMode );
+
+ protected:
+ CAknsEffectItemDef();
+
+ public:
+ TUint32 iInputLayerAIndex;
+ TUint32 iInputLayerAMode;
+ TUint32 iInputLayerBIndex;
+ TUint32 iInputLayerBMode;
+ TUint32 iOutputLayerIndex;
+ TUint32 iOutputLayerMode;
+
+ private:
+ TUid iUid; //!< Effect UID.
+ RPointerArray<CAknsEffectParamDef> iParamArray;
+ };
+
+/**
+*
+* @since 2.8
+*/
+NONSHARABLE_CLASS(CAknsEffectQueueItemDef) : public CAknsItemDef
+ {
+ public: // Constructors and destructor
+ IMPORT_C static CAknsEffectQueueItemDef* NewL(const TAknsItemID& aID);
+ virtual ~CAknsEffectQueueItemDef();
+
+ public:
+ IMPORT_C void AddEffectL(CAknsEffectItemDef* aItemDef);
+ IMPORT_C CAknsEffectItemDef* GetEffect( TInt32 aIndex ) const;
+ IMPORT_C TUint32 EffectCount() const;
+
+ IMPORT_C void SetLayerIndexesAndModes(
+ TUint32 aInputLayerIndex, TUint32 aInputLayerMode,
+ TUint32 aOutputLayerIndex, TUint32 aOutputLayerMode );
+ IMPORT_C void SetReference(const TAknsItemID& aID);
+
+ protected:
+ CAknsEffectQueueItemDef( const TAknsItemType aType,
+ const TAknsItemID& aID);
+
+ public:
+ TUint32 iInputLayerIndex;
+ TUint32 iInputLayerMode;
+ TUint32 iOutputLayerIndex;
+ TUint32 iOutputLayerMode;
+ TAknsItemID iReference;
+
+ private:
+ RPointerArray<CAknsEffectItemDef> iEffectArray;
+ };
+
+// =============================================================================
+// Animation related definitions
+// =============================================================================
+
+/**
+* @since 3.0
+*/
+class CAknsSizeBoundParamDef: public CBase
+ {
+ public: // Constructors and destructor
+ IMPORT_C static CAknsSizeBoundParamDef* NewL();
+ virtual ~CAknsSizeBoundParamDef();
+
+ public: // New functions
+ IMPORT_C void SetDataL( const TDesC& aName,
+ TUint32 aAnimationValueId,
+ TUint32 aParamFlags );
+
+ IMPORT_C const TDesC* Name() const;
+ IMPORT_C TUint32 AnimationValueId() const;
+ IMPORT_C TUint32 ParamFlags() const;
+
+ protected:
+ CAknsSizeBoundParamDef();
+
+ private:
+ TDesC* iName;
+ TUint32 iAnimationValueId;
+ TUint32 iParamFlags;
+ };
+
+/**
+* @since 3.0
+*/
+class CAknsNamedReferenceDef: public CBase
+ {
+ public: // Constructors and destructor
+ IMPORT_C static CAknsNamedReferenceDef* NewL();
+ virtual ~CAknsNamedReferenceDef();
+
+ public: // New functions
+ IMPORT_C void SetDataL( const TDesC& aName,
+ TUint32 aAnimationValueId );
+
+ IMPORT_C const TDesC* Name() const;
+ IMPORT_C TUint32 AnimationValueId() const;
+
+ protected:
+ CAknsNamedReferenceDef();
+
+ private:
+ TDesC* iName;
+ TUint32 iAnimationValueId;
+ };
+
+/**
+* @since 3.0
+*/
+class CAknsTimingModelDef: public CBase
+ {
+ public: // Constructors and destructor
+ IMPORT_C static CAknsTimingModelDef* NewL();
+ virtual ~CAknsTimingModelDef();
+
+ public: // New functions
+ IMPORT_C void SetTimingModelUid( const TUid aUid );
+ IMPORT_C TUid TimingModelUid() const;
+
+ IMPORT_C void AddParameterL( CAknsEffectParamDef* aParam );
+ IMPORT_C CAknsEffectParamDef* Parameter( TInt32 aIndex ) const;
+ IMPORT_C TInt ParameterCount() const;
+
+ protected:
+ CAknsTimingModelDef();
+
+ private:
+ TUid iTimingModelUid;
+ RPointerArray<CAknsEffectParamDef> iParamArray;
+ };
+
+/**
+* @since 3.0
+*/
+class CAknsAnimationValueDef: public CBase
+ {
+ public: // Constructors and destructor
+ IMPORT_C static CAknsAnimationValueDef* NewL();
+ virtual ~CAknsAnimationValueDef();
+
+ public: // New functions
+ IMPORT_C void SetAnimationValueUid( const TUid aUid );
+ IMPORT_C TUid AnimationValueUid() const;
+
+ IMPORT_C void SetTimingModelId( TUint32 aId );
+ IMPORT_C TUint32 TimingModelId() const;
+
+ IMPORT_C void AddParameterL( CAknsEffectParamDef* aParam );
+ IMPORT_C CAknsEffectParamDef* Parameter( TInt32 aIndex ) const;
+ IMPORT_C TInt ParameterCount() const;
+
+ protected:
+ CAknsAnimationValueDef();
+
+ private:
+ TUid iAnimationValueUid;
+ TUint32 iTimingModelId;
+ RPointerArray<CAknsEffectParamDef> iParamArray;
+ };
+
+/**
+* Note inheritance relationship with CAknsEffectItemDef.
+*
+* @since 3.0
+*/
+class CAknsAnimationCommandItemDef: public CAknsEffectItemDef
+ {
+ public: // Constructors and destructor
+ IMPORT_C static CAknsAnimationCommandItemDef* NewL();
+ virtual ~CAknsAnimationCommandItemDef();
+
+ public: // New functions
+ IMPORT_C void AddNamedReferenceL( CAknsNamedReferenceDef* aRef );
+ IMPORT_C CAknsNamedReferenceDef* NamedReference( TInt32 aIndex ) const;
+ IMPORT_C TInt NamedReferenceCount() const;
+
+ protected:
+ CAknsAnimationCommandItemDef();
+
+ private:
+ RPointerArray<CAknsNamedReferenceDef> iNamedReferenceArray;
+ };
+
+/**
+* @since 3.0
+*/
+class CAknsAnimationItemDef: public CAknsItemDef
+ {
+ public: // Constructors and destructor
+ IMPORT_C static CAknsAnimationItemDef* NewL( const TAknsItemID& aID );
+ virtual ~CAknsAnimationItemDef();
+
+ public: // New functions
+
+ IMPORT_C void SetLayerIndexesAndModes(
+ TUint32 aInputLayerIndex, TUint32 aInputLayerMode,
+ TUint32 aOutputLayerIndex, TUint32 aOutputLayerMode );
+
+ IMPORT_C void SetMinInterval( TUint32 aMinInterval );
+ IMPORT_C TUint32 MinInterval() const;
+
+ IMPORT_C void SetMorphing( TBool aMorphing );
+ IMPORT_C TBool Morphing() const;
+
+ IMPORT_C void AddPreprocessCommandL( CAknsEffectItemDef* aItemDef );
+ IMPORT_C CAknsEffectItemDef* PreprocessCommand( TInt32 aIndex ) const;
+ IMPORT_C TInt PreprocessCommandCount() const;
+
+ IMPORT_C void AddAnimationCommandItemL( CAknsAnimationCommandItemDef* aCommand );
+ IMPORT_C CAknsAnimationCommandItemDef* AnimationCommandItem( TInt32 aIndex ) const;
+ IMPORT_C TInt AnimationCommandItemCount() const;
+
+ IMPORT_C void AddAnimationValueL( CAknsAnimationValueDef* aValue );
+ IMPORT_C CAknsAnimationValueDef* AnimationValue( TInt32 aIndex ) const;
+ IMPORT_C TInt AnimationValueCount() const;
+
+ IMPORT_C void AddTimingModelL( CAknsTimingModelDef* aModel );
+ IMPORT_C CAknsTimingModelDef* TimingModel( TInt32 aIndex ) const;
+ IMPORT_C TInt TimingModelCount() const;
+
+ IMPORT_C void AddSizeBoundParamL( CAknsSizeBoundParamDef* aParam );
+ IMPORT_C CAknsSizeBoundParamDef* SizeBoundParam( TInt32 aIndex ) const;
+ IMPORT_C TInt SizeBoundParamCount() const;
+
+ protected:
+ CAknsAnimationItemDef( const TAknsItemType aType, const TAknsItemID& aID );
+
+ public:
+ TUint32 iInputLayerIndex;
+ TUint32 iInputLayerMode;
+ TUint32 iOutputLayerIndex;
+ TUint32 iOutputLayerMode;
+
+ private:
+ TUint32 iMinInterval;
+ TBool iMorphing;
+
+ RPointerArray<CAknsEffectItemDef> iPreprocessCommandArray;
+ RPointerArray<CAknsAnimationCommandItemDef> iCommandArray;
+ RPointerArray<CAknsAnimationValueDef> iAnimationValueArray;
+ RPointerArray<CAknsTimingModelDef> iTimingModelArray;
+ RPointerArray<CAknsSizeBoundParamDef> iSizeBoundParamArray;
+ };
+
+#endif // AKNSITEMDEF_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_skin_api/AknsPkgID.h Thu Apr 01 14:50:19 2010 +0100
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Defines the package ID class used to identify skin packages
+*
+*/
+
+
+#ifndef AKNSPKGID_H
+#define AKNSPKGID_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+// CONSTANTS
+
+static const TInt KAknsPkgIDDesSize = 23;
+
+// DATA TYPES
+
+typedef TBuf<KAknsPkgIDDesSize> TAknsPkgIDBuf;
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+/**
+* Package identifier used to identify skin packages. Package ID may be either
+* a UID or a timestamp and random number pair.
+*
+* Note that the class does not define any constructors. This ensures that
+* @c TAknsPkgID can be used in ROM constants.
+*
+* @lib AknSkinSrv.lib
+*
+* @since 2.0
+*/
+class TAknsPkgID
+ {
+ public: // New functions
+
+ /**
+ * Sets skin package ID by giving a UID.
+ *
+ * @param aUid New UID to be set as the value of the package ID.
+ */
+ inline void Set( const TUid aUid );
+
+ /**
+ * Sets skin package ID by giving a timestamp and a random number.
+ *
+ * @param aTimestamp Timestamp as an integer. Must be non-zero.
+ *
+ * @param aNumber Random number.
+ */
+ inline void Set( const TInt aTimestamp, const TInt aNumber );
+
+ /**
+ * Sets skin package ID by an existing package ID.
+ *
+ * @param aID Skin package ID.
+ */
+ inline void Set( const TAknsPkgID& aID );
+
+ /**
+ * Checks whether the skin package ID is a UID.
+ *
+ * @return ETrue if the skin package ID is a UID, EFalse otherwise.
+ */
+ inline TBool IsUid() const;
+
+ /**
+ * Returns the skin package ID as a UID. If the package ID is not a
+ * UID, the result is undefined.
+ *
+ * @return Skin packge ID as a UID.
+ */
+ inline TUid Uid() const;
+
+ public: // New functions - String conversions
+
+ /**
+ * Copies the content of the package ID to the given descriptor.
+ * The size of the descriptor must be at least the size of
+ * @c TAknsPkgIDBuf. Otherwise the method may panic.
+ *
+ * @param aDes Target descriptor.
+ */
+ IMPORT_C void CopyToDes( TDes& aDes ) const;
+
+ /**
+ * Sets the content of the package ID based on the given character
+ * representation. The content of the given descriptor must be
+ * valid (as generated by @c CopyToDes).
+ *
+ * If the given descriptor doesn't contain a correctly formatted
+ * skin package ID the method leaves and the content of the object
+ * is undefined.
+ *
+ * @param aDes Source descriptor.
+ */
+ IMPORT_C void SetFromDesL( const TDesC& aDes );
+
+ public: // Data
+
+ TInt iNumber; //!< Number or UID.
+ TInt iTimestamp; //!< Timestamp (or 0 if UID).
+
+ };
+
+// CONSTANTS (continued)
+
+static const TAknsPkgID KAknsNullPkgID = { 0, 0 };
+
+// FUNCTION PROTOTYPES
+
+/**
+* C++ equal operator.
+* Checks whether two package ID objects have identical content.
+*
+* @param aFirst First object to be compared.
+*
+* @param aSecond Second object to be compared.
+*
+* @return true if objects have identical content, false otherwise.
+*/
+inline TBool operator==( const TAknsPkgID& aFirst, const TAknsPkgID& aSecond );
+
+/**
+* C++ not equal operator.
+* Checks whether two package ID objects have identical content.
+*
+* @param aFirst First object to be compared.
+*
+* @param aSecond Second object to be compared.
+*
+* @return false if objects have identical content, true otherwise.
+*/
+inline TBool operator!=( const TAknsPkgID& aFirst, const TAknsPkgID& aSecond );
+
+// INLINED MEMBERS
+
+#include "AknsPkgID.inl"
+
+#endif // AKNSITEMID_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_skin_api/AknsPkgID.inl Thu Apr 01 14:50:19 2010 +0100
@@ -0,0 +1,59 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: ?Description
+*
+*/
+
+
+// INLINED MEMBERS
+
+inline void TAknsPkgID::Set( const TUid aUid )
+ {
+ iNumber = aUid.iUid;
+ iTimestamp = 0;
+ }
+
+inline void TAknsPkgID::Set( const TInt aTimestamp, const TInt aNumber )
+ {
+ iNumber = aNumber;
+ iTimestamp = aTimestamp;
+ }
+
+inline void TAknsPkgID::Set( const TAknsPkgID& aID )
+ {
+ iNumber = aID.iNumber;
+ iTimestamp = aID.iTimestamp;
+ }
+
+inline TBool TAknsPkgID::IsUid() const
+ {
+ return iTimestamp==0 ? ETrue : EFalse;
+ }
+
+inline TUid TAknsPkgID::Uid() const
+ {
+ return TUid::Uid(iNumber);
+ }
+
+inline TBool operator==( const TAknsPkgID& aFirst, const TAknsPkgID& aSecond )
+ {
+ return (aFirst.iNumber==aSecond.iNumber)&&(aFirst.iTimestamp==aSecond.iTimestamp);
+ }
+
+inline TBool operator!=( const TAknsPkgID& aFirst, const TAknsPkgID& aSecond )
+ {
+ return (aFirst.iNumber!=aSecond.iNumber)||(aFirst.iTimestamp!=aSecond.iTimestamp);
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_skin_api/AknsSrvChunkLookup.h Thu Apr 01 14:50:19 2010 +0100
@@ -0,0 +1,251 @@
+/*
+* Copyright (c) 2003-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Chunk Lookup.
+*
+*/
+
+
+#ifndef AKNSSRVCHUNKLOOKUP_H
+#define AKNSSRVCHUNKLOOKUP_H
+
+// INCLUDES
+
+#include <e32std.h>
+#include <e32base.h>
+#include <AknsItemDef.h>
+
+// FORWARD DECLARATIONS
+struct TAknsSrvItemDef;
+
+/**
+* A class for looking up and creating item definitions stored in the
+* shared memory chunk.
+*
+* @since 2.0
+*/
+NONSHARABLE_CLASS(CAknsSrvChunkLookup) : public CBase
+ {
+ public: // Construction and destruction
+
+ /**
+ * SymbianOS two-phased constructor.
+ *
+ * @since 2.0
+ *
+ * @return A new instance of CAknsSrvChunkLookup.
+ *
+ * @par Exceptions:
+ * If the construction fails, the leaves with one of the system wide
+ * error codes.
+ */
+ static CAknsSrvChunkLookup* NewL();
+
+ /**
+ * Default C++ destructor.
+ */
+ virtual ~CAknsSrvChunkLookup();
+
+ public: // New methods
+
+ /**
+ * Returns item definition object matching the given item ID.
+ * Performs lookup for the given item ID and returns an instance of one
+ * of the subclasses of CAknsItemDef matching the given ID. If the call
+ * is successfull, ownership of the item definition object is transferred
+ * to the caller.
+ *
+ * @since 2.0
+ *
+ * @param aID Item ID to be searched.
+ *
+ * @return Pointer to the item definition object now owned by the caller,
+ * or @c NULL if there was no match for the given IID.
+ *
+ * @par Exceptions:
+ * If construction of the item definition object failed, method leaves
+ * with an error code.
+ */
+ IMPORT_C CAknsItemDef* LookupAndCreateDefL( const TAknsItemID& aID );
+
+ /**
+ * Returns stored scalable bitmaps and optionally its mask if it
+ * was stored. The ownership of the returned bitmap (and mask, if any)
+ * is transferred to the caller.
+ *
+ * Optionally, the caller can give the current copy of the bitmap and
+ * mask as aBitmap and aMask parameters. If the currently stored
+ * scalable bitmaps have the same handles, they are not re-duplicated.
+ * The ownership of the given bitmaps is transferred to chunk lookup.
+ *
+ * @since 2.8
+ *
+ * @param aID Item ID to be searched.
+ *
+ * @param aLayout The layout id type for the searhed item.
+ *
+ * @param aBitmap Current bitmap or @c NULL. Ownership is transferred.
+ * After return, contains the newly duplicated bitmap, or @c NULL if
+ * not found. Ownership is transferred.
+ *
+ * @param aMask Current mask or @c NULL. Ownership is transferred.
+ * After return, contains the newly duplicated mask, or @c NULL if
+ * not found. Ownership is transferred.
+ */
+ IMPORT_C void LookupAndCreateScalableItemL( const TAknsItemID& aID,
+ const TInt aLayout, const TSize& aLayoutSize, CFbsBitmap*& aBitmap,
+ CFbsBitmap*& aMask, TInt& aMorphing);
+
+ /**
+ * Blocks write access to the shared memory chunk.
+ *
+ * @since 2.0
+ */
+ void BeginRead();
+
+ /**
+ * Allows write access to the shared memory chunk.
+ *
+ * @since 2.0
+ */
+ void EndRead();
+
+ /**
+ * Blocks all rendering.
+ *
+ * @since 2.8
+ */
+ IMPORT_C void BeginRender();
+
+ /**
+ * Allows rendering.
+ *
+ * @since 2.8
+ */
+ IMPORT_C void EndRender();
+
+ private: // Reserved exports
+
+ /**
+ * Reserved for future use.
+ *
+ * @since 2.0
+ *
+ * @return Always returns zero.
+ */
+ IMPORT_C TInt Reserved();
+
+ protected: // New methods
+
+ /**
+ * Creates an item definition object (or leaves) based on the given
+ * item definition structure.
+ *
+ * Note that this method does not use the semaphore, and is therefore
+ * unprotected.
+ *
+ * @param aID Item ID of the item.
+ *
+ * @param aType Type of the definition.
+ *
+ * @param aDef Pointer to the definition.
+ *
+ * @param aBasePtr Chunk base pointer.
+ *
+ * @return Newly construction item definition object, or @c NULL if
+ * aDef was @c NULL.
+ *
+ * @since 2.0
+ */
+ CAknsItemDef* CreateUnprotectedL( const TAknsItemID& aID,
+ const TAny* aDef, const TAknsItemType aType,
+ const TAny* aBasePtr );
+
+ /**
+ * Returns stored scalable bitmaps and optionally its mask if it
+ * was stored.
+ *
+ * Note that this method does not use the semaphore, and is therefore
+ * unprotected.
+ *
+ * @since 2.8
+ */
+ void LookupAndCreateScalableItemUnprotectedL( const TAknsItemID& aID,
+ const TInt aLayout, const TSize& aLayoutSize, CFbsBitmap*& aBitmap,
+ CFbsBitmap*& aMask, TInt& aMorphing);
+
+ /**
+ *
+ * @since 3.0
+ */
+ CAknsEffectQueueItemDef* CreateEffectQueueL( const TAknsItemID& aID,
+ const TAny* aDefPtr, const TAny* aBasePtr );
+
+ /**
+ *
+ * @since 3.0
+ */
+ CAknsAnimationItemDef* CreateAnimationL( const TAknsItemID& aID,
+ const TAny* aDefPtr, const TAny* aBasePtr );
+
+ /**
+ * @since 3.0
+ */
+ CAknsEffectItemDef* CreateEffectL( const TUint8* aData,
+ const TBool aIsAnimationCommand, const TAny* aBasePtr );
+
+ /**
+ * @since 3.0
+ */
+ CAknsEffectParamDef* CreateParameterL( const TUint8* aData, const TAny* aBasePtr );
+
+ /**
+ * @since 3.0
+ */
+ TUint32 CreateParameterL( CAknsEffectParamDef*& aDef,
+ const TUint32 aOffset,
+ const TAny* aDefPtr,
+ const TAny* aBasePtr );
+
+ /**
+ * @since 3.0
+ */
+ TUint32 CreateEffectL( CAknsEffectItemDef*& aDef,
+ const TUint32 aOffset,
+ const TAny* aDefPtr,
+ const TAny* aBasePtr,
+ const TBool aIsAnimationCommand );
+
+ protected: // Protected constructors
+
+ /**
+ * Default C++ constructor
+ */
+ CAknsSrvChunkLookup();
+
+ /**
+ * Second-phase constructor.
+ */
+ void ConstructL();
+
+ private: // Data
+
+ RChunk iSharedChunk;
+ RSemaphore iWaitSema;
+ RMutex iRenderMutex;
+
+ };
+
+#endif // AKNSSRVCHUNKLOOKUP_H
+
+// End of file.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_skin_api/AknsSrvClient.h Thu Apr 01 14:50:19 2010 +0100
@@ -0,0 +1,536 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Defines the public client side interface class to access the
+ Skin Server and the skin change observer class to listen for
+ skin changes in the system.
+*
+*/
+
+
+#ifndef AKNSSRVCLIENT_H
+#define AKNSSRVCLIENT_H
+
+// INCLUDES
+#include <e32base.h>
+#include <badesca.h>
+#include <AknsItemDef.h>
+#include <AknsItemID.h>
+#include <AknsSrvSkinInformationPkg.h>
+
+#include "AknsSrvChunkLookup.h"
+
+// DATA TYPES
+
+/**
+* Reasons for panicing client thread.
+*
+* @since 2.0
+*/
+enum TAknSkinSrvPanic
+ {
+ EAknsSrvBadRequest = 0,
+ EAknsSrvNotConnected = 2,
+ EAknsSrvNotifyHandlerMissing = 3,
+ EAknsSrvNoActiveScheduler = 4,
+ EAknsSrvCannotCreateSharedChunk = 6,
+ EAknsSrvBadAlignment = 8,
+ EAknsSrvFatalMergeFailure = 10,
+ EAknsSrvCannotAdjustChunk = 12,
+ EAknsSrvTooManyItemDefs = 14,
+ EAknsSrvCannotRestoreDefaults = 16,
+ EAknsSrvNotifyListImbalance = 18,
+ EAknsSrvInvalidMessageHandle = 20,
+ EAknsSrvInvalidBuildConf = 22,
+ EAknsSrvFatalDRMFailure = 24
+ };
+
+enum TAknsSrvInifileType
+ {
+ EAknsSrvInifileSSWP,
+ EAknsSrvInifileSSSS,
+ };
+
+enum TAknsSrcScreenMode
+ {
+ EAknsSrcScrModeNone = 0,
+ EAknsSrvScrModePortrait = 1,
+ EAknsSrvScrModeLandscape = 2,
+ EAknsSrvScrModeSquare = 3
+ };
+
+/**
+* Skin server panic category string.
+*
+* @since 2.0
+*/
+_LIT( KAknSkinSrvPanicCategory, "AknSkinServer" );
+
+/**
+* Enumeration of skin item definition classes.
+*
+* @since 2.0
+*/
+enum TAknsItemDefClass
+ {
+ /**
+ * Skin item definition class enumeration value for bitmaps,
+ * including layout backgrounds but excluding application icons.
+ */
+ EAknsItemDefClassBitmaps = 1,
+
+ /**
+ * Skin item definition class enumeration value for application icons.
+ */
+ EAknsItemDefClassAppIcons = 2,
+
+ /**
+ * Skin item definition class enumeration value for color sets.
+ */
+ EAknsItemDefClassColorSets = 4
+ };
+
+/**
+* Skin package change reason codes used by
+* @c MAknsSkinChangeObserver::SkinPackageChanged
+*
+* @since 2.5
+*/
+enum TAknsSkinStatusPackageChangeReason
+ {
+ /**
+ * Enumeration value that indicates change in skin package list.
+ *
+ * @since 2.5
+ */
+ EAknsSkinStatusPackageListUpdate = 1
+ };
+
+/**
+* Skin configuration change reason codes used by
+* @c MAknsSkinChangeObserver::SkinConfigurationChanged
+*
+* @since 2.5
+*/
+enum TAknsSkinStatusConfigurationChangeReason
+ {
+ /**
+ * Enumeration value that indicates completion of skin content merge,
+ * i.e. the new configuration is available for reading.
+ *
+ * @since 2.5
+ */
+ EAknsSkinStatusConfigurationMerged = 1,
+
+ /**
+ * Enumeration value that indicates completion of event propagation
+ * to clients, i.e. the new configuration has been deployed to
+ * the registered clients.
+ *
+ * @since 2.5
+ */
+ EAknsSkinStatusConfigurationDeployed = 2,
+
+ /**
+ * Enumeration value that indicates unsuccessful completion of
+ * skin activation because of an out-of-memory condition.
+ *
+ * @since 2.5
+ */
+ EAknsSkinStatusConfigurationFailedOOM = 3,
+
+ /**
+ * Enumeration value that indicates unsuccessful completion of
+ * skin activation because of a corrupted skin package.
+ *
+ * @since 2.5
+ */
+ EAknsSkinStatusConfigurationFailedCorrupt = 4,
+ /**
+ * Enumeration value that indicates a change in the
+ * state of the morphing skin items
+ *
+ * @since 3.0
+ */
+ EAknsSkinStatusMorphingStateChange = 5,
+ EAknsSkinStatusWallpaperChanged = 6,
+
+ /**
+ * Enumeration value that indicates a change in the
+ * state of animation Background
+ *
+ * @since 5.2
+ */
+ EAknsSkinStatusAnimBackgroundChanged = 7,
+
+ EAknsSkinStatusSlideSetWallpaperChanged = 8
+
+ };
+
+// CONSTANTS
+
+_LIT( KAknsSrvRAMBitmapName, "RAM:BmpHandle");
+
+// CLASS DECLARATION
+
+/**
+* An user implementable interface class to handle the skin change
+* notifications.
+*
+* @since 2.0
+*/
+class MAknsSkinChangeObserver
+ {
+ public:
+
+ /**
+ * Called by the skin server when skin content is changed and the
+ * connected client wants to be informed.
+ *
+ * @since 2.0
+ */
+ virtual void SkinContentChanged() = 0;
+
+ /**
+ * Called by the skin server to indicate that the current skin
+ * configuration has changed.
+ *
+ * @param aReason Reason code.
+ *
+ * @since 2.5
+ */
+ virtual void SkinConfigurationChanged(
+ const TAknsSkinStatusConfigurationChangeReason aReason ) = 0;
+
+ /**
+ * Called by the skin server to indicate that the available
+ * skin packages have changed.
+ *
+ * @param aReason Reason code.
+ *
+ * @since 2.5
+ */
+ virtual void SkinPackageChanged(
+ const TAknsSkinStatusPackageChangeReason aReason ) = 0;
+
+ /**
+ * Called by the skin server to ask for local cache cleanup.
+ *
+ * @since 3.1
+ *
+ */
+ virtual void FlushLocalCaches() {};
+ };
+
+// FORWARD DECLARATIONS
+
+class CAknsSkinChangeHandler;
+struct TAknsSrvClientMemberData;
+
+// CLASS DECLARATION
+
+/**
+* The client side interface class for the skins server
+* Provides functionality to change the system skin, to retrieve skin content
+* definitions from the server and to listen for skin change events.
+*
+* @lib AknSkinSrv.lib
+*
+* @since 2.0
+*/
+class RAknsSrvSession : public RSessionBase
+ {
+ public:
+
+ /**
+ * C++ default constructor.
+ */
+ IMPORT_C RAknsSrvSession();
+
+ /**
+ * Starts the server if it's not allready started and creates a new
+ * session.
+ *
+ * @since 2.0
+ *
+ * @param aObserver Skin change observer.
+ * @param aPriority Observer priority.
+ *
+ * @return KErrNone if connection was succesfull, or otherwise one of
+ * the standard system wide error codes.
+ */
+ IMPORT_C TInt Connect( MAknsSkinChangeObserver* aObserver = NULL,
+ TInt aPriority = CActive::EPriorityStandard );
+
+ /**
+ * Closes the session.
+ *
+ * @since 2.0
+ *
+ */
+ IMPORT_C void Close(); //lint !e1511 Hiding allowed
+
+ /**
+ * Enables the servers skin change notifications mechanism. If the skin
+ * definitions have changed, or there are pending notification events,
+ * SkinContentChanged() is called for all sessions.
+ * The function affects all sessions.
+ *
+ * @since 2.0
+ *
+ */
+ IMPORT_C void EnableSkinChangeNotify();
+
+
+ /**
+ * Disables the servers skin change notification mechanism. After this
+ * call no notification events are generated until a subsequent
+ * EnableSkinChangeNotify() is called. The function affects all sessions.
+ *
+ * @since 2.0
+ *
+ */
+ IMPORT_C void DisableSkinChangeNotify();
+
+ /**
+ * Notifies the server that the skin client has encountered an error
+ * while doing a skin change. After this call the server falls back to
+ * the system default skin and ignores any calls to this funcion to
+ * avoid infite loop.
+ *
+ * @since 2.0
+ *
+ * @param aErrorCode Error code.
+ */
+ IMPORT_C void ClientError(TInt aErrorCode = 0);
+
+ /**
+ * Sets all the active item definition sets (including all the classes).
+ * Item definition sets of the skin with the given package ID are
+ * activated and clients are notified about the skin change.
+ *
+ * @since 2.0
+ *
+ * @param aPID Package ID of the skin to be activated.
+ *
+ * @return KErrNone if succesfull or one of the system wide error codes.
+ */
+ IMPORT_C TInt SetAllDefinitionSets( const TAknsPkgID aPID );
+
+ /**
+ * Retrieves skin information for all the available skins packages
+ * in specified location. After a call to this function, the ownewship
+ * of the array and the items in it is transferred to the caller.
+ *
+ * @since 2.0
+ *
+ * @param aLocation the location from where to look for the skin
+ * packages. Default value is phone (i.e., c and z drives).
+ *
+ * @return A pointer to an array containing pointers to
+ * CAknsSrvSkinInformationPkg instances, or an empty array if no skin
+ * packages were found in the specified location. If the same skin
+ * was found multiple times, only the first match is included in the
+ * array.
+ *
+ * @par Exceptions:
+ * If enumeration failed, method leaves with an error code.
+ */
+ IMPORT_C CArrayPtr<CAknsSrvSkinInformationPkg>*
+ EnumerateSkinPackagesL(
+ TAknSkinSrvSkinPackageLocation aLocation = EAknsSrvPhone );
+
+ /**
+ * Creates a chunk lookup object.
+ *
+ * @since 2.0
+ *
+ * @return Newly created chunk lookup object.
+ *
+ * @par Exceptions:
+ * If construction fails, method leaves with an error code.
+ */
+ IMPORT_C CAknsSrvChunkLookup* CreateChunkLookupL();
+
+ /**
+ * Sets the idle state wallpaper.
+ *
+ * @since 2.0
+ *
+ * @param aFilename a fully qualified path(incl. path + filename)
+ * to the mbm file containing the wallpaper
+ * @param aIndex the index of the bitmap in the mbm file
+ * @param aMaskIndex the index of the mask bitmap in the mbm file
+ *
+ * @return If the call fails, one of the system wide error codes is
+ * returned.
+ */
+ IMPORT_C TInt SetIdleWallpaper(const TDesC& aFilename);
+
+ /**
+ * Stores a duplicate of the given bitmap (optionally with mask).
+ *
+ * @param aIID Item ID used as a key.
+ *
+ * @param aType Layout type used as a key.
+ *
+ * @param aBmp Pointer to a bitmap. Must be non-NULL. No ownership
+ * is transferred.
+ *
+ * @param aMask Pointer to a mask, or @c NULL. No ownership is
+ * transferred.
+ *
+ * @since 2.8
+ */
+ IMPORT_C TInt StoreScalableGraphics(const TAknsItemID& aIID,
+ const TInt aType, const TSize& aLayoutSize, const CFbsBitmap* aBmp,
+ const CFbsBitmap* aMask, TBool aMorphing = EFalse );
+
+ /**
+ * Instructs the server to cleanup any stored layout bitmaps.
+ *
+ * @return Error code.
+ *
+ * @since 2.8
+ */
+ IMPORT_C TInt ClearScalableGraphics();
+
+ /**
+ * Acknowledges the skin change notification.
+ *
+ * @return Error code.
+ *
+ * @since 2.7
+ */
+ TInt AcknowledgeSkinChangeNotification();
+
+ IMPORT_C TInt DeleteSkin(const TAknsPkgID aPID, TAknSkinSrvSkinPackageLocation aLocation );
+ IMPORT_C TInt CopySkin(const TAknsPkgID aPID, TAknSkinSrvSkinPackageLocation aSourceLocation, TAknSkinSrvSkinPackageLocation aDestLocation);
+ IMPORT_C TInt OpenBitmapFile( const TDesC& aFilename, TInt &aFileHandle);
+ IMPORT_C TInt OpenInifile(const TAknsPkgID aPID, TAknSkinSrvSkinPackageLocation aLocation, TInt& aFilehandle, TBool aWriteToFile);
+ IMPORT_C TInt CopySoundFile(const TDesC& aSourceFilename, const TDesC& aTargetFilename);
+ IMPORT_C void DecodeWallpaperImageL(const TDesC& aFilename, const TSize& aTargetSize, CFbsBitmap*& aBitmap, CFbsBitmap*& aMask);
+ IMPORT_C TInt OpenImageInifile(TAknsSrvInifileType aType, TInt& aFilehandle);
+ IMPORT_C TInt SetSlideSetWallpaper(const CDesCArray& aFilenameArray);
+#if defined(RD_SLIDESHOW_WALLPAPER)
+ void DoWriteInifileL(const CDesCArray& aFilenameArray);
+#endif
+ IMPORT_C void FreeUnnecessaryLayoutBitmaps(TAknsSrcScreenMode aMode);
+
+ /*
+ * Checks if AppArc has been configured using CenRep for this application UID. If so, skinned icon graphics are NOT
+ * created when calling AknsUtils::CreateAppIconLC. Instead, configured icon (which is defined in the
+ * AppArc's CenRep file) is used. Note that icon configuration can wary depending on active language.
+ *
+ * @since 5.0
+ *
+ * @param aAppUid - Application UID of application to be checked.
+ * @return zero, if no cenrep-based configuration is used.
+ * Non-zero is returned, if application UID is configured using AppArc's CenRep file.
+ */
+ IMPORT_C TInt CheckIconConfiguration( TUid aAppUid );
+
+ /**
+ * Add one wallpaper.
+ *
+ * @param aFilename a fully qualified path(incl. path + filename)
+ * of the wallpaper
+ * @param aTargetSize - Decoded size.
+ * if not set, Both portait and landscape(base on screen size) will be decoded.
+ */
+ IMPORT_C void AddWallpaperL( const TDesC& aFilename, const TSize& aTargetSize );
+
+ /**
+ * Remove one decoded wallpaper.
+ *
+ * @param aFilename a fully qualified path(incl. path + filename)
+ * of the wallpaper
+ */
+ IMPORT_C void RemoveWallpaper( const TDesC& aFilename );
+
+ /**
+ * Remove all decoded wallpaper.
+ */
+ IMPORT_C void RemoveAllWallpapers( );
+
+ /**
+ * Get a decoded wallpaper.
+ */
+ IMPORT_C CFbsBitmap* WallpaperImageL( const TDesC& aFilename );
+
+ private: // Reserved exports
+
+ /**
+ * Reserved for future use.
+ *
+ * @since 2.0
+ *
+ * @return Always returns zero.
+ */
+ IMPORT_C TInt Reserved1();
+
+ /**
+ * Reserved for future use.
+ *
+ * @since 2.0
+ *
+ * @return Always returns zero.
+ */
+ IMPORT_C TInt Reserved2();
+
+ /**
+ * Reserved for future use.
+ *
+ * @since 2.0
+ *
+ * @return Always returns zero.
+ */
+ IMPORT_C TInt Reserved3();
+
+ /**
+ * Reserved for future use.
+ *
+ * @since 2.0
+ */
+ IMPORT_C void Reserved4();
+
+ private:
+
+ /**
+ * Gets the server version.
+ */
+ TVersion Version() const;
+
+ /**
+ * Cancels send operation.
+ */
+ void SendCancel();
+
+ /**
+ * Completes event handling.
+ */
+ void EventHandled();
+
+ private: // Data
+
+ // Holds member variables of this class.
+ TAknsSrvClientMemberData* iMemberData;
+
+ private: // Friend classes
+ friend class CAknsSkinChangeHandler;
+
+ };
+
+#endif // AKNSSRVCLIENT_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_skin_api/AknsSrvSkinInformationPkg.h Thu Apr 01 14:50:19 2010 +0100
@@ -0,0 +1,336 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Defines constant values for Avkon Skins.
+*
+*/
+
+
+#ifndef AKNSSRVSKININFORMATIONPKG_H
+#define AKNSSRVSKININFORMATIONPKG_H
+
+//INCLUDE FILES
+
+#include <e32base.h>
+
+#include <AknsPkgID.h>
+
+// CONSTANTS
+
+/**
+* Enumeration for the skin package locations.
+*
+* @since 2.0
+*
+*/
+enum TAknSkinSrvSkinPackageLocation
+ {
+ /**
+ * Location enum value for phone (drives C:\ and Z:\)
+ */
+ EAknsSrvPhone = 0,
+
+ /**
+ * Location enum value for MMC (E:\)
+ */
+ EAknsSrvMMC = 2,
+
+ /**
+ * Location enum value for all drives available.(d:\ ie. RAM disk excluded)
+ */
+ EAknsSrvAll = 4
+ };
+
+/**
+* Enumeration for the skin protection type.
+*
+* @since 2.6
+*
+*/
+enum TAknsSkinSrvSkinProtectionType
+ {
+ /**
+ * The skin is not DRM protected
+ */
+ EAknsSrvNoProtection,
+
+ /**
+ * The skin is DRM protected
+ */
+ EAknsSrvProtected,
+
+ /**
+ * The rights object for has no rights for the skin
+ */
+ EAknsSrvNoRights,
+
+ /**
+ * The rights object for the skin is count based,
+ * and should not be allowed to activated or
+ * edited.
+ * §qtn_drm_prev_rights_set§ should be displayed.
+ */
+ EAknsSrvCountBased,
+
+ /**
+ * The rights object is valid in the future,
+ * should not be allowed to be actived or
+ * edited.
+ * §qtn_drm_prev_rights_set§ should be displayed.
+ */
+ EAknsSrvFutureRights,
+
+ /**
+ * The rights object has bee expired
+ * §qtn_drm_mgr_det_exp§ from drmcommon should be displayed
+ */
+ EAknsSrvExpiredRights
+ };
+
+// CLASS DECLARATIONS
+
+struct TAknsSrvSkinInfoPkg
+{
+ public:
+ TAknsPkgID iPID; // Package ID of the skin
+ TAknsPkgID iColorSchemePID; // Package ID of the color scheme in the skin
+ TFileName iSkinDirectoryBuf; // The directory of the skin package
+ TFileName iSkinIniFileDirectoryBuf; // The directory containing the skin ini file
+ TFileName iSkinNameBuf; // The name of the skin package.
+ TFileName iIdleStateWallPaperImageName; // The name of the idle state wallpaper mbm file.
+ TFileName iFullName; // The fully qualified skn-file name
+ TBool iIsCopyable; // Boolean value specifying if the skin package copyable
+ TBool iIsDeletable; // Boolean value specifying if the skin package is deletable
+ TInt iIdleBgImageIndex; // The index of the idle state background image
+ TAknsSkinSrvSkinProtectionType iProtectionType; // Specifies the DRM protection type in this skin
+ TBool iCorrupted; // Specifies if the skin is somehow corrupted
+ TBool iSupportAnimBg; // Specifies if the skin support animated background
+};
+
+/**
+* A storage class containing skin information.
+*
+* @since 2.0
+*
+**/
+NONSHARABLE_CLASS(CAknsSrvSkinInformationPkg) : public CBase
+ {
+ public: // Construction and destruction
+
+ static CAknsSrvSkinInformationPkg* NewL(
+ const TAknsPkgID aPID, const TAknsPkgID aColorSchemePID,
+ const TDesC& aDirectory, const TDesC& aInifileDir,
+ const TDesC& aSkinName,
+ const TDesC& aIdleStateMbmFilename,
+ const TDesC& aPinboardWallPaperMbmFilename,
+ const TDesC& aFullName,
+ const TInt aIdleBgImageIndex,
+ const TInt aPinboardBgImageIndex,
+ const TBool aDeletable,
+ const TBool aCopyable,
+ const TBool aHasIconset,
+ const TAknsSkinSrvSkinProtectionType aProtectionType,
+ const TBool aCorrupted,
+ const TBool aSupportAnimBg);
+
+ virtual ~CAknsSrvSkinInformationPkg();
+
+ public: // New methods
+
+ /**
+ * Gets the package ID of the skin
+ *
+ * @since 2.0
+ *
+ * @return The package ID of the skin
+ */
+ IMPORT_C TAknsPkgID PID() const;
+
+ /**
+ * Gets the skin package directory
+ *
+ * @since 2.0
+ *
+ * @return The skin package directory
+ */
+ IMPORT_C TDesC& Directory() const;
+
+ /**
+ * Gets the skin package ini file directory
+ *
+ * @since 2.0
+ *
+ * @return The skin package ini file directory
+ */
+ IMPORT_C TDesC& IniFileDirectory() const;
+
+ /**
+ * Gets the skin name. May or may not be empty.
+ *
+ * @since 2.0
+ *
+ * @return The skin name, may also be empty
+ */
+ IMPORT_C TDesC& Name() const;
+
+ /**
+ * Gets the skin idle state wallpaper mbm file name. May or may not be empty.
+ * The filename is fully qualified (incl. full file path)
+ *
+ * @since 2.0
+ *
+ * @return The mbm filename of the skin wallpaper, may also be empty
+ */
+ IMPORT_C TDesC& IdleStateWallPaperImageFileName() const;
+
+ /**
+ * Gets the skin pinboard wallpaper mbm file name. May or may not be empty.
+ * The filename is fully qualified (incl. full file path)
+ *
+ * @since 2.0
+ *
+ * @return The mbm filename of the pinboard wallpaper, may also be empty
+ */
+ IMPORT_C TDesC& PinboarWallPaperImageFileName() const;
+
+ /**
+ * Gets the idle state background image index.
+ *
+ * @since 2.0
+ *
+ * @return The idle state background image index.
+ */
+ IMPORT_C TInt IdleStateWallPaperImageIndex() const;
+
+ /**
+ * Gets the pinboard background image index.
+ *
+ * @since 2.0
+ *
+ * @return The pinboard background image index.
+ */
+ IMPORT_C TInt PinboardWallPaperImageIndex() const;
+
+ /**
+ * Indicates if the skin package is deletable.
+ *
+ * @since 2.0
+ *
+ * @return ETrue if the skin is deletable, EFalse otherwise.
+ */
+ IMPORT_C TBool IsDeletable() const;
+
+ /**
+ * Indicates if the skin package is copyable.
+ *
+ * @since 2.0
+ *
+ * @return ETrue if the skin is deletable, EFalse otherwise.
+ */
+ IMPORT_C TBool IsCopyable() const;
+
+ /**
+ * Returns the color scheme package ID for this skin.
+ *
+ * @since 2.0
+ *
+ * @return Package ID value of the color scheme associated with this
+ * skin, or @c KAknsNullPkgID if this skin has no preference over
+ * color schemes.
+ *
+ */
+ IMPORT_C TAknsPkgID ColorSchemePID() const;
+
+ /**
+ * Indicates whether the skin has an iconset.
+ *
+ * @since 2.0
+ *
+ * @return ETrue if the skin has an iconset, EFalse otherwise.
+ */
+ IMPORT_C TBool HasIconset() const;
+
+ /**
+ * Gets the protection type for this skin
+ *
+ * @since 2.6
+ *
+ * @return The protection type for this skin.
+ */
+ IMPORT_C TAknsSkinSrvSkinProtectionType ProtectionType() const;
+
+ /**
+ * Indicates whether the skin is corrupted.
+ *
+ * @since 2.6
+ *
+ * @return ETrue if the skin is corrupted, EFalse otherwise.
+ */
+ IMPORT_C TBool IsCorrupted() const;
+
+ /**
+ * Get the fully qualified skin skn-filename (incl. full path).
+ *
+ * @since 2.6
+ *
+ * @return The fully qualified skn-file name.
+ */
+ IMPORT_C TDesC& FullName() const;
+
+ /**
+ * Indicates whether the skin support animation background.
+ *
+ * @since 5.2
+ *
+ * @return The fully qualified skn-file name.
+ */
+ IMPORT_C TBool IsSupportAnimBg() const;
+
+ protected:
+ CAknsSrvSkinInformationPkg(
+ const TAknsPkgID aPID, const TAknsPkgID aColorSchemePID,
+ const TBool aDeletable, const TBool aCopyable,
+ const TInt aIdleBgImageIndex,
+ const TInt aPinboardBgImageIndex, const TBool aHasIconset,
+ const TAknsSkinSrvSkinProtectionType aProtectionType,
+ const TBool aCorrupted,
+ const TBool aSupportAnimBg);
+
+ void ConstructL(
+ const TDesC& aDirectory, const TDesC& aInifileDir,
+ const TDesC& aSkinName, const TDesC& aIdleStateMbmFilename,
+ const TDesC& aPinboardWallPaperMbmFilename,
+ const TDesC& aFullName);
+
+ private:
+ TAknsPkgID iPID; // Package ID of the skin
+ TAknsPkgID iColorSchemePID; // Package ID of the color scheme in the skin
+ HBufC* iSkinDirectoryBuf; // The directory of the skin package
+ HBufC* iSkinIniFileDirectoryBuf; // The directory containing the skin ini file
+ HBufC* iSkinNameBuf; // The name of the skin package.
+ HBufC* iIdleStateWallPaperImageName; // The name of the idle state wallpaper mbm file.
+ HBufC* iPinboardWallPaperImageName; // The name of the pinboard wallpaper mbm file
+ HBufC* iFullName; // The fully qualified skn-file name
+ TBool iIsCopyable; // Boolean value specifying if the skin package copyable
+ TBool iIsDeletable; // Boolean value specifying if the skin package is deletable
+ TInt iIdleBgImageIndex; // The index of the idle state background image
+ TInt iPinboardBgImageIndex; // The index of the pinboard backgound image
+ TBool iHasIconset; // Boolean value indicating whether this skin has an iconset
+ TAknsSkinSrvSkinProtectionType iProtectionType; // Specifies the DRM protection type in this skin
+ TBool iCorrupted; // Specifies if the skin is somehow corrupted
+ TBool iSupportAnimBg; // Specifies if the skin support Animated background
+ };
+
+#endif AKNSSRVSKININFORMATIONPKG_H // AknsSrvSkinInformationPkg.h
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/extended_skin_api/bld.inf Thu Apr 01 14:50:19 2010 +0100
@@ -0,0 +1,8 @@
+PRJ_EXPORTS
+AknsItemDef.h AknsItemDef.h
+AknsSrvClient.h AknsSrvClient.h
+AknsSrvSkinInformationPkg.h AknsSrvSkinInformationPkg.h
+AknsSrvChunkLookup.h AknsSrvChunkLookup.h
+AknsEffectAnim.h AknsEffectAnim.h
+AknsPkgID.h AknsPkgID.h
+AknsPkgID.inl AknsPkgID.inl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/hs_content_control_ui/bld.inf Thu Apr 01 14:50:19 2010 +0100
@@ -0,0 +1,2 @@
+PRJ_EXPORTS
+hscontentcontrolui.h hscontentcontrolui.h
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/hs_content_control_ui/hscontentcontrolui.h Thu Apr 01 14:50:19 2010 +0100
@@ -0,0 +1,226 @@
+/*
+ * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#ifndef HSCONTENTCONTROLUI_H
+#define HSCONTENTCONTROLUI_H
+
+// System includes
+#include <e32base.h>
+#include <ecom/ecom.h>
+
+// Forward declarations
+class MHsContentController;
+class CAknView;
+
+/**
+ * Content control UI interface
+ *
+ *
+ * @code
+ *
+ * @endcode
+ *
+ * @lib hscontentcontrol.lib
+ * @since S60 v5.0
+ */
+class MHsContentControlUi
+ {
+public:
+ /**
+ *
+ */
+ virtual void Activate() = 0;
+
+ /**
+ *
+ */
+ virtual void DeActivate() = 0;
+
+ /**
+ *
+ */
+ virtual void Views( RPointerArray<CAknView>& aViews ) = 0;
+
+ /**
+ *
+ */
+ virtual void NotifyWidgetListChanged() = 0;
+
+ /**
+ *
+ */
+ virtual void NotifyViewListChanged() = 0;
+
+ /**
+ *
+ */
+ virtual void NotifyAppListChanged() = 0;
+
+ /**
+ *
+ */
+ virtual void SetContentController( MHsContentController* aController ) = 0;
+ };
+
+/**
+ * Content control UI base class
+ *
+ *
+ * @code
+ *
+ * @endcode
+ *
+ * @lib hscontentcontrol.lib
+ * @since S60 v5.0
+ */
+class CHsContentControlUi : public CBase, public MHsContentControlUi
+ {
+public:
+ /**
+ * Two-phased constructor.
+ * @param aImplUid Requested implementation UID
+ */
+ IMPORT_C static CHsContentControlUi* NewL(
+ TUid aImplUid );
+
+ /**
+ * Destructor.
+ */
+ inline ~CHsContentControlUi();
+
+public: // From MHsContentControlUi
+ /**
+ *
+ */
+ inline void Activate();
+
+ /**
+ *
+ */
+ inline void DeActivate();
+
+ /**
+ *
+ */
+ inline void Views( RPointerArray<CAknView>& aViews );
+
+ /**
+ *
+ */
+ inline void NotifyWidgetListChanged();
+
+ /**
+ *
+ */
+ inline void NotifyViewListChanged();
+
+ /**
+ *
+ */
+ inline void NotifyAppListChanged();
+
+ /**
+ *
+ */
+ void SetContentController(
+ MHsContentController* aController );
+
+
+public: // New functions
+
+ /**
+ *
+ */
+ TUid ImplUid() const;
+
+ /**
+ *
+ */
+ void SetContentControlTypeL(
+ const TDesC8& aContentControlType );
+
+ /**
+ *
+ */
+ const TDesC8& ContentControlType() const;
+
+protected: // Data
+
+ /**
+ *
+ */
+ MHsContentController* iHsContentController;
+
+private: // Data
+
+ /**
+ *
+ */
+ TUid iDestructKey;
+
+ /**
+ *
+ */
+ TUid iImplUid;
+
+ /**
+ *
+ */
+ HBufC8* iContentControlType;
+
+ };
+
+inline CHsContentControlUi::~CHsContentControlUi()
+ {
+ delete iContentControlType;
+ REComSession::DestroyedImplementation( iDestructKey );
+ }
+
+inline void CHsContentControlUi::Activate()
+ {
+ // Default implementation of MHsContentControlUi method
+ }
+inline void CHsContentControlUi::DeActivate()
+ {
+ // Default implementation of MHsContentControlUi method
+ }
+inline void CHsContentControlUi::Views(
+ RPointerArray<CAknView>& /*aViews*/ )
+ {
+ // Default implementation of MHsContentControlUi method
+ }
+inline void CHsContentControlUi::NotifyWidgetListChanged()
+ {
+ // Default implementation of MHsContentControlUi method
+ }
+inline void CHsContentControlUi::NotifyViewListChanged()
+ {
+ // Default implementation of MHsContentControlUi method
+ }
+inline void CHsContentControlUi::NotifyAppListChanged()
+ {
+ // Default implementation of MHsContentControlUi method
+ }
+
+inline void CHsContentControlUi::SetContentController(
+ MHsContentController* aController )
+ {
+ iHsContentController = aController;
+ }
+
+#endif // HSCONTENTCONTROLUI_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/mifconv/.cproject Thu Apr 01 14:50:19 2010 +0100
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+<storageModule buildFromInf="true" buildingTestComps="true" cleanLevel="0" concurrentBuildJobs="4" defaultMMPChangedAction="2" extraSBSv2Args="" infBuildComponents="" infFileLocation="group\bld.inf" macrosFile="" makeEngineToUse="make" manageDependencies="true" moduleId="com.nokia.carbide.cdt.builder.carbideCPPBuilder" overrideMakeEngine="false" overrideWorkspaceSettings="false" promptForMMPChangedAction="true" useConcurrentBuilding="true" useDebugMode="false" useIncrementalBuilder="false" useKeepGoing="false" useMMPMacros="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.settings">
+<cconfiguration id="Emulator Debug (WINSCW) [S60_5th_Edition_SDK_v1.0]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Emulator Debug (WINSCW) [S60_5th_Edition_SDK_v1.0]" moduleId="org.eclipse.cdt.core.settings" name="Emulator Debug (WINSCW) [S60_5th_Edition_SDK_v1.0]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MWCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\rom\"/>
+</storageModule>
+<storageModule filesCache="C:\S60\devices\S60_5th_Edition_SDK_v1.0\homescreensrv\dependencies\mifconv\group\bld.inf;" includesCache="C:/S60/devices/S60_5th_Edition_SDK_v1.0/homescreensrv/dependencies/mifconv/inc[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/mw;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/platform/mw;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/platform;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/platform/loc;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/platform/mw/loc;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/platform/loc/sc;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/platform/mw/loc/sc;" macrosCache="_UNICODE;__SYMBIAN32__;__SUPPORT_CPP_EXCEPTIONS__;__S60_3X__;__SERIES60_3X__;__S60_5X__;__CW32__;__WINS__;__WINSCW__;__S60_50__;_DEBUG;" moduleId="configDataCache" sourcesCache="/mifconv/inc;/mifconv/src;" timestampCache="1269619033814" useMmpMacrosCache="true"/>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+</cconfiguration>
+<cconfiguration id="Phone Debug (GCCE) [S60_5th_Edition_SDK_v1.0]">
+<storageModule buildSystemId="com.nokia.carbide.cdt.builder.CarbideConfigurationDataProvider" id="Phone Debug (GCCE) [S60_5th_Edition_SDK_v1.0]" moduleId="org.eclipse.cdt.core.settings" name="Phone Debug (GCCE) [S60_5th_Edition_SDK_v1.0]">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.cdt.debug.cw.symbian.SymbianE32" point="org.eclipse.cdt.core.BinaryParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.CarbideMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.SBSv2ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.Elf2E32ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.RCOMPErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.GCCECompilerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.MakeDefErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.GCCEAssemblerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="com.nokia.carbide.cdt.builder.GCCELinkerErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="CarbideConfigurationDataProvider">
+<ENV_VAR_DATA_ID/>
+<ARGUMENTS_DATA_ID ABLDFREEZEARGSSTORAGE="-r"/>
+<ROM_BUILDER_DATA_ID ROMBUILDWORKINGDIRECTORYSTORAGE="C:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\rom\"/>
+</storageModule>
+<storageModule filesCache="C:\S60\devices\S60_5th_Edition_SDK_v1.0\homescreensrv\dependencies\mifconv\group\bld.inf;" includesCache="C:/S60/devices/S60_5th_Edition_SDK_v1.0/homescreensrv/dependencies/mifconv/inc[LOCAL];C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/mw;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/platform/mw;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/platform;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/platform/loc;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/platform/mw/loc;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/platform/loc/sc;C:/S60/devices/S60_5th_Edition_SDK_v1.0/epoc32/include/platform/mw/loc/sc;" macrosCache="_UNICODE;__SUPPORT_CPP_EXCEPTIONS__;__MARM_ARMV5__;__SYMBIAN32__;__GCCE__;__MARM__;__SERIES60_3X__;__S60_3X__;__S60_5X__;__EPOC32__;__GENERIC_MARM__;__EABI__;_DEBUG;__S60_50__;" moduleId="configDataCache" sourcesCache="/mifconv/inc;/mifconv/src;" timestampCache="1269619033845" useMmpMacrosCache="true"/>
+</cconfiguration>
+</storageModule>
+</cproject>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/mifconv/.project Thu Apr 01 14:50:19 2010 +0100
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>mifconv</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.nokia.carbide.cdt.builder.carbideCPPBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>com.nokia.carbide.cdt.builder.carbideCPPBuilderNature</nature>
+ </natures>
+</projectDescription>
--- a/dependencies/mifconv/group/mifconv.mmp Thu Apr 01 12:25:43 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: project definition file
-*
-*/
-
-#include <platform_paths.hrh>
-
-TARGET mifconv.exe
-TARGETTYPE exe
-
-USERINCLUDE ../inc
-MW_LAYER_SYSTEMINCLUDE
-SOURCEPATH ../src
-
-SOURCE mifconv.cpp
-SOURCE mifconv_argument.cpp
-SOURCE mifconv_argumentmanager.cpp
-SOURCE mifconv_bitmapconverter.cpp
-SOURCE mifconv_bitmapheaderconverter.cpp
-SOURCE mifconv_convertermanager.cpp
-SOURCE mifconv_exception.cpp
-SOURCE mifconv_iconbinaryconverter.cpp
-SOURCE mifconv_mifconverter.cpp
-SOURCE mifconv_sourcefile.cpp
-SOURCE mifconv_util.cpp
-
--- a/dependencies/mifconv/src/mifconv.cpp Thu Apr 01 12:25:43 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Mifconv main.
-*
-*/
-
-
-#include "mifconv.h"
-#include "mifconv_exception.h"
-#include "mifconv_argumentmanager.h"
-#include "mifconv_convertermanager.h"
-#include "mifconv_util.h"
-
-int main( int argc, char *argv[] )
-{
- cout << endl << "Mifconv v" << MifConvVersion << " - " << MifConvDate << endl;
- // Instantiate the argument manager and mif creator:
- MifConvArgumentManager* argMgr = MifConvArgumentManager::Instance();
- MifConvConverterManager* converterMgr = MifConvConverterManager::Instance();
-
- try {
- // Read arguments to string vector:
- MifConvStringList strList;
- for( int i = 1; i < argc; ++i )
- {
- strList.push_back(MifConvString(argv[i]));
- }
-
- // Initialize arguments:
- argMgr->Init(strList);
-
- // Initialize converters:
- converterMgr->Init();
-
- // Run converters for source files:
- converterMgr->ProcessIcons();
-
- // Cleanup temp files etc:
- converterMgr->Cleanup();
- }
- catch( MifConvException& e ) {
- // In case of error, print exception to stderr, cleanup temp files and exit:
- std::stringstream strForInt;
- strForInt << e.Line();
-
- MifConvUtil::DebugLog(e.File() + MifConvString(":") + strForInt.str() + MifConvString(":") + e.String());
- cerr << e.String() << endl;
- converterMgr->Cleanup(true);
- converterMgr->Reset();
- argMgr->Reset();
- exit(MIFCONV_ERROR);
- }
- catch(...)
- {
- // Unknown error:
- MifConvUtil::DebugLog("MifConv: Unknown error");
- cerr << "MifConv: Unknown error" << endl;
- converterMgr->Cleanup(true);
- converterMgr->Reset();
- argMgr->Reset();
- exit(MIFCONV_ERROR);
- }
-
- converterMgr->Reset();
- argMgr->Reset();
- return MIFCONV_NO_ERROR;
-}
--- a/dependencies/mifconv/src/mifconv_argument.cpp Thu Apr 01 12:25:43 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Mifconv tool argument definitions.
-*
-*/
-
-
-#include "mifconv.h"
-#include "mifconv_argument.h"
--- a/dependencies/mifconv/src/mifconv_argumentmanager.cpp Thu Apr 01 12:25:43 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,991 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Mifconv argument manager class.
-*
-*/
-
-
-#include "mifconv.h"
-#include "mifconv_argumentmanager.h"
-#include "mifconv_exception.h"
-#include "mifconv_util.h"
-
-// Static singleton initialization
-MifConvArgumentManager* MifConvArgumentManager::iInstance = 0;
-
-/**
- * Returns pointer to the singleton object
- */
-MifConvArgumentManager* MifConvArgumentManager::Instance()
-{
- if( iInstance == 0 )
- {
- iInstance = new MifConvArgumentManager();
- }
- return iInstance;
-}
-
-/**
- * Free the allocated memory
- */
-void MifConvArgumentManager::Reset()
-{
- delete iInstance;
- iInstance = 0;
-}
-
-/**
- *
- */
-inline void MifConvArgumentManager::THROW_USAGE_EXCEPTION() const
-{
- MifConvString usageStr;
- SetUsageString(usageStr);
- throw MifConvException(usageStr, MifConvString(__FILE__), __LINE__);
-}
-
-inline void MifConvArgumentManager::THROW_ERROR( const MifConvString& errorMsg, const MifConvString& file, int line ) const
-{
- throw MifConvException( MifConvString("ERROR: " + errorMsg + "\nType mifconv -? for help\n"), file, line);
-}
-
-/**
- *
- */
-MifConvArgumentManager::MifConvArgumentManager()
-:
-iEpocRoot(DEFAULT_EPOCROOT)
-{
- GetMifEnv();
-}
-
-/**
- *
- */
-MifConvArgumentManager::~MifConvArgumentManager()
-{}
-
-/**
- * This function checks if the given argument is boolean type of argument.
- * Boolean type arguments are listed in a <code>MifConvBooleanArguments</code> table
- * and this function checks if the given string matches any of those. Returns the length
- * of the argument name if found, zero otherwise.
- */
-size_t MifConvArgumentManager::IsBooleanArgument( const MifConvString& argName ) const
-{
- if( IsArgument(argName) )
- {
- try {
- int tblSize = sizeof(MifConvBooleanArguments) / sizeof(MifConvString);
- for( int i = 0; i < tblSize; ++i )
- {
- size_t tmpLen = MifConvBooleanArguments[i].length();
- if( argName.length() > tmpLen )
- {
- if( MifConvUtil::CompareIgnoreCase(MifConvString(argName.begin()+1, argName.begin() + 1 + tmpLen), MifConvBooleanArguments[i]) == 0 )
- {
- return tmpLen;
- }
- }
- }
- }
- catch(...)
- {
- THROW_USAGE_EXCEPTION();
- }
- }
- return 0;
-}
-
-/**
- * This function checks if the given argument is a help argument.
- * Help arguments are listed in a <code>MifConvHelpArguments</code> table
- * and this function checks if the given string matches any of those. Returns the length
- * of the argument name if found, zero otherwise.
- */
-size_t MifConvArgumentManager::IsHelpArgument( const MifConvString& argName ) const
-{
- if( IsArgument(argName) )
- {
- try {
- int tblSize = sizeof(MifConvHelpArguments) / sizeof(MifConvString);
- for( int i = 0; i < tblSize; ++i )
- {
- size_t tmpLen = MifConvHelpArguments[i].length();
-
- // Following check separates -H from -Hheadername.mbg parameter:
- if( argName.length() == tmpLen+1 )
- {
- if( MifConvUtil::CompareIgnoreCase(MifConvString(argName.begin()+1, argName.begin() + 1 + tmpLen), MifConvHelpArguments[i]) == 0 )
- {
- return tmpLen;
- }
- }
- }
- }
- catch(...)
- {
- THROW_USAGE_EXCEPTION();
- }
- }
- return 0;
-}
-
-/**
- * This function checks if the given argument is string type of argument.
- * String type arguments are listed in a <code>MifConvStringArguments</code> table
- * and this function checks if the given string matches any of those. Returns the length
- * of the argument name if found, zero otherwise.
- */
-size_t MifConvArgumentManager::IsStringArgument( const MifConvString& argName ) const
-{
- if( IsArgument(argName) )
- {
- try {
- int tblSize = sizeof(MifConvStringArguments) / sizeof(MifConvString);
- for( int i = 0; i < tblSize; ++i )
- {
- size_t tmpLen = MifConvStringArguments[i].length();
- if( argName.length() > tmpLen )
- {
- if( MifConvUtil::CompareIgnoreCase(MifConvString(argName.begin()+1, argName.begin()+1+tmpLen), MifConvStringArguments[i]) == 0 )
- {
- return tmpLen;
- }
- }
- }
- }
- catch(...)
- {
- THROW_USAGE_EXCEPTION();
- }
- }
- return 0;
-}
-
-/**
- * This function checks if the given argument is string list type of argument.
- * String list type arguments are listed in a <code>MifConvStringListArguments</code> table
- * and this function checks if the given string matches any of those. Returns the length
- * of the argument name if found, zero otherwise.
- */
-size_t MifConvArgumentManager::IsStringListArgument( const MifConvString& argName ) const
-{
- if( IsArgument(argName) )
- {
- try {
- int tblSize = sizeof(MifConvStringListArguments) / sizeof(MifConvString);
- for( int i = 0; i < tblSize; ++i )
- {
- size_t tmpLen = MifConvStringListArguments[i].length();
- if( argName.length() > tmpLen )
- {
- if( MifConvUtil::CompareIgnoreCase(MifConvString(argName.begin()+1, argName.begin()+1+tmpLen), MifConvStringListArguments[i]) == 0 )
- {
- return tmpLen;
- }
- }
- }
- }
- catch(...)
- {
- THROW_USAGE_EXCEPTION();
- }
- }
- return 0;
-}
-
-/**
- *
- */
-bool MifConvArgumentManager::IsDepthArgument( const MifConvString& argName ) const
-{
- if( IsArgument(argName) )
- {
- try {
- int tblSize = sizeof(MifConvDepthArguments) / sizeof(MifConvString);
- for( int i = 0; i < tblSize; ++i )
- {
- size_t tmpLen = MifConvDepthArguments[i].length();
- if( argName.length() > tmpLen )
- {
- MifConvString trimmedArgument(argName.begin()+1, argName.begin() + 1 + tmpLen);
- if( MifConvUtil::CompareIgnoreCase(trimmedArgument, MifConvDepthArguments[i]) == 0 )
- {
- return true;
- }
- }
- }
- }
- catch(...)
- {
- THROW_USAGE_EXCEPTION();
- }
- }
- return false;
-}
-
-/**
- *
- */
-bool MifConvArgumentManager::IsAnimatedFlag( const MifConvString& argName ) const
-{
- return IsArgument( argName ) && argName.length() > MifConvAnimatedIconArg.length() &&
- MifConvUtil::CompareIgnoreCase(MifConvString(argName.begin()+1, argName.end() ), MifConvAnimatedIconArg ) == 0;
-}
-
-/**
- *
- */
-void MifConvArgumentManager::SetTargetFile( const MifConvString& arg )
-{
- iTargetFile = arg;
-}
-
-/**
- *
- */
-const MifConvString& MifConvArgumentManager::TargetFile() const
-{
- return iTargetFile;
-}
-
-/**
- *
- */
-IconDisplayMode MifConvArgumentManager::ConvertToDisplayMode(IconDepth depth) const
-{
- MifConvIconDisplayModeMap::const_iterator i = iDisplayModeMap.find(depth);
- if( i != iDisplayModeMap.end() )
- return i->second;
-
- return DisplayMode_None;
-}
-
-/**
- *
- */
-IconDisplayMode MifConvArgumentManager::ConvertToMaskDisplayMode(IconMaskDepth depth) const
-{
- MifConvMaskIconDisplayModeMap::const_iterator i = iMaskDisplayModeMap.find(depth);
- if( i != iMaskDisplayModeMap.end() )
- return i->second;
-
- return DisplayMode_None;
-}
-
-/**
- *
- */
-IconDepth MifConvArgumentManager::ConvertToDepth( const MifConvString& depthStr ) const
-{
- MifConvIconDepthMap::const_iterator i = iDepthMap.find(depthStr);
- if( i != iDepthMap.end() )
- return i->second;
-
- return IconDepth_Undefined;
-}
-/**
- *
- */
-IconMaskDepth MifConvArgumentManager::ConvertToMaskDepth( const MifConvString depthStr ) const
-{
- MifConvIconMaskDepthMap::const_iterator i = iMaskDepthMap.find(depthStr);
- if( i != iMaskDepthMap.end() )
- return i->second;
-
- return IconMaskDepth_Undefined;
-}
-
-/**
- *
- */
-void MifConvArgumentManager::Init( const MifConvStringList& argList )
-{
- // Build maps for mapping depth, mask and displaymode constants:
- PopulateDepthAndMaskMaps();
- // Allocate search paths where to search source files:
- MifConvString epocRoot(EpocRoot());
-
- // Global icons folder can contain only .svg files:
- iSearchRules.push_back(MifConvSourceSearchRule(MifConvString(epocRoot + S60_ICONS_PATH), vector<MifConvString>(1, SVG_FILE_EXTENSION)));
- // Global bitmaps folder can contain only .bmp files:
- iSearchRules.push_back(MifConvSourceSearchRule(MifConvString(epocRoot + S60_BITMAPS_PATH), vector<MifConvString>(1, BMP_FILE_EXTENSION)));
- // EPOCROOT, if given in environment variables:
- if( epocRoot.length() > 0 )
- {
- iSearchRules.push_back(MifConvSourceSearchRule(epocRoot+EPOC32_PATH, vector<MifConvString>(1, MIFCONV_WILDCARD)));
- }
-
- AddArguments(argList);
-
- // check if the parameter file is given:
- const MifConvString& paramFilename = StringValue(MifConvParameterFileArg);
- if( paramFilename.length() > 0 )
- {
- // Add arguments from the parameter file:
- MifConvStringList paramListFromFile;
- ReadParameterFile( paramFilename, paramListFromFile );
- if( paramListFromFile.size() > 0 )
- {
- AddArguments(paramListFromFile, true);
- }
- }
- // Resolve file type extensions using given flags and investigating the existing files:
- FinalizeArguments();
-}
-
-/**
- * Read string argument value:
- */
-MifConvString MifConvArgumentManager::ReadStringArgument(const MifConvStringList& argList, MifConvStringList::const_iterator& i, unsigned int argNameLen)
-{
- // Take the actual argument value, for example /TmyTempDir --> myTempDir
- MifConvString argValue((*i).begin() + argNameLen, (*i).end());
- if( argValue.length() > 0 )
- {
- // String arguments can have spaces when they are enclosed with " marks (For example directory names).
- if( argValue[0] == '\"' )
- {
- MifConvString quotedArgValue(argValue);
- // Check if the last char is also ":
- if( quotedArgValue[ quotedArgValue.length()-1 ] == '\"' )
- {
- return quotedArgValue;
- }
-
- // See if the next string ends with \" mark, for example "My Folder" is presented with following argument list:
- // argList[0] = "My
- // argList[1] = Folder"
- while(++i != argList.end())
- {
- MifConvString nextString((*i).begin(), (*i).end());
- quotedArgValue += " " + nextString;
- if( nextString[ nextString.length()-1 ] == '\"' )
- {
- return "\"" + quotedArgValue + "\"";
- }
- }
- }
- }
- return argValue;
-}
-
-/**
- * Read string argument value:
- */
-void MifConvArgumentManager::ReadStringListArgument(MifConvStringList::const_iterator& i, unsigned int argNameLen, MifConvStringList& StringValueList)
-{
- // Take the actual argument value, for example /imyInputDir;myTempDir --> myTempDir
- MifConvString argValue((*i).begin() + argNameLen, (*i).end());
- MifConvUtil::SplitString( argValue, STRING_LIST_ARGUMENT_SEPARATOR, StringValueList );
-}
-
-/**
- *
- */
-void MifConvArgumentManager::AddArguments( const MifConvStringList& argList, bool paramsFromFile )
-{
- MifConvStringList::const_iterator i = argList.begin();
-
- if( i == argList.end() )
- {
- THROW_ERROR("No arguments", MifConvString(__FILE__), __LINE__);
- }
-
- // Check if help is needed:
- while( i != argList.end() )
- {
- if( IsHelpArgument(*i) )
- {
- THROW_USAGE_EXCEPTION();
- }
- ++i;
- }
-
- i = argList.begin();
-
- while( i != argList.end() )
- {
- unsigned int argLen = 0;
- if( i == argList.begin() && paramsFromFile == false )
- {
- // First command line argument must be the target file.
- // If the given list (argList) is read from the file, then
- // the first one is not target file.
- if( !IsArgument(*i) )
- {
- MifConvString targetFile(ReadStringArgument( argList, i, 0 ));
- // Make sure that the file extension is .mif:
- targetFile = MifConvUtil::FilenameWithoutExtension(targetFile);
- targetFile += MifConvString(FILE_EXTENSION_SEPARATOR) + MifConvString(MIF_FILE_EXTENSION);
- SetTargetFile(targetFile);
- }
- else
- {
- THROW_ERROR( "Target file must be given as first argument.", MifConvString(__FILE__), __LINE__ );
- }
- ++i;
- if( i == argList.end() )
- {
- THROW_ERROR("Missing arguments", MifConvString(__FILE__), __LINE__);
- }
- }
- else if( IsBooleanArgument(*i) )
- {
- // Insert boolean type argument to the boolean arguments list:
- MifConvString argName((*i).begin()+1, (*i).end());
- MifConvUtil::ToLower(argName); // Lower the cases to make comparison easier later
- std::pair<BooleanArgMap::iterator, bool> res = iBooleanArguments.insert(std::make_pair<MifConvString, MifConvBooleanArgument>(
- argName, MifConvBooleanArgument( argName, true )));
- if( res.second == false )
- {
- // parameter already exists in the map, update the value:
- res.first->second = MifConvBooleanArgument( argName, true );
- }
- ++i;
- }
- else if( (argLen = (unsigned int) IsStringArgument(*i) ) > 0 )
- {
- MifConvString argName((*i).begin()+1, (*i).begin() + 1 + argLen);
- MifConvUtil::ToLower(argName); // Lower the cases to make comparison easier later
- MifConvString argValue(ReadStringArgument( argList, i, argLen+1 ));
- if( argValue.length() == 0 )
- {
- // Do not accept string arguments with zero length (E.g. "/H")
- THROW_ERROR( "Missing argument value for " + *i, MifConvString(__FILE__), __LINE__ );
- }
- // Insert string type argument to the string arguments list:
- std::pair<StringArgMap::iterator, bool> res = iStringArguments.insert(std::make_pair<MifConvString, MifConvStringArgument>(
- argName, MifConvStringArgument( argName, argValue )));
- if( res.second == false )
- {
- // parameter already exists in the map, update the value:
- res.first->second = MifConvStringArgument( argName, argValue );
- }
- ++i;
- }
- else if( (argLen = (unsigned int) IsStringListArgument(*i)) > 0 )
- {
- MifConvString argName((*i).begin()+1, (*i).begin() + 1 + argLen);
- MifConvUtil::ToLower(argName); // Lower the cases to make comparison easier later
- MifConvStringList argValue;
- ReadStringListArgument( i, argLen+1, argValue );
-
- if( argValue.size() == 0 )
- {
- // Do not accept string arguments with zero length (E.g. "/H")
- THROW_ERROR( "Missing argument value for " + *i, MifConvString(__FILE__), __LINE__ );
- }
- // Insert string list type argument to the string arguments list:
- std::pair<StringListArgMap::iterator, bool> res = iStringListArguments.insert(std::make_pair<MifConvString, MifConvStringListArgument>(
- argName, MifConvStringListArgument( argName, argValue )));
- if( res.second == false )
- {
- // parameter already exists in the map, update the value:
- res.first->second = MifConvStringListArgument( argName, argValue );
- }
- ++i;
- }
- else if( IsDepthArgument(*i) )
- {
- // Let's build source file argument...
- // ... first is depth and mask:
- MifConvString depthAndMask(*i);
- MifConvUtil::ToLower(depthAndMask); // Lower the cases to make comparison easier later
- ++i;
- // Check that there is still an argument:
- if( i == argList.end() )
- {
- THROW_ERROR( "Missing source file argument.", MifConvString(__FILE__), __LINE__ );
- }
-
- // Then we check if animated flag is given next:
- bool isAnimated = IsAnimatedFlag(*i);
-
- if( isAnimated )
- {
- // This was an animated flag, so next must be filename:
- ++i;
- // Check that there is still an argument:
- if( i == argList.end() )
- {
- THROW_ERROR( "Missing source file argument.", MifConvString(__FILE__), __LINE__ );
- //THROW_USAGE_EXCEPTION();
- }
- }
-
- // One more check... Check that the next string is not an argument (starting with '-' or '/')
- // It should be a filename for the source icon.
- if( IsArgument(*i) )
- {
- THROW_ERROR( "Missing source file argument.", MifConvString(__FILE__), __LINE__ );
- }
-
- MifConvSourceFile srcFile;
- srcFile.SetDepthAndMask(depthAndMask);
- srcFile.SetDisplayMode(ConvertToDisplayMode(srcFile.Depth()));
- srcFile.SetMaskDisplayMode(ConvertToMaskDisplayMode(srcFile.MaskDepth()));
- srcFile.SetFilename(ReadStringArgument( argList, i, 0 ));
- srcFile.SetAnimated(isAnimated);
- iSourceFiles.push_back(srcFile);
- ++i;
- }
- else if( IsAnimatedFlag(*i) )
- {
- // Icon animated flag found
- // Let's see if the next is depth argument:
- ++i;
- MifConvString depthAndMask;
- if( IsDepthArgument(*i) )
- {
- depthAndMask = *i;
- MifConvUtil::ToLower(depthAndMask);
- ++i;
- }
-
- // One more check... Check that the next string is not an argument (starting with '-' or '/')
- if( IsArgument(*i) )
- {
- THROW_ERROR( "Missing source file argument.", MifConvString(__FILE__), __LINE__ );
- }
-
- MifConvSourceFile srcFile;
- srcFile.SetDepthAndMask(depthAndMask);
- srcFile.SetDisplayMode(ConvertToDisplayMode(srcFile.Depth()));
- srcFile.SetMaskDisplayMode(ConvertToMaskDisplayMode(srcFile.MaskDepth()));
- srcFile.SetFilename(*i);
- srcFile.SetAnimated(true);
- iSourceFiles.push_back(srcFile);
- ++i;
- }
- else
- {
- THROW_ERROR( "Invalid argument: " + *i, MifConvString(__FILE__), __LINE__ );
- }
- }
-}
-
-/**
- * Resolves correct type for the source file. Sets also mask filenames for bmp-files:
- */
-void MifConvArgumentManager::ResolveSourceFileTypes()
-{
- bool extensionFlag = BooleanValue(MifConvUseExtensionArg);
-
- // check if the input directory is given:
- const MifConvStringList& inputDirList = StringListValue(MifConvIconSourceDirectory);
-
- // Add user-defined input directory to search directory list, put MIFCONV_WILDCARD
- // as filetype rule, because user defined directory can contain all supported filetypes:
- int indexcounter = 0;
- for( MifConvStringList::const_iterator iDir = inputDirList.begin(); iDir != inputDirList.end(); ++iDir )
- {
- MifConvSourceSearchRule customRule(*iDir, MifConvStringList(1, MIFCONV_WILDCARD));
- MifConvUtil::ReplaceChar(customRule.SearchPath(), INCORRECT_DIR_SEPARATOR2, DIR_SEPARATOR2);
- MifConvUtil::RemoveDuplicateDirSeparators(customRule.SearchPath());
- iSearchRules.insert(iSearchRules.begin()+indexcounter, customRule);
-
- ++indexcounter;
- }
-
- for( MifConvSourceFileList::iterator src = iSourceFiles.begin(); src != iSourceFiles.end(); ++ src )
- {
- if( extensionFlag )
- {
- MifConvString extension = MifConvUtil::FileExtension(src->Filename());
- if( !FindAndSetPathAndType( *src, extension ) )
- {
- THROW_ERROR_COMMON("File not found " + src->Filename(), MifConvString(__FILE__), __LINE__ );
- }
- }
- else
- {
- // "Use extension" -flag not given, so resolve extensions for source files
- if( !FindAndSetPathAndType( *src, SVGB_BINARY_FILE_EXTENSION ) )
- {
- if( !FindAndSetPathAndType( *src, SVG_FILE_EXTENSION ) )
- {
- if( !FindAndSetPathAndType( *src, BMP_FILE_EXTENSION ) )
- {
- THROW_ERROR_COMMON("File not found " + src->Filename(), MifConvString(__FILE__), __LINE__ );
- }
- }
- }
- }
- }
-}
-
-/**
- *
- */
-void MifConvArgumentManager::GetMifEnv()
-{
- // Read EPOCROOT environment variable
- char* tmpPtr = 0;
- tmpPtr = getenv(EPOCROOT_ENV.c_str());
- if( tmpPtr )
- {
- iEpocRoot = MifConvString(tmpPtr);
- MifConvUtil::ReplaceChar(iEpocRoot, INCORRECT_DIR_SEPARATOR2, DIR_SEPARATOR2);
- // Make sure that the last char is directory separator
- if( iEpocRoot.length() > 0 && iEpocRoot.at( iEpocRoot.length()-1) != DIR_SEPARATOR2 )
- {
- iEpocRoot += DIR_SEPARATOR;
- }
- }
-}
-
-/**
- *
- */
-const MifConvString& MifConvArgumentManager::EpocRoot() const
-{
- return iEpocRoot;
-}
-
-/**
- *
- */
-bool MifConvArgumentManager::FindAndSetPathAndType( MifConvSourceFile& srcFile, const MifConvString& extension )
-{
- // Search the filename first "as is":
- MifConvString tmp( MifConvUtil::FilenameWithoutExtension( srcFile.Filename() ) + MifConvString(FILE_EXTENSION_SEPARATOR) + extension );
- if( MifConvUtil::FileExists(tmp) )
- {
- srcFile.SetFilename(tmp);
- MifConvUtil::FindAndSetBitmapMaskFile(srcFile);
- return true;
- }
-
- // If the absolute path was given, return false, because the file was not found with given path and filename.
- // Otherwise continue searching.
- if( //(srcFile.Filename().length() > 0 && srcFile.Filename().at(0) == DIR_SEPARATOR2) ||
- (srcFile.Filename().length() > 1 && srcFile.Filename().at(1) == ':') )
- {
- return false;
- }
-
- // Search from the pre-defined locations:
- for( SearchRules::iterator i = iSearchRules.begin(); i != iSearchRules.end(); ++i )
- {
- bool validPath = false;
- const MifConvStringList& allowedTypes = i->AllowedFileTypes();
-
- // See if the file with given extension is allowed to locate in search path.
- // For example, epoc32\s60\icons folder can contain only .svg files and epoc32\s60\bitmaps
- // can contain only .bmp files:
- for( MifConvStringList::const_iterator typeIter = allowedTypes.begin(); typeIter != allowedTypes.end(); ++typeIter )
- {
- if( *typeIter == MIFCONV_WILDCARD || *typeIter == extension )
- {
- validPath = true;
- break;
- }
- }
-
- if( validPath )
- {
- MifConvString searchPath(i->SearchPath());
-
- // Make sure that the last char is directory separator
- if( searchPath.length() > 0 && searchPath.at( searchPath.length()-1) != DIR_SEPARATOR2 )
- {
- searchPath += DIR_SEPARATOR;
- }
-
- searchPath += MifConvUtil::FilenameWithoutExtension( srcFile.Filename() ) + MifConvString(FILE_EXTENSION_SEPARATOR) + extension;
-
- MifConvUtil::RemoveDuplicateDirSeparators(searchPath);
-
- if( MifConvUtil::FileExists( searchPath ) )
- {
- srcFile.SetFilename(searchPath);
- MifConvUtil::FindAndSetBitmapMaskFile(srcFile);
- return true;
- }
- }
- }
- return false;
-}
-
-/**
- *
- */
-void MifConvArgumentManager::ProcessArgumentPaths()
-{
- // Fix directory separators first:
- for( StringArgMap::iterator i = iStringArguments.begin(); i != iStringArguments.end(); ++i )
- {
- MifConvString tmp = i->second.Value();
- MifConvUtil::ReplaceChar(tmp, INCORRECT_DIR_SEPARATOR2, DIR_SEPARATOR2);
- MifConvUtil::RemoveDuplicateDirSeparators(tmp);
- i->second.SetValue(tmp);
- }
-
- // Fix directory separators in source filenames also:
- for( MifConvSourceFileList::iterator j = iSourceFiles.begin(); j != iSourceFiles.end(); ++j )
- {
- MifConvString tmp = j->Filename();
- MifConvUtil::ReplaceChar(tmp, INCORRECT_DIR_SEPARATOR2, DIR_SEPARATOR2);
- MifConvUtil::RemoveDuplicateDirSeparators(tmp);
- j->SetFilename(tmp);
- }
-
- // Fix directory separators in search rule directories also:
- for( SearchRules::iterator k = iSearchRules.begin(); k != iSearchRules.end(); ++k )
- {
- MifConvString& tmp = k->SearchPath();
- MifConvUtil::ReplaceChar(tmp, INCORRECT_DIR_SEPARATOR2, DIR_SEPARATOR2);
- MifConvUtil::RemoveDuplicateDirSeparators(tmp);
- }
-
- // Fix target file also:
- MifConvUtil::ReplaceChar(iTargetFile, INCORRECT_DIR_SEPARATOR2, DIR_SEPARATOR2);
- MifConvUtil::RemoveDuplicateDirSeparators(iTargetFile);
-}
-
-/**
- *
- */
-void MifConvArgumentManager::FinalizeArguments()
-{
- ProcessArgumentPaths();
- ResolveSourceFileTypes();
-}
-
-/**
- *
- */
-void MifConvArgumentManager::SetUsageString( MifConvString& usageStr ) const
-{
- usageStr = "";
-
- usageStr += "Copyright (c) " + MifConvYears + " Nokia Corporation and/or its subsidiary(-ies). All rights reserved.\n";
- usageStr += "\n";
- usageStr += "Usage: mifconv <MIFFILE> [-F<file>] <options> <sources>]\n";
- usageStr += "\n";
- usageStr += "Where:\n";
- usageStr += " MIFFILE Specifies the target MIF file to be created\n";
- usageStr += " -F<file> Specifies a parameter file, which can contain any of the options\n";
- usageStr += " and sources separated by spaces or newlines\n";
- usageStr += "\n";
- usageStr += "Options:\n";
- usageStr += " -H<file> Specifies a name of the MIF header file (default extension MBG)\n";
- usageStr += " -I<dir;dir;...> Specifies a set of custom source directories where source files\n";
- usageStr += " will be searched. As a fallback, global source directories are\n";
- usageStr += " used\n";
- usageStr += " -E Specifies that source icons are only loaded with given file\n";
- usageStr += " extensions. By default, Mifconv prefers source icons with\n";
- usageStr += " extension .SVG over .BMP, regardless of which is given as\n";
- usageStr += " a parameter\n";
- usageStr += " -X Disables SVG compression. If this flag is set, SVG icons are\n";
- usageStr += " added to MIF file without compressing them first\n";
- usageStr += " -P<file> Specifies a path to custom palette file for bitmap files\n";
- usageStr += " -T<dir> Specifies a path where temporary files are created\n";
- usageStr += " -B<file> Specifies a path for non-default BMConv utility\n";
- usageStr += " -S<file> Specifies a path for non-default SVGTBinenCode utility\n";
- usageStr += " -V<string> Specifies a non-platform default format version of SVGT binary\n";
- usageStr += " conversion. It can be any of the following value:\n";
- usageStr += " 1 BGR / float encoding\n";
- usageStr += " 2 BGR / fixed point encoding\n";
- usageStr += " 3 RGB / fixed point encoding\n";
- usageStr += " 4 RGB / float encoding\n";
- usageStr += "Sources:\n";
- usageStr += " [-A] <DEPTH[,MASK]> <FILE> [ [-A] <DEPTH[,MASK]> <FILE> ... ]\n";
- usageStr += " [-A] Specifies animated flag for the icon\n";
- usageStr += " [DEPTH] Specifies icon depth, it can be any of these values\n";
- usageStr += " -1,-2,-4,-8,-c4,-c8,-c12,-c16,-c24,-c32\n";
- usageStr += " [MASK] Specifies icon mask depth, it can be any of these values\n";
- usageStr += " 1,8\n";
- usageStr += " [FILE] Specifies path to the input file, supported file extensions are\n";
- usageStr += " SVG, SVGB, BMP\n";
- usageStr += "\n";
- usageStr += "Other info:\n";
-#ifdef WIN32
- usageStr += " * '-' or '/' can be used as parameter switch prefix\n";
-#endif
- usageStr += " * Value of icon mask and depth is meaningful only for bitmap files, but the mask\n";
- usageStr += " value defines if mask entry will be available or not in the header file\n";
- usageStr += " * If mask parameter is defined for a BMP file, Mifconv automatically pics\n";
- usageStr += " a file ending _mask_soft for value 8 and _mask for value 1 of mask\n";
- usageStr += "\n";
- usageStr += "Examples:\n";
- usageStr += " mifconv mybuttons.mif -Hmybuttons.mbg -c8,8 button1 -c8,8 button2\n";
-}
-
-/**
- *
- */
-const MifConvString& MifConvArgumentManager::StringValue( const MifConvString& argName ) const
-{
- StringArgMap::const_iterator i = iStringArguments.find(argName);
- if( i != iStringArguments.end() )
- {
- return i->second.Value();
- }
-
- return iDummyString;
-}
-
-/**
- *
- */
-const MifConvStringList& MifConvArgumentManager::StringListValue( const MifConvString& argName ) const
-{
- StringListArgMap::const_iterator i = iStringListArguments.find(argName);
- if( i != iStringListArguments.end() )
- {
- return i->second.Value();
- }
-
- return iDummyStringList;
-}
-
-/**
- *
- */
-bool MifConvArgumentManager::BooleanValue( const MifConvString& argName ) const
-{
- BooleanArgMap::const_iterator i = iBooleanArguments.find(argName);
- if( i != iBooleanArguments.end() )
- {
- return i->second.Value();
- }
-
- return false;
-}
-
-/**
- *
- */
-const MifConvSourceFileList& MifConvArgumentManager::SourceFiles() const
-{
- return iSourceFiles;
-}
-
-/**
- *
- */
-bool MifConvArgumentManager::IsArgument( const MifConvString& str ) const
-{
- try {
- return str.at(0) == OPTION_PREFIX1_CHAR || str.at(0) == OPTION_PREFIX2_CHAR;
- }
- catch(...)
- {
- THROW_ERROR("Zero or corrupted string in MifConvArgumentManager::IsArgument()\n", MifConvString(__FILE__), __LINE__);
- }
- return false;
-}
-
-/**
- *
- */
-void MifConvArgumentManager::PopulateDepthAndMaskMaps()
-{
- // Insert value-string pairs for the icon depths:
- iDepthMap.insert(std::make_pair(MifConvDepth_1, IconDepth_1));
- iDepthMap.insert(std::make_pair(MifConvDepth_2, IconDepth_2));
- iDepthMap.insert(std::make_pair(MifConvDepth_4, IconDepth_4));
- iDepthMap.insert(std::make_pair(MifConvDepth_8, IconDepth_8));
- iDepthMap.insert(std::make_pair(MifConvDepth_c4, IconDepth_c4));
- iDepthMap.insert(std::make_pair(MifConvDepth_c8, IconDepth_c8));
- iDepthMap.insert(std::make_pair(MifConvDepth_c12, IconDepth_c12));
- iDepthMap.insert(std::make_pair(MifConvDepth_c16, IconDepth_c16));
- iDepthMap.insert(std::make_pair(MifConvDepth_c24, IconDepth_c24));
- iDepthMap.insert(std::make_pair(MifConvDepth_c32, IconDepth_c32));
-
- // Insert value-string pairs for the icon masks:
- iMaskDepthMap.insert(std::make_pair(MifConvMaskDepth_1, IconMaskDepth_1));
- iMaskDepthMap.insert(std::make_pair(MifConvMaskDepth_8, IconMaskDepth_8));
-
- // Insert value-pairs for display modes:
- iDisplayModeMap.insert(std::make_pair(IconDepth_1, DisplayMode_Gray2));
- iDisplayModeMap.insert(std::make_pair(IconDepth_2, DisplayMode_Gray4));
- iDisplayModeMap.insert(std::make_pair(IconDepth_4, DisplayMode_Gray16));
- iDisplayModeMap.insert(std::make_pair(IconDepth_8, DisplayMode_Gray256));
- iDisplayModeMap.insert(std::make_pair(IconDepth_c4, DisplayMode_Color16));
- iDisplayModeMap.insert(std::make_pair(IconDepth_c8, DisplayMode_Color256));
- iDisplayModeMap.insert(std::make_pair(IconDepth_c12, DisplayMode_Color4K));
- iDisplayModeMap.insert(std::make_pair(IconDepth_c16, DisplayMode_Color64K));
- iDisplayModeMap.insert(std::make_pair(IconDepth_c24, DisplayMode_Color16M));
- iDisplayModeMap.insert(std::make_pair(IconDepth_c32, DisplayMode_Color16MU));
-
- iMaskDisplayModeMap.insert(std::make_pair(IconMaskDepth_1, DisplayMode_Gray2));
- iMaskDisplayModeMap.insert(std::make_pair(IconMaskDepth_8, DisplayMode_Gray256));
-}
-
-/**
- *
- */
-void MifConvArgumentManager::ReadParameterFile(const MifConvString& paramFilename, MifConvStringList& paramList)
-{
- // Check if the file exists:
- if( MifConvUtil::FileExists(paramFilename) == false )
- {
- THROW_ERROR_COMMON("Unable to open file for reading! " + paramFilename, MifConvString(__FILE__), __LINE__ );
- }
-
- MifConvFileData paramFileData = MifConvUtil::FileContents(paramFilename);
-
- MifConvString tmpString;
- for(size_t i = 0; i < paramFileData.second; ++i )
- {
- if( MifConvUtil::IsWhiteSpace(paramFileData.first[i]) == false )
- {
- tmpString += paramFileData.first[i];
- }
- else if( tmpString.length() > 0 )
- {
- paramList.push_back( tmpString );
- tmpString = MifConvString();
- }
- }
-
- if( tmpString.length() > 0 )
- {
- paramList.push_back( tmpString );
- tmpString = MifConvString();
- }
- delete[] paramFileData.first;
-}
-
-/**
- * Helper class for source search rules
- */
-
-MifConvSourceSearchRule::MifConvSourceSearchRule(const MifConvString& path, const MifConvStringList& types)
-:
-iSearchPath(path),
-iAllowedFileTypes(types)
-{}
-
-MifConvSourceSearchRule::~MifConvSourceSearchRule()
-{}
-
-const MifConvString& MifConvSourceSearchRule::SearchPath() const
-{
- return iSearchPath;
-}
-
-MifConvString& MifConvSourceSearchRule::SearchPath()
-{
- return iSearchPath;
-}
-
-const MifConvStringList& MifConvSourceSearchRule::AllowedFileTypes() const
-{
- return iAllowedFileTypes;
-}
--- a/dependencies/mifconv/src/mifconv_bitmapconverter.cpp Thu Apr 01 12:25:43 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,277 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Mifconv bitmap converters class.
-*
-*/
-
-
-#include "mifconv.h"
-#include "mifconv_bitmapconverter.h"
-#include "mifconv_util.h"
-#include "mifconv_exception.h"
-#include "mifconv_argumentmanager.h"
-#include <stdio.h>
-
-const MifConvString BMCONV_DEFAULT_PATH(EPOC_TOOLS_PATH);
-
-/**
- *
- */
-MifConvBitmapConverter::MifConvBitmapConverter()
-{
- MifConvArgumentManager* argMgr = MifConvArgumentManager::Instance();
- // Output file:
- iTargetFilename = MifConvUtil::FilenameWithoutExtension(argMgr->TargetFile()) + "." + MifConvString(MBM_FILE_EXTENSION);
-}
-
-/**
- *
- */
-MifConvBitmapConverter::~MifConvBitmapConverter()
-{
-}
-
-/**
- *
- */
-void MifConvBitmapConverter::Init()
-{
- CleanupTargetFiles();
-}
-
-/**
- *
- */
-void MifConvBitmapConverter::CleanupTargetFiles()
-{
- if( MifConvUtil::FileExists(iTargetFilename) )
- {
- // Try to remove file MIFCONV_MAX_REMOVE_TRIES times, no exception in case of failure:
- MifConvUtil::RemoveFile(iTargetFilename, MIFCONV_MAX_REMOVE_TRIES, true);
- }
-}
-
-/**
- *
- */
-void MifConvBitmapConverter::AppendFile( const MifConvSourceFile& sourcefile )
-{
- if( MifConvUtil::FileExtension( sourcefile.Filename() ) == BMP_FILE_EXTENSION )
- {
- iSourceFiles.push_back( sourcefile );
- }
-}
-
-/**
- *
- */
-void MifConvBitmapConverter::Convert()
-{
- if( iSourceFiles.size() > 0 )
- {
- ConvertToMbm();
- }
-}
-
-/**
- *
- */
-void MifConvBitmapConverter::Cleanup(bool err)
-{
- CleanupTempFiles();
- if( err )
- {
- CleanupTargetFiles();
- }
-}
-
-/**
- *
- */
-void MifConvBitmapConverter::ConvertToMbm()
-{
- RunBmconv();
-}
-
-/**
- *
- */
-void MifConvBitmapConverter::InitTempFile()
-{
- MifConvArgumentManager* argMgr = MifConvArgumentManager::Instance();
- // Construct temp file name
- iTempDir = MifConvUtil::DefaultTempDirectory();
- const MifConvString& tempDirArg = argMgr->StringValue(MifConvTempPathArg);
- if( tempDirArg.length() > 0 )
- {
- iTempDir = tempDirArg;
- }
-
- if( iTempDir.length() > 0 && iTempDir.at(iTempDir.length()-1) != DIR_SEPARATOR2 )
- {
- iTempDir.append(DIR_SEPARATOR);
- }
-
- // Generate new temp-filename:
- iTempDir.append(MifConvUtil::TemporaryFilename());
-
- // append tmp at as postfix
- // this is needed because the generated name can contain a single period '.'
- // character as the last character which is eaten away when the directory created.
- iTempDir.append(MifConvString("tmp"));
-
- MifConvUtil::EnsurePathExists(iTempDir);
-
- iTempDir.append(DIR_SEPARATOR);
-
- iTempFilename = iTempDir + MifConvUtil::FilenameWithoutExtension(MifConvUtil::FilenameWithoutPath(argMgr->TargetFile()));
- iTempFilename += BMCONV_TEMP_FILE_POSTFIX;
-
- // Create temp file
- fstream tempFile(iTempFilename.c_str(), ios::out|ios::binary|ios::trunc);
- if (!tempFile.is_open())
- {
- throw MifConvException(MifConvString("Unable to create tmp file! ") + iTempFilename);
- }
-
- try {
- // quiet mode
- tempFile << BMCONV_OPTION_PREFIX << BMCONV_QUIET_PARAMETER << " ";
- // Palette argument
- const MifConvString& paletteArg = argMgr->StringValue(MifConvPaletteFileArg);
- if( paletteArg.length() > 0 )
- {
- tempFile << BMCONV_OPTION_PREFIX << BMCONV_PALETTE_PARAMETER;
- tempFile << MifConvString(paletteArg + " ");
- }
-
- tempFile << iTargetFilename << " ";
- // Add filenames to the temp file
- for( MifConvSourceFileList::iterator i = iSourceFiles.begin(); i != iSourceFiles.end(); ++i )
- {
- AppendBmpToTempFile(tempFile, *i);
- }
- }
- catch(...) {
- tempFile.close();
- throw;
- }
-
- tempFile.close();
-}
-
-/**
- *
- */
-void MifConvBitmapConverter::RunBmconv()
-{
- MifConvArgumentManager* argMgr = MifConvArgumentManager::Instance();
- // Create and initialize the temp file:
- InitTempFile();
-
- // Build bmconv command
- MifConvString bmconvCommand("\""); // Open " mark
-
- const MifConvString& bmconvPath = argMgr->StringValue(MifConvBmconvPathArg);
- const MifConvString& defaultBmconvPath = GetDefaultBmConvPath();
- if( bmconvPath.length() > 0 )
- {
- bmconvCommand += bmconvPath; // If the path is given, use it.
- }
- else
- {
- bmconvCommand += defaultBmconvPath; // Use default path
- }
-
- // Ensure that the last char of the path is dir-separator:
- if( bmconvCommand.length() > 1 && bmconvCommand.at(bmconvCommand.length()-1) != DIR_SEPARATOR2 )
- bmconvCommand += DIR_SEPARATOR;
-
- // Then add bmconv executable call and close the " mark
- bmconvCommand += BMCONV_EXECUTABLE_NAME + MifConvString("\" ");
- bmconvCommand += "\"" + iTempFilename + "\"";
-
- MifConvUtil::EnsurePathExists(iTargetFilename, true);
-
- cout << "Writing mbm: " << iTargetFilename << endl;
- int err = 0;
-
-#ifdef __linux__
- if ((err = system (MifConvString(bmconvCommand).c_str())) != 0) // Returns 0 if success
-#else
- if ((err = system (MifConvString("\""+bmconvCommand+"\"").c_str())) != 0) // Returns 0 if success
-#endif
- {
- THROW_ERROR_COMMON("Executing BMCONV failed", MifConvString(__FILE__), __LINE__);
- }
-}
-
-/**
- *
- */
-void MifConvBitmapConverter::CleanupTempFiles()
-{
- if( iTempFilename.length() > 0 && remove( iTempFilename.c_str() ) != 0 )
- {
- perror( "Error deleting temporary file (bitmap conversion)" );
- }
-
- if( iTempDir.length() > 0 && MifConvUtil::RemoveDirectory( iTempDir ) != 0 )
- {
- perror( "Error deleting temporary directory (bitmap conversion)" );
- }
-}
-
-/**
- *
- */
-const MifConvString& MifConvBitmapConverter::GetDefaultBmConvPath()
-{
- if( iDefaultBmConvPath.length() == 0 )
- {
- // Check if the EPOCROOT is given
- MifConvString epocRoot(MifConvArgumentManager::Instance()->EpocRoot());
- if( epocRoot.length() > 0 )
- {
- // EPOCROOT environment variable defined.
- iDefaultBmConvPath = epocRoot + BMCONV_DEFAULT_PATH;
- }
- }
-
- return iDefaultBmConvPath;
-}
-
-/**
- *
- */
-void MifConvBitmapConverter::AppendBmpToTempFile(fstream& aStream, const MifConvSourceFile& bmpFile)
- {
- cout << "Loading file: " << bmpFile.Filename() << endl;
-
- aStream << BMCONV_OPTION_PREFIX;
- aStream << bmpFile.DepthString();
- aStream << bmpFile.Filename();
- aStream << " ";
-
- // Prepare also for the case that mask is not used at all.
- const MifConvString& maskName = bmpFile.BmpMaskFilename();
- if (maskName.length() > 0 )
- {
- cout << "Loading file: " << maskName << endl;
- aStream << BMCONV_OPTION_PREFIX;
- aStream << bmpFile.MaskDepthString();
- aStream << maskName;
- }
- aStream << " ";
- }
--- a/dependencies/mifconv/src/mifconv_bitmapheaderconverter.cpp Thu Apr 01 12:25:43 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Mifconv bitmap header converter class.
-*
-*/
-
-
-#include "mifconv.h"
-#include "mifconv_bitmapheaderconverter.h"
-#include "mifconv_argumentmanager.h"
-#include "mifconv_util.h"
-#include "mifconv_exception.h"
-
-const int MIF_ID_FIRST = 16384;
-
-/**
- *
- */
-MifConvBitmapHeaderConverter::MifConvBitmapHeaderConverter()
-:
-iCurrentSourceId(MIF_ID_FIRST)
-{
- MifConvArgumentManager* argMgr = MifConvArgumentManager::Instance();
- iHeaderFilename = argMgr->StringValue(MifConvHeaderArg);
-}
-
-/**
- *
- */
-MifConvBitmapHeaderConverter::~MifConvBitmapHeaderConverter()
-{
-}
-
-/**
- *
- */
-void MifConvBitmapHeaderConverter::Init()
-{
- CleanupTargetFiles();
-}
-
-/**
- *
- */
-void MifConvBitmapHeaderConverter::CleanupTargetFiles()
-{
- if( MifConvUtil::FileExists(iHeaderFilename) )
- {
- // Try to remove file MIFCONV_MAX_REMOVE_TRIES times, no exception in case of failure:
- MifConvUtil::RemoveFile(iHeaderFilename, MIFCONV_MAX_REMOVE_TRIES, true);
- }
-}
-
-/**
- *
- */
-void MifConvBitmapHeaderConverter::AppendFile( const MifConvSourceFile& sourcefile )
-{
- iSourceFiles.push_back( sourcefile );
-}
-
-/**
- *
- */
-void MifConvBitmapHeaderConverter::Convert()
-{
- // Check if the headerfile name is given. Return if not:
- if( iHeaderFilename.length() > 0 )
- {
- cout << "Writing mbg: " << iHeaderFilename << endl;
- MifConvUtil::EnsurePathExists(iHeaderFilename, true);
- }
- else
- {
- return;
- }
-
- // Create / open the header file:
- fstream headerFile(iHeaderFilename.c_str(), ios::out|ios::trunc);
-
- // If file creation/opening was not successful, give warning and return:
- if( !headerFile.is_open() )
- {
- MifConvString debugStr("WARNING: Headerfile " + iHeaderFilename + " cannot be opened for writing.");
- cout << debugStr << endl;
- MifConvUtil::DebugLog(debugStr);
- return;
- }
- iDestFile = &headerFile; // Save the pointer to the file stream
- (*iDestFile) << endl;
- // Write the beginning of the header file:
- WriteStart();
-
- // Add source file items to enumerator:
- for( MifConvSourceFileList::iterator i = iSourceFiles.begin(); i != iSourceFiles.end(); ++i )
- {
- WriteItemToHeader(*i);
- }
-
- // Write the end of the file...
- WriteEnd();
-
- // ...and close the file:
- iDestFile->close();
-}
-
-/**
- *
- */
-void MifConvBitmapHeaderConverter::WriteStart()
-{
- (*iDestFile) << "/* This file has been generated, DO NOT MODIFY. */" << endl;
- (*iDestFile) << "enum TMif" << MifConvUtil::UnadornedFilename(iHeaderFilename) << "\n\t{" << endl;
-}
-
-/**
- *
- */
-void MifConvBitmapHeaderConverter::WriteItemToHeader( const MifConvSourceFile& source )
-{
- MifConvString unadornedHeaderFile(MifConvUtil::UnadornedFilename(iHeaderFilename));
-
- (*iDestFile) << "\tEMbm" << unadornedHeaderFile << MifConvUtil::UnadornedFilename(source.Filename()) << " = " << iCurrentSourceId++ << "," << endl;
-
- // Write mask also, if any:
- if( source.MaskDepth() != IconMaskDepth_Undefined )
- {
- (*iDestFile) << "\tEMbm" << unadornedHeaderFile << MifConvUtil::UnadornedFilename(source.Filename()) << "_mask = " << iCurrentSourceId++ << "," << endl;
- }
- else
- {
- // Skip mask ID if mask not present so that adding a mask later does not change IDs.
- iCurrentSourceId++;
- }
-}
-
-/**
- *
- */
-void MifConvBitmapHeaderConverter::WriteEnd()
-{
- (*iDestFile) << "\tEMbm" << MifConvUtil::UnadornedFilename(iHeaderFilename) << "LastElement" << endl;
- (*iDestFile) << "\t};" << endl;
-}
-
-/**
- *
- */
-void MifConvBitmapHeaderConverter::Cleanup(bool err)
-{
- if( err )
- {
- CleanupTargetFiles();
- }
-}
--- a/dependencies/mifconv/src/mifconv_convertermanager.cpp Thu Apr 01 12:25:43 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,190 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Mifconv converter manager class.
-*
-*/
-
-
-#include "mifconv.h"
-#include "mifconv_convertermanager.h"
-#include "mifconv_argumentmanager.h"
-#include "mifconv_util.h"
-#include "mifconv_bitmapconverter.h"
-#include "mifconv_bitmapheaderconverter.h"
-#include "mifconv_iconbinaryconverter.h"
-#include "mifconv_mifconverter.h"
-
-// Static singleton initialization
-MifConvConverterManager* MifConvConverterManager::iInstance = 0;
-
-/**
- * Returns pointer to the singleton object
- */
-MifConvConverterManager* MifConvConverterManager::Instance()
-{
- if( iInstance == 0 )
- {
- iInstance = new MifConvConverterManager();
- }
- return iInstance;
-}
-
-/**
- * Free the allocated memory
- */
-void MifConvConverterManager::Reset()
-{
- delete iInstance;
- iInstance = 0;
-}
-
-/**
- * Constructor
- */
-MifConvConverterManager::MifConvConverterManager()
-{
-
-}
-
-/**
- *
- */
-void MifConvConverterManager::Init()
-{
- // Add bmp --> mbm converter:
- MifConvBitmapConverter* bitmapConverter = new MifConvBitmapConverter();
- iAllConverters.push_back(bitmapConverter);
-
- // Add headerfile (mbg) converter:
- MifConvBitmapHeaderConverter* headerConverter = new MifConvBitmapHeaderConverter();
- iAllConverters.push_back(headerConverter);
-
- // Add svg --> svgb converter:
- MifConvIconBinaryConverter* svgConverter = new MifConvIconBinaryConverter();
- iAllConverters.push_back(svgConverter);
-
- // Add mif converter:
- MifConvMifConverter* mifConverter = new MifConvMifConverter();
- iAllConverters.push_back(mifConverter);
-
- // Add file converters for .BMP files:
- MifConvFileConverterList bmpConverters;
- bmpConverters.push_back(bitmapConverter);
- bmpConverters.push_back(headerConverter);
- bmpConverters.push_back(mifConverter);
- iFileConverters.insert(std::make_pair(MifConvString(BMP_FILE_EXTENSION), bmpConverters));
-
- // Add file converters for .SVG files:
- MifConvFileConverterList svgConverters;
- svgConverters.push_back(headerConverter);
- svgConverters.push_back(svgConverter);
- if( MifConvArgumentManager::Instance()->BooleanValue(MifConvDisableSvgCompression) )
- {
- // SVG files will be added to mif-file without compression (i.e. don't use svgtbinencode for them).
- svgConverters.push_back(mifConverter);
- }
- iFileConverters.insert(std::make_pair(MifConvString(SVG_FILE_EXTENSION), svgConverters));
-
- // Add file converters for .SVGB files:
- MifConvFileConverterList svgbConverters;
- svgbConverters.push_back(headerConverter);
- if( !MifConvArgumentManager::Instance()->BooleanValue(MifConvDisableSvgCompression) )
- {
- // SVG files will be compressed first.
- svgbConverters.push_back(mifConverter);
- }
- iFileConverters.insert(std::make_pair(MifConvString(SVGB_BINARY_FILE_EXTENSION), svgbConverters));
-
- // Initialize converters
- for( MifConvFileConverterList::iterator i = iAllConverters.begin(); i != iAllConverters.end(); ++i )
- {
- (*i)->Init();
- }
-}
-
-/**
- * Destructor
- */
-MifConvConverterManager::~MifConvConverterManager()
-{
- for( MifConvFileConverterList::iterator conv = iAllConverters.begin(); conv != iAllConverters.end(); ++conv )
- {
- delete *conv;
- }
-}
-
-/**
- * Adds source files to converters and converts them
- */
-void MifConvConverterManager::ProcessIcons()
-{
- MifConvArgumentManager* argMgr = MifConvArgumentManager::Instance();
- // Loop all the source files and append them to correct converters:
- const MifConvSourceFileList& sourcefiles = argMgr->SourceFiles();
- for( MifConvSourceFileList::const_iterator i = sourcefiles.begin(); i != sourcefiles.end(); ++i )
- {
- MifConvFileConverterList& converters = GetConverters(*i);
- for( MifConvFileConverterList::iterator converter = converters.begin(); converter != converters.end(); ++converter )
- {
- (*converter)->AppendFile(*i);
- }
- }
-
- // Run all the converters:
- for( MifConvFileConverterList::iterator conv = iAllConverters.begin(); conv != iAllConverters.end(); ++conv )
- {
- (*conv)->Convert();
- }
-}
-
-/**
- *
- */
-void MifConvConverterManager::Cleanup(bool error)
-{
- for( MifConvFileConverterList::iterator conv = iAllConverters.begin(); conv != iAllConverters.end(); ++conv )
- {
- try {
- (*conv)->Cleanup(error);
- }
- catch(...) {
- // Exception should not be thrown if cleaning after error situation
- if( !error )
- throw;
- }
- }
-}
-
-/**
- *
- */
-MifConvFileConverterList& MifConvConverterManager::GetConverters(const MifConvSourceFile& source)
-{
- return GetConverters(source.Filename());
-}
-
-/**
- *
- */
-MifConvFileConverterList& MifConvConverterManager::GetConverters(const MifConvString& filename)
-{
- MifConvString extension(MifConvUtil::FileExtension(filename));
- FileConverterMap::iterator i = iFileConverters.find(extension);
- if( i != iFileConverters.end() )
- {
- return i->second;
- }
-
- return iDummyConverterList;
-}
--- a/dependencies/mifconv/src/mifconv_exception.cpp Thu Apr 01 12:25:43 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Mifconv exception class.
-*
-*/
-
-
-#include "mifconv.h"
-#include "mifconv_exception.h"
-
-MifConvException::MifConvException()
-:
-iLine(0)
-{}
-
-MifConvException::MifConvException(const MifConvString& str, const MifConvString& file, int line)
-:
-iString(str),
-iFile(file),
-iLine(line)
-{}
-
-MifConvException::MifConvException(const MifConvException& rhs)
-:
-iString(rhs.iString),
-iFile(rhs.iFile),
-iLine(rhs.iLine)
-{}
-
-MifConvException::~MifConvException()
-{}
-
-void MifConvException::SetString(const MifConvString& str)
-{
- iString = str;
-}
-const MifConvString& MifConvException::String() const
-{
- return iString;
-}
-
-MifConvString& MifConvException::String()
-{
- return iString;
-}
-
-void MifConvException::SetFile(const MifConvString& file)
-{
- iFile = file;
-}
-
-const MifConvString& MifConvException::File() const
-{
- return iFile;
-}
-
-void MifConvException::SetLine(int line)
-{
- iLine = line;
-}
-
-int MifConvException::Line() const
-{
- return iLine;
-}
--- a/dependencies/mifconv/src/mifconv_iconbinaryconverter.cpp Thu Apr 01 12:25:43 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,302 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Mifconv icon binary converters class.
-*
-*/
-
-
-#include "mifconv.h"
-#include "mifconv_iconbinaryconverter.h"
-#include "mifconv_util.h"
-#include "mifconv_exception.h"
-#include "mifconv_convertermanager.h"
-#include "mifconv_argumentmanager.h"
-#include <errno.h>
-#include <algorithm>
-
-const MifConvString SVGTBINENCODE_DEFAULT_PATH(EPOC_TOOLS_PATH);
-
-/**
- *
- */
-MifConvIconBinaryConverter::MifConvIconBinaryConverter()
-{
-}
-
-/**
- *
- */
-MifConvIconBinaryConverter::~MifConvIconBinaryConverter()
-{
-}
-
-/**
- *
- */
-void MifConvIconBinaryConverter::Init()
-{
-}
-
-/**
- *
- */
-void MifConvIconBinaryConverter::CleanupTargetFiles()
-{
-}
-
-/**
- *
- */
-void MifConvIconBinaryConverter::AppendFile( const MifConvSourceFile& sourcefile )
-{
- if( MifConvUtil::FileExtension( sourcefile.Filename() ) == SVG_FILE_EXTENSION &&
- MifConvArgumentManager::Instance()->BooleanValue(MifConvDisableSvgCompression) == false)
- {
- iSourceFiles.push_back( sourcefile );
-
- // Create temp directory:
- if( iTempDir.length() == 0 )
- {
- InitTempFile();
- }
-
- // External SVGTBINENCODE converts .svg files to .svgb files. However, .svgb files
- // shall be given to mif-converter to get them in mif-file:
-
- // Create new string for .svgb file name:
- MifConvString tmpFile(sourcefile.Filename());
- ConvertToBinaryFilename(tmpFile);
- MifConvString tempBinFilename(iTempDir + MifConvUtil::FilenameWithoutExtension(tmpFile) + "." + SVGB_BINARY_FILE_EXTENSION);
-
- // Get converters for .svgb files:
- MifConvFileConverterList& additionalConverters = MifConvConverterManager::Instance()->GetConverters(tempBinFilename);
-
- // Converters for .svg files:
- MifConvFileConverterList& thisFilesConverters = MifConvConverterManager::Instance()->GetConverters( sourcefile.Filename() );
-
- // Save temporary binary filename for later deleting:
- iTempFilenames.push_back(tempBinFilename);
-
- // Add temporary file to converters:
- for( MifConvFileConverterList::iterator c = additionalConverters.begin(); c != additionalConverters.end(); ++c )
- {
- // We have to make sure that we don't add same file twice to same converter. So, let's take first a list of
- // .svg file converters and compare them to the .svgb file converters. Don't add temporary file to converters
- // that are found from both of the lists.
- MifConvFileConverterList::iterator c2 = std::find(thisFilesConverters.begin(), thisFilesConverters.end(), *c );
- if( c2 == thisFilesConverters.end() )
- {
- // .svgb converter not found from .svg converters -> add temporary file to .svgb converter:
- MifConvSourceFile svgbFile(sourcefile);
- svgbFile.SetFilename(tempBinFilename);
- (*c)->AppendFile(svgbFile);
- }
- }
- }
-}
-
-/**
- *
- */
-void MifConvIconBinaryConverter::Convert()
-{
- if( iSourceFiles.size() > 0 && MifConvArgumentManager::Instance()->BooleanValue(MifConvDisableSvgCompression) == false )
- {
- ConvertToSvgb();
- }
-}
-
-/**
- *
- */
-void MifConvIconBinaryConverter::Cleanup(bool err)
-{
- CleanupTempFiles();
- if( err )
- {
- CleanupTargetFiles();
- }
-}
-
-/**
- *
- */
-void MifConvIconBinaryConverter::ConvertToSvgb()
-{
- RunExtConverter();
-}
-
-/**
- *
- */
-void MifConvIconBinaryConverter::InitTempFile()
-{
- MifConvArgumentManager* argMgr = MifConvArgumentManager::Instance();
- // Construct temp file name
- // If temp directory is given in command line arguments, use it:
- iTempDir = MifConvUtil::DefaultTempDirectory();
- const MifConvString& tempDirArg = argMgr->StringValue(MifConvTempPathArg);
- if( tempDirArg.length() > 0 )
- {
- iTempDir = tempDirArg;
- }
-
- if( iTempDir.length() > 0 && iTempDir.at(iTempDir.length()-1) != DIR_SEPARATOR2 )
- {
- iTempDir.append(DIR_SEPARATOR);
- }
-
- // Generate new temp-filename:
- iTempDir.append(MifConvUtil::TemporaryFilename());
-
- // append tmp at as postfix
- // this is needed because the generated name can contain a single period '.'
- // character as the last character which is eaten away when the directory created.
- iTempDir.append(MifConvString("tmp"));
-
- MifConvUtil::EnsurePathExists(iTempDir);
-
- iTempDir.append(DIR_SEPARATOR);
-}
-
-/**
- *
- */
-void MifConvIconBinaryConverter::ConvertToBinaryFilename( MifConvString& input )
-{
- MifConvUtil::ReplaceChar(input, DIR_SEPARATOR2, '_');
- MifConvUtil::ReplaceChar(input, INCORRECT_DIR_SEPARATOR2, '_');
- MifConvUtil::ReplaceChar(input, ':', '_');
- MifConvUtil::ReplaceChar(input, ' ', '_');
-}
-
-/**
- *
- */
-void MifConvIconBinaryConverter::RunExtConverter()
-{
- MifConvArgumentManager* argMgr = MifConvArgumentManager::Instance();
-
- // Build svgtbinencode command
- MifConvString extConverterCommand("\""); // Open the " mark
- MifConvString versionArgument;
- MifConvString sourceArgument;
-
- const MifConvString& extConverterPath = argMgr->StringValue(MifConvSvgencodePathArg);
- const MifConvString& defaultExtConverterPath = GetDefaultExtConverterPath();
- if( extConverterPath.length() > 0 )
- {
- extConverterCommand += extConverterPath; // If the path is given, use it.
- }
- else
- {
- extConverterCommand += defaultExtConverterPath; // Use default path
- }
-
- // Ensure that the last char of the path is dir-separator:
- if( extConverterCommand.length() > 1 && extConverterCommand.at(extConverterCommand.length()-1) != DIR_SEPARATOR2 )
- extConverterCommand += DIR_SEPARATOR;
-
- // Then add SVGTBINENCODE executable call and close the " mark
- extConverterCommand += SVGTBINENCODE_EXECUTABLE_NAME + MifConvString("\" ");
-
- // If SVGTBINENCODE version is given, use it also:
- const MifConvString& extConverterVersion = argMgr->StringValue(MifConvSvgtVersionArg);
- if( extConverterVersion.length() > 0 )
- {
- versionArgument = SVGTBINENCODE_OPTION_PREFIX +
- MifConvString(SVGTBINENCODE_VERSION_PARAMETER) + " " + extConverterVersion;
- extConverterCommand += versionArgument + " ";
- }
-
- // Run converter for each of the source files:
- for( MifConvSourceFileList::iterator i = iSourceFiles.begin(); i != iSourceFiles.end(); ++i )
- {
- // Build temp filename by replacing dir separator and ':' chars with '_':
- MifConvString tmpFileName(i->Filename());
- ConvertToBinaryFilename(tmpFileName);
-
- // Copy source file to temp directory:
- MifConvString to(iTempDir + tmpFileName);
- if( MifConvUtil::CopyFile(i->Filename(), to) == false )
- {
- THROW_ERROR_COMMON("File copy failed: " + to, MifConvString(__FILE__), __LINE__ );
- }
- iTempFilenames.push_back(to);
- // It seems that system() function does not work if the command consists of two separate parts
- // enclosed with quotation marks. If the whole string is enclosed with quotation marks then it works...
- // For example: command '"\epoc32\tools\bmconv" "somefile"' does not work while command
- // '""\epoc32\tools\bmconv" "somefile""' does.
- if( system(MifConvString("\""+extConverterCommand+"\""+to+"\"\"").c_str()) < 0 )
- {
- int ernro = errno; // The error number must check straight away before any next system command
-
- MifConvString errStr("Executing SVGTBINENCODE failed");
- if( ernro )
- {
- errStr += ", system error = " + MifConvUtil::ToString(ernro); // Possible system error.
- }
- THROW_ERROR_COMMON(errStr, MifConvString(__FILE__), __LINE__ );
- }
- }
-}
-
-/**
- *
- */
-void MifConvIconBinaryConverter::CleanupTempFiles()
-{
- for( MifConvStringList::iterator i = iTempFilenames.begin(); i != iTempFilenames.end(); ++i )
- {
- if( remove( i->c_str() ) != 0 )
- {
- perror( "Error deleting file (svg conversion)" );
- }
- }
- if( iTempDir.length() > 0 && MifConvUtil::RemoveDirectory( iTempDir ) != 0 )
- {
- perror( "Error deleting temporary directory (svg conversion)" );
- }
-}
-
-/**
- *
- */
-const MifConvString& MifConvIconBinaryConverter::GetDefaultExtConverterPath()
-{
- if( iDefaultExtConverterPath.length() == 0 )
- {
- // Check if the EPOCROOT is given
- MifConvString epocRoot(MifConvArgumentManager::Instance()->EpocRoot());
- if( epocRoot.length() > 0 )
- {
- iDefaultExtConverterPath += epocRoot;
- }
-
- // Ensure that the last char of the path is dir-separator:
- if( iDefaultExtConverterPath.length() > 0 )
- {
- if( iDefaultExtConverterPath.at(iDefaultExtConverterPath.length()-1) != DIR_SEPARATOR2 )
- {
- iDefaultExtConverterPath += DIR_SEPARATOR;
- }
- iDefaultExtConverterPath += SVGTBINENCODE_DEFAULT_PATH;
- }
- }
-
- return iDefaultExtConverterPath;
-}
-
-
-
--- a/dependencies/mifconv/src/mifconv_mifconverter.cpp Thu Apr 01 12:25:43 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,295 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Mifconv MIF converters class.
-*
-*/
-
-
-#include "mifconv.h"
-#include "mifconv_mifconverter.h"
-#include "mifconv_util.h"
-#include "mifconv_exception.h"
-#include "mifconv_argumentmanager.h"
-
-// File versions:
-// V1 - first version.
-// V2 - stores information if icon location (MIF/MBM) inside the MIF file (bitmap offsets array).
-// This way, icon IDs in MBG header can be always the same regardless of which icons are in MIF
-// file and which in MBM file.
-static const int KFileVersion(2);
-static const int KIconVersion(1);
-
-static const int FileHeaderSizeInBytes = 4*4;
-static const int IconHeaderSizeInBytes = 4*8;
-static const int KUidAvkonMultiIconFile(0x034232342);
-static const int KUidAvkonMultiIcon(0x034232343);
-
-//static const int IconFormatType_BMP(0);
-//static const int IconFormatType_SVG(1);
-
-static const unsigned int svgbSignatureLow (0x03FA56CC); //66737868
-static const unsigned int svgbSignatureHigh(0x03FA56CF); //66737871
-
-static const unsigned int nvgSignatureLow (0x0067766E); //('n'+'v'+'g'+0)
-static const unsigned int nvgSignatureHigh(0xFF67766E); //('n'+'v'+'g'+255)
-
-/**
- *
- */
-MifConvMifConverter::MifConvMifConverter()
-{
- MifConvArgumentManager* argMgr = MifConvArgumentManager::Instance();
- iTargetFilename = argMgr->TargetFile();
-}
-
-/**
- *
- */
-MifConvMifConverter::~MifConvMifConverter()
-{
- // Delete file contents
- for( StringPtrVector::iterator i = iContentPointers.begin(); i != iContentPointers.end(); ++i )
- {
- delete[] *i;
- }
-}
-
-/**
- *
- */
-void MifConvMifConverter::Init()
-{
- CleanupTargetFiles();
-}
-
-/**
- *
- */
-void MifConvMifConverter::CleanupTargetFiles()
-{
- if( MifConvUtil::FileExists(iTargetFilename) )
- {
- // Try to remove file MIFCONV_MAX_REMOVE_TRIES times, no exception in case of failure:
- MifConvUtil::RemoveFile(iTargetFilename, MIFCONV_MAX_REMOVE_TRIES, true);
- }
-}
-
-/**
- *
- */
-void MifConvMifConverter::AppendFile( const MifConvSourceFile& sourcefile )
-{
- if( MifConvUtil::FileExtension( sourcefile.Filename() ) == BMP_FILE_EXTENSION ||
- MifConvUtil::FileExtension( sourcefile.Filename() ) == SVG_FILE_EXTENSION ||
- MifConvUtil::FileExtension( sourcefile.Filename() ) == SVGB_BINARY_FILE_EXTENSION )
- {
- iSourceFiles.push_back( sourcefile );
- }
-}
-
-void MifConvMifConverter::Convert()
-{
- ReadFileContents();
- cout << "Writing mif: " << MifConvArgumentManager::Instance()->TargetFile() << endl;
- ConvertToMif();
-}
-
-void MifConvMifConverter::ReadFileContents()
-{
- for( MifConvSourceFileList::iterator i = iSourceFiles.begin(); i != iSourceFiles.end(); ++i )
- {
- // Just read the contents of the .svgb files
- if( MifConvUtil::FileExtension( i->Filename() ) != BMP_FILE_EXTENSION )
- {
- if( MifConvUtil::FileExists(i->Filename()) == false )
- {
- THROW_ERROR_COMMON("Unable to open file for reading! " + i->Filename(), MifConvString(__FILE__), __LINE__ );
- }
- cout << "Loading file: " << i->Filename() << endl;
- MifConvFileData retVal = MifConvUtil::FileContents(i->Filename());
- iContentPointers.push_back(retVal.first); // Save pointer for deleting it later
- i->SetContent(retVal.first, retVal.second);
- }
- }
-}
-
-
-void MifConvMifConverter::Cleanup(bool err)
-{
- CleanupTempFiles();
- if( err )
- {
- CleanupTargetFiles();
- }
-}
-
-void MifConvMifConverter::ConvertToMif()
-{
- try {
- OpenTargetFile();
- }
- catch( MifConvException& e )
- {
- // If file creation/opening was not successful, give warning and return:
- MifConvString debugStr("WARNING: Target file " + iTargetFilename + " cannot be opened for writing.");
- cout << debugStr << endl;
- MifConvUtil::DebugLog(debugStr);
- return;
- }
- WriteTargetHeader();
- WriteIconArray();
- WriteIcons();
-}
-
-void MifConvMifConverter::OpenTargetFile()
-{
- iTargetFile.open( iTargetFilename.c_str(), ios::out|ios::binary );
-
- if (!iTargetFile.is_open())
- {
- // Create path if it does not exist.
- MifConvUtil::EnsurePathExists(iTargetFilename, true);
- iTargetFile.clear();
- iTargetFile.open( iTargetFilename.c_str(), ios::out|ios::binary );
- }
- if (!iTargetFile.is_open())
- {
- THROW_ERROR_COMMON("Cannot write to file! " + iTargetFilename, MifConvString(__FILE__), __LINE__);
- }
-}
-
-void MifConvMifConverter::WriteTargetHeader()
- {
- size_t arraySize = iSourceFiles.size() * 2;
- int offset = FileHeaderSizeInBytes;
- iTargetFile.write( (char*) &KUidAvkonMultiIconFile, 4 );
- iTargetFile.write( (char*) &KFileVersion, 4 );
- iTargetFile.write( (char*) &offset, 4 );
- iTargetFile.write( (char*) &arraySize, 4 );
- }
-
-void MifConvMifConverter::CleanupTempFiles()
-{
-}
-
-void MifConvMifConverter::WriteIcons()
-{
- for( MifConvSourceFileList::iterator i = iSourceFiles.begin(); i != iSourceFiles.end(); ++i )
- {
- if( i->ContentLength() > 0 )
- {
- WriteIconHeader(*i);
- WriteIconData(*i);
- }
- }
-}
-
-MifConvDefs::IconFormatType MifConvMifConverter::ReadIconBinaryType(const MifConvSourceFile& src)
-{
- MifConvDefs::IconFormatType ret = MifConvDefs::IconFormatType_SVG;
-
- if( src.ContentLength() >= 4 )
- {
- const char* iconData = src.Content();
-
- if( iconData[0] == 'n' &&
- iconData[1] == 'v' &&
- iconData[2] == 'g' )
- {
- ret = MifConvDefs::IconFormatType_NVG;
- }
- }
-
- return ret;
-}
-
-void MifConvMifConverter::WriteIconHeader(const MifConvSourceFile& src)
-{
- int type = 0;
- if( MifConvUtil::FileExtension(src.Filename()) == BMP_FILE_EXTENSION )
- type = MifConvDefs::IconFormatType_BMP;
- else
- type = ReadIconBinaryType(src);
- //type = IconFormatType_SVG;
-
- int animated = (int) src.IsAnimated();
- int dataLen = src.ContentLength();
- int depth = src.DisplayMode();
- int mask = src.MaskDisplayMode();
- int dataoffset = IconHeaderSizeInBytes; // 8 = number of writes in this method.
-
- iTargetFile.write((char*)&KUidAvkonMultiIcon, 4); // 1
- iTargetFile.write((char*)&KIconVersion, 4); // 2
- iTargetFile.write((char*)&dataoffset, 4); // 3
- iTargetFile.write((char*)&dataLen, 4); // 4
- iTargetFile.write((char*)&type, 4); // 5
- iTargetFile.write((char*)&depth, 4); // 6
- iTargetFile.write((char*)&animated, 4); // 7
- iTargetFile.write((char*)&mask, 4); // 8
-}
-
-void MifConvMifConverter::WriteIconData(const MifConvSourceFile& src)
-{
- if( src.Content() )
- {
- iTargetFile.write(src.Content(), src.ContentLength());
- }
-}
-
-/**
-*
-*/
-void MifConvMifConverter::WriteIconArray()
-{
- int offset = (int) FileHeaderSizeInBytes + (int)iSourceFiles.size()*4*2*2;
- MifConvSourceFileList::iterator i = iSourceFiles.begin();
-
- int mbmIndex = 0;
- int zero = 0;
-
- for( ; i != iSourceFiles.end(); ++i )
- {
- // MIF icon
- if( MifConvUtil::FileExtension(i->Filename()) != BMP_FILE_EXTENSION )
- {
- int length = i->ContentLength() + IconHeaderSizeInBytes;
- iTargetFile.write( (char*) &offset, 4 );
- iTargetFile.write( (char*) &length, 4 );
- // same information for the mask...
- iTargetFile.write( (char*) &offset, 4 );
- iTargetFile.write( (char*) &length, 4 );
-
- offset += length;
- }
- // MBM icon
- else
- {
- iTargetFile.write( (char*) &mbmIndex, 4 );
- iTargetFile.write( (char*) &zero, 4 );
-
- // Masked MBM icon -> There is own MBM index for the mask.
- if(i->MaskDepth() != IconMaskDepth_Undefined )
- {
- mbmIndex--;
- }
-
- iTargetFile.write( (char*) &mbmIndex, 4 );
- iTargetFile.write( (char*) &zero, 4 );
-
- // MBM incides are coded as negative in the 'offset' field,
- // so that they can be easily separated from the actual MIF offsets.
- mbmIndex--;
- }
- }
-}
--- a/dependencies/mifconv/src/mifconv_sourcefile.cpp Thu Apr 01 12:25:43 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Mifconv source file class.
-*
-*/
-
-
-#include "mifconv.h"
-#include "mifconv_sourcefile.h"
-#include "mifconv_util.h"
-#include "mifconv_exception.h"
-#include "mifconv_argument.h"
-#include "mifconv_argumentmanager.h"
-
-MifConvSourceFile::MifConvSourceFile()
-:
-iDepth(IconDepth_Undefined),
-iMaskDepth(IconMaskDepth_Undefined),
-iDisplayMode(DisplayMode_None),
-iMaskDisplayMode(DisplayMode_None),
-iAnimated(false),
-iContent(0),
-iContentLen(0)
-{
-}
-
-MifConvSourceFile::MifConvSourceFile( const MifConvSourceFile& src )
-:
-iFilename( src.Filename() ),
-iDepthString( src.DepthString() ),
-iMaskDepthString( src.MaskDepthString() ),
-iDepth(src.iDepth),
-iMaskDepth(src.iMaskDepth),
-iDisplayMode(src.iDisplayMode),
-iMaskDisplayMode(src.iMaskDisplayMode),
-iAnimated( src.IsAnimated() ),
-iMaskFilename( src.iMaskFilename ),
-iContent(src.iContent),
-iContentLen(src.iContentLen)
-{
-}
-
-MifConvSourceFile::~MifConvSourceFile()
-{}
-
-char* MifConvSourceFile::Content() const
-{
- return iContent;
-}
-
-int MifConvSourceFile::ContentLength() const
-{
- return iContentLen;
-}
-
-void MifConvSourceFile::SetContent(char* content, unsigned int len)
-{
- iContent = content;
- iContentLen = len;
-}
-
-const MifConvString& MifConvSourceFile::Filename() const
-{
- return iFilename;
-}
-
-void MifConvSourceFile::SetAnimated( bool isAnimated )
-{
- iAnimated = isAnimated;
-}
-
-void MifConvSourceFile::SetFilename( const MifConvString& filename )
-{
- iFilename = filename;
-}
-
-void MifConvSourceFile::SetDisplayMode( IconDisplayMode mode)
-{
- iDisplayMode = mode;
-}
-
-IconDisplayMode MifConvSourceFile::DisplayMode() const
-{
- return iDisplayMode;
-}
-
-void MifConvSourceFile::SetMaskDisplayMode( IconDisplayMode mode)
-{
- iMaskDisplayMode = mode;
-}
-
-IconDisplayMode MifConvSourceFile::MaskDisplayMode() const
-{
- return iMaskDisplayMode;
-}
-
-IconDepth MifConvSourceFile::Depth() const
-{
- return iDepth;
-}
-
-void MifConvSourceFile::SetDepth(IconDepth depth)
-{
- iDepth = depth;
-}
-
-const MifConvString& MifConvSourceFile::DepthString() const
-{
- return iDepthString;
-}
-
-IconMaskDepth MifConvSourceFile::MaskDepth() const
-{
- return iMaskDepth;
-}
-
-void MifConvSourceFile::SetMaskDepth(IconMaskDepth depth)
-{
- iMaskDepth = depth;
-}
-
-const MifConvString& MifConvSourceFile::MaskDepthString() const
-{
- return iMaskDepthString;
-}
-
-bool MifConvSourceFile::IsAnimated() const
-{
- return iAnimated;
-}
-
-const MifConvString& MifConvSourceFile::BmpMaskFilename() const
-{
- return iMaskFilename;
-}
-
-void MifConvSourceFile::SetBmpMaskFilename( const MifConvString& maskFilename )
-{
- iMaskFilename = maskFilename;
-}
-
-void MifConvSourceFile::SetDepthString( const MifConvString& depth )
-{
- iDepthString = depth;
-}
-
-void MifConvSourceFile::SetMaskDepthString( const MifConvString& mask )
-{
- iMaskDepthString = mask;
-}
-
-void MifConvSourceFile::SetDepthAndMask( const MifConvString& depthAndMask )
-{
- size_t separatorIndex = depthAndMask.find(",");
-
- if( separatorIndex != MifConvString::npos )
- {
- iDepthString = MifConvString(depthAndMask.begin()+1, depthAndMask.begin()+separatorIndex);
- iMaskDepthString = MifConvString(depthAndMask.begin()+separatorIndex+1, depthAndMask.end());
- iMaskDepth = MifConvArgumentManager::Instance()->ConvertToMaskDepth(iMaskDepthString);
- }
- else
- {
- iDepthString = MifConvString(depthAndMask.begin()+1, depthAndMask.end());
- }
- iDepth = MifConvArgumentManager::Instance()->ConvertToDepth(iDepthString);
-}
-
--- a/dependencies/mifconv/src/mifconv_util.cpp Thu Apr 01 12:25:43 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,593 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Mifconv utilities.
-*
-*/
-
-
-#include "mifconv.h"
-#include "mifconv_util.h"
-#include "mifconv_exception.h"
-#include "mifconv_argumentmanager.h"
-#include <sys/stat.h> // for stat
-#ifdef WIN32
- #include <direct.h> // for _getcwd, _chdir, _mkdir
-#else
- #include <unistd.h>
-#endif
-#include <stdlib.h> // for _MAX_PATH
-#include <stdio.h>
-
-#ifndef _MAX_PATH
-#define _MAX_PATH (260)
-#endif
-
-MifConvUtil::MifConvDebugMode MifConvUtil::iDebugMode = DebugMode_Unknown;
-MifConvString MifConvUtil::iDebugFile = "";
-MifConvString MifConvUtil::iTempDirectory = "";
-
-/**
- *
- */
-MifConvString MifConvUtil::FileExtension( const MifConvString& fileName )
-{
- size_t indexOfDot; // index of '.' character in the given string
-
- // Find last occurence of the '.' character
- if( ( indexOfDot = fileName.find_last_of('.') ) == MifConvString::npos )
- {
- // Not found, return empty string
- return MifConvString("");
- }
-
- // Return the substring starting after the '.' character
- return MifConvString( fileName.begin()+indexOfDot+1, fileName.end() );
-}
-
-/**
- *
- */
-MifConvString MifConvUtil::FilenameWithoutExtension( const MifConvString& fileName )
-{
- size_t indexOfDot; // index of '.' character in the given string
-
- // Find last occurence of the '.' character
- if( ( indexOfDot = fileName.find_last_of('.') ) == MifConvString::npos )
- {
- // Not found, return the whole name
- return fileName;
- }
-
- // Return the substring preceding the last '.' character
- return MifConvString( fileName.begin(), fileName.begin() + indexOfDot );
-}
-
-/**
- *
- */
-MifConvString MifConvUtil::FilenameWithoutPath( const MifConvString& fileName )
-{
- size_t indexOfDirSeparator; // index of directory separator in the given string
-
- // Find last occurence of the '.' character
- if( ( indexOfDirSeparator = fileName.find_last_of(DIR_SEPARATOR2) ) == MifConvString::npos )
- {
- // Not found, return the whole name
- return fileName;
- }
-
- // Return the substring beginnig after the last directory separator
- return MifConvString( fileName.begin()+indexOfDirSeparator+1, fileName.end() );
-}
-
-/**
- *
- */
-bool MifConvUtil::FileExists( const MifConvString& fileName )
-{
- struct stat fileInfo;
- int retVal = 0;
-
- // Try to get file attributes to see if the file exists or not:
- retVal = stat( fileName.c_str(), &fileInfo);
- return retVal == 0;
-}
-
-/**
- *
- */
-size_t MifConvUtil::FileSize( const MifConvString& fileName )
-{
- struct stat fileInfo;
- int retVal = 0;
-
- // Try to get file attributes to see if the file exists or not:
- retVal = stat( fileName.c_str(), &fileInfo);
- if( retVal != 0 )
- {
- THROW_ERROR_COMMON("File not found: " + fileName, MifConvString(__FILE__), __LINE__);
- }
-
- return fileInfo.st_size;
-}
-
-/**
- *
- */
-MifConvFileData MifConvUtil::FileContents( const MifConvString& fileName )
-{
- unsigned int fileLen = (unsigned int) (MifConvUtil::FileSize(fileName)/sizeof(char));
-
- ifstream fs( fileName.c_str(), FILE_IN_BINARY_NOCREATE_FLAGS );
- if (!fs.is_open())
- {
- THROW_ERROR_COMMON("Unable to open file for reading! " + fileName, MifConvString(__FILE__), __LINE__);
- }
- char* buffer = new char[fileLen];
- fs.read(buffer, fileLen);
- return MifConvFileData(buffer, fileLen);
-}
-
-/**
- *
- */
-void MifConvUtil::ReplaceChar( MifConvString& str, char replaceFrom, char replaceTo)
-{
- if( str.length() > 0 )
- {
- MifConvString::size_type index = 0;
- while( (index = str.find(replaceFrom, index)) != MifConvString::npos )
- {
- str.replace(index,1,1,replaceTo);
- }
- }
-}
-
-/**
- *
- */
-void MifConvUtil::SplitPath( const MifConvString& sourcePath, MifConvString& drive, MifConvString& path)
- {
- if( sourcePath.length() > 0 )
- {
- size_t driveSeparatorPos = sourcePath.find(':');
- if( driveSeparatorPos != MifConvString::npos )
- {
- drive = MifConvString(sourcePath.begin(), sourcePath.begin() + driveSeparatorPos );
- path = MifConvString(sourcePath.begin() + driveSeparatorPos + 1, sourcePath.end() );
- }
- else
- {
- path = sourcePath;
- }
- }
- else
- {
- drive = MifConvString("");
- path = MifConvString("");
- }
-}
-
-/**
- *
- */
-MifConvString MifConvUtil::CurrentPath()
-{
- char temp[_MAX_PATH];
-#ifdef WIN32
- _getcwd(temp, _MAX_PATH);
-#else
- getcwd(temp, _MAX_PATH);
-#endif
- return MifConvString(temp);
-}
-
-/**
- *
- */
-int MifConvUtil::CompareIgnoreCase( const MifConvString& lhs, const MifConvString& rhs )
-{
- MifConvString lhsCopy(lhs);
- MifConvString rhsCopy(rhs);
-
- return ToLower(lhsCopy).compare(ToLower(rhsCopy));
-}
-
-/**
- *
- */
-MifConvString& MifConvUtil::ToLower( MifConvString& str )
-{
- MifConvString::iterator it(str.begin());
- for(; it != str.end(); ++it)
- {
- *it = (char) tolower((unsigned char)*it);
- }
- return str;
-}
-
-/**
- *
- */
-void MifConvUtil::EnsurePathExists( const MifConvString& destFileName, bool ignoreLast )
- {
- MifConvString currentPath;
- MifConvString tmpDrive;
- MifConvString tmpPath;
-
- // Parse a drive of a destination path; if any
- SplitPath( destFileName, tmpDrive, tmpPath );
-
- // Save current directory
- currentPath = CurrentPath();
-
- // Change drive if needed:
- if( tmpDrive.length() > 0 )
- {
- tmpDrive += ":";
- tmpDrive += DIR_SEPARATOR;
- ChangeDirectory(tmpDrive);
- }
-
- // Split desination path to separate directories:
- MifConvStringList destDirList;
-
- // Check if the root is given first and add it to dir list:
- if( tmpPath.length() > 0 && tmpPath.at(0) == DIR_SEPARATOR2 )
- {
- destDirList.push_back(DIR_SEPARATOR);
- }
-
- // Add other directories to destination dir list:
- SplitString( tmpPath, DIR_SEPARATOR, destDirList );
-
- // Remove last component from the list if it should be ignored:
- if( ignoreLast )
- {
- destDirList.pop_back();
- }
-
- unsigned int i = 0;
- while( i < destDirList.size() )
- {
- const MifConvString& dir = destDirList[i++];
- if( !FileExists(dir) )
- {
- if( !CreateDirectory( dir ) )
- {
- // Change back to original directory:
- ChangeDirectory( currentPath );
- THROW_ERROR_COMMON("Directory " + tmpPath + " cannot be created", MifConvString(__FILE__), __LINE__);
- }
- }
- ChangeDirectory( dir );
- }
-
- // Change back to original directory:
- ChangeDirectory( currentPath );
-}
-
-/**
- *
- */
-void MifConvUtil::RemoveDuplicateDirSeparators( MifConvString& str )
-{
- MifConvString searchString(DIR_SEPARATOR);
- searchString += DIR_SEPARATOR;
- size_t pos = str.find(searchString);
-
- while(pos != MifConvString::npos)
- {
- str.erase(pos, 1);
- pos = str.find(searchString);
- }
-}
-
-/**
- *
- */
-bool MifConvUtil::CreateDirectory( const MifConvString& path )
-{
-#ifdef WIN32
- return _mkdir( path.c_str() ) == 0;
-#else
- return mkdir( path.c_str(), 0777 ) == 0;
-#endif
-}
-
-/**
- *
- */
-void MifConvUtil::SplitString( const MifConvString& str, const MifConvString& separator, MifConvStringList& components )
-{
- size_t beginPos = 0;
- size_t endPos = 0;
-
- while( (endPos = str.find(separator, beginPos)) != MifConvString::npos )
- {
- if( endPos - beginPos > 0 )
- {
- components.push_back( MifConvString( str.begin()+beginPos, str.begin()+endPos ) );
- }
- beginPos = endPos+1;
- }
- if( str.begin()+beginPos != str.end() )
- {
- components.push_back( MifConvString(str.begin()+beginPos, str.end()) );
- }
-}
-
-/**
- *
- */
-MifConvString MifConvUtil::UnadornedFilename( const MifConvString& filename )
-{
- MifConvStringList splitted;
- SplitString(filename, DIR_SEPARATOR, splitted);
-
- MifConvString tmp(splitted.back());
- splitted.clear();
- SplitString(tmp, INCORRECT_DIR_SEPARATOR, splitted);
-
- tmp = splitted.back();
- splitted.clear();
- SplitString(tmp, FILE_EXTENSION_SEPARATOR, splitted);
-
- MifConvString fixedname;
-
- if( splitted.size() > 0 )
- {
- fixedname = ToLower(splitted[0]);
- if( fixedname.length() > 0 )
- {
- fixedname[0] = (char) toupper( fixedname[0] );
- }
- }
- return fixedname;
-}
-
-/**
- *
- */
-void MifConvUtil::FindAndSetBitmapMaskFile( MifConvSourceFile& srcFile )
-{
- if( srcFile.MaskDepth() == IconMaskDepth_Undefined )
- {
- return; // No mask file
- }
- MifConvString fileExtension(FileExtension( srcFile.Filename() ));
-
- if( CompareIgnoreCase(fileExtension, BMP_FILE_EXTENSION) != 0 )
- {
- return;
- }
-
- MifConvString maskFilename(FilenameWithoutExtension(srcFile.Filename()));
-
- if( srcFile.MaskDepth() == IconMaskDepth_1 )
- {
- maskFilename += "_mask.bmp";
- }
- else if( srcFile.MaskDepth() == IconMaskDepth_8 )
- {
- maskFilename += "_mask_soft.bmp";
- }
- else
- {
- THROW_ERROR_COMMON("Invalid mask depth\n", MifConvString(__FILE__), __LINE__);
- }
-
- if( !FileExists(maskFilename) )
- {
- cerr << endl << "*** WARNING! Missing bitmap: " << maskFilename << endl;
- }
-
- srcFile.SetBmpMaskFilename( maskFilename );
-}
-
-/**
- *
- */
-MifConvString MifConvUtil::TemporaryFilename()
-{
- MifConvString tmp(tmpnam(NULL));
- MifConvString::iterator i = tmp.begin();
-
- if( *i == '.' )
- {
- ++i;
- }
-
- if( *i == DIR_SEPARATOR2 || *i == INCORRECT_DIR_SEPARATOR2 )
- {
- ++i;
- }
-
- return MifConvString(i, tmp.end());
-}
-
-/**
- *
- */
-bool MifConvUtil::CopyFile(const MifConvString& from, const MifConvString& to)
-{
- bool retval = false;
- ifstream in(from.c_str(), ios::binary);
- if( in )
- {
- ofstream out(to.c_str(), ios::binary);
- if( out )
- {
- out << in.rdbuf();
- retval = out.good();
- out.close();
- }
- in.close();
- }
- return retval;
-}
-
-/**
- *
- */
-bool MifConvUtil::IsWhiteSpace(char c)
-{
- return c == ' ' || c == '\n' || c == '\r' || c == '\t';
-}
-
-/**
- *
- */
-void MifConvUtil::ChangeDirectory( const MifConvString& dirName )
-{
-#ifdef WIN32
- _chdir( dirName.c_str() );
-#else
- chdir( dirName.c_str() );
-#endif
-}
-
-/**
- *
- */
-int MifConvUtil::RemoveDirectory( const MifConvString& dirName )
-{
-#ifdef WIN32
- return _rmdir( dirName.c_str() );
-#else
- return rmdir( dirName.c_str() );
-#endif
-}
-
-/**
- *
- */
-void MifConvUtil::RemoveFile( const MifConvString& fileName, int maxTries, bool noException )
-{
- for( int i = 0; i < maxTries; ++i )
- {
-#ifdef WIN32
- int ret = _unlink(fileName.c_str());
-#else
- int ret = unlink(fileName.c_str());
-#endif
-
- if( ret == 0 )
- {
- // Delete was successful
- return;
- }
-
- // Delete was not successful
- if( i >= maxTries-1 )
- {
- // Max amount of tries exceeded -> print warning or throw an exception
- if( noException )
- {
- MifConvString debugStr("WARNING: Cannot remove file " + fileName);
- DebugLog(debugStr);
- }
- else
- {
- THROW_ERROR_COMMON("Cannot remove file " + fileName, MifConvString(__FILE__), __LINE__);
- }
- }
- }
-}
-
-/**
- *
- */
-MifConvString MifConvUtil::DebugFile()
-{
- char* tmpPtr = getenv(MIFCONV_DEBUG_FILE_ENV.c_str());
- if( tmpPtr )
- {
- return MifConvString(tmpPtr);
- }
- return MifConvString();
-}
-
-/**
- *
- */
-void MifConvUtil::DebugLog(const MifConvString& debugStr)
-{
- if( iDebugMode == DebugMode_Unknown )
- {
- iDebugFile = MifConvUtil::DebugFile();
- if( iDebugFile.length() > 0 )
- {
- iDebugMode = DebugMode_Debug;
- }
- else
- {
- iDebugMode = DebugMode_NoDebug;
- }
- }
-
- if( iDebugMode == DebugMode_Debug )
- {
- ios_base::openmode file_flags;
- if( MifConvUtil::FileExists(iDebugFile) )
- {
- file_flags = ios::out|ios::app;
- }
- else
- {
- file_flags = ios::out|ios::trunc;
- }
- fstream debugLog(iDebugFile.c_str(), file_flags);
- if(debugLog.is_open())
- {
- debugLog << debugStr << endl;
- debugLog.close();
- }
- }
-}
-
-/**
- *
- */
-const MifConvString& MifConvUtil::DefaultTempDirectory()
- {
- if( iTempDirectory.length() == 0 )
- {
- char* tmpPtr = getenv(SBS_BUILD_DIR_ENV.c_str());
- if( tmpPtr && MifConvString(tmpPtr).length() > 0 )
- {
- iTempDirectory = MifConvString(tmpPtr);
-
- if( iTempDirectory.at(iTempDirectory.length()-1) != DIR_SEPARATOR2 )
- {
- iTempDirectory += DIR_SEPARATOR;
- }
-
- iTempDirectory += EPOC_ICON_BUILD_PATH_POSTFIX +
- MifConvString(DIR_SEPARATOR) +
- MifConvString("temp");
- }
- else
- {
- iTempDirectory = MifConvArgumentManager::Instance()->EpocRoot() +
- EPOC_BUILD_PATH +
- MifConvString(DIR_SEPARATOR) +
- EPOC_ICON_BUILD_PATH_POSTFIX +
- MifConvString(DIR_SEPARATOR) +
- MifConvString("temp");
- }
- }
- return iTempDirectory;
- }
-