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

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_tab_bars.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  *   MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *   Tab Bar - Category component
  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 _WGUI_TAB_BARS_H
  67. #define _WGUI_TAB_BARS_H
  68. #include "wgui.h"
  69. #include "gui_tab_bars.h"
  70. /***************************************************************************** 
  71. * Define
  72. *****************************************************************************/
  73. #define UI_MAX_TAB_BAR_ITEMS     20
  74. #ifdef __MMI_WGUI_MINI_TAB_BAR__
  75. #define MAX_MINI_TAB_BAR_ITEMS   16
  76. #define WGUI_MINI_TAB_BAR_ENABLED   0x00000001
  77. #define WGUI_MINI_TAB_BAR_IN_PARENT 0x00000002
  78. #endif /* __MMI_WGUI_MINI_TAB_BAR__ */ 
  79. /***************************************************************************** 
  80. * Typedef 
  81. *****************************************************************************/
  82. typedef struct
  83. {
  84.     U32 flags;
  85.     S8 first_displayed_item;
  86.     S8 last_displayed_item;
  87.     S8 focused_item;
  88. } wgui_tab_bar_history_struct;
  89. #ifdef __MMI_WGUI_MINI_TAB_BAR__
  90. typedef struct _MINI_TAB_BAR_STRUCT
  91. {
  92.     S32 x, y;                                           /* coordinates */
  93.     S32 width, height;                                  /* size */
  94.     color bg_color;                                     /* background color */
  95.     color selected_item_color;                          /* selected item color */
  96.     color normal_item_color;                            /* normal item color */
  97.     U8 num_of_items;                                    /* Number of items in tab */
  98.     U8 curr_index;                                      /* currently highlighted item index (start from 0) */
  99.     U16 menu_item_id[MAX_MINI_TAB_BAR_ITEMS];           /* ID of each menuitem in tab */
  100.     FuncPtr item_entry_func[MAX_MINI_TAB_BAR_ITEMS];    /* Entry function of each menuitem in tab */
  101.     S32 flags;                                          /* Information & state flag */
  102. } gui_mini_tab_bar_struct;
  103. #endif /* __MMI_WGUI_MINI_TAB_BAR__ */ 
  104. /***************************************************************************** 
  105. * Extern Global Variable
  106. *****************************************************************************/
  107. extern horizontal_tab_bar MMI_horizontal_tab_bar;
  108. extern tab_bar_item_type MMI_tab_bar_items[UI_MAX_TAB_BAR_ITEMS];
  109. /***************************************************************************** 
  110. * Extern Global Function
  111. *****************************************************************************/
  112. extern void wgui_create_horizontal_tab_bar(
  113.                 BOOL contain_hint,
  114.                 UI_string_type hint,
  115.                 S8 n_item,
  116.                 S8 focused_item,
  117.                 MMI_BOOL keep_pen_context);
  118. extern void wgui_close_horizontal_tab_bar(void);
  119. extern void wgui_show_horizontal_tab_bar(void);
  120. extern void wgui_show_horizontal_tab_bar_hint_area(void);
  121. extern void wgui_show_horizontal_tab_bar_tab_area(void);
  122. extern void wgui_move_horizontal_tab_bar(S32 x, S32 y);
  123. extern void wgui_horizontal_tab_bar_goto_home(void);
  124. extern void wgui_horizontal_tab_bar_goto_end(void);
  125. extern void wgui_horizontal_tab_bar_goto_item(int index);
  126. extern void wgui_horizontal_tab_bar_goto_next_item(void);
  127. extern void wgui_horizontal_tab_bar_goto_prev_item(void);
  128. extern void wgui_horizontal_tab_bar_start_blinking(int index);
  129. extern void wgui_horizontal_tab_bar_stop_blinking(int index);
  130. extern void wgui_get_horizontal_tab_bar_history(wgui_tab_bar_history_struct *history);
  131. extern void wgui_set_horizontal_tab_bar_history(wgui_tab_bar_history_struct *history);
  132. void wgui_set_horizontal_tab_bar_select_callback(void (*select_callback) (int index));
  133. #ifdef __MMI_TOUCH_SCREEN__
  134. extern void wgui_enable_horizontal_tab_bar_pen_events(BOOL enable);
  135. extern BOOL wgui_horizontal_tab_bar_translate_pen_event(mmi_pen_event_type_enum pen_event, S16 x, S16 y);
  136. #endif /* __MMI_TOUCH_SCREEN__ */ 
  137. #ifdef __MMI_WGUI_MINI_TAB_BAR__
  138. extern void wgui_init_mini_tab_bar(void);
  139. extern void wgui_setup_mini_tab_bar(
  140.                 S32 x,
  141.                 S32 y,
  142.                 S32 width,
  143.                 S32 height,
  144.                 color bg_color,
  145.                 color selected_color,
  146.                 color normal_color,
  147.                 U8 count,
  148.                 U16 *menu_item_id,
  149.                 FuncPtr *item_entry_func);
  150. extern MMI_BOOL wgui_if_mini_tab_bar_enable(void);
  151. extern MMI_BOOL wgui_if_mini_tab_bar_in_parent(void);
  152. extern void wgui_enable_mini_tab_bar(U16 item_id);
  153. extern void wgui_disable_mini_tab_bar(void);
  154. extern void wgui_mini_tab_bar_set_flag_on(S32 flag);
  155. extern void wgui_mini_tab_bar_set_flag_off(S32 flag);
  156. extern void wgui_register_mini_tab_bar_func(U16 *menu_item_id, FuncPtr item_entry_func[]);
  157. extern void wgui_mini_tab_bar_goto_next(void);
  158. extern void wgui_mini_tab_bar_goto_prev(void);
  159. extern void wgui_show_mini_tab_bar(void);
  160. extern U8 wgui_mini_tab_bar_get_index(void);
  161. #endif /* __MMI_WGUI_MINI_TAB_BAR__ */ 
  162. #endif /* _WGUI_TAB_BARS_H */