setOpacity method

  1. @override
void setOpacity(
  1. double opacity
)
override

Implementation

@override
void setOpacity(final double opacity) {
  if (opacity < 0 || 1 < opacity) {
    throw Exception(
        'ImplWindowControlWinOS::setOpacity(), opacity accepts values between 0 and 1.');
  }

  var exStyle = GetWindowLongPtr(_windowId, GWL_EXSTYLE);
  exStyle |= WS_EX_LAYERED;
  SetWindowLongPtr(_windowId, GWL_EXSTYLE, exStyle);

  const maxAlpha = 255;
  SetLayeredWindowAttributes(
      _windowId, 0, (maxAlpha * opacity).toInt(), LWA_ALPHA);
}