📄 auiwap.c
字号:
sprintf(test_string, "Memory left: %d", mfwCheckMemoryLeft());
TRACE_EVENT(test_string);
return;
}
static void info_screen (T_MFW_HND win, USHORT TextId, USHORT TextId2, T_VOID_FUNC Callback)
/* present info <TextId> for 3 seconds in a simple infoscreen */
{
T_DISPLAY_DATA display_info;
TRACE_FUNCTION ("info_screen()");
/* dlg_initDisplayData_TextId( &display_info, TxtNull, TxtNull, TextId, TextId2 );
dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)Callback, THREE_SECS, 0 );*/
dialog_info_init(&display_info);
display_info.TextId = TextId;
display_info.TextId2 = TextId2;
display_info.Callback = (T_VOID_FUNC)Callback;
display_info.Time = THREE_SECS;
display_info.KeyEvents = 0;
display_info.iconindex=REMIND_COMPLETE;
display_info.Identifier = 0;/*2003/12/13, wangyan modify*/
info_dialog (win, &display_info);
}
/*******************************************************************************
$Function: AUI_menu
$Description: The main WAP menu
$Returns: MFW_EVENT_CONSUMED
$Arguments: menu - pointer to current menu
item - pointer to current menu item
*******************************************************************************/
int AUI_menu(MfwMnu* menu, MfwMnuItem* item)
{
T_MFW_HND win;
#ifdef TRACE_AUIWAP
TRACE_FUNCTION("AUI_menu");
#endif
win = AUI_create(mfwParent( mfw_header()));
if (!win)
{
TRACE_EVENT("ERROR - Wap Already Open");
}
check_memory();
return MFW_EVENT_CONSUMED;
}
/*******************************************************************************
$Function: AUI_please_wait
$Description: Creates a "Please Wait" message that will hang around until WAP has
been started
$Returns: Window handle of the created window
$Arguments: parent_win - the parent window
*******************************************************************************/
T_MFW_HND AUI_please_wait(T_MFW_HND parent_win)
{
T_DISPLAY_DATA display_info;
TRACE_FUNCTION("AUI_please_wait()");
/* dlg_initDisplayData_TextId( &display_info, TxtNull, TxtNull,TxtNull , TxtPleaseWait);
dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)AUI_please_wait_cb, 2000, 0 );*//*2003/12/13, wangyan modify*/
//dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)AUI_please_wait_cb, 10000, 0 );
dialog_info_init(&display_info);
display_info.RightSoftKey = TxtNull; /* 2004/05/28 sunsj modify */
display_info.TextId2 = TxtPleaseWait;
display_info.Callback = (T_VOID_FUNC)AUI_please_wait_cb;
display_info.Time = 2000;
display_info.KeyEvents=0;
display_info.iconindex=REMIND_WAITTING;
return info_dialog(parent_win,&display_info); //information screen
}
/* SPR#1569 - SH - Added this function */
void AUI_please_wait_cb(T_MFW_HND win, USHORT identifier, SHORT reason)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_MMI_CONTROL * control = (T_MMI_CONTROL *)win_data->user;
TRACE_FUNCTION("AUI_please_wait_cb()");
switch (reason)
{
case INFO_TIMEOUT:
if (control->dialog NEQ 0)
SEND_EVENT(win, DIALOG_DESTROY, NULL, NULL);
info_screen(NULL, TxtTimedOut, TxtNull, NULL);
break;
}
}
/*******************************************************************************
$Function: AUI_wap_start_done
$Description: SPR#1569 - SH - Added this function
WAP has started - can create new view
$Returns: None
$Arguments: None.
*******************************************************************************/
void AUI_wap_start_done(void)
{
T_MFW_HND win = wap_main_window;
T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data;
T_WAP_DATA *data = (T_WAP_DATA *)win_data->user; // WAP data
T_MMI_WAP_NEW_VIEW_IND wap_view;
#ifdef TRACE_AUIWAP
TRACE_FUNCTION("AUI_wap_start_done");
TRACE_EVENT_P1("Data: %d", data);
#endif
wap_view.object_id = 1;
wap_view.uaMode = 1; // Specifies WML user agent
wap_view.view_width = WAP_SCREEN_WIDTH; // Width of screen for browser
wap_view.view_height = WAP_SCREEN_HEIGHT; // Height of screen for browser
wap_view.font_height = WAP_CHAR_HEIGHT;
wap_view.unicode_height = WAP_CHAR_HEIGHT;
wap_view.unicode_width = WAP_CHAR_WIDTH*2;
/* Get height and widths of all characters in current font */
wap_view.font_width_length = 256;
wap_view.font_width = (UBYTE *)AUI_wap_memory_alloc(256*sizeof(UBYTE));
//font_getAllAsciiWidths(wap_view.font_width);
memset(wap_view.font_width,8,256*sizeof(UBYTE));//zhaowm temp
data->View = ATB_wap_new_view(&wap_view, (void *)data); // Create the view
AUI_wap_memory_free(wap_view.font_width, 256*sizeof(UBYTE));
data->connected = FALSE; // We're not connected yet
return;
}
/*******************************************************************************
$Function: AUI_wap_new_view_done
$Description: SPR#1569 - SH - Added this function
View has started - can create menu
$Returns: None
$Arguments: None.
*******************************************************************************/
void AUI_wap_new_view_done(void)
{
T_MFW_HND win = wap_main_window;
T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data;
T_WAP_DATA *data = (T_WAP_DATA *)win_data->user; // WAP data
#ifdef TRACE_AUIWAP
TRACE_FUNCTION("AUI_wap_startup_done");
#endif
if (data!=NULL)
{
SEND_EVENT(data->win,WAP_INIT,0,0); // Initialise window
if (data->temp_win)
{
SEND_EVENT(data->temp_win, DIALOG_DESTROY, NULL, NULL);
data->temp_win = NULL;
}
if (URlconnect) //zhaowm 2003.0217 for entering internet by one step
{
URlconnect = 0;
AUI_connect_URL(win, data->View->Profile->Homepage); // Connect & attempt to download homepage
}
else
{
WapTitle = TxtWAP; //zhaowm 2002.12.08
data->menu_win = bookMenuStart(win, WAPMenuAttributes(), PhbkWap); // Create WAP Menu
SEND_EVENT(data->menu_win, ADD_CALLBACK, NULL, (void *)AUI_menu_cb); // Add our own callback
}
}
return;
}
/*******************************************************************************
$Function: AUI_menu_cb
$Description: Callback function for the WAP menu
$Returns:
$Arguments: parent_win - the WAP data window
identifier - unused
reason - unused
*******************************************************************************/
static void AUI_menu_cb(T_MFW_HND parent_win, UBYTE identifier, UBYTE reason)
{
T_MFW_WIN *win_data; //= ((T_MFW_HDR *)parent_win)->data;
T_WAP_DATA *data; //= (T_WAP_DATA *)win_data->user; // WAP data
#ifdef TRACE_AUIWAP
TRACE_FUNCTION("AUI_menu_cb");
#endif
TRACE_EVENT("AUI_menu_cb");
if(parent_win)
win_data = ((T_MFW_HDR *)parent_win)->data;
if(win_data)
data = (T_WAP_DATA *)win_data->user;
if(data->win)
AUI_destroy(data->win, WAP_WIN);
return;
}
/*******************************************************************************
$Function: AUI_homepage
$Description: Enter WAP browser with URL=homepage URL
$Returns: MFW_EVENT_CONSUMED
$Arguments: menu - pointer to current menu
item - pointer to current menu item
*******************************************************************************/
int AUI_homepage(MfwMnu* menu, MfwMnuItem* item)
{
T_MFW_HND parent_win = mfwParent( mfw_header()); // parent_win = WAP menu window
T_MFW_WIN *win_data = ((T_MFW_HDR *)parent_win)->data;
tBookStandard *parent_data = (tBookStandard *)win_data->user; // data for WAP menu window
T_MFW_HND win = parent_data->parent_win; // This is the WAP data window
T_WAP_DATA *data;
#ifdef TRACE_AUIWAP
TRACE_FUNCTION("AUI_homepage");
#endif
if (win==NULL)
return NULL;
win_data = ((T_MFW_HDR *)win)->data;
data = (T_WAP_DATA *)win_data->user; // WAP data
/*
if ((data->View->Profile->AccessType == WAP_GPRS_DATA)&&(IsGprsSupported() == 0)) //zhaowm 2003.1.14
{
AUI_info_dialog(data->win, TxtnoGPRSservice, NULL); // Display "Changed" message
return NULL;
}
*/
AUI_connect_URL(win, data->View->Profile->Homepage); // Connect & attempt to download homepage
return MFW_EVENT_CONSUMED;
}
//zhaowm 2002.12.28 add for entering the wap browser by one-step.
int AUI_homepageStart(T_MFW_HND parent_win)
{
T_MFW_HND win = AUI_create(parent_win); // create WAP data window
//T_WAP_DATA *data;
//T_MFW_WIN *win_data ;
//if (win==NULL)
// return NULL;
URlconnect = 1; //zhaowm 2003.02.14
//win_data = ((T_MFW_HDR *)win)->data;
//data = (T_WAP_DATA *)win_data->user; // WAP data
/*
if ((data->View->Profile->AccessType == WAP_GPRS_DATA)&&(IsGprsSupported()== 0)) //zhaowm 2003.1.14
{
AUI_info_dialog(data->win, TxtnoGPRSservice, NULL);
AUI_destroy(data->win, ALL_WIN);
return NULL;
}
*/
/*
if (data!=NULL)
{
SEND_EVENT(data->win,WAP_INIT,0,0); // Initialise window
if (data->temp_win)
{
SEND_EVENT(data->temp_win, DIALOG_DESTROY, NULL, NULL);
data->temp_win = NULL;
}
AUI_connect_URL(win, data->View->Profile->Homepage); // Connect & attempt to download homepage
}
*/
//AUI_connect_URL(win, data->View->Profile->Homepage); // Connect & attempt to download homepage
return MFW_EVENT_CONSUMED;
}
/*******************************************************************************
$Function: AUI_create
$Description: Creates a window (never shown) to which is attached all the data that
is used in WAP. This is distinct from the WAP card browser window,
which is created dynamically.
SPR#1569 - SH - Some of the functionality moved to different functions
$Returns: Pointer to the new window
$Arguments: parent win - pointer to the parent window of the data window
*******************************************************************************/
T_MFW_HND AUI_create (T_MFW_HND parent_win)
{
T_MFW_WIN *win_data;
T_WAP_DATA *data = (T_WAP_DATA *)AUI_wap_memory_alloc (sizeof (T_WAP_DATA)); // WAP data
#ifdef TRACE_AUIWAP
TRACE_FUNCTION("AUI_create");
#endif
if (wap_main_window) /*One instance of WAP already activated*/
{
AUI_wap_memory_free((UBYTE *)data, sizeof (T_WAP_DATA));
return NULL;
}
// Create the WAP data window
data->update_forbid = FALSE;
data->win = win_create (parent_win, 0, E_WIN_VISIBLE, (T_MFW_CB)AUI_cb); // Create invisible window, to which data is attached
if (data->win==NULL)
{
AUI_wap_memory_free((UBYTE *)data, sizeof (T_WAP_DATA));
return NULL;
}
// Create window handler
wap_main_window = data->win;
data->main_kbd = kbd_create (data->win, KEY_ALL, (T_MFW_CB)AUI_main_kbd_cb);
data->mmi_control.dialog = (T_DIALOG_FUNC)AUI_control;
data->mmi_control.data = (void *)data;
data->parent_win = parent_win;
win_data = ((T_MFW_HDR *)data->win)->data;
win_data->user = (void *)data; // Attach data to window
// Reset various window pointers
data->edit_win = NULL;
data->options_win = NULL;
data->list_win = NULL;
data->menu_win = NULL; // Indicate none of these windows exist yet
data->other_menu_win= NULL; //wyj
data->browser_win = NULL;
data->list_data = NULL;
data->connect_win = NULL;
data->error_win = NULL; /* SPR#1739 - SH */
// Allocate memory for some strings
data->Buffer = (char *)AUI_wap_memory_alloc ((INPUT_MAX_LEN+1)*sizeof(char)); // Input buffer 1
data->Buffer2 = (char *)AUI_wap_memory_alloc ((INPUT_MAX_LEN+1)*sizeof(char)); // Input buffer 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -