DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ RecomputeNumberOfContainers()

void VicinitySlotsContainer::RecomputeNumberOfContainers ( array< EntityAI > items)
inlineprotected

См. определение в файле VicinitySlotsContainer.c строка 576

577 {
578 int number_of_containers = m_Container.m_Body.Count();
579 int number_of_containers_needed = ( items.Count() / ITEMS_IN_ROW ) + 1;
580 int difference = number_of_containers_needed - number_of_containers;
581 int g;
582
583 for (g = number_of_containers; g < number_of_containers_needed; g++)
584 {
585 SlotsContainer con = new SlotsContainer( m_Container, null );
586 m_Container.Insert(con, -1, false);
587 for (int j = 0; j < ITEMS_IN_ROW; j++)
588 {
589 SlotsIcon icon = con.GetSlotIcon(j);
590 WidgetEventHandler.GetInstance().RegisterOnDropReceived(icon.GetPanelWidget(), m_Parent, "OnDropReceivedFromIcon");
591 WidgetEventHandler.GetInstance().RegisterOnDropReceived(icon.GetGhostSlot(), m_Parent, "OnDropReceivedFromHeader");
592 WidgetEventHandler.GetInstance().RegisterOnDropReceived(icon.GetMainWidget(), m_Parent, "OnDropReceivedFromHeader");
593
594 WidgetEventHandler.GetInstance().RegisterOnDraggingOver(icon.GetPanelWidget(), m_Parent, "DraggingOverIcon");
595 WidgetEventHandler.GetInstance().RegisterOnDraggingOver(icon.GetGhostSlot(), m_Parent, "DraggingOverHeader");
596 WidgetEventHandler.GetInstance().RegisterOnDraggingOver(icon.GetMainWidget(), m_Parent, "DraggingOverHeader");
597
598 WidgetEventHandler.GetInstance().RegisterOnDoubleClick(icon.GetPanelWidget(), this, "DoubleClick");
599 WidgetEventHandler.GetInstance().RegisterOnMouseButtonUp(icon.GetPanelWidget(), this, "MouseClick");
600 WidgetEventHandler.GetInstance().RegisterOnMouseButtonDown(icon.GetPanelWidget(), this, "MouseButtonDown");
601 }
602
603 con.SetColumnCount(items.Count() % ITEMS_IN_ROW);
604 }
605
606 for (g = number_of_containers - 1 ; g >= number_of_containers_needed ; g--)
607 {
608 Widget w = m_Container.m_Body.Get(g).GetMainWidget();
609 delete w;
610 m_Container.m_Body.Remove(g);
611 }
612
613 if ( (items.Count() % ITEMS_IN_ROW) == 0 )
614 {
615 SlotsContainer.Cast( m_Container.Get( number_of_containers_needed - 1 ) ).SetColumnCount( ITEMS_IN_ROW );
616 }
617 else
618 {
619 SlotsContainer.Cast( m_Container.Get( number_of_containers_needed - 1 ) ).SetColumnCount( items.Count() % ITEMS_IN_ROW );
620 }
621
622 for ( int i = 0; i < number_of_containers_needed - 1; i++ )
623 {
624 SlotsContainer.Cast( m_Container.Get( i ) ).SetColumnCount( ITEMS_IN_ROW );
625 }
626
627 RecomputeOpenedContainers();
628 m_Container.RecomputeOpenedContainers();
629 }
const int ITEMS_IN_ROW
Определения Attachments.c:1
Widget m_Parent
Определения SizeToChild.c:92
SlotsIcon GetSlotIcon(int index)
Определения SlotsContainer.c:207
Widget GetPanelWidget()
Определения SlotsIcon.c:205
ImageWidget GetGhostSlot()
Определения SlotsIcon.c:235
ref AttachmentsGroupContainer m_Container
Определения VicinitySlotsContainer.c:3
WorkspaceWidget Widget
Defined in code.

Перекрестные ссылки SlotsIcon::GetGhostSlot(), WidgetEventHandler::GetInstance(), SlotsIcon::GetPanelWidget(), SlotsContainer::GetSlotIcon(), ITEMS_IN_ROW, m_Container, m_Parent, WidgetEventHandler::RegisterOnDoubleClick(), WidgetEventHandler::RegisterOnDraggingOver(), WidgetEventHandler::RegisterOnDropReceived(), WidgetEventHandler::RegisterOnMouseButtonDown() и WidgetEventHandler::RegisterOnMouseButtonUp().

Используется в ShowItemsInContainers().