当前位置: 首页>>代码示例>>C++>>正文


C++ wxScrollWinEvent::GetPosition方法代码示例

本文整理汇总了C++中wxScrollWinEvent::GetPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ wxScrollWinEvent::GetPosition方法的具体用法?C++ wxScrollWinEvent::GetPosition怎么用?C++ wxScrollWinEvent::GetPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在wxScrollWinEvent的用法示例。


在下文中一共展示了wxScrollWinEvent::GetPosition方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: onScroll

void WX_VIEW_CONTROLS::onScroll( wxScrollWinEvent& aEvent )
{
    const double linePanDelta = 0.05;
    const double pagePanDelta = 0.5;

    int type = aEvent.GetEventType();
    int dir = aEvent.GetOrientation();

    if( type == wxEVT_SCROLLWIN_THUMBTRACK )
    {
        VECTOR2D center = m_view->GetCenter();
        const BOX2I& boundary = m_view->GetBoundary();

        // Flip scroll direction in flipped view
        const double xstart = ( m_view->IsMirroredX() ?
                                boundary.GetRight() : boundary.GetLeft() );
        const double xdelta = ( m_view->IsMirroredX() ? -1 : 1 );

        if( dir == wxHORIZONTAL )
            center.x = xstart + xdelta * ( aEvent.GetPosition() / m_scrollScale.x );
        else
            center.y = boundary.GetTop() + aEvent.GetPosition() / m_scrollScale.y;

        m_view->SetCenter( center );
    }
    else
    {
        double dist = 0;

        if( type == wxEVT_SCROLLWIN_PAGEUP )
            dist = pagePanDelta;
        else if( type == wxEVT_SCROLLWIN_PAGEDOWN )
            dist = -pagePanDelta;
        else if( type == wxEVT_SCROLLWIN_LINEUP )
            dist = linePanDelta;
        else if( type == wxEVT_SCROLLWIN_LINEDOWN )
            dist = -linePanDelta;
        else
        {
            wxASSERT( "Unhandled event type" );
            return;
        }

        VECTOR2D scroll = m_view->ToWorld( m_view->GetScreenPixelSize(), false ) * dist;

        double scrollX = 0.0;
        double scrollY = 0.0;

        if ( dir == wxHORIZONTAL )
            scrollX = -scroll.x;
        else
            scrollY = -scroll.y;

        VECTOR2D delta( scrollX, scrollY );

        m_view->SetCenter( m_view->GetCenter() + delta );
    }

    m_parentPanel->Refresh();
}
开发者ID:cpavlina,项目名称:kicad,代码行数:60,代码来源:wx_view_controls.cpp

示例2: OnScrollThumbRelease

void wxJigsawEditorCanvas::OnScrollThumbRelease(wxScrollWinEvent & event)
{
	wxLogTrace(wxTraceMask(), _("wxJigsawEditorCanvas::OnScrollThumbRelease; ScrollPos = %i"),
		event.GetPosition());
	SetScrollPos(event.GetOrientation(), event.GetPosition());
	FixViewOffset();
	RefreshBuffer();
}
开发者ID:cubemoon,项目名称:game-editor,代码行数:8,代码来源:wxJigsawEditorCanvas.cpp

示例3: OnScroll

void wxVScrolledWindow::OnScroll(wxScrollWinEvent& event)
{
    size_t lineFirstNew;

    const wxEventType evtType = event.GetEventType();

    if ( evtType == wxEVT_SCROLLWIN_TOP )
    {
        lineFirstNew = 0;
    }
    else if ( evtType == wxEVT_SCROLLWIN_BOTTOM )
    {
        lineFirstNew = m_lineMax;
    }
    else if ( evtType == wxEVT_SCROLLWIN_LINEUP )
    {
        lineFirstNew = m_lineFirst ? m_lineFirst - 1 : 0;
    }
    else if ( evtType == wxEVT_SCROLLWIN_LINEDOWN )
    {
        lineFirstNew = m_lineFirst + 1;
    }
    else if ( evtType == wxEVT_SCROLLWIN_PAGEUP )
    {
        lineFirstNew = FindFirstFromBottom(m_lineFirst);
    }
    else if ( evtType == wxEVT_SCROLLWIN_PAGEDOWN )
    {
        lineFirstNew = GetVisibleEnd();
        if ( lineFirstNew )
            lineFirstNew--;
    }
    else if ( evtType == wxEVT_SCROLLWIN_THUMBRELEASE )
    {
        lineFirstNew = event.GetPosition();
    }
    else if ( evtType == wxEVT_SCROLLWIN_THUMBTRACK )
    {
        lineFirstNew = event.GetPosition();
    }

    else // unknown scroll event?
    {
        wxFAIL_MSG( _T("unknown scroll event type?") );
        return;
    }

    ScrollToLine(lineFirstNew);

#ifdef __WXMAC__
    Update();
#endif // __WXMAC__
}
开发者ID:ACanadianKernel,项目名称:pcsx2,代码行数:53,代码来源:vscroll.cpp

示例4: OnScroll

void CPaneMsg::OnScroll(wxScrollWinEvent &event)
{
    if (event.GetPosition() != 0){
        m_isScrollingBack = true;
        // 一番下まですくロールしていれば、スクロール中を終了。
        if (m_beforeScroolHeight <= event.GetPosition()){
            m_beforeScroolHeight = event.GetPosition() - 1;
            m_isScrollingBack = false;
        } else{
        }
    }
    event.Skip(true);
}
开发者ID:ytt,项目名称:CornStarch-1,代码行数:13,代码来源:PaneMsg.cpp

示例5: onScroll

void WX_VIEW_CONTROLS::onScroll( wxScrollWinEvent& aEvent )
{
    VECTOR2D center = m_view->GetCenter();
    const BOX2I& boundary = m_view->GetBoundary();

    if( aEvent.GetOrientation() == wxHORIZONTAL )
        center.x = (double) aEvent.GetPosition() * boundary.GetWidth() / m_scrollScale.x + boundary.GetLeft();
    else if( aEvent.GetOrientation() == wxVERTICAL )
        center.y = (double) aEvent.GetPosition() * boundary.GetHeight() / m_scrollScale.y + boundary.GetTop();

    m_view->SetCenter( center );
    m_parentPanel->Refresh();
}
开发者ID:RocFan,项目名称:kicad-source-mirror,代码行数:13,代码来源:wx_view_controls.cpp

示例6: OnScroll

void gxLightweightControl::OnScroll(wxScrollWinEvent& event)
{
  // The position of the scroll bar returns to 0 on MSW, we need to set the
  // position ourselves.
  if (event.GetOrientation() == wxVERTICAL)
    SetScrollPos(wxVERTICAL, event.GetPosition());
  else
    SetScrollPos(wxHORIZONTAL, event.GetPosition());
  
  if (mLightweightSystem)
  {
    mLightweightSystem->OnScroll(event.GetOrientation() == wxVERTICAL, event.GetPosition());
  }
  event.Skip();
}
开发者ID:Izhaki,项目名称:gefriCPP,代码行数:15,代码来源:gxLightweightControl.cpp

示例7: OnScrollBar

void wxVideoTerminal::OnScrollBar(wxScrollWinEvent &evt)
{
	if (evt.GetOrientation() == wxVERTICAL)
	{
		if (evt.GetEventType() == wxEVT_SCROLLWIN_BOTTOM)
			//wxLogDebug("You scrollwin Bottom: %d", evt.GetPosition())
			;

		else if (evt.GetEventType() == wxEVT_SCROLLWIN_TOP)
			//wxLogDebug("You scrollwin Top: %d", evt.GetPosition())
			;

		else if (evt.GetEventType() == wxEVT_SCROLLWIN_LINEDOWN)
			LineDown();

		else if (evt.GetEventType() == wxEVT_SCROLLWIN_LINEUP)
			LineUp();

		else if (evt.GetEventType() == wxEVT_SCROLLWIN_PAGEUP)
			PageUp();

		else if (evt.GetEventType() == wxEVT_SCROLLWIN_PAGEDOWN)
			PageDown();

		else if (evt.GetEventType() == wxEVT_SCROLLWIN_THUMBTRACK || 
			evt.GetEventType() == wxEVT_SCROLLWIN_THUMBRELEASE)
		{
			int scroll_pos = m_firstline_row + evt.GetPosition();
			UpdateScrollPos(scroll_pos);
		}
	}
}
开发者ID:firodj,项目名称:alumetro-wx,代码行数:32,代码来源:VideoTerminal.cpp

示例8: OnScrollWin

void wxChartPanel::OnScrollWin(wxScrollWinEvent &ev)
{
    if (m_chart == NULL) {
        return ;
    }

    Axis *axis = NULL;

    switch (ev.GetOrientation()) {
    case wxHORIZONTAL:
        axis = m_chart->GetHorizScrolledAxis();
        break;
    case wxVERTICAL:
        axis = m_chart->GetVertScrolledAxis();
        break;
    default: // BUG
        return ;
    }

    if (axis != NULL) {
        double winPos = (double) ev.GetPosition() / (double) stepMult;
        double minValue, maxValue;

        axis->GetDataBounds(minValue, maxValue);
        winPos += minValue;

        axis->SetWindowPosition(winPos);
    }
    ev.Skip();
}
开发者ID:lukecian,项目名称:wxfreechart,代码行数:30,代码来源:chartpanel.cpp

示例9: OnScrollThumbReleaseEvt

void BaseEditor::OnScrollThumbReleaseEvt(wxScrollWinEvent& event)
{
	int nOrientation = event.GetOrientation();
	int nPos = event.GetPosition();
	SetScrollPos(nOrientation, nPos, true);
	UpdateScrollPosition(GetScrollPos(wxHORIZONTAL), GetScrollPos(wxVERTICAL));
}
开发者ID:mshandle,项目名称:spank,代码行数:7,代码来源:BaseEditor.cpp

示例10: OnScrollWinEvents

    void OnScrollWinEvents(wxScrollWinEvent& e)
    {
        wxEventType scrollType(e.GetEventType());
        bool horiz = e.GetOrientation() == wxHORIZONTAL;

        wxPoint pos(viewStart);
 
        if (scrollType == wxEVT_SCROLLWIN_THUMBTRACK || scrollType == wxEVT_SCROLLWIN_THUMBRELEASE) {
            if (horiz) 
                pos.x = e.GetPosition();
            else       
                pos.y = e.GetPosition();
        }
        else if (scrollType == wxEVT_SCROLLWIN_LINEDOWN) {
            if (horiz) 
                pos.x += LINE_STEP;
            else       
                pos.y += LINE_STEP;
        }
        else if (scrollType == wxEVT_SCROLLWIN_LINEUP) {
            if (horiz) 
                pos.x -= LINE_STEP;
            else       
                pos.y -= LINE_STEP;
        }
        else if (scrollType == wxEVT_SCROLLWIN_PAGEUP) {
            if (horiz) 
                pos.x -= m_scrollView->visibleWidth() - PAGE_KEEP;
            else       
                pos.y -= m_scrollView->visibleHeight() - PAGE_KEEP;
        }
        else if (scrollType == wxEVT_SCROLLWIN_PAGEDOWN) {
            if (horiz) 
                pos.x += m_scrollView->visibleWidth() - PAGE_KEEP;
            else       
                pos.y += m_scrollView->visibleHeight() - PAGE_KEEP;
        }
        else
            return e.Skip();

        m_scrollView->setContentsPos(pos.x, pos.y);
        m_scrollView->update();
    }
开发者ID:Chingliu,项目名称:EAWebkit,代码行数:43,代码来源:ScrollViewWx.cpp

示例11: OnScrollWinEvents

    void OnScrollWinEvents(wxScrollWinEvent& e)
    {
        wxEventType scrollType(e.GetEventType());
        bool horiz = e.GetOrientation() == wxHORIZONTAL;

        wxPoint pos(viewStart);
 
        if (scrollType == wxEVT_SCROLLWIN_THUMBTRACK || scrollType == wxEVT_SCROLLWIN_THUMBRELEASE) {
            if (horiz) 
                pos.x = e.GetPosition();
            else       
                pos.y = e.GetPosition();
        }
        else if (scrollType == wxEVT_SCROLLWIN_LINEDOWN) {
            if (horiz) 
                pos.x += Scrollbar::pixelsPerLineStep();
            else       
                pos.y += Scrollbar::pixelsPerLineStep();
        }
        else if (scrollType == wxEVT_SCROLLWIN_LINEUP) {
            if (horiz) 
                pos.x -= Scrollbar::pixelsPerLineStep();
            else       
                pos.y -= Scrollbar::pixelsPerLineStep();
        }
        else if (scrollType == wxEVT_SCROLLWIN_PAGEUP) {
            if (horiz) 
                pos.x -= max<int>(m_scrollView->visibleWidth() * Scrollbar::minFractionToStepWhenPaging(), m_scrollView->visibleWidth() - Scrollbar::maxOverlapBetweenPages());
            else       
                pos.y -= max<int>(m_scrollView->visibleHeight() * Scrollbar::minFractionToStepWhenPaging(), m_scrollView->visibleHeight() - Scrollbar::maxOverlapBetweenPages());
        }
        else if (scrollType == wxEVT_SCROLLWIN_PAGEDOWN) {
            if (horiz) 
                pos.x += max<int>(m_scrollView->visibleWidth() * Scrollbar::minFractionToStepWhenPaging(), m_scrollView->visibleWidth() - Scrollbar::maxOverlapBetweenPages());
            else       
                pos.y += max<int>(m_scrollView->visibleHeight() * Scrollbar::minFractionToStepWhenPaging(), m_scrollView->visibleHeight() - Scrollbar::maxOverlapBetweenPages());
        }
        else
            return e.Skip();

        m_scrollView->setScrollPosition(IntPoint(pos.x, pos.y));
    }
开发者ID:achellies,项目名称:WinCEWebKit,代码行数:42,代码来源:ScrollViewWx.cpp

示例12: OnScrollThumbTrackEvt

void BaseEditor::OnScrollThumbTrackEvt(wxScrollWinEvent& event)
{
	int nOrientation = event.GetOrientation();
	int nPos = event.GetPosition();
	if (nOrientation == wxHORIZONTAL)
	{
		UpdateScrollPosition(nPos, GetScrollPos(wxVERTICAL));
	}
	else
	{
		UpdateScrollPosition(GetScrollPos(wxHORIZONTAL), nPos);
	}
}
开发者ID:mshandle,项目名称:spank,代码行数:13,代码来源:BaseEditor.cpp

示例13: OnScroll

void DisView::OnScroll(wxScrollWinEvent &evt)
{
	if(evt.GetOrientation() != wxSB_VERTICAL || _emu->emu == NULL)
		return;
	static long lockedLine = 0;
	static bool scrolling = false;
	wxEventType type = evt.GetEventType();
	if (type == wxEVT_SCROLLWIN_THUMBTRACK)
	{
		if (!scrolling)
		{
			lockedLine = _startingLine;
			scrolling = true;
		}
		int pos = evt.GetPosition()-50;
		int scrollAmount = pos*(_numberOfLines/50);
		// if the result would wrap around
		if (lockedLine < -scrollAmount)
			_startingLine = lockedLine + scrollAmount + _numberOfLines;
		else
			_startingLine = (lockedLine + scrollAmount);		
		_startingLine %= _numberOfLines;
	} else if (type == wxEVT_SCROLLWIN_THUMBRELEASE) {
		scrolling = false;
		lockedLine = 0;
	} else if (type == wxEVT_SCROLLWIN_LINEUP)
	{
		if (_startingLine == 0)
			_startingLine = _numberOfLines;
		_startingLine -= 1;
	} else if (type == wxEVT_SCROLLWIN_LINEDOWN)
	{
		_startingLine += _emu->emu->Disassemble(_emu->handle, _startingLine, NULL, NULL);
		_startingLine %= _numberOfLines;
	} else if (type == wxEVT_SCROLLWIN_PAGEUP)
	{
		if (_startingLine < 50)
			_startingLine += _numberOfLines;
		_startingLine -= 50;
	} else if (type == wxEVT_SCROLLWIN_PAGEDOWN)
	{
		_startingLine += 50;
		_startingLine %= _numberOfLines;
	}
	Refresh();
}
开发者ID:robojan,项目名称:EmuAll,代码行数:46,代码来源:DisView.cpp

示例14: onScroll

void DropDownList::onScroll(wxScrollWinEvent& ev) {
    wxEventType type = ev.GetEventType();
    if (type == wxEVT_SCROLLWIN_TOP) {
        scrollTo(0);
    } else if (type == wxEVT_SCROLLWIN_BOTTOM) {
        scrollTo(INT_MAX);
    } else if (type == wxEVT_SCROLLWIN_LINEUP) {
        scrollTo(visible_start - item_size.height);
    } else if (type == wxEVT_SCROLLWIN_LINEDOWN) {
        scrollTo(visible_start + item_size.height);
    } else if (type == wxEVT_SCROLLWIN_PAGEUP) {
        scrollTo(visible_start - (GetClientSize().y - item_size.height));
    } else if (type == wxEVT_SCROLLWIN_PAGEDOWN) {
        scrollTo(visible_start + (GetClientSize().y - item_size.height));
    } else {
        scrollTo(ev.GetPosition());
    }
}
开发者ID:bkovacik,项目名称:MagicSetEditor,代码行数:18,代码来源:drop_down_list.cpp

示例15: SetScrollPos

//
// Handle the wxEVT_SCROLL event
//
void
KeyView::OnScroll(wxScrollWinEvent & event)
{
   // We only care bout the horizontal scrollbar.
   if (event.GetOrientation() != wxHORIZONTAL)
   {
      // Allow further processing
      event.Skip();
      return;
   }

   // Get new scroll position and scroll the view
   mScrollX = event.GetPosition();
   SetScrollPos(wxHORIZONTAL, mScrollX);

   // Refresh the entire view
   RefreshAll();
}
开发者ID:tuanmasterit,项目名称:audacity,代码行数:21,代码来源:KeyView.cpp


注:本文中的wxScrollWinEvent::GetPosition方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。