Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
134
Src/Plugins/Library/ml_devices/fillRegion.cpp
Normal file
134
Src/Plugins/Library/ml_devices/fillRegion.cpp
Normal file
|
@ -0,0 +1,134 @@
|
|||
#include "main.h"
|
||||
#include "./fillRegion.h"
|
||||
|
||||
static BOOL
|
||||
FillRegion_TempRegionFromRect(FillRegion *region, const RECT *rect)
|
||||
{
|
||||
if (NULL == region || NULL == rect)
|
||||
return FALSE;
|
||||
|
||||
if (NULL == region->tmp)
|
||||
{
|
||||
region->tmp = CreateRectRgn(rect->left, rect->top, rect->right, rect->bottom);
|
||||
if (NULL == region->tmp)
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (FALSE == SetRectRgn(region->tmp, rect->left, rect->top, rect->right, rect->bottom))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL
|
||||
FillRegion_Init(FillRegion *region, const RECT *rect)
|
||||
{
|
||||
if (NULL == region)
|
||||
return FALSE;
|
||||
|
||||
region->fill = (NULL != rect) ?
|
||||
CreateRectRgn(rect->left, rect->top, rect->right, rect->bottom) :
|
||||
NULL;
|
||||
|
||||
region->tmp = NULL;
|
||||
|
||||
if (NULL == region->fill)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
FillRegion_Uninit(FillRegion *region)
|
||||
{
|
||||
if (NULL != region)
|
||||
{
|
||||
if (NULL != region->fill)
|
||||
{
|
||||
DeleteObject(region->fill);
|
||||
region->fill = NULL;
|
||||
}
|
||||
|
||||
if (NULL != region->tmp)
|
||||
{
|
||||
DeleteObject(region->tmp);
|
||||
region->tmp = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BOOL
|
||||
FillRegion_ExcludeRect(FillRegion *region, const RECT *rect)
|
||||
{
|
||||
if (NULL == region || NULL == rect)
|
||||
return FALSE;
|
||||
|
||||
return (FALSE != FillRegion_TempRegionFromRect(region, rect) &&
|
||||
ERROR != CombineRgn(region->fill, region->fill, region->tmp, RGN_DIFF));
|
||||
}
|
||||
|
||||
BOOL
|
||||
FillRegion_ExcludeRgn(FillRegion *region, HRGN rgn)
|
||||
{
|
||||
if (NULL == region || NULL == rgn)
|
||||
return FALSE;
|
||||
|
||||
return (ERROR != CombineRgn(region->fill, region->fill, rgn, RGN_DIFF));
|
||||
}
|
||||
|
||||
BOOL
|
||||
FillRegion_AppendRect(FillRegion *region, const RECT *rect)
|
||||
{
|
||||
if (NULL == region || NULL == rect)
|
||||
return FALSE;
|
||||
|
||||
return (FALSE != FillRegion_TempRegionFromRect(region, rect) &&
|
||||
ERROR != CombineRgn(region->fill, region->fill, region->tmp, RGN_OR));
|
||||
}
|
||||
|
||||
BOOL
|
||||
FillRegion_AppendRgn(FillRegion *region, HRGN rgn)
|
||||
{
|
||||
if (NULL == region || NULL == rgn)
|
||||
return FALSE;
|
||||
|
||||
return (ERROR != CombineRgn(region->fill, region->fill, rgn, RGN_OR));
|
||||
}
|
||||
|
||||
BOOL
|
||||
FillRegion_BrushFill(FillRegion *region, HDC hdc, HBRUSH brush)
|
||||
{
|
||||
if (NULL == region)
|
||||
return FALSE;
|
||||
|
||||
return FillRgn(hdc, region->fill, brush);
|
||||
}
|
||||
|
||||
BOOL
|
||||
FillRegion_Offset(FillRegion *region, long x, long y)
|
||||
{
|
||||
if (NULL == region)
|
||||
return FALSE;
|
||||
|
||||
return (ERROR != OffsetRgn(region->fill, x, y));
|
||||
}
|
||||
|
||||
BOOL
|
||||
FillRegion_SetRect(FillRegion *region, const RECT *rect)
|
||||
{
|
||||
if (NULL == region || NULL == rect)
|
||||
return FALSE;
|
||||
|
||||
return SetRectRgn(region->fill, rect->left, rect->top, rect->right, rect->bottom);
|
||||
}
|
||||
|
||||
BOOL
|
||||
FillRegion_SetEmpty(FillRegion *region)
|
||||
{
|
||||
if (NULL == region)
|
||||
return FALSE;
|
||||
|
||||
return SetRectRgn(region->fill, 0, 0, 0, 0);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue