本文整理汇总了C++中UserWnd类的典型用法代码示例。如果您正苦于以下问题:C++ UserWnd类的具体用法?C++ UserWnd怎么用?C++ UserWnd使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了UserWnd类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: contactChanged
void Container::contactChanged(Contact *contact)
{
UserWnd *userWnd = NULL;
if (m_tabBar){
userWnd = m_tabBar->currentWnd();
}else if (!m_childs.empty()){
userWnd = m_childs.front();
}
if (userWnd && contact && (contact->id() == userWnd->id())){
Command cmd;
cmd->id = CmdContainerContact;
cmd->text_wrk = userWnd->getName();
cmd->icon = userWnd->getIcon();
cmd->param = (void*)(contact->id());
cmd->popup_id = MenuContainerContact;
cmd->flags = BTN_PICT;
EventCommandChange e(cmd);
m_bar->processEvent(&e);
e.setNoProcess();
setIcon(Pict(cmd->icon));
setCaption(userWnd->getLongName());
}
}
开发者ID:BackupTheBerlios,项目名称:sim-im-svn,代码行数:23,代码来源:container.cpp
示例2: switch
bool Container::processEvent(Event *e)
{
if (m_tabBar == NULL)
return false;
switch (e->type()){
case eEventMessageReceived: {
EventMessage *em = static_cast<EventMessage*>(e);
Message *msg = em->msg();
if (msg->type() == MessageStatus){
Contact *contact = getContacts()->contact(msg->contact());
if (contact)
contactChanged(contact);
return false;
}
if (msg->getFlags() & MESSAGE_NOVIEW)
return false;
if (CorePlugin::m_plugin->getContainerMode()){
if (isActiveWindow() && !isMinimized()){
UserWnd *userWnd = m_tabBar->currentWnd();
if (userWnd && (userWnd->id() == msg->contact()))
userWnd->markAsRead();
}else{
UserWnd *userWnd = wnd(msg->contact());
if (userWnd)
QTimer::singleShot(0, this, SLOT(flash()));
}
}
// no break here - otherwise we have to duplicate the code below...
}
case eEventMessageRead: {
EventMessage *em = static_cast<EventMessage*>(e);
Message *msg = em->msg();
UserWnd *userWnd = wnd(msg->contact());
if (userWnd){
bool bBold = false;
for (list<msg_id>::iterator it = CorePlugin::m_plugin->unread.begin(); it != CorePlugin::m_plugin->unread.end(); ++it){
if ((*it).contact != msg->contact())
continue;
bBold = true;
break;
}
m_tabBar->setBold(msg->contact(), bBold);
}
break;
}
case eEventActiveContact: {
EventActiveContact *eac = static_cast<EventActiveContact*>(e);
if (!isActiveWindow())
return false;
UserWnd *userWnd = m_tabBar->currentWnd();
if (userWnd) {
eac->setContactID(userWnd->id());
return true;
}
break;
}
case eEventContact: {
EventContact *ec = static_cast<EventContact*>(e);
Contact *contact = ec->contact();
UserWnd *userWnd = wnd(contact->id());
if(!userWnd)
break;
switch(ec->action()) {
case EventContact::eDeleted: {
removeUserWnd(userWnd);
break;
}
case EventContact::eChanged: {
if (contact->getIgnore()){
removeUserWnd(userWnd);
break;
}
m_tabBar->changeTab(contact->id());
contactChanged(contact);
break;
}
case EventContact::eStatus: {
unsigned style = 0;
QString wrkIcons;
QString statusIcon;
contact->contactInfo(style, statusIcon, &wrkIcons);
bool bTyping = false;
while (!wrkIcons.isEmpty()){
if (getToken(wrkIcons, ',') == "typing"){
bTyping = true;
break;
}
}
if (userWnd->m_bTyping != bTyping){
userWnd->m_bTyping = bTyping;
if (bTyping){
userWnd->setStatus(g_i18n("%1 is typing", contact) .arg(contact->getName()));
}else{
userWnd->setStatus("");
}
userWnd = m_tabBar->currentWnd();
if (userWnd && (contact->id() == userWnd->id()))
m_status->message(userWnd->status());
}
}
//.........这里部分代码省略.........
开发者ID:BackupTheBerlios,项目名称:sim-im-svn,代码行数:101,代码来源:container.cpp
示例3: contactSelected
void Container::contactSelected(int)
{
UserWnd *userWnd = m_tabBar ? m_tabBar->currentWnd() : 0;
if (userWnd == NULL)
return;
m_wnds->raiseWidget(userWnd);
userWnd->setFocus();
m_bar->setParam((void*)userWnd->id());
Command cmd;
cmd->id = CmdContainerContact;
cmd->text_wrk = userWnd->getName();
cmd->icon = userWnd->getIcon();
cmd->param = (void*)(userWnd->id());
cmd->popup_id = MenuContainerContact;
cmd->flags = BTN_PICT;
EventCommandChange e(cmd);
e.setNoProcess();
m_bar->processEvent(&e);
setMessageType(userWnd->type());
setIcon(Pict(cmd->icon));
setCaption(userWnd->getLongName());
m_bar->checkState();
m_status->message(userWnd->status());
if (isActiveWindow())
userWnd->markAsRead();
if (CorePlugin::m_plugin->getShowAvatarInContainer()) {
Client *client = NULL;
unsigned j=0;
QImage img;
while (j < getContacts()->nClients()){
client = getContacts()->getClient(j++);
img = client->userPicture(userWnd->id());
if (!img.isNull())
break;
}
if (!img.isNull()) {
m_avatar_label.setPixmap(img);
if (!m_avatar_label.isVisible())
m_avatar_window.show();
} else {
m_avatar_label.clear();
m_avatar_window.hide();
}
} else {
m_avatar_label.clear();
m_avatar_window.hide();
}
}
开发者ID:BackupTheBerlios,项目名称:sim-im-svn,代码行数:50,代码来源:container.cpp
注:本文中的UserWnd类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论