Dillo
Public Types | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
dw::fltk::FltkViewport Class Reference

#include <fltkviewport.hh>

Public Types

enum  GadgetOrientation { GADGET_VERTICAL, GADGET_HORIZONTAL }
 

Public Member Functions

 FltkViewport (int x, int y, int w, int h, const char *label=0)
 
 ~FltkViewport ()
 
void resize (int x, int y, int w, int h)
 
void draw ()
 
int handle (int event)
 
void setCanvasSize (int width, int ascent, int descent)
 Set the canvas size. More...
 
bool usesViewport ()
 Return, whether this view uses a viewport. More...
 
int getHScrollbarThickness ()
 Get the thickness of the horizontal scrollbar, when it is visible. More...
 
int getVScrollbarThickness ()
 Get the thickness of the vertical scrollbar, when it is visible. More...
 
void scroll (int dx, int dy)
 
void scroll (dw::core::ScrollCommand cmd)
 Scroll the viewport as commanded. More...
 
void scrollTo (int x, int y)
 Scroll the vieport to the given position. More...
 
void setViewportSize (int width, int height, int hScrollbarThickness, int vScrollbarThickness)
 Set the viewport size. More...
 
void setScrollStep (int step)
 
void setGadgetOrientation (bool hscrollbarVisible, bool vscrollbarVisible, GadgetOrientation gadgetOrientation)
 
void setDragScroll (bool enable)
 
void addGadget (Fl_Widget *gadget)
 
- Public Member Functions inherited from dw::fltk::FltkWidgetView
 FltkWidgetView (int x, int y, int w, int h, const char *label=0)
 
 ~FltkWidgetView ()
 
void drawText (core::style::Font *font, core::style::Color *color, core::style::Color::Shading shading, int x, int y, const char *text, int len)
 
void drawSimpleWrappedText (core::style::Font *font, core::style::Color *color, core::style::Color::Shading shading, int x, int y, int w, int h, const char *text)
 
void drawImage (core::Imgbuf *imgbuf, int xRoot, int yRoot, int x, int y, int width, int height)
 
bool usesFltkWidgets ()
 
void addFltkWidget (Fl_Widget *widget, core::Allocation *allocation)
 
void removeFltkWidget (Fl_Widget *widget)
 
void allocateFltkWidget (Fl_Widget *widget, core::Allocation *allocation)
 
void drawFltkWidget (Fl_Widget *widget, core::Rectangle *area)
 
- Public Member Functions inherited from dw::fltk::FltkViewBase
 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. More...
 
void setCursor (core::style::Cursor cursor)
 Set the cursor appearance. More...
 
void setBgColor (core::style::Color *color)
 Set the background of the view. More...
 
void startDrawing (core::Rectangle *area)
 Called before drawing. More...
 
void finishDrawing (core::Rectangle *area)
 Called after drawing. More...
 
void queueDraw (core::Rectangle *area)
 Queue a region, which is given in canvas coordinates, for drawing. More...
 
void queueDrawTotal ()
 Queue the total viewport for drawing. More...
 
void cancelQueueDraw ()
 Cancel a draw queue request. More...
 
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::ViewgetClippingView (int x, int y, int width, int height)
 
void mergeClippingView (core::View *clippingView)
 
void setBufferedDrawing (bool b)
 
- Public Member Functions inherited from lout::object::Object
virtual ~Object ()
 The destructor is defined as virtual (but not abstract), so that destruction of Object's works properly. More...
 
virtual bool equals (Object *other)
 Returns, whether two objects are equal. More...
 
virtual int hashValue ()
 Return a hash value for the object. More...
 
virtual Objectclone ()
 Return an exact copy of the object. More...
 
virtual void intoStringBuffer (misc::StringBuffer *sb)
 Store a textual representation of the object in a misc::StringBuffer. More...
 
const char * toString ()
 Use object::Object::intoStringBuffer to return a textual representation of the object. More...
 
virtual size_t sizeOf ()
 Return the number of bytes, this object totally uses. More...
 

Protected Member Functions

int translateViewXToCanvasX (int x)
 
