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

📄 mainscreen.c

📁 a mobile application for brew plateforms for sharing photos among different users globally.
💻 C
📖 第 1 页 / 共 3 页
字号:
#include "mainscreen.h"
#include "AEEArrayModel.h"
#include "AEEScrollWidget.h"
#include "sendphotomobileapp.brh"
#define RES_FILE "sendphotomobileapp.bar"
#include "AEEVectorModel.h"
#include "bid\AEECLSID_VECTORMODEL.bid"
#include "bid\AEECLSID_ARRAYMODEL.bid"
#include "bid\AEECLSID_GRIDWIDGET.bid"
#include "bid\AEECLSID_SCROLLBARWIDGET.bid"
#include "bid\AEECLSID_VIEWPORTWIDGET.bid"


//Change/removeable header file
#include "AEEImageStaticWidget.h"
#include "bid\AEECLSID_IMAGESTATICWIDGET.bid"

#define RGB_BACKCOLOR MAKE_RGBA(166,166,255,255)
#define RGB_FORECOLOR MAKE_RGBA(255,255,255,255)
#define RGB_ITEMBACKCOLOR MAKE_RGBA(255,255,206,255)
#define RGB_BORDERCOLOR MAKE_RGBA(128,0,0,255)
#define RGB_SELECTEDCOLOR MAKE_RGBA(202,202,255,255)
#define RGB_SELBORDERCOLOR MAKE_RGBA(255,86,4,255)
#define RGB_SENDBORDERCOLOR MAKE_RGBA(6,255,6,255)



#define CHOICE_MAXSIZE 6
#define CHOICE_SETTINGSIZE 6
#define CHOICE_DISPLAYSIZE 6
#define CHOICE_TOOLSSIZE 9
#define CHOICE_SORTBYSIZE 7


void spm_CreateGridControl(mainscreen *pMe);
static const AECHAR aItems[CHOICE_MAXSIZE][15] = {
   {'S','e','t','t','i','n','g',' ',' ','>','\0' },
   {'D','i','s','p','l','a','y',' ',' ','>','\0' },
   {'T','o','o','l','s',' ',' ',' ',' ','>','\0' }, 
   {'S','o','r','t','B','y',' ',' ','>','\0' }, 
   {'H','e','l','p',' ',' ',' ',' ',' ',' ','\0'},
   {'A','b','o','u','t',' ',' ',' ',' ',' ','\0'}
  };
static const AECHAR aItemsSetting[CHOICE_SETTINGSIZE][20] = {
   {'O','n','l','i','n','e',' ','L','o','c','k','e','r','\0' },
   {'U','s','e','r',' ','A','c','o','u','n','t','\0' },
   {'U','p','l','o','a','d','\0' }, 
   {'R','o','a','m','i','n','g','\0' },
   {'B','a','c','k','\0'}
   
};
static const AECHAR aItemsDisplay[CHOICE_DISPLAYSIZE][20] = {
   {'R','o','a','t','e','d',' ','R','i','g','h','t','\0' },
   {'R','o','a','t','e','d',' ','L','e','f','t','\0' },
   {'S','a','v','e',' ','A','s','\0' }, 
   {'B','a','c','k','\0'}
   
};
static const AECHAR aItemsTools[CHOICE_TOOLSSIZE][30] = {
   {'R','o','a','t','e','d',' ','R','i','g','h','t','\0' },
   {'R','o','a','t','e','d',' ','L','e','f','t','\0' },
   {'S','e','n','d',' ','A','l','l',' ','N','o','w','\0' }, 
   {'S','e','n','d',' ','S','e','l','e','c','t','e','d',' ','N','o','w','\0' }, 
   {'S','h','o','w','C','a','p','t','i','o','n','/','H','i','d','e','C','a','p','t','i','o','n','\0'},
   {'D','e','l','e','t','e','\0'},
   {'R','e','n','a','m','e','\0'},
   {'S','e','a','r','c','h','\0'},
   {'B','a','c','k','0'}
  };

static const AECHAR aItemsSortby[CHOICE_SORTBYSIZE][20] = {
   {'D','a','t','e',' ','A','s','e','n','d','i','n','g','\0'},
   {'D','a','t','e',' ','D','e','s','c','e','n','d','i','n','g','\0' },
   {'N','a','m','e',' ','A','s','e','n','d','i','n','g','\0' }, 
   {'N','a','m','e',' ','D','e','s','e','n','d','i','n','g','\0' }, 
   {'S','e','n','t','/','U','n','s','e','n','t','\0'},
   {'U','n','s','e','n','t','/','S','e','n','t','\0'},
   {'B','a','c','k','0'}
  };
