259 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			259 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <HTML>
 | |
| <HEAD><TITLE>DropSite</TITLE></HEAD>
 | |
| <BODY BGCOLOR=white>
 | |
| <DL><DT><I><A HREF="#descr">NAME</A></I></DT>
 | |
| <DD><B>DropSite</B>
 | |
|  - Commands set for Drop facilities
 | |
| </DD></DL>
 | |
| <DL>
 | |
| <DT><I><A HREF="#wc">COMMAND</A></I></DT>
 | |
| <DD>DropSite::<A HREF="#include"><B>include</B></A>
 | |
|  <I>class</I>
 | |
|  <I>types</I>
 | |
| </DD>
 | |
| <DD>DropSite::<A HREF="#register"><B>register</B></A>
 | |
|  <I>path</I>
 | |
|  ?<I>option value...</I>?
 | |
| </DD>
 | |
| <DD>DropSite::<A HREF="#setcursor"><B>setcursor</B></A>
 | |
|  <I>cursor</I>
 | |
| </DD>
 | |
| <DD>DropSite::<A HREF="#setdrop"><B>setdrop</B></A>
 | |
|  <I>path</I>
 | |
|  <I>subpath</I>
 | |
|  <I>dropover</I>
 | |
|  <I>drop</I>
 | |
|  ?<I>force</I>?
 | |
| </DD>
 | |
| <DD>DropSite::<A HREF="#setoperation"><B>setoperation</B></A>
 | |
|  <I>op</I>
 | |
| </DD>
 | |
| </DL>
 | |
| <BR><HR WIDTH="100%"><BR>
 | |
| <B><A NAME="descr"></A>DESCRIPTION</B><BR>
 | |
| <P>
 | |
| 
 | |
| Commands of this namespace enable user to define a BWidget or a Tk widget as a drop site.
 | |
| A drop site is composed of the type of object that can be dropped and associated operation,
 | |
| a command called when drop occurs, and a command when an object is dragged over the widget.
 | |
| A drop site must have at least one type of acceptable object and a drop command.
 | |
| 
 | |
| </P>
 | |
| <HR WIDTH="50%"><BR>
 | |
| <B><A NAME="wc">COMMAND</A></B><BR>
 | |
| <DL><DT><A NAME="include">DropSite::<B>include</B></A>
 | |
|  <I>class</I>
 | |
|  <I>types</I>
 | |
| </DT><DD>
 | |
| 
 | |
| This command provides a simple way to include options relatives to a drop site into
 | |
| BWidget resources definition.
 | |
| It includes the options needed for <B>register</B>, <I>-dropovercmd</I> and <I>-dropcmd</I>,
 | |
| initialized to empty string, and <I>-droptypes</I>, initialized to <I>types</I>,
 | |
| and one new option:
 | |
| <TABLE BORDER=0 CELLSPACING=1>
 | |
| <TR><TD><I>-dropenabled</I><TD>Specifies wether or not drop is active (initialized to 0)
 | |
| </TABLE>
 | |
| 
 | |
| </DD></DL>
 | |
| <DL><DT><A NAME="register">DropSite::<B>register</B></A>
 | |
|  <I>path</I>
 | |
|  ?<I>option value...</I>?
 | |
| </DT><DD>
 | |
| 
 | |
| This command is used to declare <I>path</I> as a drop site. Options are:
 | |
| 
 | |
| <P>
 | |
| <DL><DT><A NAME="DropSite-dropcmd"><B>-dropcmd</B></A></DT>
 | |
| <DD>
 | |
| 
 | |
| This command is called when user release the drag icon over a valid drop target widget.
 | |
| It takes the same arguments as <B>-dragovercmd</B> command. Its return values is passed
 | |
| as a result to the <B>-dragendcmd</B> command of the drag source widget.
 | |
| 
 | |
| </DD>
 | |
| </DL>
 | |
| <DL><DT><A NAME="DropSite-dropovercmd"><B>-dropovercmd</B></A></DT>
 | |
| <DD>
 | |
| 
 | |
| This command can be used to provide a dynamic drag while <I>drag-over</I> events.
 | |
| While a drag occurs, events <Enter>, <Motion> and <Leave> are catched.
 | |
| Arguments passed to the command are:
 | |
| <UL>
 | |
| <LI>pathname of the drop target (the widget itself),
 | |
| <LI>pathname of the drag source,
 | |
| <LI>event over the drop target: <I>enter</I>, <I>motion</I> or <I>leave</I>,
 | |
| <LI>root x-coordinate of the pointer,
 | |
| <LI>root y-coordinate of the pointer,
 | |
| <LI>operation,
 | |
| <LI>type of the dragged data,
 | |
| <LI>dragged data.
 | |
| </UL>
 | |
| Command must the new status of the drag:
 | |
| <UL>
 | |
| <LI>0  if widget refuse this drag. Command will not be recalled on motion/leave event.
 | |
| <LI>1  if widget accept this drag. Command will not be recalled on motion/leave event.
 | |
| <LI>2  if widget refuse this drag. Command will be recalled on each motion event to reevaluate.
 | |
| <LI>3  if widget accept this drag. Command will be recalled on each motion event to reevaluate.
 | |
| 
 | |
| </UL>
 | |
| Here is a list of events and associated actions on a DropSite widget. This example
 | |
| assumes that dragged data type is valid for the drop target.
 | |
| <B>status</B> is the status of the drag on a DropSite. Its value is:
 | |
| <BR><BR>
 | |
| 
 | |
| <TABLE BORDER CELLSPACING=1 CELLPADDING=4>
 | |
| <TR><TD WIDTH="18%" VALIGN="TOP">
 | |
| <P ALIGN="CENTER"><FONT SIZE=2>Event</FONT></TD>
 | |
| <TD WIDTH="10%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P ALIGN="CENTER">Old status</FONT></TD>
 | |
| <TD WIDTH="48%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P ALIGN="CENTER">Action</FONT></TD>
 | |
| <TD WIDTH="24%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P ALIGN="CENTER">New status</FONT></TD>
 | |
| </TR>
 | |
| <TR><TD WIDTH="18%" VALIGN="TOP" ROWSPAN=2>
 | |
| <FONT SIZE=2><P><Enter></FONT></TD>
 | |
| <TD WIDTH="10%" VALIGN="TOP" ROWSPAN=2>
 | |
| <FONT SIZE=2><P>-</FONT></TD>
 | |
| <TD WIDTH="48%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>if DropSite has <B>dropovercmd</B>, call it with <I>enter</I></FONT></TD>
 | |
| <TD WIDTH="24%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>result of <B>dropovercmd</B></FONT></TD>
 | |
| </TR>
 | |
| <TR><TD WIDTH="48%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>else</FONT></TD>
 | |
| <TD WIDTH="24%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>1</FONT></TD>
 | |
| </TR>
 | |
| <TR><TD WIDTH="18%" VALIGN="TOP" ROWSPAN=2>
 | |
| <FONT SIZE=2><P><Motion></FONT></TD>
 | |
| <TD WIDTH="10%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>0 or 1</FONT></TD>
 | |
| <TD WIDTH="48%" VALIGN="TOP"> </TD>
 | |
| <TD WIDTH="24%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>unchanged</FONT></TD>
 | |
| </TR>
 | |
| <TR><TD WIDTH="10%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>2 or 3</FONT></TD>
 | |
| <TD WIDTH="48%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>call <B>dropovercmd</B> with <I>motion</I></FONT></TD>
 | |
| <TD WIDTH="24%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>result of <B>dropovercmd</B></FONT></TD>
 | |
| </TR>
 | |
| <TR><TD WIDTH="18%" VALIGN="TOP" ROWSPAN=2>
 | |
| <FONT SIZE=2><P><Leave></P>
 | |
| </FONT><P> </TD>
 | |
| <TD WIDTH="10%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>0 or 1</FONT></TD>
 | |
| <TD WIDTH="48%" VALIGN="TOP"> </TD>
 | |
| <TD WIDTH="24%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>-</FONT></TD>
 | |
| </TR>
 | |
| <TR><TD WIDTH="10%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>2 or 3</FONT></TD>
 | |
| <TD WIDTH="48%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>call <B>dropovercmd</B> with <I>leave</I></FONT></TD>
 | |
| <TD WIDTH="24%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>-</FONT></TD>
 | |
| </TR>
 | |
| <TR><TD WIDTH="18%" VALIGN="TOP" ROWSPAN=4>
 | |
| <FONT SIZE=2><P><Drop></FONT></TD>
 | |
| <TD WIDTH="10%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>0</FONT></TD>
 | |
| <TD WIDTH="48%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>call <B>dragendcmd</B> of drag source</FONT></TD>
 | |
| <TD WIDTH="24%" VALIGN="TOP" ROWSPAN=4>
 | |
| <FONT SIZE=2><P>-</FONT></TD>
 | |
| </TR>
 | |
| <TR><TD WIDTH="10%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>1</FONT></TD>
 | |
| <TD WIDTH="48%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>call <B>dropcmd</B> and call <B>dragendcmd</B> of drag source</FONT></TD>
 | |
| </TR>
 | |
| <TR><TD WIDTH="10%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>2</FONT></TD>
 | |
| <TD WIDTH="48%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>call <B>dropovercmd</B> with <I>leave</I> and call <B>dragendcmd</B> of drag source</FONT></TD>
 | |
| </TR>
 | |
| <TR><TD WIDTH="10%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>3</FONT></TD>
 | |
