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

📄 mmidc_storage_wintab.c

📁 手机Camera部分上层软件代码
💻 C
📖 第 1 页 / 共 5 页
字号:
                    MMIMEDIUM_CopyOneDc(FALSE,photo_index,PNULL);
		 }
        break;

    case MSG_PROMPTWIN_CANCEL:
        PUBWIN_ClosePromptQueryWin();
        break;
		
    case MSG_MULTIM_CLOSE_WAITING_WIN:
		photo_opt_info_ptr = (PHOTO_OPT_WINDOW_INFO_T *)MMK_GetWinAddDataPtr(win_id);
		SCI_ASSERT(photo_opt_info_ptr != PNULL);

		photo_detail_ptr = DCSaveInfo_GetPhotoDetail(photo_opt_info_ptr->photo_index);
        SCI_TRACE_LOW("mmidc_storage_wintab.c:HandlePicOptionMenuWinMsg: width = %d, height = %d!", photo_detail_ptr->width, photo_detail_ptr->height);

		//add subfix
		SCI_MEMSET(name_arr, 0, sizeof(name_arr));
		name_len = MIN(photo_detail_ptr->name_len, MMIDC_MAX_PHOTO_NAME_LEN);
		SCI_MEMCPY(name_arr, photo_detail_ptr->name_ptr, name_len);

		name_len = MMISTR_AddSubfix((uint8 *)name_arr, name_len, TRUE, (uint8 *)MMIDC_DEFAULT_SUBFIX, MMIDC_DEFAULT_SUBFIX_LEN);
		DC_ASSERT_LOW(name_len <= MMIDC_MAX_PHOTO_NAME_LEN + MMIDC_DEFAULT_SUBFIX_LEN * 2);

        if (MMIMULTIM_SetDCPicWallpaper(
                photo_opt_info_ptr->photo_buf_ptr, 
                photo_opt_info_ptr->photo_buf_len,
                (uint16 *)name_arr,//photo_detail_ptr->name_ptr,	//need subfix
                name_len,
                photo_detail_ptr->location,
                ANIM_JPG)
				)
        {
            PUBWIN_ClosePromptAlertWin();
            PUBWIN_OpenPromptAlertWin(PUBWIN_SOFTKEY_ONE, TXT_MMIMULTIM_COMPLETED, IMAGE_PROMPT_ICON_SUCCESS, MMI_3SECONDS, PNULL);

            if (MMK_IsOpenWin(MMIDC_ALBUM_WIN_ID))	//later, need to set the selected icon in list
            {
                GUILISTBOX_RemoveAllItems(MMIDC_ALBUM_LISTBOX_CTRL_ID);
                LoadAlbum(MMIDC_ALBUM_LISTBOX_CTRL_ID);
            }
        }
        else
        {
            SCI_TRACE_LOW("mmidc_storage_wintab.c:HandlePicOptionMenuWinMsg: set wallpaper error!");
            PUBWIN_ClosePromptAlertWin();
            PUBWIN_OpenPromptAlertWin(
                PUBWIN_SOFTKEY_ONE, 
                TXT_DC_PICTOO_LARGE, 
                IMAGE_PROMPT_ICON_FAIL, 
                MMI_3SECONDS, 
                PNULL);
        }
        break;

    default:
        recode = MMI_RESULT_FALSE;
        break;
    }

    return recode;

}


/*****************************************************************************/
// 	Description : to handle the message of the waiting win that will not be disturbed by power key or flip key    
//	Global resource dependence : 
//  Author:bruce.chi
//	Note: 
/*****************************************************************************/
LOCAL MMI_RESULT_E HandleAlwaysWaitingAlertWinMsg(
                                    MMI_WIN_ID_T     win_id,
                                    MMI_MESSAGE_ID_E 	msg_id,
                                    DPARAM              param
                                    )
{
    MMI_RESULT_E result = MMI_RESULT_TRUE;
    
	switch (msg_id)
	{
    case MSG_APP_RED:
        break;

    case MSG_APP_FLIP:
        MMIDEFAULT_HandleFlipKey(FALSE);
        break;
        
	default:
        result = PUBWIN_HandlePromptAlertWinMsg(win_id, msg_id, param);
	    break;
	}

	return (result);
}

/*****************************************************************************/
// 	Description : to handle the message of the waiting win that will not be disturbed by power key or flip key    
//	Global resource dependence : 
//  Author:bruce.chi
//	Note: 
/*****************************************************************************/
LOCAL MMI_RESULT_E HandleAlwaysWaitingWinMsg(
                                    MMI_WIN_ID_T     win_id,
                                    MMI_MESSAGE_ID_E 	msg_id,
                                    DPARAM              param
                                    )
{
    MMI_RESULT_E result = MMI_RESULT_TRUE;
    
	switch (msg_id)
	{
    case MSG_APP_RED:
        break;

    case MSG_APP_FLIP:
        MMIDEFAULT_HandleFlipKey(FALSE);
        break;
    case MSG_CLOSE_WINDOW:
		SCI_TRACE_LOW("HandleAlwaysWaitingWinMsgdc MSG_CLOSE_WINDOW");
		MMK_PostMsg(MAIN_SD_WAIT_WIN_ID,MSG_HANDLE_SD,PNULL,0);
		MMIDEFAULT_SetBackLight(TRUE);
        MMI_IsEnableDeepSleep(TRUE);
        MMIDEFAULT_SetDeepSleep(TRUE);	
		result = PUBWIN_HandleWaitingMessageWinMsg(win_id, msg_id, param);
		break;

	case MSG_OPEN_WINDOW:
        MMI_IsEnableDeepSleep(FALSE);
        MMIDEFAULT_SetDeepSleep(FALSE);	
		break;
	default:
        result = PUBWIN_HandleWaitingMessageWinMsg(win_id, msg_id, param);
	    break;
	}

	return (result);
}


