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

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.  * ToDoListDef.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  * MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  * This file defines global function prototypes of To Do List application.
  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.  * 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.  * removed!
  91.  * removed!
  92.  * removed!
  93.  *
  94.  * removed!
  95.  * removed!
  96.  * removed!
  97.  *
  98.  * removed!
  99.  * removed!
  100.  * removed!
  101.  *
  102.  * removed!
  103.  * removed!
  104.  * removed!
  105.  *
  106.  * removed!
  107.  * removed!
  108.  * removed!
  109.  *
  110.  * removed!
  111.  * removed!
  112.  * removed!
  113.  *
  114.  * removed!
  115.  * removed!
  116.  * removed!
  117.  *
  118.  *------------------------------------------------------------------------------
  119.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  120.  *==============================================================================
  121.  *******************************************************************************/
  122. /**
  123.  * Copyright Notice
  124.  * ?2002 - 2003, Pixtel Communications, Inc., 1489 43rd Ave. W.,
  125.  * Vancouver, B.C. V6M 4K8 Canada. All Rights Reserved.
  126.  *  (It is illegal to remove this copyright notice from this software or any
  127.  *  portion of it)
  128.  */
  129. /**************************************************************
  130.    FILENAME : ToDoListDef.h
  131.    PURPOSE     : Data Account application
  132.    REMARKS     : nil
  133.    AUTHOR      : Arvind
  134.    DATE     : 14th July,2003
  135. **************************************************************/
  136. #ifndef _MMI_TODOLISTDEF_H
  137. #define _MMI_TODOLISTDEF_H
  138. #include "MMI_features.h"
  139. #ifdef __MMI_TODOLIST__
  140. #include "PixtelDataTypes.h"
  141. #include "AlarmFrameworkProt.h"
  142. #ifdef __MMI_CLNDR_ICON_SUPPORT__
  143. #include "CalendarDef.h"
  144. #endif 
  145. /* 
  146.  * Define
  147.  */
  148. #ifdef __MMI_ADVANCED_TODO__
  149. #define MAX_INLINE_ITEM_TODO_LIST      18
  150. #else 
  151. #define MAX_INLINE_ITEM_TODO_LIST      9
  152. #endif 
  153. #define MAX_LEN_LEAST_VAR           8
  154. #define MAX_LEN_MOST_VAR            32
  155. #define TDL_MAX_TIME_STR_LEN        14*ENCODING_LENGTH  /* 12:12 - 13:15 */
  156. //PMT START LANGUAGE 20060104
  157. //This is required because in Bulgairan the maximum length of day is 20
  158. #define TDL_MAX_DAY_STR_LEN            21*ENCODING_LENGTH       /* 04/03/12 Thu */
  159. /* PMT END LANGUAGE 20060104 */
  160. #define MAX_MONTH_LEN               3*ENCODING_LENGTH
  161. #define MAX_YEAR_LEN             5*ENCODING_LENGTH
  162. #define TODO_FREQ_NUM         5
  163. #define  TDL_MAX_DAYS_PER_MONTH        31
  164. #define  MAX_DAY_IN_WEEK               7
  165. #define MAX_TODO_LIST_TEMPLATE         10
  166. #define TDL_MAX_NOTE_PREFIX_LEN        30*ENCODING_LENGTH
  167. #define MAX_TODO_LIST_REM_NOTE         MAX_TODO_LIST_NOTE + TDL_MAX_NOTE_PREFIX_LEN
  168. #ifdef __MMI_ADVANCED_TODO__
  169. #define TDL_DT_DATE_AND_TIMEPERIOD  0
  170. #define TDL_DT_ONLY_START_DT 1
  171. #define TDL_DT_ALL  2
  172. #define TDL_FIELD_MASK_LOCATION 0x04
  173. #define TDL_FIELD_MASK_NOTE 0x08
  174. #define TDL_FIELD_MASK_ALARM 0x10
  175. #define TDL_FIELD_MASK_REPEAT 0x20
  176. #define TDL_FIELD_MASK_PRIORITY 0x40
  177. #define NUM_OF_TASK_PRIORITY 3
  178. #define TDL_TASK_VIEW 0
  179. #define TDL_TASK_EDIT 1
  180. #endif /* __MMI_ADVANCED_TODO__ */ 
  181. /* 
  182.  * Typedef 
  183.  */
  184. typedef struct
  185. {
  186.     S32 HilitedAlmState;    /* alarm on/off state in inline editor screen */
  187.     S32 HilitedRepeat;      /* repeat criterion in inline editor screen */
  188.     history *HistoryPtr;    /* pointer to store history buffer when inserting template */
  189.     MYTIME ClndrDate;       /* date/time information from calendar application */
  190.     ToDoListNode TaskList[NUM_OF_TDL];
  191.     S8 MonBuff[MAX_MONTH_LEN];
  192.     S8 DayBuff[MAX_MONTH_LEN];
  193.     S8 YearBuff[MAX_YEAR_LEN];
  194.     S8 HourBuff1[MAX_MONTH_LEN];
  195.     S8 MinBuff1[MAX_MONTH_LEN];
  196.     S8 HourBuff2[MAX_MONTH_LEN];
  197.     S8 MinBuff2[MAX_MONTH_LEN];
  198.     S8 RminderNote[MAX_TODO_LIST_REM_NOTE];
  199.     S8 NoteBuff[MAX_TODO_LIST_NOTE];
  200.     U8 DateStrBuff[TDL_MAX_DAY_STR_LEN];
  201.     U8 TimeStrBuff[TDL_MAX_TIME_STR_LEN];
  202.     U8 SortedList[NUM_OF_TDL];
  203.     U8 IsCalledByCalender;  /* if to do list is entered via Calendar app */
  204.     U8 CurrSelectedTask;    /* index of current selected task */
  205.     U8 CurrHiliteOption;    /* index of current higlighted option */
  206.     U8 TotalListedTask;     /* total number of listed task */
  207.     U8 SelectedTemplate;    /* index of current selected template */
  208.     U8 IsListModified;
  209.     U8 SelectedItemInView;  /* index of selected item in View screen */
  210.     U8 CurrTaskIndex;       /* index of current selected task */
  211.     U8 IsDOWSet;
  212.     U8 NoteIndex;           /* index of inline editor for notes */
  213.     U8 DOWIndex;            /* index of inline editor for notes */
  214. #ifdef __MMI_ADVANCED_TODO__
  215.     U8 CurrTaskType;
  216.     U8 FieldFlag;       /* used to indicate the fields of the task
  217.                            First two bits are for datetime/format, and the following bits are for location, note, alarm, repeat, priority */
  218.     S8 MonBuffEnd[MAX_MONTH_LEN];
  219.     S8 DayBuffEnd[MAX_MONTH_LEN];
  220.     S8 YearBuffEnd[MAX_YEAR_LEN];
  221.     U8 EndDateStrBuff[TDL_MAX_DAY_STR_LEN];
  222.     U8 EndTimeStrBuff[TDL_MAX_TIME_STR_LEN];
  223.     S8 LocationBuff[MAX_TODO_LIST_NOTE];
  224.     U8 LocationIndex;   /* index of inline editor for location */
  225.     S32 HilitedPriorityState;   /* priority state in inline editor screen */
  226.     S32 HilitedInlineEditor;    /* current index of inline editor */
  227.     U8 DateUpdate;
  228. #endif /* __MMI_ADVANCED_TODO__ */ 
  229. #ifdef __MMI_BIRTHDAY_REMINDER__
  230.     U16 *PBIndexList;
  231.     U16 CurrHighlightBRIndex;
  232. #endif /* __MMI_BIRTHDAY_REMINDER__ */ 
  233. } tdl_context_struct;
  234. typedef enum
  235. {
  236.     TODO_LIST_ALARM_OFF = 0,
  237.     TODO_LIST_ALARM_ON,
  238. #ifdef __MMI_ADVANCED_TODO__
  239.     TODO_LIST_ALARM_BEFORE_5_MINS,
  240.     TODO_LIST_ALARM_BEFORE_15_MINS,
  241.     TODO_LIST_ALARM_BEFORE_30_MINS,
  242. #endif /* __MMI_ADVANCED_TODO__ */ 
  243.     TODO_LIST_ALARM_TOTAL
  244. } TODO_LIST_ALARM;
  245. typedef enum
  246. {
  247.     TODO_LIST_TASK_OPTION_VIEW = 0,
  248.     TODO_LIST_TASK_OPTION_ADD,
  249.     TODO_LIST_TASK_OPTION_EDIT,
  250.     TODO_LIST_TASK_OPTION_DELETE,
  251.     TODO_LIST_TASK_OPTION_DELETE_ALL,
  252. #if defined(__MMI_VCALENDAR__)
  253.     TODO_FROM_FMGR,
  254.     TODO_FROM_NETWORK,
  255. #endif /* defined(__MMI_VCALENDAR__) */ 
  256.     TODO_LIST_OPTION_TOTAL
  257. } TDL_OPTION_ENUM;
  258. #ifdef __MMI_ADVANCED_TODO__
  259. typedef enum
  260. {
  261.     TDL_TASK_REMINDER = 0,
  262.     TDL_TASK_MEETING,
  263.     TDL_TASK_COURSE,
  264.     TDL_TASK_DATE,
  265.     TDL_TASK_CALL,
  266.     TDL_TASK_ANNIVERSARY,
  267.     TDL_TOTAL_TASK
  268. } TDL_TASK_TYPE_ENUM;
  269. typedef enum
  270. {
  271.     TDL_TASK_PRIORITY_LOW = 0,
  272.     TDL_TASK_PRIORITY_MEDIUM,
  273.     TDL_TASK_PRIORITY_HIGH,
  274.     TDL_TOTAL_PRIORITY
  275. } TDL_TASK_PRIORITY;
  276. #endif /* __MMI_ADVANCED_TODO__ */ 
  277. /* 
  278.  * Extern Global Variable
  279.  */
  280. extern tdl_context_struct g_tdl_cntx;
  281. extern const U8 g_tdl_freq_set[];
  282. /* 
  283.  * Extern Global Function
  284.  */
  285. extern void InitToDoListApp(void);
  286. extern void DeInitToDoListApp(void);    /* currently unused */
  287. extern void TDLShowSpecificDateList(void);
  288. extern void TDLGetDaysToBeHilited(MYTIME mytime, U8 *daylist);
  289. extern void TDLExitReminderScreen(void);
  290. extern void EntryTDLReminder(void);
  291. extern void mmi_tdl_set_clndr(MYTIME *CalTime, U8 Type);
  292. extern void TDLFCBInit(void);
  293. /* local function */
  294. extern void TDLReInitQueueCBH(void);
  295. extern void TDLExpiryTimeCBH(U8 index, MYTIME *alarmTime, U8 *Freq, U8 *WeekDays, MYTIME *preReminder);
  296. extern U8 TDLExpiryHandler(U8 index, U16 *period, BOOL power_on);
  297. extern void mmi_tdl_reset_handler(void *msg);
  298. extern void HighlightTDLMenu(void);
  299. extern void EntryTDLTaskList(void);
  300. extern void mmi_tdl_task_list_goback(void);
  301. extern void HighlightTDLTaskList(S32 nIndex);
  302. extern void EntryTDLTaskListOption(void);
  303. extern void HighlightTDLTaskOption(S32 nIndex);
  304. extern void EntryTDLDelete(void);
  305. extern void EntryTDLDeleteAll(void);
  306. extern void EntryTDLNoteOption(void);
  307. extern void EntryTDLTemplate(void);
  308. extern void HighlightTDLTemplateIndex(S32 nIndex);
  309. extern void TDLInsertTemplate(void);
  310. extern void mmi_tdl_highlight_hdlr_note_option_save(void);
  311. extern void mmi_tdl_highlight_hdlr_note_option_template(void);
  312. extern void mmi_tdl_highlight_hdlr_note_option_input_method(void);
  313. extern void EntryTDLViewTask(void);
  314. extern void ExitTDLViewTask(void);
  315. extern void EntryTDLEditTask(void);
  316. extern void ExitTDLTaskList(void);
  317. extern void ExitTDLEditTask(void);
  318. extern void HighlightTDLInlineRepeat(S32 index);
  319. extern void EditToDoListTask(void);
  320. extern void HighlightTDLViewInlineItem(S32 index);
  321. extern void HighlightTDLEditInlineItem(S32 index);
  322. extern void EntryTDLEditNote(void);
  323. extern void TDLShowAllList(void);
  324. extern void EntryTDLReminder(void);
  325. extern void ExitTDLReminder(void);
  326. extern void ToDoListReminder(void *ReminderId);
  327. extern void TDLGoBackInlineScreen(void);
  328. extern void EntryTDLSaveConfirm(void);
  329. extern void TDLInitInlineVariables(void);
  330. extern U8 TDLFillInlineStruct(void);
  331. extern U8 TDLFillInlineStructForView(void);
  332. extern void TDLGoBack2History(void);
  333. extern void TDLDateEditorCallBack(U8 *DateStr, U8 *day, U8 *month, U8 *year);
  334. extern void TDLTimeEditorCallBack(
  335.                 U8 *string_buffer,
  336.                 U8 *hours_buffer1,
  337.                 U8 *minutes_buffer1,
  338.                 U8 *AM_PM_flag1,
  339.                 U8 *hours_buffer2,
  340.                 U8 *minutes_buffer2,
  341.                 U8 *AM_PM_flag2);
  342. extern void TDLWriteToNvram(U8 index);
  343. extern void TDLReadFromNvram(void);
  344. extern void TDLGoToSelectedOption(void);
  345. extern void TDLAddDefaultRecord(void);
  346. extern void TDLDeleteOneTask(void);
  347. extern void TDLDeleteAllTask(void);
  348. extern void TDLShowPopupScreen(U16 Msg);
  349. extern void TDLGotoListOrOptionScreen(void);
  350. extern void TDLSaveTask(void);
  351. extern void TDLMakeListOfAllTask(void);
  352. extern void TDLMakeListOfSelectedDate(U8 Type);
  353. extern void TDLSortTask(void);
  354. extern U8 TDLIsTaskChanged(void);
  355. extern void SetToDoListAlarm(U8 i);
  356. extern void HighlightTdlView(void);
  357. extern void HighlightTdlEdit(void);
  358. extern void HighlightTdlDelete(void);
  359. extern void HighlightTdlAdd(void);
  360. extern void HighlightTdlDeleteAll(void);
  361. extern void TdlExecView(void);
  362. extern void TdlExecEdit(void);
  363. extern void TdlExecDelete(void);
  364. extern U8 mmi_tdl_pim_util_get_new_index(void);
  365. extern U8 mmi_tdl_delete_record(U8 index);
  366. extern U16 mmi_tdl_is_valid_fields(ToDoListNode *tdlItem);
  367. extern MMI_BOOL mmi_tdl_get_time_info(U8 tdl_index);
  368. extern U8 TDLGetTotalItem(void);
  369. #ifdef __SYNCML_SUPPORT__
  370. extern U16 mmi_tdl_get_total_index(U16* list);
  371. extern U16 mmi_tdl_sync_task(U8 action, S8 *path, U16 *index);
  372. extern U16 mmi_tdl_vcalendar_err_mapping(U16 vCalenar_err);
  373. extern S32 mmi_tdl_synML_convert_vtodo_to_vevent(S8 *file_path_name);
  374. #endif
  375. #ifdef __MMI_VCALENDAR__
  376. extern U8 TdlInsertTask(ToDoListNode *, U8);
  377. #ifdef MMI_ON_WIN32
  378. extern void mmi_vclndr_init(void);
  379. #endif 
  380. #endif /* __MMI_VCALENDAR__ */ 
  381. #ifdef __MMI_ADVANCED_TODO__
  382. extern void mmi_tdl_entry_select_task_type(void);
  383. extern void mmi_tdl_set_dt_type(U8 dt_type);
  384. extern U8 mmi_tdl_get_dt_type(void);
  385. extern void mmi_tdl_disable_field(U8 index);
  386. extern MMI_BOOL mmi_tdl_get_field_state(U8 index);
  387. extern void mmi_tdl_time_editor_callback(U8 *string_buffer, U8 *hours_buffer, U8 *min_buffer, U8 *AM_PM_flag);
  388. extern void mmi_tdl_highlight_meeting(void);
  389. extern void mmi_tdl_highlight_course(void);
  390. extern void mmi_tdl_highlight_date(void);
  391. extern void mmi_tdl_highlight_call(void);
  392. extern void mmi_tdl_highlight_anniversary(void);
  393. extern void mmi_tdl_highlight_reminder(void);
  394. extern void mmi_tdl_set_inline_icon(U16 *icons, U8 inline_num);
  395. extern MMI_BOOL mmi_tdl_get_fields_of_task(U8 task_type);
  396. extern void mmi_tdl_compute_reminder_time(ToDoListNode *task, MYTIME *preReminder);
  397. extern void mmi_tdl_get_period_task(void);
  398. extern void mmi_tdl_get_time_string(ToDoListNode *task, MYTIME* seletedDate, S8 *timeString);
  399. extern void mmi_tdl_get_date_string(U16 year, U8 month, U8 day, S8 *timeString);
  400. extern S32 mmi_tdl_get_daily_async_items(S32 start_indx, gui_iconlist_menu_item *menuData, S32 num_item);
  401. extern S32 mmi_tdl_get_all_async_items(S32 start_indx, gui_iconlist_menu_item *menuData, S32 num_item);
  402. extern void mmi_tdl_get_next_day_redraw(void);
  403. extern void mmi_tdl_get_previous_day_redraw(void);
  404. #endif /* __MMI_ADVANCED_TODO__ */ 
  405. #ifdef __MMI_CLNDR_ICON_SUPPORT__
  406. extern void mmi_tdl_get_monthly_task_with_icon(MYTIME *ClndrTime, clndr_task_icon_struct *daylist);
  407. extern void mmi_tdl_set_task_icon(clndr_task_icon_struct *TaskInDay, U8 date, ToDoListNode *task);
  408. #endif /* __MMI_CLNDR_ICON_SUPPORT__ */ 
  409. #ifdef __MMI_CLNDR_WEEKLY_VIEW_SUPPORT__
  410. /* extern void mmi_tdl_get_weekly_tasks (MYTIME* SelectedDate, clndr_weekly_task_struct *PeriodList, U8 PeriodInterval, U8 PeriodRow); */
  411. extern void mmi_tdl_get_weekly_tasks(
  412.                 MYTIME *SelectedDate,
  413.                 clndr_task_icon_struct *TaskInPeriod,
  414.                 U8 PeriodInterval,
  415.                 U8 PeriodRow);
  416. extern void mmi_tdl_set_weekly_task(
  417.                 clndr_task_icon_struct *TaskInPeriod,
  418.                 ToDoListNode *task,
  419.                 U8 dow,
  420.                 U8 PeriodInterval,
  421.                 U8 StartCheck);
  422. #endif /* __MMI_CLNDR_WEEKLY_VIEW_SUPPORT__ */ 
  423. #endif /* __MMI_TODOLIST__ */ 
  424. #ifdef __MMI_BIRTHDAY_REMINDER__
  425. extern void mmi_tdl_construct_birthday_memory(void);
  426. extern void mmi_tdl_destruct_birthday_memory(void);
  427. extern void mmi_birthday_highlight_make_call(void);
  428. extern void mmi_birthday_make_call(void);
  429. extern void mmi_birthday_highlight_send_sms(void);
  430. extern void mmi_entry_birthday_option_screen(void);
  431. extern void mmi_birthday_send_sms(void);
  432. #ifdef MMS_SUPPORT
  433. extern void mmi_birthday_highlight_send_mms(void);
  434. extern void mmi_birthday_send_mms(void);
  435. #endif /*# MMS_SUPPORT */
  436. extern MMI_BOOL mmi_birthday_check_pb_number(U8 *pbNumber);
  437. #endif /* __MMI_BIRTHDAY_REMINDER__ */ 
  438. #endif /* _MMI_TODOLISTDEF_H */