/*  This file is part of Winyl Player source code.
    Copyright (C) 2008-2018, Alex Kras. <winylplayer@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 3 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, see <https://www.gnu.org/licenses/>.
*/

#pragma once

#include "DialogEx.h"
#include "WindowEx.h"
#include "Language.h"
#include "Properties.h"
#include "ExImage.h"

class DlgPageCover : public DialogEx
{
friend class DlgProperties;

public:
	DlgPageCover();
	virtual ~DlgPageCover();

	inline void SetLanguage(Language* language) {lang = language;}
	inline void SetProperties(std::unique_ptr<Properties>* prop) {properties = prop;}

	inline void SetSaveCoverTags(bool save) {isSaveCoverTags = save;}
	inline void SetSaveCoverFile(bool save) {isSaveCoverFile = save;}
	inline bool IsSaveCoverTags() {return isSaveCoverTags;}
	inline bool IsSaveCoverFile() {return isSaveCoverFile;}

private:
	void Save();
	void SaveOptions();
	void LoadCover();
	void SetUnloaded() {isLoaded = false;}
	void LoadNewCover(const std::wstring& file);
	void Reset();

	bool isLoaded = false;

	Language* lang = nullptr;
	std::unique_ptr<Properties>* properties;

	ExImage image;

	bool isSaveCoverTags = false;
	bool isSaveCoverFile = false;

private: // Messages
	INT_PTR DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) override;
	void OnInitDialog();
	void OnBnClickedCoverLoad();
	void OnBnClickedCoverGoogle();
	void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
};

