Switch branches/tags
aoo/aw080
aoo/trunk
distro/capgemini/cg-4.1
distro/cib/libreoffice-5-0
distro/cib/libreoffice-5-1
distro/cib/libreoffice-5-2
distro/cib/libreoffice-5-3
distro/collabora/cd-5.3
distro/collabora/cp-4.0
distro/collabora/cp-4.1
distro/collabora/cp-4.2
distro/collabora/cp-4.3
distro/collabora/cp-4.4
distro/collabora/cp-5.0
distro/collabora/cp-5.1
distro/collabora/cp-5.3
distro/collabora/lof-4.3
distro/collabora/lov-4.4
distro/collabora/lov-5.0
distro/collabora/lov-5.1
distro/collabora/lov-5.2
distro/collabora/viewer
distro/collabora/viewer2
distro/escriba/escriba-5.2
distro/escriba/escriba-5.2.1
distro/mimo/mimo-4-1-4-2
distro/suse/suse-3.6-appup
distro/suse/suse-3.6
distro/suse/suse-3.6.3
distro/suse/suse-4.0
distro/suse/suse-4.0.3
distro/ubuntu/oneiric-3.4-all
distro/ubuntu/oneiric-3.4
distro/vector/vtext-6.5
feature/RotGrfFlyFrame
feature/RotateFlyFrame
feature/RotateFlyFrame2
feature/RotateFlyFrame3
feature/SfxShell_refcount
feature/SwFrameBorder
feature/accfixes2
feature/autostyle
feature/barcode
feature/base-preview
feature/borderline3
feature/bplustree
feature/cairo
feature/calc-data-table
feature/calc-parallel
feature/calctiledrendering_alt
feature/calctiledrendering_attempt3
feature/calctiledrendering_attempt3_2
feature/calctiledrendering
feature/calctiledrendering2
feature/calctiledrendering3
feature/calctiledrendering4
feature/calctiledrendering5
feature/chained-text-boxes
feature/change-tracking
feature/cib_contract57
feature/cib_contract101
feature/cib_contract116
feature/cib_contract136
feature/cib_contract138
feature/cib_contract152b
feature/cib_contract152
feature/cib_contract561
feature/cmis
feature/components
feature/coretext
feature/cp-5.0-cairo-svp
feature/cpu_intrinsics_support
feature/dataprovider
feature/debugevent
feature/dematurize01
feature/dialog-screenshots
feature/droid_calcimpress3
feature/droid_calimpress4
feature/editviewoverlay
feature/extended-tooltips
feature/external-data-ui
feature/fastparser
feature/firebird-sdbc
feature/firebird-sdbc2
feature/firebird-sdbc3
feature/fixes6
feature/fixes7
feature/fixes8
feature/fixes9
feature/fixes10
feature/fixes11
feature/fixes12
feature/fixes13
feature/fixes14
feature/fixes15
feature/fixes16
feature/fixes17
feature/fixes18
feature/fixes19
feature/fixes20
feature/fixes21
feature/fixes22
feature/fixes23
feature/fixes24
feature/fixes25
feature/fixes26
feature/fixes27
feature/fixes28
feature/fixes29
feature/fixes30
feature/fixes31
feature/fixes32
feature/fixes33
feature/fixes34
feature/fixes35
feature/fixes36
feature/fixes37
feature/fixes38
feature/fixstyles3
feature/fontsubtitutions
feature/gbuild_cli
feature/gccwrapper
feature/glyphy
feature/go2
feature/gpg4libre-5-4
feature/gpg4libre-6-0
feature/gpg4libre
feature/gpg4libre2
feature/graphicobject
feature/gsoc-basic-ide-completion-and-other-bits
feature/gsoc-calc-enhanced-db-range
feature/gsoc14-colors
feature/gsoc14-draw-chained-text-boxes
feature/gsoc14-draw-text-background-color
feature/gsoc14-libcmis
feature/gsoc14-libcmis2
feature/gsoc14-personas
feature/gsoc14-personas2
feature/gsoc15-online-update
feature/gsoc15-open-remote-files-dialog
feature/gsoc17-revamp-customize-dialog
feature/gsoc2011_wizards
feature/gtk3nativedialogs
feature/gtktiledviewer
feature/ia2
feature/ia2.2
feature/ia2.3
feature/ia2.4
feature/ia2.5
feature/improvexlsximport
feature/instdirlinktargets
feature/kde5
feature/lfrb-vcl-opengl
feature/libffi
feature/lok_cellcursor
feature/lok_dialog-backport
feature/lok_dialog
feature/lok_dialog2
feature/lok_sofficemain
feature/lok_sofficemain2
feature/mac-opengl-fixes
feature/mailmerge-toolbar
feature/mar-updater
feature/mariadb
feature/misc-vba-rework
feature/mork
feature/nativealpha
feature/notebookbar
feature/notes-refactoring
feature/opengl-canvas-rework
feature/opengl-transitions-rework
feature/opengl-vcl-text
feature/orcus-continuous-integration
feature/orcus-odf-rebased
feature/orcus-odf-rebased2
feature/orcus-odf
feature/orcus-rebased
feature/owncloud-provider-for-android
feature/perfwork4
feature/perfwork5
feature/pivotcharts
feature/priorities
feature/profilesafemode
feature/propose-master-cib
feature/pytable
feature/pyweb-wizard
feature/qt5
feature/refactor-god-objects
feature/rendercontext
feature/screenshotannotation
feature/sgexperiment
feature/slidehack
feature/slidehack2
feature/slideshow_onlySprites
feature/slideshowprimitives
feature/stub_writer
feature/svg-export
feature/svg-optimisations-5-0
feature/svg-optimisations
feature/sw-delete-undo-rework
feature/table-style-rebased
feature/table-style
feature/table_rotated_text
feature/template_manager_improvements
feature/template_manager_improvements2
feature/themesupport
feature/tiled-editing
feature/tscp3
feature/unitver
feature/unocrsrptr
feature/unostyles
feature/unostyles2
feature/unostyles3
feature/use-ogl-context-in-canvas
feature/vcl-opengl-integration
feature/vcl-opengl
feature/vcl-opengl2
feature/vclptr
feature/vlc-rb
feature/vlc
feature/vs2012
feature/xtiledrenderable
feature/5-1-pick
libreoffice-3-5-0
libreoffice-3-5-1
libreoffice-3-5-2
libreoffice-3-5-3
libreoffice-3-5-4
libreoffice-3-5-5
libreoffice-3-5-6
libreoffice-3-5-7
libreoffice-3-5
libreoffice-3-6-0
libreoffice-3-6-1
libreoffice-3-6-2
libreoffice-3-6-3
libreoffice-3-6-4
libreoffice-3-6-5
libreoffice-3-6-6
libreoffice-3-6-7
libreoffice-3-6
libreoffice-4-0-0
libreoffice-4-0-1
libreoffice-4-0-2
libreoffice-4-0-3
libreoffice-4-0-4
libreoffice-4-0-5
libreoffice-4-0-6
libreoffice-4-0
libreoffice-4-1-0
libreoffice-4-1-1
libreoffice-4-1-2
libreoffice-4-1-3
libreoffice-4-1-4
libreoffice-4-1-5
libreoffice-4-1-6
libreoffice-4-1
libreoffice-4-2-0
libreoffice-4-2-1
libreoffice-4-2-2
libreoffice-4-2-3
libreoffice-4-2-4
libreoffice-4-2-5
libreoffice-4-2-6
libreoffice-4-2-7
libreoffice-4-2-8
libreoffice-4-2
libreoffice-4-3-0
libreoffice-4-3-1
libreoffice-4-3-2
libreoffice-4-3-3
libreoffice-4-3-4
libreoffice-4-3-5
libreoffice-4-3-6
libreoffice-4-3-7
libreoffice-4-3
libreoffice-4-4-0
libreoffice-4-4-1
libreoffice-4-4-2
libreoffice-4-4-3
libreoffice-4-4-4
libreoffice-4-4-5
libreoffice-4-4-6
libreoffice-4-4-7
libreoffice-4-4
libreoffice-5-0-0
libreoffice-5-0-1
libreoffice-5-0-2
libreoffice-5-0-3
libreoffice-5-0-4
libreoffice-5-0-5
libreoffice-5-0-6
libreoffice-5-0
libreoffice-5-1-0
libreoffice-5-1-1
libreoffice-5-1-2
libreoffice-5-1-3
libreoffice-5-1-4
libreoffice-5-1-5
libreoffice-5-1-6
libreoffice-5-1
libreoffice-5-2-0
libreoffice-5-2-1
libreoffice-5-2-2
libreoffice-5-2-3
libreoffice-5-2-4
libreoffice-5-2-5
libreoffice-5-2-6
libreoffice-5-2-7
libreoffice-5-2
libreoffice-5-3-0
libreoffice-5-3-1
libreoffice-5-3-2
libreoffice-5-3-3
libreoffice-5-3-4
libreoffice-5-3-5
libreoffice-5-3-6
libreoffice-5-3-7
libreoffice-5-3
libreoffice-5-4-0
libreoffice-5-4-1
libreoffice-5-4-2
libreoffice-5-4-3
libreoffice-5-4-4
libreoffice-5-4
libreoffice-6-0
master
ports/macosx10.5/master
private/Ashod/cp-5.0-preinit
private/Ashod/fast-calc-rendering
private/Rosemary/change-tracking
private/ajrhunt/c4
private/ajrhunt/cunit
private/ajrhunt/cunitdemo
private/ajrhunt/firebird-improvement
private/bubli/gpg4libre
private/bubli/lhm-4-1-6-backports
private/bubli/sw_16bit
private/bubli/textboxchaining
private/hcvcastro/preinit
private/hcvcastro/undo-row-comment
private/jmux/kde5
private/jmux/scheduler-fixes
private/jmux/tdf#105288
private/juergen/propose-master
private/juergen/tr16164
private/kendy/condformat-api
private/kendy/condformat-fdo82014
private/kendy/mailmerge-04
private/kendy/mailmerge-05
private/kendy/swinterpreter
private/kendy/testcl
private/kohei/chart-bugs
private/kohei/find-replace-all-perf
private/kohei/headless-perf
private/kohei/if-or-not-if-jump
private/kohei/sort-ref-update
private/lfrb/opengl-vcl
private/lgodard/calc_notes_import_export
private/llunak/mailmerge
private/llunak/mailmerge_01
private/llunak/mailmerge_02
private/llunak/mailmerge_03
private/llunak/munich_12587
private/lmamane/basetest
private/lmamane/for-julien2412-master
private/lmamane/for-julien2412
private/lmamane/tdf110997
private/lmamane/timedate-controls-nanosecond
private/mcecchetti/amd/pdf-export-jpeg
private/mcecchetti/bitmapcrc64-5-0
private/mcecchetti/bitmapcrc64
private/mcecchetti/calc-perf-unit-test
private/mcecchetti/calc-unit-test
private/mcecchetti/gl-program-binary
private/mmeeks/aafixes44
private/mmeeks/bitmapcrc64
private/mmeeks/currency-dropdown
private/mmeeks/formula-iterator
private/mmeeks/gldebug
private/mmeeks/icontest
private/mmeeks/opengl-backbuffer
private/mmeeks/opengl-backbuffer2
private/mmeeks/vcl-opengl3
private/moggi/fix-opengl-context-problems
private/moggi/improved-dxf-xls-export
private/moggi/opengl-4-4-build-test
private/moggi/opengl-preparation
private/moggi/opengl-vcl-win
private/moggi/orcus-improvements
private/moggi/track-win-dc
private/moggi/ui-test
private/moggi/vcl-opengl3
private/pranavk/modernize_gtktiledviewer
private/swe/libreoffice-5-2+backports
private/tbsdy/clipping
private/tbsdy/drawserverfontlayout
private/tbsdy/emf
private/tbsdy/osl_getAllEnvironment
private/tbsdy/outdev
private/tbsdy/printinfomgr
private/tbsdy/workbench
private/thb/gpg4libre2
private/tml/android-use-bionic-linker-copy
private/tml/android-use-faulty.lib
private/tml/fixwintext
private/tml/iculess
private/tml/opencl-default-1
private/vmiklos/mm-embedding-5.0
Nothing to show
windows_build_successful_2011_11_08
testing_libreoffice-3.3.99.4-hotfixes1
suse-4.0-27
suse-4.0-26
suse-4.0-25
suse-4.0-24
suse-4.0-23
suse-4.0-22
suse-4.0-21
suse-4.0-20
suse-4.0-19
suse-4.0-18
suse-4.0-18-fix
suse-4.0-17
suse-4.0-15
suse-4.0-14
suse-4.0-13
suse-4.0-12
suse-4.0-11
suse-4.0-10
suse-4.0-9
suse-4.0-8
suse-4.0-7
suse-4.0-5
suse-4.0-4
suse-4.0-3
suse-4.0-2
suse-4.0-1
suse-3.6-appup-4
suse-3.6-appup-3
suse-3.6-32
suse-3.6-31
suse-3.6-30
suse-3.6-29
suse-3.6-28
suse-3.6-27
suse-3.6-26
suse-3.6-25
suse-3.6-24
suse-3.6-23
suse-3.6-22
suse-3.6-21
suse-3.6-20
suse-3.6-19
suse-3.6-18
suse-3.6-17
suse-3.6-16
suse-3.6-15
suse-3.6-14
suse-3.6-13
suse-3.6-12
suse-3.6-11
suse-3.6-10
suse-3.6-9
suse-3.6-8
suse-3.6-7
suse-3.6-6
suse-3.6-5
suse-3.6-4
suse-3.6-3
suse-3.6-2
suse-3.6-0
sdremote-2.0.0
sdremote-1.0.6
sdremote-1.0.5
sdremote-1.0.4
sdremote-1.0.3
sdremote-1.0.2
sdremote-1.0.1
sdremote-1.0.0
private/mmeeks/aafixes-4-4
ooo/OOO340_m1
ooo/OOO340_m0
ooo/OOO330_m20
ooo/OOO330_m19
ooo/OOO330_m18
ooo/OOO330_m17
ooo/OOO330_m16
ooo/OOO330_m15
ooo/OOO330_m14
ooo/OOO330_m13
ooo/OOO330_m12
ooo/OOO330_m11
ooo/OOO330_m10
ooo/OOO330_m9
ooo/OOO330_m8
ooo/OOO330_m7
ooo/OOO330_m6
ooo/OOO330_m5
ooo/OOO330_m4
ooo/OOO330_m3
ooo/OOO330_m2
ooo/OOO330_m1
ooo/OOO330_m0
ooo/DEV300_m106
ooo/DEV300_m105
ooo/DEV300_m104
ooo/DEV300_m103
ooo/DEV300_m102
ooo/DEV300_m101
Nothing to show
Cannot retrieve the latest commit at this time.
README
LibreOfficeKit ************** LibreOfficeKit can be used for accessing LibreOffice functionality through C/C++, without any need to use UNO. For now it only offers document conversion (in addition to an experimental tiled rendering API). Integrating LOK into other software ----------------------------------- LOK functionality can be accessed by including LibreOfficeKit.h[xx] in your program. LOK initialisation (lok_init) requires the inclusion of LibreOfficeKitInit.h in your program. If you use the C++ LibreOfficeKit.hxx header, it already includes LibreOfficeKitInit.h for you. (LibreOfficeKit.hxx is a simple and fully inlined C++ wrapper for the same functionality as in LibreOfficeKit.h.) An example program can be seen on: https://github.com/ojwb/lloconv Tiled Rendering --------------- To use LOK Tiled Rendering you will need the following before the LOK includes: #define LOK_USE_UNSTABLE_API (This must be define before ANY LOK header, i.e. including the Init header.) Currently only bitmap-buffer rendering is supported, with a 32-bit BGRA colorspace (further alternatives could feasibly be implemented as needed). Scanlines are ordered top-down (whereas LibreOffice will internally default to bottom-up). Tiled Editing ------------- On top of the tiled rendering API, a set of new methods have been added to the lok::Document class to allow basic editing, too. Communication between the LOK client and LibreOffice is a two-way channel. The client can initiate an action by calling the above mentioned methods. The most important methods for the client -> LibreOffice communication are: - initializeForRendering(), expected to be called right after lok::Office::documentLoad() returned a lok::Document*. - postKeyEvent(), expected to be called when the user provides input on the (soft-)keyboard. - postMouseEvent(), expected to be called when the user generated a touch or mouse event. In general, all coordinates are always in absolute twips (20th of a point, or: 1" = 1440 twips). See lok::Document in LibreOfficeKit.hxx for a full list of methods and their documentation. The other way around (LibreOffice -> LOK client) is implemented using a callback. A LOK client can register a callback using the registerCallback() method. Whenever editing requires some action on the client side, a callback event is emitted. The callback types are described using the LibreOfficeKitCallbackType enumeration in LibreOfficeKitEnums.h, the callback function signature itself is provided by the LibreOfficeKitCallback typedef in LibreOfficeKitTypes.h. The most important callback types: - LOK_CALLBACK_INVALIDATE_TILES: drop all tiles cached on client-side that intersect with the provided rectangle - LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR: need to set the position and/or the size of the cursor - LOK_CALLBACK_TEXT_SELECTION: need to adjust the selection overlay provided by the client as the set of rectangles describing the selection overlay changed There are currently two known LOK clients supporting tiled editing: - gtktiledviewer (see below), which allows testing the LOK core implementation on (desktop) Linux - (LibreOffice on) Android Core has next to no idea what is the LOK client, so for effective development, it's recommended that the core part is developed against gtktiledviewer, and once a feature works there, then implement the Android part, with its slower development iteration (slow uploading to the device, the need to link all object files into a single .so, etc). * Debugging with gdb and gtktiledviewer To run gtktiledviewer: bin/run gtktiledviewer --lo-path=$PWD/instdir/program path/to/test.odt To receive all incoming events from core use G_MESSAGES_DEBUG=all G_MESSAGES_DEBUG=all bin/run gtktiledviewer --lo-path=$PWD/instdir/program ../test.odt To debug with gdb: export LO_TRACE='gdb --tui --args' before bin/run, this will run gtktiledviewer in the debugger instead. LibreOfficeKitGtk ***************** Currently consists of only a very basic GTK+ document viewer widget. The widget uses g_info() instead of SAL_INFO(), use the 'G_MESSAGES_DEBUG=all' environment variable to display those messages.