summaryrefslogtreecommitdiffstats
path: root/vcl/inc
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-06-06 08:56:46 +0100
committerCaolán McNamara <caolanm@redhat.com>2012-09-28 08:48:23 +0100
commitd21bee32803a83bb86e3db796c2fad655c9431f4 (patch)
tree91f79d3bd20e173aec63817e732c55f631c9d9a5 /vcl/inc
parentput .ui file into correct location (diff)
downloadcore-d21bee32803a83bb86e3db796c2fad655c9431f4.tar.gz
core-d21bee32803a83bb86e3db796c2fad655c9431f4.zip
import GtkListStore contents to ListBox
Diffstat (limited to 'vcl/inc')
-rw-r--r--vcl/inc/vcl/builder.hxx39
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);