parent
27fb67b49a
commit
32151f8d94
|
|
@ -773,6 +773,7 @@ type tsgtkapi = class(tgtkapis)
|
||||||
r := gtk_object_get_data(hdc,"brush");
|
r := gtk_object_get_data(hdc,"brush");
|
||||||
gtk_object_set_data(hdc,"brush",gdiobj);
|
gtk_object_set_data(hdc,"brush",gdiobj);
|
||||||
gtk_object_set_data(hdc,"brush.color",o.color);
|
gtk_object_set_data(hdc,"brush.color",o.color);
|
||||||
|
gtk_object_set_data(hdc,"brush.style",o.style);
|
||||||
end
|
end
|
||||||
"font":
|
"font":
|
||||||
begin
|
begin
|
||||||
|
|
@ -1093,6 +1094,59 @@ type tsgtkapi = class(tgtkapis)
|
||||||
return 1;
|
return 1;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
function cairo_set_pen_color(dc);
|
||||||
|
begin
|
||||||
|
pc := gtk_object_get_data(dc,"pen.color");
|
||||||
|
pt := gtk_object_get_data(dc,"pen.style");
|
||||||
|
if pw>0 then cairo_set_line_width(dc,pw);
|
||||||
|
else cairo_set_line_width(dc,1);
|
||||||
|
if pc=0 then
|
||||||
|
begin
|
||||||
|
if pt=5 then
|
||||||
|
begin
|
||||||
|
cairo_set_source_rgba(dc,1,1,1,0);
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
cairo_set_source_rgb(dc,0,0,0);
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
|
||||||
|
if pt=5 then
|
||||||
|
begin
|
||||||
|
cairo_set_source_rgba(dc,1,1,1,0);
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
||||||
|
cairo_set_source_rgb(dc,rc,gc,bc);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function cairo_set_brush_color(dc);
|
||||||
|
begin
|
||||||
|
brc := gtk_object_get_data(dc,"brush.color");
|
||||||
|
bst := gtk_object_get_data(dc,"brush.style");
|
||||||
|
if brc=0 then
|
||||||
|
begin
|
||||||
|
if bst=1 then
|
||||||
|
begin
|
||||||
|
cairo_set_source_rgba(dc,1,1,1,0);
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
cairo_set_source_rgb(dc,0,0,0);
|
||||||
|
end
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if bst=1 then
|
||||||
|
begin
|
||||||
|
cairo_set_source_rgba(dc,1,1,1,0);
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
gtk_rgb_color_rgb(brc,rc,gc,bc);
|
||||||
|
cairo_set_source_rgb(dc,rc,gc,bc);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
Function FillRect(dc:pointer;rec:array of integer;br:pointer):integer;
|
Function FillRect(dc:pointer;rec:array of integer;br:pointer):integer;
|
||||||
begin
|
begin
|
||||||
|
|
@ -1239,6 +1293,18 @@ type tsgtkapi = class(tgtkapis)
|
||||||
gtk_gdi_object_globals[inttostr(ptr)] := array(p,"brush");
|
gtk_gdi_object_globals[inttostr(ptr)] := array(p,"brush");
|
||||||
return ptr;
|
return ptr;
|
||||||
end
|
end
|
||||||
|
function CreateBrushIndirect(lblf:pointer);
|
||||||
|
begin
|
||||||
|
global gtk_gdi_object_globals;
|
||||||
|
p := new ttgtk_brush();
|
||||||
|
p2 := new ttgtk_brush(lblf);
|
||||||
|
p.color := p2.color;
|
||||||
|
p.style := p2.style;
|
||||||
|
//p.color := crColor;
|
||||||
|
ptr := p._getptr_();
|
||||||
|
gtk_gdi_object_globals[inttostr(ptr)] := array(p,"brush");
|
||||||
|
return ptr;
|
||||||
|
end
|
||||||
function CreateFontIndirectA(lplf:pointer);
|
function CreateFontIndirectA(lplf:pointer);
|
||||||
begin
|
begin
|
||||||
global gtk_gdi_object_globals;
|
global gtk_gdi_object_globals;
|
||||||
|
|
@ -1270,19 +1336,10 @@ type tsgtkapi = class(tgtkapis)
|
||||||
begin
|
begin
|
||||||
xb := gtk_object_get_data(dc,"viewport.x");
|
xb := gtk_object_get_data(dc,"viewport.x");
|
||||||
yb := gtk_object_get_data(dc,"viewport.y");
|
yb := gtk_object_get_data(dc,"viewport.y");
|
||||||
pc := gtk_object_get_data(dc,"pen.color");
|
|
||||||
pw := gtk_object_get_data(dc,"pen.width");
|
pw := gtk_object_get_data(dc,"pen.width");
|
||||||
pt := gtk_object_get_data(dc,"pen.style");
|
|
||||||
if pw>0 then cairo_set_line_width(dc,pw);
|
if pw>0 then cairo_set_line_width(dc,pw);
|
||||||
else cairo_set_line_width(dc,1);
|
else cairo_set_line_width(dc,1);
|
||||||
if pc=0 then
|
cairo_set_pen_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
cairo_applay_pen_style(dc); //LineTo
|
cairo_applay_pen_style(dc); //LineTo
|
||||||
xy := gtk_object_get_data(dc,"movepointto");
|
xy := gtk_object_get_data(dc,"movepointto");
|
||||||
if xy then
|
if xy then
|
||||||
|
|
@ -1505,9 +1562,7 @@ type tsgtkapi = class(tgtkapis)
|
||||||
begin
|
begin
|
||||||
x := gtk_object_get_data(dc,"viewport.x");
|
x := gtk_object_get_data(dc,"viewport.x");
|
||||||
y := gtk_object_get_data(dc,"viewport.y");
|
y := gtk_object_get_data(dc,"viewport.y");
|
||||||
pc := gtk_object_get_data(dc,"pen.color");
|
|
||||||
pw := gtk_object_get_data(dc,"pen.width");
|
pw := gtk_object_get_data(dc,"pen.width");
|
||||||
brc := gtk_object_get_data(dc,"brush.color");
|
|
||||||
if pw>0 then cairo_set_line_width(dc,pw);
|
if pw>0 then cairo_set_line_width(dc,pw);
|
||||||
else cairo_set_line_width(dc,1);
|
else cairo_set_line_width(dc,1);
|
||||||
if pc=0 then
|
if pc=0 then
|
||||||
|
|
@ -1525,23 +1580,9 @@ type tsgtkapi = class(tgtkapis)
|
||||||
cairo_line_to(dc,l+x,b+y);
|
cairo_line_to(dc,l+x,b+y);
|
||||||
cairo_line_to(dc,l+x,t+y);
|
cairo_line_to(dc,l+x,t+y);
|
||||||
|
|
||||||
if brc=0 then
|
cairo_set_brush_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(brc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
cairo_fill_preserve(dc);
|
cairo_fill_preserve(dc);
|
||||||
if pc=0 then
|
cairo_set_pen_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
|
|
||||||
cairo_stroke(dc);
|
cairo_stroke(dc);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -1552,9 +1593,7 @@ type tsgtkapi = class(tgtkapis)
|
||||||
//³¤¶È
|
//³¤¶È
|
||||||
x := gtk_object_get_data(dc,"viewport.x");
|
x := gtk_object_get_data(dc,"viewport.x");
|
||||||
y := gtk_object_get_data(dc,"viewport.y");
|
y := gtk_object_get_data(dc,"viewport.y");
|
||||||
pc := gtk_object_get_data(dc,"pen.color");
|
|
||||||
pw := gtk_object_get_data(dc,"pen.width");
|
pw := gtk_object_get_data(dc,"pen.width");
|
||||||
brc := gtk_object_get_data(dc,"brush.color");
|
|
||||||
if pw>0 then cairo_set_line_width(dc,pw);
|
if pw>0 then cairo_set_line_width(dc,pw);
|
||||||
else cairo_set_line_width(dc,1);
|
else cairo_set_line_width(dc,1);
|
||||||
mx := (l+r)/2+x;
|
mx := (l+r)/2+x;
|
||||||
|
|
@ -1565,23 +1604,9 @@ type tsgtkapi = class(tgtkapis)
|
||||||
cairo_scale(dc,1,ry/rx);
|
cairo_scale(dc,1,ry/rx);
|
||||||
cairo_applay_pen_style(dc);
|
cairo_applay_pen_style(dc);
|
||||||
cairo_arc(dc, 0, 0, rx, 0, 2 * pi());
|
cairo_arc(dc, 0, 0, rx, 0, 2 * pi());
|
||||||
if brc=0 then
|
cairo_set_brush_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(brc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
cairo_fill_preserve(dc);
|
cairo_fill_preserve(dc);
|
||||||
if pc=0 then
|
cairo_set_pen_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
cairo_stroke(dc);
|
cairo_stroke(dc);
|
||||||
cairo_scale(dc,1,rx/ry);
|
cairo_scale(dc,1,rx/ry);
|
||||||
cairo_translate(dc,0-mx,0-my);
|
cairo_translate(dc,0-mx,0-my);
|
||||||
|
|
@ -1591,26 +1616,15 @@ type tsgtkapi = class(tgtkapis)
|
||||||
begin
|
begin
|
||||||
xb := gtk_object_get_data(dc,"viewport.x");
|
xb := gtk_object_get_data(dc,"viewport.x");
|
||||||
yb := gtk_object_get_data(dc,"viewport.y");
|
yb := gtk_object_get_data(dc,"viewport.y");
|
||||||
pc := gtk_object_get_data(dc,"pen.color");
|
|
||||||
pw := gtk_object_get_data(dc,"pen.width");
|
pw := gtk_object_get_data(dc,"pen.width");
|
||||||
|
|
||||||
if pw>0 then cairo_set_line_width(dc,pw);
|
if pw>0 then cairo_set_line_width(dc,pw);
|
||||||
else cairo_set_line_width(dc,1);
|
else cairo_set_line_width(dc,1);
|
||||||
cairo_applay_pen_style(dc);
|
cairo_applay_pen_style(dc);
|
||||||
cairo_draw_round_rectangle(dc,l,t,r-l,b-t,wid);
|
cairo_draw_round_rectangle(dc,l,t,r-l,b-t,wid);
|
||||||
|
cairo_set_brush_color(dc);
|
||||||
bsh := gtk_object_get_data(dc,"brush.color");
|
|
||||||
gtk_rgb_color_rgb(bsh,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
cairo_fill_preserve(dc); //»æÖƵ×É«
|
cairo_fill_preserve(dc); //»æÖƵ×É«
|
||||||
if pc=0 then
|
cairo_set_pen_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
cairo_stroke(dc);//»æÖƱ߿ò
|
cairo_stroke(dc);//»æÖƱ߿ò
|
||||||
return 1;
|
return 1;
|
||||||
end
|
end
|
||||||
|
|
@ -1618,9 +1632,7 @@ type tsgtkapi = class(tgtkapis)
|
||||||
begin
|
begin
|
||||||
x := gtk_object_get_data(dc,"viewport.x");
|
x := gtk_object_get_data(dc,"viewport.x");
|
||||||
y := gtk_object_get_data(dc,"viewport.y");
|
y := gtk_object_get_data(dc,"viewport.y");
|
||||||
pc := gtk_object_get_data(dc,"pen.color");
|
|
||||||
pw := gtk_object_get_data(dc,"pen.width");
|
pw := gtk_object_get_data(dc,"pen.width");
|
||||||
brc := gtk_object_get_data(dc,"brush.color");
|
|
||||||
direct := gtk_object_get_data(dc,"arcdirection");
|
direct := gtk_object_get_data(dc,"arcdirection");
|
||||||
if pw>0 then cairo_set_line_width(dc,pw);
|
if pw>0 then cairo_set_line_width(dc,pw);
|
||||||
else cairo_set_line_width(dc,1);
|
else cairo_set_line_width(dc,1);
|
||||||
|
|
@ -1646,25 +1658,11 @@ type tsgtkapi = class(tgtkapis)
|
||||||
cairo_arc(dc, 0, 0, rx, arg2, arg1);
|
cairo_arc(dc, 0, 0, rx, arg2, arg1);
|
||||||
end
|
end
|
||||||
|
|
||||||
if brc=0 then
|
cairo_set_brush_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(brc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
cairo_move_to(dc,cos(arg1)*rx,sin(arg1)*rx);
|
cairo_move_to(dc,cos(arg1)*rx,sin(arg1)*rx);
|
||||||
cairo_line_to(dc,cos(arg2)*rx,sin(arg2)*rx);
|
cairo_line_to(dc,cos(arg2)*rx,sin(arg2)*rx);
|
||||||
cairo_fill_preserve(dc);
|
cairo_fill_preserve(dc);
|
||||||
if pc=0 then
|
cairo_set_pen_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
|
|
||||||
cairo_stroke(dc);
|
cairo_stroke(dc);
|
||||||
cairo_scale(dc,1,rx/ry);
|
cairo_scale(dc,1,rx/ry);
|
||||||
|
|
@ -1674,9 +1672,7 @@ type tsgtkapi = class(tgtkapis)
|
||||||
begin
|
begin
|
||||||
x := gtk_object_get_data(dc,"viewport.x");
|
x := gtk_object_get_data(dc,"viewport.x");
|
||||||
y := gtk_object_get_data(dc,"viewport.y");
|
y := gtk_object_get_data(dc,"viewport.y");
|
||||||
pc := gtk_object_get_data(dc,"pen.color");
|
|
||||||
pw := gtk_object_get_data(dc,"pen.width");
|
pw := gtk_object_get_data(dc,"pen.width");
|
||||||
brc := gtk_object_get_data(dc,"brush.color");
|
|
||||||
direct := gtk_object_get_data(dc,"arcdirection");
|
direct := gtk_object_get_data(dc,"arcdirection");
|
||||||
if pw>0 then cairo_set_line_width(dc,pw);
|
if pw>0 then cairo_set_line_width(dc,pw);
|
||||||
else cairo_set_line_width(dc,1);
|
else cairo_set_line_width(dc,1);
|
||||||
|
|
@ -1701,27 +1697,12 @@ type tsgtkapi = class(tgtkapis)
|
||||||
begin
|
begin
|
||||||
cairo_arc(dc, 0, 0, rx, arg2, arg1);
|
cairo_arc(dc, 0, 0, rx, arg2, arg1);
|
||||||
end
|
end
|
||||||
|
cairo_set_brush_color(dc);
|
||||||
if brc=0 then
|
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(brc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
cairo_move_to(dc,cos(arg1)*rx,sin(arg1)*rx);
|
cairo_move_to(dc,cos(arg1)*rx,sin(arg1)*rx);
|
||||||
cairo_line_to(dc,0,0);
|
cairo_line_to(dc,0,0);
|
||||||
cairo_line_to(dc,cos(arg2)*rx,sin(arg2)*rx);
|
cairo_line_to(dc,cos(arg2)*rx,sin(arg2)*rx);
|
||||||
cairo_fill_preserve(dc);
|
cairo_fill_preserve(dc);
|
||||||
if pc=0 then
|
cairo_set_pen_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
|
|
||||||
cairo_stroke(dc);
|
cairo_stroke(dc);
|
||||||
cairo_scale(dc,1,rx/ry);
|
cairo_scale(dc,1,rx/ry);
|
||||||
|
|
@ -1776,7 +1757,6 @@ type tsgtkapi = class(tgtkapis)
|
||||||
begin
|
begin
|
||||||
x := gtk_object_get_data(dc,"viewport.x");
|
x := gtk_object_get_data(dc,"viewport.x");
|
||||||
y := gtk_object_get_data(dc,"viewport.y");
|
y := gtk_object_get_data(dc,"viewport.y");
|
||||||
pc := gtk_object_get_data(dc,"pen.color");
|
|
||||||
pw := gtk_object_get_data(dc,"pen.width");
|
pw := gtk_object_get_data(dc,"pen.width");
|
||||||
//brc := gtk_object_get_data(dc,"brush.color");
|
//brc := gtk_object_get_data(dc,"brush.color");
|
||||||
direct := gtk_object_get_data(dc,"arcdirection");
|
direct := gtk_object_get_data(dc,"arcdirection");
|
||||||
|
|
@ -1812,14 +1792,7 @@ type tsgtkapi = class(tgtkapis)
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
cairo_set_source_rgb(dc,rc,gc,bc);
|
||||||
end
|
end
|
||||||
cairo_fill_preserve(dc); }
|
cairo_fill_preserve(dc); }
|
||||||
if pc=0 then
|
cairo_set_pen_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
cairo_stroke(dc);
|
cairo_stroke(dc);
|
||||||
cairo_scale(dc,1,rx/ry);
|
cairo_scale(dc,1,rx/ry);
|
||||||
cairo_translate(dc,0-mx,0-my);
|
cairo_translate(dc,0-mx,0-my);
|
||||||
|
|
@ -1829,8 +1802,6 @@ type tsgtkapi = class(tgtkapis)
|
||||||
if n<3 then return ;
|
if n<3 then return ;
|
||||||
x := gtk_object_get_data(dc,"viewport.x");
|
x := gtk_object_get_data(dc,"viewport.x");
|
||||||
y := gtk_object_get_data(dc,"viewport.y");
|
y := gtk_object_get_data(dc,"viewport.y");
|
||||||
pc := gtk_object_get_data(dc,"pen.color");
|
|
||||||
brc := gtk_object_get_data(dc,"brush.color");
|
|
||||||
pw := gtk_object_get_data(dc,"pen.width");
|
pw := gtk_object_get_data(dc,"pen.width");
|
||||||
if pw>0 then cairo_set_line_width(dc,pw);
|
if pw>0 then cairo_set_line_width(dc,pw);
|
||||||
else cairo_set_line_width(dc,1);
|
else cairo_set_line_width(dc,1);
|
||||||
|
|
@ -1842,23 +1813,9 @@ type tsgtkapi = class(tgtkapis)
|
||||||
cairo_line_to(dc,Points[i,0]+x,Points[i,1]+y);
|
cairo_line_to(dc,Points[i,0]+x,Points[i,1]+y);
|
||||||
end
|
end
|
||||||
cairo_line_to(dc,Points[0,0]+x,Points[0,1]+y);
|
cairo_line_to(dc,Points[0,0]+x,Points[0,1]+y);
|
||||||
if brc=0 then
|
cairo_set_brush_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(brc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
cairo_fill_preserve(dc);
|
cairo_fill_preserve(dc);
|
||||||
if pc=0 then
|
cairo_set_pen_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
cairo_stroke(dc);
|
cairo_stroke(dc);
|
||||||
end
|
end
|
||||||
Function PolyBezier(dc :pointer;points:array of integer;n:integer):integer;
|
Function PolyBezier(dc :pointer;points:array of integer;n:integer):integer;
|
||||||
|
|
@ -1866,18 +1823,10 @@ type tsgtkapi = class(tgtkapis)
|
||||||
if length(points)<4 then return 0;
|
if length(points)<4 then return 0;
|
||||||
x := gtk_object_get_data(dc,"viewport.x");
|
x := gtk_object_get_data(dc,"viewport.x");
|
||||||
y := gtk_object_get_data(dc,"viewport.y");
|
y := gtk_object_get_data(dc,"viewport.y");
|
||||||
pc := gtk_object_get_data(dc,"pen.color");
|
|
||||||
pw := gtk_object_get_data(dc,"pen.width");
|
pw := gtk_object_get_data(dc,"pen.width");
|
||||||
if pw>0 then cairo_set_line_width(dc,pw);
|
if pw>0 then cairo_set_line_width(dc,pw);
|
||||||
else cairo_set_line_width(dc,1);
|
else cairo_set_line_width(dc,1);
|
||||||
if pc=0 then
|
cairo_set_pen_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
cairo_applay_pen_style(dc);
|
cairo_applay_pen_style(dc);
|
||||||
cairo_move_to(dc,points[0,0]+x,Points[0,1]+y);
|
cairo_move_to(dc,points[0,0]+x,Points[0,1]+y);
|
||||||
for i := 1 to length(points)-2 step 3 do
|
for i := 1 to length(points)-2 step 3 do
|
||||||
|
|
@ -1896,18 +1845,10 @@ type tsgtkapi = class(tgtkapis)
|
||||||
if n<2 then return ;
|
if n<2 then return ;
|
||||||
x := gtk_object_get_data(dc,"viewport.x");
|
x := gtk_object_get_data(dc,"viewport.x");
|
||||||
y := gtk_object_get_data(dc,"viewport.y");
|
y := gtk_object_get_data(dc,"viewport.y");
|
||||||
pc := gtk_object_get_data(dc,"pen.color");
|
|
||||||
pw := gtk_object_get_data(dc,"pen.width");
|
pw := gtk_object_get_data(dc,"pen.width");
|
||||||
if pw>0 then cairo_set_line_width(dc,pw);
|
if pw>0 then cairo_set_line_width(dc,pw);
|
||||||
else cairo_set_line_width(dc,1);
|
else cairo_set_line_width(dc,1);
|
||||||
if pc=0 then
|
cairo_set_pen_color(dc);
|
||||||
begin
|
|
||||||
cairo_set_source_rgb(dc,0,0,0);
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
gtk_rgb_color_rgb(pc,rc,gc,bc);
|
|
||||||
cairo_set_source_rgb(dc,rc,gc,bc);
|
|
||||||
end
|
|
||||||
cairo_applay_pen_style(dc);
|
cairo_applay_pen_style(dc);
|
||||||
for i := 0 to n-1 do
|
for i := 0 to n-1 do
|
||||||
begin
|
begin
|
||||||
|
|
@ -4613,7 +4554,7 @@ type tgtkapis = class() //gtk
|
||||||
return ##_f_(c);
|
return ##_f_(c);
|
||||||
end
|
end
|
||||||
//procedure draw_round_rectangle(c:pointer;x:double;y:double;w:double;h:double;r:double);cdecl;external 'libgtk-3.so';
|
//procedure draw_round_rectangle(c:pointer;x:double;y:double;w:double;h:double;r:double);cdecl;external 'libgtk-3.so';
|
||||||
procedure cairo_arc (cr:pointer; xc:double;yc:double;radius:double;angle1:double;angle2:double);
|
procedure cairo_arc(cr:pointer; xc:double;yc:double;radius:double;angle1:double;angle2:double);
|
||||||
begin
|
begin
|
||||||
_f_ := static procedure(cr:pointer; xc:double;yc:double;radius:double;angle1:double;angle2:double);cdecl;external getfuncptrbyname(0,functionname());
|
_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);
|
return ##_f_(cr,xc,yc,radius,angle1,angle2);
|
||||||
|
|
@ -4736,27 +4677,47 @@ type tgtkapis = class() //gtk
|
||||||
function cairo_applay_pen_style(dc);
|
function cairo_applay_pen_style(dc);
|
||||||
begin
|
begin
|
||||||
pt := gtk_object_get_data(dc,"pen.style");
|
pt := gtk_object_get_data(dc,"pen.style");
|
||||||
if pt=0x2 or pt=0x3 or pt=0x4 then
|
case pt of
|
||||||
begin
|
1:
|
||||||
cairo_set_dash(dc,array(4.0,1.0),2,0);
|
begin
|
||||||
|
ds := array(14,6);
|
||||||
|
cairo_set_dash(dc,ds,length(ds),0);
|
||||||
|
end
|
||||||
|
2:
|
||||||
|
begin
|
||||||
|
ds := array(3,3);
|
||||||
|
cairo_set_dash(dc,ds,length(ds),0);
|
||||||
|
end
|
||||||
|
3:
|
||||||
|
begin
|
||||||
|
ds := array(10,4,3,4);
|
||||||
|
cairo_set_dash(dc,ds,length(ds),0);
|
||||||
|
end
|
||||||
|
4:
|
||||||
|
begin
|
||||||
|
ds := array(10,3,3,3,3,3);
|
||||||
|
cairo_set_dash(dc,ds,length(ds),0);
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
cairo_set_dash(dc,array(0),0,0);
|
||||||
|
end
|
||||||
end
|
end
|
||||||
else cairo_set_dash(dc,array(4.0,0.0),2,0);
|
|
||||||
return pt=5;
|
return pt=5;
|
||||||
end
|
end
|
||||||
function cairo_draw_round_rectangle(cr,x,y,w,h,r);
|
function cairo_draw_round_rectangle(cr,x,y,w,h,r);
|
||||||
begin
|
begin
|
||||||
cairo_move_to (cr, x + r, y);
|
cairo_move_to(cr, x + r, y);
|
||||||
cairo_line_to (cr, x + w - r, y);
|
cairo_line_to(cr, x + w - r, y);
|
||||||
cairo_move_to (cr, x + w, y + r);
|
cairo_move_to(cr, x + w, y + r);
|
||||||
cairo_line_to (cr, x + w, y + h - r);
|
cairo_line_to(cr, x + w, y + h - r);
|
||||||
cairo_move_to (cr, x + w - r, y + h);
|
cairo_move_to(cr, x + w - r, y + h);
|
||||||
cairo_line_to (cr, x + r, y + h);
|
cairo_line_to(cr, x + r, y + h);
|
||||||
cairo_move_to (cr, x, y + h - r);
|
cairo_move_to(cr, x, y + h - r);
|
||||||
cairo_line_to (cr, x, y + r);
|
cairo_line_to(cr, x, y + r);
|
||||||
cairo_arc (cr, x + r, y + r, r, 3.14, 3 * 3.14 / 2.0);
|
cairo_arc(cr, x + r, y + r, r, 3.14, 3 * 3.14 / 2.0);
|
||||||
cairo_arc (cr, x + w - r, y + r, r, 3 * 3.14 / 2, 2 * 3.14);
|
cairo_arc(cr, x + w - r, y + r, r, 3 * 3.14 / 2, 2 * 3.14);
|
||||||
cairo_arc (cr, x + w - r, y + h - r, r, 0, 3.14 / 2);
|
cairo_arc(cr, x + w - r, y + h - r, r, 0, 3.14 / 2);
|
||||||
cairo_arc (cr, x + r, y + h - r, r, 3.14 / 2, 3.14);
|
cairo_arc(cr, x + r, y + h - r, r, 3.14 / 2, 3.14);
|
||||||
end
|
end
|
||||||
//////////////////////text//////// https://developer.gnome.org/cairo/stable/cairo-cairo-font-options-t.html#cairo-font-options-get-hint-metrics
|
//////////////////////text//////// https://developer.gnome.org/cairo/stable/cairo-cairo-font-options-t.html#cairo-font-options-get-hint-metrics
|
||||||
procedure cairo_show_text(c:pointer;t:string);
|
procedure cairo_show_text(c:pointer;t:string);
|
||||||
|
|
|
||||||
|
|
@ -1554,6 +1554,16 @@ type TNode = class() //
|
||||||
if idx >= 0 then return FItems[idx];
|
if idx >= 0 then return FItems[idx];
|
||||||
return nil;
|
return nil;
|
||||||
end
|
end
|
||||||
|
function set_node_index(nd,idx); //ÉèÖÃ×ÓÏî´ÎÐò
|
||||||
|
begin
|
||||||
|
if not(idx>=0) then return -1;
|
||||||
|
oidx := FItems.indexof(v);
|
||||||
|
if oidx>=0 and idx<>oidx then
|
||||||
|
begin
|
||||||
|
setorder(oidx,idx);
|
||||||
|
end else return 0;
|
||||||
|
return 1;
|
||||||
|
end
|
||||||
function indexof(v); //获得序号
|
function indexof(v); //获得序号
|
||||||
begin
|
begin
|
||||||
return FItems.indexof(v);
|
return FItems.indexof(v);
|
||||||
|
|
@ -1624,9 +1634,9 @@ type TNode = class() //
|
||||||
if not nd then return;
|
if not nd then return;
|
||||||
//是否显示处理
|
//是否显示处理
|
||||||
FItems.Deli(idx);
|
FItems.Deli(idx);
|
||||||
CurrentDeleteNode := nd;
|
FCurrentDeleteNode := nd;
|
||||||
nd.parent := self(true);
|
nd.parent := self(true);
|
||||||
CurrentDeleteNode := nil;
|
FCurrentDeleteNode := nil;
|
||||||
return true;
|
return true;
|
||||||
end
|
end
|
||||||
function DeleteChildren();virtual; //
|
function DeleteChildren();virtual; //
|
||||||
|
|
@ -1638,9 +1648,9 @@ type TNode = class() //
|
||||||
begin
|
begin
|
||||||
idx := 0;
|
idx := 0;
|
||||||
it := FItems[idx];
|
it := FItems[idx];
|
||||||
CurrentDeleteNode := it;
|
FCurrentDeleteNode := it;
|
||||||
it.parent := self(true);
|
it.parent := self(true);
|
||||||
CurrentDeleteNode := nil;
|
FCurrentDeleteNode := nil;
|
||||||
FItems.Deli(idx);
|
FItems.Deli(idx);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -1660,9 +1670,9 @@ type TNode = class() //
|
||||||
if(it is class(TNode))and(not it.Parent)then
|
if(it is class(TNode))and(not it.Parent)then
|
||||||
begin
|
begin
|
||||||
FItems.InsertBefor(it,idx0);
|
FItems.InsertBefor(it,idx0);
|
||||||
CurrentAddNode := it;
|
FCurrentAddNode := it;
|
||||||
it.Parent := self(true);
|
it.Parent := self(true);
|
||||||
CurrentAddNode := nil;
|
FCurrentAddNode := nil;
|
||||||
idx0++;
|
idx0++;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -1680,9 +1690,9 @@ type TNode = class() //
|
||||||
if idx>FItems.Count then idx := FItems.Count;
|
if idx>FItems.Count then idx := FItems.Count;
|
||||||
if not(idx >= 0)then idx := 0;
|
if not(idx >= 0)then idx := 0;
|
||||||
FItems.InsertBefor(it,idx);
|
FItems.InsertBefor(it,idx);
|
||||||
CurrentAddNode := it;
|
FCurrentAddNode := it;
|
||||||
it.Parent := self(true);
|
it.Parent := self(true);
|
||||||
CurrentAddNode := nil;
|
FCurrentAddNode := nil;
|
||||||
return true;
|
return true;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -1726,15 +1736,20 @@ type TNode = class() //
|
||||||
@param(Parent)(TNode) 父节点 %%
|
@param(Parent)(TNode) 父节点 %%
|
||||||
**}
|
**}
|
||||||
protected
|
protected
|
||||||
property CurrentDeleteNode read FCurrentDeleteNode write FCurrentDeleteNode;
|
property CurrentDeleteNode read FCurrentDeleteNode;
|
||||||
property CurrentAddNode read FCurrentAddNode write FCurrentAddNode;
|
property CurrentAddNode read FCurrentAddNode;
|
||||||
{**
|
{**
|
||||||
@ignoremembers(CurrentDeleteNode,CurrentAddNode)
|
@ignoremembers(CurrentDeleteNode,CurrentAddNode)
|
||||||
**}
|
**}
|
||||||
function SetParent(V);virtual;
|
function SetParent(V);virtual;
|
||||||
begin
|
begin
|
||||||
tp := Parent;
|
tp := Parent;
|
||||||
if v=tp then return;
|
if tp and (v=tp) and( v.CurrentDeleteNode=self ) then
|
||||||
|
begin
|
||||||
|
FParent := nil;
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
if (v=tp) then return;
|
||||||
if(v is class(TNode))then
|
if(v is class(TNode))then
|
||||||
begin
|
begin
|
||||||
if v.CurrentAddNode=self then
|
if v.CurrentAddNode=self then
|
||||||
|
|
@ -1759,6 +1774,8 @@ type TNode = class() //
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
private
|
private
|
||||||
|
fwilldelete;
|
||||||
|
fwilladd;
|
||||||
function GetLstChild();
|
function GetLstChild();
|
||||||
begin
|
begin
|
||||||
return FItems[FItems.Count-1];
|
return FItems[FItems.Count-1];
|
||||||
|
|
|
||||||
|
|
@ -611,6 +611,14 @@ type tcustombrush=class(tgdi)
|
||||||
FColor := c;
|
FColor := c;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
function SetStyle(s);
|
||||||
|
begin
|
||||||
|
if (s <> FStyle) and (s in array(BS_SOLID,BS_NULL)) then
|
||||||
|
begin
|
||||||
|
onchange();
|
||||||
|
FStyle := s;
|
||||||
|
end
|
||||||
|
end
|
||||||
public
|
public
|
||||||
class function sinit();override;
|
class function sinit();override;
|
||||||
begin
|
begin
|
||||||
|
|
@ -637,11 +645,11 @@ type tcustombrush=class(tgdi)
|
||||||
hp := reference();
|
hp := reference();
|
||||||
if not hp then
|
if not hp then
|
||||||
begin
|
begin
|
||||||
//LOGSTRUCT._setvalue_("lbstyle",FStyle);
|
LOGSTRUCT._setvalue_("lbstyle",FStyle);
|
||||||
//LOGSTRUCT._setvalue_("lbcolor",FColor);
|
LOGSTRUCT._setvalue_("lbcolor",FColor);
|
||||||
//LOGSTRUCT._setvalue_("lbhatch",FHatch);
|
//LOGSTRUCT._setvalue_("lbhatch",FHatch);
|
||||||
//hp := _wapi.CreateBrushIndirect(LOGSTRUCT._getptr_);
|
hp := _wapi.CreateBrushIndirect(LOGSTRUCT._getptr_);
|
||||||
hp := _wapi.CreateSolidBrush(FColor);
|
//hp := _wapi.CreateSolidBrush(FColor);
|
||||||
addsource(hp);
|
addsource(hp);
|
||||||
end
|
end
|
||||||
FHandle := hp;
|
FHandle := hp;
|
||||||
|
|
@ -671,7 +679,7 @@ type tcustombrush=class(tgdi)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
//property Style read FStyle write SetStyle;
|
property Style read FStyle write SetStyle;
|
||||||
property Color read FColor write SetColor;
|
property Color read FColor write SetColor;
|
||||||
//property Hatch read FHatch write SetHatch;
|
//property Hatch read FHatch write SetHatch;
|
||||||
end
|
end
|
||||||
|
|
@ -814,59 +822,7 @@ type TRGNRoundRect=class(TRGNELLIP)
|
||||||
property EllipseWidth:integer read FEllipseWidth write SetEllipseWidth;
|
property EllipseWidth:integer read FEllipseWidth write SetEllipseWidth;
|
||||||
property EllipseHeight:integer read FEllipseHeight write SetEllipseHeight;
|
property EllipseHeight:integer read FEllipseHeight write SetEllipseHeight;
|
||||||
end
|
end
|
||||||
type TRGNPOLY=class(TRGN) //多边形
|
|
||||||
{**
|
|
||||||
@explan(说明)多边形区域%%
|
|
||||||
**}
|
|
||||||
private
|
|
||||||
FPoints;
|
|
||||||
FImode;
|
|
||||||
function pointtovector(pts); //点转换为数组
|
|
||||||
begin
|
|
||||||
t := array();
|
|
||||||
lt := 0;
|
|
||||||
if not ifarray(pts)then return array();
|
|
||||||
for i,v in pts do
|
|
||||||
begin
|
|
||||||
if ifarray(v)and ifnumber(v[0])and ifnumber(v[1])then
|
|
||||||
begin
|
|
||||||
t[lt++]:= v[0];
|
|
||||||
t[lt++]:= v[1];
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return t;
|
|
||||||
end
|
|
||||||
function SetImode(v);
|
|
||||||
begin
|
|
||||||
if(v in array(1,2))and v <> FImode then
|
|
||||||
begin
|
|
||||||
FImode := v;
|
|
||||||
DestroyHandle();
|
|
||||||
end
|
|
||||||
end
|
|
||||||
function SetPoints(v);
|
|
||||||
begin
|
|
||||||
if v <> FPoints then
|
|
||||||
begin
|
|
||||||
FPoints := v;
|
|
||||||
DestroyHandle();
|
|
||||||
end
|
|
||||||
end
|
|
||||||
public
|
|
||||||
function create(); //点 和填充模式
|
|
||||||
begin
|
|
||||||
inherited;
|
|
||||||
FImode := ALTERNATE;
|
|
||||||
end
|
|
||||||
function CreateRgn();override;
|
|
||||||
begin
|
|
||||||
t := pointtovector(FPoints);
|
|
||||||
len := length(t);
|
|
||||||
if len>5 then return _wapi.CreatePolygonRgn(t,len/2,FImode);
|
|
||||||
end
|
|
||||||
property Points read FPoints write SetPoints;
|
|
||||||
property Imode read FImode write SetImode;
|
|
||||||
end
|
|
||||||
|
|
||||||
type tcustomimage=class(TSLUIBASE)
|
type tcustomimage=class(TSLUIBASE)
|
||||||
{**
|
{**
|
||||||
|
|
@ -3210,11 +3166,10 @@ type tshapechord = class(tshape,tshaperect,tsepoint)
|
||||||
return inherited;
|
return inherited;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
type tshapepolygon = class(tshape)
|
type tshapepolygon = class(tshapepolyline)
|
||||||
function create(dc);
|
function create(dc);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
fbpoints := array();
|
|
||||||
end
|
end
|
||||||
function draw();override;
|
function draw();override;
|
||||||
begin
|
begin
|
||||||
|
|
@ -3224,6 +3179,22 @@ type tshapepolygon = class(tshape)
|
||||||
end
|
end
|
||||||
return inherited;
|
return inherited;
|
||||||
end
|
end
|
||||||
|
function points(ps);override;
|
||||||
|
begin
|
||||||
|
r := inherited;
|
||||||
|
if length(fbpoints)<2 then
|
||||||
|
begin
|
||||||
|
fbpoints := array();
|
||||||
|
end
|
||||||
|
return r;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
type tshapepolyline = class(tshape)
|
||||||
|
function create(dc);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
fbpoints := array();
|
||||||
|
end
|
||||||
function points(ps);virtual;
|
function points(ps);virtual;
|
||||||
begin
|
begin
|
||||||
tps := array();
|
tps := array();
|
||||||
|
|
@ -3234,21 +3205,13 @@ type tshapepolygon = class(tshape)
|
||||||
tps[idx++] := array(v[0],v[1]);
|
tps[idx++] := array(v[0],v[1]);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if length(tps)>2 then
|
if length(tps)>1 then
|
||||||
begin
|
begin
|
||||||
fbpoints := tps;
|
fbpoints := tps;
|
||||||
end
|
end
|
||||||
return self(true);
|
return self(true);
|
||||||
end
|
end
|
||||||
protected
|
|
||||||
fbpoints;
|
|
||||||
|
|
||||||
end
|
|
||||||
type tshapepolyline = class(tshapepolygon)
|
|
||||||
function create(dc);
|
|
||||||
begin
|
|
||||||
inherited;
|
|
||||||
end
|
|
||||||
function draw();override;
|
function draw();override;
|
||||||
begin
|
begin
|
||||||
if fcanvas and fcanvas.HandleAllocated() and fbpoints then
|
if fcanvas and fcanvas.HandleAllocated() and fbpoints then
|
||||||
|
|
@ -3257,6 +3220,8 @@ type tshapepolyline = class(tshapepolygon)
|
||||||
end
|
end
|
||||||
return self(true);
|
return self(true);
|
||||||
end
|
end
|
||||||
|
protected
|
||||||
|
fbpoints;
|
||||||
end
|
end
|
||||||
type tshapeBezier = class(tshape)
|
type tshapeBezier = class(tshape)
|
||||||
function create(dc);
|
function create(dc);
|
||||||
|
|
@ -3416,3 +3381,58 @@ class(tUIglobalData).uisetdata("G_T_ICON_",class(TcustomIcon));
|
||||||
finalization
|
finalization
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
(*
|
||||||
|
type TRGNPOLY=class(TRGN) //多边形
|
||||||
|
{**
|
||||||
|
@explan(说明)多边形区域%%
|
||||||
|
**}
|
||||||
|
private
|
||||||
|
FPoints;
|
||||||
|
FImode;
|
||||||
|
function pointtovector(pts); //点转换为数组
|
||||||
|
begin
|
||||||
|
t := array();
|
||||||
|
lt := 0;
|
||||||
|
if not ifarray(pts)then return array();
|
||||||
|
for i,v in pts do
|
||||||
|
begin
|
||||||
|
if ifarray(v)and ifnumber(v[0])and ifnumber(v[1])then
|
||||||
|
begin
|
||||||
|
t[lt++]:= v[0];
|
||||||
|
t[lt++]:= v[1];
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return t;
|
||||||
|
end
|
||||||
|
function SetImode(v);
|
||||||
|
begin
|
||||||
|
if(v in array(1,2))and v <> FImode then
|
||||||
|
begin
|
||||||
|
FImode := v;
|
||||||
|
DestroyHandle();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function SetPoints(v);
|
||||||
|
begin
|
||||||
|
if v <> FPoints then
|
||||||
|
begin
|
||||||
|
FPoints := v;
|
||||||
|
DestroyHandle();
|
||||||
|
end
|
||||||
|
end
|
||||||
|
public
|
||||||
|
function create(); //点 和填充模式
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
FImode := ALTERNATE;
|
||||||
|
end
|
||||||
|
function CreateRgn();override;
|
||||||
|
begin
|
||||||
|
t := pointtovector(FPoints);
|
||||||
|
len := length(t);
|
||||||
|
if len>5 then return _wapi.CreatePolygonRgn(t,len/2,FImode);
|
||||||
|
end
|
||||||
|
property Points read FPoints write SetPoints;
|
||||||
|
property Imode read FImode write SetImode;
|
||||||
|
end
|
||||||
|
*)
|
||||||
|
|
@ -980,9 +980,9 @@ type TcustomTreeCtlNode = class(tsluibase) //
|
||||||
Owner.DeleteItemByIndex(Owner.GetItemIndex(nd));
|
Owner.DeleteItemByIndex(Owner.GetItemIndex(nd));
|
||||||
end
|
end
|
||||||
FItems.Deli(idx);
|
FItems.Deli(idx);
|
||||||
CurrentDeleteNode := nd;
|
FCurrentDeleteNode := nd;
|
||||||
nd.parent := self(true);
|
nd.parent := self(true);
|
||||||
CurrentDeleteNode := nil;
|
FCurrentDeleteNode := nil;
|
||||||
if nd = Owner.CurrentNode then
|
if nd = Owner.CurrentNode then
|
||||||
begin
|
begin
|
||||||
Owner.SetSel(nil);
|
Owner.SetSel(nil);
|
||||||
|
|
@ -1015,9 +1015,9 @@ type TcustomTreeCtlNode = class(tsluibase) //
|
||||||
begin
|
begin
|
||||||
idx := 0; //ItemCount-1;
|
idx := 0; //ItemCount-1;
|
||||||
it := FItems[idx];
|
it := FItems[idx];
|
||||||
CurrentDeleteNode := it;
|
FCurrentDeleteNode := it;
|
||||||
it.parent := self(true);
|
it.parent := self(true);
|
||||||
CurrentDeleteNode := nil;
|
FCurrentDeleteNode := nil;
|
||||||
FItems.Deli(idx);
|
FItems.Deli(idx);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -1061,9 +1061,9 @@ type TcustomTreeCtlNode = class(tsluibase) //
|
||||||
odexp := it.Expanded;
|
odexp := it.Expanded;
|
||||||
it.UnExpand();
|
it.UnExpand();
|
||||||
FItems.InsertBefor(it,idx0);
|
FItems.InsertBefor(it,idx0);
|
||||||
CurrentAddNode := it;
|
FCurrentAddNode := it;
|
||||||
it.Parent := self(true);
|
it.Parent := self(true);
|
||||||
CurrentAddNode := nil;
|
FCurrentAddNode := nil;
|
||||||
it.UpDateHierarchy();
|
it.UpDateHierarchy();
|
||||||
nits[nitsi++]:= it;
|
nits[nitsi++]:= it;
|
||||||
idx0++;
|
idx0++;
|
||||||
|
|
@ -1095,9 +1095,9 @@ type TcustomTreeCtlNode = class(tsluibase) //
|
||||||
odexp := it.Expanded;
|
odexp := it.Expanded;
|
||||||
it.UnExpand();
|
it.UnExpand();
|
||||||
FItems.InsertBefor(it,idx);
|
FItems.InsertBefor(it,idx);
|
||||||
CurrentAddNode := it;
|
FCurrentAddNode := it;
|
||||||
it.Parent := self(true);
|
it.Parent := self(true);
|
||||||
CurrentAddNode := nil;
|
FCurrentAddNode := nil;
|
||||||
it.UpDateHierarchy();
|
it.UpDateHierarchy();
|
||||||
if Expanded and Owner.NodeInList(self)then
|
if Expanded and Owner.NodeInList(self)then
|
||||||
begin
|
begin
|
||||||
|
|
@ -1297,8 +1297,8 @@ type TcustomTreeCtlNode = class(tsluibase) //
|
||||||
@param(Owner)(TcustomTreeCtl) 所有者 %%
|
@param(Owner)(TcustomTreeCtl) 所有者 %%
|
||||||
**}
|
**}
|
||||||
protected //父子节点设置相关
|
protected //父子节点设置相关
|
||||||
property CurrentDeleteNode read FCurrentDeleteNode write FCurrentDeleteNode;
|
property CurrentDeleteNode read FCurrentDeleteNode;
|
||||||
property CurrentAddNode read FCurrentAddNode write FCurrentAddNode;
|
property CurrentAddNode read FCurrentAddNode;
|
||||||
FItems; //子项
|
FItems; //子项
|
||||||
[weakref]FParent; //父节点
|
[weakref]FParent; //父节点
|
||||||
function Gitems();
|
function Gitems();
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue