# Graphics Related Helper Code Contains graphics related helper code. Lots of the draw and impress code is in this shared library. - `xoutdev` this is where a lot of wht work would happen to move to the canvas. (what does that mean?) - `svdraw` transparent gradient stuff. [seriously? surely much more, too] ## SdrObject The shapes you can see in LibreOffice (like rectangle, etc.) are SdrObjects. They are declared as a hierarchy: SdrObject <- SdrAttrObj <- E3dObject <- E3dCompoundObject <- E3dCubeObj ^ ^ ^ ^ ^ | | ^ ^ | | | | | | | | +--- E3dExtrudeObj | | | | | | | +----- E3dLatheObj | | | | | | +------- E3dPolygonObj | | | | | +--------- E3dSphereObj | | | | +--- E3dScene... | | | | | | | +--- SdrTextObj <- SdrObjCustomShape... | | | ^ ^ ^ ^ ^ | | | | | | | +--- SdrEdgeObj... | | | | | | +----- SdrMeasureObj... | | | | | +------- SdrPathObj... | | | | +--------- SdrRectObj... | | | +----------- SdrTableObj... | | +--- SdrObjGroup... | + ---- SdrPageObj... +------- SdrVirtObj... The above is incomplete of course. ## SdrModel / SdrView Copied from `svdview.hxx`: First of all the app creates a `SdrModel`. Then it opens a Win and creates a `SdrView`. `ShowSdrPage()` announces a page at `SdrView`. It's possible to show `SdrView` in any Wins at once. `SdrView` can show as many Wins as it wants at once. Pages are announced or checked out with the help of `ShowSdrPage()`/`HideSdrPage()`. For every announced page there is a `SdrPageView` instance in container aPages. If more than one page is showed, you have to pay attention that the offset parameter of `ShowSdrPage()` is conformed to the size of the page (to prevent overlapping of two pages). `SdrView` itself is inherited from many objects in a chain of inheritance (all that starts with `SdrPaintView` - that is itself inherited from few classes too): SdrPaintView <- SdrSnapView <- SdrMarkView <- SdrEditView <- SdrPolyEditView ^ +----------------------------------------------------------------+ | SdrGlueEditView <- SdrObjEditView <- SdrExchangeView <- SdrDragView ^ +----------------------------------------------------------------+ | SdrCreateView <- SdrView From `SdrView` on, it is not flat, but a real hierarchy again. ## Drawing Layer / SdrObject(s) See `drawinglayer/README.md` for general information about drawinglayer. Below is the class diagram that comes from , slide number 6. .------- Model --------------. .------- View -----------------------------------------. | SdrObject - ViewContact | 1..* | ViewObjectContact | | getChild() |------| getPrimitiveList() -----> Object(s) ---> SdrView | | getVOC() | | getRecPrimitiveList() Contact | | getViewInd... | |________|_____________________________________________| | ...ependentPrimitiveList() | | |____________________________| generates | ______ V / | .----------------------. | | basePrimitive | | | getRange() |<---' | getDecomposition() | |______________________| For `SdrObjects`, there are own `DrawingLayer` primitives in `svx/source/sdr/primitive2d` The `ViewContact` / `ViewObject` / `ViewObjectContact` are in `svx/source/sdr/contact` Decomposes the `SdrObjects`, and does all sort of operations on them. If the number of visualizable objects (e.g. `SdrObjects`) is `X`, and the number of `SdrViews` is `Y`, then: - there are `X` `ViewContact` instances (1:1 relation with a visualizable object) - there are `Y` `ObjectContact` instances (1:1 relation with an `SdrView`) - there are `X*Y` `ViewObjecContact` instances (1:N relation to both visualizable objects and `SdrView`s) ollabora/dcm-7.6'>distro/collabora/dcm-7.6 LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
path: root/pyuno/source
AgeCommit message (Expand)Author
2014-03-10pyuno: simplify deprecated XTypeProvider.getImplementationIdStephan Bergmann
2014-03-07Introduce com.sun.star.beans.theIntrospection singletonStephan Bergmann
2014-02-26cppuhelper: retrofit std::exception into overriding exception specsStephan Bergmann
2014-02-26Remove visual noise from pyunoAlexander Wilms
2014-02-23Remove unneccessary commentsAlexander Wilms
2014-01-31Remove UNOIDL "array" and "union" vaporware remnantsStephan Bergmann
2014-01-30coverity#983054, reorder code to avoid memory leakStephan Bergmann
2014-01-29bool improvementsStephan Bergmann
2014-01-28bool improvementsStephan Bergmann
2014-01-28coverity#440338 Dereference null return valueCaolán McNamara
2014-01-10Use boolStephan Bergmann
2014-01-07No serviceNames attribute in LoaderStephan Bergmann
2014-01-07remove unnecessary sal_Unicode casts in OUStringBuffer::append callsNoel Grandin
2013-12-17Adapt all (non-extension, SharedLibrary) .components to environment="..."Stephan Bergmann
2013-11-25Fix different typos for "unknown"Julien Nabet
2013-11-14SAL_WARN_UNUSED com::sun::star::uno::AnyStephan Bergmann
2013-11-14-Werror,-Wunused-member-functionStephan Bergmann
2013-11-11convert OUString compareToAscii == 0 to equalsAsciiNoel Grandin
2013-11-11convert OUString 0==compareToAscii to equalsAsciiNoel Grandin
2013-11-11remove unnecessary use of OUString constructorNoel Grandin
2013-10-10sal: add special handling of argc==0 to osl_setCommandArgs()Michael Stahl
2013-10-09pyuno: set up fake command line in getComponentContext()Michael Stahl
2013-10-07fdo#70196: Python 2 compatibility for UNO import error handlingDavid Bolen
2013-10-02WaE: unused variableTor Lillqvist
2013-09-22gbuild: remove libraries from OUTDIR and WORKDIRMichael Stahl
2013-09-09pyuno: this rc file seems to be unusedMatúš Kukan
2013-08-21finish deprecation of O(U)String::valueOf()Luboš Luňák
2013-08-21osl_getThreadIdentifier(0) -> osl::Thread::getCurrentIdentifier()Stephan Bergmann
2013-08-18Use subfolder names from <config_folders.h>Tor Lillqvist
2013-08-15Mark as constTakeshi Abe
2013-08-13fdo#50470: Restore pyuno object method introspection in Python 3David Bolen
2013-07-29Remove whitespace from line endsStephan Bergmann
2013-07-29fdo#66025: Improve accuracy of ImportError traceback and messageDavid Bolen
2013-07-24fdo#66025: Simplify new ImportError logicDavid Bolen
2013-07-24fdo#66025: Minor clean-up of previous patchDavid Bolen
2013-07-24fdo#66025: Improve ImportError raised from _uno_importDavid Bolen
2013-07-12Resolves: #i120788# remove unused members from PyUNO_callable_InternalsHerbert Dürr
2013-06-29remove OUString wrap for string literalsThomas Arnhold
2013-06-29reduce some spacingThomas Arnhold
2013-06-16PyUno fixed crash in function isInstanceOfStructOrException()Xiaoli
2013-05-14fdo#46808, Convert script::InvocationAdapterFactory to new styleNoel Grandin
2013-05-08No need for RTLD_NOW hereStephan Bergmann
2013-04-21adapt path for test.dll for WNTMichael Stahl
2013-04-18pyuno_loader::CreateInstance: delete the initial PyThreadStateMichael Stahl
2013-04-12pyuno_dlopenwrapper: give error message before abort() if dlopen() failsMiklos Vajna
2013-04-09warning C4101: 'e' : unreferenced local variableStephan Bergmann
2013-04-09unbreak windows tinderboxDavid Tardon
2013-04-09move Python tests in-processMichael Stahl
2013-04-07mass removal of rtl:: prefixes for O(U)String*Luboš Luňák
2013-03-28Remove RTL_CONSTASCII_(U)STRINGPARAM in pyunoChr. Rossmanith