//--------------------------------------------------------------------------- void __fastcall TQueueController::RefreshQueueItem(TQueueItemProxy * QueueItem) { TListItem * NextListItem = NULL; TListItem * ListItem; ListItem = FListView->FindData(0, QueueItem, true, false); DebugAssert(ListItem != NULL); int Index = ListItem->Index; if (Index + 1 < FListView->Items->Count) { NextListItem = FListView->Items->Item[Index + 1]; if (NextListItem->Data != QueueItem) { NextListItem = NULL; } } FillQueueViewItem(ListItem, QueueItem, false); if (UseDetailsLine(QueueItem->Index, QueueItem)) { if (NextListItem == NULL) { NextListItem = FListView->Items->Insert(Index + 1); } FillQueueViewItem(NextListItem, QueueItem, true); } DoChange(); }
//--------------------------------------------------------------------------- void __fastcall TRightsFrame::UpdateControls() { Color = (FPopup ? clWindow : clBtnFace); DirectoriesXCheck->Visible = AllowAddXToDirectories; EnableControl(DirectoriesXCheck, Enabled && DirectoriesXEffective()); FInitialized = true; DoChange(); }
//--------------------------------------------------------------------------- void __fastcall TQueueController::UpdateQueueStatus( TTerminalQueueStatus * QueueStatus) { FQueueStatus = QueueStatus; if (FQueueStatus != NULL) { TQueueItemProxy * QueueItem; TListItem * Item; int Index = 0; for (int ItemIndex = 0; ItemIndex < FQueueStatus->Count; ItemIndex++) { QueueItem = FQueueStatus->Items[ItemIndex]; int Index2 = Index; while ((Index2 < FListView->Items->Count) && (FListView->Items->Item[Index2]->Data != QueueItem)) { Index2++; } if (Index2 < FListView->Items->Count) { while (Index < Index2) { FListView->Items->Delete(Index); Index2--; } } Item = InsertItemFor(QueueItem, Index); FillQueueViewItem(Item, QueueItem, false); Index++; DebugAssert((QueueItem->Status != TQueueItem::qsPending) == (ItemIndex < FQueueStatus->DoneAndActiveCount)); if (UseDetailsLine(ItemIndex, QueueItem)) { Item = InsertItemFor(QueueItem, Index); FillQueueViewItem(Item, QueueItem, true); Index++; } } while (Index < FListView->Items->Count) { FListView->Items->Delete(Index); } } else { FListView->Items->Clear(); } DoChange(); }
void Scene::Change (Interactor* i) { if (propagate) { DoChange(i); if (parent != nil) { parent->Change(this); } } else if (canvas != nil) { Resize(); } }
//--------------------------------------------------------------------------- void __fastcall TRightsFrame::RightsActionsExecute(TBasicAction * Action, bool & Handled) { // prevent shortcuts to be avaluated when frame does not have a focus if (HasFocus()) { bool Changed = true; TRights R = Rights; R.Number = TRights::rfNo; Handled = true; if (Action == NoRightsAction) { R = TRights::rfNo; } else if (Action == DefaultRightsAction) { R = TRights::rfDefault; } else if (Action == AllRightsAction) { R = TRights::rfAll; } else if (Action == LeaveRightsAsIsAction) { R.AllUndef(); } else if (Action == CopyTextAction) { TInstantOperationVisualizer Visualizer; CopyToClipboard(Text); Changed = false; } else if (Action == CopyOctalAction) { TRights R = Rights; assert(!R.IsUndef); if (!R.IsUndef) { TInstantOperationVisualizer Visualizer; CopyToClipboard(R.Octal); } Changed = false; } else if (Action == PasteAction) { UnicodeString S; if (TextFromClipboard(S, true)) { Text = S; } // trigger on change event, even if no change actually occurred to // allow parent form to visualize feedback of an action DoChange(); Changed = false; } else { Handled = false; } if (Changed) { Rights = R; ForceUpdate(); DoChange(); } } }