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

📄 frmprefs.c

📁 WAP browser is based on the Wireless Application Protocol web browser, WAP1.3 will enable mobile pho
💻 C
字号:
/*frmPrefs.c*/
#include    <PalmOS.h>
#include	"PalmUtils.h"
#include	"frmPrefs.h"
#include 	"WAPUniverse.h"
#include 	"../res/WAPUniverse_res.h"
#include    "MenuHnd.h"
#ifdef __GNUC__
#include "callbacks.h"
#endif


//SetFieldTextFromHandle
extern FieldPtr SetFieldTextFromHandle(UInt16 fieldID, MemHandle txtH)
{
	MemHandle oldTxtH;
	FormPtr frm = FrmGetActiveForm();
	FieldPtr fldP;
	
	fldP = FrmGetObjectPtr(frm, FrmGetObjectIndex(frm, fieldID));
	ErrNonFatalDisplayIf(!fldP, "Missing field");
	oldTxtH = FldGetTextHandle(fldP);

	// set the text	
	FldSetTextHandle(fldP, txtH);

	// the following line has been commented out to prevent drawing the
	// field before the form has actually been drawn. Lets see how it goes! 
	//	FldDrawField(fldP);
	
	if (oldTxtH)
	{
		MemHandleFree(oldTxtH);
	}
		
	return fldP;
}

//PrefsFormInit
static void PrefsFormInit(FormType * frmP)
{
MemHandle txtH;
ControlType *controlP;

//set text for timeout
	/*txtH = MemHandleNew(StrLen(g_prefs.timeout) + 1);
	if (txtH)
	{
		StrCopy(MemHandleLock(txtH), g_prefs.timeout);
		
		MemHandleUnlock(txtH);

		SetFieldTextFromHandle(fieldPrefTime, txtH);
	}*/
	
	//set history option
	if (g_prefs.history == true)
		CtlSetValue (GetObjectPtr(checkPrefHistory), 1);
	else
		CtlSetValue (GetObjectPtr(checkPrefHistory), 0);
	
	//set disconnect on exit
	if (g_prefs.disconnect == true)
		CtlSetValue (GetObjectPtr(checkPrefDis), 1);
	else
		CtlSetValue (GetObjectPtr(checkPrefDis), 0);
	
	//set Prompt at start
	if (g_prefs.open == true)
		CtlSetValue (GetObjectPtr(checkPrefPromptOpen), 1);
	else
		CtlSetValue (GetObjectPtr(checkPrefPromptOpen), 0);
	
	//set Prompt at end
	if (g_prefs.close == true)
		CtlSetValue (GetObjectPtr(checkPrefPromptClose), 1);
	else
		CtlSetValue (GetObjectPtr(checkPrefPromptClose), 0);

	//set Start with
	if (g_prefs.start == 0)
		LstSetSelection (GetObjectPtr(listPrefStart), 0);
	else
		LstSetSelection (GetObjectPtr(listPrefStart), 1);
	controlP = GetObjectPtr(triggerPrefStart);
	CtlSetLabel( controlP, LstGetSelectionText (GetObjectPtr(listPrefStart), g_prefs.start) );
	
	//set Agent
	//CtlSetValue (GetObjectPtr(checkPrefAltAgent), g_prefs.agent);
	if (g_prefs.agent == 0)
		LstSetSelection (GetObjectPtr(listPrefAltAgent), 0);
	else if (g_prefs.agent == 1)
		LstSetSelection (GetObjectPtr(listPrefAltAgent), 1);
	else if (g_prefs.agent == 2)
		LstSetSelection (GetObjectPtr(listPrefAltAgent), 2);
	else if (g_prefs.agent == 3) {
		LstSetSelection (GetObjectPtr(listPrefAltAgent), 3);
		FrmShowObject (FrmGetActiveForm(), FrmGetObjectIndex(FrmGetActiveForm(), fieldPrefAgent));
	} else
		LstSetSelection (GetObjectPtr(listPrefAltAgent), 0);
	controlP = GetObjectPtr(triggerPrefAgent);
	CtlSetLabel( controlP, LstGetSelectionText (GetObjectPtr(listPrefAltAgent), g_prefs.agent) );
	

		txtH = MemHandleNew(StrLen(g_prefs.CustomAgent) + 1);
		if (txtH)
		{
			StrCopy(MemHandleLock(txtH), g_prefs.CustomAgent);
		
			MemHandleUnlock(txtH);

			SetFieldTextFromHandle(fieldPrefAgent, txtH);
		}

	if (g_prefs.timeout == 10)
		LstSetSelection (GetObjectPtr(listPrefTimeout), 0);
	else if (g_prefs.timeout == 30)
		LstSetSelection (GetObjectPtr(listPrefTimeout), 1);
	else if (g_prefs.timeout == 60)
		LstSetSelection (GetObjectPtr(listPrefTimeout), 2);
	else if (g_prefs.timeout == 120)
		LstSetSelection (GetObjectPtr(listPrefTimeout), 3);
	else if (g_prefs.timeout == 240)
		LstSetSelection (GetObjectPtr(listPrefTimeout), 4);
	else
		LstSetSelection (GetObjectPtr(listPrefTimeout), 0);
	controlP = GetObjectPtr(triggerPrefTimeout);
	CtlSetLabel( controlP, LstGetSelectionText (GetObjectPtr(listPrefTimeout), g_prefs.timeoutlist) );
	
}

