aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/bfc/named.h
blob: 6aa64d945d6d450d123bba7a16bbc8df067810b8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef _NAMED_H
#define _NAMED_H

#include <bfc/common.h>
#include <bfc/string/StringW.h>

class NOVTABLE NamedW
{
public:
  NamedW(const wchar_t *initial_name=NULL) : name(initial_name) {}
  virtual ~NamedW() {}	// placeholder to ensure name is destructed properly
  const wchar_t *getName() const { return name; }
  const wchar_t *getNameSafe(const wchar_t *defval=NULL) const {
    const wchar_t *str = name;
    return str ? str : (defval ? defval : L"(null)");
  }
  void setName(const wchar_t *newname) { if (name.isequal(newname)) return; name = newname; onSetName(); }
  // override this to catch name settings
  virtual void onSetName() {}

private:
  StringW name;
};

#endif