static Boolean AppHandleEvent(EventPtr eventP) {
	Boolean handled = false;
	FormType *frmP;
	
	if (eventP->eType == frmLoadEvent) { /* Initialize and activate the form resource. */
		frmP = FrmInitForm(eventP->data.frmLoad.formID);

		FrmSetActiveForm(frmP);
		
		if (eventP->data.frmLoad.formID == MainForm) {
			dynInputOnMainFormLoad(frmP);
			FrmSetEventHandler(frmP, MainFormHandleEvent);
		}
		handled = true;
	} else if (eventP->eType == frmOpenEvent) { /* Load the form resource. */
		frmP = FrmGetActiveForm();
		FrmDrawForm(frmP);
		handled = true;
	} else if (eventP->eType == appStopEvent) { /* Unload the form resource. */
		frmP = FrmGetActiveForm();
		FrmEraseForm(frmP);
		FrmDeleteForm(frmP);
		handled = true;
	}
	
	return(handled);
}
示例#2
0
/***********************************************************************
 *
 * FUNCTION:    ThumbnailDetailViewUpdateDisplay
 *
 * DESCRIPTION: This routine update the display of the thumbnail details view
 *
 * PARAMETERS:  updateCode - a code that indicated what changes have been
 *                           made to the view.
 *
 * RETURNED:    Whether the event was handled, or not.
 *
 ***********************************************************************/
static Boolean ThumbnailDetailViewUpdateDisplay(UInt16 updateCode) {
  FormType* frm = FrmGetActiveForm();
  Boolean handled = false;

  switch (updateCode) {
  case fUpdateDisplayOptsChanged:
    SetTopVisibleRecord(0);
    /* Fall through */
  case fUpdateFontChanged:
    ThumbnailDetailViewLoadRecords(frm);
    handled = true;
    break;

  case fUpdateDeletedCurrent:
    p.dbI = noRecordSelected;
    /* fall through */
  case fUpdateDeletedAny:
    SetTopVisibleRecord(0);
    ThumbnailDetailViewLoadRecords(frm);
    handled = true;
    break;

  case fUpdateReloadRecords:
    ThumbnailDetailViewLoadRecords(frm);
    handled = true;
    break;
  }

  /* Have a valid selected record (for 5-way navigation) */
  p.dbI = d.top_visible_record;

  return handled;
}
示例#3
0
/* Get current selected note and fill out note properties elements.
   If selected == -1, clear and disable this fields. */
