20#ifndef INCLUDED_BASIC_SBXVAR_HXX
21#define INCLUDED_BASIC_SBXVAR_HXX
23#include <rtl/character.hxx>
24#include <rtl/ustring.hxx>
27#include <com/sun/star/uno/XInterface.hpp>
28#include <com/sun/star/uno/Reference.hxx>
88 auto const p =
static_cast<void *
>(
this);
113 virtual void Clear()
override;
114 virtual bool IsFixed()
const override;
127 bool IsNumericRTL()
const;
128 bool ImpIsNumeric(
bool bOnlyIntntl )
const;
154 const OUString& GetCoreString()
const;
166 void PutDate(
double );
167 bool PutBool(
bool );
168 void PutErr( sal_uInt16 );
169 void PutStringExt(
const OUString& );
172 bool PutString(
const OUString& );
181 void PutDecimal( css::bridge::oleautomation::Decimal
const & rAutomationDec );
183 void fillAutomationDecimal( css::bridge::oleautomation::Decimal& rAutomationDec )
const;
186 static ErrCode ScanNumIntnl(
const OUString& rSrc,
double& nVal,
bool bSingle =
false );
193 bool Scan(
const OUString&, sal_uInt16* );
194 void Format( OUString&,
const OUString* =
nullptr )
const;
200 inline bool operator <=(
const SbxValue& )
const;
201 inline bool operator >=(
const SbxValue& )
const;
239class SbxVariableImpl;
271 void SetName(
const OUString& );
302 void SetComListener(
const css::uno::Reference< css::uno::XInterface >& xComListener,
310 const auto first6 =
aName.substr(0, 6);
311 for (
const auto& c : first6)
313 if (!rtl::isAscii(c))
315 n =
static_cast<sal_uInt16
>((
n << 3) + rtl::toAsciiUpperCase(c));
virtual SbxInfo * GetInfo() override
virtual void Broadcast(SfxHintId nHintId) override
virtual bool IsFixed() const
SbxBase & operator=(const SbxBase &)
virtual bool LoadData(SvStream &, sal_uInt16)=0
virtual void SetModified(bool)
virtual std::pair< bool, sal_uInt32 > StoreData(SvStream &) const =0
virtual SbxDataType GetType() const
virtual void SetParent(SbxObject *p) override
SbxEnsureParentVariable(const SbxVariable &r)
virtual SbxClassType GetClass() const override
sal_Unicode GetChar() const
sal_uInt32 GetULong() const
bool Compute(SbxOperator, const SbxValue &)
bool Compare(SbxOperator, const SbxValue &) const
SbxValue & operator+=(const SbxValue &)
SbxBase * GetObject() const
SbxDataType GetFullType() const
SBX_DECL_PERSIST_NODATA(SBXID_VALUE, 1)
bool PutULong(sal_uInt32)
sal_uInt64 GetUInt64() const
bool PutCurrency(sal_Int64)
SbxValue & operator/=(const SbxValue &)
sal_uInt8 GetByte() const
bool PutInteger(sal_Int16)
const SbxValues & GetValues_Impl() const
SbxValue & operator-=(const SbxValue &)
SbxDecimal * GetDecimal() const
bool PutObject(SbxBase *)
bool operator>=(const SbxValue &) const
sal_Int64 GetInt64() const
sal_Int32 GetLong() const
sal_Int16 GetInteger() const
bool operator<=(const SbxValue &) const
bool PutUShort(sal_uInt16)
bool PutDecimal(SbxDecimal *pDecimal)
sal_uInt16 GetUShort() const
SbxValue & operator*=(const SbxValue &)
bool PutChar(sal_Unicode)
bool PutUInt64(sal_uInt64)
sal_Int64 GetCurrency() const
const SbxObject * GetParent() const
void SetUserData(sal_uInt32 n)
StarBASIC * m_pComListenerParentBasic
const OUString & GetDeclareClassName() const
SfxBroadcaster & GetBroadcaster()
void SetName(const OUString &)
virtual ~SbxVariable() override
void SetParameters(SbxArray *p)
SbxArray * GetParameters() const
void Dump(SvStream &, bool bDumpAll)
const OUString & GetName(SbxNameType=SbxNameType::NONE) const
css::uno::Reference< css::uno::XInterface > m_xComListener
sal_uInt32 GetUserData() const
std::unique_ptr< SfxBroadcaster > mpBroadcaster
void SetDeclareClassName(const OUString &)
static constexpr sal_uInt16 MakeHashCode(std::u16string_view aName)
void SetComListener(const css::uno::Reference< css::uno::XInterface > &xComListener, StarBASIC *pParentBasic)
bool IsBroadcaster() const
static OUString NameToCaseInsensitiveName(const OUString &rName)
virtual void SetParent(SbxObject *)
sal_uInt16 GetHashCode() const
OUString m_aDeclareClassName
SBX_DECL_PERSIST_NODATA(SBXID_VARIABLE, 2)
SVXCORE_DLLPUBLIC MSO_SPT Get(const OUString &)
constexpr OUStringLiteral aData
bool IsNumeric(std::u16string_view rText)
constexpr auto SBXID_VARIABLE
constexpr auto SBXID_VALUE
tools::SvRef< SbxArray > SbxArrayRef
tools::SvRef< SbxVariable > SbxVariableRef
tools::SvRef< SbxInfo > SbxInfoRef
tools::SvRef< SbxObject > SbxObjectRef
void clear(SbxDataType type)
SbxValues(double _nDouble)
OUString GetOUString(CFStringRef)