Cenon Change Log - 2015

2015-01-08 Ilonka Fleischmann
	* VPath.m (-drawWithPrincipal:): division by zero fixed for principal == nil
    * PathContour.m (-contourImage:width:, -contourList:width:
			         -contourPath:width:): initWithFocusedViewRect: double size corrected if retina display
	  -> Fix, Vectorizer: improved

Cenon 4.0.3b15 (2015-01-23)

2015-02-07 Georg Fleischmann
    * App.m (-applicationDidFinishLaunching:): create link from HOME/Documents/Cenon -> HOME/Library/../Cenon
      -> Convenience: link from HOME/Documents/Cenon -> HOME/Library/../Cenon

Cenon 4.0.3 (2015-02-09)


2015-02-10 Georg Fleischmann
    * DocView.m (createBuffer()): limit contRect to 8150 on retina displays
      -> Fix, Yosemite: limit document cache to a size Yosemite / Retina displays can handle

2015-02-23 Ilonka Fleischmann
    * ToolPanel.xib -> English and German localization
      GNUmakefile: ToolPanel.xib localized, Document Header updated to Cenon GmbH
      -> Tool Panel: German localization added

2015-03-10 Ilonka Fleischmann
	* VImage.m (-setImage:): set the originalSize correct now
	  -> Fix, Image Copy: set the originalSize correct now
	* PathContour.m (-contourImage:width:, -contourList:width: -contourPath:width:): LONG/WORD casts corrected
	  -> Fix, Bitmap Functions: LONG casts corrected

2015-03-13 Ilonka Fleischmann
	* Type1Import.m (-interpret:, ...): NSUTF8StringEncoding etc stuff instead -getCString:
	  Type1Font.m (-writeToFile:): NSData instead NSString and simplest c string function to handle 0 inside ecrypted string
	  -> Fix Yosemite String: 0 inside some encrypted Font strings (subrs and charString) 
	* HPGLImport (-loadParamter:): -stringWithContentsOfFile:error: for 10.4 deprecations
	  VHFSystemAdditions.m, h: -fileAttributesAtPath:traverseLink:error: for fileAttributesAtPath:traverseLink:
	  //VHFStringAdditions.m (2x): NSLocaleDecimalSeparator instead of NSDecimalSeparator
	  //vhfCommonFunctions.m (4x): NSLocaleDecimalSeparator instead of NSDecimalSeparator
	  VHFStringAdditions.m (2x): NSDecimalSeparator only for OpenStep 4.2
	  vhfCommonFunctions.m (4x): NSDecimalSeparator only for OpenStep 4.2
	  -> Fix 10.4/Yosemite: 10.4 deprecations

2015-03-31 Ilonka Fleischmann
	* Document (-scale::withCenter:): VFloat instead of float, so values conversion works with 10.10
	  -> Fix, Zoom (+/-): works now with OSX 10.10 (Yosemite)

2015-05-14 Georg Fleischmann
    * VGraphic.m (*): not implemented Log, "VGraphic, -xxx: not implemented...": className added
      VGroup.m (-sqrDistanceGraphic:): exclude VText, VImage from -sqrDistanceGraphic: call
      -> Fix, Group: drag select with text or images without logging to console

2015-06-09 Georg Fleischmann
    * DXFExportSub.m (-exportPath:): don't use [VPath -getLastObjectOfSubPath:] method for open paths
      -> Fix, DXF-Export: export of open Paths with multiple sub-paths
    * DXFExportSub.m (-exportText:): float -> VFloat
    * DXFExportSub.m: replace deprecated NSFileManager methods
    * "vhf Export Library" -> "Cenon Export Library"
      "vhf Import Library" -> "Cenon Import Library"

2015-06-13 Georg Fleischmann
    * "vhf Shared Library" -> "Cenon Shared Library"
    
2015-06-17 Georg Fleischmann
    * VText.m, h (-setFont:, -fontSize, -setFontSize:, -lineHeight, -setLineHeight): float -> VFloat
      VText.m (-fontSize, -setFontSize:): get capHeight from ascender, if capSize is bad
      -> Fix, Text-Inspector Acc: fontSize improved for certain fonts

2015-06-19 Georg Fleischmann
    * DXFImport.m (-getText:...): formatting codes removed, log added
      -> Fix, DXF-Import: formatting code removed from string (AutoCAD >= 13)

