
destroy .dataopt
toplevel .dataopt
wm title .dataopt "GOBLIN Data Structures"
wm resizable .dataopt 0 0
     
frame .dataopt.buttons
    button .dataopt.buttons.done -text "Done" -command {destroy .dataopt}
    pack .dataopt.buttons.done -side left -fill x -padx 3m

frame .dataopt.heap
    label .dataopt.heap.label -text "Priority Queues:" -anchor w
    radiobutton .dataopt.heap.basic -text "Basic Impementation" \
        -variable goblinMethPQ -value 0 -anchor w
    radiobutton .dataopt.heap.binary -text "Binary Heaps" \
        -variable goblinMethPQ -value 1 -anchor w
    radiobutton .dataopt.heap.fibonacci -text "Fibonacci Heaps" \
        -variable goblinMethPQ -value 2 -anchor w
    pack .dataopt.heap.label \
        .dataopt.heap.basic \
        .dataopt.heap.binary \
        .dataopt.heap.fibonacci \
        -fill x
        
frame .dataopt.dsu
    label .dataopt.dsu.label -text "Disjoint Set Union:" -anchor w
    checkbutton .dataopt.dsu.enable -text "Enable Path Compression" \
        -variable goblinMethDSU -anchor w
    pack .dataopt.dsu.label \
        .dataopt.dsu.enable \
        -fill x
        
frame .dataopt.adjacency
    label .dataopt.adjacency.label -text "Adjacencies:" -anchor w
    radiobutton .dataopt.adjacency.search -text "Search Incidencies" \
        -variable goblinMethAdjacency -value 0 -anchor w
    radiobutton .dataopt.adjacency.hash -text "Use Hash Table" \
        -variable goblinMethAdjacency -value 1 -anchor w
    pack .dataopt.adjacency.label \
        .dataopt.adjacency.search \
        .dataopt.adjacency.hash \
        -fill x
     
pack .dataopt.buttons -padx 3m -pady 3m -side bottom
pack .dataopt.heap .dataopt.dsu .dataopt.adjacency \
    -side top -fill x -pady 5m -padx 10m -anchor w
