vcl/source/window/builder.cxx | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-)
New commits: commit 324f939c6f2a9222ae5b6d7bf5410868a4841077 Author: Caolán McNamara <caol...@redhat.com> Date: Wed Sep 19 10:14:00 2012 +0100 import inconsistent-state GtkCheckButtons as TriStateBoxs Change-Id: If7fbe960bf5af31b51a7e454b8131c31b232a79b diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index 2d2405d..631b67e 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);
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits