parent
1c0fe31233
commit
8171137047
|
|
@ -627,6 +627,14 @@ type TEditerAuxiliary=class(TPage) //
|
||||||
//FFileFindeItem := CreateApageItem();
|
//FFileFindeItem := CreateApageItem();
|
||||||
OnSelChanged := thisfunction(OnSelChangedCall);
|
OnSelChanged := thisfunction(OnSelChangedCall);
|
||||||
CloseBtn := true;
|
CloseBtn := true;
|
||||||
|
onnotification := function(o,e)begin
|
||||||
|
ms := e.message;
|
||||||
|
if ifarray(ms) and ms[0] ="font" then
|
||||||
|
begin
|
||||||
|
font := ms[1];
|
||||||
|
InValidateRect(nil,false);
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
function WMNCLBUTTONDOWN(o,e):WM_NCLBUTTONDOWN;override;
|
function WMNCLBUTTONDOWN(o,e):WM_NCLBUTTONDOWN;override;
|
||||||
begin
|
begin
|
||||||
|
|
@ -1725,7 +1733,7 @@ type TEditer=class(TCustomcontrol) //
|
||||||
FInfoShowWnd := new TEditerAuxiliary(self);
|
FInfoShowWnd := new TEditerAuxiliary(self);
|
||||||
FPageEditer := new TPageEditer(self);
|
FPageEditer := new TPageEditer(self);
|
||||||
FPageEditer.onscrollfont := function(o,ft)begin
|
FPageEditer.onscrollfont := function(o,ft)begin
|
||||||
|
self.Notification(self,array("font",ft));
|
||||||
FinCodemap.FTree.font := ft;
|
FinCodemap.FTree.font := ft;
|
||||||
FinCodemap.FTree.ItemHeight := ft["height"]+6;
|
FinCodemap.FTree.ItemHeight := ft["height"]+6;
|
||||||
end
|
end
|
||||||
|
|
@ -5653,6 +5661,13 @@ type TFindListWnd=class(TListBox) //
|
||||||
function Create(AOwner);
|
function Create(AOwner);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
|
onnotification := function(o,e)begin
|
||||||
|
ms := e.message;
|
||||||
|
if ifarray(ms) and ms[0] ="font" then
|
||||||
|
begin
|
||||||
|
font := ms[1];
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
function CheckListItem(s);override;
|
function CheckListItem(s);override;
|
||||||
begin
|
begin
|
||||||
|
|
|
||||||
|
|
@ -799,6 +799,19 @@ type TTslDebuga=class(TCustomControl)
|
||||||
begin
|
begin
|
||||||
return 1;
|
return 1;
|
||||||
end
|
end
|
||||||
|
onnotification := function(o,e)begin
|
||||||
|
if not (FStackList and FVaraiblesList) then return ;
|
||||||
|
ms := e.message;
|
||||||
|
if ifarray(ms) and ms[0] ="font" then
|
||||||
|
begin
|
||||||
|
ft := ms[1];
|
||||||
|
FStackList.font := ft;
|
||||||
|
FStackList.ItemHeight := ft["height"]+6;
|
||||||
|
FVaraiblesList.font := ft;
|
||||||
|
FVaraiblesList.ItemHeight := ft["height"]+6;
|
||||||
|
//font := ms[1];
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
function addbreak(item,idx,n); //添加断点
|
function addbreak(item,idx,n); //添加断点
|
||||||
begin
|
begin
|
||||||
|
|
|
||||||
|
|
@ -2249,17 +2249,8 @@ type tsgtkapi = class(tgtkapis)
|
||||||
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_CANCEL := -6;
|
||||||
GTK_RESPONSE_OK := -5;
|
|
||||||
GTK_RESPONSE_DELETE_EVENT := -4;
|
|
||||||
GTK_RESPONSE_ACCEPT := -3;
|
GTK_RESPONSE_ACCEPT := -3;
|
||||||
GTK_RESPONSE_REJECT := -2;
|
|
||||||
GTK_RESPONSE_NONE := -1;
|
|
||||||
/////////////////////////////////////////
|
/////////////////////////////////////////
|
||||||
r := false;
|
r := false;
|
||||||
obj := new TtagOFNA_(LPOPENFILENAMEA);
|
obj := new TtagOFNA_(LPOPENFILENAMEA);
|
||||||
|
|
@ -2483,24 +2474,15 @@ type tsgtkapi = class(tgtkapis)
|
||||||
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_CANCEL := -6;
|
||||||
GTK_RESPONSE_OK := -5;
|
|
||||||
GTK_RESPONSE_DELETE_EVENT := -4;
|
|
||||||
GTK_RESPONSE_ACCEPT := -3;
|
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",GTK_RESPONSE_ACCEPT,"cancel",GTK_RESPONSE_CANCEL,nil);
|
cdlg := gtk_file_chooser_dialog_new("folder selector",wd,2,"open",GTK_RESPONSE_ACCEPT,"cancel",GTK_RESPONSE_CANCEL,0);
|
||||||
dir := obj._getvalue_("pidlroot");
|
dir := obj._getvalue_("pidlroot");
|
||||||
if dir then //默认位置
|
if dir then //默认位置
|
||||||
begin
|
begin
|
||||||
|
|
@ -6401,8 +6383,7 @@ type tgtk_ctl_scroll_window = class(tgtk_ctl_object)
|
||||||
w := makelong(_const.SB_THUMBTRACK,0);
|
w := makelong(_const.SB_THUMBTRACK,0);
|
||||||
CallTslVclProc(_const.WM_VSCROLL,w,0,1);
|
CallTslVclProc(_const.WM_VSCROLL,w,0,1);
|
||||||
end
|
end
|
||||||
static fstaticchanged;
|
{function GtkEventDispatch_(a,mn,c,d);override; //原有的消息处理
|
||||||
function GtkEventDispatch(a,mn,c,d);override;
|
|
||||||
begin
|
begin
|
||||||
//消息分发
|
//消息分发
|
||||||
if mn="scroll-event" then
|
if mn="scroll-event" then
|
||||||
|
|
@ -6412,7 +6393,7 @@ type tgtk_ctl_scroll_window = class(tgtk_ctl_object)
|
||||||
nt := now();
|
nt := now();
|
||||||
if (nt-(1/24/3600/100))<FScrollT then
|
if (nt-(1/24/3600/100))<FScrollT then
|
||||||
begin
|
begin
|
||||||
return true;
|
//return true;
|
||||||
end
|
end
|
||||||
ed := new _GdkEventScroll(c);
|
ed := new _GdkEventScroll(c);
|
||||||
dr := ed.direction;
|
dr := ed.direction;
|
||||||
|
|
@ -6440,9 +6421,7 @@ type tgtk_ctl_scroll_window = class(tgtk_ctl_object)
|
||||||
rxy := r[lenr][1];
|
rxy := r[lenr][1];
|
||||||
end
|
end
|
||||||
if ri and rxy then
|
if ri and rxy then
|
||||||
begin
|
begin
|
||||||
|
|
||||||
|
|
||||||
//if hasMessageFromGtkMessageQueue(-1,_const.LM_MOUSEWHEEL) then return true; //20230417暂时屏蔽
|
//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;
|
||||||
|
|
@ -6479,6 +6458,97 @@ type tgtk_ctl_scroll_window = class(tgtk_ctl_object)
|
||||||
|
|
||||||
end
|
end
|
||||||
return inherited;
|
return inherited;
|
||||||
|
end }
|
||||||
|
private
|
||||||
|
fscrollinfos;
|
||||||
|
ftimerobj;
|
||||||
|
Fscrolltimedo;
|
||||||
|
FStatscrollTime;
|
||||||
|
public
|
||||||
|
function scrolltimedo(ptr:pointer):integer;
|
||||||
|
begin
|
||||||
|
if ifnil(FStatscrollTime) then return 1; //没有滚动消息
|
||||||
|
//obj := new ttmstruct(ptr);
|
||||||
|
//obj._setvalue_(0,0);
|
||||||
|
t := now();
|
||||||
|
if (t-FStatscrollTime)<(1/24/3600/100) then return 1; //时间间隔不够10毫秒
|
||||||
|
FStatscrollTime := nil; //执行了
|
||||||
|
if fscrollinfos then
|
||||||
|
begin
|
||||||
|
WHEEL_DELTA := 120;
|
||||||
|
ctl := 0;
|
||||||
|
global g_gtk_buttontable,g_gtk_keytable;
|
||||||
|
if ifarray(g_gtk_buttontable) then
|
||||||
|
begin
|
||||||
|
ctl .|= g_gtk_buttontable[0];
|
||||||
|
ctl .|= g_gtk_buttontable[1];
|
||||||
|
end
|
||||||
|
if ifarray(g_gtk_keytable) then
|
||||||
|
begin
|
||||||
|
if g_gtk_keytable[0x10] then ctl .|= _const.MK_Shift;
|
||||||
|
if g_gtk_keytable[0x11] then ctl .|= _const.MK_Control;
|
||||||
|
end
|
||||||
|
|
||||||
|
len := length(fscrollinfos)-1;
|
||||||
|
xy := fscrollinfos[len,2];
|
||||||
|
h := fscrollinfos[len,0];
|
||||||
|
dr := sum(fscrollinfos[:,1]);
|
||||||
|
if dr=0 then return 1;
|
||||||
|
fscrollinfos := array();
|
||||||
|
dr := makelong(ctl,dr);
|
||||||
|
AddMessageToGtkMessageQueue(h,_const.LM_MOUSEWHEEL,dr,xy,1);
|
||||||
|
end
|
||||||
|
return 1;
|
||||||
|
end
|
||||||
|
function GtkEventDispatch(a,mn,c,d);override;
|
||||||
|
begin
|
||||||
|
//消息分发
|
||||||
|
if mn="scroll-event" then
|
||||||
|
begin
|
||||||
|
h := a.handle;
|
||||||
|
ed := new _GdkEventScroll(c);
|
||||||
|
dr := ed.direction;
|
||||||
|
if dr<>0 and dr<>1 then return ;
|
||||||
|
x := ed.x_root;
|
||||||
|
y := ed.y_root;
|
||||||
|
r := array();
|
||||||
|
_wapi.GetTopWidgetList(h,x,y,r);
|
||||||
|
lenr := length(r)-1;
|
||||||
|
for i := lenr downto 0 do
|
||||||
|
begin
|
||||||
|
ri := r[i][0];
|
||||||
|
rxy := r[i][1];
|
||||||
|
fv := _wapi.g_object_get_data(ri,"gtk_window_vscroll_bar");
|
||||||
|
if fv and _wapi.gtk_widget_is_visible(fv) then
|
||||||
|
begin
|
||||||
|
ifdowheel := true;
|
||||||
|
break;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not ifdowheel then
|
||||||
|
begin
|
||||||
|
ri := r[lenr][0];
|
||||||
|
rxy := r[lenr][1];
|
||||||
|
end
|
||||||
|
if ri and rxy then
|
||||||
|
begin
|
||||||
|
if not ftimerobj then
|
||||||
|
begin
|
||||||
|
fscrollinfos := array();
|
||||||
|
Fscrolltimedo := makeinstance(thisfunction(scrolltimedo));
|
||||||
|
ftimerobj := new ttmstruct(nil);
|
||||||
|
rt := _wapi.g_timeout_add(8,Fscrolltimedo,ftimerobj._getptr_() );
|
||||||
|
ftimerobj._setvalue_(0,rt);
|
||||||
|
end
|
||||||
|
FStatscrollTime := now(); //当前时间
|
||||||
|
xy := makelong(rxy[0],rxy[1]);
|
||||||
|
WHEEL_DELTA := 120;
|
||||||
|
dr := (dr=1)?(-WHEEL_DELTA):(WHEEL_DELTA);
|
||||||
|
fscrollinfos[length(fscrollinfos)] := array(ri,dr,xy);
|
||||||
|
return true;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return inherited;
|
||||||
end
|
end
|
||||||
function Destroy();override;
|
function Destroy();override;
|
||||||
begin
|
begin
|
||||||
|
|
@ -6803,12 +6873,6 @@ type tGtkMessageQueue=class //
|
||||||
begin
|
begin
|
||||||
Clean();
|
Clean();
|
||||||
end
|
end
|
||||||
///////////////´¦ÀíÒ»ÏÂ////////////////
|
|
||||||
if r and r[1]=0x020a then
|
|
||||||
begin
|
|
||||||
|
|
||||||
end
|
|
||||||
///////////////////////
|
|
||||||
unlock();
|
unlock();
|
||||||
return r;
|
return r;
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue