double linerelsize;
int linegap;
double linerelgap;
+ double linefill;
unsigned char style;
unsigned char wrap_word : 1;
unsigned char wrap_char : 1;
static const char *linegapstr = NULL;
static const char *linerelgapstr = NULL;
static const char *itemstr = NULL;
+static const char *linefillstr = NULL;
static void
_format_command_init(void)
linegapstr = eina_stringshare_add("linegap");
linerelgapstr = eina_stringshare_add("linerelgap");
itemstr = eina_stringshare_add("item");
+ linefillstr = eina_stringshare_add("linefill");
}
static void
eina_stringshare_del(linegapstr);
eina_stringshare_del(linerelgapstr);
eina_stringshare_del(itemstr);
+ eina_stringshare_del(linefillstr);
}
static void
}
}
}
+ else if (cmd == itemstr)
+ {
+ // itemstr == replacement object items in textblock - inline imges
+ // for example
+ }
+ else if (cmd == linefillstr)
+ {
+ char *endptr = NULL;
+ double val = strtod(tmp_param, &endptr);
+ if (endptr)
+ {
+ while (*endptr && _is_white(*endptr))
+ endptr++;
+ if (*endptr == '%')
+ {
+ fmt->linefill = val / 100.0;
+ if (fmt->linefill < 0.0) fmt->linefill = 0.0;
+ }
+ }
+ }
if (new_font)
{
c->maxdescent += ((ascent + descent) * fmt->linerelgap);
if (c->maxascent < ascent) c->maxascent = ascent;
if (c->maxdescent < descent) c->maxdescent = descent;
+ if (fmt->linefill > 0.0)
+ {
+ int dh;
+
+ dh = c->obj->cur.geometry.h - (c->maxascent + c->maxdescent);
+ if (dh < 0) dh = 0;
+ dh = fmt->linefill * dh;
+ c->maxdescent += dh / 2;
+ c->maxascent += dh - (dh / 2);
+ // FIXME: set flag that says "if heigh changes - reformat"
+ }
}
}
#endif
#ifdef SCALECACHE
- evas_common_rgba_image_scalecache_do(op->op.image.src,
+ evas_common_rgba_image_scalecache_do((Image_Entry *)(op->op.image.src),
dst, &(context),
op->op.image.smooth,
op->op.image.sx,
else
{
#ifdef SCALECACHE
- evas_common_rgba_image_scalecache_do(op->op.image.src,
- dst, &(op->context),
- op->op.image.smooth,
- op->op.image.sx,
- op->op.image.sy,
- op->op.image.sw,
- op->op.image.sh,
- op->op.image.dx,
- op->op.image.dy,
- op->op.image.dw,
- op->op.image.dh);
+ evas_common_rgba_image_scalecache_do((Image_Entry *)(op->op.image.src),
+ dst, &(op->context),
+ op->op.image.smooth,
+ op->op.image.sx,
+ op->op.image.sy,
+ op->op.image.sw,
+ op->op.image.sh,
+ op->op.image.dx,
+ op->op.image.dy,
+ op->op.image.dw,
+ op->op.image.dh);
#else
if (op->op.image.smooth)
{
pthread_barrier_t *barrier;
RGBA_Pipe_Thread_Info *info;
#ifdef EVAS_FRAME_QUEUING
- void *fq_info;
+ void *fq_info;
#endif
} Thinfo;
#endif
pthread_cond_t cond_done;
LK(mutex);
- int thread_num;
+ int thread_num;
Thinfo thinfo[TH_MAX];
int frameq_sz;
};
typedef struct _Evas_Frameq_Thread_Info Evas_Frameq_Thread_Info;
-EAPI Evas_Surface *evas_common_frameq_new_surface (void *surface, int x, int y, int w, int h);
+EAPI Evas_Surface *evas_common_frameq_new_surface(void *surface, int x, int y, int w, int h);
EAPI void evas_common_frameq_add_surface(Evas_Surface *surface);
EAPI void evas_common_frameq_set_frame_data(void *data,
void (*fn_output_redraws_next_update_push) (void *data, void *surface, int x, int y, int w, int h),
void (*fn_output_flush) (void *data),
void (*fn_output_set_priv)(void *data, void *cur, void *prev));
-EAPI void evas_common_frameq_prepare_frame();
-EAPI void evas_common_frameq_ready_frame();
-EAPI void evas_common_frameq_init();
-EAPI void evas_common_frameq_flush();
-EAPI void evas_common_frameq_flush_ready ();
+EAPI void evas_common_frameq_prepare_frame(void);
+EAPI void evas_common_frameq_ready_frame(void);
+EAPI void evas_common_frameq_init(void);
+EAPI void evas_common_frameq_flush(void);
+EAPI void evas_common_frameq_flush_ready(void);
#endif
/* image rendering pipelines... new optional system - non-immediate and
EAPI void evas_common_pipe_map4_draw(RGBA_Image *src, RGBA_Image *dst,
RGBA_Draw_Context *dc, RGBA_Map_Point *p,
int smooth, int level);
+EAPI void evas_common_pipe_flush(RGBA_Image *im);
#ifdef EVAS_FRAME_QUEUING
EAPI void evas_common_pipe_op_grad_flush(RGBA_Gradient *gr);
#endif
)
{
- evas_common_rgba_image_scalecache_prepare(im, surface, context, smooth,
+ evas_common_rgba_image_scalecache_prepare((Image_Entry *)(im),
+ surface, context, smooth,
src_x, src_y, src_w, src_h,
dst_x, dst_y, dst_w, dst_h);