Esempio n. 1
0
Boolean
ExamDetailsFormHandleEvent(EventPtr event)
{
  FormPtr frm=FrmGetActiveForm();
  Boolean handled = false;

  if (event->eType == ctlSelectEvent) {
    // button handling
    switch (event->data.ctlSelect.controlID) {
      case BUTTON_exd_cancel:
        handled=true;
        ExamDetailsFormFree();
        FrmReturnToForm(FORM_exams);
        FrmUpdateForm(FORM_exams, frmRedrawUpdateCode);
        break;

      case BUTTON_exd_ok:
        handled=true;
        if (ExamDetailsFormSave()) {
          ExamDetailsFormFree();
          FrmReturnToForm(FORM_exams);
          FrmUpdateForm(FORM_exams, frmRedrawUpdateCode);
        }
        break;

      case SELECTOR_exd_date:
        handled=true;
        ExamDetailsGetDate();
        break;

      case SELECTOR_exd_time:
        handled=true;
        EditTimeGetTime(GetObjectPtr(SELECTOR_exd_time), &gExamDetailsBegin, &gExamDetailsEnd, gExamDetailsTimeTrigger);
        break;

      default:
        break;
    }
  } else if (event->eType == menuOpenEvent) {
    return HandleMenuOpenEvent(event);
  } else if (event->eType == menuEvent) {
    // forwarding of menu events
    return HandleMenuEvent(event->data.menu.itemID);
  } else if (event->eType == frmOpenEvent) {
    // initializes and draws the form
    ExamDetailsFormInit(frm);
    FrmDrawForm (frm);
    handled = true;
  } else if (event->eType == frmUpdateEvent) {
    // redraws the form if needed
    FrmDrawForm (frm);
    handled = false;
  } else if (event->eType == frmCloseEvent) {
    // this is done if form is closed
    ExamDetailsFormFree();
  }

  return (handled);
}
Esempio n. 2
0
static Boolean WordsListFormControlSelected(AppContext* appContext, FormType* form, const EventType* event)
{
    Boolean handled=false;
    Err error=errNone;
    UInt16 controlId = event->data.ctlSelect.controlID;
    switch (controlId)
    {
        case ctlArrowLeft:
            WordsListFormScrollList(form,  -(appContext->dispLinesCount-1));
            handled=true;
            break;                
        
        case ctlArrowRight:
            WordsListFormScrollList(form, (appContext->dispLinesCount-1));
            handled=true;
            break;      
            
        case buttonCancel:
            FrmReturnToForm(0);
            WordsListFormCleanup(appContext);
            handled=true;
            break;
            
        default:
            Assert(false);
            
    }
    return handled;
}
Esempio n. 3
0
inline static void WordsListFormSelectProposal(AppContext* appContext, UInt16 proposal)
{
    Assert(proposal>=0 && proposal<appContext->wordsInListCount);
    const char* selectedWord=appContext->wordsList[proposal];
    FrmReturnToForm(0);
    StartWordLookup(appContext, selectedWord);
    WordsListFormCleanup(appContext);
}
Esempio n. 4
0
/* Send a goto event for internal bookmark */
void SendBookmarkGoToEvent
     (
     BookmarkListEntry* listEntry,
     Boolean            returnToForm
     )
{
    AnnotationEntry e;
    UInt16         offset;
    Header*        header;
    MemHandle      handle;
    EventType      match;

    if ( ! GetAnnotationHeaderByRecordNum( &e,
              listEntry->recordNum ) )
        return;

    handle = ReturnRecordHandle( e.id.uid );

    if ( handle == NULL )
        return;

    header = MemHandleLock( handle );

    offset = e.triggerStart +
                 GetParagraphOffset( header,
                     GET_PARAGRAPH( header, e.id.paragraphNum ) );

    MemHandleUnlock( handle );
    FreeRecordHandle( &handle );

    if ( returnToForm )
        FrmReturnToForm( GetMainFormId() );

    MemSet( &match, sizeof( EventType ), 0 );

    match.eType                         = frmGotoEvent;
    match.data.frmGoto.formID           = GetMainFormId();
    match.data.frmGoto.recordNum        =
                e.id.uid;
    match.data.frmGoto.matchPos         =
                offset;
    match.data.frmGoto.matchCustom      = GOTO_BOOKMARK;

    EvtAddEventToQueue( &match );
}
Esempio n. 5
0
UInt16 DisplayDialog( UInt16 formID, FormEventHandlerPtr handler ) 
{ 
	FormPtr active = FrmGetActiveForm();
    
	UInt16 activeID = ( active != NULL ) ? FrmGetFormId( active ) : 0;
	FormPtr dialog = FrmInitForm( formID );
	UInt16 buttonPressed = 0;
    
	FrmSetActiveForm( dialog ); 
	if( handler ){ 
		FrmSetEventHandler( dialog, handler ); 
	} 
	FrmPopupForm( formID ); 
	buttonPressed = FrmDoDialog( dialog ); 
	FrmReturnToForm( activeID );
    
	return buttonPressed;
} 
Esempio n. 6
0
Boolean BookmarksFormHandleEvent(EventType * event)
{
    Boolean     handled = false;
    FormType *  frm;
    ListType *  bkmList, * sortTypeList;
    char *      listTxt;
    UInt16      bookmarksCount;
    AppContext* appContext = GetAppContext();

    frm = FrmGetActiveForm();
    switch (event->eType)
    {
        case frmOpenEvent:
            OpenBookmarksDB(appContext, appContext->prefs.bookmarksSortType);
            bkmList = (ListType *) FrmGetObjectPtr(frm,  FrmGetObjectIndex(frm, listBookmarks));
            bookmarksCount = BookmarksWordCount(appContext);
            Assert( 0 != bookmarksCount );

            LstSetDrawFunction(bkmList, BookmarksListDrawFunc);
            LstSetListChoices(bkmList, NULL, bookmarksCount);

            sortTypeList = (ListType *) FrmGetObjectPtr(frm,  FrmGetObjectIndex(frm, listSortBy));
            // list position matches enums for simplicity
            LstSetSelection(sortTypeList, (Int16)appContext->prefs.bookmarksSortType);

            listTxt = LstGetSelectionText(sortTypeList, appContext->prefs.bookmarksSortType);
            CtlSetLabel((ControlType *)FrmGetObjectPtr(frm,FrmGetObjectIndex(frm,popupSortBy)), listTxt);

            FrmDrawForm(frm);

            handled = true;
            break;

        case winDisplayChangedEvent:
            handled= BookmarksFormDisplayChanged(appContext, frm);
            break;

        case ctlSelectEvent:
            switch (event->data.ctlSelect.controlID)
            {
                case buttonCancel:
                    CloseBookmarksDB(appContext);
                    FrmReturnToForm(0);
                    handled = true;
                    break;

                case popupSortBy:
                    // do nothing
                    break;

                default:
                    Assert(false);
                    break;
            }
            break;

        case popSelectEvent:
            switch (event->data.popSelect.listID)
            {
                case listSortBy:
                    Assert( appContext->currBookmarkDbType == appContext->prefs.bookmarksSortType );
                    if ((BookmarkSortType) event->data.popSelect.selection != appContext->prefs.bookmarksSortType)
                    {
                        // we changed sorting type
                        sortTypeList = (ListType *) FrmGetObjectPtr(frm,  FrmGetObjectIndex(frm, listSortBy));
                        listTxt = LstGetSelectionText(sortTypeList, event->data.popSelect.selection);
                        CtlSetLabel((ControlType *)FrmGetObjectPtr(frm,FrmGetObjectIndex(frm,popupSortBy)), listTxt);

                        // list position matches enums for simplicity
                        OpenBookmarksDB(appContext, (BookmarkSortType) event->data.popSelect.selection);
                        appContext->prefs.bookmarksSortType = (BookmarkSortType) event->data.popSelect.selection;
#ifdef DEBUG
                        // word count shouldn't change
                        bookmarksCount = BookmarksWordCount(appContext);
                        bkmList = (ListType *) FrmGetObjectPtr(frm,  FrmGetObjectIndex(frm, listBookmarks));
                        Assert( LstGetNumberOfItems(bkmList) == bookmarksCount );
#endif
                        FrmDrawForm(frm);
                    }
                    handled = true;
                    break;

                default:
                    Assert(false);
                    break;
            }
            break;

        case lstSelectEvent:
        {
            MemHandle recHandle;
            char *    word;
            recHandle = DmQueryRecord(appContext->bookmarksDb, event->data.lstSelect.selection);
            Assert( recHandle ); // no reason it shouldn't work
            if (recHandle)
            {
                word = (char*)MemHandleLock(recHandle);
                Assert(word);
#ifndef I_NOAH                
                appContext->currentWord = dictGetFirstMatching(GetCurrentFile(appContext), word);
                MemHandleUnlock(recHandle);
                SendEvtWithType(evtNewWordSelected);
#else
                FrmReturnToForm(0);
                StartWordLookup(appContext, word);
                MemHandleUnlock(recHandle);
#endif                
            }
            CloseBookmarksDB(appContext);
#ifndef I_NOAH
            FrmReturnToForm(0);
#endif            
            handled = true;
        }

        default:
            break;
    }
    return handled;
}
Esempio n. 7
0
/* Event handler for the details form */
Boolean DetailsFormHandleEvent
    (
    EventType* event  /* pointer to an EventType structure */
    )
{
    Boolean handled;
    Boolean update;

    handled     = false;
    update      = false;

    switch ( event->eType ) {
        case ctlSelectEvent:
            if ( event->data.ctlEnter.controlID == frmDetailsOK ) {
                UInt16  reference;
                Boolean oldStatus;
                Boolean newStatus;

                reference = GetHistoryCurrent();
                oldStatus = ShowImages( reference );
                newStatus = CtlGetValue( GetObjectPtr( frmDetailsShowImages ) );
                update    = oldStatus ^ newStatus;

                if ( newStatus )
                    ShowImagesOn( reference );
                else
                    ShowImagesOff( reference );

                if ( CtlGetValue( GetObjectPtr( frmDetailsStatusRead ) ) )
                    SetVisitedLink( reference );
                else
                    UnsetVisitedLink( reference );

            }
            else if ( event->data.ctlEnter.controlID == frmDetailsCopy ) {
                FieldType* field;

                field = GetObjectPtr( frmDetailsLink );
                WriteTextFieldToMemo( field );
            }
            else if ( event->data.ctlEnter.controlID != frmDetailsCancel ) {
                break;
            }
            FrmReturnToForm( PREVIOUS_FORM );
            if ( update ) {
                ResetHeight();
                FrmUpdateForm( GetMainFormId(), frmRedrawUpdateCode );
            }
            handled = true;
            break;

        case winEnterEvent:
            handled = ResizeHandleWinEnterEvent();
            break;

        case winDisplayChangedEvent:
            handled = ResizeHandleWinDisplayChangedEvent();
            break;

        case winExitEvent:
            handled = ResizeHandleWinExitEvent();
            break;

        case frmOpenEvent:
#ifdef HAVE_SILKSCREEN
            ResizeHandleFrmOpenEvent();
#endif
            DetailsFormInit();
            handled = true;
            break;

        case frmCloseEvent:
#ifdef HAVE_SILKSCREEN
            ResizeHandleFrmCloseEvent();
#endif
            handled = false;
            break;

        default:
            handled = false;
    }

    return handled;
}
Esempio n. 8
0
/*
 * \brief react to cancel button being pressed on newcity form.
 *
 * The cancel button is pressed in the new city form
 * Note the use of the returntoform api, this is means the last
 * form is reopened, and the frmcloseevent isn't sent to the
 * form that's being closed.
 */
