Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Simulating the Workplace Shell Fanning of Container Records

IP.com Disclosure Number: IPCOM000112200D
Original Publication Date: 1994-Apr-01
Included in the Prior Art Database: 2005-Mar-26
Document File: 2 page(s) / 95K

Publishing Venue

IBM

Related People

Johnson, KD: AUTHOR

Abstract

In the OS/2* 2.0, 2.1 Workplace Shell* environment when a series of container records are dragged and then dropped, those records are not stacked up on top of each other but rather are fanned out so that they are not overlapping. In addition, if the records are dropped close to the right edge of the container window or if there are a number of records being dropped and either of the above mentioned conditions would cause one or more of the container records to be outside of the viewable region of the container, those container records are wrapped or displayed on the next logical row of the container. This provides a consistent user friendly interface with which an OS/2 Workplace Shell user quickly becomes accustomed.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 51% of the total text.

Simulating the Workplace Shell Fanning of Container Records

      In the OS/2* 2.0, 2.1 Workplace Shell* environment when a
series of container records are dragged and then dropped, those
records are not stacked up on top of each other but rather are fanned
out so that they are not overlapping.  In addition, if the records
are dropped close to the right edge of the container window or if
there are a number of records being dropped and either of the above
mentioned conditions would cause one or more of the container records
to be outside of the viewable region of the container, those
container records are wrapped or displayed on the next logical row of
the container.  This provides a consistent user friendly interface
with which an OS/2 Workplace Shell user quickly becomes accustomed.

      When an application is launched from the Workplace Shell, that
application is responsible for defining the processing that will take
place after a drag and drop operation occurs in a container that is
part of the application.  Many users, already accustomed to the
Workplace Shell and it's handling of the dropping of multiple
container records by the fanning algorithm described earlier, will
expect applications launched from the Workplace Shell to work in a
similar manner.  However, each application must decide the correct
way to handle the dropping of multiple container records and must
write the the code to implement their decision.

      The following solution will simulate the Workplace Shell method
of fanning container records that are dropped.  This Presentation
Manager* (PM) based solution increases the useability and
effectiveness of an application by providing the user with an easily
understandable and useable method of handling multiple container
records on a drop operation.  This is true whether or not the
application is launched from the Workplace Shell.  However, any
applications that are launched from the Workplace Shell will provide
the added consistency of having the same "look and feel" as the
Workplace Shell itself when multiple container records are dropped.

      The Presentation Manager based solution for solving this
problem is initiated when PM sends a WM_CONTROL message with the
CN_DROP notification code signifying that a drop has occurred.  The
algorithm to fan the dropped container records is described below:

1.  Calculate the first records dropped position by taking the x and
    y coordinates provided by PM in the xDrop and yDrop fields of the
    DRAGINFO structure and adding the cxOffset and cyOffset values
    from the DRAGIMAGE structure representing the first container
    record.  These offsets are the x and y offsets from the pointer
    hot spot to the origin of the image that represents the object
    (container record).

2.  Map the coordinates calculated in the previous step from DESKTOP
    coordinates to Container window coordinates via the
    WinMapWindowPoints P...