Skip to content

Commit

Permalink
Set minimum size of Java2D window
Browse files Browse the repository at this point in the history
Just setting size will be ignored in the content is smaller than this.
Setting the minimum size forces the window to have at least the given
size.

Fixes #179
  • Loading branch information
noelwelsh committed Dec 13, 2024
1 parent b1f4488 commit 392266a
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import doodle.core.Point
import doodle.java2d.Picture
import doodle.java2d.effect.Size.FixedSize

import java.awt.Dimension
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.awt.event.WindowAdapter
Expand Down Expand Up @@ -99,7 +100,7 @@ final class Java2dWindow(
getContentPane().add(panel)
frame.size match {
case FixedSize(width, height) =>
setSize(width.toInt, height.toInt)
setMinimumSize(Dimension(width.toInt, height.toInt))
case _ => ()
}
pack()
Expand Down
39 changes: 39 additions & 0 deletions java2d/src/main/scala/doodle/java2d/examples/EmptyFrame.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* Copyright 2015 Creative Scala
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package doodle.java2d.examples

import cats.effect.*
import doodle.core.*
import doodle.java2d.*
import doodle.java2d.effect.Frame
import doodle.syntax.all.*

// This just renders an empty frame, so we can check it renders correctly.
//
// See issue #179
object EmptyFrame extends IOApp {
def run(args: List[String]): IO[ExitCode] = {
val frame = Frame.default
.withSize(width = 300, height = 300)
.withBackground(Color.midnightBlue)
frame
.canvas()
.use { canvas =>
canvas.closed >> IO.pure(ExitCode.Success)
}
}
}

0 comments on commit 392266a

Please sign in to comment.