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

📄 responsescreen.c

📁 a mobile application for brew plateforms for sharing photos among different users globally.
💻 C
字号:
#include "responsescreen.h"
void spm_responsescreenInit(IRootForm *pIRootForm,IShell *pIShell,IDisplay *pIDisplay)
{
	responsescreen *pMe=(responsescreen*)MALLOCREC(responsescreen);
	pMe->pIShell=pIShell;
	pMe->pIDisplay=pIDisplay;
	pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
    ISHELL_GetDeviceInfo(pMe->pIShell,&pMe->DeviceInfo);
	pMe->pIRootForm=pIRootForm;
	


	//creation of the Login form
	spm_createresponseScreen(pMe);
}
void spm_createresponseScreen(responsescreen* pMe)
{
	int nErr=0;
	AECHAR *tabText=NULL;
	AECHAR *tabText1=NULL;
	AECHAR *tabText2=NULL;
	AECHAR *tabText3=NULL;

	IImage *pIImage;
	IImage *pITitleImage;
	ImageStaticInfo *imageinfo,*imageinfo1,*imageinfo2,*imageinfo3;
	
	IWidget *pIWImageStatic=NULL;

	WExtent wex;
	WidgetPos wPos;
	IWidget *pIWTitle=NULL;
	IWidget *pIWSoft=NULL;
	IModel *pIViewModel;
	IModel *pIModel;

	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_FORM,(void**)&pMe->pIForm);
	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_TABWIDGET,(void**)&pMe->pIWTab);
	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_HTMLWIDGET,(void**)&pMe->pIWHtml);
	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_VECTORMODEL,(void**)&pMe->pIVectorModel);
	ISHELL_CreateInstance(pMe->pIShell,AEECLSID_WEB,(void**)&pMe->pIWeb);
	ISHELL_CreateInstance(pMe->pIShell, AEECLSID_SOURCEUTIL, (void **)&(pMe->pISourceUtil));
	pITitleImage=ISHELL_LoadResImage(pMe->pIShell,RES_FILE,TITLE_ICON);
	
	//Setting Widget Properties
	IWIDGET_SetBGColor(pMe->pIWTab,RGB_ITEMBACKCOLOR);//RGB_MAINBACK);
	//IWIDGET_SetFGColor(pMe->pIWTab,MAKE_RGB(255,0,0));

	
	
	IWIDGET_SetBGColor(pMe->pIWHtml,RGB_ITEMBACKCOLOR);
	//RGB_ITEMBACKCOLOR MAKE_RGBA(255,255,206,255)
	//IWIDGET_SetGradientStyle(pMe->pIWHtml,1);
	IWIDGET_SetBorderWidth(pMe->pIWTab,1);
	IWIDGET_SetBorderColor(pMe->pIWTab,RGB_BORDERCOLOR);
	IWIDGET_SetFlags(pMe->pIWTab,TABWF_WRAP|TABWF_SHOWBORDER| TABWF_FILLWIDTH);//|TABWF_SHOWTEXTALWAYS);
	IWIDGET_SetBorderWidth(pMe->pIWHtml,0);
	IWIDGET_SetProperty(pMe->pIWTab,PROP_TABHEIGHT,8);
	


	IFORM_SetWidget(pMe->pIForm,WID_FORM,pMe->pIWTab);
	IFORM_SetTitleImage(pMe->pIForm,pITitleImage);
	IFORM_SetResText(pMe->pIForm,FID_TITLE,RES_FILE,TITLE_TEXT);
	IFORM_SetResText(pMe->pIForm,FID_SOFTKEY1,RES_FILE,SOFT_KEY1);
	IFORM_SetResText(pMe->pIForm,FID_SOFTKEY2,RES_FILE,SOFT_KEY2);


	//TitleWidget 
	IFORM_GetWidget(IROOTFORM_TO_IFORM(pMe->pIRootForm),WID_TITLE,&pIWTitle);
	IWIDGET_SetBGColor(pIWTitle,RGB_BACKCOLOR);
	IWIDGET_SetFGColor(pIWTitle,RGB_FORECOLOR);
	//IWIDGET_SetGradientStyle(pIWTitle,1);

	//SoftKeyWidget
	IFORM_GetWidget(IROOTFORM_TO_IFORM(pMe->pIRootForm),WID_SOFTKEYS,&pIWSoft);
	IWIDGET_SetBGColor(pIWSoft,RGB_BACKCOLOR);
	IWIDGET_SetFGColor(pIWSoft,RGB_FORECOLOR);
	//IWIDGET_SetGradientStyle(pIWSoft,1);



	//Creating the MenuModel
	tabText=(AECHAR*)MALLOC(STRLEN("My Mobile Picture")*2+1);
	STRTOWSTR("My Mobile Picture",tabText,(STRLEN("My Mobile Picture")*2+1));
	tabText1=(AECHAR*)MALLOC(STRLEN("My Family")*2+1);
	STRTOWSTR("My Family",tabText1,(STRLEN("My Family")*2+1));
	tabText2=(AECHAR*)MALLOC(STRLEN("My Family")*2+1);
	STRTOWSTR("View Sight",tabText2,(STRLEN("View Sight")*2+1));
	tabText3=(AECHAR*)MALLOC(STRLEN("My Folder")*2+1);
	STRTOWSTR("My Folder",tabText3,(STRLEN("My Folder")*2+1));


	
	pIImage=ISHELL_LoadResImage(pMe->pIShell,RES_FILE,IDI_FOLDER);

	imageinfo=(ImageStaticInfo*)MALLOC(sizeof(ImageStaticInfo));
	imageinfo->piImage=pIImage;
	imageinfo->pwText=tabText;

	imageinfo1=(ImageStaticInfo*)MALLOC(sizeof(ImageStaticInfo));
	imageinfo1->piImage=pIImage;
	imageinfo1->pwText=tabText1;

	imageinfo2=(ImageStaticInfo*)MALLOC(sizeof(ImageStaticInfo));
	imageinfo2->piImage=pIImage;
	imageinfo2->pwText=tabText2;

	imageinfo3=(ImageStaticInfo*)MALLOC(sizeof(ImageStaticInfo));
	imageinfo3->piImage=pIImage;
	imageinfo3->pwText=tabText3;



	
	IWIDGET_GetModel(pMe->pIWTab,AEEIID_VECTORMODEL,(IModel**)(void**)&pMe->pIVectorModel);
	IVECTORMODEL_InsertAt(pMe->pIVectorModel,0,imageinfo);
	IVECTORMODEL_InsertAt(pMe->pIVectorModel,1,imageinfo1);
	IVECTORMODEL_InsertAt(pMe->pIVectorModel,2,imageinfo2);
	IVECTORMODEL_InsertAt(pMe->pIVectorModel,3,imageinfo3);
	IWIDGET_SetModel(pMe->pIWTab,(IModel*)pMe->pIVectorModel);
	
	IWIDGET_GetViewModel(pMe->pIWTab,&pIViewModel);
	IMODEL_AddListenerEx(pIViewModel,&pMe->pIListenre,(PFNLISTENER)spm_tabListener,pMe);


	IDECORATOR_SetWidget((IDecorator*)(void*)pMe->pIWTab,pMe->pIWHtml);

	HANDLERDESC_Init(&pMe->responsescreenHandler,(PFNHANDLER)spm_responsescreenEventHandler,pMe,spm_freeresponsescreenData);
	IFORM_SetHandler(pMe->pIForm,&pMe->responsescreenHandler);




	//contents for html widget
	
		
	IWIDGET_GetModel(pMe->pIWHtml,AEEIID_DOCMODEL,(IModel**)(void*)(&pMe->pIDocModel));
	IWIDGET_GetViewModel(pMe->pIWHtml,(IModel**)&pIModel);
	IMODEL_QueryInterface(pIModel,AEEIID_HTMLVIEWMODEL,(void**)&pMe->pIHtmlViewModel);


	LISTENER_Init(&pMe->pIHtmlView,spm_htmlviewlistener,pMe);
	LISTENER_Init(&pMe->pIHtmlDoc,spm_htmldoclistener,pMe);
	IDOCMODEL_AddListener(pMe->pIDocModel,&pMe->pIHtmlDoc);
	IHTMLVIEWMODEL_AddListener(pMe->pIHtmlViewModel,&pMe->pIHtmlView);

	pMe->m_BodySize=0;
	pMe->m_BodyAllocSize=0;

	spm_loadhtmlfile(pMe,HOME_PAGE);
	IROOTFORM_PushForm(pMe->pIRootForm,pMe->pIForm);
}
void spm_tabListener(responsescreen *pMe,ModelEvent *eEvent)
{
	DBGPRINTF("Inside the listener event..........");
}

