/* Do not edit this file. It was automatically genarated. */

#ifndef HEADER_DisplayOptionsPanel
#define HEADER_DisplayOptionsPanel


#include "Panel.h"
#include "CheckItem.h"
#include "Settings.h"
#include "ScreenManager.h"

#include "debug.h"
#include <assert.h>


typedef struct DisplayOptionsPanel_ {
   Panel super;

   Settings* settings;
   ScreenManager* scr;
} DisplayOptionsPanel;


DisplayOptionsPanel* DisplayOptionsPanel_new(Settings* settings, ScreenManager* scr);

void DisplayOptionsPanel_delete(Object* object);

HandlerResult DisplayOptionsPanel_EventHandler(Panel* super, int ch);


#endif
