📄 mainscreen.c
字号:
#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 + -