Hi all,

ODF1.2 defines 15 standard symbols for charts. As earlier mentioned, I try to implement the missing ones. But there are some problems with the symbols "horizontal-bar" and "vertical-bar".

The implementation of the current symbols in /calc/chart2/source/view/main/ShapeFactory.cxx in method createPolyPolygon_Symbol draws the symbols in a way, that the given size in parameter rSize is completely used. Moreover, this method is called with a square in rSize in all default cases.

I have tried now this way for a "horizontal-bar": Draw a rectangle, which is 1/5 of the given height. With this attempt I get correct symbols in the chart itself and in the legend. But the preview in the data series dialog or in the data point dialog paints my "horizontal-bar" and my "vertical-bar" as square. And in the list in the pop-up menu my bars are shifted.

As far as I see, the graphics to be used in the dialog are generated in components/cui/source/tapages/tpline.cxx. My idea is now to insert a 100% transparent square into the temporary page pPage and mark that object together with my symbols for generating the bitmaps.

For inserting an additional object, I have used

        SdrObject *pInvisibleSquare=pSymbolList->GetObj(0);
        pInvisibleSquare=pInvisibleSquare->Clone();
        pPage->NbcInsertObject(pInvisibleSquare);

in IMPL_LINK( SvxLineTabPage, MenuCreateHdl_Impl, MenuButton *, pButton )

after line 1540 and

   pView->MarkAll();
instead of
   pView->MarkObj(pObj,pPageView);
in line 1552 seems to work too.

But I do not know how to make the object transparent. Especially, I do not know how to use these "itempool"-thing. In Basic I would have assigned a value to the property. But in C++ I'm totally lost. Do you can point me to a guide or lead me to a solution?

Kind regards
Regina


_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to