Пример #1
0
/* Returns the union of two regions. This is all pixels
 * in either of source1 or source2. */
int
clip_GDK_REGIONUNION(ClipMachine * ClipMachineMemory)
{
   C_object *creg = _fetch_co_arg(ClipMachineMemory);

   C_object *creg2 = _fetch_cobject(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2));

   C_object *cdest;

   CHECKCOBJ(creg, GDK_IS_REGION(creg->object));
   CHECKARG2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType);
   CHECKCOBJ(creg2, GDK_IS_REGION(creg->object));

   gdk_region_union(GDK_REGION(creg), GDK_REGION(creg2));

   if (creg)
    {
       cdest = _register_object(ClipMachineMemory, GDK_REGION(creg), GDK_TYPE_REGION, NULL, NULL);
       if (cdest)
	  _clip_mclone(ClipMachineMemory, RETPTR(ClipMachineMemory), &cdest->obj);
    }

   return 0;
 err:
   return 1;
}
void scenemanager_claim_polygon(scenemanager_t* pSceneManager, GdkPoint *pPoints, gint nNumPoints)
{
	// Create a GdkRegion from the given points and union it with the 'taken region'
	GdkRegion* pNewRegion = gdk_region_polygon(pPoints, nNumPoints, GDK_WINDING_RULE);
	gdk_region_union(pSceneManager->pTakenRegion, pNewRegion);
	gdk_region_destroy(pNewRegion);
}
Пример #3
0
static VALUE
rg_union(VALUE self, VALUE other)
{
    if (RVAL2GTYPE(other) == GDK_TYPE_RECTANGLE){
        gdk_region_union_with_rect(_SELF(self),
                                   (GdkRectangle*)RVAL2BOXED(other, GDK_TYPE_RECTANGLE));
    } else {
        gdk_region_union(_SELF(self), _SELF(other));
    }
    return self;
}
Пример #4
0
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;
}
Пример #5
0
Файл: cdgdk.c Проект: LuaDist/cd
static void sCombineRegion(cdCtxCanvas *ctxcanvas, GdkRegion* rgn)
{
  switch(ctxcanvas->canvas->combine_mode)
  {                          
  case CD_UNION:
    gdk_region_union(ctxcanvas->new_rgn, rgn);
    break;
  case CD_INTERSECT:   
    gdk_region_intersect(ctxcanvas->new_rgn, rgn);
    break;
  case CD_DIFFERENCE:           
    gdk_region_subtract(ctxcanvas->new_rgn, rgn);
    break;
  case CD_NOTINTERSECT:
    gdk_region_xor(ctxcanvas->new_rgn, rgn);
    break;
  }

  gdk_region_destroy(rgn);
}
Пример #6
0
bool wxRegion::DoUnionWithRegion( const wxRegion& region )
{
    if (region.m_refData == NULL)
        { }
    else if (m_refData == NULL)
    {
        m_refData = new wxRegionRefData(*M_REGIONDATA_OF(region));
    }
    else
    {
        AllocExclusive();
#ifdef __WXGTK3__
        cairo_region_union(M_REGIONDATA->m_region, M_REGIONDATA_OF(region)->m_region);
#else
        gdk_region_union( M_REGIONDATA->m_region, region.GetRegion() );
#endif
    }

    return true;
}
Пример #7
0
static void _gegueb_event_cb(GdkEvent *event, gpointer user_data)
{
	Gegueb_Window *thiz = user_data;

	switch(event->type)
	{
		case GDK_EXPOSE:
		case GDK_DAMAGE:
		{
			GdkRectangle *rects;
			Eina_Rectangle *r;
			int nrects;
			int i;

			gdk_region_union(thiz->regions, event->expose.region);
			gdk_region_get_rectangles(event->expose.region, &rects, &nrects);
			for (i = 0; i < nrects; i++)
			{
				r = malloc(sizeof(Eina_Rectangle));
				r->x = rects[i].x;
				r->y = rects[i].y;
				r->w = rects[i].width;
				r->h = rects[i].height;
				thiz->damages = eina_list_append(thiz->damages, r);
			}

			if (!event->expose.count)
			{
				_gegueb_window_draw(thiz);
			}
		}
		break;

		case GDK_CONFIGURE:
		gegueb_document_configure(thiz->doc, event->configure.width,
				event->configure.height);
		_gegueb_window_draw(thiz);
		break;

		case GDK_DELETE:
		egueb_dom_window_close_notify(thiz->ewin);
		break;

		case GDK_MOTION_NOTIFY:
		//egueb_dom_input_feed_mouse_move(thiz->input, event->motion.x, event->motion.y);
		break;

		case GDK_BUTTON_PRESS:
		//egueb_dom_input_feed_mouse_down(thiz->input, event->button.button);
		break;

		case GDK_BUTTON_RELEASE:
		//egueb_dom_input_feed_mouse_up(thiz->input, event->button.button);
		break;

		case GDK_KEY_PRESS:
		printf("ui key press\n");
		break;

		case GDK_KEY_RELEASE:
		printf("ui key release\n");
		break;

		case GDK_ENTER_NOTIFY:
		printf("ui enter\n");
		break;

		case GDK_LEAVE_NOTIFY:
		printf("ui leave\n");
		break;

		case GDK_FOCUS_CHANGE:
		printf("ui focus\n");
		break;
	}
}