Hi All!
I have realized that one problem is that in the old style I was calling
the ctor of the *ComboBox* directly, and was able to set *WinBits* flags:
*aPaletteComboBox( this, WinBits( WB_BORDER | WB_DROPDOWN | WB_AUTOSIZE)
),*
However, now I use *VclBuilder::get*, and I can't do this. I tried
setting the flags after construction
*mpPaletteComboBox->SetStyle( WinBits(WB_BORDER | WB_DROPDOWN |
WB_AUTOSIZE) );*
but I think these flags affect the object construction itself, so by that
point, it's too late.
*WB_DROPDOWN* is key here, because if it's not set, *mpFloatWin* won't be
initialized.
I tried looking in Glade, to see if I can set these flags there, but I
couldn't find anything.
All the best,
Krisztian
On 18 July 2014 14:37, Krisztian Pinter <pin.terminator@gmail.com> wrote:
Hi All!
I'm working on converting the palette popup window (*SvxColorWindow_Impl*,
looks like this in my branch right now: http://i.imgur.com/4XAbRaH.png)
to use the widget layout, and I kind of got it working. It places the
widgets based on a .ui file, but a *ComboBox* makes LO crash at the
slightest provocation.
To make *SvxColorWindow_Impl* use the widget layout, I did some
research, and I drew this inheritance diagram:
http://i.imgur.com/KK2GegK.jpg
I made *FloatingWindow* also inherit from *VclBuilderContainer*, like
*Dialog*, and added new ctors to *FloatingWindow* and *SfxPopupWindow*,
that take two extra string parameters for the .ui file location and the id
of the root widget.
I hardcoded the .ui path for *SvxColorWindow_Impl* in its ctor, since
it's supposed to be a leaf in the inheritance tree.
I also copypasted *GetOptimalSize*, *SetPosSizePixel*, *SetSizePixel*
and *SetPosPixel* from *TabPage* to *FloatingWindow*.
This made the popup window show up, if I disabled parts of the code that
called methods on the *ComboBox*.
The *ComboBox* is initialized with *get*, as all other widgets.
I found that *mpFloatWin* in *ComboBox* gets set to *0xcccccccccccccccc*,
so I think it's not initialized properly. (I'm giving *get* the correct
id from the .ui, so that's not it.)
If I call either *AdaptDropDownLineCountToMaximu**m* or *InsertEntry* in
the ctor of *SvxColorWindow_Impl*, LO crashes immediately when the popup
window is opened.
Are there any well known/typical reasons why this would happen?
If anyone has any insights, please share them! Thank you!
All the best,
Krisztian
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.