Пример #1
0
static void SelectTo()
{
	FormPtr frmP = FrmGetActiveForm();
	if (FormIsNot(frmP, FormReply)) return;
	
	SendPref pref;
	ReadSendPreference(pref);
	
	if (pref.useFingerAddress) {
		if (FasSearchAvailable()) {
			SelectUsingFingerAddr();
			return;
		}
	}

	FieldPtr fieldTo = (FieldPtr) GetObjectPtr(frmP, FieldTo);
	FldSetSelection(fieldTo, 0, StrLen(FldGetTextPtr(fieldTo)));

	AddrLookupParamsType params;
	MemSet(&params, sizeof(AddrLookupParamsType), 0);
	params.formatStringP = "^mobile";
	params.field1 = addrLookupSortField;
	params.field2 = addrLookupMobile;
	params.field2Optional = false;
	params.userShouldInteract = true;

	PhoneNumberLookupCustom (fieldTo, &params, true);
	FrmSetFocus(frmP, FrmGetObjectIndex(frmP, FieldCompose));
}
Пример #2
0
static void AnnotationFormInit( void )
{
    FormType*   annotationForm;

    annotationForm = FrmGetFormPtr( frmAnnotation );
    
    if ( ( entryP->flags & ANNOTATION_BOOKMARK ) &&
         entryP->id.indexInParagraph == NEW_ANNOTATION ) {
        SetFormTitle( annotationForm, strAddBookmarkTitle );
    }
    else {
        SetFormTitle( annotationForm, strAnnotationTitle );
    }

    scrollBar      = GetObjectPtr( frmAnnotationScrollBar );
    if ( Prefs()->scrollbar == SCROLLBAR_LEFT ) {
        SetObjectPosition( annotationForm, frmAnnotationField, false );
        SetObjectPosition( annotationForm, frmAnnotationScrollBar, true );
    }
    field = GetObjectPtr( frmAnnotationField );
    CtlSetUsable( GetObjectPtr( frmAnnotationDelete ),
        entryP->id.indexInParagraph != NEW_ANNOTATION );

    FrmDrawForm( annotationForm );
    InsertText( field, data );
    if ( entryP->id.indexInParagraph == NEW_ANNOTATION )
        FldSetSelection( field, 0, StrLen( data ) );
    else
        FldSetInsertionPoint( field, 0 );

    UpdateFieldScrollbar( field, scrollBar );

    FrmSetFocus( annotationForm, FrmGetObjectIndex( annotationForm,
                                     frmAnnotationField ) );
}
Пример #3
0
static Err UserCredentialsFormInit(FormType* form, const FlickrPrefs& prefs)
{
    FieldType* field;
    MemHandle handle;
    MemHandle newText;
    UInt16 len;

    FrmSetEventHandler(form, UserCredentialsFormHandleEvent);

    field = (FieldType*)FrmGetObjectPtr(form, FrmGetObjectIndex(form, emailField));
    assert(field != NULL);
//    FldSetMaxVisibleLines(field, 2);

    if (0 != (len = StrLen(prefs.email)))
    {
        newText = StrCopyToHandle(prefs.email, len);
        if (NULL == newText)
            return exgMemError;

        handle = FldGetTextHandle(field);
        if (NULL != handle)
            MemHandleFree(handle);

        FldSetTextHandle(field, newText);
        FldSetSelection(field, 0, len);
        FldRecalculateField(field, false);
    }
    if (0 != (len = StrLen(prefs.password)))
    {
        field = (FieldType*)FrmGetObjectPtr(form, FrmGetObjectIndex(form, passwordField));
        assert(field != NULL);
        newText = StrCopyToHandle(prefs.password, len);
        if (NULL == newText)
            return exgMemError;

        handle = FldGetTextHandle(field);
        if (NULL != handle)
            MemHandleFree(handle);

        FldSetTextHandle(field, newText);
        FldSetSelection(field, 0, len);
        FldRecalculateField(field, false);
    }
    return errNone;
}
Пример #4
0
static void URLFormInit(FormType *frmP)
{
    GlobalsPtr gP = GetGlobals();
    
    if (gP->navigationOpen) {
        FieldPtr urlFldP = GetObjectPtr(kURLField);
        
        // TODO: Get current page's URL instead!
        FldInsert(urlFldP, gP->navigationOpen, StrLen(gP->navigationOpen));
        FldSetSelection(urlFldP, 0, StrLen(gP->navigationOpen));
    }
    FrmSetFocus(frmP, FrmGetObjectIndex(frmP, kURLField));
}
Пример #5
0
static Err ForwardCurrentRecord(DmOpenRef db)
{
	FormPtr form = FrmGetActiveForm();
	if (FormIsNot(form, FormReply)) return frmErrNotTheForm;

	MemHandle memHandle = 0;
	SMSDbRecordType smsRecord;
	
	Err err = GetSMSRecord(db, g_SelectedCategory, GetCurrentIndex(), 
		smsRecord, memHandle, true);
	RETURN_ERR_ON_ERR(err);
	CheckNullPointer(memHandle);
	
	FieldPtr fieldTo = (FieldPtr) GetObjectPtr(form, FieldTo);
	SetFieldText(fieldTo, smsRecord.phoneNumber);
	SetFieldText((FieldPtr) GetObjectPtr(form, FieldCompose), smsRecord.content);

	FldSetSelection(fieldTo, 0, StrLen(FldGetTextPtr(fieldTo)));
	FrmSetFocus(form, FrmGetObjectIndex(form, FieldTo));

	MemHandleUnlock(memHandle);	
	
	return errNone;
}
Пример #6
0
static Boolean MyMainFormHandleEvent( EventPtr event )
{
	Boolean handled = false;
	Int i;
	FieldPtr fld;
	FormPtr frm;
	Word readerNum;

#ifdef __GCC__
	CALLBACK_PROLOGUE
#endif

	frm = FrmGetActiveForm();

	switch( event->eType ) {
		case frmOpenEvent:
			UpdateScrollbar( dataFieldID, dataSbarID );
			FrmDrawForm( frm );
			break;
		case ctlSelectEvent:
			if( event->data.ctlSelect.controlID==updateButtonID ) {
				handled=true;

				if( readerType==SC_READER_UNKNOWN ) {
					FrmAlert( alert6FormID );
					break;
				}

				FrmHideObject(frm, FrmGetObjectIndex(frm, updateButtonID));

				i=scdir();

				UpdateScrollbar( dataFieldID, dataSbarID );

				if( i==1 ) FrmAlert(alert1FormID);
				else if( i==2 ) FrmAlert(alert2FormID);
				else if( i==3 ) FrmAlert(alert3FormID);
				else if( i==4 ) FrmAlert(alert4FormID);
				else if( i>4 ) FrmAlert(alert5FormID);

				FrmShowObject(frm, FrmGetObjectIndex(frm, updateButtonID));
			}
			break;
		case menuEvent:
			fld = FrmGetObjectPtr(frm, FrmGetObjectIndex(frm, dataFieldID)); 
			switch( event->data.menu.itemID ) {
				case selectMenuID:
					handled = true;
					FldSetSelection (fld, 0, FldGetTextLength (fld));
					break;
				case copyMenuID:
					handled = true;
					FldCopy(fld);
					break;
				case readerMenuID:
					handled = true;

					switch(readerType) {
						case SC_READER_DUMBMOUSE:
							readerNum=0;
							break;
						case SC_READER_TOWITOKO:
							readerNum=1;
							break;
						default:
							readerNum=-1;
							break;
					}

					readerNum = ChooseReader( readerNum );

					switch(readerNum) {
						case 0:
							readerType=SC_READER_DUMBMOUSE;
							break;
						case 1:
							readerType=SC_READER_TOWITOKO;
							break;
						default:
							readerType=SC_READER_UNKNOWN;
							break;
					}

					break;
				case aboutMenuID:
					handled = true;
					FrmAlert(aboutFormID);
					break;
				case helpMenuID:
					handled = true;
					FrmAlert(helpFormID);
					break;
				default:
					break;
			}
		case fldChangedEvent:
			if( event->data.fldChanged.fieldID==dataFieldID ) {
				UpdateScrollbar( dataFieldID, dataSbarID );
				handled=true;
			}
			break;
		case sclRepeatEvent:
			if( event->data.sclRepeat.scrollBarID==dataSbarID ) {
				ScrollLines( dataFieldID, dataSbarID,
					event->data.sclRepeat.newValue -
					event->data.sclRepeat.value, false );
			}
			break;
		case keyDownEvent:
			if( event->data.keyDown.chr == pageUpChr ) {
				PageScroll( dataFieldID, dataSbarID, up );
				handled = true;
			} else if( event->data.keyDown.chr == pageDownChr ) {
				PageScroll( dataFieldID, dataSbarID, down );
				handled = true;
			}
            break;
		default:
			break;
	}

#ifdef __GCC__
	CALLBACK_EPILOGUE
#endif

	return handled;
}
Пример #7
0
/********************************************************************************
 * Description: this is the function responsible for checking the 
 * input password value of the authentication form. 
 * ******************************************************************************/ 
