コード例 #1
0
	void OnNumPlayersSpin(wxSpinEvent& evt)
	{
		if (!m_InGUIUpdate)
		{
			wxASSERT(evt.GetInt() > 0);
			
			// When wxMessageBox pops up, wxSpinCtrl loses focus, which
			//	forces another EVT_SPINCTRL event, which we don't want
			//	to handle, so we check here for a change
			if (evt.GetInt() == (int)m_NumPlayers)
			{
				return;	// No change
			}
			
			size_t oldNumPlayers = m_NumPlayers;
			m_NumPlayers = evt.GetInt();

			if (m_NumPlayers < oldNumPlayers)
			{
				// Remove players, but check if they own any entities
				bool notified = false;
				for (size_t i = oldNumPlayers; i > m_NumPlayers; --i)
				{
					qGetPlayerObjects objectsQry(i);
					objectsQry.Post();

					std::vector<AtlasMessage::ObjectID> ids = *objectsQry.ids;

					if (ids.size() > 0)
					{
						if (!notified)
						{
							// TODO: Add option to reassign objects?
							if (wxMessageBox(_("WARNING: All objects belonging to the removed players will be deleted. Continue anyway?"), _("Remove player confirmation"), wxICON_EXCLAMATION | wxYES_NO) != wxYES)
							{
								// Restore previous player count
								m_NumPlayers = oldNumPlayers;
								wxDynamicCast(FindWindow(ID_NumPlayers), wxSpinCtrl)->SetValue(m_NumPlayers);
								return;
							}

							notified = true;
						}

						// Delete objects
						// TODO: Merge multiple commands?
						POST_COMMAND(DeleteObjects, (ids));
					}
				}
			}

			m_Players->ResizePlayers(m_NumPlayers);
			SendToEngine();

			// Reload players, notify observers
			POST_MESSAGE(LoadPlayerSettings, (true));
			m_MapSettings.NotifyObservers();
		}
	}
コード例 #2
0
ファイル: numericSlider.cpp プロジェクト: Analias/LimeSuite
void NumericSlider::OnSpinnerChange(wxSpinEvent &event)
{
    wxCommandEvent evt(wxEVT_COMMAND_SPINCTRL_UPDATED);
    evt.SetId(this->GetId());
    evt.SetInt(event.GetInt());
    evt.SetEventObject(this);
    mScroll->SetThumbPosition(event.GetInt() - mSpinner->GetMin());
    wxPostEvent(this, evt);
}
コード例 #3
0
ファイル: PanelSurface.cpp プロジェクト: CBoensel/freesurfer
void PanelSurface::OnSpinVectorPointSize( wxSpinEvent& event )
{
  LayerSurface* surf = ( LayerSurface* )MainWindow::GetMainWindowPointer()->GetLayerCollection( "Surface" )->GetActiveLayer();
  if ( surf )
  {
    surf->GetProperties()->SetVectorPointSize( event.GetInt() );
  }
}
コード例 #4
0
void lms7002_pnlTxTSP_view::ParameterChangeHandler(wxSpinEvent& event)
{
    wxCommandEvent evt;
    evt.SetInt(event.GetInt());
    evt.SetId(event.GetId());
    evt.SetEventObject(event.GetEventObject());
    ParameterChangeHandler(evt);
}
コード例 #5
0
void DialogCropVolume::OnSpinBound( wxSpinEvent& event )
{
  for ( int i = 0; i < 6; i++ )
  {
    if ( event.GetEventObject() == m_spinRange[i] )
    {
      MainWindow::GetMainWindowPointer()->GetVolumeCropper()->SetExtent( i, event.GetInt() );
      break;
    }
  }
}
コード例 #6
0
void ToolWindowEdit::OnSpinBrushTolerance( wxSpinEvent& event )
{
  BrushProperty* bp = MainWindow::GetMainWindowPointer()->GetBrushProperty();
  bp->SetBrushTolerance( event.GetInt() );
  UpdateTools();
}
コード例 #7
0
ファイル: popup.cpp プロジェクト: ruifig/nutcracker
void SimpleTransientPopup::OnSpinCtrl(wxSpinEvent& event)
{
    wxLogMessage( "%p SimpleTransientPopup::OnSpinCtrl ID %d Value %d",
                  this, event.GetId(), event.GetInt());
    event.Skip();
}