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; }
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); } }
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); } }