static const AECHAR awNumbers[] = {
   '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
};






boolean spm_MainFormHandler(mainscreen *pMe,AEEEvent eCode,uint16 wParam,uint32 dwParam);
boolean spm_CreateMainMenu(mainscreen *pMe);

void spm_MenuSelectionHandler(mainscreen *pMe,int idOption);
boolean spm_MenuEventHandler(mainscreen *pMe,AEEEvent eCode,uint16 wParam,uint32 dwParam);
int spm_CreateExitConfDialog(mainscreen *pMe);
boolean spm_exitConfirmationDialog_HandleEvent(mainscreen *pMe,AEEEvent eCode,uint16 wParam,uint32 dwParam);


int spm_CreateSubMenu(mainscreen *pMe,uint16 id);
void spm_SettingSelectionHandler(mainscreen *pMe,int idOption);
boolean spm_SettingEventHandler(mainscreen *pMe,AEEEvent eCode,uint16 wParam,uint32 dwParam);

void spm_DisplaySelectionHandler(mainscreen *pMe,int idOption);
boolean spm_DisplayEventHandler(mainscreen *pMe,AEEEvent eCode,uint16 wParam,uint32 dwParam);

void spm_ToolsSelectionHandler(mainscreen *pMe,int idOption);
boolean spm_ToolsEventHandler(mainscreen *pMe,AEEEvent eCode,uint16 wParam,uint32 dwParam);

void spm_SortbySelectionHandler(mainscreen *pMe,int idOption);
boolean spm_SortbyEventHandler(mainscreen *pMe,AEEEvent eCode,uint16 wParam,uint32 dwParam);

void spm_GridSelectionHandler(mainscreen *pMe,int idOption);
boolean spm_GridEventHandler(mainscreen *pMe,AEEEvent eCode,uint16 wParam,uint32 dwParam);


