QueueController.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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, qoDeleteAllDone, qoDeleteAll };
  11. class TQueueItemProxy;
  12. class TTerminalQueueStatus;
  13. //---------------------------------------------------------------------------
  14. class TQueueController
  15. {
  16. public:
  17. __fastcall TQueueController(TCustomListView * ListView);
  18. virtual __fastcall ~TQueueController();
  19. TQueueOperation __fastcall DefaultOperation();
  20. bool __fastcall AllowOperation(TQueueOperation Operation, unsigned long * Param = NULL);
  21. void __fastcall ExecuteOperation(TQueueOperation Operation, unsigned long Param = 0);
  22. void __fastcall UpdateQueueStatus(TTerminalQueueStatus * QueueStatus);
  23. void __fastcall RefreshQueueItem(TQueueItemProxy * QueueItem);
  24. static bool __fastcall QueueItemNeedsFrequentRefresh(TQueueItemProxy * QueueItem);
  25. bool __fastcall NeedRefresh();
  26. TQueueItemProxy * __fastcall GetFocusedPrimaryItem();
  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. TFormatBytesStyle FFormatSizeBytes;
  34. TQueueItemProxy * __fastcall QueueViewItemToQueueItem(TListItem * Item);
  35. void __fastcall QueueViewDblClick(TObject * Sender);
  36. void __fastcall QueueViewKeyDown(TObject * Sender, WORD & Key, TShiftState Shift);
  37. void __fastcall QueueViewCustomDrawItem(TCustomListView * Sender, TListItem * Item,
  38. TCustomDrawState State, bool & DefaultDraw);
  39. virtual void __fastcall DoChange();
  40. bool __fastcall GetEmpty();
  41. void __fastcall RememberConfiguration();
  42. static void __fastcall FillQueueViewItem(TListItem * Item,
  43. TQueueItemProxy * QueueItem, bool Detail, bool OnlyLine);
  44. TListItem * __fastcall InsertItemFor(TQueueItemProxy * QueueItem, int Index);
  45. bool __fastcall UseDetailsLine(int ItemIndex, TQueueItemProxy * QueueItem);
  46. static bool SimpleOperation(TQueueItemProxy * QueueItem);
  47. };
  48. //---------------------------------------------------------------------------
  49. #endif