import sys, dia

# sys.path.insert(0, 'd:/graph/dia/dia')

def dia_debug_cb (data, flags) :
	"gets passed in the active diagram, flags are unused at the moment"
	for layer in data.layers :
		print "Layer :", layer.name
		for o in layer.objects :
			print str(o), str(o.bounding_box)

def dia_debug_props_cb (data, flags) :
	for layer in data.layers :
		print "Layer :", layer.name
		for o in layer.objects :
			print str(o)
			props = o.properties
			for s in props.keys() :
				print props[s].type + " " + s + " (visible=%d)" % props[s].visible
				try :
					p = props[s].value
				except :
					p = None
				print "\t" + str(p)

# dia-python keeps a reference to the renderer class and uses it on demand
dia.register_action ("DebugBoundingbox", "Dia BoundingBox Debugger", 
                     "/DisplayMenu/Debug/DebugExtensionStart", 
                     dia_debug_cb)

dia.register_action ("DebugProperty", "Dia Property API Debugger", 
                     "/DisplayMenu/Debug/DebugExtensionStart", 
                     dia_debug_props_cb)