void spm_htmlviewlistener(responsescreen *pMe,ModelEvent *pEv){
	//if (pEv->evCode == EVT_HVM_JUMP) {
	//	loadhtmlfile(pMe, ((HtmlViewEvent *)pEv)->u.jump.pszURL);
   //}
	DBGPRINTF("in html view Liatener");
	if (pEv->evCode == EVT_HVM_JUMP) {
      //samplehtmlwidgetapp_loadhtmlfile(me, ((HtmlViewEvent *)pEv)->u.jump.pszURL);
	
   }
   
	return;  
}
void spm_htmldoclistener(responsescreen *pMe,ModelEvent *pEv)
{
	DBGPRINTF("in html doc Model");
	return;
}



int spm_responsescreenEventHandler(responsescreen *pMe,AEEEvent eCode,uint16 wParam,uint32 dwParam)
{
	//DBGPRINTF("111111111111111111111111.");
	if(eCode==EVT_KEY)
	{
		switch(wParam)
		{
			case AVK_SOFT1:
				DBGPRINTF("The left soft key pressed");
				spm_createUserMenu(pMe);
				return TRUE;
			case AVK_SOFT2:
				DBGPRINTF("The right soft key pressed");
				return TRUE;
		}
	}
	
	return HANDLERDESC_Call(&pMe->responsescreenHandler,eCode,wParam,dwParam);

}
void spm_freeresponsescreenData(responsescreen *pMe)
{
	DBGPRINTF("Main form data..............");
}


