Re-land "Change FX_BOOL definition from int to bool."

This reverts commit 747dcf7

Review-Url: https://codereview.chromium.org/2468723002
diff --git a/core/fxcrt/fx_system.h b/core/fxcrt/fx_system.h
index 8364db3..bcddf1a 100644
--- a/core/fxcrt/fx_system.h
+++ b/core/fxcrt/fx_system.h
@@ -65,11 +65,18 @@
 
 #ifdef __cplusplus
 extern "C" {
+typedef bool FX_BOOL;  // Deprecated.
+#ifndef TRUE
+#define TRUE true
 #endif
+#ifndef FALSE
+#define FALSE false
+#endif
+#endif  // __cplusplus
+
 typedef void* FX_POSITION;  // Keep until fxcrt containers gone
 typedef float FX_FLOAT;     // Keep, allow upgrade to doubles.
 typedef double FX_DOUBLE;   // Keep, allow downgrade to floats.
-typedef int FX_BOOL;        // Keep, sadly not always 0 or 1.
 typedef char FX_CHAR;       // Keep, questionable signedness.
 typedef wchar_t FX_WCHAR;   // Keep, maybe bad platform wchars.
 
@@ -83,14 +90,6 @@
 // TODO(palmer): it should be a |size_t|, or at least unsigned.
 typedef int FX_STRSIZE;
 
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
 #ifdef __cplusplus
 static_assert(TRUE == true, "true_needs_to_be_true");
 static_assert(FALSE == false, "false_needs_to_be_false");