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

📄 promptbox.c

📁 这一款新闻类业务的源码
💻 C
字号:
/*===========================================================================
文件: PromptBox.c
提示框控件的程序文件
===========================================================================*/

#include "PromptBox.h"

PromptBox*	PROMPTBOX_New(const char * pszRes)
{
	IShell *        pIShell = ((AEEApplet *)(GET_APP_INSTANCE()))->m_pIShell;
	PromptBox *     pPB = MALLOCREC(PromptBox);
    AEEDeviceInfo   di;

	if(pPB == NULL)
		return NULL;
	ZEROAT(pPB);

    //提取手机机型信息
    ISHELL_GetDeviceInfo(pIShell,&di);

	pPB->pszRes = STRDUP(pszRes);
	pPB->fntTitle = AEE_FONT_BOLD;
	pPB->fntText = AEE_FONT_NORMAL;

	//创建静态文本框
	if(SUCCESS != ISHELL_CreateInstance(pIShell, AEECLSID_STATIC, (void **)&(pPB->pIStatic)))
	{
		PROMPTBOX_Release(pPB);
		return NULL;
	}

	//PROMPTBOX_SetActive(pPB, TRUE);

	return pPB;
}


boolean PROMPTBOX_HandleEvent(PromptBox * pPB, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
	boolean bReturn;
	//if(eCode == EVT_APP_SUSPEND)
	//	return TRUE;
	if(eCode == EVT_APP_RESUME)
	{
		PROMPTBOX_Redraw(pPB);
		return TRUE;
	}
	if(eCode != EVT_KEY)
		return FALSE;
	switch(wParam)
	{
	case AVK_CLR:
    case AVK_SELECT:
		PROMPTBOX_SetActive(pPB, FALSE);
		return TRUE;
	default:
		bReturn = ISTATIC_HandleEvent(pPB->pIStatic, eCode, wParam, dwParam);
		break;
	}
	return bReturn;
}


boolean PROMPTBOX_IsActive(PromptBox * pPB)
{
	return pPB->bActive;
}

//重绘画面
void PROMPTBOX_Redraw(PromptBox * pPB)
{
	ISTATIC_Redraw(pPB->pIStatic);
}

//释放资源
void PROMPTBOX_Release(PromptBox * pPB)
{
    if (!pPB || !pPB->pIStatic)
    {
        return;
    }
	ISTATIC_Release(pPB->pIStatic);
	FREEIF(pPB->pszRes);
	FREEIF(pPB);
}


void PROMPTBOX_SetActive(PromptBox * pPB, boolean bActive)
{
	pPB->bActive = bActive;
	ISTATIC_SetActive(pPB->pIStatic, bActive);
	if(bActive)
		PROMPTBOX_Redraw(pPB);
}

void PROMPTBOX_SetFont(PromptBox * pPB, AEEFont fntTitle, AEEFont fntText)
{
	pPB->fntTitle = fntTitle;
	pPB->fntText = fntText;
}


void PROMPTBOX_SetProps(PromptBox * pPB, uint32 dwProps)
{
	ISTATIC_SetProperties(pPB->pIStatic, dwProps);
}


void PROMPTBOX_SetRect(PromptBox * pPB, AEERect * prc)
{
	AEERect rc;
	rc.x = prc->x;
	rc.y = prc->y;
	rc.dx = prc->dx;
	rc.dy = prc->dy - MENU_HEIGHT;
	ISTATIC_SetRect(pPB->pIStatic, &rc);
}


boolean PROMPTBOX_SetResText(PromptBox * pPB, uint16 wTitleID, uint16 wTextID)
{
	AECHAR * pTitle = NULL;		//该提示框的标题
	AECHAR * pText = NULL;		//该提示框的文字
	uint32	dwSize = 0;
	IShell * pIShell = ((AEEApplet *)(GET_APP_INSTANCE()))->m_pIShell;

	//设置标题
	if(wTitleID != 0)
	{
		ISHELL_GetResSize(pIShell, pPB->pszRes, wTitleID, RESTYPE_STRING, &dwSize);
		if(dwSize == 0)
			return FALSE;
		else
		{
			pTitle = (AECHAR *)MALLOC(dwSize);
			if(pTitle == NULL)
				return FALSE;
			ISHELL_LoadResString(pIShell, pPB->pszRes, wTitleID, pTitle, dwSize);
		}
	}

	//设置文本
	if(wTextID != 0)
	{
		ISHELL_GetResSize(pIShell, pPB->pszRes, wTextID, RESTYPE_STRING, &dwSize);
		if(dwSize == 0)
		{
			FREEIF(pTitle);
			return FALSE;
		}
		else
		{
			pText = (AECHAR *)MALLOC(dwSize);
			if(pText == NULL)
			{
				FREEIF(pTitle);
				return FALSE;
			}
			ISHELL_LoadResString(pIShell, pPB->pszRes, wTextID, pText, dwSize);
		}
	}

	if(ISTATIC_SetText(pPB->pIStatic, pTitle, pText, pPB->fntTitle, pPB->fntText))
	{
		FREEIF(pTitle);
		FREEIF(pText);
		return TRUE;
	}
	else
	{
		FREEIF(pTitle);
		FREEIF(pText);
		return FALSE;
	}
}


boolean	PROMPTBOX_SetText(PromptBox * pPB, AECHAR * pTitle, AECHAR * pText)
{
	return ISTATIC_SetText(pPB->pIStatic, pTitle, pText, pPB->fntTitle, pPB->fntText);
}

⌨️ 快捷键说明

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