[Libreoffice-commits] core.git: vcl/inc vcl/source
Tor Lillqvist
tml at iki.fi
Sat Apr 6 03:23:49 PDT 2013
vcl/inc/sallayout.hxx | 82 -----------------------------------------
vcl/source/gdi/sallayout.cxx | 84 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 85 insertions(+), 81 deletions(-)
New commits:
commit 2a1e3dff0124f8dd05eb6db86297fd60499ae2f2
Author: Tor Lillqvist <tml at iki.fi>
Date: Sat Apr 6 13:23:21 2013 +0300
Actually no need to have it inline in the header
Change-Id: I3891441fee41dd56ff183c833b17d926722b8f91
diff --git a/vcl/inc/sallayout.hxx b/vcl/inc/sallayout.hxx
index dbf97b7..c46c272 100644
--- a/vcl/inc/sallayout.hxx
+++ b/vcl/inc/sallayout.hxx
@@ -21,7 +21,6 @@
#define _SV_SALLAYOUT_HXX
#include <iostream>
-#include <iomanip>
#include <tools/gen.hxx>
#include <basegfx/polygon/b2dpolypolygon.hxx>
@@ -127,86 +126,7 @@ protected:
};
// For nice SAL_INFO logging of ImplLayoutArgs values
-inline std::ostream &operator <<(std::ostream& s, ImplLayoutArgs &rArgs)
-{
-#ifndef SAL_LOG_INFO
- (void) rArgs;
-#else
- s << "ImplLayoutArgs{";
-
- s << "Flags=";
- if (rArgs.mnFlags == 0)
- s << 0;
- else {
- bool need_or = false;
- s << "{";
-#define TEST(x) if (rArgs.mnFlags & SAL_LAYOUT_##x) { if (need_or) s << "|"; s << #x; need_or = true; }
- TEST(BIDI_RTL);
- TEST(BIDI_STRONG);
- TEST(RIGHT_ALIGN);
- TEST(KERNING_PAIRS);
- TEST(KERNING_ASIAN);
- TEST(VERTICAL);
- TEST(COMPLEX_DISABLED);
- TEST(ENABLE_LIGATURES);
- TEST(SUBSTITUTE_DIGITS);
- TEST(KASHIDA_JUSTIFICATON);
- TEST(DISABLE_GLYPH_PROCESSING);
- TEST(FOR_FALLBACK);
-#undef TEST
- s << "}";
- }
-
- s << ",Length=" << rArgs.mnLength;
- s << ",MinCharPos=" << rArgs.mnMinCharPos;
- s << ",EndCharPos=" << rArgs.mnEndCharPos;
-
- s << ",Str=\"";
- int lim = rArgs.mnLength;
- if (lim > 10)
- lim = 7;
- for (int i = 0; i < lim; i++) {
- if (rArgs.mpStr[i] == '\n')
- s << "\\n";
- else if (rArgs.mpStr[i] < ' ' || (rArgs.mpStr[i] >= 0x7F && rArgs.mpStr[i] <= 0xFF))
- s << "\\0x" << std::hex << std::setw(2) << std::setfill('0') << (int) rArgs.mpStr[i] << std::setfill(' ') << std::setw(1) << std::dec;
- else if (rArgs.mpStr[i] < 0x7F)
- s << (char) rArgs.mpStr[i];
- else
- s << "\\u" << std::hex << std::setw(4) << std::setfill('0') << (int) rArgs.mpStr[i] << std::setfill(' ') << std::setw(1) << std::dec;
- }
- if (rArgs.mnLength > lim)
- s << "...";
- s << "\"";
-
- s << ",DXArray=";
- if (rArgs.mpDXArray) {
- s << "[";
- int count = rArgs.mnEndCharPos - rArgs.mnMinCharPos;
- lim = count;
- if (lim > 10)
- lim = 7;
- for (int i = 0; i < lim; i++) {
- s << rArgs.mpDXArray[i];
- if (i < lim-1)
- s << ",";
- }
- if (count > lim) {
- if (count > lim + 1)
- s << "...";
- s << rArgs.mpDXArray[count-1];
- }
- s << "]";
- } else
- s << "NULL";
-
- s << ",LayoutWidth=" << rArgs.mnLayoutWidth;
-
- s << "}";
-
-#endif
- return s;
-}
+std::ostream &operator <<(std::ostream& s, ImplLayoutArgs &rArgs);
// helper functions often used with ImplLayoutArgs
bool IsDiacritic( sal_UCS4 );
diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx
index ebf348c..9d315e3 100644
--- a/vcl/source/gdi/sallayout.cxx
+++ b/vcl/source/gdi/sallayout.cxx
@@ -17,6 +17,9 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <iostream>
+#include <iomanip>
+
#include "sal/config.h"
#include <cstdio>
@@ -69,6 +72,87 @@ FILE * mslLog()
#endif
// =======================================================================
+std::ostream &operator <<(std::ostream& s, ImplLayoutArgs &rArgs)
+{
+#ifndef SAL_LOG_INFO
+ (void) rArgs;
+#else
+ s << "ImplLayoutArgs{";
+
+ s << "Flags=";
+ if (rArgs.mnFlags == 0)
+ s << 0;
+ else {
+ bool need_or = false;
+ s << "{";
+#define TEST(x) if (rArgs.mnFlags & SAL_LAYOUT_##x) { if (need_or) s << "|"; s << #x; need_or = true; }
+ TEST(BIDI_RTL);
+ TEST(BIDI_STRONG);
+ TEST(RIGHT_ALIGN);
+ TEST(KERNING_PAIRS);
+ TEST(KERNING_ASIAN);
+ TEST(VERTICAL);
+ TEST(COMPLEX_DISABLED);
+ TEST(ENABLE_LIGATURES);
+ TEST(SUBSTITUTE_DIGITS);
+ TEST(KASHIDA_JUSTIFICATON);
+ TEST(DISABLE_GLYPH_PROCESSING);
+ TEST(FOR_FALLBACK);
+#undef TEST
+ s << "}";
+ }
+
+ s << ",Length=" << rArgs.mnLength;
+ s << ",MinCharPos=" << rArgs.mnMinCharPos;
+ s << ",EndCharPos=" << rArgs.mnEndCharPos;
+
+ s << ",Str=\"";
+ int lim = rArgs.mnLength;
+ if (lim > 10)
+ lim = 7;
+ for (int i = 0; i < lim; i++) {
+ if (rArgs.mpStr[i] == '\n')
+ s << "\\n";
+ else if (rArgs.mpStr[i] < ' ' || (rArgs.mpStr[i] >= 0x7F && rArgs.mpStr[i] <= 0xFF))
+ s << "\\0x" << std::hex << std::setw(2) << std::setfill('0') << (int) rArgs.mpStr[i] << std::setfill(' ') << std::setw(1) << std::dec;
+ else if (rArgs.mpStr[i] < 0x7F)
+ s << (char) rArgs.mpStr[i];
+ else
+ s << "\\u" << std::hex << std::setw(4) << std::setfill('0') << (int) rArgs.mpStr[i] << std::setfill(' ') << std::setw(1) << std::dec;
+ }
+ if (rArgs.mnLength > lim)
+ s << "...";
+ s << "\"";
+
+ s << ",DXArray=";
+ if (rArgs.mpDXArray) {
+ s << "[";
+ int count = rArgs.mnEndCharPos - rArgs.mnMinCharPos;
+ lim = count;
+ if (lim > 10)
+ lim = 7;
+ for (int i = 0; i < lim; i++) {
+ s << rArgs.mpDXArray[i];
+ if (i < lim-1)
+ s << ",";
+ }
+ if (count > lim) {
+ if (count > lim + 1)
+ s << "...";
+ s << rArgs.mpDXArray[count-1];
+ }
+ s << "]";
+ } else
+ s << "NULL";
+
+ s << ",LayoutWidth=" << rArgs.mnLayoutWidth;
+
+ s << "}";
+
+#endif
+ return s;
+}
+
// TODO: ask the glyph directly, for now we need this method because of #i99367#
// true if a codepoint doesn't influence the logical text width
bool IsDiacritic( sal_UCS4 nChar )
More information about the Libreoffice-commits
mailing list