本文整理汇总了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();
}
示例2: OnScrollThumbRelease
void wxJigsawEditorCanvas::OnScrollThumbRelease(wxScrollWinEvent & event)
{
wxLogTrace(wxTraceMask(), _("wxJigsawEditorCanvas::OnScrollThumbRelease; ScrollPos = %i"),
event.GetPosition());
SetScrollPos(event.GetOrientation(), event.GetPosition());
FixViewOffset();
RefreshBuffer();
}
示例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__
}
示例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);
}
示例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();
}
示例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();
}
示例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);
}
}
}
示例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();
}
示例9: OnScrollThumbReleaseEvt
void BaseEditor::OnScrollThumbReleaseEvt(wxScrollWinEvent& event)
{
int nOrientation = event.GetOrientation();
int nPos = event.GetPosition();
SetScrollPos(nOrientation, nPos, true);
UpdateScrollPosition(GetScrollPos(wxHORIZONTAL), GetScrollPos(wxVERTICAL));
}
示例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();
}
示例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));
}
示例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);
}
}
示例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();
}
示例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());
}
}
示例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();
}