int spm_CreateMainScreen(IForm **pIForm,IShell *pIShell,IRootForm *pIRootForm,IDisplay *pIDisplay)
{
	//declearation....
	int nErr=0;
	WExtent wex,wex1;
	WidgetPos wpos;
	IImage *pITitleImage=NULL;
	IWidget *pIWTitle,*pIWSoft;
	ImageStaticInfo *imagestaticinfo;
	IImage *pIImage=NULL;
	AECHAR *text=NULL;
	IModel *pITempModel;
	IFileMgr *pIFileMgr;
	FileInfo *pIFileInfo;
	boolean flag=TRUE;
	AECHAR *newfilename=NULL;
	char  *filename=NULL;
	int count=0;
	
	
	//structure specific init
	mainscreen *pMe=(mainscreen *)MALLOC(sizeof(mainscreen));
	pMe->pIShell=pIShell;
	pMe->pIDisplay=pIDisplay;
	pMe->pIRootForm=pIRootForm;
	ISHELL_GetDeviceInfo(pMe->pIShell,&pMe->DeviceInfo);
	pMe->DeviceInfo.wStructSize=sizeof(pMe->DeviceInfo);
	pITitleImage=ISHELL_LoadResImage(pMe->pIShell,RES_FILE,TITLE_ICON);

	//creating instances
	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_FORM,(void**)&pMe->pIForm);
	*pIForm=pMe->pIForm;
	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_IMAGESTATICWIDGET,(void**)&pMe->pIWImageStatic);
	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_GRIDWIDGET,(void**)&pMe->pIWGrid);
	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_VECTORMODEL,(void**)&pMe->pIVectorModel);
	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_FILEMGR,(void**)&pIFileMgr);
	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_WEB,(void**)&pMe->pIWeb);
	nErr=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_SOURCEUTIL,(void**)&pMe->pISourceUtil);



	
	//setting the backwidget
	IFORM_SetWidget(pMe->pIForm,WID_FORM,pMe->pIWGrid);
	IWIDGET_SetBGColor(pMe->pIWGrid,RGB_ITEMBACKCOLOR);
	IWIDGET_SetBorderWidth(pMe->pIWGrid,1);
	IWIDGET_SetBorderColor(pMe->pIWGrid,RGB_BORDERCOLOR);
	IWIDGET_SetProperty(pMe->pIWGrid,PROP_ROWS,10);
	IWIDGET_SetProperty(pMe->pIWGrid,PROP_COLS,3);
	//IWIDGET_SetGradientStyle(pMe->pIWGrid,1);

	//Form TitleWidget setting
	IFORM_GetWidget(IROOTFORM_TO_IFORM(pMe->pIRootForm),WID_TITLE,&pIWTitle);
	IWIDGET_SetBGColor(pIWTitle,RGB_BACKCOLOR);
	IWIDGET_SetFGColor(pIWTitle,RGB_FORECOLOR);
	IWIDGET_SetBorderWidth(pIWTitle,1);
	IWIDGET_SetBorderColor(pIWTitle,RGB_BORDERCOLOR);
	IFORM_SetResText(pMe->pIForm,FID_TITLE,RES_FILE,TITLE_TEXT);
	IFORM_SetTitleImage(pMe->pIForm,pITitleImage);
	
	//Form SoftKey Widget Setting
	IFORM_GetWidget(IROOTFORM_TO_IFORM(pMe->pIRootForm),WID_SOFTKEYS,&pIWSoft);
	IWIDGET_SetBGColor(pIWSoft,RGB_BACKCOLOR);
	IWIDGET_SetFGColor(pIWSoft,RGB_FORECOLOR);
	IWIDGET_SetBorderWidth(pIWSoft,1);
	IWIDGET_SetBorderColor(pIWSoft,RGB_BORDERCOLOR);
	IFORM_SetResText(pMe->pIForm,FID_SOFTKEY1,RES_FILE,SOFT_KEY1);
	IFORM_SetResText(pMe->pIForm,FID_SOFTKEY2,RES_FILE,SOFT_KEY2);

	IWIDGET_GetPreferredExtent(pMe->pIWImageStatic,&wex);
	wex.height=35;
	wex.width=85;

	IWIDGET_SetPreferredExtent(pMe->pIWImageStatic,&wex);
	IWIDGET_SetBorderWidth(pMe->pIWImageStatic,1);
	IWIDGET_SetBorderColor(pMe->pIWImageStatic,RGB_BACKCOLOR);
	IWIDGET_SetItemHeight(pMe->pIWGrid,wex.height);
	IWIDGET_SetItemWidth(pMe->pIWGrid,wex.width);
	//IWIDGET_SetSelectedBGColor(pMe->pIWImageStatic,RGB_FORECOLOR);
	IWIDGET_SetSelectedBorderColor(pMe->pIWImageStatic,RGB_SELBORDERCOLOR);
	IWIDGET_SetSelectedFGColor(pMe->pIWImageStatic,RGB_SELBORDERCOLOR);
	
	IWIDGET_SetLeftPadding(pMe->pIWImageStatic,5);
	
	IWIDGET_GetModel(pMe->pIWGrid,AEEIID_VECTORMODEL,(IModel**)(void**)&pMe->pIVectorModel);
	
	/*Reading image files from the device native picture folder and adding them in the model*/
	pIFileInfo=(FileInfo*)MALLOC(sizeof(FileInfo));
	if(IFILEMGR_EnumInit(pIFileMgr,"fs:/mod/sendphotomobileapp/picture/",FALSE)==SUCCESS)
	{
		while(flag)
		{
			flag=IFILEMGR_EnumNext(pIFileMgr,pIFileInfo);
			if(STRSTR(pIFileInfo->szName,"Thumbs.db"))
				break;
			pIImage=ISHELL_LoadImage(pMe->pIShell,pIFileInfo->szName);
			filename=STRSTR(pIFileInfo->szName,"picture/");
			filename=filename+STRLEN("picture/");

			//calling uploading image
			spm_UploadImage(pMe,pIFileInfo->szName,filename);

			text=(AECHAR*)MALLOC(STRLEN(filename)*2+6);
			STRTOWSTR(filename,text,STRLEN(filename)*2-6);
			imagestaticinfo=MALLOC(sizeof(ImageStaticInfo));
			imagestaticinfo->piImage=pIImage;
			imagestaticinfo->pwText=text;
			IVECTORMODEL_InsertAt(pMe->pIVectorModel,count,imagestaticinfo);
			count++;
		}
	}
	
	IWIDGET_SetModel(pMe->pIWGrid,IVECTORMODEL_TO_IMODEL(pMe->pIVectorModel));
	IWIDGET_GetViewModel(pMe->pIWGrid,&pITempModel);
	IMODEL_AddListenerEx(pITempModel,&pMe->pIGridListener,(PFNLISTENER)spm_gridListener,pMe);
	IDECORATOR_SetWidget((IDecorator*)pMe->pIWGrid,pMe->pIWImageStatic);
	
	
	HANDLERDESC_Init(&pMe->mainFormHandler,spm_MainFormHandler,pMe,NULL);
	IFORM_SetHandler(pMe->pIForm,&pMe->mainFormHandler);
	
	IROOTFORM_PushForm(pMe->pIRootForm,pMe->pIForm);
	return nErr;
}

