14   for (
int i = 0; i < numberOfSubviews(); i++) {
    23   m_superview = 
nullptr;
    31 const Window * View::window()
 const {
    32   if (m_superview == 
nullptr) {
    35     return m_superview->window();
    53   if (window() == 
nullptr) {
    63   KDRect rectNeedingRedraw = rect
    66       .intersectedWith(
bounds()));
    69   if (!rectNeedingRedraw.
isEmpty()) {
    70     KDPoint absOrigin = absoluteOrigin();
    76     this->
drawRect(ctx, rectNeedingRedraw);
    79   KDRect redrawnArea = rectNeedingRedraw;
    82   for (
uint8_t i=0; i<numberOfSubviews(); i++) {
    90     KDRect intersectionInSubview = rect
    93     KDRect forcedRedrawAreaInSubview = redrawnArea
    98     KDRect subviewRedrawnArea =
    99       subview->redraw(intersectionInSubview, forcedRedrawAreaInSubview);
   112   assert(index >= 0 && index < numberOfSubviews());
   133   if (m_superview != 
nullptr) {
   161 KDPoint View::absoluteOrigin()
 const {
   162   if (m_superview == 
nullptr) {
   170 KDRect View::absoluteVisibleFrame()
 const {
   171   if (m_superview == 
nullptr) {
   175     KDRect parentDrawingArea = m_superview->absoluteVisibleFrame();
   187 int View::numberOfSubviews()
 const {
   191 View * View::subviewAtIndex(
int index) {
   196 void View::layoutSubviews() {
   200 #if ESCHER_VIEW_LOGGING   201 const char * View::className()
 const {
   205 void View::logAttributes(std::ostream &os)
 const {
   206   os << 
" address=\"" << 
this << 
"\"";
   210 std::ostream &operator<<(std::ostream &os, 
View &view) {
   211   os << 
"<" << view.className();
   212   view.logAttributes(os);
   214   for (
int i=0; i<view.numberOfSubviews(); i++) {
   218   os << 
"</" << view.className() << 
">";
 KDRect translatedBy(KDPoint p) const
void setFrame(KDRect frame)
void markRectAsDirty(KDRect rect)
constexpr KDPoint KDPointZero
void setOrigin(KDPoint origin)
virtual void drawRect(KDContext *ctx, KDRect rect) const
KDRect unionedWith(const KDRect &other) const
void setSize(KDSize size)
static KDIonContext * sharedContext()
void setClippingRect(KDRect clippingRect)
virtual KDSize minimalSizeForOptimalDisplay() const
constexpr KDRect KDRectZero
constexpr KDSize KDSizeZero
KDCoordinate width() const
KDRect movedTo(KDPoint p) const
KDRect intersectedWith(const KDRect &other) const
KDPoint translatedBy(KDPoint other) const
View * subview(int index)
KDCoordinate height() const
KDPoint pointFromPointInView(View *view, KDPoint point)