/***************************************************************************
 * optionguitest.h
 *
 * This file is part of KTabEdit, a KDE tabulature editor
 *
 * copyright (C) 2004-2007 the KTabEdit 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 ASSISTANTGUITEST_H
#define ASSISTANTGUITEST_H

#include <QtTest>
#include <QtCore>

#include "src/header.h"

class Settings {
public:
	/*!
		Cached configuration access variable
	*/
	static KConfig *config;
	
	/*!
		Returns name of note in currently selected note naming
		convention.
	*/
	static QString noteName(int) { return ""; };
	
	/*!
		Returns name of maj7 step as stated in currently selected
		naming convertion.
	*/
	static QString maj7Name() { return ""; };
	
	/*!
		Returns symbol to represent flats as stated in currently
		selected naming convertion.
	*/
	static QString flatName() { return ""; };
	
	/*!
		Returns symbol to represent sharps as stated in currently
		selected naming convertion.
	*/
	static QString sharpName() { return ""; };
	
	/*!
		Global MIDI port selected for output.
	*/
	static QString midiName() { return ""; };
	
	/*!
		Global MIDI port selected for output.
	*/
	static QString midiPort() { return ""; };
	
	/*!
		Global MIDI port selected for output.
		\return 0 if there is no midi configuration
	*/
	static int midiPortNumber() { return 0; };
	
	/*!
		Global MIDI port selected for output.
	*/
	static bool midiReadable() { return false; };
	
	/*!
		Global MIDI port selected for output.
	*/
	static bool midiWriteable() { return false; };
	
	/*!
		Global MIDI port selected for output.
	*/
	static bool midiTimidity() { return false; };
	
	/*!
		MusiXTeX settings
	*/
	static int texTabSize() { return 0; };
	
	/*!
		I DON'T KNOW
	*/
	static bool texShowBarNumber() { return false; };
	
	/*!
		I DON'T KNOW
	*/
	static bool texShowStr() { return false; };
	
	/*!
		I DON'T KNOW
	*/
	static bool texShowPageNumber() { return false; };
	
	/*!
		I DON'T KNOW
	*/
	static bool texExportMode() { return false; };
	
	/*!
		Printing style
	*/
	static int printingStyle() { return 1; };
	
	/*!
		Melody editor
	*/
	static int melodyEditorInlay() { return 1; };
	
	/*!
		Action code for melody editor button num pressed.
	*/
	static int melodyEditorAction(int num) { return 1; };
	
	/*!
		Need to advance for melody editor button num pressed.
	*/
	static bool melodyEditorAdvance(int num) { return false; };
	
	static QString timidityPath() { return ""; };
	static int timidityBuffer() { return 1; };
	static int timidityFragment() { return 1; };
	static QString timidityOutput() { return ""; };
	static QString timidityChorus() { return ""; };
	static QString timidityDelay() { return ""; };
	static QString timidityReverb() { return ""; };
	static QString timidityVlpf() { return ""; };
	static int timidityNoise() { return 1; };
	static QString timidityResamp() { return ""; };
	static int timidityFrequency() { return 1; };
	static bool timidityRealTimeEnable() { return false; };
	static int timidityRealTime() { return 1; };
	
	/*
		True if the assistant was launched
	*/
	static bool assistant() { return false; };
	
	/*
		Font settings
	*/
	static QString titleFont() { return ""; };
	static QFont::Weight titleWeight() { return QFont::Light; };
	static bool titleItalic() { return false; };
	static int titleSize() { return 1; };
	
	static QString subTitleFont() { return ""; };
	static QFont::Weight subTitleWeight() { return QFont::Light; };
	static bool subTitleItalic() { return false; };
	static int subTitleSize() { return 1; };
	
	static QString textAndTabFont() { return ""; };
	static QFont::Weight textAndTabWeight() { return QFont::Light; };
	static bool textAndTabItalic() { return false; };
	static int textAndTabSize() { return 1; };
	
	static QString timeSignatureFont() { return ""; };
	static QFont::Weight timeSignatureWeight() { return QFont::Light; };
	static bool timeSignatureItalic() { return false; };
	static int timeSignatureSize() { return 1; };
	
private:
	static QString noteNames[9][12];
};

KConfig* Settings::config = 0x0;
//KConfig* Settings::config = new KConfig();

class OptionGuiTest : public QObject
{
	Q_OBJECT
private slots:
	void testAssistant();
};

#endif