2015-06-19 Georg Fleischmann
    * App.m (-openDocument:): don't set directory, if we don't have avalid one, openDir = nil
      -> Fix, Open File: catch console warning of open/save panel
    * PSImport.m (-importPDFFromFile:): support gs versions (>= 9.15) with eps2write (instead of epswrite)

2015-06-24 Georg Fleischmann
    * vhfCommonFunctions.m, h (cenRunCommand()): new
    
2015-06-24 Georg Fleischmann
    * DXFImport.m (-getArc:...): if angle == 0 make it 360
      -> Fix, DXF-Import: import arcs with 0 Angle as full circles

2015-07-01 Georg Fleischmann
    * GerberExport.m: deprecated FileManager Methods replaced
    * GerberExportSub.m (-exportToFile:): 2x -writeCircleTool: added for VPath and other stuff
      -> Fix, Gerber-Export: select tool for path elements

2015-07-08 Ilonka Fleischmann (2015-06-02)
    * DocView.m (-initWithCoder:, -initFromPropertyList:, -setParameter:):
      tileXYDirections init with 1.0, [self setParameter moved before tile stuff
	-> Fix, Batch: New Files open with Arrows pointing right and up

2015-07-09 Ilonka Fleischmann
    * PreferencesPanel.m (-windowDidBecomeKey:, -init:): update active module
	  -> Fix, Preferences: update active pane, when Panel is clicked to foreground
    * PreferencesPanels.h: IBOutlet for iconMatrix, <NSWindowDelegate> added

2015-07-09 Ilonka Fleischmann
    * messages.h: NEW_STRING added
      German.lproj/Localizable.strings: "New" = "Neu"; added

2015-07-16  Cenon 4.0.4 beta 1

2015-07-22 Georg Fleischmann
    * ToolPanel.xib: English Tool-Panel ended up in en.lproj -> English.lproj

2015-07-22 Ilonka Fleischmann
	* Curve.m (-gradientNear:, -gradientAt:): smaller steps with t, te instead 0.0/1.0, t == 0/1 for 3 pt curves fixed
	  Curve.m (-getListOfObjectsSplittedFromGraphic:, -getListOfObjectsSplittedFrom::): t1) < 0.00001 instead 0.0001 and same query previous
	  -> Fix, Calculations improved for: Contour (left, right, Open Path), Punch
2015-07-23 Georg Fleischmann
    * Curve.m (-getListOfObjectsSplittedFromGraphic:): replace "VFloat v0 = 0;" -> "0.0"
                                                       VFloat	lastDist, newDist, v; -> double

2015-07-24 Ilonka Fleischmann
	* VPath.m (-uniteWith:): tol = 20.0*TOLERANCE instead of 10.0* AND other removing part from splitListUg
	  -> Fix, Calculations improved for: Contour (left, right, Open Path), Punch

2015-07-25 Georg Fleischmann
    * InspectorPanel.h, TPBasicLevel.h: <NSWindowDelegate> added
      VText: <NSTextViewDelegate> added
      App.m (-applicationDidFinishLaunching:): use -movePath:toPath:error: and -copyPath:toPath:error:
    * App.m (-listFromPSFile:): call our own -stringWithContentsOfFile:error: method for loading AI files
      VHFStringAdditions.m (-stringWithContentsOfFile:error:): 1. try UTF8, 2. use Apple method to find encoding, 3. try all encodings
      -> Fix, string loading: improved

2015-07-27 Georg Fleischmann
    * Arc.m (-pathRepresentation): abs() -> Abs()

2015-07-27 Georg Fleischmann
    * DocView.m (-dragSelect:): draw rectangle in -drawRect:
      DocView.m (-dragSelect:): lockFocus removed, don't apply scrollToPoint:, -scrollToRect: tolerance added
      DocView.m (-drawRect:): drawing code for selectionRect added
      DocView.m: static NSRect selectionRect added
      //DocView.h: NSRect selectionRect; added
      -> Fix, SDK 10.10: Drag Select works with SDK 10.10
2015-07-28 Georg Fleischmann
    * DocView.m (-dragMagnify:): draw rectangle in -drawRect:
      -> Fix, SDK 10.10: Drag Magnify works with SDK 10.10
    * DocView.m (-mouseDown:): call [self setNeedsDisplayInRect:] (not -flatRedraw:)
      -> Fix, SDK 10.10: select works
    * DocView.m (-deselectAll:redraw:): call [self setNeedsDisplayInRect:] (not -flatRedraw:)
      -> Fix, SDK 10.10: deselect works
    * DocView.m (-flatRedraw:, -cache:): call [self setNeedsDisplayInRect:] (not -drawRect:)
      -> Fix, SDK 10.10: Grid, Text, CAM-Output works
