Re: [libreoffice-users] Basic macro to insert a custom shape into a page ?

2021-02-11 Thread Regina Henschel

Hi Mauricio,

I have translated the steps to C++ with createInstance => new
and keeping setPropertyValue or using method MergeDefaultAttributes.
The custom shape is generated, but the faulty method (for which I have 
the patch) is not touched.


It seems, it is needed, that the custom shape is generated with the mouse.

At least I now know, how to generate a custom shape in a Basic macro. :)

Kind regards
Regina

Mauricio Baeza schrieb am 11.02.2021 um 19:26:

On Thu, 2021-02-11 at 19:08 +0100, Regina Henschel wrote:

Hi all,

does someone has a basic macro snippet for to insert a custom shape
(e.g. a smiley) into a page?

Background: For a unit test I need to insert a custom shape via code
similar to as it is done via mouse. But I have no idea how to code
it. A
macro might give me an initial stage for a solution.

Kind regards
Regina




For Calc, for example:


Sub Main
Dim size As New com.sun.star.awt.Size
Dim args(0) As New com.sun.star.beans.PropertyValue

 doc = ThisComponent
 sheet = doc.getCurrentController.getActiveSheet()
 dp = sheet.getDrawPage()

 shape =
doc.createInstance("com.sun.star.drawing.CustomShape")
 dp.add(shape)

 size.Width = 5000
 size.Height = 5000
 shape.setSize(size)

 args(0).Name = "Type"
 args(0).Value = "smiley"
 shape.setPropertyValue("CustomShapeGeometry", args)

End Sub






--
To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/users/
Privacy Policy: https://www.documentfoundation.org/privacy


Re: [libreoffice-users] Basic macro to insert a custom shape into a page ?

2021-02-11 Thread Andrew Pitonyak

So my guess that you were using the gallery was wrong. On the bright side, I 
did figure out how to access the gallery :-)

It looks like you were provided a solution with using a custom shape, another 
thing I have not done before!

Good Luck!

Andrew Pitonyak


On Thursday, February 11, 2021 15:53 EST, Regina Henschel 
 wrote:
 Andrew Pitonyak schrieb am 11.02.2021 um 20:06:
>
> This might seem obvious, but:
>
> 1. What document type?

Calc

>
> 2. What is a "custom" shape? Do you mean com.sun.star.drawing.CustomShape

Yes

>
> Not that I have never used Cutom Shapes in any way in LibreOffice, but i have 
> written a Macro at least once. :-)
>
> I have written code that adds things such as lines (and other shapes) into 
> documents.
>
> I might have looked at something in LO that allows me to have a bunch of 
> shapes. On my computer, I use
>
> View > Gallery
>
> Too open it. From there it looks like I can drag objects out of the "gallery" 
> and onto a document.

That makes a kind of copy I need an object newly created with the
mouse.

When you click on a shape icon in the toolbar and then click and drag
with the mouse to create the shape, then the created custom shape is on
a wrong layer. You notice in the "Drawing object properties"-toolbar,
that both "To Foreground" and "To Background" are enabled. "To
Foreground" should not be enabled, because when you create a custom
shape with the mouse, you are working already in the "Foreground". I
have a patch for it, but struggle with the unit test.

Kind regards
Regina

--
To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/users/
Privacy Policy: https://www.documentfoundation.org/privacy


 

-- 
To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/users/
Privacy Policy: https://www.documentfoundation.org/privacy


Re: [libreoffice-users] Basic macro to insert a custom shape into a page ?

2021-02-11 Thread Regina Henschel

Hi Mauricio,

Mauricio Baeza schrieb am 11.02.2021 um 19:26:

On Thu, 2021-02-11 at 19:08 +0100, Regina Henschel wrote:

Hi all,

does someone has a basic macro snippet for to insert a custom shape
(e.g. a smiley) into a page?

Background: For a unit test I need to insert a custom shape via code
similar to as it is done via mouse. But I have no idea how to code
it. A
macro might give me an initial stage for a solution.

Kind regards
Regina




For Calc, for example:


Sub Main
Dim size As New com.sun.star.awt.Size
Dim args(0) As New com.sun.star.beans.PropertyValue

 doc = ThisComponent
 sheet = doc.getCurrentController.getActiveSheet()
 dp = sheet.getDrawPage()

 shape =
doc.createInstance("com.sun.star.drawing.CustomShape")
 dp.add(shape)

 size.Width = 5000
 size.Height = 5000
 shape.setSize(size)

 args(0).Name = "Type"
 args(0).Value = "smiley"
 shape.setPropertyValue("CustomShapeGeometry", args)

End Sub


Aha! That means, that Size and Type are set after the object is added to 
the draw page.


