コード例 #1
0
void _eyelight_viewer_slideshow_slides_load(Eyelight_Viewer* pres)
{
    int i;
    Evas_Object *o_image;
    char buf[EYELIGHT_BUFLEN];

    int nb_slides = pres->slideshow_nb_slides;

    int first_slide = pres->slideshow_current - (nb_slides/2);
    if(!pres->slideshow_image_thumbnails)
        pres->slideshow_image_thumbnails = calloc(nb_slides,sizeof(Evas_Object*));

    for(i=0;i<nb_slides; i++)
    {
        if(first_slide+i<0 || i+first_slide>=pres->size)
        {
            snprintf(buf,EYELIGHT_BUFLEN,"slideshow,slide,hide,%d",i+1);
            edje_object_signal_emit(pres->slideshow_background,
                buf,"eyelight");
        }
        else
        {
            snprintf(buf,EYELIGHT_BUFLEN,"slideshow,slide,show,%d",i+1);
            edje_object_signal_emit(pres->slideshow_background,
                    buf,"eyelight");


            if(!pres->slideshow_image_thumbnails[i])
            {
                const Eyelight_Thumb* thumb = eyelight_viewer_thumbnails_get(pres,first_slide+i);

                o_image = evas_object_image_add(pres->evas);
                pres->slideshow_image_thumbnails[i] = o_image;

		if (thumb->thumb)
		  {
		     evas_object_image_size_set(o_image, thumb->w, thumb->h);
		     evas_object_image_data_set(o_image,thumb->thumb);
		     evas_object_image_filled_set(o_image,1);
		  }
		else
		  {
		     char key[256];
		     int w;
		     int h;

		     snprintf(key, sizeof (key), "eyelight/thumb/%i", thumb->pos);
		     evas_object_image_file_set(o_image, pres->dump_in, key);
		     evas_object_image_size_get(o_image, &w, &h);
		     evas_object_image_fill_set(o_image, 0, 0, w, h);
		  }

		evas_object_show(o_image);
                snprintf(buf,EYELIGHT_BUFLEN,"object.swallow_%d",i+1);
                edje_object_part_swallow(pres->slideshow_background,buf,o_image);
            }
        }
    }
    eyelight_viewer_thumbnails_clean(pres,first_slide,first_slide+nb_slides);
}
コード例 #2
0
ファイル: e_icon.c プロジェクト: playya/Enlightenment
EAPI void
e_icon_size_get(Evas_Object *obj, int *w, int *h)
{
   E_Smart_Data *sd;
   
   sd = evas_object_smart_data_get(obj);
   if (!sd) return;
   return evas_object_image_size_get(sd->obj, w, h);
}
コード例 #3
0
ファイル: e_icon.c プロジェクト: haxworx/Enform
EAPI void *
e_icon_data_get(const Evas_Object *obj, int *w, int *h)
{
   E_Smart_Data *sd;

   if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERR(NULL);
   if (!(sd = evas_object_smart_data_get(obj))) return NULL;
   if (sd->edje) return NULL;
   evas_object_image_size_get(sd->obj, w, h);
   return evas_object_image_data_get(sd->obj, 0);
}
コード例 #4
0
ファイル: e_icon.c プロジェクト: playya/Enlightenment
EAPI void *
e_icon_data_get(Evas_Object *obj, int *w, int *h)
{
   E_Smart_Data *sd;
   
   sd = evas_object_smart_data_get(obj);
   if (!sd) return NULL;
   if (!strcmp(evas_object_type_get(sd->obj), "edje"))
     return NULL;   
   evas_object_image_size_get(sd->obj, w, h);
   return evas_object_image_data_get(sd->obj, 0);
}
コード例 #5
0
ファイル: gl_tex.c プロジェクト: rubric4b/tizen_basicGLES
unsigned int read_texture(Evas_Object *parent, const char *filename) {

    unsigned int gltex_object;
    int w, h;
    int surface_w, surface_h;
    evas_object_geometry_get(parent, NULL, NULL, &surface_w, &surface_h);

    Evas_Object* inline_buffer = elm_win_add(parent,"Img Read",ELM_WIN_INLINED_IMAGE);
    evas_object_move(inline_buffer, 0, 0);
    evas_object_resize(inline_buffer, surface_w, surface_h);
    evas_object_show(inline_buffer);

    Evas* canvas = evas_object_evas_get(inline_buffer);
    Evas_Object* image = evas_object_image_add(canvas);

    char path[200];
    sprintf(path, "%s%s", app_get_resource_path(), filename);
    evas_object_image_file_set(image, path, NULL);
    evas_object_image_size_get(image, &w, &h);
    evas_object_image_fill_set(image, 0, 0, w, h);
    evas_object_image_filled_set(image, EINA_TRUE);
    evas_object_resize(image, w, h);
    evas_object_show(image);

    elm_win_render(inline_buffer);

    GLubyte* pixels;
    pixels = (GLubyte*) evas_object_image_data_get(image, EINA_FALSE);

    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
    glGenTextures(1, &gltex_object);

    glBindTexture(GL_TEXTURE_2D, gltex_object);

    glTexImage2D(GL_TEXTURE_2D, 0, GL_BGRA_EXT, w, h, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, pixels);

    glGenerateMipmap(GL_TEXTURE_2D);

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);

    glBindTexture(GL_TEXTURE_2D, 0);

    evas_object_del(inline_buffer);

    return gltex_object;

}
コード例 #6
0
ファイル: efx_bumpmapping.c プロジェクト: Limsik/e17
EAPI Eina_Bool
efx_bumpmap(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
{
   EFX *e;
   Efx_Bumpmap_Data *ebd;

   EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);

   e = evas_object_data_get(obj, "efx-data");
   if (!e)
     e = efx_new(obj);
   EINA_SAFETY_ON_NULL_RETURN_VAL(e, EINA_FALSE);

   if (!e->bumpmap_data)
     e->bumpmap_data = calloc(1, sizeof(Efx_Bumpmap_Data));
   EINA_SAFETY_ON_NULL_RETURN_VAL(e->bumpmap_data, EINA_FALSE);
   ebd = e->bumpmap_data;
   ebd->e = e;
   ebd->x = x;
   ebd->y = y;
   ebd->z = 30;
   ebd->depth = 0x200;
   ebd->red = 0x200;
   ebd->green = 0x200;
   ebd->blue = 0x200;
   ebd->ambient = 0;
   if (!ebd->img_data)
     {
       unsigned int *m;
       int w;
       int h;

       evas_object_image_size_get(obj, &w, &h);
       m = (unsigned int *)evas_object_image_data_get(obj, 1);
       ebd->img_data = (unsigned int *)malloc(w * h * sizeof(unsigned int));
       if (!ebd->img_data)
         {
           free(ebd);
           return EINA_FALSE;
         }
       printf("memcpy\n");
       memcpy(ebd->img_data, m, (w * h * sizeof(unsigned int)));
       evas_object_image_data_set(obj, m);
     }

   _bumpmap(ebd);

   return EINA_TRUE;
   (void)efx_speed_str;
}
コード例 #7
0
ファイル: e_icon.c プロジェクト: playya/Enlightenment
/* local subsystem globals */
static void
_e_icon_smart_reconfigure(E_Smart_Data *sd)
{
   int iw, ih;
   Evas_Coord x, y, w, h;
   
   if (!strcmp(evas_object_type_get(sd->obj), "edje"))
     {
	w = sd->w;
	h = sd->h;
	x = sd->x;
	y = sd->y;
	evas_object_move(sd->obj, x, y);
	evas_object_resize(sd->obj, w, h);
     }
   else
     {
	ih = 0;
	ih = 0;
	evas_object_image_size_get(sd->obj, &iw, &ih);
	if (iw < 1) iw = 1;
	if (ih < 1) ih = 1;
	
	if (sd->fill_inside)
	  {
	     w = sd->w;
	     h = ((double)ih * w) / (double)iw;
	     if (h > sd->h)
	       {
		  h = sd->h;
		  w = ((double)iw * h) / (double)ih;
	       }
	  }
	else
	  {
	     w = sd->w;
	     h = ((double)ih * w) / (double)iw;
	     if (h < sd->h)
	       {
		  h = sd->h;
		  w = ((double)iw * h) / (double)ih;
	       }	
	  }
	x = sd->x + ((sd->w - w) / 2);
	y = sd->y + ((sd->h - h) / 2);
	evas_object_move(sd->obj, x, y);
	evas_object_image_fill_set(sd->obj, 0, 0, w, h);
	evas_object_resize(sd->obj, w, h);
     }
}
コード例 #8
0
ファイル: ImageDiff.cpp プロジェクト: 3163504123/phantomjs
static void resizeEcoreEvasIfNeeded(Evas_Object* image)
{
    int newWidth, newHeight;
    evas_object_image_size_get(image, &newWidth, &newHeight);

    int currentWidth, currentHeight;
    ecore_evas_screen_geometry_get(gEcoreEvas.get(), 0, 0, &currentWidth, &currentHeight);

    if (newWidth > currentWidth)
        currentWidth = newWidth;
    if (newHeight > currentHeight)
        currentHeight = newHeight;

    ecore_evas_resize(gEcoreEvas.get(), currentWidth, currentHeight);
}
コード例 #9
0
static Eina_Bool _ewk_view_single_smart_scrolls_process(Ewk_View_Smart_Data* smartData)
{
    Evas_Coord imageWidth, imageHeight;
    void* pixels = evas_object_image_data_get(smartData->backing_store, 1);
    evas_object_image_size_get(smartData->backing_store, &imageWidth, &imageHeight);

    const WTF::Vector<WebCore::IntSize>& scrollOffset = ewk_view_scroll_offsets_get(smartData->_priv);
    const WTF::Vector<WebCore::IntRect>& rectsToScroll = ewk_view_scroll_rects_get(smartData->_priv);
    for (size_t i = 0; i < scrollOffset.size(); ++i)
        _ewk_view_single_scroll_process_single(smartData, pixels, imageWidth, imageHeight, scrollOffset[i], rectsToScroll[i]);

    evas_object_image_data_set(smartData->backing_store, pixels);

    return true;
}
コード例 #10
0
ファイル: ewk_paint_context.cpp プロジェクト: dog-god/iptv
Ewk_Paint_Context* ewk_paint_context_from_image_new(Evas_Object* image)
{
    EINA_SAFETY_ON_NULL_RETURN_VAL(image, 0);

    Evas_Coord width, height;
    uint8_t* pixels = static_cast<uint8_t*>(evas_object_image_data_get(image, true));
    evas_object_image_size_get(image, &width, &height);

    Ewk_Paint_Context* context = ewk_paint_context_from_image_data_new(pixels, width, height, EVAS_COLORSPACE_ARGB8888);
    if (context) {
        context->pixels = pixels;
        context->image = image;
    }

    return context;
}
コード例 #11
0
static Eina_Bool _ewk_view_single_smart_scrolls_process(Ewk_View_Smart_Data *sd)
{
    const Ewk_Scroll_Request *sr;
    const Ewk_Scroll_Request *sr_end;
    Evas_Coord ow, oh;
    size_t count;
    void *pixels = evas_object_image_data_get(sd->backing_store, 1);
    evas_object_image_size_get(sd->backing_store, &ow, &oh);

    sr = ewk_view_scroll_requests_get(sd->_priv, &count);
    sr_end = sr + count;
    for (; sr < sr_end; sr++)
        _ewk_view_single_scroll_process_single(sd, pixels, ow, oh, sr);

    return EINA_TRUE;
}
コード例 #12
0
ファイル: main-view.c プロジェクト: bdatanu/Self_Camera
static void _main_view_mousedown_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
{
	int result;
	main_view *main_view_data = data;
	int w, h;
	camera_state_e cur_state = CAMERA_STATE_NONE;

	Evas_Event_Mouse_Down *ev = event_info;
	INF("mousedown x: %d y: %d", ev->canvas.x, ev->canvas.y);

	evas_object_image_size_get(main_view_data->preview_canvas, &w, &h);
	INF("image size w: %d h: %d", w, h);

    if (main_view_data->camera_enabled)
    {
    	result = camera_get_state(main_view_data->camera, &cur_state);
    	if(CAMERA_ERROR_NONE == result)
    	{
            if(cur_state == CAMERA_STATE_PREVIEW)
            {
            	result = camera_start_capture(main_view_data->camera, _main_view_camera_capturing_cb, _main_view_camera_capture_completed_cb, data);
            	if(result == CAMERA_ERROR_NONE)
            	{
            		INF("start camera capture successful");
            		//INF("Can not start camera capture");
            	}
            }
            else if(cur_state == CAMERA_STATE_CAPTURED)
            {
            	INF("can not start capture current state CAMERA_STATE_CAPTURED");
            }
            else if(cur_state == CAMERA_STATE_CAPTURING)
            {
            	INF("can not start capture current state CAMERA_STATE_CAPTURING");
            }
    	}
    	else
    	{
    		ERR("Error getting camera state after click");
    	}
    }
    else
    {
        ERR("Camera hasn't been initialized.");
    }

}
コード例 #13
0
ファイル: e_icon.c プロジェクト: haxworx/Enform
EAPI void
e_icon_size_get(const Evas_Object *obj, int *w, int *h)
{
   E_Smart_Data *sd;

   if (evas_object_smart_smart_get(obj) != _e_smart) SMARTERRNR();
   if (!(sd = evas_object_smart_data_get(obj)))
     {
        if (w) *w = 0;
        if (h) *h = 0;
        return;
     }
   if (sd->edje)
     edje_object_size_min_calc(sd->obj, w, h);
   else
     evas_object_image_size_get(sd->obj, w, h);
}
コード例 #14
0
ファイル: madpdf.c プロジェクト: quickhand/madpdf
int get_top_margin()
{
    int imgw,imgh;
    int hor,ver;
    int firstpix;
    int *imgptr=evas_object_image_data_get(EWL_PDF(pdfwidget)->image,0);
    evas_object_image_size_get(EWL_PDF(pdfwidget)->image,&imgw,&imgh);
    firstpix=imgptr[0];
    for(ver=0;ver<imgh;ver++)
    {
        for(hor=0;hor<imgw;hor++)
        {
        
            if(imgptr[ver*imgw+hor]!=firstpix)
                return ver;
        }
    }
    return 0;
}
コード例 #15
0
void
icon_editor_file_save()
{
  if (!editor || !editor->edf) return;

  icon_editor_exec_set(ewl_entry_text_get(EWL_ENTRY(editor->exec.entry)));

  if (editor->icon_image)
  {
    int w, h;
    Evas_Object *im;

    im = EWL_IMAGE(editor->icon_image)->image;
    evas_object_image_size_get(im, &w, &h);
    icon_editor_image_data_set(evas_object_image_data_get(im, FALSE), w, h);
  }
  /* FIXME create a new file name based on the name */
  /* (delete the old file first?) */
  edje_edit_file_save(editor->edf, editor->file);
}
コード例 #16
0
PassRefPtr<cairo_surface_t> createSurfaceForImage(Evas_Object* image)
{
    ASSERT(image);

    Evas_Coord width;
    Evas_Coord height;
    evas_object_image_size_get(image, &width, &height);
    ASSERT(width > 0 && height > 0);

    unsigned char* buffer = static_cast<unsigned char*>(const_cast<void*>(evas_object_image_data_get(image, true)));
    RefPtr<cairo_surface_t> surface = adoptRef(cairo_image_surface_create_for_data(buffer, CAIRO_FORMAT_ARGB32, width, height, width * 4));

    cairo_status_t status = cairo_surface_status(surface.get());
    if (status != CAIRO_STATUS_SUCCESS) {
        EINA_LOG_ERR("Could not create cairo surface: %s", cairo_status_to_string(status));
        return 0;
    }

    return surface.release();
}
コード例 #17
0
ファイル: edvi_evas_test.c プロジェクト: Limsik/e17
void
_evas_object_bg_set (Evas_Object *o, int r, int g, int b)
{
  unsigned int *m;
  int           w, h;
  int           i, j;

  evas_object_image_size_get (o, &w, &h);
  evas_object_image_fill_set (o, 0, 0, w, h);
  m = (unsigned int *)evas_object_image_data_get (o, 1);
  if (!m)
    return;

  for (j = 0; j < h; j++) {
    for (i = 0; i < w; i++) {
      m[j * w + i] = (255 << 24) | (r << 16) | (g << 8) | b;
    }
  }
  evas_object_image_data_update_add (o, 0, 0, w, h);
  evas_object_resize (o, w, h);
}
コード例 #18
0
ファイル: madpdf.c プロジェクト: quickhand/madpdf
int get_right_margin()
{
    int imgw,imgh;
    int hor,ver;
    int firstpix;
    int *imgptr=evas_object_image_data_get(EWL_PDF(pdfwidget)->image,0);
    evas_object_image_size_get(EWL_PDF(pdfwidget)->image,&imgw,&imgh);
    firstpix=imgptr[imgw-1];
    for(hor=imgw-1;hor>=0;hor--)
    {

        //fprintf(stderr,"firstpix:%d",firstpix);
        for(ver=0;ver<imgh;ver++)
        {
            //fprintf(stderr,"pix:%d",imgptr[ver*imgw+hor]);
            if(imgptr[ver*imgw+hor]!=firstpix)
                return imgw-1-hor;
        }
    }
    return 0;
}
コード例 #19
0
ファイル: madpdf.c プロジェクト: quickhand/madpdf
int get_bottom_margin()
{
    int imgw,imgh;
    int hor,ver;
    int firstpix;
    int curpix;
    int *imgptr=evas_object_image_data_get(EWL_PDF(pdfwidget)->image,0);
    evas_object_image_size_get(EWL_PDF(pdfwidget)->image,&imgw,&imgh);
    firstpix=imgptr[(imgh-1)*imgw];
    for(ver=imgh-1;ver>=0;ver--)
    {
        
        
        for(hor=0;hor<imgw;hor++)
        {
        
            if(imgptr[ver*imgw+hor]!=firstpix)
                return imgh-1-ver;
        }
    }
    return 0;
}
コード例 #20
0
ファイル: emotion_smart.c プロジェクト: wargio/efl
static void
_emotion_image_data_zero(Evas_Object *img)
{
   void *data = NULL;

   data = evas_object_image_data_get(img, 1);
   if (data)
     {
        int w, h, sz = 0;
        Evas_Colorspace cs;

        evas_object_image_size_get(img, &w, &h);
        cs = evas_object_image_colorspace_get(img);
        if (cs == EVAS_COLORSPACE_ARGB8888)
           sz = w * h * 4;
        if ((cs == EVAS_COLORSPACE_YCBCR422P601_PL) ||
            (cs == EVAS_COLORSPACE_YCBCR422P709_PL))
           sz = h * 2 * sizeof(unsigned char *);
        if (sz != 0) memset(data, 0, sz);
     }
   evas_object_image_data_set(img, data);
}
コード例 #21
0
ファイル: walle.c プロジェクト: naguirre/wall-e
static void _walle_wall_populate(Walle *walle, const char *directory, const char *theme)
{
    Evas_Object *o;
    Evas_Coord ow, oh, w, h;
    Eina_List *files = NULL;
    char *file = NULL;
    char filename[4096];

    if (!ecore_file_is_dir(directory) && ecore_file_dir_is_empty(directory))
        return;
    files = ecore_file_ls(directory);
    if (!files)
        return;
    EINA_LIST_FREE(files, file)
    {
    	sprintf(filename, "%s/%s", directory, file);
    	o = evas_object_image_add(walle->evas);
    	evas_object_image_file_set(o, filename, NULL);
    	switch(evas_object_image_load_error_get(o))
    	{
    	case EVAS_LOAD_ERROR_NONE:
    	{
    	    evas_object_event_callback_add(o, EVAS_CALLBACK_RESIZE, _walle_picture_cb_resize, o);
    	    evas_object_image_size_get(o, &w, &h);
    	    oh = 200;
    	    ow = oh * (float)w/(float)h;
    	    evas_object_image_load_size_set(o, ow, oh);
    	    evas_object_image_fill_set(o, 0, 0, ow, oh);
    	    evas_object_resize(o, ow, oh);
    	    evas_object_size_hint_min_set(o, ow, oh);
    	    walle_wall_append(walle->o_wall, o);
    	    walle->pictures = eina_list_append(walle->pictures, o);
    	}
    	break;
    	default:
    	    evas_object_del(o);
    	    break;
    	}
    }
コード例 #22
0
ファイル: ecore_evas_buffer.c プロジェクト: tasn/efl
static Eina_Bool
_ecore_evas_buffer_prepare(Ecore_Evas *ee)
{
   Ecore_Evas_Engine_Buffer_Data *bdata;

   bdata = ee->engine.data;
   if (bdata->image)
     {
        int w, h;

        evas_object_image_size_get(bdata->image, &w, &h);
        if ((w != ee->w) || (h != ee->h))
          _ecore_evas_resize(ee, w, h);
        bdata->pixels = evas_object_image_data_get(bdata->image, 1);
     }
   else if (bdata->resized)
     {
        if (ee->func.fn_resize) ee->func.fn_resize(ee);
        bdata->resized = 0;
     }

   return EINA_TRUE;
}
コード例 #23
0
ファイル: engage_element.c プロジェクト: playya/Enlightenment
Evas_Object    *
engage_element_new(Evas * e, const char *bfile, const char *bgroup,
                   const char *ifile, const char *igroup)
{
  char            buf[PATH_MAX];
  int             w = 48, h = 48;
  Evas_Object    *result = NULL;
  Engage_Element *data = NULL;

  if ((result = engage_element_object_new(e))) {
    if ((data = evas_object_smart_data_get(result))) {
      data->clip = evas_object_rectangle_add(e);
      evas_object_color_set(data->clip, 255, 255, 255, 255);
      evas_object_layer_set(data->clip, 0);
      evas_object_show(data->clip);

      if ((data->behavior = engage_element_behavior_new(e, bfile, bgroup))) {
        evas_object_clip_set(data->behavior, data->clip);
        if ((data->icon = engage_element_icon_new(e, ifile, igroup))) {
          if (!strcmp(evas_object_type_get(data->icon), "image")) {
            evas_object_image_size_get(data->icon, &data->iw, &data->ih);
            evas_object_image_fill_set(data->icon, 0.0, 0.0,
                                       (Evas_Coord) data->iw,
                                       (Evas_Coord) data->ih);

          }
          evas_object_clip_set(data->icon, data->clip);
        } else {
          evas_object_del(result);
          result = NULL;
        }
      }
    }
  }
  return (result);
}
コード例 #24
0
void FileLoader::ReadTexture(const char *filename, TexData &out) const
{

    Evas_Object * parent = SampleLauncher::GetInstance()->GetParent();

    int w, h;
    int surface_w, surface_h;
    evas_object_geometry_get(parent, NULL, NULL, &surface_w, &surface_h);

    Evas_Object * inline_buffer = elm_win_add(parent, "Img Read", ELM_WIN_INLINED_IMAGE);
    evas_object_move(inline_buffer, 0, 0);
    evas_object_resize(inline_buffer, surface_w, surface_h);
    evas_object_show(inline_buffer);

    Evas *canvas = evas_object_evas_get(inline_buffer);
    Evas_Object * image = evas_object_image_add(canvas);

    char path[200];
    sprintf(path, "%s%s", app_get_resource_path(), filename);
    evas_object_image_file_set(image, path, NULL);
    evas_object_image_size_get(image, &w, &h);
    evas_object_image_fill_set(image, 0, 0, w, h);
    evas_object_image_filled_set(image, EINA_TRUE);
    evas_object_resize(image, w, h);
    evas_object_show(image);

    elm_win_render(inline_buffer);

    GLubyte *pixels;
    pixels = static_cast<GLubyte *>(evas_object_image_data_get(image, EINA_FALSE));

    out.SetData(w * h, pixels, w, h, GL_BGRA_EXT);

    evas_object_del(inline_buffer);

}
コード例 #25
0
ファイル: panel.c プロジェクト: playya/Enlightenment
void setup_panel(Evas *_e)
{
	int w;
	Panel_Button *pbutton1, *pbutton2, *pbutton3;

	o_panel = evas_object_image_add(_e);
	evas_object_image_file_set(o_panel, IM "panel.png",
			IM "panel.png");

	evas_object_image_size_get(o_panel, &w, NULL);
	evas_object_move(o_panel, 0, 0);
	evas_object_resize(o_panel, w, win_h);
	evas_object_image_fill_set(o_panel, 0, 0, w, win_h);
	evas_object_layer_set(o_panel, 200);

	evas_object_show(o_panel);

	/* Panel title */
	o_txt_paneltitle = evas_object_text_add(_e);
	evas_object_text_font_set(o_txt_paneltitle, "sinon", 17);
	evas_object_text_text_set(o_txt_paneltitle, "Etox Test");
	evas_object_color_set(o_txt_paneltitle, 255, 255, 255, 255);
	evas_object_layer_set(o_txt_paneltitle, 250);
	evas_object_show(o_txt_paneltitle);

	/* Panel buttons */
	pbutton1 = panel_button(evas, "Basic", basic_tests());
	pbuttons = eina_list_append(pbuttons, pbutton1);

	pbutton2 = panel_button(evas, "Style", style_tests());
	pbuttons = eina_list_append(pbuttons, pbutton2);

	pbutton3 = panel_button(evas, "Callbacks", callback_tests());
	pbuttons = eina_list_append(pbuttons, pbutton3);

}
コード例 #26
0
static Eina_Bool _ewk_view_single_smart_repaints_process(Ewk_View_Smart_Data* smartData)
{
    if (smartData->animated_zoom.zoom.current < 0.00001) {
        Evas_Object* clip = evas_object_clip_get(smartData->backing_store);

        // reset effects of zoom_weak_set()
        evas_object_image_fill_set(smartData->backing_store, 0, 0, smartData->view.w, smartData->view.h);
        evas_object_move(clip, smartData->view.x, smartData->view.y);

        Evas_Coord width = smartData->view.w;
        Evas_Coord height = smartData->view.h;

        Evas_Coord centerWidth, centerHeight;
        ewk_frame_contents_size_get(smartData->main_frame, &centerWidth, &centerHeight);
        if (width > centerWidth)
            width = centerWidth;

        if (height > centerHeight)
            height = centerHeight;

        evas_object_resize(clip, width, height);
    }

    Evas_Coord imageWidth, imageHeight;
    evas_object_image_size_get(smartData->backing_store, &imageWidth, &imageHeight);

    Eina_Tiler* tiler = eina_tiler_new(imageWidth, imageHeight);
    if (!tiler) {
        ERR("could not create tiler %dx%d", imageWidth, imageHeight);
        return false;
    }

    ewk_view_layout_if_needed_recursive(smartData->_priv);

    size_t count;
    const Eina_Rectangle* paintRequest = ewk_view_repaints_pop(smartData->_priv, &count);
    const Eina_Rectangle* paintRequestEnd = paintRequest + count;
    for (; paintRequest < paintRequestEnd; paintRequest++)
        eina_tiler_rect_add(tiler, paintRequest);

    Eina_Iterator* iterator = eina_tiler_iterator_new(tiler);
    if (!iterator) {
        ERR("could not get iterator for tiler");
        eina_tiler_free(tiler);
        return false;
    }

#if USE(TILED_BACKING_STORE)
    WebCore::Frame* mainFrame = EWKPrivate::coreFrame(smartData->main_frame);
    if (mainFrame && mainFrame->tiledBackingStore())
        mainFrame->tiledBackingStore()->coverWithTilesIfNeeded();
#endif

    Ewk_Paint_Context* context = ewk_paint_context_from_image_new(smartData->backing_store);
    ewk_paint_context_save(context);

    Eina_Rectangle* rect;
    EINA_ITERATOR_FOREACH(iterator, rect) {
        ewk_view_paint(smartData->_priv, context, rect);
        evas_object_image_data_update_add(smartData->backing_store, rect->x, rect->y, rect->w, rect->h);
    }
コード例 #27
0
ファイル: session_bar.c プロジェクト: playya/Enlightenment
void
e_login_session_bar_init(E_Login_Session e)
{
   int w, h;
   Evas *evas;
   Estyle *es = NULL;
   double bgx, bgy, bgw, bgh;
   int ix = 0, iy = 0;
   int iw = 0, ih = 0;
   Evas_List *l = NULL;
   Evas_Object *o = NULL;

   Session_Bar *sb = session_bar_new();

   /* Session list background image */
   evas = e->evas;

   o = evas_object_image_add(evas);
   evas_object_image_file_set(o, PACKAGE_DATA_DIR "/data/images/parch.png",
                              NULL);
   iw = ih = 0;
   evas_object_image_fill_set(o, 0.0, 0.0, (double) iw, (double) ih);
   evas_object_resize(o, iw, ih);
   evas_object_layer_set(o, 15);
   evas_object_color_set(o, e->config->greeting.font.r,
                         e->config->greeting.font.g,
                         e->config->greeting.font.b, 100);
   ix = ((((e->geom.w / e->config->screens.w) - w) * 0.5));
   iy = 120;
   evas_object_move(o, ix, iy);
   sb->listbg = o;

   /* Session list heading */
   es = estyle_new(evas, "XSessions", "raised");
   estyle_set_color(es, e->config->greeting.font.r,
                    e->config->greeting.font.g, e->config->greeting.font.b,
                    e->config->greeting.font.a);
   estyle_set_font(es, e->config->greeting.font.name,
                   e->config->greeting.font.size);
   estyle_callback_add(es, EVAS_CALLBACK_MOUSE_UP,
                       session_bar_toggle_visibility, sb);
   estyle_set_layer(es, 25);
   estyle_geometry(es, NULL, NULL, &w, &h);
   ix = ((((e->geom.w / e->config->screens.w) - w) * 0.9));
   iy = ((((e->geom.h / e->config->screens.h) - h) * 1.0));
   estyle_move(es, ix, iy);
   estyle_show(es);
   sb->header = es;

   /* Build session list */
   iy = 125;
   evas_object_geometry_get(sb->listbg, &bgx, &bgy, &bgw, &bgh);
   for (l = e->config->sessions; l && iy <= 330; l = l->next)
   {
      char *session_name = ((E_Login_Session_Type *) evas_list_data(l))->name;

      es = estyle_new(evas, session_name, "raised");
      estyle_set_color(es, e->config->greeting.font.r,
                       e->config->greeting.font.g, e->config->greeting.font.b,
                       e->config->greeting.font.a);
      estyle_set_font(es, e->config->greeting.font.name,
                      e->config->greeting.font.size);
      estyle_set_layer(es, 25);
      estyle_callback_add(es, EVAS_CALLBACK_MOUSE_UP,
                          session_bar_session_clicked_cb, e);
      estyle_callback_add(es, EVAS_CALLBACK_MOUSE_IN,
                          session_bar_session_mouse_in_cb, e);
      estyle_callback_add(es, EVAS_CALLBACK_MOUSE_OUT,
                          session_bar_session_mouse_out_cb, e);
      sb->sessions = evas_list_append(sb->sessions, es);
      estyle_geometry(es, NULL, NULL, &w, &h);
      ix = ((((e->geom.w / e->config->screens.w) - w) * 0.5));
      estyle_move(es, ix, iy);
      iy += h + 5;
      bgh += h + 5;
      if (w > bgw)
      {
         bgw = w + 12;
	 ix = ((((e->geom.w / e->config->screens.w) - bgw) * 0.5));
         evas_object_move(sb->listbg, ix, 120);
      }
      evas_object_image_fill_set(sb->listbg, 0.0, 0.0, (double) bgw,
                                 (double) bgh);
      evas_object_resize(sb->listbg, bgw, bgh);
   }

   /* Bullet */
   o = evas_object_image_add(evas);
   evas_object_image_file_set(o, PACKAGE_DATA_DIR "/data/images/bullet.png",
                              NULL);
   evas_object_image_size_get(o, &iw, &ih);
   evas_object_resize(o, iw, ih);
   evas_object_image_fill_set(o, 0.0, 0.0, (double) iw, (double) ih);
   evas_object_image_alpha_set(o, 1);
   evas_object_color_set(o, e->config->greeting.font.r,
                         e->config->greeting.font.g,
                         e->config->greeting.font.b,
                         e->config->greeting.font.a);
   evas_object_layer_set(o, 15);
   evas_object_move(o, -99999, -99999);
   sb->bullet = o;

   /* Set default session to first in list (for now) */ ;
   e->xsession = evas_list_data(e->config->sessions);

   sb->win_geom.w = e->geom.w;
   sb->win_geom.h = e->geom.h;
}
コード例 #28
0
ファイル: esmart_test.c プロジェクト: playya/Enlightenment
int
main (int argc, char *argv[])
{
  Evas *evas = NULL;
  Ecore_Evas *ee = NULL;
  Ecore_X_Window win = 0;
  Evas_Object *o = NULL;
  Evas_Object *cont = NULL;
  Evas_Object *image = NULL;
  int iw, ih;

  ecore_init ();
  ecore_app_args_set (argc, (const char **) argv);

  ecore_event_handler_add (ECORE_EVENT_SIGNAL_EXIT, exit_cb, NULL);

  if (ecore_evas_init ())
    {
      ee = ecore_evas_software_x11_new (NULL, 0, 0, 0, 300, 120);
      win = ecore_evas_software_x11_window_get(ee);
      ecore_evas_title_set (ee, "Enlightenment Thumbnail Test");
      ecore_evas_callback_delete_request_set (ee, window_del_cb);
      ecore_evas_callback_resize_set (ee, window_resize_cb);
      ecore_evas_callback_move_set (ee, window_move_cb);

      evas = ecore_evas_get (ee);
      o = esmart_trans_x11_new (evas);
      esmart_trans_x11_type_set(o, Esmart_Trans_X11_Type_Background);
      esmart_trans_x11_window_set(o, win);
      evas_object_move (o, 0, 0);
      evas_object_resize (o, 300, 120);
      evas_object_layer_set (o, -5);
      evas_object_name_set (o, "root_background");
      evas_object_show (o);

      o = evas_object_rectangle_add (evas);
      evas_object_move (o, 0, 0);
      evas_object_resize (o, 300, 120);
      evas_object_layer_set (o, -6);
      evas_object_color_set (o, 255, 255, 255, 0);
      evas_object_name_set (o, "background");
      evas_object_show (o);

      o = esmart_draggies_new (ee);
      evas_object_move (o, 0, 0);
      evas_object_resize (o, 300, 120);
      evas_object_layer_set (o, 255);
      evas_object_color_set (o, 255, 255, 255, 0);
      evas_object_name_set (o, "dragger");
      esmart_draggies_button_set (o, 1);
      evas_object_show (o);


      if (argc < 2)
	{
	  image = evas_object_image_add (evas);
	  evas_object_image_file_set (image, PACKAGE_DATA_DIR "/esmart.png",
				      NULL);
	  evas_object_image_size_get (image, &iw, &ih);
	  evas_object_resize (image, iw, ih);
	  evas_object_image_fill_set (image, 0.0, 0.0, (Evas_Coord) iw,
				      (Evas_Coord) ih);
	  evas_object_layer_set (image, 1000);
	  evas_object_pass_events_set (image, 1);
	  evas_object_show (image);
	}


      cont = esmart_container_new (evas);
      evas_object_move (cont, 0, 0);
      evas_object_resize (cont, 300, 120);
      evas_object_layer_set (cont, 0);
      evas_object_name_set (cont, "container");
      evas_object_show (cont);
      esmart_container_padding_set (cont, 10, 10, 10, 10);
      esmart_container_spacing_set (cont, 5);
      esmart_container_fill_policy_set (cont,
				   CONTAINER_FILL_POLICY_FILL_Y |
				   CONTAINER_FILL_POLICY_KEEP_ASPECT);

      evas_object_event_callback_add (o, EVAS_CALLBACK_MOUSE_DOWN, bg_down_cb,
				      cont);
      evas_object_event_callback_add (o, EVAS_CALLBACK_MOUSE_UP, bg_up_cb,
				      cont);


      while (--argc)
	{
	  if ((o = esmart_thumb_new (ecore_evas_get (ee), argv[argc])))
	    {
	      evas_object_layer_set (o, 2);
	      evas_object_show (o);
	      esmart_container_element_append (cont, o);
	    }
	}
      evas_object_resize (cont, 300, 120);
      ecore_evas_show (ee);

      if (ecore_x_composite_query())
        {
           ee = ecore_evas_software_x11_new (NULL, 0, 0, 0, 320, 120);
           ecore_evas_title_set (ee, "Enlightenment Pixmap Test");
           ecore_evas_callback_delete_request_set (ee, window_del_cb);
           ecore_evas_callback_resize_set (ee, window_resize_cb);
           ecore_evas_callback_move_set (ee, window_move_cb);

           evas = ecore_evas_get (ee);
           o = esmart_xpixmap_new (evas, 0, win);
           evas_object_move (o, 0, 0);
           evas_object_resize (o, 320, 120);
           evas_object_layer_set (o, -5);
           evas_object_name_set (o, "xpixmap");
           evas_object_show (o);

           o = evas_object_rectangle_add (evas);
           evas_object_move (o, 0, 0);
           evas_object_resize (o, 150, 30);
           evas_object_layer_set (o, -3);
           evas_object_color_set (o, 50, 50, 50, 50);
           evas_object_name_set (o, "white_transparent_rect");
           evas_object_show (o);

           ecore_evas_show (ee);
        }

      ecore_main_loop_begin ();
    }
  return (0);
}
コード例 #29
0
ファイル: ImageDiff.cpp プロジェクト: 3163504123/phantomjs
static float calculateDifference(Evas_Object* baselineImage, Evas_Object* actualImage, RefPtr<Evas_Object>& differenceImage)
{
    int width, height, baselineWidth, baselineHeight;
    evas_object_image_size_get(actualImage, &width, &height);
    evas_object_image_size_get(baselineImage, &baselineWidth, &baselineHeight);

    if (width != baselineWidth || height != baselineHeight) {
        printf("Error, test and reference image have different sizes.\n");
        return 100; // Completely different.
    }

    OwnArrayPtr<unsigned char> diffBuffer = adoptArrayPtr(new unsigned char[width * height]);
    if (!diffBuffer)
        abortWithErrorMessage("could not create difference buffer");

    const int actualRowStride = evas_object_image_stride_get(actualImage);
    const int baseRowStride = evas_object_image_stride_get(baselineImage);
    unsigned numberOfDifferentPixels = 0;
    float totalDistance = 0;
    float maxDistance = 0;
    unsigned char* actualPixels = static_cast<unsigned char*>(evas_object_image_data_get(actualImage, EINA_FALSE));
    unsigned char* basePixels = static_cast<unsigned char*>(evas_object_image_data_get(baselineImage, EINA_FALSE));
    unsigned char* currentDiffPixel = diffBuffer.get();

    for (int x = 0; x < width; x++) {
        for (int y = 0; y < height; y++) {
            unsigned char* actualPixel = pixelFromImageData(actualPixels, actualRowStride, x, y);
            unsigned char* basePixel = pixelFromImageData(basePixels, baseRowStride, x, y);

            const float distance = calculatePixelDifference(basePixel, actualPixel);
            *currentDiffPixel++ = static_cast<unsigned char>(distance * 255.0f);

            if (distance >= 1.0f / 255.0f) {
                ++numberOfDifferentPixels;
                totalDistance += distance;
                maxDistance = std::max<float>(maxDistance, distance);
            }
        }
    }

    // When using evas_object_image_data_get(), a complementary evas_object_data_set() must be
    // issued to balance the reference count, even if the image hasn't been changed.
    evas_object_image_data_set(baselineImage, basePixels);
    evas_object_image_data_set(actualImage, actualPixels);

    // Compute the difference as a percentage combining both the number of
    // different pixels and their difference amount i.e. the average distance
    // over the entire image
    float difference = 0;
    if (numberOfDifferentPixels)
        difference = 100.0f * totalDistance / (height * width);
    if (difference <= gTolerance)
        difference = 0;
    else {
        difference = roundf(difference * 100.0f) / 100.0f;
        difference = std::max(difference, 0.01f); // round to 2 decimal places

        differenceImage = adoptRef(differenceImageFromDifferenceBuffer(evas_object_evas_get(baselineImage), diffBuffer.get(), width, height));
    }

    return difference;
}
コード例 #30
0
bool EflResources::copyResource( Evas_Object* const _image
                               , std::string const& _path
                               , bool const         _keep_aspect
                               , int                _width
                               , int                _height ) const
{
    bool result( true );
    Evas_Object* object = nullptr;

    if( 0 != preloaded_images__.count( _path ) )
        object = preloaded_images__.find( _path )->second;
    else
    {
        object = preloaded_images__.find( IMG_DIR "/placeholder.png" )->second;
        LOGGER( "Could not find file among preloaded images: " + _path );
        result = false;
    }

    int src_w = 0;
    int src_h = 0;

    evas_object_image_size_get( object
                              , &src_w
                              , &src_h );
    evas_object_image_size_set( _image
                              , src_w
                              , src_h );
    evas_object_image_alpha_set( _image
                               , evas_object_image_alpha_get( object ) );
    evas_object_image_data_set( _image
                              , evas_object_image_data_get( object
                                                          , 0 ) );


    if( _keep_aspect )
    {
        if( 0 == _width || 0 == _height )
        {
            evas_object_geometry_get( _image
                                    , nullptr
                                    , nullptr
                                    , &_width
                                    , &_height );
        }

        int new_w = 0;
        int new_h = 0;
        Utility::calculateImageSize( _width
                                   , _height
                                   , src_w
                                   , src_h
                                   , new_w
                                   , new_h );
        evas_object_resize( _image
                          , new_w
                          , new_h );
    }

    evas_object_image_pixels_dirty_set( _image
                                      , 1 );
    return result;
}