Преглед изворни кода

Add a Print sidebar section for print tools alongside Scan.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 пре 1 месец
родитељ
комит
a95cad2815
2 измењених фајлова са 20 додато и 1 уклоњено
  1. 4 1
      smart_printer/SidebarView.swift
  2. 16 0
      smart_printer/ViewController.swift

+ 4 - 1
smart_printer/SidebarView.swift

@@ -3,6 +3,7 @@ import Cocoa
 enum SidebarDestination: Int, CaseIterable {
     case home
     case scan
+    case print
     case scanAndHome
     case settings
 }
@@ -65,10 +66,11 @@ final class SidebarView: NSView, AppearanceRefreshable {
 
         let homeItem = SidebarNavItem(title: "Home", symbolName: "house.fill", isSelected: true)
         let scanItem = SidebarNavItem(title: "Scan", symbolName: "viewfinder")
+        let printItem = SidebarNavItem(title: "Print", symbolName: "printer")
         let scanAndHomeItem = SidebarNavItem(title: "Premium", symbolName: "diamond.fill", accent: .premium)
         let settingsItem = SidebarNavItem(title: "Settings", symbolName: "gearshape")
 
-        let mainNavItems = [homeItem, scanItem, scanAndHomeItem]
+        let mainNavItems = [homeItem, scanItem, printItem, scanAndHomeItem]
         navItems = mainNavItems + [settingsItem]
 
         for (index, item) in navItems.enumerated() {
@@ -121,6 +123,7 @@ final class SidebarView: NSView, AppearanceRefreshable {
 
             homeItem.widthAnchor.constraint(equalTo: navStack.widthAnchor),
             scanItem.widthAnchor.constraint(equalTo: navStack.widthAnchor),
+            printItem.widthAnchor.constraint(equalTo: navStack.widthAnchor),
             scanAndHomeItem.widthAnchor.constraint(equalTo: navStack.widthAnchor),
             settingsItem.widthAnchor.constraint(equalTo: bottomNavStack.widthAnchor),
 

+ 16 - 0
smart_printer/ViewController.swift

@@ -11,6 +11,7 @@ class ViewController: NSViewController {
     private var mainContentView: NSView!
     private var homeContentView: NSView!
     private var scanContentView: NSView!
+    private var printContentView: NSView!
     private var scanAndHomeContentView: NSView!
     private var settingsContentView: NSView!
     private var contentContainer: NSView!
@@ -291,11 +292,13 @@ class ViewController: NSViewController {
 
         homeContentView = makeHomeContentView()
         scanContentView = makeScanContentView()
+        printContentView = makePrintContentView()
         scanAndHomeContentView = makeScanAndHomeContentView()
         settingsContentView = makeSettingsContentView()
 
         contentContainer.addSubview(homeContentView)
         contentContainer.addSubview(scanContentView)
+        contentContainer.addSubview(printContentView)
         contentContainer.addSubview(scanAndHomeContentView)
         contentContainer.addSubview(settingsContentView)
 
@@ -330,6 +333,7 @@ class ViewController: NSViewController {
 
         pinContentView(homeContentView)
         pinContentView(scanContentView)
+        pinContentView(printContentView)
         pinContentView(scanAndHomeContentView)
         pinContentView(settingsContentView)
 
@@ -395,6 +399,7 @@ class ViewController: NSViewController {
 
         homeContentView.isHidden = destination != .home
         scanContentView.isHidden = destination != .scan
+        printContentView.isHidden = destination != .print
         scanAndHomeContentView.isHidden = destination != .scanAndHome
         settingsContentView.isHidden = destination != .settings
 
@@ -481,6 +486,17 @@ class ViewController: NSViewController {
         )
     }
 
+    private func makePrintContentView() -> NSView {
+        makeDestinationScrollView(
+            title: "Print",
+            features: featureCards(
+                FeatureCardData(title: "Print Text", subtitle: "Type text and print", iconKind: .printText),
+                FeatureCardData(title: "Print Contacts", subtitle: "Print your contacts", iconKind: .printContacts),
+                FeatureCardData(title: "Draw & Print", subtitle: "Add drawings, text and more", iconKind: .drawPrint)
+            )
+        )
+    }
+
     private func makeScanAndHomeContentView() -> NSView {
         makeDestinationScrollView(
             title: "Premium",