📄 atbwapaci.c
字号:
$Function: M_MMI_WAP_CACHE_PREPARE_IND
$Description: Tell WAP Browser to prepare the cache for shutdown
$Returns: None
$Arguments: parameter - data block
*******************************************************************************/
void M_MMI_WAP_CACHE_PREPARE_IND(T_MMI_WAP_CACHE_PREPARE_IND *parameter)
{
#ifdef TRACE_ATBWAPACI
TRACE_FUNCTION("M_MMI_WAP_CACHE_PREPARE_IND");
#endif
mmi_coder(WAP_CACHE_PREPARE_IND_ID,(void*)parameter);
return;
}
/*******************************************************************************
$Function: M_WAP_MMI_CONTROL_IND
$Description: Send control information to MMI
$Returns: None.
$Arguments: parameter - data block
*******************************************************************************/
void M_WAP_MMI_CONTROL_IND(T_WAP_MMI_CONTROL_IND *parameter)
{
T_WAP_VIEW *View;
#ifdef TRACE_ATBWAPACI
TRACE_FUNCTION("M_WAP_MMI_CONTROL_IND");
TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id);
TRACE_EVENT_P3( "Status, Error, Click: %d, %d, %d", parameter->status_code, parameter->error_code,
parameter->play_standard_click);
#endif
View = ATB_wap_get_view(parameter->object_id);
/* Check if we're shutting down */
if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
{
TRACE_EVENT("*** SHUTTING DOWN ***");
return;
}
/* Intercept fatal error */
if (parameter->error_code==8002)
{
AUI_error_dialog(View, parameter->error_code);
return;
}
/* For non-fatal error, do not report if there is no view open */
if (!View)
{
TRACE_EVENT("View is NULL");
return;
}
/* Data is being downloaded; update status display */
if (parameter->status_code==14)
{
ATB_wap_status_change(View, ATB_WAP_DOWNLOADING);
}
/* Data is no longer being downloaded */
if (parameter->status_code==15)
{
ATB_wap_status_change(View, ATB_WAP_NO_STATUS);
}
/* If WSP session failed, try using second IP address */
if (parameter->error_code==1014 && !View->secondaryIP)
{
ATB_wap_secondary_IP(View);
return;
}
/* Create error dialog if required */
if (parameter->error_code!=0 && parameter->error_code != 0x20)
{
AUI_error_dialog(View, parameter->error_code);
}
return;
}
/*******************************************************************************
$Function: M_WAP_MMI_NEW_KEY_IND
$Description: A new WAP key is to be created.
$Returns: None.
$Arguments: parameter - data block
*******************************************************************************/
void M_WAP_MMI_NEW_KEY_IND(T_WAP_MMI_NEW_KEY_IND *parameter)
{
T_WAP_VIEW *View;
#ifdef TRACE_ATBWAPACI
TRACE_FUNCTION("M_WAP_MMI_NEW_KEY_IND");
TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id);
TRACE_EVENT_P2( "Key ID, Key Type: %d, %d", parameter->keyId, parameter->key_type);
ATB_trace_ushort_string(parameter->Label, parameter->label_length);
#endif
if (!(View = ATB_wap_get_view(parameter->object_id)))
return;
/* Check if we're shutting down */
if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
{
TRACE_EVENT("*** SHUTTING DOWN ***");
return;
}
if (parameter->key_type == WAP_KEY_PREV)
AUI_wap_change_soft_key(View, parameter->Label,
(USHORT)parameter->label_length, parameter->keyId);
return;
}
/*******************************************************************************
$Function: M_WAP_MMI_INPUT_DIALOG_REQ
$Description: An input dialog is to be displayed.
$Returns: None.
$Arguments: parameter - data block
*******************************************************************************/
void M_WAP_MMI_INPUT_DIALOG_REQ(T_WAP_MMI_INPUT_DIALOG_REQ *parameter)
{
T_WAP_VIEW *View;
#ifdef TRACE_ATBWAPACI
TRACE_FUNCTION("M_WAP_MMI_INPUT_DIALOG_REQ");
TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id);
TRACE_EVENT_P2( "MMI dialog_id, is_password: %d, %d", parameter->dialog_id, parameter->is_password);
TRACE_EVENT_P3( "MMI empty_ok, visible, size: %d, %d, %d", parameter->empty_ok,
parameter->visible, parameter->size);
ATB_trace_ushort_string(parameter->Title, parameter->title_length);
ATB_trace_ushort_string(parameter->Input, parameter->input_length);
ATB_trace_ushort_string(parameter->Format, parameter->format_length);
#endif // TRACE_ATBWAPACI
if (!(View = ATB_wap_get_view(parameter->object_id)))
return;
/* Check if we're shutting down */
if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
{
TRACE_EVENT("*** SHUTTING DOWN ***");
return;
}
AUI_wap_input_dialog_open(parameter);
return;
}
/*******************************************************************************
$Function: M_WAP_MMI_PASSWORD_DIALOG_REQ
$Description: A password dialog is to be displayed.
$Returns: None
$Arguments: parameter - data block
*******************************************************************************/
void M_WAP_MMI_PASSWORD_DIALOG_REQ(T_WAP_MMI_PASSWORD_DIALOG_REQ *parameter)
{
T_WAP_VIEW *View;
#ifdef TRACE_ATBWAPACI
TRACE_FUNCTION("M_WAP_MMI_PASSWORD_DIALOG_REQ");
TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id);
TRACE_EVENT_P2( "MMI dialog_id, dialog_type: %d, %d", parameter->dialog_id, parameter->dialog_type);
ATB_trace_ushort_string(parameter->Message, parameter->message_length);
ATB_trace_string(parameter->Input, parameter->input_length);
#endif
if (!(View = ATB_wap_get_view(parameter->object_id)))
return;
/* Check if we're shutting down */
if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
{
TRACE_EVENT("*** SHUTTING DOWN ***");
return;
}
AUI_wap_password_dialog_open(parameter);
return;
}
/*******************************************************************************
$Function: M_WAP_MMI_CONFIRM_DIALOG_REQ
$Description: A confirmation dialog is to be displayed.
$Returns: None
$Arguments: parameter - data block
*******************************************************************************/
void M_WAP_MMI_CONFIRM_DIALOG_REQ(T_WAP_MMI_CONFIRM_DIALOG_REQ *parameter)
{
T_WAP_VIEW *View;
#ifdef TRACE_ATBWAPACI
TRACE_FUNCTION("M_WAP_MMI_CONFIRM_DIALOG_REQ");
TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id);
TRACE_EVENT_P1( "MMI dialog_id: %d", parameter->dialog_id);
ATB_trace_ushort_string(parameter->Message, parameter->message_length);
ATB_trace_ushort_string(parameter->Ok_key, parameter->ok_key_length);
ATB_trace_ushort_string(parameter->Cancel_key, parameter->cancel_key_length);
#endif
if (!(View = ATB_wap_get_view(parameter->object_id)))
return;
/* Check if we're shutting down */
if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
{
TRACE_EVENT("*** SHUTTING DOWN ***");
return;
}
AUI_wap_confirm_dialog_open(parameter);
return;
}
/*******************************************************************************
$Function: M_WAP_MMI_INFO_DIALOG_REQ
$Description: An info/alert dialog is to be displayed.
$Returns: None.
$Arguments: parameter - data block
*******************************************************************************/
void M_WAP_MMI_INFO_DIALOG_REQ(T_WAP_MMI_INFO_DIALOG_REQ *parameter)
{
T_WAP_VIEW *View;
#ifdef TRACE_ATBWAPACI
TRACE_FUNCTION("M_WAP_MMI_INFO_DIALOG_REQ");
TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id);
TRACE_EVENT_P1( "MMI dialog_id: %d", parameter->dialog_id);
ATB_trace_ushort_string(parameter->Message, parameter->message_length);
#endif
if (!(View = ATB_wap_get_view(parameter->object_id)))
return;
/* Check if we're shutting down */
if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
{
TRACE_EVENT("*** SHUTTING DOWN ***");
return;
}
AUI_wap_info_dialog_open(parameter);
return;
}
/*******************************************************************************
$Function: M_WAP_MMI_NEW_CARD_IND
$Description: A new card is to be created.
$Returns: None.
$Arguments: parameter - data block
*******************************************************************************/
void M_WAP_MMI_NEW_CARD_IND(T_WAP_MMI_NEW_CARD_IND *parameter)
{
T_WAP_VIEW *View;
UBYTE *History = (UBYTE *)parameter->History;
U32 historyPointer = History[4] + History[5]*0x100 + History[6]*0x10000 + History[7]*0x1000000;
/* Look at second history entry (bytes 4 to 7) - this is the previous card.
* If this is zero, then there shouldn't be a "back" key */
USHORT historyIndex;
#ifdef TRACE_ATBWAPACI
TRACE_FUNCTION("M_WAP_MMI_NEW_CARD_IND");
TRACE_EVENT_P1("object ID: %d",parameter->object_id);
TRACE_EVENT_P1( "is_bookmarkable: %d", parameter->is_bookmarkable);
ATB_trace_ushort_string(parameter->Title, parameter->title_length);
ATB_trace_string(parameter->Url, parameter->url_length);
#endif
if (!(View = ATB_wap_get_view(parameter->object_id)))
{
return;
}
/* Check if we're shutting down */
if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
{
TRACE_EVENT("*** SHUTTING DOWN ***");
return;
}
/* Store title, or "Untitled" if title is blank */
if (parameter->title_length > 0)
{
/* Copy a max of CARD_TITLE_MAX_LEN unicode characters */
parameter->title_length = ATB_uc_text_copy(View->Title, parameter->Title, CARD_TITLE_MAX_LEN);
/* Convert to MMI unicode, store in View->Title */
ATB_uc_text_convert(View->Title, parameter->title_length);
}
else
{
/* Use "Untitled" text tag */
parameter->title_length = AUI_wap_stringID(View->Title, CARD_TITLE_MAX_LEN, WAP_STRING_UNTITLED);
}
/* Copy URL, making sure it's not too long */
strncpy(View->URL, parameter->Url, URL_MAX_LEN);
/* Add card name & URL to top of history list */
if (View->Status & WAP_STATUS_SAVEHISTORY)
{
ATB_wap_entry_insert(View->History, (char *)View->Title, 0); /* Add as entry 0 (last entry lost) */
ATB_wap_entry_insert(View->HistoryURL, View->URL, 0);
}
/* Crop title so it fits on screen */
ATB_uc_text_crop(View->Title, parameter->title_length, WAP_SCREEN_WIDTH-WAP_CHAR_WIDTH);
/* Check to see if user can go back from this card */
if (historyPointer != 0)
{
View->CanGoBack = TRUE;
}
else
{
View->CanGoBack = FALSE;
}
View->CustSoftKeys = FALSE; /* Use default softkeys */
/* New card is being read in */
ATB_wap_status_change(View, ATB_WAP_CARD_READING);
return;
}
/*******************************************************************************
$Function: M_WAP_MMI_DRAW_CARD_IND
$Description: Tell MMI to draw the card.
$Returns: None.
$Arguments: parameter - data block
*******************************************************************************/
void M_WAP_MMI_DRAW_CARD_IND(T_WAP_MMI_DRAW_CARD_IND *parameter)
{
T_WAP_VIEW *View;
#ifdef TRACE_ATBWAPACI
TRACE_FUNCTION("M_WAP_MMI_DRAW_CARD_IND");
TRACE_EVENT_P1("object ID: %d",parameter->object_id);
TRACE_EVENT_P2("contentWidth: %d, contentHeight: %d",parameter->contentWidth, parameter->contentHeight);
TRACE_EVENT_P2("contentPosX: %d, contentPosY: %d",parameter->contentPosX, parameter->contentPosY);
#endif
if (!(View = ATB_wap_get_view(parameter->object_id)))
return;
/* Check if we're shutting down */
if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
{
TRACE_EVENT("*** SHUTTING DOWN ***");
return;
}
View->cardWidth = parameter->contentWidth;
View->cardHeight = parameter->contentHeight;
View->cardXPosition = parameter->contentPosX;
View->cardYPosition = parameter->contentPosY;
View->acceptUpdate = FALSE;
/* Set to FALSE as default, to ignore any attempts to redraw parts of the card
* rather than the whole card (e.g. when selecting an option). Only allows a card
* to be updated if M_WAP_MMI_CLEAR_CARD_IND is called. */
return;
}
/*******************************************************************************
$Function: M_WAP_MMI_CLEAR_CARD_IND
$Description: Clear the card display. Allows card to be updated.
$Returns: None.
$Arguments: parameter - data block
*******************************************************************************/
void M_WAP_MMI_CLEAR_CARD_IND(T_WAP_MMI_CLEAR_CARD_IND *parameter)
{
T_WAP_VIEW *View;
#ifdef TRACE_ATBWAPACI
TRACE_FUNCTION("M_WAP_MMI_CLEAR_CARD_IND");
TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id);
#endif
if (!(View = ATB_wap_get_view(parameter->object_id)))
return;
/* Check if we're shutting down */
if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
{
TRACE_EVENT("*** SHUTTING DOWN ***");
return;
}
View->acceptUpdate = TRUE;
/* Clearing the card means we're going to update the whole thing, so this update
* is permitted (see M_WAP_MMI_DRAW_CARD_IND). */
return;
}
/*******************************************************************************
$Function: M_WAP_MMI_SEND_TEXT_IND
$Description: A text is to be displayed.
$Returns: None.
$Arguments: parameter - data block
*******************************************************************************/
void M_WAP_MMI_SEND_TEXT_IND(T_WAP_MMI_SEND_TEXT_IND *parameter)
{
T_WAP_VIEW *View;
T_WAP_ELEMENT *Element;
T_WAP_MMI_SEND_TEXT_IND *copy;
#ifdef TRACE_ATBWAPACI
TRACE_FUNCTION("M_WAP_MMI_SEND_TEXT_IND");
ATB_trace_ushort_string(parameter->Text, parameter->text_length);
ATB_trace_ushort_string(parameter->Formatstring, parameter->formatstring_length);
#endif
if (!(View = ATB_wap_get_view(parameter->object_id)))
return;
/* Check if we're shutting down */
if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
{
TRACE_EVENT("*** SHUTTING DOWN ***");
return;
}
/* If an update is forbidden, ignore this event */
if (!View->acceptUpdate)
return;
/* Allocate memory and copy the data */
Element = ATB_wap_buffer_add_element(View, WAP_TEXT);
copy = (T_WAP_MMI_SEND_TEXT_IND *)AUI_wap_memory_alloc(sizeof(T_WAP_MMI_SEND_TEXT_IND));
memcpy((void *)copy, (void *)parameter, sizeof(T_WAP_MMI_SEND_TEXT_IND));
if (parameter->text_length != 0)
{
copy->Text = (USHORT *)AUI_wap_memory_alloc(parameter->text_length*sizeof(USHORT));
memcpy((void *)copy->Text, (void *)parameter->Text, parameter->text_length*sizeof(USHORT));
}
if (parameter->formatstring_length != 0)
{
copy->Formatstring = (USHORT *)AUI_wap_memory_alloc(parameter->formatstring_length*sizeof(USHORT));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -