diff --git a/2.10/Changes.txt b/2.10/Changes.txt index 115b84e..55fa280 100644 --- a/2.10/Changes.txt +++ b/2.10/Changes.txt @@ -4,6 +4,7 @@ B1116907 Values Editing events + FR1183940 Added triangle rotation functions in the editors popup menu. + Added gradient drawing in a tooltip form in the gradient browser window. ++ Editor window now has controls for precise moving and rotating triangles. 2.02g + Delphi2005 Project diff --git a/2.10/Source/Editor.dfm b/2.10/Source/Editor.dfm index b3c7023..96ca96d 100644 --- a/2.10/Source/Editor.dfm +++ b/2.10/Source/Editor.dfm @@ -145,130 +145,361 @@ object EditForm: TEditForm Top = 148 Width = 167 Height = 277 - ActivePage = TabSheet2 + ActivePage = TabSheet1 Anchors = [akLeft, akTop, akRight, akBottom] MultiLine = True TabOrder = 2 TabStop = False object TabSheet1: TTabSheet Caption = 'Triangle' - object Label7: TLabel - Left = 9 - Top = 12 - Width = 17 - Height = 13 - Caption = 'Ax:' - end - object Label8: TLabel - Left = 9 - Top = 36 - Width = 17 - Height = 13 - Caption = 'Ay:' - end - object Label9: TLabel - Left = 9 - Top = 60 - Width = 16 - Height = 13 - Caption = 'Bx:' - end - object Label10: TLabel - Left = 9 - Top = 84 - Width = 16 - Height = 13 - Caption = 'By:' - end - object Label11: TLabel - Left = 9 - Top = 108 - Width = 17 - Height = 13 - Caption = 'Cx:' - end - object Label12: TLabel - Left = 9 - Top = 132 - Width = 17 - Height = 13 - Caption = 'Cy:' - end - object txtAx: TEdit - Left = 32 - Top = 8 - Width = 110 - Height = 21 - AutoSelect = False + object TriangleScrollBox: TScrollBox + Left = 0 + Top = 0 + Width = 159 + Height = 231 + HorzScrollBar.Visible = False + VertScrollBar.Smooth = True + VertScrollBar.Style = ssFlat + VertScrollBar.Tracking = True + Align = alClient + BevelInner = bvNone + BevelOuter = bvNone + BorderStyle = bsNone TabOrder = 0 - Text = '0' - OnExit = CornerEditExit - OnKeyPress = CornerEditKeyPress - end - object txtAy: TEdit - Left = 32 - Top = 32 - Width = 110 - Height = 21 - AutoSelect = False - TabOrder = 1 - Text = '0' - OnExit = CornerEditExit - OnKeyPress = CornerEditKeyPress - end - object txtBx: TEdit - Left = 32 - Top = 56 - Width = 110 - Height = 21 - AutoSelect = False - TabOrder = 2 - Text = '0' - OnExit = CornerEditExit - OnKeyPress = CornerEditKeyPress - end - object txtBy: TEdit - Left = 32 - Top = 80 - Width = 110 - Height = 21 - AutoSelect = False - TabOrder = 3 - Text = '0' - OnExit = CornerEditExit - OnKeyPress = CornerEditKeyPress - end - object txtCx: TEdit - Left = 32 - Top = 104 - Width = 110 - Height = 21 - AutoSelect = False - TabOrder = 4 - Text = '0' - OnExit = CornerEditExit - OnKeyPress = CornerEditKeyPress - end - object txtCy: TEdit - Left = 32 - Top = 128 - Width = 110 - Height = 21 - AutoSelect = False - TabOrder = 5 - Text = '0' - OnExit = CornerEditExit - OnKeyPress = CornerEditKeyPress - end - object chkPreserve: TCheckBox - Left = 8 - Top = 168 - Width = 129 - Height = 17 - Caption = 'Preserve weights' - Checked = True - State = cbChecked - TabOrder = 6 + object TrianglePanel: TPanel + Left = 0 + Top = 0 + Width = 155 + Height = 302 + BevelOuter = bvNone + TabOrder = 0 + object Label9: TLabel + Left = 6 + Top = 54 + Width = 16 + Height = 13 + Caption = 'Bx:' + end + object Label8: TLabel + Left = 6 + Top = 30 + Width = 17 + Height = 13 + Caption = 'Ay:' + end + object Label7: TLabel + Left = 6 + Top = 6 + Width = 17 + Height = 13 + Caption = 'Ax:' + end + object Label12: TLabel + Left = 6 + Top = 126 + Width = 17 + Height = 13 + Caption = 'Cy:' + end + object Label11: TLabel + Left = 6 + Top = 102 + Width = 17 + Height = 13 + Caption = 'Cx:' + end + object Label10: TLabel + Left = 6 + Top = 78 + Width = 16 + Height = 13 + Caption = 'By:' + end + object btTrgRotateRight: TSpeedButton + Left = 90 + Top = 184 + Width = 33 + Height = 24 + Flat = True + Glyph.Data = { + F6000000424DF600000000000000760000002800000010000000100000000100 + 04000000000080000000130B0000130B00001000000000000000000000000000 + 8000008000000080800080000000800080008080000080808000C0C0C0000000 + FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00FFFFFFFFFFFF + FFFF77FFFFFFFFFFFFFF70FFFFFFFFFFFFFF708FFFFFFFFFFFFF707FFFFFFFFF + FFFF7007FFFFFFFFFFFFF0007FFFFF7FFFFFF7000788FF70FFFFF80000077770 + 0FFFFF770000000000FFFFF770000000000FFFFF777000000078FFFFF8777770 + 078FFFFFFFFF870078FFFFFFFFFFFF778FFFFFFFFFFFFF78FFFF} + OnClick = btTrgRotateRightClick + end + object btTrgRotateLeft: TSpeedButton + Left = 22 + Top = 184 + Width = 33 + Height = 24 + Flat = True + Glyph.Data = { + 36030000424D3603000000000000360000002800000010000000100000000100 + 18000000000000030000130B0000130B00000000000000000000FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFC0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080808080FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFF000000404040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0000000404040FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FF404040000000404040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0E0E0FFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000000000808080FFFFFFFFFFFF + FFFFFFFFFFFFE0E0E0606060FFFFFFFFFFFFFFFFFFFFFFFFE0E0E08080800000 + 00000000000000E0E0E0FFFFFFFFFFFFFFFFFFE0E0E0202020404040FFFFFFE0 + E0E0C0C0C0A0A0A0404040000000000000000000404040FFFFFFFFFFFFFFFFFF + E0E0E02020200000004040408080804040404040400000000000000000000000 + 00000000C0C0C0FFFFFFFFFFFFE0E0E020202000000000000000000000000000 + 0000000000000000000000000000404040404040FFFFFFFFFFFFFFFFFF202020 + 0000000000000000000000000000000000000000000000000000004040408080 + 80FFFFFFFFFFFFFFFFFFC0C0C080808000000000000000000000000000000000 + 0000000000404040808080808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0 + 808080000000000000404040808080808080808080808080C0C0C0FFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0808080000000202020808080C0 + C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFC0C0C0808080404040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0808080FFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} + OnClick = btTrgRotateLeftClick + end + object btTrgMoveUp: TSpeedButton + Left = 56 + Top = 226 + Width = 33 + Height = 24 + Flat = True + Glyph.Data = { + 36030000424D3603000000000000360000002800000010000000100000000100 + 18000000000000030000130B0000130B00000000000000000000FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF404040000000C0C0C0FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000808080FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000808080FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF808080C0C0C0FFFFFFFFFFFF000000000000808080FFFFFFFFFFFF4040 + 40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000404040C0C0C000 + 0000000000808080808080000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF808080000000000000000000000000000000000000000000FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000 + 0000000000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFF808080000000000000000000000000000000FFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 + 0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFF808080000000000000000000FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} + OnClick = btTrgMoveUpClick + end + object btTrgMoveRight: TSpeedButton + Left = 90 + Top = 250 + Width = 33 + Height = 24 + Flat = True + Glyph.Data = { + 36030000424D3603000000000000360000002800000010000000100000000100 + 18000000000000030000130B0000130B00000000000000000000FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40404080 + 8080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000808080FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 + 8080000000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFC0C0C0808080 + 8080808080808080808080808080808080800000000000000000000000000000 + 00808080FFFFFFFFFFFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000808080404040000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 + C0C0000000000000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF404040000000000000808080FFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C000 + 0000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} + OnClick = btTrgMoveRightClick + end + object btTrgMoveLeft: TSpeedButton + Left = 22 + Top = 250 + Width = 33 + Height = 24 + Flat = True + Glyph.Data = { + 36030000424D3603000000000000360000002800000010000000100000000100 + 18000000000000030000130B0000130B00000000000000000000FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF808080404040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFF808080000000000000FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808000000000000000 + 0000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + 8080800000000000000000000000000000008080808080808080808080808080 + 80808080808080C0C0C080808000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF808080 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000404040FFFFFFFFFFFFFFFFFF80808000000000000000000000 + 0000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFF808080000000000000404040FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 + 8080000000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} + OnClick = btTrgMoveLeftClick + end + object btTrgMoveDown: TSpeedButton + Left = 56 + Top = 274 + Width = 33 + Height = 24 + Flat = True + Glyph.Data = { + 36030000424D3603000000000000360000002800000010000000100000000100 + 18000000000000030000130B0000130B00000000000000000000FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFF808080000000000000FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000 + 0000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFF808080000000000000000000000000FFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000 + 0000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF808080000000000000000000000000000000000000FFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000 + 0000000000000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF808080000000808080808080000000000000C0C0C0404040000000FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF404040FFFFFFFFFFFF80808000 + 0000000000FFFFFFFFFFFFC0C0C0808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFF808080000000000000FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808000 + 0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFF808080000000000000FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808000 + 0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFF808080000000000000FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C000 + 0000404040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} + OnClick = btTrgMoveDownClick + end + object txtTrgRotateValue: TEdit + Left = 56 + Top = 184 + Width = 33 + Height = 24 + TabOrder = 7 + Text = '5' + end + object txtTrgMoveValue: TEdit + Left = 56 + Top = 250 + Width = 33 + Height = 24 + TabOrder = 8 + Text = '0.05' + end + object txtCy: TEdit + Left = 28 + Top = 122 + Width = 110 + Height = 21 + AutoSelect = False + TabOrder = 5 + Text = '0' + OnExit = CornerEditExit + OnKeyPress = CornerEditKeyPress + end + object txtCx: TEdit + Left = 28 + Top = 98 + Width = 110 + Height = 21 + AutoSelect = False + TabOrder = 4 + Text = '0' + OnExit = CornerEditExit + OnKeyPress = CornerEditKeyPress + end + object txtBy: TEdit + Left = 28 + Top = 74 + Width = 110 + Height = 21 + AutoSelect = False + TabOrder = 3 + Text = '0' + OnExit = CornerEditExit + OnKeyPress = CornerEditKeyPress + end + object txtBx: TEdit + Left = 28 + Top = 50 + Width = 110 + Height = 21 + AutoSelect = False + TabOrder = 2 + Text = '0' + OnExit = CornerEditExit + OnKeyPress = CornerEditKeyPress + end + object txtAy: TEdit + Left = 28 + Top = 26 + Width = 110 + Height = 21 + AutoSelect = False + TabOrder = 1 + Text = '0' + OnExit = CornerEditExit + OnKeyPress = CornerEditKeyPress + end + object txtAx: TEdit + Left = 28 + Top = 2 + Width = 110 + Height = 21 + AutoSelect = False + TabOrder = 0 + Text = '0' + OnExit = CornerEditExit + OnKeyPress = CornerEditKeyPress + end + object chkPreserve: TCheckBox + Left = 28 + Top = 152 + Width = 105 + Height = 17 + Caption = 'Preserve weights' + Checked = True + State = cbChecked + TabOrder = 6 + end + end end end object XForm: TTabSheet @@ -575,6 +806,14 @@ object EditForm: TEditForm Caption = 'Rotate Left' OnClick = mnuRotateLeftClick end + object mnuScaleUp: TMenuItem + Caption = 'Scale Up' + OnClick = mnuScaleUpClick + end + object mnuScaleDown: TMenuItem + Caption = 'Scale Down' + OnClick = mnuScaleDownClick + end object N2: TMenuItem Caption = '-' end diff --git a/2.10/Source/Editor.pas b/2.10/Source/Editor.pas index 82d0c34..1192030 100644 --- a/2.10/Source/Editor.pas +++ b/2.10/Source/Editor.pas @@ -23,7 +23,7 @@ interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ComCtrls, Math, Menus, ToolWin, Registry, MyTypes, - ControlPoint, Render, cmap, Grids, ValEdit; + ControlPoint, Render, cmap, Grids, ValEdit, Buttons; const // PixelCountMax = 32768; @@ -65,19 +65,6 @@ type N6: TMenuItem; PageControl: TPageControl; TabSheet1: TTabSheet; - Label7: TLabel; - Label8: TLabel; - Label9: TLabel; - Label10: TLabel; - Label11: TLabel; - Label12: TLabel; - txtAx: TEdit; - txtAy: TEdit; - txtBx: TEdit; - txtBy: TEdit; - txtCx: TEdit; - txtCy: TEdit; - chkPreserve: TCheckBox; XForm: TTabSheet; lbla: TLabel; Label1: TLabel; @@ -112,6 +99,31 @@ type N2: TMenuItem; mnuRotateRight: TMenuItem; mnuRotateLeft: TMenuItem; + mnuScaleUp: TMenuItem; + mnuScaleDown: TMenuItem; + TriangleScrollBox: TScrollBox; + TrianglePanel: TPanel; + txtTrgRotateValue: TEdit; + txtTrgMoveValue: TEdit; + txtCy: TEdit; + txtCx: TEdit; + txtBy: TEdit; + txtBx: TEdit; + txtAy: TEdit; + txtAx: TEdit; + Label9: TLabel; + Label8: TLabel; + Label7: TLabel; + Label12: TLabel; + Label11: TLabel; + Label10: TLabel; + chkPreserve: TCheckBox; + btTrgRotateRight: TSpeedButton; + btTrgRotateLeft: TSpeedButton; + btTrgMoveUp: TSpeedButton; + btTrgMoveRight: TSpeedButton; + btTrgMoveLeft: TSpeedButton; + btTrgMoveDown: TSpeedButton; procedure FormCreate(Sender: TObject); procedure GraphImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: integer); @@ -167,6 +179,14 @@ type const KeyName, KeyValue: String); procedure mnuRotateRightClick(Sender: TObject); procedure mnuRotateLeftClick(Sender: TObject); + procedure mnuScaleUpClick(Sender: TObject); + procedure mnuScaleDownClick(Sender: TObject); + procedure btTrgRotateLeftClick(Sender: TObject); + procedure btTrgRotateRightClick(Sender: TObject); + procedure btTrgMoveLeftClick(Sender: TObject); + procedure btTrgMoveRightClick(Sender: TObject); + procedure btTrgMoveUpClick(Sender: TObject); + procedure btTrgMoveDownClick(Sender: TObject); private bm: TBitmap; cmap: TColorMap; @@ -1018,14 +1038,28 @@ procedure TEditForm.mnuRotateRightClick(Sender: TObject); begin MainTriangles[SelectedTriangle] := RotateTriangleCenter(MainTriangles[SelectedTriangle], -(PI / 20)); HasChanged := True; - UpdateFlame(False); + UpdateFlame(true); end; procedure TEditForm.mnuRotateLeftClick(Sender: TObject); begin MainTriangles[SelectedTriangle] := RotateTriangleCenter(MainTriangles[SelectedTriangle], PI / 20); HasChanged := True; - UpdateFlame(False); + UpdateFlame(true); +end; + +procedure TEditForm.mnuScaleUpClick(Sender: TObject); +begin + MainTriangles[SelectedTriangle] := ScaleTriangleCenter(MainTriangles[SelectedTriangle], 1.1); + HasChanged := True; + UpdateFlame(true); +end; + +procedure TEditForm.mnuScaleDownClick(Sender: TObject); +begin + MainTriangles[SelectedTriangle] := ScaleTriangleCenter(MainTriangles[SelectedTriangle], 0.9); + HasChanged := True; + UpdateFlame(true); end; procedure TEditForm.FormShow(Sender: TObject); @@ -1915,5 +1949,126 @@ begin end; end; +{ **************************************************************************** } + +procedure TEditForm.btTrgRotateLeftClick(Sender: TObject); +var + offset: double; +begin + try + offset := StrToFloat(txtTrgRotateValue.Text); + except + offset := 0; + txtTrgRotateValue.Text := '0'; + end; + if offset <> 0 then + begin + MainTriangles[SelectedTriangle] := RotateTriangleCenter(MainTriangles[SelectedTriangle], (PI/180) * offset); HasChanged := True; + UpdateFlame(true); + end; +end; + +procedure TEditForm.btTrgRotateRightClick(Sender: TObject); +var + offset: double; +begin + try + offset := StrToFloat(txtTrgRotateValue.Text); + except + offset := 0; + txtTrgRotateValue.Text := '0'; + end; + if offset <> 0 then + begin + MainTriangles[SelectedTriangle] := RotateTriangleCenter(MainTriangles[SelectedTriangle], -((PI/180) * offset)); + HasChanged := True; + UpdateFlame(true); + end; +end; + +procedure TEditForm.btTrgMoveLeftClick(Sender: TObject); +var + i: integer; + offset: double; +begin + try + offset := StrToFloat(txtTrgMoveValue.Text); + except + offset := 0; + txtTrgMoveValue.Text := '0'; + end; + if offset <> 0 then + begin + for i := 0 to 2 do + MainTriangles[SelectedTriangle].x[i] := + MainTriangles[SelectedTriangle].x[i] - offset; + HasChanged := True; + UpdateFlame(true); + end; +end; + +procedure TEditForm.btTrgMoveRightClick(Sender: TObject); +var + i: integer; + offset: double; +begin + try + offset := StrToFloat(txtTrgMoveValue.Text); + except + offset := 0; + txtTrgMoveValue.Text := '0'; + end; + if offset <> 0 then + begin + for i := 0 to 2 do + MainTriangles[SelectedTriangle].x[i] := + MainTriangles[SelectedTriangle].x[i] + offset; + HasChanged := True; + UpdateFlame(true); + end; +end; + +procedure TEditForm.btTrgMoveUpClick(Sender: TObject); +var + i: integer; + offset: double; +begin + try + offset := StrToFloat(txtTrgMoveValue.Text); + except + offset := 0; + txtTrgMoveValue.Text := '0'; + end; + if offset <> 0 then + begin + for i := 0 to 2 do + MainTriangles[SelectedTriangle].y[i] := + MainTriangles[SelectedTriangle].y[i] + offset; + HasChanged := True; + UpdateFlame(true); + end; +end; + +procedure TEditForm.btTrgMoveDownClick(Sender: TObject); +var + i: integer; + offset: double; +begin + try + offset := StrToFloat(txtTrgMoveValue.Text); + except + offset := 0; + txtTrgMoveValue.Text := '0'; + end; + if offset <> 0 then + begin + for i := 0 to 2 do + MainTriangles[SelectedTriangle].y[i] := + MainTriangles[SelectedTriangle].y[i] - offset; + HasChanged := True; + UpdateFlame(true); + end; +end; + end.