{-# LANGUAGE ImportQualifiedPost #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}

module Control.Moffy.Samples.View where

import Foreign.C.Types
import Data.ByteString qualified as BS
import Data.Text qualified as T
import Data.Color

data View
	= View [View1]
	| Stopped
	deriving Int -> View -> ShowS
[View] -> ShowS
View -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [View] -> ShowS
$cshowList :: [View] -> ShowS
show :: View -> String
$cshow :: View -> String
showsPrec :: Int -> View -> ShowS
$cshowsPrec :: Int -> View -> ShowS
Show

data View1
	= Box { View1 -> Point
leftUp :: Point, View1 -> Point
rightDown :: Point, View1 -> Rgb Double
color :: Rgb Double }
	| VLine (Rgb Double) LineWidth Point Point
	| VText (Rgb Double) FontName' FontSize' Position' T.Text
	| VImage Position' Double Double BS.ByteString
	| NotImplemented
	deriving Int -> View1 -> ShowS
[View1] -> ShowS
View1 -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [View1] -> ShowS
$cshowList :: [View1] -> ShowS
show :: View1 -> String
$cshow :: View1 -> String
showsPrec :: Int -> View1 -> ShowS
$cshowsPrec :: Int -> View1 -> ShowS
Show

type LineWidth = Double
type Point = (Double, Double)

type FontName' = String
type FontSize' = Double
type Position' = (Double, Double)