//------------------------------------------------------------------------- MapDemoScreen::~MapDemoScreen( ) //------------------------------------------------------------------------- { deleteobject( mMap ); deleteobject( mOpenStreetMapSource ); deleteobject( mGoogleStreetMapSource ); deleteobject( mGoogleAerialMapSource ); deleteobject( mGoogleHybridMapSource ); }
// Note this function is RECURSIVE. // deletes the object before the cursor. If the measure is empty it moves to the end of the previous measure and calls itself. // after deleting an object it backs-up on any rhythm pattern being followed. void deletepreviousobject (GtkAction* action, DenemoScriptParam *param) { /* remove the object preceding the cursor, within the current measure */ if (Denemo.project->movement->cursor_x) { /* Then move the cursor back */ movecursorleft (NULL, NULL); DenemoObject *curObj = (DenemoObject*)Denemo.project->movement->currentobject->data; gboolean anote = (curObj->type == CHORD) && ((chord*)curObj->object)->notes; /* And delete */ deleteobject (NULL, NULL); /* if you are following a rhythmic pattern then backup the pattern */ if ((Denemo.project->mode & (INPUTEDIT) && Denemo.project->rstep)) { if (anote) Denemo.project->rstep = Denemo.project->rstep->prev; /* rstep list of elements is circular */ if (Denemo.project->cstep) { RhythmPattern *cursnip = (RhythmPattern *)Denemo.project->currhythm->data; Denemo.project->cstep = Denemo.project->cstep->prev ? Denemo.project->cstep->prev : g_list_last (Denemo.project->cstep);// cstep list of DenemoObjects is not circular } if (((RhythmElement *) Denemo.project->rstep->data)->highlightlabel) { RhythmPattern *cursnip = (RhythmPattern *)Denemo.project->currhythm->data; set_rhythm_label (cursnip, ((RhythmElement *) Denemo.project->rstep->data)->highlightlabel); } } } else { /* go to the previous measure, go to end of it, and start deleting there */ if (Denemo.project->movement->currentmeasure->prev) { DenemoScriptParam param; do { movetomeasureleft (NULL, ¶m); //go to end while (Denemo.project->movement->currentobject && (Denemo.project->movement->currentobject->next)) { Denemo.project->movement->currentobject = Denemo.project->movement->currentobject->next; Denemo.project->movement->cursor_x++; } } while (param.status && !Denemo.project->movement->currentobject); if (Denemo.project->movement->currentobject) { movecursorright (NULL, NULL); deletepreviousobject (NULL, NULL);//RECURSIVE!! } } } }
//------------------------------------------------------------------------- MapWidget::~MapWidget( ) //------------------------------------------------------------------------- { if ( mViewport ) { mViewport->removeListener( this ); deleteobject( mViewport ); } }
//------------------------------------------------------------------------- void AppScreenBase::keyReleaseEvent( int keyCode, int nativeCode ) //------------------------------------------------------------------------- { if ( mKeyTimer != NULL ) { Environment::getEnvironment( ).removeTimer( mKeyTimer ); deleteobject( mKeyTimer ); } (void)handleKeyRelease( keyCode ); }
//------------------------------------------------------------------------- void MapWidget::setViewport( MapViewport* viewport ) //------------------------------------------------------------------------- { if ( mViewport ) { mViewport->removeListener( this ); deleteobject( mViewport ); } mViewport = viewport; mViewport->addListener( this ); }
//------------------------------------------------------------------------- extern "C" int MAMain( ) //------------------------------------------------------------------------- { HelloMap::HelloMapMoblet* moblet = newobject( HelloMap::HelloMapMoblet, new HelloMap::HelloMapMoblet( ) ); Moblet::run( moblet ); deleteobject( moblet ); MapCache::shutdown( ); MemoryMgr::dump( ); return 0; }
//------------------------------------------------------------------------- AppScreenBase::~AppScreenBase( ) //------------------------------------------------------------------------- { MessageMgr::get( )->removeListener( this ); if ( mKeyTimer != NULL ) { Environment::getEnvironment( ).removeTimer( mKeyTimer ); deleteobject( mKeyTimer ); } if ( mAppFrame != NULL ) { mAppFrame->getChildren( ).clear( ); deleteobject( mAppFrame ); } if ( mContentFrame != NULL ) { mContentFrame->getChildren( ).clear( ); deleteobject( mContentFrame ); } deleteobject( mSoftKeyBar ); }
//------------------------------------------------------------------------- bool AppScreenBase::handleKeyPress( int keyCode ) //------------------------------------------------------------------------- { if ( this != Screen::currentScreen ) { if ( mKeyTimer != NULL ) { Environment::getEnvironment( ).removeTimer( mKeyTimer ); deleteobject( mKeyTimer ); } return true; } if ( mSoftKeyBar->handleKeyPress( keyCode ) ) return true; return false; }
void objecttimetolive(void) { int count; count=0; while (count<numofobjects) { if (object[count].timetolive<10000) object[count].timetolive--; while (count<numofobjects && object[count].timetolive<0) { deleteobject(count); if (object[count].timetolive<10000) object[count].timetolive--; } count++; } }
//------------------------------------------------------------------------- HelloMapMoblet::~HelloMapMoblet( ) //------------------------------------------------------------------------- { deleteobject( mScreen ); }
//------------------------------------------------------------------------- MapDemoMoblet::~MapDemoMoblet( ) //------------------------------------------------------------------------- { deleteobject( mScreen ); }