本文整理汇总了C++中XAP_Frame::getDialogFactory方法的典型用法代码示例。如果您正苦于以下问题:C++ XAP_Frame::getDialogFactory方法的具体用法?C++ XAP_Frame::getDialogFactory怎么用?C++ XAP_Frame::getDialogFactory使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XAP_Frame
的用法示例。
在下文中一共展示了XAP_Frame::getDialogFactory方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _getTranslationCode
// TODO Can we add a feature to the language dialog to restrict the
// languages it offers? de en es fr it no pt
//
static bool _getTranslationCode(FV_View * pView, std::string & langCode)
{
XAP_Frame * pFrame = static_cast <XAP_Frame *>(pView->getParentData());
UT_return_val_if_fail(pFrame,false);
bool bRet = false;
pFrame->raise();
XAP_Dialog_Id id = XAP_DIALOG_ID_LANGUAGE;
XAP_DialogFactory * pDialogFactory = static_cast<XAP_DialogFactory *>(pFrame->getDialogFactory());
XAP_Dialog_Language * pDialog = static_cast<XAP_Dialog_Language *>(pDialogFactory->requestDialog(id));
UT_return_val_if_fail(pDialog, false);
std::string code;
PP_PropertyVector props_in;
if (pView->getCharFormat(props_in))
{
code = PP_getAttribute("lang", props_in);
if (code.size() >= 2)
{
code = code.substr(0, 2);
code += '_';
}
pDialog->setLanguageProperty(PP_getAttribute("lang", props_in).c_str());
}
// run the dialog
pDialog->runModal(pFrame);
// extract what they did
bool bOK = (pDialog->getAnswer() == XAP_Dialog_Language::a_OK);
if (bOK)
{
const gchar * s;
if (pDialog->getChangedLangProperty(&s))
{
std::string changedLang = s;
if (changedLang.size() >= 2)
{
changedLang = changedLang.substr(0, 2);
code += changedLang;
langCode = code;
bRet = true;
// Languages: de en es fr it no pt
// English -> XXX
if (langCode == "en_de")
langCode = "English/German";
else if (langCode == "en_es")
langCode = "English/Spanish";
else if (langCode == "en_fr")
langCode = "English/French";
else if (langCode == "en_it")
langCode = "English/Italian";
// This combo is not supported
// else if (langCode == "en_no")
// langCode = "English/Norwegian";
else if (langCode == "en_pt")
langCode = "English/Portuguese";
// XXX -> English
else if (langCode == "de_en")
langCode = "German/English";
else if (langCode == "es_en")
langCode = "Spanish/English";
else if (langCode == "fr_en")
langCode = "French/English";
else if (langCode == "it_en")
langCode = "Italian/English";
else if (langCode == "no_en")
langCode = "Norwegian/English";
else if (langCode == "pt_en")
langCode = "Portuguese/English";
else
langCode = "English/German";
// bRet = false;
}
}
}
pDialogFactory->releaseDialog(pDialog);
return bRet;
}
示例2: _getTranslationCode
static bool _getTranslationCode (FV_View * pView, UT_String & langCode)
{
XAP_Frame * pFrame = static_cast<XAP_Frame *> (pView->getParentData());
UT_return_val_if_fail(pFrame,false);
bool bRet = false;
pFrame->raise();
XAP_Dialog_Id id = XAP_DIALOG_ID_LANGUAGE;
XAP_DialogFactory * pDialogFactory
= static_cast<XAP_DialogFactory *>(pFrame->getDialogFactory());
XAP_Dialog_Language * pDialog
= static_cast<XAP_Dialog_Language *>(pDialogFactory->requestDialog(id));
UT_return_val_if_fail(pDialog,false);
UT_String code ("en-US");
const gchar ** props_in = NULL;
if (pView->getCharFormat(&props_in))
{
const gchar * xml_code = UT_getAttribute("lang", props_in);
if ( xml_code )
{
code = xml_code ;
if ( code.size() >= 2 )
{
code = code.substr (0, 2);
code += '_';
}
}
pDialog->setLanguageProperty(UT_getAttribute("lang", props_in));
FREEP(props_in);
}
// run the dialog
pDialog->runModal(pFrame);
// extract what they did
bool bOK = (pDialog->getAnswer() == XAP_Dialog_Language::a_OK);
if (bOK)
{
const gchar * s;
if (pDialog->getChangedLangProperty(&s))
{
UT_String changedLang = s;
if (changedLang.size() >= 2)
{
code += changedLang.substr(0, 2);
langCode = code;
bRet = true;
}
}
}
pDialogFactory->releaseDialog(pDialog);
return bRet;
}