1 /* 2 Copyright (C) 2011 Harald Sitter <sitter@kde.org> 3 4 This library is free software; you can redistribute it and/or 5 modify it under the terms of the GNU Lesser General Public 6 License as published by the Free Software Foundation; either 7 version 2.1 of the License, or (at your option) version 3, or any 8 later version accepted by the membership of KDE e.V. (or its 9 successor approved by the membership of KDE e.V.), Nokia Corporation 10 (or its successors, if any) and the KDE Free Qt Foundation, which shall 11 act as a proxy defined in Section 6 of version 3 of the license. 12 13 This library is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 Lesser General Public License for more details. 17 18 You should have received a copy of the GNU Lesser General Public 19 License along with this library. If not, see <http://www.gnu.org/licenses/>. 20 */ 21 22 #ifndef PHONONPIMPL_P_H 23 #define PHONONPIMPL_P_H 24 25 /** 26 * Declares and defines helpers to access a public class. 27 */ 28 #define P_DECLARE_PUBLIC(Class) \ 29 inline Class* q_func() { return static_cast<Class *>(q_ptr); } \ 30 inline const Class* q_func() const { return static_cast<const Class *>(q_ptr); } \ 31 friend class Class; 32 33 /** 34 * Get pointer to private class instance. 35 * \see P_DECLARE_PRIVATE 36 */ 37 #define P_D(Class) Class##Private *const d = k_func() 38 39 /** 40 * Get pointer to public class instance. 41 * \see P_DECLARE_PUBLIC 42 */ 43 #define P_Q(Class) Class *const q = q_func() 44 45 #endif // PHONONPIMPL_P_H 46