Home | History | Annotate | Download | only in nav
      1 /*
      2  * Copyright 2009, The Android Open Source Project
      3  *
      4  * Redistribution and use in source and binary forms, with or without
      5  * modification, are permitted provided that the following conditions
      6  * are met:
      7  *  * Redistributions of source code must retain the above copyright
      8  *    notice, this list of conditions and the following disclaimer.
      9  *  * Redistributions in binary form must reproduce the above copyright
     10  *    notice, this list of conditions and the following disclaimer in the
     11  *    documentation and/or other materials provided with the distribution.
     12  *
     13  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
     14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     24  */
     25 
     26 #include "CachedPrefix.h"
     27 #include "CachedInput.h"
     28 
     29 namespace android {
     30 
     31 #if DUMP_NAV_CACHE
     32 
     33 #define DEBUG_PRINT_BOOL(field) \
     34     DUMP_NAV_LOGD("// bool " #field "=%s;\n", b->field ? "true" : "false")
     35 
     36 CachedInput* CachedInput::Debug::base() const {
     37     CachedInput* nav = (CachedInput*) ((char*) this - OFFSETOF(CachedInput, mDebug));
     38     return nav;
     39 }
     40 
     41 static void printWebCoreString(const char* label,
     42         const WebCore::String& string) {
     43     char scratch[256];
     44     size_t index = snprintf(scratch, sizeof(scratch), label);
     45     const UChar* ch = string.characters();
     46     while (ch && *ch && index < sizeof(scratch)) {
     47         UChar c = *ch++;
     48         if (c < ' ' || c >= 0x7f) c = ' ';
     49         scratch[index++] = c;
     50     }
     51     DUMP_NAV_LOGD("%.*s\"\n", index, scratch);
     52 }
     53 
     54 void CachedInput::Debug::print() const
     55 {
     56     CachedInput* b = base();
     57     printWebCoreString("// char* mName=\"", b->mName);
     58     DUMP_NAV_LOGD("// void* mForm=%p;", b->mForm);
     59     DUMP_NAV_LOGD("// int mMaxLength=%d;\n", b->mMaxLength);
     60     DUMP_NAV_LOGD("// int mTextSize=%d;\n", b->mTextSize);
     61     DUMP_NAV_LOGD("// int mInputType=%d;\n", b->mInputType);
     62     DUMP_NAV_LOGD("// int mPaddingLeft=%d;\n", b->mPaddingLeft);
     63     DUMP_NAV_LOGD("// int mPaddingTop=%d;\n", b->mPaddingTop);
     64     DUMP_NAV_LOGD("// int mPaddingRight=%d;\n", b->mPaddingRight);
     65     DUMP_NAV_LOGD("// int mPaddingBottom=%d;\n", b->mPaddingBottom);
     66     DEBUG_PRINT_BOOL(mIsRtlText);
     67     DEBUG_PRINT_BOOL(mIsTextField);
     68 }
     69 
     70 #endif
     71 
     72 }
     73