Update of /cvsroot/planeshift/planeshift/src/client/gui In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7146/src/client/gui Modified Files: inventorywindow.cpp pawscontainerdescwindow.cpp pawscontainerdescwindow.h pawsinteractwindow.cpp pawsitemdescriptionwindow.cpp Log Message: Some more drag and drop fixes Index: inventorywindow.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/inventorywindow.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** inventorywindow.cpp 28 Feb 2004 19:43:32 -0000 1.26 --- inventorywindow.cpp 29 Feb 2004 22:21:51 -0000 1.27 *************** *** 121,125 **** // Subscribe our message types that we are interested in. if ( !msgHandler->Subscribe( this, MSGTYPEGUIINVENTORY ) ) return false; ! // Setup the Doll csRef<iPcMesh> mesh = psengine->GetCelClient()->GetMainPlayer()->pcmesh; --- 121,126 ---- // Subscribe our message types that we are interested in. if ( !msgHandler->Subscribe( this, MSGTYPEGUIINVENTORY ) ) return false; ! //if ( !msgHandler->Subscribe( this, MSG_TYPE_VIEW_ITEM ) ) return false; ! // Setup the Doll csRef<iPcMesh> mesh = psengine->GetCelClient()->GetMainPlayer()->pcmesh; *************** *** 351,370 **** bool pawsInventoryWindow::OnButtonPressed( int mouseButton, int keyModifer, pawsWidget* widget ) ! { ! pawsFloatingItem * floatingItem = GetFloatingItem(windowManager); ! // Check to see if this was the view button. if ( widget->GetID() == VIEW_BUTTON ) ! { ! if ( floatingItem!=NULL ) { ! psGUIInventoryMessage out( psGUIInventoryMessage::REQUEST_DESCRIPTION, 100 ); ! out.ViewSlot( floatingItem->GetName() ); ! ! msgHandler->SendMessage( out.msg ); ! ! windowManager->SetDragDropWidget(NULL); } ! return true; } --- 352,367 ---- bool pawsInventoryWindow::OnButtonPressed( int mouseButton, int keyModifer, pawsWidget* widget ) ! { // Check to see if this was the view button. if ( widget->GetID() == VIEW_BUTTON ) ! { ! if ( psengine->GetSlotManager()->IsDragging() ) { ! psViewItemDescription out( psengine->GetSlotManager()->HoldingContainerID(), ! psengine->GetSlotManager()->HoldingSlotID() ); ! msgHandler->SendMessage( out.msg ); ! psengine->GetSlotManager()->ReplaceHolding(); } ! return true; } Index: pawscontainerdescwindow.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawscontainerdescwindow.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** pawscontainerdescwindow.cpp 28 Feb 2004 19:43:32 -0000 1.12 --- pawscontainerdescwindow.cpp 29 Feb 2004 22:21:51 -0000 1.13 *************** *** 83,86 **** --- 83,89 ---- if ( !msgHandler ) return false; if ( !msgHandler->Subscribe( this, MSGTYPEGUICONTAINERDESC) ) return false; + if ( !msgHandler->Subscribe(this, MSG_TYPE_VIEW_CONTAINER ) ) + return false; + // Store some of our children for easy access later on. *************** *** 97,107 **** // Create bulk slots. ! pawsListBox * bulkList = dynamic_cast <pawsListBox*> (FindWidget("BulkList")); ! CS_ASSERT( bulkList ); for (int i = 0; i < PSITEM_MAX_CONTAINER_SLOTS/2; i++) { ! pawsListBoxRow* listRow = bulkList->NewRow(i); for (int j = 0; j < 2; j++) { --- 100,110 ---- // Create bulk slots. ! contents = dynamic_cast <pawsListBox*> (FindWidget("BulkList")); ! CS_ASSERT( contents ); for (int i = 0; i < PSITEM_MAX_CONTAINER_SLOTS/2; i++) { ! pawsListBoxRow* listRow = contents->NewRow(i); for (int j = 0; j < 2; j++) { *************** *** 117,122 **** --- 120,167 ---- } + void pawsContainerDescWindow::HandleViewItem( MsgEntry* me ) + { + Show(); + psViewItemDescription mesg( me ); + + description->Clear(); + description->AddMessage( mesg.itemDescription ); + name->SetText( mesg.itemName ); + pic->SetBackground( mesg.itemIcon ); + + if ( mesg.hasContents ) + { + contents->Show(); + for ( int n = 0; n < containerSlots.Length(); n++ ) + containerSlots[n]->SetContainer( mesg.containerID ); + + for( int i = 0; i < mesg.contents.Length(); i++ ) + { + int slot = mesg.contents[i].slotID; + pawsSlot* itemSlot = containerSlots[slot]; + + itemSlot->Clear(); + itemSlot->PlaceItem( mesg.contents[i].icon, + mesg.contents[i].stackCount ); + } + } + else + { + contents->Hide(); + } + } + void pawsContainerDescWindow::HandleMessage( MsgEntry* me ) { + switch ( me->data->type ) + { + case MSG_TYPE_VIEW_CONTAINER: + { + HandleViewItem( me ); + break; + } + } + + /* float totalWeight = 0.0; *************** *** 214,217 **** --- 259,263 ---- Show(); + */ } Index: pawscontainerdescwindow.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawscontainerdescwindow.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** pawscontainerdescwindow.h 28 Feb 2004 19:43:32 -0000 1.8 --- pawscontainerdescwindow.h 29 Feb 2004 22:21:51 -0000 1.9 *************** *** 65,68 **** --- 65,69 ---- void ClearContents(); private: + void HandleViewItem( MsgEntry* me ); csRef<MsgHandler> msgHandler; *************** *** 73,76 **** --- 74,78 ---- pawsTextBox* crafter; CS_ID containerID; + pawsListBox* contents; // List of slot names Index: pawsinteractwindow.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawsinteractwindow.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** pawsinteractwindow.cpp 14 Dec 2003 02:52:59 -0000 1.3 --- pawsinteractwindow.cpp 29 Feb 2004 22:21:51 -0000 1.4 *************** *** 183,189 **** // Send message to server ! psGUIItemDescMessage outMessage(0,0,id); ! psengine->GetMsgHandler()->SendMessage( outMessage.msg ); Hide(); windowManager->SetCurrentFocusedWidget( NULL ); --- 183,192 ---- // Send message to server ! //psGUIItemDescMessage outMessage(0,0,id); ! //psengine->GetMsgHandler()->SendMessage( outMessage.msg ); + psViewItemDescription out( id, 0 ); + msgHandler->SendMessage( out.msg ); + Hide(); windowManager->SetCurrentFocusedWidget( NULL ); Index: pawsitemdescriptionwindow.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawsitemdescriptionwindow.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pawsitemdescriptionwindow.cpp 7 Nov 2003 06:44:39 -0000 1.1 --- pawsitemdescriptionwindow.cpp 29 Feb 2004 22:21:51 -0000 1.2 *************** *** 67,71 **** if ( !msgHandler ) return false; if ( !msgHandler->Subscribe( this, MSGTYPEGUIITEMDESC) ) return false; ! // Store some of our children for easy access later on. --- 67,71 ---- if ( !msgHandler ) return false; if ( !msgHandler->Subscribe( this, MSGTYPEGUIITEMDESC) ) return false; ! if ( !msgHandler->Subscribe( this, MSG_TYPE_VIEW_ITEM ) ) return false; // Store some of our children for easy access later on. *************** *** 86,89 **** --- 86,96 ---- { Show(); + psViewItemDescription mesg( me ); + description->Clear(); + description->AddMessage( mesg.itemDescription ); + name->SetText( mesg.itemName ); + pic->SetBackground( mesg.itemIcon ); + + /* printf("Handling Message!\n"); csRef<iDocumentSystem> xml = CS_QUERY_REGISTRY( windowManager->GetObjectRegistry(), iDocumentSystem ); *************** *** 111,114 **** --- 118,122 ---- description->Clear(); description->AddMessage( itemDesc ); + */ } |