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);
251 bool bShowNonWestern = bShowCJK || bShowCTL;
252 if (!bShowNonWestern)
257 else if (!bShowCJK)
m_xCJK_CTL->remove_page(
"nbCJK");
258 else if (!bShowCTL)
m_xCJK_CTL->remove_page(
"nbCTL");
268 OUString sFontFamilyString(
CuiResId(RID_CUISTR_CHARNAME_FONT));
270 OUString sFontFamilyString(
CuiResId(RID_CUISTR_CHARNAME_FAMILY));
277 OUString sFontStyleString(
CuiResId(RID_CUISTR_CHARNAME_TYPEFACE));
279 OUString sFontStyleString(
CuiResId(RID_CUISTR_CHARNAME_STYLE));
291 int nVisibleChars = 15;
350 const SfxPoolItem* pItem = pDocSh->GetItem( SID_ATTR_CHAR_FONTLIST );
351 if ( pItem !=
nullptr )
354 "Where is the font list?");
364 return m_pImpl->m_pFontList.get();
377 sal_uInt16 _nFontWhich,
378 sal_uInt16 _nFontHeightWhich)
380 Size aSize = _rFont.GetFontSize();
384 bool bFontAvailable = _pFontList->
IsAvailable( sFontName );
391 if ( eState >= SfxItemState::DEFAULT )
431 _rFont.SetPitch( aFontMetrics.
GetPitch() );
432 _rFont.SetCharSet( aFontMetrics.
GetCharSet() );
433 _rFont.SetWeight( aFontMetrics.
GetWeight() );
434 _rFont.SetItalic( aFontMetrics.
GetItalic() );
452 pFontList,
GetWhich(SID_ATTR_CHAR_FONT),
453 GetWhich(SID_ATTR_CHAR_FONTHEIGHT));
459 pFontList,
GetWhich(SID_ATTR_CHAR_CJK_FONT),
460 GetWhich(SID_ATTR_CHAR_CJK_FONTHEIGHT));
464 FontMetric aCTLFontMetric = calcFontMetrics(rCTLFont,
467 GetWhich(SID_ATTR_CHAR_CTL_FONTHEIGHT));
494 SAL_WARN(
"cui.tabpages",
"invalid font name box" );
528 SAL_WARN(
"cui.tabpages",
"invalid font name box" );
532 pStyleBox->
Fill(sFontName, pFontList);
534 if ( !
m_pImpl->m_bInSearchMode )
539 OUString aEntry =
m_pImpl->m_aNoStyleText;
540 const char sS[] =
"%1";
541 aEntry = aEntry.replaceFirst( sS, pFontList->
GetBoldStr() );
544 aEntry =
m_pImpl->m_aNoStyleText;
545 aEntry = aEntry.replaceFirst( sS, pFontList->
GetItalicStr() );
570 SAL_WARN(
"cui.tabpages",
"invalid font name box" );
574 pSizeBox->
Fill( pFontList );
583 std::vector<weld::ComboBoxEntry> aVector;
584 aVector.reserve(nFontCount);
585 for (sal_uInt16 i = 0;
i < nFontCount; ++
i)
603 sal_uInt16 nWhich = 0;
615 nWhich =
GetWhich( SID_ATTR_CHAR_FONT );
626 nWhich =
GetWhich( SID_ATTR_CHAR_CJK_FONT );
637 nWhich =
GetWhich( SID_ATTR_CHAR_CTL_FONT );
642 FillFontNames(*pNameBox, *pFontList);
647 if ( eState >= SfxItemState::DEFAULT )
665 bool bStyleAvailable =
true;
671 case Asian : nWhich =
GetWhich( SID_ATTR_CHAR_CJK_POSTURE );
break;
672 case Ctl : nWhich =
GetWhich( SID_ATTR_CHAR_CTL_POSTURE );
break;
676 if ( eState >= SfxItemState::DEFAULT )
679 eItalic = rItem.GetValue();
682 bStyleAvailable = bStyleAvailable && (eState >= SfxItemState::DONTCARE);
687 case Asian : nWhich =
GetWhich( SID_ATTR_CHAR_CJK_WEIGHT );
break;
688 case Ctl : nWhich =
GetWhich( SID_ATTR_CHAR_CTL_WEIGHT );
break;
692 if ( eState >= SfxItemState::DEFAULT )
695 eWeight = rItem.GetValue();
699 bStyleAvailable = bStyleAvailable && (eState >= SfxItemState::DONTCARE);
702 if ( bStyle && pFontItem )
707 else if ( !
m_pImpl->m_bInSearchMode || !bStyle )
713 FontMetric aFontMetric = pFontList->
Get( OUString(), eWeight, eItalic );
716 if (!bStyleAvailable)
726 case Asian : nWhich =
GetWhich( SID_ATTR_CHAR_CJK_FONTHEIGHT );
break;
727 case Ctl : nWhich =
GetWhich( SID_ATTR_CHAR_CTL_FONTHEIGHT );
break;
738 bool bPtRel = MapUnit::MapPoint == rItem.
GetPropUnit();
748 else if ( eState >= SfxItemState::DEFAULT )
757 if ( eState <= SfxItemState::DISABLED )
767 case Asian : nWhich =
GetWhich( SID_ATTR_CHAR_CJK_LANGUAGE );
break;
768 case Ctl : nWhich =
GetWhich( SID_ATTR_CHAR_CTL_LANGUAGE );
break;
775 case SfxItemState::UNKNOWN:
780 case SfxItemState::DISABLED:
785 case SfxItemState::DEFAULT:
786 case SfxItemState::SET:
795 case SfxItemState::DONTCARE:
826 bool bModified =
false;
832 sal_uInt16 nWhich = 0;
833 sal_uInt16 nSlot = 0;
842 nSlot = SID_ATTR_CHAR_FONT;
850 nSlot = SID_ATTR_CHAR_CJK_FONT;
858 nSlot = SID_ATTR_CHAR_CTL_FONT;
869 bool bChanged =
true;
873 int nEntryPos = pStyleBox->
find_text(aStyleBoxText);
874 if (nEntryPos >=
m_pImpl->m_nExtraEntryPos)
875 aStyleBoxText.clear();
876 FontMetric aInfo( pFontList->
Get( rFontName, aStyleBoxText ) );
892 if ( !bChanged && pExampleSet &&
893 pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
897 if ( bChanged && !rFontName.isEmpty() )
902 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
909 case Western : nSlot = SID_ATTR_CHAR_WEIGHT;
break;
910 case Asian : nSlot = SID_ATTR_CHAR_CJK_WEIGHT;
break;
911 case Ctl : nSlot = SID_ATTR_CHAR_CTL_WEIGHT;
break;
915 if ( nEntryPos >=
m_pImpl->m_nExtraEntryPos )
924 if ( rItem.GetValue() == aWeightItem.GetValue() )
932 if (
m_pImpl->m_bInSearchMode && bChanged &&
937 if ( !bChanged && pExampleSet &&
938 pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
942 if ( nEntryPos >=
m_pImpl->m_nExtraEntryPos )
943 bChanged = ( nEntryPos ==
m_pImpl->m_nExtraEntryPos );
947 if ( bChanged && !aText.isEmpty() )
952 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
958 case Western : nSlot = SID_ATTR_CHAR_POSTURE;
break;
959 case Asian : nSlot = SID_ATTR_CHAR_CJK_POSTURE;
break;
960 case Ctl : nSlot = SID_ATTR_CHAR_CTL_POSTURE;
break;
964 if ( nEntryPos >=
m_pImpl->m_nExtraEntryPos )
973 if ( rItem.GetValue() == aPostureItem.GetValue() )
981 if (
m_pImpl->m_bInSearchMode && bChanged &&
986 if ( !bChanged && pExampleSet &&
987 pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
991 if ( nEntryPos >=
m_pImpl->m_nExtraEntryPos )
992 bChanged = ( nEntryPos == (
m_pImpl->m_nExtraEntryPos + 1 ) );
994 if ( bChanged && !aText.isEmpty() )
999 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
1012 case Western : nSlot = SID_ATTR_CHAR_FONTHEIGHT;
break;
1013 case Asian : nSlot = SID_ATTR_CHAR_CJK_FONTHEIGHT;
break;
1014 case Ctl : nSlot = SID_ATTR_CHAR_CTL_FONTHEIGHT;
break;
1018 bChanged = ( nSize != nSavedSize );
1020 if ( !bChanged && pExampleSet &&
1021 pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET )
1023 float fSize =
static_cast<float>(nSize) / 10;
1025 if (
static_cast<const SvxFontHeightItem*
>(pItem)->GetHeight() !=
static_cast<sal_uInt32
>(nVal) )
1029 if ( bChanged || !pOldHeight ||
1030 bRel != ( MapUnit::MapRelative != pOldHeight->
GetPropUnit() || 100 != pOldHeight->
GetProp() ) )
1041 aHeight.
SetHeight( rOldItem.
GetHeight(),
static_cast<sal_uInt16
>( nSize / 10 ), MapUnit::MapPoint, eUnit );
1048 float fSize =
static_cast<float>(nSize) / 10;
1053 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
1059 case Western : nSlot = SID_ATTR_CHAR_LANGUAGE;
break;
1060 case Asian : nSlot = SID_ATTR_CHAR_CJK_LANGUAGE;
break;
1061 case Ctl : nSlot = SID_ATTR_CHAR_CTL_LANGUAGE;
break;
1076 if (pBox != pLangBox)
1080 nSlot = SID_ATTR_CHAR_LANGUAGE;
1082 nSlot = SID_ATTR_CHAR_CJK_LANGUAGE;
1084 nSlot = SID_ATTR_CHAR_CTL_LANGUAGE;
1103 if (nLangPos == -1 || eLangType == rItem.GetValue())
1110 if (bChanged && nLangPos != -1)
1115 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
1123 UpdatePreview_Impl();
1128 FontModifyHdl_Impl(rBox);
1136 if (&rButton == m_xWestFontFeaturesButton.get())
1138 pNameBox = m_xWestFontNameLB.get();
1139 sFontName = GetPreviewFont().GetFamilyName();
1141 else if (&rButton == m_xEastFontFeaturesButton.get())
1143 pNameBox = m_xEastFontNameLB.get();
1144 sFontName = GetPreviewCJKFont().GetFamilyName();
1146 else if (&rButton == m_xCTLFontFeaturesButton.get())
1148 pNameBox = m_xCTLFontNameLB.get();
1149 sFontName = GetPreviewCTLFont().GetFamilyName();
1152 if (!sFontName.isEmpty() && pNameBox)
1158 UpdatePreview_Impl();
1165 m_pImpl->m_aUpdateIdle.Start();
1186 return DeactivateRC::LeavePage;
1191 return std::make_unique<SvxCharNamePage>(pPage, pController, *
rSet );
1248 _pFontSizeLB->
EnablePtRelativeMode( sal::static_int_cast< short >(-(nCurHeight - 20)), (9999 - nCurHeight) );
1262 m_pImpl->m_bInSearchMode =
true;
1288 sal_uInt32 nFlags=pFlagItem->GetValue();
1301 :
SvxCharBasePage(pPage, pController,
"cui/ui/effectspage.ui",
"EffectsPage", rInSet)
1302 , m_bOrigFontColor(false)
1303 , m_bNewFontColor(false)
1304 , m_bEnableNoneFontColor(false)
1305 , m_xFontColorFT(m_xBuilder->weld_label(
"fontcolorft"))
1306 , m_xFontColorLB(new
ColorListBox(m_xBuilder->weld_menu_button(
"fontcolorlb"),
1308 , m_xFontTransparencyFT(m_xBuilder->weld_label(
"fonttransparencyft"))
1309 , m_xFontTransparencyMtr(
1310 m_xBuilder->weld_metric_spin_button(
"fonttransparencymtr", FieldUnit::PERCENT))
1311 , m_xEffectsFT(m_xBuilder->weld_label(
"effectsft"))
1312 , m_xEffectsLB(m_xBuilder->weld_combo_box(
"effectslb"))
1313 , m_xReliefFT(m_xBuilder->weld_label(
"reliefft"))
1314 , m_xReliefLB(m_xBuilder->weld_combo_box(
"relieflb"))
1315 , m_xOutlineBtn(m_xBuilder->weld_check_button(
"outlinecb"))
1316 , m_xShadowBtn(m_xBuilder->weld_check_button(
"shadowcb"))
1317 , m_xHiddenBtn(m_xBuilder->weld_check_button(
"hiddencb"))
1318 , m_xOverlineLB(m_xBuilder->weld_combo_box(
"overlinelb"))
1319 , m_xOverlineColorFT(m_xBuilder->weld_label(
"overlinecolorft"))
1320 , m_xOverlineColorLB(
new ColorListBox(m_xBuilder->weld_menu_button(
"overlinecolorlb"),
1321 [
this]{ return GetDialogController()->getDialog(); }))
1322 , m_xStrikeoutLB(m_xBuilder->weld_combo_box(
"strikeoutlb"))
1323 , m_xUnderlineLB(m_xBuilder->weld_combo_box(
"underlinelb"))
1324 , m_xUnderlineColorFT(m_xBuilder->weld_label(
"underlinecolorft"))
1325 , m_xUnderlineColorLB(
new ColorListBox(m_xBuilder->weld_menu_button(
"underlinecolorlb"),
1326 [
this]{ return GetDialogController()->getDialog(); }))
1327 , m_xIndividualWordsBtn(m_xBuilder->weld_check_button(
"individualwordscb"))
1328 , m_xEmphasisFT(m_xBuilder->weld_label(
"emphasisft"))
1329 , m_xEmphasisLB(m_xBuilder->weld_combo_box(
"emphasislb"))
1330 , m_xPositionFT(m_xBuilder->weld_label(
"positionft"))
1331 , m_xPositionLB(m_xBuilder->weld_combo_box(
"positionlb"))
1332 , m_xA11yWarningFT(m_xBuilder->weld_label(
"a11ywarning"))
1334 m_xPreviewWin.reset(
new weld::CustomWeld(*m_xBuilder,
"preview", m_aPreviewWin));
1336 m_xPreviewWin->hide();
1338 m_xFontColorLB->SetSlotId(SID_ATTR_CHAR_COLOR);
1339 m_xOverlineColorLB->SetSlotId(SID_ATTR_CHAR_COLOR);
1340 m_xUnderlineColorLB->SetSlotId(SID_ATTR_CHAR_COLOR);
1365 if ( !pHtmlModeItem)
1368 pHtmlModeItem = pShell->GetItem( SID_HTML_MODE );
1418 m_xA11yWarningFT->set_visible(officecfg::Office::Common::Accessibility::IsAutomaticFontColor::get());
1428 rFont.SetColor(rSelectedColor);
1429 rCJKFont.SetColor(rSelectedColor);
1430 rCTLFont.SetColor(rSelectedColor);
1436 rFont.SetUnderline( eUnderline );
1437 rCJKFont.SetUnderline( eUnderline );
1438 rCTLFont.SetUnderline( eUnderline );
1440 rFont.SetOverline( eOverline );
1441 rCJKFont.SetOverline( eOverline );
1442 rCTLFont.SetOverline( eOverline );
1444 rFont.SetStrikeout( eStrikeout );
1445 rCJKFont.SetStrikeout( eStrikeout );
1446 rCTLFont.SetStrikeout( eStrikeout );
1449 if (nEmphasis != -1)
1453 eMark |= bUnder ? FontEmphasisMark::PosBelow : FontEmphasisMark::PosAbove;
1454 rFont.SetEmphasisMark( eMark );
1455 rCJKFont.SetEmphasisMark( eMark );
1456 rCTLFont.SetEmphasisMark( eMark );
1462 rFont.SetRelief(
static_cast<FontRelief>(nRelief) );
1463 rCJKFont.SetRelief(
static_cast<FontRelief>(nRelief) );
1464 rCTLFont.SetRelief(
static_cast<FontRelief>(nRelief) );
1468 rCJKFont.SetOutline( rFont.IsOutline() );
1469 rCTLFont.SetOutline( rFont.IsOutline() );
1472 rCJKFont.SetShadow( rFont.IsShadow() );
1473 rCTLFont.SetShadow( rFont.IsShadow() );
1482 rCTLFont.
SetCaseMap( eCaps == SvxCaseMap::SmallCaps ? SvxCaseMap::NotMapped : eCaps );
1486 rFont.SetWordLineMode( bWordLine );
1487 rCJKFont.SetWordLineMode( bWordLine );
1488 rCTLFont.SetWordLineMode( bWordLine );
1495 if ( SvxCaseMap::End > eCaseMap )
1497 sal::static_int_cast< sal_Int32 >( eCaseMap ) );
1509 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_COLOR );
1515 case SfxItemState::UNKNOWN:
1520 case SfxItemState::DISABLED:
1525 case SfxItemState::DONTCARE:
1532 case SfxItemState::DEFAULT:
1533 case SfxItemState::SET:
1541 rFont.SetColor(aColor);
1542 rCJKFont.SetColor(aColor);
1543 rCTLFont.SetColor(aColor);
1548 Color aRGBColor = aColor;
1557 double fTransparency = (255 - aColor.
GetAlpha()) * 100.0 / 255;
1559 FieldUnit::PERCENT);
1572 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_COLOR );
1584 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 bAllowChg =
nPos != -1 &&
2098 SfxItemState::DEFAULT > rOldSet.
GetItemState( nWhich );
2101 if ( rItem.GetValue() == eUnder &&
2114 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2120 nWhich =
GetWhich( SID_ATTR_CHAR_OVERLINE );
2131 bool bAllowChg =
nPos != -1 &&
2132 SfxItemState::DEFAULT > rOldSet.
GetItemState( nWhich );
2135 if ( rItem.GetValue() == eOver &&
2148 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2154 nWhich =
GetWhich( SID_ATTR_CHAR_STRIKEOUT );
2165 bool bAllowChg =
nPos != -1 &&
2166 SfxItemState::DEFAULT > rOldSet.
GetItemState( nWhich );
2170 || (rItem.GetValue() == eStrike && !bAllowChg) )
2179 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2186 nWhich =
GetWhich( SID_ATTR_CHAR_WORDLINEMODE );
2198 if ( !bChanged && pExampleSet && pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
2207 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2213 nWhich =
GetWhich( SID_ATTR_CHAR_EMPHASISMARK );
2222 ? FontEmphasisMark::PosBelow : FontEmphasisMark::PosAbove;
2227 if( rOldSet.
GetItemState( nWhich ) != SfxItemState::DONTCARE )
2235 if (rOldSet.
GetItemState( nWhich ) == SfxItemState::DONTCARE &&
2246 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2252 nWhich =
GetWhich( SID_ATTR_CHAR_CASEMAP );
2255 bool bChecked =
false;
2259 eCaseMap =
static_cast<SvxCaseMap>(nCapsPos);
2269 bool bAllowChg =
nPos != -1 &&
2270 SfxItemState::DEFAULT > rOldSet.
GetItemState( nWhich );
2273 if ( rItem.GetValue() == eCaseMap && !bAllowChg )
2277 if ( bChanged && bChecked )
2282 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2288 nWhich =
GetWhich(SID_ATTR_CHAR_RELIEF);
2297 nWhich =
GetWhich( SID_ATTR_CHAR_CONTOUR );
2308 if ( !bChanged && pExampleSet && pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
2317 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2323 nWhich =
GetWhich( SID_ATTR_CHAR_SHADOWED );
2334 if ( !bChanged && pExampleSet && pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
2343 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2349 nWhich =
GetWhich( SID_ATTR_CHAR_HIDDEN );
2361 if ( !bChanged && pExampleSet && pExampleSet->
GetItemState( nWhich,
false, &pItem ) == SfxItemState::SET &&
2370 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2391 if (pDisableCtlItem)
2397 sal_uInt32 nFlags=pFlagItem->GetValue();
2412 :
SvxCharBasePage(pPage, pController,
"cui/ui/positionpage.ui",
"PositionPage", rInSet)
2415 , m_nScaleWidthItemSetVal(100)
2416 , m_nScaleWidthInitialVal(100)
2419 , m_xHighPosBtn(m_xBuilder->weld_radio_button(
"superscript"))
2420 , m_xNormalPosBtn(m_xBuilder->weld_radio_button(
"normal"))
2421 , m_xLowPosBtn(m_xBuilder->weld_radio_button(
"subscript"))
2422 , m_xHighLowFT(m_xBuilder->weld_label(
"raiselower"))
2423 , m_xHighLowMF(m_xBuilder->weld_metric_spin_button(
"raiselowersb",
FieldUnit::
PERCENT))
2424 , m_xHighLowRB(m_xBuilder->weld_check_button(
"automatic"))
2425 , m_xFontSizeFT(m_xBuilder->weld_label(
"relativefontsize"))
2426 , m_xFontSizeMF(m_xBuilder->weld_metric_spin_button(
"fontsizesb",
FieldUnit::
PERCENT))
2427 , m_xRotationContainer(m_xBuilder->weld_widget(
"rotationcontainer"))
2428 , m_xScalingFT(m_xBuilder->weld_label(
"scale"))
2429 , m_xScalingAndRotationFT(m_xBuilder->weld_label(
"rotateandscale"))
2430 , m_x0degRB(m_xBuilder->weld_radio_button(
"0deg"))
2431 , m_x90degRB(m_xBuilder->weld_radio_button(
"90deg"))
2432 , m_x270degRB(m_xBuilder->weld_radio_button(
"270deg"))
2433 , m_xFitToLineCB(m_xBuilder->weld_check_button(
"fittoline"))
2434 , m_xScaleWidthMF(m_xBuilder->weld_metric_spin_button(
"scalewidthsb",
FieldUnit::
PERCENT))
2435 , m_xKerningMF(m_xBuilder->weld_metric_spin_button(
"kerningsb",
FieldUnit::
POINT))
2436 , m_xPairKerningBtn(m_xBuilder->weld_check_button(
"pairkerning"))
2492 if ( SvxEscapement::Superscript == nEsc )
2497 else if ( SvxEscapement::Subscript == nEsc )
2503 short nFac = aEscItm.
GetEsc() < 0 ? -1 : 1;
2508 if ( SvxEscapement::Off == nEsc )
2539 if (m_xHighPosBtn->get_active())
2540 nEsc = SvxEscapement::Superscript;
2541 else if (m_xLowPosBtn->get_active())
2542 nEsc = SvxEscapement::Subscript;
2544 SetEscapement_Impl( nEsc );
2549 bool bEnable =
false;
2550 if (m_x90degRB->get_active() || m_x270degRB->get_active())
2553 OSL_ENSURE(m_x0degRB->get_active(),
"unexpected button");
2554 m_xFitToLineCB->set_sensitive(bEnable);
2560 short nEsc =
static_cast<short>(
m_xHighLowMF->get_value(FieldUnit::PERCENT));
2569 m_xHighLowFT->set_sensitive(
false);
2570 m_xHighLowMF->set_sensitive(
false);
2573 PositionHdl_Impl(m_xHighPosBtn->get_active() ? *m_xHighPosBtn
2574 : m_xLowPosBtn->get_active() ? *m_xLowPosBtn
2575 : *m_xNormalPosBtn);
2580 sal_uInt16 nVal = m_nScaleWidthInitialVal;
2581 if (m_xFitToLineCB->get_active())
2582 nVal = m_nScaleWidthItemSetVal;
2583 m_xScaleWidthMF->set_value(nVal, FieldUnit::PERCENT);
2584 m_aPreviewWin.SetFontWidthScale( nVal );
2592 tools::Long nKern =
static_cast<short>(m_xKerningMF->denormalize(nVal));
2594 SvxFont& rFont = GetPreviewFont();
2595 SvxFont& rCJKFont = GetPreviewCJKFont();
2596 SvxFont& rCTLFont = GetPreviewCTLFont();
2598 rFont.SetFixKerning(
static_cast<short>(nKern) );
2599 rCJKFont.SetFixKerning(
static_cast<short>(nKern) );
2600 rCTLFont.SetFixKerning(
static_cast<short>(nKern) );
2601 m_aPreviewWin.Invalidate();
2606 bool bHigh = m_xHighPosBtn->get_active();
2607 bool bLow = m_xLowPosBtn->get_active();
2608 DBG_ASSERT( bHigh || bLow,
"normal position is not valid" );
2610 if (m_xHighLowMF.get() == &rField)
2613 m_nSubEsc =
static_cast<short>(m_xHighLowMF->get_value(FieldUnit::PERCENT)) * -1;
2615 m_nSuperEsc =
static_cast<short>(m_xHighLowMF->get_value(FieldUnit::PERCENT));
2617 else if (m_xFontSizeMF.get() == &rField)
2620 m_nSubProp =
static_cast<sal_uInt8>(m_xFontSizeMF->get_value(FieldUnit::PERCENT));
2622 m_nSuperProp =
static_cast<sal_uInt8>(m_xFontSizeMF->get_value(FieldUnit::PERCENT));
2625 FontModifyHdl_Impl();
2630 m_aPreviewWin.SetFontWidthScale(sal_uInt16(m_xScaleWidthMF->get_value(FieldUnit::PERCENT)));
2637 return DeactivateRC::LeavePage;
2642 return std::make_unique<SvxCharPositionPage>(pPage, pController, *
rSet);
2649 if ( !sUser.isEmpty() )
2662 if (m_nSuperEsc < m_xHighLowMF->get_min(FieldUnit::PERCENT) ||
m_nSuperEsc >
m_xHighLowMF->get_max(FieldUnit::PERCENT))
2666 if (m_nSuperProp < m_xFontSizeMF->get_min(FieldUnit::PERCENT) ||
m_nSuperProp >
m_xFontSizeMF->get_max(FieldUnit::PERCENT))
2668 if (m_nSubProp < m_xFontSizeMF->get_min(FieldUnit::PERCENT) ||
m_nSubProp >
m_xFontSizeMF->get_max(FieldUnit::PERCENT))
2691 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_ESCAPEMENT );
2707 bool bAutomatic(
false);
2715 nEsc = .8 * (100 - nEscProp);
2725 nEsc = .2 * -(100 - nEscProp);
2762 nWhich =
GetWhich( SID_ATTR_CHAR_KERNING );
2773 rFont.SetFixKerning(
static_cast<short>(nKern) );
2774 rCJKFont.SetFixKerning(
static_cast<short>(nKern) );
2775 rCTLFont.SetFixKerning(
static_cast<short>(nKern) );
2782 if (nVal > nKerning)
2790 nWhich =
GetWhich( SID_ATTR_CHAR_AUTOKERN );
2801 nWhich =
GetWhich( SID_ATTR_CHAR_SCALEWIDTH );
2811 if (
rSet->
GetItemState( SID_ATTR_CHAR_WIDTH_FIT_TO_LINE ) >= SfxItemState::DEFAULT )
2815 nWhich =
GetWhich( SID_ATTR_CHAR_ROTATED );
2817 if( SfxItemState::UNKNOWN == eState )
2829 if( eState >= SfxItemState::DEFAULT )
2846 if( eState == SfxItemState::DONTCARE )
2861 SID_ATTR_CHAR_WIDTH_FIT_TO_LINE ))
2886 bool bModified =
false, bChanged =
true;
2887 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_ESCAPEMENT );
2900 nEsc *= (bHigh ? 1 : -1);
2927 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2933 nWhich =
GetWhich( SID_ATTR_CHAR_KERNING );
2940 nKerning =
static_cast<short>(
m_xKerningMF->denormalize( nVal ));
2946 if ( (eOldKernState >= SfxItemState::DEFAULT ||
m_xKerningMF->get_text().isEmpty()) && rItem.GetValue() == nKerning )
2955 else if ( SfxItemState::DEFAULT == eOldKernState )
2959 nWhich =
GetWhich( SID_ATTR_CHAR_AUTOKERN );
2966 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2970 nWhich =
GetWhich( SID_ATTR_CHAR_SCALEWIDTH );
2976 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
2980 nWhich =
GetWhich( SID_ATTR_CHAR_ROTATED );
2981 if (
m_x0degRB->get_state_changed_from_saved() ||
2982 m_x90degRB->get_state_changed_from_saved() ||
2994 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
3003 static const OUStringLiteral cTok(
u";" );
3005 OUString sUser = OUString::number(
m_nSuperEsc ) + cTok +
3018 sal_uInt32 nFlags=pFlagItem->
GetValue();
3027 :
SvxCharBasePage(pPage, pController,
"cui/ui/twolinespage.ui",
"TwoLinesPage", rInSet)
3028 , m_nStartBracketPosition( 0 )
3029 , m_nEndBracketPosition( 0 )
3030 , m_xTwoLinesBtn(m_xBuilder->weld_check_button(
"twolines"))
3031 , m_xEnclosingFrame(m_xBuilder->weld_widget(
"enclosing"))
3032 , m_xStartBracketLB(m_xBuilder->weld_tree_view(
"startbracket"))
3033 , m_xEndBracketLB(m_xBuilder->weld_tree_view(
"endbracket"))
3035 for (
size_t i = 0;
i < std::size(TWOLINE_OPEN); ++
i)
3037 for (
size_t i = 0;
i < std::size(TWOLINE_CLOSE); ++
i)
3065 rFont.SetFontSize(
Size( 0, 220 ) );
3066 rCJKFont.SetFontSize(
Size( 0, 220 ) );
3067 rCTLFont.SetFontSize(
Size( 0, 220 ) );
3096 bool bFound =
false;
3099 if (pBox->
get_id(
i).toInt32() != CHRDLG_ENCLOSE_SPECIAL_CHAR)
3102 if (cChar == cBracket)
3127 bool bChecked = m_xTwoLinesBtn->get_active();
3128 m_xEnclosingFrame->set_sensitive(bChecked);
3129 UpdatePreview_Impl();
3134 int nPos = rBox.get_selected_index();
3135 if (rBox.
get_id(
nPos).toInt32() == CHRDLG_ENCLOSE_SPECIAL_CHAR)
3136 SelectCharacter( &rBox );
3139 bool bStart = &rBox == m_xStartBracketLB.get();
3141 m_nStartBracketPosition =
nPos;
3143 m_nEndBracketPosition =
nPos;
3145 UpdatePreview_Impl();
3157 return DeactivateRC::LeavePage;
3162 return std::make_unique<SvxCharTwoLinesPage>(pPage, pController, *
rSet);
3168 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_TWO_LINES );
3171 if ( eState >= SfxItemState::DONTCARE )
3190 bool bModified =
false, bChanged =
true;
3191 sal_uInt16 nWhich =
GetWhich( SID_ATTR_CHAR_TWO_LINES );
3212 else if ( SfxItemState::DEFAULT == rOldSet.
GetItemState( nWhich,
false ) )
3234 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)
bool IsCTLFontEnabled() const
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 OString &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
model::ThemeColor & GetThemeColor()
const Color & GetValue() const
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)
void SetColor(const Color &rCol)
const Color & GetColor() 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 addTransformation(Transformation const &rTransform)
void setType(ThemeColorType eType)
void clearTransformations()
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")