@@ -172,6 +172,16 @@ class MainWindowController: NSWindowController, NSTableViewDelegate, NSTableView
172172 {
173173 l. lightness1. base = self . selectedColor
174174 l. lightness2. base = self . selectedColor
175+
176+ l. onEdit =
177+ {
178+ [ weak self ] item in self ? . editLightnessPair ( item )
179+ }
180+
181+ l. onDelete =
182+ {
183+ [ weak self ] item in self ? . lightnessPairsArrayController. removeObject ( item )
184+ }
175185 }
176186 }
177187
@@ -383,6 +393,19 @@ class MainWindowController: NSWindowController, NSTableViewDelegate, NSTableView
383393 }
384394
385395 @IBAction func addLightnessPair( _ sender: Any ? )
396+ {
397+ self . editLightnessPair ( nil )
398+ {
399+ [ weak self ] c, r in
400+
401+ if r == . OK
402+ {
403+ self ? . lightnessPairsArrayController. addObject ( c. item )
404+ }
405+ }
406+ }
407+
408+ func editLightnessPair( _ item: LightnessPairItem ? , completion: ( ( LightnessPairWindowController , NSApplication . ModalResponse ) -> Void ) ? = nil )
386409 {
387410 guard let selectedColor = self . selectedColor else
388411 {
@@ -405,7 +428,9 @@ class MainWindowController: NSWindowController, NSTableViewDelegate, NSTableView
405428 return
406429 }
407430
408- let sheetController = LightnessPairWindowController ( base: selectedColor )
431+ let o = item ?? LightnessPairItem ( base: selectedColor )
432+
433+ let sheetController = LightnessPairWindowController ( base: selectedColor, item: o )
409434
410435 guard let sheet = sheetController. window else
411436 {
@@ -424,10 +449,13 @@ class MainWindowController: NSWindowController, NSTableViewDelegate, NSTableView
424449
425450 if r != . OK
426451 {
452+ completion ? ( sheetController, r )
453+
427454 return
428455 }
429456
430- self . lightnessPairsArrayController. addObject ( sheetController. item )
457+ completion ? ( sheetController, r )
458+ self . updateLightnesses ( )
431459 }
432460 }
433461}
0 commit comments