1:/*
   2: * Programmins graphical user interfaces
   3: * Example: Observable.h
   4: * Jarkko Leponiemi 2003
   5: */
   6:#pragma once
   7:
   8:#include "Observer.h"
   9:
  10:class Observable
  11:{
  12:public:
  13:  Observable();
  14:  ~Observable();
  15:
  16:  void AddObserver(ObserverPtr o);
  17:  void RemoveObserver(ObserverPtr o);
  18:
  19:protected:
  20:  void NotifyObservers(int type, void *args);
  21:
  22:private:
  23:  int obs_num;
  24:  ObserverPtr *observers;
  25:};