Lumiera  0.pre.03
»edit your freedom«
AbstractTrackRenderer Class Reference

Description

drawing routines to paint the nested system of insets and rulers in the track content display

Remarks
the actual sequence of elements to draw is established by TrackBody::establishTrackSpace (TrackProfile&) "evaluating" the nested widget structure; this results in a sequence of drawing "verbs", which we call the TrackProfile. This class here implements a ProfileInterpreter, which is a double-dispatch mechanism to invoke a set of (virtual) drawing primitives, the actual drawing code is in the two following subclasses, separate for the background and for drawing overlays.
Note
the invariant is: after processing a verb from the profile, all drawing including the current "water level" line_ is complete.

Definition at line 162 of file body-canvas-widget.cpp.

Public Member Functions

 AbstractTrackRenderer (CairoC currentDrawContext, DisplayManager &layout)
 
- Public Member Functions inherited from ProfileInterpreter
virtual ~ProfileInterpreter ()
 this is an interface
 
virtual void close (uint n)=0
 indicate the end of n nested structures, typically by ascending back n levels
 
virtual void coda (uint pad)=0
 closing part of the timeline below track display, with pad additional padding
 
virtual void content (uint h)=0
 represent a content area with the given vertical extension
 
virtual void gap (uint h)=0
 represent a gap to structure the display
 
virtual void open ()=0
 indicate entering a nested structure, typically as 3D inset
 
virtual void prelude ()=0
 start the track presentation at top of the timeline
 
virtual void ruler (uint h)=0
 represent an overview/ruler track with the given height
 

Protected Member Functions

void fillBackground (StyleC style, int height)
 

Protected Attributes

CairoC cox_
 
int line_ = 0
 the current painting "water level". More...
 
StyleC style_
 
StyleC styleR_
 
PixSpan visible_
 

Additional Inherited Members

- Static Public Attributes inherited from ProfileInterpreter
static const size_t MAX_ARG_SIZE = sizeof(size_t)
 

Member Data Documentation

◆ line_

int line_ = 0
protected

the current painting "water level".

To be updated while drawing top-down

Definition at line 173 of file body-canvas-widget.cpp.

+ Inheritance diagram for AbstractTrackRenderer:
+ Collaboration diagram for AbstractTrackRenderer:

The documentation for this class was generated from the following file: