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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
/* (C) Marcin Kwadrans <quarter@users.sourceforge.net> */
/*! \file symbol.h
\brief Zarządzanie symbolami
*/
#ifndef __LW_SYMBOL_H
#define __LW_SYMBOL_H
class LWPiece;
/*! \class LWSymbol
\brief Zarządzanie symbol
Symbol to klasa z której dziedziczą polecenia oraz zmienne, które
są przypisane klockom znajdującym się na planszy
*/
class LWSymbol {
private:
guint id;
GQuark quark;
static GData *datalist_symbols;
static GData *datalist_symbols_with_id;
public:
LWSymbol();
virtual ~LWSymbol();
LWSymbol *clone ();
guint getId ();
virtual gboolean canClone () = 0;
virtual gchar *getHint () = 0;
virtual const gchar *getName () = 0;
virtual gboolean isCommand ();
virtual gboolean isValue ();
virtual void onDndCopy (LWPiece *sourcepiece, LWPiece *destpiece);
virtual void onDndMove (LWPiece *sourcepiece, LWPiece *destpiece);
virtual void onAttach (LWPiece *piece);
static LWSymbol *factory (const gchar *name);
static LWSymbol *factoryId (const gchar *name, guint id);
static void destroyAll ();
};
#endif
|