24#include <svx/svxids.hrc>
55#include <officecfg/Office/Common.hxx>
57#include <twolines.hrc>
63#include <osl/diagnose.h>
72 SID_ATTR_CHAR_FONT, SID_ATTR_CHAR_WEIGHT,
73 SID_ATTR_CHAR_FONTHEIGHT, SID_ATTR_CHAR_FONTHEIGHT,
74 SID_ATTR_CHAR_COLOR, SID_ATTR_CHAR_COLOR,
75 SID_ATTR_CHAR_LANGUAGE, SID_ATTR_CHAR_LANGUAGE,
76 SID_ATTR_CHAR_CJK_FONT, SID_ATTR_CHAR_CJK_WEIGHT,
77 SID_ATTR_CHAR_CTL_FONT, SID_ATTR_CHAR_CTL_WEIGHT
81 SID_ATTR_CHAR_SHADOWED, SID_ATTR_CHAR_UNDERLINE,
82 SID_ATTR_CHAR_COLOR, SID_ATTR_CHAR_COLOR,
83 SID_ATTR_CHAR_CASEMAP, SID_ATTR_CHAR_CASEMAP,
84 SID_ATTR_FLASH, SID_ATTR_FLASH,
85 SID_ATTR_CHAR_EMPHASISMARK, SID_ATTR_CHAR_EMPHASISMARK,
86 SID_ATTR_CHAR_RELIEF, SID_ATTR_CHAR_RELIEF,
87 SID_ATTR_CHAR_HIDDEN, SID_ATTR_CHAR_HIDDEN,
88 SID_ATTR_CHAR_OVERLINE, SID_ATTR_CHAR_OVERLINE
92 SID_ATTR_CHAR_KERNING, SID_ATTR_CHAR_KERNING,
93 SID_ATTR_CHAR_ESCAPEMENT, SID_ATTR_CHAR_ESCAPEMENT,
94 SID_ATTR_CHAR_AUTOKERN, SID_ATTR_CHAR_AUTOKERN,
95 SID_ATTR_CHAR_ROTATED, SID_ATTR_CHAR_SCALEWIDTH,
96 SID_ATTR_CHAR_WIDTH_FIT_TO_LINE, SID_ATTR_CHAR_WIDTH_FIT_TO_LINE
100 SID_ATTR_CHAR_TWO_LINES, SID_ATTR_CHAR_TWO_LINES
136 :
SfxTabPage(pPage, pController, rUIXMLDescription, rID, &rItemset)
137 , m_bPreviewBackgroundToCharacter( false )
152 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_SCALEWIDTH );
191 :
SvxCharBasePage(pPage, pController,
"cui/ui/charnamepage.ui",
"CharNamePage", rInSet)
194 , m_xWestern(m_xBuilder->weld_notebook(
"nbWestern"))
195 , m_xWestFontNameFT(m_xBuilder->weld_label(
"lbWestFontname"))
196 , m_xWestFontStyleFT(m_xBuilder->weld_label(
"lbWestStyle"))
197 , m_xWestFontStyleLB(new
FontStyleBox(m_xBuilder->weld_combo_box(
"cbWestStyle")))
198 , m_xWestFontSizeFT(m_xBuilder->weld_label(
"lbWestSize"))
199 , m_xWestFontSizeLB(new
FontSizeBox(m_xBuilder->weld_combo_box(
"cbWestSize")))
200 , m_xWestFontLanguageFT(m_xBuilder->weld_label(
"lbWestLanguage"))
201 , m_xWestFontLanguageLB(new
SvxLanguageBox(m_xBuilder->weld_combo_box(
"cbWestLanguage")))
202 , m_xWestFontFeaturesButton(m_xBuilder->weld_button(
"btnWestFeatures"))
203 , m_xWestFontTypeFT(m_xBuilder->weld_label(
"lbWestFontinfo"))
204 , m_xCJK_CTL(m_xBuilder->weld_notebook(
"nbCJKCTL"))
206 , m_xEastFontNameFT(m_xBuilder->weld_label(
"lbCJKFontname"))
207 , m_xEastFontStyleFT(m_xBuilder->weld_label(
"lbCJKStyle"))
208 , m_xEastFontStyleLB(new
FontStyleBox(m_xBuilder->weld_combo_box(
"cbCJKStyle")))
209 , m_xEastFontSizeFT(m_xBuilder->weld_label(
"lbCJKSize"))
210 , m_xEastFontSizeLB(new
FontSizeBox(m_xBuilder->weld_combo_box(
"cbCJKSize")))
211 , m_xEastFontLanguageFT(m_xBuilder->weld_label(
"lbCJKLanguage"))
212 , m_xEastFontLanguageLB(new
SvxLanguageBox(m_xBuilder->weld_combo_box(
"cbCJKLanguage")))
213 , m_xEastFontFeaturesButton(m_xBuilder->weld_button(
"btnCJKFeatures"))
214 , m_xEastFontTypeFT(m_xBuilder->weld_label(
"lbCJKFontinfo"))
216 , m_xCTLFontNameFT(m_xBuilder->weld_label(
"lbCTLFontname"))
218 , m_xCTLFontStyleFT(m_xBuilder->weld_label(
"lbCTLStyle"))
219 , m_xCTLFontStyleLB(new
FontStyleBox(m_xBuilder->weld_combo_box(
"cbCTLStyle")))
220 , m_xCTLFontSizeFT(m_xBuilder->weld_label(
"lbCTLSize"))
221 , m_xCTLFontSizeLB(new
FontSizeBox(m_xBuilder->weld_combo_box(
"cbCTLSize")))
222 , m_xCTLFontLanguageFT(m_xBuilder->weld_label(
"lbCTLLanguage"))
223 , m_xCTLFontLanguageLB(new
SvxLanguageBox(m_xBuilder->weld_combo_box(
"cbCTLLanguage")))
224 , m_xCTLFontFeaturesButton(m_xBuilder->weld_button(
"btnCTLFeatures"))
225 , m_xCTLFontTypeFT(m_xBuilder->weld_label(
"lbCTLFontinfo"))
235 std::unique_ptr<weld::EntryTreeView> xWestFontName = m_xBuilder->weld_entry_tree_view(
"gdWestern",
"edWestFontName",
"trWestFontName");
236 std::unique_ptr<weld::EntryTreeView> xCJKFontName = m_xBuilder->weld_entry_tree_view(
"gdCJK",
"edCJKFontName",
"trCJKFontName");
237 std::unique_ptr<weld::EntryTreeView> xCTLFontName = m_xBuilder->weld_entry_tree_view(
"gdCTL",
"edCTLFontName",
"trCTLFontName");
240 xWestFontName->set_height_request_by_rows(7);
241 xCJKFontName->set_height_request_by_rows(7);
242 xCTLFontName->set_height_request_by_rows(7);
250 bool bShowNonWestern = bShowCJK || bShowCTL;
251 if (!bShowNonWestern)
256 else if (!bShowCJK)
m_xCJK_CTL->remove_page(
"nbCJK");
257 else if (!bShowCTL)
m_xCJK_CTL->remove_page(
"nbCTL");
267 OUString sFontFamilyString(
CuiResId(RID_CUISTR_CHARNAME_FONT));
269 OUString sFontFamilyString(
CuiResId(RID_CUISTR_CHARNAME_FAMILY));
276 OUString sFontStyleString(
CuiResId(RID_CUISTR_CHARNAME_TYPEFACE));
278 OUString sFontStyleString(
CuiResId(RID_CUISTR_CHARNAME_STYLE));
290 int nVisibleChars = 15;
349 const SfxPoolItem* pItem = pDocSh->GetItem( SID_ATTR_CHAR_FONTLIST );
350 if ( pItem !=
nullptr )
353 "Where is the font list?");
363 return m_pImpl->m_pFontList.get();
376 sal_uInt16 _nFontWhich,
377 sal_uInt16 _nFontHeightWhich)
379 Size aSize = _rFont.GetFontSize();
383 bool bFontAvailable = _pFontList->
IsAvailable( sFontName );
390 if ( eState >= SfxItemState::DEFAULT )
430 _rFont.SetPitch( aFontMetrics.
GetPitch() );
431 _rFont.SetCharSet( aFontMetrics.
GetCharSet() );
432 _rFont.SetWeight( aFontMetrics.
GetWeight() );
433 _rFont.SetItalic( aFontMetrics.
GetItalic() );
451 pFontList,
GetWhich(SID_ATTR_CHAR_FONT),
452 GetWhich(SID_ATTR_CHAR_FONTHEIGHT));
458 pFontList,
GetWhich(SID_ATTR_CHAR_CJK_FONT),
459 GetWhich(SID_ATTR_CHAR_CJK_FONTHEIGHT));
463 FontMetric aCTLFontMetric = calcFontMetrics(rCTLFont,
466 GetWhich(SID_ATTR_CHAR_CTL_FONTHEIGHT));
493 SAL_WARN(
"cui.tabpages",
"invalid font name box" );
527 SAL_WARN(
"cui.tabpages",
"invalid font name box" );
531 pStyleBox->
Fill(sFontName, pFontList);
533 if ( !
m_pImpl->m_bInSearchMode )
538 OUString aEntry =
m_pImpl->m_aNoStyleText;
539 const char sS[] =
"%1";
540 aEntry = aEntry.replaceFirst( sS, pFontList->
GetBoldStr() );
543 aEntry =
m_pImpl->m_aNoStyleText;
544 aEntry = aEntry.replaceFirst( sS, pFontList->
GetItalicStr() );
569 SAL_WARN(
"cui.tabpages",
"invalid font name box" );
573 pSizeBox->
Fill( pFontList );
582 std::vector<weld::ComboBoxEntry> aVector;
583 aVector.reserve(nFontCount);
584 for (sal_uInt16 i = 0;
i < nFontCount; ++
i)
602 sal_uInt16 nWhich = 0;
614 nWhich =
GetWhich( SID_ATTR_CHAR_FONT );
625 nWhich =
GetWhich( SID_ATTR_CHAR_CJK_FONT );
636 nWhich =
GetWhich( SID_ATTR_CHAR_CTL_FONT );
641 FillFontNames(*pNameBox, *pFontList);
646 if ( eState >= SfxItemState::DEFAULT )
664 bool bStyleAvailable =
true;
670 case Asian : nWhich =
GetWhich( SID_ATTR_CHAR_CJK_POSTURE );
break;
671 case Ctl : nWhich =
GetWhich( SID_ATTR_CHAR_CTL_POSTURE );
break;
675 if ( eState >= SfxItemState::DEFAULT )
678 eItalic = rItem.GetValue();
681 bStyleAvailable = bStyleAvailable && (eState >= SfxItemState::DONTCARE);
686 case Asian : nWhich =
GetWhich( SID_ATTR_CHAR_CJK_WEIGHT );
break;
687 case Ctl : nWhich =
GetWhich( SID_ATTR_CHAR_CTL_WEIGHT );
break;
691 if ( eState >= SfxItemState::DEFAULT )
694 eWeight = rItem.GetValue();
698 bStyleAvailable = bStyleAvailable && (eState >= SfxItemState::DONTCARE);
701 if ( bStyle && pFontItem )
706 else if ( !
m_pImpl->m_bInSearchMode || !bStyle )
712 FontMetric aFontMetric = pFontList->
Get( OUString(), eWeight, eItalic );
715 if (!bStyleAvailable)
725 case Asian : nWhich =
GetWhich( SID_ATTR_CHAR_CJK_FONTHEIGHT );
break;
726 case Ctl : nWhich =
GetWhich( SID_ATTR_CHAR_CTL_FONTHEIGHT );
break;
737 bool bPtRel = MapUnit::MapPoint == rItem.
GetPropUnit();
747 else if ( eState >= SfxItemState::DEFAULT )
756 if ( eState <= SfxItemState::DISABLED )
766 case Asian : nWhich =
GetWhich( SID_ATTR_CHAR_CJK_LANGUAGE );
break;
767 case Ctl : nWhich =
GetWhich( SID_ATTR_CHAR_CTL_LANGUAGE );
break;
774 case SfxItemState::UNKNOWN:
779 case SfxItemState::DISABLED:
784 case SfxItemState::DEFAULT:
785 case SfxItemState::SET:
794 case SfxItemState::DONTCARE:
825 bool bModified =
false;
831 sal_uInt16 nWhich = 0;
832 sal_uInt16 nSlot = 0;
841 nSlot = SID_ATTR_CHAR_FONT;
849 nSlot = SID_ATTR_CHAR_CJK_FONT;
857 nSlot = SID_ATTR_CHAR_CTL_FONT;
868 bool bChanged =
true;
872 int nEntryPos = pStyleBox->
find_text(aStyleBoxText);
873 if (nEntryPos >=
m_pImpl->m_nExtraEntryPos)
874 aStyleBoxText.clear();
875 FontMetric aInfo( pFontList->
Get( rFontName, aStyleBoxText ) );
891 if ( !bChanged && pExampleSet &&
892 pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
896 if ( bChanged && !rFontName.isEmpty() )
901 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
908 case Western : nSlot = SID_ATTR_CHAR_WEIGHT;
break;
909 case Asian : nSlot = SID_ATTR_CHAR_CJK_WEIGHT;
break;
910 case Ctl : nSlot = SID_ATTR_CHAR_CTL_WEIGHT;
break;
914 if ( nEntryPos >=
m_pImpl->m_nExtraEntryPos )
923 if ( rItem.GetValue() == aWeightItem.GetValue() )
931 if (
m_pImpl->m_bInSearchMode && bChanged &&
936 if ( !bChanged && pExampleSet &&
937 pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
941 if ( nEntryPos >=
m_pImpl->m_nExtraEntryPos )
942 bChanged = ( nEntryPos ==
m_pImpl->m_nExtraEntryPos );
946 if ( bChanged && !aText.isEmpty() )
951 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
957 case Western : nSlot = SID_ATTR_CHAR_POSTURE;
break;
958 case Asian : nSlot = SID_ATTR_CHAR_CJK_POSTURE;
break;
959 case Ctl : nSlot = SID_ATTR_CHAR_CTL_POSTURE;
break;
963 if ( nEntryPos >=
m_pImpl->m_nExtraEntryPos )
972 if ( rItem.GetValue() == aPostureItem.GetValue() )
980 if (
m_pImpl->m_bInSearchMode && bChanged &&
985 if ( !bChanged && pExampleSet &&
986 pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
990 if ( nEntryPos >=
m_pImpl->m_nExtraEntryPos )
991 bChanged = ( nEntryPos == (
m_pImpl->m_nExtraEntryPos + 1 ) );
993 if ( bChanged && !aText.isEmpty() )
998 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
1011 case Western : nSlot = SID_ATTR_CHAR_FONTHEIGHT;
break;
1012 case Asian : nSlot = SID_ATTR_CHAR_CJK_FONTHEIGHT;
break;
1013 case Ctl : nSlot = SID_ATTR_CHAR_CTL_FONTHEIGHT;
break;
1017 bChanged = ( nSize != nSavedSize );
1019 if ( !bChanged && pExampleSet &&
1020 pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET )
1022 float fSize =
static_cast<float>(nSize) / 10;
1024 if (
static_cast<const SvxFontHeightItem*
>(pItem)->GetHeight() !=
static_cast<sal_uInt32
>(nVal) )
1028 if ( bChanged || !pOldHeight ||
1029 bRel != ( MapUnit::MapRelative != pOldHeight->
GetPropUnit() || 100 != pOldHeight->
GetProp() ) )
1040 aHeight.
SetHeight( rOldItem.
GetHeight(),
static_cast<sal_uInt16
>( nSize / 10 ), MapUnit::MapPoint, eUnit );
1047 float fSize =
static_cast<float>(nSize) / 10;
1052 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
1058 case Western : nSlot = SID_ATTR_CHAR_LANGUAGE;
break;
1059 case Asian : nSlot = SID_ATTR_CHAR_CJK_LANGUAGE;
break;
1060 case Ctl : nSlot = SID_ATTR_CHAR_CTL_LANGUAGE;
break;
1075 if (pBox != pLangBox)
1079 nSlot = SID_ATTR_CHAR_LANGUAGE;
1081 nSlot = SID_ATTR_CHAR_CJK_LANGUAGE;
1083 nSlot = SID_ATTR_CHAR_CTL_LANGUAGE;
1102 if (nLangPos == -1 || eLangType == rItem.GetValue())
1109 if (bChanged && nLangPos != -1)
1114 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
1122 UpdatePreview_Impl();
1127 FontModifyHdl_Impl(rBox);
1135 if (&rButton == m_xWestFontFeaturesButton.get())
1137 pNameBox = m_xWestFontNameLB.get();
1138 sFontName = GetPreviewFont().GetFamilyName();
1140 else if (&rButton == m_xEastFontFeaturesButton.get())
1142 pNameBox = m_xEastFontNameLB.get();
1143 sFontName = GetPreviewCJKFont().GetFamilyName();
1145 else if (&rButton == m_xCTLFontFeaturesButton.get())
1147 pNameBox = m_xCTLFontNameLB.get();
1148 sFontName = GetPreviewCTLFont().GetFamilyName();
1151 if (!sFontName.isEmpty() && pNameBox)
1157 UpdatePreview_Impl();
1164 m_pImpl->m_aUpdateIdle.Start();
1185 return DeactivateRC::LeavePage;
1190 return std::make_unique<SvxCharNamePage>(pPage, pController, *
rSet );
1247 _pFontSizeLB->
EnablePtRelativeMode( sal::static_int_cast< short >(-(nCurHeight - 20)), (9999 - nCurHeight) );
1261 m_pImpl->m_bInSearchMode =
true;
1287 sal_uInt32 nFlags=pFlagItem->GetValue();
1300 :
SvxCharBasePage(pPage, pController,
"cui/ui/effectspage.ui",
"EffectsPage", rInSet)
1301 , m_bOrigFontColor(false)
1302 , m_bNewFontColor(false)
1303 , m_bEnableNoneFontColor(false)
1304 , m_xFontColorFT(m_xBuilder->weld_label(
"fontcolorft"))
1305 , m_xFontColorLB(new
ColorListBox(m_xBuilder->weld_menu_button(
"fontcolorlb"),
1307 , m_xFontTransparencyFT(m_xBuilder->weld_label(
"fonttransparencyft"))
1308 , m_xFontTransparencyMtr(
1309 m_xBuilder->weld_metric_spin_button(
"fonttransparencymtr", FieldUnit::PERCENT))
1310 , m_xEffectsFT(m_xBuilder->weld_label(
"effectsft"))
1311 , m_xEffectsLB(m_xBuilder->weld_combo_box(
"effectslb"))
1312 , m_xReliefFT(m_xBuilder->weld_label(
"reliefft"))
1313 , m_xReliefLB(m_xBuilder->weld_combo_box(
"relieflb"))
1314 , m_xOutlineBtn(m_xBuilder->weld_check_button(
"outlinecb"))
1315 , m_xShadowBtn(m_xBuilder->weld_check_button(
"shadowcb"))
1316 , m_xHiddenBtn(m_xBuilder->weld_check_button(
"hiddencb"))
1317 , m_xOverlineLB(m_xBuilder->weld_combo_box(
"overlinelb"))
1318 , m_xOverlineColorFT(m_xBuilder->weld_label(
"overlinecolorft"))
1319 , m_xOverlineColorLB(
new ColorListBox(m_xBuilder->weld_menu_button(
"overlinecolorlb"),
1320 [
this]{ return GetDialogController()->getDialog(); }))
1321 , m_xStrikeoutLB(m_xBuilder->weld_combo_box(
"strikeoutlb"))
1322 , m_xUnderlineLB(m_xBuilder->weld_combo_box(
"underlinelb"))
1323 , m_xUnderlineColorFT(m_xBuilder->weld_label(
"underlinecolorft"))
1324 , m_xUnderlineColorLB(
new ColorListBox(m_xBuilder->weld_menu_button(
"underlinecolorlb"),
1325 [
this]{ return GetDialogController()->getDialog(); }))
1326 , m_xIndividualWordsBtn(m_xBuilder->weld_check_button(
"individualwordscb"))
1327 , m_xEmphasisFT(m_xBuilder->weld_label(
"emphasisft"))
1328 , m_xEmphasisLB(m_xBuilder->weld_combo_box(
"emphasislb"))
1329 , m_xPositionFT(m_xBuilder->weld_label(
"positionft"))
1330 , m_xPositionLB(m_xBuilder->weld_combo_box(
"positionlb"))
1331 , m_xA11yWarningFT(m_xBuilder->weld_label(
"a11ywarning"))
1333 m_xPreviewWin.reset(
new weld::CustomWeld(*m_xBuilder,
"preview", m_aPreviewWin));
1335 m_xPreviewWin->hide();
1337 m_xFontColorLB->SetSlotId(SID_ATTR_CHAR_COLOR);
1338 m_xOverlineColorLB->SetSlotId(SID_ATTR_CHAR_COLOR);
1339 m_xUnderlineColorLB->SetSlotId(SID_ATTR_CHAR_COLOR);
1364 if ( !pHtmlModeItem)
1367 pHtmlModeItem = pShell->GetItem( SID_HTML_MODE );
1417 m_xA11yWarningFT->set_visible(officecfg::Office::Common::Accessibility::IsAutomaticFontColor::get());
1427 rFont.SetColor(rSelectedColor);
1428 rCJKFont.SetColor(rSelectedColor);
1429 rCTLFont.SetColor(rSelectedColor);
1435 rFont.SetUnderline( eUnderline );
1436 rCJKFont.SetUnderline( eUnderline );
1437 rCTLFont.SetUnderline( eUnderline );
1439 rFont.SetOverline( eOverline );
1440 rCJKFont.SetOverline( eOverline );
1441 rCTLFont.SetOverline( eOverline );
1443 rFont.SetStrikeout( eStrikeout );
1444 rCJKFont.SetStrikeout( eStrikeout );
1445 rCTLFont.SetStrikeout( eStrikeout );
1448 if (nEmphasis != -1)
1452 eMark |= bUnder ? FontEmphasisMark::PosBelow : FontEmphasisMark::PosAbove;
1453 rFont.SetEmphasisMark( eMark );
1454 rCJKFont.SetEmphasisMark( eMark );
1455 rCTLFont.SetEmphasisMark( eMark );
1461 rFont.SetRelief(
static_cast<FontRelief>(nRelief) );
1462 rCJKFont.SetRelief(
static_cast<FontRelief>(nRelief) );
1463 rCTLFont.SetRelief(
static_cast<FontRelief>(nRelief) );
1467 rCJKFont.SetOutline( rFont.IsOutline() );
1468 rCTLFont.SetOutline( rFont.IsOutline() );
1471 rCJKFont.SetShadow( rFont.IsShadow() );
1472 rCTLFont.SetShadow( rFont.IsShadow() );
1481 rCTLFont.
SetCaseMap( eCaps == SvxCaseMap::SmallCaps ? SvxCaseMap::NotMapped : eCaps );
1485 rFont.SetWordLineMode( bWordLine );
1486 rCJKFont.SetWordLineMode( bWordLine );
1487 rCTLFont.SetWordLineMode( bWordLine );
1494 if ( SvxCaseMap::End > eCaseMap )
1496 sal::static_int_cast< sal_Int32 >( eCaseMap ) );
1508 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_COLOR );
1514 case SfxItemState::UNKNOWN:
1519 case SfxItemState::DISABLED:
1524 case SfxItemState::DONTCARE:
1531 case SfxItemState::DEFAULT:
1532 case SfxItemState::SET:
1540 rFont.SetColor(aColor);
1541 rCJKFont.SetColor(aColor);
1542 rCTLFont.SetColor(aColor);
1547 Color aRGBColor = aColor;
1556 double fTransparency = (255 - aColor.
GetAlpha()) * 100.0 / 255;
1558 FieldUnit::PERCENT);
1571 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_COLOR );
1583 double fTransparency
1611 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
1619 SelectHdl_Impl(&rBox);
1627 bool bEnable = nEPos > 0;
1640 bool bUEnable = nUPos > 0;
1645 bool bOEnable = nOPos > 0;
1657 m_aIndividualWordsState.ButtonToggled(rToggle);
1658 UpdatePreview_Impl();
1659 UpdatePreview_Impl();
1664 if (m_xFontColorLB.get() == &rBox)
1665 m_bNewFontColor =
true;
1666 UpdatePreview_Impl();
1671 m_bNewFontColor =
true;
1678 return DeactivateRC::LeavePage;
1683 return std::make_unique<SvxCharEffectsPage>( pPage, pController, *
rSet );
1692 bool bEnable =
false;
1695 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_UNDERLINE );
1703 if ( eState >= SfxItemState::DONTCARE )
1705 if ( eState == SfxItemState::DONTCARE )
1711 rFont.SetUnderline( eUnderline );
1712 rCJKFont.SetUnderline( eUnderline );
1713 rCTLFont.SetUnderline( eUnderline );
1735 nWhich =
GetWhich( SID_ATTR_CHAR_OVERLINE );
1743 if ( eState >= SfxItemState::DONTCARE )
1745 if ( eState == SfxItemState::DONTCARE )
1751 rFont.SetOverline( eOverline );
1752 rCJKFont.SetOverline( eOverline );
1753 rCTLFont.SetOverline( eOverline );
1775 nWhich =
GetWhich( SID_ATTR_CHAR_STRIKEOUT );
1783 if ( eState >= SfxItemState::DONTCARE )
1785 if ( eState == SfxItemState::DONTCARE )
1791 rFont.SetStrikeout( eStrikeout );
1792 rCJKFont.SetStrikeout( eStrikeout );
1793 rCTLFont.SetStrikeout( eStrikeout );
1808 nWhich =
GetWhich( SID_ATTR_CHAR_WORDLINEMODE );
1813 case SfxItemState::UNKNOWN:
1818 case SfxItemState::DISABLED:
1823 case SfxItemState::DONTCARE:
1828 case SfxItemState::DEFAULT:
1829 case SfxItemState::SET:
1832 rFont.SetWordLineMode( rItem.GetValue() );
1833 rCJKFont.SetWordLineMode( rItem.GetValue() );
1834 rCTLFont.SetWordLineMode( rItem.GetValue() );
1844 nWhich =
GetWhich( SID_ATTR_CHAR_EMPHASISMARK );
1847 if ( eState >= SfxItemState::DEFAULT )
1851 rFont.SetEmphasisMark( eMark );
1852 rCJKFont.SetEmphasisMark( eMark );
1853 rCTLFont.SetEmphasisMark( eMark );
1857 int nEntryData = ( eMark == FontEmphasisMark::PosAbove )
1865 else if ( eState == SfxItemState::DONTCARE )
1867 else if ( eState == SfxItemState::UNKNOWN )
1886 nWhich =
GetWhich( SID_ATTR_CHAR_CASEMAP );
1890 case SfxItemState::UNKNOWN:
1895 case SfxItemState::DISABLED:
1900 case SfxItemState::DONTCARE:
1904 case SfxItemState::DEFAULT:
1905 case SfxItemState::SET:
1908 eCaseMap = rItem.GetValue();
1915 nWhich =
GetWhich(SID_ATTR_CHAR_RELIEF);
1919 case SfxItemState::UNKNOWN:
1924 case SfxItemState::DISABLED:
1929 case SfxItemState::DONTCARE:
1933 case SfxItemState::DEFAULT:
1934 case SfxItemState::SET:
1937 m_xReliefLB->set_active(
static_cast<sal_Int32
>(rItem.GetValue()));
1944 nWhich =
GetWhich( SID_ATTR_CHAR_CONTOUR );
1948 case SfxItemState::UNKNOWN:
1953 case SfxItemState::DISABLED:
1958 case SfxItemState::DONTCARE:
1963 case SfxItemState::DEFAULT:
1964 case SfxItemState::SET:
1974 nWhich =
GetWhich( SID_ATTR_CHAR_SHADOWED );
1979 case SfxItemState::UNKNOWN:
1984 case SfxItemState::DISABLED:
1989 case SfxItemState::DONTCARE:
1994 case SfxItemState::DEFAULT:
1995 case SfxItemState::SET:
2005 nWhich =
GetWhich( SID_ATTR_CHAR_HIDDEN );
2010 case SfxItemState::UNKNOWN:
2015 case SfxItemState::DISABLED:
2020 case SfxItemState::DONTCARE:
2025 case SfxItemState::DEFAULT:
2026 case SfxItemState::SET:
2047 m_aHiddenState.ButtonToggled(rToggle);
2052 m_aOutlineState.ButtonToggled(rToggle);
2053 UpdatePreview_Impl();
2058 m_aShadowState.ButtonToggled(rToggle);
2059 UpdatePreview_Impl();
2082 bool bModified =
false;
2083 bool bChanged =
true;
2086 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_UNDERLINE );
2097 bool bAllowChange =
nPos != -1 &&
2098 SfxItemState::DEFAULT > rOldSet.
GetItemState( nWhich );
2101 if (rItem.GetValue() == eUnder &&
2114 aNewItem.
SetColor(aNamedColor.m_aColor);
2119 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2125 nWhich =
GetWhich( SID_ATTR_CHAR_OVERLINE );
2136 bool bAllowChange =
nPos != -1 &&
2137 SfxItemState::DEFAULT > rOldSet.
GetItemState( nWhich );
2140 if (rItem.GetValue() == eOver &&
2153 aNewItem.
SetColor(aNamedColor.m_aColor);
2158 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2164 nWhich =
GetWhich( SID_ATTR_CHAR_STRIKEOUT );
2175 bool bAllowChg =
nPos != -1 &&
2176 SfxItemState::DEFAULT > rOldSet.
GetItemState( nWhich );
2180 || (rItem.GetValue() == eStrike && !bAllowChg) )
2189 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2196 nWhich =
GetWhich( SID_ATTR_CHAR_WORDLINEMODE );
2208 if ( !bChanged && pExampleSet && pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
2217 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2223 nWhich =
GetWhich( SID_ATTR_CHAR_EMPHASISMARK );
2232 ? FontEmphasisMark::PosBelow : FontEmphasisMark::PosAbove;
2237 if( rOldSet.
GetItemState( nWhich ) != SfxItemState::DONTCARE )
2245 if (rOldSet.
GetItemState( nWhich ) == SfxItemState::DONTCARE &&
2256 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2262 nWhich =
GetWhich( SID_ATTR_CHAR_CASEMAP );
2265 bool bChecked =
false;
2269 eCaseMap =
static_cast<SvxCaseMap>(nCapsPos);
2279 bool bAllowChg =
nPos != -1 &&
2280 SfxItemState::DEFAULT > rOldSet.
GetItemState( nWhich );
2283 if ( rItem.GetValue() == eCaseMap && !bAllowChg )
2287 if ( bChanged && bChecked )
2292 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2298 nWhich =
GetWhich(SID_ATTR_CHAR_RELIEF);
2307 nWhich =
GetWhich( SID_ATTR_CHAR_CONTOUR );
2318 if ( !bChanged && pExampleSet && pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
2327 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2333 nWhich =
GetWhich( SID_ATTR_CHAR_SHADOWED );
2344 if ( !bChanged && pExampleSet && pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
2353 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2359 nWhich =
GetWhich( SID_ATTR_CHAR_HIDDEN );
2371 if ( !bChanged && pExampleSet && pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
2380 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2401 if (pDisableCtlItem)
2407 sal_uInt32 nFlags=pFlagItem->GetValue();
2422 :
SvxCharBasePage(pPage, pController,
"cui/ui/positionpage.ui",
"PositionPage", rInSet)
2425 , m_nScaleWidthItemSetVal(100)
2426 , m_nScaleWidthInitialVal(100)
2429 , m_xHighPosBtn(m_xBuilder->weld_radio_button(
"superscript"))
2430 , m_xNormalPosBtn(m_xBuilder->weld_radio_button(
"normal"))
2431 , m_xLowPosBtn(m_xBuilder->weld_radio_button(
"subscript"))
2432 , m_xHighLowFT(m_xBuilder->weld_label(
"raiselower"))
2433 , m_xHighLowMF(m_xBuilder->weld_metric_spin_button(
"raiselowersb",
FieldUnit::
PERCENT))
2434 , m_xHighLowRB(m_xBuilder->weld_check_button(
"automatic"))
2435 , m_xFontSizeFT(m_xBuilder->weld_label(
"relativefontsize"))
2436 , m_xFontSizeMF(m_xBuilder->weld_metric_spin_button(
"fontsizesb",
FieldUnit::
PERCENT))
2437 , m_xRotationContainer(m_xBuilder->weld_widget(
"rotationcontainer"))
2438 , m_xScalingFT(m_xBuilder->weld_label(
"scale"))
2439 , m_xScalingAndRotationFT(m_xBuilder->weld_label(
"rotateandscale"))
2440 , m_x0degRB(m_xBuilder->weld_radio_button(
"0deg"))
2441 , m_x90degRB(m_xBuilder->weld_radio_button(
"90deg"))
2442 , m_x270degRB(m_xBuilder->weld_radio_button(
"270deg"))
2443 , m_xFitToLineCB(m_xBuilder->weld_check_button(
"fittoline"))
2444 , m_xScaleWidthMF(m_xBuilder->weld_metric_spin_button(
"scalewidthsb",
FieldUnit::
PERCENT))
2445 , m_xKerningMF(m_xBuilder->weld_metric_spin_button(
"kerningsb",
FieldUnit::
POINT))
2446 , m_xPairKerningBtn(m_xBuilder->weld_check_button(
"pairkerning"))
2502 if ( SvxEscapement::Superscript == nEsc )
2507 else if ( SvxEscapement::Subscript == nEsc )
2513 short nFac = aEscItm.
GetEsc() < 0 ? -1 : 1;
2518 if ( SvxEscapement::Off == nEsc )
2549 if (m_xHighPosBtn->get_active())
2550 nEsc = SvxEscapement::Superscript;
2551 else if (m_xLowPosBtn->get_active())
2552 nEsc = SvxEscapement::Subscript;
2554 SetEscapement_Impl( nEsc );
2559 bool bEnable =
false;
2560 if (m_x90degRB->get_active() || m_x270degRB->get_active())
2563 OSL_ENSURE(m_x0degRB->get_active(),
"unexpected button");
2564 m_xFitToLineCB->set_sensitive(bEnable);
2570 short nEsc =
static_cast<short>(
m_xHighLowMF->get_value(FieldUnit::PERCENT));
2579 m_xHighLowFT->set_sensitive(
false);
2580 m_xHighLowMF->set_sensitive(
false);
2583 PositionHdl_Impl(m_xHighPosBtn->get_active() ? *m_xHighPosBtn
2584 : m_xLowPosBtn->get_active() ? *m_xLowPosBtn
2585 : *m_xNormalPosBtn);
2590 sal_uInt16 nVal = m_nScaleWidthInitialVal;
2591 if (m_xFitToLineCB->get_active())
2592 nVal = m_nScaleWidthItemSetVal;
2593 m_xScaleWidthMF->set_value(nVal, FieldUnit::PERCENT);
2594 m_aPreviewWin.SetFontWidthScale( nVal );
2602 tools::Long nKern =
static_cast<short>(m_xKerningMF->denormalize(nVal));
2604 SvxFont& rFont = GetPreviewFont();
2605 SvxFont& rCJKFont = GetPreviewCJKFont();
2606 SvxFont& rCTLFont = GetPreviewCTLFont();
2608 rFont.SetFixKerning(
static_cast<short>(nKern) );
2609 rCJKFont.SetFixKerning(
static_cast<short>(nKern) );
2610 rCTLFont.SetFixKerning(
static_cast<short>(nKern) );
2611 m_aPreviewWin.Invalidate();
2616 bool bHigh = m_xHighPosBtn->get_active();
2617 bool bLow = m_xLowPosBtn->get_active();
2618 DBG_ASSERT( bHigh || bLow,
"normal position is not valid" );
2620 if (m_xHighLowMF.get() == &rField)
2623 m_nSubEsc =
static_cast<short>(m_xHighLowMF->get_value(FieldUnit::PERCENT)) * -1;
2625 m_nSuperEsc =
static_cast<short>(m_xHighLowMF->get_value(FieldUnit::PERCENT));
2627 else if (m_xFontSizeMF.get() == &rField)
2630 m_nSubProp =
static_cast<sal_uInt8>(m_xFontSizeMF->get_value(FieldUnit::PERCENT));
2632 m_nSuperProp =
static_cast<sal_uInt8>(m_xFontSizeMF->get_value(FieldUnit::PERCENT));
2635 FontModifyHdl_Impl();
2640 m_aPreviewWin.SetFontWidthScale(sal_uInt16(m_xScaleWidthMF->get_value(FieldUnit::PERCENT)));
2647 return DeactivateRC::LeavePage;
2652 return std::make_unique<SvxCharPositionPage>(pPage, pController, *
rSet);
2659 if ( !sUser.isEmpty() )
2672 if (m_nSuperEsc < m_xHighLowMF->get_min(FieldUnit::PERCENT) ||
m_nSuperEsc >
m_xHighLowMF->get_max(FieldUnit::PERCENT))
2676 if (m_nSuperProp < m_xFontSizeMF->get_min(FieldUnit::PERCENT) ||
m_nSuperProp >
m_xFontSizeMF->get_max(FieldUnit::PERCENT))
2678 if (m_nSubProp < m_xFontSizeMF->get_min(FieldUnit::PERCENT) ||
m_nSubProp >
m_xFontSizeMF->get_max(FieldUnit::PERCENT))
2701 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_ESCAPEMENT );
2717 bool bAutomatic(
false);
2725 nEsc = .8 * (100 - nEscProp);
2735 nEsc = .2 * -(100 - nEscProp);
2772 nWhich =
GetWhich( SID_ATTR_CHAR_KERNING );
2783 rFont.SetFixKerning(
static_cast<short>(nKern) );
2784 rCJKFont.SetFixKerning(
static_cast<short>(nKern) );
2785 rCTLFont.SetFixKerning(
static_cast<short>(nKern) );
2792 if (nVal > nKerning)
2800 nWhich =
GetWhich( SID_ATTR_CHAR_AUTOKERN );
2811 nWhich =
GetWhich( SID_ATTR_CHAR_SCALEWIDTH );
2821 if (
rSet->
GetItemState( SID_ATTR_CHAR_WIDTH_FIT_TO_LINE ) >= SfxItemState::DEFAULT )
2825 nWhich =
GetWhich( SID_ATTR_CHAR_ROTATED );
2827 if( SfxItemState::UNKNOWN == eState )
2839 if( eState >= SfxItemState::DEFAULT )
2856 if( eState == SfxItemState::DONTCARE )
2871 SID_ATTR_CHAR_WIDTH_FIT_TO_LINE ))
2896 bool bModified =
false, bChanged =
true;
2897 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_ESCAPEMENT );
2910 nEsc *= (bHigh ? 1 : -1);
2937 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2943 nWhich =
GetWhich( SID_ATTR_CHAR_KERNING );
2950 nKerning =
static_cast<short>(
m_xKerningMF->denormalize( nVal ));
2956 if ( (eOldKernState >= SfxItemState::DEFAULT ||
m_xKerningMF->get_text().isEmpty()) && rItem.GetValue() == nKerning )
2965 else if ( SfxItemState::DEFAULT == eOldKernState )
2969 nWhich =
GetWhich( SID_ATTR_CHAR_AUTOKERN );
2976 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2980 nWhich =
GetWhich( SID_ATTR_CHAR_SCALEWIDTH );
2986 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2990 nWhich =
GetWhich( SID_ATTR_CHAR_ROTATED );
2991 if (
m_x0degRB->get_state_changed_from_saved() ||
2992 m_x90degRB->get_state_changed_from_saved() ||
3004 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
3013 static constexpr OUStringLiteral cTok(
u";" );
3015 OUString sUser = OUString::number(
m_nSuperEsc ) + cTok +
3028 sal_uInt32 nFlags=pFlagItem->
GetValue();
3037 :
SvxCharBasePage(pPage, pController,
"cui/ui/twolinespage.ui",
"TwoLinesPage", rInSet)
3038 , m_nStartBracketPosition( 0 )
3039 , m_nEndBracketPosition( 0 )
3040 , m_xTwoLinesBtn(m_xBuilder->weld_check_button(
"twolines"))
3041 , m_xEnclosingFrame(m_xBuilder->weld_widget(
"enclosing"))
3042 , m_xStartBracketLB(m_xBuilder->weld_tree_view(
"startbracket"))
3043 , m_xEndBracketLB(m_xBuilder->weld_tree_view(
"endbracket"))
3045 for (
size_t i = 0;
i < std::size(TWOLINE_OPEN); ++
i)
3047 for (
size_t i = 0;
i < std::size(TWOLINE_CLOSE); ++
i)
3075 rFont.SetFontSize(
Size( 0, 220 ) );
3076 rCJKFont.SetFontSize(
Size( 0, 220 ) );
3077 rCTLFont.SetFontSize(
Size( 0, 220 ) );
3106 bool bFound =
false;
3109 if (pBox->
get_id(
i).toInt32() != CHRDLG_ENCLOSE_SPECIAL_CHAR)
3112 if (cChar == cBracket)
3137 bool bChecked = m_xTwoLinesBtn->get_active();
3138 m_xEnclosingFrame->set_sensitive(bChecked);
3139 UpdatePreview_Impl();
3144 int nPos = rBox.get_selected_index();
3145 if (rBox.
get_id(
nPos).toInt32() == CHRDLG_ENCLOSE_SPECIAL_CHAR)
3146 SelectCharacter( &rBox );
3149 bool bStart = &rBox == m_xStartBracketLB.get();
3151 m_nStartBracketPosition =
nPos;
3153 m_nEndBracketPosition =
nPos;
3155 UpdatePreview_Impl();
3167 return DeactivateRC::LeavePage;
3172 return std::make_unique<SvxCharTwoLinesPage>(pPage, pController, *
rSet);
3178 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_TWO_LINES );
3181 if ( eState >= SfxItemState::DONTCARE )
3200 bool bModified =
false, bChanged =
true;
3201 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_TWO_LINES );
3222 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
3244 sal_uInt32 nFlags=pFlagItem->
GetValue();
std::vector< vcl::font::Feature > getFontFeatureList(OUString const &rFontName, VirtualDevice &rVDev)
IMPL_LINK(SvxCharNamePage, FontModifyComboBoxHdl_Impl, weld::ComboBox &, rBox, void)
IMPL_LINK_NOARG(SvxCharNamePage, UpdateHdl_Impl, Timer *, void)
static bool StateToAttr(TriState aState)
#define CHRDLG_POSITION_UNDER
#define CHRDLG_POSITION_OVER
static OutputDevice * GetDefaultDevice()
sal_uInt16 GetValue() const
sal_uInt32 GetValue() const
sal_uInt8 GetAlpha() const
bool IsTransparent() const
void SetAlpha(sal_uInt8 nAlpha)
const OUString & GetItalicStr() const
OUString GetFontMapText(const FontMetric &rFontMetric) const
std::unique_ptr< FontList > Clone() const
FontMetric Get(const OUString &rName, const OUString &rStyleName) const
size_t GetFontNameCount() const
bool IsAvailable(std::u16string_view rName) const
const OUString & GetStyleName(FontWeight eWeight, FontItalic eItalic) const
const OUString & GetBoldStr() const
const FontMetric & GetFontName(size_t nFont) const
void SetPtRelative(bool bPtRel)
void set_sensitive(bool bSensitive)
bool IsPtRelative() const
void EnableRelativeMode(sal_uInt16 nMin, sal_uInt16 nMax, sal_uInt16 nStep=5)
void Fill(const FontList *pList)
int get_saved_value() const
void EnablePtRelativeMode(short nMin, short nMax, short nStep=10)
void set_active_or_entry_text(const OUString &rText)
void SetRelative(bool bRelative)
void set_value(int nValue)
OUString get_active_text() const
bool IsRelativeMode() const
int find_text(const OUString &rStr) const
void set_active_text(const OUString &rText)
OUString get_active_text() const
void Fill(std::u16string_view rName, const FontList *pList)
void set_sensitive(bool bSensitive)
OUString const & get_saved_value() const
void append_text(const OUString &rStr)
SAL_WARN_UNUSED_RESULT Point LogicToLogic(const Point &rPtSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
virtual MapUnit GetMetric(sal_uInt16 nWhich) const
SfxItemPool * GetPool() const
const T * GetItemIfSet(TypedWhichId< T > nWhich, bool bSrchInParent=true) const
const SfxItemSet * GetParent() const
sal_uInt16 ClearItem(sal_uInt16 nWhich=0)
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
void InvalidateItem(sal_uInt16 nWhich)
static SAL_WARN_UNUSED_RESULT SfxObjectShell * Current()
const SfxItemSet & GetItemSet() const
SfxOkDialogController * GetDialogController() const
void SetExchangeSupport()
void SetUserData(const OUString &rString)
const SfxItemSet * GetDialogExampleSet() const
const OUString & GetUserData() const
const SfxPoolItem * GetOldItem(const SfxItemSet &rSet, sal_uInt16 nSlot, bool bDeep=true)
weld::Window * GetFrameWeld() const
sal_uInt16 GetWhich(sal_uInt16 nSlot, bool bDeep=true) const
void setWidth(tools::Long nWidth)
void setHeight(tools::Long nHeight)
static bool IsCTLFontEnabled()
void SetPrevFontEscapement(sal_uInt8 nProp, sal_uInt8 nEscProp, short nEsc)
SvxFontPrevWindow m_aPreviewWin
SvxFont & GetPreviewCJKFont()
virtual ~SvxCharBasePage() override
SvxCharBasePage(weld::Container *pPage, weld::DialogController *pController, const OUString &rUIXMLDescription, const OUString &rID, const SfxItemSet &rAttrSet)
std::unique_ptr< weld::CustomWeld > m_xPreviewWin
SvxFont & GetPreviewFont()
void SetPrevFontWidthScale(const SfxItemSet &rSet)
SvxFont & GetPreviewCTLFont()
virtual void ActivatePage(const SfxItemSet &rSet) override
bool m_bPreviewBackgroundToCharacter
std::unique_ptr< weld::CheckButton > m_xShadowBtn
std::unique_ptr< weld::ComboBox > m_xUnderlineLB
std::unique_ptr< weld::Label > m_xFontColorFT
void SetCaseMap_Impl(SvxCaseMap eCaseMap)
std::unique_ptr< weld::CheckButton > m_xOutlineBtn
std::unique_ptr< weld::ComboBox > m_xOverlineLB
std::unique_ptr< weld::ComboBox > m_xReliefLB
void ResetColor_Impl(const SfxItemSet &rSet)
std::unique_ptr< weld::ComboBox > m_xEffectsLB
std::unique_ptr< weld::Label > m_xEffectsFT
std::unique_ptr< weld::Label > m_xFontTransparencyFT
virtual void PageCreated(const SfxAllItemSet &aSet) override
std::unique_ptr< weld::Label > m_xA11yWarningFT
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rSet)
bool m_bEnableNoneFontColor
void UpdatePreview_Impl()
std::unique_ptr< ColorListBox > m_xOverlineColorLB
weld::TriStateEnabled m_aIndividualWordsState
SvxCharEffectsPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &rSet)
weld::TriStateEnabled m_aShadowState
virtual bool FillItemSet(SfxItemSet *rSet) override
std::unique_ptr< weld::ComboBox > m_xPositionLB
std::unique_ptr< weld::CheckButton > m_xHiddenBtn
std::unique_ptr< ColorListBox > m_xUnderlineColorLB
void DisableControls(sal_uInt16 nDisable)
std::unique_ptr< weld::Label > m_xReliefFT
virtual void ChangesApplied() override
std::unique_ptr< weld::Label > m_xOverlineColorFT
std::unique_ptr< weld::CheckButton > m_xIndividualWordsBtn
std::unique_ptr< weld::MetricSpinButton > m_xFontTransparencyMtr
std::unique_ptr< weld::ComboBox > m_xStrikeoutLB
weld::TriStateEnabled m_aHiddenState
void SelectHdl_Impl(const weld::ComboBox *)
weld::TriStateEnabled m_aOutlineState
std::unique_ptr< ColorListBox > m_xFontColorLB
virtual DeactivateRC DeactivatePage(SfxItemSet *pSet) override
std::unique_ptr< weld::Label > m_xUnderlineColorFT
std::unique_ptr< weld::Label > m_xPositionFT
bool FillItemSetColor_Impl(SfxItemSet &rSet)
virtual void Reset(const SfxItemSet *rSet) override
std::unique_ptr< weld::Label > m_xEmphasisFT
std::unique_ptr< weld::ComboBox > m_xEmphasisLB
static const WhichRangesContainer pEffectsRanges
void EnableNoneFontColor()
virtual ~SvxCharEffectsPage() override
std::unique_ptr< SvxLanguageBox > m_xCTLFontLanguageLB
std::unique_ptr< weld::Label > m_xCTLFontLanguageFT
std::unique_ptr< FontSizeBox > m_xCTLFontSizeLB
std::unique_ptr< FontSizeBox > m_xEastFontSizeLB
std::unique_ptr< FontStyleBox > m_xWestFontStyleLB
void FontModifyHdl_Impl(const weld::Widget &)
void SetFontList(const SvxFontListItem &rItem)
void DisableControls(sal_uInt16 nDisable)
std::unique_ptr< weld::Label > m_xEastFontStyleFT
virtual void ActivatePage(const SfxItemSet &rSet) override
bool FillItemSet_Impl(SfxItemSet &rSet, LanguageGroup eLangGrp)
std::unique_ptr< SvxLanguageBox > m_xWestFontLanguageLB
std::unique_ptr< weld::ComboBox > m_xEastFontNameLB
std::unique_ptr< weld::Label > m_xCTLFontStyleFT
std::unique_ptr< weld::Button > m_xCTLFontFeaturesButton
std::unique_ptr< weld::Label > m_xCTLFontTypeFT
std::unique_ptr< weld::Notebook > m_xCJK_CTL
std::unique_ptr< weld::Label > m_xWestFontTypeFT
std::unique_ptr< weld::Label > m_xEastFontTypeFT
std::unique_ptr< FontSizeBox > m_xWestFontSizeLB
std::unique_ptr< weld::Label > m_xCTLFontNameFT
std::unique_ptr< SvxLanguageBox > m_xEastFontLanguageLB
@ Western
Language for western text.
@ Ctl
Language for ctl text.
@ Asian
Language for asian text.
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rSet)
std::unique_ptr< FontStyleBox > m_xCTLFontStyleLB
std::unique_ptr< weld::Button > m_xWestFontFeaturesButton
virtual bool FillItemSet(SfxItemSet *rSet) override
virtual void PageCreated(const SfxAllItemSet &aSet) override
std::unique_ptr< weld::Label > m_xCTLFontSizeFT
std::unique_ptr< weld::Label > m_xWestFontLanguageFT
std::unique_ptr< weld::Label > m_xWestFontStyleFT
std::unique_ptr< weld::Label > m_xEastFontSizeFT
std::unique_ptr< FontStyleBox > m_xEastFontStyleLB
void EnableFeatureButton(const weld::Widget &rNameBox)
virtual DeactivateRC DeactivatePage(SfxItemSet *pSet) override
const FontList * GetFontList() const
std::unique_ptr< weld::ComboBox > m_xWestFontNameLB
std::unique_ptr< weld::Button > m_xEastFontFeaturesButton
ScopedVclPtrInstance< VirtualDevice > m_xVDev
void Reset_Impl(const SfxItemSet &rSet, LanguageGroup eLangGrp)
std::unique_ptr< SvxCharNamePage_Impl > m_pImpl
std::unique_ptr< weld::Notebook > m_xWestern
SvxCharNamePage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &rSet)
virtual void ChangesApplied() override
virtual ~SvxCharNamePage() override
std::unique_ptr< weld::ComboBox > m_xCTLFontNameLB
void FillSizeBox_Impl(const weld::Widget &rBox)
void FillStyleBox_Impl(const weld::Widget &rBox)
static const WhichRangesContainer pNameRanges
std::unique_ptr< weld::Label > m_xWestFontNameFT
virtual void Reset(const SfxItemSet *rSet) override
std::unique_ptr< weld::Label > m_xEastFontLanguageFT
std::unique_ptr< weld::Label > m_xWestFontSizeFT
void EnableRelativeMode()
void UpdatePreview_Impl()
std::unique_ptr< weld::Label > m_xEastFontNameFT
virtual void PageCreated(const SfxAllItemSet &aSet) override
std::unique_ptr< weld::Label > m_xFontSizeFT
std::unique_ptr< weld::RadioButton > m_x270degRB
virtual ~SvxCharPositionPage() override
std::unique_ptr< weld::MetricSpinButton > m_xFontSizeMF
virtual bool FillItemSet(SfxItemSet *rSet) override
std::unique_ptr< weld::CheckButton > m_xPairKerningBtn
std::unique_ptr< weld::Label > m_xScalingFT
std::unique_ptr< weld::CheckButton > m_xHighLowRB
static const WhichRangesContainer pPositionRanges
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rSet)
std::unique_ptr< weld::RadioButton > m_xHighPosBtn
std::unique_ptr< weld::RadioButton > m_xNormalPosBtn
virtual DeactivateRC DeactivatePage(SfxItemSet *pSet) override
void FontModifyHdl_Impl()
std::unique_ptr< weld::RadioButton > m_x90degRB
std::unique_ptr< weld::CheckButton > m_xFitToLineCB
sal_uInt16 m_nScaleWidthInitialVal
std::unique_ptr< weld::RadioButton > m_xLowPosBtn
std::unique_ptr< weld::Label > m_xHighLowFT
virtual void Reset(const SfxItemSet *rSet) override
virtual void ChangesApplied() override
std::unique_ptr< weld::Label > m_xScalingAndRotationFT
std::unique_ptr< weld::Widget > m_xRotationContainer
std::unique_ptr< weld::MetricSpinButton > m_xScaleWidthMF
std::unique_ptr< weld::RadioButton > m_x0degRB
std::unique_ptr< weld::MetricSpinButton > m_xHighLowMF
virtual void FillUserData() override
std::unique_ptr< weld::MetricSpinButton > m_xKerningMF
void SetEscapement_Impl(SvxEscapement nEsc)
SvxCharPositionPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &rSet)
sal_uInt16 m_nScaleWidthItemSetVal
void UpdatePreview_Impl(sal_uInt8 nProp, sal_uInt8 nEscProp, short nEsc)
virtual void Reset(const SfxItemSet *rSet) override
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rSet)
std::unique_ptr< weld::TreeView > m_xStartBracketLB
void SetBracket(sal_Unicode cBracket, bool bStart)
void SelectCharacter(weld::TreeView *pBox)
virtual void PageCreated(const SfxAllItemSet &aSet) override
sal_uInt16 m_nStartBracketPosition
virtual bool FillItemSet(SfxItemSet *rSet) override
virtual ~SvxCharTwoLinesPage() override
virtual DeactivateRC DeactivatePage(SfxItemSet *pSet) override
std::unique_ptr< weld::CheckButton > m_xTwoLinesBtn
void UpdatePreview_Impl()
sal_uInt16 m_nEndBracketPosition
std::unique_ptr< weld::TreeView > m_xEndBracketLB
virtual void ActivatePage(const SfxItemSet &rSet) override
SvxCharTwoLinesPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &rSet)
static const WhichRangesContainer pTwoLinesRanges
The main purpose of this dialog is to enable the use of characters that are not easily accessible fro...
void DisableFontSelection()
virtual short run() override
const Color & GetValue() const
void setComplexColor(model::ComplexColor const &rComplexColor)
FontEmphasisMark GetEmphasisMark() const
sal_uInt8 & GetProportionalHeight()
sal_uInt32 GetHeight() const
MapUnit GetPropUnit() const
sal_uInt16 GetProp() const
void SetHeight(sal_uInt32 nNewHeight, const sal_uInt16 nNewProp=100, MapUnit eUnit=MapUnit::MapRelative)
FontFamily GetFamily() const
FontPitch GetPitch() const
const OUString & GetStyleName() const
rtl_TextEncoding GetCharSet() const
const OUString & GetFamilyName() const
const FontList * GetFontList() const
void SetBrackets(sal_Unicode cStart, sal_Unicode cEnd)
void SetTwoLines(bool bSet)
void AutoCorrectFontColor()
void SetTextLineColor(const Color &rColor)
void SetOverlineColor(const Color &rColor)
void SetFontWidthScale(sal_uInt16 nScaleInPercent)
void SetFromItemSet(const SfxItemSet &rSet, bool bPreviewBackgroundToCharacter)
void SetPropr(const sal_uInt8 nNewPropr)
void SetEscapement(const short nNewEsc)
void SetProprRel(const sal_uInt8 nNewPropr)
void SetCaseMap(const SvxCaseMap eNew)
LanguageType get_saved_active_id() const
LanguageType get_active_id() const
void set_sensitive(bool bSensitive)
SvxLanguageBox * SaveEditedAsEntry(SvxLanguageBox *ppBoxes[3])
bool get_active_id_changed_from_saved() const
EditedAndValid GetEditedAndValid() const
void set_active_id(const LanguageType eLangType)
void set_active(int nPos)
const Color & GetColor() const
void SetColor(const Color &rColor)
void setComplexColor(model::ComplexColor const &rComplexColor)
const model::ComplexColor & getComplexColor() const
Degree10 GetValue() const
bool IsBottomToTop() const
bool IsTopToBottom() const
sal_Unicode GetStartBracket() const
sal_Unicode GetEndBracket() const
void SetPriority(TaskPriority ePriority)
virtual short run() override
OUString const & getResultFontName() const
void setSchemeColor(ThemeColorType eType)
void addTransformation(Transformation const &rTransform)
void SetFontSize(const Size &)
FontFamily GetFamilyType()
void SetStyleName(const OUString &rStyleName)
void SetPitch(FontPitch ePitch)
const OUString & GetStyleName() const
const OUString & GetFamilyName() const
void SetFamily(FontFamily)
void SetCharSet(rtl_TextEncoding)
const Size & GetFontSize() const
void SetFamilyName(const OUString &rFamilyName)
rtl_TextEncoding GetCharSet() const
bool get_value_changed_from_saved() const
virtual int find_text(const OUString &rStr) const=0
virtual OUString get_active_text() const=0
virtual OUString get_id(int pos) const=0
virtual void insert_vector(const std::vector< weld::ComboBoxEntry > &rItems, bool bKeepExisting)=0
OUString const & get_saved_value() const
virtual void set_entry_text(const OUString &rStr)=0
virtual void set_active(int pos)=0
virtual int get_active() const=0
void set_active_text(const OUString &rStr)
virtual OUString get_text(int row, int col=-1) const=0
void append_text(const OUString &rStr)
virtual int n_children() const=0
virtual void select(int pos)=0
virtual OUString get_id(int pos) const=0
constexpr ::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
OUString CuiResId(TranslateId aKey)
#define DBG_ASSERT(sCon, aError)
weld::Window * GetFrameWeld(const SfxFrame *pFrame)
virtual tools::Long GetValue() const override
#define DFLT_ESC_AUTO_SUB
#define DFLT_ESC_AUTO_SUPER
#define SVX_RELATIVE_MODE
#define DISABLE_HIDE_LANGUAGE
#define SVX_ENABLE_CHAR_TRANSPARENCY
#define SVX_PREVIEW_CHARACTER
#define LANGUAGE_DONTKNOW
#define LINK(Instance, Class, Member)
#define SAL_WARN(area, stream)
bool IsAsianTypographyEnabled()
B2IRange fround(const B2DRange &rRange)
constexpr OUStringLiteral first
constexpr ThemeColorType convertToThemeColorType(sal_Int32 nIndex)
sal_Int32 toInt32(std::u16string_view str, sal_Int16 radix=10)
std::basic_string_view< charT, traits > getToken(std::basic_string_view< charT, traits > sv, charT delimiter, std::size_t &position)
constexpr Point convert(const Point &rPoint, o3tl::Length eFrom, o3tl::Length eTo)
static constexpr auto Items
const wchar_t *typedef int(__stdcall *DllNativeUnregProc)(int
std::unique_ptr< FontList > m_pFontList
SVT_DLLPUBLIC tools::Long CalcToPoint(tools::Long nIn, MapUnit eUnit, sal_uInt16 nFactor)
SVT_DLLPUBLIC tools::Long CalcToUnit(float nIn, MapUnit eUnit)
SVT_DLLPUBLIC tools::Long ItemToControl(tools::Long nIn, MapUnit eItem, FieldUnit eCtrl)
constexpr OUStringLiteral PERCENT(u"Percent")