Ejemplo n.º 1
0
NS_IMETHODIMP
TaskbarWindowPreview::SetProgressState(nsTaskbarProgressState aState,
                                       uint64_t aCurrentValue,
                                       uint64_t aMaxValue)
{
    NS_ENSURE_ARG_RANGE(aState,
                        nsTaskbarProgressState(0),
                        nsTaskbarProgressState(ArrayLength(sNativeStates) - 1));

    TBPFLAG nativeState = sNativeStates[aState];
    if (nativeState == TBPF_NOPROGRESS || nativeState == TBPF_INDETERMINATE) {
        NS_ENSURE_TRUE(aCurrentValue == 0, NS_ERROR_INVALID_ARG);
        NS_ENSURE_TRUE(aMaxValue == 0, NS_ERROR_INVALID_ARG);
    }

    if (aCurrentValue > aMaxValue)
        return NS_ERROR_ILLEGAL_VALUE;

    mState = nativeState;
    mCurrentValue = aCurrentValue;
    mMaxValue = aMaxValue;

    // Only update if we can
    return CanMakeTaskbarCalls() ? UpdateTaskbarProgress() : NS_OK;
}
nsresult
TaskbarWindowPreview::UpdateTaskbarProperties() {
  if (mHaveButtons) {
    if (FAILED(mTaskbar->ThumbBarAddButtons(mWnd, nsITaskbarWindowPreview::NUM_TOOLBAR_BUTTONS, mThumbButtons)))
      return NS_ERROR_FAILURE;
  }
  nsresult rv = UpdateTaskbarProgress();
  NS_ENSURE_SUCCESS(rv, rv);
  return TaskbarPreview::UpdateTaskbarProperties();
}