Boolean PrefsFormHandleEvent(EventType * eventP)
{
    Boolean handled = false;
    FormType * frmP;
    Char* text = NULL;
    Int16 selection;
    ControlType *controlP;

    switch (eventP->eType) 
        {
        case frmOpenEvent:
            frmP = FrmGetActiveForm();
            PrefsFormInit(frmP);
            FrmDrawForm(frmP);
            handled = true;
            break;
            
        case frmUpdateEvent:
            // To do any custom drawing here, first call 
            // FrmDrawForm(), then do your drawing, and 
            // then set handled to true.
            break;

        case frmCloseEvent:					
		SetFieldTextFromHandle(fieldPrefTime, NULL);
		SetFieldTextFromHandle(fieldPrefAgent, NULL);
		handled = true;
		break;

        case ctlSelectEvent:
		switch (eventP->data.ctlSelect.controlID)
		{
			
			case buttonPrefSave:				
					/*text = FldGetTextPtr(GetObjectPtr(fieldPrefTime));
					if(text)
					{
						StrCopy(g_prefs.timeout, text);
					}*/

					//g_prefs.history = CtlGetValue (GetObjectPtr(checkPrefHistory));
					if (CtlGetValue (GetObjectPtr(checkPrefHistory)) == 1)
						g_prefs.history = true;
					else
						g_prefs.history = false;
					//g_prefs.disconnect = CtlGetValue (GetObjectPtr(checkPrefDis));
					if (CtlGetValue (GetObjectPtr(checkPrefDis)) == 1)
						g_prefs.disconnect = true;
					else
						g_prefs.disconnect = false;
					//g_prefs.open = CtlGetValue (GetObjectPtr(checkPrefPromptOpen));
					if (CtlGetValue (GetObjectPtr(checkPrefPromptOpen)) == 1)
						g_prefs.open = true;
					else
						g_prefs.open = false;
					//g_prefs.close = CtlGetValue (GetObjectPtr(checkPrefPromptClose));
					if (CtlGetValue (GetObjectPtr(checkPrefPromptClose)) == 1)
						g_prefs.close = true;
					else
						g_prefs.close = false;
					//g_prefs.agent = LstGetSelection (GetObjectPtr(listPrefAltAgent));//CtlGetValue (GetObjectPtr(checkPrefAltAgent));
					if (LstGetSelection (GetObjectPtr(listPrefAltAgent)) == 0)
						g_prefs.agent = 0;
					else if (LstGetSelection (GetObjectPtr(listPrefAltAgent)) == 1)
						g_prefs.agent = 1;
					else if (LstGetSelection (GetObjectPtr(listPrefAltAgent)) == 2)
						g_prefs.agent = 2;
					else if (LstGetSelection (GetObjectPtr(listPrefAltAgent)) == 3)
						g_prefs.agent = 3;
					else
						g_prefs.agent = 0;

						text = FldGetTextPtr(GetObjectPtr(fieldPrefAgent));
						if(text)
						{
							StrCopy(g_prefs.CustomAgent, text);
						}

					//g_prefs.start = LstGetSelection (GetObjectPtr(listPrefStart));
					if (LstGetSelection (GetObjectPtr(listPrefStart)) == 0)
						g_prefs.start = 0;
					else if (LstGetSelection (GetObjectPtr(listPrefStart)) == 1)
						g_prefs.start = 1;
					else
						g_prefs.start = 0;
						
					if (LstGetSelection (GetObjectPtr(listPrefTimeout)) == 0)
						g_prefs.timeout = 10;
					else if (LstGetSelection (GetObjectPtr(listPrefTimeout)) == 1)
						g_prefs.timeout = 30;
					else if (LstGetSelection (GetObjectPtr(listPrefTimeout)) == 2)
						g_prefs.timeout = 60;
					else if (LstGetSelection (GetObjectPtr(listPrefTimeout)) == 3)
						g_prefs.timeout = 120;
					else if (LstGetSelection (GetObjectPtr(listPrefTimeout)) == 4)
						g_prefs.timeout = 240;
					else
						g_prefs.timeout = 10;	
					g_prefs.timeoutlist	= LstGetSelection (GetObjectPtr(listPrefTimeout));
					//SetFieldTextFromHandle(fieldPrefTime, NULL);
					SetFieldTextFromHandle(fieldPrefAgent, NULL);

				FrmReturnToForm(0);
				handled = true;
				break;
			case buttonPrefCancel:
				//SetFieldTextFromHandle(fieldPrefTime, NULL);
				SetFieldTextFromHandle(fieldPrefAgent, NULL);
				FrmReturnToForm(0);
				handled = true;
				break;
			case triggerPrefAgent:
				selection = LstPopupList(GetObjectPtr (listPrefAltAgent));
				if (selection == 3) {
					FrmShowObject (FrmGetActiveForm(), FrmGetObjectIndex(FrmGetActiveForm(), fieldPrefAgent));
				} else {
					FrmHideObject (FrmGetActiveForm(), FrmGetObjectIndex(FrmGetActiveForm(), fieldPrefAgent));
				}
				controlP = GetObjectPtr(triggerPrefAgent);
				CtlSetLabel( controlP, LstGetSelectionText (GetObjectPtr(listPrefAltAgent), selection) );
				handled = true;
				break;
		}
		break;
		
        
        default:
            break;
        }
       
    return handled;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -