From: Bulat Z. <bul...@gm...> - 2009-08-24 15:20:21
|
Hello frantisek, Monday, August 24, 2009, 6:53:03 PM, you wrote: (i rerouted asnwer to gtk2hs list) > Hi, have somebody used drag and drop feature of Gtk2hs? I can't find > any tutorial or demo. I'm using only the documentation but I think I'm > missing something. Can anyone give me an example? there is filemanager program mentioned in gtk2hs news that supports d&d btw, i also have question regarding d&d - does it work only inside gtk2hs/gtk programs or it's possible to d&d between Windows Explorer and my program? i'm writing filemanager too ;) -- Best regards, Bulat mailto:Bul...@gm... |
From: Michael D. <mic...@ma...> - 2009-08-24 15:46:01
|
On Mon, Aug 24, 2009 at 4:19 PM, Bulat Ziganshin <bul...@gm...>wrote: > Hello frantisek, > > Monday, August 24, 2009, 6:53:03 PM, you wrote: > > (i rerouted asnwer to gtk2hs list) > > > Hi, have somebody used drag and drop feature of Gtk2hs? I can't find > > any tutorial or demo. I'm using only the documentation but I think I'm > missing something. Can anyone give me an example? > Yeah, I used DND in my file manager, I think there might be a code example on my blog http://www.mickinator.com/wordpress but I'm not 100% sure. I'll have a look later and get back to you with an example. I found the one included with gtk2hs quite confusing :) > > there is filemanager program mentioned in gtk2hs news that supports > d&d > > btw, i also have question regarding d&d - does it work only inside > gtk2hs/gtk programs or it's possible to d&d between Windows Explorer > and my program? i'm writing filemanager too ;) > I'd say there is maybe a way to get transferance between gtk apps, but I think at this stage using gtk2hs it would be a nightmare, I remember writing the DND and finding it very hacky. Then again I may have done it wrong! You would have to know what was being dropped/dragged, and have a means of accepting it and handling it. It would be interesting though :) Regards, Michael |
From: frantisek k. <fra...@gm...> - 2009-08-25 19:53:01
|
Thank you! Finally I figured out how to bring DND to life. I do not know what are the TargetLists for but it works the same with them and also without them. Here is a code snipset: -- new game button buttonNewGame <- buttonNewWithLabel "New Game" onClicked buttonNewGame (newGame buttonNewGame) boxPackStart vboxButtons buttonNewGame PackGrow 0 -- quit button buttonQuit <- buttonNewWithLabel "Quit" onClicked buttonQuit mainQuit boxPackStart vboxButtons buttonQuit PackGrow 0 -- DND dragSourceSet buttonNewGame [Button1] [ActionCopy] dragDestSet buttonQuit [DestDefaultAll] [ActionCopy] dragSourceAddTextTargets buttonNewGame dragDestAddTextTargets buttonQuit buttonQuit `on` dragDataReceived $ \ ctx p ii ts -> do liftIO (putStrLn "data-received") d <- selectionDataGetText liftIO (putStrLn ("data are: " ++ (show d))) return () buttonNewGame `on` dragDataGet $ \ ctx ii ts -> do liftIO (putStrLn "data-get") selectionDataSetText "hahaha" return () On Mon, Aug 24, 2009 at 5:45 PM, Michael Dever <mic...@ma...>wrote: > > On Mon, Aug 24, 2009 at 4:19 PM, Bulat Ziganshin < > bul...@gm...> wrote: > >> Hello frantisek, >> >> Monday, August 24, 2009, 6:53:03 PM, you wrote: >> >> (i rerouted asnwer to gtk2hs list) >> >> > Hi, have somebody used drag and drop feature of Gtk2hs? I can't find >> > any tutorial or demo. I'm using only the documentation but I think I'm > > > missing something. Can anyone give me an example? >> > > Yeah, I used DND in my file manager, I think there might be a code example > on my blog http://www.mickinator.com/wordpress but I'm not 100% sure. > > I'll have a look later and get back to you with an example. I found the one > included with gtk2hs quite confusing :) > > >> >> there is filemanager program mentioned in gtk2hs news that supports >> d&d >> >> btw, i also have question regarding d&d - does it work only inside >> gtk2hs/gtk programs or it's possible to d&d between Windows Explorer >> and my program? i'm writing filemanager too ;) >> > > I'd say there is maybe a way to get transferance between gtk apps, but I > think at this stage using gtk2hs it would be a nightmare, I remember writing > the DND and finding it very hacky. Then again I may have done it wrong! > > You would have to know what was being dropped/dragged, and have a means of > accepting it and handling it. > > It would be interesting though :) > > Regards, > Michael > > > > |
From: frantisek k. <fra...@gm...> - 2009-08-25 20:09:32
|
dBtw. is there any way that destination accepts/rejects data according to data to be send? DragMotion function seems to do exactly that. I implemented it with always returning False and nothing changed. Destination still accepts drops... Here is my code: i `on` dragMotion $ \ctx p ts -> do putStrLn "dragMotion" return False The function dragFinish seems also handy. It is working with DragContextClass how I can get one? Thanks Fero On Tue, Aug 25, 2009 at 9:52 PM, frantisek kocun <fra...@gm...>wrote: > Thank you! > > Finally I figured out how to bring DND to life. I do not know what are > the TargetLists for but it works the same with them and also without > them. Here is a code snipset: > > -- new game button > buttonNewGame <- buttonNewWithLabel "New Game" > onClicked buttonNewGame (newGame buttonNewGame) > boxPackStart vboxButtons buttonNewGame PackGrow 0 > > > -- quit button > buttonQuit <- buttonNewWithLabel "Quit" > onClicked buttonQuit mainQuit > boxPackStart vboxButtons buttonQuit PackGrow 0 > > > -- DND > dragSourceSet buttonNewGame [Button1] [ActionCopy] > dragDestSet buttonQuit [DestDefaultAll] [ActionCopy] > > dragSourceAddTextTargets buttonNewGame > dragDestAddTextTargets buttonQuit > > buttonQuit `on` dragDataReceived $ \ ctx p ii ts -> do liftIO (putStrLn > "data-received") > > d <- selectionDataGetText > > liftIO (putStrLn ("data are: " ++ (show d))) > > return () > > buttonNewGame `on` dragDataGet $ \ ctx ii ts -> do > liftIO (putStrLn "data-get") > selectionDataSetText "hahaha" > return () > > On Mon, Aug 24, 2009 at 5:45 PM, Michael Dever <mic...@ma... > > wrote: > >> >> On Mon, Aug 24, 2009 at 4:19 PM, Bulat Ziganshin < >> bul...@gm...> wrote: >> >>> Hello frantisek, >>> >>> Monday, August 24, 2009, 6:53:03 PM, you wrote: >>> >>> (i rerouted asnwer to gtk2hs list) >>> >>> > Hi, have somebody used drag and drop feature of Gtk2hs? I can't find >>> > any tutorial or demo. I'm using only the documentation but I think I'm >> >> > missing something. Can anyone give me an example? >>> >> >> Yeah, I used DND in my file manager, I think there might be a code example >> on my blog http://www.mickinator.com/wordpress but I'm not 100% sure. >> >> I'll have a look later and get back to you with an example. I found the >> one included with gtk2hs quite confusing :) >> >> >>> >>> there is filemanager program mentioned in gtk2hs news that supports >>> d&d >>> >>> btw, i also have question regarding d&d - does it work only inside >>> gtk2hs/gtk programs or it's possible to d&d between Windows Explorer >>> and my program? i'm writing filemanager too ;) >>> >> >> I'd say there is maybe a way to get transferance between gtk apps, but I >> think at this stage using gtk2hs it would be a nightmare, I remember writing >> the DND and finding it very hacky. Then again I may have done it wrong! >> >> You would have to know what was being dropped/dragged, and have a means of >> accepting it and handling it. >> >> It would be interesting though :) >> >> Regards, >> Michael >> >> >> >> > |
From: Axel S. <Axe...@en...> - 2009-08-27 21:58:19
|
On Aug 24, 2009, at 17:19, Bulat Ziganshin wrote: > Hello frantisek, > > Monday, August 24, 2009, 6:53:03 PM, you wrote: > > (i rerouted asnwer to gtk2hs list) > >> Hi, have somebody used drag and drop feature of Gtk2hs? I can't find >> any tutorial or demo. I'm using only the documentation but I think >> I'm >> missing something. Can anyone give me an example? We certainly lack any tutorial on DND but there is a demo in demo/ treeList/treednd which shows how DND is used within the TreeView and IconView widget. Those widgets have special function but the principles are the same as for normal widgets. The problem with writing a demo for DND using, say, a DrawingArea is that there's a lot of code to write but it should work in principle. The TreeView/CustomStore file is interesting since it shows the functions that need to be installed in order to make DND work. While the function in this module are specific to TreeView widgets, these function are merely specialized from the more general functions for ordinary widgets. For instance, the function that is called to test if a certain value can be dropped is given in the field treeDragDestRowDropPossible. For ordinary widgets this functionality can be implemented using dragMotion in General/Drag. The TargetLists are used to install the set of possible data that a widget is able to accept. In general, a widget will only accept a drop from another widget if the TargetTag, SelectionTag and SelectionTypeTag matches. Drags between Windows and Gtk should be possible but you have to figure our that the corresponding TargetTags, etc. are. The native port of Gtk to Aqua on OS X does not support DND (nor the clipboard) yet. Axel. |
From: frantisek k. <fra...@gm...> - 2009-09-05 20:34:33
|
I was not working with trees. We were making a Battleships game and DND was for placing the ships on the table. For example ships can not cross or border on each other. This was where I wanted to use some function which would accept/reject the drop. The tag list is not sufficient. You are right according to documentation dragMotion should do exactly that but it did not work. DragMotion is called and returns false but widget accepts the drop. Should I set some flag to widget or so to make it work? I can ask my friends which done another parts of the game and we can post it to Gtk2hs examples, if you want.. Fero On Thu, Aug 27, 2009 at 11:57 PM, Axel Simon <Axe...@en...> wrote: > > On Aug 24, 2009, at 17:19, Bulat Ziganshin wrote: > > Hello frantisek, >> >> Monday, August 24, 2009, 6:53:03 PM, you wrote: >> >> (i rerouted asnwer to gtk2hs list) >> >> Hi, have somebody used drag and drop feature of Gtk2hs? I can't find >>> any tutorial or demo. I'm using only the documentation but I think I'm >>> missing something. Can anyone give me an example? >>> >> > We certainly lack any tutorial on DND but there is a demo in > demo/treeList/treednd which shows how DND is used within the TreeView and > IconView widget. Those widgets have special function but the principles are > the same as for normal widgets. The problem with writing a demo for DND > using, say, a DrawingArea is that there's a lot of code to write but it > should work in principle. > > The TreeView/CustomStore file is interesting since it shows the functions > that need to be installed in order to make DND work. While the function in > this module are specific to TreeView widgets, these function are merely > specialized from the more general functions for ordinary widgets. For > instance, the function that is called to test if a certain value can be > dropped is given in the field treeDragDestRowDropPossible. For ordinary > widgets this functionality can be implemented using dragMotion in > General/Drag. > > The TargetLists are used to install the set of possible data that a widget > is able to accept. In general, a widget will only accept a drop from another > widget if the TargetTag, SelectionTag and SelectionTypeTag matches. > > Drags between Windows and Gtk should be possible but you have to figure our > that the corresponding TargetTags, etc. are. The native port of Gtk to Aqua > on OS X does not support DND (nor the clipboard) yet. > > Axel. > > |
From: Axel S. <Axe...@en...> - 2009-09-06 08:06:04
|
Hi Fero, On Sep 5, 2009, at 22:34, frantisek kocun wrote: > I was not working with trees. We were making a Battleships game and > DND was for placing the ships on the table. For example ships can > not cross or border on each other. This was where I wanted to use > some function which would accept/reject the drop. The tag list is > not sufficient. You are right according to documentation dragMotion > should do exactly that but it did not work. DragMotion is called > and returns false but widget accepts the drop. Should I set some > flag to widget or so to make it work? I can ask my friends which > done another parts of the game and we can post it to Gtk2hs > examples, if you want.. as far as I understand the documentation, dragMotion is only for visual feedback. If the user drops something despite dragMotion showing it's not allowed, the drop will still succeed. It seems that you need to return False from dragDrop. Do you do already do that? Axel. > Fero > > > > On Thu, Aug 27, 2009 at 11:57 PM, Axel Simon <Axe...@en...> > wrote: > > On Aug 24, 2009, at 17:19, Bulat Ziganshin wrote: > > Hello frantisek, > > Monday, August 24, 2009, 6:53:03 PM, you wrote: > > (i rerouted asnwer to gtk2hs list) > > Hi, have somebody used drag and drop feature of Gtk2hs? I can't find > any tutorial or demo. I'm using only the documentation but I think I'm > missing something. Can anyone give me an example? > > We certainly lack any tutorial on DND but there is a demo in demo/ > treeList/treednd which shows how DND is used within the TreeView > and IconView widget. Those widgets have special function but the > principles are the same as for normal widgets. The problem with > writing a demo for DND using, say, a DrawingArea is that there's a > lot of code to write but it should work in principle. > > The TreeView/CustomStore file is interesting since it shows the > functions that need to be installed in order to make DND work. > While the function in this module are specific to TreeView widgets, > these function are merely specialized from the more general > functions for ordinary widgets. For instance, the function that is > called to test if a certain value can be dropped is given in the > field treeDragDestRowDropPossible. For ordinary widgets this > functionality can be implemented using dragMotion in General/Drag. > > The TargetLists are used to install the set of possible data that a > widget is able to accept. In general, a widget will only accept a > drop from another widget if the TargetTag, SelectionTag and > SelectionTypeTag matches. > > Drags between Windows and Gtk should be possible but you have to > figure our that the corresponding TargetTags, etc. are. The native > port of Gtk to Aqua on OS X does not support DND (nor the > clipboard) yet. > > Axel. > > |
From: frantisek k. <fra...@gm...> - 2009-09-09 21:49:27
|
DragDrop is not working neither. It is called (have print out inside) return false but drop succeed. On Sun, Sep 6, 2009 at 10:05 AM, Axel Simon <Axe...@en...> wrote: > Hi Fero, > > On Sep 5, 2009, at 22:34, frantisek kocun wrote: > > I was not working with trees. We were making a Battleships game and DND >> was for placing the ships on the table. For example ships can not cross or >> border on each other. This was where I wanted to use some function which >> would accept/reject the drop. The tag list is not sufficient. You are right >> according to documentation dragMotion should do exactly that but it did not >> work. DragMotion is called and returns false but widget accepts the drop. >> Should I set some flag to widget or so to make it work? I can ask my friends >> which done another parts of the game and we can post it to Gtk2hs examples, >> if you want.. >> > > as far as I understand the documentation, dragMotion is only for visual > feedback. If the user drops something despite dragMotion showing it's not > allowed, the drop will still succeed. It seems that you need to return False > from dragDrop. Do you do already do that? > > Axel. > > Fero >> >> >> >> On Thu, Aug 27, 2009 at 11:57 PM, Axel Simon <Axe...@en...> wrote: >> >> On Aug 24, 2009, at 17:19, Bulat Ziganshin wrote: >> >> Hello frantisek, >> >> Monday, August 24, 2009, 6:53:03 PM, you wrote: >> >> (i rerouted asnwer to gtk2hs list) >> >> Hi, have somebody used drag and drop feature of Gtk2hs? I can't find >> any tutorial or demo. I'm using only the documentation but I think I'm >> missing something. Can anyone give me an example? >> >> We certainly lack any tutorial on DND but there is a demo in >> demo/treeList/treednd which shows how DND is used within the TreeView and >> IconView widget. Those widgets have special function but the principles are >> the same as for normal widgets. The problem with writing a demo for DND >> using, say, a DrawingArea is that there's a lot of code to write but it >> should work in principle. >> >> The TreeView/CustomStore file is interesting since it shows the functions >> that need to be installed in order to make DND work. While the function in >> this module are specific to TreeView widgets, these function are merely >> specialized from the more general functions for ordinary widgets. For >> instance, the function that is called to test if a certain value can be >> dropped is given in the field treeDragDestRowDropPossible. For ordinary >> widgets this functionality can be implemented using dragMotion in >> General/Drag. >> >> The TargetLists are used to install the set of possible data that a widget >> is able to accept. In general, a widget will only accept a drop from another >> widget if the TargetTag, SelectionTag and SelectionTypeTag matches. >> >> Drags between Windows and Gtk should be possible but you have to figure >> our that the corresponding TargetTags, etc. are. The native port of Gtk to >> Aqua on OS X does not support DND (nor the clipboard) yet. >> >> Axel. >> >> >> > |