#include <fltkviewbase.hh>
Classes | |
| class | BackBuffer |
Public Member Functions | |
| FltkViewBase (int x, int y, int w, int h, const char *label=0) | |
| ~FltkViewBase () | |
| void | draw () |
| int | handle (int event) |
| void | setLayout (core::Layout *layout) |
| This methods notifies the view, that it has been attached to a layout. | |
| void | setCanvasSize (int width, int ascent, int descent) |
| Set the canvas size. | |
| void | setCursor (core::style::Cursor cursor) |
| Set the cursor appearance. | |
| void | setBgColor (core::style::Color *color) |
| Set the background of the view. | |
| void | startDrawing (core::Rectangle *area) |
| Called before drawing. | |
| void | finishDrawing (core::Rectangle *area) |
| Called after drawing. | |
| void | queueDraw (core::Rectangle *area) |
| Queue a region, which is given in canvas coordinates, for drawing. | |
| void | queueDrawTotal () |
| Queue the total viewport for drawing. | |
| void | cancelQueueDraw () |
| Cancel a draw queue request. | |
| void | drawPoint (core::style::Color *color, core::style::Color::Shading shading, int x, int y) |
| void | drawLine (core::style::Color *color, core::style::Color::Shading shading, int x1, int y1, int x2, int y2) |
| void | drawTypedLine (core::style::Color *color, core::style::Color::Shading shading, core::style::LineType type, int width, int x1, int y1, int x2, int y2) |
| void | drawRectangle (core::style::Color *color, core::style::Color::Shading shading, bool filled, int x, int y, int width, int height) |
| void | drawArc (core::style::Color *color, core::style::Color::Shading shading, bool filled, int centerX, int centerY, int width, int height, int angle1, int angle2) |
| void | drawPolygon (core::style::Color *color, core::style::Color::Shading shading, bool filled, bool convex, core::Point *points, int npoints) |
| core::View * | getClippingView (int x, int y, int width, int height) |
| void | mergeClippingView (core::View *clippingView) |
| void | setBufferedDrawing (bool b) |
Protected Member Functions | |
| virtual int | translateViewXToCanvasX (int x)=0 |
| virtual int | translateViewYToCanvasY (int y)=0 |
| virtual int | translateCanvasXToViewX (int x)=0 |
| virtual int | translateCanvasYToViewY (int y)=0 |
Protected Attributes | |
| core::Layout * | theLayout |
| int | canvasWidth |
| int | canvasHeight |
| int | mouse_x |
| int | mouse_y |
| Fl_Widget * | focused_child |
Private Types | |
| enum | DrawType { DRAW_PLAIN, DRAW_CLIPPED, DRAW_BUFFERED } |
Private Member Functions | |
| void | draw (const core::Rectangle *rect, DrawType type) |
| void | drawChildWidgets () |
| void | clipPoint (int *x, int *y, int border) |
Private Attributes | |
| int | bgColor |
| core::Region | drawRegion |
| core::Rectangle * | exposeArea |
Static Private Attributes | |
| static BackBuffer * | backBuffer |
| static bool | backBufferInUse |
enum dw::fltk::FltkViewBase::DrawType [private] |
| dw::fltk::FltkViewBase::FltkViewBase | ( | int | x, | |
| int | y, | |||
| int | w, | |||
| int | h, | |||
| const char * | label = 0 | |||
| ) |
References backBuffer, bgColor, canvasHeight, canvasWidth, exposeArea, focused_child, mouse_x, and mouse_y.
| dw::fltk::FltkViewBase::~FltkViewBase | ( | ) |
References cancelQueueDraw().
| void dw::fltk::FltkViewBase::cancelQueueDraw | ( | ) | [virtual] |
Cancel a draw queue request.
If dw::core::View::queueDraw or dw::core::View::queueDrawTotal have been called before, and the actual drawing was not processed yet, the actual drawing should be cancelled. Otherwise, the cancellation should be ignored.
Implements dw::core::View.
Referenced by ~FltkViewBase().
| void dw::fltk::FltkViewBase::clipPoint | ( | int * | x, | |
| int * | y, | |||
| int | border | |||
| ) | [inline, private] |
References exposeArea, dw::core::Rectangle::height, dw::core::Rectangle::width, dw::core::Rectangle::x, and dw::core::Rectangle::y.
Referenced by drawLine(), and drawRectangle().
| void dw::fltk::FltkViewBase::draw | ( | ) |
Reimplemented in dw::fltk::FltkViewport.
References dw::core::Region::clear(), DRAW_BUFFERED, DRAW_CLIPPED, DRAW_PLAIN, drawChildWidgets(), drawRegion, lout::container::typed::Iterator< T >::getNext(), lout::container::typed::Iterator< T >::hasNext(), dw::core::Region::rectangles(), translateViewXToCanvasX(), and translateViewYToCanvasY().
| void dw::fltk::FltkViewBase::draw | ( | const core::Rectangle * | rect, | |
| DrawType | type | |||
| ) | [private] |
References backBuffer, backBufferInUse, bgColor, DRAW_BUFFERED, DRAW_CLIPPED, dw::core::Layout::expose(), exposeArea, dw::core::Rectangle::height, dw::core::Rectangle::isEmpty(), dw::fltk::FltkViewBase::BackBuffer::offscreen, dw::fltk::FltkViewBase::BackBuffer::setSize(), theLayout, translateCanvasXToViewX(), translateCanvasYToViewY(), translateViewXToCanvasX(), translateViewYToCanvasY(), dw::core::Rectangle::width, dw::core::Rectangle::x, and dw::core::Rectangle::y.
| void dw::fltk::FltkViewBase::drawArc | ( | core::style::Color * | color, | |
| core::style::Color::Shading | shading, | |||
| bool | filled, | |||
| int | centerX, | |||
| int | centerY, | |||
| int | width, | |||
| int | height, | |||
| int | angle1, | |||
| int | angle2 | |||
| ) | [virtual] |
| void dw::fltk::FltkViewBase::drawChildWidgets | ( | ) | [private] |
Referenced by draw().
| void dw::fltk::FltkViewBase::drawLine | ( | core::style::Color * | color, | |
| core::style::Color::Shading | shading, | |||
| int | x1, | |||
| int | y1, | |||
| int | x2, | |||
| int | y2 | |||
| ) | [virtual] |
Implements dw::core::View.
References clipPoint(), translateCanvasXToViewX(), and translateCanvasYToViewY().
Referenced by drawTypedLine().
| void dw::fltk::FltkViewBase::drawPoint | ( | core::style::Color * | color, | |
| core::style::Color::Shading | shading, | |||
| int | x, | |||
| int | y | |||
| ) | [virtual] |
Implements dw::core::View.
| void dw::fltk::FltkViewBase::drawPolygon | ( | core::style::Color * | color, | |
| core::style::Color::Shading | shading, | |||
| bool | filled, | |||
| bool | convex, | |||
| core::Point * | points, | |||
| int | npoints | |||
| ) | [virtual] |
| void dw::fltk::FltkViewBase::drawRectangle | ( | core::style::Color * | color, | |
| core::style::Color::Shading | shading, | |||
| bool | filled, | |||
| int | x, | |||
| int | y, | |||
| int | width, | |||
| int | height | |||
| ) | [virtual] |
Implements dw::core::View.
References clipPoint(), translateCanvasXToViewX(), and translateCanvasYToViewY().
| void dw::fltk::FltkViewBase::drawTypedLine | ( | core::style::Color * | color, | |
| core::style::Color::Shading | shading, | |||
| core::style::LineType | type, | |||
| int | width, | |||
| int | x1, | |||
| int | y1, | |||
| int | x2, | |||
| int | y2 | |||
| ) | [virtual] |
Implements dw::core::View.
References drawLine(), dw::core::style::LINE_DASHED, dw::core::style::LINE_DOTTED, and dw::core::style::LINE_NORMAL.
| void dw::fltk::FltkViewBase::finishDrawing | ( | core::Rectangle * | area | ) | [virtual] |
| core::View * dw::fltk::FltkViewBase::getClippingView | ( | int | x, | |
| int | y, | |||
| int | width, | |||
| int | height | |||
| ) | [virtual] |
| int dw::fltk::FltkViewBase::handle | ( | int | event | ) |
Reimplemented in dw::fltk::FltkPreview, and dw::fltk::FltkViewport.
References dw::core::Layout::buttonPress(), dw::core::Layout::buttonRelease(), dw::core::Layout::cancelTooltip(), dw::core::Layout::enterNotify(), fl_oldfocus, focused_child, dw::fltk::getDwButtonState(), dw::core::Layout::leaveNotify(), dw::core::Layout::motionNotify(), mouse_x, mouse_y, theLayout, translateViewXToCanvasX(), and translateViewYToCanvasY().
Referenced by dw::fltk::FltkViewport::handle().
| void dw::fltk::FltkViewBase::mergeClippingView | ( | core::View * | clippingView | ) | [virtual] |
Implements dw::core::View.
| void dw::fltk::FltkViewBase::queueDraw | ( | core::Rectangle * | area | ) | [virtual] |
Queue a region, which is given in canvas coordinates, for drawing.
The view implementation is responsible, that this region is drawn, either immediately, or (which is more typical, since more efficient) the areas are collected, combined (as far as possible), and the drawing is later done in an idle function.
DAMAGE_VALUE is just an arbitrary value other than DAMAGE_EXPOSE here
Implements dw::core::View.
References dw::core::Region::addRectangle(), and drawRegion.
| void dw::fltk::FltkViewBase::queueDrawTotal | ( | ) | [virtual] |
| void dw::fltk::FltkViewBase::setBgColor | ( | core::style::Color * | color | ) | [virtual] |
Set the background of the view.
Implements dw::core::View.
References bgColor, and dw::core::style::Color::SHADING_NORMAL.
| void dw::fltk::FltkViewBase::setBufferedDrawing | ( | bool | b | ) |
References backBuffer.
| void dw::fltk::FltkViewBase::setCanvasSize | ( | int | width, | |
| int | ascent, | |||
| int | descent | |||
| ) | [virtual] |
Set the canvas size.
Implements dw::core::View.
Reimplemented in dw::fltk::FltkFlatView, dw::fltk::FltkPreview, and dw::fltk::FltkViewport.
References canvasHeight, and canvasWidth.
| void dw::fltk::FltkViewBase::setCursor | ( | core::style::Cursor | cursor | ) | [virtual] |
Set the cursor appearance.
Implements dw::core::View.
Referenced by dw::fltk::FltkViewport::handle().
| void dw::fltk::FltkViewBase::setLayout | ( | core::Layout * | layout | ) | [virtual] |
This methods notifies the view, that it has been attached to a layout.
Implements dw::core::View.
References theLayout, dw::core::View::usesViewport(), and dw::core::Layout::viewportSizeChanged().
| void dw::fltk::FltkViewBase::startDrawing | ( | core::Rectangle * | area | ) | [virtual] |
Called before drawing.
All actual drawing operations will be enclosed into calls of dw::core:View::startDrawing and dw::core:View::finishDrawing. They may be implemented, e.g. when a backing pixmap is used, to prevent flickering. StartDrawing() will then initialize the backing pixmap, all other drawing operations will draw into it, and finishDrawing() will merge it into the window.
Implements dw::core::View.
| virtual int dw::fltk::FltkViewBase::translateCanvasXToViewX | ( | int | x | ) | [protected, pure virtual] |
Implemented in dw::fltk::FltkFlatView, dw::fltk::FltkPreview, and dw::fltk::FltkViewport.
Referenced by dw::fltk::FltkWidgetView::allocateFltkWidget(), draw(), drawArc(), dw::fltk::FltkWidgetView::drawImage(), drawLine(), drawPolygon(), drawRectangle(), dw::fltk::FltkWidgetView::drawSimpleWrappedText(), dw::fltk::FltkWidgetView::drawText(), and getClippingView().
| virtual int dw::fltk::FltkViewBase::translateCanvasYToViewY | ( | int | y | ) | [protected, pure virtual] |
Implemented in dw::fltk::FltkFlatView, dw::fltk::FltkPreview, and dw::fltk::FltkViewport.
Referenced by dw::fltk::FltkWidgetView::allocateFltkWidget(), draw(), drawArc(), dw::fltk::FltkWidgetView::drawImage(), drawLine(), drawPolygon(), drawRectangle(), dw::fltk::FltkWidgetView::drawSimpleWrappedText(), dw::fltk::FltkWidgetView::drawText(), and getClippingView().
| virtual int dw::fltk::FltkViewBase::translateViewXToCanvasX | ( | int | x | ) | [protected, pure virtual] |
Implemented in dw::fltk::FltkFlatView, dw::fltk::FltkPreview, and dw::fltk::FltkViewport.
| virtual int dw::fltk::FltkViewBase::translateViewYToCanvasY | ( | int | y | ) | [protected, pure virtual] |
Implemented in dw::fltk::FltkFlatView, dw::fltk::FltkPreview, and dw::fltk::FltkViewport.
FltkViewBase::BackBuffer * dw::fltk::FltkViewBase::backBuffer [static, private] |
Referenced by draw(), FltkViewBase(), and setBufferedDrawing().
bool dw::fltk::FltkViewBase::backBufferInUse [static, private] |
Referenced by draw().
int dw::fltk::FltkViewBase::bgColor [private] |
Referenced by draw(), FltkViewBase(), and setBgColor().
int dw::fltk::FltkViewBase::canvasHeight [protected] |
Referenced by dw::fltk::FltkViewport::adjustScrollbarValues(), FltkViewBase(), dw::fltk::FltkPreviewWindow::reallocate(), dw::fltk::FltkViewport::scroll(), dw::fltk::FltkViewport::scrollTo(), setCanvasSize(), dw::fltk::FltkPreview::translateCanvasYToViewY(), and dw::fltk::FltkPreview::translateViewYToCanvasY().
int dw::fltk::FltkViewBase::canvasWidth [protected] |
Referenced by draw(), and queueDraw().
Referenced by clipPoint(), draw(), and FltkViewBase().
Fl_Widget* dw::fltk::FltkViewBase::focused_child [protected] |
Referenced by FltkViewBase(), and handle().
int dw::fltk::FltkViewBase::mouse_x [protected] |
Referenced by FltkViewBase(), dw::fltk::FltkViewport::handle(), handle(), and dw::fltk::FltkViewport::positionChanged().
int dw::fltk::FltkViewBase::mouse_y [protected] |
Referenced by FltkViewBase(), dw::fltk::FltkViewport::handle(), handle(), and dw::fltk::FltkViewport::positionChanged().
core::Layout* dw::fltk::FltkViewBase::theLayout [protected] |
1.5.9