Added more notification positions
This commit is contained in:
parent
87a9e6ade4
commit
5ac55596de
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2017 dorkbox, llc
|
||||
* Copyright 2023 dorkbox, llc
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -47,8 +47,11 @@ internal class AppNotify(override val notification: Notify): Canvas(), NotifyTyp
|
|||
val screenWidth = bounds.getWidth().toInt()
|
||||
|
||||
return when (position) {
|
||||
// LEFT ALIGN
|
||||
Position.TOP_LEFT, Position.BOTTOM_LEFT -> Notify.MARGIN + startX
|
||||
Position.CENTER -> startX + screenWidth / 2 - Notify.WIDTH / 2 - Notify.MARGIN / 2
|
||||
// CENTER ALIGN
|
||||
Position.TOP, Position.CENTER, Position.BOTTOM -> startX + screenWidth / 2 - Notify.WIDTH / 2 - Notify.MARGIN / 2
|
||||
// RIGHT ALIGN
|
||||
Position.TOP_RIGHT, Position.BOTTOM_RIGHT -> startX + screenWidth - Notify.WIDTH - Notify.MARGIN
|
||||
}
|
||||
}
|
||||
|
@ -58,9 +61,12 @@ internal class AppNotify(override val notification: Notify): Canvas(), NotifyTyp
|
|||
val screenHeight = bounds.getHeight().toInt()
|
||||
|
||||
return when (position) {
|
||||
Position.TOP_LEFT, Position.TOP_RIGHT -> startY + Notify.MARGIN
|
||||
// TOP ALIGN
|
||||
Position.TOP_LEFT, Position.TOP, Position.TOP_RIGHT -> startY + Notify.MARGIN
|
||||
// CENTER ALIGN
|
||||
Position.CENTER -> startY + screenHeight / 2 - Notify.HEIGHT / 2 - Notify.MARGIN / 2 - Notify.SPACER
|
||||
Position.BOTTOM_LEFT, Position.BOTTOM_RIGHT -> screenHeight - Notify.HEIGHT - Notify.MARGIN - Notify.SPACER * 2
|
||||
// BOTTOM ALIGN
|
||||
Position.BOTTOM_LEFT, Position.BOTTOM, Position.BOTTOM_RIGHT -> screenHeight - Notify.HEIGHT - Notify.MARGIN - Notify.SPACER * 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,12 +21,7 @@ import dorkbox.tweenEngine.Tween
|
|||
import dorkbox.tweenEngine.TweenEquations
|
||||
import dorkbox.tweenEngine.TweenEvents
|
||||
import dorkbox.util.ScreenUtil
|
||||
import java.awt.Dimension
|
||||
import java.awt.Graphics
|
||||
import java.awt.MouseInfo
|
||||
import java.awt.Point
|
||||
import java.awt.Rectangle
|
||||
import java.awt.Toolkit
|
||||
import java.awt.*
|
||||
import java.awt.image.BufferedImage
|
||||
import javax.swing.JWindow
|
||||
|
||||
|
@ -47,8 +42,11 @@ internal class DesktopNotify(override val notification: Notify) : JWindow(), Not
|
|||
val screenWidth = bounds.getWidth().toInt()
|
||||
|
||||
return when (position) {
|
||||
// LEFT ALIGN
|
||||
Position.TOP_LEFT, Position.BOTTOM_LEFT -> Notify.MARGIN + startX
|
||||
Position.CENTER -> startX + screenWidth / 2 - Notify.WIDTH / 2 - Notify.MARGIN / 2
|
||||
// CENTER ALIGN
|
||||
Position.TOP, Position.CENTER, Position.BOTTOM -> startX + screenWidth / 2 - Notify.WIDTH / 2 - Notify.MARGIN / 2
|
||||
// RIGHT ALIGN
|
||||
Position.TOP_RIGHT, Position.BOTTOM_RIGHT -> startX + screenWidth - Notify.WIDTH - Notify.MARGIN
|
||||
}
|
||||
}
|
||||
|
@ -58,9 +56,12 @@ internal class DesktopNotify(override val notification: Notify) : JWindow(), Not
|
|||
val screenHeight = bounds.getHeight().toInt()
|
||||
|
||||
return when (position) {
|
||||
Position.TOP_LEFT, Position.TOP_RIGHT -> startY + Notify.MARGIN
|
||||
// TOP ALIGN
|
||||
Position.TOP_LEFT, Position.TOP, Position.TOP_RIGHT -> startY + Notify.MARGIN
|
||||
// CENTER ALIGN
|
||||
Position.CENTER -> startY + screenHeight / 2 - Notify.HEIGHT / 2 - Notify.MARGIN / 2
|
||||
Position.BOTTOM_LEFT, Position.BOTTOM_RIGHT -> startY + screenHeight - Notify.HEIGHT - Notify.MARGIN
|
||||
// BOTTOM ALIGN
|
||||
Position.BOTTOM_LEFT, Position.BOTTOM, Position.BOTTOM_RIGHT -> startY + screenHeight - Notify.HEIGHT - Notify.MARGIN
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -144,19 +145,16 @@ internal class DesktopNotify(override val notification: Notify) : JWindow(), Not
|
|||
val gc = ScreenUtil.getMonitorAtLocation(point)?.defaultConfiguration ?: return 0
|
||||
val screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(gc)
|
||||
|
||||
if (showFromTop) {
|
||||
if (screenInsets.top > 0) {
|
||||
return screenInsets.top - Notify.MARGIN
|
||||
}
|
||||
// " - Notify.MARGIN" is required BECAUSE each entry is offset by the margin, and we want the notification to be touching the edge!!
|
||||
return if (showFromTop) {
|
||||
screenInsets.top - Notify.MARGIN
|
||||
} else {
|
||||
if (screenInsets.bottom > 0) {
|
||||
return screenInsets.bottom + Notify.MARGIN
|
||||
}
|
||||
-(screenInsets.bottom - Notify.MARGIN)
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
|
||||
override fun paint(g: Graphics) {
|
||||
// we cache the text + image (to an image), the two states of the close "button" and then always render the progressbar
|
||||
try {
|
||||
|
|
|
@ -152,9 +152,14 @@ internal object LAFUtil {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Controls which positions will grow the notification stack downwards
|
||||
*
|
||||
* @return true to grow downwards
|
||||
*/
|
||||
fun growDown(notify: NotifyType<*>): Boolean {
|
||||
return when (notify.notification.position) {
|
||||
Position.TOP_LEFT, Position.TOP_RIGHT, Position.CENTER -> true
|
||||
Position.TOP_LEFT, Position.TOP, Position.TOP_RIGHT, Position.CENTER -> true
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2015 dorkbox, llc
|
||||
* Copyright 2023 dorkbox, llc
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -26,11 +26,21 @@ enum class Position {
|
|||
*/
|
||||
TOP_RIGHT,
|
||||
|
||||
/**
|
||||
* top vertically, center horizontally
|
||||
*/
|
||||
TOP,
|
||||
|
||||
/**
|
||||
* center both vertically and horizontally
|
||||
*/
|
||||
CENTER,
|
||||
|
||||
/**
|
||||
* bottom vertically, center horizontally
|
||||
*/
|
||||
BOTTOM,
|
||||
|
||||
/**
|
||||
* bottom vertically, left horizontally
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue
Block a user