本文整理汇总了C++中MessageDef::create方法的典型用法代码示例。如果您正苦于以下问题:C++ MessageDef::create方法的具体用法?C++ MessageDef::create怎么用?C++ MessageDef::create使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MessageDef
的用法示例。
在下文中一共展示了MessageDef::create方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setType
bool MsgEdit::setType(unsigned type)
{
CommandDef *def;
def = CorePlugin::m_plugin->messageTypes.find(type);
if (def == NULL)
return false;
MessageDef *mdef = (MessageDef*)(def->param);
if (mdef->flags & MESSAGE_SILENT)
return false;
if (mdef->create == NULL)
return false;
Message *msg = mdef->create(NULL);
if (msg == NULL)
return false;
m_userWnd->setMessage(&msg);
delete msg;
return true;
}
示例2: QSplitter
UserWnd::UserWnd(unsigned id, const char *cfg, bool bReceived)
: QSplitter(Horizontal, NULL)
{
load_data(userWndData, &data, cfg);
m_id = id;
m_bResize = false;
m_bClosed = false;
m_bTyping = false;
setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
m_hSplitter = new QSplitter(Horizontal, this);
m_splitter = new QSplitter(Vertical, m_hSplitter);
m_list = NULL;
m_view = NULL;
if (cfg == NULL)
memcpy(data.editBar, CorePlugin::m_plugin->data.editBar, sizeof(data.editBar));
m_bBarChanged = true;
if (CorePlugin::m_plugin->getContainerMode())
bReceived = false;
m_edit = new MsgEdit(m_splitter, this, bReceived);
restoreToolbar(m_edit->m_bar, data.editBar);
m_edit->m_bar->show();
m_bBarChanged = false;
connect(m_edit, SIGNAL(toolBarPositionChanged(QToolBar*)), this, SLOT(toolbarChanged(QToolBar*)));
connect(CorePlugin::m_plugin, SIGNAL(modeChanged()), this, SLOT(modeChanged()));
connect(m_edit, SIGNAL(heightChanged(int)), this, SLOT(editHeightChanged(int)));
modeChanged();
if (data.MessageType == 0)
return;
CommandDef *cmd = CorePlugin::m_plugin->messageTypes.find(data.MessageType);
if (cmd == NULL)
return;
MessageDef *def = (MessageDef*)(cmd->param);
Message *msg = def->create(NULL);
setMessage(msg);
delete msg;
}
示例3: e
void *MsgEdit::processEvent(Event *e)
{
if ((e->type() == EventContactChanged) && !m_bReceived){
Command cmd;
cmd->id = m_type;
cmd->menu_id = MenuMessage;
cmd->param = (void*)(m_userWnd->m_id);
Event e(EventCheckState, cmd);
if (e.process())
return NULL;
Event eMenu(EventGetMenuDef, (void*)MenuMessage);
CommandsDef *cmdsMsg = (CommandsDef*)(eMenu.process());
CommandsList itc(*cmdsMsg, true);
CommandDef *c;
while ((c = ++itc) != NULL){
c->param = (void*)(m_userWnd->m_id);
Event eCheck(EventCheckState, c);
if (!eCheck.process())
continue;
CommandDef *def;
def = CorePlugin::m_plugin->messageTypes.find(c->id);
if (def == NULL)
continue;
MessageDef *mdef = (MessageDef*)(def->param);
if (mdef->flags & MESSAGE_SILENT)
continue;
if (mdef->create == NULL)
continue;
Message *msg = mdef->create(NULL);
if (msg == NULL)
continue;
setMessage(msg, false);
delete msg;
break;
}
return NULL;
}
if (e->type() == EventMessageReceived){
Message *msg = (Message*)(e->param());
if (msg->getFlags() & MESSAGE_NOVIEW)
return NULL;
if ((msg->contact() == m_userWnd->id()) && (msg->type() != MessageStatus)){
if (CorePlugin::m_plugin->getContainerMode()){
bool bSetFocus = false;
if (topLevelWidget() && topLevelWidget()->inherits("Container")){
Container *container = static_cast<Container*>(topLevelWidget());
if (container->wnd() == m_userWnd)
bSetFocus = true;
}
setMessage(msg, bSetFocus);
}else{
if (m_edit->isReadOnly())
QTimer::singleShot(0, this, SLOT(setupNext()));
}
}
}
if (e->type() == EventRealSendMessage){
MsgSend *s = (MsgSend*)(e->param());
if (s->edit == this){
sendMessage(s->msg);
return e->param();
}
}
if (e->type() == EventCheckState){
CommandDef *cmd = (CommandDef*)(e->param());
if ((cmd->param == this) && (cmd->id == CmdTranslit)){
Contact *contact = getContacts()->contact(m_userWnd->id());
if (contact){
TranslitUserData *data = (TranslitUserData*)(contact->getUserData(CorePlugin::m_plugin->translit_data_id));
if (data){
cmd->flags &= ~COMMAND_CHECKED;
if (data->Translit)
cmd->flags |= COMMAND_CHECKED;
}
}
return NULL;
}
if ((cmd->menu_id != MenuTextEdit) || (cmd->param != this))
return NULL;
cmd->flags &= ~(COMMAND_CHECKED | COMMAND_DISABLED);
switch (cmd->id){
case CmdUndo:
if (m_edit->isReadOnly())
return NULL;
if (!m_edit->isUndoAvailable())
cmd->flags |= COMMAND_DISABLED;
return e->param();
case CmdRedo:
if (m_edit->isReadOnly())
return NULL;
if (!m_edit->isRedoAvailable())
cmd->flags |= COMMAND_DISABLED;
return e->param();
case CmdCut:
if (m_edit->isReadOnly())
return NULL;
case CmdCopy:
if (!m_edit->hasSelectedText())
cmd->flags |= COMMAND_DISABLED;
return e->param();
//.........这里部分代码省略.........