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

📄 mmistopwatch.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
         * Free Memory
        */
        FREE_MEMORY ((void *)data, sizeof (StopwData));
    }
}

/* 加文本框 */
void StopwSetEditor(T_MFW_HND win)
{
    T_MFW_WIN           *win_data   = ( (T_MFW_HDR *) win )->data;
    EditorData* data = (EditorData *) win_data->user;

    //editor_attr_init(&((data->editor_data).editor_attr), NULL, edtCurBar1, 0, 0, 0);
    memset(temp_data.name,0,sizeof(temp_data.name));
	//2004-04-06 Sunny modify.old :TxtNames
    editor_attr_init_fullscr(&((data->editor_data).editor_attr), 1,TxtRecordName, (char *)temp_data.name, 14, edtCurBar1);
    //editor_attr_init_only(&((data->editor_data).editor_attr),5,40,110,60, 1,TxtNames, (char *)temp_data.name, 20, edtCurBar1);
    data->editor_data.hide              = FALSE;
    data->editor_data.min_enter         = 1;  // Avoid returning empty strings


    data->editor_data.Identifier        = 0xFFFF ; 
    data->editor_data.TextString        = NULL;  
    data->editor_data.timeout           = FOREVER;  // Avoid returning empty strings
    data->editor_data.destroyEditor     = TRUE;

    data->editor_data.TextId               = '\0';                                                
    data->editor_data.LeftSoftKey       = TxtSoftOK;//comfirm

    data->editor_data.AlternateLeftSoftKey  = TxtNull;
    data->editor_data.RightSoftKey      = TxtDelete;
    data->editor_data.mode              = TEXTINPUT_MODE;   /* 2003/12/04 sunsj modify */
    data->editor_data.InputMode         = PINYIN_INPUT_MODE;    /* 2003/12/04 sunsj set default input mode */
}

/* 文本框回调函数 */
static void stopwCB( T_MFW_HND win,USHORT Identifier,UBYTE reason)
{
    T_MFW_WIN       *win_data   = ( (T_MFW_HDR *) win )->data;
    EditorData      *data       = (EditorData *) win_data->user;  
    T_MFW_WIN       *win_data1  = ((T_MFW_HDR*)stopw_win)->data;
    StopwData       *data1      = (StopwData *)win_data1->user;
    T_DISPLAY_DATA   display_info;

    TRACE_EVENT("stopwCB");

    switch( reason )
    {
    case INFO_KCD_LEFT:
        {   
            if( !stopwAddOne() )
            {
                /* 2003/12/04 sunsj modify for new editor mode */
                if( data->editor_data.mode == TEXTINPUT_MODE )
                {
                    text_input_destroy(data->editor_win);
                }
                else
                {
                    editor_destroy(data->editor_win);    
                }
                dialog_info_init(&display_info);//gdy add
                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)stopw_dialog_cb;
                display_info.iconindex = REMIND_COMPLETE;
                display_info.Identifier =0;
                /*
                * Call Info Screen
                */
                info_dialog (win, &display_info);                  
                // editor_destroy(data->editor_win);
                // bookMenuDestroy(data1->menu_options_win);
                // stopwatch_destroy(stopw_win);
            }
            else
            {
                /* 2003/12/04 sunsj modify for new editor mode */
                if( data->editor_data.mode == TEXTINPUT_MODE )
                {
                    text_input_destroy(data->editor_win);
                }
                else
                {
                    editor_destroy(data->editor_win);
                }
                dialog_info_init(&display_info);//gdy add
                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     =TxtError;
                display_info.TextId      = '\0';
                display_info.Time       = ONE_SECS;
                display_info.Callback     = (T_VOID_FUNC)stopw_dialog_cb;
                display_info.iconindex = REMIND_FAILURE;
                display_info.Identifier =0;
                /*
                * Call Info Screen
                */
                info_dialog (win, &display_info);
                // editor_destroy(data->editor_win);
                //bookMenuDestroy(data1->menu_options_win);
                //stopwatch_destroy(stopw_win);
            }
        }       
        break;         
    case INFO_KCD_RIGHT:
    case INFO_KCD_HUP:      
        /* 2003/12/04 sunsj modify for new editor mode */
        if( data->editor_data.mode == TEXTINPUT_MODE )
        {
            text_input_destroy(data->editor_win);
        }
        else
        {
            editor_destroy(data->editor_win);
        }
        stopwEditor_destroy(win);
        break;  
    default:
        break;
    }    
}


void stopw_dialog_cb(T_MFW_HND win, USHORT event, UBYTE reason)
{
    T_MFW_WIN     * win_data= ((T_MFW_HDR *) stopw_win )->data;     
    StopwData*    data=(StopwData* )win_data->user;

    TRACE_EVENT("stopw_dialog_cb");     
    stopwEditor_destroy(win);
    bookMenuDestroy(data->menu_options_win);
    stopwatch_destroy(stopw_win);
}

int dynamicMenu(T_MFW_HND parent_win)
{
    T_MFW_HND win = dynamicTitleMenu_create(parent_win);

    if( win NEQ NULL )
    {
        SEND_EVENT(win, DYNAMIC_INIT, 0, 0);
        return MFW_EVENT_CONSUMED;
    }
}

/* 创建"保存"项的文本对话框 */
static T_MFW_HND stopwEditor_create(MfwHnd parent_window)
{
    T_MFW_WIN  * win;
    EditorData* data = (EditorData *)ALLOC_MEMORY (sizeof (EditorData ));

    TRACE_EVENT("stopwEditor_create");

    if( data EQ NULL )
    {
        return NULL;
    }

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

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

    winShow(win);
    return data->win;
}


static int  stopwEditor_win_cb (T_MFW_EVENT event, T_MFW_WIN * win)
{
    EditorData* data = (EditorData *)win->user;
    T_DISPLAY_DATA display_info;
    char str[4];

    TRACE_EVENT ("stopwEditor_win_cb()");


    if( data EQ 0 )
        return 1;

    switch( event )
    {
    case E_WIN_VISIBLE:
        if( win->flags & E_WIN_VISIBLE )
        {
            /*
            * Clear Screen
                */
            dspl_ClearAll();                
        }
        break;
    default:
        return 0;
    }
    return 1;
}

/* 编辑窗口事件响应函数 */
static void Editor_DialogCB (T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
    T_MFW_WIN           *win_data   = ( (T_MFW_HDR *) win )->data;
    EditorData* data = (EditorData *) win_data->user;

    switch( event )
    {
    case STOPWEDITOR_INIT:
        StopwSetEditor(win);                //给窗口加edit控件
        data->editor_data.Callback          = (T_EDIT_CB)stopwCB;
        /* 2003/12/04 sunsj modify for new editor mode */
        if( data->editor_data.mode == TEXTINPUT_MODE )
        {
            data->editor_win = text_input(win, &data->editor_data);
        }
        else
        {
            data->editor_win = editor_start(win, &(data->editor_data));     
        }
        break;
    case STOPWEDITOR_EXIT:
        stopwEditor_destroy(win);
        break;
    }
}

void stopwEditor_destroy(MfwHnd own_window)
{
    T_MFW_WIN     * win  = ((T_MFW_HDR *)own_window)->data;
    EditorData* data   = (EditorData*)win->user;

    TRACE_EVENT ("stopwEditor_destroy()");  

    if( own_window )
    {
        /*
        * Delete WIN Handler
            */


        win_delete (own_window);
        /*
        * Free Memory
        */
        FREE_MEMORY ((void *)data, sizeof (EditorData));
    }
}



