SetIconDetails constructor

SetIconDetails({
  1. Object? imageData,
  2. Object? path,
  3. int? tabId,
})

Implementation

SetIconDetails({
  /// Either an ImageData object or a dictionary {size -> ImageData}
  /// representing an icon to be set. If the icon is specified as a
  /// dictionary, the image used is chosen depending on the screen's pixel
  /// density. If the number of image pixels that fit into one screen space
  /// unit equals `scale`, then an image with size `scale` * n is selected,
  /// where <i>n</i> is the size of the icon in the UI. At least one image
  /// must be specified. Note that 'details.imageData = foo' is equivalent to
  /// 'details.imageData = {'16': foo}'
  Object? imageData,

  /// Either a relative image path or a dictionary {size -> relative image
  /// path} pointing to an icon to be set. If the icon is specified as a
  /// dictionary, the image used is chosen depending on the screen's pixel
  /// density. If the number of image pixels that fit into one screen space
  /// unit equals `scale`, then an image with size `scale` * n is selected,
  /// where <i>n</i> is the size of the icon in the UI. At least one image
  /// must be specified. Note that 'details.path = foo' is equivalent to
  /// 'details.path = {'16': foo}'
  Object? path,

  /// Limits the change to when a particular tab is selected. Automatically
  /// resets when the tab is closed.
  int? tabId,
}) : _wrapped = $js.SetIconDetails(
        imageData: switch (imageData) {
          JSObject() => imageData,
          Map() => imageData.jsify()!,
          null => null,
          _ => throw UnsupportedError(
              'Received type: ${imageData.runtimeType}. Supported types are: JSObject, Map')
        },
        path: switch (path) {
          String() => path.jsify()!,
          Map() => path.jsify()!,
          null => null,
          _ => throw UnsupportedError(
              'Received type: ${path.runtimeType}. Supported types are: String, Map')
        },
        tabId: tabId,
      );