Bump version to 4.1-6
[LibreOffice.git] / vcl / quartz / utils.cxx
blobb2356fdc6adf1e382b9be0721fa7085cc5fb1355
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include <iostream>
21 #include <iomanip>
23 #include <rtl/alloc.h>
24 #include <rtl/ustrbuf.hxx>
26 #include "quartz/utils.h"
28 OUString GetOUString( CFStringRef rStr )
30 if( rStr == 0 )
31 return OUString();
32 CFIndex nLength = CFStringGetLength( rStr );
33 if( nLength == 0 )
34 return OUString();
35 const UniChar* pConstStr = CFStringGetCharactersPtr( rStr );
36 if( pConstStr )
37 return OUString( pConstStr, nLength );
38 UniChar* pStr = reinterpret_cast<UniChar*>( rtl_allocateMemory( sizeof(UniChar)*nLength ) );
39 CFRange aRange = { 0, nLength };
40 CFStringGetCharacters( rStr, aRange, pStr );
41 OUString aRet( pStr, nLength );
42 rtl_freeMemory( pStr );
43 return aRet;
46 OUString GetOUString( NSString* pStr )
48 if( ! pStr )
49 return OUString();
50 int nLen = [pStr length];
51 if( nLen == 0 )
52 return OUString();
54 OUStringBuffer aBuf( nLen+1 );
55 aBuf.setLength( nLen );
56 [pStr getCharacters: const_cast<sal_Unicode*>(aBuf.getStr())];
57 return aBuf.makeStringAndClear();
60 CFStringRef CreateCFString( const OUString& rStr )
62 return CFStringCreateWithCharacters(kCFAllocatorDefault, rStr.getStr(), rStr.getLength() );
65 NSString* CreateNSString( const OUString& rStr )
67 return [[NSString alloc] initWithCharacters: rStr.getStr() length: rStr.getLength()];
70 std::ostream &operator <<(std::ostream& s, CGRect &rRect)
72 #ifndef SAL_LOG_INFO
73 (void) rRect;
74 #else
75 if (CGRectIsNull(rRect))
76 s << "NULL";
77 else
78 s << rRect.size << "@" << rRect.origin;
79 #endif
80 return s;
83 std::ostream &operator <<(std::ostream& s, CGPoint &rPoint)
85 #ifndef SAL_LOG_INFO
86 (void) rPoint;
87 #else
88 s << "(" << rPoint.x << "," << rPoint.y << ")";
89 #endif
90 return s;
93 std::ostream &operator <<(std::ostream& s, CGSize &rSize)
95 #ifndef SAL_LOG_INFO
96 (void) rSize;
97 #else
98 s << rSize.width << "x" << rSize.height;
99 #endif
100 return s;
103 std::ostream &operator <<(std::ostream& s, CGColorRef pColor)
105 #ifndef SAL_LOG_INFO
106 (void) pColor;
107 #else
108 CFStringRef colorString = CFCopyDescription(pColor);
109 if (colorString) {
110 s << GetOUString(colorString);
111 CFRelease(colorString);
112 } else {
113 s << "NULL";
115 #endif
116 return s;
119 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */