#!/usr/bin/env python
# -*- coding: utf-8 -*-

# test script for TechDraw module
# creates a page and 1 views
# adds a hatch area to view1
from __future__ import print_function

import FreeCAD
import Part
import Measure
import TechDraw

import os

def DHatchTest():
    path = os.path.dirname(os.path.abspath(__file__))
    print ('TDHatch path: ' + path)
    templateFileSpec = path+'/TestTemplate.svg'
    hatchFileSpec = path + '/TestHatch.svg'

    FreeCAD.newDocument("TDHatch")
    FreeCAD.setActiveDocument("TDHatch")
    FreeCAD.ActiveDocument=FreeCAD.getDocument("TDHatch")

    #make source feature
    box = FreeCAD.ActiveDocument.addObject("Part::Box","Box")

    #make a page
    page = FreeCAD.ActiveDocument.addObject('TechDraw::DrawPage','Page')
    FreeCAD.ActiveDocument.addObject('TechDraw::DrawSVGTemplate','Template')
    FreeCAD.ActiveDocument.Template.Template = templateFileSpec
    FreeCAD.ActiveDocument.Page.Template = FreeCAD.ActiveDocument.Template
    page.Scale = 5.0
#    page.ViewObject.show()    #unit tests run in console mode

    #make Views
    view1 = FreeCAD.ActiveDocument.addObject('TechDraw::DrawViewPart','View')
    FreeCAD.ActiveDocument.View.Source = [box]
    rc = page.addView(view1)
    FreeCAD.ActiveDocument.recompute()

    #make hatch
    print("making hatch")
    hatch = FreeCAD.ActiveDocument.addObject('TechDraw::DrawHatch','Hatch')
    hatch.Source = (view1,["Face0"])
    hatch.HatchPattern = hatchFileSpec          #comment out to use default from preferences
    print("adding hatch to page")
    rc = page.addView(hatch)
    print("finished hatch")

    FreeCAD.ActiveDocument.recompute()

    rc = False
    if ("Up-to-date" in hatch.State):
        rc = True
    FreeCAD.closeDocument("TDHatch")
    return rc
    
if __name__ == '__main__':
    DHatchTest()
