Write Modify Draw Area Hatch

The ooodev.format.draw.modify.area.Hatch class is used to modify the values seen in Fig. 882 of a style.

Setup

from __future__ import annotations
import uno
from ooodev.draw import Draw, DrawDoc, ZoomKind
from ooodev.loader.lo import Lo
from ooodev.format.draw.modify.area import Hatch, PresetHatchKind
from ooodev.format.draw.modify import FamilyGraphics, DrawStyleFamilyKind

def main() -> int:
    with Lo.Loader(connector=Lo.ConnectSocket()):
        doc = DrawDoc(Draw.create_draw_doc())
        doc.set_visible()
        Lo.delay(700)
        doc.zoom(ZoomKind.ZOOM_75_PERCENT)

        slide = doc.get_slide()

        width = 100
        height = 50
        x = 10
        y = 10

        rect = slide.draw_rectangle(x=x, y=y, width=width, height=height)
        rect.set_string("Hello World!")
        style_modify = Hatch.from_preset(
            preset=PresetHatchKind.GREEN_30_DEGREES,
            style_name=FamilyGraphics.DEFAULT_DRAWING_STYLE,
            style_family=DrawStyleFamilyKind.GRAPHICS,
        )
        doc.apply_styles(style_modify)

        Lo.delay(1_000)
        doc.close_doc()
    return 0

if __name__ == "__main__":
    raise SystemExit(main())

Apply gradient to a style

Before applying Style

Draw dialog Area Hatch style default

Fig. 882 Draw dialog Area Hatch style default

Apply style

The gradient can be loaded from a preset using the PresetHatchKind class as a lookup.

# ... other code

style_modify = Hatch.from_preset(
    preset=PresetHatchKind.GREEN_30_DEGREES,
    style_name=FamilyGraphics.DEFAULT_DRAWING_STYLE,
    style_family=DrawStyleFamilyKind.GRAPHICS,
)
doc.apply_styles(style_modify)

After applying style

Dialog after applying style.

Draw dialog Area Hatch style changed

Fig. 883 Draw dialog Area Hatch style changed

Shape after applying style.

Shape after Style applied

Fig. 884 Shape after Style applied

Getting the area pattern from a style

We can get the area pattern from the document.

# ... other code
f_style = Hatch.from_style(
    doc=doc.component,
    style_name=FamilyGraphics.DEFAULT_DRAWING_STYLE,
    style_family=DrawStyleFamilyKind.GRAPHICS,
)
assert f_style is not None