void AUEditWindow::SetUnitToDisplay (AudioUnit editUnit, ComponentDescription& inDesc) { CloseView(); mEditUnit = editUnit; Component editComp = FindNextComponent(NULL, &inDesc); verify_noerr(OpenAComponent(editComp, &mEditView)); ControlRef rootControl; verify_noerr(GetRootControl(mWindow, &rootControl)); Rect r; ControlRef viewPane; GetControlBounds(rootControl, &r); Float32Point location = { kOffsetForAUView_X, kOffsetForAUView_Y }; Float32Point size = { Float32(r.right), Float32(r.bottom) }; verify_noerr(AudioUnitCarbonViewCreate(mEditView, mEditUnit, mWindow, rootControl, &location, &size, &viewPane)); AudioUnitCarbonViewSetEventListener(mEditView, EventListener, this); GetControlBounds(viewPane, &r); size.x = r.right-r.left + kOffsetForAUView_X; size.y = r.bottom-r.top + kOffsetForAUView_Y; Rect r2; GetControlBounds (mResizeableControl->MacControl(), &r2); if ((r.bottom - r.top) < (r2.bottom - r2.top + 20)) size.y = r2.bottom + 20; SetSize(size); }
Tt_message SessionCallback( Tt_message msg, void * client_data, Tt_message contract ) { View *view = client_data; char *opString = tt_message_op( msg ); Tttk_op op = tttk_string_op( opString ); tt_free( opString ); switch (op) { int i; default: break; case TTDT_QUIT: if (contract == 0) { tt_message_reply( msg ); FinalizeToolTalkSession( ); exit( 0 ); } /* * Instead of quitting the whole process, we are to just * quit the view associated with contract. */ if (view == 0) { tttk_message_fail( msg, TT_DESKTOP_EINVAL, 0, 1 ); return 0; } CloseView( (DialogData *)view->dialog_data ); tt_message_reply( msg ); tttk_message_destroy( msg ); return 0; } return msg; }
void CContactsRamTest::RamTest2L() { test.Printf(_L("RemoteView is populated\n")); PrintHeap(); CloseView(); DELETE_SET_NULL( iContactsDatabase ); test.Printf(_L("Full Database is re-opened\n")); iContactsDatabase = CContactDatabase::OpenL(); PrintHeap(); DELETE_SET_NULL( iContactsDatabase ); }
/*---------------------------------------------------------------------- KillFrameCallback (generic way) Called when a clique is done on the up right corner cross Kill the current document ( generic version : called by WX and GTK ) ----------------------------------------------------------------------*/ ThotBool KillFrameCallback( int frame ) { PtrDocument pDoc; int view; if (frame <= MAX_FRAME) { GetDocAndView (frame, &pDoc, &view); CloseView (pDoc, view); } for (frame = 0; frame <= MAX_FRAME; frame++) if (FrameTable[frame].WdFrame != 0) /* there is still an active frame */ return TRUE; return FALSE; }
CContactsRamTest::~CContactsRamTest() { CloseView(); iViewSortOrder.Close(); delete iContactsDatabase; }
void CTestMachine::StepNamedRemoteViewsL() { const TContactViewPreferences viewPrefs = TContactViewPreferences(EUnSortedAtEnd | EContactsOnly); _LIT(KNamedRemoteView, "NamedRemoteView"); RContactViewSortOrder theNameSurnSortOrder; theNameSurnSortOrder.AppendL(KUidContactFieldGivenName); theNameSurnSortOrder.AppendL(KUidContactFieldFamilyName); theNameSurnSortOrder.AppendL(KUidContactFieldPrefixName); //Contains order numbers for given name BEGIN_ASYNC_TEST //Actions: Create named remote view a reverse sorting plugin. Check sorting order. iNamedRemoteView = CContactNamedRemoteView::NewL(*this, KNamedRemoteView, *iDb,iSurnNameSortOrder,viewPrefs, KReverseSortPlugin); WAIT_EVENT(1) //Expected Result: Named remote view must be created - sorting order must be reverse. test.Printf(_L("Named Remote View:\n")); CheckViewOrderL(iNamedRemoteView, ETrue); test.Printf(_L("\n\n")); //Actions: Create another instance of the named remote view with the same name, // but without a sorting plugin this time. Check sorting order. TESTTRAP(iNamedRemoteView2 = CContactNamedRemoteView::NewL(*this, KNamedRemoteView, *iDb, iSurnNameSortOrder,viewPrefs)); WAIT_EVENT(2) //Expected Result: When we create another named remote view with the name of existing view // - another copy of the view will not be created, instead will receive the handle //to existing view. That is why sort order should be as first time - reverse. test.Printf(_L("Another Copy of Named Remote View:\n")); CheckViewOrderL(iNamedRemoteView2, ETrue); test.Printf(_L("\n\n")); //Actions: Change the sort order of the named remote view to sort on // Name and then Surname of the contacts. Check sorting for both handles of the view. iNamedRemoteView2->ChangeSortOrderL(theNameSurnSortOrder); WAIT_EVENTS(3,4) //2 EUnavailable and 2 EOrderChanged //Expected Result: Both instances of the view must be sorted in reverse order on //Names and Surnames of the contacts. test.Printf(_L("First Copy of Named Remote View:\n")); CheckViewOrderL(iNamedRemoteView, ETrue); test.Printf(_L("\n\n")); test.Printf(_L("Another Copy of Named Remote View:\n")); CheckViewOrderL(iNamedRemoteView2, ETrue); test.Printf(_L("\n\n")); ///////////////////////////////////////// //Actions: Create a Find view on top of the first instance of named remote view, //using "Ma" search string iFindDesArray =new(ELeave)CPtrC16Array(1); _LIT(KMa,"Ma"); iFindDesArray->AppendL(TPtrC(KMa)); iNamedRemoteFindView= CContactFindView::NewL(*iDb,*iNamedRemoteView,*this,iFindDesArray); WAIT_EVENT(4) //Expected Result: Check the order of entries in the find view - it must be reverse, // sorting on Names and Surnames test.Printf(_L("NamedRemoteFind View created:\n")); CheckViewOrderL(iNamedRemoteFindView, ETrue); test.Printf(_L("\n\n")); ///////////////////////////////////////// //Actions: Create a Find view on top of the second instance of named remote view, // using "el" search string iFindDesArray->Reset(); _LIT(Kel,"el"); iFindDesArray->AppendL(TPtrC(Kel)); iNamedRemoteFindView2 = CContactFindView::NewL(*iDb,*iNamedRemoteView2,*this,iFindDesArray); WAIT_EVENT(5) //Expected Result: Check the order of entries in the find view - it must be reverse, //sorting on Names and Surnames test.Printf(_L("NamedRemoteFind View 2 created:\n")); CheckViewOrderL(iNamedRemoteFindView2, ETrue); test.Printf(_L("\n\n")); CloseView(iNamedRemoteFindView); CloseView(iNamedRemoteFindView2); CloseView(iNamedRemoteView); CloseView(iNamedRemoteView2); iFindDesArray->Reset(); delete iFindDesArray; iFindDesArray = NULL; END_ASYNC_TEST theNameSurnSortOrder.Close(); }
void CTestMachine::StepFindViewsL() { const TContactViewPreferences viewPrefs = TContactViewPreferences(EUnSortedAtEnd | EContactsOnly); _LIT(KMansell, "Mansell"); BEGIN_ASYNC_TEST ///////////////////////////////////////// //Actions: Create a local view with reverse sort plugin TESTTRAP(iLocalView = CContactLocalView::NewL(*this, *iDb, iSurnNameSortOrder, viewPrefs, KReverseSortPlugin)); WAIT_EVENT(1) //Expected Result: Check the order of entries in the view - it must be reverse. test.Printf(_L("Local View created:\n")); CheckViewOrderL(iLocalView); test.Printf(_L("\n\n")); ///////////////////////////////////////// //Actions: Create a remote view with reverse sort plugin TESTTRAP(iRemoteViewReverse = CContactRemoteView::NewL(*this, *iDb, iSurnNameSortOrder, viewPrefs, KReverseSortPlugin)); WAIT_EVENT(2) //Expected Result: Check the order of entries in the view - it must be reverse. test.Printf(_L("Remote View created:\n")); CheckViewOrderL(iRemoteViewReverse); test.Printf(_L("\n\n")); ///////////////////////////////////////// //Actions: Create a remote view with default sorting behaviour TESTTRAP(iRemoteViewForward = CContactRemoteView::NewL(*this, *iDb, iSurnNameSortOrder, viewPrefs)); WAIT_EVENT(3) //Expected Result: Check the order of entries in the view - it must be forward test.Printf(_L("Remote View created:\n")); CheckViewOrderL(iRemoteViewForward, EFalse, EFalse); //do not Print, forward order test.Printf(_L("\n\n")); ///////////////////////////////////////// //Actions: Create a Find view on top of the local view, using "Ma" search string iFindDesArray =new(ELeave)CPtrC16Array(1); _LIT(KMa,"Ma"); iFindDesArray->AppendL(TPtrC(KMa)); iLocalFindView= CContactFindView::NewL(*iDb,*iLocalView,*this,iFindDesArray); WAIT_EVENT(4) //Expected Result: Check the order of entries in the find view - it must be reverse test.Printf(_L("LocalFind View created:\n")); CheckViewOrderL(iLocalFindView); test.Printf(_L("\n\n")); ///////////////////////////////////////// //Actions: Create a Find view on top of the reverse remote view, using "el" search string iFindDesArray->Reset(); _LIT(Kel,"el"); iFindDesArray->AppendL(TPtrC(Kel)); iRemoteFindView = CContactFindView::NewL(*iDb,*iRemoteViewReverse,*this,iFindDesArray); WAIT_EVENT(5) //Expected Result: Check the order of entries in the find view - it must be reverse test.Printf(_L("RemoteFind View created:\n")); CheckViewOrderL(iRemoteFindView); test.Printf(_L("\n\n")); ///////////////// //Actions: Add a new contact to the database, it must have "ma" and "el" substrings in it // to appear in either find view. Check the sorting in every view. _LIT8(KIrvVCard, "BEGIN:VCARD\r\nVERSION:2.1\r\nN:Mansell;Nigel;11\r\nPensioner\r\nEND:VCARD"); RDesReadStream stream(KIrvVCard); stream.PushL(); TBool success(EFalse); CArrayPtr<CContactItem>* contactItems=iDb->ImportContactsL(TUid::Uid(KUidVCardConvDefaultImpl), stream, success, NULL); CleanupStack::PopAndDestroy(); // stream PUSH(contactItems); TESTTRUE(success); test.Printf(_L("%d entry was added created\n"), contactItems->Count()); contactItems->ResetAndDestroy(); //Potential memory leak - must be pushed onto the stack with ResetAndDestroy POPD(contactItems); WAIT_EVENTS(6,5) //Waiting for 5 events to arrive (one from each view) //Note, that if all 5 events won't arrive the code will stuck here //It can be solved with another "timeout" active object, but not yet implemented //Expected Result: Every view must send an event (5 events in total). //Sort order for all the views except for RemoteForward view must be reverse. //New entry must be inserted in every view. test.Printf(_L("Local View:\n")); CheckViewOrderL(iLocalView); test.Printf(_L("\n\n")); test.Printf(_L("Remote View Reverse:\n")); CheckViewOrderL(iRemoteViewReverse); test.Printf(_L("\n\n")); test.Printf(_L("Remote View Forward:\n")); CheckViewOrderL(iRemoteViewForward, EFalse, EFalse); //do not Print, forward order test.Printf(_L("\n\n")); test.Printf(_L("Local Find View:\n")); CheckViewOrderL(iLocalFindView); test.Printf(_L("\n\n")); test.Printf(_L("Remote Find View:\n")); CheckViewOrderL(iRemoteFindView); test.Printf(_L("\n\n")); //Searching for Mansell in the DB. TContactItemId manselId = SearchInViewL(iLocalFindView, KMansell); TESTTRUEL(manselId != 0); //Have we found it? //Actions: Change a newly added contact from "Nigel Mansell" to "Ayrton Senna". CContactItem* mansContact = iDb->OpenContactLX(manselId); PUSH(mansContact); CContactItemFieldSet& fieldSet = mansContact->CardFields(); CContactItemField& givenNameField = fieldSet[fieldSet.Find(KUidContactFieldGivenName)]; givenNameField.TextStorage()->SetTextL(_L("Ayrton")); CContactItemField& familyNameField = fieldSet[fieldSet.Find(KUidContactFieldFamilyName)]; familyNameField.TextStorage()->SetTextL(_L("Senna")); CContactItemField& ordinalNumField = fieldSet[fieldSet.Find(KUidContactFieldAdditionalName)]; ordinalNumField.TextStorage()->SetTextL(_L("20")); //Number is used for sorting checking iDb->CommitContactL(*mansContact); POPD(mansContact); CleanupStack::PopAndDestroy(); //record lock WAIT_EVENTS(7,10) //Waiting for 10 events to arrive (delele and insert event from each view) //Actions: Check the sorting in every view. //Expected Result: 10 events should arrive - 5 deletes and 5 inserts. //Sort order for all the views except for RemoteForward view must be reverse. //The entry must be updated in local and remote views and should disappear //from Find views because it doesn't contain substrings "Ma" or "el" anymore. test.Printf(_L("Local View:\n")); CheckViewOrderL(iLocalView, ETrue); test.Printf(_L("\n\n")); test.Printf(_L("Remote View Reverse:\n")); CheckViewOrderL(iRemoteViewReverse, ETrue); test.Printf(_L("\n\n")); test.Printf(_L("Remote View Forward:\n")); CheckViewOrderL(iRemoteViewForward, EFalse, EFalse); //do not Print, forward order test.Printf(_L("\n\n")); test.Printf(_L("Local Find View:\n")); CheckViewOrderL(iLocalFindView, ETrue); test.Printf(_L("\n\n")); test.Printf(_L("Remote Find View:\n")); CheckViewOrderL(iRemoteFindView, ETrue); test.Printf(_L("\n\n")); //We changed Mansell to Senna - the entry shouldn't appear in either find views TContactItemId manselId = SearchInViewL(iLocalFindView, KMansell); TESTTRUE(manselId == 0); manselId = SearchInViewL(iRemoteFindView, KMansell); TESTTRUE(manselId == 0); CloseView(iLocalFindView); CloseView(iLocalView); CloseView(iRemoteFindView); CloseView(iRemoteViewReverse); CloseView(iRemoteViewForward); iFindDesArray->Reset(); delete iFindDesArray; iFindDesArray = NULL; END_ASYNC_TEST }