From bc5249b83e2de204b0b03f19c7803480e6cc6907 Mon Sep 17 00:00:00 2001 From: Labunsky Artem Date: Wed, 28 Jan 2015 03:12:54 +0300 Subject: [PATCH] New fullscreen mode, now really fullscreen --- Sources/Window.java | 53 +++++++++++++++++++-------------- Sources/resources/nyaAbout.png | Bin 408 -> 383 bytes 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/Sources/Window.java b/Sources/Window.java index 4dd920c..a286500 100644 --- a/Sources/Window.java +++ b/Sources/Window.java @@ -177,32 +177,48 @@ void draw() { bufferedNyaImage = ImageIO.read(Zerochan.nyaURL); Integer nyaImageHeight = bufferedNyaImage.getHeight(); Integer nyaImageWidth = bufferedNyaImage.getWidth(); - Dimension maximumSizeForTheFistArea = new Dimension((nyaImageWidth - 206) / 2 - 32, 48); - Dimension maximumSizeForTheSecondArea = new Dimension((nyaImageWidth - 206) / 2 - 48, 48); + Dimension maximumSizeForTheFistArea; + Dimension maximumSizeForTheSecondArea; Dimension minimumWindowSize = new Dimension(297, 0); //just buttons size Integer maxContentPaneHeight = nyaImageHeight + 48 + dataField.getHeight(); //this on is for small screens, less then 720p - if (screenSize.height < maxContentPaneHeight || screenSize.width < nyaImageWidth) { + if (screenSize.height < maxContentPaneHeight - 48 - Toolkit.getDefaultToolkit().getScreenInsets(getGraphicsConfiguration()).bottom || screenSize.width < nyaImageWidth) { Image scaledImage = bufferedNyaImage.getScaledInstance(screenSize.height - 48 - Toolkit.getDefaultToolkit().getScreenInsets(getGraphicsConfiguration()).bottom, -1, Image.SCALE_FAST); nyaLabel.setIcon(new ImageIcon(scaledImage)); - nyaImageHeight = ((BufferedImage) scaledImage).getHeight(); - nyaImageWidth = ((BufferedImage) scaledImage).getWidth(); + nyaImageHeight = toBufferedImage(scaledImage).getHeight(); + nyaImageWidth = toBufferedImage(scaledImage).getWidth(); } else if (getExtendedState() == Frame.NORMAL) nyaLabel.setIcon(new ImageIcon(bufferedNyaImage)); - else if (nyaFullHeight < screenSize.height && nyaFullWidth < screenSize.getWidth()) + else if (nyaFullHeight < screenSize.height - 48 - dataField.getHeight() && nyaFullWidth < screenSize.width - 10) nyaLabel.setIcon(new ImageIcon(bufferedFullImage)); else { //mmm, FULLSCREEN BufferedImage scaledImage = null; - if (nyaFullHeight < screenSize.height) - scaledImage = toBufferedImage(bufferedFullImage.getScaledInstance(screenSize.width, -1, Image.SCALE_SMOOTH)); - else - scaledImage = toBufferedImage(bufferedFullImage.getScaledInstance(-1, (int) screenSize.height - 48 - dataField.getHeight(), Image.SCALE_SMOOTH)); + if (nyaFullHeight >= screenSize.height - dataField.getHeight() - 48) + scaledImage = toBufferedImage(bufferedFullImage.getScaledInstance(-1, screenSize.height - 53 - dataField.getHeight(), Image.SCALE_SMOOTH)); + + if (scaledImage.getWidth() >= screenSize.getWidth() - 10) + scaledImage = toBufferedImage(scaledImage.getScaledInstance(screenSize.width - 10, -1, Image.SCALE_SMOOTH)); + + if (nyaFullWidth >= screenSize.width - 10) + scaledImage = toBufferedImage(bufferedFullImage.getScaledInstance(screenSize.width - 10, -1, Image.SCALE_SMOOTH)); + + if (scaledImage.getHeight() >= screenSize.height - dataField.getHeight() - 48) + scaledImage = toBufferedImage(bufferedFullImage.getScaledInstance(-1, screenSize.height - 53 - dataField.getHeight(), Image.SCALE_SMOOTH)); + nyaLabel.setIcon(new ImageIcon(scaledImage)); nyaImageHeight = scaledImage.getHeight(); nyaImageWidth = scaledImage.getWidth(); } + if (getExtendedState() == Frame.NORMAL) { + maximumSizeForTheFistArea = new Dimension((nyaImageWidth - 206) / 2 - 32, 48); + maximumSizeForTheSecondArea = new Dimension((nyaImageWidth - 206) / 2 - 48, 48); + } else { + maximumSizeForTheFistArea = new Dimension((screenSize.width - 206) / 2 - 32, 48); + maximumSizeForTheSecondArea = new Dimension((screenSize.width - 206) / 2 - 32, 48); + } + dataField.setText("Width: " + nyaFullWidth + " Height: " + nyaFullHeight); dataField.setMaximumSize(new Dimension(nyaImageWidth, dataField.getHeight())); northRigidArea.setMaximumSize(new Dimension(nyaImageWidth, (screenSize.height - maxContentPaneHeight) / 2)); @@ -225,21 +241,12 @@ else if (nyaFullHeight < screenSize.height && nyaFullWidth < screenSize.getWidth } void setWindowSizeNormal(Boolean normal) { //I need it to resize window every time when it changes state from maximized to normal - if (normal) + if (normal) { setSize(bufferedNyaImage.getWidth(), bufferedNyaImage.getHeight() + buttonsPanel.getHeight() + dataField.getHeight()); - else{//if maximized - Dimension maximumSizeForTheFistArea = new Dimension((screenSize.width - 223)/2, 48); - Dimension maximumSizeForTheSecondArea = new Dimension((int) maximumSizeForTheFistArea.getWidth() - 48, 48); - - buttonsPanelFirstRigidArea.setMaximumSize(maximumSizeForTheFistArea); - buttonsPaneSecondRigidArea.setMaximumSize(maximumSizeForTheSecondArea); - } - } - - void resize(BufferedImage nyaFull, BufferedImage nya){ - if (getExtendedState() == Frame.MAXIMIZED_BOTH){ - + nyaLabel.setIcon(new ImageIcon(bufferedNyaImage)); } + else//if maximized + draw(); } private BufferedImage toBufferedImage(Image img){ diff --git a/Sources/resources/nyaAbout.png b/Sources/resources/nyaAbout.png index 4c71e4c5078bde92ce53ec346b227211e82e0bdb..3d04aaf74a234654e470103aa7abae994490a957 100644 GIT binary patch delta 252 zcmVQWKtYoCUh>+=0ASlsa4;0uBS?TT2CpFIf#ejJ=NW_$fF1B;Sq9@c zUiLx@RwPM+p0=v0wz{tAJ5AFQ?t6b$VHgG?NGX5$rfDdrwRN_zP60%$>uLd&QY5e} z%QJx^s_Qx;7e(>R!Vxu16Or>gKaoFgPw($6VzMkt61WPidH28=bGs(qP3-#~+d~vZ zP9fY8uLaKetp)D{ZQIfWaU5Sx@b}L|0=GBi0lWbwJd#o#5G(5d0000qg8MM4xm(sBPb;*ol8h4oxnMi zRB9?cK_XEq&0`CBFV?4BFLX_m<^U? zfglKg5JHdd`!G!t8;d2uaU4A9m1T)lRneSPci!JT7{?J0RDUdr;wVupF6vJSVHkp@Xi_@%