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::Sequencecom::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.me...@suse.com , Pseudo Engineer, itinerant idiot
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice