JX Application Framework
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
JXWindowPainter Class Reference

#include <JXWindowPainter.h>

Inheritance diagram for JXWindowPainter:
[legend]

Public Member Functions

 JXWindowPainter (JXGC *gc, Drawable drawable, const JRect &defaultClipRect, const Region defaultClipRegion)
 
 ~JXWindowPainter () override
 
JXDisplayGetDisplay () const
 
JXColorManagerGetXColorManager () const
 
JXGCGetGC () const
 
void Reset () override
 
void Reset (const JRect &defClipRect, const Region clipRegion)
 
Region GetClipRegion () const
 
void SetClipRegion (const Region region)
 
void ResetClipRegion ()
 
JRect SetClipRect (const JRect &r) override
 
void SetDashList (const JArray< JSize > &dashList, const JSize dashOffset=0) override
 
void StringNoSubstitutions (const JCoordinate left, const JCoordinate top, const JString &str) override
 
void String (const JFloat angle, const JCoordinate left, const JCoordinate top, const JString &str, const JCoordinate width=0, const HAlign hAlign=HAlign::kLeft, const JCoordinate height=0, const VAlign vAlign=VAlign::kTop) override
 
void Point (const JCoordinate x, const JCoordinate y) override
 
void Line (const JCoordinate x1, const JCoordinate y1, const JCoordinate x2, const JCoordinate y2) override
 
void Rect (const JCoordinate x, const JCoordinate y, const JCoordinate w, const JCoordinate h) override
 
void Ellipse (const JCoordinate x, const JCoordinate y, const JCoordinate w, const JCoordinate h) override
 
void Arc (const JCoordinate x, const JCoordinate y, const JCoordinate w, const JCoordinate h, const JFloat startAngle, const JFloat deltaAngle) override
 
void Polygon (const JCoordinate left, const JCoordinate top, const JPolygon &poly) override
 
void Image (const JImage &image, const JRect &srcRect, const JRect &destRect) override
 
virtual void String (const JCoordinate left, const JCoordinate top, const JString &str, const JIndex uIndex, const JCoordinate width=0, const HAlign hAlign=HAlign::kLeft, const JCoordinate height=0, const VAlign vAlign=VAlign::kTop)
 
Drawable GetDrawable () const
 
XftDraw * GetFontDrawable () const
 
bool GetDefaultClipRegion (Region *region) const
 
void SetDefaultClipRegion (const Region region)
 
virtual void Reset ()
 
void Reset (const JRect &defClipRect)
 
void String (const JCoordinate left, const JCoordinate top, const JString &str, const JCoordinate width=0, const HAlign hAlign=HAlign::kLeft, const JCoordinate height=0, const VAlign vAlign=VAlign::kTop)
 
void String (const JPoint &topLeft, const JString &str, const JCoordinate width=0, const HAlign hAlign=HAlign::kLeft, const JCoordinate height=0, const VAlign vAlign=VAlign::kTop)
 
void String (const JRect &rect, const JString &str, const HAlign hAlign=HAlign::kLeft, const VAlign vAlign=VAlign::kTop)
 
virtual void String (const JFloat angle, const JCoordinate left, const JCoordinate top, const JString &str, const JCoordinate width=0, const HAlign hAlign=HAlign::kLeft, const JCoordinate height=0, const VAlign vAlign=VAlign::kTop)=0
 
void String (const JFloat angle, const JPoint &topLeft, const JString &str, const JCoordinate width=0, const HAlign hAlign=HAlign::kLeft, const JCoordinate height=0, const VAlign vAlign=VAlign::kTop)
 
void String (const JFloat angle, const JRect &rect, const JString &str, const HAlign hAlign=HAlign::kLeft, const VAlign vAlign=VAlign::kTop)
 
virtual void Point (const JCoordinate x, const JCoordinate y)=0
 
void Point (const JPoint &pt)
 
virtual void Line (const JCoordinate x1, const JCoordinate y1, const JCoordinate x2, const JCoordinate y2)=0
 
void Line (const JPoint &pt1, const JPoint &pt2)
 
virtual void Rect (const JCoordinate x, const JCoordinate y, const JCoordinate w, const JCoordinate h)=0
 
void Rect (const JPoint &upperLeft, const JCoordinate w, const JCoordinate h)
 
void Rect (const JRect &bounds)
 
virtual void Ellipse (const JCoordinate x, const JCoordinate y, const JCoordinate w, const JCoordinate h)=0
 
void Ellipse (const JPoint &upperLeft, const JCoordinate w, const JCoordinate h)
 
void Ellipse (const JRect &bounds)
 
virtual void Arc (const JCoordinate x, const JCoordinate y, const JCoordinate w, const JCoordinate h, const JFloat startAngle, const JFloat deltaAngle)=0
 
void Arc (const JPoint &upperLeft, const JCoordinate w, const JCoordinate h, const JFloat startAngle, const JFloat deltaAngle)
 
void Arc (const JRect &bounds, const JFloat startAngle, const JFloat deltaAngle)
 
virtual void Polygon (const JCoordinate left, const JCoordinate top, const JPolygon &poly)=0
 
void Polygon (const JPoint &upperLeft, const JPolygon &poly)
 
void Polygon (const JPolygon &poly)
 
void Image (const JImage &image, const JRect &srcRect, const JCoordinate left, const JCoordinate top)
 
void Image (const JImage &image, const JRect &srcRect, const JPoint &topLeft)
 
virtual void Image (const JImage &image, const JRect &srcRect, const JRect &destRect)=0
 
- Public Member Functions inherited from JPainter
 JPainter (JFontManager *fontManager, const JRect &defaultClipRect)
 
virtual ~JPainter ()
 
JFontManagerGetFontManager () const
 
void Reset (const JRect &defClipRect)
 
virtual void ResetAllButClipping ()
 
const JRectGetClipRect () const
 
void ResetClipRect ()
 
const JRectGetDefaultClipRect () const
 
void SetDefaultClipRect (const JRect &r)
 
const JPointGetOrigin () const
 
void SetOrigin (const JCoordinate x, const JCoordinate y)
 
void SetOrigin (const JPoint &pt)
 
void ShiftOrigin (const JCoordinate dx, const JCoordinate dy)
 
void ShiftOrigin (const JPoint &delta)
 
const JPointGetPenLocation () const
 
void SetPenLocation (const JCoordinate x, const JCoordinate y)
 
void SetPenLocation (const JPoint &pt)
 
void ShiftPenLocation (const JCoordinate dx, const JCoordinate dy)
 
void ShiftPenLocation (const JPoint &delta)
 
JColorID GetPenColor () const
 
void SetPenColor (const JColorID color)
 
JSize GetLineWidth () const
 
void SetLineWidth (const JSize width)
 
bool LinesAreDashed () const
 
void DrawDashedLines (const bool on)
 
bool GetDashList (const JArray< JSize > **dashList, JSize *dashOffset) const
 
bool IsFilling () const
 
void SetFilling (const bool on)
 
const JFontGetFont () const
 
void SetFontName (const JString &name)
 
void SetFontSize (const JSize size)
 
void SetFontStyle (const JFontStyle &style)
 
void SetFont (const JFont &f)
 
JSize GetLineHeight (JCoordinate *ascent, JCoordinate *descent) const
 
JSize GetLineHeight () const
 
JSize GetStringWidth (const JString &str) const
 
void String (const JCoordinate left, const JCoordinate top, const JString &str, const JCoordinate width=0, const HAlign hAlign=HAlign::kLeft, const JCoordinate height=0, const VAlign vAlign=VAlign::kTop)
 
void String (const JPoint &topLeft, const JString &str, const JCoordinate width=0, const HAlign hAlign=HAlign::kLeft, const JCoordinate height=0, const VAlign vAlign=VAlign::kTop)
 
void String (const JRect &rect, const JString &str, const HAlign hAlign=HAlign::kLeft, const VAlign vAlign=VAlign::kTop)
 
void String (const JFloat angle, const JPoint &topLeft, const JString &str, const JCoordinate width=0, const HAlign hAlign=HAlign::kLeft, const JCoordinate height=0, const VAlign vAlign=VAlign::kTop)
 
void String (const JFloat angle, const JRect &rect, const JString &str, const HAlign hAlign=HAlign::kLeft, const VAlign vAlign=VAlign::kTop)
 
void Point (const JPoint &pt)
 
void Line (const JPoint &pt1, const JPoint &pt2)
 
void LineTo (const JCoordinate x, const JCoordinate y)
 
void LineTo (const JPoint &pt)
 
void DeltaLine (const JCoordinate dx, const JCoordinate dy)
 
void DeltaLine (const JPoint &delta)
 
void Rect (const JPoint &upperLeft, const JCoordinate w, const JCoordinate h)
 
void Rect (const JRect &bounds)
 
void RectInside (const JRect &bounds)
 
void Ellipse (const JPoint &upperLeft, const JCoordinate w, const JCoordinate h)
 
void Ellipse (const JRect &bounds)
 
void Arc (const JPoint &upperLeft, const JCoordinate w, const JCoordinate h, const JFloat startAngle, const JFloat deltaAngle)
 
void Arc (const JRect &bounds, const JFloat startAngle, const JFloat deltaAngle)
 
void Polygon (const JPoint &upperLeft, const JPolygon &poly)
 
void Polygon (const JPolygon &poly)
 
void Image (const JImage &image, const JRect &srcRect, const JCoordinate left, const JCoordinate top)
 
void Image (const JImage &image, const JRect &srcRect, const JPoint &topLeft)
 

Protected Member Functions

void SetDrawable (Drawable d)
 
- Protected Member Functions inherited from JPainter
JSize AlignString (JCoordinate *left, JCoordinate *top, const JString &str, const JCoordinate width, const HAlign hAlign, const JCoordinate height, const VAlign vAlign) const
 

Additional Inherited Members

- Public Types inherited from JPainter
enum struct  HAlign {
  kLeft ,
  kCenter ,
  kRight
}
 
enum struct  VAlign {
  kTop ,
  kCenter ,
  kBottom
}
 

Detailed Description

This class implements the functions required to draw to an X window.

We don't provide functions to manipulate the default clip region because
this is reserved for JXWindow, which constructs us.

Constructor & Destructor Documentation

◆ JXWindowPainter()

JXWindowPainter::JXWindowPainter ( JXGC gc,
Drawable  drawable,
const JRect defaultClipRect,
const Region  defaultClipRegion 
)

defaultClipRegion can be nullptr

◆ ~JXWindowPainter()

JXWindowPainter::~JXWindowPainter ( )
override

Member Function Documentation

◆ Arc() [1/4]

void JXWindowPainter::Arc ( const JCoordinate  x,
const JCoordinate  y,
const JCoordinate  w,
const JCoordinate  h,
const JFloat  startAngle,
const JFloat  deltaAngle 
)
overridevirtual

Implements JPainter.

◆ Arc() [2/4]

virtual void JPainter::Arc ( const JCoordinate  x,
const JCoordinate  y,
const JCoordinate  w,
const JCoordinate  h,
const JFloat  startAngle,
const JFloat  deltaAngle 
)
virtual

Implements JPainter.

◆ Arc() [3/4]

void JPainter::Arc ( const JPoint upperLeft,
const JCoordinate  w,
const JCoordinate  h,
const JFloat  startAngle,
const JFloat  deltaAngle 
)
inline

◆ Arc() [4/4]

void JPainter::Arc ( const JRect bounds,
const JFloat  startAngle,
const JFloat  deltaAngle 
)
inline

◆ Ellipse() [1/4]

void JXWindowPainter::Ellipse ( const JCoordinate  x,
const JCoordinate  y,
const JCoordinate  w,
const JCoordinate  h 
)
overridevirtual

Not inline because it is virtual.

Implements JPainter.

◆ Ellipse() [2/4]

virtual void JPainter::Ellipse ( const JCoordinate  x,
const JCoordinate  y,
const JCoordinate  w,
const JCoordinate  h 
)
virtual

Implements JPainter.

◆ Ellipse() [3/4]

void JPainter::Ellipse ( const JPoint upperLeft,
const JCoordinate  w,
const JCoordinate  h 
)
inline

◆ Ellipse() [4/4]

void JPainter::Ellipse ( const JRect bounds)
inline

◆ GetClipRegion()

Region JXWindowPainter::GetClipRegion ( ) const
inline

◆ GetDefaultClipRegion()

bool JXWindowPainter::GetDefaultClipRegion ( Region *  region) const
inline

◆ GetDisplay()

JXDisplay * JXWindowPainter::GetDisplay ( ) const
inline

◆ GetDrawable()

Drawable JXWindowPainter::GetDrawable ( ) const
inline

◆ GetFontDrawable()

XftDraw * JXWindowPainter::GetFontDrawable ( ) const

◆ GetGC()

JXGC * JXWindowPainter::GetGC ( ) const
inline

◆ GetXColorManager()

JXColorManager * JXWindowPainter::GetXColorManager ( ) const

◆ Image() [1/4]

void JPainter::Image ( const JImage image,
const JRect srcRect,
const JCoordinate  left,
const JCoordinate  top 
)
inline

◆ Image() [2/4]

void JPainter::Image ( const JImage image,
const JRect srcRect,
const JPoint topLeft 
)
inline

◆ Image() [3/4]

void JXWindowPainter::Image ( const JImage image,
const JRect srcRect,
const JRect destRect 
)
overridevirtual

Implements JPainter.

◆ Image() [4/4]

virtual void JPainter::Image ( const JImage image,
const JRect srcRect,
const JRect destRect 
)
virtual

Implements JPainter.

◆ Line() [1/3]

void JXWindowPainter::Line ( const JCoordinate  x1,
const JCoordinate  y1,
const JCoordinate  x2,
const JCoordinate  y2 
)
overridevirtual

Implements JPainter.

◆ Line() [2/3]

virtual void JPainter::Line ( const JCoordinate  x1,
const JCoordinate  y1,
const JCoordinate  x2,
const JCoordinate  y2 
)
virtual

Implements JPainter.

◆ Line() [3/3]

void JPainter::Line ( const JPoint pt1,
const JPoint pt2 
)
inline

◆ Point() [1/3]

void JXWindowPainter::Point ( const JCoordinate  x,
const JCoordinate  y 
)
overridevirtual

Implements JPainter.

◆ Point() [2/3]

virtual void JPainter::Point ( const JCoordinate  x,
const JCoordinate  y 
)
virtual

Implements JPainter.

◆ Point() [3/3]

void JPainter::Point ( const JPoint pt)
inline

◆ Polygon() [1/4]

void JXWindowPainter::Polygon ( const JCoordinate  left,
const JCoordinate  top,
const JPolygon poly 
)
overridevirtual

To give consistent results, we always draw the outline of the polygon first, even when filling.

Implements JPainter.

◆ Polygon() [2/4]

virtual void JPainter::Polygon ( const JCoordinate  left,
const JCoordinate  top,
const JPolygon poly 
)
virtual

Implements JPainter.

◆ Polygon() [3/4]

void JPainter::Polygon ( const JPoint upperLeft,
const JPolygon poly 
)
inline

◆ Polygon() [4/4]

void JPainter::Polygon ( const JPolygon poly)
inline

◆ Rect() [1/4]

void JXWindowPainter::Rect ( const JCoordinate  x,
const JCoordinate  y,
const JCoordinate  w,
const JCoordinate  h 
)
overridevirtual

Implements JPainter.

◆ Rect() [2/4]

virtual void JPainter::Rect ( const JCoordinate  x,
const JCoordinate  y,
const JCoordinate  w,
const JCoordinate  h 
)
virtual

Implements JPainter.

◆ Rect() [3/4]

void JPainter::Rect ( const JPoint upperLeft,
const JCoordinate  w,
const JCoordinate  h 
)
inline

◆ Rect() [4/4]

void JPainter::Rect ( const JRect bounds)
inline

◆ Reset() [1/4]

void JPainter::Reset ( )
virtual

Reset parameters that may have been changed and that we have reasonable defaults for.

The second version accepts a default clip rect.

Reimplemented from JPainter.

◆ Reset() [2/4]

void JXWindowPainter::Reset ( )
overridevirtual

Reset parameters that may have been changed and that we have reasonable defaults for.

The second version accepts a default clip rect and a (non-default) clip region. This is mainly for use by JXContainer::DrawAll().

Reimplemented from JPainter.

◆ Reset() [3/4]

void JPainter::Reset ( const JRect defClipRect)

◆ Reset() [4/4]

void JXWindowPainter::Reset ( const JRect defClipRect,
const Region  clipRegion 
)

◆ ResetClipRegion()

void JXWindowPainter::ResetClipRegion ( )

◆ SetClipRect()

JRect JXWindowPainter::SetClipRect ( const JRect r)
overridevirtual

Reimplemented from JPainter.

◆ SetClipRegion()

void JXWindowPainter::SetClipRegion ( const Region  region)

Must be in global coordinates.

◆ SetDashList()

void JXWindowPainter::SetDashList ( const JArray< JSize > &  dashList,
const JSize  dashOffset = 0 
)
overridevirtual

Reimplemented from JPainter.

◆ SetDefaultClipRegion()

void JXWindowPainter::SetDefaultClipRegion ( const Region  region)

Must be in global coordinates.

◆ SetDrawable()

void JXWindowPainter::SetDrawable ( Drawable  d)
inlineprotected

◆ String() [1/8]

void JPainter::String ( const JCoordinate  left,
const JCoordinate  top,
const JString str,
const JCoordinate  width = 0,
const HAlign  hAlign = HAlign::kLeft,
const JCoordinate  height = 0,
const VAlign  vAlign = VAlign::kTop 
)

◆ String() [2/8]

void JXWindowPainter::String ( const JCoordinate  left,
const JCoordinate  top,
const JString str,
const JIndex  uIndex,
const JCoordinate  width = 0,
const HAlign  hAlign = HAlign::kLeft,
const JCoordinate  height = 0,
const VAlign  vAlign = VAlign::kTop 
)
virtual

Reimplemented in JXImagePainter.

◆ String() [3/8]

void JXWindowPainter::String ( const JFloat  angle,
const JCoordinate  left,
const JCoordinate  top,
const JString str,
const JCoordinate  width = 0,
const HAlign  hAlign = HAlign::kLeft,
const JCoordinate  height = 0,
const VAlign  vAlign = VAlign::kTop 
)
overridevirtual

Implements JPainter.

◆ String() [4/8]

virtual void JPainter::String ( const JFloat  angle,
const JCoordinate  left,
const JCoordinate  top,
const JString str,
const JCoordinate  width = 0,
const HAlign  hAlign = HAlign::kLeft,
const JCoordinate  height = 0,
const VAlign  vAlign = VAlign::kTop 
)
virtual

Implements JPainter.

◆ String() [5/8]

void JPainter::String ( const JFloat  angle,
const JPoint topLeft,
const JString str,
const JCoordinate  width = 0,
const HAlign  hAlign = HAlign::kLeft,
const JCoordinate  height = 0,
const VAlign  vAlign = VAlign::kTop 
)
inline

◆ String() [6/8]

void JPainter::String ( const JFloat  angle,
const JRect rect,
const JString str,
const HAlign  hAlign = HAlign::kLeft,
const VAlign  vAlign = VAlign::kTop 
)

◆ String() [7/8]

void JPainter::String ( const JPoint topLeft,
const JString str,
const JCoordinate  width = 0,
const HAlign  hAlign = HAlign::kLeft,
const JCoordinate  height = 0,
const VAlign  vAlign = VAlign::kTop 
)
inline

◆ String() [8/8]

void JPainter::String ( const JRect rect,
const JString str,
const HAlign  hAlign = HAlign::kLeft,
const VAlign  vAlign = VAlign::kTop 
)
inline

◆ StringNoSubstitutions()

void JXWindowPainter::StringNoSubstitutions ( const JCoordinate  left,
const JCoordinate  top,
const JString str 
)
overridevirtual

Implements JPainter.


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