001 package com.croftsoft.core.gui;
002
003 import java.awt.*;
004
005 import com.croftsoft.core.lang.NullArgumentException;
006
007 /*********************************************************************
008 * Library of static methods for manipulating DisplayMode objects.
009 *
010 * @version
011 * 2003-07-25
012 * @since
013 * 2003-02-21
014 * @author
015 * <a href="https://www.croftsoft.com/">David Wallace Croft</a>
016 *********************************************************************/
017
018 public final class DisplayModeLib
019 //////////////////////////////////////////////////////////////////////
020 //////////////////////////////////////////////////////////////////////
021 {
022
023 /*********************************************************************
024 * Template matching of a supported to a desired DisplayMode.
025 *
026 * @param desiredDisplayMode
027 *
028 * Values of zero in desiredDisplayMode are treated as wildcards.
029 *********************************************************************/
030 public static boolean matches (
031 DisplayMode supportedDisplayMode,
032 DisplayMode desiredDisplayMode )
033 //////////////////////////////////////////////////////////////////////
034 {
035 NullArgumentException.check ( supportedDisplayMode );
036
037 NullArgumentException.check ( desiredDisplayMode );
038
039 int desiredWidth = desiredDisplayMode.getWidth ( );
040
041 if ( ( desiredWidth != 0 )
042 && ( desiredWidth != supportedDisplayMode.getWidth ( ) ) )
043 {
044 return false;
045 }
046
047 int desiredHeight = desiredDisplayMode.getHeight ( );
048
049 if ( ( desiredHeight != 0 )
050 && ( desiredHeight != supportedDisplayMode.getHeight ( ) ) )
051 {
052 return false;
053 }
054
055 int desiredRefreshRate = desiredDisplayMode .getRefreshRate ( );
056
057 int supportedRefreshRate = supportedDisplayMode.getRefreshRate ( );
058
059 if ( ( desiredRefreshRate != 0 )
060 && ( desiredRefreshRate != supportedRefreshRate ) )
061 {
062 return false;
063 }
064
065 int desiredBitDepth = desiredDisplayMode .getBitDepth ( );
066
067 int supportedBitDepth = supportedDisplayMode.getBitDepth ( );
068
069 if ( ( desiredBitDepth != 0 )
070 && ( desiredBitDepth != supportedBitDepth ) )
071 {
072 return false;
073 }
074
075 return true;
076 }
077
078 public static void print ( DisplayMode displayMode )
079 //////////////////////////////////////////////////////////////////////
080 {
081 NullArgumentException.check ( displayMode );
082
083 System.out.println ( "width..........: "
084 + displayMode.getWidth ( ) );
085
086 System.out.println ( "height.........: "
087 + displayMode.getHeight ( ) );
088
089 System.out.println ( "bit depth......: "
090 + displayMode.getBitDepth ( ) );
091
092 System.out.println ( "refresh rate...: "
093 + displayMode.getRefreshRate ( ) );
094 }
095
096 //////////////////////////////////////////////////////////////////////
097 //////////////////////////////////////////////////////////////////////
098
099 private DisplayModeLib ( ) { }
100
101 //////////////////////////////////////////////////////////////////////
102 //////////////////////////////////////////////////////////////////////
103 }