2015-07-29 Georg Fleischmann
    * DocView.h: + (NSMutableArray*)tmpGraphics;
      DocView.m (+tmpGraphics): return shared tmpGraphics array
      DocView.m (-drawRect:): draw graphics in shared tmpGraphics array
      VLine.m (-create:): add temporary lines to [DocView tmpGraphics] array,
                          call [self setNeedsDisplayInRect:] (not -drawRect:), lockFocus removed
      -> Fix, SDK 10.10: create Line works
2015-07-30 Georg Fleischmann
    * VArc.m, VCurve.m, VRectangle.m, VPath.m, VPolyLine.m, VClipRectangle.m (-create:):
        add temporary arcs to [DocView tmpGraphics] array,
        call [self setNeedsDisplayInRect:] (not -drawRect:), -lockFocus removed, -cache: removed
      -> Fix, SDK 10.10: create Arc, Curve, Rectangle, Path(?), PolyLine work
    * dvUndo.m (-splitObject:, -addPointTo:): [self setNeedsDisplayInRect:] (not -drawRect:)
      -> Fix, SDK 10.10: Split Tool, Add Point Tool work
    * ChangeDetail.m [AddPointChangeDetail] (-recordIt:, -undoIt:, -redoIt:):
      check for PolyLine, because with multiple selected objects we can bring in a line too => exception
      -> Fix, Add Point: Undo of multiple selected objects (with non Path or PolyLine object) improved

2015-07-31 Georg Fleischmann
    * DocView.m (+initialize): create temporary graphics tmpGraphics
    * DocView.m (-redrawObject:): [self setNeedsDisplayInRect:] (not -drawRect:), direct compositing removed,
        [self display] added, tmpGraphics (not -drawWithPrincipal:),
        drawing of control points removed, since this is covered by display
      -> Fix, SDK 10.10: moving vertices work
    * DocView.m: static NSPoint tmpOrigin added
      DocView.m (-drawRect:): [self setBoundsOrigin:tmpOrigin) to draw translated temporary objects
      DocView.m (-moveObject:): [self setNeedsDisplayInRect:] + displayIfNeeded (not -drawRect:), direct compositing removed,
        tmpGraphics (not -drawWithPrincipal:), tmpOrigin (not setBoundsOrigin)
      -> Fix, SDK 10.10: moving objects (with tool) works
    * DocView.m (-rotateObject:): [self setNeedsDisplayInRect:] + displayIfNeeded (not -drawRect:), direct compositing removed,
        tmpGraphics (not -drawWithPrincipal:), setAngle to copy of obj (no drawAtAngle:)
      -> Fix, SDK 10.10: rotate object (with tool) works
      DocView.m (-rotateObject:): call maxBoundsWithCenter (not maximumBounds)
      VGraphics.m, h (-maxBoundsWithCenter:): new (instead of -maximumBounds)
      -> Fix, Rotating Arcs with tool improved
    * DragPointGraphicsChange.m (-saveBeforeChange): call to super was missing => no bounds for redraw
      -> Fix, Undo of Drag Point improved

2015-08-04  Cenon 4.0.4 beta 2

2015-08-09 Georg Fleischmann
    * VGraphics.m, h (+maxKnobSizeWithScale:): float -> VFloat
      VGraphics.h (-extendedBoundsWithScale:): float -> VFloat
    * DocView.m (-dragSelect:): enlargeSize = [self controlPointSize];
                                drawRect = NSUnionRect([g bounds], drawRect); (not coordBounds)
      -> Fix, Drag-Select, 4.0.4 beta 2: include handles of curves
    * DocView.m (-moveObject:): drawOffset.x = rect_start.origin.x - rect_draw.origin.x; to get a correct offset (not from size)
                                screwup of rect_draw removed
                                redraw rect_draw and rect_drawlast, not rect_draw_apple (which is too big)
                                set tmpOrigin from coords, not from draw rectangle
      -> Fix, Move Object, 4.0.4 beta 2: redraw improved

2015-08-11 Georg Fleischmann
    * VText.m (-updateEditingViewRect:): use -setNeedsDisplayInRect:
      -> Fix, SDK 10.10: Text editing

