xref: /AOO41X/main/fpicker/source/aqua/CFStringUtilities.hxx (revision 1ecadb572e7010ff3b3382ad9bf179dbc6efadbb)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef _CFSTRINGUTILITIES_HXX_
29 #define _CFSTRINGUTILITIES_HXX_
30 
31 #include <premac.h>
32 #include <Carbon/Carbon.h>
33 #include <Cocoa/Cocoa.h>
34 #include <postmac.h>
35 #include <rtl/ustring.hxx>
36 #include <sal/types.h>
37 #include <osl/diagnose.h>
38 
39 enum InfoType {
40     FULLPATH,
41     FILENAME,
42     PATHWITHOUTLASTCOMPONENT
43 };
44 
45 rtl::OUString CFStringToOUString(const CFStringRef sOrig);
46 rtl::OUString FSRefToOUString(FSRef fsRef, InfoType info = FULLPATH);
47 rtl::OUString CFURLRefToOUString(CFURLRef aUrlRef, InfoType info);
48 CFStringRef CFStringCreateWithOUString(const rtl::OUString& aString);
49 
50 //debug utils
51 #define PARAMFILLER "\n                    "
52 
53 inline void DBG_PRINT_ENTRY() {
54     OSL_TRACE(">>> %s", __func__);
55 }
56 
57 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname) {
58     OSL_TRACE(">>> %s::%s", classname, methodname);
59 }
60 
61 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const char* value1) {
62     OSL_TRACE(">>> %s::%s%s%s = %s", classname, methodname, PARAMFILLER, param1, value1);
63 }
64 
65 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const rtl::OUString& value1) {
66     OSL_TRACE(">>> %s::%s%s%s = %s", classname, methodname, PARAMFILLER, param1, OUStringToOString(value1, RTL_TEXTENCODING_UTF8).getStr());
67 }
68 
69 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const CFStringRef value1) {
70     OSL_TRACE(">>> %s::%s%s%s =", classname, methodname, PARAMFILLER, param1);
71 #if OSL_DEBUG_LEVEL > 1
72     CFShow(value1);
73 #endif
74 }
75 
76 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const NSString* value1) {
77     OSL_TRACE(">>> %s::%s%s%s =", classname, methodname, PARAMFILLER, param1);
78 #if OSL_DEBUG_LEVEL > 1
79     NSLog(value1);
80 #endif
81 }
82 
83 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1) {
84     OSL_TRACE(">>> %s::%s%s%s = %d", classname, methodname, PARAMFILLER, param1, value1);
85 }
86 
87 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const char* value1, const char* param2, const int value2) {
88     OSL_TRACE(">>> %s::%s%s%s = %s%s%s = %d", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2);
89 }
90 
91 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const char* value1, const char* param2, const char* value2) {
92     OSL_TRACE(">>> %s::%s%s%s = %s%s%s = %s", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2);
93 }
94 
95 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1, const char* param2, const int value2) {
96     OSL_TRACE(">>> %s::%s%s%s = %d%s%s = %d", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2);
97 }
98 
99 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1, const char* param2, const char* value2) {
100     OSL_TRACE(">>> %s::%s%s%s = %d%s%s = %s", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2);
101 }
102 
103 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1, const char* param2, const CFStringRef value2) {
104     OSL_TRACE(">>> %s::%s%s%s = %d%s%s =", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2);
105 #if OSL_DEBUG_LEVEL > 1
106     CFShow(value2);
107 #endif
108 }
109 
110 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1, const char* param2, const NSString* value2) {
111     OSL_TRACE(">>> %s::%s%s%s = %d%s%s =", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2);
112 #if OSL_DEBUG_LEVEL > 1
113     NSLog(value2);
114 #endif
115 }
116 
117 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const rtl::OUString& value1, const char* param2, const rtl::OUString& value2) {
118     OSL_TRACE(">>> %s::%s%s%s = %s%s%s = %s", classname, methodname, PARAMFILLER, param1, OUStringToOString(value1, RTL_TEXTENCODING_UTF8).getStr(), PARAMFILLER, param2, OUStringToOString(value2, RTL_TEXTENCODING_UTF8).getStr());
119 }
120 
121 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const rtl::OUString& value1, const char* param2, const int value2) {
122     OSL_TRACE(">>> %s::%s%s%s = %s%s%s = %d", classname, methodname, PARAMFILLER, param1, OUStringToOString(value1, RTL_TEXTENCODING_UTF8).getStr(), PARAMFILLER, param2, value2);
123 }
124 
125 //exit method debugs
126 
127 inline void DBG_PRINT_EXIT() {
128     OSL_TRACE("<<< %s", __func__);
129 }
130 
131 inline void DBG_PRINT_EXIT(const char * classname, const char * methodname) {
132     OSL_TRACE("<<< %s::%s", classname, methodname);
133 }
134 
135 inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, const char* retVal) {
136     OSL_TRACE("<<< %s::%s%sreturnValue = %s", classname, methodname, PARAMFILLER, retVal);
137 }
138 
139 inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, int retVal) {
140     OSL_TRACE("<<< %s::%s%sreturnValue = %d", classname, methodname, PARAMFILLER, retVal);
141 }
142 
143 inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, const CFStringRef retVal) {
144     OSL_TRACE("<<< %s::%s%sreturnValue = ", classname, methodname, PARAMFILLER);
145 #if OSL_DEBUG_LEVEL > 1
146     CFShow(retVal);
147 #endif
148 }
149 
150 inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, const NSString* retVal) {
151     OSL_TRACE("<<< %s::%s%sreturnValue = ", classname, methodname, PARAMFILLER);
152 #if OSL_DEBUG_LEVEL > 1
153     NSLog(retVal);
154 #endif
155 }
156 
157 inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, const rtl::OUString& retVal) {
158     OSL_TRACE("<<< %s::%s%sreturnValue = %s", classname, methodname, PARAMFILLER, OUStringToOString(retVal, RTL_TEXTENCODING_UTF8).getStr());
159 }
160 
161 #endif //_CFSTRINGUTILITIES_HXX_
162