00001 /* ***** BEGIN LICENSE BLOCK ***** 00002 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 00003 * 00004 * The contents of this file are subject to the Mozilla Public License Version 00005 * 1.1 (the "License"); you may not use this file except in compliance with 00006 * the License. You may obtain a copy of the License at 00007 * http://www.mozilla.org/MPL/ 00008 * 00009 * Software distributed under the License is distributed on an "AS IS" basis, 00010 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 00011 * for the specific language governing rights and limitations under the 00012 * License. 00013 * 00014 * The Original Code is OffscreenGecko code. 00015 * 00016 * The Initial Developer of the Original Code is 00017 * Frank Richter <frank.richter@gmail.com>. 00018 * Portions created by the Initial Developer are Copyright (C) 2007 00019 * the Initial Developer. All Rights Reserved. 00020 * 00021 * Contributor(s): 00022 * 00023 * Alternatively, the contents of this file may be used under the terms of 00024 * either the GNU General Public License Version 2 or later (the "GPL"), or 00025 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 00026 * in which case the provisions of the GPL or the LGPL are applicable instead 00027 * of those above. If you wish to allow use of your version of this file only 00028 * under the terms of either the GPL or the LGPL, and not to allow others to 00029 * use your version of this file under the terms of the MPL, indicate your 00030 * decision by deleting the provisions above and replace them with the notice 00031 * and other provisions required by the GPL or the LGPL. If you do not delete 00032 * the provisions above, a recipient may use your version of this file under 00033 * the terms of any one of the MPL, the GPL or the LGPL. 00034 * 00035 * ***** END LICENSE BLOCK ***** */ 00036 00037 #ifndef __OFFSCREENGECKO_STRING_H__ 00038 #define __OFFSCREENGECKO_STRING_H__ 00039 00044 #include "baseobj.h" 00045 00049 OSGK_DERIVEDTYPE(OSGK_String); 00050 00056 OSGK_EXTERN_C OSGK_API const char* osgk_string_get (OSGK_String* str); 00057 00062 OSGK_EXTERN_C OSGK_API OSGK_String* osgk_string_create (const char* str); 00063 00064 #ifdef __cplusplus 00065 00066 namespace OSGK 00067 { 00071 struct String : public CXXAPI::Wrap<OSGK_String> 00072 { 00077 String (const char* str) : WrapperType (osgk_string_create (str)) { } 00078 00079 explicit String (WrappedType* obj) : WrapperType (obj) {} 00080 String& operator=(const String& other) 00081 { 00082 WrapperType::operator=(other); 00083 return *this; 00084 } 00085 00087 00091 const char* Get() 00092 { 00093 return osgk_string_get (GetObject()); 00094 } 00095 00096 operator const char*() { return Get(); } 00098 }; 00099 } // namespace OSGK 00100 #endif 00101 00102 #endif // __OFFSCREENGECKO_STRING_H__