📄 mmischedule.c
字号:
/*******************************************************************************
CONDAT (UK)
********************************************************************************
This software product is the property of Condat (UK) Ltd and may not be
disclosed to any third party without the express permission of the owner.
********************************************************************************
$Project name: Basic MMI
$Project code: BMI (6349)
$Module: schedule
$File: Mmischedule.c
$Revision: 1.0
$Author: Condat(UK)
$Date: 25/10/00
********************************************************************************
Description
This provides the main calculator functionality
********************************************************************************
$History: MmiToolkit.c
25/10/00 Original Condat(UK) BMI version.
14/08/02 gdy add
27/08/02 gdy add
$End
*******************************************************************************/
/******************************************************************************
Include Files
*******************************************************************************/
#define CLEAR_BOTTOM_ZONE dspl_Clear( KEY_AREA );
#define ENTITY_MFW
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#if defined (NEW_FRAME)
#include "typedefs.h"
#include "vsi.h"
#include "pei.h"
#include "custom.h"
#include "gsm.h"
#else
#include "stddefs.h"
#include "custom.h"
#include "gsm.h"
#include "vsi.h"
#include "GameDisplay.h"
#endif
#include "MmiBookShared.h"
#include "MmiEditor.h"
#include "Mfw_edt.h"
#include "MmiDialogs.h"
#include "p_sim.h"
#include "mfw_mfw.h"
#include "mfw_win.h"
#include "mfw_edt.h"
#include "mfw_tim.h"
#include "mfw_phb.h"
#include "ksd.h"
#include "psa.h"
#include "mfw_icn.h"
#include "mfw_mnu.h"
#include "mfw_lng.h"
#include "mfw_sat.h"
#include "mfw_kbd.h"
#include "mfw_nm.h"
#include "mfw_sms.h"
#include "dspl.h"
#include "MmiMmi.h"
#include "MmiDummy.h"
#include "MmiDialogs.h"
#include "MmiLists.h"
#include "MmiIdle.h"
#include "MmiSoftkeys.h"
#include "MmiIcons.h"
#include "MmiMenu.h"
#include "MmiMain.h"
#include "MmiStart.h"
#include "MmiPins.h"
#include "MmiSettings.h"
#include "MmiSmsidle.h"
#include "MmiEditor.h"
#include "MmiBookShared.h"
#include "MmiSmsMenu.h"
//#include "MmiStopwatch.h"
#include "Mmieditor.h"
#include "Mmieditor_i.h"
#include "Mmisounds.h"
#include "Mmilists.h"
//#include "Mminote.h"
#include "Mmitoolkit_timer.h"
#include "gdi.h"
#include "Audio.h"
#include "MmiSounds.h"
#include "MmiResources.h"
#include "Td.h"
#include "mfw_ffs.h"
#include "GameDisplay.h"
#include "Mmismssend.h"
#include "Mmismsmenu.h"
#include "cus_aci.h"
#include "p_sim.h"
#include "pcm.h"
#include "Mmischedule.h"
//#include "bmieastapi.h"
#include "mmiusersymbolinput.h"
#include "mmitextinput.h" /* 2003/12/04 sunsj */
//wyj 2003.11.11
#include "TdDisplay.h"
//yhf 2004.05.17
//#include "mmiicnother.h"
typedef struct
{
T_MMI_CONTROL mmi_control;
T_MFW_HND parent_win;
T_MFW_HND win;
T_MFW_HND info_tim;
T_MFW_HND kbd;
T_EDITOR_DATA editor_data;
T_MFW_HND editor_win;
T_MFW_HND menu_options_win;
TIMEDATE * calin;
MONTHTABLE * month_table;
int year;
int month;
int day;
int wday;
}tddata;
typedef enum
{
TD_INIT,
TD_EXIT
}td_event;
typedef struct
{
T_MMI_CONTROL mmi_control;
T_MFW_HND parent_win;
T_MFW_HND win;
T_MFW_HND info_tim;
T_MFW_HND kbd;
T_EDITOR_DATA editor_data;
T_MFW_HND editor_win;
T_MFW_HND editor_handle;
T_MFW_HND menu_options_win;
T_MFW_HND menu_options_win1;
MfwEdtAttr editAttr;
char time[6];
int index;
}schedule_data;
typedef enum
{
SCHE_INIT,
SCHE_EDIT,
SCHE_EXIT
}sche_event;
typedef enum
{
TR_TIME,
TR_RING,
TR_EXIT
}tr_event;
typedef struct
{
T_MMI_CONTROL mmi_control;
T_MFW_HND parent_win;
T_MFW_HND win;
T_MFW_HND kbd;
T_MFW_HND editor_handle;
T_MFW_HND menu_options_win;
MfwEdtAttr editAttr;
char time[8];
int index;
int id;
BOOL AMANDPM;
BOOL position;
}TR_data;
typedef struct
{
T_MMI_CONTROL mmi_control;
T_MFW_HND parent_win;
T_MFW_HND win;
T_MFW_HND kbd;
T_MFW_HND editor_win;
T_EDITOR_DATA editor_data;
T_MFW_HND menu_options_win;
int index;
int id;
int count;
int flag;
int flag1;
}ScheBrowse_data;
typedef enum
{
SCHEBROWSE_TODAY,
SCHEBROWSE_ALL,
SCHEBROWSE_EXIT
}ScheBrowse_event;
typedef struct
{
T_MMI_CONTROL mmi_control;
T_MFW_HND parent_win;
T_MFW_HND win;
T_MFW_HND kbd;
T_MFW_HND editor_win;
T_EDITOR_DATA editor_data;
ScheBrowse_data * data1;
uint8 string[SCHE_LEN];
}change_data;
typedef enum
{
CHANGE_INIT,
CHANGE_SMS,
CHANGE_EXIT
}change_evnet;
typedef struct
{
T_MMI_CONTROL mmi_control;
T_MFW_HND parent_win;
T_MFW_HND win;
T_MFW_HND kbd;
T_MFW_HND info_win;
int id;
}all_data;
typedef enum
{
ALL_INIT,
OLD_SCHEDULE,
ALL_EXIT
}all_event;
//#define SCHEDULE_NUMBER 70
extern char CurrentScheFileName[10];
extern ScheTable[3][10];
FlashSchedule sche_data;
int ToolkitTitle=0;//gdy add
T_MFW_SCHE_INDEX replace[SCHEDULE_NUMBER];
static MfwHnd sche_win=NULL;
static MfwHnd TR_win=NULL;
static MfwHnd calin_win=NULL;
static MfwHnd browse_win=NULL;
static MfwHnd menu_win=NULL;
static int sche_index=0;
//static int sche_year;
//static int sche_month;
//static int sche_day;
//static int sche_wday;
static int change_index;
static int browse_flag;
static T_MFW_HND calin_create(MfwHnd parent_window);
static void calin_DialogCB(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static int calin_win_cb (T_MFW_EVENT event,T_MFW_WIN * win);
void calin_destroy (T_MFW_HND own_window);
static int calin_kbd_cb (T_MFW_EVENT event, T_MFW_KBD *keyboard);
static T_MFW_HND sche_create(MfwHnd parent_win);
static void sche_DialogCB(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
void ScheSetEditor(T_MFW_HND win);
void ScheSetPhoneEditor(T_MFW_HND win);
static void ScheCB( T_MFW_HND win,USHORT Identifier,UBYTE reason);
static int sche_win_cb (T_MFW_EVENT event,T_MFW_WIN * win);
static int sche_kbd_cb (T_MFW_EVENT event, T_MFW_KBD *keyboard);
static void reset_editor(U16 winPx,U16 winPy,U16 winSx,U16 winSy,U8 fgColor,U8 font,U8 mode,
U8 *controls, char *text,U16 size,MfwEdtAttr* attr,U8 dsplTitle);
void sche_dialog_cb(T_MFW_HND win, USHORT event, UBYTE reason);
static T_MFW_HND TR_create(MfwHnd parent_win);
static void TR_DialogCB(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static int TR_kbd_cb (T_MFW_EVENT event, T_MFW_KBD *keyboard);
void TR_dialog_cb(T_MFW_HND win, USHORT event, UBYTE reason);
void TRdestroy(T_MFW_HND own_window);
int TimeAndRing(MfwHnd parent_window);
static int TR_win_cb (T_MFW_EVENT event,T_MFW_WIN * win);
static T_MFW_HND browse_create(MfwHnd parent_win);
static void ScheBrowse_DialogCB(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
static int browse_win_cb (T_MFW_EVENT event,T_MFW_WIN * win);
static int ScheBrowse_kbd_cb (T_MFW_EVENT event, T_MFW_KBD *keyboard);
void ScheBrowse_destroy(T_MFW_HND own_window);
static T_MFW_HND change_create(MfwHnd parent_win);
static void BrowseCB( T_MFW_HND win,USHORT Identifier,UBYTE reason);
void ChangeSetEditor(T_MFW_HND win);
static void change_DialogCB(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
void change_destroy(T_MFW_HND own_window);
void type_dialog_cb(T_MFW_HND win, USHORT event, UBYTE reason);
static T_MFW_HND all_create(MfwHnd parent_win);
static void all_DialogCB(T_MFW_HND win, USHORT event, SHORT value, void * parameter);
void all_destroy(T_MFW_HND own_window);
static int all_kbd_cb (T_MFW_EVENT event, T_MFW_KBD *keyboard);
void all_dialog_cb(T_MFW_HND win, USHORT event, UBYTE reason);
void old_dialog_cb(T_MFW_HND win, USHORT event, UBYTE reason);
static void sche_menu_cb(T_MFW_HND parent_win, UBYTE identifier, UBYTE reason);
void no_dialog_cb(T_MFW_HND win, USHORT event, UBYTE reason);
void delete_dialog_cb(T_MFW_HND win, USHORT event, UBYTE reason);
int ScheRecordAddOneIndex(int k);
int ScheRecordReadOneIndex(int k);
void BrowseDisplay(FlashSchedule * data,ScheBrowse_data* t);
effs_t Flash_ScheWrite(char * filename);
void copy(T_MFW_SCHE_INDEX *a, T_MFW_SCHE_INDEX *b);
void exchange(T_MFW_SCHE_INDEX *a, T_MFW_SCHE_INDEX *b);
void getLunarMonth(int mon_number, char * s);
void getLunarDay(int day_number, char * s);
static game_Line setLine(int x1,int y1,int x2,int y2,int color);
void scheSMS_dialog_cb(T_MFW_HND win, USHORT event, UBYTE reason);
void schedestroy(T_MFW_HND own_window);
void Sche_Copy(FlashSchedule * a,FlashSchedule * b);
/* 2003.10.16 wyj 加入对日程闹钟设置输入框的检查 */
static void checkSchNumInput(TR_data *data, U8 keynum);
static void checkSchLeftInput(TR_data *data);
static void checkSchRightInput(TR_data *data);
/* 2003.11.17 WYJ 日程表显示函数的声明 */
static void calinDisp(MONTHTABLE *month_table);
static void calinBkgDisp();
static void calinNumDisp(int wd, int day, int count, int line);
static void calinFocusDisp(int wd, int count);
static void dsplCalinder();
/* 闹钟设置 */
extern const TD_Rect AL_input_rect;
extern const TD_Attri AL_input_attr1;
extern const TD_Attri AL_input_attr2;
extern const TD_Line AL_index_l;
extern const Color AL_index_c;
extern const TD_Rect AL_hint_rect;
extern const TD_Attri AL_hint_attr;
extern const TD_Rect AL_AP_rect;
extern const TD_Attri AL_AP_attr;
/* 日程表常量 */
extern const TD_Rect SC_week_rect;
extern const TD_Attri SC_week_attr;
extern const TD_Rect SC_Lunar_rect;
extern const TD_Attri SC_Lunar_attr;
extern const TD_Rect SC_BS_rect;
extern const TD_Attri SC_BS_attr;
/* icon */
extern const MfwIcnAttr idl_AttrMask[];
T_MFW_HND calin_start(T_MFW_HND parent_win)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -