QueueController.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. //---------------------------------------------------------------------------
  2. #ifndef QueueControllerH
  3. #define QueueControllerH
  4. //---------------------------------------------------------------------------
  5. #include <ComCtrls.hpp>
  6. //---------------------------------------------------------------------------
  7. enum TQueueOperation { qoNone, qoGoTo, qoPreferences, qoItemUserAction,
  8. qoItemQuery, qoItemError, qoItemPrompt, qoItemDelete, qoItemExecute,
  9. qoItemUp, qoItemDown, qoItemPause, qoItemResume, qoItemSpeed, qoPauseAll, qoResumeAll,
  10. qoOnceEmpty };
  11. class TCustomListView;
  12. class TCriticalSection;
  13. class TQueueItemProxy;
  14. class TTerminalQueueStatus;
  15. //---------------------------------------------------------------------------
  16. class TQueueController
  17. {
  18. public:
  19. __fastcall TQueueController(TListView * ListView);
  20. __fastcall ~TQueueController();
  21. TQueueOperation __fastcall DefaultOperation();
  22. bool __fastcall AllowOperation(TQueueOperation Operation, void ** Param = NULL);
  23. void __fastcall ExecuteOperation(TQueueOperation Operation, void * Param = NULL);
  24. void __fastcall UpdateQueueStatus(TTerminalQueueStatus * QueueStatus);
  25. void __fastcall RefreshQueueItem(TQueueItemProxy * QueueItem);
  26. static bool __fastcall QueueItemNeedsFrequentRefresh(TQueueItemProxy * QueueItem);
  27. __property TNotifyEvent OnChange = { read = FOnChange, write = FOnChange };
  28. __property bool Empty = { read = GetEmpty };
  29. private:
  30. TListView * FListView;
  31. TTerminalQueueStatus * FQueueStatus;
  32. TNotifyEvent FOnChange;
  33. TQueueItemProxy * __fastcall QueueViewItemToQueueItem(
  34. TListItem * Item, bool * Detail = NULL);
  35. void __fastcall QueueViewDblClick(TObject * Sender);
  36. void __fastcall QueueViewKeyDown(TObject * Sender, WORD & Key, TShiftState Shift);
  37. virtual void __fastcall DoChange();
  38. bool __fastcall GetEmpty();
  39. static void __fastcall FillQueueViewItem(TListItem * Item,
  40. TQueueItemProxy * QueueItem, bool Detail);
  41. };
  42. //---------------------------------------------------------------------------
  43. #endif