Guest User

Untitled

a guest
Jan 19th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. horz :: !AlignV ![Text] -> Text
  2. horz a lt = mergHori (map (alignHori max a) lt)
  3. where
  4. max = maxList [snd(sizeOf x) \\ x <- lt]
  5.  
  6. alignHori :: Int AlignV Text -> Text
  7. alignHori m TopV ct = ct ++ iterat (numberLines m ct) (makeEmptyRow (fst(sizeOf ct)))
  8. alignHori m CenterV ct = iterat ((numberLines m ct)/2) (makeEmptyRow (fst(sizeOf ct))) ++ ct ++ iterat ((numberLines m ct)/2) (makeEmptyRow (fst(sizeOf ct)))
  9. alignHori m BottomV ct = iterat (numberLines m ct) (makeEmptyRow (fst(sizeOf ct))) ++ ct
  10.  
  11. makeEmptyRow :: Int -> [Char]
  12. makeEmptyRow 1 = [' ']
  13. makeEmptyRow n = [' ':makeEmptyRow (n-1)]
  14.  
  15. numberLines :: Int Text -> Int
  16. numberLines m ct = (m-(snd(sizeOf ct)))
  17.  
  18. mergHori :: [Text] -> Text
  19. mergHori [] = zero
  20. mergHori [x:xs] = pasteTextH x (mergHori xs)
  21.  
  22. pasteTextH :: Text Text -> Text
  23. pasteTextH t1 [] = t1
  24. pasteTextH t1 t2 = [x1 ++ x2 \\ x1 <- t1 & x2 <-t2]
Add Comment
Please, Sign In to add comment