Created attachment 97026 [details]
Proposed "Rounded rectangle"-type callout with customizable shape
Currently the shape of the "rounded rectangle"-type callouts is fixed.
(a) Only the "beak" part of the callout can be moved.
(b) The rounding looks ugly (not symmetrical), especially for small heights
Often the "beak" of the callout becomes too thin or too thick, and looks ugly.
But the user has no control on it.
This is a major limitation in making the presentation attractive.
Please see the attached file for a sample of better-shaped callout.
This simulated callout has the following features:
1. Handles to control the rounding radius (separate for x and y directions)
2. Handles to move the "beak" along the periphery of the rectangle
(this also controls the base-width of the beak)
changed to enhancement
This custom shape is defined in svx/source/customshapes/EnhancedCustomShapeGeometry.cxx, it is the msoWedgeRRectCallout.
Introduction to custom shapes:
Migrating Whiteboard tags to Keywords: (EasyHack DifficultyInteresting)
JanI is default CC for Easy Hacks (Add Jan; remove LibreOffice Dev List from CC)
For totally new shapes you need no knowledge in C++. You only need the ODF specification to define such shape. New kind of shapes can be added to the Gallery.
The shape in question should fit to the predefined custom shape "wedgeRoundRectCallout" of OOXML, but it doesn't. That should be changed in core, without introducing new handles.
Created attachment 147077 [details]
Document with description and callout with circle corners
The attached document provides a callout with quarter circles in the corners, which do not change to ellipse when you resize the shape. It behaves similar to the callout of PowerPoint. The shape uses the commands "logwidth" and "logheight". MS Office does not understand these commands, so the shape will not be shown by MS Office. If you are forced to use OOXML (docx or pptx), then you need to use the callout from the drawing toolbar. For all others my shape might be an improvement.
This shape does not solve the entire request, because the circles are not sizeable and the callout pointer cannot be changed in its basis. But this shape is already very complex. You should think about using a rounded rectangle as callout and add the callout pointer manually by e.g. using a filled path.