static T_MFW_HND dynamicTitleMenu_create(MfwHnd parent_window)
{
    T_MFW_WIN  * win;
    DynamicTitleData* data = (DynamicTitleData *)ALLOC_MEMORY (sizeof (DynamicTitleData ));

    TRACE_EVENT("dynamic_create");

    if( data EQ NULL )
    {
        return NULL;
    }

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

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

    winShow(win);
    return data->win;
}
/* 记录浏览菜单 */
static void dynamicTitleMenu_DialogCB (T_MFW_HND win, USHORT event, SHORT value, void * parameter)
{
    T_MFW_WIN           *win_data   = ( (T_MFW_HDR *) win )->data;
    DynamicTitleData* data = (DynamicTitleData *) win_data->user;
    //T_MFW_WIN  * win_data1 =((T_MFW_HDR *) stopw_win)->data;
    //StopwData  * data1=(StopwData*)win_data1->user;
    T_DISPLAY_DATA    display_info;
    char tem_str[4];
    char* titleStr;
    int i;

    TRACE_EVENT("dynamicMenu_DialogCB");

    data->id=value;
    switch( event )
    {
    case DYNAMIC_INIT:      
        if( data->id==BROWSE_TITEL )
        {
            TRACE_EVENT("BROWSE_STOPW");
            reset();           
            data->numberOfRecords=StopwMemoRead();//gdy add 27/08/02
            // while(StopwIndex[data->numberOfRecords].flag)
            //   data->numberOfRecords++;
            TRACE_EVENT("data->numberOfRecords=:");
            TraceInt(data->numberOfRecords);
            if( data->numberOfRecords )
            {
                data->menu_list_data = (ListMenuData *)ALLOC_MEMORY(sizeof(ListMenuData));

                if( data->menu_list_data == 0 )
                {
                    TRACE_EVENT("Failed memory alloc 1 ");
                    return;
                }

                data->menu_list_data->List = (T_MFW_MNU_ITEM *)ALLOC_MEMORY( data->numberOfRecords * sizeof(T_MFW_MNU_ITEM) );

                if( data->menu_list_data->List == 0 )
                {
                    TRACE_EVENT("Failed memory alloc 2");
                    return;
                }

                for( i = 0; i < data->numberOfRecords ; i++ )
                {
                    if( StopwIndex[i].type )
                    {
                        /* 2004/06 sunsj modify for picture manage */
                        data->menu_list_data->List[i].icon = GET_ICONATTR(ICON_STOPWATCH_CIRCLE, 0);//&circle_bmp;
                    }
                    else
                    {
                        /* 2004/06 sunsj modify for picture manage */
                        data->menu_list_data->List[i].icon = GET_ICONATTR(ICON_STOPWATCH_SEPA, 0);//&sepa_bmp;
                    }
                    data->menu_list_data->List[i].exta = 0;
                    data->menu_list_data->List[i].edit = 0;
                    data->menu_list_data->List[i].menu =0;
                    data->menu_list_data->List[i].func = NULL;
                    TRACE_EVENT((char*)StopwIndex[i].name);
                    data->menu_list_data->List[i].str=(char*)StopwIndex[i].name;
                    TRACE_EVENT(data->menu_list_data->List[i].str);
                    data->menu_list_data->List[i].flagFunc = item_flag_none;     
                }

                data->menu_list_data->ListLength =data->numberOfRecords;
                data->menu_list_data->ListPosition = 1;
                data->menu_list_data->CursorPosition = 1;
                data->menu_list_data->SnapshotSize = data->numberOfRecords;
                data->menu_list_data->Font = 0;
                data->menu_list_data->LeftSoftKey = TxtSoftSelect;
                data->menu_list_data->RightSoftKey = TxtSoftBack;
                data->menu_list_data->KeyEvents = KEY_ALL;
                data->menu_list_data->Reason = 0;
                data->menu_list_data->Strings = TRUE;
                data->menu_list_data->Attr   = &stopw_menuAttrib;
                data->menu_list_data->autoDestroy    = FALSE;
                data->menu_list_data->ListMenuFlag  =1;
                data->menu_list_data->ListMenuHeadStr =MmiRsrcGetText(TxtBrowseRecord);
                listDisplayListMenu(win, data->menu_list_data,(ListCbFunc)dynamicTitleList_cb,0);// 
            }
            else
            {
                dialog_info_init(&display_info);           

⌨️ 快捷键说明

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