В типы IntRange, CharRange добавлены Step(n) и Reverse

Дореализован range(c1,c2,step)
Добавлен пример в Graph3D с планетами
WinFormsUI - кнопки закрытия и списка увеличены в разрешении 200%
wplus hplus в graphWPFBase изменены так чтобы они работали в Windows XP
This commit is contained in:
Mikhalkovich Stanislav 2020-04-23 00:45:34 +03:00
parent 77ef79c68f
commit 4fc571c221
27 changed files with 316 additions and 67 deletions

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "6";
public const string Build = "2";
public const string Revision = "2414";
public const string Revision = "2427";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%COREVERSION%=2
%REVISION%=2414
%MINOR%=6
%REVISION%=2427
%COREVERSION%=2
%MAJOR%=3

View file

@ -0,0 +1,23 @@
uses Graph3D;
begin
Window.Title := 'Вращение планет';
View3D.HideAll;
View3D.BackgroundColor := Colors.Black;
var s := Sphere(0,0,0,30);
s.BackMaterial := ImageMaterial('skymap.jpg');
var Sun := Sphere(0,0,0,2,ImageMaterial('sunmap.jpg'));
var Earth := Sphere(-7,0,0,1,ImageMaterial('earthmap.jpg'));
var Moon := Sphere(2,0,0,0.5,ImageMaterial('moonmap.jpg'));
Earth.AddChild(Moon);
var tr := ParametricTrajectory(0,2*Pi,100,t->P3D(7*cos(t),7*sin(t),0));
Polyline3D(tr,1.2,GrayColor(70));
Moon.AnimRotateAt(OrtZ,360,P3D(-2,0,0),2.sec).Forever.Begin;
Earth.AnimRotateAtAbsolute(OrtZ,360,Origin,20.sec).Forever.Begin;
Earth.AnimRotate(OrtZ,-360,5.sec).Forever.Begin;
Sun.AnimRotate(OrtZ,-360,20.sec).Forever.Begin;
end.

View file

@ -0,0 +1,27 @@
uses Graph3D;
begin
Window.Title := 'Вращение планет';
View3D.HideAll;
var s := Sphere(0,0,0,30);
s.BackMaterial := ImageMaterial('skymap.jpg');
var earth := Sphere(-7,0,0,1,ImageMaterial('earthmap.jpg'));
var moon := Sphere(2,0,0,0.5,ImageMaterial('moonmap.jpg'));
earth.AddChild(moon);
var Sun := Sphere(0,0,0,2,ImageMaterial('sunmap.jpg'));
Sun.AnimRotate(OrtZ,-360,20.sec).Forever.Begin;
var tr := ParametricTrajectory(0,2*Pi,100,t->P3D(7*cos(t),7*sin(t),0));
Polyline3D(tr,1.2,GrayColor(80));
var tr1 := ParametricTrajectory(0,2*Pi,100,t->P3D(2*cos(t),2*sin(t),0));
var pl1 := Polyline3D(tr1,1.2,GrayColor(80));
earth.AddChild(pl1);
OnDrawFrame := dt -> begin
moon.RotateAt(OrtZ,360*dt/3,P3D(-2,0,0));
earth.RotateAtAbsolute(OrtZ,360*dt/6,Origin);
end;
end.

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

View file

@ -1 +1 @@
3.6.2.2414
3.6.2.2427

View file

@ -1 +1 @@
!define VERSION '3.6.2.2414'
!define VERSION '3.6.2.2427'

View file

