本文整理汇总了C++中wxMouseEvent::ButtonUp方法的典型用法代码示例。如果您正苦于以下问题:C++ wxMouseEvent::ButtonUp方法的具体用法?C++ wxMouseEvent::ButtonUp怎么用?C++ wxMouseEvent::ButtonUp使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wxMouseEvent
的用法示例。
在下文中一共展示了wxMouseEvent::ButtonUp方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnMouse
void CFCEditorGLWindow::OnMouse(wxMouseEvent& event)
{
if(event.ButtonDown(wxMOUSE_BTN_RIGHT))
{
if (!HasCapture())
{
CaptureMouse();
}
HideCursor();
SetFocus();//Call this for catch the EVT_MOUSEWHEEL event, in left mouse button down event is not necessary to call this
m_startPosition = event.GetPosition();
m_bRightDown = true;
}
else if(event.ButtonUp(wxMOUSE_BTN_RIGHT))
{
if (!m_bLeftDown && HasCapture())
{
ReleaseMouse();
}
ShowCursor();
m_bRightDown = false;
}
else if(event.ButtonDown(wxMOUSE_BTN_LEFT))
{
if (!HasCapture())
{
CaptureMouse();
}
HideCursor();
m_startPosition = event.GetPosition();
m_bLeftDown = true;
}
else if(event.ButtonUp(wxMOUSE_BTN_LEFT))
{
if (!m_bRightDown && HasCapture())
{
ReleaseMouse();
}
ShowCursor();
m_bLeftDown = false;
}
else if(event.Dragging())
{
if (m_bRightDown || m_bLeftDown)
{
wxPoint curPos = event.GetPosition();
wxPoint pnt = ClientToScreen(m_startPosition);
SetCursorPos(pnt.x, pnt.y);
if (m_bRightDown)
{
int nDeltaX = curPos.x - m_startPosition.x;
int nDeltaY = curPos.y - m_startPosition.y;
wxSize clientSize = GetClientSize();
m_pCamera->Yaw((float)nDeltaX / clientSize.x);
m_pCamera->Pitch((float)nDeltaY / clientSize.y);
}
}
}
event.Skip();
}
示例2: OnMouseEvent
void TrackPanel::OnMouseEvent(wxMouseEvent& event)
{
if (event.m_x < view->labelWidth) {
// Group panel stuff
if (event.ButtonDClick())
view->DClickLabel(event);
else if (event.ButtonDown())
view->ClickLabel(event);
else if (event.ButtonUp())
SetCursor(*mainCursor);
}
else {
if (event.ButtonDown()) {
CaptureMouse();
if (event.ControlDown())
SetCursor(*dragCursor);
view->ClickTrack(event);
}
else if (event.Dragging())
view->DragTrack(event);
else if (event.ButtonUp()) {
ReleaseMouse();
SetCursor(*mainCursor);
view->ButtonUpTrack();
}
else if (event.Moving()) {
view->TrackSetCursor(event);
}
}
}
示例3: mouseEvent
void VIICanvas::mouseEvent(wxMouseEvent& event)
{
if(event.ButtonDown(wxMOUSE_BTN_LEFT))
{
mLeftClicked = true;
mStartPoint = event.GetPosition();
}
if(event.ButtonUp(wxMOUSE_BTN_LEFT))
{
mLeftClicked = false;
}
if(event.ButtonDown(wxMOUSE_BTN_RIGHT))
{
mRightClicked = true;
mStartPoint = event.GetPosition();
}
if(event.ButtonUp(wxMOUSE_BTN_RIGHT))
{
mRightClicked = false;
}
if(event.Dragging())
{
if(mLeftClicked)
{
wxPoint delta = event.GetPosition() - mStartPoint;
mAngleY += delta.x;
mAngleX += delta.y;
if(mAngleX < 0)
{
mAngleX = 360 + mAngleX;
}
if(mAngleY < 0)
{
mAngleY = 360 + mAngleY;
}
mAngleX %= 360;
mAngleY %= 360;
//std::cout << "AngleX: " << mAngleX << " angleY: " << mAngleY << std::endl;
mStartPoint = event.GetPosition();
Refresh();
}
else if(mRightClicked)
{
wxPoint delta = event.GetPosition() - mStartPoint;
mDistanceOrigin += delta.y;
//std::cout << "Distance: "<< mDistanceOrigin <<std::endl;
mStartPoint = event.GetPosition();
Refresh();
}
}
}
示例4: OnMouse
void TestGLCanvas::OnMouse( wxMouseEvent& event )
{
static bool useLightTrack=false;
if ( event.m_rightDown || event.m_leftDown || event.m_middleDown ) {
if (!HasCapture()) CaptureMouse();
}
else if (HasCapture()) ReleaseMouse();
useLightTrack=event.m_rightDown;
bool consumed=false;
if (useLightTrack) {
MovingLightMode=true;
if (wxConsumeTrackBallEvent( event, lightTrack)) {
SetFocus();
consumed=true;
}
} else {
MovingLightMode=false;
if (wxConsumeTrackBallEvent( event, track)) {
SetFocus();
consumed=true;
}
}
if ((consumed) && (!event.ButtonUp()) && (!event.ButtonDown())) SceneChanged();
/* if ( event.m_rightUp ) {
useLightTrack=false;
}*/
}
示例5: OnMouseEvent
void MixerTrackCluster::OnMouseEvent(wxMouseEvent& event)
{
if (event.ButtonUp())
this->HandleSelect(event.ShiftDown());
else
event.Skip();
}
示例6: OnMouse
void Canvas::OnMouse(wxMouseEvent& evt)
{
// Capture on button-down, so we can respond even when the mouse
// moves off the window
if (!m_MouseCaptured && evt.ButtonDown())
{
m_MouseCaptured = true;
CaptureMouse();
}
// Un-capture when all buttons are up
else if (m_MouseCaptured && evt.ButtonUp() &&
! (evt.ButtonIsDown(wxMOUSE_BTN_LEFT) || evt.ButtonIsDown(wxMOUSE_BTN_MIDDLE) || evt.ButtonIsDown(wxMOUSE_BTN_RIGHT))
)
{
m_MouseCaptured = false;
ReleaseMouse();
}
// Set focus when clicking
if (evt.ButtonDown())
SetFocus();
// Reject motion events if the mouse has not actually moved
if (evt.Moving() || evt.Dragging())
{
if (m_LastMousePos == evt.GetPosition())
return;
m_LastMousePos = evt.GetPosition();
}
HandleMouseEvent(evt);
}
示例7: OnMouseEvent
void LWSlider::OnMouseEvent(wxMouseEvent & event)
{
if (event.Entering()) {
// Display the tooltip in the status bar
if (mParent->GetToolTip()) {
wxString tip = mParent->GetToolTip()->GetTip();
GetActiveProject()->TP_DisplayStatusMessage(tip, 0);
Refresh();
}
}
else if (event.Leaving()) {
GetActiveProject()->TP_DisplayStatusMessage("",0);
Refresh();
}
float prevValue = mCurrentValue;
if (event.ButtonDown()) {
//This jumps the thumb to clicked position
if (!mIsDragging) {
mCurrentValue = PositionToValue(event.m_x, event.ShiftDown());
mIsDragging = true;
mParent->CaptureMouse();
FormatPopWin();
SetPopWinPosition();
mPopWin->Show();
}
// Don't generate notification yet
return;
} else if (event.ButtonUp() && mIsDragging) {
mIsDragging = false;
mParent->ReleaseMouse();
mPopWin->Hide();
((TipPanel *)mPopWin)->SetPos(wxPoint(-1000, -1000));
} else if (event.Dragging() && mIsDragging) {
mCurrentValue = PositionToValue(event.m_x, event.ShiftDown());
}
if (prevValue != mCurrentValue) {
FormatPopWin();
mPopWin->Refresh();
Refresh();
wxCommandEvent *e =
new wxCommandEvent(wxEVT_COMMAND_SLIDER_UPDATED, mID);
int intValue =
(int)((mCurrentValue - mMinValue) * 1000.0f
/ (mMaxValue - mMinValue));
e->SetInt( intValue );
mParent->ProcessEvent(*e);
delete e;
}
}
示例8: OnMouse
void CGradientCtrl::OnMouse(wxMouseEvent& event)
{
ECursorType eType = eCT_Invalid;
wxPoint pos = event.GetPosition();
if (event.ButtonDown(wxMOUSE_BTN_LEFT))
{
if (m_pSelectedCursor)
{
m_pSelectedCursor->Select(false);
}
m_pSelectedCursor = GetGradientCursor(pos);
if (m_pSelectedCursor)
{
eType = m_pSelectedCursor->GetType();
if (eType == eCT_Color)
{
m_pColoutPicker->SetColour(m_pSelectedCursor->GetColor());
}
else
{
m_pMaskSlider->SetValue(m_pSelectedCursor->GetColor().Red());
}
m_pSelectedCursor->Select(true);
}
ShowCtrl(m_pSelectedCursor == NULL ? eCT_Invalid : m_pSelectedCursor->GetType());
Refresh(true);
UpdateSelectedCursorPos();
}
else if (event.Dragging())
{
if (event.LeftIsDown())
{
if (m_pSelectedCursor)
{
SetSelectedCursorPos(pos);
UpdateSelectedCursorPos();
float fPos = GetNearestCursorPos(m_pSelectedCursor);
if (fPos >= 0)
{
m_pSelectedCursor->SetPos(fPos);
}
Refresh(true);
}
}
}
else if (event.ButtonUp(wxMOUSE_BTN_LEFT))
{
if (m_pSelectedCursor)
{
if (GetNearestCursorPos(m_pSelectedCursor) > 0)
{
DeleteCursor(m_pSelectedCursor);
m_pSelectedCursor = NULL;
}
}
}
}
示例9: OnMouseEvent
void GSPanel::OnMouseEvent( wxMouseEvent& evt )
{
if( IsBeingDeleted() ) return;
// Do nothing for left-button event
if (!evt.Button(wxMOUSE_BTN_LEFT)) {
evt.Skip();
DoShowMouse();
}
#if defined(__unix__)
// HACK2: In gsopen2 there is one event buffer read by both wx/gui and pad plugin. Wx deletes
// the event before the pad see it. So you send key event directly to the pad.
if( (PADWriteEvent != NULL) && (GSopen2 != NULL) ) {
keyEvent event;
// FIXME how to handle double click ???
if (evt.ButtonDown()) {
event.evt = 4; // X equivalent of ButtonPress
event.key = evt.GetButton();
} else if (evt.ButtonUp()) {
event.evt = 5; // X equivalent of ButtonRelease
event.key = evt.GetButton();
} else if (evt.Moving() || evt.Dragging()) {
event.evt = 6; // X equivalent of MotionNotify
long x,y;
evt.GetPosition(&x, &y);
wxCoord w, h;
wxWindowDC dc( this );
dc.GetSize(&w, &h);
// Special case to allow continuous mouvement near the border
if (x < 10)
x = 0;
else if (x > (w-10))
x = 0xFFFF;
if (y < 10)
y = 0;
else if (y > (w-10))
y = 0xFFFF;
// For compatibility purpose with the existing structure. I decide to reduce
// the position to 16 bits.
event.key = ((y & 0xFFFF) << 16) | (x & 0xFFFF);
} else {
event.key = 0;
event.evt = 0;
}
PADWriteEvent(event);
}
#endif
}
示例10: OnMouse
/**
* @function OnMouse
*/
void Viewer::OnMouse(wxMouseEvent& evt){
if(!handleEvents) return;
evt.GetPosition(&x,&y);
if(evt.ButtonUp() && mouseCaptured){
ReleaseMouse();
mouseCaptured = false;
}
if(evt.ButtonDown() && !mouseCaptured){
prevCamT = camT;
prevWorldV = worldV;
xInit = x;
yInit = y;
SetFocus();
CaptureMouse();
mouseCaptured = true;
return;
}
double dx = (double)(x-xInit);
double dy = (double)(y-yInit);
if (evt.LeftIsDown() && evt.RightIsDown()){
xInit = x;
yInit = y;
double camR = camRadius + dy *CAMERASPEED* 2.0f;
if(camR > .05)
camRadius = camR;
UpdateCamera();
DrawGLScene();
}else if(evt.LeftIsDown()){
double theta,phi;
theta = -(dx/90.f);
phi = -(dy/90.f);
Matrix3d tm,pm;
tm = AngleAxisd(theta, Vector3d::UnitZ());
pm = AngleAxisd(phi, Vector3d::UnitY());
Matrix3d drot = prevCamT.rotation();
drot *= tm;
drot *= pm;
camRotT = drot;
UpdateCamera();
DrawGLScene();
}else if(evt.MiddleIsDown() || evt.RightIsDown()){
Vector3d dispV = camRotT*Vector3d(0,(double)dx * CAMERASPEED , -(double)dy * CAMERASPEED);
worldV = prevWorldV+dispV;
UpdateCamera();
DrawGLScene();
}
}
示例11: OnMouse
void ToolBarArea::OnMouse(wxMouseEvent &evt)
{
if (mCapturedChild) {
if (evt.ButtonUp())
mCapturedChild->FinishMoving();
else if (evt.Moving() || evt.Dragging())
mCapturedChild->UpdateMoving();
}
else {
evt.Skip();
}
}
示例12: OnMouseEvent
void FilterPanel::OnMouseEvent(wxMouseEvent & event)
{
if (event.ButtonDown()) {
CaptureMouse();
}
if (mEnvelope->MouseEvent(event, mEnvRect, 0.0, mWidth, false))
Refresh(false);
if (event.ButtonUp()) {
ReleaseMouse();
}
}
示例13: OnMouseEvent
bool OnMouseEvent(wxMouseEvent &event)
{
if (event.Dragging())
{
timing_controller->OnMarkerDrag(
markers,
display->TimeFromRelativeX(event.GetPosition().x),
default_snap != event.ShiftDown() ? display->TimeFromAbsoluteX(snap_range) : 0);
}
// We lose the marker drag if the button used to initiate it goes up
return !event.ButtonUp(button_used);
}
示例14: OnMouseEvent
void EqualizationPanel::OnMouseEvent(wxMouseEvent & event)
{
if (event.ButtonDown()) {
CaptureMouse();
}
if (mEnvelope->MouseEvent(event, mEnvRect, 0.0, mEnvRect.width, false,
0.0, 1.0))
Refresh(false);
if (event.ButtonUp()) {
ReleaseMouse();
}
}
示例15: OnMouseEvent
void AButton::OnMouseEvent(wxMouseEvent & event)
{
if (mButtonIsDown || !mEnabled)
return;
if (event.ButtonUp()) {
mIsClicking = false;
ReleaseMouse();
if (event.m_x >= 0 && event.m_y >= 0 &&
event.m_x < mWidth && event.m_y < mHeight) {
mButtonState = AButtonDown;
mButtonIsDown = true;
wxCommandEvent *e =
new wxCommandEvent(wxEVT_COMMAND_BUTTON_CLICKED, GetId());
GetParent()->ProcessEvent(*e);
delete e;
}
this->Refresh(false);
return;
}
if (event.ButtonDown()) {
mIsClicking = true;
CaptureMouse();
}
if (mIsClicking) {
if (event.m_x >= 0 && event.m_y >= 0 &&
event.m_x < mWidth && event.m_y < mHeight) {
mButtonState = AButtonDown;
} else
mButtonState = AButtonUp;
this->Refresh(false);
} else {
if (event.Entering()) {
mButtonState = AButtonOver;
this->Refresh(false);
}
if (event.Leaving()) {
mButtonState = AButtonUp;
this->Refresh(false);
}
}
}