intl/uconv/nsConverterOutputStream.h
author Emilio Cobos Álvarez <emilio@crisal.io>
Sun, 26 May 2019 13:10:00 +0000
changeset 475600 3415f556123b167f1bcde81e76d18037db3b2cb7
parent 449028 e4712449ba4303cef134ba0b3f1bea13fbd50c4a
permissions -rw-r--r--
Bug 1554433 - Move system colors to values::specified::color. r=xidorn This should be an idempotent patch. The way to come up with this patch has been: * Run the first script attached to the bug and pipe it to xclip, then paste it in color.rs * Add the relevant #[derive] annotations and remove the color.mako.rs definition. * Reorder the values to match the ColorID definition, on which some widget prefs and caching stuff relies on. * Manually port some documentation from nsLookAndFeel.h * Run `rg 'eColorID_' | cut -d : -f 1 | sort | uniq >files` * Run the second script attached to the bug. * Manually fix usage of `LAST_COLOR` (adding the `End` variant), and adding casts to integer as needed. * Add an static assert so that people remember to update the prefs, rather than a comment on the definition :) Differential Revision: https://phabricator.services.mozilla.com/D32610

/* vim:set expandtab ts=4 sw=2 sts=2 cin: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef NSCONVERTEROUTPUTSTREAM_H_
#define NSCONVERTEROUTPUTSTREAM_H_

#include "nsIConverterOutputStream.h"
#include "nsCOMPtr.h"
#include "mozilla/Attributes.h"
#include "mozilla/Encoding.h"

class nsIOutputStream;

/* ff8780a5-bbb1-4bc5-8ee7-057e7bc5c925 */
#define NS_CONVERTEROUTPUTSTREAM_CID                 \
  {                                                  \
    0xff8780a5, 0xbbb1, 0x4bc5, {                    \
      0x8e, 0xe7, 0x05, 0x7e, 0x7b, 0xc5, 0xc9, 0x25 \
    }                                                \
  }

class nsConverterOutputStream final : public nsIConverterOutputStream {
 public:
  nsConverterOutputStream() {}

  NS_DECL_ISUPPORTS
  NS_DECL_NSIUNICHAROUTPUTSTREAM
  NS_DECL_NSICONVERTEROUTPUTSTREAM

 private:
  ~nsConverterOutputStream();

  mozilla::UniquePtr<mozilla::Encoder> mConverter;
  nsCOMPtr<nsIOutputStream> mOutStream;
};

#endif