/*****************************************************************************/
// 	Description : to handle the message of show detail win      
//	Global resource dependence : 
//  Author:bruce.chi
//	Note: 
/*****************************************************************************/
LOCAL MMI_RESULT_E  HandleShowDetailWinMsg(
                                MMI_WIN_ID_T win_id, 
                                MMI_MESSAGE_ID_E msg_id, 
                                DPARAM param
                                )
{
	MMI_RESULT_E		recode			= MMI_RESULT_TRUE;

	uint32				photo_index = 0;
	PHOTO_OPT_WINDOW_INFO_T *photo_opt_info_ptr = PNULL;
		
	SCI_TRACE_LOW("mmidc.c:HandleShowDetailWinMsg(), msg_id = %X", msg_id);

	switch(msg_id)
    {
    case MSG_OPEN_WINDOW:
        {
            MMI_TEXT_ID_T text_id[DETAIL_LABEL_NUM] = {
                                                TXT_DC_DETAIL_NAME, TXT_DC_DETAIL_SIZE,TXT_DC_DETAIL_DATE,
                                                TXT_DC_DETAIL_TIME,TXT_DC_DETAIL_PIXEL,TXT_DC_DETAIL_TYPE,
                                                TXT_DC_DETAIL_LOCATION
                                                };
            uint16 i =0;
            
            const MMIDC_PHOTO_DETAIL_T *detail_ptr = PNULL;
            MMI_STRING_T				detail_text[DETAIL_LABEL_NUM] = {0};            
            uint8						size_str[16] = {0};          
            uint8						date_str[20] = {0};  //"2004.07.21"
            uint8						time_str[16] = {0};   //"15:03"
            uint8						length_str[10] = {0}; //"20k"
            MMI_TM_T					time = {0};

            MMISET_LANGUAGE_TYPE_E  language_type;
            MMISET_GetLanguageType(&language_type);

            for(i=0; i<DETAIL_LABEL_NUM; i++)
            {
                GUILABEL_SetTextById(MMIDC_DETAIL_IND_LABEL1_CTRL_ID+i, text_id[i], FALSE);
            }
            
			photo_opt_info_ptr = (PHOTO_OPT_WINDOW_INFO_T *)MMK_GetWinAddDataPtr(win_id);
            
			photo_index = photo_opt_info_ptr->photo_index;

            DC_ASSERT_LOW(photo_index < MMIDC_MAX_PHOTO_NUM);
            detail_ptr = DCSaveInfo_GetPhotoDetail(photo_index);        

            detail_text[DETAIL_LABEL_NAME].str_ptr = (uint8 *)detail_ptr->name_ptr;
            detail_text[DETAIL_LABEL_NAME].length = detail_ptr->name_len;
            detail_text[DETAIL_LABEL_NAME].is_ucs2 = TRUE;
    
            sprintf((char *)size_str, "%dX%d", detail_ptr->width, detail_ptr->height);
            detail_text[DETAIL_LABEL_RESOLUTION].str_ptr = size_str;
            detail_text[DETAIL_LABEL_RESOLUTION].length = strlen((char *)size_str);
			DC_ASSERT_LOW(detail_text[DETAIL_LABEL_RESOLUTION].length < sizeof(size_str));
            detail_text[DETAIL_LABEL_RESOLUTION].is_ucs2 = FALSE;

            SCI_TRACE_LOW("HandleShowDetailWinMsg: memory_size = %d!", detail_ptr->memory_size);
            sprintf((char *)length_str, "%d.%.3dK", (detail_ptr->memory_size / KILO), ((detail_ptr->memory_size % KILO) * 1000 / KILO));
            detail_text[DETAIL_LABEL_SIZE].str_ptr = length_str;
            detail_text[DETAIL_LABEL_SIZE].length = strlen((char *)length_str);
			DC_ASSERT_LOW(detail_text[DETAIL_LABEL_SIZE].length < sizeof(length_str));
            detail_text[DETAIL_LABEL_SIZE].is_ucs2 = FALSE;

			if(photo_opt_info_ptr->is_photo_valid)
            {
            	detail_text[DETAIL_LABEL_FORMAT].str_ptr = (uint8 *)"jpg";
            	detail_text[DETAIL_LABEL_FORMAT].length = strlen("jpg");
            	detail_text[DETAIL_LABEL_FORMAT].is_ucs2 = FALSE; 
            }
            else
            {
            	detail_text[DETAIL_LABEL_FORMAT].str_ptr = (uint8 *)"error";
            	detail_text[DETAIL_LABEL_FORMAT].length = strlen("error");
            	detail_text[DETAIL_LABEL_FORMAT].is_ucs2 = FALSE; 
            }            

            time = MMI_FatData2Tm(detail_ptr->time);
            sprintf((char *)date_str, "%d.%02d.%02d", time.tm_year, time.tm_mon, time.tm_mday);
            detail_text[DETAIL_LABEL_DATE].str_ptr = date_str;
            detail_text[DETAIL_LABEL_DATE].length = strlen((char *)date_str);
			DC_ASSERT_LOW(detail_text[DETAIL_LABEL_DATE].length < sizeof(date_str));
            detail_text[DETAIL_LABEL_DATE].is_ucs2 = FALSE;
                
            sprintf((char *)time_str, "%02d:%02d", time.tm_hour, time.tm_min);
            detail_text[DETAIL_LABEL_TIME].str_ptr = time_str;
            detail_text[DETAIL_LABEL_TIME].length = strlen((char *)time_str);
			DC_ASSERT_LOW(detail_text[DETAIL_LABEL_TIME].length < sizeof(time_str));
            detail_text[DETAIL_LABEL_TIME].is_ucs2 = FALSE;

            for(i=0; i<6; i++)
            {
                GUILABEL_SetText(MMIDC_DETAIL_TEXT_LABEL1_CTRL_ID+i, &(detail_text[i]), FALSE);
            }

            if(MMISET_LANGUAGE_ENGLISH == language_type) 
            {
                GUI_RECT_T ind_rect = {0, MMI_CLIENT_RECT_TOP + 4* DETAIL_LABEL_HEIGHT, DETAIL_RESOLUTION_WIDTH, MMI_CLIENT_RECT_TOP + 5* DETAIL_LABEL_HEIGHT};
                GUI_RECT_T label_rect = {DETAIL_RESOLUTION_WIDTH, MMI_CLIENT_RECT_TOP + 4* DETAIL_LABEL_HEIGHT, MMI_MAINSCREEN_RIGHT_MAX_PIXEL, MMI_CLIENT_RECT_TOP + 5* DETAIL_LABEL_HEIGHT};
                
                GUILABEL_SetRect(MMIDC_DETAIL_IND_LABEL1_CTRL_ID + DETAIL_LABEL_RESOLUTION, &ind_rect, FALSE);
                GUILABEL_SetRect(MMIDC_DETAIL_TEXT_LABEL1_CTRL_ID + DETAIL_LABEL_RESOLUTION, &label_rect, FALSE);
            }
            if( FS_UDISK  ==detail_ptr->location )
			{
				GUILABEL_SetTextById(MMIDC_DETAIL_TEXT_LABEL7_CTRL_ID,(MMI_TEXT_ID_T)TXT_DC_SAVE_DISK_UDISK,FALSE);
			}
			else if(FS_MMC  ==detail_ptr->location)
			{
				GUILABEL_SetTextById(MMIDC_DETAIL_TEXT_LABEL7_CTRL_ID,(MMI_TEXT_ID_T)TXT_DC_SAVE_DISK_SDCARD,FALSE);
			}
			else
			{
				GUILABEL_SetTextById(MMIDC_DETAIL_TEXT_LABEL7_CTRL_ID,(MMI_TEXT_ID_T)TXT_NULL,FALSE);
			}

            MMK_SetWinSoftkeyId(win_id, STXT_OK, TXT_NULL, STXT_RETURN, FALSE);
        }
        break;

    case MSG_FULL_PAINT:
		MMIDC_FILL_CLIENT();        
        break;

    case MSG_APP_CANCEL:
    case MSG_APP_OK:
        MMK_CloseWin(win_id);
        break;

    default:
		recode = MMI_RESULT_FALSE;
        break;
    }
    return recode;

}

/*****************************************************************************/
// 	Description : change Listbox item the index is s_photo_index
//	Global resource dependence : 
//  Author:bruce.chi
//	Note: make sure input string is UCS2
/*****************************************************************************/
LOCAL BOOLEAN ChangeListboxItem(
						uint32	photo_index,
                        uint8	*str,
                        uint16	str_len,
                        FILE_DEV_E_T device
                        )
{
    GUI_LISTBOX_ITEM_T item;

    uint16 item_idx = 0;
	
    DC_ASSERT_LOW(PNULL != str);
	item_idx = DCSaveInfo_GetPotoTotalNum() - 1 - photo_index;

    SCI_MEMSET(&item, 0, sizeof(item));  
    item.str_len = MIN(str_len, LISTBOX_STRING_MAX_NUM);

    MMI_MEMCPY(item.str, LISTBOX_STRING_MAX_NUM, str, str_len, item.str_len);

    // Check WallPaper
    if (IsDCWallpaper((uint16 *)str, (uint16)str_len, device))
    {
        item.left_icon_id = IMAGE_SELECT_TICK_ON_PIC;
    }
    else
    {
        item.left_icon_id = IMAGE_MULTIMEDIA_CAMERA_PIC_ICON;
    }

    item.is_ucs2 = TRUE;
    item.softkey_id[0] = STXT_OK;
    item.softkey_id[1] = TXT_NULL;
    item.softkey_id[2] = STXT_RETURN;

    return GUILISTBOX_ReplaceItem(MMIDC_ALBUM_LISTBOX_CTRL_ID, &item, item_idx);
}

/*****************************************************************************/
// 	Description : create copy all window     
//	Global resource dependence : 
//  Author: bruce.chi
//	Note: 
/*****************************************************************************/
PUBLIC void MMIDC_OpenCopyAllWin(void)
{
	MMK_CreateWin((uint32*)MMIDC_COPY_ALL_WIN_TAB, PNULL);
}


/*****************************************************************************/
// 	Description : to handle the message of copy all files  win      
//	Global resource dependence : 
//  Author: bruce.chi
//	Note: 
/*****************************************************************************/
LOCAL MMI_RESULT_E  HandleCopyAllWinMsg(
                                MMI_WIN_ID_T		win_id, 
                                MMI_MESSAGE_ID_E	msg_id, 
                                DPARAM				param
                                )
{
	
	BOOLEAN 				recode = MMI_RESULT_TRUE;
    MMI_MENU_GROUP_ID_T 	group_id = 0;
	MMI_MENU_ID_T 			menu_id = 0;
	MMI_CTRL_ID_T 			menu_ctrl_id = MMIDC_COPY_ALL_CTRL_ID;

    switch(msg_id)
    {
    case MSG_OPEN_WINDOW:
        MMK_SetAtvCtrl(win_id, menu_ctrl_i

⌨️ 快捷键说明

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