📄 plxbrowfile.c
字号:
PLXBROW_SAVEPAGE_INLINEITEM_MAX_NUM, SavePageIcons,
wgui_inline_items, 0,guiBuffer);
SetCategory57RightSoftkeyFunctions(SavePageBack,SavePageBack);
SetCategory57LeftSoftkeyFunction(EntryPlxBrowSavePageInputScreen);
SetKeyHandler(SavePageKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
}
/****************************************************************************
* Function static void plxBrowSetSavePageInlineItems(void)
* Purpose set the inline items of the save page screen
* Params
* Return
* Remarks
\****************************************************************************/
static void plxBrowSetSavePageInlineItems(void)
{
SetInlineItemCaption(&(wgui_inline_items[0]),(U8*)get_string(STR_ID_PLX_BROW_SAVEPAGE_SAVECAPTION));
SetInlineItemActivation(&(wgui_inline_items[1]),INLINE_ITEM_ACTIVATE_WITHOUT_KEY_EVENT,0);
SetInlineItemDisplayOnly(&(wgui_inline_items[1]), (U8*) g_szCurrSavePageName); //use Unicode
}
/****************************************************************************
* Function static void plxBrowSavePageHiliteInlineItem(S32 index)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void plxBrowSavePageHiliteInlineItem(S32 index)
{
ChangeLeftSoftkey(STR_GLOBAL_EDIT,IMG_GLOBAL_OK);
SetLeftSoftkeyFunction(EntryPlxBrowSavePageInputScreen,KEY_EVENT_UP);
if(0 != pfnUnicodeStrlen((const S8*)g_szCurrSavePageName))
ChangeRightSoftkey(STR_GLOBAL_DONE,IMG_GLOBAL_BACK);
else
ChangeRightSoftkey(STR_GLOBAL_BACK,IMG_GLOBAL_BACK);
SetRightSoftkeyFunction(SavePageBack, KEY_EVENT_UP);
SetKeyHandler(EntryPlxBrowSavePageInputScreen,KEY_ENTER,KEY_EVENT_UP);
}
/****************************************************************************
* Function static void ExitPlxBrowSavePageScreen(void)
* Purpose exit the save page screen
* Params
* Return
* Remarks
\****************************************************************************/
static void ExitPlxBrowSavePageScreen(void)
{
history ScrDA; /* Variable to hold the history data*/
S16 nHistory=0;
U16 size;
CloseCategory57Screen();
ScrDA.scrnID = SCR_ID_PLX_BROW_SAVEPAGE;
ScrDA.entryFuncPtr = EntryPlxBrowSavePageScreen;
pfnUnicodeStrcpy((S8*)ScrDA.inputBuffer,(S8*)&nHistory);
GetCategoryHistory(ScrDA.guiBuffer);
size = (U16)GetCategory57DataSize();
GetCategory57Data ((U8*)ScrDA.inputBuffer );
AddNHistory(ScrDA,size);
}
/****************************************************************************
* Function static void SavePageBack(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void SavePageBack(void)
{
int nToneId = WARNING_TONE;
if(0 != pfnUnicodeStrlen((const S8*)g_szCurrSavePageName))
{
PLIB_ConfirmBox(NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_SAVE_SAVEORNOT_CONFIRM),
NULL,NULL,NULL,0, (void *)&nToneId, 0, SavePageBackConfirmCB);
SetKeyHandler(SavePageKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
}
else
plxBrowSavePageRskFunc();
}
/****************************************************************************
* Function static void SavePageBackConfirmCB(PLIBEVENT event)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void SavePageBackConfirmCB(PLIBEVENT event)
{
if(PEVENT_POSITIVE == event)
{
plxBrowSavePageLskFunc();
}
else if(PEVENT_NEGTIVE == event)
{
plxBrowSavePageRskFunc();
}
}
/****************************************************************************
* Function static void plxBrowSavePageRskFunc(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void plxBrowSavePageRskFunc(void)
{
memset(g_szCurrSavePageName,0x0,PLXBROW_FILENAME_MAX_LEN);
memset(g_szTempPageName,0x0,PLXBROW_FILENAME_MAX_LEN);
if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_VIEW))
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
else
GoBackHistory();
}
/****************************************************************************
* Function static void plxBrowSavePageLskFunc(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void plxBrowSavePageLskFunc(void)
{
int nWidePageNameLen;
char szWideNameSuffix [PLXBROW_FILENAME_MAX_LEN];
char szWideFullName[PLXBROW_FILENAME_MAX_LEN];
if(0 == (nWidePageNameLen = pfnUnicodeStrlen((const S8*)g_szCurrSavePageName)))
{
GoBackHistory();
// DisplayPopup((U8*)get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_NULLNAME),IMG_ID_PLX_PUBLIC_SUBMENU_POPFAIL /*IMG_GLOBAL_WARNING*/, 0, UI_POPUP_NOTIFYDURATION_TIME,WARNING_TONE);
PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_SAVEPAGE_ERR_NULLNAME), UI_POPUP_NOTIFYDURATION_TIME);
return;
}
GetPageTypeStrIDAndSuffix(PWBE_GetSourceType(PlxBrowGetBrowserHandle()), szWideNameSuffix);
pfnUnicodeStrcpy(szWideFullName,g_szCurrSavePageName);
pfnUnicodeStrcat(szWideFullName,szWideNameSuffix);
if(TRUE == IsCurrPageExisted((const char *)szWideFullName))
{
GoBackHistory();
EntrySaveFileExistConfirmScreen();
}
else
SaveFileExistConfirmLskFunc();
return;
}
/****************************************************************************
* Function static void EntryPlxBrowSavePageInputScreen(void)
* Purpose enter the save page input screen
* Params
* Return
* Remarks
\****************************************************************************/
static void EntryPlxBrowSavePageInputScreen(void)
{
U8* guiBuffer;
if(FALSE == bIsPageNameChanged)
{
pfnUnicodeStrcpy((S8*)g_szTempPageName,(S8*)g_szCurrSavePageName);
bIsPageNameChanged = TRUE;
}
EntryNewScreen(SCR_ID_PLX_BROW_SAVEPAGE_INPUT, NULL, EntryPlxBrowSavePageInputScreen, NULL);
SetParentHandler(0);
guiBuffer = GetCurrGuiBuffer(SCR_ID_PLX_BROW_SAVEPAGE_INPUT);
ShowCategory5Screen(STR_ID_PLX_BROW_SAVEPAGE_SAVECAPTION, 0,
STR_GLOBAL_OPTIONS, IMG_GLOBAL_OPTIONS,
STR_GLOBAL_BACK, IMG_GLOBAL_BACK,
INPUT_TYPE_ALPHANUMERIC_LOWERCASE,
(U8*)g_szTempPageName,
PLXBROW_FILENAME_MAINNAME_MAX_NUM + 1, guiBuffer);
SetLeftSoftkeyFunction(EnterSavePageInputOK,KEY_EVENT_UP);
SetCategory5RightSoftkeyFunction(plxBrowSavePageInputRskFunc,KEY_EVENT_UP);
// SetKeyHandler(EnterSavePageInputOK,KEY_ENTER, KEY_EVENT_UP);
// ClearKeyHandler(KEY_END,KEY_EVENT_DOWN);
SetKeyHandler(SavePageKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
SetDelScrnIDCallbackHandler(SCR_ID_PLX_BROW_SAVEPAGE_INPUT, SavePageHistoryDelCB);
bWaitSavePageExKeyEndFlag = TRUE;
}
/****************************************************************************
* Function EnterSavePageInputOK
* Purpose when left softkey (ok) is pressed
* Params
* Return
* Remarks
\****************************************************************************/
static void EnterSavePageInputOK (void)
{
PLIB_RegisterIMEDoneNotify (plxBrowSavePageInputLskFunc);
PLIB_IMEOptionEntry ();
SetKeyHandler(SavePageKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
}
/****************************************************************************
* Function static void plxBrowSavePageInputLskFunc(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void plxBrowSavePageInputLskFunc(void)
{
unsigned char * p;
int flag=0;
unsigned short unic;
if(0 == pfnUnicodeStrlen ((const S8*)g_szTempPageName))
{
GoBackHistory();
PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_NULLNAME), UI_POPUP_NOTIFYDURATION_TIME);
return;
}
for(p = (unsigned char *)g_szTempPageName; !(*p == 0 && *(p+1) == 0); p += 2 )
{
unic = *p + (*(p+1) << 8);
if ((unic==';') || (unic=='/') || (unic=='\\') ||
(unic=='?') || (unic==':') || (unic=='@') ||
(unic=='&') || (unic=='$') || (unic=='=') ||
(unic=='+') || (unic==',') || (unic=='|') ||
(unic=='<') || (unic=='>') || (unic=='"') ||
(unic=='%' )|| (unic==' ') ||(unic=='.'))
{
flag = 1;
break;
}
}
if(1 == flag)
{ // DisplayPopup((U8 * )get_string(STR_ID_PLX_BROW_ERR_INVALIDINPUT), IMG_ID_PLX_PUBLIC_SUBMENU_POPFAIL /*IMG_GLOBAL_WARNING*/, 0,UI_POPUP_NOTIFYDURATION_TIME, WARNING_TONE);
GoBackHistory();
bIsPageNameChanged = TRUE;
PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_ERR_INVALIDINPUT), UI_POPUP_NOTIFYDURATION_TIME);
}
else
{
bWaitSavePageExKeyEndFlag = FALSE; //real goback
pfnUnicodeStrcpy((S8*)g_szCurrSavePageName,(S8*)g_szTempPageName);
GoBacknHistory(1);
bIsPageNameChanged = FALSE;
}
}
/****************************************************************************
* Function static void plxBrowSavePageInputRskFunc(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void plxBrowSavePageInputRskFunc(void)
{
bWaitSavePageExKeyEndFlag = FALSE;
bIsPageNameChanged = FALSE;
GoBackHistory();
}
/****************************************************************************
* Function static void EntrySaveFileExistConfirmScreen(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void EntrySaveFileExistConfirmScreen(void)
{
int nToneId = WARNING_TONE;
PLIB_ConfirmBox(NULL, (const WCHAR *) get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_FILEEXIST), NULL,NULL,
NULL,0, (void*)&nToneId, 0, SaveFileExistConfirmCB);
SetKeyHandler(SavePageKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
}
/****************************************************************************
* Function static void EntrySaveFileExistConfirmScreen(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void SaveFileExistConfirmCB(PLIBEVENT event )
{
if(PEVENT_POSITIVE == event)
SaveFileExistConfirmLskFunc();
else if( PEVENT_NEGTIVE == event)
SaveFileExistConfirmRskFunc();
}
/****************************************************************************
* Function static void SaveFileExistConfirmRskFunc(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void SaveFileExistConfirmRskFunc(void)
{
GoBackHistory();
}
/****************************************************************************
* Function static void SaveFileExistConfirmLskFunc(void)
* Purpose save the file with the name inputed
* Params
* Return
* Remarks
\****************************************************************************/
static void SaveFileExistConfirmLskFunc(void)
{
int nWidePageNameLen;
char *szUtf8PageName;
char *szWidePagePath;
int nRetSave;
if(NULL == (szWidePagePath = PlxAppMalloc(PLXBROW_MAX_PATH *2)))
{
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_ERR_MEMORYMALLOC),UI_POPUP_NOTIFYDURATION_TIME);
return;
}
if(NULL == (szUtf8PageName = PlxAppMalloc(PLXBROW_MAX_PATH)))
{
PlxAppFree(szWidePagePath);
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_ERR_MEMORYMALLOC),UI_POPUP_NOTIFYDURATION_TIME);
return;
}
AnsiiToUnicodeString((S8 *)szWidePagePath, (S8 *)GetPBUISavePageDirectory());
pfnUnicodeStrcat(szWidePagePath,g_szCurrSavePageName);
nWidePageNameLen = pfnUnicodeStrlen((const PS8)szWidePagePath);
PlxWideCharToUTF8((const char*)szWidePagePath,nWidePageNameLen,szUtf8PageName,PLXBROW_MAX_PATH);
nRetSave = PWBE_SaveSource(PlxBrowGetBrowserHandle(),szUtf8PageName,PLXBROW_SAVEPAGE_MAXDOCSIZE,PLXBROW_SAVEPAGE_MAXIMGSIZE);
PlxAppFree(szWidePagePath);
PlxAppFree(szUtf8PageName);
switch(nRetSave)
{
case SSR_NODATA:
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
// DisplayPopup((U8*)get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_NODATA),IMG_ID_PLX_PUBLIC_SUBMENU_POPFAIL /*IMG_GLOBAL_WARNING*/,0,UI_POPUP_NOTIFYDURATION_TIME,WARNING_TONE);
PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_SAVEPAGE_ERR_NODATA), UI_POPUP_NOTIFYDURATION_TIME);
break;
case SSR_TOOLARGE:
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
// DisplayPopup((U8*)get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_TOOLARGE),IMG_ID_PLX_PUBLIC_SUBMENU_POPFAIL /*IMG_GLOBAL_WARNING*/,0,UI_POPUP_NOTIFYDURATION_TIME,WARNING_TONE);
PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_SAVEPAGE_ERR_TOOLARGE), UI_POPUP_NOTIFYDURATION_TIME);
break;
case SSR_NOFLASHSPACE:
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
// DisplayPopup((U8*)get_string(STR_ID_PLX_BROW_SAVEPAGE_ERR_NOFLASHSPACE),IMG_ID_PLX_PUBLIC_SUBMENU_POPFAIL /*IMG_GLOBAL_WARNING*/,0,UI_POPUP_NOTIFYDURATION_TIME,WARNING_TONE);
PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_SAVEPAGE_ERR_NOFLASHSPACE), UI_POPUP_NOTIFYDURATION_TIME);
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -