summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battlemap/src/Model.elm6
-rw-r--r--src/battlemap/src/Model/RequestDirection.elm4
-rw-r--r--src/battlemap/src/Shim/Model.elm4
-rw-r--r--src/battlemap/src/UI.elm36
-rw-r--r--src/battlemap/src/Update.elm6
-rw-r--r--src/battlemap/src/View.elm6
6 files changed, 51 insertions, 11 deletions
diff --git a/src/battlemap/src/Model.elm b/src/battlemap/src/Model.elm
index 160e8cc..3b65f49 100644
--- a/src/battlemap/src/Model.elm
+++ b/src/battlemap/src/Model.elm
@@ -14,6 +14,8 @@ import Dict
import Battlemap
import Battlemap.Location
+import UI
+
import Error
import Character
@@ -36,7 +38,7 @@ type alias Type =
characters: (Dict.Dict Character.Ref Character.Type),
error: (Maybe Error.Type),
selection: Selection,
- ui_scale: Float
+ ui: UI.Type
}
get_state : Type -> State
@@ -50,7 +52,7 @@ reset model characters =
characters = characters,
error = Nothing,
selection = None,
- ui_scale = model.ui_scale -- TODO: move this into its own module.
+ ui = model.ui
}
invalidate : Type -> Error.Type -> Type
diff --git a/src/battlemap/src/Model/RequestDirection.elm b/src/battlemap/src/Model/RequestDirection.elm
index 44c4225..a8bdce5 100644
--- a/src/battlemap/src/Model/RequestDirection.elm
+++ b/src/battlemap/src/Model/RequestDirection.elm
@@ -4,10 +4,6 @@ import Dict
import Battlemap
import Battlemap.Direction
-import Battlemap.Location
-
-
-import Character
import Model
import Error
diff --git a/src/battlemap/src/Shim/Model.elm b/src/battlemap/src/Shim/Model.elm
index d9bd280..5169d23 100644
--- a/src/battlemap/src/Shim/Model.elm
+++ b/src/battlemap/src/Shim/Model.elm
@@ -2,6 +2,8 @@ module Shim.Model exposing (generate)
import Dict
+import UI
+
import Model
import Shim.Battlemap
@@ -51,5 +53,5 @@ generate =
)
)
),
- ui_scale = 1.0
+ ui = (UI.default)
}
diff --git a/src/battlemap/src/UI.elm b/src/battlemap/src/UI.elm
new file mode 100644
index 0000000..5e0718e
--- /dev/null
+++ b/src/battlemap/src/UI.elm
@@ -0,0 +1,36 @@
+module UI exposing
+ (
+ Type,
+ Tab(..),
+ default,
+ get_zoom_level,
+ reset_zoom_level,
+ mod_zoom_level
+ )
+
+type alias Type =
+ {
+ zoom_level : Float,
+ show_manual_controls : Bool
+ }
+
+type Tab =
+ NoTab
+ | StatusTab
+ | SettingsTab
+
+default : Type
+default =
+ {
+ zoom_level = 1.0,
+ show_manual_controls = True
+ }
+
+get_zoom_level : Type -> Float
+get_zoom_level ui = ui.zoom_level
+
+reset_zoom_level : Type -> Type
+reset_zoom_level ui = {ui | zoom_level = 1.0}
+
+mod_zoom_level : Type -> Float -> Type
+mod_zoom_level ui mod = {ui | zoom_level = (mod * ui.zoom_level)}
diff --git a/src/battlemap/src/Update.elm b/src/battlemap/src/Update.elm
index 754f7d4..6466ddf 100644
--- a/src/battlemap/src/Update.elm
+++ b/src/battlemap/src/Update.elm
@@ -2,6 +2,8 @@ module Update exposing (update)
import Event
+import UI
+
import Model
import Model.RequestDirection
import Model.SelectTile
@@ -29,6 +31,6 @@ update event model =
(Event.ScaleChangeRequested mod) ->
if (mod == 0.0)
then
- ({model | ui_scale = 1.0}, Cmd.none)
+ ({model | ui = (UI.reset_zoom_level model.ui)}, Cmd.none)
else
- ({model | ui_scale = (mod * model.ui_scale)}, Cmd.none)
+ ({model | ui = (UI.mod_zoom_level model.ui mod)}, Cmd.none)
diff --git a/src/battlemap/src/View.elm b/src/battlemap/src/View.elm
index 22b617b..1b84971 100644
--- a/src/battlemap/src/View.elm
+++ b/src/battlemap/src/View.elm
@@ -1,11 +1,13 @@
module View exposing (view)
import Dict
+
import Html
import Html.Attributes
-import View.Battlemap
+import UI
+import View.Battlemap
import View.Controls
import View.Status
@@ -32,7 +34,7 @@ view model =
[
(View.Battlemap.get_html
model.battlemap
- model.ui_scale
+ (UI.get_zoom_level model.ui)
(Dict.values model.characters)
)
]