summaryrefslogtreecommitdiff
path: root/xmlsecurity/source/dialogs
diff options
context:
space:
mode:
Diffstat (limited to 'xmlsecurity/source/dialogs')
-rw-r--r--xmlsecurity/source/dialogs/certificatechooser.cxx20
-rw-r--r--xmlsecurity/source/dialogs/certificateviewer.cxx54
-rw-r--r--xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx42
-rw-r--r--xmlsecurity/source/dialogs/macrosecurity.cxx60
4 files changed, 88 insertions, 88 deletions
diff --git a/xmlsecurity/source/dialogs/certificatechooser.cxx b/xmlsecurity/source/dialogs/certificatechooser.cxx
index c95ad1947d0b..0575ae758cfe 100644
--- a/xmlsecurity/source/dialogs/certificatechooser.cxx
+++ b/xmlsecurity/source/dialogs/certificatechooser.cxx
@@ -41,17 +41,17 @@ using namespace css;
CertificateChooser::CertificateChooser(weld::Window* _pParent,
std::vector< css::uno::Reference< css::xml::crypto::XXMLSecurityContext > > && rxSecurityContexts,
CertificateChooserUserAction eAction)
- : GenericDialogController(_pParent, "xmlsec/ui/selectcertificatedialog.ui", "SelectCertificateDialog")
+ : GenericDialogController(_pParent, u"xmlsec/ui/selectcertificatedialog.ui"_ustr, u"SelectCertificateDialog"_ustr)
, meAction(eAction)
- , m_xFTSign(m_xBuilder->weld_label("sign"))
- , m_xFTEncrypt(m_xBuilder->weld_label("encrypt"))
- , m_xCertLB(m_xBuilder->weld_tree_view("signatures"))
- , m_xViewBtn(m_xBuilder->weld_button("viewcert"))
- , m_xOKBtn(m_xBuilder->weld_button("ok"))
- , m_xFTDescription(m_xBuilder->weld_label("description-label"))
- , m_xDescriptionED(m_xBuilder->weld_entry("description"))
- , m_xSearchBox(m_xBuilder->weld_entry("searchbox"))
- , m_xReloadBtn(m_xBuilder->weld_button("reloadcert"))
+ , m_xFTSign(m_xBuilder->weld_label(u"sign"_ustr))
+ , m_xFTEncrypt(m_xBuilder->weld_label(u"encrypt"_ustr))
+ , m_xCertLB(m_xBuilder->weld_tree_view(u"signatures"_ustr))
+ , m_xViewBtn(m_xBuilder->weld_button(u"viewcert"_ustr))
+ , m_xOKBtn(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xFTDescription(m_xBuilder->weld_label(u"description-label"_ustr))
+ , m_xDescriptionED(m_xBuilder->weld_entry(u"description"_ustr))
+ , m_xSearchBox(m_xBuilder->weld_entry(u"searchbox"_ustr))
+ , m_xReloadBtn(m_xBuilder->weld_button(u"reloadcert"_ustr))
{
auto nControlWidth = m_xCertLB->get_approximate_digit_width() * 105;
m_xCertLB->set_size_request(nControlWidth, m_xCertLB->get_height_rows(12));
diff --git a/xmlsecurity/source/dialogs/certificateviewer.cxx b/xmlsecurity/source/dialogs/certificateviewer.cxx
index 62de673c00e4..5d197490bac1 100644
--- a/xmlsecurity/source/dialogs/certificateviewer.cxx
+++ b/xmlsecurity/source/dialogs/certificateviewer.cxx
@@ -49,23 +49,23 @@ CertificateViewer::CertificateViewer(weld::Window* _pParent,
const css::uno::Reference< css::xml::crypto::XSecurityEnvironment >& _rxSecurityEnvironment,
const css::uno::Reference< css::security::XCertificate >& _rXCert, bool bCheckForPrivateKey,
CertificateChooser* pParentChooser)
- : GenericDialogController(_pParent, "xmlsec/ui/viewcertdialog.ui", "ViewCertDialog")
+ : GenericDialogController(_pParent, u"xmlsec/ui/viewcertdialog.ui"_ustr, u"ViewCertDialog"_ustr)
, mbCheckForPrivateKey(bCheckForPrivateKey)
, mpParentChooser(pParentChooser)
- , mxTabCtrl(m_xBuilder->weld_notebook("tabcontrol"))
+ , mxTabCtrl(m_xBuilder->weld_notebook(u"tabcontrol"_ustr))
{
mxTabCtrl->connect_enter_page(LINK(this, CertificateViewer, ActivatePageHdl));
mxSecurityEnvironment = _rxSecurityEnvironment;
mxCert = _rXCert;
- mxGeneralPage.reset(new CertificateViewerGeneralTP(mxTabCtrl->get_page("general"), this));
- mxDetailsPage.reset(new CertificateViewerDetailsTP(mxTabCtrl->get_page("details"), this));
+ mxGeneralPage.reset(new CertificateViewerGeneralTP(mxTabCtrl->get_page(u"general"_ustr), this));
+ mxDetailsPage.reset(new CertificateViewerDetailsTP(mxTabCtrl->get_page(u"details"_ustr), this));
if (!mxSecurityEnvironment->buildCertificatePath(mxCert).hasElements())
- mxTabCtrl->remove_page("path");
+ mxTabCtrl->remove_page(u"path"_ustr);
else
- mxPathId.reset(new CertificateViewerCertPathTP(mxTabCtrl->get_page("path"), this));
- mxTabCtrl->set_current_page("general");
+ mxPathId.reset(new CertificateViewerCertPathTP(mxTabCtrl->get_page(u"path"_ustr), this));
+ mxTabCtrl->set_current_page(u"general"_ustr);
}
IMPL_LINK(CertificateViewer, ActivatePageHdl, const OUString&, rPage, void)
@@ -83,17 +83,17 @@ CertificateViewerTP::CertificateViewerTP(weld::Container* pParent, const OUStrin
}
CertificateViewerGeneralTP::CertificateViewerGeneralTP(weld::Container* pParent, CertificateViewer* pDlg)
- : CertificateViewerTP(pParent, "xmlsec/ui/certgeneral.ui", "CertGeneral", pDlg)
- , m_xCertImg(mxBuilder->weld_image("certimage"))
- , m_xHintNotTrustedFT(mxBuilder->weld_label("hintnotrust"))
- , m_xIssuedToLabelFT(mxBuilder->weld_label("issued_to"))
- , m_xIssuedToFT(mxBuilder->weld_label("issued_to_value"))
- , m_xIssuedByLabelFT(mxBuilder->weld_label("issued_by"))
- , m_xIssuedByFT(mxBuilder->weld_label("issued_by_value"))
- , m_xValidFromDateFT(mxBuilder->weld_label("valid_from_value"))
- , m_xValidToDateFT(mxBuilder->weld_label("valid_to_value"))
- , m_xKeyImg(mxBuilder->weld_image("keyimage"))
- , m_xHintCorrespPrivKeyFT(mxBuilder->weld_label("privatekey"))
+ : CertificateViewerTP(pParent, u"xmlsec/ui/certgeneral.ui"_ustr, u"CertGeneral"_ustr, pDlg)
+ , m_xCertImg(mxBuilder->weld_image(u"certimage"_ustr))
+ , m_xHintNotTrustedFT(mxBuilder->weld_label(u"hintnotrust"_ustr))
+ , m_xIssuedToLabelFT(mxBuilder->weld_label(u"issued_to"_ustr))
+ , m_xIssuedToFT(mxBuilder->weld_label(u"issued_to_value"_ustr))
+ , m_xIssuedByLabelFT(mxBuilder->weld_label(u"issued_by"_ustr))
+ , m_xIssuedByFT(mxBuilder->weld_label(u"issued_by_value"_ustr))
+ , m_xValidFromDateFT(mxBuilder->weld_label(u"valid_from_value"_ustr))
+ , m_xValidToDateFT(mxBuilder->weld_label(u"valid_to_value"_ustr))
+ , m_xKeyImg(mxBuilder->weld_image(u"keyimage"_ustr))
+ , m_xHintCorrespPrivKeyFT(mxBuilder->weld_label(u"privatekey"_ustr))
{
//Verify the certificate
sal_Int32 certStatus = mpDlg->mxSecurityEnvironment->verifyCertificate(mpDlg->mxCert,
@@ -157,9 +157,9 @@ void CertificateViewerDetailsTP::InsertElement(const OUString& rField, const OUS
}
CertificateViewerDetailsTP::CertificateViewerDetailsTP(weld::Container* pParent, CertificateViewer* pDlg)
- : CertificateViewerTP(pParent, "xmlsec/ui/certdetails.ui", "CertDetails", pDlg)
- , m_xElementsLB(mxBuilder->weld_tree_view("tablecontainer"))
- , m_xValueDetails(mxBuilder->weld_text_view("valuedetails"))
+ : CertificateViewerTP(pParent, u"xmlsec/ui/certdetails.ui"_ustr, u"CertDetails"_ustr, pDlg)
+ , m_xElementsLB(mxBuilder->weld_tree_view(u"tablecontainer"_ustr))
+ , m_xValueDetails(mxBuilder->weld_text_view(u"valuedetails"_ustr))
{
const int nWidth = m_xElementsLB->get_approximate_digit_width() * 60;
const int nHeight = m_xElementsLB->get_height_rows(8);
@@ -252,15 +252,15 @@ IMPL_LINK_NOARG(CertificateViewerDetailsTP, ElementSelectHdl, weld::TreeView&, v
}
CertificateViewerCertPathTP::CertificateViewerCertPathTP(weld::Container* pParent, CertificateViewer* pDlg)
- : CertificateViewerTP(pParent, "xmlsec/ui/certpage.ui", "CertPage", pDlg)
+ : CertificateViewerTP(pParent, u"xmlsec/ui/certpage.ui"_ustr, u"CertPage"_ustr, pDlg)
, mpParent(pDlg)
, mbFirstActivateDone(false)
- , mxCertPathLB(mxBuilder->weld_tree_view("signatures"))
+ , mxCertPathLB(mxBuilder->weld_tree_view(u"signatures"_ustr))
, mxScratchIter(mxCertPathLB->make_iterator())
- , mxViewCertPB(mxBuilder->weld_button("viewcert"))
- , mxCertStatusML(mxBuilder->weld_text_view("status"))
- , mxCertOK(mxBuilder->weld_label("certok"))
- , mxCertNotValidated(mxBuilder->weld_label("certnotok"))
+ , mxViewCertPB(mxBuilder->weld_button(u"viewcert"_ustr))
+ , mxCertStatusML(mxBuilder->weld_text_view(u"status"_ustr))
+ , mxCertOK(mxBuilder->weld_label(u"certok"_ustr))
+ , mxCertNotValidated(mxBuilder->weld_label(u"certnotok"_ustr))
{
const int nWidth = mxCertPathLB->get_approximate_digit_width() * 60;
const int nHeight = mxCertPathLB->get_height_rows(6);
diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
index cfe6845cee34..da396d7ba0a7 100644
--- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
+++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
@@ -193,28 +193,28 @@ DigitalSignaturesDialog::DigitalSignaturesDialog(
weld::Window* pParent,
const uno::Reference< uno::XComponentContext >& rxCtx, DocumentSignatureMode eMode,
bool bReadOnly, OUString sODFVersion, bool bHasDocumentSignature)
- : GenericDialogController(pParent, "xmlsec/ui/digitalsignaturesdialog.ui", "DigitalSignaturesDialog")
+ : GenericDialogController(pParent, u"xmlsec/ui/digitalsignaturesdialog.ui"_ustr, u"DigitalSignaturesDialog"_ustr)
, maSignatureManager(rxCtx, eMode)
, m_sODFVersion (std::move(sODFVersion))
, m_bHasDocumentSignature(bHasDocumentSignature)
, m_bWarningShowSignMacro(false)
- , m_xHintDocFT(m_xBuilder->weld_label("dochint"))
- , m_xHintBasicFT(m_xBuilder->weld_label("macrohint"))
- , m_xHintPackageFT(m_xBuilder->weld_label("packagehint"))
- , m_xSignaturesLB(m_xBuilder->weld_tree_view("signatures"))
- , m_xSigsValidImg(m_xBuilder->weld_image("validimg"))
- , m_xSigsValidFI(m_xBuilder->weld_label("validft"))
- , m_xSigsInvalidImg(m_xBuilder->weld_image("invalidimg"))
- , m_xSigsInvalidFI(m_xBuilder->weld_label("invalidft"))
- , m_xSigsNotvalidatedImg(m_xBuilder->weld_image("notvalidatedimg"))
- , m_xSigsNotvalidatedFI(m_xBuilder->weld_label("notvalidatedft"))
- , m_xSigsOldSignatureImg(m_xBuilder->weld_image("oldsignatureimg"))
- , m_xSigsOldSignatureFI(m_xBuilder->weld_label("oldsignatureft"))
- , m_xViewBtn(m_xBuilder->weld_button("view"))
- , m_xAddBtn(m_xBuilder->weld_button("sign"))
- , m_xRemoveBtn(m_xBuilder->weld_button("remove"))
- , m_xStartCertMgrBtn(m_xBuilder->weld_button("start_certmanager"))
- , m_xCloseBtn(m_xBuilder->weld_button("close"))
+ , m_xHintDocFT(m_xBuilder->weld_label(u"dochint"_ustr))
+ , m_xHintBasicFT(m_xBuilder->weld_label(u"macrohint"_ustr))
+ , m_xHintPackageFT(m_xBuilder->weld_label(u"packagehint"_ustr))
+ , m_xSignaturesLB(m_xBuilder->weld_tree_view(u"signatures"_ustr))
+ , m_xSigsValidImg(m_xBuilder->weld_image(u"validimg"_ustr))
+ , m_xSigsValidFI(m_xBuilder->weld_label(u"validft"_ustr))
+ , m_xSigsInvalidImg(m_xBuilder->weld_image(u"invalidimg"_ustr))
+ , m_xSigsInvalidFI(m_xBuilder->weld_label(u"invalidft"_ustr))
+ , m_xSigsNotvalidatedImg(m_xBuilder->weld_image(u"notvalidatedimg"_ustr))
+ , m_xSigsNotvalidatedFI(m_xBuilder->weld_label(u"notvalidatedft"_ustr))
+ , m_xSigsOldSignatureImg(m_xBuilder->weld_image(u"oldsignatureimg"_ustr))
+ , m_xSigsOldSignatureFI(m_xBuilder->weld_label(u"oldsignatureft"_ustr))
+ , m_xViewBtn(m_xBuilder->weld_button(u"view"_ustr))
+ , m_xAddBtn(m_xBuilder->weld_button(u"sign"_ustr))
+ , m_xRemoveBtn(m_xBuilder->weld_button(u"remove"_ustr))
+ , m_xStartCertMgrBtn(m_xBuilder->weld_button(u"start_certmanager"_ustr))
+ , m_xCloseBtn(m_xBuilder->weld_button(u"close"_ustr))
{
auto nControlWidth = m_xSignaturesLB->get_approximate_digit_width() * 105;
m_xSignaturesLB->set_size_request(nControlWidth, m_xSignaturesLB->get_height_rows(10));
@@ -307,7 +307,7 @@ void DigitalSignaturesDialog::SetStorage( const css::uno::Reference < css::embed
}
// only ODF 1.1 wants to be non-XAdES (m_sODFVersion="1.0" for OOXML somehow?)
- m_bAdESCompliant = !rxStore->hasByName("META-INF") // it's a Zip storage
+ m_bAdESCompliant = !rxStore->hasByName(u"META-INF"_ustr) // it's a Zip storage
|| !DocumentSignatureHelper::isODFPre_1_2(m_sODFVersion);
maSignatureManager.setStore(rxStore);
@@ -324,7 +324,7 @@ bool DigitalSignaturesDialog::canAddRemove()
//FIXME: this func needs some cleanup, such as real split between
//'canAdd' and 'canRemove' case
uno::Reference<container::XNameAccess> xNameAccess = maSignatureManager.getStore();
- if (xNameAccess.is() && xNameAccess->hasByName("[Content_Types].xml"))
+ if (xNameAccess.is() && xNameAccess->hasByName(u"[Content_Types].xml"_ustr))
// It's always possible to append an OOXML signature.
return true;
@@ -789,7 +789,7 @@ uno::Reference<xml::crypto::XSecurityEnvironment> DigitalSignaturesDialog::getSe
case CertificateKind_X509:
return maSignatureManager.getSecurityEnvironment();
default:
- throw RuntimeException("Unknown certificate kind");
+ throw RuntimeException(u"Unknown certificate kind"_ustr);
}
}
diff --git a/xmlsecurity/source/dialogs/macrosecurity.cxx b/xmlsecurity/source/dialogs/macrosecurity.cxx
index 9ff7b4088bd7..03b078fcedae 100644
--- a/xmlsecurity/source/dialogs/macrosecurity.cxx
+++ b/xmlsecurity/source/dialogs/macrosecurity.cxx
@@ -55,18 +55,18 @@ IMPL_LINK_NOARG(MacroSecurity, OkBtnHdl, weld::Button&, void)
MacroSecurity::MacroSecurity(weld::Window* pParent,
css::uno::Reference<css::xml::crypto::XSecurityEnvironment> xSecurityEnvironment)
- : GenericDialogController(pParent, "xmlsec/ui/macrosecuritydialog.ui", "MacroSecurityDialog")
+ : GenericDialogController(pParent, u"xmlsec/ui/macrosecuritydialog.ui"_ustr, u"MacroSecurityDialog"_ustr)
, m_xSecurityEnvironment(std::move(xSecurityEnvironment))
- , m_xTabCtrl(m_xBuilder->weld_notebook("tabcontrol"))
- , m_xOkBtn(m_xBuilder->weld_button("ok"))
- , m_xResetBtn(m_xBuilder->weld_button("reset"))
+ , m_xTabCtrl(m_xBuilder->weld_notebook(u"tabcontrol"_ustr))
+ , m_xOkBtn(m_xBuilder->weld_button(u"ok"_ustr))
+ , m_xResetBtn(m_xBuilder->weld_button(u"reset"_ustr))
{
m_xTabCtrl->connect_enter_page(LINK(this, MacroSecurity, ActivatePageHdl));
- m_xLevelTP.reset(new MacroSecurityLevelTP(m_xTabCtrl->get_page("SecurityLevelPage"), this));
- m_xTrustSrcTP.reset(new MacroSecurityTrustedSourcesTP(m_xTabCtrl->get_page("SecurityTrustPage"), this));
+ m_xLevelTP.reset(new MacroSecurityLevelTP(m_xTabCtrl->get_page(u"SecurityLevelPage"_ustr), this));
+ m_xTrustSrcTP.reset(new MacroSecurityTrustedSourcesTP(m_xTabCtrl->get_page(u"SecurityTrustPage"_ustr), this));
- m_xTabCtrl->set_current_page("SecurityLevelPage");
+ m_xTabCtrl->set_current_page(u"SecurityLevelPage"_ustr);
m_xOkBtn->connect_clicked(LINK(this, MacroSecurity, OkBtnHdl));
}
@@ -95,18 +95,18 @@ MacroSecurityTP::~MacroSecurityTP()
}
MacroSecurityLevelTP::MacroSecurityLevelTP(weld::Container* pParent, MacroSecurity* pDlg)
- : MacroSecurityTP(pParent, "xmlsec/ui/securitylevelpage.ui", "SecurityLevelPage", pDlg)
- , m_xVeryHighRB(m_xBuilder->weld_radio_button("vhigh"))
- , m_xHighRB(m_xBuilder->weld_radio_button("high"))
- , m_xMediumRB(m_xBuilder->weld_radio_button("med"))
- , m_xLowRB(m_xBuilder->weld_radio_button("low"))
- , m_xVHighImg(m_xBuilder->weld_widget("vhighimg"))
- , m_xHighImg(m_xBuilder->weld_widget("highimg"))
- , m_xMedImg(m_xBuilder->weld_widget("medimg"))
- , m_xLowImg(m_xBuilder->weld_widget("lowimg"))
- , m_xWarningLb(m_xBuilder->weld_label("warningmsg"))
- , m_xWarningImg(m_xBuilder->weld_image("warningimg"))
- , m_xWarningBox(m_xBuilder->weld_box("warningbox"))
+ : MacroSecurityTP(pParent, u"xmlsec/ui/securitylevelpage.ui"_ustr, u"SecurityLevelPage"_ustr, pDlg)
+ , m_xVeryHighRB(m_xBuilder->weld_radio_button(u"vhigh"_ustr))
+ , m_xHighRB(m_xBuilder->weld_radio_button(u"high"_ustr))
+ , m_xMediumRB(m_xBuilder->weld_radio_button(u"med"_ustr))
+ , m_xLowRB(m_xBuilder->weld_radio_button(u"low"_ustr))
+ , m_xVHighImg(m_xBuilder->weld_widget(u"vhighimg"_ustr))
+ , m_xHighImg(m_xBuilder->weld_widget(u"highimg"_ustr))
+ , m_xMedImg(m_xBuilder->weld_widget(u"medimg"_ustr))
+ , m_xLowImg(m_xBuilder->weld_widget(u"lowimg"_ustr))
+ , m_xWarningLb(m_xBuilder->weld_label(u"warningmsg"_ustr))
+ , m_xWarningImg(m_xBuilder->weld_image(u"warningimg"_ustr))
+ , m_xWarningBox(m_xBuilder->weld_box(u"warningbox"_ustr))
{
m_xLowRB->connect_toggled( LINK( this, MacroSecurityLevelTP, RadioButtonHdl ) );
m_xMediumRB->connect_toggled( LINK( this, MacroSecurityLevelTP, RadioButtonHdl ) );
@@ -170,7 +170,7 @@ MacroSecurityLevelTP::MacroSecurityLevelTP(weld::Container* pParent, MacroSecuri
m_xLowRB->set_sensitive(false);
}
- SetWarningLabel("");
+ SetWarningLabel(u""_ustr);
// Use same font color as in InfobarType::WARNING
m_xWarningLb->set_font_color(Color(0x70, 0x43, 0x00));
m_xWarningImg->set_size_request(24, 24);
@@ -214,7 +214,7 @@ IMPL_LINK_NOARG(MacroSecurityLevelTP, RadioButtonHdl, weld::Toggleable&, void)
SetWarningLabel(XsResId(STR_RELOAD_FILE_WARNING));
else
{
- SetWarningLabel("");
+ SetWarningLabel(u""_ustr);
}
}
@@ -398,15 +398,15 @@ void MacroSecurityTrustedSourcesTP::FillCertLB(const bool bShowWarnings)
}
MacroSecurityTrustedSourcesTP::MacroSecurityTrustedSourcesTP(weld::Container* pParent, MacroSecurity* pDlg)
- : MacroSecurityTP(pParent, "xmlsec/ui/securitytrustpage.ui", "SecurityTrustPage", pDlg)
- , m_xTrustCertROFI(m_xBuilder->weld_image("lockcertimg"))
- , m_xTrustCertLB(m_xBuilder->weld_tree_view("certificates"))
- , m_xViewCertPB(m_xBuilder->weld_button("viewcert"))
- , m_xRemoveCertPB(m_xBuilder->weld_button("removecert"))
- , m_xTrustFileROFI(m_xBuilder->weld_image("lockfileimg"))
- , m_xTrustFileLocLB(m_xBuilder->weld_tree_view("locations"))
- , m_xAddLocPB(m_xBuilder->weld_button("addfile"))
- , m_xRemoveLocPB(m_xBuilder->weld_button("removefile"))
+ : MacroSecurityTP(pParent, u"xmlsec/ui/securitytrustpage.ui"_ustr, u"SecurityTrustPage"_ustr, pDlg)
+ , m_xTrustCertROFI(m_xBuilder->weld_image(u"lockcertimg"_ustr))
+ , m_xTrustCertLB(m_xBuilder->weld_tree_view(u"certificates"_ustr))
+ , m_xViewCertPB(m_xBuilder->weld_button(u"viewcert"_ustr))
+ , m_xRemoveCertPB(m_xBuilder->weld_button(u"removecert"_ustr))
+ , m_xTrustFileROFI(m_xBuilder->weld_image(u"lockfileimg"_ustr))
+ , m_xTrustFileLocLB(m_xBuilder->weld_tree_view(u"locations"_ustr))
+ , m_xAddLocPB(m_xBuilder->weld_button(u"addfile"_ustr))
+ , m_xRemoveLocPB(m_xBuilder->weld_button(u"removefile"_ustr))
{
auto nColWidth = m_xTrustCertLB->get_approximate_digit_width() * 12;
std::vector<int> aWidths