/* * Delete Row clicked for table */ void AngleDialog::deleteClicked() { int row = mTable->currentRow(); Ilist *saved = mApp->getSavedList(); if (row < 0 || row >= ilistSize(saved)) return; ilistRemove(saved, row); updateTable(); mApp->setSaveModified(); }
/*! * Pops an item off the front of [list] and returns it; returns NULL if error. * The item has been malloc'ed and must be freed */ void *ilistPop(Ilist *list) { void *data; if (!list->size) return (NULL); data = (void *)malloc(list->dsize); if (!data) return(NULL); memcpy(data, list->data, list->dsize); ilistRemove(list, 0); return(data); }
// Remove the given obj, cont from the selection list if it is on it void imodSelectionListRemove(ImodView *vi, int ob, int co) { Iindex *index; int i; for (i = 0; i < ilistSize(vi->selectionList); i++) { index = (Iindex *)ilistItem(vi->selectionList, i); if (index->object == ob && index->contour == co) { ilistRemove(vi->selectionList, i); imodTrace('S', "Removing item %d, leaves %d", i, ilistSize(vi->selectionList)); return; } } }
void ImodvOlist::toggleGroupSlot(int ob) { int index; bool state; IobjGroup *group = (IobjGroup *)ilistItem(Imodv->imod->groupList, Imodv->imod->curObjGroup); if (!group) return; index = objGroupLookup(group, ob); state = groupButtons[ob]->isChecked(); if (state && index < 0) objGroupAppend(group, ob); else if (!state && index >= 0) ilistRemove(group->objList, index); }
/*! Moves the item at [element] to the front of [list]; returns 1 if error */ int ilistFloat(Ilist *list, int element) { void *data; char *p1; int err; if (element < 1 || element >= list->size) return 1; p1 = (char *)list->data + (element * list->dsize); data = (void *)malloc(list->dsize); if (!data) return 1; memcpy(data, p1, list->dsize); ilistRemove(list, element); err = ilistPush(list, data); free(data); return err; }
static void removeFromOpenedList(ImodImageFile *iiFile) { int i = findFileInList(iiFile, NULL); if (i >= 0) ilistRemove(sOpenedFiles, i); }
void ImodvOlist::actionButtonClicked(int which) { Imod *imod = Imodv->imod; IobjGroup *group, *ogroup; int ob, index, changed = 1; if (which != OBJGRP_NEW && which != OBJGRP_DELETE) { group = (IobjGroup *)ilistItem(imod->groupList, imod->curObjGroup); if (!group) return; } switch (which) { case OBJGRP_NEW: imodvRegisterModelChg(); group = objGroupListExpand(&imod->groupList); if (!group) break; ogroup = (IobjGroup *)ilistItem(imod->groupList, imod->curObjGroup); if (ogroup) group->objList = ilistDup(ogroup->objList); imod->curObjGroup = ilistSize(imod->groupList) - 1; updateGroups(Imodv); break; case OBJGRP_DELETE: if (imod->curObjGroup < 0) return; imodvRegisterModelChg(); if (objGroupListRemove(imod->groupList, imod->curObjGroup)) break; imod->curObjGroup = B3DMIN(B3DMAX(0, imod->curObjGroup - 1), ilistSize(imod->groupList) - 1); updateGroups(Imodv); break; case OBJGRP_CLEAR: imodvRegisterModelChg(); ilistTruncate(group->objList, 0); updateGroups(Imodv); break; case OBJGRP_ADDALL: imodvRegisterModelChg(); if (group->objList) ilistTruncate(group->objList, 0); for (ob = 0; ob < imod->objsize; ob++) if (objGroupAppend(group, ob)) return; updateGroups(Imodv); break; case OBJGRP_SWAP: imodvRegisterModelChg(); for (ob = 0; ob < imod->objsize; ob++) { index = objGroupLookup(group, ob); if (index >= 0) ilistRemove(group->objList, index); else if (objGroupAppend(group, ob)) return; } updateGroups(Imodv); break; case OBJGRP_TURNON: case OBJGRP_TURNOFF: case OBJGRP_OTHERSON: case OBJGRP_OTHERSOFF: changed = 0; for (ob = 0; ob < imod->objsize; ob++) { index = objGroupLookup(group, ob); if (((index >= 0 && which == OBJGRP_TURNON) || (index < 0 && which == OBJGRP_OTHERSON)) && iobjOff(imod->obj[ob].flags)) { imodvRegisterObjectChg(ob); imod->obj[ob].flags &= ~IMOD_OBJFLAG_OFF; changed = 1; } else if (((index >= 0 && which == OBJGRP_TURNOFF) || (index < 0 && which == OBJGRP_OTHERSOFF)) && !iobjOff(imod->obj[ob].flags)) { imodvRegisterObjectChg(ob); imod->obj[ob].flags |= IMOD_OBJFLAG_OFF; changed = 1; } } imodvDraw(Imodv); imodvDrawImodImages(); imodvObjedNewView(); break; } if (changed) imodvFinishChgUnit(); }