mirror of
https://github.com/winscp/winscp.git
synced 2026-10-24 02:28:55 +03:00
https://winscp.net/tracker/194 (provisionally using an icon for "Disconnect once operation queue is completed" for "Delete in Background") Source commit: cd9e8a3cfb9acf2ee88f7f01f17884162ff86992
58 lines
2.5 KiB
C++
58 lines
2.5 KiB
C++
//---------------------------------------------------------------------------
|
|
#ifndef QueueControllerH
|
|
#define QueueControllerH
|
|
//---------------------------------------------------------------------------
|
|
#include <ComCtrls.hpp>
|
|
//---------------------------------------------------------------------------
|
|
enum TQueueOperation { qoNone, qoGoTo, qoPreferences, qoItemUserAction,
|
|
qoItemQuery, qoItemError, qoItemPrompt, qoItemDelete, qoItemExecute,
|
|
qoItemUp, qoItemDown, qoItemPause, qoItemResume, qoItemSpeed, qoPauseAll, qoResumeAll,
|
|
qoOnceEmpty, qoDeleteAllDone, qoDeleteAll };
|
|
class TQueueItemProxy;
|
|
class TTerminalQueueStatus;
|
|
//---------------------------------------------------------------------------
|
|
class TQueueController
|
|
{
|
|
public:
|
|
__fastcall TQueueController(TListView * ListView);
|
|
virtual __fastcall ~TQueueController();
|
|
|
|
TQueueOperation __fastcall DefaultOperation();
|
|
bool __fastcall AllowOperation(TQueueOperation Operation, void ** Param = NULL);
|
|
void __fastcall ExecuteOperation(TQueueOperation Operation, void * Param = NULL);
|
|
|
|
void __fastcall UpdateQueueStatus(TTerminalQueueStatus * QueueStatus);
|
|
void __fastcall RefreshQueueItem(TQueueItemProxy * QueueItem);
|
|
static bool __fastcall QueueItemNeedsFrequentRefresh(TQueueItemProxy * QueueItem);
|
|
|
|
bool __fastcall NeedRefresh();
|
|
|
|
TQueueItemProxy * __fastcall GetFocusedPrimaryItem();
|
|
|
|
__property TNotifyEvent OnChange = { read = FOnChange, write = FOnChange };
|
|
__property bool Empty = { read = GetEmpty };
|
|
|
|
private:
|
|
TListView * FListView;
|
|
TTerminalQueueStatus * FQueueStatus;
|
|
TNotifyEvent FOnChange;
|
|
TFormatBytesStyle FFormatSizeBytes;
|
|
|
|
TQueueItemProxy * __fastcall QueueViewItemToQueueItem(TListItem * Item);
|
|
void __fastcall QueueViewDblClick(TObject * Sender);
|
|
void __fastcall QueueViewKeyDown(TObject * Sender, WORD & Key, TShiftState Shift);
|
|
void __fastcall QueueViewCustomDrawItem(TCustomListView * Sender, TListItem * Item,
|
|
TCustomDrawState State, bool & DefaultDraw);
|
|
virtual void __fastcall DoChange();
|
|
bool __fastcall GetEmpty();
|
|
void __fastcall RememberConfiguration();
|
|
|
|
static void __fastcall FillQueueViewItem(TListItem * Item,
|
|
TQueueItemProxy * QueueItem, bool Detail, bool OnlyLine);
|
|
TListItem * __fastcall InsertItemFor(TQueueItemProxy * QueueItem, int Index);
|
|
bool __fastcall UseDetailsLine(int ItemIndex, TQueueItemProxy * QueueItem);
|
|
static bool SimpleOperation(TQueueItemProxy * QueueItem);
|
|
};
|
|
//---------------------------------------------------------------------------
|
|
#endif
|