Unfortunately using this macro, does not show the error, which I'm going 
to fix. Nevertheless I will test in code, whether creating with a ctor 
with new ... (which corresponds to createInstance) and then applying the 
properties will work. But I will need some time for that.


Kind regards
Regina




--
To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/users/
Privacy Policy: https://www.documentfoundation.org/privacy


Re: [libreoffice-users] Basic macro to insert a custom shape into a page ?

2021-02-11 Thread Regina Henschel

Andrew Pitonyak schrieb am 11.02.2021 um 20:06:


This might seem obvious, but:

1. What document type?


Calc



2. What is a "custom" shape? Do you mean com.sun.star.drawing.CustomShape


Yes



Not that I have never used Cutom Shapes in any way in LibreOffice, but i have 
written a Macro at least once. :-)

I have written code that adds things such as lines (and other shapes) into 
documents.

I might have looked at something in LO that allows me to have a bunch of 
shapes. On my computer, I use

View > Gallery

Too open it. From there it looks like I can drag objects out of the "gallery" 
and onto a document.


That makes a kind of copy I need an object newly created with the 
mouse.


When you click on a shape icon in the toolbar and then click and drag 
with the mouse to create the shape, then the created custom shape is on 
a wrong layer. You notice in the "Drawing object properties"-toolbar, 
that both "To Foreground" and "To Background" are enabled. "To 
Foreground" should not be enabled, because when you create a custom 
shape with the mouse, you are working already in the "Foreground". I 
have a patch for it, but struggle with the unit test.


Kind regards
Regina

--
To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/users/
Privacy Policy: https://www.documentfoundation.org/privacy


Re: [libreoffice-users] Basic macro to insert a custom shape into a page ?

2021-02-11 Thread Andrew Pitonyak

This might seem obvious, but: 

1. What document type? 

2. What is a "custom" shape? Do you mean com.sun.star.drawing.CustomShape, or 
do you mean a Custom Shape that you have added to a Library? 

Not that I have never used Cutom Shapes in any way in LibreOffice, but i have 
written a Macro at least once. :-)

I have written code that adds things such as lines (and other shapes) into 
documents. 

I might have looked at something in LO that allows me to have a bunch of 
shapes. On my computer, I use 

View > Gallery

Too open it. From there it looks like I can drag objects out of the "gallery" 
and onto a document. 

I had forgotten you can do that in LO. Is this the type of graphic that you 
want to insert? Not that I know how, but I am trying to clarify in case it is 
something that I do know how to do. 


On Thursday, February 11, 2021 13:08 EST, Regina Henschel 
 wrote:
 Hi all,

does someone has a basic macro snippet for to insert a custom shape
(e.g. a smiley) into a page?

Background: For a unit test I need to insert a custom shape via code
similar to as it is done via mouse. But I have no idea how to code it. A
macro might give me an initial stage for a solution.

Kind regards
Regina

--
To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/users/
Privacy Policy: https://www.documentfoundation.org/privacy


 

-- 
To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/users/
Privacy Policy: https://www.documentfoundation.org/privacy


Re: [libreoffice-users] Basic macro to insert a custom shape into a page ?

2021-02-11 Thread Mauricio Baeza
On Thu, 2021-02-11 at 19:08 +0100, Regina Henschel wrote:
> Hi all,
> 
> does someone has a basic macro snippet for to insert a custom shape 
> (e.g. a smiley) into a page?
> 
> Background: For a unit test I need to insert a custom shape via code 
> similar to as it is done via mouse. But I have no idea how to code
> it. A 
> macro might give me an initial stage for a solution.
> 
> Kind regards
> Regina
> 


For Calc, for example:


Sub Main
Dim size As New com.sun.star.awt.Size
Dim args(0) As New com.sun.star.beans.PropertyValue

doc = ThisComponent
sheet = doc.getCurrentController.getActiveSheet()
dp = sheet.getDrawPage()

shape =
doc.createInstance("com.sun.star.drawing.CustomShape")  
dp.add(shape)

size.Width = 5000
size.Height = 5000
shape.setSize(size)

args(0).Name = "Type"
args(0).Value = "smiley"
shape.setPropertyValue("CustomShapeGeometry", args) 

End Sub



-- 
To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/users/
Privacy Policy: https://www.documentfoundation.org/privacy


[libreoffice-users] Basic macro to insert a custom shape into a page ?

2021-02-11 Thread Regina Henschel

Hi all,

does someone has a basic macro snippet for to insert a custom shape 
(e.g. a smiley) into a page?


Background: For a unit test I need to insert a custom shape via code 
similar to as it is done via mouse. But I have no idea how to code it. A 
macro might give me an initial stage for a solution.


Kind regards
Regina

--
To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/users/
Privacy Policy: https://www.documentfoundation.org/privacy