⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ecspecialtags.cpp

📁 电驴的MAC源代码
💻 CPP
字号:
//// This file is part of the aMule Project.//// Copyright (c) 2003-2008 Kry ( elkry@sourceforge.net / http://www.amule.org )// Copyright (c) 2003-2008 aMule Team ( admin@amule.org / http://www.amule.org )//// Any parts of this program derived from the xMule, lMule or eMule project,// or contributed by third-party developers are copyrighted by their// respective authors.//// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.// // You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA//#include "ECTag.h"		// Needed for CECTag#include "ECSpecialTags.h"	// Needed for special EC tag creator classes#include <common/Format.h>		// Needed for CFormat#include "../../../KnownFile.h"		// Needed for PS_*wxString CEC_PartFile_Tag::GetFileStatusString(){	uint8 nFileStatus = FileStatus();	        if ((nFileStatus == PS_HASHING) || (nFileStatus == PS_WAITINGFORHASH)) {                return _("Hashing");        } else {                switch (nFileStatus) {                        case PS_COMPLETING:                                return _("Completing");                        case PS_COMPLETE:                                return _("Complete");                        case PS_PAUSED:                                return _("Paused");                        case PS_ERROR:                                return _("Erroneous");                        default:                                if (SourceXferCount() > 0) {                                        return _("Downloading");                                } else {                                        return _("Waiting");                                }                }                // if stopped        }}//// Search request//CEC_Search_Tag::CEC_Search_Tag(const wxString &name, EC_SEARCH_TYPE search_type, const wxString &file_type,			const wxString &extension, uint32 avail, uint64 min_size, uint64 max_size) : CECTag(EC_TAG_SEARCH_TYPE, (uint32)search_type){	AddTag(CECTag(EC_TAG_SEARCH_NAME, name));	AddTag(CECTag(EC_TAG_SEARCH_FILE_TYPE, file_type));	if ( !extension.IsEmpty() ) {		AddTag(CECTag(EC_TAG_SEARCH_EXTENSION, extension));	}	if ( avail ) {		AddTag(CECTag(EC_TAG_SEARCH_AVAILABILITY, avail));	}	if ( min_size != 0 ) {		AddTag(CECTag(EC_TAG_SEARCH_MIN_SIZE, min_size));	}	if ( max_size != 0 ) {		AddTag(CECTag(EC_TAG_SEARCH_MAX_SIZE, max_size));	}}void FormatValue(CFormat& format, const CECTag* tag){	wxASSERT(tag->GetTagName() == EC_TAG_STAT_NODE_VALUE);	wxString extra;	const CECTag *tmp_tag = tag->GetTagByName(EC_TAG_STAT_NODE_VALUE);	if (tmp_tag) {		wxString tmp_fmt;		const CECTag* tmp_vt = tmp_tag->GetTagByName(EC_TAG_STAT_VALUE_TYPE);		EC_STATTREE_NODE_VALUE_TYPE tmp_valueType = tmp_vt != NULL ? (EC_STATTREE_NODE_VALUE_TYPE)tmp_vt->GetInt() : EC_VALUE_INTEGER;		switch (tmp_valueType) {			case EC_VALUE_INTEGER:				tmp_fmt = wxT("%llu");				break;			case EC_VALUE_DOUBLE:				tmp_fmt = wxT("%.2f%%");	// it's used for percentages				break;			default:				tmp_fmt = wxT("%s");		}		CFormat tmp_format(wxT(" (") + tmp_fmt + wxT(")"));		FormatValue(tmp_format, tmp_tag);		extra = tmp_format.GetString();	}	const CECTag* vt = tag->GetTagByName(EC_TAG_STAT_VALUE_TYPE);	EC_STATTREE_NODE_VALUE_TYPE valueType = vt != NULL ? (EC_STATTREE_NODE_VALUE_TYPE)vt->GetInt() : EC_VALUE_INTEGER;	switch (valueType) {		case EC_VALUE_INTEGER:			format = format % tag->GetInt();			break;		case EC_VALUE_ISTRING:			format = format % (wxString::Format(wxT("%") wxLongLongFmtSpec wxT("u"), tag->GetInt()) + extra);			break;		case EC_VALUE_BYTES:			format = format % (CastItoXBytes(tag->GetInt()) + extra);			break;		case EC_VALUE_ISHORT:			format = format % (CastItoIShort(tag->GetInt()) + extra);			break;		case EC_VALUE_TIME:			format = format % (CastSecondsToHM(tag->GetInt()) + extra);			break;		case EC_VALUE_SPEED:			format = format % (CastItoSpeed(tag->GetInt()) + extra);			break;		case EC_VALUE_STRING:			format = format % (wxGetTranslation(tag->GetStringData()) + extra);			break;		case EC_VALUE_DOUBLE:			format = format % tag->GetDoubleData();			break;		default:			wxASSERT(0);	}}wxString CEC_StatTree_Node_Tag::GetDisplayString() const{	wxString en_label = GetStringData();	wxString my_label = wxGetTranslation(en_label);	// This is needed for client names, for example	if (my_label == en_label) {		if (en_label.Right(4) == wxT(": %s")) {			my_label = wxGetTranslation(en_label.Mid(0, en_label.Length() - 4)) + wxString(wxT(": %s"));		}	}	CFormat label(my_label);	for (size_t i = 0; i < GetTagCount(); ++i) {		const CECTag *tmp = GetTagByIndex(i);		if (tmp->GetTagName() == EC_TAG_STAT_NODE_VALUE) {			FormatValue(label, tmp);		}	}	return label.GetString();}// File_checked_for_headers

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -