⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmischedule.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
/*******************************************************************************

                    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 + -