/*******************************************************************************
* Copyright (c) 2013 "Filippo Scognamiglio"
* https://github.com/Swordfish90/cool-retro-term
*
* This file is part of cool-retro-term.
*
* cool-retro-term 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 <http://www.gnu.org/licenses/>.
*******************************************************************************/

import QtQuick 2.2

QtObject{
    property int selectedFontIndex
    property real scaling
    property var source: fontlist.get(selectedFontIndex).source
    property var _font: fontlist.get(selectedFontIndex)
    property int pixelSize: _font.pixelSize * scaling
    property int lineSpacing: pixelSize * _font.lineSpacing
    property real screenScaling: 1.0
    property real defaultFontWidth: fontlist.get(selectedFontIndex).fontWidth

    //In this configuration lineSpacing is proportional to pixelSize.

    property ListModel fontlist: ListModel{
        ListElement{
            name: "HERMIT"
            text: "Hermit (Modern)"
            source: "fonts/modern-hermit/Hermit-medium.otf"
            lineSpacing: 0.05
            pixelSize: 28
            fontWidth: 1.0
        }
        ListElement{
            name: "TERMINUS"
            text: "Terminus (Modern)"
            source: "fonts/modern-terminus/TerminusTTF-4.38.2.ttf"
            lineSpacing: 0.1
            pixelSize: 35
            fontWidth: 1.0
        }
        ListElement{
            name: "ENVY_CODE_R"
            text: "Envy Code R (Modern)"
            source: "fonts/modern-envy-code-r/Envy Code R.ttf"
            lineSpacing: 0.1
            pixelSize: 30
            fontWidth: 1.0
        }
        ListElement{
            name: "PRO_FONT"
            text: "Pro Font (Modern)"
            source: "fonts/modern-pro-font-win-tweaked/ProFontWindows.ttf"
            lineSpacing: 0.1
            pixelSize: 35
            fontWidth: 1.0
        }
        ListElement{
            name: "MONACO"
            text: "Monaco (Modern)"
            source: "fonts/modern-monaco/monaco.ttf"
            lineSpacing: 0.1
            pixelSize: 30
            fontWidth: 1.0
        }
        ListElement{
            name: "INCONSOLATA"
            text: "Inconsolata (Modern)"
            source: "fonts/modern-inconsolata/Inconsolata.otf"
            lineSpacing: 0.1
            pixelSize: 35
            fontWidth: 1.0
        }
        ListElement{
            name: "COMMODORE_PET"
            text: "Commodore PET (1977)"
            source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
            lineSpacing: 0.2
            pixelSize: 26
            fontWidth: 0.7
        }
        ListElement{
            name: "APPLE_II"
            text: "Apple ][ (1977)"
            source: "fonts/1977-apple2/PrintChar21.ttf"
            lineSpacing: 0.2
            pixelSize: 26
            fontWidth: 0.8
        }
        ListElement{
            name: "ATARI_400"
            text: "Atari 400-800 (1979)"
            source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
            lineSpacing: 0.3
            pixelSize: 26
            fontWidth: 0.7
        }
        ListElement{
            name: "COMMODORE_64"
            text: "Commodore 64 (1982)"
            source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf"
            lineSpacing: 0.3
            pixelSize: 26
            fontWidth: 0.7
        }
        ListElement{
            name: "ATARI_ST"
            text: "Atari ST (1985)"
            source: "fonts/1985-atari-st/AtariST8x16SystemFont.ttf"
            lineSpacing: 0.2
            pixelSize: 32
            fontWidth: 1.0
        }
        ListElement{
            name: "IBM_DOS"
            text: "IBM DOS (1985)"
            source: "fonts/1985-ibm-pc-vga/Perfect DOS VGA 437 Win.ttf"
            lineSpacing: 0.2
            pixelSize: 32
            fontWidth: 1.0
        }
        ListElement{
            name: "IBM_3278"
            text: "IBM 3278 (1971)"
            source: "fonts/1971-ibm-3278/3270Medium.ttf"
            lineSpacing: 0.2
            pixelSize: 32
            fontWidth: 1.0
        }
    }
}