/*------------------------------------------------------------------------------
 src/bin/djview/prefsDialog.h

 Copyright (c) 2004-2006 Darby Johnston.
 All rights reserved.
 Use is subject to license terms.
------------------------------------------------------------------------------*/

#ifndef DJVIEW_PREFS_DIALOG_H
#define DJVIEW_PREFS_DIALOG_H
#include "base.h"
#include <djEnumWidget.h>
#include <djDialog.h>

namespace dj {
class CheckButtonWidget;
class IntWidget;
class ColorWidget;
};

namespace djview {

// Preferences dialog.
//
class PrefsDialog : public DialogBase {
public:
  
  PrefsDialog();
  
  void widgetUpdate();

private:

  DJ_CALLBACK(PrefsDialog, imageCacheCallback, int)
  DJ_CALLBACK(PrefsDialog, imageCacheEnabledCallback, bool)
  
  DJ_CALLBACK(PrefsDialog, filePixelFormatCallback, int)
  DJ_CALLBACK(PrefsDialog, filePixelTypeCallback, int)
  
  DJ_CALLBACK(PrefsDialog, windowFileFitCallback, bool)
  DJ_CALLBACK(PrefsDialog, windowFullscreenFitCallback, bool)
  
  DJ_CALLBACK(PrefsDialog, viewBgCallback, const Color &)
  
  DJ_CALLBACK(PrefsDialog, playbackFileCallback, bool)
  DJ_CALLBACK(PrefsDialog, playbackFileSpeedCallback, bool)
  DJ_CALLBACK(PrefsDialog, playbackEveryFrameCallback, bool)
  
  DJ_CALLBACK(PrefsDialog, miscTooltipsCallback, bool)
  
  DJ_CALLBACK(PrefsDialog, closeCallback, bool)

  IntWidget * _imageCacheWidget;
  CheckButtonWidget * _imageCacheEnabledWidget;
  EnumWidget<int> * _filePixelFormatWidget, * _filePixelTypeWidget;
  CheckButtonWidget * _windowFileFitWidget, * _windowFullscreenFitWidget;
  ColorWidget * _viewBgWidget;
  CheckButtonWidget * _playbackFileWidget, * _playbackFileSpeedWidget,
    * _playbackEveryFrameWidget;
  CheckButtonWidget * _miscTooltipsWidget;
};

}

#endif
