parent
13e5738b61
commit
97fbfda3ac
|
|
@ -3849,6 +3849,47 @@ type TEditer=class(TCustomcontrol) //
|
||||||
linesi := array(1:1);
|
linesi := array(1:1);
|
||||||
if (1 = readfile(rwraw(),"",f,0,filesize("",f),s)) and s then
|
if (1 = readfile(rwraw(),"",f,0,filesize("",f),s)) and s then
|
||||||
begin
|
begin
|
||||||
|
strcode := 0;
|
||||||
|
if(length(s)>= 2)and ord(s[1])=0xFE and ord(s[2])=0xFF then //ucs2-big
|
||||||
|
begin
|
||||||
|
strcode := 1;
|
||||||
|
if length(s)=2 then s := "";
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
s1 := "";
|
||||||
|
setlength(s1,length(s)-2);
|
||||||
|
for i := 3 to length(s)-1 step 2 do
|
||||||
|
begin
|
||||||
|
s1[i-2]:= s[i+1];
|
||||||
|
s1[i-1]:= s[i];
|
||||||
|
end
|
||||||
|
s := unicodetomultibyte(s1,936);
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
if(length(s)>= 2)and ord(s[1])=0xFF and ord(s[2])=0xFE then //ucs2-little
|
||||||
|
begin
|
||||||
|
strcode := 1;
|
||||||
|
if length(s)=2 then s := "";
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
s := unicodetomultibyte(s[3:],936);
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
if(length(s)>= 3)and ord(s[1])=0xEF and ord(s[2])=0xBB and ord(s[3])=0xBF then
|
||||||
|
begin
|
||||||
|
strcode := 1;
|
||||||
|
if length(s)=3 then s := "";
|
||||||
|
else s := utf8toansi(s[4:]);
|
||||||
|
end
|
||||||
|
if(0=strcode)then
|
||||||
|
begin
|
||||||
|
if IsTextUTF8(s)=1 then
|
||||||
|
begin
|
||||||
|
s := utf8toansi(s);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
slen := length(s);
|
||||||
if 1= parseregexpr(ctl,s,ctl2,m,mp,mlen) then
|
if 1= parseregexpr(ctl,s,ctl2,m,mp,mlen) then
|
||||||
begin
|
begin
|
||||||
r := array();
|
r := array();
|
||||||
|
|
@ -3861,9 +3902,12 @@ type TEditer=class(TCustomcontrol) //
|
||||||
fgf := "\n";
|
fgf := "\n";
|
||||||
end else
|
end else
|
||||||
fgf := "\r";
|
fgf := "\r";
|
||||||
|
p1 := 1;
|
||||||
|
p2 := 0;
|
||||||
for i,v in m do
|
for i,v in m do
|
||||||
begin
|
begin
|
||||||
mi := mp[i,0];
|
mi := mp[i,0];
|
||||||
|
|
||||||
while idx<mi do
|
while idx<mi do
|
||||||
begin
|
begin
|
||||||
vi := s[idx];
|
vi := s[idx];
|
||||||
|
|
@ -3876,12 +3920,24 @@ type TEditer=class(TCustomcontrol) //
|
||||||
jid := 1;
|
jid := 1;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
r[i][0] := rid; //ÐÐ
|
r[i][0] := rid; //ÐÐ
|
||||||
r[i][1] := jid; //ÁÐ
|
r[i][1] := jid; //ÁÐ
|
||||||
p1 := linesi[rid-1];
|
p1 := linesi[rid-1];
|
||||||
p2 := idx+mlen[i,0]-1;
|
p2 := idx+mlen[i,0]-1;
|
||||||
if (p2>p1) and (rid<>orid) then
|
if (p2>p1) and (rid<>orid) then
|
||||||
begin
|
begin
|
||||||
|
isset := 1;
|
||||||
|
for ii := p2 to slen do
|
||||||
|
begin
|
||||||
|
if s[ii]=fgf then
|
||||||
|
begin
|
||||||
|
isset := 0;
|
||||||
|
p2 := ii;
|
||||||
|
break;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if isset then p2 := slen;
|
||||||
r[i][2] := trim(s[p1:p2]);
|
r[i][2] := trim(s[p1:p2]);
|
||||||
end
|
end
|
||||||
else r[i,2] := "";
|
else r[i,2] := "";
|
||||||
|
|
|
||||||
|
|
@ -2238,13 +2238,29 @@ type tsgtkapi = class(tgtkapis)
|
||||||
end
|
end
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
function GetOpenFileNameA(LPOPENFILENAMEA:pointer):integer;
|
function GetOpenFileNameA(LPOPENFILENAMEA:pointer):integer;
|
||||||
begin
|
begin
|
||||||
r := GetSaveFileNameA(LPOPENFILENAMEA);
|
global g_open_file_flag;
|
||||||
|
g_open_file_flag := 1;
|
||||||
|
r := GetSaveFileNameA(LPOPENFILENAMEA);
|
||||||
|
g_open_file_flag := 0;
|
||||||
return r;
|
return r;
|
||||||
end
|
end
|
||||||
function GetSaveFileNameA(LPOPENFILENAMEA:pointer):integer;
|
function GetSaveFileNameA(LPOPENFILENAMEA:pointer):integer;
|
||||||
begin
|
begin
|
||||||
global g_open_file_flag;
|
global g_open_file_flag;
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
GTK_RESPONSE_HELP := -11;
|
||||||
|
GTK_RESPONSE_APPLY := -10;
|
||||||
|
GTK_RESPONSE_NO := -9;
|
||||||
|
GTK_RESPONSE_YES := -8;
|
||||||
|
GTK_RESPONSE_CLOSE := -7;
|
||||||
|
GTK_RESPONSE_CANCEL := -6;
|
||||||
|
GTK_RESPONSE_OK := -5;
|
||||||
|
GTK_RESPONSE_DELETE_EVENT := -4;
|
||||||
|
GTK_RESPONSE_ACCEPT := -3;
|
||||||
|
GTK_RESPONSE_REJECT := -2;
|
||||||
|
GTK_RESPONSE_NONE := -1;
|
||||||
|
/////////////////////////////////////////
|
||||||
r := false;
|
r := false;
|
||||||
obj := new TtagOFNA_(LPOPENFILENAMEA);
|
obj := new TtagOFNA_(LPOPENFILENAMEA);
|
||||||
wd := obj._getvalue_("hwndowner");
|
wd := obj._getvalue_("hwndowner");
|
||||||
|
|
@ -2252,14 +2268,12 @@ type tsgtkapi = class(tgtkapis)
|
||||||
if wd then wd := gtk_widget_get_toplevel(wd);
|
if wd then wd := gtk_widget_get_toplevel(wd);
|
||||||
mulsel := false;
|
mulsel := false;
|
||||||
if obj._getvalue_("flags") .& 0x200 then mulsel := true;
|
if obj._getvalue_("flags") .& 0x200 then mulsel := true;
|
||||||
//echo "\r\n>>>", obj._getvalue_("nmaxfiletitle");
|
//echo "\r\n>>>", obj._getvalue_("nmaxfiletitle");
|
||||||
|
opaction := g_open_file_flag?false:true; //´ò¿ª»òÕßsave
|
||||||
|
cdlg := gtk_file_chooser_dialog_new("file selector",wd,opaction,"open",GTK_RESPONSE_ACCEPT,"cancel",GTK_RESPONSE_CANCEL,nil);
|
||||||
if mulsel then
|
if mulsel then
|
||||||
begin
|
begin
|
||||||
cdlg := gtk_file_chooser_dialog_new("file selector",wd,0,"open",100,"cancel",50,nil);
|
|
||||||
gtk_file_chooser_set_select_multiple(cdlg,true);
|
gtk_file_chooser_set_select_multiple(cdlg,true);
|
||||||
end else
|
|
||||||
begin
|
|
||||||
cdlg := gtk_file_chooser_dialog_new("file selector",wd,1,"open",100,"cancel",50,nil);
|
|
||||||
end
|
end
|
||||||
dfdir := obj._getvalue_("lpstrinitialdir");
|
dfdir := obj._getvalue_("lpstrinitialdir");
|
||||||
if dfdir then //ĬÈÏλÖÃ
|
if dfdir then //ĬÈÏλÖÃ
|
||||||
|
|
@ -2270,7 +2284,7 @@ type tsgtkapi = class(tgtkapis)
|
||||||
gtk_file_chooser_set_filename(cdlg,TslStringToGtk( df));
|
gtk_file_chooser_set_filename(cdlg,TslStringToGtk( df));
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if 100=gtk_dialog_run(cdlg)then
|
if GTK_RESPONSE_ACCEPT=gtk_dialog_run(cdlg)then
|
||||||
begin
|
begin
|
||||||
mf := obj._getvalue_("nmaxfile");
|
mf := obj._getvalue_("nmaxfile");
|
||||||
if mulsel then
|
if mulsel then
|
||||||
|
|
@ -2467,12 +2481,26 @@ type tsgtkapi = class(tgtkapis)
|
||||||
|
|
||||||
function SHBrowseForFolderA(LPITEMIDLIST:pointer):pointer;
|
function SHBrowseForFolderA(LPITEMIDLIST:pointer):pointer;
|
||||||
begin
|
begin
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
GTK_RESPONSE_HELP := -11;
|
||||||
|
GTK_RESPONSE_APPLY := -10;
|
||||||
|
GTK_RESPONSE_NO := -9;
|
||||||
|
GTK_RESPONSE_YES := -8;
|
||||||
|
GTK_RESPONSE_CLOSE := -7;
|
||||||
|
GTK_RESPONSE_CANCEL := -6;
|
||||||
|
GTK_RESPONSE_OK := -5;
|
||||||
|
GTK_RESPONSE_DELETE_EVENT := -4;
|
||||||
|
GTK_RESPONSE_ACCEPT := -3;
|
||||||
|
GTK_RESPONSE_REJECT := -2;
|
||||||
|
GTK_RESPONSE_NONE := -1;
|
||||||
|
/////////////////////////////////////////
|
||||||
obj := new TBrowseinfoA_(LPITEMIDLIST);
|
obj := new TBrowseinfoA_(LPITEMIDLIST);
|
||||||
wd := obj._getvalue_("hwndowner");
|
wd := obj._getvalue_("hwndowner");
|
||||||
wd := wd?:nil;
|
wd := wd?:nil;
|
||||||
if wd and not(gtk_widget_is_toplevel(wd)) then wd := gtk_widget_get_toplevel(wd); //top level
|
if wd and not(gtk_widget_is_toplevel(wd)) then wd := gtk_widget_get_toplevel(wd); //top level
|
||||||
r := 0;
|
r := 0;
|
||||||
cdlg := gtk_file_chooser_dialog_new("folder selector",wd,3,"open",100,"cancel",50,nil);
|
cdlg := gtk_file_chooser_dialog_new("folder selector",wd,3,"open",GTK_RESPONSE_ACCEPT,"cancel",GTK_RESPONSE_CANCEL,nil);
|
||||||
dir := obj._getvalue_("pidlroot");
|
dir := obj._getvalue_("pidlroot");
|
||||||
if dir then //ĬÈÏλÖÃ
|
if dir then //ĬÈÏλÖÃ
|
||||||
begin
|
begin
|
||||||
|
|
@ -2482,7 +2510,7 @@ type tsgtkapi = class(tgtkapis)
|
||||||
gtk_file_chooser_set_filename(cdlg,TslStringToGtk( df));
|
gtk_file_chooser_set_filename(cdlg,TslStringToGtk( df));
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if 100=gtk_dialog_run(cdlg) then
|
if GTK_RESPONSE_ACCEPT=gtk_dialog_run(cdlg) then
|
||||||
begin
|
begin
|
||||||
r := GtkStringToTsl( gtk_file_chooser_get_filename(cdlg));
|
r := GtkStringToTsl( gtk_file_chooser_get_filename(cdlg));
|
||||||
end
|
end
|
||||||
|
|
@ -6382,7 +6410,7 @@ type tgtk_ctl_scroll_window = class(tgtk_ctl_object)
|
||||||
h := a.handle;
|
h := a.handle;
|
||||||
|
|
||||||
nt := now();
|
nt := now();
|
||||||
if (nt-(1/24/3600/20))<FScrollT then
|
if (nt-(1/24/3600/100))<FScrollT then
|
||||||
begin
|
begin
|
||||||
return true;
|
return true;
|
||||||
end
|
end
|
||||||
|
|
@ -6413,11 +6441,11 @@ type tgtk_ctl_scroll_window = class(tgtk_ctl_object)
|
||||||
end
|
end
|
||||||
if ri and rxy then
|
if ri and rxy then
|
||||||
begin
|
begin
|
||||||
if hasMessageFromGtkMessageQueue(-1,_const.LM_MOUSEWHEEL) then return true;
|
//if hasMessageFromGtkMessageQueue(-1,_const.LM_MOUSEWHEEL) then return true; //20230417ÔÝʱÆÁ±Î
|
||||||
if hasMessageFromGtkMessageQueue(-1,_const.WM_SIZE) then return true;
|
if hasMessageFromGtkMessageQueue(-1,_const.WM_SIZE) then return true;
|
||||||
if hasMessageFromGtkMessageQueue(-1,_const.WM_MOUSEMOVE) then return true;
|
if hasMessageFromGtkMessageQueue(-1,_const.WM_MOUSEMOVE) then return true;
|
||||||
|
|
||||||
FScrollT := now();
|
FScrollT := now();
|
||||||
dr := (dr=1)?-1:1;
|
dr := (dr=1)?-1:1;
|
||||||
|
|
||||||
xy := makelong(rxy[0],rxy[1]);
|
xy := makelong(rxy[0],rxy[1]);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue