windjammer-ui 0.3.6

Cross-platform UI framework for Windjammer (Web, Desktop, Mobile)
Documentation
// Note: This is a conceptual example showing Windjammer UI syntax
// In a real application, types would be imported from windjammer_ui

// Platform Capabilities Example
// Demonstrates filesystem, GPS, camera, clipboard, and notifications

    Filesystem, GPS, Camera, Clipboard, Notifications,
    Location, Notification, CameraImage
}

fn demo_filesystem() {
    print("šŸ“ Filesystem API Demo")
    print("=" * 40)
    
    let fs = Filesystem.new()
    
    // Request permission
    fs.request_permission("/tmp").unwrap()
    print("āœ… Permission granted for /tmp")
    
    // Write file
    let path = "/tmp/windjammer_test.txt"
    fs.write_text(path, "Hello from Windjammer UI!").unwrap()
    print("āœ… Wrote file: {path}")
    
    // Read file
    let content = fs.read_text(path).unwrap()
    print("āœ… Read file: \"{content}\"")
    
    // Check existence
    print("āœ… File exists: {}", fs.exists(path))
    
    // List directory
    let files = fs.list_dir("/tmp").unwrap()
    print("āœ… Files in /tmp: {} files", files.len())
    
    // Clean up
    print("")
}

fn demo_gps() {
    print("šŸ“ GPS/Location API Demo")
    print("=" * 40)
    
    let gps = GPS.new()
    
    // Enable GPS
    gps.enable().unwrap()
    print("āœ… GPS enabled")
    
    // Set location (simulated)
    let location = Location {
        latitude: 37.7749,
        longitude: -122.4194,
        altitude: Some(10.0),
        accuracy: 5.0,
        timestamp: 1234567890,
    }
    gps.set_location(location)
    print("āœ… Location set (simulated)")
    
    // Get location
    let current = gps.get_location().unwrap()
    print("āœ… Current location:")
    print("   Latitude: {current.latitude}")
    print("   Longitude: {current.longitude}")
    print("   Altitude: {current.altitude:?}")
    print("   Accuracy: ±{current.accuracy}m")
    print("")
}

fn demo_camera() {
    print("šŸ“· Camera API Demo")
    print("=" * 40)
    
    let camera = Camera.new()
    
    // Request permission
    camera.request_permission().unwrap()
    print("āœ… Camera permission granted")
    
    // Capture image
    let image = camera.capture().unwrap()
    print("āœ… Image captured:")
    print("   Size: {}x{}", image.width, image.height)
    print("   Format: {image.format:?}")
    print("   Data size: {} bytes", image.data.len())
    
    // Capture another
    camera.capture().unwrap()
    print("āœ… Second image captured")
    
    let images = camera.get_captured_images()
    print("āœ… Total images: {images.len()}")
    print("")
}

fn demo_clipboard() {
    print("šŸ“‹ Clipboard API Demo")
    print("=" * 40)
    
    let clipboard = Clipboard.new()
    
    // Write to clipboard
    clipboard.write_text("Windjammer UI is awesome!").unwrap()
    print("āœ… Wrote to clipboard")
    
    // Read from clipboard
    let content = clipboard.read_text().unwrap()
    print("āœ… Read from clipboard: \"{content}\"")
    
    // Check if has content
    print("āœ… Has content: {clipboard.has_content()}")
    print("")
}

fn demo_notifications() {
    print("šŸ”” Notifications API Demo")
    print("=" * 40)
    
    let notifications = Notifications.new()
    
    // Request permission
    notifications.request_permission().unwrap()
    print("āœ… Notification permission granted")
    
    // Send notifications
    notifications.send(Notification {
        title: "Welcome!".to_string(),
        body: "Windjammer UI is running".to_string(),
        icon: Some("icon.png".to_string()),
    }).unwrap()
    print("āœ… Notification sent: Welcome")
    
    notifications.send(Notification {
        title: "New Message".to_string(),
        body: "You have 3 unread messages".to_string(),
        icon: None,
    }).unwrap()
    print("āœ… Notification sent: New Message")
    
    let sent = notifications.get_sent()
    print("āœ… Total notifications sent: {sent.len()}")
    print("")
}

fn main() {
    print("=== Platform Capabilities Example ===\n")
    
    demo_filesystem()
    demo_gps()
    demo_camera()
    demo_clipboard()
    demo_notifications()
    
    print("šŸŽÆ Key Features:")
    print("  āœ… Permission-based security model")
    print("  āœ… Cross-platform API (Web, Desktop, Mobile)")
    print("  āœ… Filesystem access with path restrictions")
    print("  āœ… GPS/Location services")
    print("  āœ… Camera capture")
    print("  āœ… Clipboard read/write")
    print("  āœ… Native notifications")
    
    print("\nšŸ”’ Security:")
    print("  • All capabilities require explicit permission")
    print("  • Filesystem access is path-restricted")
    print("  • Follows principle of least privilege")
    print("  • Permission denials are graceful")
    
    print("\nšŸŒ Platform Support:")
    print("  • Web: Uses Web APIs (File API, Geolocation API, etc)")
    print("  • Desktop: Native file access, system notifications")
    print("  • Mobile: Native APIs (iOS/Android)")
}