//------------------------------------------------------------------------ CRect CTextEdit::platformGetVisibleSize () const { CRect rect = getVisibleViewSize (); CPoint p (0, 0); localToFrame (p); rect.offset (p.x, p.y); return rect; }
//------------------------------------------------------------------------ CRect UISearchTextField::platformGetSize () const { CRect rect = getViewSize (); CRect cmr = getClearMarkRect (); rect.right = cmr.left; CPoint p (0, 0); localToFrame (p); rect.offset (p.x, p.y); return rect; }
//------------------------------------------------------------------------ CRect UISearchTextField::platformGetVisibleSize () const { CRect rect = getViewSize (); CRect cmr = getClearMarkRect (); rect.right = cmr.left; if (pParentView) rect = static_cast<CViewContainer*>(pParentView)->getVisibleSize (rect); else if (pParentFrame) rect = pParentFrame->getVisibleSize (rect); CPoint p (0, 0); localToFrame (p); rect.offset (p.x, p.y); return rect; }
virtual CMouseEventResult onMouseDown (CPoint &where, const long &buttons) { if (buttons == kRButton) { CView* view = getViewAt (where); if (!view || view->isTypeOf ("CTabButton")) { CRect r; localToFrame (where); r.offset (where.x, where.y); r.offset (-size.left, -size.top); COptionMenu* menu = new COptionMenu (r, NULL, 0); menu->addEntry ("Tabs Left"); menu->addEntry ("Tabs Right"); menu->addEntry ("Tabs Top"); menu->addEntry ("Tabs Bottom"); menu->addEntry ("-"); menu->addEntry ("Align Tabs Centered"); menu->addEntry ("Align Tabs Left/Top"); menu->addEntry ("Align Tabs Right/Bottom"); getFrame ()->addView (menu); menu->takeFocus (); long res = menu->getLastResult (); getFrame ()->removeView (menu); if (res != -1) { if (res < 4) { r = size; editor->setTabView (getFrame (), r, res); } else { alignTabs (kAlignCenter + res - 5); } } return kMouseDownEventHandledButDontNeedMovedOrUpEvents; } } return CTabView::onMouseDown (where, buttons); }
//------------------------------------------------------------------------ void CTextEdit::takeFocus () { if (platformControl) return; #if TARGET_OS_IPHONE if (getFrame ()->getFocusView () == this) return; #endif bWasReturnPressed = false; // calculate offset for CViewContainers CRect rect (getViewSize ()); CPoint p (0, 0); localToFrame (p); rect.offset (p.x, p.y); platformControl = getFrame ()->getPlatformFrame ()->createPlatformTextEdit (this); #if TARGET_OS_IPHONE getFrame ()->setFocusView (this); #endif }
//----------------------------------------------------------------------------- void CScrollContainer::setScrollOffset (CPoint newOffset, bool redraw) { newOffset.x = floor (newOffset.x + 0.5); newOffset.y = floor (newOffset.y + 0.5); if (containerSize.getWidth () >= getViewSize ().getWidth ()) { if (newOffset.x < containerSize.left - (containerSize.getWidth () - getViewSize ().getWidth ())) newOffset.x = containerSize.left - (containerSize.getWidth () - getViewSize ().getWidth ()); } else { if (newOffset.x < containerSize.left - containerSize.getWidth ()) newOffset.x = containerSize.left - containerSize.getWidth (); } if (newOffset.x > containerSize.right) newOffset.x = containerSize.right; if (newOffset.y < containerSize.top) newOffset.y = containerSize.top; if (newOffset.y > containerSize.bottom) newOffset.y = containerSize.bottom; CPoint diff ((int32_t)(newOffset.x - offset.x), (int32_t)(offset.y - newOffset.y)); if (diff.x == 0 && diff.y == 0) return; inScrolling = true; FOREACHSUBVIEW CRect r, mr; pV->getViewSize (r); pV->getMouseableArea (mr); r.offset (diff.x , diff.y); pV->setViewSize (r, false); mr.offset (diff.x , diff.y); pV->setMouseableArea (mr); ENDFOREACHSUBVIEW inScrolling = false; offset = newOffset; if (!isAttached ()) return; if (getTransparency ()) { invalid (); } else { CRect scrollRect (0, 0, getViewSize ().getWidth (), getViewSize ().getHeight ()); CPoint p; localToFrame (p); scrollRect.offset (p.x, p.y); CRect visibleRect = getVisibleSize (CRect (0, 0, getViewSize ().getWidth (), getViewSize ().getHeight ())); visibleRect.offset (p.x, p.y); scrollRect.bound (visibleRect); CPoint distance (diff.x, diff.y); if (distance.x > 0) scrollRect.right -= distance.x; else if (distance.x < 0) scrollRect.left -= distance.x; if (distance.y > 0) scrollRect.bottom -= distance.y; else if (distance.y < 0) scrollRect.top -= distance.y; getFrame ()->scrollRect (scrollRect, distance); } }