HCriticalPath HCriticalPaths::AllocatePath()
{
    while (m_ld->Timing.ncpEnd >= m_ld->Timing.ncpLimit)
        Grow(GetNewSize(m_hd->cfg, m_ld->Timing.ncpLimit, "data.criticalPathsLimitGrow", 1, 0, 1.25));

    HCriticalPath res = ::__ConstructPtr<HCriticalPath>(m_ld->Timing.ncpEnd);
    m_ld->Timing.ncpEnd++;

    OnPathAllocation(res);

    return res;
}
HPlacementRow HPlacementRows::AllocateRow()
{
  while(m_ld->DetailedPlacement.nRows >= m_ld->DetailedPlacement.nRowsLimit)
    Grow(GetNewSize(m_hd->cfg, m_ld->DetailedPlacement.nRowsLimit, "data.placementRowsLimitGrow", 4, 0, 1.25));

  HPlacementRow res = ::__ConstructPtr<HPlacementRow>(m_ld->DetailedPlacement.nRows);
  m_ld->DetailedPlacement.nRows++;

  OnPlacementRowAllocation(res);

  return res;
}
Beispiel #3
0
		void _CheckSize()
		{
			if (_tables.size() == _size)
			{
				size_t NewSize = GetNewSize();


				//现代写法
				HashTable<K, V> ht;
				ht._tables.resize(NewSize);
				for (size_t i = 0; i < _tables.size(); i++)
				{
					ht.Insert(_tables[i]->_Key, _tables[i]->_Value);
				}
				_Swap(ht);
			}
		}
void
TestWidget::HandleMouseDown
	(
	const JPoint&			pt,
	const JXMouseButton		button,
	const JSize				clickCount,
	const JXButtonStates&	buttonStates,
	const JXKeyModifiers&	modifiers
	)
{
	if (button == kJXLeftButton && clickCount == 1 && itsHomeRect.Contains(pt))
		{
		JString dir;
		if (JGetHomeDirectory(&dir))
			{
			JPtrArray<JString> list(JPtrArrayT::kForgetAll);
			list.Append(&dir);

			// Normally, you should use the other constructor and then
			// override JXWidget::GetSelectionData().

			JXFileSelection* data = jnew JXFileSelection(GetDisplay(), list);
			assert( data != NULL );

			BeginDND(pt, buttonStates, modifiers, data);
			}
		}
	else if (button == kJXLeftButton && clickCount == 1)
		{
		JPainter* p = CreateDragInsidePainter();
		p->Rect(JRect(pt, pt));
		}
	else if (button == kJXMiddleButton && clickCount == 1)
		{
		itsAnimButton->Place(pt.x, pt.y);
		}
	else if (button == kJXRightButton && clickCount == 1 && !modifiers.meta())
		{
		JRect r = itsAnimButton->GetFrame();
		if (pt.x > r.left && pt.y > r.top)
			{
			itsAnimButton->SetSize(pt.x-r.left, pt.y-r.top);
			}
		}
	else if (button == kJXRightButton && clickCount == 1 && modifiers.meta())
		{
		if (itsSecretMenu->PopUp(this, pt, buttonStates, modifiers))
			{
			return;
			}
		else
			{
			(JGetUserNotification())->ReportError("Unable to open secret menu!");
			}
		}
	else if (ScrollForWheel(button, modifiers))
		{
		// work has been done
		}
	else if ((clickCount == 2 && its2Rect.Contains(pt)) ||
			 (clickCount == 3 && its3Rect.Contains(pt)))
		{
		GetNewSize();
		}

	itsStartPt = itsPrevPt = pt;
}
void
TestWidget::HandleActionsMenu
	(
	const JIndex index
	)
{
	if (index == kChangeSizeCmd)
		{
		GetNewSize();
		}
	else if (index == kToggleFillCmd)
		{
		itsFillFlag = !itsFillFlag;
		Refresh();
		}

	else if (index == kShowHideCmd && IsVisible())
		{
		Hide();
		itsActionsMenu->SetItemText(kShowHideCmd, kShowStr);
		}
	else if (index == kShowHideCmd)
		{
		Show();
		itsActionsMenu->SetItemText(kShowHideCmd, kHideStr);
		}

	else if (index == kActDeactCmd && IsActive())
		{
		Deactivate();
		itsActionsMenu->SetItemText(kActDeactCmd, kActivateStr);
		}
	else if (index == kActDeactCmd)
		{
		Activate();
		itsActionsMenu->SetItemText(kActDeactCmd, kDeactivateStr);
		}

	else if (index == kShowHideQuitCmd && itsQuitButton != NULL &&
			 itsQuitButton->WouldBeVisible())
		{
		itsQuitButton->Hide();
		itsActionsMenu->SetItemText(kShowHideQuitCmd, kShowQuitStr);
		}
	else if (index == kShowHideQuitCmd && itsQuitButton != NULL)
		{
		itsQuitButton->Show();
		itsActionsMenu->SetItemText(kShowHideQuitCmd, kHideQuitStr);
		}

	else if (index == kActDeactQuitCmd && itsQuitButton != NULL &&
			 itsQuitButton->WouldBeActive())
		{
		itsQuitButton->Deactivate();
		itsActionsMenu->SetItemText(kActDeactQuitCmd, kActivateQuitStr);
		}
	else if (index == kActDeactQuitCmd && itsQuitButton != NULL)
		{
		itsQuitButton->Activate();
		itsActionsMenu->SetItemText(kActDeactQuitCmd, kDeactivateQuitStr);
		}

	else if (index == kPrintSelectionTargetsCmd)
		{
		PrintSelectionTargets(CurrentTime);
		}
	else if (index == kPrintOldSelectionTargetsCmd)
		{
		PrintSelectionTargets(GetDisplay()->GetLastEventTime() - 10000);
		}
}
Beispiel #6
0
void
TestWidget::HandleActionsMenu
(
    const JIndex index
)
{
    if (index == kChangeSizeCmd)
    {
        GetNewSize();
    }
    else if (index == kToggleFillCmd)
    {
        itsFillFlag = JNegate(itsFillFlag);
        Refresh();
    }

    else if (index == kShowHideCmd && IsVisible())
    {
        Hide();
        itsActionsMenu->SetItemText(kShowHideCmd, kShowStr);
    }
    else if (index == kShowHideCmd)
    {
        Show();
        itsActionsMenu->SetItemText(kShowHideCmd, kHideStr);
    }

    else if (index == kActDeactCmd && IsActive())
    {
        Deactivate();
        itsActionsMenu->SetItemText(kActDeactCmd, kActivateStr);
    }
    else if (index == kActDeactCmd)
    {
        Activate();
        itsActionsMenu->SetItemText(kActDeactCmd, kDeactivateStr);
    }

    else if (index == kRedGreenCmd)
    {
        JXColormap* colormap  = GetColormap();
        const JIndex redColor = colormap->GetRedColor();
        itsAnimButton->SetFontStyle(itsNextAnimColor);
        if (itsNextAnimColor == redColor)
        {
            itsNextAnimColor = colormap->GetGreenColor();
            itsActionsMenu->SetItemText(kRedGreenCmd, kGreenStr);
        }
        else
        {
            itsNextAnimColor = redColor;
            itsActionsMenu->SetItemText(kRedGreenCmd, kRedStr);
        }
    }

    else if (index == kShowHideQuitCmd && itsQuitButton != NULL &&
             itsQuitButton->WouldBeVisible())
    {
        itsQuitButton->Hide();
        itsActionsMenu->SetItemText(kShowHideQuitCmd, kShowQuitStr);
    }
    else if (index == kShowHideQuitCmd && itsQuitButton != NULL)
    {
        itsQuitButton->Show();
        itsActionsMenu->SetItemText(kShowHideQuitCmd, kHideQuitStr);
    }

    else if (index == kActDeactQuitCmd && itsQuitButton != NULL &&
             itsQuitButton->WouldBeActive())
    {
        itsQuitButton->Deactivate();
        itsActionsMenu->SetItemText(kActDeactQuitCmd, kActivateQuitStr);
    }
    else if (index == kActDeactQuitCmd && itsQuitButton != NULL)
    {
        itsQuitButton->Activate();
        itsActionsMenu->SetItemText(kActDeactQuitCmd, kDeactivateQuitStr);
    }

    else if (index == kPrintSelectionTargetsCmd)
    {
        PrintSelectionTargets(CurrentTime);
    }
    else if (index == kPrintOldSelectionTargetsCmd)
    {
        PrintSelectionTargets((GetDisplay())->GetLastEventTime() - 10000);
    }
}