//----------------------------------------------------------------------------- // postBuild() //----------------------------------------------------------------------------- BOOL LLFloaterNameDesc::postBuild() { LLRect r; std::string asset_name = mFilename; LLStringUtil::replaceNonstandardASCII( asset_name, '?' ); LLStringUtil::replaceChar(asset_name, '|', '?'); LLStringUtil::stripNonprintable(asset_name); LLStringUtil::trim(asset_name); asset_name = gDirUtilp->getBaseFileName(asset_name, true); // no extsntion setTitle(mFilename); centerWithin(gViewerWindow->getRootView()->getRect()); S32 line_width = getRect().getWidth() - 2 * PREVIEW_HPAD; S32 y = getRect().getHeight() - PREVIEW_LINE_HEIGHT; r.setLeftTopAndSize( PREVIEW_HPAD, y, line_width, PREVIEW_LINE_HEIGHT ); y -= PREVIEW_LINE_HEIGHT; r.setLeftTopAndSize( PREVIEW_HPAD, y, line_width, PREVIEW_LINE_HEIGHT ); getChild<LLUICtrl>("name_form")->setCommitCallback(boost::bind(&LLFloaterNameDesc::doCommit, this)); getChild<LLUICtrl>("name_form")->setValue(LLSD(asset_name)); LLLineEditor *NameEditor = getChild<LLLineEditor>("name_form"); if (NameEditor) { NameEditor->setMaxTextLength(DB_INV_ITEM_NAME_STR_LEN); NameEditor->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe); } y -= llfloor(PREVIEW_LINE_HEIGHT * 1.2f); y -= PREVIEW_LINE_HEIGHT; r.setLeftTopAndSize( PREVIEW_HPAD, y, line_width, PREVIEW_LINE_HEIGHT ); getChild<LLUICtrl>("description_form")->setCommitCallback(boost::bind(&LLFloaterNameDesc::doCommit, this)); LLLineEditor *DescEditor = getChild<LLLineEditor>("description_form"); if (DescEditor) { DescEditor->setMaxTextLength(DB_INV_ITEM_DESC_STR_LEN); DescEditor->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe); } y -= llfloor(PREVIEW_LINE_HEIGHT * 1.2f); // Cancel button getChild<LLUICtrl>("cancel_btn")->setCommitCallback(boost::bind(&LLFloaterNameDesc::onBtnCancel, this)); getChild<LLUICtrl>("ok_btn")->setLabelArg("[AMOUNT]", llformat("%d", LLGlobalEconomy::Singleton::getInstance()->getPriceUpload() )); std::string type_currency = LLGridManager::getInstance()->getCurrency(); getChild<LLUICtrl>("ok_btn")->setLabelArg(std::string("[CUR]"), type_currency); setDefaultBtn("ok_btn"); return TRUE; }
void LLUploadDialog::setMessage( const std::string& msg) { const LLFontGL* font = LLFontGL::getFontSansSerif(); const S32 VPAD = 16; const S32 HPAD = 25; // Make the text boxes a little wider than the text const S32 TEXT_PAD = 8; // Split message into lines, separated by '\n' S32 max_msg_width = 0; std::list<std::string> msg_lines; S32 size = msg.size() + 1; std::vector<char> temp_msg(size); // non-const copy to make strtok happy strcpy( &temp_msg[0], msg.c_str()); char* token = strtok( &temp_msg[0], "\n" ); while( token ) { std::string tokstr(token); S32 cur_width = S32(font->getWidth(tokstr) + 0.99f) + TEXT_PAD; max_msg_width = llmax( max_msg_width, cur_width ); msg_lines.push_back( tokstr ); token = strtok( NULL, "\n" ); } S32 line_height = S32( font->getLineHeight() + 0.99f ); S32 dialog_width = max_msg_width + 2 * HPAD; S32 dialog_height = line_height * msg_lines.size() + 2 * VPAD; reshape( dialog_width, dialog_height, FALSE ); // Message S32 msg_x = (getRect().getWidth() - max_msg_width) / 2; S32 msg_y = getRect().getHeight() - VPAD - line_height; int line_num; for (line_num=0; line_num<16; ++line_num) { mLabelBox[line_num]->setVisible(FALSE); } line_num = 0; for (std::list<std::string>::iterator iter = msg_lines.begin(); iter != msg_lines.end(); ++iter) { std::string& cur_line = *iter; LLRect msg_rect; msg_rect.setOriginAndSize( msg_x, msg_y, max_msg_width, line_height ); mLabelBox[line_num]->setRect(msg_rect); mLabelBox[line_num]->setText(cur_line); mLabelBox[line_num]->setColor( LLUIColorTable::instance().getColor( "LabelTextColor" ) ); mLabelBox[line_num]->setVisible(TRUE); msg_y -= line_height; ++line_num; } centerWithin(gViewerWindow->getRootView()->getRect()); }
void LLUploadDialog::setMessage( const std::string& msg) { const LLFontGL* font = LLResMgr::getInstance()->getRes( LLFONT_SANSSERIF ); const S32 VPAD = 16; const S32 HPAD = 25; // Make the text boxes a little wider than the text const S32 TEXT_PAD = 8; // Split message into lines, separated by '\n' S32 max_msg_width = 0; std::list<std::string> msg_lines; S32 size = msg.size() + 1;// + strlen("Uploading...\n\n"); char* temp_msg = new char[size]; //strcpy(temp_msg,"Uploading...\n\n"); if (temp_msg == NULL) { llerrs << "Memory Allocation Failed" << llendl; return; } strcpy( temp_msg, msg.c_str()); /* Flawfinder: ignore */ char* token = strtok( temp_msg, "\n" ); while( token ) { std::string tokstr(token); S32 cur_width = S32(font->getWidth(tokstr) + 0.99f) + TEXT_PAD; max_msg_width = llmax( max_msg_width, cur_width ); msg_lines.push_back( tokstr ); token = strtok( NULL, "\n" ); } delete[] temp_msg; S32 line_height = S32( font->getLineHeight() + 0.99f ); S32 dialog_width = max_msg_width + 2 * HPAD; S32 dialog_height = line_height * msg_lines.size() + 2 * VPAD; reshape( dialog_width, dialog_height, FALSE ); // Message S32 msg_x = (getRect().getWidth() - max_msg_width) / 2; S32 msg_y = getRect().getHeight() - VPAD - line_height; int line_num; for (line_num=0; line_num<16; ++line_num) { mLabelBox[line_num]->setVisible(FALSE); } line_num = 0; for (std::list<std::string>::iterator iter = msg_lines.begin(); iter != msg_lines.end(); ++iter) { std::string& cur_line = *iter; LLRect msg_rect; msg_rect.setOriginAndSize( msg_x, msg_y, max_msg_width, line_height ); mLabelBox[line_num]->setRect(msg_rect); mLabelBox[line_num]->setText(cur_line); mLabelBox[line_num]->setColor( gColors.getColor( "LabelTextColor" ) ); mLabelBox[line_num]->setVisible(TRUE); msg_y -= line_height; ++line_num; } centerWithin(gViewerWindow->getRootView()->getRect()); }
void LLModalDialog::centerOnScreen() { LLVector2 window_size = LLUI::getWindowSize(); centerWithin(LLRect(0, 0, llround(window_size.mV[VX]), llround(window_size.mV[VY]))); }
//----------------------------------------------------------------------------- // postBuild() //----------------------------------------------------------------------------- BOOL LLFloaterNameDesc::postBuild() { LLRect r; std::string asset_name = mFilename; LLStringUtil::replaceNonstandardASCII( asset_name, '?' ); LLStringUtil::replaceChar(asset_name, '|', '?'); LLStringUtil::stripNonprintable(asset_name); LLStringUtil::trim(asset_name); std::string exten = gDirUtilp->getExtension(asset_name); if (exten == "wav") { mIsAudio = TRUE; } asset_name = gDirUtilp->getBaseFileName(asset_name, true); // no extsntion setTitle(mFilename); centerWithin(gViewerWindow->getRootView()->getRect()); S32 line_width = getRect().getWidth() - 2 * PREVIEW_HPAD; S32 y = getRect().getHeight() - PREVIEW_LINE_HEIGHT; r.setLeftTopAndSize( PREVIEW_HPAD, y, line_width, PREVIEW_LINE_HEIGHT ); y -= PREVIEW_LINE_HEIGHT; r.setLeftTopAndSize( PREVIEW_HPAD, y, line_width, PREVIEW_LINE_HEIGHT ); childSetCommitCallback("name_form", doCommit, this); childSetValue("name_form", LLSD(asset_name)); LLLineEditor *NameEditor = getChild<LLLineEditor>("name_form"); if (NameEditor) { NameEditor->setMaxTextLength(DB_INV_ITEM_NAME_STR_LEN); NameEditor->setPrevalidate(&LLLineEditor::prevalidatePrintableNotPipe); } y -= llfloor(PREVIEW_LINE_HEIGHT * 1.2f); y -= PREVIEW_LINE_HEIGHT; r.setLeftTopAndSize( PREVIEW_HPAD, y, line_width, PREVIEW_LINE_HEIGHT ); childSetCommitCallback("description_form", doCommit, this); LLLineEditor *DescEditor = getChild<LLLineEditor>("description_form"); if (DescEditor) { DescEditor->setMaxTextLength(DB_INV_ITEM_DESC_STR_LEN); DescEditor->setPrevalidate(&LLLineEditor::prevalidatePrintableNotPipe); } y -= llfloor(PREVIEW_LINE_HEIGHT * 1.2f); // Cancel button childSetAction("cancel_btn", onBtnCancel, this); // OK button childSetLabelArg("ok_btn", "[UPLOADFEE]", gHippoGridManager->getConnectedGrid()->getUploadFee()); childSetAction("ok_btn", onBtnOK, this); setDefaultBtn("ok_btn"); return TRUE; }