static void 
checkPassword (void) 
{
	MemPtr pass1, scratch = NULL;
	char *input;

	UInt16 index = 0;
	MemHandle rec;
	mdKey in;
	ListType *list;
	
		// compact text and get a pointer.
		FldCompactText (GetObjectFromActiveForm (PasswordField));
	input = FldGetTextPtr (GetObjectFromActiveForm (PasswordField));
	list = GetObjectFromActiveForm (selPopupList);
	
		// if SysPass is defined, free it. this happens when Strip locks
		// itself after the timeout.
		if (SysPass)
		MemPtrFree (SysPass);
	
		// if its the first time the user has used the program we need 
		// to set some things up. 
		if (input && StrLen (input))
		
	{
		
			// read the password from the database, decrypt with the input text.
			if ((rec = DmQueryRecord (PasswordDB, index)))
			
		{
			pass1 = MemHandleLock (rec);
			if ((scratch = MemPtrNew (24)))
				
			{
				UInt16 chk = LstGetSelection (list);
				
					//printf("%d\n", LstGetSelection(list)); 
					switch (chk)
					
				{
					case 0:
						UnpackPassword_old (pass1, scratch, input, 1);
						break;
					case 1:
						UnpackPassword_old (pass1, scratch, input, 2);
						break;
					case 2:
						UnpackPassword_old (pass1, scratch, input, 0);
						break;
				}
			}
			MemHandleUnlock (rec);
		}
		
			// the message digest of the password they provided should be exactly the
			// same as the message digest that was just decrypted out of the password
			// database. Do a MemCmp to make sure they are the same.
		md5_string (input, in);

		if ((!MemCmp (in, scratch, 16)) && input)
			
		{
			
				// if so, copy the password onto the system-password
		if ((SysPass = MemPtrNew (StrLen (input) + 1)))
				StrCopy (SysPass, input);
		if (scratch)
				MemPtrFree (scratch);
		md_string(SysPass, NewSysPass);
		cryptSwitch (LstGetSelection (list));
		}
		
		else
			
		{
			
				// FAILURE!!!!!!
				// free the memory and tell the user they entered the wrong password.
				FieldType *fld = GetObjectFromActiveForm (PasswordField);
			FrmCustomAlert (GenericError,
							  "The password you entered is incorrect", NULL,
							  NULL);
				FldSetSelection (fld, 0, FldGetTextLength (fld));
			LstDrawList (list);
			if (scratch)
				
			{
				MemPtrFree (scratch);
				SysPass = NULL;
			}
		}
	}
	
		// null string is always wrong!!!
		else
		
	{
		FrmCustomAlert (GenericError, "You forgot to enter a password!!",
						 NULL, NULL);
		LstDrawList (list);
	}
}