add functionality to resize window in move mode

This commit is contained in:
2025-08-09 07:17:48 +01:00
parent fa2a5c878c
commit cb9e66f349
4 changed files with 47 additions and 35 deletions

BIN
dotscape

Binary file not shown.

View File

@@ -7,6 +7,43 @@ struct
open InputMessage
open UpdateMessage
fun resizeWindow (model, width, height, dots) =
let
val
{ squares
, canvasWidth
, canvasHeight
, showGraph
, arrowX
, arrowY
, xClickPoints
, yClickPoints
, ...
} = model
val maxSide = Int.max (canvasWidth, canvasHeight)
val squares = CollisionTree.toTriangles
( width
, height
, squares
, maxSide
, canvasWidth
, canvasHeight
, xClickPoints
, yClickPoints
)
val graphLines =
if showGraph then GraphLines.generate model else Vector.fromList []
val drawMsg =
RESIZE_SQUARES_DOTS_AND_GRAPH
{squares = squares, graphLines = graphLines, dots = dots}
val drawMsg = [DRAW drawMsg]
in
(model, drawMsg)
end
fun getSaveSquaresMsg (model: app_type) =
let
val {canvasWidth, canvasHeight, squares, ...} = model

View File

@@ -5,7 +5,13 @@ struct
open DrawMessage
open UpdateMessage
(* todo: resize message *)
fun resizeWindow (model, width, height) =
let
val model = AppWith.windowResize (model, width, height)
val dots = Vector.fromList []
in
CommonUpdate.resizeWindow (model, width, height, dots)
end
fun getDrawMsg (model: app_type) =
let
@@ -123,5 +129,6 @@ struct
| ARROW_LEFT => moveImageLeft model
| ARROW_RIGHT => moveImageRight model
| KEY_ESC => enterNormalMode model
| RESIZE_WINDOW {width, height} => resizeWindow (model, width, height)
| _ => (model, [])
end

View File

@@ -194,42 +194,10 @@ struct
fun resizeWindow (model, width, height) =
let
val model = AppWith.windowResize (model, width, height)
val
{ squares
, canvasWidth
, canvasHeight
, showGraph
, arrowX
, arrowY
, xClickPoints
, yClickPoints
, ...
} = model
val maxSide = Int.max (canvasWidth, canvasHeight)
val squares = CollisionTree.toTriangles
( width
, height
, squares
, maxSide
, canvasWidth
, canvasHeight
, xClickPoints
, yClickPoints
)
val graphLines =
if showGraph then GraphLines.generate model else Vector.fromList []
val {arrowX, arrowY, ...} = model
val dots = getDotVecFromIndices (model, arrowX, arrowY)
val drawMsg =
RESIZE_SQUARES_DOTS_AND_GRAPH
{squares = squares, graphLines = graphLines, dots = dots}
val drawMsg = [DRAW drawMsg]
in
(model, drawMsg)
CommonUpdate.resizeWindow (model, width, height, dots)
end
fun undoAction model = (model, [])