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

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.  * gui_tab.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  *   MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *   This file is intended for tab control lower layer irrespective of instance
  47.  *
  48.  * Author:
  49.  * -------
  50.  * -------
  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.  *------------------------------------------------------------------------------
  63.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  64.  *==============================================================================
  65.  *******************************************************************************/
  66. #ifndef _GUI_TAB_H
  67. #define _GUI_TAB_H
  68. #ifdef __MMI_TOUCH_SCREEN__
  69. #include "kal_non_specific_general_types.h"
  70. #include "TouchScreenGprot.h"
  71. #endif
  72. /***************************************************************************** 
  73. * Define
  74. *****************************************************************************/
  75. #define     MMI_TAB_PANE_LIST_HISTORY  1
  76. #define     MAX_TAB_ITEMS  12
  77. #define     MAX_TAB_PANES  4
  78. #define     UI_TAB_CONTROL_NORMAL   0x00000000
  79. #define     UI_TAB_CONTROL_CYCLIC   0x00000001
  80. /***************************************************************************** 
  81. * Typedef 
  82. *****************************************************************************/
  83. #ifdef __MMI_TOUCH_SCREEN__
  84. typedef enum 
  85. {
  86.     GUI_TAB_PEN_NONE,
  87.     GUI_TAB_PEN_ASYNC_PANE_SELECT
  88. } gui_tab_pane_event;
  89. #endif
  90. typedef enum
  91. {
  92.     TAB_CONTROL_WITH_TWO_ICON = 0,
  93.     TAB_CONTROL_WITH_THREE_ICON,
  94.     TAB_CONTROL_WITH_FOUR_ICON,
  95.     TAB_CONTROL_WITH_TWO_TEXT,
  96.     TAB_CONTROL_WITH_ONE_ICON
  97. } enum_tab_control_type;
  98. typedef struct
  99. {
  100.     PU8 highlight_image;
  101.     PU8 un_highlight_image;
  102. } struct_tab_icon_data;
  103. typedef struct
  104. {
  105.     PU8 highlight_image;
  106.     PU8 un_highlight_image;
  107. } struct_tab_icon_theme;
  108. typedef struct
  109. {
  110.     PU8 highlight_image;
  111.     PU8 un_highlight_image;
  112.     color un_highlight_text_color;
  113.     color highlight_text_color;
  114.     UI_font_type font;
  115. } struct_tab_text_data;
  116. typedef struct
  117. {
  118.     PU8 highlight_image;
  119.     PU8 un_highlight_image;
  120.     color text_color;
  121.     UI_font_type font;
  122. } struct_tab_text_theme;
  123. typedef struct
  124. {
  125.     UI_filled_area *back_filler;
  126.     UI_filled_area *high_filler;
  127.     PU8 left_indicator;
  128.     PU8 right_indicator;
  129.     UI_filled_area *title_filler;
  130.     color *text_color;
  131.     color *text_border_color;
  132.     UI_font_type text_font;
  133. } struct_tab_icontext_data;
  134. typedef struct
  135. {
  136.     UI_filled_area back_filler;
  137.     S32 left_indicator_id;
  138.     S32 right_indicator_id;
  139.     UI_filled_area title_filler;
  140.     color text_color;
  141.     UI_font_type font;
  142. } struct_tab_icontext_theme;
  143. typedef struct
  144. {
  145.     UI_string_type item_text;
  146.     PU8 item_icon;
  147. } struct_tab_items;
  148. typedef struct
  149. {
  150.     S16 highlighted_item[MAX_TAB_ITEMS];
  151.     S16 first_displayed_item[MAX_TAB_ITEMS];
  152.     S16 last_displayed_item[MAX_TAB_ITEMS];
  153. } struct_tab_list_history;
  154. typedef struct{
  155.     S32 x;
  156.     S32 y;
  157.     S32 width;
  158.     S32 height;
  159. } struct_tab_pane_info;
  160. typedef struct _struct_tab_control
  161. {
  162.     S32 x;
  163.     S32 y;
  164.     S32 width;
  165.     S32 height;
  166.     S32 type;   /* Value of this will be from the tab_control_type enum */
  167.     S32 n_items;
  168.     S32 first_displayed_item;
  169.     S32 last_displayed_item;
  170.     S32 highlighted_item;
  171.     S32 highlighted_pane;
  172.     S32 parent_id;
  173.     S32 navigation_index;
  174.     void (*set_callback) (void);
  175.     void (*set_data_callback) (void);
  176.     void (*reset_data_callback) (void);
  177.     void (*category_entry_callback) (void);
  178.     void (*category_exit_callback) (void);
  179.     void (*draw_function) (struct _struct_tab_control *);
  180.     void (*next_function) (struct _struct_tab_control *);
  181.     void (*prev_function) (struct _struct_tab_control *);
  182.     void (*highlight_function) (S32 index);
  183.     void (*goto_function) (struct _struct_tab_control *, S32 index);
  184.     void *type_data;
  185.     struct_tab_items *item_data;
  186. #ifdef MMI_TAB_PANE_LIST_HISTORY
  187.     struct_tab_list_history tab_list_history;
  188. #endif 
  189. #ifdef __MMI_TOUCH_SCREEN__ 
  190.     struct_tab_pane_info tab_pane_info[MAX_TAB_PANES];
  191.     S32 pen_down_pane_index;
  192. #endif /* __MMI_TOUCH_SCREEN__ */
  193.     S32 flags;
  194. } struct_tab_control;
  195. /***************************************************************************** 
  196. * Extern Global Variable
  197. *****************************************************************************/
  198. /***************************************************************************** 
  199. * Extern Global Function
  200. *****************************************************************************/
  201. extern void gui_create_tab_pane(
  202.                 struct_tab_control *tab_control,
  203.                 enum_tab_control_type type,
  204.                 S32 x,
  205.                 S32 y,
  206.                 S32 width,
  207.                 S32 height);
  208. extern void gui_associate_tab_pane_type_data(struct_tab_control *tab_control, void *type_data);
  209. extern void gui_associate_tab_pane_item_data(struct_tab_control *tab_control, struct_tab_items *item_data);
  210. extern void gui_add_item_tab_pane(struct_tab_control *tab_control, UI_string_type text, PU8 icon);
  211. extern void gui_show_tab_pane(struct_tab_control *tab_control);
  212. extern void gui_show_two_icon_tab_pane(struct_tab_control *tab_control);
  213. void gui_register_set_tab_pane_callback(struct_tab_control *tab_control, void (*callback) (void),
  214.                                         void (*set_data_callback) (void), void (*reset_data_callback) (void));
  215. extern void gui_go_to_item(struct_tab_control *tab_control, S32 index);
  216. void gui_set_tab_pane_hightlight_fucntion(struct_tab_control *tab_control, void (*f) (S32 item_index));
  217. extern void gui_highlight_function(struct_tab_control *tab_control, S32 index);
  218. extern void gui_goto_two_item_tab_pane(struct_tab_control *tab_control, S32 index);
  219. extern void gui_save_parent_id(struct_tab_control *tab_control, S32 parent_id);
  220. extern void gui_next_two_item_tab_pane(struct_tab_control *tab_control);
  221. extern void gui_prev_two_item_tab_pane(struct_tab_control *tab_control);
  222. extern void gui_show_text_tab_pane(struct_tab_control *tab_control);
  223. extern void gui_goto_three_item_tab_pane(struct_tab_control *tab_control, S32 index);
  224. extern void gui_next_three_item_tab_pane(struct_tab_control *tab_control);
  225. extern void gui_prev_three_item_tab_pane(struct_tab_control *tab_control);
  226. extern void gui_tab_pane_next_item(struct_tab_control *tab_control);
  227. extern void gui_tab_pane_prev_item(struct_tab_control *tab_control);
  228. extern void gui_show_icon_tab_pane(struct_tab_control *tab_control);
  229. extern void gui_goto_four_item_tab_pane(struct_tab_control *tab_control, S32 index);
  230. extern void gui_next_four_item_tab_pane(struct_tab_control *tab_control);
  231. extern void gui_prev_four_item_tab_pane(struct_tab_control *tab_control);
  232. extern void gui_show_three_icon_tab_pane(struct_tab_control *tab_control);
  233. extern void gui_move_tab_pane(struct_tab_control *tab_control, S32 x, S32 y);
  234. extern void gui_resize_tab_pane(struct_tab_control *tab_control, S32 height, S32 width);
  235. extern void gui_goto_one_item_tab_pane(struct_tab_control *tab_control, S32 index);
  236. extern void gui_next_one_item_tab_pane(struct_tab_control *tab_control);
  237. extern void gui_prev_one_item_tab_pane(struct_tab_control *tab_control);
  238. void gui_set_tab_pane_category_exit_function(struct_tab_control *tab_control, void (*f) (void));
  239. void gui_set_tab_pane_category_entry_function(struct_tab_control *tab_control, void (*f) (void));
  240. extern void gui_set_tab_pane_flags(struct_tab_control *tab_control, S32 flags);
  241. #ifdef __MMI_TOUCH_SCREEN__
  242. extern MMI_BOOL gui_tab_pane_translate_pen_event(struct_tab_control *tab_control, mmi_pen_event_type_enum pen_event, S32 x, S32 y, gui_tab_pane_event *tab_pane_event, S32 *tab_pane_item_to_highlight);
  243. #endif
  244. #endif /* _GUI_TAB_H */