static void
UpdateNoteProperties()
{
  FormPtr frm = FrmGetActiveForm ();

  if (notelist.selected == -1) {
    FrmHideObject(frm, FrmGetObjectIndex(frm, ID_EditorDuration));
    FrmHideObject(frm, FrmGetObjectIndex(frm, ID_EditorVelocity));
    FrmHideObject(frm, FrmGetObjectIndex(frm, ID_EditorPause));
  }
  else {
    NotePtr notes = MemHandleLock(notelist.bufH);
    NotePtr note = notes + notelist.selected;

    ErrFatalDisplayIf(notelist.selected > notelist.num, "Invalid note index!");

    SetFieldTextFromNumber(ID_EditorDuration, note->dur);
    SetFieldTextFromNumber(ID_EditorVelocity, note->vel);
    SetFieldTextFromNumber(ID_EditorPause, note->pause);

    FrmShowObject(frm, FrmGetObjectIndex(frm, ID_EditorDuration));
    FrmShowObject(frm, FrmGetObjectIndex(frm, ID_EditorVelocity));
    FrmShowObject(frm, FrmGetObjectIndex(frm, ID_EditorPause));

    MemPtrUnlock(notes);
  }
}
示例#4
0
static Boolean
FormPenDownEvent(EventType * e)
{
  FormPtr frm = FrmGetActiveForm ();
  UInt16 objIndex;
  RectangleType r;
  Boolean res = false;

  objIndex = FrmGetObjectIndex (frm, ID_EditorMidiKeysGadget);
  FrmGetObjectBounds (frm, objIndex, &r);
  if (RctPtInRectangle (e->screenX, e->screenY, &r)) {
    midikeys_tapped(&midikeys, e->screenX, e->screenY);
    res = true;
  }

  objIndex = FrmGetObjectIndex (frm, ID_EditorNoteListGadget);
  FrmGetObjectBounds (frm, objIndex, &r);
  if (RctPtInRectangle (e->screenX, e->screenY, &r)) {
    notelist_tapped(&notelist, e->screenX, e->screenY);
    res = true;
  }

  UpdateNoteProperties();

  return res;
}
示例#5
0
文件: dialog.c 项目: docwhat/cwimp
static void NewGameGetPlayerName( UInt16 field, Int16 player)
{
    FormPtr frm = FrmGetActiveForm();
    Char *buff;

    if( tmppref[player].type == PlayerNone )
    {
        return;
    }

    buff = FldGetTextPtr(
               FrmGetObjectPtr(
                   frm,
                   FrmGetObjectIndex(
                       frm,
                       fldNGname0+player )
               )
           );
    if( tmppref[player].type == PlayerHuman )
    {
        StrCopy( tmppref[player].hname, buff );
    }
    if( tmppref[player].type == PlayerAI )
    {
        StrCopy( tmppref[player].aname, buff );
    }
}
示例#6
0
文件: draw.c 项目: docwhat/cwimp
static void SetComputers( Short num ) {
    FormPtr frm;
    ControlPtr cPtr;
    Word oIdx;

    if( num > (MaxPlayers - 1) || num < 0 ) {
        ErrNonFatalDisplayIf( true, "SetComputers: Out of Bounds");
        return;
    }

    if( stor.tmpcomputers == num ) {
        return;
    }

    frm = FrmGetActiveForm();


    /* Unset the old one */
    oIdx = FrmGetObjectIndex( frm, cbtnVal[stor.tmpcomputers] );
    cPtr = FrmGetObjectPtr( frm, oIdx );
    CtlSetValue( cPtr, false );

    /* Set new one */
    oIdx = FrmGetObjectIndex( frm, cbtnVal[num] );
    cPtr = FrmGetObjectPtr( frm, oIdx );
    CtlSetValue( cPtr, true );

    stor.tmpcomputers = num;

    if( stor.tmpcomputers + stor.tmpplayers > MaxPlayers ) {
        SetPlayers( MaxPlayers - stor.tmpcomputers );
    }

    return;
}
示例#7
0
文件: SMSTable.cpp 项目: oldhu/smstw
void DrawTable(DmOpenRef db, Int16 category)
{
	FormPtr form = FrmGetActiveForm();
	if (FormIsNot(form, FormMain)) return;
	TablePtr table = (TablePtr) GetObjectPtr(form, SMSTable);
	if (table == NULL) return;
	if (category >= 0) g_SelectedCategory = category;
	
	for (int c = 0; c < TABLE_NUM_COLUMNS; ++c) {
		TblSetCustomDrawProcedure(table, c, PrivDrawCell);
		TblSetColumnUsable(table, c, true);
		TblSetColumnWidth(table, c, COLUMN_WIDTHS[c]);
	}
	
	
	for (int r = 0; r < TABLE_PAGE_SIZE; ++r) {
		UInt32 cursor = g_CurrentPage * TABLE_PAGE_SIZE + r;
		if (cursor >= GetSMSCount(db, g_SelectedCategory)) {
			TblSetRowUsable(table, r, false);
		} else {
			TblSetRowSelectable(table, r, true);
			TblSetRowUsable(table, r, true);
			for(int c = 0; c < TABLE_NUM_COLUMNS; c++ )
				TblSetItemStyle(table, r, c, customTableItem);
		}
	}
	
	TblDrawTable(table);
	UpdateScrollbar(db);
	
	UpdateUnread(db);	
	UpdatePos(db);
}
示例#8
0
文件: draw.c 项目: docwhat/cwimp
Int DialogChooseTwo( CharPtr fText, CharPtr bOne, CharPtr bTwo ) {
    FormPtr prevForm, frm;
    Word hitButton;

    // Save previous form
    prevForm = FrmGetActiveForm();
    // Init new form
    frm = FrmInitForm( frmChooseTwo );

    // Set it
    FrmSetActiveForm(frm);
    FrmDrawForm(frm);

    // Fill it...
    CtlSetLabel( GetObjectPtr(btnChooseTwo1), bOne );
    CtlSetLabel( GetObjectPtr(btnChooseTwo2), bTwo );
    SetFieldTextFromStr( fldChooseTwo, fText );

    // Set the handler
    // FrmSetEventHandler(frm, DialogNewGameHandleEvent);

    hitButton = FrmDoDialog(frm);

    // Delete the form, we're not using it
    FrmDeleteForm(frm);

    // Restore previous form.
    if (prevForm) {
        FrmSetActiveForm(prevForm);
    }

    if( hitButton == btnChooseTwo1 ) return 1;
    if( hitButton == btnChooseTwo2 ) return 2;
    return ( -1 );
}
示例#9
0
Boolean FormGroupManagementHandleEvent(EventType* eventP)
{
	Boolean handled = false;
	
	switch (eventP->eType) 
	{
		case frmOpenEvent:
			FormPtr frmP = FrmGetActiveForm();
			FrmDrawForm(frmP);
			ListAllGroups();
			handled = true;
			break;
		case frmCloseEvent:
			ClearPhoneGroups(g_PhoneGroups);
			break;
		case ctlSelectEvent:
			switch(eventP->data.ctlSelect.controlID) {
				case ButtonOk:
					FrmGotoForm(FormMain);
					break;
				case ButtonNew:
					NewGroup();
					break;
				case ButtonRemove:
					RemoveCurrentSelection();
					break;
				case ButtonModify:
					EditCurrentSelection();
					break;
			}
			break;
	}
	return handled;
}
示例#10
0
文件: draw.c 项目: docwhat/cwimp
static Boolean DialogVariantsHandleEvent (EventPtr e)
{
  Boolean handled = false;
  FormPtr frm;
  
  CALLBACK_PROLOGUE

    switch (e->eType) {
    case frmOpenEvent:
	  frm = FrmGetActiveForm();
	  FrmDrawForm(frm);
	  handled = true;
	  break;

    case ctlSelectEvent:
      if( stor.currplayer >= 0 ) {
        /* The player *cannot* continue a
           game once they alter variants */
        ResetCubes(); 
      }
        
      switch(e->data.ctlSelect.controlID) {
      case check_Bump:
        ToggleCheck( check_Bump, flag_Bump );
        if( (stor.flags & flag_Eclipse) &&
            (stor.flags & flag_Bump ) ) {
          ToggleCheck( check_Eclipse, flag_Eclipse );
        }
        break;
      case check_Eclipse:
        ToggleCheck( check_Eclipse, flag_Eclipse );
        if( (stor.flags & flag_Eclipse) &&
            (stor.flags & flag_Bump ) ) {
          ToggleCheck( check_Bump, flag_Bump );
        }
        break;
      case check_Sampler:
        ToggleCheck( check_Sampler, flag_Sampler );
        break;
      case check_nTW:
        ToggleCheck( check_nTW, flag_nTW );
	    break;
	  case check_FullHouse:
	    ToggleCheck(check_FullHouse, flag_FullHouse );
	    break;
	  case check_Suspend:
	    ToggleCheck(check_Suspend, flag_Suspend   );
	    break;
        
	  }
	  break;
      
    default:
	  break;
    }
  
  CALLBACK_EPILOGUE
    
    return handled;
}
示例#11
0
// Audio CD
static Boolean AudioCDTabSave() {
	ControlType *cck3P;
	FieldType *fld2P, *fld3P;
	ListType *list1P, *list2P;
	UInt16 firstTrack;
	FormPtr frmP;

	frmP = FrmGetActiveForm();

	cck3P = (ControlType *)GetObjectPtr(TabAudioCDMP3Checkbox);
	fld2P = (FieldType *)GetObjectPtr(TabAudioCDLengthSecsField);
	fld3P = (FieldType *)GetObjectPtr(TabAudioCDFirstTrackField);
	list1P = (ListType *)GetObjectPtr(TabAudioCDDriverList);
	list2P = (ListType *)GetObjectPtr(TabAudioCDFormatList);

	firstTrack = StrAToI(FldGetTextPtr(fld3P));
	if (firstTrack < 1 || firstTrack > 999) {
		TabSetActive(frmP, myTabP, 2);
		FrmSetFocus(frmP, FrmGetObjectIndex(frmP, TabAudioCDFirstTrackField));
		FrmCustomAlert(FrmErrorAlert, "Invalid track value (1...999)", 0, 0);
		return false;
	}

	gameInfoP->musicInfo.sound.CD = CtlGetValue(cck3P);

	gameInfoP->musicInfo.sound.drvCD = LstGetSelection(list1P);
	gameInfoP->musicInfo.sound.frtCD = LstGetSelection(list2P);

	gameInfoP->musicInfo.sound.defaultTrackLength = StrAToI(FldGetTextPtr(fld2P));
	gameInfoP->musicInfo.sound.firstTrack = firstTrack;

	return true;
}
示例#12
0
static Boolean ResidentBrowseFormHandleEvent(EventType* event)
{
    Boolean handled=false;
    FormType* form=FrmGetActiveForm();
    AppContext* appContext=GetAppContext();
    Assert(appContext);
    switch (event->eType) 
    {
        case winEnterEvent:
            handled=ResidentBrowseFormWinEnter(appContext, form, event);
            break;                
        
        case winDisplayChangedEvent:
            handled=ResidentBrowseFormDisplayChanged(appContext, form);
            break;
            
        case lstSelectEvent:
            handled=ResidentBrowseFormListItemSelected(appContext, form, event);
            break;
            
        case ctlSelectEvent:
            handled=ResidentBrowseFormControlSelected(appContext, form, event);
            break;
            
        case fldChangedEvent:
            handled=ResidentBrowseFormFieldChanged(appContext, form, event);
            break;           
            
        case keyDownEvent:
            handled=ResidentBrowseFormKeyDown(appContext, form, event);
            break;
                
    }
    return handled;
}
示例#13
0
文件: SMSReply.cpp 项目: oldhu/smstw
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));
}
示例#14
0
文件: SMSReply.cpp 项目: oldhu/smstw
static Err SaveMessageIn(DmOpenRef db, Int16 category)
{
	FormPtr form = FrmGetActiveForm();
	if (FormIsNot(form, FormReply)) return frmErrNotTheForm;
	
	FieldPtr fieldTo = (FieldPtr) GetObjectPtr(form, FieldTo);
	FieldPtr fieldCompose = (FieldPtr) GetObjectPtr(form, FieldCompose);
	
	char* pszTo = FldGetTextPtr(fieldTo);
	char* pszCompose = FldGetTextPtr(fieldCompose);
	
	if ((pszTo == NULL) || (StrLen(pszTo) == 0)) {
		ShowMsg("No phone number set.");
		return -1;
	}
	
	if ((pszCompose == NULL) || (StrLen(pszCompose) == 0)) {
		FrmCustomAlert(AlertCustom, "Alert", "No message composed.", "");
		return -1;
	}

	UInt8 state = 0;
	
	if (category == CAT_OUTBOX) {
		SendPref spref;
		ReadSendPreference(spref);
		if (spref.requestReport) RequestReport(state);
	}
	
	NewRecordInCategory(db, pszTo, pszCompose, category, state);
	return errNone;
}
示例#15
0
文件: SMSTable.cpp 项目: oldhu/smstw
void UpdateScrollbar(DmOpenRef db)
{
	FormPtr form = FrmGetActiveForm();
	if (FormIsNot(form, FormMain)) return;
	ScrollBarPtr scrollbar = (ScrollBarPtr) GetObjectPtr(form, SMSScroll);
	SclSetScrollBar(scrollbar, g_CurrentPage, 0, PrivPageCount(db), 1);
}
示例#16
0
文件: draw.c 项目: docwhat/cwimp
static VoidPtr GetObjectPtr (Word objID) {
    FormPtr frm;

    frm = FrmGetActiveForm();

    return (FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, objID)));
}
示例#17
0
文件: IntExp.c 项目: ysei/palmos
static Boolean GraffitiFormHandleEvent(EventPtr event){
  Boolean handled = false;
  switch (event->eType) {
    case frmOpenEvent:
      FrmDrawForm(FrmGetActiveForm());
      handled = true;
      break;
    case keyDownEvent:
      if(event->data.keyDown.chr == sentence[offset]){
        offset++;
        if(offset == StrLen(sentence)){ FrmGotoForm(WinForm); }
      }
      handled = true;
      break;
    case nilEvent: {
      if(offset < StrLen(sentence)){
        updateSprite(&nextLetter);
        drawSprite(&nextLetter);
      }
      handled = true;
      break;
    }
    default:
      break;
  }
  return handled;
}
示例#18
0
文件: draw.c 项目: docwhat/cwimp
static void SetPeople( Short num ) {
    Int x;
    Boolean found = false;
    FormPtr frm;
    ControlPtr cPtr;
    Word oIdx;

    frm = FrmGetActiveForm();

    x = MaxPlayers - 1;

    while( ( x > ( MaxPlayers - (num + 1) ) ) &&
            !found ) {
        oIdx = FrmGetObjectIndex( frm, pbtnVal[x--] );
        cPtr = FrmGetObjectPtr( frm, oIdx );

        if( CtlGetValue( cPtr ) ) {
            CtlSetValue( cPtr, false );
            found = true;
        }
    }

    if ( found ) {
        stor.tmpcomputers = MaxPlayers - (num + 1);
        oIdx = FrmGetObjectIndex( frm, cbtnVal[stor.tmpcomputers] );
        cPtr = FrmGetObjectPtr( frm, oIdx );
        CtlSetValue( cPtr, true);
    }
}
示例#19
0
static void IconFormScrollLines(Int16 lines)
{
	ScrollBarPtr    barP;
    Int16           valueP, minP, maxP, pageSizeP;
    Int16           newValue;
	FormPtr			frm = FrmGetActiveForm();

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

    //scroll up
    if(lines < 0)
    {
        //we are at the start
        if(valueP == minP)
            return;

        newValue = valueP + lines;
        if(newValue < minP)
            newValue = minP;
    }
    else
    {
        if(valueP == maxP)
            return;

        newValue = valueP + lines;
        if(newValue  > maxP) 
            newValue = maxP;
    }

    SclSetScrollBar(barP, newValue, minP, maxP, pageSizeP);
    IconFormScroll(newValue, valueP);
}
示例#20
0
static Boolean prefs_save_checkboxes_1()
{
  FormPtr frm;
  ControlPtr checkbox;
  Boolean val, dirty = false;
  frm = FrmGetActiveForm();

  checkbox = FrmGetObjectPtr(frm, FrmGetObjectIndex(frm, check_prf_4));
  my_prefs.sound = (CtlGetValue(checkbox) != 0);

  // Inverted background:
  checkbox = FrmGetObjectPtr(frm, FrmGetObjectIndex(frm, check_prf_13));
  val = (CtlGetValue(checkbox) != 0);
  if (my_prefs.black_bg != val)
    dirty = true;
  my_prefs.black_bg = val;

  // Color:
  checkbox = FrmGetObjectPtr(frm, FrmGetObjectIndex(frm, check_prf_14));
  val = (CtlGetValue(checkbox) != 0);
  if (my_prefs.color_on != val)
    dirty = true;
  my_prefs.color_on = val;
  return dirty;
}
示例#21
0
/*
** Go to the record specified gadgetID and open the specified
** "field" (the note dialog, the details dialog, ...)
*/
static void GotoRecordField(UInt16 gadgetID, UInt16 field) {
  FormType* frm = FrmGetActiveForm();
  DynamicButtonType* btn = (DynamicButtonType*) FrmGetGadgetData(frm, FrmGetObjectIndex(frm, gadgetID));

  p.dbI = btn->value;
  LoadRecordData();

  switch (field) {
  case ffNote:
    DoNoteDialog(0, 0);
    break;

  case ffDetails:
    d.detailsWithSketch = false;
    FrmPopupForm(RecordDetailsForm);
    break;

  case ffAlarm:
    recordUnsetCountdown();
    FrmGotoForm(TimeForm);
    break;

  default:
    /* ignore */
  }
}
示例#22
0
/***********************************************************************
 *
 * FUNCTION:    SetTimeTriggers
 *
 * DESCRIPTION: This routine sets the text label of the start time and
 *              end time triggers.
 *
 * PARAMETERS:  startTime	    - pointer to TimeType
 *              endTime        - pointer to TimeType
 *              startTimeText  - buffer that holds start time string
 *              emdTimeText    - buffer that holds end time string
 *              timeFormat     - time format
 *              untimed  	    - true if there isn't a time.
 *
 * RETURNED:	 nothing
 *
 * REVISION HISTORY:
 *			Name	Date		Description
 *			----	----		-----------
 *			art	4/4/96	Initial Revision
 *
 ***********************************************************************/
static void SetTimeTriggers (TimeType startTime, TimeType endTime,
		Char * startTimeText, Char * endTimeText, 
		TimeFormatType timeFormat, Boolean untimed)
	{

	FormType *		frm;
	ControlPtr 	startTimeCtl, endTimeCtl;

	frm = FrmGetActiveForm ();
	startTimeCtl = FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, TimeSelectorStartTimeButton));
	endTimeCtl = FrmGetObjectPtr (frm, FrmGetObjectIndex (frm, TimeSelectorEndTimeButton));

	if (! untimed)
		{
		TimeToAscii (startTime.hours, startTime.minutes, timeFormat, startTimeText);
		TimeToAscii (endTime.hours, endTime.minutes, timeFormat, endTimeText);
		}
	else
		{
		// copy two spaces into these fields instead of just a null
		// because controls with empty strings (or one space) cause old-style
		// graphic control behavior, which uses the wrong colors!
		StrCopy(startTimeText, "  ");
		StrCopy(endTimeText, "  ");
		}
		
	CtlSetLabel (startTimeCtl, startTimeText);
	CtlSetLabel(endTimeCtl, endTimeText);
	}
示例#23
0
文件: URLForm.c 项目: openmobl/Atlas
Boolean URLFormHandleEvent(EventType *eventP)
{
    Boolean     handled = false;
    FormType    *frmP = FrmGetActiveForm();

    switch (eventP->eType) {
        case menuEvent:
            handled = URLFormDoCommand(eventP->data.menu.itemID);
            break;
        case frmOpenEvent:
            FrmDrawForm(frmP);
            URLFormInit(frmP);
            handled = true;
            break;
        case frmUpdateEvent:
            break;
        case ctlSelectEvent:
            handled = URLFormDoCommand(eventP->data.ctlSelect.controlID);
            break;
        default:
            break;
    }
    
    return handled;
}
示例#24
0
/***********************************************************************
 *
 * FUNCTION:    ThumbnailViewUpdateDisplay
 *
 * DESCRIPTION: This routine update the display of the thumbnail view
 *
 * PARAMETERS:  updateCode - a code that indicated what changes have been
 *                           made to the view.
 *
 * RETURNED:    Whether the event was handled, or not.
 *
 ***********************************************************************/
