本文整理汇总了C++中wxRegion类的典型用法代码示例。如果您正苦于以下问题:C++ wxRegion类的具体用法?C++ wxRegion怎么用?C++ wxRegion使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了wxRegion类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: CreateRects
void wxRIRefData::CreateRects( const wxRegion& region )
{
if (m_rects)
delete [] m_rects;
m_rects = 0;
m_numRects = 0;
if (region.IsEmpty()) return;
#if 0
Region r = (Region) region.GetX11Region();
if (r)
{
m_numRects = r->numRects;
if (m_numRects)
{
m_rects = new wxRect[m_numRects];
for (size_t i=0; i < m_numRects; ++i)
{
_XBox &xr = r->rects[i];
wxRect &wr = m_rects[i];
wr.x = xr.x1;
wr.y = xr.y1;
wr.width = xr.x2-xr.x1;
wr.height = xr.y2-xr.y1;
}
}
}
#endif
}
开发者ID:BackupTheBerlios,项目名称:wxbeos-svn,代码行数:31,代码来源:region.cpp
示例2: wxCHECK_MSG
bool wxTopLevelWindowMac::SetShape(const wxRegion& region)
{
wxCHECK_MSG( HasFlag(wxFRAME_SHAPED), FALSE,
_T("Shaped windows must be created with the wxFRAME_SHAPED style."));
#if TARGET_CARBON
// The empty region signifies that the shape should be removed from the
// window.
if ( region.IsEmpty() )
{
wxSize sz = GetClientSize();
wxRegion rgn(0, 0, sz.x, sz.y);
return SetShape(rgn);
}
// Make a copy of the region
RgnHandle shapeRegion = NewRgn();
CopyRgn( (RgnHandle)region.GetWXHRGN(), shapeRegion );
// Dispose of any shape region we may already have
RgnHandle oldRgn = (RgnHandle)GetWRefCon( (WindowRef)MacGetWindowRef() );
if ( oldRgn )
DisposeRgn(oldRgn);
// Save the region so we can use it later
SetWRefCon((WindowRef)MacGetWindowRef(), (SInt32)shapeRegion);
// Tell the window manager that the window has changed shape
ReshapeCustomWindow((WindowRef)MacGetWindowRef());
return TRUE;
#else
return FALSE;
#endif
}
开发者ID:Duion,项目名称:Torsion,代码行数:34,代码来源:toplevel.cpp
示例3: ocpn_mac_region_compare
// workaround for 2.9 cocoa where the equality operator for region is currently (2011-03-09) not implemented
bool ocpn_mac_region_compare(const wxRegion& r1, const wxRegion& r2)
{
wxCoord x1,x2,y1,y2,w1,w2,h1,h2;
r1.GetBox(x1,y1,w1,h1);
r2.GetBox(x2,y2,w2,h2);
if(x1 == x2 && y1 == y2 && w1 == w2 && h1 && h2) return true;
return false;
}
开发者ID:dongmingdmdm,项目名称:OpenCPN,代码行数:9,代码来源:macutils_cocoa.cpp
示例4: DrawWindowInfo
void WxGraphs::DrawWindowInfo(wxDC * dc, const wxRegion & repainted_region)
{
if (repainted_region.IsEmpty())
return;
int info_left_marg = m_screen_margins.leftmargin + 8;
int param_name_shift = 5;
if (m_draws.size() < 1)
return;
int w, h;
dc->GetSize(&w, &h);
DrawInfo *info = m_draws[0]->GetDrawInfo();
wxString name = info->GetSetName().c_str();
int namew, nameh;
dc->GetTextExtent(name, &namew, &nameh);
if (repainted_region.Contains(info_left_marg, m_screen_margins.infotopmargin, w - m_screen_margins.infotopmargin, nameh) == wxOutRegion)
return;
dc->SetTextForeground(*wxWHITE);
dc->DrawText(name, info_left_marg, m_screen_margins.infotopmargin);
wxColor color = dc->GetTextForeground();
int xpos = info_left_marg + namew + param_name_shift;
for (int i = 0; i < (int)m_draws.size(); ++i) {
if (!m_draws[i]->GetEnable())
continue;
DrawInfo *info = m_draws[i]->GetDrawInfo();
dc->SetTextForeground(info->GetDrawColor());
name = info->GetShortName().c_str();
dc->GetTextExtent(name, &namew, &nameh);
dc->DrawText(name, xpos, m_screen_margins.infotopmargin);
xpos += namew + param_name_shift;
}
dc->SetTextForeground(color);
}
开发者ID:marta09,项目名称:szarp,代码行数:51,代码来源:wxgraphs.cpp
示例5: CreateRects
void wxRegionIterator::CreateRects( const wxRegion& region )
{
wxDELETEA(m_rects);
m_numRects = 0;
#ifdef __WXGTK3__
cairo_region_t* cairoRegion = region.GetRegion();
if (cairoRegion == NULL)
return;
m_numRects = cairo_region_num_rectangles(cairoRegion);
if (m_numRects)
{
m_rects = new wxRect[m_numRects];
for (int i = 0; i < m_numRects; i++)
{
GdkRectangle gr;
cairo_region_get_rectangle(cairoRegion, i, &gr);
wxRect &wr = m_rects[i];
wr.x = gr.x;
wr.y = gr.y;
wr.width = gr.width;
wr.height = gr.height;
}
}
#else
GdkRegion *gdkregion = region.GetRegion();
if (!gdkregion)
return;
GdkRectangle* gdkrects;
gdk_region_get_rectangles(gdkregion, &gdkrects, &m_numRects);
if (m_numRects)
{
m_rects = new wxRect[m_numRects];
for (int i = 0; i < m_numRects; ++i)
{
GdkRectangle &gr = gdkrects[i];
wxRect &wr = m_rects[i];
wr.x = gr.x;
wr.y = gr.y;
wr.width = gr.width;
wr.height = gr.height;
}
}
g_free( gdkrects );
#endif
}
开发者ID:0ryuO,项目名称:dolphin-avsync,代码行数:49,代码来源:region.cpp
示例6: CreateRects
void wxRIRefData::CreateRects( const wxRegion& region )
{
if (m_rects)
delete [] m_rects;
m_rects = 0;
m_numRects = 0;
if (region.IsEmpty()) return;
Region r = (Region) region.GetX11Region();
if (r)
{
#if wxUSE_NANOX
GR_RECT rect;
GrGetRegionBox(r, & rect);
m_numRects = 1;
m_rects = new wxRect[1];
m_rects[0].x = rect.x;
m_rects[0].y = rect.y;
m_rects[0].width = rect.width;
m_rects[0].height = rect.height;
#else
m_numRects = r->numRects;
if (m_numRects)
{
m_rects = new wxRect[m_numRects];
#if defined(__INTEL_COMPILER) && 1 /* VDM auto patch */
# pragma ivdep
# pragma swp
# pragma unroll
# pragma prefetch
# if 0
# pragma simd noassert
# endif
#endif /* VDM auto patch */
for (size_t i=0; i < m_numRects; ++i)
{
_XBox &xr = r->rects[i];
wxRect &wr = m_rects[i];
wr.x = xr.x1;
wr.y = xr.y1;
wr.width = xr.x2-xr.x1;
wr.height = xr.y2-xr.y1;
}
}
#endif
}
}
开发者ID:vdm113,项目名称:wxWidgets-ICC-patch,代码行数:49,代码来源:region.cpp
示例7: DoXor
bool wxRegion::DoXor( const wxRegion& region )
{
wxCHECK_MSG( region.Ok(), false, _T("invalid region") );
if (!m_refData)
{
return false;
}
AllocExclusive();
gdk_region_xor( M_REGIONDATA->m_region, region.GetRegion() );
return true;
}
开发者ID:EdgarTx,项目名称:wx,代码行数:15,代码来源:region.cpp
示例8: CreateRects
void wxRIRefData::CreateRects( const wxRegion& region )
{
delete [] m_rects;
Init();
GdkRegion *gdkregion = region.GetRegion();
if (!gdkregion)
return;
Region r = ((GdkRegionPrivate *)gdkregion)->xregion;
if (r)
{
m_numRects = r->numRects;
if (m_numRects)
{
m_rects = new wxRect[m_numRects];
for (size_t i=0; i < m_numRects; ++i)
{
_XBox &xr = r->rects[i];
wxRect &wr = m_rects[i];
wr.x = xr.x1;
wr.y = xr.y1;
wr.width = xr.x2-xr.x1;
wr.height = xr.y2-xr.y1;
}
}
}
}
开发者ID:EdgarTx,项目名称:wx,代码行数:29,代码来源:region.cpp
示例9: do_shape_combine_region
// helper
static bool do_shape_combine_region(GdkWindow* window, const wxRegion& region)
{
if (window)
{
if (region.IsEmpty())
{
gdk_window_shape_combine_mask(window, NULL, 0, 0);
}
else
{
gdk_window_shape_combine_region(window, region.GetRegion(), 0, 0);
return true;
}
}
return false;
}
开发者ID:EdgarTx,项目名称:wx,代码行数:17,代码来源:toplevel.cpp
示例10: wxCHECK_RET
void wxGCDCImpl::DoSetDeviceClippingRegion( const wxRegion ®ion )
{
// region is in device coordinates
wxCHECK_RET( IsOk(), wxT("wxGCDC(cg)::DoSetDeviceClippingRegion - invalid DC") );
if (region.Empty())
{
//DestroyClippingRegion();
return;
}
wxRegion logRegion( region );
wxCoord x, y, w, h;
logRegion.Offset( DeviceToLogicalX(0), DeviceToLogicalY(0) );
logRegion.GetBox( x, y, w, h );
m_graphicContext->Clip( logRegion );
if ( m_clipping )
{
m_clipX1 = wxMax( m_clipX1, x );
m_clipY1 = wxMax( m_clipY1, y );
m_clipX2 = wxMin( m_clipX2, (x + w) );
m_clipY2 = wxMin( m_clipY2, (y + h) );
}
else
{
m_clipping = true;
m_clipX1 = x;
m_clipY1 = y;
m_clipX2 = x + w;
m_clipY2 = y + h;
}
}
开发者ID:renemilk,项目名称:wxWidgets,代码行数:35,代码来源:dcgraph.cpp
示例11: DoSubtract
bool wxRegion::DoSubtract( const wxRegion& region )
{
wxCHECK_MSG( region.Ok(), false, _T("invalid region") );
if (!m_refData)
{
// subtracting from an invalid region doesn't make sense
return false;
}
AllocExclusive();
gdk_region_subtract( M_REGIONDATA->m_region, region.GetRegion() );
return true;
}
开发者ID:EdgarTx,项目名称:wx,代码行数:16,代码来源:region.cpp
示例12: IsEqual
bool wxRegionBase::IsEqual(const wxRegion& region) const
{
if ( m_refData == region.GetRefData() )
{
// regions are identical, hence equal
return true;
}
if ( !m_refData || !region.GetRefData() )
{
// one, but not both, of the regions is invalid
return false;
}
return DoIsEqual(region);
}
开发者ID:erwincoumans,项目名称:wxWidgets,代码行数:16,代码来源:rgncmn.cpp
示例13: wxRegionRefData
bool wxRegion::Intersect( const wxRegion& region )
{
#if 0
if (region.IsNull())
return FALSE;
if (!m_refData)
{
m_refData = new wxRegionRefData();
M_REGIONDATA->m_region = XCreateRegion();
// leave here
return TRUE;
}
else
{
AllocExclusive();
}
XIntersectRegion( M_REGIONDATA->m_region,
M_REGIONDATA_OF(region)->m_region,
M_REGIONDATA->m_region );
#endif
return TRUE;
}
开发者ID:BackupTheBerlios,项目名称:wxbeos-svn,代码行数:25,代码来源:region.cpp
示例14: wxCHECK_MSG
bool wxRegion::DoUnionWithRegion( const wxRegion& region )
{
wxCHECK_MSG( region.Ok(), false, _T("invalid region") );
if (!m_refData)
{
m_refData = new wxRegionRefData();
M_REGIONDATA->m_region = gdk_region_new();
}
else
{
AllocExclusive();
}
gdk_region_union( M_REGIONDATA->m_region, region.GetRegion() );
return true;
}
开发者ID:EdgarTx,项目名称:wx,代码行数:18,代码来源:region.cpp
示例15: DoIntersect
bool wxRegion::DoIntersect( const wxRegion& region )
{
wxCHECK_MSG( region.IsOk(), false, wxT("invalid region") );
if (!m_refData)
{
// intersecting with invalid region doesn't make sense
return FALSE;
}
AllocExclusive();
GdkRegion *reg = gdk_regions_intersect( M_REGIONDATA->m_region, region.GetRegion() );
gdk_region_destroy( M_REGIONDATA->m_region );
M_REGIONDATA->m_region = reg;
return TRUE;
}
开发者ID:chromylei,项目名称:third_party,代码行数:18,代码来源:region.cpp
示例16: DoSetRegionShape
bool wxNonOwnedWindow::DoSetRegionShape(const wxRegion& region)
{
QPixmap pixmap(GetHandle()->size());
QPainter painter(&pixmap);
painter.fillRect(pixmap.rect(), Qt::white);
painter.setClipRegion(region.GetHandle());
painter.fillRect(pixmap.rect(), Qt::black);
GetHandle()->setMask(pixmap.createMaskFromColor(Qt::white));
return true;
}
开发者ID:lanurmi,项目名称:wxWidgets,代码行数:10,代码来源:nonownedwnd.cpp
示例17: do_shape_combine_region
// helper
static bool do_shape_combine_region(GdkWindow* window, const wxRegion& region)
{
if (window)
{
if (region.IsEmpty())
{
gdk_window_shape_combine_mask(window, NULL, 0, 0);
}
else
{
wxBitmap bmp = region.ConvertToBitmap();
bmp.SetMask(new wxMask(bmp, *wxBLACK));
GdkBitmap* mask = bmp.GetMask()->GetBitmap();
gdk_window_shape_combine_mask(window, mask, 0, 0);
return true;
}
}
return false;
}
开发者ID:CobaltBlues,项目名称:wxWidgets,代码行数:20,代码来源:toplevel.cpp
示例18: wxRegionRefData
bool wxRegion::DoUnionWithRegion( const wxRegion& region )
{
if (region.IsNull())
return FALSE;
if (!m_refData)
{
m_refData = new wxRegionRefData();
M_REGIONDATA->m_region = gdk_region_new();
}
else
{
AllocExclusive();
}
GdkRegion *reg = gdk_regions_union( M_REGIONDATA->m_region, region.GetRegion() );
gdk_region_destroy( M_REGIONDATA->m_region );
M_REGIONDATA->m_region = reg;
return TRUE;
}
开发者ID:EdgarTx,项目名称:wx,代码行数:21,代码来源:region.cpp
示例19: CreateRects
void wxRIRefData::CreateRects( const wxRegion& region )
{
if (m_rects)
delete [] m_rects;
m_rects = 0;
m_numRects = 0;
if (region.IsEmpty()) return;
Region r = (Region) region.GetX11Region();
if (r)
{
#if wxUSE_NANOX
GR_RECT rect;
GrGetRegionBox(r, & rect);
m_numRects = 1;
m_rects = new wxRect[1];
m_rects[0].x = rect.x;
m_rects[0].y = rect.y;
m_rects[0].width = rect.width;
m_rects[0].height = rect.height;
#else
m_numRects = r->numRects;
if (m_numRects)
{
m_rects = new wxRect[m_numRects];
for (size_t i=0; i < m_numRects; ++i)
{
_XBox &xr = r->rects[i];
wxRect &wr = m_rects[i];
wr.x = xr.x1;
wr.y = xr.y1;
wr.width = xr.x2-xr.x1;
wr.height = xr.y2-xr.y1;
}
}
#endif
}
}
开发者ID:CyberIntelMafia,项目名称:clamav-devel,代码行数:40,代码来源:region.cpp
示例20: DoSetDeviceClippingRegion
void wxQtDCImpl::DoSetDeviceClippingRegion(const wxRegion& region)
{
if ( region.IsEmpty() )
{
DestroyClippingRegion();
}
else
{
QRegion qregion = region.GetHandle();
// Save current origin / scale (logical coordinates)
QTransform qtrans = m_qtPainter->worldTransform();
// Reset transofrmation to match device coordinates
m_qtPainter->setWorldTransform( QTransform() );
wxLogDebug(wxT("wxQtDCImpl::DoSetDeviceClippingRegion rect %d %d %d %d"),
qregion.boundingRect().x(), qregion.boundingRect().y(),
qregion.boundingRect().width(), qregion.boundingRect().height());
// Set QPainter clipping (intersection if not the first one)
m_qtPainter->setClipRegion( qregion,
m_clipping ? Qt::IntersectClip : Qt::ReplaceClip );
// Restore the transformation (translation / scale):
m_qtPainter->setWorldTransform( qtrans );
// Set internal state for getters
/* Note: Qt states that QPainter::clipRegion() may be slow, so we
* keep the region manually, which should be faster */
if ( m_clipping )
m_clippingRegion->Union( region );
else
m_clippingRegion->Intersect( region );
wxRect clipRect = m_clippingRegion->GetBox();
m_clipX1 = clipRect.GetLeft();
m_clipX2 = clipRect.GetRight();
m_clipY1 = clipRect.GetTop();
m_clipY2 = clipRect.GetBottom();
m_clipping = true;
}
}
开发者ID:EEmmanuel7,项目名称:wxWidgets,代码行数:40,代码来源:dc.cpp
注:本文中的wxRegion类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论