UI question regarding SfxToolBoxControls
Michael Meeks
michael.meeks at suse.com
Tue Feb 21 06:47:01 PST 2012
Hi there,
On Tue, 2012-02-21 at 08:52 +0100, Winfried Donkers wrote:
> Presently, the last used colour is stored within the control
> (mLastColor) and in the shell (e.g. ScFormatShell, SwTextShell) where
> the execute function is.
Riight - that doesn't seem so optimal :-)
> I would like to obtain the last used colour from the control when the
> execute function is called. When a user wants to use the last used
> colour, the execute funtion is called with the SlotId, but without
> other arguments.
OK - makes sense. So presumably we could add arguments to the
SfxRequest that gets passed in there with the last color selected ?
> Does anyone know if and how the control can be addressed from the
> execute function (with the SlotId as key)? I can then add a simple
> GetLastColor() method to the control and remove all redundant
> lastusedColor stuff within the shell.
Might it not be better to pass the color into the code via the
SfxRequest's Attrs ?
#0 ScFormatShell::ExecuteAttr (this=0x8ace6e0, rReq=...)
at /data/opt/libreoffice/master/sc/source/ui/view/formatsh.cxx:1421
#1 0xae7aadb0 in SfxStubScFormatShellExecuteAttr (pShell=0x8ace6e0,
rReq=...)
at /data/opt/libreoffice/master/workdir/unxlngi6.pro/SdiTarget/sc/sdi/scslots.hxx:5469
#2 0xb683094b in ?? () from /data/opt/OOInstall/program/libmergedlo.so
#3 0xb682bb25 in ?? () from /data/opt/OOInstall/program/libmergedlo.so
#4 0xb6840e12 in ?? () from /data/opt/OOInstall/program/libmergedlo.so
#5 0xb68413ef in ?? () from /data/opt/OOInstall/program/libmergedlo.so
#6 0xb693da13 in SfxToolBoxControl::Dispatch(rtl::OUString const&,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>&) ()
from /data/opt/OOInstall/program/libmergedlo.so
#7 0xb6e6caa1 in SvxFontColorExtToolBoxControl::Select(unsigned char)
() from /data/opt/OOInstall/program/libmergedlo.so
#8 0xb693b6a8 in SfxToolBoxControl::Select(unsigned short) ()
from /data/opt/OOInstall/program/libmergedlo.so
Looks like you could add
svx/source/tbxctrls/tbcontrl.cxx
some magic into the SfxToolboxControl::Dispatch's arguments, though I
suspect you'd need to tweak the scslots.sdi file for that ID as well -
it's not a piece I'm horribly familiar with, but hopefully tracing
through another id that passes more parameters might do.
Does that help ? :-) hopefully having got one done, the rest will
follow ...
Thanks for tackling this!
Michael.
--
michael.meeks at suse.com <><, Pseudo Engineer, itinerant idiot
More information about the LibreOffice
mailing list