Updating Graph Widget

I'm trying to create a Widget containing a graph using GraphWidget to use in
a larger application that will be able to show subgraphs of the larger, but
I'm having some trouble finding any info on how to go about it. I've
dabbled a little in Graph-Tool before, but I'm still noob with it all. When
I create the widget I first start with loading the graph from a dot file.
The problem starts with pos. I'm loading directed acyclic graphs (ideally
displayed with the edges generally pointing downward so the graph ends at
the bottom), but I don't see an easy way to pull coordinates for them
besides using graphviz_draw(). Is that the only way? And when I do have the
vertices I want (assuming I just use find_vector_range()) can I pass a
filtered graph to some redraw function along with the old pos or do I need
to call graphviz_draw() again for updated pos? I'm seeing a draw(da, cr)
function under GraphWidget that can be used to redraw the widget, but what
are da and cr exactly?