diff options
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/dialog/StyleList.cxx | 204 | ||||
-rw-r--r-- | sfx2/source/dialog/templdlg.cxx | 62 | ||||
-rw-r--r-- | sfx2/source/inc/StyleList.hxx | 15 | ||||
-rw-r--r-- | sfx2/source/inc/templdgi.hxx | 4 | ||||
-rw-r--r-- | sfx2/uiconfig/ui/templatepanel.ui | 196 |
5 files changed, 378 insertions, 103 deletions
diff --git a/sfx2/source/dialog/StyleList.cxx b/sfx2/source/dialog/StyleList.cxx index dd8475052578..ce2d2f9bb7d0 100644 --- a/sfx2/source/dialog/StyleList.cxx +++ b/sfx2/source/dialog/StyleList.cxx @@ -62,6 +62,8 @@ #include <StyleList.hxx> +#include <vcl/virdev.hxx> + using namespace css; using namespace css::beans; using namespace css::frame; @@ -90,6 +92,50 @@ public: } }; +namespace +{ +Color ColorHash(const OUString& rString) +{ + // method 1 + //Color aColor(rString.hashCode() & 0xFFFFFF); + + // method 2 borrowed from https://github.com/RolandR/ColorHash/blob/master/colorhash.js + //sal_Int32 nSum = 0; + + //for (int i = 0; i < rString.getLength(); i++) + //{ + // nSum += rString[i]; + //} + + //sal_uInt8 nRed = OUString("0." + OUString(OUString::number(std::sin(nSum + 1))).copy(6)).toDouble() * 256; + //sal_uInt8 nGreen = OUString("0." + OUString(OUString::number(std::sin(nSum + 2))).copy(6)).toDouble() * 256; + //sal_uInt8 nBlue = OUString("0." + OUString(OUString::number(std::sin(nSum + 3))).copy(6)).toDouble() * 256; + + //Color aColor(nRed, nGreen, nBlue); + + // method 3 std::hash + //const std::hash<OUString> hasher; + //Color aColor(hasher(rString) & 0xFFFFFF); + + // method 4 + sal_uInt32 nLen = rString.getLength(); + sal_uInt32 nHashCode = nLen; + while (nLen > 0) + { + nHashCode = (nHashCode * 107) + rString[nLen - 1]; + nLen--; + } + sal_uInt32 nColor = nHashCode & 0xFFFFFF; + Color aColor(ColorTransparency, nColor); + aColor.ApplyTintOrShade(5000); + + return aColor; +} + +// used to disallow the default character style in the styles highlighter character styles color map +std::optional<OUString> sDefaultCharStyleUIName; +} + // Constructor StyleList::StyleList(weld::Builder* pBuilder, SfxBindings* pBindings, @@ -121,6 +167,11 @@ StyleList::StyleList(weld::Builder* pBuilder, SfxBindings* pBindings, , m_pContainer(pC) { m_xFmtLb->set_help_id(HID_TEMPLATE_FMT); + + uno::Reference<frame::XFrame> xFrame + = m_pBindings->GetDispatcher()->GetFrame()->GetFrame().GetFrameInterface(); + m_bModuleHasStylesHighlighterFeature + = vcl::CommandInfoProvider::GetModuleIdentifier(xFrame) == "com.sun.star.text.TextDocument"; } // Destructor @@ -199,6 +250,8 @@ IMPL_LINK_NOARG(StyleList, ReadResource, void*, size_t) { m_nActFilter = m_pCurObjShell->GetAutoStyleFilterIndex(); } + if (m_bModuleHasStylesHighlighterFeature) + sDefaultCharStyleUIName = getDefaultStyleName(SfxStyleFamily::Char); } size_t nCount = m_xStyleFamilies->size(); m_pBindings->ENTERREGISTRATIONS(); @@ -357,8 +410,8 @@ void StyleList::Initialize() m_xTreeBox->connect_custom_get_size(LINK(this, StyleList, CustomGetSizeHdl)); m_xTreeBox->connect_custom_render(LINK(this, StyleList, CustomRenderHdl)); bool bCustomPreview = officecfg::Office::Common::StylesAndFormatting::Preview::get(); - m_xFmtLb->set_column_custom_renderer(0, bCustomPreview); - m_xTreeBox->set_column_custom_renderer(0, bCustomPreview); + m_xFmtLb->set_column_custom_renderer(1, bCustomPreview); + m_xTreeBox->set_column_custom_renderer(1, bCustomPreview); m_xFmtLb->set_visible(!m_bHierarchical); m_xTreeBox->set_visible(m_bHierarchical); @@ -659,16 +712,63 @@ static bool IsExpanded_Impl(const std::vector<OUString>& rEntries, std::u16strin return false; } +static void lcl_Insert(weld::TreeView& rTreeView, const OUString& rName, SfxStyleFamily eFam, + const weld::TreeIter* pParent, weld::TreeIter* pRet, SfxViewShell* pViewSh) +{ + Color aColor(ColorHash(rName)); + + int nColor; + if (eFam == SfxStyleFamily::Para) + { + StylesHighlighterColorMap& rParaStylesColorMap + = pViewSh->GetStylesHighlighterParaColorMap(); + nColor = rParaStylesColorMap.size(); + rParaStylesColorMap[rName] = std::pair(aColor, nColor); + } + else + { + StylesHighlighterColorMap& rCharStylesColorMap + = pViewSh->GetStylesHighlighterCharColorMap(); + nColor = rCharStylesColorMap.size(); + rCharStylesColorMap[rName] = std::pair(aColor, nColor); + // don't show a color or number for default character style 'No Character Style' entry + if (rName == sDefaultCharStyleUIName.value() /*"No Character Style"*/) + { + rTreeView.insert(pParent, -1, &rName, &rName, nullptr, nullptr, false, pRet); + return; + } + } + + // draw the color rectangle and number image + const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings(); + Size aImageSize = rStyleSettings.GetListBoxPreviewDefaultPixelSize(); + ScopedVclPtrInstance<VirtualDevice> xDevice; + xDevice->SetOutputSize(aImageSize); + xDevice->SetFillColor(aColor); + const tools::Rectangle aRect(Point(0, 0), aImageSize); + xDevice->DrawRect(aRect); + xDevice->SetTextColor(COL_BLACK); + xDevice->DrawText(aRect, OUString::number(nColor), + DrawTextFlags::Center | DrawTextFlags::VCenter); + + rTreeView.insert(pParent, -1, &rName, &rName, nullptr, xDevice.get(), false, pRet); +} + static void FillBox_Impl(weld::TreeView& rBox, StyleTree_Impl* pEntry, const std::vector<OUString>& rEntries, SfxStyleFamily eStyleFamily, - const weld::TreeIter* pParent) + const weld::TreeIter* pParent, bool blcl_insert, SfxViewShell* pViewShell) { std::unique_ptr<weld::TreeIter> xResult = rBox.make_iterator(); const OUString& rName = pEntry->getName(); - rBox.insert(pParent, -1, &rName, &rName, nullptr, nullptr, false, xResult.get()); + + if (blcl_insert) + lcl_Insert(rBox, rName, eStyleFamily, pParent, xResult.get(), pViewShell); + else + rBox.insert(pParent, -1, &rName, &rName, nullptr, nullptr, false, xResult.get()); for (size_t i = 0; i < pEntry->getChildren().size(); ++i) - FillBox_Impl(rBox, pEntry->getChildren()[i].get(), rEntries, eStyleFamily, xResult.get()); + FillBox_Impl(rBox, pEntry->getChildren()[i].get(), rEntries, eStyleFamily, xResult.get(), + blcl_insert, pViewShell); } namespace SfxTemplate @@ -788,8 +888,16 @@ IMPL_LINK(StyleList, SetWaterCanState, const SfxBoolItem*, pItem, void) m_pBindings->LeaveRegistrations(); } -void StyleList::FamilySelect(sal_uInt16 nEntry) +void StyleList::FamilySelect(sal_uInt16 nEntry, bool bRefresh) { + if (bRefresh) + { + bool bCustomPreview = officecfg::Office::Common::StylesAndFormatting::Preview::get(); + m_xFmtLb->clear(); + m_xFmtLb->set_column_custom_renderer(1, bCustomPreview); + m_xTreeBox->clear(); + m_xTreeBox->set_column_custom_renderer(1, bCustomPreview); + } m_nActFamily = nEntry; SfxDispatcher* pDispat = m_pBindings->GetDispatcher_Impl(); SfxUInt16Item const aItem(SID_STYLE_FAMILY, @@ -944,18 +1052,40 @@ void StyleList::FillTreeBox(SfxStyleFamily eFam) m_xTreeBox->clear(); const sal_uInt16 nCount = aArr.size(); + SfxViewShell* pViewShell = m_pCurObjShell->GetViewShell(); + if (pViewShell && m_bModuleHasStylesHighlighterFeature) + { + if (eFam == SfxStyleFamily::Para) + pViewShell->GetStylesHighlighterParaColorMap().clear(); + else if (eFam == SfxStyleFamily::Char) + pViewShell->GetStylesHighlighterCharColorMap().clear(); + } + + bool blcl_insert = pViewShell && m_bModuleHasStylesHighlighterFeature + && ((eFam == SfxStyleFamily::Para && m_bHighlightParaStyles) + || (eFam == SfxStyleFamily::Char && m_bHighlightCharStyles)); + for (sal_uInt16 i = 0; i < nCount; ++i) { - FillBox_Impl(*m_xTreeBox, aArr[i].get(), aEntries, eFam, nullptr); + FillBox_Impl(*m_xTreeBox, aArr[i].get(), aEntries, eFam, nullptr, blcl_insert, pViewShell); aArr[i].reset(); } + m_xTreeBox->columns_autosize(); + m_pParentDialog->EnableItem("watercan", false); SfxTemplateItem* pState = m_pFamilyState[m_nActFamily - 1].get(); m_xTreeBox->thaw(); + // hack for x11 to make view update + if (pViewShell && m_bModuleHasStylesHighlighterFeature) + { + SfxViewFrame* pViewFrame = m_pBindings->GetDispatcher_Impl()->GetFrame(); + pViewFrame->Resize(true); + } + std::unique_ptr<weld::TreeIter> xEntry = m_xTreeBox->make_iterator(); bool bEntry = m_xTreeBox->get_iter_first(*xEntry); if (bEntry && nCount) @@ -1084,7 +1214,6 @@ void StyleList::UpdateStyles(StyleFlags nFlags) SfxStyleSheetBase* pStyle = m_pStyleSheetPool->First(eFam, nFilter); std::unique_ptr<weld::TreeIter> xEntry = m_xFmtLb->make_iterator(); - bool bEntry = m_xFmtLb->get_iter_first(*xEntry); std::vector<OUString> aStrings; comphelper::string::NaturalStringSorter aSorter( @@ -1112,25 +1241,46 @@ void StyleList::UpdateStyles(StyleFlags nFlags) return aSorter.compare(rLHS, rRHS) < 0; }); + // Fill the display box + m_xFmtLb->freeze(); + m_xFmtLb->clear(); + + SfxViewShell* pViewShell = m_pCurObjShell->GetViewShell(); + if (pViewShell && m_bModuleHasStylesHighlighterFeature) + { + if (eFam == SfxStyleFamily::Para) + pViewShell->GetStylesHighlighterParaColorMap().clear(); + else if (eFam == SfxStyleFamily::Char) + pViewShell->GetStylesHighlighterCharColorMap().clear(); + } + size_t nCount = aStrings.size(); size_t nPos = 0; - while (nPos < nCount && bEntry && aStrings[nPos] == m_xFmtLb->get_text(*xEntry)) + + if (pViewShell && m_bModuleHasStylesHighlighterFeature + && ((eFam == SfxStyleFamily::Para && m_bHighlightParaStyles) + || (eFam == SfxStyleFamily::Char && m_bHighlightCharStyles))) { - ++nPos; - bEntry = m_xFmtLb->iter_next(*xEntry); + for (nPos = 0; nPos < nCount; ++nPos) + lcl_Insert(*m_xFmtLb, aStrings[nPos], eFam, nullptr, nullptr, pViewShell); } - - if (nPos < nCount || bEntry) + else { - // Fills the display box - m_xFmtLb->freeze(); - m_xFmtLb->clear(); - for (nPos = 0; nPos < nCount; ++nPos) m_xFmtLb->append(aStrings[nPos], aStrings[nPos]); + } + + m_xFmtLb->columns_autosize(); + + m_xFmtLb->thaw(); - m_xFmtLb->thaw(); + // hack for x11 to make view update + if (pViewShell && m_bModuleHasStylesHighlighterFeature) + { + SfxViewFrame* pViewFrame = m_pBindings->GetDispatcher_Impl()->GetFrame(); + pViewFrame->Resize(true); } + // Selects the current style if any SfxTemplateItem* pState = m_pFamilyState[m_nActFamily - 1].get(); OUString aStyle; @@ -1327,6 +1477,15 @@ IMPL_LINK_NOARG(StyleList, EnableDelete, void*, void) IMPL_LINK_NOARG(StyleList, Clear, void*, void) { + if (m_pCurObjShell && m_bModuleHasStylesHighlighterFeature) + { + SfxViewShell* pViewShell = m_pCurObjShell->GetViewShell(); + if (pViewShell) + { + pViewShell->GetStylesHighlighterParaColorMap().clear(); + pViewShell->GetStylesHighlighterCharColorMap().clear(); + } + } m_xStyleFamilies.reset(); for (auto& i : m_pFamilyState) i.reset(); @@ -1508,7 +1667,6 @@ IMPL_LINK(StyleList, QueryTooltipHdl, const weld::TreeIter&, rEntry, OUString) if (!pItem) return sQuickHelpText; SfxStyleSheetBase* pStyle = m_pStyleSheetPool->Find(aTemplName, pItem->GetFamily()); - if (pStyle && pStyle->IsUsed()) // pStyle is in use in the document? { OUString sUsedBy; @@ -1730,14 +1888,6 @@ void StyleList::Update() m_pParentDialog->EnableNew(m_bCanNew, this); } -void StyleList::EnablePreview(bool bCustomPreview) -{ - m_xFmtLb->clear(); - m_xFmtLb->set_column_custom_renderer(0, bCustomPreview); - m_xTreeBox->clear(); - m_xTreeBox->set_column_custom_renderer(0, bCustomPreview); -} - const SfxStyleFamilyItem& StyleList::GetFamilyItemByIndex(size_t i) const { return m_xStyleFamilies->at(i); diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx index 9001ee0740e1..6b2c258a6aba 100644 --- a/sfx2/source/dialog/templdlg.cxx +++ b/sfx2/source/dialog/templdlg.cxx @@ -134,6 +134,27 @@ namespace SfxTemplate default: return 0xffff; } } + // converts from 1-6 to SFX_STYLE_FAMILY Ids + static SfxStyleFamily NIdToSfxFamilyId(sal_uInt16 nId) + { + switch (nId) + { + case 1: + return SfxStyleFamily::Char; + case 2: + return SfxStyleFamily::Para; + case 3: + return SfxStyleFamily::Frame; + case 4: + return SfxStyleFamily::Page; + case 5: + return SfxStyleFamily::Pseudo; + case 6: + return SfxStyleFamily::Table; + default: + return SfxStyleFamily::All; + } + } } void SfxCommonTemplateDialog_Impl::connect_stylelist_execute_drop( @@ -176,6 +197,7 @@ SfxCommonTemplateDialog_Impl::SfxCommonTemplateDialog_Impl(SfxBindings* pB, weld , m_pDeletionWatcher(nullptr) , m_aStyleList(pBuilder, pB, this, pC, "treeview", "flatview") , mxPreviewCheckbox(pBuilder->weld_check_button("showpreview")) + , mxHighlightCheckbox(pBuilder->weld_check_button("highlightstyles")) , mxFilterLb(pBuilder->weld_combo_box("filter")) , nActFamily(0xffff) , nActFilter(0) @@ -262,7 +284,13 @@ void SfxCommonTemplateDialog_Impl::Initialize() mxFilterLb->connect_changed(LINK(this, SfxCommonTemplateDialog_Impl, FilterSelectHdl)); mxPreviewCheckbox->connect_toggled(LINK(this, SfxCommonTemplateDialog_Impl, PreviewHdl)); + mxHighlightCheckbox->connect_toggled(LINK(this, SfxCommonTemplateDialog_Impl, HighlightHdl)); + m_aStyleList.Initialize(); + + SfxStyleFamily eFam = SfxTemplate::NIdToSfxFamilyId(nActFamily); + mxHighlightCheckbox->set_visible(m_aStyleList.HasStylesHighlighterFeature() + && (eFam == SfxStyleFamily::Para || eFam == SfxStyleFamily::Char)); } IMPL_LINK(SfxCommonTemplateDialog_Impl, UpdateStyles_Hdl, StyleFlags, nFlags, void) @@ -460,6 +488,7 @@ bool SfxCommonTemplateDialog_Impl::Execute_Impl( // Handler Listbox of Filter void SfxCommonTemplateDialog_Impl::EnableHierarchical(bool const bEnable, StyleList& rStyleList) { + OUString aSelectedEntry = rStyleList.GetSelectedEntry(); if (bEnable) { if (!rStyleList.IsHierarchical()) @@ -476,8 +505,9 @@ void SfxCommonTemplateDialog_Impl::EnableHierarchical(bool const bEnable, StyleL // If bHierarchical, then the family can have changed // minus one since hierarchical is inserted at the start m_bWantHierarchical = false; // before FilterSelect - FilterSelect(mxFilterLb->get_active() - 1, rStyleList.IsHierarchical() ); + FilterSelect(mxFilterLb->get_active() - 1, true); } + SelectStyle(aSelectedEntry, false, rStyleList); } // Other filters; can be switched by the users or as a result of new or @@ -517,14 +547,27 @@ IMPL_LINK(SfxCommonTemplateDialog_Impl, FilterSelectHdl, weld::ComboBox&, rBox, } // Select-Handler for the Toolbox -void SfxCommonTemplateDialog_Impl::FamilySelect(sal_uInt16 nEntry, StyleList&, bool bPreviewRefresh) +void SfxCommonTemplateDialog_Impl::FamilySelect(sal_uInt16 nEntry, StyleList&, bool bRefresh) { assert((0 < nEntry && nEntry <= MAX_FAMILIES) || 0xffff == nEntry); - if( nEntry != nActFamily || bPreviewRefresh ) + if( nEntry != nActFamily || bRefresh ) { CheckItem(OUString::number(nActFamily), false); nActFamily = nEntry; - m_aStyleList.FamilySelect(nEntry); + m_aStyleList.FamilySelect(nEntry, bRefresh); + + SfxStyleFamily eFam = SfxTemplate::NIdToSfxFamilyId(nActFamily); + mxHighlightCheckbox->set_visible(m_aStyleList.HasStylesHighlighterFeature() + && (eFam == SfxStyleFamily::Para || eFam == SfxStyleFamily::Char)); + if (mxHighlightCheckbox->is_visible()) + { + bool bActive = false; + if (eFam == SfxStyleFamily::Para) + bActive = m_aStyleList.IsHighlightParaStyles(); + else if (eFam == SfxStyleFamily::Char) + bActive = m_aStyleList.IsHighlightCharStyles(); + mxHighlightCheckbox->set_active(bActive); + } } } @@ -632,8 +675,17 @@ IMPL_LINK_NOARG(SfxCommonTemplateDialog_Impl, PreviewHdl, weld::Toggleable&, voi officecfg::Office::Common::StylesAndFormatting::Preview::set(bCustomPreview, batch ); batch->commit(); - m_aStyleList.EnablePreview(bCustomPreview); + FamilySelect(nActFamily, m_aStyleList, true); +} +IMPL_LINK_NOARG(SfxCommonTemplateDialog_Impl, HighlightHdl, weld::Toggleable&, void) +{ + bool bActive = mxHighlightCheckbox->get_active(); + SfxStyleFamily eFam = SfxTemplate::NIdToSfxFamilyId(nActFamily); + if (eFam == SfxStyleFamily::Para) + m_aStyleList.SetHighlightParaStyles(bActive); + else if (eFam == SfxStyleFamily::Char) + m_aStyleList.SetHighlightCharStyles(bActive); FamilySelect(nActFamily, m_aStyleList, true); } diff --git a/sfx2/source/inc/StyleList.hxx b/sfx2/source/inc/StyleList.hxx index 5eba936c6cb5..fe4ff6269bd5 100644 --- a/sfx2/source/inc/StyleList.hxx +++ b/sfx2/source/inc/StyleList.hxx @@ -113,8 +113,7 @@ public: void Enableshow(bool canshow) { m_bCanShow = canshow; } void Enablenew(bool cannew) { m_bCanNew = cannew; } void Enableedit(bool canedit) { m_bCanEdit = canedit; } - // Handles the enabling/Disabling of Preview - void EnablePreview(bool bCustomPreview); + // Used in Dialog's Execute_Impl // It is a necessary condition to execute a style bool EnableExecute(); @@ -126,11 +125,17 @@ public: void connect_SaveSelection(const Link<StyleList&, SfxObjectShell*> rLink); void connect_UpdateFamily(const Link<StyleList&, void> rLink) { m_aUpdateFamily = rLink; } - void FamilySelect(sal_uInt16 nEntry); + void FamilySelect(sal_uInt16 nEntry, bool bRefresh = false); void FilterSelect(sal_uInt16 nActFilter, bool bsetFilter); DECL_LINK(NewMenuExecuteAction, void*, void); + bool HasStylesHighlighterFeature() { return m_bModuleHasStylesHighlighterFeature; } + void SetHighlightParaStyles(bool bSet) { m_bHighlightParaStyles = bSet; } + bool IsHighlightParaStyles() { return m_bHighlightParaStyles; } + void SetHighlightCharStyles(bool bSet) { m_bHighlightCharStyles = bSet; } + bool IsHighlightCharStyles() { return m_bHighlightCharStyles; } + private: void FillTreeBox(SfxStyleFamily eFam); @@ -236,4 +241,8 @@ private: SfxModule* m_Module; sal_uInt16 m_nModifier; weld::Container* m_pContainer; + + bool m_bModuleHasStylesHighlighterFeature = false; + bool m_bHighlightParaStyles = false; + bool m_bHighlightCharStyles = false; }; diff --git a/sfx2/source/inc/templdgi.hxx b/sfx2/source/inc/templdgi.hxx index 322747b5636e..a352b1e9b8e4 100644 --- a/sfx2/source/inc/templdgi.hxx +++ b/sfx2/source/inc/templdgi.hxx @@ -69,6 +69,7 @@ protected: StyleList m_aStyleList; std::unique_ptr<weld::CheckButton> mxPreviewCheckbox; + std::unique_ptr<weld::CheckButton> mxHighlightCheckbox; std::unique_ptr<weld::ComboBox> mxFilterLb; sal_uInt16 nActFamily; // Id in the ToolBox = Position - 1 @@ -97,6 +98,7 @@ protected: DECL_LINK(FilterSelectHdl, weld::ComboBox&, void ); DECL_LINK(PreviewHdl, weld::Toggleable&, void); + DECL_LINK(HighlightHdl, weld::Toggleable&, void); virtual void InsertFamilyItem(sal_uInt16 nId, const SfxStyleFamilyItem& rItem) = 0; virtual void EnableFamilyItem(sal_uInt16 nId, bool bEnabled) = 0; @@ -138,7 +140,7 @@ public: // Used in StyleList::UpdateStyles, StyleList::Update // Whenever a new family(Eg. Character, List etc.) is selected it comes into action - void FamilySelect(sal_uInt16 nId, StyleList& rStyleList, bool bPreviewRefresh = false); + void FamilySelect(sal_uInt16 nId, StyleList& rStyleList, bool bRefresh = false); // Constructor SfxCommonTemplateDialog_Impl(SfxBindings* pB, weld::Container*, weld::Builder* pBuilder); diff --git a/sfx2/uiconfig/ui/templatepanel.ui b/sfx2/uiconfig/ui/templatepanel.ui index f4e8d98b2b43..633e9d0ded37 100644 --- a/sfx2/uiconfig/ui/templatepanel.ui +++ b/sfx2/uiconfig/ui/templatepanel.ui @@ -1,9 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.36.0 --> +<!-- Generated with glade 3.40.0 --> <interface domain="sfx"> <requires lib="gtk+" version="3.20"/> <object class="GtkTreeStore" id="liststore1"> <columns> + <!-- column-name image --> + <column type="CairoSurface"/> <!-- column-name text --> <column type="gchararray"/> <!-- column-name id --> @@ -12,6 +14,8 @@ </object> <object class="GtkTreeStore" id="liststore2"> <columns> + <!-- column-name image --> + <column type="CairoSurface"/> <!-- column-name text --> <column type="gchararray"/> <!-- column-name id --> @@ -21,32 +25,33 @@ <!-- n-columns=1 n-rows=1 --> <object class="GtkGrid" id="TemplatePanel"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> <property name="vexpand">True</property> <child> <object class="GtkBox" id="box1"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> <property name="vexpand">True</property> - <property name="border_width">6</property> + <property name="border-width">6</property> <property name="orientation">vertical</property> <property name="spacing">3</property> <child> <object class="GtkBox"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <child> <object class="GtkToolbar" id="left"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="toolbar_style">text</property> - <property name="show_arrow">False</property> + <property name="can-focus">True</property> + <property name="toolbar-style">text</property> + <property name="show-arrow">False</property> <property name="icon_size">2</property> <child> <object class="GtkToggleToolButton" id="2"> - <property name="use_underline">True</property> + <property name="can-focus">False</property> + <property name="use-underline">True</property> </object> <packing> <property name="expand">False</property> @@ -55,7 +60,8 @@ </child> <child> <object class="GtkToggleToolButton" id="1"> - <property name="use_underline">True</property> + <property name="can-focus">False</property> + <property name="use-underline">True</property> </object> <packing> <property name="expand">False</property> @@ -64,7 +70,8 @@ </child> <child> <object class="GtkToggleToolButton" id="3"> - <property name="use_underline">True</property> + <property name="can-focus">False</property> + <property name="use-underline">True</property> </object> <packing> <property name="expand">False</property> @@ -73,7 +80,8 @@ </child> <child> <object class="GtkToggleToolButton" id="4"> - <property name="use_underline">True</property> + <property name="can-focus">False</property> + <property name="use-underline">True</property> </object> <packing> <property name="expand">False</property> @@ -82,7 +90,8 @@ </child> <child> <object class="GtkToggleToolButton" id="5"> - <property name="use_underline">True</property> + <property name="can-focus">False</property> + <property name="use-underline">True</property> </object> <packing> <property name="expand">False</property> @@ -91,7 +100,8 @@ </child> <child> <object class="GtkToggleToolButton" id="6"> - <property name="use_underline">True</property> + <property name="can-focus">False</property> + <property name="use-underline">True</property> </object> <packing> <property name="expand">False</property> @@ -100,7 +110,8 @@ </child> <child> <object class="GtkToggleToolButton" id="65535"> - <property name="use_underline">True</property> + <property name="can-focus">False</property> + <property name="use-underline">True</property> </object> <packing> <property name="expand">False</property> @@ -110,23 +121,24 @@ </object> <packing> <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> + <property name="fill">False</property> + <property name="position">1</property> </packing> </child> <child> <object class="GtkToolbar" id="right"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="toolbar_style">icons</property> - <property name="show_arrow">False</property> + <property name="can-focus">True</property> + <property name="toolbar-style">icons</property> + <property name="show-arrow">False</property> <property name="icon_size">2</property> <child> <object class="GtkToggleToolButton" id="watercan"> <property name="visible">True</property> - <property name="tooltip_text" translatable="yes" context="templatepanel|STR_STYLE_FILL_FORMAT_MODE">Fill Format Mode</property> - <property name="use_underline">True</property> - <property name="icon_name">res/sc05554.png</property> + <property name="can-focus">False</property> + <property name="tooltip-text" translatable="yes" context="templatepanel|STR_STYLE_FILL_FORMAT_MODE">Fill Format Mode</property> + <property name="use-underline">True</property> + <property name="icon-name">res/sc05554.png</property> </object> <packing> <property name="expand">False</property> @@ -136,9 +148,10 @@ <child> <object class="GtkToolButton" id="new"> <property name="visible">True</property> - <property name="tooltip_text" translatable="yes" context="templatepanel|STR_STYLE_NEW_STYLE_FROM_SELECTION">New Style from Selection</property> - <property name="use_underline">True</property> - <property name="icon_name">res/sc05555.png</property> + <property name="can-focus">False</property> + <property name="tooltip-text" translatable="yes" context="templatepanel|STR_STYLE_NEW_STYLE_FROM_SELECTION">New Style from Selection</property> + <property name="use-underline">True</property> + <property name="icon-name">res/sc05555.png</property> </object> <packing> <property name="expand">False</property> @@ -147,10 +160,11 @@ </child> <child> <object class="GtkMenuToolButton" id="newmenu"> - <property name="no_show_all">True</property> - <property name="tooltip_text" translatable="yes" context="templatepanel|STR_STYLE_NEW_STYLE_ACTION">Styles actions</property> - <property name="use_underline">True</property> - <property name="icon_name">res/sc05555.png</property> + <property name="can-focus">False</property> + <property name="no-show-all">True</property> + <property name="tooltip-text" translatable="yes" context="templatepanel|STR_STYLE_NEW_STYLE_ACTION">Styles actions</property> + <property name="use-underline">True</property> + <property name="icon-name">res/sc05555.png</property> </object> <packing> <property name="expand">False</property> @@ -160,9 +174,10 @@ <child> <object class="GtkToolButton" id="update"> <property name="visible">True</property> - <property name="tooltip_text" translatable="yes" context="templatepanel|STR_STYLE_UPDATE_STYLE">Update Style</property> - <property name="use_underline">True</property> - <property name="icon_name">res/sc05556.png</property> + <property name="can-focus">False</property> + <property name="tooltip-text" translatable="yes" context="templatepanel|STR_STYLE_UPDATE_STYLE">Update Style</property> + <property name="use-underline">True</property> + <property name="icon-name">res/sc05556.png</property> </object> <packing> <property name="expand">False</property> @@ -173,8 +188,8 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="pack_type">end</property> - <property name="position">1</property> + <property name="pack-type">end</property> + <property name="position">2</property> </packing> </child> </object> @@ -186,31 +201,42 @@ </child> <child> <object class="GtkScrolledWindow"> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="hexpand">True</property> <property name="vexpand">True</property> - <property name="shadow_type">in</property> + <property name="shadow-type">in</property> <child> <object class="GtkTreeView" id="flatview"> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="no_show_all">True</property> - <property name="has_tooltip">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="no-show-all">True</property> + <property name="has-tooltip">True</property> <property name="hexpand">True</property> <property name="vexpand">True</property> <property name="model">liststore1</property> - <property name="headers_visible">False</property> - <property name="search_column">0</property> - <property name="show_expanders">False</property> + <property name="headers-visible">False</property> + <property name="search-column">0</property> + <property name="show-expanders">False</property> <child internal-child="selection"> <object class="GtkTreeSelection" id="Macro Library List-selection2"/> </child> <child> + <object class="GtkTreeViewColumn" id="treeviewcolumn0"> + <child> + <object class="GtkCellRendererPixbuf" id="cellrendererpixbuf1"/> + <attributes> + <attribute name="surface">0</attribute> + </attributes> + </child> + </object> + </child> + <child> <object class="GtkTreeViewColumn" id="treeviewcolumn1"> + <property name="resizable">True</property> <child> <object class="GtkCellRendererText" id="cellrenderertext1"/> <attributes> - <attribute name="text">0</attribute> + <attribute name="text">1</attribute> </attributes> </child> </object> @@ -231,32 +257,43 @@ </child> <child> <object class="GtkScrolledWindow"> - <property name="can_focus">True</property> + <property name="can-focus">True</property> <property name="hexpand">True</property> <property name="vexpand">True</property> - <property name="shadow_type">in</property> + <property name="shadow-type">in</property> <child> <object class="GtkTreeView" id="treeview"> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="no_show_all">True</property> - <property name="has_tooltip">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="no-show-all">True</property> + <property name="has-tooltip">True</property> <property name="hexpand">True</property> <property name="vexpand">True</property> <property name="model">liststore2</property> - <property name="headers_visible">False</property> + <property name="headers-visible">False</property> <property name="reorderable">True</property> - <property name="search_column">0</property> - <property name="enable_tree_lines">True</property> + <property name="search-column">1</property> + <property name="enable-tree-lines">True</property> <child internal-child="selection"> <object class="GtkTreeSelection" id="Macro Library List-selection1"/> </child> <child> + <object class="GtkTreeViewColumn" id="treeviewcolumn3"> + <child> + <object class="GtkCellRendererPixbuf" id="cellrendererpixbuf2"/> + <attributes> + <attribute name="surface">0</attribute> + </attributes> + </child> + </object> + </child> + <child> <object class="GtkTreeViewColumn" id="treeviewcolumn2"> + <property name="resizable">True</property> <child> <object class="GtkCellRendererText" id="cellrenderertext2"/> <attributes> - <attribute name="text">0</attribute> + <attribute name="text">1</attribute> </attributes> </child> </object> @@ -276,40 +313,65 @@ </packing> </child> <child> - <object class="GtkCheckButton" id="showpreview"> - <property name="label" translatable="yes" context="commontemplate|STR_PREVIEW_CHECKBOX">Show previews</property> + <object class="GtkBox"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> + <property name="can-focus">False</property> + <child> + <object class="GtkCheckButton" id="showpreview"> + <property name="label" translatable="yes" context="commontemplate|STR_PREVIEW_CHECKBOX">Show previews</property> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="receives-default">False</property> + <property name="use-underline">True</property> + <property name="draw-indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="highlightstyles"> + <property name="label" translatable="yes" context="commontemplate|STR_HIGHLIGHT_CHECKBOX">Spotlight</property> + <property name="can-focus">True</property> + <property name="receives-default">False</property> + <property name="use-underline">True</property> + <property name="draw-indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">3</property> + <property name="position">4</property> </packing> </child> <child> <object class="GtkComboBoxText" id="filter"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">4</property> + <property name="position">5</property> </packing> </child> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> + <property name="left-attach">0</property> + <property name="top-attach">0</property> </packing> </child> </object> <object class="GtkMenu" id="toolmenu"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> </object> </interface> |