void spm_gridListener(mainscreen *pMe,ModelEvent *eEvent)
{
	
	if(eEvent->evCode==EVT_MDL_FOCUS_SELECT)
	{
		//IROOTFORM_PopForm(pMe->pIRootForm);
		spm_loginformInit(pMe->pIRootForm,pMe->pIShell,pMe->pIDisplay);
		DBGPRINTF("inside grid listener.....................");
	}
		
}
boolean spm_MainFormHandler(mainscreen *pMe,AEEEvent eCode,uint16 wParam,uint32 dwParam)
{


	if(eCode==EVT_KEY)
	{
		if(wParam==AVK_SOFT1)
		{
			int result=spm_CreateMainMenu(pMe);
		
			if(result==0)
				IROOTFORM_PushForm(pMe->pIRootForm,(IForm*)pMe->pIMainMenu);
		
			return TRUE;
		}
		if(wParam==AVK_SOFT2)
		{
			int result=0;
			result=spm_CreateExitConfDialog(pMe);
			if(result==0)
				IROOTFORM_PushForm(pMe->pIRootForm,(IForm*)pMe->exitConfirmationDialog);
			return TRUE;

		}
		if(wParam==AVK_UP)
			DBGPRINTF("You pres the up key................");
		if(wParam==AVK_DOWN)
			DBGPRINTF("You pres the down key................");
	}
	return HANDLERDESC_Call(&pMe->mainFormHandler,eCode,wParam,dwParam);
}






boolean spm_CreateMainMenu(mainscreen *pMe)
{
	
	/*int result=0;
	AECHAR *menu=NULL;
	menu=(AECHAR*)MALLOC(10);
	STRTOWSTR("Menu",menu,10);
	result=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_POPUPMENUFORM,(void**)&pMe->pIMainMenu);
	if(result==0)
	{
		
		result=IPOPUPMENU_LoadMenuItem(pMe->pIMainMenu,RES_FILE,MENUITEM0,0,MMF_ENABLED);
		
		result+=IPOPUPMENU_LoadMenuItem(pMe->pIMainMenu,RES_FILE,MENUITEM1,1,MMF_ENABLED);
		result+=IPOPUPMENU_LoadMenuItem(pMe->pIMainMenu,RES_FILE,MENUITEM2,2,MMF_ENABLED);
		result+=IPOPUPMENU_LoadMenuItem(pMe->pIMainMenu,RES_FILE,MENUITEM3,3,MMF_ENABLED);
		result+=IPOPUPMENU_LoadMenuItem(pMe->pIMainMenu,RES_FILE,MENUITEM4,4,MMF_ENABLED);
		result+=IPOPUPMENU_LoadMenuItem(pMe->pIMainMenu,RES_FILE,MENUITEM5,5,MMF_ENABLED);
		
		
		

	}
	if(result==0)
	{
		//IFORM_SetSoftkeys((IForm*)pMe->pIMainMenu,RES_FILE,MAINFORMSOFTKEY1,0);
		IFORM_SetSelectHandler((IForm*)pMe->pIMainMenu,(PFNSELECT)spm_MenuSelectionHandler,pMe);

		HANDLERDESC_Init(&pMe->pIMainMenuHandler,spm_MenuEventHandler,pMe,0);
		IFORM_SetHandler((IForm*)pMe->pIMainMenu,&pMe->pIMainMenuHandler);

		{
			IWidget* pIScrollWidget=NULL;
			result=ISHELL_CreateInstance(pMe->pIShell,AEECLSID_SCROLLBARWIDGET,(void**)&pIScrollWidget);
			if(result==0)
			{
				IWidget* mainFormWidget=NULL;
				//IXYCONTAINER_QueryInterface(pMe->pIxy,AEEIID_WIDGET,&mainFormWidget);

⌨️ 快捷键说明

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