summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-09-19 10:14:00 +0100
committerCaolán McNamara <caolanm@redhat.com>2012-09-28 08:48:49 +0100
commitfdc8245182dd3fc44289a39976ee41e59451127f (patch)
treed50e136c802c527b56fca4c4ac1e3cccfef10f4c /vcl
parent6a0951a9bc564d8e214472bd84aec2971b9e9d64 (diff)
import inconsistent-state GtkCheckButtons as TriStateBoxs
Change-Id: If7fbe960bf5af31b51a7e454b8131c31b232a79b
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/window/builder.cxx23
1 files changed, 22 insertions, 1 deletions
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index 2d2405d75f00..631b67eec5e0 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -214,6 +214,18 @@ namespace
return bVertical;
}
+ bool extractInconsistent(VclBuilder::stringmap &rMap)
+ {
+ bool bInconsistent = false;
+ VclBuilder::stringmap::iterator aFind = rMap.find(rtl::OString(RTL_CONSTASCII_STRINGPARAM("inconsistent")));
+ if (aFind != rMap.end())
+ {
+ bInconsistent = toBool(aFind->second);
+ rMap.erase(aFind);
+ }
+ return bInconsistent;
+ }
+
Window * extractStockAndBuildButton(Window *pParent, VclBuilder::stringmap &rMap)
{
WinBits nBits = WB_CENTER|WB_VCENTER|WB_3DLOOK;
@@ -436,7 +448,16 @@ Window *VclBuilder::makeObject(Window *pParent, const rtl::OString &name, const
pWindow = new RadioButton(pParent, WB_CENTER|WB_VCENTER|WB_3DLOOK);
}
else if (name.equalsL(RTL_CONSTASCII_STRINGPARAM("GtkCheckButton")))
- pWindow = new CheckBox(pParent, WB_CENTER|WB_VCENTER|WB_3DLOOK);
+ {
+ //maybe always import as TriStateBox and enable/disable tristate
+ bool bIsTriState = extractInconsistent(rMap);
+ CheckBox *pCheckBox = bIsTriState ?
+ new TriStateBox(pParent, WB_CENTER|WB_VCENTER|WB_3DLOOK) :
+ new CheckBox(pParent, WB_CENTER|WB_VCENTER|WB_3DLOOK);
+ if (bIsTriState)
+ pCheckBox->SetState(STATE_DONTKNOW);
+ pWindow = pCheckBox;
+ }
else if (name.equalsL(RTL_CONSTASCII_STRINGPARAM("GtkSpinButton")))
{
extractAdjustment(id, rMap);