Struct Class

Struct classes represent a UNO structure.

Static

Struct classes in ooo.lo and ooo.csslo namespaces are static classes. As of version 2.0.0 the ooo.csslo namespace is deprecated. Use the ooo.lo namespace instead.

Example static:
from ooo.csslo.awt import Rectangle
rect1 = Rectangle(X=100, Y=200, Width=50, Height=1)
assert rect1.X == 100
assert rect1.Height == 1
rect1.Width == 250
assert rect1.Width == 250
rect2 = Rectangle()
rect2.X = 122
rect2.Y = 240
assert rect2.X == 122
assert rect2.Y == 240

Struct classes in ooo.lo and ooo.csslo namespaces are the same classes. As of version 2.0.0 the ooo.csslo namespace is deprecated. Use the ooo.lo namespace instead.

Example:
from ooo.lo.awt.rectangle import Rectangle as LoRectangle
from ooo.csslo.awt import Rectangle as CssRectangle
from ooo.cssdyn.awt import Rectangle as DynRectangle
same = LoRectangle is CssRectangle
assert same == True
same = LoRectangle is DynRectangle
assert same == False

Dynamic

Struct classes in ooo.dyn and ooo.cssdyn namespaces are dynamic classes and are changed to UNO classes at runtime. As of version 2.0.0 the ooo.cssdyn namespace is deprecated. Use the ooo.dyn namespace instead.

Example dynamic:
from ooo.cssdyn.awt import Rectangle
from com.sun.star.awt import Rectangle as URectangle
rect1 = Rectangle(X=100, Y=200, Width=50, Height=1)
assert isinstance(rect1, URectangle)
assert rect1.X == 100
assert rect1.Height == 1
rect1.Width == 250
assert rect1.Width == 250
rect2 = Rectangle()
rect2.X = 122
rect2.Y = 240
assert rect2.X == 122
assert rect2.Y == 240

General

Struct classes can accept keyword or positional arguments.

Example keyword and positional:
from ooo.cssdyn.awt import Rectangle
rect1 = Rectangle(X=100, Y=200, Width=50, Height=1)
rect2 = Rectangle(100, 200, 50, 1)
assert rect1.X == rect2.X
assert rect1.Y == rect2.Y
assert rect1.Width == rect2.Width
assert rect1.Height == rect2.Height

Struct classes can be constructed by another struct of the same type:

Example construct from other struct:
from ooo.cssdyn.awt import Rectangle
rect1 = Rectangle(100, 200, 50, 1)
rect2 = Rectangle(rect1)
assert rect1.X == rect2.X
assert rect1.Y == rect2.Y
assert rect1.Width == rect2.Width
assert rect1.Height == rect2.Height