| 
									
										
										
										
											2002-10-12 11:37:38 +00:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * StringValue.h: interface for the CStringValue class. | 
					
						
							|  |  |  |  * Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Permission to use, copy, modify, distribute and sell this software | 
					
						
							|  |  |  |  * and its documentation for any purpose is hereby granted without fee, | 
					
						
							|  |  |  |  * provided that the above copyright notice appear in all copies and | 
					
						
							|  |  |  |  * that both that copyright notice and this permission notice appear | 
					
						
							|  |  |  |  * in supporting documentation.  Erwin Coumans makes no | 
					
						
							|  |  |  |  * representations about the suitability of this software for any | 
					
						
							|  |  |  |  * purpose.  It is provided "as is" without express or implied warranty. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-12 16:55:33 +02:00
										 |  |  | /** \file EXP_StringValue.h
 | 
					
						
							| 
									
										
										
										
											2011-02-22 10:33:14 +00:00
										 |  |  |  *  \ingroup expressions | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-12 16:55:33 +02:00
										 |  |  | #ifndef __EXP_STRINGVALUE_H__
 | 
					
						
							|  |  |  | #define __EXP_STRINGVALUE_H__
 | 
					
						
							| 
									
										
										
										
											2002-10-12 11:37:38 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-12 16:55:33 +02:00
										 |  |  | #include "EXP_Value.h"
 | 
					
						
							| 
									
										
										
										
											2002-10-12 11:37:38 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class CStringValue : public CPropValue   | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	 | 
					
						
							| 
									
										
										
										
											2012-09-16 04:58:18 +00:00
										 |  |  | 	//PLUGIN_DECLARE_SERIAL(CStringValue,CValue)
 | 
					
						
							| 
									
										
										
										
											2002-10-12 11:37:38 +00:00
										 |  |  | public: | 
					
						
							|  |  |  | 	/// Construction / destruction
 | 
					
						
							|  |  |  | 	CStringValue(); | 
					
						
							| 
									
										
										
										
											2012-08-11 22:12:32 +00:00
										 |  |  | 	CStringValue(const char *txt, const char *name, AllocationTYPE alloctype = CValue::HEAPVALUE); | 
					
						
							| 
									
										
										
										
											2002-10-12 11:37:38 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-03 14:09:18 +00:00
										 |  |  | 	virtual ~CStringValue() {} | 
					
						
							| 
									
										
										
										
											2002-10-12 11:37:38 +00:00
										 |  |  | 	/// CValue implementation
 | 
					
						
							|  |  |  | 	virtual bool		IsEqual(const STR_String & other); | 
					
						
							|  |  |  | 	virtual const STR_String &	GetText(); | 
					
						
							| 
									
										
										
										
											2009-04-20 15:06:46 +00:00
										 |  |  | 	virtual double		GetNumber(); | 
					
						
							| 
									
										
										
										
											2014-06-03 13:20:59 -07:00
										 |  |  | 	virtual int			GetValueType(); | 
					
						
							| 
									
										
										
										
											2002-10-12 11:37:38 +00:00
										 |  |  | 	 | 
					
						
							|  |  |  | 	virtual	CValue*		Calc(VALUE_OPERATOR op, CValue *val); | 
					
						
							|  |  |  | 	virtual	CValue*		CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val); | 
					
						
							| 
									
										
										
										
											2011-11-03 14:09:18 +00:00
										 |  |  | 	virtual void		SetValue(CValue* newval) { 	m_strString = newval->GetText(); SetModified(true);	} | 
					
						
							| 
									
										
										
										
											2002-10-12 11:37:38 +00:00
										 |  |  | 	virtual CValue*		GetReplica(); | 
					
						
							| 
									
										
										
										
											2010-10-31 04:11:39 +00:00
										 |  |  | #ifdef WITH_PYTHON
 | 
					
						
							| 
									
										
										
										
											2002-10-12 11:37:38 +00:00
										 |  |  | 	virtual PyObject*	ConvertValueToPython() { | 
					
						
							| 
									
										
										
										
											2011-12-30 12:44:16 +00:00
										 |  |  | 		return PyUnicode_From_STR_String(m_strString); | 
					
						
							| 
									
										
										
										
											2002-10-12 11:37:38 +00:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2012-10-09 13:36:42 +00:00
										 |  |  | #endif  /* WITH_PYTHON */
 | 
					
						
							| 
									
										
										
										
											2002-10-12 11:37:38 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  | 	// data member
 | 
					
						
							|  |  |  | 	STR_String				m_strString; | 
					
						
							| 
									
										
										
										
											2009-08-18 15:37:31 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef WITH_CXX_GUARDEDALLOC
 | 
					
						
							| 
									
										
										
										
											2012-06-25 09:14:37 +00:00
										 |  |  | 	MEM_CXX_CLASS_ALLOC_FUNCS("GE:CStringValue") | 
					
						
							| 
									
										
										
										
											2009-08-18 15:37:31 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2002-10-12 11:37:38 +00:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-12 16:55:33 +02:00
										 |  |  | #endif  /* __EXP_STRINGVALUE_H__ */
 |