home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
gpfcnt.zip
/
UFCONT1.CPP
< prev
Wrap
Text File
|
1994-05-01
|
9KB
|
268 lines
//-----------------
//UICL Headers
//-----------------
#include <iwindow.hpp>
#include <ientryfd.hpp>
#include <imle.hpp>
#include <istring.hpp>
#include <ireslib.hpp>
#include <idmefit.hpp>
#include <icnr.hpp> //Containers Classes
#include <idmhndlr.hpp>
#include <icnrctl.hpp>
#include <icnrehdr.hpp>
#include <ihelphdr.hpp>
#include <idmhndlr.hpp>
//-----------------
// PM Headers
//-----------------
#define INCL_DOS /* Need DOS support */
#define INCL_PM /* Need DOS support */
#include <os2.h> /* Presentation Manager include file */
//--------------------------------------------------
// Interfaces to Gpf main program
//--------------------------------------------------
#include "cont1.ids"
#include "cont1.ext"
#include "cont1.h"
#include "cont1.hpp"
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// User function InitClient
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
VOID InitClient (PGPFPARMS pGpfParms)
{
//-------------------------------------------------------
// Wrap a Client object around the client area
// and store the object pointer in pUsrParms
//-------------------------------------------------------
pGpfParms->pUsrParms = new AClient( pGpfParms->hwnd);
}
//**************************************************************************
// AClient :: AClient - Constructor for text dialog window *
//**************************************************************************
AClient :: AClient(IWindowHandle hwndClient)
: IWindow(hwndClient)
{
//-------------------------------------------
// Set the command handler
//-------------------------------------------
ICommandHandler::handleEventsFor(this);
//-------------------------------------------
// Put a wrapper around the PM containers
//-------------------------------------------
cnr1 = new IContainerControl(ID_CONTAINER1, this);
cnr2 = new IContainerControl (ID_CONTAINER2, this);
//-----------------------------------
// Default behavior for Drag/Drop
//-----------------------------------
IDMHandler::enableDragDropFor( cnr1 );
IDMHandler::enableDragDropFor( cnr2 );
//---------------------------------------------------
// Default behavior for editing container objects
//---------------------------------------------------
cnrEdit=new ICnrEditHandler();
cnrEdit->handleEventsFor(cnr1);
//---------------------------------------
// Column description for Details view
//---------------------------------------
//------------
// Column 1
//------------
colName = new IContainerColumn (IContainerObject::iconTextOffset(),
IContainerColumn::defaultHeadingStyle (),
IContainerColumn::string |
IContainerColumn::alignVerticallyCentered |
IContainerColumn::alignLeft |
IContainerColumn::horizontalSeparator);
colName->enableDataUpdate();
colName->setHeadingText("Department Name");
colName->showSeparators(IContainerColumn::verticalSeparator);
cnr1->addColumn(colName);
//------------
// Column 2
//------------
colCode = new IContainerColumn (offsetof(Objekt, strCode));
colCode->enableDataUpdate();
colCode->setHeadingText("Code");
colCode->showSeparators(IContainerColumn::verticalSeparator);
cnr1->addColumn(colCode);
//------------
// Column 3
//------------
colNumber = new IContainerColumn(offsetof(Objekt, ulNumber),
IContainerColumn::defaultHeadingStyle (),
IContainerColumn::number |
IContainerColumn::alignVerticallyCentered |
IContainerColumn::alignLeft |
IContainerColumn::horizontalSeparator);
colNumber->setHeadingText("Number");
colNumber->showSeparators(IContainerColumn::verticalSeparator);
cnr1->addColumn(colNumber);
} /* end AClient :: AClient(...) */
//**************************************************************************
// AClient :: ~AClient - Destructor *
//**************************************************************************
AClient :: ~AClient()
{
} /* end AClient :: ~Client(...) */
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// WM_COMMAND handler
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Boolean AClient :: command(ICommandEvent& cmdevt)
{
switch(cmdevt.commandId()) {
case ID_PUSHBUTTON1:
Push();
break;
case ID_TREE:
cnr1->showTreeIconView();
break;
case ID_ARRANGEICONS:
cnr1->arrangeIconView();
cnr2->arrangeIconView();
break;
case ID_DETAILS:
cnr1->showDetailsView();
break;
case ID_VIEW:
case ID_EDIT:
ObjektDetails();
break;
default:
break;
return (false);
}/* end switch */
return(false); //Allow Default Processing to occur
} /* end AClient :: command(...) */
//**************************************************************************
// AClient :: push
//**************************************************************************
void AClient :: Push()
{
Objekt *obj1, *obj2;
//--------------------------------------------------
// Create a new container object to container 1
//--------------------------------------------------
obj1 = new Objekt( "Workstation1",
IResourceLibrary().loadIcon(ID_ICON1),
"TWPD",
10000,
this);
obj1->enableDataUpdate();
obj2 = new Objekt ( "UI Development",
IResourceLibrary().loadIcon(ID_ICON2),
"TUID",
200,
this);
obj2->enableDataUpdate();
//-------------------------------------------------------
// Insert the item
//-------------------------------------------------------
cnr1->addObject(obj1);
cnr1->addObject(obj2,obj1);
} /* end AClient :: Push(...) */
//**************************************************************************
// AClient :: ObjektDetails
//**************************************************************************
void AClient :: ObjektDetails()
{
//-----------------------------------------------------
// Use a Gpf generated function to display the window
//-----------------------------------------------------
IContainerControl::ObjectCursor CO3 (*cnr1, IContainerObject::cursored);
CO3.setToFirst();
Objekt *CurObj = (Objekt *) CO3.current();
ShowObjektDetails (CurObj);
} /* end AClient :: ObjectDetails(...) */
//**************************************************************************
//**************************************************************************
// Objekt :: Objekt - Constructor for Objekt object
//**************************************************************************
//**************************************************************************
Objekt :: Objekt(const IString& Name,
const IPointerHandle& Icon,
const IString& Code,
const ULONG number,
AClient *client) :
IContainerObject(Name, Icon), //Call IContainerObject Constructor
strCode (Code) //Set Code
{
ulNumber = number;
owner = client;
} // end Objekt::Objekt
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// User function InitObjektDetails
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
VOID InitObjektDetails (PGPFPARMS pGpfParms)
{
//-------------------------------------------------------
// Wrap a Client object around the client area
// and store the object pointer in pUsrParms
//-------------------------------------------------------
pGpfParms->pUsrParms = new ADialog( pGpfParms->hwnd,
(Objekt*) pGpfParms->pCrtParms);
}
//**************************************************************************
// ADialog :: ADialog - Constructor for text dialog window *
//**************************************************************************
ADialog :: ADialog(IWindowHandle hwndClient, Objekt *cnrObjekt)
: IWindow(hwndClient)
{
EFName = new IEntryField (ID_EFNAME, this);
EFCode = new IEntryField (ID_EFCODE, this);
// EFNumber = new IEntryField (ID_EFNUMBER, this);
Obj = cnrObjekt;
EFName->setText (Obj->iconText());
EFCode->setText (Obj->Code());
}
//**************************************************************************
// ADialog :: ~ADialog - Destructor *
//**************************************************************************
ADialog :: ~ADialog()
{
} /* end ADialog :: ~ADialog(...) */