static Boolean ThumbnailViewUpdateDisplay(UInt16 updateCode) {
  FormType* frm = FrmGetActiveForm();
  Boolean handled = false;

  switch (updateCode) {
  case fUpdateDisplayOptsChanged:   
    SetTopVisibleRecord(0);
    /* Fall through */
  case fUpdateFontChanged:
    ThumbnailViewLoadRecords(frm);
    handled = true;
    break;

  case fUpdateDeletedCurrent:
    p.dbI = noRecordSelected;
    /* fall through */
  case fUpdateDeletedAny:   
    SetTopVisibleRecord(0);
    ThumbnailViewLoadRecords(frm);   
    handled = true;
    break;
  }

  return handled;
}
示例#25
0
/*
** Handle Security command
*/
static void ThumbnailDoCmdSecurity(void) {
  FormType* frm = FrmGetActiveForm();
  Boolean wasHiding = d.privateRecordStatus == hidePrivateRecords;
  UInt16 mode;

  d.privateRecordStatus = SecSelectViewStatus();

  if (wasHiding ^ (d.privateRecordStatus == hidePrivateRecords)) {
    /* We have to close the database first */
    if (DmCloseDatabase(d.dbR) != errNone) abort();

    mode = dmModeReadWrite;
    if (d.privateRecordStatus != hidePrivateRecords)
      mode |= dmModeShowSecret;

    /* Re-open the database */
    if ((d.dbR = DmOpenDatabaseByTypeCreator(DBType, AppType, mode)) == NULL)
      abort();

    /* Update cached values */
    d.records_in_cat = DmNumRecordsInCategory(d.dbR, p.category);
    if (d.privateRecordStatus == hidePrivateRecords)
      SetTopVisibleRecord(0);

    ThumbnailViewLoadRecords (frm);
  }
}
示例#26
0
/***********************************************************************
 *
 * FUNCTION:    ThumbnailViewSelectCategory
 *
 * DESCRIPTION: This routine handles selection, creation and deletion of
 *              categories form the Details Dialog.
 *
 * PARAMETERS:  nothing
 *
 * RETURNED:    The index of the new category.
 *
 *              The following global variables are modified:
 *          p.category
 *          d.show_all_categories
 *          d.categoryName
 *
 ***********************************************************************/
static UInt16 ThumbnailViewSelectCategory(void) {
  FormPtr frm;
  UInt16 category;
  Boolean categoryEdited;

  /* Process the category popup list. */
  category = p.category;

  frm = FrmGetActiveForm();
  categoryEdited = CategorySelect(d.dbR, frm, CategoryPop,
                  CategoryList, true, &category, d.categoryName, 1,
                  categoryDefaultEditCategoryString);

  if (categoryEdited || (category != p.category)) {
    ChangeCategory(category);

    /* Disable 5-way navigation */
    d.fiveWayNavigation = false;
    p.dbI = noRecordSelected;

    /* Display the new category. */
    ThumbnailViewLoadRecords(frm);
  }

  return (category);
}
示例#27
0
文件: ZDicTools.c 项目: CocoaBob/ZDic
void * GetObjectPtr(UInt16 objectID)
{
	FormType * frmP;

	frmP = FrmGetActiveForm();
	return FrmGetObjectPtr(frmP, FrmGetObjectIndex(frmP, objectID));
}
示例#28
0
Boolean CBiddingForm::OnOpen(EventPtr pEvent, Boolean& bHandled) {

	InitDisplay();

	player_has_bid = false;

	FormPtr frmP = FrmGetActiveForm();
	FrmDrawForm(frmP);
	
	//
	// if the user exited the app from the bidding form, we will
	// restart the bidding process
	//
	GameStatus tmp = gManager->Status();
	if ( tmp == SetHandTrump || tmp == GetHandBids ) {
		gManager->Status(GetHandBids);
		gManager->NewTrick(false);
	}

	//
	// start bidding to the left of the dealer
	//
	gManager->tbl->current_bidder = 
		gManager->getNextPlayerIter(gManager->tbl->dealer);

	EventType event;
	event.eType = nilEvent;
	EvtAddEventToQueue (&event);

	bHandled = false;
	return true;
	
}
示例#29
0
文件: exams.c 项目: timn/unimatrix
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);
}
示例#30
0
文件: helper.c 项目: teras/FEdit
Char * GetTextFromField ( UInt16 fieldID ) {
	FieldType *fldP;
	FormType * frmP;

	frmP = FrmGetActiveForm();
	fldP = FrmGetObjectPtr (frmP, FrmGetObjectIndex ( frmP, fieldID )); /* Find field pointer */
	return FldGetTextPtr (fldP);
}