Skip to content

Instantly share code, notes, and snippets.

@dela3499
Created September 1, 2015 04:15
Show Gist options
  • Save dela3499/d0ae1de18bfaa2970385 to your computer and use it in GitHub Desktop.
Save dela3499/d0ae1de18bfaa2970385 to your computer and use it in GitHub Desktop.
Mobile version of Pubmed Explorer
import Signal
import Graphics.Element exposing (..)
import Color exposing (..)
import Mouse
import Window
import Text
type alias Model =
{ titles: List String
, accepted: List Int
, rejected: List Int
, undecided: List Int
, windowSize: (Int, Int)
}
view: Model -> Element
view model =
flow down
[ status model
, title model
, metadata model
]
status: Model -> Element
status model =
let (w, h) = model.windowSize
headerText =
"12m elapsed | 19m remaining | 45% complete"
|> Text.fromString
|> Text.height 15
|> Text.color black
|> centered
progressBarWidth =
w - (widthOf headerText)
in
flow right
[ spacer progressBarWidth 30
|> color blue
, headerText
]
--container w 30 middle empty
-- |> color blue
title: Model -> Element
title model =
let (w, h) = model.windowSize
myText =
"This is a title."
|> Text.fromString
|> Text.height 20
|> Text.color white
|> leftAligned
in
container w (h - 60) middle myText
|> color red
metadata: Model -> Element
metadata model =
let (w, h) = model.windowSize
in
spacer w 30
|> color yellow
model0 =
{ titles = [""]
, accepted = []
, rejected = []
, undecided = []
, windowSize = (0,0)
}
model: Signal Model
model =
Signal.map
(\pos -> { model0 | windowSize <- pos })
Window.dimensions
myText =
"This is a title."
|> Text.fromString
|> Text.height 30
|> Text.color black
|> leftAligned
|> sizeOf
main = Signal.map view model
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment