/***************************************************************************
 * optionsmelodyeditor.h: implementation of OptionsMelodyEditor class
 *
 * This file is part of KTabEdit, a KDE tabulature editor
 *
 * copyright (C) 2003-2006 the KTabEdit development team <mrgwen@gmail.com>
 * copyright (C) 2002-2003 the KGuitar development team <mrgwen@gmail.com>
 ***************************************************************************/

/***************************************************************************
 * 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.
 *
 * See the file COPYING for more information.
 ***************************************************************************/

#ifndef OPTIONSMELODYEDITOR_H
#define OPTIONSMELODYEDITOR_H

#include <KConfig>
#include <QWidget>
#include <QVBoxLayout>
#include <QVector>
#include <QRadioButton>
#include <QComboBox>
#include <QCheckBox>

#include "optionspage.h"

/**
	The OptionsMelodyEditor class.  This class create the user interface
	for the melody editor configuration, the user can choose the wood texture,
	and see the size, ....
*/
class OptionsMelodyEditor: public OptionsPage {
	Q_OBJECT
public:
	/**
		Construct the melody editor widget.
		The constructor creates the widget and inits the parent (optionPage). Here are the
		melody editor options :
			wood texture, design, click action.
		@param config config is used to read and write the KTabEdit config file
		@param parent the widget parent
		@param name the widget name
	*/
	OptionsMelodyEditor(KConfig* config, QWidget* parent);
	
	/**
		Called when the user click on the Apply button.
		The timidity configuration is written on the KTabEdit config file.
	*/
	virtual void applyBtnClicked();
	
	/**
		Called when the user click on the Default button.
		It does nothing.
	*/
	virtual void defaultBtnClicked();

private:
	QVBoxLayout* mInlayGroup;
	QVBoxLayout* mWoodGroup;
	QVector<QRadioButton*> mInlay;
	QVector<QRadioButton*> mWood;
	QVector<QComboBox*> mMouseAction;
	QVector<QCheckBox*> mMouseAdvance;
};

#endif
