コード例 #1
0
static Eina_Bool _ewk_view_tiled_smart_zoom_set(Ewk_View_Smart_Data* smartData, float zoom, Evas_Coord centerX, Evas_Coord centerY)
{
    Evas_Coord x, y, width, height;
    Eina_Bool result;
    result = ewk_tiled_backing_store_zoom_set(smartData->backing_store,
                                         &zoom, centerX, centerY, &x, &y);
    if (!result)
        return result;
    ewk_tiled_backing_store_disabled_update_set(smartData->backing_store, true);
    result = _parent_sc.zoom_set(smartData, zoom, centerX, centerY);
    ewk_frame_scroll_set(smartData->main_frame, -x, -y);
    ewk_frame_scroll_size_get(smartData->main_frame, &width, &height);
    ewk_tiled_backing_store_fix_offsets(smartData->backing_store, width, height);
    ewk_view_scrolls_process(smartData);
    evas_object_smart_calculate(smartData->backing_store);
    evas_object_smart_calculate(smartData->self);
    ewk_tiled_backing_store_disabled_update_set(smartData->backing_store, false);
    return result;
}
コード例 #2
0
static Eina_Bool _ewk_view_tiled_smart_zoom_set(Ewk_View_Smart_Data *sd, float zoom, Evas_Coord cx, Evas_Coord cy)
{
    Evas_Coord x, y, w, h;
    Eina_Bool r;
    r = ewk_tiled_backing_store_zoom_set(sd->backing_store,
                                         &zoom, cx, cy, &x, &y);
    if (!r)
        return r;
    ewk_tiled_backing_store_disabled_update_set(sd->backing_store, EINA_TRUE);
    r = _parent_sc.zoom_set(sd, zoom, cx, cy);
    ewk_frame_scroll_set(sd->main_frame, -x, -y);
    ewk_frame_scroll_size_get(sd->main_frame, &w, &h);
    ewk_tiled_backing_store_fix_offsets(sd->backing_store, w, h);
    ewk_view_scrolls_process(sd);
    evas_object_smart_calculate(sd->backing_store);
    evas_object_smart_calculate(sd->self);
    ewk_tiled_backing_store_disabled_update_set(sd->backing_store, EINA_FALSE);
    return r;
}