From 1098e9d6aaf58fbea380ca039ff8f101959395f8 Mon Sep 17 00:00:00 2001 From: tslediter Date: Mon, 1 Apr 2024 14:38:54 +0800 Subject: [PATCH] bjq MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 编译-加入缓存记录 --- designer/utslcodeeditor.tsf | 17 +++++++-- funcext/tvclib/utslvclcefinterface.tsf | 50 ++++++++++++++++++++++++-- 2 files changed, 62 insertions(+), 5 deletions(-) diff --git a/designer/utslcodeeditor.tsf b/designer/utslcodeeditor.tsf index 1140b03..a3f77f7 100644 --- a/designer/utslcodeeditor.tsf +++ b/designer/utslcodeeditor.tsf @@ -2222,13 +2222,18 @@ type TEditer=class(TCustomcontrol) // FEchoWnd.Exec("",s,h); end compile_config; + fpg_config_infos; function buildpageitem(it); begin + if not ifarray(fpg_config_infos) then fpg_config_infos := array(); if not it then return; ShowEchoWnd(); if FEchoWnd.Exeing()then return FEchoWnd.Endexe(); r := array(); f := it.ScriptPath; + pginf := fpg_config_infos[f]; + if not pginf then + begin if 1=parseregexpr("\\.tsf$",f,"i",m,mp,ml) then begin r["build"] := "--buildlib"; @@ -2262,7 +2267,12 @@ type TEditer=class(TCustomcontrol) // r["libpath"] := ds; if ot then r["output"] := ot; r["dependsdir"] := replacetext(ds,";",","); - build_with_data(nil,r); + end else + begin + r := pginf; + end + nr := build_with_data(nil,r); + if nr then fpg_config_infos[f] := nr; end function get_local_pos(x,y); begin @@ -5095,7 +5105,10 @@ type TEditerEchoWnd=class(TSynMemoNorm) // if d["buildgui"] then r+= " -buildgui"; {$ifdef linux} {$else} - r +=format(' --manifest="%s" ',d["buildfile"]+".manifest"); + if fileexists("",(d["buildfile"]+".manifest")) then + begin + r +=format(' --manifest="%s" ',d["buildfile"]+".manifest"); + end {$endif} return r; end diff --git a/funcext/tvclib/utslvclcefinterface.tsf b/funcext/tvclib/utslvclcefinterface.tsf index 3c37d05..ea02687 100644 --- a/funcext/tvclib/utslvclcefinterface.tsf +++ b/funcext/tvclib/utslvclcefinterface.tsf @@ -3033,7 +3033,38 @@ type cef_life_span_handler_t=class(cef_handler_base) end end - +type cef_render_process_handler_t=class(cef_contain_base) //render + private + function structdescribe();override; + begin + return array( + ("base","user",getbasestruct()), + ("on_web_kit_initialized","intptr",0), + ("on_browser_created","intptr",0), + ("on_browser_destroyed","intptr",0), + ("get_load_handler","intptr",0), + ("on_context_created","intptr",0), + ("on_context_released","intptr",0), + ("on_uncaught_exception","intptr",0), + ("on_focused_node_changed","intptr",0), + ("on_process_message_received","intptr",0) + ); + end + public + function create(ptr) + begin + inherited; + end + property on_web_kit_initialized index "on_web_kit_initialized" read getcallpropertybyindex write setcallpropertybyindex; + function on_web_kit_initialized_i(sf:pointer;browser:pointer;mode:integer;title:pointer;default_file_path:pointer;accept_filters:pointer;callback:pointer):integer;stdcall; + begin + c := getcallback(functionname()); + if c then + begin + return call(c,self(true)); + end + end +end type cef_dialog_handler_t=class(cef_contain_base) private function structdescribe();override; @@ -3754,7 +3785,15 @@ type cef_app_t=class(cef_contain_base) //cef_app_capi.h // property on_register_custom_schemes index "on_register_custom_schemes" read _getvalue_ write _setvalue_; // property get_resource_bundle_handler index "get_resource_bundle_handler" read _getvalue_ write _setvalue_; // property get_browser_process_handler index "get_browser_process_handler" read _getvalue_ write _setvalue_; -// property get_render_process_handler index "get_render_process_handler" read _getvalue_ write _setvalue_; + property get_render_process_handler index "get_render_process_handler" read getcallpropertybyindex write setcallpropertybyindex; + procedure get_render_process_handler_i(sf:pointer);stdcall; + begin + c := getcallback(functionname()); + if c then + begin + return call(c,self(true)); + end + end end type cef_bounds_t = class(t_cef_stc_base) @@ -4260,7 +4299,12 @@ type cef_client_t=class(cef_contain_base) //cef_client_capi.h if o then return o._getptr_(); end //property get_print_handler index "get_print_handler" read _getvalue_ write _setvalue_; - //property get_render_handler index "get_render_handler" read _getvalue_ write _setvalue_; + property render_handler index "get_render_handler" read clientgethandler write clientsethandler; + function get_render_handler(s:pointer):pointer;stdcall; + begin + o := clientgethandler(functionname()); + if o then return o._getptr_(); + end property request_handler index "get_request_handler" read clientgethandler write clientsethandler; function get_request_handler(s:pointer):pointer;stdcall; begin