#ifndef _MAINWINDOW_H
#define _MAINWINDOW_H

#include <stdio.h>
#include <stdlib.h>
#include <Vk/VkSimpleWindow.h>
#include "Camera.h"
#include "AlarmText.h"
#include "AlarmedText.h"
#include "AlarmDetector.h"

class MainPage : public DmGuiObject {

public:

  MainPage(const char *name, Widget parent, 
	   const char *dmPrefix);

  ~MainPage();

  virtual const char* className()
  {
    return "MainPage";
  }

  virtual void updateFromPeer(DmGuiObject *peer, XtPointer clientData);

protected:

  Camera *_camera;

  DmInt16Object *_dmTemperature;
  DmNat16Object *_dmHumidity;
  AlarmedInt16Text *_temperature;
  AlarmedNat16Text *_humidity;
  AlarmText *_water;

  int _prevTemperatureAlarmValue;
  int _prevHumidityAlarmValue;

  AlarmDetector *_temperatureAlarmDetector;
  AlarmDetector *_humidityAlarmDetector;
  AlarmDetector *_waterAlarmDetector;
};


class MainWindow: public VkSimpleWindow {

public:

  MainWindow (const char *name, const char *systemName);
  
  ~MainWindow ();
  
  virtual const char* className()
  {
    return "MainWindow";
  }

protected:

  MainPage *_mainPage;
};


#endif

