[Libreoffice] [GSoC 2011][svgexport] Get selected slides in Impress left Pane

Marco mrcekets at gmail.com
Sun Jun 12 15:56:36 PDT 2011

On Sun, 12 Jun 2011 17:06:40 +0200, Thorsten Behrens  
<thb at documentfoundation.org> wrote:

> Marco wrote:
>> The following header files: FrameworkHelper.hxx, SlideSorter.hxx,
>> ShellView.hxx and in general all headers under sd/source/ui/inc/
>> are not delivered to solver/340/unxlngx6.pro/inc Is that normal ?
>> Or is there something broken in my build ?
>> In the first case how can I access such headers from the filter
>> module ?
> Hi Marco - not at all, my comment was meant to direct you to the
> implementation - which is sometimes the best approach on how to
> figure out how the API works. :)

Hi Thorsten,
give a look at this code fragment:

uno::Reference< uno::XComponentContext > xComponentContext  
if( xComponentContext.is() )
         uno::Reference< drawing::framework::XControllerManager > xCM(  
xController, uno::UNO_QUERY );
         if ( xCM.is() )
                 Reference< drawing::framework::XConfigurationController >  
xCC( xCM->getConfigurationController() );
                 if( xCC.is() )
                         const ::rtl::OUString msLeftImpressPaneURL(  
RTL_CONSTASCII_USTRINGPARAM( "private:resource/pane/LeftImpressPane" ) );
                         const ::rtl::OUString msSlideSorterURL(  
RTL_CONSTASCII_USTRINGPARAM( "private:resource/view/SlideSorter" ) );
                         Reference< drawing::framework::XView > xView(  
xCC->getResource( drawing::framework::ResourceId::createWithAnchorURL
									( xComponentContext, msSlideSorterURL, msLeftImpressPaneURL) ),  
uno::UNO_QUERY );
                         if( xView.is() )
                                // TODO


What I get is an XView object that does not support any service.
I look into the implementation code for SlideSorter and I found
out that this object, which I get, is indeed a fake XView:
its real type is a ViewShellWrapper from which we can get
a SlideSorterViewShell that owns a method to provide a
XDrawSubController interface for the view.
Now as I said my problem is that to utilize these classes I have
to include the headers under "sd/source/ui/inc/" but they are not
delivered to "solver/340/unxlngx6.pro/inc".
So what should I do ?


Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

More information about the LibreOffice mailing list