本文整理汇总了C++中wxMouseEvent::CmdDown方法的典型用法代码示例。如果您正苦于以下问题:C++ wxMouseEvent::CmdDown方法的具体用法?C++ wxMouseEvent::CmdDown怎么用?C++ wxMouseEvent::CmdDown使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wxMouseEvent
的用法示例。
在下文中一共展示了wxMouseEvent::CmdDown方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
bool Interactor2D::ProcessMouseDownEvent( wxMouseEvent& event, RenderView* renderview )
{
RenderView2D* view = ( RenderView2D* )renderview;
m_nMousePosX = event.GetX();
m_nMousePosY = event.GetY();
view->UpdateAnnotation();
if ( event.CmdDown() && !event.ShiftDown() )
{
if ( event.LeftDown() )
{
view->ZoomAtCursor( m_nMousePosX, m_nMousePosY, true );
return false;
}
else if ( event.RightDown() )
{
view->ZoomAtCursor( m_nMousePosX, m_nMousePosY, false );
return false;
}
}
if ( event.LeftDown() )
{
m_nDownPosX = m_nMousePosX;
m_nDownPosY = m_nMousePosY;
if ( event.ShiftDown() && !event.CmdDown() )
{
m_bWindowLevel = true;
}
else
{
m_bMovingCursor = true;
view->UpdateCursorRASPosition( m_nMousePosX, m_nMousePosY );
view->NeedRedraw();
}
}
else if ( event.MiddleDown() && event.ShiftDown() )
{
m_bSelecting = true;
view->StartSelection( m_nMousePosX, m_nMousePosY );
}
else if ( event.RightDown() && event.ShiftDown() && !event.CmdDown() )
{
m_bWindowLevel = true;
}
else
{
return Interactor::ProcessMouseDownEvent( event, renderview ); // pass down the event
}
return false; // do not pass down the event
}
示例2: OnMouseWheel
void PicViewCtrl::OnMouseWheel(wxMouseEvent& event)
{
if(m_bClearFlag)
{
event.Skip();
return;
}
int direction = event.GetWheelRotation();
int delta = event.GetWheelDelta();
if(event.CmdDown()) // scale
{
double bigger = (direction/delta)*m_dScaleRateStep;
double rate = ((m_dScaleRate + bigger) > m_dMaxScaleRate ? m_dMaxScaleRate : (m_dScaleRate + bigger));
rate = rate < m_dMinScaleRate ? m_dMinScaleRate : rate;
if(fabs(rate - m_dScaleRate) > MINDIFF)
m_bFitMode = false;
ChangeScaleRate(rate);
SetRulerCtrlFited();
}
else
{
if(m_bMouseWheelPageUpDown)
{
int pages = -(direction/delta);
ShowPageByDiffNumber(pages);
}
else
event.Skip();
}
}
示例3: onMouseDown
/* InputKeyCtrl::onMouseDown
* Called when a mouse button is clicked in the control
*******************************************************************/
void InputKeyCtrl::onMouseDown(wxMouseEvent& e)
{
// Middle button
if (e.GetEventType() == wxEVT_MIDDLE_DOWN)
key.key = "mouse3";
// Button 4
else if (e.GetEventType() == wxEVT_AUX1_DOWN)
key.key = "mouse4";
// Button 5
else if (e.GetEventType() == wxEVT_AUX2_DOWN)
key.key = "mouse5";
// Mouse wheel
else if (e.GetEventType() == wxEVT_MOUSEWHEEL)
{
if (e.GetWheelRotation() > 0)
key.key = "mwheelup";
else if (e.GetWheelRotation() < 0)
key.key = "mwheeldown";
}
key.alt = e.AltDown();
key.ctrl = e.CmdDown();
key.shift = e.ShiftDown();
SetValue(key.as_string());
}
示例4: OnMouseWheel
void ctlSQLGrid::OnMouseWheel(wxMouseEvent &event)
{
if (event.ControlDown() || event.CmdDown())
{
wxFont fontlabel = GetLabelFont();
wxFont fontcells = GetDefaultCellFont();
if (event.GetWheelRotation() > 0)
{
fontlabel.SetPointSize(fontlabel.GetPointSize() - 1);
fontcells.SetPointSize(fontcells.GetPointSize() - 1);
}
else
{
fontlabel.SetPointSize(fontlabel.GetPointSize() + 1);
fontcells.SetPointSize(fontcells.GetPointSize() + 1);
}
SetLabelFont(fontlabel);
SetDefaultCellFont(fontcells);
SetColLabelSize(fontlabel.GetPointSize() * 4);
SetDefaultRowSize(fontcells.GetPointSize() * 2);
for (int index = 0; index < GetNumberCols(); index++)
SetColSize(index, -1);
ForceRefresh();
}
else
event.Skip();
}
示例5: OnMouseWheel
void AudioBox::OnMouseWheel(wxMouseEvent &evt) {
if (!ForwardMouseWheelEvent(audioDisplay, evt))
return;
bool zoom = evt.CmdDown() != OPT_GET("Audio/Wheel Default to Zoom")->GetBool();
if (!zoom)
{
int amount = -evt.GetWheelRotation() * GetClientSize().GetWidth() / (evt.GetWheelDelta() * 3);
// If the user did a horizontal scroll the amount should be inverted
// for it to be natural.
if (evt.GetWheelAxis() == 1) amount = -amount;
// Reset any accumulated zoom
mouse_zoom_accum = 0;
audioDisplay->ScrollBy(amount);
}
else if (evt.GetWheelAxis() == 0)
{
mouse_zoom_accum += evt.GetWheelRotation();
int zoom_delta = mouse_zoom_accum / evt.GetWheelDelta();
mouse_zoom_accum %= evt.GetWheelDelta();
int new_zoom = audioDisplay->GetZoomLevel() + zoom_delta;
audioDisplay->SetZoomLevel(new_zoom);
HorizontalZoom->SetValue(-new_zoom);
OPT_SET("Audio/Zoom/Horizontal")->SetInt(new_zoom);
}
}
示例6: OnEvent
void DendrogramPanel::OnEvent( wxMouseEvent& event )
{
if (event.LeftDown()) {
isLeftDown = true;
startPos = event.GetPosition();
// test SplitLine
if (split_line) {
if (split_line->contains(startPos)) {
isMovingSplitLine = true;
}
}
if (!isMovingSplitLine) {
// test end_nodes
if ( !event.ShiftDown() && !event.CmdDown() ) {
hl_ids.clear();
}
for (int i=0;i<end_nodes.size();i++) {
if (end_nodes[i]->contains(startPos)) {
hl_ids.push_back(end_nodes[i]->idx);
}
}
// highlight i selected
wxWindow* parent = GetParent();
while (parent) {
wxWindow* w = parent;
HClusterDlg* dlg = dynamic_cast<HClusterDlg*>(w);
if (dlg) {
dlg->Highlight(hl_ids);
break;
}
parent = w->GetParent();
}
}
} else if (event.Dragging()) {
if (isLeftDown) {
isLeftMove = true;
// moving
if (isMovingSplitLine && split_line) {
split_line->move(event.GetPosition(), startPos);
int x = split_line->getX();
Refresh();
OnSplitLineChange(x);
}
startPos = event.GetPosition();
}
} else if (event.LeftUp()) {
if (isLeftMove) {
isLeftMove = false;
// stop move
isMovingSplitLine = false;
} else {
// only left click
}
isLeftDown = false;
}
}
示例7: if
bool Interactor3DMeasure::ProcessMouseDownEvent( wxMouseEvent& event, RenderView* renderview )
{
RenderView3D* view = ( RenderView3D* )renderview;
bool ret = Interactor3D::ProcessMouseDownEvent( event, renderview );
if ( m_nAction == MM_SurfaceRegion && !Interactor3D::IsInAction() && event.LeftDown() )
{
if ( event.CmdDown() && !event.ShiftDown() )
{
if ( view->InitializeSelectRegion( event.GetX(), event.GetY() ) )
{
m_bSelectRegion = true;
return false; // do not pass down the event
}
}
else if ( event.CmdDown() && event.ShiftDown() )
{
LayerMRI* mri = (LayerMRI*)MainWindow::GetMainWindowPointer()->GetActiveLayer( "MRI" );
if ( mri && mri->GetCurrentSurfaceRegion() )
{
mri->GetCurrentSurfaceRegion()->ResetOutline();
m_bSelectRegion = true;
return false;
}
}
else if ( !event.CmdDown() && event.ShiftDown() )
{
LayerMRI* mri = (LayerMRI*)MainWindow::GetMainWindowPointer()->GetActiveLayer( "MRI" );
if ( mri && mri->GetCurrentSurfaceRegion() )
{
if ( mri->GetCurrentSurfaceRegion()->DeleteCell( view, event.GetX(), event.GetY() ) )
view->NeedRedraw();
return false;
}
}
}
return ret;
}
示例8: OnMouseWheel
void ParameterPanel::OnMouseWheel(wxMouseEvent &event)
{
double change = 1e-5 * event.GetWheelRotation();
if (event.ShiftDown())
change *= 10;
if (event.CmdDown())
change *= 100;
if (event.AltDown())
change /= 20;
int n = find_in_rows(event.GetEventObject());
double new_value = values_[n] + fabs(values_[n]) * change;
set_value(n, new_value);
observer_->on_parameter_changed(n);
}
示例9: MouseButtonEvent
void PanosphereOverviewCameraTool::MouseButtonEvent(wxMouseEvent &e)
{
// DEBUG_DEBUG("mouse ov drag button");
if ((e.ButtonDown() && (!helper->IsMouseOverPano() || e.CmdDown() || e.AltDown())) || e.MiddleDown()) {
down = true;
hugin_utils::FDiff2D pos = helper->GetMouseScreenPosition();
start_x = pos.x;
start_y = pos.y;
PanosphereOverviewVisualizationState* state = (PanosphereOverviewVisualizationState*) helper->GetVisualizationStatePtr();
start_angx = state->getAngX();
start_angy = state->getAngY();
}
if (e.ButtonUp()) {
if (down) {
down = false;
}
}
}
示例10: if
PlatformMouseEvent::PlatformMouseEvent(const wxMouseEvent& event, const wxPoint& globalPoint)
: m_position(event.GetPosition())
, m_globalPosition(globalPoint)
, m_shiftKey(event.ShiftDown())
, m_ctrlKey(event.CmdDown())
, m_altKey(event.AltDown())
, m_metaKey(event.MetaDown()) // FIXME: We'll have to test other browsers
{
wxEventType type = event.GetEventType();
m_eventType = MouseEventMoved;
if (type == wxEVT_LEFT_DOWN || type == wxEVT_MIDDLE_DOWN || type == wxEVT_RIGHT_DOWN)
m_eventType = MouseEventPressed;
else if (type == wxEVT_LEFT_UP || type == wxEVT_MIDDLE_UP || type == wxEVT_RIGHT_UP ||
type == wxEVT_LEFT_DCLICK || type == wxEVT_MIDDLE_DCLICK || type == wxEVT_RIGHT_DCLICK)
m_eventType = MouseEventReleased;
else if (type == wxEVT_MOTION)
m_eventType = MouseEventMoved;
if (event.Button(wxMOUSE_BTN_LEFT))
m_button = LeftButton;
else if (event.Button(wxMOUSE_BTN_RIGHT))
m_button = RightButton;
else if (event.Button(wxMOUSE_BTN_MIDDLE))
m_button = MiddleButton;
else if (!m_eventType == MouseEventMoved)
ASSERT_NOT_REACHED();
if (m_eventType == MouseEventMoved)
m_clickCount = 0;
else
m_clickCount = event.ButtonDClick() ? 2 : 1;
m_timestamp = WebCore::currentTime();
}
示例11: SelectClickedItem
void CMusikListCtrl::SelectClickedItem(wxMouseEvent &event)
{
int HitFlags = 0;
long item = HitTest(event.GetPosition(),HitFlags);
if(item != -1)
{
if((wxLIST_STATE_SELECTED & GetItemState(item,wxLIST_STATE_SELECTED)) != wxLIST_STATE_SELECTED) // bug in MSW GetItemState (mask param is ignored)
{
if(!event.CmdDown())
{
int i = -1;
while ( -1 != (i = GetNextItem(i, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED)))
{
if(i != item)
SetItemState( i, 0, wxLIST_STATE_SELECTED );
}
}
SetItemState(item,wxLIST_STATE_SELECTED,wxLIST_STATE_SELECTED);
wxTheApp->Yield(true); // call yield to let the SetItemState changes go through the system.
}
}
}
示例12: HandleMouseMotion
void SpectraDocumentFrame::HandleMouseMotion(const wxMouseEvent& event)
{
wxSize size = gl_canvas->GetSize();
wxPoint new_mouse_position = event.GetPosition();
int new_x = ClampMouseCoord(new_mouse_position.x, size.GetWidth());
int new_y = ClampMouseCoord(new_mouse_position.y, size.GetHeight());
if(event.Dragging())
{
int old_x = ClampMouseCoord(old_mouse_position.x, size.GetWidth());
int old_y = ClampMouseCoord(old_mouse_position.y, size.GetHeight());
if(event.CmdDown())
{
if(event.LeftIsDown())
{
if(event.AltDown())
{
document_view.StretchRange(new_x, new_y, old_x, old_y);
}
else
{
document_view.StretchDomain(new_x, new_y, old_x, old_y);
}
}
}
else
{
if(event.LeftIsDown())
{
if(event.AltDown())
{
document_view.Elevate(new_x, new_y, old_x, old_y);
}
else
{
document_view.Slide(new_x, new_y, old_x, old_y);
}
}
else if(event.MiddleIsDown())
{
document_view.Scale(new_x, new_y, old_x, old_y);
}
else if(event.RightIsDown())
{
document_view.Orbit(new_x, new_y, old_x, old_y);
}
}
}
else
{
float t = 0.0f;
if(event.AltDown())
{
t = document_view.PickOnWall(new_x, new_y).x();
}
else
{
t = document_view.PickOnGround(new_x, new_y).x();
}
t /= document_view.TimeStretch();
SetStatus(wxString::Format(wxGetTranslation(wxT("Time: %f [s]")), t));
document_vis->SelectedTime(t);
}
}
示例13: if
void VisualTool<FeatureType>::OnMouseEvent(wxMouseEvent &event) {
bool left_click = event.LeftDown();
bool left_double = event.LeftDClick();
shift_down = event.ShiftDown();
ctrl_down = event.CmdDown();
alt_down = event.AltDown();
mouse_pos = event.GetPosition();
if (event.Leaving()) {
mouse_pos = Vector2D();
parent->Render();
return;
}
if (!dragging) {
int max_layer = INT_MIN;
active_feature = nullptr;
for (auto& feature : features) {
if (feature.IsMouseOver(mouse_pos) && feature.layer >= max_layer) {
active_feature = &feature;
max_layer = feature.layer;
}
}
}
if (dragging) {
// continue drag
if (event.LeftIsDown()) {
for (auto sel : sel_features)
sel->UpdateDrag(mouse_pos - drag_start, shift_down);
for (auto sel : sel_features)
UpdateDrag(sel);
Commit();
}
// end drag
else {
dragging = false;
// mouse didn't move, fiddle with selection
if (active_feature && !active_feature->HasMoved()) {
// Don't deselect stuff that was selected in this click's mousedown event
if (!sel_changed) {
if (ctrl_down)
RemoveSelection(active_feature);
else
SetSelection(active_feature, true);
}
}
active_feature = nullptr;
parent->ReleaseMouse();
parent->SetFocus();
}
}
else if (holding) {
if (!event.LeftIsDown()) {
holding = false;
parent->ReleaseMouse();
parent->SetFocus();
}
UpdateHold();
Commit();
}
else if (left_click) {
drag_start = mouse_pos;
// start drag
if (active_feature) {
if (!sel_features.count(active_feature)) {
sel_changed = true;
SetSelection(active_feature, !ctrl_down);
}
else
sel_changed = false;
if (active_feature->line)
c->selectionController->SetActiveLine(active_feature->line);
if (InitializeDrag(active_feature)) {
for (auto sel : sel_features) sel->StartDrag();
dragging = true;
parent->CaptureMouse();
}
}
// start hold
else {
if (!alt_down && features.size() > 1) {
sel_features.clear();
c->selectionController->SetSelectedSet({ c->selectionController->GetActiveLine() });
}
if (active_line && InitializeHold()) {
holding = true;
parent->CaptureMouse();
}
}
}
//.........这里部分代码省略.........
示例14: if
bool Interactor2DMeasure::ProcessMouseDownEvent( wxMouseEvent& event, RenderView* renderview )
{
RenderView2D* view = ( RenderView2D* )renderview;
// UpdateCursor( event, view );
if ( m_region && !m_bDrawing && !m_bEditing )
m_region->Highlight( false );
if ( event.LeftDown() )
{
if ( event.CmdDown() && event.ShiftDown() )
return Interactor2D::ProcessMouseDownEvent( event, renderview );
LayerCollection* lc = MainWindow::GetMainWindowPointer()->GetLayerCollectionManager()->GetLayerCollection( "MRI" );
LayerVolumeBase* mri = ( LayerVolumeBase* )lc->GetActiveLayer();
if ( mri )
{
m_nMousePosX = event.GetX();
m_nMousePosY = event.GetY();
Region2D* reg = view->GetRegion( m_nMousePosX, m_nMousePosY, &m_nPointIndex );
if ( m_region && m_bDrawing )
{
((Region2DPolyline*)m_region)->AddPoint( m_nMousePosX, m_nMousePosY );
}
else if ( !reg ) // drawing
{
if ( m_nAction == MM_Line )
{
Region2DLine* reg_line = new Region2DLine( view );
reg_line->SetLine( m_nMousePosX, m_nMousePosY, m_nMousePosX, m_nMousePosY );
view->AddRegion( reg_line );
m_region = reg_line;
}
else if ( m_nAction == MM_Spline || m_nAction == MM_Polyline )
{
Region2DPolyline* reg_polyline = new Region2DPolyline( view, m_nAction == MM_Spline );
reg_polyline->AddPoint( m_nMousePosX, m_nMousePosY );
reg_polyline->AddPoint( m_nMousePosX, m_nMousePosY ); // add second point
view->AddRegion( reg_polyline );
m_region = reg_polyline;
}
else if ( m_nAction == MM_Rectangle )
{
Region2DRectangle* reg_rect = new Region2DRectangle( view );
reg_rect->SetRect( m_nMousePosX, m_nMousePosY, 1, 1 );
view->AddRegion( reg_rect );
m_region = reg_rect;
}
m_bDrawing = true;
}
else // editing
{
m_region = reg;
m_bEditing = true;
m_region->Highlight();
view->SendBroadcast( "RegionSelected", m_region );
view->NeedRedraw();
}
return false;
}
}
else if ( event.RightDown() )
{
if ( m_bDrawing && m_region )
{
m_bDrawing = false;
m_bEditing = false;
if ( m_nAction == MM_Spline || m_nAction == MM_Polyline )
((Region2DPolyline*)m_region)->RemoveLastPoint();
view->NeedRedraw();
return false;
}
}
return Interactor2D::ProcessMouseDownEvent( event, renderview ); // pass down the event
}
示例15: if
bool Interactor2DVolumeEdit::ProcessMouseDownEvent( wxMouseEvent& event, RenderView* renderview )
{
RenderView2D* view = ( RenderView2D* )renderview;
// UpdateCursor( event, view );
if ( event.LeftDown() || ( event.RightDown() && event.LeftIsDown() ) )
{
if ( event.CmdDown() && event.ShiftDown() )
return Interactor2D::ProcessMouseDownEvent( event, renderview );
LayerCollection* lc = MainWindow::GetMainWindowPointer()->GetLayerCollectionManager()->GetLayerCollection( m_strLayerTypeName.c_str() );
LayerVolumeBase* mri = ( LayerVolumeBase* )lc->GetActiveLayer();
if ( (!mri || !mri->IsVisible()) ) //&& ( event.CmdDown() || m_nAction == EM_Polyline ) )
{
SendBroadcast( m_strLayerTypeName + "NotVisible", this );
}
else if ( !mri->IsEditable() ) //&& ( event.CmdDown() || m_nAction == EM_Polyline ) )
{
SendBroadcast( m_strLayerTypeName + "NotEditable", this );
}
else if ( m_strLayerTypeName == "MRI" && ((LayerMRI*)mri)->IsTransformed() )
{
SendBroadcast( m_strLayerTypeName + "NotEditableForTransformation", this );
}
else
{
m_nMousePosX = event.GetX();
m_nMousePosY = event.GetY();
double ras[3];
view->MousePositionToRAS( m_nMousePosX, m_nMousePosY, ras );
if ( m_nAction == EM_Freehand ) //&& ( event.CmdDown() ) )
{
mri->SaveForUndo( view->GetViewPlane() );
if ( event.CmdDown() )
{
mri->FloodFillByRAS( ras, view->GetViewPlane(), !event.ShiftDown() && !event.RightIsDown() );
}
else
{
m_bEditing = true;
mri->SetVoxelByRAS( ras, view->GetViewPlane(), !event.ShiftDown() && !event.RightIsDown() );
}
}
else if ( m_nAction == EM_Fill ) //&& ( event.CmdDown() ) )
{
mri->SaveForUndo( view->GetViewPlane() );
mri->FloodFillByRAS( ras, view->GetViewPlane(), !event.ShiftDown() && !event.RightIsDown() );
}
else if ( m_nAction == EM_Polyline || m_nAction == EM_Livewire )
{
mri->SaveForUndo( view->GetViewPlane() );
if ( event.CmdDown() )
{
mri->FloodFillByRAS( ras, view->GetViewPlane(), !event.ShiftDown() && !event.RightIsDown() );
}
else
{
m_bEditing = true;
double ras2[3];
view->GetCursor2D()->ClearInterpolationPoints();
view->GetCursor2D()->GetPosition( ras2 );
view->GetCursor2D()->SetPosition( ras );
view->GetCursor2D()->SetPosition2( ras );
if ( m_dPolylinePoints.size() > 0 )
{
if ( m_nAction == EM_Polyline )
mri->SetVoxelByRAS( ras, ras2, view->GetViewPlane(), !event.ShiftDown() && !event.RightIsDown() );
else
mri->SetLiveWireByRAS( ras, ras2, view->GetViewPlane() );
}
else
{
// mri->SaveForUndo( view->GetViewPlane() );
m_dPolylinePoints.push_back( ras[0] );
m_dPolylinePoints.push_back( ras[1] );
m_dPolylinePoints.push_back( ras[2] );
view->GetCursor2D()->SetPosition( ras );
}
if ( view->GetCapture() == view )
view->ReleaseMouse();
view->CaptureMouse();
}
}
else if ( m_nAction == EM_ColorPicker && mri->IsTypeOf( "MRI" ) )
{
if ( event.CmdDown() )
{
mri->SaveForUndo( view->GetViewPlane() );
mri->FloodFillByRAS( ras, view->GetViewPlane(), !event.ShiftDown() && !event.RightIsDown() );
}
else
{
double dValue = ((LayerMRI*)mri)->GetVoxelValue( ras );
if ( dValue != 0 )
{
mri->SetFillValue( (float)dValue );
mri->SendBroadcast( "LayerActorUpdated", mri );
}
//.........这里部分代码省略.........