From: Peter S. <zu...@us...> - 2005-09-26 12:08:06
|
Update of /cvsroot/apophysis/2.10/Source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6263/Source Modified Files: Editor.dfm Editor.pas Main.dfm Log Message: more editor changes... Index: Editor.dfm =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/Editor.dfm,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Editor.dfm 25 Sep 2005 16:16:44 -0000 1.15 --- Editor.dfm 26 Sep 2005 12:07:57 -0000 1.16 *************** *** 82,86 **** Left = 1 Top = 1 ! Width = 352 Height = 22 Align = alLeft --- 82,86 ---- Left = 1 Top = 1 ! Width = 376 Height = 22 [...1322 lines suppressed...] ! 0000000000000000000000000000000000000000000000000000000000000000 ! 00000000000000000000000000000000FF7FFFFF00000000FF7FFFFF00000000 ! FF7FFFFF00000000E00FF3E700000000E007E1E700000000FF63C0E700000000 ! FF73F3E700000000FF73F3E700000000FB73000000000000F363F3E700000000 ! E007F3E700000000E00FF1C700000000F37FF80F00000000FB7FFC1F00000000 ! FF7FFFFF00000000FF7FFFFF00000000FFFFFFFFFFFFFFFFF0070001FEFF8003 ! F9F780017FFDCFE7FCF7C7F93EF9E7CFF277E3F91FF1F39FEF37F1F94EE5F93F ! EF97F8F967CDFC7FDFC7FC79729DFEFFDFE7FE39793D5555DFF7FF19729DFEFF ! DFFFFF8967CDFC7FEFC3FFC14EE5F93FEFF3FFE11FF1F39FF3CBFFF13EF9E7CF ! FC3BFFF97FFDCFE7FFFFFFFDFEFF8003FFFFFFFFFFCFFFFFFFFFFFFFFF87FEFF ! FFFFFFFFF787FC7FFFFFFFFFF30FF83FFFF7EFFFF00FFEFFC1F7EF83F01FFEFF ! C3FBDFC3F003DEF7C7FBDFE3F0079EF3CBFBDFD3F00F0001DCF7EF3BF01F9EF3 ! FF0FF0FFF03FDEF7FFFFFFFFF07FFEFFFFFFFFFFF0FFFEFFFFFFFFFFF1FFF83F ! FFFFFFFFF3FFFC7FFFFFFFFFF7FFFEFFFFFFFFFFFFFFFFFFC003C001C001C001 ! C003E001E001E001C003F1F9F1F9F1F9C003F8F90009D8D9C003FC7980098C09 ! C003F239C609C619C003F319E309E219C003F389F189F009C003F3C1F8C1F8C1 ! C0030021FC41F061C0070031FE01E231C00FF3F9FF09C719C01FF3FDFF8D8F8D ! C03FF3FFFFCFDFDFFFFFF3FFFFEFFFFF00000000000000000000000000000000 000000000000} end Index: Editor.pas =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/Editor.pas,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** Editor.pas 25 Sep 2005 16:16:44 -0000 1.20 --- Editor.pas 26 Sep 2005 12:07:57 -0000 1.21 *************** *** 30,33 **** --- 30,38 ---- WM_PTHREAD_COMPLETE = WM_APP + 5438; + crEditArrow = 20; + crEditMove = 21; + crEditRotate = 22; + crEditScale = 23; + type TEditForm = class(TForm) *************** *** 156,159 **** --- 161,167 ---- TabSheet4: TTabSheet; vleVariables: TValueListEditor; + mnuReset: TMenuItem; + mnuResetAll: TMenuItem; + tbResetAll: TToolButton; procedure ValidateVariable; procedure vleVariablesValidate(Sender: TObject; ACol, ARow: Integer; const KeyName, KeyValue: string); *************** *** 273,276 **** --- 281,286 ---- procedure txtValidateValue(Sender: TObject); procedure txtValKeyPress(Sender: TObject; var Key: Char); + procedure mnuResetClick(Sender: TObject); + procedure mnuResetAllClick(Sender: TObject); private *************** *** 753,757 **** EditForm.StatusBar.Panels[2].Text := Format('Zoom: %f', [GraphZoom]); ! TriangleView.Refresh; end; --- 763,767 ---- EditForm.StatusBar.Panels[2].Text := Format('Zoom: %f', [GraphZoom]); ! TriangleView.Invalidate;//Refresh; end; *************** *** 1064,1068 **** --- 1074,1080 ---- a := ToScreen(Pivot.x - dy, Pivot.y + dx); b := ToScreen(Pivot.x + dy, Pivot.y - dx); + c := ToScreen(Pivot.x, Pivot.y); MoveTo(a.x, a.y); + LineTo(c.X, c.y); // not necessary but it looks better with it... LineTo(b.X, b.y); end; *************** *** 1189,1193 **** i: integer; begin ! // Custom control setup TriangleView := TCustomDrawControl.Create(self); TriangleView.TabStop := True; --- 1201,1210 ---- i: integer; begin ! Screen.Cursors[crEditArrow] := LoadCursor(HInstance, 'CUR_ARROW'); ! Screen.Cursors[crEditMove] := LoadCursor(HInstance, 'CUR_MOVE'); ! Screen.Cursors[crEditRotate] := LoadCursor(HInstance, 'CUR_ROTATE'); ! Screen.Cursors[crEditScale] := LoadCursor(HInstance, 'CUR_SCALE'); ! ! // Custom control setup TriangleView := TCustomDrawControl.Create(self); TriangleView.TabStop := True; *************** *** 1314,1322 **** end; ! if (mouseOverTriangle >= 0) and ! (SelectMode or (mouseOverTriangle = SelectedTriangle)) then ! TriangleView.Cursor := crHandPoint else ! TriangleView.Cursor := crArrow; Shift := Shift - [ssLeft]; --- 1331,1345 ---- end; ! if (mouseOverTriangle >= 0) or (SelectMode = false) or (oldMode <> modeNone) then ! case editMode of ! modeMove: ! TriangleView.Cursor := crEditMove; ! modeRotate: ! TriangleView.Cursor := crEditRotate; ! modeScale: ! TriangleView.Cursor := crEditScale; ! end else ! TriangleView.Cursor := crEditArrow; //crDefault; Shift := Shift - [ssLeft]; *************** *** 2446,2477 **** procedure TEditForm.ValidateVariation; var - Allow: boolean; i: integer; NewVal, OldVal: double; begin - Allow := True; - i := VEVars.Row - 1; - OldVal := Round6(cp.xform[SelectedTriangle].vars[i]); - { Test that it's a valid floating point number } try ! StrToFloat(VEVars.Values[VarNames(i)]); ! except on Exception do ! begin ! { It's not, so we restore the old value } VEVars.Values[VarNames(i)] := Format('%.6g', [OldVal]); ! Allow := False; ! end; end; ! NewVal := Round6(StrToFloat(VEVars.Values[VarNames(i)])); ! VEVars.Values[VarNames(i)] := Format('%.6g', [NewVal]); ! ! { If it's not the same as the old value and it was valid } ! if (NewVal <> OldVal) and Allow then begin MainForm.UpdateUndo; cp.xform[SelectedTriangle].vars[i] := NewVal; ! VEVars.Values[VarNames(i)] := Format('%.6g', [cp.xform[SelectedTriangle].vars[i]]); ShowSelectedInfo; UpdateFlame(True); --- 2469,2488 ---- procedure TEditForm.ValidateVariation; var i: integer; NewVal, OldVal: double; begin i := VEVars.Row - 1; OldVal := Round6(cp.xform[SelectedTriangle].vars[i]); try ! NewVal := Round6(StrToFloat(VEVars.Values[VarNames(i)])); ! except VEVars.Values[VarNames(i)] := Format('%.6g', [OldVal]); ! exit; end; ! if (NewVal <> OldVal) then begin MainForm.UpdateUndo; cp.xform[SelectedTriangle].vars[i] := NewVal; ! VEVars.Values[VarNames(i)] := Format('%.6g', [NewVal]); ShowSelectedInfo; UpdateFlame(True); *************** *** 2518,2522 **** MainForm.UpdateUndo; values^[i] := NewVal; ! Sender.Values[VarNames(i)] := Format('%.6g', [values^[i]]); EditForm.ShowSelectedInfo; EditForm.UpdateFlame(True); --- 2529,2533 ---- MainForm.UpdateUndo; values^[i] := NewVal; ! Sender.Values[VarNames(i)] := Format('%.6g', [NewVal]); EditForm.ShowSelectedInfo; EditForm.UpdateFlame(True); *************** *** 2878,2892 **** begin editMode := modeRotate; ! tbRotate.Down := true; end; VK_CONTROL: begin editMode := modeScale; ! tbScale.Down := true; end; else //VK_SHIFT: begin editMode := modeMove; ! tbMove.Down := true; end; end; --- 2889,2909 ---- begin editMode := modeRotate; ! // tbRotate.Down := true; ! // if (mouseOverTriangle >= 0) or (SelectMode = false) then ! TriangleView.Cursor := crEditRotate; end; VK_CONTROL: begin editMode := modeScale; ! // tbScale.Down := true; ! // if (mouseOverTriangle >= 0) or (SelectMode = false) then ! TriangleView.Cursor := crEditScale; end; else //VK_SHIFT: begin editMode := modeMove; ! // tbMove.Down := true; ! // if (mouseOverTriangle >= 0) or (SelectMode = false) then ! TriangleView.Cursor := crEditMove; end; end; *************** *** 2928,2934 **** editMode := oldMode; oldMode := modeNone; ! tbMove.Down := (editMode = modeMove); ! tbRotate.Down := (editMode = modeRotate); ! tbScale.Down := (editMode = modeScale); end; end; --- 2945,2955 ---- editMode := oldMode; oldMode := modeNone; ! // tbMove.Down := (editMode = modeMove); ! // tbRotate.Down := (editMode = modeRotate); ! // tbScale.Down := (editMode = modeScale); ! ! // hack: to generate MouseMove event ! GetCursorPos(MousePos); ! SetCursorPos(MousePos.x, MousePos.y); end; end; *************** *** 2940,2946 **** editMode := oldMode; oldMode := modeNone; ! tbMove.Down := (editMode = modeMove); ! tbRotate.Down := (editMode = modeRotate); ! tbScale.Down := (editMode = modeScale); end; --- 2961,2967 ---- editMode := oldMode; oldMode := modeNone; ! // tbMove.Down := (editMode = modeMove); ! // tbRotate.Down := (editMode = modeRotate); ! // tbScale.Down := (editMode = modeScale); end; *************** *** 3092,3098 **** if Button = mbLeft then begin ! colorDragX:=x; colorOldX:=x; - // BackupPal:=Palette; colorDrag:=true; colorChanged:=false; --- 3113,3119 ---- if Button = mbLeft then begin ! SetCaptureControl(ColorImage); ! colorDragX:=0; colorOldX:=x; colorDrag:=true; colorChanged:=false; *************** *** 3105,3112 **** i, offset: integer; begin ! { ! if colorDrag and (oldX<>x) then begin ! oldX:=x; offset := ( ((x - colorDragX) shl 8) div ColorImage.Width ) mod 256; colorChanged := true; --- 3126,3132 ---- i, offset: integer; begin ! if colorDrag and (OldX<>x) then begin ! { oldX:=x; offset := ( ((x - colorDragX) shl 8) div ColorImage.Width ) mod 256; colorChanged := true; *************** *** 3123,3128 **** colorImage.Refresh; ! end; ! } end; --- 3143,3147 ---- colorImage.Refresh; ! } end; end; *************** *** 3130,3134 **** Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ! if colorDrag then begin colorDrag := false; --- 3149,3153 ---- Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ! if (Button = mbLeft) and colorDrag then begin colorDrag := false; *************** *** 3139,3142 **** --- 3158,3162 ---- // MainCP.copy(cp); // UpdateXXXX; + SetCaptureControl(nil); end; end; *************** *** 3153,3162 **** procedure TEditForm.ValidateVariable; var - Allow: boolean; i: integer; NewVal, OldVal: double; begin - Allow := True; - i := vleVariables.Row; --- 3173,3179 ---- *************** *** 3164,3181 **** { Test that it's a valid floating point number } try ! StrToFloat(vleVariables.Values[vleVariables.Keys[i]]); ! except on Exception do ! begin { It's not, so we restore the old value } ! vleVariables.Values[vleVariables.Keys[i]] := Format('%.6g', [OldVal]); ! Allow := False; ! end; end; - - NewVal := Round6(StrToFloat(vleVariables.Values[vleVariables.Keys[i]])); - vleVariables.Values[vleVariables.Keys[i]] := Format('%.6g', [NewVal]); - { If it's not the same as the old value and it was valid } ! if (NewVal <> OldVal) and Allow then begin MainForm.UpdateUndo; --- 3181,3192 ---- { Test that it's a valid floating point number } try ! NewVal := Round6(StrToFloat(vleVariables.Values[vleVariables.Keys[i]])); ! except { It's not, so we restore the old value } ! vleVariables.Values[vleVariables.Keys[i]] := Format('%.6g', [OldVal]); ! exit; end; { If it's not the same as the old value and it was valid } ! if (NewVal <> OldVal) then begin MainForm.UpdateUndo; *************** *** 3212,3216 **** t := StrToFloat(TComboBox(Sender).Text); if t <> 0 then exit; ! finally TComboBox(Sender).ItemIndex := 1; end; --- 3223,3227 ---- t := StrToFloat(TComboBox(Sender).Text); if t <> 0 then exit; ! except TComboBox(Sender).ItemIndex := 1; end; *************** *** 3219,3223 **** procedure TEditForm.txtValKeyPress(Sender: TObject; var Key: Char); begin ! if key = #13 then txtValidateValue(Sender); end; --- 3230,3271 ---- procedure TEditForm.txtValKeyPress(Sender: TObject; var Key: Char); begin ! if key <> #13 then exit; ! key := #0; ! txtValidateValue(Sender); ! end; ! ! procedure TEditForm.mnuResetClick(Sender: TObject); ! begin ! MainForm.UpdateUndo; ! MainTriangles[SelectedTriangle] := MainTriangles[-1]; ! UpdateFlame(True); ! end; ! ! procedure TEditForm.mnuResetAllClick(Sender: TObject); ! var ! i: integer; ! begin ! MainForm.UpdateUndo; ! for i := 2 to Transforms-1 do cp.xform[i].density := 0; ! ! Transforms := 2; ! SelectedTriangle := 1; ! MainTriangles[0] := MainTriangles[-1]; ! cp.xform[0].density := 0.5; ! cp.xform[0].vars[0] := 1; ! MainTriangles[1] := MainTriangles[-1]; ! cp.xform[1].density := 0.5; ! cp.xform[1].vars[0] := 1; ! for i := 1 to NRVAR - 1 do ! begin ! cp.xform[0].vars[i] := 0; ! cp.xform[1].vars[i] := 0; ! end; ! ! cbTransforms.clear; ! cbTransforms.Items.Add('1'); ! cbTransforms.Items.Add('2'); ! AutoZoom; ! UpdateFlame(True); end; Index: Main.dfm =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/Main.dfm,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Main.dfm 25 Sep 2005 08:32:27 -0000 1.18 --- Main.dfm 26 Sep 2005 12:07:57 -0000 1.19 *************** *** 28,32 **** Top = 28 Width = 4 ! Height = 494 end object ToolBar: TToolBar --- 28,32 ---- Top = 28 Width = 4 ! Height = 498 end object ToolBar: TToolBar *************** *** 113,116 **** --- 113,117 ---- Height = 21 Hint = 'Rendering quality|Rendering quality of the main window' + AutoComplete = False ItemHeight = 13 ItemIndex = 0 *************** *** 284,288 **** Top = 28 Width = 160 ! Height = 494 Align = alLeft Columns = < --- 285,289 ---- Top = 28 Width = 160 ! Height = 498 Align = alLeft Columns = < *************** *** 303,307 **** Top = 28 Width = 433 ! Height = 494 Align = alClient BevelInner = bvLowered --- 304,308 ---- Top = 28 Width = 433 ! Height = 498 Align = alClient BevelInner = bvLowered *************** *** 314,318 **** Top = 1 Width = 431 ! Height = 492 Align = alClient AutoSize = True --- 315,319 ---- Top = 1 Width = 431 ! Height = 496 Align = alClient AutoSize = True *************** *** 327,331 **** object StatusBar: TStatusBar Left = 0 ! Top = 522 Width = 597 Height = 19 --- 328,332 ---- object StatusBar: TStatusBar Left = 0 ! Top = 526 Width = 597 Height = 19 |