Ejemplo n.º 1
0
pictw_t *
simg_load(session_t *ps, const char *path, enum pict_posp_mode mode,
		int twidth, int theight, enum align alg, enum align valg,
		const XRenderColor *pc) {
	pictw_t *result = NULL;
	bool processed = false;

	if (!path || !path[0]) { }
#ifdef CFG_LIBPNG
	else if (str_endwith(path, ".png"))
		result = spng_read(ps, path);
#endif
#ifdef CFG_JPEG
	else if (str_endwith(path, ".jpg") || str_endwith(path, ".jpeg")
			|| str_endwith(path, ".jpe"))
		result = sjpg_read(ps, path);
#endif
#ifdef CFG_GIFLIB
	else if (str_endwith(path, ".gif"))
		result = sgif_read(ps, path);
#endif
	if (!processed)
		result = simg_postprocess(ps, result, mode, twidth, theight,
				alg, valg, pc);

	return result;
}
Ejemplo n.º 2
0
void CfsclientwDlg::OnBnClickedButdw()
{
	CListCtrl* pl = (CListCtrl*)GetDlgItem(IDC_FLIST);
	file_info fi;
	vector<file_info> vfiles;
	char buf[MAX_PATH];
	for (int i = 0; i < pl->GetItemCount(); i++) 
	{
		if (pl->GetCheck(i) == 0)
		{
			continue;
		}
		pl->GetItemText(i, IDX_FILENAME, buf, sizeof(buf));
		if (strcmp(buf, "..") == 0)
		{
			continue;
		}
		fi.basename = buf;
		pl->GetItemText(i, IDX_FULLNAME, buf, sizeof(buf));
		fi.filename = buf;
		pl->GetItemText(i, IDX_FILEINFO, buf, sizeof(buf));
		fi.isFolder = !strcmp(buf, "<enter>");
		pl->GetItemText(i, IDX_FILESIZE, buf, sizeof(buf));
		fi.filesize = str_i64(buf);
		vfiles.push_back(fi);
	}
	if (vfiles.size())
	{
		m_dwWin.setDwFiles(vfiles);
		m_dwWin.DoModal();
		return;
	}
	CEdit* pe = (CEdit*)GetDlgItem(IDC_EDIT_FILE);
	char filename[256];
	pe->GetWindowText(filename, sizeof(filename));

	if (filename[0] == 0)
	{
		MessageBox("Please select or input a file name", "no file name");
		return;
	}
	if (filename[0] == '/' && filename[1] == 0)
	{
		MessageBox("Are your sure? you cannot download root directory", "wrong path");
		return;
	}

	//regular file
	if (!str_endwith(filename, '/'))
	{
		file_info fi;
		//nameConvert(filename, fi);
		fi.filesize = m_dwM->getFileSize(filename);
		if (fi.filesize < 0)
		{
			MessageBox("404 file not found", "error");
			return;
		}
		if (fi.filesize < 10)
		{
			MessageBox("I refuse to download file < 10 bytes", "error");
			return;
		}
		fi.filename = filename;
		char* pt = strrchr(filename, '/');
		if (pt)
		{
			fi.basename = pt + 1;
		}
		else
		{
			fi.basename = filename;
		}
		vfiles.push_back(fi);
		m_dwWin.setDwFiles(vfiles);
	}
	else //this is a folder, list files, give files and folder name to dw-win
	{
		size_t len = strlen(filename);
		filename[len - 1] = 0;
		m_dwM->dir(vfiles, filename);
		if (vfiles.size() == 0)
		{
			MessageBox("no files need to download", "error");
			return;
		}
		char* pt = strrchr(filename, '/');
		if (pt)
		{
			m_dwWin.setDwFiles(vfiles, pt + 1);
		}
		else
		{
			m_dwWin.setDwFiles(vfiles, filename);
		}

	}
	m_dwWin.DoModal();
}