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

📄 mmischedule.c

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

    return MFW_EVENT_CONSUMED;
}
/* "每月" */
int type_month(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND          parent_win = mfwParent( mfw_header());
    T_DISPLAY_DATA    display_info;
    T_MFW_WIN          *win_data   = ( (T_MFW_HDR *) sche_win )->data;
    schedule_data * data=(schedule_data*)win_data->user;
    int k=0,j;

    dialog_info_init(&display_info);
    display_info.KeyEvents    = KEY_OK | KEY_RIGHT | KEY_LEFT;
    display_info.LeftSoftKey  = '\0';
    display_info.RightSoftKey = TxtSoftBack;
    display_info.TextString   = '\0';
    display_info.TextString2  = '\0';
    display_info.TextId2     =TxtSaved;
    display_info.TextId      = '\0';
    display_info.Time       = FOREVER;

    display_info.Callback     = (T_VOID_FUNC)type_dialog_cb;
    display_info.iconindex = REMIND_COMPLETE;
    /*
     * Call Info Screen
     */
    info_dialog (parent_win, &display_info);

    sche_data.ringandf=sche_data.ringandf+EVERYMONTH;

    while( (ScheDetailIndex[k].index!=0)&&(k<SCHEDULE_NUMBER) )
        k++;
    //showAlarmIcon();
    ScheRecordAddOneIndex(k);
    /* if(sche_index<70)
        {
        for(j=0;j<sche_index;j++)
            FFS_ScheData.FfsSche[j]=sche_data[j];
        Flash_ScheWrite((char*)ScheTable[0]);
        }
     else if(sche_index<140)
        {
        for(j=0;j<70;j++)
            FFS_ScheData.FfsSche[j]=sche_data[j];
        Flash_ScheWrite((char *)ScheTable[0]);
        for(j=0;j<sche_index-70;j++)
            FFS_ScheData.FfsSche[j]=sche_data[70+j];
        Flash_ScheWrite((char *)ScheTable[1]);
        }
     else
        {
        for(j=0;j<70;j++)
            FFS_ScheData.FfsSche[j]=sche_data[j];
        Flash_ScheWrite((char *)ScheTable[0]);
        for(j=0;j<70;j++)
            FFS_ScheData.FfsSche[j]=sche_data[70+j];
        Flash_ScheWrite((char *)ScheTable[1]);
        for(j=0;j<sche_index-140;j++)
            FFS_ScheData.FfsSche[j]=sche_data[140+j];
        Flash_ScheWrite((char *)ScheTable[2]);
        }*/


    /* bookMenuDestroy(parent_win);
     TRdestroy(TR_win);
     schedestroy(sche_win);
     calin_destroy(calin_win);*/

    return MFW_EVENT_CONSUMED;
}
/* "每年" */
int type_year(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND          parent_win = mfwParent( mfw_header());
    T_DISPLAY_DATA    display_info;
    T_MFW_WIN          *win_data   = ( (T_MFW_HDR *) sche_win )->data;
    schedule_data*  data=(schedule_data*)win_data->user;
    int k=0,j;

    sche_data.ringandf=sche_data.ringandf+ANNUALLY;

    while( (ScheDetailIndex[k].index!=0)&&(k<SCHEDULE_NUMBER) )
        k++;
    // showAlarmIcon();
    if( ScheRecordAddOneIndex(k) )
    {
        dialog_info_init(&display_info);
        display_info.KeyEvents    = KEY_OK | KEY_RIGHT | KEY_LEFT;
        display_info.LeftSoftKey  = '\0';
        display_info.RightSoftKey = TxtSoftBack;
        display_info.TextString   = '\0';
        display_info.TextString2  = '\0';
        display_info.TextId2     =TxtSaved;
        display_info.TextId      = '\0';
        display_info.Time       = FOREVER;

        display_info.Callback     = (T_VOID_FUNC)type_dialog_cb;
        display_info.iconindex = REMIND_COMPLETE;
        /*
         * Call Info Screen
         */
        info_dialog (parent_win, &display_info);
    }
    /*  if(sche_index<70)
         {
         for(j=0;j<sche_index;j++)
             FFS_ScheData.FfsSche[j]=sche_data[j];
         Flash_ScheWrite((char*)ScheTable[0]);
         }
      else if(sche_index<140)
         {
         for(j=0;j<70;j++)
             FFS_ScheData.FfsSche[j]=sche_data[j];
         Flash_ScheWrite((char *)ScheTable[0]);
         for(j=0;j<sche_index-70;j++)
             FFS_ScheData.FfsSche[j]=sche_data[70+j];
         Flash_ScheWrite((char *)ScheTable[1]);
         }
      else
         {
         for(j=0;j<70;j++)
             FFS_ScheData.FfsSche[j]=sche_data[j];
         Flash_ScheWrite((char *)ScheTable[0]);
         for(j=0;j<70;j++)
             FFS_ScheData.FfsSche[j]=sche_data[70+j];
         Flash_ScheWrite((char *)ScheTable[1]);
         for(j=0;j<sche_index-140;j++)
             FFS_ScheData.FfsSche[j]=sche_data[140+j];
         Flash_ScheWrite((char *)ScheTable[2]);
         }*/

    /*  bookMenuDestroy(parent_win);
      TRdestroy(TR_win);
      schedestroy(sche_win);
      calin_destroy(calin_win);*/

    return MFW_EVENT_CONSUMED;
}

