ruby-****@sourc*****
ruby-****@sourc*****
2012年 11月 23日 (金) 06:27:59 JST
------------------------- REMOTE_ADDR = 184.145.95.170 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/hiki.cgi?tut-gtk2-dnd-intro ------------------------- @@ -5,3 +5,9 @@ # (10.1)/(9a) == Drag And Drop Introduction + + +When in the context of GUI we are talking about "dragging and dropping" our operating domain consists of three kinds of objects. In particular in our Gtk environment, we are dragging (moving) Gtk widgets between two different geometric locations. One is the location from which you are dragging a widget. This location is called the 'source' location. Naturally, the location to which you would like to drag the widget will then be called the 'destination' location. So the three object we mentioned earlier are (1) the graphic object you are moving, (2) the source location, and (3) the destination location. Behind the scene the drag-and-drop metaphor a significant inter-process communications is shielded from GUI developers. Namely, when a user initiates the drag process in the source environment the information about the object being dragged must be conveyed to the destination so it can properly react to the 'drop'. Depending on the type of 'drag' action the source and destinati on may, at the completion of the 'drag', need to perform different but coordinated actions, such as copying, duplicating and/or removing the object being dragged from the source location, and placing, or perhaps even refusing to accept the dragged object at the destination point. + + +Gtk includes a module and a number of classes to provide required drag-and-drop behaviour and additional helper objects and methods. The most prominent is appropriately called the Gtk::Drag module and some of the helper classes are Gdk::DragContext, Gdk::Atom, Gtk::TargetList, in addition to the Gtk::Selection module. An important part of drag-and-drop features are signals. As it happens, the three drag-and-drop objects rely on Gtk::Widget drag related signals.