2015-08-11 Ilonka Fleischmann
	* VRectangle.m, h (-contourOpenLeftOrRight:): new
	  VPolyLine.m (-contourOpenLeftOrRight:): fix for closed polylines
	  -> Fix, Contour Left/Right: improved

2015-08-13 Georg Fleischmann
    * DocView.m (-cache:): if rect size = 0 => display entire bounds
      -> Fix, 4.0.4 beta 2: redraw issue

2015-08-14 Georg Fleischmann
    * SVGImport.m (-parsePath:): quadratic bezier curve implemented (q, Q, t, T), and shortcut (t, T) implemented
      -> SVGImport: quadratic bezier curve implemented (q, Q, t, T)
      SVGImport.m (-parser:...): closing point added
      -> Fix, SVGImport: stroked rect closed

2015-08-14  Cenon 4.0.4 beta 3


2015-08-21 Ilonka Fleischmann
	* VArc.m (-parallelObject::..): Diff(angle, an) > 50.0 part with more checks
	  -> Fix, Contour: Arcs embedded in Paths improved
    * VArc.m (-contour:, -pathRepresentation): open and not filled section of arc always ccw, like line and curve
	  -> Fix, Contour Left/Right for Arc: improved (should have been here since 2015-08-11)

2015-08-25 Georg Fleischmann
    * Document.m (-save): 4x -removeFileAtPath:handler:nil -> -removeFileAtPath:error:NULL
                          1x -movePath:toPath: handler:nil -> -movePath:toPath: error:NULL
    * Document.m (-printDocument:): remove the fucking paper margins
      -> Fix, Printing: paper margins set to Null (stupid Apple redundancy since Mac OS 10.8)

2015-08-31 Georg Fleischmann
    * IPAllLayers.xib: set to XCode 4.6 (and deployment target)

2015-09-02 Georg Fleischmann
    * ImportController.h: SwitchMatrix enum instead of defines, IBOutlet, IBAction added
      ImportController.m (-set:, -update:): "importMoveToOrigin", SWITCH_MOVETOORIGIN added
      Import.xib: "Move to Origin" added to switchMatrix
      App.m (+initialize): "importMoveToOrigin" = YES added
      App.m (-listFromFile:): Gerber: set origin for import (call -setOrigin:)
                              PDF:    [psImport moveToOrigin:Prefs_ImportMoveToOrigin]
      App.m (-listFromPSFile:): [psImport moveToOrigin:Prefs_ImportMoveToOrigin]
      PreferencesMacros.h: Prefs_ImportMoveToOrigin added
      GerberImportSub.m, h (boundsOrigin, -setOrigin:): boundsOrigin, -setOrigin: added
      GerberImportSub.m (-init): init added to set defaults of boundsOrigin
      GerberImportSub.m (-setBounds:): if Prefs_ImportMoveToOrigin => set boundsOrigin (not 10.0/10.0)
      DXFImportSub.m    (-setBounds:): if Prefs_ImportMoveToOrigin => move to 10.0/10.0)
      DINImportSub.m    (-setBounds:): if Prefs_ImportMoveToOrigin => move to 10.0/10.0)
      HPGLImportSub.m   (-setBounds:): if Prefs_ImportMoveToOrigin => move to 10.0/10.0)
      ICUTImportSub.m   (-setBounds:): if Prefs_ImportMoveToOrigin => move to 10.0/10.0)
      SVGImportSub.m    (-setBounds:): if Prefs_ImportMoveToOrigin => move to 10.0/10.0)
      -> Import: Preferences setting (Import->Move to Origin) to move imported files to origin or not

2015-09-02 Ilonka Fleischmann
	* Pathcontour.m (-contourPath:..:, -contourImage:..:, -contourList:..:): conRext.size < 8000 (not 10000)
	  -> Fix, Raster Contour, Mac OS 10.10: Retina/Yosemite workaround for limited window size

2015-09-05 Georg Fleischmann
    * PSImport.m (-importPS): if conversion fails, we convert psData into simple eps and try again
      -> PS-Import: improved to handle insane EPS files by pre-converting to simpler EPS

2015-09-07  Cenon 4.0.4 beta 4


