From 3ae4454e2a1a6d88e67a48f1c9cce3ce571f47c1 Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Wed, 9 Sep 2015 16:47:20 +0800 Subject: [PATCH] Bug 1200194 - Make Appearance convertible to string representation. r=roc --HG-- extra : commitid : KCG4QMsPhdY extra : rebase_source : ebad97bf4ed57a5f532f94074c035ddb3dabaf47 --- layout/base/AccessibleCaret.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/layout/base/AccessibleCaret.cpp b/layout/base/AccessibleCaret.cpp index 8433b509b3e2..64144e67a9b2 100644 --- a/layout/base/AccessibleCaret.cpp +++ b/layout/base/AccessibleCaret.cpp @@ -8,6 +8,7 @@ #include "AccessibleCaretLogger.h" #include "mozilla/Preferences.h" +#include "mozilla/ToString.h" #include "nsCanvasFrame.h" #include "nsCaret.h" #include "nsDOMTokenList.h" @@ -31,6 +32,24 @@ float AccessibleCaret::sHeight = 0.0f; float AccessibleCaret::sMarginLeft = 0.0f; float AccessibleCaret::sBarWidth = 0.0f; +std::ostream& +operator<<(std::ostream& aStream, const AccessibleCaret::Appearance& aAppearance) +{ + using Appearance = AccessibleCaret::Appearance; + +#define AC_PROCESS_APPEARANCE_TO_STREAM(e) case(e): aStream << #e; break; + switch (aAppearance) { + AC_PROCESS_APPEARANCE_TO_STREAM(Appearance::None); + AC_PROCESS_APPEARANCE_TO_STREAM(Appearance::Normal); + AC_PROCESS_APPEARANCE_TO_STREAM(Appearance::NormalNotShown); + AC_PROCESS_APPEARANCE_TO_STREAM(Appearance::Left); + AC_PROCESS_APPEARANCE_TO_STREAM(Appearance::Right); + } +#undef AC_PROCESS_APPEARANCE_TO_STREAM + + return aStream; +} + // ----------------------------------------------------------------------------- // Implementation of AccessibleCaret methods @@ -75,6 +94,9 @@ AccessibleCaret::SetAppearance(Appearance aAppearance) CaretElement()->ClassList()->Add(AppearanceString(aAppearance), rv); MOZ_ASSERT(!rv.Failed(), "Add new appearance failed!"); + AC_LOG("%s: %s -> %s", __FUNCTION__, ToString(mAppearance).c_str(), + ToString(aAppearance).c_str()); + mAppearance = aAppearance; // Need to reset rect since the cached rect will be compared in SetPosition.