QueueController.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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 TQueueItemProxy;
  13. class TTerminalQueueStatus;
  14. //---------------------------------------------------------------------------
  15. class TQueueController
  16. {
  17. public:
  18. __fastcall TQueueController(TListView * ListView);
  19. __fastcall ~TQueueController();
  20. TQueueOperation __fastcall DefaultOperation();
  21. bool __fastcall AllowOperation(TQueueOperation Operation, void ** Param = NULL);
  22. void __fastcall ExecuteOperation(TQueueOperation Operation, void * Param = NULL);
  23. void __fastcall UpdateQueueStatus(TTerminalQueueStatus * QueueStatus);
  24. void __fastcall RefreshQueueItem(TQueueItemProxy * QueueItem);
  25. static bool __fastcall QueueItemNeedsFrequentRefresh(TQueueItemProxy * QueueItem);
  26. __property TNotifyEvent OnChange = { read = FOnChange, write = FOnChange };
  27. __property bool Empty = { read = GetEmpty };
  28. private:
  29. TListView * FListView;
  30. TTerminalQueueStatus * FQueueStatus;
  31. TNotifyEvent FOnChange;
  32. TQueueItemProxy * __fastcall QueueViewItemToQueueItem(
  33. TListItem * Item, bool * Detail = NULL);
  34. void __fastcall QueueViewDblClick(TObject * Sender);
  35. void __fastcall QueueViewKeyDown(TObject * Sender, WORD & Key, TShiftState Shift);
  36. virtual void __fastcall DoChange();
  37. bool __fastcall GetEmpty();
  38. static void __fastcall FillQueueViewItem(TListItem * Item,
  39. TQueueItemProxy * QueueItem, bool Detail);
  40. };
  41. //---------------------------------------------------------------------------
  42. #endif