2015-09-18 Georg Fleischmann
    * App.m (-openFile:): set directory of imported files to import directory
      -> Fix, Import, Yosemite: on Mac OS 10.10 import directory is preserved for save
    * App.m (-changeSaveType:): allow 3 letter extensions
      App.m (-saveAsPanel): "cenon" and "cen" allowed
      App.m (-openFile:): case insensitive, 3 letter alternative added
      App.m (-import:): "cen", "nc" added
      Document.m -saveAs: allow 3 letter extensions
      -> Export: allow extensions with three letters:
                 "cenon",  "cen"
                 "gerber", "ger"
                 "hpgl",   "hgl", "plt"
                 "tiff",   "tif"
    * App.m (-openFile:): set name of imported file instead of "UNTITLED"
      -> Import: document gets the name of the imported file

2015-09-20 Georg Fleischmann
    * Main.xib: Format->Font->Kern->Tighten/Loosen with key shortcuts
      -> Menu: Format->Font->Kern->Tighten/Loosen with key shortcuts

2015-10-08 Georg Fleischmann
    * DXFImport.m (-getArc:): if extZ = -1 => -angle
      DXFImport.h (group): group.p0 added to maintain not transformed coordinate
      DXFImport.m (-scanGroup:): set group.p0 = group.x0, y0, z0
      DXFImport.m (-getArc:): 1. get start, end, 2. transform, 3. set resolution
      -> Fix, DXF Import: certain Arcs with 180 degree angle or extrusion direction were inverted (extrusion Z = -1)

2015-10-19 Georg Fleischmann
    * VText.m (-hit:fuzz:): selecting rotated text added: test rotated point on unrotated bounds (not [self bounds])
      -> Fix, Text: selecting rotated text improved

2015-10-21 Georg Fleischmann
    * DocWindow.h: unfoldedHeight, setUnfoldedHeight: float -> VFloat
      DocWindow.m (-unfoldedHeight, -setUnfoldedHeight:, -sendEvent:): float -> VFloat
    * DocWindow.m (-sendEvent:): mouse up + double click -> return
      -> Fix, Apple Mac OS 10.10: don't go to full screen when double clicking title bar of window

    * ChangeDetails.m (-personalChangeExpected): @selector(setLength) -> @selector(setLength:)
      -> Fix, Undo: change length Undo (Inspektor)

2015-11-07 Georg Fleischmann
    * vhfCompatibility.h (Apple: VHFIsDrawingToScreen()): VHFIsDrawingToScreen(): no context => return YES
      DocView.m (-draw:): check for valid GraphicsContext before drawing into view
      -> Fix, Mac OS 10.11 (El Capitan): open document works

2015-09-09  Cenon 4.0.4 beta 4
2015-11-09  Cenon 4.0.4 beta 5


2015-11-17 Georg Fleischmann
    * VText.m (-drawWithPrincipal:): ceil(bounds.size)
      -> Fix, Mirrored Text: after resize, mirrored text could turn invisible (Mac OS 10.8 - 10.10)
2015-11-18 Georg Fleischmann
    * VText.m (-textDidEndEditing:): don't set bounds origin, if locked
      -> Fix, Rotated Text: locked rotated text is not moving any more after editing

2015-11-18 Georg Fleischmann
    * ChangeDetail.m (FillChangeDetail, -personalChangeExpected): "setFilled" -> "setFilled:"
      -> Fix, Undo: Undo for Fill object

2015-11-20 Ilonka Fleischmann
	* VPath.m (-subPathInsidePath::): break added in second for loop by checking pts with tpoints (p1/p2 = p0/p3)
	  VCurve.m (-contourOpenLeftOrRight:): return nil for Curves with no length !
	  -> Fix, Contour: possible crash fixed for Curves with zero length (or control points equal end points)

2015-12-02 Ilonka Fleischmann
	* VArc.m (-getListOfObjectsSplittedFrom::): check ps[i] to center with radius*3.0*TOLERANCE instead only radius*TOLERANCE

2015-12-04 Ilonka Fleischmann (2015-11-21)
	* NotificationNames.h (PrefsExpertModeHasChanged): new
	  GeneralController.m (-set:): postNotification PrefsExpertModeHasChanged added

2015-12-07 Ilonka Fleischmann (2015-11-30)
    * MoveMatrix.h (matrixShouldShuffleCells): added to PossibleDelegate
      MoveMatrix.m (-mouseDown:): check delegates -matrixShouldShuffleCells before shuffeling a cell

2015-12-08  Cenon 4.0.4 beta 6
