/**************************************************************************

    This file is part of explorer95, a file manager for fvwm95.
    Copyright (C) 1996, 1997 David Barth, Hector Peraza.

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

**************************************************************************/

#ifndef __OXOPTIONS_H
#define __OXOPTIONS_H


#include <xclass/OXClient.h>
#include <xclass/OXWindow.h>
#include <xclass/OXFrame.h>
#include <xclass/OXWidgets.h>
#include <xclass/OString.h>
#include <xclass/OPicture.h>
#include <xclass/utils.h>

#include "OXNewWidgets.h"
#include "main.h"


//---------------------------------------------------------------------

class OXOptionsDialog : public OXTransientFrame {
public:
  OXOptionsDialog(const OXWindow *p, const OXWindow *main,
                  unsigned long options = MAIN_FRAME | VERTICAL_FRAME);
  virtual ~OXOptionsDialog();

  virtual void CloseWindow();
  virtual int ProcessMessage(long msg, long parm1, long parm2);

protected:
  void UpdateListBox();

  //=== dialog widgets and frames:

  //--- "OK Cancel Apply" buttons:
  OXButton *Ok, *Cancel, *Apply;
  OXHorizontalFrame *bframe;
  OLayoutHints *bly, *bfly;

  //--- Tab widget:
  OXTab *tab;
  OLayoutHints *Ltab;

  //--- Tab contents:
  //--- tab 1
  OXGroupFrame *gf1;
  OXRadioButton *rad1, *rad2;
  OXLabel *lbl1, *lbl2;
  OXIcon *icon1, *icon2;
  OXHorizontalFrame *hf1, *hf2;
  OLayoutHints *Lr, *Lly, *Ily, *Gly;

  //--- tab 2
  OXGroupFrame *gf2;
  OXVerticalFrame *f3;
  OXCheckButton *chk1, *chk2, *chk3;
  OLayoutHints *L3, *L4, *L6;

  //--- tab 3
  OXHorizontalFrame *hf3, *shf1, *shf2;
  OXVerticalFrame *lf, *bf;
  OXTextButton *New, *Remove, *Edit;
  OXGroupFrame *gf3;
  OXLabel *lbl3, *lblex1, *lblex2, *lblop1, *lblop2;
  OXListBox *lbf;
  OXIcon *icf;
  OLayoutHints *lbly, *gfly, *lgf3, *lfh, *lex1,
               *nbly, *nbfly, *lshf, *lfd;

  int _NewBrowser, _DispFullPath;
};

class OXEditMimeDialog : public OXTransientFrame {
public:
  OXEditMimeDialog(const OXWindow *p, const OXWindow *main,
                   OMime *mime, int add_mode,
                   unsigned long options = MAIN_FRAME | VERTICAL_FRAME);
  virtual ~OXEditMimeDialog();
  
  virtual void CloseWindow();
  virtual int ProcessMessage(long msg, long parm1, long parm2);
  
protected:
  //=== dialog widgets and frames:
  
  //--- "OK Cancel Apply" buttons:
  OXTextButton *Ok, *Cancel, *SetIcon;
  OXHorizontalFrame *bframe;
  OLayoutHints *bly, *bfly;
  
  OXHorizontal3dLine *ln1, *ln2;
  OXIcon *icon1;
  OXLabel *lbl1, *lbl2, *lbl3, *lbl4;
  OXTextEntry *txt1, *txt2, *txt3, *txt4;
  OTextBuffer *txb1, *txb2, *txb3, *txb4;
  OXHorizontalFrame *Ihf, *hf1, *hf2, *hf3, *hf4;
  OLayoutHints *Ily, *lyl, *lyr, *lyln, *lv, *llv;

  OMime *EditingMime;
};

#endif   // __OXOPTIONS_H
