1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
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 .
23 #include <rtl/alloc.h>
24 #include <rtl/ustrbuf.hxx>
26 #include "quartz/utils.h"
28 OUString
GetOUString( CFStringRef rStr
)
32 CFIndex nLength
= CFStringGetLength( rStr
);
35 const UniChar
* pConstStr
= CFStringGetCharactersPtr( rStr
);
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
);
46 OUString
GetOUString( NSString
* pStr
)
50 int nLen
= [pStr length
];
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
)
75 if (CGRectIsNull(rRect
))
78 s
<< rRect
.size
<< "@" << rRect
.origin
;
83 std::ostream
&operator <<(std::ostream
& s
, CGPoint
&rPoint
)
88 s
<< "(" << rPoint
.x
<< "," << rPoint
.y
<< ")";
93 std::ostream
&operator <<(std::ostream
& s
, CGSize
&rSize
)
98 s
<< rSize
.width
<< "x" << rSize
.height
;
103 std::ostream
&operator <<(std::ostream
& s
, CGColorRef pColor
)
108 CFStringRef colorString
= CFCopyDescription(pColor
);
110 s
<< GetOUString(colorString
);
111 CFRelease(colorString
);
119 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */