wgui_calendar.h
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:22k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*******************************************************************************
  36.  * Filename:
  37.  * ---------
  38.  *  wgui_calendar.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  *   MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *  Calendar related categories.
  47.  *
  48.  *  Author:
  49.  * -------
  50.  *  Leo Hu (MTK00563)
  51.  *
  52.  *==============================================================================
  53.  *             HISTORY
  54.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  55.  *------------------------------------------------------------------------------
  56.  * removed!
  57.  *
  58.  * removed!
  59.  * removed!
  60.  * removed!
  61.  *
  62.  * removed!
  63.  * removed!
  64.  * removed!
  65.  *
  66.  * removed!
  67.  * removed!
  68.  * removed!
  69.  *
  70.  * removed!
  71.  * removed!
  72.  * removed!
  73.  *
  74.  * removed!
  75.  * removed!
  76.  * removed!
  77.  *
  78.  * removed!
  79.  * removed!
  80.  * removed!
  81.  *
  82.  * removed!
  83.  * removed!
  84.  * removed!
  85.  *
  86.  * removed!
  87.  * removed!
  88.  * removed!
  89.  *
  90.  *------------------------------------------------------------------------------
  91.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  92.  *==============================================================================
  93.  *******************************************************************************/
  94.  /**
  95.  * Copyright Notice
  96.  * ?2002 - 2003, Pixtel Communications, Inc., 1489 43rd Ave. W.,
  97.  * Vancouver, B.C. V6M 4K8 Canada. All Rights Reserved.
  98.  *  (It is illegal to remove this copyright notice from this software or any
  99.  *  portion of it)
  100.  */
  101. /**********************************************************************************
  102.    Filename:      wgui_calendar.h
  103.    Author:        manju
  104.    Date Created:  July-07-2003
  105.    Contains:      Contains the calendar control wrappers and category screens
  106. **********************************************************************************/
  107. #ifndef __WGUI_CALENDAR_H__
  108. #define __WGUI_CALENDAR_H__
  109. #include "wgui.h"
  110. #include "gui_calendar.h"
  111. #ifdef __cplusplus
  112. extern "C"
  113. {
  114. #endif /* __cplusplus */ 
  115. #if(ENABLE_CALENDAR_CONTROL)
  116.     /* Wrappers to be used by applications and category screens */
  117.     extern calendar_control MMI_calendar_control;
  118.     extern U8 MMI_calendar_days[MAX_CALENDAR_DAYS];
  119.     extern S32 MMI_calendar_highlighted_day;
  120.     extern void (*MMI_calendar_control_highlight_handler) (S32 day);
  121. #define  CLNDR_HINT_LEN             8*ENCODING_LENGTH
  122. #ifdef __MMI_UI_DALMATIAN_CALENDAR__
  123. #define  CLNDR_TITLE_LEN            17*ENCODING_LENGTH
  124. #else 
  125. #define  CLNDR_TITLE_LEN            12*ENCODING_LENGTH
  126. #endif 
  127. #define  CLNDR_MAX_DAYS             31
  128. #define  CLNDR_LAST_NAVI_YEAR       2030
  129. #define  CLNDR_FIRST_NAVI_YEAR      1970
  130. #define CALENDAR_N_COLUMNS          7
  131. #define CALENDAR_N_ROWS             6
  132. #define  CALENDAR_CELL_WIDTH           18
  133. #define CALENDAR_CELL_HEIGHT        13
  134. #define CALENDAR_X                  1
  135. #define CALENDAR_Y                  28
  136. #define   NEXT_DAY                  0
  137. #define   PREV_DAY                  1
  138. #define   NEXT_ROW                  2
  139. #define   PREV_ROW                  3
  140. #define   SELECTED_DAY              4
  141. #define CALENDAR_DOW_TITLE_HEIGHT      14
  142. #define CALENDAR_LUNAR_TITLE_HEIGHT    15
  143. #define CALENDAR_LUNAR_SYMBOL_WIDTH    20
  144. #if defined (__MMI_MAINLCD_240X320__)
  145. #define MMI_CALENDAR_X              5
  146. #define MMI_CALENDAR_Y              62
  147. #define MMI_CALENDAR_WIDTH       231
  148. #define MMI_CALENDAR_HEIGHT         156
  149. #define MMI_CALENDAR_LIMIT_Y        41
  150. #define MMI_CALENDAR_LIMIT_HEIGHT      MAIN_LCD_DEVICE_HEIGHT-MMI_BUTTON_BAR_HEIGHT-MMI_CALENDAR_LIMIT_Y
  151. #elif defined (__MMI_MAINLCD_176X220__)
  152. #define MMI_CALENDAR_X              12
  153. #define MMI_CALENDAR_Y              70
  154. #define MMI_CALENDAR_WIDTH       154
  155. #define MMI_CALENDAR_HEIGHT         108
  156. #define MMI_CALENDAR_LIMIT_Y        55
  157. #define MMI_CALENDAR_LIMIT_HEIGHT      MAIN_LCD_DEVICE_HEIGHT-MMI_BUTTON_BAR_HEIGHT-MMI_CALENDAR_LIMIT_Y
  158. #elif defined (__MMI_MAINLCD_128X160__)
  159. #define MMI_CALENDAR_X              1
  160. #define MMI_CALENDAR_Y              35
  161. #define MMI_CALENDAR_WIDTH       126
  162. #define MMI_CALENDAR_HEIGHT         91
  163. #define MMI_CALENDAR_LIMIT_Y        17
  164. #define MMI_CALENDAR_LIMIT_HEIGHT      MAIN_LCD_DEVICE_HEIGHT-MMI_BUTTON_BAR_HEIGHT-MMI_CALENDAR_LIMIT_Y
  165. #else 
  166. #define MMI_CALENDAR_X              1
  167. #define MMI_CALENDAR_Y              35
  168. #define MMI_CALENDAR_WIDTH       126
  169. #define MMI_CALENDAR_HEIGHT         60
  170. #define MMI_CALENDAR_LIMIT_Y        17
  171. #define MMI_CALENDAR_LIMIT_HEIGHT      MAIN_LCD_DEVICE_HEIGHT-MMI_BUTTON_BAR_HEIGHT-MMI_CALENDAR_LIMIT_Y
  172. #endif 
  173. #ifdef __MMI_TOUCH_SCREEN__
  174. #define MMI_CALENDAR_ARROW_OFFSET   5
  175. #endif 
  176. #ifdef __MMI_UI_DALMATIAN_CALENDAR__
  177.     typedef enum
  178.     {
  179.         DALMATIAN_CALENDAR_HIGHLIGHTER_MOVE_WITH_SELECT,
  180.         DALMATIAN_CALENDAR_HIGHLIGHTER_MOVE_WITH_CURRENT    /* Animatian with gif */
  181.     } wgui_dalmatian_calendar_highlighter_styles;
  182.     extern color wgui_read_calendar_highlighter_horizontal_color(S32 month);
  183.     extern color wgui_read_calendar_highlighter_vertical_color(S32 month);
  184.     extern void set_current_month_year_for_dalmatian(S32 current_day, S32 current_month, S32 current_year);
  185.     extern void draw_current_week_highlighter(calendar_control *c);
  186.     extern void draw_current_week_highlighter_with_current_selection(void);
  187.     extern U16 dalmatian_calendar_current_week_image(void);
  188.     extern void set_dalmatian_calendar_highlighter_box(void);
  189.     extern void set_dalmatian_calendar_highlighter_enable(void);
  190.     extern void set_dalmatian_calendar_highlighter_disable(void);
  191.     extern S32 dalmatian_calendar_highlighter_status(void);
  192.     extern void set_dalmatian_current_week_num(void);
  193.     extern void set_dalmatian_title_string(void);
  194.     extern void get_current_date_highlighter_coordinates(calendar_control *c, S32 *x, S32 *y);
  195.     extern void draw_current_day_highlighter(void);
  196. #endif /* __MMI_UI_DALMATIAN_CALENDAR__ */ 
  197. #ifdef __MMI_UI_DALMATIAN_SOFTKEYS__
  198.     extern void shuffle_softkey_draw_dalmatian_calender_image(void);
  199. #endif 
  200.     extern void wgui_setup_calendar(
  201.                     S32 x,
  202.                     S32 y,
  203.                     S32 cell_width,
  204.                     S32 cell_height,
  205.                     S32 first_dow,
  206.                     S32 last_day,
  207.                     S32 current_day,
  208.                     S32 current_month,
  209.                     S32 current_year,
  210.                     U32 flags);
  211.     extern void wgui_reset_calendar_params(S32 x, S32 y, S32 n_columns, S32 n_rows, S32 cell_width, S32 cell_height);
  212.     extern void wgui_close_calendar(void);
  213.     extern void wgui_show_calendar(void);
  214.     extern void wgui_register_calendar_keys(void);
  215.     extern void wgui_move_calendar(S32 x, S32 y);
  216.     void SetCalendarPopupTitleLunarFunc(void (*popuptitle) (U8, U8, U8, U8));
  217.     void SetCalendarMonthFunctions(void (*month_previous_day) (void), void (*month_next_day) (void),
  218.                                    void (*month_previous_week) (void), void (*month_next_week) (void));
  219. #ifdef __MMI_TOUCH_SCREEN__
  220.     void SetCalendarMonthChangeFunctions(void (*previous_month) (void), void (*next_month) (void));
  221. #ifdef __MMI_UI_CALENDAR_WITH_INFO_BOX__
  222.     void SetCalendarYearChangeFunctions(void (*previous_year) (void), void (*next_year) (void));
  223. #endif 
  224. #endif /* __MMI_TOUCH_SCREEN__ */ 
  225.     void RegisterCalendarUpdateHandler(void (*f) (S32 day, S32 month, S32 year));
  226.     extern void SetCalendarDay(S32 day, U8 flag);
  227.     void RegisterCalendarHighlightHandler(void (*f) (S32 index));
  228. #ifdef __MMI_UI_CALENDAR_WITH_INFO_BOX__
  229.     extern void wgui_set_calendar_info_box(
  230.                     S32 InfoBoxX,
  231.                     S32 InfoBoxY,
  232.                     S32 InfoBoxWidth,
  233.                     S32 InfoBoxHeight,
  234.                     S32 InfoBoxMax,
  235.                     U16 InfoBoxShow);
  236.     void RegisterCalendarUpdateInfoBoxHandler(void (*f)
  237.                                               (S32 *p_n_info, U16 **p_icon_list, U8 ***p_description_list));
  238. #endif /* __MMI_UI_CALENDAR_WITH_INFO_BOX__ */ 
  239.     extern S32 GetCalendarHighlightedDay(void);
  240.     extern void SetCalendarHighlightedDay(S32 day);
  241.     extern void SetCalendarPopupDay(S32 day, U8 *message1, U8 *message2, U8 *message3);
  242.     extern void SetCalendarBackground(U16 image_ID);
  243.     extern void SetCalendarTitleImage(U16 image_ID);
  244.     extern void RedrawCategory80Screen(void);
  245.     extern void InitializeCategory80Screen(
  246.                     S32 first_day_of_week,
  247.                     S32 last_day_of_month,
  248.                     S32 current_day,
  249.                     S32 current_month,
  250.                     S32 current_year);
  251.     extern void ShowCategory80Screen(
  252.                     U16 left_softkey,
  253.                     U16 left_softkey_icon,
  254.                     U16 right_softkey,
  255.                     U16 right_softkey_icon,
  256.                     U8 *history_buffer);
  257.     extern void ExitCategory80Screen(void);
  258.     extern S32 GetCategory80HistorySize(void);
  259.     extern U8 *GetCategory80History(U8 *history_buffer);
  260.     extern void RedrawCategory81Screen(void);
  261.     extern void InitializeCategory81Screen(
  262.                     S32 first_day_of_week,
  263.                     S32 last_day_of_month,
  264.                     S32 current_day,
  265.                     S32 current_month,
  266.                     S32 current_year);
  267.     extern void ShowCategory81Screen(
  268.                     U8 *title,
  269.                     U16 left_softkey,
  270.                     U16 left_softkey_icon,
  271.                     U16 right_softkey,
  272.                     U16 right_softkey_icon,
  273.                     U8 *message1,
  274.                     U8 *message2,
  275.                     U8 *history_buffer);
  276.     extern void ExitCategory81Screen(void);
  277.     extern S32 GetCategory81HistorySize(void);
  278.     extern U8 *GetCategory81History(U8 *history_buffer);
  279.     extern void RedrawCategory82Screen(void);
  280.     extern void InitializeCategory82Screen(
  281.                     S32 first_day_of_week,
  282.                     S32 last_day_of_month,
  283.                     S32 current_day,
  284.                     S32 current_month,
  285.                     S32 current_year);
  286.     extern void ShowCategory82Screen(
  287.                     U16 left_softkey,
  288.                     U16 left_softkey_icon,
  289.                     U16 right_softkey,
  290.                     U16 right_softkey_icon,
  291.                     U8 *history_buffer);
  292.     extern void ExitCategory82Screen(void);
  293.     extern S32 GetCategory82HistorySize(void);
  294.     extern U8 *GetCategory82History(U8 *history_buffer);
  295.     extern void ChangeCategory82Title1(U8 *title);
  296. #ifdef __MMI_UI_CALENDAR_WITH_INFO_BOX__
  297.     extern void ChangeCategory82Title1Month(U8 *title);
  298. #ifdef __MMI_TOUCH_SCREEN__
  299.     extern void DisableCalendarTitle1Arrow(void);
  300.     extern void ResetCalendarTitle1Arrow(void);
  301.     extern void DisableCalendarTitle1MonthArrow(void);
  302.     extern void ResetCalendarTitle1MonthArrow(void);
  303. #endif /* __MMI_TOUCH_SCREEN__ */ 
  304. #endif /* __MMI_UI_CALENDAR_WITH_INFO_BOX__ */ 
  305.     extern void ChangeCategory82Title2(U8 *title);
  306.     extern void ChangeCategory82Title3(U8 *title);
  307.     extern void wgui_calendar_next_month(void);
  308.     extern void wgui_calendar_previous_month(void);
  309. #if defined (__MMI_TOUCH_SCREEN__) && defined (__MMI_UI_CALENDAR_WITH_INFO_BOX__)
  310.     extern void wgui_calendar_next_year(void);
  311.     extern void wgui_calendar_previous_year(void);
  312. #endif /* defined (__MMI_TOUCH_SCREEN__) && defined (__MMI_UI_CALENDAR_WITH_INFO_BOX__) */ 
  313.     extern void wgui_calendar_next_month_day(void);
  314.     extern void wgui_calendar_previous_month_day(void);
  315.     extern void wgui_calendar_next_month_week(void);
  316.     extern void wgui_calendar_previous_month_week(void);
  317. #ifdef __MMI_TOUCH_SCREEN__
  318.     extern BOOL wgui_calendar_translate_pen_event(
  319.                     calendar_control *c,
  320.                     mmi_pen_event_type_enum pen_event,
  321.                     S16 x,
  322.                     S16 y,
  323.                     gui_calendar_pen_enum *calendar_event);
  324. #endif /* __MMI_TOUCH_SCREEN__ */ 
  325. #endif /* (ENABLE_CALENDAR_CONTROL) */ 
  326. /* 072406 new calendar Start */
  327. #ifdef __MMI_UI_INTEGRATED_CALENDAR_SUPPORT__
  328.     #include "lcd_sw_rnd.h"
  329.     #include "gdi_include.h"
  330.     #define CAT83_MAX_CELL_TEXT         3
  331.     #define CAT83_POPUP_WAIT_TIME       2000
  332.     #ifdef __MMI_MAINLCD_240X320__
  333.         #define CAT83_FRAME_LINE_PIXEL              1
  334.         #define CAT83_FRAME_START_X                 9
  335.         #define CAT83_FRAME_START_Y                 44
  336.         #define CAT83_FRAME_WIDTH                   221
  337.         #define CAT83_FRAME_HEIGHT                  199
  338.         #define CAT83_TITLE_HEIGHT                  22
  339.         #define CAT83_HORIZONTAL_STRING_HEIGHT      30
  340.         #define CAT83_VERTICAL_SELECT_WIDTH         30
  341.         #define CAT83_HORIZONTAL_SELECT_GAP_BORDER  1
  342.         #define CAT83_HORIZONTAL_SELECT_GAP_OTHER   5
  343.         #define CAT83_CACHE_WIDTH                   (CAT83_FRAME_WIDTH/5)
  344.         #define CAT83_CACHE_HEIGHT                  (CAT83_FRAME_HEIGHT/5)
  345.         #ifdef __MMI_UI_CALENDAR_WITH_INFO_BOX__
  346.             #define CAT83_MAX_INFOBOX                   2
  347.             #define CAT83_INFOBOX_GAP                   1
  348.             #define CAT83_INFOBOX_ENTRY_HEIGHT          24
  349.             #define CAT83_INFOBOX_START_X               CAT83_FRAME_START_X
  350.             #define CAT83_INFOBOX_START_Y               245
  351.             #define CAT83_INFOBOX_WIDTH                 CAT83_FRAME_WIDTH
  352.             #define CAT83_INFOBOX_HEIGHT                ((CAT83_INFOBOX_ENTRY_HEIGHT*CAT83_MAX_INFOBOX)+(CAT83_INFOBOX_GAP*(CAT83_MAX_INFOBOX+1)))
  353.         #endif
  354.     #else
  355.     #endif
  356.     #define CALENDAR_CACHE_CELL_SIZE    (((CAT83_CACHE_WIDTH*CAT83_CACHE_HEIGHT*GDI_MAINLCD_BIT_PER_PIXEL)>>3)*2)
  357.     #define CALENDAR_CACHE_POPUP_SIZE   (((CAT83_FRAME_WIDTH>>1)*(CAT83_FRAME_HEIGHT>>1)*GDI_MAINLCD_BIT_PER_PIXEL)>>3)
  358.     typedef struct
  359.     {
  360.         U8 bg_index;
  361.         UI_image_ID_type icon_id;
  362.         UI_character_type text[CAT83_MAX_CELL_TEXT];
  363.         MMI_BOOL valid;
  364.     } wgui_cat83_cell_struct;
  365.     
  366.     typedef enum
  367.     {
  368.         IDLE_NORMAL,
  369.         IDLE_SMALL,
  370.         CAT83_CALENDAR_NORMAL,
  371.         CAT83_CALENDAR_SMALL
  372.     } CALENDAR_INIT_TYPE;
  373.     
  374.     typedef enum
  375.     {
  376.         CAT83_COLOR_CURRENT,
  377.         CAT83_COLOR_ONE_TASK,
  378.         CAT83_COLOR_MORE_TASK,
  379.         CAT83_COLOR_MENSTRUAL,
  380.         CAT83_COLOR_PP,
  381.         CAT83_COLOR_DANGER,
  382.         CAT83_COLOR_INVALID,        
  383.         CAT83_COLOR_TOTAL,
  384.         CAT83_COLOR_NONE = CAT83_COLOR_TOTAL
  385.     } CAT83_CELL_COLOR_INDEX;
  386.     
  387.     typedef enum
  388.     {
  389.         CAT83_SELECT_ALIGN_CENTER,
  390.         CAT83_SELECT_ALIGN_LEFT,
  391.         //CAT83_SELECT_ALIGN_RIGHT,
  392.         CAT83_SELECT_ALIGN_LINE,
  393.         CAT83_SELECT_ALIGN_CELL
  394.     } CAT83_SELECT_ALIGN_TYPE;
  395.     
  396.     typedef enum
  397.     {
  398.         CAT83_CELL_BG_FILL_HORIZONTAL,
  399.         CAT83_CELL_BG_FILL_VERTICAL
  400.     } CAT83_CELL_BG_FILL_TYPE;
  401.     
  402.     typedef enum
  403.     {
  404.         CAT83_CELL_TEXT_DISPLAY_DISABLE,
  405.         CAT83_CELL_TEXT_DISPLAY_CENTER,
  406.         CAT83_CELL_TEXT_DISPLAY_LEFT_BOTTOM
  407.     } CAT83_CELL_TEXT_DISPLAY_TYPE;
  408.     
  409.     typedef enum
  410.     {
  411.         CAT83_CELL_ICON_DISPLAY_DISABLE,
  412.         CAT83_CELL_ICON_DISPLAY_CENTER,
  413.         CAT83_CELL_ICON_DISPLAY_RIGHT_TOP
  414.     } CAT83_CELL_ICON_DISPLAY_TYPE;
  415.     typedef MMI_BOOL (*Cat83EventFuncPtr) (U32 highlighted_row, U32 highlighted_column);
  416.     extern void wgui_calendar_init(U32 calendar_type, U32 row_num, U32 column_num, U8* cell_buf, U8* popup_buf);
  417.     extern void wgui_cat83_set_bg(UI_image_ID_type bg_id);
  418.     extern void wgui_cat83_set_select_horizontal1(UI_image_ID_type left_up, UI_image_ID_type left_down, UI_image_ID_type right_up, UI_image_ID_type right_down, U8 *string, U32 align_type);
  419.     extern void wgui_cat83_set_select_horizontal1_string(U8 *string);
  420.     extern void wgui_cat83_set_select_horizontal1_handler(Cat83EventFuncPtr left_handler, Cat83EventFuncPtr right_handler);
  421.     extern void wgui_cat83_set_select_horizontal2(UI_image_ID_type left_up, UI_image_ID_type left_down, UI_image_ID_type right_up, UI_image_ID_type right_down, U8 *string, U32 align_type);
  422.     extern void wgui_cat83_set_select_horizontal2_string(U8 *string);
  423.     extern void wgui_cat83_set_select_horizontal2_handler(Cat83EventFuncPtr left_handler, Cat83EventFuncPtr right_handler);
  424.     extern void wgui_cat83_set_select_vertical(UI_image_ID_type top_up, UI_image_ID_type top_down, UI_image_ID_type bottom_up, UI_image_ID_type bottom_down, U8 **string_list, U32 align_type);
  425.     extern void wgui_cat83_set_select_vertical_string(U8 **string_list);
  426.     extern void wgui_cat83_set_select_vertical_handler(Cat83EventFuncPtr top_handler, Cat83EventFuncPtr bottom_handler);
  427.     extern void wgui_cat83_set_normal_title(U8 *string);
  428.     extern void wgui_cat83_set_menstrual_title(U8 color_index1, U8 *string1, U8 color_index2, U8 *string2);
  429.     extern void wgui_cat83_set_horizontal_string(U8 **string_list);
  430.     extern void wgui_cat83_set_cell_array(wgui_cat83_cell_struct *cell, U8 cell_bg_fill_type, U8 cell_text_display_type, U8 cell_icon_display_type);
  431.     extern void wgui_cat83_set_current(U32 current_row, U32 current_column);
  432.     extern void wgui_cat83_set_highlight(U32 highlighted_row, U32 highlighted_column);
  433.     extern void wgui_cat83_set_popup(U8 *message1, U8 *message2, U8 *message3);
  434. #ifdef __MMI_UI_CALENDAR_WITH_INFO_BOX__
  435.     extern void wgui_cat83_set_infobox(UI_image_ID_type *icon_list, U8 **string_list, U8 entry_num);
  436. #endif
  437.     extern void wgui_cat83_register_cell_highlight_handler(MMI_BOOL (*app_cell_highlight_handler)(U32 highlighted_row, U32 highlighted_column));
  438.     extern void wgui_cat83_register_left_arrow_key_handler(MMI_BOOL (*app_left_arrow_key_handler)(U32 highlighted_row, U32 highlighted_column));
  439.     extern void wgui_cat83_register_right_arrow_key_handler(MMI_BOOL (*app_right_arrow_key_handler)(U32 highlighted_row, U32 highlighted_column));
  440.     extern void wgui_cat83_register_up_arrow_key_handler(MMI_BOOL (*app_up_arrow_key_handler)(U32 highlighted_row, U32 highlighted_column));
  441.     extern void wgui_cat83_register_down_arrow_key_handler(MMI_BOOL (*app_down_arrow_key_handler)(U32 highlighted_row, U32 highlighted_column));
  442.     extern void wgui_cat83_register_up_side_key_handler(MMI_BOOL (*app_up_side_key_handler)(U32 highlighted_row, U32 highlighted_column));
  443.     extern void wgui_cat83_register_down_side_key_handler(MMI_BOOL (*app_down_side_key_handler)(U32 highlighted_row, U32 highlighted_column));
  444.     extern void ShowCategory83Screen(
  445.                     UI_image_ID_type bg_id,
  446.                     U8 **horizon_string_list,
  447.                     wgui_cat83_cell_struct *cell,
  448.                     U32 num_of_row,
  449.                     U32 num_of_column,
  450.                     U32 current_row,
  451.                     U32 current_column,
  452.                     U32 highlighted_row,
  453.                     U32 highlighted_column,
  454.                     U8 cell_bg_fill_type,
  455.                     U8 cell_text_display_type,
  456.                     U8 cell_icon_display_type);
  457. #endif
  458. #include "wgui_asyncdynamic_menuitems.h"
  459. #ifdef __MMI_MAINLCD_240X320__
  460. #define CAT85_MAIN_IMAGE_WIDTH  27
  461. #define CAT85_MAIN_IMAGE_HEIGHT 25
  462. #define CAT85_SUB_IMAGE_WIDTH   17
  463. #define CAT85_SUB_IMAGE_HEIGHT  17
  464. #define CAT85_MENUITEM_OFFSET   4
  465. #else
  466. #define CAT85_MAIN_IMAGE_WIDTH  27
  467. #define CAT85_MAIN_IMAGE_HEIGHT 25
  468. #define CAT85_SUB_IMAGE_WIDTH   17
  469. #define CAT85_SUB_IMAGE_HEIGHT  17
  470. #define CAT85_MENUITEM_OFFSET   2
  471. #endif
  472.     extern void ShowCategory85Screen(
  473.                     U8 *title,
  474.                     U16 title_icon,
  475.                     U16 left_softkey,
  476.                     U16 left_softkey_icon,
  477.                     U16 right_softkey,
  478.                     U16 right_softkey_icon,
  479.                     S32 number_of_items,
  480.                     GetAsyncItemFuncPtr get_item_func,
  481.                     GetAsyncHintFuncPtr get_hint_func,
  482.                     S32 highlighted_item,
  483.                     U16 main_icon,
  484.                     U16 sub_icon,
  485.                     U8 *history_buffer);
  486. /* 072406 new calendar End */
  487. #ifdef __cplusplus
  488. }
  489. #endif 
  490. #endif /* __WGUI_CALENDAR_H__ */