static void
cnCancelButtonPressed(void)
{
	game.cityname[0] = '\0';
	FrmReturnToForm(0);
}
Esempio n. 9
0
Boolean IconSelectHandleEvent(EventPtr eventP)
{
   	Boolean handled = false;
   	FormPtr frmP = FrmGetActiveForm();
    Int16   num;
	ScrollBarPtr barP;

	switch (eventP->eType) 
    {
    case menuEvent:
        return handled;
			
    case frmOpenEvent:
        FrmDrawForm(frmP);
        num = LoadIcon(0);

        barP = GetObjectPtr(IconSelectScrollBar);
        if (num > 9*8) {
            SclSetScrollBar(barP, 0, 0, num/8-8, 9);
        }
        else {
            SclSetScrollBar(barP, 0, 0, 0, 9);
        }
        handled = true;
        break;
			
    case ctlSelectEvent:
    	IconSelectCancelPressed = false;
        if (eventP->data.ctlSelect.controlID >= IconSelectIcon1Button &&
            eventP->data.ctlSelect.controlID < IconSelectIcon1Button+9*8) {
            Int16   val, min, max, page;
            DmResID resID;

            SclGetScrollBar(GetObjectPtr(IconSelectScrollBar),
                            &val, &min, &max, &page);

            DmResourceInfo(IconDB, (val*8+ eventP->data.ctlSelect.controlID - IconSelectIcon1Button),
                           NULL, &resID, NULL);
			g_prefs.iconNumber = resID;                           
        }
        switch (eventP->data.ctlSelect.controlID) {
        case IconSelectNoneButton:
            g_prefs.iconNumber = -1;
            break;
        case IconSelectCancelButton:
        	IconSelectCancelPressed = true;
            break;
        }

        // FrmUpdateForm(NewTodoForm, frmRedrawUpdateCode+1);
        // FrmUpdateForm(NewEventForm, frmRedrawUpdateCode+1);
        FrmReturnToForm(0);
        
        handled = true;
        break;

	case sclRepeatEvent:
		IconFormScroll(eventP->data.sclRepeat.newValue, 
                       eventP->data.sclRepeat.value);
		break;

    case keyDownEvent: 
    {
		Int16		valueP, minP, maxP, pageSizeP;

		ScrollBarPtr barP = GetObjectPtr(IconSelectScrollBar);
		SclGetScrollBar(barP, &valueP, &minP, &maxP, &pageSizeP);

		switch (eventP->data.keyDown.chr) {
		case vchrPageUp:
		case vchrPrevField:
			IconFormScrollLines(-(pageSizeP-1));
			break;
		case vchrPageDown:
		case vchrNextField:
			IconFormScrollLines((pageSizeP-1));
			handled = true;
			break;
        }
        break;
    }
        
    default:
        break;
		
    }
	
	return handled;
}
Esempio n. 10
0
static Boolean PrefFormHandleEvent (EventPtr e)
{
    Boolean handled = false;
    FormPtr frm;
    UInt16 i;
    
    frm = FrmGetActiveForm();
    switch (e->eType) {
        case frmOpenEvent:
            FrmDrawForm(frm);
            PrefFormSetValue(frm, chkDisableAutoOff, 
			     stopWatchPrefs.disableAutoOff);
            PrefFormSetValue(frm, chkShowTicks, 
			     stopWatchPrefs.showTicks);

            PrefFormSetValue(frm, btnSoundOff, 
			     btnSoundOff == stopWatchPrefs.sound);
            PrefFormSetValue(frm, btnSound1, 
			     btnSound1 == stopWatchPrefs.sound);
            PrefFormSetValue(frm, btnSound2, 
			     btnSound2 == stopWatchPrefs.sound);
            PrefFormSetValue(frm, btnSound3, 
			     btnSound3 == stopWatchPrefs.sound);
            PrefFormSetValue(frm, btnSoundHigh, 
			     btnSoundHigh == stopWatchPrefs.sound);

            PrefFormSetValue(frm, btnVisualNum, 
			     btnVisualNum == stopWatchPrefs.visual);
            PrefFormSetValue(frm, btnVisualBar, 
			     btnVisualBar == stopWatchPrefs.visual);
            PrefFormSetValue(frm, btnVisualSticks, 
			     btnVisualSticks == stopWatchPrefs.visual);
            PrefFormSetValue(frm, btnVisualHour, 
			     btnVisualHour == stopWatchPrefs.visual);

            handled = true;
            break;

        case menuEvent:
            MenuEraseStatus(NULL);
            handled = true;
            break;

        case ctlSelectEvent:
            switch(e->data.ctlSelect.controlID) {
		case chkDisableAutoOff:
		    stopWatchPrefs.disableAutoOff=e->data.ctlSelect.on;
                    break;
		case chkShowTicks:
		    stopWatchPrefs.showTicks=e->data.ctlSelect.on;
                    break;

                case btnSoundOff:
                    stopWatchPrefs.sound=e->data.ctlSelect.controlID;
                    stopWatchPrefs.vol=0;
                    break;
                case btnSound1:
                    stopWatchPrefs.sound=e->data.ctlSelect.controlID;
                    stopWatchPrefs.vol=5;
                    break;
                case btnSound2:
                    stopWatchPrefs.sound=e->data.ctlSelect.controlID;
                    stopWatchPrefs.vol=10;
                    break;
                case btnSound3:
                    stopWatchPrefs.sound=e->data.ctlSelect.controlID;
                    stopWatchPrefs.vol=30;
                    break;
                case btnSoundHigh:
                    stopWatchPrefs.sound=e->data.ctlSelect.controlID;
                    stopWatchPrefs.vol=50;
                    break;
		case btnVisualNum:
		case btnVisualBar:
		case btnVisualSticks:
		case btnVisualHour:
                    stopWatchPrefs.visual=e->data.ctlSelect.controlID;
                    break;

                case btnOk:
                    // set things
                    /* tell main form to update itself. */
                    //FrmUpdateForm(MainForm, UPDATE_LISTING);
                    /* FALLTHROUGH */
                case btnCancel: // cancel is TODO
                    FrmReturnToForm(MainForm);
                    handled = true;
                    break;

            }
            break;

        default:
            break;
    }
    
    return handled;
}
Esempio n. 11
0
Boolean Ln2SlFormHandleEvent(EventPtr e)
{
    Boolean handled = false;
    DateType dt = {0, 0};
    FormPtr frm = FrmGetFormPtr(Ln2SlForm);

    switch (e->eType) {
    case frmOpenEvent:
        if(gbVgaExists)
       		VgaFormModify(frm, vgaFormModify160To240);

        DateSecondsToDate(TimGetSeconds(), &dt);
        DateToAsciiLong(dt.month, dt.day, dt.year + 1904,
					gPrefdfmts, gAppErrStr);
        SetFieldTextFromStr(Ln2SlFormInput, gAppErrStr);

        FrmDrawForm(frm);
        handled = true;
        break;

    case ctlSelectEvent:
        switch(e->data.ctlSelect.controlID) {
        case Ln2SlFormOk:
            FrmReturnToForm(0);

            handled = true;
            break;

        case Ln2SlFormConvert:
        {
            HappyDaysFlag dummy;
            Int16 year, month, day;
            Char* input;
            int ret;
            
            input = FldGetTextPtr(GetObjectPointer(frm, Ln2SlFormInput));

            if ((ret = AnalysisHappyDays(input, &dummy,
                                         &year, &month, &day))) {
                int syear, smonth, sday;
                int leapyes
                    = CtlGetValue(GetObjectPointer(frm, Ln2SlFormInputLeap));

                ret = lunarL2S(lunarRefNum, year, month, day, leapyes, &syear, &smonth, &sday);
                if (ret == errNone) {
                    Char temp[15];
                    SysCopyStringResource(temp, DayOfWeek(smonth, sday, syear) + SunString);

                    DateToAsciiLong(smonth, sday, syear, gPrefdfmts, gAppErrStr);
                    StrNCat(gAppErrStr, " [", AppErrStrLen);
                    StrNCat(gAppErrStr, temp, AppErrStrLen);
                    StrNCat(gAppErrStr, "]", AppErrStrLen);

                    FldDrawField(SetFieldTextFromStr(Ln2SlFormResult, gAppErrStr));
                }
                else DisplayInvalidDateErrorString(Ln2SlFormResult);
            }
            else {
                DisplayInvalidDateErrorString(Ln2SlFormResult);
            }
            
            handled = true;
            break;
        }
        
        default:
            break;
                
        }
        break;

    case menuEvent:
        handled = TextMenuHandleEvent(e->data.menu.itemID, Ln2SlFormInput);
        break;

    default:
        break;
    }

    return handled;
}
Esempio n. 12
0
Boolean Sl2LnFormHandleEvent(EventPtr e)
{
    Boolean handled = false;
    DateType dt = {0, 0};
    FormPtr frm = FrmGetFormPtr(Sl2LnForm);

    switch (e->eType) {
    case frmOpenEvent:
        if(gbVgaExists)
       		VgaFormModify(frm, vgaFormModify160To240);

        DateSecondsToDate(TimGetSeconds(), &dt);

        DateToAsciiLong(dt.month, dt.day, dt.year + 1904,
                        gPrefdfmts, gAppErrStr);

        SetFieldTextFromStr(Sl2LnFormInput, gAppErrStr);

        FrmDrawForm(frm);
        handled = true;
        break;

    case ctlSelectEvent:
        switch(e->data.ctlSelect.controlID) {
        case Sl2LnFormConvert:
        {
            HappyDaysFlag dummy;
            Int16 year, month, day;
            int lyear, lmonth, lday;
            Char* input;
            int ret = false;

            input = FldGetTextPtr(GetObjectPointer(frm, Sl2LnFormInput));
            if ((ret = AnalysisHappyDays(input, &dummy,
                                         &year, &month, &day))) {
                int leapyes = 0;

                ret = lunarS2L(lunarRefNum, year, month, day, &lyear, &lmonth, &lday, &leapyes);
                if (ret == errNone) {
                    if (leapyes) {
                        StrCopy(gAppErrStr, "#)");
                    }
                    else {
                        StrCopy(gAppErrStr, "-)");
                    }
                    DateToAsciiLong(lmonth, lday, lyear, gPrefdfmts, &gAppErrStr[2]);
                          
                    FldDrawField(SetFieldTextFromStr(Sl2LnFormResult,
                                                     gAppErrStr));
                }
                else DisplayInvalidDateErrorString(Sl2LnFormResult);

            }
            else DisplayInvalidDateErrorString(Sl2LnFormResult);

            handled = true;
            break;
        }

        case Sl2LnFormOk:
            FrmReturnToForm(0);

            handled = true;
            break;
            
        default:
            break;
                
        }
        break;

    case menuEvent:
        handled = TextMenuHandleEvent(e->data.menu.itemID, Sl2LnFormInput);
        break;

    default:
        break;
    }

    return handled;
}
Esempio n. 13
0
Boolean AnnotationFormHandleEvent
    (
    EventType* event  /* pointer to an EventType structure */
    )
{
    Boolean     handled;

    handled = ResizeHandleEvent( event );

    if ( handled )
        return handled;

    switch ( event->eType ) {
        case frmOpenEvent:
            AnnotationFormInit();
            handled = true;
            break;
            
        case keyDownEvent:
            switch ( event->data.keyDown.chr ) {
                case pageUpChr:
                    if ( FldScrollable( field, winUp ) )
                        FldScrollField( field, 1, winUp );
                    UpdateFieldScrollbar( field, scrollBar );
                    break;

                case pageDownChr:
                    if ( FldScrollable( field, winDown ) )
                        FldScrollField( field, 1, winDown );
                    UpdateFieldScrollbar( field, scrollBar );
                    break;

                default: {
                    UInt16 scrollPos;
                    UInt16 textHeight;
                    UInt16 fieldHeight;

                    FldGetScrollValues( field, &scrollPos, &textHeight, &fieldHeight );

                    if ( FldHandleEvent( field, event ) ) {
                        UInt16 newScrollPos;
                        UInt16 newTextHeight;
                        UInt16 newFieldHeight;

                        FldGetScrollValues( field, &newScrollPos, 
                            &newTextHeight, &newFieldHeight );

                        if ( scrollPos != newScrollPos || textHeight != newTextHeight ||
                             fieldHeight != newFieldHeight )
                            UpdateFieldScrollbar( field, scrollBar );
                            
                        handled = true;
                    }
                    break;
                }
            }
            break;

        case sclRepeatEvent:
            ScrollMessage( field, event->data.sclRepeat.newValue -
                                         event->data.sclRepeat.value );
            break;

        case ctlSelectEvent:
            switch ( event->data.ctlSelect.controlID ){
                case frmAnnotationCancel:
                	AnnotationFormClose();
                    FrmReturnToForm( Prefs()->lastForm );
                    handled = true;
                    break;

                case frmAnnotationOK:
                	SaveAnnotation();
                	AnnotationFormClose();
                    FrmReturnToForm( Prefs()->lastForm );
                    if ( IsFormMain( Prefs()->lastForm ) )
                        FrmUpdateForm( GetMainFormId(), frmRedrawUpdateCode );
  	            handled = true;
                    break;

                case frmAnnotationDelete:
                    if ( entryP->id.indexInParagraph != NEW_ANNOTATION ) {
                        DeleteAnnotation( &( entryP->id ) );
                    }
                	AnnotationFormClose();
                    if ( IsFormMain( Prefs()->lastForm ) )
                        FrmUpdateForm( GetMainFormId(), frmRedrawUpdateCode );
                    FrmReturnToForm( Prefs()->lastForm );
                    handled = true;
                    break;

                default:
                    handled = true;
                    break;
            }
            break;

        case frmCloseEvent:
            AnnotationFormClose();
            handled = false;
            break;

        default:
            handled = false;
    }
    return handled;
}
Esempio n. 14
0
static Boolean URLFormDoCommand(UInt16 command)
{
    GlobalsPtr  gP = GetGlobals();
    Boolean     handled = false;

    if (!gP)
        return false;

    switch (command) {
        // Menus
        // Control Objects
        case kURLOpenButton:
            {
                Char    *navigationText = FldGetTextPtr(GetObjectPtr(kURLField));
                Boolean openInNewTab = false;
                
                if (navigationText && StrLen(navigationText)) {
                    if (gP->navigationOpen) {
                        MemPtrFree(gP->navigationOpen);
                    }
                    gP->navigationOpen = StrDup(navigationText);
                    
                    if (CtlGetValue(GetObjectPtr(kURLOpenInNewTabCheckbox))) {
                        openInNewTab = true;
                    }
                    
                    FrmReturnToForm(0);
                    if (openInNewTab) {
                        FrmUpdateForm(kMainForm, frmUpdateNewTab);
                    }
                    FrmUpdateForm(kMainForm, URLFormDetermineRequestType(navigationText));
                }
            }
            break;
        case kURLCancelButton:
            FrmReturnToForm(0);
            break;
        // Handle inserting text using the insert buttons, or list.
        case kWWWPushButton:
        case kCOMPushButton:
        case kORGPushButton:
        case kNETPushButton:
        case kSlashPushButton:
        case kDotPushButton:
        case kHTMLPushButton:
            {
                FieldPtr    urlFldP         = GetObjectPtr(kURLField);
                const Char  *buttonLabelP   = CtlGetLabel(GetObjectPtr(command));
                
                FldInsert(urlFldP, buttonLabelP, StrLen(buttonLabelP));
                CtlSetValue(GetObjectPtr(command), 0);
                
                handled = true;
            }
            break;
        case kMoreTrigger:
            {
                ListPtr     moreListP   = GetObjectPtr(kMoreList);
                FieldPtr    urlFldP     = GetObjectPtr(kURLField);
                Int16       selection   = LstPopupList(moreListP);
                
                if (selection >= 0) {
                    const Char  *selectionP = LstGetSelectionText(moreListP, selection);
                
                    FldInsert(urlFldP, selectionP, StrLen(selectionP));
                }
                handled = true;
            }
            break;
        // Default
        default:
            break;
    }

    return handled;
}