diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-06-06 08:56:46 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-09-28 08:48:23 +0100 |
commit | d21bee32803a83bb86e3db796c2fad655c9431f4 (patch) | |
tree | 91f79d3bd20e173aec63817e732c55f631c9d9a5 /vcl/inc | |
parent | put .ui file into correct location (diff) | |
download | core-d21bee32803a83bb86e3db796c2fad655c9431f4.tar.gz core-d21bee32803a83bb86e3db796c2fad655c9431f4.zip |
import GtkListStore contents to ListBox
Diffstat (limited to 'vcl/inc')
-rw-r--r-- | vcl/inc/vcl/builder.hxx | 39 |
1 files changed, 34 insertions, 5 deletions
diff --git a/vcl/inc/vcl/builder.hxx b/vcl/inc/vcl/builder.hxx index 6b2337283c16..80b6536912c7 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); |