本文整理汇总了C++中CClipboard::copy方法的典型用法代码示例。如果您正苦于以下问题:C++ CClipboard::copy方法的具体用法?C++ CClipboard::copy怎么用?C++ CClipboard::copy使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CClipboard
的用法示例。
在下文中一共展示了CClipboard::copy方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getName
void
CPrimaryClient::setClipboard(ClipboardID id, const IClipboard* clipboard)
{
LOG((CLOG_INFO "xCprimaryClient::setClipboard call. Name: %s", getName().c_str()));
// ignore if this clipboard is already clean
if (m_clipboardDirty[id]) {
// this clipboard is now clean
m_clipboardDirty[id] = false;
CClipboard Clipboard;
Clipboard.copy(&Clipboard,clipboard);
Clipboard.open(0);
CString content, new_content;
if(Clipboard.has(IClipboard::kFilePath))
{
CString prefix, source;
content = Clipboard.get(IClipboard::kFilePath);
size_t pos = content.find("\n");
source = content.substr(0,pos);
//content = content.substr(pos+1, content.size());
CScreenMounts *map = ((CServerApp*) &ARCH->app())->args().m_config->getMounts(source, getName());
LOG((CLOG_INFO "X_PAS1 setClipboard: %s %s",source.c_str(), content.c_str()));
if (map!=NULL && !map->empty())
{
while (pos < content.size())
{
++pos;
CString line = content.substr(pos, content.find("\n", pos)-pos+1);
pos = content.find("\n", pos);
LOG ((CLOG_INFO "X_PAS2 The line is: %s\n", line.c_str()));
for( CScreenMounts::iterator it = map->begin(); it != map->end(); it++)
{
int p = line.find(it->first);
if( p != std::string::npos)
{
line = it->second + line.substr(p + it->first.size() );
break;
}
}
LOG ((CLOG_INFO "it changed to: %s\n", line.c_str()));
new_content.append(line);
}
Clipboard.add(IClipboard::kFilePath, new_content);
LOG((CLOG_INFO "X_PAS3 setClipboard: %s %s",source.c_str(), Clipboard.get(IClipboard::kFilePath).c_str()));
}
LOG((CLOG_INFO "X_PAS4 Changed2 clipboard: %s", new_content.c_str()));
}
Clipboard.close();
// set clipboard
m_screen->setClipboard(id, &Clipboard);
}
}