TransferQueue::setFlagsAt(unsigned int number, unsigned int value)
{
if ((number >= 0) && (number < m_numEntries)) {
- m_pEntries[number].info.flags = value;
+ m_pEntries[number].info.flags = m_pEntries[number].info.flags | value;
return true;
}
return false;
}
+bool
+TransferQueue::clearFlagAt(unsigned int number, unsigned int value)
+{
+ if ((number >= 0) && (number < m_numEntries)) {
+ m_pEntries[number].info.flags = (m_pEntries[number].info.flags & (value ^ 0xFFFFFFFF));
+ return true;
+ }
+ return false;
+}
+
+bool
+TransferQueue::setFlagToAll(unsigned int flag)
+{
+ for (unsigned int i = 0; i < m_numEntries; i++) {
+ setFlagsAt(i, flag);
+ }
+ return true;
+}
+
bool
TransferQueue::deleteAt(unsigned int number)
{
bool setSizeAt(unsigned int number, unsigned int value);
bool setDataAt(unsigned int number, unsigned int value);
bool setFlagsAt(unsigned int number, unsigned int value);
+ bool clearFlagAt(unsigned int number, unsigned int value);
+ bool setFlagToAll(unsigned int flag);
bool deleteAt(unsigned int number);
#define FT_MAX_STATUS_STRINGS 255
#define FT_MAX_LENGTH_STATUS_STRINGS 130
-#define FT_ATTR_UNKNOWN 0x00000000
-#define FT_ATTR_FILE 0x00000001
-#define FT_ATTR_DIR 0x00000002
+#define FT_ATTR_UNKNOWN 0x00000000
+#define FT_ATTR_FILE 0x00000001
+#define FT_ATTR_DIR 0x00000002
+
+#define FT_ATTR_RESIZE_NEEDED 0x00040000
+#define FT_ATTR_FOLDER_EXISTS 0x00080000
+#define FT_ATTR_COPY_OVERWRITE 0x00100000
+#define FT_ATTR_FLR_UPLOAD_CHECK 0x00200000
+#define FT_ATTR_FLR_UPLOAD_ADD 0x00400000
+#define FT_ATTR_COPY_UPLOAD 0x00800000
+#define FT_ATTR_FLR_DOWNLOAD_CHECK 0x01000000
+#define FT_ATTR_FLR_DOWNLOAD_ADD 0x02000000
+#define FT_ATTR_COPY_DOWNLOAD 0x04000000
+#define FT_ATTR_DELETE_LOCAL 0x08000000
+#define FT_ATTR_DELETE_REMOTE 0x10000000
+#define FT_ATTR_RENAME_LOCAL 0x20000000
+#define FT_ATTR_RENAME_REMOTE 0x40000000
#define FT_FLR_DEST_MAIN 101
#define FT_FLR_DEST_BROWSE 102
m_pLocalLV->initialize(m_hInstance);
m_pRemoteLV->initialize(m_hInstance);
- m_pProgress->initialize(0,0);
-
m_hwndLocalPath = GetDlgItem(m_hwndFTDialog, IDC_FTLOCALPATH);
m_hwndRemotePath = GetDlgItem(m_hwndFTDialog, IDC_FTREMOTEPATH);
}
}
m_BtnState.cancelBtn = false;
-/*
- if (m_pFileTransfer->isTransferEnable()) {
- setAllButtonsState(-1, -1, -1, -1, 1);
- } else {
- setAllButtonsState(-1, -1, -1, -1, 0);
- }
-*/
}
void
case true: EnableWindow(GetDlgItem(m_hwndFTDialog, IDC_FTCANCEL), TRUE); break;
}
}
+
+void
+FTDialog::setStatusText(char *pText)
+{
+ SetDlgItemText(m_hwndFTDialog, IDC_FTSTATUS, pText);
+}
void addRemoteLVItems(FileInfo *pFI);
void reqFolderUnavailable();
+
+ void setStatusText(char *pText);
+
+ FTProgress *m_pProgress;
private:
FileTransfer *m_pFileTransfer;
FTListView *m_pLocalLV;
FTListView *m_pRemoteLV;
- FTProgress *m_pProgress;
-
int m_FTMenuSource;
char m_szLocalPath[FT_FILENAME_SIZE];
m_pSingleProgress = NULL;
m_pGeneralProgress = NULL;
+
+ m_hwndSinglePercent = GetDlgItem(m_hwndParent, IDC_FTSINGLEPERCENT);
+ m_hwndGeneralPercent = GetDlgItem(m_hwndParent, IDC_FTGENERALPERCENT);
+
+ m_bInitialized = createProgressBarObjects();
}
FTProgress::~FTProgress()
destroyProgressBarObjects();
}
-bool
-FTProgress::initialize(DWORD64 totalMaxValue, DWORD maxValue)
+void
+FTProgress::increase(DWORD value)
{
- m_bInitialized = false;
-
- m_hwndSinglePercent = GetDlgItem(m_hwndParent, IDC_FTSINGLEPERCENT);
- m_hwndGeneralPercent = GetDlgItem(m_hwndParent, IDC_FTGENERALPERCENT);
-
- if ((m_hwndSinglePercent == NULL) || (m_hwndGeneralPercent == NULL)) return false;
-
- if (!createProgressBarObjects()) return false;
+ if (!m_bInitialized) return;
- if (!initProgressControls(totalMaxValue, maxValue)) return false;
+ m_pSingleProgress->increase(value);
+ m_pGeneralProgress->increase(value);
setProgressText();
-
- m_bInitialized = true;
- return true;
}
void
-FTProgress::increase(DWORD value)
+FTProgress::clearAndInitGeneral(DWORD64 dw64MaxValue, DWORD64 dw64Position)
{
if (!m_bInitialized) return;
- m_pSingleProgress->increase(value);
- m_pGeneralProgress->increase(value);
+ m_pGeneralProgress->clear();
+ m_pGeneralProgress->init(dw64MaxValue, dw64Position);
setProgressText();
}
void
-FTProgress::clearSingle()
+FTProgress::clearAndInitSingle(DWORD dwMaxValue, DWORD dwPosition)
{
if (!m_bInitialized) return;
m_pSingleProgress->clear();
+ m_pSingleProgress->init(dwMaxValue, dwPosition);
setProgressText();
}
return true;
}
-bool
-FTProgress::initProgressControls(DWORD64 totalMaxValue, DWORD maxValue)
-{
- bool bResult = true;
-
- if ((m_pSingleProgress != NULL) && (m_pGeneralProgress != NULL)) {
- if (!m_pSingleProgress->init(totalMaxValue, 0)) return false;
- if (!m_pGeneralProgress->init(maxValue, 0)) return false;
- } else {
- return false;
- }
-
- setProgressText();
- return true;
-}
-
void
FTProgress::setProgressText()
{
FTProgress(HWND hwndParent);
~FTProgress();
- bool initialize(DWORD64 totalMaxValue, DWORD maxValue);
void increase(DWORD value);
- void clearSingle();
+ void clearAndInitGeneral(DWORD64 dw64MaxValue, DWORD64 dw64Position);
+ void clearAndInitSingle(DWORD dwMaxValue, DWORD dwPosition);
void clearAll();
private:
bool m_bInitialized;
- bool initProgressControls(DWORD64 totalMaxValue, DWORD maxValue);
-
void setProgressText();
bool createProgressBarObjects();
bool destroyProgressBarObjects();
m_pReader = new FTMsgReader(pIS);
m_pWriter = new FTMsgWriter(pOS);
+ m_TransferQueue.free();
+
m_bInitialized = true;
return true;
}
}
}
+bool
+FileTransfer::isTransferEnable()
+{
+ if (m_TransferQueue.getNumEntries() > 0) return true; else return false;
+}
+
+void
+FileTransfer::upload(TransferQueue *pTransQueue)
+{
+ if ((m_bFTDlgShown) && (!isTransferEnable())) m_pFTDialog->setStatusText("Starting Copy Operation");
+
+ pTransQueue->setFlagToAll(FT_ATTR_RESIZE_NEEDED);
+
+ m_TransferQueue.add(pTransQueue);
+
+ resizeSending();
+
+}
+
+void
+FileTransfer::download(TransferQueue *pTransQueue)
+{
+
+}
+
+void
+FileTransfer::resizeSending()
+{
+
+}
+
bool
FileTransfer::procFileListDataMsg()
{
void requestFileList(char *pPath, int dest, bool bDirOnly);
+ void upload(TransferQueue *pTransQueue);
+ void download(TransferQueue *pTransQueue);
+
+ bool isTransferEnable();
+ void resizeSending();
+
private:
bool m_bFTDlgShown;
bool m_bInitialized;
FTMsgWriter *m_pWriter;
FileInfo m_queueFileListRqst;
+
+ TransferQueue m_TransferQueue;
bool procFileListDataMsg();
bool procFileDownloadDataMsg();
CAPTION "TightVNC File Transfers"
FONT 8, "MS Sans Serif"
BEGIN
- EDITTEXT IDC_FTLOCALPATH,7,20,155,12,ES_AUTOHSCROLL
CONTROL "List1",IDC_FTLOCALLIST,"SysListView32",LVS_REPORT |
LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER |
WS_TABSTOP,7,40,200,196
- PUSHBUTTON "...",IDC_FTLOCALBROWSE,165,20,14,12
- PUSHBUTTON "",IDC_FTLOCALUP,179,20,14,12,BS_ICON
- PUSHBUTTON "",IDC_FTLOCALRELOAD,193,20,14,12,BS_ICON
- EDITTEXT IDC_FTREMOTEPATH,323,20,155,12,ES_AUTOHSCROLL
CONTROL "List2",IDC_FTREMOTELIST,"SysListView32",LVS_REPORT |
LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER |
WS_TABSTOP,323,40,200,196
- PUSHBUTTON "...",IDC_FTREMOTEBROWSE,481,20,14,12
- PUSHBUTTON "",IDC_FTREMOTEUP,495,20,14,12,BS_ICON
- PUSHBUTTON "",IDC_FTREMOTERELOAD,509,20,14,12,BS_ICON
PUSHBUTTON "Upload Files and Folders",IDC_FTUPLOAD,218,66,94,12,
WS_DISABLED
PUSHBUTTON "Download Files and Folders",IDC_FTDOWNLOAD,218,85,94,12,
PUSHBUTTON "Cancel File Transfer",IDC_FTCANCEL,218,167,94,12,
WS_DISABLED
PUSHBUTTON "Close File Transfers",IDC_FTCLOSE,218,217,94,12
- COMBOBOX IDC_FTSTATUS,7,262,516,30,CBS_DROPDOWNLIST | CBS_SORT |
- WS_VSCROLL | WS_TABSTOP
+ EDITTEXT IDC_FTLOCALPATH,7,20,155,12,ES_AUTOHSCROLL | NOT
+ WS_TABSTOP
CTEXT "Local Computer",IDC_FTLOCALLABEL,7,7,200,10
- CTEXT "TightVNC Server",IDC_FTREMOTELABEL,323,7,200,10
- LTEXT "File Transfer",IDC_STATIC,7,245,40,8
- LTEXT "Current File",IDC_STATIC,323,245,36,8
+ PUSHBUTTON "...",IDC_FTLOCALBROWSE,165,20,14,12,NOT WS_TABSTOP
+ PUSHBUTTON "",IDC_FTLOCALUP,179,20,14,12,BS_ICON | NOT WS_TABSTOP
+ PUSHBUTTON "",IDC_FTLOCALRELOAD,193,20,14,12,BS_ICON | NOT
+ WS_TABSTOP
CONTROL "Progress1",IDC_FTGENERALPROGRESS,"msctls_progress32",
WS_BORDER,55,244,128,10
+ LTEXT "File Transfer",IDC_STATIC,7,245,40,8
+ COMBOBOX IDC_FTSTATUS,7,262,516,30,CBS_DROPDOWNLIST | CBS_SORT |
+ WS_VSCROLL
CONTROL "Progress1",IDC_FTSINGLEPROGRESS,"msctls_progress32",
WS_BORDER,370,244,128,10
+ EDITTEXT IDC_FTREMOTEPATH,323,20,155,12,ES_AUTOHSCROLL | NOT
+ WS_TABSTOP
+ PUSHBUTTON "...",IDC_FTREMOTEBROWSE,481,20,14,12,NOT WS_TABSTOP
+ PUSHBUTTON "",IDC_FTREMOTEUP,495,20,14,12,BS_ICON | NOT WS_TABSTOP
+ PUSHBUTTON "",IDC_FTREMOTERELOAD,509,20,14,12,BS_ICON | NOT
+ WS_TABSTOP
+ CTEXT "TightVNC Server",IDC_FTREMOTELABEL,323,7,200,10
+ LTEXT "Current File",IDC_STATIC,323,245,36,8
CTEXT "0%",IDC_FTGENERALPERCENT,189,245,18,8
CTEXT "0%",IDC_FTSINGLEPERCENT,505,245,18,8
END