|
From: <wxh...@al...> - 2004-05-19 04:31:03
|
Hello again,
Continuing with my last example, I have been trying to get drag and drop
working for trees. Is this implemented yet? The following doesn't seem
to work with or without the "veto" line commented out. Any guidance
would be appreciated. If it hasn't been implemented yet, how much work
would be required to do so?
Thanks
module Main where
import Graphics.UI.WX
import Graphics.UI.WXCore
imageNone :: Int
imageNone = (-1)
appendChild tree parent child = treeCtrlAppendItem tree parent child
imageNone imageNone objectNull
appendList tree parent children = mapM_ (appendChild tree parent)
children
main :: IO()
main = start test
test :: IO()
test = do f <- frame [text := "Hello!"]
tree <- treeCtrl f []
root <- treeCtrlAddRoot tree "Root" imageNone imageNone
objectNull
child1 <- treeCtrlAppendItem tree root "Child1" imageNone
imageNone objectNull
child2 <- treeCtrlAppendItem tree root "Child2" imageNone
imageNone objectNull
appendList tree child1 ["A","B","C"]
appendList tree child2 ["1","2","3"]
set tree [on treeEvent := onTreeEvent tree]
set f [layout := fill $ widget tree, clientSize := sz 500 300]
onTreeEvent :: TreeCtrl a -> EventTree -> IO ()
onTreeEvent t event
= case event of
TreeBeginDrag item point veto
-> do putStrLn "started dragging..."
veto
propagateEvent
TreeEndDrag item point
-> do putStrLn "stopped dragging..."
propagateEvent
other
-> propagateEvent
|