home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
draglb.zip
/
DEMOLB.CPP
next >
Wrap
Text File
|
1994-05-18
|
4KB
|
73 lines
/******************************************************************************/
/* */
/* This program demonstrates how to enable drag/drop support for a */
/* single select list box (i.e. IListBox). */
/* */
/******************************************************************************/
#include <iapp.hpp>
#include <icanvas.hpp>
#include <idmhndlr.hpp>
#include <iframe.hpp>
#include <ilistbox.hpp>
#include "draglb.hpp"
void main()
{
/*****************************************************************/
/* Create a frame window and a canvas object and make the canvas */
/* object the client. */
/*****************************************************************/
IFrameWindow *pFrame = new IFrameWindow( IFrameWindow::defaultStyle() );
ICanvas *pCanvas = new ICanvas( 1000, pFrame, pFrame );
pFrame->setClient( pCanvas );
/*****************************************************************/
/* Create 2 list box objects and populate both with list items. */
/*****************************************************************/
IListBox *pLB1 = new IListBox( 2000, pCanvas, pCanvas,
IRectangle( 10, 70, 210, 370 ) );
IListBox *pLB2 = new IListBox( 2001, pCanvas, pCanvas,
IRectangle( 220,70,420,370 ) );
pLB1->addAsLast( "LB1 Item 1" ); pLB2->addAsLast( "LB2 Item 1" );
pLB1->addAsLast( "LB1 Item 2" ); pLB2->addAsLast( "LB2 Item 2" );
pLB1->addAsLast( "LB1 Item 3" ); pLB2->addAsLast( "LB2 Item 3" );
pLB1->addAsLast( "LB1 Item 4" ); pLB2->addAsLast( "LB2 Item 4" );
pLB1->addAsLast( "LB1 Item 5" ); pLB2->addAsLast( "LB2 Item 5" );
pLB1->addAsLast( "LB1 Item 6" ); pLB2->addAsLast( "LB2 Item 6" );
pLB1->addAsLast( "LB1 Item 7" ); pLB2->addAsLast( "LB2 Item 7" );
pLB1->addAsLast( "LB1 Item 8" ); pLB2->addAsLast( "LB2 Item 8" );
pLB1->addAsLast( "LB1 Item 9" ); pLB2->addAsLast( "LB2 Item 9" );
pLB1->addAsLast( "LB1 Item 10" ); pLB2->addAsLast( "LB2 Item 10" );
pLB1->select( 0 ); pLB2->select( 0 );
/*****************************************************************/
/* Create a list box drag item provider, and use it for both */
/* objects. */
/*****************************************************************/
LBProvider *pLBProvider = new LBProvider();
pLB1->setItemProvider( pLBProvider );
pLB2->setItemProvider( pLBProvider );
/*****************************************************************/
/* Enable both objects as a source and a target for a drag */
/* operation. */
/*****************************************************************/
IDMHandler::enableDragDropFor( pLB1 );
IDMHandler::enableDragDropFor( pLB2 );
/*****************************************************************/
/* Run the demo */
/* */
/* Note: Run 2 copies of the demo to show inter-process support.*/
/*****************************************************************/
pFrame->setDestroyOnClose( true );
pFrame->setFocus();
pFrame->show();
IApplication::current().run();
}