@ -54,18 +54,21 @@ type
Alignment = (LeftTop,CenterTop,RightTop,LeftCenter,Center,RightCenter,LeftBottom,CenterBottom,RightBottom);
//{{{--doc: Конец секции 1 }}}
function GetBrush(c: Color): GBrush;
//{{{doc: Начало секции 2 }}}
// -----------------------------------------------------
//>> Класс BrushType # BrushType class
// -----------------------------------------------------
type
///!#
/// Тип кисти
BrushType = class
private
c := Colors.White;
function BrushConstruct := new SolidColorBrush(c);
function BrushConstruct := GetBrush(c);
public
/// Цвет кисти
property Color: GColor read c write c;
@ -84,7 +87,7 @@ type
rc: boolean := false;
function PenConstruct: GPen;
begin
Result := new GPen(new SolidColorBrush(c),th);
Result := new GPen(GetBrush(c),th);
Result.LineJoin := PenLineJoin.Round;
if rc then
begin
@ -136,7 +139,7 @@ type
end;
procedure SetFS(fs: FontStyle) := Invoke(SetFSP,fs);
function TypefaceClone := tf;
function BrushConstruct := new SolidColorBrush(c);
function BrushConstruct := GetBrush(c);
public
/// Цвет шрифта
property Color: GColor read c write c;
@ -513,6 +516,20 @@ procedure __FinalizeModule__;
implementation
var BrushesDict := new Dictionary<Color,GBrush>;
function GetBrush(c: Color): GBrush;
begin
if not (c in BrushesDict) then
begin
var b := new SolidColorBrush(c);
BrushesDict[c] := b;
Result := b
end
else Result := BrushesDict[c];
end;
procedure Redraw(d: ()->()) := app.Dispatcher.Invoke(d);
function getApp: Application := app;
@ -524,8 +541,8 @@ function EmptyColor: Color := ARGB(0,0,0,0);
function clRandom := RandomColor();
function Pnt(x,y: real) := new Point(x,y);
function Rect(x,y,w,h: real) := new System.Windows.Rect(x,y,w,h);
function ColorBrush(c: Color) := new SolidColorBrush(c);
function ColorPen(c: Color) := new GPen(ColorBrush(c),Pen.Width);
function ColorBrush(c: Color) := GetBrush(c);
function ColorPen(c: Color) := new GPen(GetBrush(c),Pen.Width);
procedure InvokeVisual(d: System.Delegate; params args: array of object);
begin
@ -662,7 +679,7 @@ end;
procedure SetPixelP(x,y: real; c: Color);
begin
var dc := GetDC();
dc.DrawRectangle(new SolidColorBrush(c), nil, Rect(x,y,1,1));
dc.DrawRectangle(GetBrush(c), nil, Rect(x,y,1,1));
ReleaseDC(dc);
end;
@ -673,7 +690,7 @@ begin
for var ix:=0 to w-1 do
for var iy:=0 to h-1 do
begin
dc.DrawRectangle(ColorBrush(f(ix,iy)), nil, Rect(x+ix,y+iy,1,1));
dc.DrawRectangle(GetBrush(f(ix,iy)), nil, Rect(x+ix,y+iy,1,1));
end;
ReleaseDC(dc);
end;
@ -691,7 +708,7 @@ function FormText(text: string) :=
function FormTextC(text: string; c: GColor): FormattedText :=
new FormattedText(text,new System.Globalization.CultureInfo('ru-ru'), FlowDirection.LeftToRight,
Font.TypefaceClone, Font.Size, ColorBrush(c));
Font.TypefaceClone, Font.Size, GetBrush(c));
function TextWidthP(text: string) := FormText(text).Width;
function TextHeightP(text: string) := FormText(text).Height;
@ -952,16 +969,16 @@ procedure SectorPFull(x, y, r, angle1, angle2: real; b: GBrush; p: GPen) := ArcS
procedure EllipseP(x,y,r1,r2: real) := EllipsePFull(x,y,r1,r2,Brush.BrushConstruct,Pen.PenConstruct);
procedure DrawEllipseP(x,y,r1,r2: real) := EllipsePFull(x,y,r1,r2,nil,Pen.PenConstruct);
procedure FillEllipseP(x,y,r1,r2: real) := EllipsePFull(x,y,r1,r2,Brush.BrushConstruct,nil);
procedure EllipsePC(x,y,r1,r2: real; c: GColor) := EllipsePFull(x,y,r1,r2,ColorBrush(c),Pen.PenConstruct);
procedure EllipsePC(x,y,r1,r2: real; c: GColor) := EllipsePFull(x,y,r1,r2,GetBrush(c),Pen.PenConstruct);
procedure DrawEllipsePC(x,y,r1,r2: real; c: GColor) := EllipsePFull(x,y,r1,r2,nil,ColorPen(c));
procedure FillEllipsePC(x,y,r1,r2: real; c: GColor) := EllipsePFull(x,y,r1,r2,ColorBrush(c),nil);
procedure FillEllipsePC(x,y,r1,r2: real; c: GColor) := EllipsePFull(x,y,r1,r2,GetBrush(c),nil);
procedure RectangleP(x,y,w,h: real) := RectanglePFull(x,y,w,h,Brush.BrushConstruct,Pen.PenConstruct);
procedure DrawRectangleP(x,y,w,h: real) := RectanglePFull(x,y,w,h,nil,Pen.PenConstruct);
procedure FillRectangleP(x,y,w,h: real) := RectanglePFull(x,y,w,h,Brush.BrushConstruct,nil);
procedure RectanglePC(x,y,r1,r2: real; c: GColor) := RectanglePFull(x,y,r1,r2,ColorBrush(c),Pen.PenConstruct);
procedure RectanglePC(x,y,r1,r2: real; c: GColor) := RectanglePFull(x,y,r1,r2,GetBrush(c),Pen.PenConstruct);
procedure DrawRectanglePC(x,y,r1,r2: real; c: GColor) := RectanglePFull(x,y,r1,r2,nil,ColorPen(c));
procedure FillRectanglePC(x,y,r1,r2: real; c: GColor) := RectanglePFull(x,y,r1,r2,ColorBrush(c),nil);
procedure FillRectanglePC(x,y,r1,r2: real; c: GColor) := RectanglePFull(x,y,r1,r2,GetBrush(c),nil);
procedure ArcP(x, y, r, angle1, angle2: real) := ArcPFull(x, y, r, angle1, angle2, Pen.PenConstruct);
procedure ArcPC(x, y, r, angle1, angle2: real; c: GColor) := ArcPFull(x, y, r, angle1, angle2, ColorPen(c));
@ -969,9 +986,9 @@ procedure ArcPC(x, y, r, angle1, angle2: real; c: GColor) := ArcPFull(x, y, r, a
procedure SectorP(x, y, r, angle1, angle2: real) := SectorPFull(x, y, r, angle1, angle2, Brush.BrushConstruct, Pen.PenConstruct);
procedure DrawSectorP(x, y, r, angle1, angle2: real) := SectorPFull(x, y, r, angle1, angle2, nil, Pen.PenConstruct);
procedure FillSectorP(x, y, r, angle1, angle2: real) := SectorPFull(x, y, r, angle1, angle2, Brush.BrushConstruct, nil);
procedure SectorPC(x, y, r, angle1, angle2: real; c: GColor) := SectorPFull(x, y, r, angle1, angle2, ColorBrush(c), Pen.PenConstruct);
procedure SectorPC(x, y, r, angle1, angle2: real; c: GColor) := SectorPFull(x, y, r, angle1, angle2, GetBrush(c), Pen.PenConstruct);
procedure DrawSectorPC(x, y, r, angle1, angle2: real; c: GColor) := SectorPFull(x, y, r, angle1, angle2, nil, ColorPen(c));
procedure FillSectorPC(x, y, r, angle1, angle2: real; c: GColor) := SectorPFull(x, y, r, angle1, angle2, ColorBrush(c), nil);
procedure FillSectorPC(x, y, r, angle1, angle2: real; c: GColor) := SectorPFull(x, y, r, angle1, angle2, GetBrush(c), nil);
procedure LineP(x,y,x1,y1: real) := LinePFull(x,y,x1,y1,Pen.PenConstruct);
procedure LinePC(x,y,x1,y1: real; c: GColor) := LinePFull(x,y,x1,y1,ColorPen(c));
@ -996,7 +1013,7 @@ procedure DrawEllipse(x,y,rx,ry: real) := InvokeVisual(DrawEllipseP,x,y,rx,ry);
procedure FillEllipse(x,y,rx,ry: real) := InvokeVisual(FillEllipseP,x,y,rx,ry);
procedure Ellipse(x,y,rx,ry: real; c: GColor) := InvokeVisual(EllipsePC,x,y,rx,ry,c);
procedure DrawEllipse(x,y,rx,ry: real; c: GColor) := InvokeVisual(DrawEllipsePC,x,y,rx,ry,c);
procedure FillEllipse(x,y,rx,ry: real; c: GColor) := app.Dispatcher.Invoke(()->FillEllipsePC(x,y,rx,ry,c));
procedure FillEllipse(x,y,rx,ry: real; c: GColor) := InvokeVisual(FillEllipsePC,x,y,rx,ry,c);
procedure Circle(x,y,r: real) := InvokeVisual(EllipseP,x,y,r,r);
procedure DrawCircle(x,y,r: real) := InvokeVisual(DrawEllipseP,x,y,r,r);

View file

@ -133,8 +133,22 @@ type
//{{{--doc: Конец секции 1 }}}
function wplus := SystemParameters.WindowResizeBorderThickness.Left + SystemParameters.WindowResizeBorderThickness.Right;
function hplus := SystemParameters.WindowCaptionHeight + SystemParameters.WindowResizeBorderThickness.Top + SystemParameters.WindowResizeBorderThickness.Bottom;
var wp: real := -1;
var hp: real := -1;
function wplus: real;
begin
if wp = -1 then
wp := (SystemParameters.BorderWidth + SystemParameters.FixedFrameVerticalBorderWidth) * 2;
Result := wp;
end;
function hplus: real;
begin
if hp = -1 then
hp := SystemParameters.WindowCaptionHeight + (SystemParameters.BorderWidth + SystemParameters.FixedFrameHorizontalBorderHeight) * 2;
Result := hp;
end;
///---- Window -----

View file

@ -4842,9 +4842,9 @@ function HSet<T>(a: sequence of T): HashSet<T> := new HashSet<T>(a);
function SSet<T>(a: sequence of T): SortedSet<T> := new SortedSet<T>(a);
function HSet(a: IntRange): HashSet<integer> := a.ToHashSet&<integer>;
function HSet(a: IntRange): HashSet<integer> := a.ToHashSet;
function HSet(a: CharRange): HashSet<char> := a.ToHashSet&<char>;
function HSet(a: CharRange): HashSet<char> := a.ToHashSet;
function SSet(a: IntRange): SortedSet<integer> := a.ToSortedSet;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 822 B

After

Width:  |  Height:  |  Size: 822 B

View file

@ -59,7 +59,7 @@ namespace CodeTemplatesPlugin
public CodeTemplatesForm()
{
InitializeComponent();
var scale = ScreenScale.Calc();
var scale = VisualPascalABC.ScreenScale.Calc();
listBox1.TileSize = new Size(listBox1.TileSize.Width, System.Convert.ToInt32(16 * scale));
LoadTemplates();
}

View file

@ -23,6 +23,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<UseVSHostingProcess>false</UseVSHostingProcess>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>

View file

@ -1,10 +1,10 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.42
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------
@ -13,13 +13,13 @@ namespace WeifenLuo.WinFormsUI.Docking {
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
// Этот класс создан автоматически классом StronglyTypedResourceBuilder
// с помощью такого средства, как ResGen или Visual Studio.
// Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
// с параметром /str или перестройте свой проект VS.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
@ -33,7 +33,7 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
@ -47,8 +47,8 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// Перезаписывает свойство CurrentUICulture текущего потока для всех
/// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
@ -60,6 +60,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PaneDiamond {
get {
object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond", resourceCulture);
@ -67,6 +70,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_Bottom {
get {
object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_Bottom", resourceCulture);
@ -74,6 +80,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_Fill {
get {
object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_Fill", resourceCulture);
@ -81,6 +90,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_HotSpot {
get {
object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_HotSpot", resourceCulture);
@ -88,6 +100,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_HotSpotIndex {
get {
object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_HotSpotIndex", resourceCulture);
@ -95,6 +110,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_Left {
get {
object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_Left", resourceCulture);
@ -102,6 +120,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_Right {
get {
object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_Right", resourceCulture);
@ -109,6 +130,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PaneDiamond_Top {
get {
object obj = ResourceManager.GetObject("DockIndicator_PaneDiamond_Top", resourceCulture);
@ -116,6 +140,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PanelBottom {
get {
object obj = ResourceManager.GetObject("DockIndicator_PanelBottom", resourceCulture);
@ -123,6 +150,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PanelBottom_Active {
get {
object obj = ResourceManager.GetObject("DockIndicator_PanelBottom_Active", resourceCulture);
@ -130,6 +160,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PanelFill {
get {
object obj = ResourceManager.GetObject("DockIndicator_PanelFill", resourceCulture);
@ -137,6 +170,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PanelFill_Active {
get {
object obj = ResourceManager.GetObject("DockIndicator_PanelFill_Active", resourceCulture);
@ -144,6 +180,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PanelLeft {
get {
object obj = ResourceManager.GetObject("DockIndicator_PanelLeft", resourceCulture);
@ -151,6 +190,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PanelLeft_Active {
get {
object obj = ResourceManager.GetObject("DockIndicator_PanelLeft_Active", resourceCulture);
@ -158,6 +200,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PanelRight {
get {
object obj = ResourceManager.GetObject("DockIndicator_PanelRight", resourceCulture);
@ -165,6 +210,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PanelRight_Active {
get {
object obj = ResourceManager.GetObject("DockIndicator_PanelRight_Active", resourceCulture);
@ -172,6 +220,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PanelTop {
get {
object obj = ResourceManager.GetObject("DockIndicator_PanelTop", resourceCulture);
@ -179,6 +230,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockIndicator_PanelTop_Active {
get {
object obj = ResourceManager.GetObject("DockIndicator_PanelTop_Active", resourceCulture);
@ -186,6 +240,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockPane_AutoHide {
get {
object obj = ResourceManager.GetObject("DockPane_AutoHide", resourceCulture);
@ -193,6 +250,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockPane_Close {
get {
object obj = ResourceManager.GetObject("DockPane_Close", resourceCulture);
@ -200,6 +260,19 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockPane_Close32 {
get {
object obj = ResourceManager.GetObject("DockPane_Close32", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockPane_Dock {
get {
object obj = ResourceManager.GetObject("DockPane_Dock", resourceCulture);
@ -207,6 +280,9 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockPane_Option {
get {
object obj = ResourceManager.GetObject("DockPane_Option", resourceCulture);
@ -214,6 +290,19 @@ namespace WeifenLuo.WinFormsUI.Docking {
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockPane_Option32 {
get {
object obj = ResourceManager.GetObject("DockPane_Option32", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DockPane_OptionOverflow {
get {
object obj = ResourceManager.GetObject("DockPane_OptionOverflow", resourceCulture);

View file

@ -112,12 +112,12 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="DockIndicator_PaneDiamond" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\DockIndicator_PaneDiamond.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@ -178,12 +178,18 @@
<data name="DockPane_Close" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\DockPane_Close.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DockPane_Close32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\Close_32.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DockPane_Dock" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\DockPane_Dock.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DockPane_Option" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\DockPane_Option.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DockPane_Option32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\DockPane_Option32.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DockPane_OptionOverflow" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\DockPane_OptionOverflow.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 774 B

After

Width:  |  Height:  |  Size: 774 B

View file

@ -7,7 +7,21 @@ using System.Windows.Forms.VisualStyles;
namespace WeifenLuo.WinFormsUI.Docking
{
internal class VS2005DockPaneCaption : DockPaneCaptionBase
public static class ScreenScale
{
private static double scale = -1;
public static double Calc()
{
if (scale > 0)
return scale;
var dpiXProperty = typeof(System.Windows.SystemParameters).GetProperty("DpiX", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
var dpiX = (int)dpiXProperty.GetValue(null, null);
scale = (double)dpiX / 96;
return scale;
}
}
internal class VS2005DockPaneCaption : DockPaneCaptionBase
{
private sealed class InertButton : InertButtonBase
{
@ -66,7 +80,12 @@ namespace WeifenLuo.WinFormsUI.Docking
get
{
if (_imageButtonClose == null)
_imageButtonClose = Resources.DockPane_Close;
{
var sc = ScreenScale.Calc();
if (sc >= 1.99)
_imageButtonClose = Resources.DockPane_Close32;
else _imageButtonClose = Resources.DockPane_Close;
}
return _imageButtonClose;
}
@ -135,8 +154,14 @@ namespace WeifenLuo.WinFormsUI.Docking
{
get
{
if (_imageButtonOptions == null)
_imageButtonOptions = Resources.DockPane_Option;
{
var sc = ScreenScale.Calc();
if (sc >= 1.99)
_imageButtonOptions = Resources.DockPane_Option32;
else _imageButtonOptions = Resources.DockPane_Option;
}
return _imageButtonOptions;
}

View file

@ -130,7 +130,12 @@ namespace WeifenLuo.WinFormsUI.Docking
get
{
if (_imageButtonClose == null)
_imageButtonClose = Resources.DockPane_Close;
{
var sc = ScreenScale.Calc();
if (sc >= 1.99)
_imageButtonClose = Resources.DockPane_Close32;
else _imageButtonClose = Resources.DockPane_Close;
}
return _imageButtonClose;
}
@ -159,7 +164,12 @@ namespace WeifenLuo.WinFormsUI.Docking
get
{
if (_imageButtonWindowList == null)
_imageButtonWindowList = Resources.DockPane_Option;
{
var sc = ScreenScale.Calc();
if (sc >= 1.99)
_imageButtonWindowList = Resources.DockPane_Option32;
else _imageButtonWindowList = Resources.DockPane_Option;
}
return _imageButtonWindowList;
}
@ -171,7 +181,9 @@ namespace WeifenLuo.WinFormsUI.Docking
get
{
if (_imageButtonWindowListOverflow == null)
{
_imageButtonWindowListOverflow = Resources.DockPane_OptionOverflow;
}
return _imageButtonWindowListOverflow;
}
@ -1257,7 +1269,7 @@ namespace WeifenLuo.WinFormsUI.Docking
base.OnLayout (levent);
}
private void Close_Click(object sender, EventArgs e)
{
DockPane.CloseActiveContent();

View file

@ -47,6 +47,7 @@
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<ItemGroup>
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
@ -107,13 +108,9 @@
<Compile Include="Docking\DockPaneCaptionBase.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Docking\VS2005DockPaneCaption.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Docking\VS2005DockPaneCaption.cs" />
<Compile Include="Docking\DockPaneCollection.cs" />
<Compile Include="Docking\DockPanel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Docking\DockPanel.cs" />
<Compile Include="Docking\DockPanelExtender.cs" />
<Compile Include="Docking\DockPanel.Persistor.cs">
<SubType>Component</SubType>
@ -217,6 +214,13 @@
<ItemGroup>
<EmbeddedResource Include="Docking\DockPanel.bmp" />
</ItemGroup>
<ItemGroup>
<None Include="Docking\Resources\DockPane_Close32.bmp" />
</ItemGroup>
<ItemGroup>
<Content Include="Docking\Resources\Close_32.bmp" />
<None Include="Docking\Resources\DockPane_Option32.bmp" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View file

@ -63,4 +63,4 @@ GOTO EXIT
:ERROR
PAUSE
:EXIT
:EXIT

View file

@ -133,8 +133,22 @@ type
//{{{--doc: Конец секции 1 }}}
function wplus := SystemParameters.WindowResizeBorderThickness.Left + SystemParameters.WindowResizeBorderThickness.Right;
function hplus := SystemParameters.WindowCaptionHeight + SystemParameters.WindowResizeBorderThickness.Top + SystemParameters.WindowResizeBorderThickness.Bottom;
var wp: real := -1;
var hp: real := -1;
function wplus: real;
begin
if wp = -1 then
wp := (SystemParameters.BorderWidth + SystemParameters.FixedFrameVerticalBorderWidth) * 2;
Result := wp;
end;
function hplus: real;
begin
if hp = -1 then
hp := SystemParameters.WindowCaptionHeight + (SystemParameters.BorderWidth + SystemParameters.FixedFrameHorizontalBorderHeight) * 2;
Result := hp;
end;
///---- Window -----

View file

@ -615,6 +615,9 @@ type
function IsEmpty: boolean := l<=h;
function Step(n: integer): sequence of integer;
function Reverse: sequence of integer;
function GetEnumerator(): IEnumerator<integer>;
function System.Collections.IEnumerable.GetEnumerator: System.Collections.IEnumerator := Self.GetEnumerator;
@ -684,6 +687,9 @@ type
function IsEmpty: boolean := l<=h;
function Step(n: integer): sequence of char;
function Reverse: sequence of char;
function GetEnumerator(): IEnumerator<char>;
function System.Collections.IEnumerable.GetEnumerator: System.Collections.IEnumerator := GetEnumerator;
@ -2046,12 +2052,14 @@ procedure Shuffle<T>(l: List<T>);
// -----------------------------------------------------
/// Возвращает последовательность целых от a до b
function Range(a, b: integer): sequence of integer;
/// Возвращает последовательность символов от c1 до c2
function Range(c1, c2: char): sequence of char;
/// Возвращает последовательность вещественных в точках разбиения отрезка [a,b] на n равных частей
function PartitionPoints(a, b: real; n: integer): sequence of real;
/// Возвращает последовательность целых от a до b с шагом step
function Range(a, b, step: integer): sequence of integer;
/// Возвращает последовательность символов от c1 до c2
function Range(c1, c2: char): sequence of char;
/// Возвращает последовательность символов от c1 до c2 с шагом step
function Range(c1, c2: char; step: integer): sequence of char;
/// Возвращает последовательность вещественных в точках разбиения отрезка [a,b] на n равных частей
function PartitionPoints(a, b: real; n: integer): sequence of real;
/// Возвращает последовательность указанных элементов
function Seq<T>(params a: array of T): sequence of T;
/// Возвращает последовательность из n случайных целых элементов
@ -3880,8 +3888,12 @@ begin
end;
function IntRange.GetEnumerator(): IEnumerator<integer> := Range(l,h).GetEnumerator;
function IntRange.Step(n: integer): sequence of integer := Range(l,h,n);
function IntRange.Reverse: sequence of integer := Range(l,h).Reverse;
function CharRange.GetEnumerator(): IEnumerator<char> := Range(l,h).GetEnumerator;
function CharRange.Step(n: integer): sequence of char := Range(l,h,n);
function CharRange.Reverse: sequence of char := Range(l,h).Reverse;
//------------------------------------------------------------------------------
// Операции для string и char
@ -4394,11 +4406,6 @@ begin
else Result := System.Linq.Enumerable.Range(a, b - a + 1);
end;
function Range(c1, c2: char): sequence of char;
begin
Result := Range(integer(c1), integer(c2)).Select(x -> Chr(x));
end;
function Range(a, b: real; n: integer): sequence of real;
begin
if n = 0 then
@ -4414,6 +4421,16 @@ begin
end;
end;
function Range(c1, c2: char): sequence of char;
begin
Result := Range(integer(c1), integer(c2)).Select(x -> Chr(x));
end;
function Range(c1, c2: char; step: integer): sequence of char;
begin
Result := Range(integer(c1), integer(c2), step).Select(x -> Chr(x));
end;
function PartitionPoints(a, b: real; n: integer): sequence of real;
begin
Result := Range(a, b, n)
@ -4842,9 +4859,9 @@ function HSet<T>(a: sequence of T): HashSet<T> := new HashSet<T>(a);
function SSet<T>(a: sequence of T): SortedSet<T> := new SortedSet<T>(a);
function HSet(a: IntRange): HashSet<integer> := a.ToHashSet&<integer>;
function HSet(a: IntRange): HashSet<integer> := a.ToHashSet;
function HSet(a: CharRange): HashSet<char> := a.ToHashSet&<char>;
function HSet(a: CharRange): HashSet<char> := a.ToHashSet;
function SSet(a: IntRange): SortedSet<integer> := a.ToSortedSet;