int translateViewYToCanvasY (int y)
 
int translateCanvasXToViewX (int x)
 
int translateCanvasYToViewY (int y)
 

Private Types

enum  { SCROLLBAR_THICKNESS = 15 }
 

Private Member Functions

void adjustScrollbarsAndGadgetsAllocation ()
 
void adjustScrollbarValues ()
 
void hscrollbarChanged ()
 
void vscrollbarChanged ()
 
void positionChanged ()
 
void selectionScroll ()
 
void updateCanvasWidgets (int oldScrollX, int oldScrollY)
 

Static Private Member Functions

static void hscrollbarCallback (Fl_Widget *hscrollbar, void *viewportPtr)
 
static void vscrollbarCallback (Fl_Widget *vscrollbar, void *viewportPtr)
 
static void selectionScroll (void *vport)
 
static void draw_area (void *data, int x, int y, int w, int h)
 

Private Attributes

int scrollX
 
int scrollY
 
int scrollDX
 
int scrollDY
 
int hasDragScroll
 
int dragScrolling
 
int dragX
 
int dragY
 
int horScrolling
 
int verScrolling
 
Fl_Scrollbar * vscrollbar
 
Fl_Scrollbar * hscrollbar
 
GadgetOrientation gadgetOrientation [4]
 
lout::container::typed::List
< lout::object::TypedPointer
< Fl_Widget > > * 
gadgets
 

Additional Inherited Members

- Protected Attributes inherited from dw::fltk::FltkViewBase
core::LayouttheLayout
 
int canvasWidth
 
int canvasHeight
 
int mouse_x
 
int mouse_y
 
Fl_Widget * focused_child
 

Member Enumeration Documentation

anonymous enum
private
Enumerator
SCROLLBAR_THICKNESS 
Enumerator
GADGET_VERTICAL 
GADGET_HORIZONTAL 

Constructor & Destructor Documentation

dw::fltk::FltkViewport::FltkViewport ( int  x,
int  y,
int  w,
int  h,
const char *  label = 0 
)
dw::fltk::FltkViewport::~FltkViewport ( )

References DBG_OBJ_DELETE, and gadgets.

Member Function Documentation

void dw::fltk::FltkViewport::addGadget ( Fl_Widget *  gadget)
void dw::fltk::FltkViewport::adjustScrollbarsAndGadgetsAllocation ( )
private
void dw::fltk::FltkViewport::adjustScrollbarValues ( )
private
void dw::fltk::FltkViewport::draw ( )
void dw::fltk::FltkViewport::draw_area ( void *  data,
int  x,
int  y,
int  w,
int  h 
)
staticprivate
int dw::fltk::FltkViewport::getHScrollbarThickness ( )
virtual

Get the thickness of the horizontal scrollbar, when it is visible.

Does not have to be implemented, when usesViewport returns false.

Implements dw::core::View.

References SCROLLBAR_THICKNESS.

int dw::fltk::FltkViewport::getVScrollbarThickness ( )
virtual

Get the thickness of the vertical scrollbar, when it is visible.

Does not have to be implemented, when usesViewport returns false.

Implements dw::core::View.

References SCROLLBAR_THICKNESS.

int dw::fltk::FltkViewport::handle ( int  event)
void dw::fltk::FltkViewport::hscrollbarCallback ( Fl_Widget *  hscrollbar,
void *  viewportPtr 
)
staticprivate

Referenced by FltkViewport().

void dw::fltk::FltkViewport::hscrollbarChanged ( )
private

References hscrollbar, scroll(), and scrollX.

void dw::fltk::FltkViewport::positionChanged ( )
private
void dw::fltk::FltkViewport::resize ( int  x,
int  y,
int  w,
int  h 
)
void dw::fltk::FltkViewport::scroll ( int  dx,
int  dy 
)
void dw::fltk::FltkViewport::scroll ( dw::core::ScrollCommand  )
virtual
void dw::fltk::FltkViewport::scrollTo ( int  x,
int  y 
)
virtual
void dw::fltk::FltkViewport::selectionScroll ( )
private
void dw::fltk::FltkViewport::selectionScroll ( void *  vport)
staticprivate

References selectionScroll().

void dw::fltk::FltkViewport::setCanvasSize ( int  width,
int  ascent,
int  descent 
)
virtual

Set the canvas size.

Reimplemented from dw::fltk::FltkViewBase.

References adjustScrollbarValues(), and dw::fltk::FltkViewBase::setCanvasSize().

void dw::fltk::FltkViewport::setDragScroll ( bool  enable)
inline
void dw::fltk::FltkViewport::setGadgetOrientation ( bool  hscrollbarVisible,
bool  vscrollbarVisible,
FltkViewport::GadgetOrientation  gadgetOrientation 
)
void dw::fltk::FltkViewport::setScrollStep ( int  step)

References hscrollbar, and vscrollbar.

void dw::fltk::FltkViewport::setViewportSize ( int  width,
int  height,
int  hScrollbarThickness,
int  vScrollbarThickness 
)
virtual

Set the viewport size.

Does not have to be implemented, when usesViewport returns false.

This will normally imply a resize of the UI widget. Width and height are the dimensions of the new size, including the scrollbar thicknesses.

Implements dw::core::View.

References adjustScrollbarsAndGadgetsAllocation(), hscrollbar, scroll(), scrollX, scrollY, and vscrollbar.

int dw::fltk::FltkViewport::translateCanvasXToViewX ( int  x)
protectedvirtual

Implements dw::fltk::FltkViewBase.

References scrollX.

int dw::fltk::FltkViewport::translateCanvasYToViewY ( int  y)
protectedvirtual

Implements dw::fltk::FltkViewBase.

References scrollY.

int dw::fltk::FltkViewport::translateViewXToCanvasX ( int  x)
protectedvirtual

Implements dw::fltk::FltkViewBase.

References scrollX.

Referenced by positionChanged().

int dw::fltk::FltkViewport::translateViewYToCanvasY ( int  y)
protectedvirtual

Implements dw::fltk::FltkViewBase.

References scrollY.

Referenced by positionChanged().

void dw::fltk::FltkViewport::updateCanvasWidgets ( int  oldScrollX,
int  oldScrollY 
)
private

References hscrollbar, and vscrollbar.

Referenced by scrollTo().

bool dw::fltk::FltkViewport::usesViewport ( )
virtual

Return, whether this view uses a viewport.

Implements dw::core::View.

void dw::fltk::FltkViewport::vscrollbarCallback ( Fl_Widget *  vscrollbar,
void *  viewportPtr 
)
staticprivate

Referenced by FltkViewport().

void dw::fltk::FltkViewport::vscrollbarChanged ( )
private

References scroll(), scrollY, and vscrollbar.

Member Data Documentation

int dw::fltk::FltkViewport::dragScrolling
private
int dw::fltk::FltkViewport::dragX
private

Referenced by handle().

int dw::fltk::FltkViewport::dragY
private

Referenced by handle().

GadgetOrientation dw::fltk::FltkViewport::gadgetOrientation[4]
private
lout::container::typed::List<lout::object::TypedPointer < Fl_Widget> >* dw::fltk::FltkViewport::gadgets
private
int dw::fltk::FltkViewport::hasDragScroll
private

Referenced by FltkViewport(), and handle().

int dw::fltk::FltkViewport::horScrolling
private

Referenced by FltkViewport(), and handle().

Fl_Scrollbar * dw::fltk::FltkViewport::hscrollbar
private
int dw::fltk::FltkViewport::scrollDX
private

Referenced by draw(), FltkViewport(), and scrollTo().

int dw::fltk::FltkViewport::scrollDY
private

Referenced by draw(), FltkViewport(), and scrollTo().

int dw::fltk::FltkViewport::scrollX
private
int dw::fltk::FltkViewport::scrollY
private
int dw::fltk::FltkViewport::verScrolling
private

Referenced by FltkViewport(), and handle().

Fl_Scrollbar* dw::fltk::FltkViewport::vscrollbar
private

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