void spm_loadhtmlfile(responsescreen *pMe,const char *url)
{
	CALLBACK_Init(&pMe->callback,spm_WebReadCB,pMe);
	IWEB_GetResponse(pMe->pIWeb,(pMe->pIWeb,&pMe->pIWebResp,&pMe->callback,url,WEBOPT_HANDLERDATA,pMe,WEBOPT_END));
}
void spm_WebReadCB(void *ptr)
{
	char buf[128];
	int ByteCount;
	
	responsescreen *pMe=(responsescreen*)ptr;	
	
	WebRespInfo *pIWebRespInfo=IWEBRESP_GetInfo(pMe->pIWebResp);
	pMe->pISource=pIWebRespInfo->pisMessage;

	
	
	
	if (pIWebRespInfo)
	{
			ByteCount = ISOURCE_Read(pMe->pISource, (char*)buf, sizeof(buf));
			switch (ByteCount)
			{
			case ISOURCE_WAIT:
				ISOURCE_Readable(pMe->pISource, &pMe->callback);
				return;
			case ISOURCE_ERROR:
				break;
			case ISOURCE_END:
				if (pMe->m_BodySize < pMe->m_BodyAllocSize)
					pMe->m_BodyBuffer[pMe->m_BodySize] = 0;
				else
					pMe->m_BodyBuffer[pMe->m_BodyAllocSize - 1] = 0;

				DBGPRINTF("1............");
				//pMe->buffer=pMe->m_BodyBuffer;
				IWEB_Release(pMe->pIWeb);
				//pMe->buffer=pMe->m_BodyBuffer;
				DBGPRINTF("2................");

				spm_sethtmlfile(pMe);
				break;

			default:
				if (ByteCount)
				{
					if (pMe->m_BodySize + ByteCount > pMe->m_BodyAllocSize)
					{
						const int NewSize = pMe->m_BodyAllocSize + 1024;
						char* NewBuf = (char*)REALLOC(pMe->m_BodyBuffer, NewSize);

						if (NewBuf)
						{
							pMe->m_BodyBuffer = NewBuf;
							pMe->m_BodyAllocSize = NewSize;
						}
					}
					if (pMe->m_BodySize + ByteCount <= pMe->m_BodyAllocSize)
					{
						MEMCPY(pMe->m_BodyBuffer + pMe->m_BodySize, buf, ByteCount);
						pMe->m_BodySize += ByteCount;
					}
				}

				ISOURCE_Readable(pMe->pISource, &pMe->callback);
				return;
			}
	}

		
}

void spm_sethtmlfile(responsescreen *pMe)
{
	const char *buf="<html><body>testing<img width=50 height=50 src=\"http://localhost:3972/SPM/image02.jpg\"><hr></body></html>";
	ISource *pISource=NULL;
	ISOURCEUTIL_SourceFromMemory(pMe->pISourceUtil,pMe->m_BodyBuffer,pMe->m_BodySize,NULL,NULL,&pISource);
	IDOCMODEL_LoadSource(pMe->pIDocModel,pISource);
}



void spm_createUserMenu(responsescreen *pMe)
{
	int nErr=0;
	IWidget *pIWStatic=NULL;
	IWidget *pIWScroll=NULL;
	WidgetProp wProp;
	wProp.bVisible=TRUE;wProp.prop=WIDGET_KEEP_EXTENT;

	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_PROPCONTAINER,(void**)&pMe->pIPropContainer);
	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_STATICWIDGET,(void**)&pIWStatic);
	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_SCROLLBARWIDGET,(void**)&pIWScroll);
	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_LISTWIDGET,(void**)&pMe->pIWList);
	
	IPROPCONTAINER_QueryInterface(pMe->pIPropContainer,AEEIID_WIDGET,(void**)&pMe->pIWTab);
	
	IWIDGET_SetText(pIWStatic,L"Testing",TRUE);
	
	IFORM_SetWidget(pMe->pIForm,WID_FORM,pMe->pIWTab);
	IWIDGET_SetBGColor(pIWStatic,MAKE_RGB(255,0,0));
	
	IPROPCONTAINER_Insert(pMe->pIPropContainer,pIWStatic,WIDGET_ZNORMAL,&wProp);
	//IXYCONTAINER_Insert(pMe->
	

	
}
	

	

	

⌨️ 快捷键说明

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