Re: UI question regarding SfxToolBoxControls

2012-02-21 Thread Michael Meeks
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


UI question regarding SfxToolBoxControls

2012-02-20 Thread Winfried Donkers
I am working on fdo45671 which concerns the use of 'split buttons' for 
font/background/border colours, split button meaning that you can either choose 
from the colour palette or that you can use the used color.
Presently, the last used colour is stored within the control (mLastColor) and 
in the shell (e.g. ScFormatShell, SwTextShell) where the execute function is.
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.
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.

Thanks for any help :)

Winfried

___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice