Minsky
minsky::WindowInformation Class Reference

#include <windowInformation.h>

Inheritance diagram for minsky::WindowInformation:
Inheritance graph
Collaboration diagram for minsky::WindowInformation:
Collaboration graph

Public Member Functions

void copyBufferToMain ()
 
 ~WindowInformation ()
 
 WindowInformation (uint64_t parentWin, int left, int top, int cWidth, int cHeight, double scalingFactor, bool hasScrollBars, const std::function< void()> &draw)
 
const ecolab::cairo::SurfacePtr & getBufferSurface () const
 
void requestRedraw ()
 
 WindowInformation (const WindowInformation &)=delete
 
void operator= (const WindowInformation &)=delete
 

Public Attributes

const bool hasScrollBars =false
 
ecolab::cairo::SurfacePtr bufferSurface
 
std::function< void()> draw
 
- Public Attributes inherited from minsky::Winfo
int childWidth
 
int childHeight
 
int offsetLeft
 
int offsetTop
 

Friends

class RenderNativeWindow
 

Detailed Description

Definition at line 68 of file windowInformation.h.

Constructor & Destructor Documentation

◆ ~WindowInformation()

minsky::WindowInformation::~WindowInformation ( )

Definition at line 96 of file windowInformation.cc.

97  {
98  bufferSurface.reset();
99 #ifdef USE_WIN32_SURFACE
100  SelectObject(hdcMem, hOld);
101  DeleteObject(hbmMem);
102  DeleteDC(hdcMem);
103  SetWindowLongPtrA(childWindowId, GWLP_USERDATA, 0);
104  PostMessageA(childWindowId,WM_CLOSE,0,0);
105 #elif defined(MAC_OSX_TK)
106 #elif defined(USE_X11)
107  XFreeGC(display, graphicsContext);
108  XDestroyWindow(display, childWindowId);
109  XDestroyWindow(display, bufferWindowId);
110 #endif
111  }
ecolab::cairo::SurfacePtr bufferSurface

◆ WindowInformation() [1/2]

minsky::WindowInformation::WindowInformation ( uint64_t  parentWin,
int  left,
int  top,
int  cWidth,
int  cHeight,
double  scalingFactor,
bool  hasScrollBars,
const std::function< void()> &  draw 
)

◆ WindowInformation() [2/2]

minsky::WindowInformation::WindowInformation ( const WindowInformation )
delete

Member Function Documentation

◆ copyBufferToMain()

void minsky::WindowInformation::copyBufferToMain ( )

Definition at line 118 of file windowInformation.cc.

References minsky::anonymous_namespace{windowInformation.cc}::blit().

119  {
120  cairo_surface_flush(bufferSurface->surface());
121 #ifdef USE_WIN32_SURFACE
122  InvalidateRect(childWindowId,nullptr,true);
123  PostMessageA(childWindowId,WM_PAINT,0,0);
124 #elif defined(USE_X11)
125  try {
126  blit(*this,0,0,childWidth,childHeight);
127  }
128  catch (...) {}
129  return;
130 
131  XEvent event;
132  XExposeEvent& expose=event.xexpose;
133  expose.type=Expose;
134  expose.x=expose.y=0;
135  expose.width=childWidth;
136  expose.height=childHeight;
137  expose.window=childWindowId;
138  expose.display=display;
139  expose.count=0;
140  expose.serial=0;
141  try
142  {
143  XSendEvent(display,childWindowId,false,ExposureMask,&event);
144  }
145  catch (...) {}
146 #endif
147  }
ecolab::cairo::SurfacePtr bufferSurface
void blit(const Winfo &winfo, int x, int y, int width, int height)
Here is the call graph for this function:

◆ getBufferSurface()

const ecolab::cairo::SurfacePtr & minsky::WindowInformation::getBufferSurface ( ) const

Definition at line 113 of file windowInformation.cc.

114  {
115  return bufferSurface;
116  }
ecolab::cairo::SurfacePtr bufferSurface

◆ operator=()

void minsky::WindowInformation::operator= ( const WindowInformation )
delete

◆ requestRedraw()

void minsky::WindowInformation::requestRedraw ( )

Definition at line 303 of file windowInformation.cc.

304  {
305 #ifdef MAC_OSX_TK
306  nsContext.requestRedraw();
307 #endif
308  }

Friends And Related Function Documentation

◆ RenderNativeWindow

friend class RenderNativeWindow
friend

Definition at line 70 of file windowInformation.h.

Member Data Documentation

◆ bufferSurface

ecolab::cairo::SurfacePtr minsky::WindowInformation::bufferSurface

Definition at line 87 of file windowInformation.h.

Referenced by CairoView::drawRect:.

◆ draw

std::function<void()> minsky::WindowInformation::draw

Definition at line 88 of file windowInformation.h.

Referenced by CairoView::drawRect:.

◆ hasScrollBars

const bool minsky::WindowInformation::hasScrollBars =false

Definition at line 86 of file windowInformation.h.

Referenced by CairoView::drawRect:, and minsky::NSContext::NSContext().


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