diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2012-11-21 17:19:28 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-11-21 17:47:43 +0100 |
commit | ea91c7d90d74e1ca039ba669b5d3e14fa359c0fa (patch) | |
tree | 1f8bd3b84fa18737164ed944d9db401794985677 /offapi | |
parent | 397f3e5d7b0b079ef3a6ef4b859ea2b2ab814b67 (diff) |
Turn presenter screen from bundled extension to plain code
The immediate trigger was 5e5c11c664f67ff9fd1120905b09a32bea3b2f6c "fdo#42070
Fix RTL support in presenter console" causing build failures on Mac OS X when
linking the extension against vcl, but there should be more benefits of going
from a bundled-anyway extension to plain code. (Not the least to get rid of the
com.sun.star.drawing.XPresenterHelper hack.)
To avoid unnecessary confusion between the newly plain code and any instance of
the old extension still installed (per-user or shared), I renamed all relevant
identifiers as follows:
* UNO implementation com.sun.star.comp.Draw.framework.PresenterScreenJob ->
org.libreoffice.comp.PresenterScreenJob
* UNO implementation com.sun.star.sdext.presenter.PresenterProtocolHandler ->
org.libreoffice.comp.PresenterScreenProtocolHandler
* protocol handler schema vnd.com.sun.star.comp.PresenterScreen ->
vnd.org.libreoffice.presenterscreen
* configuration schema /org.openoffice.Office.extension.PresenterScreen ->
/org.openoffice.Office.PresenterScreen (it appears this contains little to no
user-changeable data anyway, so not migrating it to a new user profile due to
the schema name change should not be problematic)
* job ID onDocumentOpenedJob -> org.libreoffice.PresenterScreen
Even with these precautions, having the presenter screen installed both as plain
code and as a (per-user or shared) extension still leads to a crash when
activating presentation mode (likely due to how both codes want to take control
of the screen). To mitigate this, existing installations of the extension are
explicitly not migrated to new user profiles.
The sdext/source/presenter/bitmaps/*.png files were moved to
icon-themes/galaxy/sd/res/presenterscreen-*.png and are now accessed via SdResId
(adding the relevant data to sd/source/ui/inc/res_bmp.hrc and
sd/source/ui/app/res_bmp.src; not sure whether these locations are already
ideal).
The code itself has been left mostly unchanged in sdext/source/presenter/, and
it still clumsily communicates with sd core code via XPresenterHelper. There is
a lot of room for improvement here.
The help data is left untouched at sdext/source/presenter/help/ and needs to
be incorporated properly into helpcontent2 in a follow-up commit.
The --disable-ext-presenter-console configure switch is gone.
Change-Id: I71adb7ae6dcdbd1802151fce6e3871d8a2026332
Diffstat (limited to 'offapi')
-rw-r--r-- | offapi/com/sun/star/drawing/XPresenterHelper.idl | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/offapi/com/sun/star/drawing/XPresenterHelper.idl b/offapi/com/sun/star/drawing/XPresenterHelper.idl index 003b6c1b5e75..6d40c6af3c9b 100644 --- a/offapi/com/sun/star/drawing/XPresenterHelper.idl +++ b/offapi/com/sun/star/drawing/XPresenterHelper.idl @@ -28,13 +28,13 @@ module com { module sun { module star { module drawing { -/** This interface is a collection of functions that are necessary to +/** This interface is a collection of functions that were necessary to implement larger parts of the presenter screen as extension. The - methods of this interface give access to services that can, at the - moment, only implemented in the Office core, not in an extension. + methods of this interface give access to services that could only be + implemented in the Office core, not in an extension. - <p>With time some, maybe all, methods can moved to other, better suited, - interfaces.</p> + <p>As the presenter screen is no extension any more, this hack can go again; + it just needs clean-up.</p> */ interface XPresenterHelper { @@ -114,17 +114,15 @@ interface XPresenterHelper void toTop ( [in] ::com::sun::star::awt::XWindow xWindow); - /** Load a bitmap from a file or other accessible resource that can be - located via a URL. - @param sURL - The URL of the bitmap. For a file URL the bitmap is loaded from - the specified file. + /** Load a bitmap with a given ID. + @param id + The ID of the bitmap. @param xCanvas The bitmap is created to be compatible, and possibly optimized, for this canvas. */ ::com::sun::star::rendering::XBitmap loadBitmap ( - [in] string sURL, + [in] string id, [in] ::com::sun::star::rendering::XCanvas xCanvas); /** Capture the mouse so that no other window will receive mouse events. |