This commit is contained in:
liujianjun 2024-10-23 14:43:22 +08:00
parent f2b0ba4adf
commit c49d82ef65
6 changed files with 769 additions and 109 deletions

View File

@ -4,16 +4,6 @@ type t_cairo_api = class()
**} **}
///////////////////////////cairo//////////////////////////////// ///////////////////////////cairo////////////////////////////////
procedure cairo_pattern_destroy(p:pointer);
begin
_f_ := static procedure(p:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(p);
end
function cairo_pattern_create_for_surface(f:pointer):pointer;
begin
_f_ := static function(f:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(f);
end
function cairo_create(s:pointer):pointer; function cairo_create(s:pointer):pointer;
begin begin
_f_ := static function(s:pointer):pointer;cdecl;external get_cairo_func(functionname()); _f_ := static function(s:pointer):pointer;cdecl;external get_cairo_func(functionname());
@ -29,16 +19,6 @@ type t_cairo_api = class()
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c); return ##_f_(c);
end end
function cairo_move_to(cr:pointer;x:double;y:double);
begin
_f_ := static function(cr:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,x,y);
end
function cairo_line_to(cr:pointer;x:double;y:double);
begin
_f_ := static function(cr:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,x,y);
end
procedure cairo_set_source(cr:pointer;s:pointer); procedure cairo_set_source(cr:pointer;s:pointer);
begin begin
_f_ := static procedure(cr:pointer;s:pointer);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(cr:pointer;s:pointer);cdecl;external get_cairo_func(functionname());
@ -49,16 +29,6 @@ type t_cairo_api = class()
_f_ := static function(cr:pointer):pointer;cdecl;external get_cairo_func(functionname()); _f_ := static function(cr:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(cr); return ##_f_(cr);
end end
procedure cairo_curve_to(cr:pointer;x1:double;y1:double;x2:double;y2:double;x3:double;y3:double);
begin
_f_ := static procedure(cr:pointer;x1:double;y1:double;x2:double;y2:double;x3:double;y3:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,x1,y1,x2,y2,x3,y3);
end
procedure cairo_rectangle(c:pointer;x:double;y:double;w:double;h:double);
begin
_f_ := static procedure(c:pointer;x:double;y:double;w:double;h:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,x,y,w,h);
end
procedure cairo_set_source_rgba(c:pointer;red:double;green:double;blue:double;alpha:double); procedure cairo_set_source_rgba(c:pointer;red:double;green:double;blue:double;alpha:double);
begin begin
_f_ := static procedure(c:pointer;red:double;green:double;blue:double;alpha:double);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(c:pointer;red:double;green:double;blue:double;alpha:double);cdecl;external get_cairo_func(functionname());
@ -100,26 +70,6 @@ type t_cairo_api = class()
return ##_f_(c); return ##_f_(c);
end end
//procedure draw_round_rectangle(c:pointer;x:double;y:double;w:double;h:double;r:double);cdecl;external 'libgtk-3.so'; //procedure draw_round_rectangle(c:pointer;x:double;y:double;w:double;h:double;r:double);cdecl;external 'libgtk-3.so';
procedure cairo_arc(cr:pointer; xc:double;yc:double;radius:double;angle1:double;angle2:double);
begin
_f_ := static procedure(cr:pointer; xc:double;yc:double;radius:double;angle1:double;angle2:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,xc,yc,radius,angle1,angle2);
end
procedure cairo_translate(cr:pointer;tx:double;ty:double);
begin
_f_ := static procedure(cr:pointer;tx:double;ty:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,tx,ty);
end
procedure cairo_rotate(cr:pointer;angle:double);
begin
_f_ := static procedure(cr:pointer;angle:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,angle);
end
procedure cairo_scale(cr:pointer;sx:double;sy:double);
begin
_f_ := static procedure(cr:pointer;sx:double;sy:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,sx,sy);
end
procedure cairo_set_operator(c:pointer;op:integer); procedure cairo_set_operator(c:pointer;op:integer);
begin begin
_f_ := static procedure(c:pointer;op:integer);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(c:pointer;op:integer);cdecl;external get_cairo_func(functionname());
@ -145,11 +95,6 @@ type t_cairo_api = class()
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c); return ##_f_(c);
end end
procedure cairo_close_path(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_set_fill_rule(c:pointer;rul:integer); procedure cairo_set_fill_rule(c:pointer;rul:integer);
begin begin
_f_ := static procedure(c:pointer;rul:integer);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(c:pointer;rul:integer);cdecl;external get_cairo_func(functionname());
@ -222,11 +167,8 @@ type t_cairo_api = class()
end end
//////////////////////text//////// https://developer.gnome.org/cairo/stable/cairo-cairo-font-options-t.html#cairo-font-options-get-hint-metrics //////////////////////text//////// https://developer.gnome.org/cairo/stable/cairo-cairo-font-options-t.html#cairo-font-options-get-hint-metrics
procedure cairo_show_text(c:pointer;t:string); //slat CAIRO_FONT_SLANT_NORMAL CAIRO_FONT_SLANT_ITALIC CAIRO_FONT_SLANT_OBLIQUE
begin //cairo_font_weight_t CAIRO_FONT_WEIGHT_NORMAL CAIRO_FONT_WEIGHT_BOLD
_f_ := static procedure(c:pointer;t:string);cdecl;external get_cairo_func(functionname());
return ##_f_(c,t);
end
procedure cairo_select_font_face(cr:pointer;n:string;slat:integer;weight:integer); procedure cairo_select_font_face(cr:pointer;n:string;slat:integer;weight:integer);
begin begin
_f_ := static procedure(cr:pointer;n:string;slat:integer;weight:integer);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(cr:pointer;n:string;slat:integer;weight:integer);cdecl;external get_cairo_func(functionname());
@ -237,26 +179,63 @@ type t_cairo_api = class()
_f_ := static procedure(cr:pointer;sz:double);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(cr:pointer;sz:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,sz); return ##_f_(cr,sz);
end end
procedure cairo_text_extents(cr:pointer;s:string;ext:pointer); procedure cairo_set_font_matrix(cr:pointer;mx:pointer);
begin begin
_f_ := static procedure(cr:pointer;s:string;ext:pointer);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(cr:pointer;mx:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,s,ext); return ##_f_(cr,mx);
end end
procedure cairo_font_extents(cr:pointer;ext:pointer); procedure cairo_get_font_matrix(cr:pointer;mx:pointer);
begin begin
_f_ := static procedure(cr:pointer;ext:pointer);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(cr:pointer;mx:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,ext); return ##_f_(cr,mx);
end
procedure cairo_set_font_options(cr:pointer;ft:pointer);
begin
_f_ := static procedure(cr:pointer;ft:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,ft);
end end
procedure cairo_get_font_options(cr:pointer;ft:pointer); procedure cairo_get_font_options(cr:pointer;ft:pointer);
begin begin
_f_ := static procedure(cr:pointer;ft:pointer);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(cr:pointer;ft:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,ft); return ##_f_(cr,ft);
end end
procedure cairo_set_font_options(cr:pointer;ft:pointer); procedure cairo_set_font_face(cr:pointer;ft:pointer);
begin begin
_f_ := static procedure(cr:pointer;ft:pointer);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(cr:pointer;ft:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,ft); return ##_f_(cr,ft);
end end
function cairo_get_font_face(cr:pointer);
begin
_f_ := static function(cr:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(cr);
end
procedure cairo_set_scaled_font(cr:pointer;ft:pointer);
begin
_f_ := static procedure(cr:pointer;ft:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,ft);
end
function cairo_get_scaled_font(cr:pointer);
begin
_f_ := static function(cr:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(cr);
end
procedure cairo_show_text(c:pointer;t:string);
begin
_f_ := static procedure(c:pointer;t:string);cdecl;external get_cairo_func(functionname());
return ##_f_(c,t);
end
//***//////////////////////////////////////////////////
//***////////////////////////////////
procedure cairo_font_extents(cr:pointer;ext:pointer);
begin
_f_ := static procedure(cr:pointer;ext:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,ext);
end
procedure cairo_text_extents(cr:pointer;s:string;ext:pointer);
begin
_f_ := static procedure(cr:pointer;s:string;ext:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,s,ext);
end
function cairo_font_options_create():pointer; function cairo_font_options_create():pointer;
begin begin
_f_ := static function():pointer;cdecl;external get_cairo_func(functionname()); _f_ := static function():pointer;cdecl;external get_cairo_func(functionname());
@ -267,6 +246,11 @@ type t_cairo_api = class()
_f_ := static procedure(op:pointer);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(op:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(op); return ##_f_(op);
end end
function cairo_toy_font_face_get_family(fc:pointer):string;
begin
_f_ := static function(fc:pointer):string;cdecl;external get_cairo_func(functionname());
return ##_f_(fc);
end
////////cairo surface//////2 ////////cairo surface//////2
{ {
@ -278,15 +262,26 @@ type t_cairo_api = class()
CAIRO_FORMAT_RGB16_565 = 4, CAIRO_FORMAT_RGB16_565 = 4,
CAIRO_FORMAT_RGB30 = 5 CAIRO_FORMAT_RGB30 = 5
} }
function cairo_image_surface_create(t:integer;w:integer;h:integer):pointer; ///////////////////////surface////////////////////////////////////////////////////////////////////
function cairo_image_surface_create(fmt:integer;w:integer;h:integer):pointer;
begin begin
_f_ := static function(t:integer;w:integer;h:integer):pointer;cdecl;external get_cairo_func(functionname()); _f_ := static function(fmt:integer;w:integer;h:integer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(t,w,h); return ##_f_(fmt,w,h);
end end
function cairo_image_surface_create_from_png(f:string):pointer; function cairo_image_surface_create_for_data(data:string;fmt:integer;w:integer;h:integer;stride:integer):pointer;
begin begin
_f_ := static function(f:string):pointer;cdecl;external get_cairo_func(functionname()); _f_ := static function(data:string;fmt:integer;w:integer;h:integer;stride:integer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(f); return ##_f_(data,fmt,w,h,stride);
end
function cairo_image_surface_get_data(sf:pointer):string;
begin
_f_ := static function(sf:pointer):string;cdecl;external get_cairo_func(functionname());
return ##_f_(sf);
end
function cairo_image_surface_get_format(sf:pointer):integer;
begin
_f_ := static function(sf:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(sf);
end end
function cairo_image_surface_get_width(sf:pointer):integer; function cairo_image_surface_get_width(sf:pointer):integer;
begin begin
@ -298,6 +293,16 @@ type t_cairo_api = class()
_f_ := static function(sf:pointer):integer;cdecl;external get_cairo_func(functionname()); _f_ := static function(sf:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(sf); return ##_f_(sf);
end end
function cairo_image_surface_get_stride(sf:pointer):integer;
begin
_f_ := static function(sf:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(sf);
end
function cairo_image_surface_create_from_png(f:string):pointer;
begin
_f_ := static function(f:string):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(f);
end
procedure cairo_surface_destroy(sf:pointer); procedure cairo_surface_destroy(sf:pointer);
begin begin
_f_ := static procedure(sf:pointer);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(sf:pointer);cdecl;external get_cairo_func(functionname());
@ -308,22 +313,483 @@ type t_cairo_api = class()
_f_ := static procedure(cr:pointer;sf:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname()); _f_ := static procedure(cr:pointer;sf:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,sf,x,y); return ##_f_(cr,sf,x,y);
end end
procedure cairo_pattern_set_extend(c:pointer;pe:integer); ///////////////path Ïà¹Ø/////////////////////////////////////////////////////////////
function cairo_copy_path(cr:pointer):pointer;
begin begin
_f_ := static procedure(c:pointer;pe:integer);cdecl;external get_cairo_func(functionname()); _f_ := static function(cr:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(c,pe); return ##_f_(cr);
end
function cairo_copy_path_flat(cr:pointer):pointer;
begin
_f_ := static function(cr:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(cr);
end
procedure cairo_path_destroy(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_append_path(c:pointer;ph:integer);
begin
_f_ := static procedure(c:pointer;ph:integer);cdecl;external get_cairo_func(functionname());
return ##_f_(c,ph);
end
function cairo_has_current_point(cr:pointer):integer;
begin
_f_ := static function(cr:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(cr);
end
procedure cairo_get_current_point(c:pointer;var x:integer;var y:integer);
begin
_f_ := static procedure(c:pointer;var x:integer;var y:integer);cdecl;external get_cairo_func(functionname());
return ##_f_(c,x,y);
end
procedure cairo_new_path(c:pointer);//Clears the current path. After this call there will be no path and no current point
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_new_sub_path(c:pointer);//
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_close_path(c:pointer);
begin
_f_ := static procedure(c:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c);
end
procedure cairo_arc(cr:pointer; xc:double;yc:double;radius:double;angle1:double;angle2:double);
begin
_f_ := static procedure(cr:pointer; xc:double;yc:double;radius:double;angle1:double;angle2:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,xc,yc,radius,angle1,angle2);
end
procedure cairo_arc_negative(cr:pointer; xc:double;yc:double;radius:double;angle1:double;angle2:double);
begin
_f_ := static procedure(cr:pointer; xc:double;yc:double;radius:double;angle1:double;angle2:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,xc,yc,radius,angle1,angle2);
end
procedure cairo_curve_to(cr:pointer;x1:double;y1:double;x2:double;y2:double;x3:double;y3:double);
begin
_f_ := static procedure(cr:pointer;x1:double;y1:double;x2:double;y2:double;x3:double;y3:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,x1,y1,x2,y2,x3,y3);
end
function cairo_move_to(cr:pointer;x:double;y:double);
begin
_f_ := static function(cr:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,x,y);
end
function cairo_line_to(cr:pointer;x:double;y:double);
begin
_f_ := static function(cr:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,x,y);
end
procedure cairo_rectangle(c:pointer;x:double;y:double;w:double;h:double);
begin
_f_ := static procedure(c:pointer;x:double;y:double;w:double;h:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,x,y,w,h);
end
procedure cairo_text_path(c:pointer;s:string);
begin
_f_ := static procedure(c:pointer;s:string);cdecl;external get_cairo_func(functionname());
return ##_f_(c,s);
end
procedure cairo_rel_curve_to(cr:pointer;x1:double;y1:double;x2:double;y2:double;x3:double;y3:double);
begin
_f_ := static procedure(cr:pointer;x1:double;y1:double;x2:double;y2:double;x3:double;y3:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,x1,y1,x2,y2,x3,y3);
end
function cairo_rel_line_to(cr:pointer;x:double;y:double);
begin
_f_ := static function(cr:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,x,y);
end
function cairo_rel_move_to(cr:pointer;x:double;y:double);
begin
_f_ := static function(cr:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,x,y);
end
procedure cairo_path_extents(cr:pointer;x1:double;y1:double;x2:double;y2:double);
begin
_f_ := static procedure(cr:pointer;x1:double;y1:double;x2:double;y2:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,x1,y1,x2,y2);
end
(*
typedef struct
cairo_status_t status;
cairo_path_data_t *data;
int num_data;
cairo_path_t;
*)
////////////////pattern////////////////////////////////////////
procedure cairo_pattern_add_color_stop_rgb(c:pointer;offset:double;r:double;g:double;b:double);
begin
_f_ := static procedure(c:pointer;offset:double;r:double;g:double;b:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,offset,r,g,b);
end
procedure cairo_pattern_add_color_stop_rgba(c:pointer;offset:double;r:double;g:double;b:double;a:double);
begin
_f_ := static procedure(c:pointer;offset:double;r:double;g:double;b:double;a:double);cdecl;external get_cairo_func(functionname());
return ##_f_(c,offset,r,g,b,a);
end
function cairo_pattern_get_color_stop_count(pt:pointer;var ct:integer):integer;
begin
_f_ := static function(pt:pointer;var ct:integer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt,ct);
end
function cairo_pattern_get_color_stop_rgba(cpt:pointer;idx:integer;var offset:double;var r:double;var g:double;var b:double;var a:double):integer;
begin
_f_ := static function(cpt:pointer;idx:integer;var offset:double;var r:double;var g:double;var b:double;var a:double):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(cpt,idx,offset,r,g,b,a);
end
function cairo_pattern_create_rgb(r:double;g:double;b:double):pointer;
begin
_f_ := static function(r:double;g:double;b:double):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(r,g,b);
end
function cairo_pattern_create_rgba(r:double;g:double;b:double;a:double):pointer;
begin
_f_ := static function(r:double;g:double;b:double;a:double):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(r,g,b,a);
end
function cairo_pattern_get_rgba(pt:pointer;var r:double;var g:double;var b:double;var a:double):integer;
begin
_f_ := static function(pt:pointer;var r:double;var g:double;var b:double;var a:double):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt,r,g,b,a);
end
function cairo_pattern_create_for_surface(sf:pointer):pointer;
begin
_f_ := static function(sf:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(sf);
end
function cairo_pattern_get_surface(pt:pointer;var sf:pointer):integer;
begin
_f_ := static function(pt:pointer;var sf:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt,sf);
end end
function cairo_pattern_create_linear(x0:double;y0:double;x1:double;y1:double):pointer; function cairo_pattern_create_linear(x0:double;y0:double;x1:double;y1:double):pointer;
begin begin
_f_ := static function(x0:double;y0:double;x1:double;y1:double):pointer;cdecl;external get_cairo_func(functionname()); _f_ := static function(x0:double;y0:double;x1:double;y1:double):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(x0,y0,x1,y1); return ##_f_(x0,y0,x1,y1);
end end
procedure cairo_pattern_add_color_stop_rgb(c:pointer;offset:double;r:double;g:double;b:double;a:double); function cairo_pattern_get_linear_points(pt:pointer;var x0:double;var y0:double;var x1:double;var y1:double):integer;
begin begin
_f_ := static procedure(c:pointer;offset:double;r:double;g:double;b:double;a:double);cdecl;external get_cairo_func(functionname()); _f_ := static function(pt:pointer;var x0:double;var y0:double;var x1:double;var y1:double):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(c,offset,r,g,b,a); return ##_f_(pt,x0,y0,x1,y1);
end end
function api_init(); function cairo_pattern_create_radial(x0:double;y0:double;rd0:double;x1:double;y1:double;rd1:double):pointer;
begin
_f_ := static function(x0:double;y0:double;rd0:double;x1:double;y1:double;rd1:double):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(x0,y0,rd0,x1,y1,rd1);
end
function cairo_pattern_get_radial_circles(pt:pointer;var x0:double;var y0:double;var rd0:double;var x1:double;var y1:double;var rd1:double):integer;
begin
_f_ := static function(pt:pointer;var x0:double;var y0:double;var rd0:double;var x1:double;var y1:double;var rd1:double):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt,x0,y0,rd0,x1,y1,rd1);
end
function cairo_pattern_create_mesh():pointer;
begin
_f_ := static function():pointer;cdecl;external get_cairo_func(functionname());
return ##_f_();
end
procedure cairo_mesh_pattern_begin_patch(pt:pointer);
begin
_f_ := static procedure(pt:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(pt);
end
procedure cairo_mesh_pattern_end_patch(pt:pointer);
begin
_f_ := static procedure(pt:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(pt);
end
procedure cairo_mesh_pattern_move_to(pt:pointer;x:double;y:double);
begin
_f_ := static procedure(pt:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname());
return ##_f_(pt,x,y);
end
procedure cairo_mesh_pattern_line_to(pt:pointer;x:double;y:double);
begin
_f_ := static procedure(pt:pointer;x:double;y:double);cdecl;external get_cairo_func(functionname());
return ##_f_(pt,x,y);
end
procedure cairo_mesh_pattern_curve_to(pt:pointer;x1:double;y1:double;x2:double;y2:double;x3:double;y3:double);
begin
_f_ := static procedure(pt:pointer;x1:double;y1:double;x2:double;y2:double;x3:double;y3:double);cdecl;external get_cairo_func(functionname());
return ##_f_(pt,x1,y1,x2,y2,x3,y3);
end
procedure cairo_mesh_pattern_set_control_point(pt:pointer;point_num:integer;x1:double;y1:double);
begin
_f_ := static procedure(pt:pointer;point_num:integer;x1:double;y1:double);cdecl;external get_cairo_func(functionname());
return ##_f_(pt,point_num,x1,y1);
end
procedure cairo_mesh_pattern_set_corner_color_rgb(pt:pointer;point_num:integer;r:double;g:double;b:double);
begin
_f_ := static procedure(pt:pointer;point_num:integer;r:double;g:double;b:double);cdecl;external get_cairo_func(functionname());
return ##_f_(pt,point_num,r,g,b);
end
procedure cairo_mesh_pattern_set_corner_color_rgba(pt:pointer;point_num:integer;r:double;g:double;b:double;a:double);
begin
_f_ := static procedure(pt:pointer;point_num:integer;r:double;g:double;b:double;a:double);cdecl;external get_cairo_func(functionname());
return ##_f_(pt,point_num,r,g,b,a);
end
function cairo_mesh_pattern_get_patch_count(pt:pointer;var ct:integer):integer;
begin
_f_ := static function(pt:pointer;var ct:integer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt,ct);
end
function cairo_mesh_pattern_get_path(pt:pointer;patch_num:integer):pointer;
begin
_f_ := static function(pt:pointer;patch_num:integer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt,patch_num);
end
function cairo_mesh_pattern_get_control_point(pt:pointer;patch_num:integer;point_num:integer;var x:double;var y:double):integer;
begin
_f_ := static function(pt:pointer;patch_num:integer;point_num:integer;var x:double;var y:double):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt,patch_num,point_num,x,y);
end
function cairo_mesh_pattern_get_corner_color_rgba(pt:pointer;patch_num:integer;point_num:integer;var r:double;var g:double;var b:double;var a:double):integer;
begin
_f_ := static function(pt:pointer;patch_num:integer;point_num:integer;var r:double;var g:double;var b:double;var a:double):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt,patch_num,point_num,r,g,b,a);
end
function cairo_pattern_reference(pt:pointer):pointer;
begin
_f_ := static function(pt:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt);
end
procedure cairo_pattern_destroy(pt:pointer);
begin
_f_ := static procedure(pt:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(pt);
end
function cairo_pattern_status(pt:pointer):integer;
begin
_f_ := static function(pt:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt);
end
procedure cairo_pattern_set_extend(c:pointer;pe:integer);
begin
_f_ := static procedure(c:pointer;pe:integer);cdecl;external get_cairo_func(functionname());
return ##_f_(c,pe);
end
function cairo_pattern_get_extend(pt:pointer):pointer;
begin
_f_ := static function(pt:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt);
end
procedure cairo_pattern_set_filter(c:pointer;pe:pointer);
begin
_f_ := static procedure(c:pointer;pe:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c,pe);
end
function cairo_pattern_get_filter(pt:pointer):pointer;
begin
_f_ := static function(pt:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt);
end
procedure cairo_pattern_set_matrix(c:pointer;mx:pointer);
begin
_f_ := static procedure(c:pointer;mx:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c,mx);
end
procedure cairo_pattern_get_matrix(c:pointer;var mx:pointer);
begin
_f_ := static procedure(c:pointer;var mx:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(c,var mx);
end
function cairo_pattern_get_type(pt:pointer):pointer;
begin
_f_ := static function(pt:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt);
end
function cairo_pattern_get_reference_count(pt:pointer):integer;
begin
_f_ := static function(pt:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt);
end
function cairo_pattern_set_user_data(pt:pointer;key:string;data:pointer;des:pointer):integer;
begin
_f_ := static function(pt:pointer;key:string;data:pointer;des:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt,key,data,des);
end
function cairo_pattern_get_user_data(pt:pointer;key:string):pointer;
begin
_f_ := static function(pt:pointer;key:string):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt,key);
end
procedure cairo_pattern_set_dither(pt:pointer;dither:pointer);
begin
_f_ := static procedure(pt:pointer;dither:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(pt,dither);
end
function cairo_pattern_get_dither(pt:pointer):pointer;
begin
_f_ := static function(pt:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(pt);
end
///////////////////region///////////////////////////
function cairo_region_create():pointer;
begin
_f_ := static function():pointer;cdecl;external get_cairo_func(functionname());
return ##_f_();
end
function cairo_region_create_rectangle(rec:pointer):pointer;
begin
_f_ := static function(rec:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(rec);
end
function cairo_region_create_rectangles(rec:pointer;ct:integer):pointer;
begin
_f_ := static function(rec:pointer;ct:integer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(rec,ct);
end
function cairo_region_copy(rg:pointer):pointer;
begin
_f_ := static function(rg:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg);
end
function cairo_region_reference(rg:pointer):pointer;
begin
_f_ := static function(rg:pointer):pointer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg);
end
procedure cairo_region_destroy(rg:pointer);
begin
_f_ := static procedure(rg:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(rg);
end
function cairo_region_status(rg:pointer):integer;
begin
_f_ := static function(rg:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg);
end
procedure cairo_region_get_extents(rg:pointer;exts:pointer);
begin
_f_ := static procedure(rg:pointer;exts:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(rg,exts);
end
function cairo_region_num_rectangles(rg:pointer):integer;
begin
_f_ := static function(rg:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg);
end
procedure cairo_region_get_rectangle(rg:pointer;nth:integer;rectangle:pointer);
begin
_f_ := static procedure(rg:pointer;nth:integer;rectangle:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(rg,nth,rectangle);
end
function cairo_region_is_empty(rg:pointer):integer;
begin
_f_ := static function(rg:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg);
end
function cairo_region_contains_point(rg:pointer;x:integer;y:integer):integer;
begin
_f_ := static function(rg:pointer;x:integer;y:integer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg,x,y);
end
function cairo_region_equal(rg:pointer;rg2:pointer):integer;
begin
_f_ := static function(rg:pointer;rg2:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg,rg2);
end
function cairo_region_translate(rg:pointer;x:integer;y:integer):integer;
begin
_f_ := static function(rg:pointer;x:integer;y:integer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg,x,y);
end
function cairo_region_intersect(rg:pointer;rg2:pointer):integer;
begin
_f_ := static function(rg:pointer;rg2:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg,rg2);
end
function cairo_region_intersect_rectangle(rg:pointer;rectangle:pointer):integer;
begin
_f_ := static function(rg:pointer;rectangle:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg,rectangle);
end
function cairo_region_subtract(rg:pointer;rg2:pointer):integer;
begin
_f_ := static function(rg:pointer;rg2:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg,rg2);
end
function cairo_region_subtract_rectangle(rg:pointer;rectangle:pointer):integer;
begin
_f_ := static function(rg:pointer;rectangle:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg,rectangle);
end
function cairo_region_union(rg:pointer;rg2:pointer):integer;
begin
_f_ := static function(rg:pointer;rg2:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg,rg2);
end
function cairo_region_union_rectangle(rg:pointer;rectangle:pointer):integer;
begin
_f_ := static function(rg:pointer;rectangle:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg,rectangle);
end
function cairo_region_xor(rg:pointer;rg2:pointer):integer;
begin
_f_ := static function(rg:pointer;rg2:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg,rg2);
end
function cairo_region_xor_rectangle(rg:pointer;rectangle:pointer):integer;
begin
_f_ := static function(rg:pointer;rectangle:pointer):integer;cdecl;external get_cairo_func(functionname());
return ##_f_(rg,rectangle);
end
///////////////Transformations////////////////////////////////
procedure cairo_translate(cr:pointer;tx:double;ty:double);
begin
_f_ := static procedure(cr:pointer;tx:double;ty:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,tx,ty);
end
procedure cairo_scale(cr:pointer;sx:double;sy:double);
begin
_f_ := static procedure(cr:pointer;sx:double;sy:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,sx,sy);
end
procedure cairo_rotate(cr:pointer;angle:double);
begin
_f_ := static procedure(cr:pointer;angle:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,angle);
end
procedure cairo_transform(cr:pointer;mx:pointer);
begin
_f_ := static procedure(cr:pointer;mx:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,mx);
end
procedure cairo_set_matrix(cr:pointer;mx:pointer);
begin
_f_ := static procedure(cr:pointer;mx:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,mx);
end
procedure cairo_identity_matrix(cr:pointer);
begin
_f_ := static procedure(cr:pointer);cdecl;external get_cairo_func(functionname());
return ##_f_(cr);
end
procedure cairo_user_to_device(cr:pointer;var sx:double;var sy:double);
begin
_f_ := static procedure(cr:pointer;var sx:double;var sy:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,sx,sy);
end
procedure cairo_user_to_device_distance(cr:pointer;var sx:double;var sy:double);
begin
_f_ := static procedure(cr:pointer;var sx:double;var sy:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,sx,sy);
end
procedure cairo_device_to_user(cr:pointer;var sx:double;var sy:double);
begin
_f_ := static procedure(cr:pointer;var sx:double;var sy:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,sx,sy);
end
procedure cairo_device_to_user_distance(cr:pointer;var sx:double;var sy:double);
begin
_f_ := static procedure(cr:pointer;var sx:double;var sy:double);cdecl;external get_cairo_func(functionname());
return ##_f_(cr,sx,sy);
end
function api_init(); //³õʼ»¯
begin begin
end end
protected protected

View File

@ -565,12 +565,12 @@ type t_gdiplusflat_api=class() //gdiplus
Function GdipIsVisiblePointI(graphics:pointer;x:integer;y:integer;result:pointer):integer;stdcall;external "gdiplus.dll" name "GdipIsVisiblePointI"; Function GdipIsVisiblePointI(graphics:pointer;x:integer;y:integer;result:pointer):integer;stdcall;external "gdiplus.dll" name "GdipIsVisiblePointI";
Function GdipIsVisibleRect(graphics:pointer;x:single;y:single;width:single;height:single;result:pointer):integer;stdcall;external "gdiplus.dll" name "GdipIsVisibleRect"; Function GdipIsVisibleRect(graphics:pointer;x:single;y:single;width:single;height:single;result:pointer):integer;stdcall;external "gdiplus.dll" name "GdipIsVisibleRect";
Function GdipIsVisibleRectI(graphics:pointer;x:integer;y:integer;width:integer;height:integer;result:pointer):integer;stdcall;external "gdiplus.dll" name "GdipIsVisibleRectI"; Function GdipIsVisibleRectI(graphics:pointer;x:integer;y:integer;width:integer;height:integer;result:pointer):integer;stdcall;external "gdiplus.dll" name "GdipIsVisibleRectI";
Function GdipSaveGraphics(graphics:pointer;state:pointer):integer;stdcall;external "gdiplus.dll" name "GdipSaveGraphics"; Function GdipSaveGraphics(graphics:pointer;var state:integer):integer;stdcall;external "gdiplus.dll" name "GdipSaveGraphics";
Function GdipRestoreGraphics(graphics:pointer;state:pointer):integer;stdcall;external "gdiplus.dll" name "GdipRestoreGraphics"; Function GdipRestoreGraphics(graphics:pointer;state:integer):integer;stdcall;external "gdiplus.dll" name "GdipRestoreGraphics";
Function GdipBeginContainer(graphics:pointer;dstrect:pointer;srcrect:pointer;unit_:integer;state:pointer):integer;stdcall;external "gdiplus.dll" name "GdipBeginContainer"; Function GdipBeginContainer(graphics:pointer;dstrect:pointer;srcrect:pointer;unit_:integer;var state:integer):integer;stdcall;external "gdiplus.dll" name "GdipBeginContainer";
Function GdipBeginContainerI(graphics:pointer;dstrect:pointer;srcrect:pointer;unit_:integer;state:pointer):integer;stdcall;external "gdiplus.dll" name "GdipBeginContainerI"; Function GdipBeginContainerI(graphics:pointer;dstrect:pointer;srcrect:pointer;unit_:integer;var state:integer):integer;stdcall;external "gdiplus.dll" name "GdipBeginContainerI";
Function GdipBeginContainer2(graphics:pointer;state:pointer):integer;stdcall;external "gdiplus.dll" name "GdipBeginContainer2"; Function GdipBeginContainer2(graphics:pointer;var state:integer):integer;stdcall;external "gdiplus.dll" name "GdipBeginContainer2";
Function GdipEndContainer(graphics:pointer;state:pointer):integer;stdcall;external "gdiplus.dll" name "GdipEndContainer"; Function GdipEndContainer(graphics:pointer;state:integer):integer;stdcall;external "gdiplus.dll" name "GdipEndContainer";
Function GdipGetMetafileHeaderFromWmf(hWmf:pointer;wmfPlaceableFileHeader:pointer;header:pointer):integer;stdcall;external "gdiplus.dll" name "GdipGetMetafileHeaderFromWmf"; Function GdipGetMetafileHeaderFromWmf(hWmf:pointer;wmfPlaceableFileHeader:pointer;header:pointer):integer;stdcall;external "gdiplus.dll" name "GdipGetMetafileHeaderFromWmf";
Function GdipGetMetafileHeaderFromEmf(hEmf:pointer;header:pointer):integer;stdcall;external "gdiplus.dll" name "GdipGetMetafileHeaderFromEmf"; Function GdipGetMetafileHeaderFromEmf(hEmf:pointer;header:pointer):integer;stdcall;external "gdiplus.dll" name "GdipGetMetafileHeaderFromEmf";
Function GdipGetMetafileHeaderFromFile(filename:string;header:pointer):integer;stdcall;external "gdiplus.dll" name "GdipGetMetafileHeaderFromFile"; Function GdipGetMetafileHeaderFromFile(filename:string;header:pointer):integer;stdcall;external "gdiplus.dll" name "GdipGetMetafileHeaderFromFile";

View File

@ -1,6 +1,6 @@
type t_img_op_api=class({$ifdef linux}t_cairo_api{$else}t_gdiplusflat_api{$endif}) type t_img_op_api=class({$ifdef linux}t_cairo_api{$else}t_gdiplusflat_api{$endif})
{** {**
@explan(说明)gdi+ 的c接口函数 %% @explan(说明) 封装gdi+处理图片问题 %%
**} **}
function create(); function create();
begin begin

View File

@ -2177,7 +2177,7 @@ type TCustomMemo = class(TCustomScrollControl,TCustomMemoCmd) //
c := 1; c := 1;
end else end else
begin begin
c := Column2StrPos(r,Integer((x-FGutter.Width)/fCharWidth+0.1)+FLeftChar); c := Column2StrPos(r,Integer((x-FGutter.Width)/fCharWidth+0.4)+FLeftChar);
end end
return array(r,max(1,c)); return array(r,max(1,c));
end end

View File

@ -721,15 +721,7 @@ type tmy_map = class() // map
end end
function operator[1](idx,v);//设置数据 function operator[1](idx,v);//设置数据
begin begin
k := get_true_key(idx); set_key_val(idx,v);
fchanged := true;
if ifnil(v) then
begin
reindex(fkvs,array(k:v));
end else
begin
fkvs[k] := array(idx,v);
end
end end
function operator length(); function operator length();
begin begin
@ -797,8 +789,30 @@ type tmy_map = class() // map
nv := flg?true:false; nv := flg?true:false;
if nv<>fignorecase then if nv<>fignorecase then
begin begin
fchanged := true; reset := not fignorecase ;
fignorecase := nv; fignorecase := nv;
if reset then
begin
fchanged := true;
tp := fkvs;
fkvs := array();
for i,v in tp do
begin
set_key_val(v[0],v[1]);
end
end
end
end
function set_key_val(idx,v);
begin
k := get_true_key(idx);
fchanged := true;
if ifnil(v) then
begin
reindex(fkvs,array(k:v));
end else
begin
fkvs[k] := array(idx,v);
end end
end end
function formatkvs2(); //格式化 function formatkvs2(); //格式化

View File

@ -1462,6 +1462,77 @@ type cef_download_handler_t=class(cef_handler_base)
cef_object_get(callback,class(cef_download_item_callback_t))); cef_object_get(callback,class(cef_download_item_callback_t)));
end end
end end
type cef_urlrequest_t=class(cef_contain_base)
private
function structdescribe();override;
begin
return array(
("base","user",getbasestruct()),
("get_request","intptr",0), //(self) _cef_request_t
("get_client","intptr",0), //(self) _cef_urlrequest_client_t
("get_request_status","intptr",0), //(self) int
("get_request_error","intptr",0), //(self) int
("get_response","intptr",0), //(self) cef_response_t
("cancel","intptr",0) //(self) void
);
end
public
function create(ptr)
begin
inherited;
end
end
type cef_urlrequest_client_t=class(cef_contain_base)
private
function structdescribe();override;
begin
return array(
("base","user",getbasestruct()),
("on_request_complete","intptr",0), //(self,cef_urlrequest_t)
("on_upload_progress","intptr",0), //(self,cef_urlrequest_t,int64,int64)
("on_download_progress","intptr",0), //(self,cef_urlrequest_t,int64,int64)
("on_download_data","intptr",0), //(self,cef_urlrequest_t,void*data,size_t)
("get_response","get_auth_credentials",0) //(self,int ,cefstring,int,cefstring,cefsgtring,cef_auth_callback_t) cef_response_t
);
end
public
function create(ptr)
begin
inherited;
end
end
type cef_auth_callback_t=class(cef_contain_base)
private
function structdescribe();override;
begin
return array(
("base","user",getbasestruct()),
("cont","intptr",0),
("cancel","intptr",0)
);
end
public
function create(ptr)
begin
inherited;
end
function cont(uname,pswd);
begin
ptr := _getvalue_(functionname());
f := procedure(sf:pointer;uname:string;pswd:string);cdecl;external ptr;
u := new cef_string_t();
u.str := uname;
p := new cef_string_t();
p.str := pswd;
return ##f(_getptr_(),u._getptr_(),p._getptr_());
end
function cancel();
begin
ptr := _getvalue_(functionname());
f := procedure(sf:pointer);cdecl;external ptr;
return ##f(_getptr_());
end
end
type cef_before_download_callback_t=class(cef_contain_base) type cef_before_download_callback_t=class(cef_contain_base)
private private
function structdescribe();override; function structdescribe();override;
@ -3718,7 +3789,90 @@ type cef_request_t=class(cef_contain_base) //cef_request_capi.h
//property get_transition_type index "get_transition_type" read _getvalue_ write _setvalue_; //property get_transition_type index "get_transition_type" read _getvalue_ write _setvalue_;
//property get_identifier index "get_identifier" read _getvalue_ write _setvalue_; //property get_identifier index "get_identifier" read _getvalue_ write _setvalue_;
end end
type cef_request_context_handler_t=class(cef_contain_base)
private
function structdescribe();override;
begin
return array(
("base","user",getbasestruct()),
("on_request_context_initialized","intptr",0),
("get_resource_request_handler","intptr",0)
);
end
public
function create(ptr)
begin
inherited ;
end
property on_request_context_initialized index "on_request_context_initialized" read getcallpropertybyindex write setcallpropertybyindex;
procedure on_request_context_initialized_i(s:pointer;request_context:pointer );stdcall;
begin
c := getcallback(functionname());
if c then
call(c,self(true),cef_object_get(request_context,class(cef_request_context_t)));
end
property get_resource_request_handler index "get_resource_request_handler" read getcallpropertybyindex write setcallpropertybyindex;
function get_resource_request_handler_i(s:pointer;b:pointer;f:pointer;r:pointer;
is_navigation:integer;is_download:integer;
request_initiator:pointer;var disable_default_handling:integer ):pointer;stdcall;
begin
return 0;
c := getcallback(functionname());
if c then
call(c,self(true),cef_object_get(b,class(cef_browser_t)),cef_object_get(f,class(cef_frame_t)),
cef_object_get(r,class(cef_request_t))
,is_navigation
,is_download
,new cef_string_t(request_initiator)
,disable_default_handling
);
end
end
type cef_resource_request_handler_t=class(cef_contain_base)
private
function structdescribe();override;
begin
return array(
("base","user",getbasestruct()),
("get_cookie_access_filter","intptr",0),
("get_resource_request_handler","intptr",0)
);
end
public
function create(ptr)
begin
inherited ;
end
/// Called on the IO thread before a resource request is loaded. The |browser|
/// and |frame| values represent the source of the request, and may be NULL
/// for requests originating from service workers or cef_urlrequest_t. To
/// optionally filter cookies for the request return a
/// cef_cookie_access_filter_t object. The |request| object cannot not be
/// modified in this callback.
property on_request_context_initialized index "on_request_context_initialized" read getcallpropertybyindex write setcallpropertybyindex;
procedure on_request_context_initialized_i(s:pointer;request_context:pointer );stdcall;
begin
c := getcallback(functionname());
if c then
call(c,self(true),cef_object_get(request_context,class(cef_request_context_t)));
end
property get_resource_request_handler index "get_resource_request_handler" read getcallpropertybyindex write setcallpropertybyindex;
function get_resource_request_handler_i(s:pointer;b:pointer;f:pointer;r:pointer;
is_navigation:integer;is_download:integer;
request_initiator:pointer;var disable_default_handling:integer ):pointer;stdcall;
begin
return 0;
c := getcallback(functionname());
if c then
call(c,self(true),cef_object_get(b,class(cef_browser_t)),cef_object_get(f,class(cef_frame_t)),
cef_object_get(r,class(cef_request_t))
,is_navigation
,is_download
,new cef_string_t(request_initiator)
,disable_default_handling
);
end
end
type cef_request_handler_t=class(cef_handler_base) type cef_request_handler_t=class(cef_handler_base)
private private
function structdescribe();override; function structdescribe();override;
@ -5826,8 +5980,16 @@ type cef_frame_t=class(cef_contain_base)
##f(_getptr_(),visit._getptr_()); ##f(_getptr_(),visit._getptr_());
return 1; return 1;
end end
//property load_request index "load_request" read _getvalue_ write _setvalue_;
//property load_url index "load_url" read _getvalue_ write _setvalue_; //property load_url index "load_url" read _getvalue_ write _setvalue_;
function load_request(r);
begin
if r is class(cef_request_t) then
begin
ptr := _getvalue_("load_request");
f:= procedure(s:pointer;r:pointer);stdcall; external ptr;
//return ##f(_getptr_(),r._getptr_());
end
end
function load_url(url); function load_url(url);
begin begin
if ifstring(url) then if ifstring(url) then
@ -6479,6 +6641,24 @@ begin
g_cef_objects_[sptr] := obj; g_cef_objects_[sptr] := obj;
end end
end end
/// Create a new URL request that is not associated with a specific browser or
/// frame. Use cef_frame_t::CreateURLRequest instead if you want the request to
/// have this association, in which case it may be handled differently (see
/// documentation on that function). A request created with this function may
/// only originate from the browser process, and will behave as follows:
/// - It may be intercepted by the client via CefResourceRequestHandler or
/// CefSchemeHandlerFactory.
/// - POST data may only contain only a single element of type PDE_TYPE_FILE
/// or PDE_TYPE_BYTES.
/// - If |request_context| is empty the global request context will be used.
///
/// The |request| object will be marked as read-only after calling this
/// function.
function cef_urlrequest_create(r,c,rct):pointer;
begin
_f_ := static function(r:pointer;c:pointer;rct:pointer):pointer;stdcall;external getceffunction(functionname());
return ##_f_(r,c,rct);
end
/// ///
/// Returns the task runner for the current thread. Only CEF threads will have /// Returns the task runner for the current thread. Only CEF threads will have
/// task runners. An NULL reference will be returned if this function is called /// task runners. An NULL reference will be returned if this function is called