int ScheChange(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND           parent_win = mfwParent( mfw_header());
    T_MFW_HND           win    = change_create(parent_win);
    ScheBrowse_data *   data   = ( (T_MFW_HDR *) browse_win )->data;

    menu_win=parent_win;

    if( win!=NULL )
    {
        SEND_EVENT(win, CHANGE_INIT, 0, data);
    }

    return MFW_EVENT_CONSUMED;
}

int ScheSMS(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND           parent_win = mfwParent( mfw_header());
    T_MFW_HND           win    = change_create(parent_win);
    ScheBrowse_data *   data   = ( (T_MFW_HDR *) browse_win )->data;

    if( win!=NULL )
    {
        SEND_EVENT(win, CHANGE_SMS, 0, data);
    }


    return MFW_EVENT_CONSUMED;
}

int ScheDelete(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND          parent_win = mfwParent( mfw_header());
    T_MFW_WIN * win_data   = ( (T_MFW_HDR *) browse_win )->data;
    ScheBrowse_data *   data =(ScheBrowse_data *)win_data->user;
    T_DISPLAY_DATA    display_info;
    T_MFW_SCHE_INDEX t;
    int j=0,k=0;

    TRACE_EVENT("ScheDelete");

    FFS_ScheData.FfsSche[data->flag].date[0]=0;
    FFS_ScheData.FfsSche[data->flag].date[1]=0;
    FFS_ScheData.FfsSche[data->flag].hour=0;
    FFS_ScheData.FfsSche[data->flag].minute=0;
    FFS_ScheData.FfsSche[data->flag].ringandf=0;
    FFS_ScheData.FfsSche[data->flag].type=0;
    strcpy((char*)FFS_ScheData.FfsSche[data->flag].text,"");
    Flash_ScheWrite((char *)CurrentScheFileName);
    set_latest_alarm();
    ScheDetailIndex[ScheIndex[k].index-1].index=0;
    ScheDetailIndex[ScheIndex[k].index-1].date[0]=0;
    ScheDetailIndex[ScheIndex[k].index-1].date[1]=0;
    ScheDetailIndex[ScheIndex[k].index-1].wday=0;
    ScheDetailIndex[ScheIndex[k].index-1].hour=0;
    ScheDetailIndex[ScheIndex[k].index-1].minute=0;
    ScheDetailIndex[ScheIndex[k].index-1].number=0;
    ScheDetailIndex[ScheIndex[k].index-1].ringandt=0;
    ScheIndex[data->index].date[0]=0;
    ScheIndex[data->index].date[1]=0;
    ScheIndex[data->index].wday=0;
    ScheIndex[data->index].hour=0;
    ScheIndex[data->index].minute=0;
    ScheIndex[data->index].index=0;
    j=data->index;
    while( ScheIndex[j+1].index )
    {
        /* ScheIndex[j].date[0]=ScheIndex[j+1].date[0];
         ScheIndex[j].date[1]=ScheIndex[j+1].date[1];
         ScheIndex[j].time=ScheIndex[j+1].time;
         ScheIndex[j].index=ScheIndex[j+1].index;*/
        copy(&ScheIndex[j],&ScheIndex[j+1]);
        //ScheIndex[j+1]=t;
        j++;
    }
    ScheIndex[j].index=0;
    ScheIndex[j].date[0]=0;
    ScheIndex[j].date[1]=0;
    ScheIndex[j].hour=0;
    ScheIndex[j].minute=0;
    //copy((T_MFW_SCHE_INDEX *)ScheIndex[j],(T_MFW_SCHE_INDEX *)0);
    data->index=0;
    //TraceInt(data->flag1);
    /*k=0;
    for(j=0;j<SCHEDULE_NUMBER;j++)
       {
          if(ScheDetailIndex[j].index)
           {
             ScheIndex[k].date[0]=ScheDetailIndex[j].date[0];
             ScheIndex[k].date[1]=ScheDetailIndex[j].date[1];
             ScheIndex[k].time=ScheDetailIndex[j].time;
             ScheIndex[k].index=ScheDetailIndex[j].index;
             k++;
           }
       }*/

    dialog_info_init(&display_info);
    display_info.KeyEvents    = KEY_OK | KEY_RIGHT | KEY_LEFT;
    display_info.LeftSoftKey  = '\0';
    display_info.RightSoftKey = TxtSoftBack;
    display_info.TextString   = '\0';
    display_info.TextString2  = '\0';
    display_info.TextId2     =TxtDeleted;
    display_info.TextId      = '\0';
    display_info.Time       = FOREVER;
    display_info.Callback     = (T_VOID_FUNC)delete_dialog_cb;
    display_info.iconindex  = REMIND_COMPLETE;
    /*
     * Call Info Screen
     */
    info_dialog(parent_win, &display_info);

    /*  while(j<SCHEDULE_NUMBER)
         {
           if(ScheDetailIndex[j].index)
             {
                ScheIndex[k].index=ScheDetailIndex[j].index;
                //ScheIndex[k].number=j;
                ScheIndex[k].date[0]=ScheDetailIndex[j].date[0];
                ScheIndex[k].date[1]=ScheDetailIndex[j].date[1];
                ScheIndex[k].time=ScheIndex[j].time;
                k++;
             }
          j++;
         }*/
    showAlarmIcon();        
}
/* "日程闹钟"窗口创建*/
int TimeAndRing(MfwHnd parent_window)
{
    T_MFW_HND          win    = TR_create(parent_window);

    TRACE_EVENT("TimeAndRing");

    if( win NEQ NULL )
    {
        SEND_EVENT(win, TR_RING, 0, 0);
    }

    return MFW_EVENT_CONSUMED;
}
/* "日程表"窗口创建 */
static T_MFW_HND calin_create(MfwHnd parent_window)
{
    T_MFW_WIN  * win;
    tddata* data = (tddata *)ALLOC_MEMORY (sizeof (tddata ));
    data->calin=(TIMEDATE *)ALLOC_MEMORY(sizeof(TIMEDATE));

    data->month_table=(MONTHTABLE *)ALLOC_MEMORY(sizeof(MONTHTABLE));

    //int i=0;
    memset(data->month_table,0,sizeof(MONTHTABLE));
    memset(data->calin,0,sizeof(TIMEDATE));
    memset(data->calin->l_year,0,16);
    TRACE_EVENT("calin_create");
    if( data EQ NULL )
    {
        return NULL;
    }

    // Create window handler
    data->win = win_create(parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)calin_win_cb);
    if( data->win EQ NULL )
    {

        return NULL;
    }
    // connect the dialog data to the MFW-window
    data->mmi_control.dialog = (T_DIALOG_FUNC)calin_DialogCB;
    data->mmi_control.data   = data;
    win                      = ((T_MFW_HDR *)data->win)->data;
    win->user                = (void *)data;
    data->parent_win         = parent_window;
    calin_win=data->win;

    return data->win;
}
/* "日程表"窗口事件处理 */
static void calin_DialogCB(T_MFW_HND win, USHORT event,  SHORT value, void * parameter)
{
    T_MFW_WIN           *win_data   = ( (T_MFW_HDR *) win )->data;
    tddata* data = (tddata *) win_data->user;


    TRACE_EVENT("calin_DialogCB");
    switch( event )
    {
    case TD_INIT:
        TRACE_EVENT("TD_INIT");
        data->kbd=kbdCreate(data->win, KEY_ALL, (T_MFW_CB)calin_kbd_cb);
        GetTimeDate(currdate.year, currdate.month,currdate.day,data->calin);//currdate.month, currdate.day,);
        data->wday=data->calin->week;
        TRACE_EVENT(data->calin->l_year);
        // TraceInt(data->calin->month);
        // TraceInt(data->calin->day);
        TRACE_EVENT("GetTimeDate");
        GetMonthTable(data->calin, 0, 0,data->month_table);
        // TraceInt(data->month_table->day);

        winShow(win);
        break;
    case TD_EXIT:
        calin_destroy(win);
        break;
    }
}
/* "日程表" 窗口显示回调函数
 * 2003.10.21 wyj 加入英文节日的显示 
 * 2003.11.5 wyj 限定农历日期的显示范围1980-2031
 * 2003.11.17 WYJ 重写显示函数
 * 2003.12.2 WYJ 修改界面
*/
static int calin_win_cb  (T_MFW_EVENT event,T_MFW_WIN * win)
{
    tddata * data = (tddata *)win->user;
    char strn[30];
	char strnMonth[3];//jhxu720 add
    char strn1[30];
    char strm[10];
    char strd[20];
    char str[40];
    char ly[20];//lunar year
    short lm;//lunar month
    short ld;//lunar day
    short wd=0;//week day
    int i,j;
    int sum=0;
    int posx=0;//横坐标
    int posy=47;//纵坐标
    int old_color;
    int oldFontColor;
    game_Line line;
    game_Rectangle rectangle;

    /*2003/11/11,talcon add*/
    U8 uMode = 0;

    TRACE_EVENT ("calin_win_cb()");

    if( data EQ 0 )
        return 1;

    switch( event )
    {
    case E_WIN_VISIBLE:
        TRACE_EVENT("E_WIN_VISIBLE");
        if( win->flags & E_WIN_VISIBLE )
        {
            /*2003/11/11,talcon add*/
            uMode = dspl_Enable(0);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -