sw/Package_uiconfig.mk | 2 vcl/inc/ilstbox.hxx | 10 +++ vcl/inc/vcl/builder.hxx | 39 ++++++++++++-- vcl/inc/vcl/layout.hxx | 22 ++++++++ vcl/source/control/ilstbox.cxx | 76 +++++++++++++++++++++++++++ vcl/source/control/lstbox.cxx | 4 - vcl/source/window/builder.cxx | 112 +++++++++++++++++++++++++++++++++++++++-- vcl/source/window/layout.cxx | 45 +++++++++++++++- 8 files changed, 293 insertions(+), 17 deletions(-)
New commits: commit dc746c02473ad2b777e7b2517e953891cdd5ef44 Author: Caolán McNamara <caol...@redhat.com> Date: Wed Jun 6 10:46:49 2012 +0100 implement start and end button layouts and connect them up diff --git a/vcl/inc/vcl/layout.hxx b/vcl/inc/vcl/layout.hxx index c146087..e32a509 100644 --- a/vcl/inc/vcl/layout.hxx +++ b/vcl/inc/vcl/layout.hxx @@ -190,16 +190,38 @@ protected: } }; +enum VclButtonBoxStyle +{ + VCL_BUTTONBOX_DEFAULT_STYLE, + VCL_BUTTONBOX_SPREAD, + VCL_BUTTONBOX_EDGE, + VCL_BUTTONBOX_START, + VCL_BUTTONBOX_END, + VCL_BUTTONBOX_CENTER +}; + class VCL_DLLPUBLIC VclButtonBox : public VclBox { public: VclButtonBox(Window *pParent, int nSpacing) : VclBox(pParent, true, nSpacing) + , m_eLayoutStyle(VCL_BUTTONBOX_DEFAULT_STYLE) + { + } + void set_layout(VclButtonBoxStyle eStyle) { + m_eLayoutStyle = eStyle; } + VclButtonBoxStyle get_layout() const + { + return m_eLayoutStyle; + } + virtual bool set_property(const rtl::OString &rKey, const rtl::OString &rValue); protected: virtual Size calculateRequisition() const; virtual void setAllocation(const Size &rAllocation); +private: + VclButtonBoxStyle m_eLayoutStyle; }; class VCL_DLLPUBLIC VclVButtonBox : public VclButtonBox diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx index 98ed195..e6cf87e 100644 --- a/vcl/source/window/layout.cxx +++ b/vcl/source/window/layout.cxx @@ -264,6 +264,31 @@ Size VclButtonBox::calculateRequisition() const return aSize; } +bool VclButtonBox::set_property(const rtl::OString &rKey, const rtl::OString &rValue) +{ + if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("layout-style"))) + { + VclButtonBoxStyle eStyle = VCL_BUTTONBOX_DEFAULT_STYLE; + if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("start"))) + eStyle = VCL_BUTTONBOX_START; + else if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("spread"))) + eStyle = VCL_BUTTONBOX_SPREAD; + else if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("edge"))) + eStyle = VCL_BUTTONBOX_EDGE; + else if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("start"))) + eStyle = VCL_BUTTONBOX_START; + else if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("end"))) + eStyle = VCL_BUTTONBOX_END; + else if (rValue.equalsL(RTL_CONSTASCII_STRINGPARAM("center"))) + eStyle = VCL_BUTTONBOX_CENTER; + else + fprintf(stderr, "unknown layout style %s\n", rValue.getStr()); + set_layout(eStyle); + } + else + return VclBox::set_property(rKey, rValue); + return true; +} void VclButtonBox::setAllocation(const Size &rAllocation) { @@ -289,8 +314,20 @@ void VclButtonBox::setAllocation(const Size &rAllocation) Point aPos(0, 0); long nPrimaryCoordinate = getPrimaryCoordinate(aPos); - setPrimaryCoordinate(aPos, nPrimaryCoordinate + nAllocPrimaryDimension - - getPrimaryDimension(aRequisition)); + + //To-Do, other layout styles + switch (m_eLayoutStyle) + { + case VCL_BUTTONBOX_START: + break; + default: + fprintf(stderr, "todo unimplemented layout style\n"); + case VCL_BUTTONBOX_DEFAULT_STYLE: + case VCL_BUTTONBOX_END: + setPrimaryCoordinate(aPos, nPrimaryCoordinate + nAllocPrimaryDimension + - getPrimaryDimension(aRequisition)); + break; + } for (Window *pChild = GetWindow(WINDOW_FIRSTCHILD); pChild; pChild = pChild->GetWindow(WINDOW_NEXT)) { @@ -506,7 +543,7 @@ bool VclGrid::set_property(const rtl::OString &rKey, const rtl::OString &rValue) else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("n-rows"))) /*nothing to do*/; else - return Window::set_property(rKey, rValue); + return VclContainer::set_property(rKey, rValue); return true; } @@ -641,7 +678,7 @@ bool VclAlignment::set_property(const rtl::OString &rKey, const rtl::OString &rV else if (rKey.equalsL(RTL_CONSTASCII_STRINGPARAM("yscale"))) m_fYScale = rValue.toFloat(); else - return Window::set_property(rKey, rValue); + return VclBin::set_property(rKey, rValue); return true; } commit e80bcd31b76c1daea4555882b88e1f24d5be5bc7 Author: Caolán McNamara <caol...@redhat.com> Date: Wed Jun 6 10:29:16 2012 +0100 take over selected entry text diff --git a/vcl/inc/ilstbox.hxx b/vcl/inc/ilstbox.hxx index fda1b38..60103c1 100644 --- a/vcl/inc/ilstbox.hxx +++ b/vcl/inc/ilstbox.hxx @@ -629,6 +629,7 @@ public: sal_Bool IsUserDrawEnabled() const { return mbUserDrawEnabled; } void DrawEntry( sal_Bool bDrawImage, sal_Bool bDrawText, sal_Bool bDrawTextAtImagePos = sal_False, bool bLayout = false ); + virtual void take_properties(Window &rOther); }; // ----------- diff --git a/vcl/source/control/ilstbox.cxx b/vcl/source/control/ilstbox.cxx index e7f8a0a..1dd1925 100644 --- a/vcl/source/control/ilstbox.cxx +++ b/vcl/source/control/ilstbox.cxx @@ -542,6 +542,11 @@ sal_uInt16 ImplEntryList::FindFirstSelectable( sal_uInt16 nPos, bool bForward /* void ImplEntryList::take_properties(ImplEntryList &rOther) { + mnLastSelected = rOther.mnLastSelected; + mnSelectionAnchor = rOther.mnSelectionAnchor; + mnImages = rOther.mnImages; + mnMRUCount = rOther.mnMRUCount; + mnMaxMRUCount = rOther.mnMaxMRUCount; maEntries.swap(rOther.maEntries); } @@ -594,10 +599,48 @@ ImplListBoxWindow::ImplListBoxWindow( Window* pParent, WinBits nWinStyle ) : void ImplListBoxWindow::take_properties(Window &rOther) { + Control::take_properties(rOther); + ImplListBoxWindow &rOtherListBoxWindow = static_cast<ImplListBoxWindow&>(rOther); mpEntryList->take_properties(*rOtherListBoxWindow.mpEntryList); - Control::take_properties(rOther); + maFocusRect = rOtherListBoxWindow.maFocusRect; + maUserItemSize = rOtherListBoxWindow.maUserItemSize; + mnMaxTxtHeight = rOtherListBoxWindow.mnMaxTxtHeight; + mnMaxTxtWidth = rOtherListBoxWindow.mnMaxTxtWidth; + mnMaxImgTxtWidth = rOtherListBoxWindow.mnMaxImgTxtWidth; + mnMaxImgWidth = rOtherListBoxWindow.mnMaxImgWidth; + mnMaxImgHeight = rOtherListBoxWindow.mnMaxImgHeight; + mnMaxWidth = rOtherListBoxWindow.mnMaxWidth; + mnMaxHeight = rOtherListBoxWindow.mnMaxHeight; + mnCurrentPos = rOtherListBoxWindow.mnCurrentPos; + mnTrackingSaveSelection = rOtherListBoxWindow.mnTrackingSaveSelection; + mnSeparatorPos = rOtherListBoxWindow.mnSeparatorPos; + mnUserDrawEntry = rOtherListBoxWindow.mnUserDrawEntry; + mnTop = rOtherListBoxWindow.mnTop; + mnLeft = rOtherListBoxWindow.mnLeft; + mnBorder = rOtherListBoxWindow.mnBorder; + mnTextHeight = rOtherListBoxWindow.mnTextHeight; + meProminentType = rOtherListBoxWindow.meProminentType; + mnSelectModifier = rOtherListBoxWindow.mnSelectModifier; + mbHasFocusRect = rOtherListBoxWindow.mbHasFocusRect; + mbSort = rOtherListBoxWindow.mbSort; + mbTrack = rOtherListBoxWindow.mbTrack; + mbMulti = rOtherListBoxWindow.mbMulti; + mbStackMode = rOtherListBoxWindow.mbStackMode; + mbSimpleMode = rOtherListBoxWindow.mbSimpleMode; + mbImgsDiffSz = rOtherListBoxWindow.mbImgsDiffSz; + mbTravelSelect = rOtherListBoxWindow.mbTravelSelect; + mbTrackingSelect = rOtherListBoxWindow.mbTrackingSelect; + mbSelectionChanged = rOtherListBoxWindow.mbSelectionChanged; + mbMouseMoveSelect = rOtherListBoxWindow.mbMouseMoveSelect; + mbGrabFocus = rOtherListBoxWindow.mbGrabFocus; + mbUserDrawEnabled = rOtherListBoxWindow.mbUserDrawEnabled; + mbInUserDraw = rOtherListBoxWindow.mbInUserDraw; + mbReadOnly = rOtherListBoxWindow.mbReadOnly; + mbMirroring = rOtherListBoxWindow.mbMirroring; + mbRight = rOtherListBoxWindow.mbRight; + mbCenter = rOtherListBoxWindow.mbCenter; } // ----------------------------------------------------------------------- @@ -2778,6 +2821,18 @@ ImplWin::ImplWin( Window* pParent, WinBits nWinStyle ) : mnItemPos = LISTBOX_ENTRY_NOTFOUND; } +void ImplWin::take_properties(Window &rOther) +{ + Control::take_properties(rOther); + + ImplWin &rOtherImplWin = static_cast<ImplWin&>(rOther); + mnItemPos = rOtherImplWin.mnItemPos; + maString = rOtherImplWin.maString; + maImage = rOtherImplWin.maImage; + maFocusRect = rOtherImplWin.maFocusRect; + maUserItemSize = rOtherImplWin.maUserItemSize; +}; + // ----------------------------------------------------------------------- void ImplWin::MBDown() diff --git a/vcl/source/control/lstbox.cxx b/vcl/source/control/lstbox.cxx index ebac07f..fe7f35b 100644 --- a/vcl/source/control/lstbox.cxx +++ b/vcl/source/control/lstbox.cxx @@ -98,6 +98,7 @@ void ListBox::take_properties(Window &rOther) mbDDAutoSize = rOtherListBox.mbDDAutoSize; mnLineCount = rOtherListBox.mnLineCount; mpImplLB->take_properties(*rOtherListBox.mpImplLB); + mpImplWin->take_properties(*rOtherListBox.mpImplWin); } // ----------------------------------------------------------------------- diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index dd43b93..963792b 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -707,6 +707,8 @@ void VclBuilder::mungemodel(ListBox &rTarget, ListStore &rStore) { rTarget.InsertEntry(rtl::OStringToOUString(*aI, RTL_TEXTENCODING_UTF8)); } + if (!rStore.m_aEntries.empty()) + rTarget.SelectEntryPos(0); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 2022404f46bf6377aad301fa7e80204561bb0966 Author: Caolán McNamara <caol...@redhat.com> Date: Wed Jun 6 09:17:26 2012 +0100 transfer contents of listboxes diff --git a/vcl/inc/ilstbox.hxx b/vcl/inc/ilstbox.hxx index cecf3b8..fda1b38 100644 --- a/vcl/inc/ilstbox.hxx +++ b/vcl/inc/ilstbox.hxx @@ -196,6 +196,8 @@ public: first selectable entry after nPos is bForward is false. */ sal_uInt16 FindFirstSelectable( sal_uInt16 nPos, bool bForward = true ); + + void take_properties(ImplEntryList &rOther); }; // --------------------- @@ -388,6 +390,11 @@ public: inline void EnableMirroring() { mbMirroring = sal_True; } inline sal_Bool IsMirroring() const { return mbMirroring; } + /* + * Takes ownership of the rOther properties + */ + virtual void take_properties(Window &rOther); + protected: // ISearchableStringList virtual ::vcl::StringEntryIdentifier CurrentEntry( String& _out_entryText ) const; @@ -515,6 +522,8 @@ public: // pb: #106948# explicit mirroring for calc inline void EnableMirroring() { maLBWindow.EnableMirroring(); } inline void SetDropTraget(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& i_xDNDListenerContainer){ mxDNDListenerContainer= i_xDNDListenerContainer; } + + virtual void take_properties(Window &rOther); }; // ----------------------------- diff --git a/vcl/source/control/ilstbox.cxx b/vcl/source/control/ilstbox.cxx index f6236b5..e7f8a0a 100644 --- a/vcl/source/control/ilstbox.cxx +++ b/vcl/source/control/ilstbox.cxx @@ -540,6 +540,11 @@ sal_uInt16 ImplEntryList::FindFirstSelectable( sal_uInt16 nPos, bool bForward /* return LISTBOX_ENTRY_NOTFOUND; } +void ImplEntryList::take_properties(ImplEntryList &rOther) +{ + maEntries.swap(rOther.maEntries); +} + // ======================================================================= ImplListBoxWindow::ImplListBoxWindow( Window* pParent, WinBits nWinStyle ) : @@ -587,6 +592,14 @@ ImplListBoxWindow::ImplListBoxWindow( Window* pParent, WinBits nWinStyle ) : ImplCalcMetrics(); } +void ImplListBoxWindow::take_properties(Window &rOther) +{ + ImplListBoxWindow &rOtherListBoxWindow = static_cast<ImplListBoxWindow&>(rOther); + mpEntryList->take_properties(*rOtherListBoxWindow.mpEntryList); + + Control::take_properties(rOther); +} + // ----------------------------------------------------------------------- ImplListBoxWindow::~ImplListBoxWindow() @@ -2267,6 +2280,14 @@ ImplListBox::ImplListBox( Window* pParent, WinBits nWinStyle ) : maLBWindow.Show(); } +void ImplListBox::take_properties(Window &rOther) +{ + Control::take_properties(rOther); + + ImplListBox &rOtherListBoxWindow = static_cast<ImplListBox&>(rOther); + maLBWindow.take_properties(rOtherListBoxWindow.maLBWindow); +} + // ----------------------------------------------------------------------- ImplListBox::~ImplListBox() diff --git a/vcl/source/control/lstbox.cxx b/vcl/source/control/lstbox.cxx index edaac63..ebac07f 100644 --- a/vcl/source/control/lstbox.cxx +++ b/vcl/source/control/lstbox.cxx @@ -92,13 +92,12 @@ void ListBox::take_properties(Window &rOther) Control::take_properties(rOther); - fprintf(stderr, "ListBox::take_properties\n"); ListBox &rOtherListBox = static_cast<ListBox&>(rOther); mnDDHeight = rOtherListBox.mnDDHeight; mnSaveValue = rOtherListBox.mnSaveValue; mbDDAutoSize = rOtherListBox.mbDDAutoSize; mnLineCount = rOtherListBox.mnLineCount; - fprintf(stderr, "ListBox::take_properties %p %d\n", this, IsVisible()); + mpImplLB->take_properties(*rOtherListBox.mpImplLB); } // ----------------------------------------------------------------------- commit e3f3e466d6fa51a3ac43b51d79f3d755177ce644 Author: Caolán McNamara <caol...@redhat.com> Date: Wed Jun 6 08:56:46 2012 +0100 import GtkListStore contents to ListBox diff --git a/vcl/inc/vcl/builder.hxx b/vcl/inc/vcl/builder.hxx index 6b23372..80b6536 100644 --- a/vcl/inc/vcl/builder.hxx +++ b/vcl/inc/vcl/builder.hxx @@ -34,6 +34,8 @@ #include <map> #include <vector> +class ListBox; + class VCL_DLLPUBLIC VclBuilder { private: @@ -52,17 +54,41 @@ private: }; std::vector<WinAndId> m_aChildren; - struct RadioButtonGroupMap + struct ListStore + { + std::vector<rtl::OString> m_aEntries; + }; + + struct ModelAndId + { + rtl::OString m_sID; + ListStore *m_pModel; + ModelAndId(const rtl::OString &rId, ListStore *pListStore) + : m_sID(rId) + , m_pModel(pListStore) + { + } + }; + std::vector<ModelAndId> m_aModels; + + struct StringPair { rtl::OString m_sID; - rtl::OString m_sGroup; - RadioButtonGroupMap(const rtl::OString &rId, const rtl::OString &rGroup) + rtl::OString m_sValue; + StringPair(const rtl::OString &rId, const rtl::OString &rValue) : m_sID(rId) - , m_sGroup(rGroup) + , m_sValue(rValue) { } }; - std::vector<RadioButtonGroupMap> m_aGroups; + + typedef StringPair RadioButtonGroupMap; + std::vector<RadioButtonGroupMap> m_aGroupMaps; + + typedef StringPair ComboBoxModelMap; + std::vector<ComboBoxModelMap> m_aModelMaps; + ListStore *get_model_by_name(rtl::OString sID); + static void mungemodel(ListBox &rTarget, ListStore &rStore); rtl::OString m_sID; Window *m_pParent; @@ -82,6 +108,7 @@ private: Window *insertObject(Window *pParent, const rtl::OString &rClass, const rtl::OString &rID, stringmap &rVec); Window *makeObject(Window *pParent, const rtl::OString &rClass, const rtl::OString &rID, stringmap &rVec); bool extractGroup(const rtl::OString &id, stringmap &rVec); + bool extractModel(const rtl::OString &id, stringmap &rVec); void handleChild(Window *pParent, xmlreader::XmlReader &reader); Window* handleObject(Window *pParent, xmlreader::XmlReader &reader); @@ -89,6 +116,8 @@ private: void applyPackingProperty(Window *pCurrent, xmlreader::XmlReader &reader); void collectProperty(xmlreader::XmlReader &reader, stringmap &rVec); + void handleListStore(xmlreader::XmlReader &reader, const rtl::OString &rID); + //Helpers to retrofit all the existing code the the builder static void swapGuts(Window &rOrig, Window &rReplacement); static sal_uInt16 getPositionWithinParent(Window &rWindow); diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index 66e1829..dd43b93 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -45,17 +45,36 @@ VclBuilder::VclBuilder(Window *pParent, rtl::OUString sUri, rtl::OString sID) handleChild(pParent, reader); //Set radiobutton groups when everything has been imported - for (std::vector<RadioButtonGroupMap>::iterator aI = m_aGroups.begin(), - aEnd = m_aGroups.end(); aI != aEnd; ++aI) + for (std::vector<RadioButtonGroupMap>::iterator aI = m_aGroupMaps.begin(), + aEnd = m_aGroupMaps.end(); aI != aEnd; ++aI) { RadioButton *pOne = static_cast<RadioButton*>(get_by_name(aI->m_sID)); - RadioButton *pOther = static_cast<RadioButton*>(get_by_name(aI->m_sGroup)); + RadioButton *pOther = static_cast<RadioButton*>(get_by_name(aI->m_sValue)); SAL_WARN_IF(!pOne || !pOther, "vcl", "missing member of radiobutton group"); if (pOne && pOther) pOne->group(*pOther); } //drop maps now - std::vector<RadioButtonGroupMap>().swap(m_aGroups); + std::vector<RadioButtonGroupMap>().swap(m_aGroupMaps); + + //Set ComboBox models when everything has been imported + for (std::vector<ComboBoxModelMap>::iterator aI = m_aModelMaps.begin(), + aEnd = m_aModelMaps.end(); aI != aEnd; ++aI) + { + ListBox *pTarget = static_cast<ListBox*>(get_by_name(aI->m_sID)); + ListStore *pStore = static_cast<ListStore*>(get_model_by_name(aI->m_sValue)); + SAL_WARN_IF(!pTarget || !pStore, "vcl", "missing elements of combobox/liststore"); + if (pTarget && pStore) + mungemodel(*pTarget, *pStore); + } + //drop maps now + std::vector<ComboBoxModelMap>().swap(m_aModelMaps); + for (std::vector<ModelAndId>::iterator aI = m_aModels.begin(), + aEnd = m_aModels.end(); aI != aEnd; ++aI) + { + delete aI->m_pModel; + } + std::vector<ModelAndId>().swap(m_aModels); //auto-show (really necessary ?, maybe drop it when complete) for (std::vector<WinAndId>::iterator aI = m_aChildren.begin(), @@ -138,7 +157,19 @@ bool VclBuilder::extractGroup(const rtl::OString &id, stringmap &rMap) VclBuilder::stringmap::iterator aFind = rMap.find(rtl::OString(RTL_CONSTASCII_STRINGPARAM("group"))); if (aFind != rMap.end()) { - m_aGroups.push_back(RadioButtonGroupMap(id, aFind->second)); + m_aGroupMaps.push_back(RadioButtonGroupMap(id, aFind->second)); + rMap.erase(aFind); + return true; + } + return false; +} + +bool VclBuilder::extractModel(const rtl::OString &id, stringmap &rMap) +{ + VclBuilder::stringmap::iterator aFind = rMap.find(rtl::OString(RTL_CONSTASCII_STRINGPARAM("model"))); + if (aFind != rMap.end()) + { + m_aModelMaps.push_back(ComboBoxModelMap(id, aFind->second)); rMap.erase(aFind); return true; } @@ -182,7 +213,10 @@ Window *VclBuilder::makeObject(Window *pParent, const rtl::OString &name, const else if (name.equalsL(RTL_CONSTASCII_STRINGPARAM("GtkSpinButton"))) pWindow = new MetricField(pParent, WB_RIGHT|WB_SPIN|WB_BORDER|WB_3DLOOK); else if (name.equalsL(RTL_CONSTASCII_STRINGPARAM("GtkComboBox"))) + { + extractModel(id, rMap); pWindow = new ListBox(pParent, WB_LEFT|WB_DROPDOWN|WB_VCENTER|WB_3DLOOK); + } else if (name.equalsL(RTL_CONSTASCII_STRINGPARAM("GtkLabel"))) pWindow = new FixedText(pParent, WB_CENTER|WB_VCENTER|WB_3DLOOK); else if (name.equalsL(RTL_CONSTASCII_STRINGPARAM("GtkEntry"))) @@ -348,6 +382,45 @@ void VclBuilder::handleChild(Window *pParent, xmlreader::XmlReader &reader) } } +void VclBuilder::handleListStore(xmlreader::XmlReader &reader, const rtl::OString &rID) +{ + m_aModels.push_back(ModelAndId(rID, new ListStore)); + + int nLevel = 1; + + while(1) + { + xmlreader::Span name; + int nsId; + + xmlreader::XmlReader::Result res = reader.nextItem( + xmlreader::XmlReader::TEXT_NONE, &name, &nsId); + + if (res == xmlreader::XmlReader::RESULT_DONE) + break; + + if (res == xmlreader::XmlReader::RESULT_BEGIN) + { + ++nLevel; + if (name.equals(RTL_CONSTASCII_STRINGPARAM("col"))) + { + reader.nextItem( + xmlreader::XmlReader::TEXT_NORMALIZED, &name, &nsId); + rtl::OString sValue(name.begin, name.length); + m_aModels.back().m_pModel->m_aEntries.push_back(sValue); + } + } + + if (res == xmlreader::XmlReader::RESULT_END) + { + --nLevel; + } + + if (!nLevel) + break; + } +} + Window* VclBuilder::handleObject(Window *pParent, xmlreader::XmlReader &reader) { rtl::OString sClass; @@ -371,6 +444,12 @@ Window* VclBuilder::handleObject(Window *pParent, xmlreader::XmlReader &reader) } + if (sClass.equalsL(RTL_CONSTASCII_STRINGPARAM("GtkListStore"))) + { + handleListStore(reader, sID); + return NULL; + } + int nLevel = 1; stringmap aProperties; @@ -540,6 +619,18 @@ Window *VclBuilder::get_by_name(rtl::OString sID) return NULL; } +VclBuilder::ListStore *VclBuilder::get_model_by_name(rtl::OString sID) +{ + for (std::vector<ModelAndId>::iterator aI = m_aModels.begin(), + aEnd = m_aModels.end(); aI != aEnd; ++aI) + { + if (aI->m_sID.equals(sID)) + return aI->m_pModel; + } + + return NULL; +} + void VclBuilder::swapGuts(Window &rOrig, Window &rReplacement) { #if 1 @@ -609,4 +700,13 @@ bool VclBuilder::replace(rtl::OString sID, Window &rReplacement) return false; } +void VclBuilder::mungemodel(ListBox &rTarget, ListStore &rStore) +{ + for (std::vector<rtl::OString>::iterator aI = rStore.m_aEntries.begin(), aEnd = rStore.m_aEntries.end(); + aI != aEnd; ++aI) + { + rTarget.InsertEntry(rtl::OStringToOUString(*aI, RTL_TEXTENCODING_UTF8)); + } +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit a10359620b00eaf23873f50b37eda9f1531390fe Author: Caolán McNamara <caol...@redhat.com> Date: Tue Jun 5 13:07:30 2012 +0100 put .ui file into correct location diff --git a/sw/Package_uiconfig.mk b/sw/Package_uiconfig.mk index 5862eba..0aca6ef 100644 --- a/sw/Package_uiconfig.mk +++ b/sw/Package_uiconfig.mk @@ -29,7 +29,7 @@ $(eval $(call gb_Package_Package,sw_uiconfig,$(SRCDIR)/sw/uiconfig)) $(eval $(call gb_Package_add_file,sw_uiconfig,xml/uiconfig/modules/swriter/ui/titlepage.ui,swriter/ui/titlepage.ui)) -$(eval $(call gb_Package_add_file,sw_uiconfig,xml/uiconfig/modules/sw/ui/20705.ui,sw/ui/20705.ui)) +$(eval $(call gb_Package_add_file,sw_uiconfig,xml/uiconfig/sw/ui/20705.ui,sw/ui/20705.ui)) $(eval $(call gb_Package_add_file,sw_uiconfig,xml/uiconfig/modules/sglobal/menubar/menubar.xml,sglobal/menubar/menubar.xml)) $(eval $(call gb_Package_add_file,sw_uiconfig,xml/uiconfig/modules/sglobal/statusbar/statusbar.xml,sglobal/statusbar/statusbar.xml))
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits