diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-09-19 10:14:00 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-09-28 08:48:49 +0100 |
commit | fdc8245182dd3fc44289a39976ee41e59451127f (patch) | |
tree | d50e136c802c527b56fca4c4ac1e3cccfef10f4c /vcl/source/window | |
parent | 6a0951a9bc564d8e214472bd84aec2971b9e9d64 (diff) |
import inconsistent-state GtkCheckButtons as TriStateBoxs
Change-Id: If7fbe960bf5af31b51a7e454b8131c31b232a79b
Diffstat (limited to 'vcl/source/window')
-rw-r--r-- | vcl/source/window/builder.cxx | 23 |
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); |