/***************************************************************************
 * optionsscore.h: implementation of OptionsScore 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 OPTIONSSCORE_H
#define OPTIONSSCORE_H

#include <KConfig>
#include <QWidget>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>

#include "optionspage.h"

/**
	The OptionScore class. This class creates a widget inside this widget
	the user can configure the score options.
*/
class OptionsScore: public OptionsPage {
	Q_OBJECT
public:
	/**
		Construct the score widget.
		The constructor creates the widget and inits the parent (optionPage). Here is 
		the list of the score options :
			title font, subtitle font, text font, time signature font.
		@param config config is used to read and write the KTabEdit config file.
		@param parent the widget parent
		@param name the widget name
	*/
	OptionsScore(KConfig* config, QWidget* parent);
	
	/**
		Called when the user click on the Apply button.
		The score 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 slots:
	void title();
	void subTitle();
	void textAndTab();
	void timeSignature();
	
private:
	QLabel mTitleLabel;
	QLineEdit mTitleText;
	QPushButton mTitleButton;
	
	QLabel mSubTitleLabel;
	QLineEdit mSubTitleText;
	QPushButton mSubTitleButton;
	
	QLabel mTextAndTabLabel;
	QLineEdit mTextAndTabText;
	QPushButton mTextAndTabButton;
	
	QLabel mTimeSignatureLabel;
	QLineEdit mTimeSignatureText;
	QPushButton mTimeSignatureButton;
	
	QVBoxLayout mScoreLayout;
	
	QHBoxLayout mTitleLayout;
	QHBoxLayout mSubTitleLayout;
	QHBoxLayout mTextAndTabLayout;
	QHBoxLayout mTimeSignatureLayout;
};

#endif