| <TD WIDTH="48%" VALIGN="TOP">
 | |
| <FONT SIZE=2><P>call <B>dropcmd</B> and call <B>dragendcmd</B> of drag source</FONT></TD>
 | |
| </TR>
 | |
| </TABLE>
 | |
| <BR>
 | |
| 
 | |
| </DD>
 | |
| </DL>
 | |
| <DL><DT><A NAME="DropSite-droptypes"><B>-droptypes</B></A></DT>
 | |
| <DD>
 | |
| 
 | |
| Specifies a list {<I>type</I> <I>oplist</I> ?<I>type</I> <I>oplist</I>? ...} of acceptable
 | |
| types and associated operations for the drop target.
 | |
| For each type, <I>oplist</I> is a list
 | |
| {<I>descops</I> <I>mod</I> ?<I>descops</I> <I>mod</I>? ...} describing operations and
 | |
| modifier keys for these operations.
 | |
| <I>descops</I> describe an operation. It can be a predefined operations (<B>copy</B>,
 | |
| <B>move</B> or <B>link</B>) or a new user defined operation, of the form {<I>subop</I>
 | |
| <B>baseop</I> ?<I>bitmap</I>?}.
 | |
| <I>subop</I> is the name given to the sub operation, <I>baseop</I> is the name of the
 | |
| base operation (<B>copy</B>, <B>move</B> or <B>link</B>) and <I>bitmap</I> is a bitmap
 | |
| to display for the operation.
 | |
| <BR>If <I>bitmap</I> is empty, the default bitmap of the base operation is used for the
 | |
| sub operation.
 | |
| <BR><I>subop</I> can be a base operation, in order to change the bitmap of a base operation.
 | |
| In this case, <I>baseop</I> must be empty or equal to <I>subop</I>.
 | |
| <BR><I>mod</I> is the modifer key for the operation. It can be:
 | |
| <UL>
 | |
| <LI><B>none</B> to specify that no modifier key is pressed. This modifier can only be used
 | |
| with a sub operation named <B>default</B> (and vice versa), which has the behaviour of not
 | |
| display any bitmap operation. For all type, if the modifier <B>none</B> is not given, it is
 | |
| automatically associated to the <B>default</B> sub operation of a <B>copy</B> base operation.
 | |
| <LI><B>program</B> to specifies a sub operation accessible only by <B>DropSite::setoperation</B>.
 | |
| <LI>A list combining <B>shift</B>, <B>control</B> and <B>alt</B>, which means their 
 | |
| corresponding key.
 | |
| </UL>
 | |
| 
 | |
| </DD>
 | |
| </DL>
 | |
| </DD></DL>
 | |
| <DL><DT><A NAME="setcursor">DropSite::<B>setcursor</B></A>
 | |
|  <I>cursor</I>
 | |
| </DT><DD>
 | |
| 
 | |
| This command can be used within the script <B>dragovercmd</B>. It is usefull to provide
 | |
| visual effect about the state of the drag.
 | |
| </DD></DL>
 | |
| <DL><DT><A NAME="setdrop">DropSite::<B>setdrop</B></A>
 | |
|  <I>path</I>
 | |
|  <I>subpath</I>
 | |
|  <I>dropover</I>
 | |
|  <I>drop</I>
 | |
|  ?<I>force</I>?
 | |
| </DT><DD>
 | |
| 
 | |
| This command provides a simple way to call <B>register</B> during a BWidget creation or
 | |
| configuration.
 | |
| <UL>
 | |
| <LI><I>path</I> is the pathname of the BWidget,
 | |
| <LI><I>subpath</I> is the pathname of the tk widget where drag event occurs,
 | |
| <LI><I>dropover</I> is a command for <I>drag-over</I> event,
 | |
| <LI><I>drop</I> is a command for <I>drop</I> event,
 | |
| <LI><I>force</I> specifies wether or not to call <B>register</B> whenever no option value
 | |
| has changed (0 by default - for BWidget configuration, use 1 for BWidget creation).
 | |
| </UL>
 | |
| <B>setdrop</B> verifies the modification flag of options <B>dropenabled</B> and
 | |
| <B>droptypes</B> and calls <B>register</B> if needed according to the options values and
 | |
| <I>dropover</I> and <I>drop</I> arguments. <B>dropovercmd</B> and <B>dropcmd</B> are not
 | |
| taken from options of widget because they are considered as user command, called by
 | |
| BWidget implementation of <I>drag-over</I> and <I>drop</I> events.
 | |
| 
 | |
| </DD></DL>
 | |
| <DL><DT><A NAME="setoperation">DropSite::<B>setoperation</B></A>
 | |
|  <I>op</I>
 | |
| </DT><DD>
 | |
| Description text
 | |
| </DD></DL>
 | |
| </BODY></HTML>
 | 
