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

📄 auiwap.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
	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 + -