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)