diff --git a/designer/utslcodeeditor.tsf b/designer/utslcodeeditor.tsf index b41beae..993e5f2 100644 --- a/designer/utslcodeeditor.tsf +++ b/designer/utslcodeeditor.tsf @@ -5036,6 +5036,7 @@ type TEditerEchoWnd=class(TSynMemoNorm) // function Create(AOwner);override; begin inherited; + autogutterwidth := true; FDoLockTime := 0; FIsLocked := false; height := 250; diff --git a/funcext/tvclib/tgdiplusflat.tsf b/funcext/tvclib/tgdiplusflat.tsf index d16f360..04cdccb 100644 --- a/funcext/tvclib/tgdiplusflat.tsf +++ b/funcext/tvclib/tgdiplusflat.tsf @@ -20,6 +20,97 @@ type TGdiplusflat=class //---------------------------------------------------------------------------- {$ifdef linux} //20210827 需要添加gdi功能 + static fsgtkgdi; + class function getgtkgdi(); + begin + if not fsgtkgdi then fsgtkgdi := new tgtkgdi(); + return fsgtkgdi; + end + type tgtkgdi = class + { + class procedure cairo_pattern_destroy(p:pointer);cdecl;external 'libgtk-3.so'; + class function cairo_image_surface_create_from_png(f:string):pointer;cdecl;external 'libgtk-3.so'; + class function cairo_pattern_create_for_surface(f:pointer):pointer;cdecl;external 'libgtk-3.so'; + class function cairo_image_surface_get_width(sf:pointer):integer;cdecl;external 'libgtk-3.so'; + class function cairo_image_surface_get_height(sf:pointer):integer;cdecl;external 'libgtk-3.so'; + class function gdk_pixbuf_new_from_file(f:string;er:pointer):pointer;cdecl;external 'libgtk-3.so'; + class function gdk_pixbuf_save(pixbuf:pointer;p:string;tp:string;gerr:string;p1:string; p2:string;p3:string;p4:string;p5:string):integer;cdecl;external 'libgtk-3.so'; + class procedure gdk_pixbuf_unref(pixbuf);cdecl;external 'libgtk-3.so'; + class procedure gdk_pixbuf_ref(pixbuf);cdecl;external 'libgtk-3.so'; + class function g_object_ref(g:pointer):pointer;cdecl;external 'libgtk-3.so'; + class procedure g_object_unref(g:pointer);cdecl;external 'libgtk-3.so'; + } + procedure cairo_pattern_destroy(p:pointer); + begin + _f_ := static procedure(p:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p); + end + function cairo_image_surface_create_from_png(f:string):pointer; + begin + _f_ := static function(f:string):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(f); + end + function cairo_pattern_create_for_surface(f:pointer):pointer; + begin + _f_ := static function(f:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(f); + end + function cairo_image_surface_get_width(sf:pointer):integer; + begin + _f_ := static function(sf:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(sf); + end + function cairo_image_surface_get_height(sf:pointer):integer; + begin + _f_ := static function(sf:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(sf); + end + function gdk_pixbuf_new_from_file(f:string;er:pointer):pointer; + begin + _f_ := static function(f:string;er:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(f,er); + end + function gdk_pixbuf_save(pixbuf:pointer;p:string;tp:string;gerr:string;p1:string; p2:string;p3:string;p4:string;p5:string):integer; + begin + _f_ := static function(pixbuf:pointer;p:string;tp:string;gerr:string;p1:string; p2:string;p3:string;p4:string;p5:string):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(pixbuf,p,tp,gerr,p1,p2,p3,p4,p5); + end + procedure gdk_pixbuf_unref(pixbuf); + begin + _f_ := static procedure(pixbuf);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + class procedure gdk_pixbuf_ref(pixbuf); + begin + _f_ := static procedure(pixbuf);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function g_object_ref(g:pointer):pointer; + begin + _f_ := static function(g:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(g); + end + procedure g_object_unref(g:pointer); + begin + _f_ := static procedure(g:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(g); + end + function getfuncptrbyname(lib,n); + begin + case lib of + "libc": + begin + return getdlsymaddress("libc.so.6",n); + end + "gtk": + begin + + end + else return getdlsymaddress("libgtk-3.so.0",n); + end + end + + end type TTempFile = class function Create(); begin @@ -57,19 +148,64 @@ type TGdiplusflat=class Fptr; static _mtool; end - class procedure cairo_pattern_destroy(p:pointer);cdecl;external 'libgtk-3.so'; - class function cairo_image_surface_create_from_png(f:string):pointer;cdecl;external 'libgtk-3.so'; - class function cairo_pattern_create_for_surface(f:pointer):pointer;cdecl;external 'libgtk-3.so'; - class function cairo_image_surface_get_width(sf:pointer):integer;cdecl;external 'libgtk-3.so'; - class function cairo_image_surface_get_height(sf:pointer):integer;cdecl;external 'libgtk-3.so'; - class function gdk_pixbuf_new_from_file(f:string;er:pointer):pointer;cdecl;external 'libgtk-3.so'; - class function gdk_pixbuf_save(pixbuf:pointer;p:string;tp:string;gerr:string;p1:string; p2:string;p3:string;p4:string;p5:string):integer;cdecl;external 'libgtk-3.so'; - class procedure gdk_pixbuf_unref(pixbuf);cdecl;external 'libgtk-3.so'; - class procedure gdk_pixbuf_ref(pixbuf);cdecl;external 'libgtk-3.so'; - class function g_object_ref(g:pointer):pointer;cdecl;external 'libgtk-3.so'; - class procedure g_object_unref(g:pointer);cdecl;external 'libgtk-3.so'; - - + class procedure cairo_pattern_destroy(p:pointer); + begin + return getgtkgdi().cairo_pattern_destroy(p); + end + class function cairo_image_surface_create_from_png(f:string):pointer; + begin + return getgtkgdi().cairo_image_surface_create_from_png(f); + end + class function cairo_pattern_create_for_surface(f:pointer):pointer; + begin + return getgtkgdi().cairo_pattern_create_for_surface(f); + end + class function cairo_image_surface_get_width(sf:pointer):integer; + begin + return getgtkgdi().cairo_image_surface_get_width(sf); + end + class function cairo_image_surface_get_height(sf:pointer):integer; + begin + return getgtkgdi().cairo_image_surface_get_height(sf); + end + class function gdk_pixbuf_new_from_file(f:string;er:pointer):pointer; + begin + return getgtkgdi().gdk_pixbuf_new_from_file(f,er); + end + class function gdk_pixbuf_save(pixbuf:pointer;p:string;tp:string;gerr:string;p1:string; p2:string;p3:string;p4:string;p5:string):integer; + begin + return getgtkgdi().gdk_pixbuf_save(pixbuf,p,tp,gerr,p1,p2,p3,p4,p5); + end + class procedure gdk_pixbuf_unref(pixbuf); + begin + return getgtkgdi().gdk_pixbuf_unref(pixbuf); + end + class procedure gdk_pixbuf_ref(pixbuf); + begin + return getgtkgdi().gdk_pixbuf_ref(pixbuf); + end + class function g_object_ref(g:pointer):pointer; + begin + return getgtkgdi().g_object_ref(g); + end + class procedure g_object_unref(g:pointer); + begin + return getgtkgdi().g_object_unref(g); + end + class function getfuncptrbyname(lib,n); + begin + case lib of + "libc": + begin + return getdlsymaddress("libc.so.6",n); + end + "gtk": + begin + + end + else return getdlsymaddress("libgtk-3.so.0",n); + end + end class function GdipSaveImageToStream(image:pointer;var imgestr:string); //无用到 class function GdipLoadImageFromFile(filename:string;var image:pointer); //无用到 begin diff --git a/funcext/tvclib/ugtkinterface.tsf b/funcext/tvclib/ugtkinterface.tsf index 6188d2a..ca25945 100644 --- a/funcext/tvclib/ugtkinterface.tsf +++ b/funcext/tvclib/ugtkinterface.tsf @@ -3188,7 +3188,11 @@ type tgtkapis = class() //gtk return true; end - function gtk_color_selection_dialog_new(t:string):pointer;cdecl;external 'libgtk-3.so'; + function gtk_color_selection_dialog_new(t:string):pointer; + begin + _f_ := static function(t:string):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(t); + end function Gtk_event_get_name_by_id(id); //gdk消息名称--id对应 begin d := array(0:"GDK_DELETE",1:"GDK_DESTROY",2:"GDK_EXPOSE",3:"GDK_MOTION_NOTIFY",4:"GDK_BUTTON_PRESS", @@ -3231,70 +3235,252 @@ type tgtkapis = class() //gtk end end /////////////////////////////pipe process///////////执行程序相关///////////////////////////// - //function tsl_gtk_closehandle(p:pointer):integer;cdecl;external "plugin/libTSLUIL.so"; - function tsl_gtk_pipread(p:pointer;var msg:string;ct:integer):integer;cdecl;external "plugin/libTSLUIL.so"; + //function tsl_gtk_closehandle(p:pointer):integer;cdecl;external "plugin/libTSLUIL.so"; + //function tsl_gtk_pipread(p:pointer;var msg:string;ct:integer):integer;cdecl;external "plugin/libTSLUIL.so"; //function tsl_gtk_kill(p:pointer;sig:integer):integer;cdecl;external "plugin/libTSLUIL.so"; - function tsl_gtk_createprocessa(exe:string; cmd : array of string; ev : array of string;var pw:pointer):pointer;cdecl;external "plugin/libTSLUIL.so"; + //function tsl_gtk_createprocessa(exe:string; cmd : array of string; ev : array of string;var pw:pointer):pointer;cdecl;external "plugin/libTSLUIL.so"; /////////////////////////////////timer/////////////////////////////// - class function g_timeout_add(interval:integer; _function:pointer; d:pointer):integer; cdecl; external 'libgtk-3.so'; //添加 //libglib-2.0.so gtk_timeout_remove libgtk-x11-2.0.so - class procedure g_source_remove(timeout_handler_id:integer); cdecl; external 'libgtk-3.so';//"libgtk-x11-2.0.so"; //移除 + function g_timeout_add(interval:integer; _function:pointer; d:pointer):integer; + begin + _f_ := static function(interval:integer; _function:pointer; d:pointer):integer; cdecl; external getfuncptrbyname(0,functionname()); ////libglib-2.0.so + return ##_f_(interval,_function,d); + end + procedure g_source_remove(timeout_handler_id:integer); + begin + _f_ := static procedure(timeout_handler_id:integer); cdecl; external getfuncptrbyname(0,functionname()); ////libglib-2.0.so + return ##_f_(timeout_handler_id); + end //////////////////////////clipboard///////////////////// - procedure gtk_clipboard_set_text(c:pointer;s:string;len:integer);cdecl;external 'libgtk-3.so'; - function gtk_clipboard_get(atm:pointer):pointer;cdecl;external 'libgtk-3.so'; - function gtk_clipboard_wait_for_text(clipboard:pointer):string;cdecl;external 'libgtk-3.so'; + procedure gtk_clipboard_set_text(c:pointer;s:string;len:integer); + begin + _f_ := static procedure(c:pointer;s:string;len:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,s,len); + end + function gtk_clipboard_get(atm:pointer):pointer; + begin + _f_ := static function(atm:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(atm); + end + function gtk_clipboard_wait_for_text(clipboard:pointer):string; + begin + _f_ := static function(clipboard:pointer):string;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(clipboard); + end //////////////////////// - function gtk_events_pending():integer;cdecl;external 'libgtk-3.so'; - function gtk_main_iteration_do(f:integer):integer;cdecl;external 'libgtk-3.so'; - function gtk_main_iteration():integer ;cdecl;external 'libgtk-3.so'; + function gtk_events_pending():integer; + begin + _f_ := static function():integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gtk_main_iteration_do(f:integer):integer; + begin + _f_ := static function(f:integer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(f); + end + function gtk_main_iteration():integer ; + begin + _f_ := static function():integer ;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function g_idle_remove_by_data(p:pointer):integer; + begin + _f_ := static function(p:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p); + end /////////////////////////////////////////////////////// - function g_idle_remove_by_data(p:pointer):integer;cdecl;external 'libgtk-3.so'; - //////////////// - function g_slist_alloc():pointer;cdecl;external 'libgtk-3.so'; - function g_slist_append(list:pointer;d:pointer):pointer;cdecl;external 'libgtk-3.so'; - procedure g_slist_free(list:pointer);cdecl;external 'libgtk-3.so'; - function g_slist_find(gl:pointer;d:pointer):pointer;cdecl;external 'libgtk-3.so'; - function g_slist_length(gl:pointer):integer;cdecl;external 'libgtk-3.so'; - function g_slist_delete_link(gl:pointer;gl2:pointer):pointer;cdecl;external 'libgtk-3.so'; - function g_slist_remove(gl:pointer;gl2:pointer):pointer;cdecl;external 'libgtk-3.so'; + function g_slist_alloc():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function g_slist_append(list:pointer;d:pointer):pointer; + begin + _f_ := static function(list:pointer;d:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(list,d); + end + procedure g_slist_free(list:pointer); + begin + _f_ := static procedure(list:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(list); + end + function g_slist_find(gl:pointer;d:pointer):pointer; + begin + _f_ := static function(gl:pointer;d:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(gl,d); + end + function g_slist_length(gl:pointer):integer; + begin + _f_ := static function(gl:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(gl); + end + function g_slist_delete_link(gl:pointer;gl2:pointer):pointer; + begin + _f_ := static function(gl:pointer;gl2:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(gl,gl2); + end + function g_slist_remove(gl:pointer;gl2:pointer):pointer; + begin + _f_ := static function(gl:pointer;gl2:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(gl,gl2); + end ////////////////not classfiy////////////////////////////////// - function gtk_widget_is_visible(w:pointer):integer;cdecl;external 'libgtk-3.so'; - function gtk_widget_has_focus(w:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_widget_set_can_focus(w:pointer;cf:integer);cdecl;external 'libgtk-3.so'; - function gtk_window_get_focus(w:pointer):pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_widget_grab_focus(w:pointer);cdecl;external 'libgtk-3.so'; - function gtk_widget_activate(w:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_window_set_focus(window:pointer; focus:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_window_set_type_hint(window:pointer; tp:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_set_has_window(widget:pointer;has_window:integer);cdecl;external 'libgtk-3.so'; - function gtk_widget_get_parent(w:pointer):pointer;cdecl;external 'libgtk-3.so'; - function gtk_widget_get_allocated_width(w:pointer):integer;cdecl;external 'libgtk-3.so'; - function gtk_widget_get_allocated_height(w:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_widget_set_sensitive(w:pointer;s:integer);cdecl;external 'libgtk-3.so'; - function gtk_widget_get_sensitive(w:pointer):integer;cdecl;external 'libgtk-3.so'; - - function gtk_widget_is_toplevel(w:pointer):integer;cdecl;external 'libgtk-3.so'; - function gtk_window_get_title(w:pointer):string;cdecl;external 'libgtk-3.so'; + function gtk_widget_is_visible(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + function gtk_widget_has_focus(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + procedure gtk_widget_set_can_focus(w:pointer;cf:integer); + begin + _f_ := static procedure(w:pointer;cf:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,cf); + end + function gtk_window_get_focus(w:pointer):pointer; + begin + _f_ := static function(w:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + procedure gtk_widget_grab_focus(w:pointer); + begin + _f_ := static procedure(w:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + function gtk_widget_activate(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + procedure gtk_window_set_focus(window:pointer; focus:pointer); + begin + _f_ := static procedure(window:pointer; focus:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(window,focus); + end + procedure gtk_window_set_type_hint(window:pointer; tp:integer); + begin + _f_ := static procedure(window:pointer; tp:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(window,tp); + end + procedure gtk_widget_set_has_window(widget:pointer;has_window:integer); + begin + _f_ := static procedure(widget:pointer;has_window:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(widget,has_window); + end + function gtk_widget_get_parent(w:pointer):pointer; + begin + _f_ := static function(w:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + function gtk_widget_get_allocated_width(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + function gtk_widget_get_allocated_height(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + procedure gtk_widget_set_sensitive(w:pointer;s:integer); + begin + _f_ := static procedure(w:pointer;s:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,s); + end + function gtk_widget_get_sensitive(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + function gtk_widget_is_toplevel(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + function gtk_window_get_title(w:pointer):string; + begin + _f_ := static function(w:pointer):string;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end ////////////////////////////////im///////////////////////// - function gtk_im_multicontext_new():pointer;cdecl;external 'libgtk-3.so'; - function gtk_im_multicontext_get_context_id(im:pointer):string;cdecl;external 'libgtk-3.so'; - function gtk_im_multicontext_get_type():pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_im_context_set_client_window(im:pointer;w:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_im_context_set_use_preedit (im:pointer;s:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_im_context_focus_in(im:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_im_context_focus_out (im:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_im_context_reset(im:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_im_context_get_preedit_string(im:pointer;var str:string;var attrs:pointer;cp:array of integer);cdecl;external 'libgtk-3.so'; - function gtk_im_context_filter_keypress(im:pointer;e:pointer):integer;cdecl;external 'libgtk-3.so'; - function gtk_im_context_delete_surrounding(im:pointer;offset:integer;nchars:integer):integer;cdecl;external 'libgtk-3.so'; - function gtk_im_context_get_surrounding(im:pointer;var txt:string;var cursor_index:integer):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_im_context_set_cursor_location(im:pointer;var area:array of integer);cdecl;external 'libgtk-3.so'; + function gtk_im_multicontext_new():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gtk_im_multicontext_get_context_id(im:pointer):string; + begin + _f_ := static function(im:pointer):string;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(im); + end + function gtk_im_multicontext_get_type():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + procedure gtk_im_context_set_client_window(im:pointer;w:pointer); + begin + _f_ := static procedure(im:pointer;w:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(im,w); + end + procedure gtk_im_context_set_use_preedit (im:pointer;s:integer); + begin + _f_ := static procedure(im:pointer;s:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(im,s); + end + procedure gtk_im_context_focus_in(im:pointer); + begin + _f_ := static procedure(im:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(im); + end + procedure gtk_im_context_focus_out (im:pointer); + begin + _f_ := static procedure(im:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(im); + end + procedure gtk_im_context_reset(im:pointer); + begin + _f_ := static procedure(im:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(im); + end + procedure gtk_im_context_get_preedit_string(im:pointer;var str:string;var attrs:pointer;cp:array of integer); + begin + _f_ := static procedure(im:pointer;var str:string;var attrs:pointer;cp:array of integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(im,str,attrs,cp); + end + function gtk_im_context_filter_keypress(im:pointer;e:pointer):integer; + begin + _f_ := static function(im:pointer;e:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(im,e); + end + function gtk_im_context_delete_surrounding(im:pointer;offset:integer;nchars:integer):integer; + begin + _f_ := static function(im:pointer;offset:integer;nchars:integer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(im,offset,nchars); + end + function gtk_im_context_get_surrounding(im:pointer;var txt:string;var cursor_index:integer):integer; + begin + _f_ := static function(im:pointer;var txt:string;var cursor_index:integer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(im,txt,cursor_index); + end + procedure gtk_im_context_set_cursor_location(im:pointer;var area:array of integer); + begin + _f_ := static procedure(im:pointer;var area:array of integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(im,area); + end //////////////////////////////////gobject////// - function g_type_check_instance_is_a(instance:pointer;iface_type:pointer):integer;cdecl;external 'libgtk-3.so'; + function g_type_check_instance_is_a(instance:pointer;iface_type:pointer):integer; + begin + _f_ := static function(instance:pointer;iface_type:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(instance,iface_type); + end {procedure g_object_set_data(object:pointer;key:string;data:pointer);cdecl;external 'libgtk-3.so'; function g_object_get_data(object:pointer;key:string):pointer;cdecl;external 'libgtk-3.so'; @@ -3311,44 +3497,168 @@ type tgtkapis = class() //gtk begin return gtk_object_set_data(object,key,data); end - function g_object_ref(g:pointer):pointer;cdecl;external 'libgtk-3.so'; - procedure g_object_unref(g:pointer);cdecl;external 'libgtk-3.so'; + function g_object_ref(g:pointer):pointer; + begin + _f_ := static function(g:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(g); + end + procedure g_object_unref(g:pointer); + begin + _f_ := static procedure(g:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(g); + end ////////////////////////scroll////////////////////////// - function gtk_scrolled_window_new(hadjustment:pointer; vadjustment:pointer):pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_scrolled_window_add_with_viewport(s:pointer;c:pointer);cdecl;external 'libgtk-3.so'; - function gtk_scrolled_window_get_hscrollbar(s:pointer):pointer;cdecl;external 'libgtk-3.so'; - function gtk_scrolled_window_get_vscrollbar(s:pointer):pointer;cdecl;external 'libgtk-3.so'; - function gtk_scrolled_window_get_hadjustment(s:pointer):pointer;cdecl;external 'libgtk-3.so'; - function gtk_scrolled_window_get_vadjustment(s:pointer):pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_scrolled_window_set_max_content_height(s:pointer;h:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_scrolled_window_set_min_content_height(s:pointer;h:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_scrolled_window_set_max_content_width(s:pointer;h:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_scrolled_window_set_policy(s:pointer;p:integer);cdecl;external 'libgtk-3.so'; + function gtk_scrolled_window_new(hadjustment:pointer; vadjustment:pointer):pointer; + begin + _f_ := static function(hadjustment:pointer; vadjustment:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(hadjustment,vadjustment); + end + procedure gtk_scrolled_window_add_with_viewport(s:pointer;c:pointer); + begin + _f_ := static procedure(s:pointer;c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s,c); + end + function gtk_scrolled_window_get_hscrollbar(s:pointer):pointer; + begin + _f_ := static function(s:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s); + end + function gtk_scrolled_window_get_vscrollbar(s:pointer):pointer; + begin + _f_ := static function(s:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s); + end + function gtk_scrolled_window_get_hadjustment(s:pointer):pointer; + begin + _f_ := static function(s:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s); + end + function gtk_scrolled_window_get_vadjustment(s:pointer):pointer; + begin + _f_ := static function(s:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s); + end + procedure gtk_scrolled_window_set_max_content_height(s:pointer;h:integer); + begin + _f_ := static procedure(s:pointer;h:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s,h); + end + procedure gtk_scrolled_window_set_min_content_height(s:pointer;h:integer); + begin + _f_ := static procedure(s:pointer;h:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s,h); + end + procedure gtk_scrolled_window_set_max_content_width(s:pointer;h:integer); + begin + _f_ := static procedure(s:pointer;h:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s,h); + end + procedure gtk_scrolled_window_set_policy(s:pointer;p:integer); + begin + _f_ := static procedure(s:pointer;p:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s,p); + end /////////////////////scrollable//////////////////////////// - procedure gtk_scrollable_set_vscroll_policy(s:pointer;p:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_scrollable_set_hscroll_policy(s:pointer;p:integer);cdecl;external 'libgtk-3.so'; - function gtk_scrollable_get_hadjustment(s:pointer):pointer;cdecl;external 'libgtk-3.so'; - function gtk_scrollable_get_vadjustment(s:pointer):pointer;cdecl;external 'libgtk-3.so'; + procedure gtk_scrollable_set_vscroll_policy(s:pointer;p:integer); + begin + _f_ := static procedure(s:pointer;p:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s,p); + end + procedure gtk_scrollable_set_hscroll_policy(s:pointer;p:integer); + begin + _f_ := static procedure(s:pointer;p:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s,p); + end + function gtk_scrollable_get_hadjustment(s:pointer):pointer; + begin + _f_ := static function(s:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s); + end + function gtk_scrollable_get_vadjustment(s:pointer):pointer; + begin + _f_ := static function(s:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s); + end //////////////gdk window /////// - procedure gdk_window_show_unraised(w:pointer);cdecl;external 'libgtk-3.so'; + procedure gdk_window_show_unraised(w:pointer); + begin + _f_ := static procedure(w:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end ///////////////////////////device////////////////////////// //gdk_display_get_pointer(gdk_display_get_default(), nil, x, y, nil); //鼠标位置 - procedure gdk_display_get_pointer(d:pointer; screen:string;var x :integer;var Y:integer;msk:string); cdecl;external 'libgtk-3.so'; - function gdk_display_get_default():pointer;cdecl;external 'libgtk-3.so'; - function gdk_screen_get_default():pointer;cdecl;external 'libgtk-3.so'; - function gdk_display_get_default_seat(d:pointer):pointer;cdecl;external 'libgtk-3.so'; - function gdk_seat_get_pointer(dm:pointer):pointer;cdecl;external 'libgtk-3.so'; - procedure gdk_device_get_position(d:pointer;t:pointer;var x :integer;var y:integer);cdecl;external 'libgtk-3.so'; - function gdk_event_get_scroll_deltas(d:pointer;var x :double;var y:double):integer;cdecl;external 'libgtk-3.so'; - procedure gdk_window_get_position(w:pointer;var x:integer;var y:integer);cdecl;external 'libgtk-3.so'; - function gdk_screen_height():integer;cdecl;external 'libgtk-3.so'; - function gdk_screen_width():integer;cdecl;external 'libgtk-3.so'; - function gdk_event_get_event_type(e:pointer):integer;cdecl;external 'libgtk-3.so'; - function gdk_cairo_get_clip_rectangle(cr:pointer;var rec:array of integer):integer;cdecl;external 'libgtk-3.so'; + procedure gdk_display_get_pointer(d:pointer; screen:string;var x :integer;var Y:integer;msk:string); + begin + _f_ := static procedure(d:pointer; screen:string;var x :integer;var Y:integer;msk:string); cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(d,screen,x,Y,msk); + end + function gdk_display_get_default():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gdk_screen_get_default():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gdk_display_get_default_seat(d:pointer):pointer; + begin + _f_ := static function(d:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(d); + end + function gdk_seat_get_pointer(dm:pointer):pointer; + begin + _f_ := static function(dm:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(dm); + end + procedure gdk_device_get_position(d:pointer;t:pointer;var x :integer;var y:integer); + begin + _f_ := static procedure(d:pointer;t:pointer;var x :integer;var y:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(d,t,x,y); + end + function gdk_event_get_scroll_deltas(d:pointer;var x :double;var y:double):integer; + begin + _f_ := static function(d:pointer;var x :double;var y:double):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(d,x,y); + end + procedure gdk_window_get_position(w:pointer;var x:integer;var y:integer); + begin + _f_ := static procedure(w:pointer;var x:integer;var y:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,x,y); + end + function gdk_screen_height():integer; + begin + _f_ := static function():integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gdk_screen_width():integer; + begin + _f_ := static function():integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gdk_event_get_event_type(e:pointer):integer; + begin + _f_ := static function(e:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(e); + end + function gdk_cairo_get_clip_rectangle(cr:pointer;var rec:array of integer):integer; + begin + _f_ := static function(cr:pointer;var rec:array of integer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cr,rec); + end ////////////////////////// start //////////////////////////////////////// - procedure gtk_init(argc:string;argcv:string);cdecl;external 'libgtk-3.so'; - procedure gtk_main ();cdecl;external 'libgtk-3.so'; + procedure gtk_init(argc:string;argcv:string); + begin + _f_ := static procedure(argc:string;argcv:string);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(argc,argcv); + end + procedure gtk_main (); + begin + _f_ := static procedure();cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end function gtk_mainidle(idledata); begin //idledata :=(new tcbytearray(4))._getptr_(); @@ -3357,78 +3667,301 @@ type tgtkapis = class() //gtk g_idle_remove_by_data(idledata); //删除idle return 1; end - function g_idle_add(f:pointer;d:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_main_quit();cdecl;external 'libgtk-3.so'; + function g_idle_add(f:pointer;d:pointer):integer; + begin + _f_ := static function(f:pointer;d:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(f,d); + end + procedure gtk_main_quit(); + begin + _f_ := static procedure();cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end //////////////////////context/////////////////////////////// - function gtk_widget_get_style_context(w:pointer):pointer;cdecl;external 'libgtk-3.so'; - + function gtk_widget_get_style_context(w:pointer):pointer; + begin + _f_ := static function(w:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end /////////////////////////////////////////////////////////////// /////////////////////////////////widget//////////////////////////////////// - function gtk_widget_get_realized(w:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_widget_set_events(w:pointer;f:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_get_allocation(w:pointer;var rec:array of integer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_set_allocation(w:pointer; rec: array of integer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_size_allocate(w:pointer; rec: array of integer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_modify_text(w:pointer;t:integer;c:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_set_tooltip_text(w:pointer;tip:string);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_set_size_request(wd:pointer;h:integer;w:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_get_size_request(wd:pointer;var h:integer;var w:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_set_app_paintable(w:pointer;f:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_realize(w:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_queue_draw(w:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_queue_draw_area(w:pointer;x:integer;y:integer;wd:integer;ht:integer);cdecl;external 'libgtk-3.so'; + function gtk_widget_get_realized(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + procedure gtk_widget_set_events(w:pointer;f:integer); + begin + _f_ := static procedure(w:pointer;f:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,f); + end + procedure gtk_widget_get_allocation(w:pointer;var rec:array of integer); + begin + _f_ := static procedure(w:pointer;var rec:array of integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,rec); + end + procedure gtk_widget_set_allocation(w:pointer; rec: array of integer); + begin + _f_ := static procedure(w:pointer; rec: array of integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,rec); + end + procedure gtk_widget_size_allocate(w:pointer; rec: array of integer); + begin + _f_ := static procedure(w:pointer; rec: array of integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,rec); + end + procedure gtk_widget_modify_text(w:pointer;t:integer;c:pointer); + begin + _f_ := static procedure(w:pointer;t:integer;c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,t,c); + end + procedure gtk_widget_set_tooltip_text(w:pointer;tip:string); + begin + _f_ := static procedure(w:pointer;tip:string);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,tip); + end + procedure gtk_widget_set_size_request(wd:pointer;h:integer;w:integer); + begin + _f_ := static procedure(wd:pointer;h:integer;w:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(wd,h,w); + end + procedure gtk_widget_get_size_request(wd:pointer;var h:integer;var w:integer); + begin + _f_ := static procedure(wd:pointer;var h:integer;var w:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(wd,h,w); + end + procedure gtk_widget_set_app_paintable(w:pointer;f:integer); + begin + _f_ := static procedure(w:pointer;f:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,f); + end + procedure gtk_widget_realize(w:pointer); + begin + _f_ := static procedure(w:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + procedure gtk_widget_queue_draw(w:pointer); + begin + _f_ := static procedure(w:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + procedure gtk_widget_queue_draw_area(w:pointer;x:integer;y:integer;wd:integer;ht:integer); + begin + _f_ := static procedure(w:pointer;x:integer;y:integer;wd:integer;ht:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,x,y,wd,ht); + end - function gtk_widget_get_margin_top(w:pointer):integer;cdecl;external 'libgtk-3.so'; + function gtk_widget_get_margin_top(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end /////////////////////edit entry////////////////////////////////////////////////////// - function gtk_entry_new():pointer;cdecl;external 'libgtk-3.so'; - function gtk_entry_get_text(w:pointer):string;cdecl;external 'libgtk-3.so'; - procedure gtk_entry_set_text(e:pointer;c:string);cdecl;external 'libgtk-3.so'; - function gtk_entry_get_text_length(e:pointer):short;cdecl;external 'libgtk-3.so'; - procedure gtk_entry_set_visibility(e:pointer;v:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_entry_set_width_chars(e:pointer;v:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_entry_set_invisible_char(e:pointer;c:integer);cdecl;external 'libgtk-3.so'; + function gtk_entry_new():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gtk_entry_get_text(w:pointer):string; + begin + _f_ := static function(w:pointer):string;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + procedure gtk_entry_set_text(e:pointer;c:string); + begin + _f_ := static procedure(e:pointer;c:string);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(e,c); + end + function gtk_entry_get_text_length(e:pointer):short; + begin + _f_ := static function(e:pointer):short;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(e); + end + procedure gtk_entry_set_visibility(e:pointer;v:integer); + begin + _f_ := static procedure(e:pointer;v:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(e,v); + end + procedure gtk_entry_set_width_chars(e:pointer;v:integer); + begin + _f_ := static procedure(e:pointer;v:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(e,v); + end + procedure gtk_entry_set_invisible_char(e:pointer;c:integer); + begin + _f_ := static procedure(e:pointer;c:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(e,c); + end //procedure gtk_entry_set_editable(e:pointer;ed:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_editable_set_editable(e:pointer;ed:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_entry_set_has_frame(e:pointer;s:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_entry_set_max_length(e:pointer;len:integer);cdecl;external 'libgtk-3.so'; + procedure gtk_editable_set_editable(e:pointer;ed:integer); + begin + _f_ := static procedure(e:pointer;ed:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(e,ed); + end + procedure gtk_entry_set_has_frame(e:pointer;s:integer); + begin + _f_ := static procedure(e:pointer;s:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(e,s); + end + procedure gtk_entry_set_max_length(e:pointer;len:integer); + begin + _f_ := static procedure(e:pointer;len:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(e,len); + end /////////////////////text view memo ////////////////////////////////////////////////////// - function gtk_text_view_new():pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_text_view_set_wrap_mode(t:pointer;md:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_text_view_set_buffer(t:pointer;bf:pointer);cdecl;external 'libgtk-3.so'; - function gtk_text_buffer_new(tagtable:pointer):pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_text_buffer_get_iter_at_offset(bf:pointer;iter:pointer;offset:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_text_buffer_insert(bf:pointer;iter:pointer;txt:string;len:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_text_view_set_editable(t:pointer;e:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_text_set_word_wrap(t:pointer;e:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_text_buffer_get_end_iter(b:pointer;iter:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_text_buffer_get_start_iter(b:pointer;iter:pointer);cdecl;external 'libgtk-3.so'; - function gtk_text_buffer_get_char_count(b:pointer):integer;cdecl;external 'libgtk-3.so'; - function gtk_text_buffer_get_line_count(b:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_text_buffer_delete(b:pointer;start:pointer;ed:pointer);cdecl;external 'libgtk-3.so'; - function gtk_text_buffer_get_text(b:pointer;start:pointer;ed:pointer;ic:integer):string;cdecl;external 'libgtk-3.so'; - function gtk_text_buffer_get_selection_bounds(b:pointer;st:pointer;ed:pointer):integer;cdecl;external 'libgtk-3.so'; + function gtk_text_view_new():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + procedure gtk_text_view_set_wrap_mode(t:pointer;md:integer); + begin + _f_ := static procedure(t:pointer;md:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(t,md); + end + procedure gtk_text_view_set_buffer(t:pointer;bf:pointer); + begin + _f_ := static procedure(t:pointer;bf:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(t,bf); + end + function gtk_text_buffer_new(tagtable:pointer):pointer; + begin + _f_ := static function(tagtable:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(tagtable); + end + procedure gtk_text_buffer_get_iter_at_offset(bf:pointer;iter:pointer;offset:integer); + begin + _f_ := static procedure(bf:pointer;iter:pointer;offset:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(bf,iter,offset); + end + procedure gtk_text_buffer_insert(bf:pointer;iter:pointer;txt:string;len:integer); + begin + _f_ := static procedure(bf:pointer;iter:pointer;txt:string;len:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(bf,iter,txt,len); + end + procedure gtk_text_view_set_editable(t:pointer;e:integer); + begin + _f_ := static procedure(t:pointer;e:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(t,e); + end + procedure gtk_text_set_word_wrap(t:pointer;e:integer); + begin + _f_ := static procedure(t:pointer;e:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(t,e); + end + procedure gtk_text_buffer_get_end_iter(b:pointer;iter:pointer); + begin + _f_ := static procedure(b:pointer;iter:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(b,iter); + end + procedure gtk_text_buffer_get_start_iter(b:pointer;iter:pointer); + begin + _f_ := static procedure(b:pointer;iter:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(b,iter); + end + function gtk_text_buffer_get_char_count(b:pointer):integer; + begin + _f_ := static function(b:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(b); + end + function gtk_text_buffer_get_line_count(b:pointer):integer; + begin + _f_ := static function(b:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(b); + end + procedure gtk_text_buffer_delete(b:pointer;start:pointer;ed:pointer); + begin + _f_ := static procedure(b:pointer;start:pointer;ed:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(b,start,ed); + end + function gtk_text_buffer_get_text(b:pointer;start:pointer;ed:pointer;ic:integer):string; + begin + _f_ := static function(b:pointer;start:pointer;ed:pointer;ic:integer):string;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(b,start,ed,ic); + end + function gtk_text_buffer_get_selection_bounds(b:pointer;st:pointer;ed:pointer):integer; + begin + _f_ := static function(b:pointer;st:pointer;ed:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(b,st,ed); + end //////////////////////////////pango//////////////////////////////////////////// - function pango_font_description_from_string(ns:string):pointer; cdecl;external 'libgtk-3.so'; - procedure pango_font_description_free(pg:pointer);cdecl;external 'libgtk-3.so'; - procedure pango_font_description_set_size(pg:pointer;sz:integer);cdecl;external 'libgtk-3.so'; - function pango_cairo_create_layout(c:pointer):pointer;cdecl;external 'libgtk-3.so'; - function pango_cairo_create_context(c:pointer):pointer;cdecl;external 'libgtk-3.so'; - procedure pango_layout_set_width(p:pointer;w:integer);cdecl;external 'libgtk-3.so'; - function pango_layout_get_width(p:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure pango_layout_set_wrap(p:pointer;wp:integer);cdecl;external 'libgtk-3.so'; - procedure pango_layout_set_font_description(p:pointer;f:pointer);cdecl;external 'libgtk-3.so'; - procedure pango_layout_set_text(pl:pointer;s:string;len:integer);cdecl;external 'libgtk-3.so'; - procedure pango_cairo_show_layout(cr:pointer;pl:pointer);cdecl;external 'libgtk-3.so'; - function pango_cairo_font_map_get_default():pointer;cdecl;external 'libgtk-3.so'; - procedure pango_font_map_list_families(fm:pointer;var fls:pointer;var n:integer);cdecl;external 'libgtk-3.so'; - function pango_font_family_get_name(n:pointer):string;cdecl;external 'libgtk-3.so'; + function pango_font_description_from_string(ns:string):pointer; + begin + _f_ := static function(ns:string):pointer; cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(ns); + end + procedure pango_font_description_free(pg:pointer); + begin + _f_ := static procedure(pg:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(pg); + end + procedure pango_font_description_set_size(pg:pointer;sz:integer); + begin + _f_ := static procedure(pg:pointer;sz:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(pg,sz); + end + function pango_cairo_create_layout(c:pointer):pointer; + begin + _f_ := static function(c:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + function pango_cairo_create_context(c:pointer):pointer; + begin + _f_ := static function(c:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure pango_layout_set_width(p:pointer;w:integer); + begin + _f_ := static procedure(p:pointer;w:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p,w); + end + function pango_layout_get_width(p:pointer):integer; + begin + _f_ := static function(p:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p); + end + procedure pango_layout_set_wrap(p:pointer;wp:integer); + begin + _f_ := static procedure(p:pointer;wp:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p,wp); + end + procedure pango_layout_set_font_description(p:pointer;f:pointer); + begin + _f_ := static procedure(p:pointer;f:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p,f); + end + procedure pango_layout_set_text(pl:pointer;s:string;len:integer); + begin + _f_ := static procedure(pl:pointer;s:string;len:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(pl,s,len); + end + procedure pango_cairo_show_layout(cr:pointer;pl:pointer); + begin + _f_ := static procedure(cr:pointer;pl:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cr,pl); + end + function pango_cairo_font_map_get_default():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + procedure pango_font_map_list_families(fm:pointer;var fls:pointer;var n:integer); + begin + _f_ := static procedure(fm:pointer;var fls:pointer;var n:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(fm,fls,n); + end + function pango_font_family_get_name(n:pointer):string; + begin + _f_ := static function(n:pointer):string;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(n); + end function pango_font_family_get_names(); //获得文字 begin fm := pango_cairo_font_map_get_default(); @@ -3445,52 +3978,217 @@ type tgtkapis = class() //gtk end ///////////////////////////cairo//////////////////////////////// - function cairo_create(s:pointer):pointer;cdecl;external 'libgtk-3.so'; - procedure cairo_save(c:pointer);cdecl;external 'libgtk-3.so'; - procedure cairo_restore(c:pointer);cdecl;external 'libgtk-3.so'; - function gdk_cairo_create(w:pointer):pointer;cdecl;external 'libgtk-3.so'; - function cairo_move_to(cr:pointer;x:double;y:double);cdecl;external 'libgtk-3.so'; - function cairo_line_to(cr:pointer;x:double;y:double);cdecl;external 'libgtk-3.so'; - procedure cairo_set_source(cr:pointer;s:pointer);cdecl;external 'libgtk-3.so'; - function cairo_get_source(cr:pointer):pointer;cdecl;external 'libgtk-3.so'; - procedure cairo_curve_to(cr:pointer;x1:double;y1:double;x2:double;y2:double;x3:double;y3:double);cdecl;external 'libgtk-3.so'; - procedure cairo_rectangle(c:pointer;x:double;y:double;w:double;h:double);cdecl;external 'libgtk-3.so'; - procedure cairo_set_source_rgba(c:pointer;red:double;green:double;blue:double;alpha:double);cdecl;external 'libgtk-3.so'; - procedure cairo_set_source_rgb(c:pointer;r:double;g:double;b:double);cdecl;external 'libgtk-3.so'; - procedure cairo_set_line_width(c:pointer;w:double);cdecl;external 'libgtk-3.so'; - function cairo_get_line_width(c:pointer):double;cdecl;external 'libgtk-3.so'; - procedure cairo_set_line_cap(c:pointer;cp:integer);cdecl;external 'libgtk-3.so'; - function cairo_get_line_cap(c:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure cairo_set_line_join(c:pointer;t:integer);cdecl;external 'libgtk-3.so'; - function cairo_get_line_join(c:pointer):integer;cdecl;external 'libgtk-3.so'; + function cairo_create(s:pointer):pointer; + begin + _f_ := static function(s:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s); + end + procedure cairo_save(c:pointer); + begin + _f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_restore(c:pointer); + begin + _f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + function gdk_cairo_create(w:pointer):pointer; + begin + _f_ := static function(w:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + function cairo_move_to(cr:pointer;x:double;y:double); + begin + _f_ := static function(cr:pointer;x:double;y:double);cdecl;external getfuncptrbyname(0,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 getfuncptrbyname(0,functionname()); + return ##_f_(cr,x,y); + end + procedure cairo_set_source(cr:pointer;s:pointer); + begin + _f_ := static procedure(cr:pointer;s:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cr,s); + end + function cairo_get_source(cr:pointer):pointer; + begin + _f_ := static function(cr:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cr); + 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 getfuncptrbyname(0,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 getfuncptrbyname(0,functionname()); + return ##_f_(c,x,y,w,h); + end + procedure cairo_set_source_rgba(c:pointer;red:double;green:double;blue:double;alpha:double); + begin + _f_ := static procedure(c:pointer;red:double;green:double;blue:double;alpha:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,red,green,blue,alpha); + end + procedure cairo_set_source_rgb(c:pointer;r:double;g:double;b:double); + begin + _f_ := static procedure(c:pointer;r:double;g:double;b:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,r,g,b); + end + procedure cairo_set_line_width(c:pointer;w:double); + begin + _f_ := static procedure(c:pointer;w:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,w); + end + function cairo_get_line_width(c:pointer):double; + begin + _f_ := static function(c:pointer):double;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_set_line_cap(c:pointer;cp:integer); + begin + _f_ := static procedure(c:pointer;cp:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,cp); + end + function cairo_get_line_cap(c:pointer):integer; + begin + _f_ := static function(c:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_set_line_join(c:pointer;t:integer); + begin + _f_ := static procedure(c:pointer;t:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,t); + end + function cairo_get_line_join(c:pointer):integer; + begin + _f_ := static function(c:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end //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);cdecl;external 'libgtk-3.so'; - procedure cairo_translate(cr:pointer;tx:double;ty:double);cdecl;external 'libgtk-3.so'; - procedure cairo_rotate(cr:pointer;angle:double);cdecl;external 'libgtk-3.so'; - procedure cairo_scale(cr:pointer;sx:double;sy:double);cdecl;external 'libgtk-3.so'; - procedure cairo_set_operator(c:pointer;op:integer);cdecl;external 'libgtk-3.so'; - function cairo_get_operator(c:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure cairo_set_tolerance(c:pointer;tol:double);cdecl;external 'libgtk-3.so'; - function cairo_get_tolerance(c:pointer):double;cdecl;external 'libgtk-3.so'; - procedure cairo_destroy(c:pointer);cdecl;external 'libgtk-3.so'; - procedure cairo_close_path(c:pointer);cdecl;external 'libgtk-3.so'; - - procedure cairo_set_fill_rule(c:pointer;rul:integer);cdecl;external 'libgtk-3.so'; - procedure cairo_clip(c:pointer);cdecl;external 'libgtk-3.so'; - procedure cairo_clip_preserve(c:pointer);cdecl;external 'libgtk-3.so'; - procedure cairo_clip_extents(c:pointer;var x1:double;var y1:double;var x2:double;var y2:double);cdecl;external 'libgtk-3.so'; - function cairo_in_clip(c:pointer;x:double;y:double);cdecl;external 'libgtk-3.so'; - procedure cairo_reset_clip(c:pointer);cdecl;external 'libgtk-3.so'; - procedure cairo_stroke(c:pointer);cdecl;external 'libgtk-3.so'; - procedure cairo_stroke_preserve(c:pointer);cdecl;external 'libgtk-3.so'; - procedure cairo_set_dash(c:pointer;dash:array of double;num_dash:integer;offset:double);cdecl;external 'libgtk-3.so'; - procedure cairo_fill(c:pointer);cdecl;external 'libgtk-3.so'; - - procedure cairo_fill_preserve(c:pointer);cdecl;external 'libgtk-3.so'; - procedure cairo_fill_extents(c:pointer;x1:double;y1:double;x2:double;y2:double);cdecl;external 'libgtk-3.so'; - procedure cairo_paint_with_alpha(c:pointer;alpah:double);cdecl;external 'libgtk-3.so'; - - procedure cairo_paint(c:pointer);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 getfuncptrbyname(0,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 getfuncptrbyname(0,functionname()); + return ##_f_(cr,tx,ty); + end + procedure cairo_rotate(cr:pointer;angle:double); + begin + _f_ := static procedure(cr:pointer;angle:double);cdecl;external getfuncptrbyname(0,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 getfuncptrbyname(0,functionname()); + return ##_f_(cr,sx,sy); + end + procedure cairo_set_operator(c:pointer;op:integer); + begin + _f_ := static procedure(c:pointer;op:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,op); + end + function cairo_get_operator(c:pointer):integer; + begin + _f_ := static function(c:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_set_tolerance(c:pointer;tol:double); + begin + _f_ := static procedure(c:pointer;tol:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,tol); + end + function cairo_get_tolerance(c:pointer):double; + begin + _f_ := static function(c:pointer):double;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_destroy(c:pointer); + begin + _f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_close_path(c:pointer); + begin + _f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_set_fill_rule(c:pointer;rul:integer); + begin + _f_ := static procedure(c:pointer;rul:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,rul); + end + procedure cairo_clip(c:pointer); + begin + _f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_clip_preserve(c:pointer); + begin + _f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_clip_extents(c:pointer;var x1:double;var y1:double;var x2:double;var y2:double); + begin + _f_ := static procedure(c:pointer;var x1:double;var y1:double;var x2:double;var y2:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,x1,y1,x2,y2); + end + function cairo_in_clip(c:pointer;x:double;y:double); + begin + _f_ := static function(c:pointer;x:double;y:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,x,y); + end + procedure cairo_reset_clip(c:pointer); + begin + _f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_stroke(c:pointer); + begin + _f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_stroke_preserve(c:pointer); + begin + _f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_set_dash(c:pointer;dash:array of double;num_dash:integer;offset:double); + begin + _f_ := static procedure(c:pointer;dash:array of double;num_dash:integer;offset:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,dash,num_dash,offset); + end + procedure cairo_fill(c:pointer); + begin + _f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_fill_preserve(c:pointer); + begin + _f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure cairo_fill_extents(c:pointer;x1:double;y1:double;x2:double;y2:double); + begin + _f_ := static procedure(c:pointer;x1:double;y1:double;x2:double;y2:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,x1,y1,x2,y2); + end + procedure cairo_paint_with_alpha(c:pointer;alpah:double); + begin + _f_ := static procedure(c:pointer;alpah:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,alpah); + end + procedure cairo_paint(c:pointer); + begin + _f_ := static procedure(c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end function cairo_applay_pen_style(dc); begin pt := gtk_object_get_data(dc,"pen.style"); @@ -3516,15 +4214,51 @@ type tgtkapis = class() //gtk cairo_arc (cr, x + r, y + h - r, r, 3.14 / 2, 3.14); end //////////////////////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);cdecl;external 'libgtk-3.so'; - procedure cairo_select_font_face(cr:pointer;n:string;slat:integer;weight:integer);cdecl;external 'libgtk-3.so'; - procedure cairo_set_font_size(cr:pointer;sz:double);cdecl;external 'libgtk-3.so'; - procedure cairo_text_extents(cr:pointer;s:string;ext:pointer);cdecl;external 'libgtk-3.so'; - procedure cairo_font_extents(cr:pointer;ext:pointer);cdecl;external 'libgtk-3.so'; - procedure cairo_get_font_options(cr:pointer;ft:pointer);cdecl;external 'libgtk-3.so'; - procedure cairo_set_font_options(cr:pointer;ft:pointer);cdecl;external 'libgtk-3.so'; - function cairo_font_options_create():pointer;cdecl;external 'libgtk-3.so'; - procedure cairo_font_options_destroy(op:pointer);cdecl;external 'libgtk-3.so'; + procedure cairo_show_text(c:pointer;t:string); + begin + _f_ := static procedure(c:pointer;t:string);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,t); + end + procedure cairo_select_font_face(cr:pointer;n:string;slat:integer;weight:integer); + begin + _f_ := static procedure(cr:pointer;n:string;slat:integer;weight:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cr,n,slat,weight); + end + procedure cairo_set_font_size(cr:pointer;sz:double); + begin + _f_ := static procedure(cr:pointer;sz:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cr,sz); + end + procedure cairo_text_extents(cr:pointer;s:string;ext:pointer); + begin + _f_ := static procedure(cr:pointer;s:string;ext:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cr,s,ext); + end + procedure cairo_font_extents(cr:pointer;ext:pointer); + begin + _f_ := static procedure(cr:pointer;ext:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cr,ext); + end + procedure cairo_get_font_options(cr:pointer;ft:pointer); + begin + _f_ := static procedure(cr:pointer;ft:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cr,ft); + end + procedure cairo_set_font_options(cr:pointer;ft:pointer); + begin + _f_ := static procedure(cr:pointer;ft:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cr,ft); + end + function cairo_font_options_create():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + procedure cairo_font_options_destroy(op:pointer); + begin + _f_ := static procedure(op:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(op); + end ////////cairo surface//////2 { @@ -3536,67 +4270,249 @@ type tgtkapis = class() //gtk CAIRO_FORMAT_RGB16_565 = 4, CAIRO_FORMAT_RGB30 = 5 } - function cairo_image_surface_create(t:integer;w:integer;h:integer):pointer;cdecl;external 'libgtk-3.so'; - function cairo_image_surface_create_from_png(f:string):pointer;cdecl;external 'libgtk-3.so'; - function cairo_image_surface_get_width(sf:pointer):integer;cdecl;external 'libgtk-3.so'; - function cairo_image_surface_get_height(sf:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure cairo_surface_destroy(sf:pointer);cdecl;external 'libgtk-3.so'; - procedure cairo_set_source_surface(cr:pointer;sf:pointer;x:double;y:double);cdecl;external 'libgtk-3.so'; - - procedure cairo_pattern_set_extend(c:pointer;pe:integer);cdecl;external 'libgtk-3.so'; - function cairo_pattern_create_linear(x0:double;y0:double;x1:double;y1:double):pointer;cdecl;external 'libgtk-3.so'; - procedure cairo_pattern_add_color_stop_rgb(c:pointer;offset:double;r:double;g:double;b:double;a:double);cdecl;external 'libgetk-3.so'; + function cairo_image_surface_create(t:integer;w:integer;h:integer):pointer; + begin + _f_ := static function(t:integer;w:integer;h:integer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(t,w,h); + end + function cairo_image_surface_create_from_png(f:string):pointer; + begin + _f_ := static function(f:string):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(f); + end + function cairo_image_surface_get_width(sf:pointer):integer; + begin + _f_ := static function(sf:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(sf); + end + function cairo_image_surface_get_height(sf:pointer):integer; + begin + _f_ := static function(sf:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(sf); + end + procedure cairo_surface_destroy(sf:pointer); + begin + _f_ := static procedure(sf:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(sf); + end + procedure cairo_set_source_surface(cr:pointer;sf:pointer;x:double;y:double); + begin + _f_ := static procedure(cr:pointer;sf:pointer;x:double;y:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cr,sf,x,y); + end + procedure cairo_pattern_set_extend(c:pointer;pe:integer); + begin + _f_ := static procedure(c:pointer;pe:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,pe); + end + function cairo_pattern_create_linear(x0:double;y0:double;x1:double;y1:double):pointer; + begin + _f_ := static function(x0:double;y0:double;x1:double;y1:double):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(x0,y0,x1,y1); + end + procedure cairo_pattern_add_color_stop_rgb(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 getfuncptrbyname(0,functionname()); + return ##_f_(c,offset,r,g,b,a); + end /////////////////////////window////////// - function gtk_window_list_toplevels():pointer;cdecl;external 'libgtk-3.so'; - procedure gdk_window_move_resize(w:pointer;x:integer;y:integer;wd:integer;h:integer);cdecl;external 'libgtk-3.so'; - procedure gdk_window_resize(w:pointer;wd:integer;h:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_window_begin_move_drag(w:pointer;btn:integer;x:integer;y:integer;t:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_window_begin_resize_drag(w:pointer;e:integer;btn:integer;x:integer;y:integer;t:integer);cdecl;external 'libgtk-3.so'; - function gtk_widget_get_toplevel(w:pointer):pointer;cdecl;external 'libgtk-3.so'; + function gtk_window_list_toplevels():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + procedure gdk_window_move_resize(w:pointer;x:integer;y:integer;wd:integer;h:integer); + begin + _f_ := static procedure(w:pointer;x:integer;y:integer;wd:integer;h:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,x,y,wd,h); + end + procedure gdk_window_resize(w:pointer;wd:integer;h:integer); + begin + _f_ := static procedure(w:pointer;wd:integer;h:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,wd,h); + end + procedure gtk_window_begin_move_drag(w:pointer;btn:integer;x:integer;y:integer;t:integer); + begin + _f_ := static procedure(w:pointer;btn:integer;x:integer;y:integer;t:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,btn,x,y,t); + end + procedure gtk_window_begin_resize_drag(w:pointer;e:integer;btn:integer;x:integer;y:integer;t:integer); + begin + _f_ := static procedure(w:pointer;e:integer;btn:integer;x:integer;y:integer;t:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,e,btn,x,y,t); + end + function gtk_widget_get_toplevel(w:pointer):pointer; + begin + _f_ := static function(w:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end /////////// modal //////////////////////////////// - function gtk_window_is_active(w:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_window_present(w:pointer);cdecl;external 'libgtk-3.so'; - function gtk_window_activate_default(w:pointer):integer;cdecl;external 'libgtk-3.so'; - function gtk_window_activate_focus(w:pointer):integer;cdecl;external 'libgtk-3.so'; - function gtk_window_has_toplevel_focus(w:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_window_set_modal(w:pointer;f:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_window_set_transient_for(w:pointer;p:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_window_get_size(wd:pointer;var h:integer;var w:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_window_set_icon(w:pointer;ico:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_window_set_resizable(p:pointer;f:integer);cdecl;external 'libgtk-3.so'; - function gtk_window_get_resizable(p:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_window_set_decorated(w:pointer;f:integer);cdecl;external 'libgtk-3.so'; - function gtk_window_get_decorated(w:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_window_set_title(w:pointer;t:string);cdecl;external 'libgtk-3.so'; - procedure gtk_window_set_geometry_hints (window:pointer; - eometry_widget:pointer; - geometry:pointer; - geom_mask:integer);cdecl;external 'libgtk-3.so'; - - procedure gtk_window_resize(w:pointer;wd:integer;ht:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_window_resize_to_geometry(w:pointer;wd:integer;ht:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_window_move(w:pointer;x:integer;y:integer);cdecl;external 'libgtk-3.so'; + function gtk_window_is_active(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + procedure gtk_window_present(w:pointer); + begin + _f_ := static procedure(w:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + function gtk_window_activate_default(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + function gtk_window_activate_focus(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + function gtk_window_has_toplevel_focus(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + procedure gtk_window_set_modal(w:pointer;f:integer); + begin + _f_ := static procedure(w:pointer;f:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,f); + end + procedure gtk_window_set_transient_for(w:pointer;p:pointer); + begin + _f_ := static procedure(w:pointer;p:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,p); + end + procedure gtk_window_get_size(wd:pointer;var h:integer;var w:integer); + begin + _f_ := static procedure(wd:pointer;var h:integer;var w:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(wd,h,w); + end + procedure gtk_window_set_icon(w:pointer;ico:pointer); + begin + _f_ := static procedure(w:pointer;ico:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,ico); + end + procedure gtk_window_set_resizable(p:pointer;f:integer); + begin + _f_ := static procedure(p:pointer;f:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p,f); + end + function gtk_window_get_resizable(p:pointer):integer; + begin + _f_ := static function(p:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p); + end + procedure gtk_window_set_decorated(w:pointer;f:integer); + begin + _f_ := static procedure(w:pointer;f:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,f); + end + function gtk_window_get_decorated(w:pointer):integer; + begin + _f_ := static function(w:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + procedure gtk_window_set_title(w:pointer;t:string); + begin + _f_ := static procedure(w:pointer;t:string);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,t); + end + procedure gtk_window_set_geometry_hints (window:pointer;eometry_widget:pointer;geometry:pointer;geom_mask:integer); + begin + _f_ := static procedure(window:pointer;eometry_widget:pointer;geometry:pointer;geom_mask:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(window,eometry_widget,geometry,geom_mask); + end + procedure gtk_window_resize(w:pointer;wd:integer;ht:integer); + begin + _f_ := static procedure(w:pointer;wd:integer;ht:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,wd,ht); + end + procedure gtk_window_resize_to_geometry(w:pointer;wd:integer;ht:integer); + begin + _f_ := static procedure(w:pointer;wd:integer;ht:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,wd,ht); + end + procedure gtk_window_move(w:pointer;x:integer;y:integer); + begin + _f_ := static procedure(w:pointer;x:integer;y:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,x,y); + end ////////////////////// container layout fixed ////////////////////// - procedure gtk_container_add(c1:pointer;c2:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_container_remove(c:pointer;w:pointer); cdecl;external 'libgtk-3.so'; - procedure gtk_container_set_border_width (container:pointer;border_width:integer);cdecl;external 'libgtk-3.so'; - function gtk_fixed_new():pointer;cdecl;external 'libgtk-3.so'; - function gtk_layout_new(h:pointer;v:pointer):pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_layout_get_size(layout:pointer;var width:integer;var height:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_layout_set_size(layout:pointer; width:integer; height:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_fixed_put(fixed:pointer;widget:pointer;x:integer;y:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_layout_put(fixed:pointer;widget:pointer;x:integer;y:integer);cdecl;external 'libgtk-3.so'; - function gtk_layout_get_bin_window(l:pointer):pointer;cdecl;external 'libgtk-3.so'; + procedure gtk_container_add(c1:pointer;c2:pointer); + begin + _f_ := static procedure(c1:pointer;c2:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c1,c2); + end + procedure gtk_container_remove(c:pointer;w:pointer); + begin + _f_ := static procedure(c:pointer;w:pointer); cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c,w); + end + procedure gtk_container_set_border_width (container:pointer;border_width:integer); + begin + _f_ := static procedure(container:pointer;border_width:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(container,border_width); + end + function gtk_fixed_new():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gtk_layout_new(h:pointer;v:pointer):pointer; + begin + _f_ := static function(h:pointer;v:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(h,v); + end + procedure gtk_layout_get_size(layout:pointer;var width:integer;var height:integer); + begin + _f_ := static procedure(layout:pointer;var width:integer;var height:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(layout,width,height); + end + procedure gtk_layout_set_size(layout:pointer; width:integer; height:integer); + begin + _f_ := static procedure(layout:pointer; width:integer; height:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(layout,width,height); + end + procedure gtk_fixed_put(fixed:pointer;widget:pointer;x:integer;y:integer); + begin + _f_ := static procedure(fixed:pointer;widget:pointer;x:integer;y:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(fixed,widget,x,y); + end + procedure gtk_layout_put(fixed:pointer;widget:pointer;x:integer;y:integer); + begin + _f_ := static procedure(fixed:pointer;widget:pointer;x:integer;y:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(fixed,widget,x,y); + end + function gtk_layout_get_bin_window(l:pointer):pointer; + begin + _f_ := static function(l:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(l); + end //////////////////////////// box ///////////////////////// - function gtk_vbox_new(homogeneous:integer;spacing:integer):pointer;cdecl;external 'libgtk-3.so'; - function gtk_hbox_new(homogeneous:integer;spacing:integer):pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_box_pack_end(box:pointer;w:pointer;expand:integer;f:integer;pad:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_box_pack_start(box:pointer;w:pointer;expand:integer;f:integer;pad:integer);cdecl;external 'libgtk-3.so'; - + function gtk_vbox_new(homogeneous:integer;spacing:integer):pointer; + begin + _f_ := static function(homogeneous:integer;spacing:integer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(homogeneous,spacing); + end + function gtk_hbox_new(homogeneous:integer;spacing:integer):pointer; + begin + _f_ := static function(homogeneous:integer;spacing:integer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(homogeneous,spacing); + end + procedure gtk_box_pack_end(box:pointer;w:pointer;expand:integer;f:integer;pad:integer); + begin + _f_ := static procedure(box:pointer;w:pointer;expand:integer;f:integer;pad:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(box,w,expand,f,pad); + end + procedure gtk_box_pack_start(box:pointer;w:pointer;expand:integer;f:integer;pad:integer); + begin + _f_ := static procedure(box:pointer;w:pointer;expand:integer;f:integer;pad:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(box,w,expand,f,pad); + end //////////////////////////menu////////////////////////////////////////////////// function gtk_menu_shell_get_by_positon(h:pointer;pi:integer); begin @@ -3615,143 +4531,360 @@ type tgtkapis = class() //gtk end return 0; end - function gtk_container_get_children(m:pointer):pointer;cdecl;external 'libgtk-3.so'; - function gtk_menu_bar_new():pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_menu_shell_append(mb:pointer;mi:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_menu_shell_prepend(mb:pointer;mi:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_menu_shell_insert(mb:pointer;mi:pointer;idx:integer);cdecl;external 'libgtk-3.so'; - - function gtk_menu_item_new_with_label(s:string):pointer;cdecl;external 'libgtk-3.so'; - function gtk_menu_item_new():pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_menu_item_set_submenu(mb:pointer;mi:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_menu_item_set_use_underline(mi:pointer;l:integer);cdecl;external 'libgtk-3.so'; - function gtk_separator_menu_item_new():pointer;cdecl;external 'libgtk-3.so'; - function gtk_menu_new():pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_menu_item_select(mi:pointer);cdecl;external 'libgtk-3.so'; - function gtk_check_menu_item_new():pointer;cdecl;external 'libgtk-3.so'; - function gtk_check_menu_item_new_with_label(s:string):pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_check_menu_item_set_active(cmi:pointer;ck:integer);cdecl;external 'libgtk-3.so'; - function gtk_check_menu_item_get_active(cmi:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_check_menu_item_toggled(cmi:pointer);cdecl;external 'libgtk-3.so'; - function gtk_menu_item_get_label(mi:pointer):string;cdecl;external 'libgtk-3.so'; - procedure gtk_menu_item_set_label(mi:pointer;l:string);cdecl;external 'libgtk-3.so'; - procedure gtk_menu_set_title(mi:pointer;l:string);cdecl;external 'libgtk-3.so'; - procedure gtk_menu_reorder_child(mb:pointer;mi:pointer;id:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_menu_popup (menu:pointer; - parent_menu_shell:pointer; - parent_menu_item:pointer; - func:pointer; - data:pointer; - button:integer; - activate_time:integer);cdecl;external 'libgtk-3.so'; - procedure popup_at_rect( - menu:pointer; - rect_window:pointer; - var rect : array of integer; - rect_anchor:pointer; - menu_anchor:pointer; - trigger_event:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_menu_item_activate(mi:pointer);cdecl;external 'libgtk-3.so'; - - + function gtk_container_get_children(m:pointer):pointer; + begin + _f_ := static function(m:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(m); + end + function gtk_menu_bar_new():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + procedure gtk_menu_shell_append(mb:pointer;mi:pointer); + begin + _f_ := static procedure(mb:pointer;mi:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(mb,mi); + end + procedure gtk_menu_shell_prepend(mb:pointer;mi:pointer); + begin + _f_ := static procedure(mb:pointer;mi:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(mb,mi); + end + procedure gtk_menu_shell_insert(mb:pointer;mi:pointer;idx:integer); + begin + _f_ := static procedure(mb:pointer;mi:pointer;idx:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(mb,mi,idx); + end + function gtk_menu_item_new_with_label(s:string):pointer; + begin + _f_ := static function(s:string):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s); + end + function gtk_menu_item_new():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + procedure gtk_menu_item_set_submenu(mb:pointer;mi:pointer); + begin + _f_ := static procedure(mb:pointer;mi:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(mb,mi); + end + procedure gtk_menu_item_set_use_underline(mi:pointer;l:integer); + begin + _f_ := static procedure(mi:pointer;l:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(mi,l); + end + function gtk_separator_menu_item_new():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gtk_menu_new():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + procedure gtk_menu_item_select(mi:pointer); + begin + _f_ := static procedure(mi:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(mi); + end + function gtk_check_menu_item_new():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gtk_check_menu_item_new_with_label(s:string):pointer; + begin + _f_ := static function(s:string):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(s); + end + procedure gtk_check_menu_item_set_active(cmi:pointer;ck:integer); + begin + _f_ := static procedure(cmi:pointer;ck:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cmi,ck); + end + function gtk_check_menu_item_get_active(cmi:pointer):integer; + begin + _f_ := static function(cmi:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cmi); + end + procedure gtk_check_menu_item_toggled(cmi:pointer); + begin + _f_ := static procedure(cmi:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cmi); + end + function gtk_menu_item_get_label(mi:pointer):string; + begin + _f_ := static function(mi:pointer):string;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(mi); + end + procedure gtk_menu_item_set_label(mi:pointer;l:string); + begin + _f_ := static procedure(mi:pointer;l:string);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(mi,l); + end + procedure gtk_menu_set_title(mi:pointer;l:string); + begin + _f_ := static procedure(mi:pointer;l:string);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(mi,l); + end + procedure gtk_menu_reorder_child(mb:pointer;mi:pointer;id:integer); + begin + _f_ := static procedure(mb:pointer;mi:pointer;id:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(mb,mi,id); + end + procedure gtk_menu_popup (menu:pointer;parent_menu_shell:pointer;parent_menu_item:pointer;func:pointer;data:pointer;button:integer;activate_time:integer); + begin + _f_ := static procedure(menu:pointer;parent_menu_shell:pointer;parent_menu_item:pointer;func:pointer;data:pointer;button:integer;activate_time:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(menu,parent_menu_shell,parent_menu_item,func,data,button,activate_time); + end + procedure popup_at_rect(menu:pointer;rect_window:pointer;var rect : array of integer;rect_anchor:pointer;menu_anchor:pointer;trigger_event:pointer); + begin + _f_ := static procedure(menu:pointer;rect_window:pointer;var rect : array of integer;rect_anchor:pointer;menu_anchor:pointer;trigger_event:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(menu,rect_window,rect,rect_anchor,menu_anchor,trigger_event); + end + procedure gtk_menu_item_activate(mi:pointer); + begin + _f_ := static procedure(mi:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(mi); + end /////////////////////////// adjust scroll ///////////////////////////////// - function gtk_adjustment_get_type():pointer; cdecl;external 'libgtk-3.so'; + function gtk_adjustment_get_type():pointer; + begin + _f_ := static function():pointer; cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end function GTK_ADJUSTMENT(w); begin return g_type_check_instance_cast(w,gtk_adjustment_get_type()); end - function gtk_adjustment_new(v:double; - lower:double; - upper:double; - step_increment:double; - page_increment:double; - page_size:double):pointer; cdecl;external 'libgtk-3.so'; - function gtk_adjustment_get_value(adj:pointer):double; cdecl;external 'libgtk-3.so'; - procedure gtk_adjustment_set_value(adj:pointer;v:double); cdecl;external 'libgtk-3.so'; - procedure gtk_adjustment_set_page_size(adj:pointer;v:double); cdecl;external 'libgtk-3.so'; - procedure gtk_adjustment_changed(adj:pointer); cdecl;external 'libgtk-3.so'; - procedure gtk_adjustment_value_changed(adj:pointer); cdecl;external 'libgtk-3.so'; - procedure gtk_adjustment_set_lower(adj:pointer;v:double);cdecl;external 'libgtk-3.so'; - procedure gtk_adjustment_set_upper(adj:pointer;v:double);cdecl;external 'libgtk-3.so'; - function gtk_adjustment_get_upper(adj:pointer):double;cdecl;external 'libgtk-3.so'; - function gtk_adjustment_get_lower(adj:pointer):double;cdecl;external 'libgtk-3.so'; - - function gtk_hscrollbar_new(adj:pointer):pointer; cdecl;external 'libgtk-3.so'; - function gtk_vscrollbar_new(adj:pointer):pointer; cdecl;external 'libgtk-3.so'; - procedure gtk_adjustment_configure(adj:pointer; - v:double; - lower:double; - upper:double; - step_increment:double; - page_increment:double; - page_size:double);cdecl;external 'libgtk-3.so'; - + function gtk_adjustment_new(v:double;lower:double;upper:double;step_increment:double;page_increment:double;page_size:double):pointer; + begin + _f_ := static function(v:double;lower:double;upper:double;step_increment:double;page_increment:double;page_size:double):pointer; cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(v,lower,upper,step_increment,page_increment,page_size); + end + function gtk_adjustment_get_value(adj:pointer):double; + begin + _f_ := static function(adj:pointer):double; cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(adj); + end + procedure gtk_adjustment_set_value(adj:pointer;v:double); + begin + _f_ := static procedure(adj:pointer;v:double); cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(adj,v); + end + procedure gtk_adjustment_set_page_size(adj:pointer;v:double); + begin + _f_ := static procedure(adj:pointer;v:double); cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(adj,v); + end + procedure gtk_adjustment_changed(adj:pointer); + begin + _f_ := static procedure(adj:pointer); cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(adj); + end + procedure gtk_adjustment_value_changed(adj:pointer); + begin + _f_ := static procedure(adj:pointer); cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(adj); + end + procedure gtk_adjustment_set_lower(adj:pointer;v:double); + begin + _f_ := static procedure(adj:pointer;v:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(adj,v); + end + procedure gtk_adjustment_set_upper(adj:pointer;v:double); + begin + _f_ := static procedure(adj:pointer;v:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(adj,v); + end + function gtk_adjustment_get_upper(adj:pointer):double; + begin + _f_ := static function(adj:pointer):double;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(adj); + end + function gtk_adjustment_get_lower(adj:pointer):double; + begin + _f_ := static function(adj:pointer):double;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(adj); + end + function gtk_hscrollbar_new(adj:pointer):pointer; + begin + _f_ := static function(adj:pointer):pointer; cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(adj); + end + function gtk_vscrollbar_new(adj:pointer):pointer; + begin + _f_ := static function(adj:pointer):pointer; cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(adj); + end + procedure gtk_adjustment_configure(adj:pointer;v:double;lower:double;upper:double;step_increment:double;page_increment:double;page_size:double); + begin + _f_ := static procedure(adj:pointer;v:double;lower:double;upper:double;step_increment:double;page_increment:double;page_size:double);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(adj,v,lower,upper,step_increment,page_increment,page_size); + end //////////////////////////////////////////////////// - function gtk_frame_new(lbl:string):pointer;cdecl;external 'libgtk-3.so'; - ///////////////////////////////////// - function gtk_calendar_new():pointer;cdecl;external 'libgtk-3.so'; - + function gtk_frame_new(lbl:string):pointer; + begin + _f_ := static function(lbl:string):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(lbl); + end + function gtk_calendar_new():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end ///////////////////////////////// - function gtk_spinner_new():pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_spinner_start(spn:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_spinner_stop(spn:pointer);cdecl;external 'libgtk-3.so'; + function gtk_spinner_new():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + procedure gtk_spinner_start(spn:pointer); + begin + _f_ := static procedure(spn:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(spn); + end + procedure gtk_spinner_stop(spn:pointer); + begin + _f_ := static procedure(spn:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(spn); + end /////////////////////////////// - function gtk_progress_bar_new():pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_progress_bar_set_text(pb:pointer;t:string);cdecl;external 'libgtk-3.so'; - procedure gtk_progress_bar_set_show_text(pb:pointer;s:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_progress_bar_set_fraction(pb:pointer;p:double);cdecl;external 'libgtk-3.so'; - procedure gtk_progress_bar_set_pulse_step(pb:pointer;p:double);cdecl;external 'libgtk-3.so'; - function gtk_progress_bar_get_fraction(pb:pointer):double;cdecl;external 'libgtk-3.so'; - function gtk_progress_bar_set_inverted(pb:pointer;v:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_progress_bar_pulse(pb:pointer);cdecl;external 'libgtk-3.so'; +// function gtk_progress_bar_new():pointer;cdecl;external 'libgtk-3.so'; +// procedure gtk_progress_bar_set_text(pb:pointer;t:string);cdecl;external 'libgtk-3.so'; +// procedure gtk_progress_bar_set_show_text(pb:pointer;s:integer);cdecl;external 'libgtk-3.so'; +// procedure gtk_progress_bar_set_fraction(pb:pointer;p:double);cdecl;external 'libgtk-3.so'; +// procedure gtk_progress_bar_set_pulse_step(pb:pointer;p:double);cdecl;external 'libgtk-3.so'; +// function gtk_progress_bar_get_fraction(pb:pointer):double;cdecl;external 'libgtk-3.so'; +// function gtk_progress_bar_set_inverted(pb:pointer;v:integer);cdecl;external 'libgtk-3.so'; +// procedure gtk_progress_bar_pulse(pb:pointer);cdecl;external 'libgtk-3.so'; //procedure gtk_progress_configure(pb:pointer;v:double;min:double;max:double);cdecl;external 'libgtk-3.so'; //////////////////////////////label///////////////////////////////////// - function gtk_label_new(t:string):pointer;cdecl;external 'libgtk-3.so'; - function gtk_label_get_text(w:pointer):string;cdecl;external 'libgtk-3.so'; - procedure gtk_label_set_text(l:pointer;t:string);cdecl;external 'libgtk-3.so'; - procedure gtk_label_set_selectable(l:pointer;s:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_label_set_markup(l:pointer;t:string);cdecl;external 'libgtk-3.so'; +// function gtk_label_new(t:string):pointer;cdecl;external 'libgtk-3.so'; +// function gtk_label_get_text(w:pointer):string;cdecl;external 'libgtk-3.so'; +// procedure gtk_label_set_text(l:pointer;t:string);cdecl;external 'libgtk-3.so'; +// procedure gtk_label_set_selectable(l:pointer;s:integer);cdecl;external 'libgtk-3.so'; +// procedure gtk_label_set_markup(l:pointer;t:string);cdecl;external 'libgtk-3.so'; //////////////// button btn ///////////////// - function gtk_button_get_label(b:pointer):string;cdecl;external 'libgtk-3.so'; - function gtk_button_get_event_window(b:pointer):pointer;cdecl;external 'libgtk-3.so'; - function gtk_button_new_with_label(c:string):pointer;cdecl;external 'libgtk-3.so'; - function gtk_button_new():pointer;cdecl;external 'libgtk-3.so'; - function gtk_check_button_new():pointer;cdecl;external 'libgtk-3.so'; - function gtk_check_button_new_with_label(l:string):pointer;cdecl;external 'libgtk-3.so'; - function gtk_radio_button_new(g:pointer):pointer;cdecl;external 'libgtk-3.so'; - function gtk_radio_button_new_from_widget(g:pointer):pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_toggle_button_set_active(tg:pointer;ac:integer);cdecl;external 'libgtk-3.so'; - function gtk_toggle_button_get_active(tg:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_button_clicked(b:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_radio_button_set_group(rbtn:pointer;lst:pointer);cdecl;external 'libgtk-3.so'; +// function gtk_button_get_label(b:pointer):string;cdecl;external 'libgtk-3.so'; +// function gtk_button_get_event_window(b:pointer):pointer;cdecl;external 'libgtk-3.so'; +// function gtk_button_new_with_label(c:string):pointer;cdecl;external 'libgtk-3.so'; +// function gtk_button_new():pointer;cdecl;external 'libgtk-3.so'; +// function gtk_check_button_new():pointer;cdecl;external 'libgtk-3.so'; +// function gtk_check_button_new_with_label(l:string):pointer;cdecl;external 'libgtk-3.so'; +// function gtk_radio_button_new(g:pointer):pointer;cdecl;external 'libgtk-3.so'; +// function gtk_radio_button_new_from_widget(g:pointer):pointer;cdecl;external 'libgtk-3.so'; +// procedure gtk_toggle_button_set_active(tg:pointer;ac:integer);cdecl;external 'libgtk-3.so'; +// function gtk_toggle_button_get_active(tg:pointer):integer;cdecl;external 'libgtk-3.so'; +// procedure gtk_button_clicked(b:pointer);cdecl;external 'libgtk-3.so'; +// procedure gtk_radio_button_set_group(rbtn:pointer;lst:pointer);cdecl;external 'libgtk-3.so'; ////////////////////////// dialog /////////////////////////////////////////////////////////// - function gtk_dialog_run(d:pointer):integer; cdecl;external 'libgtk-3.so'; - procedure gtk_dialog_response(w:pointer;id:integer); cdecl;external 'libgtk-3.so'; - function gtk_file_chooser_dialog_new(t:string;p:pointer;act:integer;bstring1:string;bvalue1:integer;bstring2:string;bvalue2:integer;pend:pointer):pointer ; cdecl;external 'libgtk-3.so'; - function gtk_file_chooser_get_filename(p:pointer):string;cdecl;external 'libgtk-3.so'; - function gtk_file_chooser_set_filename(p:pointer;n:string):integer;cdecl;external 'libgtk-3.so'; - procedure gtk_file_chooser_set_select_multiple(p:pointer;m:integer);cdecl;external 'libgtk-3.so'; - function gtk_file_chooser_get_filenames(p:pointer):pointer ;cdecl;external 'libgtk-3.so'; - function gtk_font_chooser_dialog_new(t:string;p:pointer):pointer;cdecl;external 'libgtk-3.so'; - function gtk_font_selection_dialog_new(t:string):pointer;cdecl;external 'libgtk-3.so'; - function gtk_font_selection_dialog_get_font_name(d:pointer):string;cdecl;external 'libgtk-3.so'; - function gtk_font_selection_dialog_get_preview_text(p:pointer):string;cdecl;external 'libgtk-3.so'; - procedure gtk_font_selection_dialog_set_preview_text(p:pointer;t:string); cdecl;external 'libgtk-3.so'; - function gtk_font_selection_dialog_set_font_name(p:pointer;f:string):integer; cdecl;external 'libgtk-3.so'; - procedure gtk_widget_modify_font(w:pointer;p:pointer); cdecl;external 'libgtk-3.so'; - function gtk_color_selection_dialog_get_type():pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_color_selection_set_current_color(w:pointer;c:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_color_selection_get_current_color(w:pointer;c:pointer);cdecl;external 'libgtk-3.so'; - - function gdk_color_parse(cs:string;c:pointer):integer;cdecl;external 'libgtk-3.so'; + function gtk_dialog_run(d:pointer):integer; + begin + _f_ := static function(d:pointer):integer; cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(d); + end + procedure gtk_dialog_response(w:pointer;id:integer); + begin + _f_ := static procedure(w:pointer;id:integer); cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,id); + end + function gtk_file_chooser_dialog_new(t:string;p:pointer;act:integer;bstring1:string;bvalue1:integer;bstring2:string;bvalue2:integer;pend:pointer):pointer ; + begin + _f_ := static function(t:string;p:pointer;act:integer;bstring1:string;bvalue1:integer;bstring2:string;bvalue2:integer;pend:pointer):pointer ; cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(t,p,act,bstring1,bvalue1,bstring2,bvalue2,pend); + end + function gtk_file_chooser_get_filename(p:pointer):string; + begin + _f_ := static function(p:pointer):string;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p); + end + function gtk_file_chooser_set_filename(p:pointer;n:string):integer; + begin + _f_ := static function(p:pointer;n:string):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p,n); + end + procedure gtk_file_chooser_set_select_multiple(p:pointer;m:integer); + begin + _f_ := static procedure(p:pointer;m:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p,m); + end + function gtk_file_chooser_get_filenames(p:pointer):pointer ; + begin + _f_ := static function(p:pointer):pointer ;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p); + end + function gtk_font_chooser_dialog_new(t:string;p:pointer):pointer; + begin + _f_ := static function(t:string;p:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(t,p); + end + function gtk_font_selection_dialog_new(t:string):pointer; + begin + _f_ := static function(t:string):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(t); + end + function gtk_font_selection_dialog_get_font_name(d:pointer):string; + begin + _f_ := static function(d:pointer):string;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(d); + end + function gtk_font_selection_dialog_get_preview_text(p:pointer):string; + begin + _f_ := static function(p:pointer):string;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p); + end + procedure gtk_font_selection_dialog_set_preview_text(p:pointer;t:string); + begin + _f_ := static procedure(p:pointer;t:string); cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p,t); + end + function gtk_font_selection_dialog_set_font_name(p:pointer;f:string):integer; + begin + _f_ := static function(p:pointer;f:string):integer; cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(p,f); + end + procedure gtk_widget_modify_font(w:pointer;p:pointer); + begin + _f_ := static procedure(w:pointer;p:pointer); cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,p); + end + function gtk_color_selection_dialog_get_type():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + procedure gtk_color_selection_set_current_color(w:pointer;c:pointer); + begin + _f_ := static procedure(w:pointer;c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,c); + end + procedure gtk_color_selection_get_current_color(w:pointer;c:pointer); + begin + _f_ := static procedure(w:pointer;c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,c); + end + function gdk_color_parse(cs:string;c:pointer):integer; + begin + _f_ := static function(cs:string;c:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(cs,c); + end ////////////////// evntbox //////////////////////////// - function gtk_event_box_new():pointer;cdecl;external 'libgtk-3.so'; + function gtk_event_box_new():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end //获得image function GTK_WIDGET(w); //gtkwidget begin @@ -3782,75 +4915,238 @@ type tgtkapis = class() //gtk begin return g_type_check_instance_cast(w,gtk_color_selection_dialog_get_type()); end - procedure gtk_widget_set_parent_window(w:pointer;p:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_get_parent_window(w:pointer;p:pointer);cdecl;external 'libgtk-3.so'; - function gtk_widget_get_type():pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_widget_modify_bg(w:pointer;tyle:integer;c:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_layout_move(l:pointer;w:pointer;x:integer;y:integer);cdecl;external 'libgtk-3.so'; - procedure gtk_grab_add(w:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_destroy(w:pointer);cdecl;external 'libgtk-3.so'; - function g_thread_self():pointer;cdecl;external 'libgtk-3.so'; - function gtk_get_major_version ():integer;cdecl;external 'libgtk-3.so'; - function gtk_get_micro_version ():integer;cdecl;external 'libgtk-3.so'; - function gtk_get_binary_age ():integer;cdecl;external 'libgtk-3.so'; - function g_main_context_default():pointer;cdecl;external 'libgtk-3.so'; - function g_main_context_pending(gc:pointer):integer;cdecl;external 'libgtk-3.so'; - function g_main_context_iteration(gc:pointer;bk:integer):integer;cdecl;external 'libgtk-3.so'; - function g_main_context_get_poll_func(d:pointer):pointer;cdecl;external 'libgtk-3.so'; - - function gtk_main_level():integer;external 'libgtk-3.so'; - function g_signal_connect_data(instance:pointer; detailed_signal:string; c_handler:pointer;data:pointer;dd:pointer;f:integer):integer;cdecl;external 'libgtk-3.so'; - function g_signal_new(signal_name:string; - itype:pointer; - signal_flags:integer; - class_offset:integer; - accumulator:pointer; - accu_data:pointer; - c_marshaller:pointer; - return_type:pointer; - n_params:integer; - p1:pointer; - p2:pointer):integer;cdecl;external 'libgtk-3.so'; - procedure g_signal_emit_by_name(w:pointer;n:string;p1:pointer;p2:pointer);cdecl;external 'libgtk-3.so'; - function gtk_container_get_type():pointer;cdecl;external 'libgtk-3.so'; - function gtk_window_get_type():pointer;cdecl;external 'libgtk-3.so'; - function gdk_window_get_type():pointer;cdecl;external 'libgtk-3.so'; - function g_type_check_instance_cast(instance:pointer;ty:pointer):pointer;cdecl;external 'libgtk-3.so'; - - function gtk_window_new(lev:integer):pointer; cdecl;external 'libgtk-3.so'; - procedure gdk_window_set_back_pixmap(window:pointer;pixmap:pointer;parent_relative:integer);cdecl;external 'libgtk-x11-2.0.so'; - procedure gdk_pixbuf_ref(pixbuf:pointer);cdecl;external 'libgtk-3.so'; - procedure gdk_pixbuf_unref(pixbuf:pointer);cdecl;external 'libgtk-3.so'; - - function gdk_cursor_new(c:integer):pointer;cdecl;external 'libgtk-3.so'; - procedure gdk_window_set_cursor(w:pointer;c:pointer);cdecl;external 'libgtk-3.so'; - function gtk_widget_get_window(g:pointer):pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_window_get_position(g:pointer;var x:integer;var y:integer);cdecl;external 'libgtk-3.so'; - function gtk_image_new_from_file(f:string):pointer;cdecl;external 'libgtk-3.so'; - procedure gtk_widget_show_all(window:pointer);cdecl;external 'libgtk-3.so';//'libgtk-x11-2.0.so'; - procedure gtk_window_maximize(window:pointer);cdecl;external 'libgtk-3.so';//'libgtk-x11-2.0.so'; - procedure gtk_widget_show(window:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_show_now(window:pointer);cdecl;external 'libgtk-3.so'; - procedure gtk_widget_hide(window:pointer);cdecl;external 'libgtk-3.so'; + procedure gtk_widget_set_parent_window(w:pointer;p:pointer); + begin + _f_ := static procedure(w:pointer;p:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,p); + end + procedure gtk_widget_get_parent_window(w:pointer;p:pointer); + begin + _f_ := static procedure(w:pointer;p:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,p); + end + function gtk_widget_get_type():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + procedure gtk_widget_modify_bg(w:pointer;tyle:integer;c:pointer); + begin + _f_ := static procedure(w:pointer;tyle:integer;c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,tyle,c); + end + procedure gtk_layout_move(l:pointer;w:pointer;x:integer;y:integer); + begin + _f_ := static procedure(l:pointer;w:pointer;x:integer;y:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(l,w,x,y); + end + procedure gtk_grab_add(w:pointer); + begin + _f_ := static procedure(w:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + procedure gtk_widget_destroy(w:pointer); + begin + _f_ := static procedure(w:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end + function g_thread_self():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gtk_get_major_version ():integer; + begin + _f_ := static function():integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gtk_get_micro_version ():integer; + begin + _f_ := static function():integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gtk_get_binary_age ():integer; + begin + _f_ := static function():integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function g_main_context_default():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function g_main_context_pending(gc:pointer):integer; + begin + _f_ := static function(gc:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(gc); + end + function g_main_context_iteration(gc:pointer;bk:integer):integer; + begin + _f_ := static function(gc:pointer;bk:integer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(gc,bk); + end + function g_main_context_get_poll_func(d:pointer):pointer; + begin + _f_ := static function(d:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(d); + end + function gtk_main_level():integer; + begin + _f_ := static function():integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function g_signal_connect_data(instance:pointer; detailed_signal:string; c_handler:pointer;data:pointer;dd:pointer;f:integer):integer; + begin + _f_ := static function(instance:pointer; detailed_signal:string; c_handler:pointer;data:pointer;dd:pointer;f:integer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(instance,detailed_signal,c_handler,data,dd,f); + end + function g_signal_new(signal_name:string;itype:pointer;signal_flags:integer;class_offset:integer;accumulator:pointer;accu_data:pointer;c_marshaller:pointer;return_type:pointer;n_params:integer;p1:pointer;p2:pointer):integer; + begin + _f_ := static function(signal_name:string;itype:pointer;signal_flags:integer;class_offset:integer;accumulator:pointer;accu_data:pointer;c_marshaller:pointer;return_type:pointer;n_params:integer;p1:pointer;p2:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(signal_name,itype,signal_flags,class_offset,accumulator,accu_data,c_marshaller,return_type,n_params,p1,p2); + end + procedure g_signal_emit_by_name(w:pointer;n:string;p1:pointer;p2:pointer); + begin + _f_ := static procedure(w:pointer;n:string;p1:pointer;p2:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,n,p1,p2); + end + function gtk_container_get_type():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gtk_window_get_type():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gdk_window_get_type():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function g_type_check_instance_cast(instance:pointer;ty:pointer):pointer; + begin + _f_ := static function(instance:pointer;ty:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(instance,ty); + end + function gtk_window_new(lev:integer):pointer; + begin + _f_ := static function(lev:integer):pointer; cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(lev); + end + procedure gdk_window_set_back_pixmap(window:pointer;pixmap:pointer;parent_relative:integer); + begin + _f_ := static procedure(window:pointer;pixmap:pointer;parent_relative:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(window,pixmap,parent_relative); + end + procedure gdk_pixbuf_ref(pixbuf:pointer); + begin + _f_ := static procedure(pixbuf:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(pixbuf); + end + procedure gdk_pixbuf_unref(pixbuf:pointer); + begin + _f_ := static procedure(pixbuf:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(pixbuf); + end + function gdk_cursor_new(c:integer):pointer; + begin + _f_ := static function(c:integer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(c); + end + procedure gdk_window_set_cursor(w:pointer;c:pointer); + begin + _f_ := static procedure(w:pointer;c:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w,c); + end + function gtk_widget_get_window(g:pointer):pointer; + begin + _f_ := static function(g:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(g); + end + procedure gtk_window_get_position(g:pointer;var x:integer;var y:integer); + begin + _f_ := static procedure(g:pointer;var x:integer;var y:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(g,x,y); + end + function gtk_image_new_from_file(f:string):pointer; + begin + _f_ := static function(f:string):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(f); + end + procedure gtk_widget_show_all(window:pointer); + begin + _f_ := static procedure(window:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(window); + end + procedure gtk_window_maximize(window:pointer); + begin + _f_ := static procedure(window:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(window); + end + procedure gtk_widget_show(window:pointer); + begin + _f_ := static procedure(window:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(window); + end + procedure gtk_widget_show_now(window:pointer); + begin + _f_ := static procedure(window:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(window); + end + procedure gtk_widget_hide(window:pointer); + begin + _f_ := static procedure(window:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(window); + end //-lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 //-lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lharfbuzz -lfontconfig -lfreetype - procedure gdk_pixbuf_render_pixmap_and_mask(pixbuf:pointer; - var pixmap_return:int64; - var mask_return:int64; - alpha_threshold:integer); cdecl; - external 'libgtk-x11-2.0.so'; + //procedure gdk_pixbuf_render_pixmap_and_mask(pixbuf:pointer;var pixmap_return:int64;var mask_return:int64;alpha_threshold:integer); cdecl;external 'libgtk-x11-2.0.so'; //function gtk_image_get_pixbuf (image:pointer):pointer; cdecl;external 'libgtk-x11-2.0.so'; //function gdk_pixbuf_copy(image:pointer):pointer; cdecl;external 'libgtk-x11-2.0.so'; - procedure gtk_image_set_from_file (img:pointer;filename:string);cdecl;external 'libgtk-3.so'; - function gtk_image_new_from_pixbuf(image:pointer):pointer; cdecl;external 'libgtk-3.so'; - function gtk_image_new():pointer; cdecl;external 'libgtk-3.so'; - function gdk_pixbuf_get_width(src_pixbuf:pointer):integer;cdecl;external 'libgtk-3.so'; - function gdk_pixbuf_get_height(src_pixbuf:pointer):integer;cdecl;external 'libgtk-3.so'; + procedure gtk_image_set_from_file (img:pointer;filename:string); + begin + _f_ := static procedure(img:pointer;filename:string);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(img,filename); + end + function gtk_image_new_from_pixbuf(image:pointer):pointer; + begin + _f_ := static function(image:pointer):pointer; cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(image); + end + function gtk_image_new():pointer; + begin + _f_ := static function():pointer; cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + function gdk_pixbuf_get_width(src_pixbuf:pointer):integer; + begin + _f_ := static function(src_pixbuf:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(src_pixbuf); + end + function gdk_pixbuf_get_height(src_pixbuf:pointer):integer; + begin + _f_ := static function(src_pixbuf:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(src_pixbuf); + end ////////////////////libc//////////////////////////////// - function popen(e:string;f:string):pointer;cdecl;external "libc.so.6"; - function pclose(p:pointer):integer;cdecl;external "libc.so.6"; - function fgets(var e:string;f:integer;ptr:pointer):pointer;cdecl;external "libc.so.6"; + function popen(e:string;f:string):pointer; + begin + _f_ := static function(e:string;f:string):pointer;cdecl;external getfuncptrbyname("libc",functionname()); + return ##_f_(e,f); + end + function pclose(p:pointer):integer; + begin + _f_ := static function(p:pointer):integer;cdecl;external getfuncptrbyname("libc",functionname()); + return ##_f_(p); + end + function fgets(var e:string;f:integer;ptr:pointer):pointer; + begin + _f_ := static function(var e:string;f:integer;ptr:pointer):pointer;cdecl;external getfuncptrbyname("libc",functionname()); + return ##_f_(e,f,ptr); + end function exec_command_line(cmd) begin len := 1024; @@ -4906,7 +6202,11 @@ type tgtk_ctl_object = class(_gtkeventtype) CallTslVclProc(_const.WM_SIZE,0,makelong(w,h)); end fimhandle; - function gdk_window_get_state(w:pointer):integegr;cdecl;external 'libgtk-3.so'; + function gdk_window_get_state(w:pointer):integegr; + begin + _f_ := static function(w:pointer):integegr;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(w); + end function GtkEventDispatchA(a,b,c,d);//gtk消息分发 begin global g_gtk_scroll_lock; @@ -5857,20 +7157,26 @@ type tgtk_ctl_object = class(_gtkeventtype) static _const; private FHandle; - function gtk_widget_get_type():pointer;cdecl;external 'libgtk-3.so'; - procedure g_signal_handler_disconnect(instance:pointer;id:integer);cdecl;external 'libgtk-3.so'; - function g_signal_connect_data(instance:pointer; detailed_signal:string; c_handler:pointer;data:pointer;dd:pointer;f:integer):pointer;cdecl;external 'libgtk-3.so'; - function g_signal_new(signal_name:string; - itype:pointer; - signal_flags:integer; - class_offset:integer; - accumulator:pointer; - accu_data:pointer; - c_marshaller:pointer; - return_type:pointer; - n_params:integer; - p1:pointer; - p2:pointer):integer;cdecl;external 'libgtk-3.so'; + function gtk_widget_get_type():pointer; + begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); + end + procedure g_signal_handler_disconnect(instance:pointer;id:integer); + begin + _f_ := static procedure(instance:pointer;id:integer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(instance,id); + end + function g_signal_connect_data(instance:pointer; detailed_signal:string; c_handler:pointer;data:pointer;dd:pointer;f:integer):pointer; + begin + _f_ := static function(instance:pointer; detailed_signal:string; c_handler:pointer;data:pointer;dd:pointer;f:integer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(instance,detailed_signal,c_handler,data,dd,f); + end + function g_signal_new(signal_name:string;itype:pointer;signal_flags:integer;class_offset:integer;accumulator:pointer;accu_data:pointer;c_marshaller:pointer;return_type:pointer;n_params:integer;p1:pointer;p2:pointer):integer; + begin + _f_ := static function(signal_name:string;itype:pointer;signal_flags:integer;class_offset:integer;accumulator:pointer;accu_data:pointer;c_marshaller:pointer;return_type:pointer;n_params:integer;p1:pointer;p2:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(signal_name,itype,signal_flags,class_offset,accumulator,accu_data,c_marshaller,return_type,n_params,p1,p2); + end FConnectNameIds; FConnectHandlers; FValues; @@ -6867,13 +8173,26 @@ type tgtk_ctl_window = class(tgtk_ctl_scroll_window) return inherited; end end - - - -function g_main_context_new():pointer;cdecl;external "libgtk-3.so"; -function g_main_context_ref(m:pointer):pointer;cdecl;external "libgtk-3.so"; -function g_main_context_acquire(m:pointer):integer;cdecl;external "libgtk-3.so"; -procedure g_main_context_release(m:pointer);cdecl;external "libgtk-3.so"; +function g_main_context_new():pointer; +begin + _f_ := static function():pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(); +end +function g_main_context_ref(m:pointer):pointer; +begin + _f_ := static function(m:pointer):pointer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(m); +end +function g_main_context_acquire(m:pointer):integer; +begin + _f_ := static function(m:pointer):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(m); +end +procedure g_main_context_release(m:pointer); +begin + _f_ := static procedure(m:pointer);cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(m); +end type tGtkMessageQueue=class //消息队列 {** @ignore(忽略) @@ -7410,7 +8729,11 @@ CAIRO_OPERATOR_HSL_SATURATION:=26; CAIRO_OPERATOR_HSL_COLOR:=27; CAIRO_OPERATOR_HSL_LUMINOSITY:=28; } -function gtk_init_check(argc:string;argcv:string):integer;cdecl;external 'libgtk-3.so'; +function gtk_init_check(argc:string;argcv:string):integer; +begin + _f_ := static function(argc:string;argcv:string):integer;cdecl;external getfuncptrbyname(0,functionname()); + return ##_f_(argc,argcv); +end function igtk(); begin global g_w_i_datas,g_w_c_width, g_gtk_buttontable,g_gtk_keytable,g_gtk_call_handler_manager; @@ -7505,6 +8828,20 @@ function dotparamseevents(a:pointer; b:string;p1:pointer;p2:pointer):pointer; begin return _gtkeventcall_(a,GetGtkEventNameOrId(b),p1,p2); end +function getfuncptrbyname(lib,n); +begin + case lib of + "libc": + begin + return getdlsymaddress("libc.so.6",n); + end + "gtk": + begin + + end + else return getdlsymaddress("libgtk-3.so.0",n); + end +end initialization igtk(); finalization diff --git a/funcext/tvclib/utslvclcefinterface.tsf b/funcext/tvclib/utslvclcefinterface.tsf index 7dc18bd..9a33f8f 100644 --- a/funcext/tvclib/utslvclcefinterface.tsf +++ b/funcext/tvclib/utslvclcefinterface.tsf @@ -15,8 +15,8 @@ procedure cef_shutdown(); procedure cef_run_message_loop(); procedure cef_do_message_loop_work(); function cef_execute_process(arg:pointer;app:pointer;dow:pointer):integer; -function IsBadReadPtr(ptr:pointer;ucb:pointer):integer; -function IsBadWritePtr(ptr:pointer;ucb:pointer):integer; +//function IsBadReadPtr(ptr:pointer;ucb:pointer):integer; +//function IsBadWritePtr(ptr:pointer;ucb:pointer):integer; type cef_point_t = class(tslcstructureobj) private static SSTRUCT; @@ -224,9 +224,10 @@ type tcefmessage = class(TTSLProcessMsg) function create(ptr); begin inherited; - lb := LoadLibraryA("libcef.dll"); - p := GetProcAddress(lb,"cef_do_message_loop_work"); - proc := p; + proc := getceffunction("cef_do_message_loop_work"); + //lb := LoadLibraryA("libcef.dll"); + //p := GetProcAddress(lb,"cef_do_message_loop_work"); + //proc := p; end function add(); begin @@ -237,8 +238,24 @@ type tcefmessage = class(TTSLProcessMsg) tslRemoveProcess(_getptr_()); end private - procedure tslAddProcess(p:pointer);cdecl;external "tslkrnl.dll" name "tslAddProcess"; - procedure tslRemoveProcess(p:pointer);cdecl;external "tslkrnl.dll" name "tslRemoveProcess"; + procedure tslAddProcess(p:pointer); + begin + {$ifdef linux} + _f_ := static procedure(p:pointer);cdecl;external getdlsymaddress("libTSLkrnl.so","tslAddProcess"); + {$else} + _f_ := static procedure(p:pointer);cdecl;external getdlsymaddress("tslkrnl.dll","tslAddProcess"); + {$endif} + return ##_f_(p); + end + procedure tslRemoveProcess(p:pointer); + begin + {$ifdef linux} + _f_ := static procedure(p:pointer);cdecl;external getdlsymaddress("libTSLkrnl.so","tslRemoveProcess"); + {$else} + _f_ := static procedure(p:pointer);cdecl;external getdlsymaddress("tslkrnl.dll","tslRemoveProcess"); + {$endif} + return ##_f_(p); + end end type TTSLProcessMsg =class(tslcstructureobj) private @@ -506,14 +523,46 @@ type cef_string_map_t = class() private fptr; private - function cef_string_map_alloc():pointer;cdecl;external "libcef.dll" name "cef_string_map_alloc"; - function cef_string_map_size(map:pointer):pointer;cdecl;external "libcef.dll" name "cef_string_map_size"; - function cef_string_map_find(map:pointer;key:pointer;value:pointer):pointer;cdecl;external "libcef.dll" name "cef_string_map_find"; - function cef_string_map_key(map:pointer;index:pointer;key:pointer):integer;cdecl;external "libcef.dll" name "cef_string_map_key"; - function cef_string_map_value(map:pointer;index:pointer;value:pointer):integer;cdecl;external "libcef.dll" name "cef_string_map_value"; - function cef_string_map_append(map:pointer;key:pointer;value:pointer):integer;cdecl;external "libcef.dll" name "cef_string_map_append"; - procedure cef_string_map_clear(map:pointer);cdecl;external "libcef.dll" name "cef_string_map_clear"; - procedure cef_string_map_free(map:pointer);cdecl;external "libcef.dll" name "cef_string_map_free"; + function cef_string_map_alloc():pointer; + begin + _f_ := static function():pointer;cdecl;external getceffunction(functionname()); + return ##_f_(); + end + function cef_string_map_size(map:pointer):pointer; + begin + _f_ := static function(map:pointer):pointer;cdecl;external getceffunction(functionname()); + return ##_f_(map); + end + function cef_string_map_find(map:pointer;key:pointer;value:pointer):pointer; + begin + _f_ := static function(map:pointer;key:pointer;value:pointer):pointer;cdecl;external getceffunction(functionname()); + return ##_f_(map,key,value); + end + function cef_string_map_key(map:pointer;index:pointer;key:pointer):integer; + begin + _f_ := static function(map:pointer;index:pointer;key:pointer):integer;cdecl;external getceffunction(functionname()); + return ##_f_(map,index,key); + end + function cef_string_map_value(map:pointer;index:pointer;value:pointer):integer; + begin + _f_ := static function(map:pointer;index:pointer;value:pointer):integer;cdecl;external getceffunction(functionname()); + return ##_f_(map,index,value); + end + function cef_string_map_append(map:pointer;key:pointer;value:pointer):integer; + begin + _f_ := static function(map:pointer;key:pointer;value:pointer):integer;cdecl;external getceffunction(functionname()); + return ##_f_(map,key,value); + end + procedure cef_string_map_clear(map:pointer); + begin + _f_ := static procedure(map:pointer);cdecl;external getceffunction(functionname()); + return ##_f_(map); + end + procedure cef_string_map_free(map:pointer); + begin + _f_ := static procedure(map:pointer);cdecl;external getceffunction(functionname()); + return ##_f_(map); + end end type cef_main_args_t=class(tslcstructureobj) @@ -5742,11 +5791,8 @@ type cef_log_severity_t = class //LOGSEVERITY_DISABLE = 99 end -function IsBadReadPtr(ptr:pointer;ucb:pointer):integer;stdcall;external "Kernel32.dll" name "IsBadReadPtr"; -function IsBadWritePtr(ptr:pointer;ucb:pointer):integer;stdcall;external "Kernel32.dll" name "IsBadWritePtr"; -function LoadLibraryA(txt:string):POINTER;stdcall;external "Kernel32.dll" name "LoadLibraryA"; -function FreeLibrary(hd:pointer):integer;stdcall;external "Kernel32.dll" name "FreeLibrary"; -function GetProcAddress(h:pointer;n:string):pointer;stdcall;external "Kernel32.dll" name "GetProcAddress"; +//function IsBadReadPtr(ptr:pointer;ucb:pointer):integer;stdcall;external "Kernel32.dll" name "IsBadReadPtr"; +//function IsBadWritePtr(ptr:pointer;ucb:pointer):integer;stdcall;external "Kernel32.dll" name "IsBadWritePtr"; function addcefref(id); begin global g_cef_counter_; @@ -5846,11 +5892,11 @@ begin for i,v in g_cef_objects_ do begin ptr := v._getptr_(); - if IsBadReadPtr(ptr,v.memsize()) then //指针无效 + {if IsBadReadPtr(ptr,v.memsize()) then //指针无效 begin rs[i] := nil; continue; - end + end } isv := v._getvalue_("is_valid"); if isv then begin @@ -5878,69 +5924,204 @@ begin end /// Create a new cef_drag_data_t object. //CEF_EXPORT cef_drag_data_t* cef_drag_data_create(void); -function cef_drag_data_create():pointer;cdecl;external "libcef.dll" name "cef_drag_data_create"; +function cef_drag_data_create():pointer; +begin + _f_ := static function():pointer;cdecl;external getceffunction(functionname()); + return ##_f_(); +end /// Create a new cef_stream_writer_t object for a file. //CEF_EXPORT cef_stream_writer_t* cef_stream_writer_create_for_file(const cef_string_t* fileName); -function cef_stream_writer_create_for_file(name:pointer):pointer;cdecl;external "libcef.dll" name "cef_stream_writer_create_for_file"; +function cef_stream_writer_create_for_file(name:pointer):pointer; +begin + _f_ := static function(name:pointer):pointer;cdecl;external getceffunction(functionname()); + return ##_f_(name); +end //CEF_EXPORT cef_process_message_t* cef_process_message_create(const cef_string_t* name); -function cef_process_message_create(name:pointer):pointer;cdecl;external "libcef.dll" name "cef_process_message_create"; +function cef_process_message_create(name:pointer):pointer; +begin + _f_ := static function(name:pointer):pointer;cdecl;external getceffunction(functionname()); + return ##_f_(name); +end //cef_request_t* cef_request_create(void); -function cef_request_create():pointer;cdecl;external "libcef.dll" name "cef_request_create"; +function cef_request_create():pointer; +begin + _f_ := static function():pointer;cdecl;external getceffunction(functionname()); + return ##_f_(); +end //CEF_EXPORT cef_binary_value_t* cef_binary_value_create(const void* data,size_t data_size); -function cef_binary_value_create(s:string;data_size:pointer):pointer;cdecl;external "libcef.dll" name "cef_binary_value_create"; +function cef_binary_value_create(s:string;data_size:pointer):pointer; +begin + _f_ := static function(s:string;data_size:pointer):pointer;cdecl;external getceffunction(functionname()); + return ##_f_(s,data_size); +end //CEF_EXPORT cef_dictionary_value_t* cef_dictionary_value_create(void); -function cef_dictionary_value_create():pointer;cdecl;external "libcef.dll" name "cef_dictionary_value_create"; +function cef_dictionary_value_create():pointer; +begin + _f_ := static function():pointer;cdecl;external getceffunction(functionname()); + return ##_f_(); +end //CEF_EXPORT cef_cookie_manager_t* cef_cookie_manager_get_global_manager(struct _cef_completion_callback_t* callback); -function cef_cookie_manager_get_global_manager(callback:pointer):pointer;cdecl;external "libcef.dll" name "cef_cookie_manager_get_global_manager"; +function cef_cookie_manager_get_global_manager(callback:pointer):pointer; +begin + _f_ := static function(callback:pointer):pointer;cdecl;external getceffunction(functionname()); + return ##_f_(callback); +end //CEF_EXPORT cef_request_context_t* cef_request_context_get_global_context(void); -function cef_request_context_get_global_context():pointer;cdecl;external "libcef.dll" name "cef_request_context_get_global_context"; +function cef_request_context_get_global_context():pointer; +begin + _f_ := static function():pointer;cdecl;external getceffunction(functionname()); + return ##_f_(); +end //CEF_EXPORT cef_value_t* cef_value_create(void); -function cef_value_create():pointer;cdecl;external "libcef.dll" name "cef_value_create"; +function cef_value_create():pointer; +begin + _f_ := static function():pointer;cdecl;external getceffunction(functionname()); + return ##_f_(); +end //CEF_EXPORT cef_preference_manager_t* cef_preference_manager_get_global(void); -function cef_preference_manager_get_global():pointer;cdecl;external "libcef.dll" name "cef_preference_manager_get_global"; -procedure cef_shutdown();cdecl;external "libcef.dll" name "cef_shutdown"; -function cef_string_list_alloc():pointer;cdecl;external "libcef.dll" name "cef_string_list_alloc"; +function cef_preference_manager_get_global():pointer; +begin + _f_ := static function():pointer;cdecl;external getceffunction(functionname()); + return ##_f_(); +end +procedure cef_shutdown(); +begin + _f_ := static procedure();cdecl;external getceffunction(functionname()); + return ##_f_(); +end +function cef_string_list_alloc():pointer; +begin + _f_ := static function():pointer;cdecl;external getceffunction(functionname()); + return ##_f_(); +end /// Return the number of elements in the string list. -function cef_string_list_size(list:pointer):pointer;cdecl;external "libcef.dll" name "cef_string_list_size"; +function cef_string_list_size(list:pointer):pointer; +begin + _f_ := static function(list:pointer):pointer;cdecl;external getceffunction(functionname()); + return ##_f_(list); +end /// Retrieve the value at the specified zero-based string list index. Returns /// true (1) if the value was successfully retrieved. -function cef_string_list_value(list:pointer;index:pointer;value:pointer):integer;cdecl;external "libcef.dll" name "cef_string_list_value"; +function cef_string_list_value(list:pointer;index:pointer;value:pointer):integer; +begin + _f_ := static function(list:pointer;index:pointer;value:pointer):integer;cdecl;external getceffunction(functionname()); + return ##_f_(list,index,value); +end /// Append a new value at the end of the string list. -procedure cef_string_list_append(list:pointer;value:pointer);cdecl;external "libcef.dll" name "cef_string_list_append"; +procedure cef_string_list_append(list:pointer;value:pointer); +begin + _f_ := static procedure(list:pointer;value:pointer);cdecl;external getceffunction(functionname()); + return ##_f_(list,value); +end /// Clear the string list. -procedure cef_string_list_clear(list:pointer);cdecl;external "libcef.dll" name "cef_string_list_clear"; +procedure cef_string_list_clear(list:pointer); +begin + _f_ := static procedure(list:pointer);cdecl;external getceffunction(functionname()); + return ##_f_(list); +end /// Free the string list. -procedure cef_string_list_free(list:pointer);cdecl;external "libcef.dll" name "cef_string_list_free"; +procedure cef_string_list_free(list:pointer); +begin + _f_ := static procedure(list:pointer);cdecl;external getceffunction(functionname()); + return ##_f_(list); +end /// Creates a copy of an existing string list. -function cef_string_list_copy(list:pointer):pointer;cdecl;external "libcef.dll" name "cef_string_list_copy"; +function cef_string_list_copy(list:pointer):pointer; +begin + _f_ := static function(list:pointer):pointer;cdecl;external getceffunction(functionname()); + return ##_f_(list); +end //cef_string_multimap_t -function cef_string_multimap_alloc():pointer;cdecl;external "libcef.dll" name "cef_string_multimap_alloc"; +function cef_string_multimap_alloc():pointer; +begin + _f_ := static function():pointer;cdecl;external getceffunction(functionname()); + return ##_f_(); +end /// Return the number of elements in the string multimap. -function cef_string_multimap_size( map:pointer):pointer;cdecl;external "libcef.dll" name "cef_string_multimap_size"; +function cef_string_multimap_size( map:pointer):pointer; +begin + _f_ := static function( map:pointer):pointer;cdecl;external getceffunction(functionname()); + return ##_f_(map); +end /// Return the number of values with the specified key. -function cef_string_multimap_find_count(map:pointer;key:pointer):pointer;cdecl;external "libcef.dll" name "cef_string_multimap_find_count"; +function cef_string_multimap_find_count(map:pointer;key:pointer):pointer; +begin + _f_ := static function(map:pointer;key:pointer):pointer;cdecl;external getceffunction(functionname()); + return ##_f_(map,key); +end /// Return the value_index-th value with the specified key. -function cef_string_multimap_enumerate(map:pointer;key:pointer;value_index:pointer;value:pointer):integer;cdecl;external "libcef.dll" name "cef_string_multimap_enumerate"; +function cef_string_multimap_enumerate(map:pointer;key:pointer;value_index:pointer;value:pointer):integer; +begin + _f_ := static function(map:pointer;key:pointer;value_index:pointer;value:pointer):integer;cdecl;external getceffunction(functionname()); + return ##_f_(map,key,value_index,value); +end /// Return the key at the specified zero-based string multimap index. -function cef_string_multimap_key(map:pointer;index:pointer;key:pointer):integer;cdecl;external "libcef.dll" name "cef_string_multimap_key"; +function cef_string_multimap_key(map:pointer;index:pointer;key:pointer):integer; +begin + _f_ := static function(map:pointer;index:pointer;key:pointer):integer;cdecl;external getceffunction(functionname()); + return ##_f_(map,index,key); +end /// Return the value at the specified zero-based string multimap index. -function cef_string_multimap_value(map:pointer;index:pointer;value:pointer):integer;cdecl;external "libcef.dll" name "cef_string_multimap_value"; +function cef_string_multimap_value(map:pointer;index:pointer;value:pointer):integer; +begin + _f_ := static function(map:pointer;index:pointer;value:pointer):integer;cdecl;external getceffunction(functionname()); + return ##_f_(map,index,value); +end /// Append a new key/value pair at the end of the string multimap. -function cef_string_multimap_append(map:pointer;key:pointer;value:pointer):integer;cdecl;external "libcef.dll" name "cef_string_multimap_append"; +function cef_string_multimap_append(map:pointer;key:pointer;value:pointer):integer; +begin + _f_ := static function(map:pointer;key:pointer;value:pointer):integer;cdecl;external getceffunction(functionname()); + return ##_f_(map,key,value); +end /// Clear the string multimap. -procedure cef_string_multimap_clear( map:pointer);cdecl;external "libcef.dll" name "cef_string_multimap_clear"; +procedure cef_string_multimap_clear( map:pointer); +begin + _f_ := static procedure( map:pointer);cdecl;external getceffunction(functionname()); + return ##_f_(map); +end /// Free the string multimap. -procedure cef_string_multimap_free(map:pointer);cdecl;external "libcef.dll" name "cef_string_multimap_free"; - -function cef_post_data_element_create():pointer;cdecl;external "libcef.dll" name "cef_post_data_element_create"; -function cef_post_data_create():pointer;cdecl;external "libcef.dll" name "cef_post_data_create"; -function cef_string_utf8_to_utf16(uf8:string;len:pointer;o:pointer):integer;cdecl;external "libcef.dll" name "cef_string_utf8_to_utf16"; -function cef_string_ascii_to_utf16(uf8:string;len:pointer;o:pointer):integer;cdecl;external "libcef.dll" name "cef_string_ascii_to_utf16"; -function cef_initialize(args:pointer;sett:pointer;app:pointer;info:pointer):integer;cdecl;external "libcef.dll" name "cef_initialize"; -function cef_browser_host_create_browser_sync(winfo:pointer;client:pointer;url:pointer;bs:pointer;ef:pointer;ef2:pointer):pointer;cdecl;external "libcef.dll" name "cef_browser_host_create_browser_sync"; -function cef_browser_host_create_browser(winfo:pointer;client:pointer;url:pointer;bs:pointer;ef:pointer;ef2:pointer):pointer;cdecl;external "libcef.dll" name "cef_browser_host_create_browser"; +procedure cef_string_multimap_free(map:pointer); +begin + _f_ := static procedure(map:pointer);cdecl;external getceffunction(functionname()); + return ##_f_(map); +end +function cef_post_data_element_create():pointer; +begin + _f_ := static function():pointer;cdecl;external getceffunction(functionname()); + return ##_f_(); +end +function cef_post_data_create():pointer; +begin + _f_ := static function():pointer;cdecl;external getceffunction(functionname()); + return ##_f_(); +end +function cef_string_utf8_to_utf16(uf8:string;len:pointer;o:pointer):integer; +begin + _f_ := static function(uf8:string;len:pointer;o:pointer):integer;cdecl;external getceffunction(functionname()); + return ##_f_(uf8,len,o); +end +function cef_string_ascii_to_utf16(uf8:string;len:pointer;o:pointer):integer; +begin + _f_ := static function(uf8:string;len:pointer;o:pointer):integer;cdecl;external getceffunction(functionname()); + return ##_f_(uf8,len,o); +end +function cef_initialize(args:pointer;sett:pointer;app:pointer;info:pointer):integer; +begin + _f_ := static function(args:pointer;sett:pointer;app:pointer;info:pointer):integer;cdecl;external getceffunction(functionname()); + return ##_f_(args,sett,app,info); +end +function cef_browser_host_create_browser_sync(winfo:pointer;client:pointer;url:pointer;bs:pointer;ef:pointer;ef2:pointer):pointer; +begin + _f_ := static function(winfo:pointer;client:pointer;url:pointer;bs:pointer;ef:pointer;ef2:pointer):pointer;cdecl;external getceffunction(functionname()); + return ##_f_(winfo,client,url,bs,ef,ef2); +end +function cef_browser_host_create_browser(winfo:pointer;client:pointer;url:pointer;bs:pointer;ef:pointer;ef2:pointer):pointer; +begin + _f_ := static function(winfo:pointer;client:pointer;url:pointer;bs:pointer;ef:pointer;ef2:pointer):pointer;cdecl;external getceffunction(functionname()); + return ##_f_(winfo,client,url,bs,ef,ef2); +end function cef_initialize_tsl(args:pointer;sett:pointer;app:pointer;info:pointer); begin return cef_initialize(args?args._getptr_():0,sett?sett._getptr_():0,app?app._getptr_():0,info?info._getptr_():0); @@ -5961,9 +6142,21 @@ begin return cef_object_get(h,class( cef_browser_t)); end end -procedure cef_run_message_loop();external "libcef.dll" name "cef_run_message_loop"; -procedure cef_do_message_loop_work();external "libcef.dll" name "cef_do_message_loop_work"; -function cef_execute_process(arg:pointer;app:pointer;dow:pointer):integer;cdecl;external "libcef.dll" name "cef_execute_process"; +procedure cef_run_message_loop(); +begin + _f_ := static procedure();cdecl;external getceffunction(functionname()); + return ##_f_(); +end +procedure cef_do_message_loop_work(); +begin + _f_ := static procedure();cdecl;external getceffunction(functionname()); + return ##_f_(); +end +function cef_execute_process(arg:pointer;app:pointer;dow:pointer):integer; +begin + _f_ := static function(arg:pointer;app:pointer;dow:pointer):integer;cdecl;external getceffunction(functionname()); + return ##_f_(arg,app,dow); +end function getcefboundsstruct(); @@ -5996,6 +6189,13 @@ begin g_cef_counter_ := new tcefcounter(); g_cef_objects_ := array(); end +function getceffunction(n); +begin + {$ifdef linux} + return getdlsymaddress("libcef.so",n); + {$endif} + return getdlsymaddress("libcef.dll",n); +end initialization init(); end. \ No newline at end of file