src/macosx/native/sun/awt/CSystemColors.m

Print this page




  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 #import "CSystemColors.h"
  27 
  28 #import "java_awt_SystemColor.h"
  29 #import "sun_lwawt_macosx_LWCToolkit.h"
  30 
  31 #import <JavaNativeFoundation/JavaNativeFoundation.h>
  32 #import <JavaRuntimeSupport/JavaRuntimeSupport.h>
  33 
  34 #import "ThreadUtilities.h"
  35 





  36 NSColor **sColors = nil;
  37 NSColor **appleColors = nil;
  38 
  39 @implementation CSystemColors
  40 
  41 + (void)initialize {
  42     JNIEnv *env = [ThreadUtilities getJNIEnv];
  43 JNF_COCOA_ENTER(env);
  44     [CSystemColors reloadColors];
  45     [[NSNotificationCenter defaultCenter] addObserver:[CSystemColors class] selector:@selector(systemColorsDidChange:) name:NSSystemColorsDidChangeNotification object:nil];
  46 JNF_COCOA_EXIT(env);
  47 }
  48 
  49 static JNF_CLASS_CACHE(jc_LWCToolkit, "sun/lwawt/macosx/LWCToolkit");
  50 static JNF_STATIC_MEMBER_CACHE(jm_systemColorsChanged, jc_LWCToolkit, "systemColorsChanged", "()V");
  51 
  52 + (void)systemColorsDidChange:(NSNotification *)notification {
  53     AWT_ASSERT_APPKIT_THREAD;
  54 
  55     [CSystemColors reloadColors];


 113             if (appleColors[i] != NULL) CFRelease(appleColors[i]); // GC
 114         }
 115     }
 116 
 117     appleColors[sun_lwawt_macosx_LWCToolkit_KEYBOARD_FOCUS_COLOR] =                    [NSColor keyboardFocusIndicatorColor];
 118     appleColors[sun_lwawt_macosx_LWCToolkit_INACTIVE_SELECTION_BACKGROUND_COLOR] =    [NSColor secondarySelectedControlColor];
 119     appleColors[sun_lwawt_macosx_LWCToolkit_INACTIVE_SELECTION_FOREGROUND_COLOR] =    [NSColor controlDarkShadowColor];
 120 
 121     for (i = 0; i < sun_lwawt_macosx_LWCToolkit_NUM_APPLE_COLORS; i++) {
 122         if (appleColors[i] != NULL) CFRetain(appleColors[i]); // GC
 123     }
 124 }
 125 
 126 + (NSColor*)getColor:(NSUInteger)colorIndex useAppleColor:(BOOL)useAppleColor {
 127     NSColor* result = nil;
 128 
 129     if (colorIndex < (useAppleColor) ? sun_lwawt_macosx_LWCToolkit_NUM_APPLE_COLORS : java_awt_SystemColor_NUM_COLORS) {
 130         result = (useAppleColor ? appleColors : sColors)[colorIndex];
 131     }
 132     else {
 133         NSLog(@"%s: %s %sColor: %ld not found, returning black.", __FILE__, __FUNCTION__, (useAppleColor) ? "Apple" : "System", colorIndex);
 134         result = [NSColor blackColor];
 135     }
 136 
 137     return result;
 138 }
 139 @end


  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 #import "CSystemColors.h"
  27 
  28 #import "java_awt_SystemColor.h"
  29 #import "sun_lwawt_macosx_LWCToolkit.h"
  30 
  31 #import <JavaNativeFoundation/JavaNativeFoundation.h>
  32 #import <JavaRuntimeSupport/JavaRuntimeSupport.h>
  33 
  34 #import "ThreadUtilities.h"
  35 
  36 /* Use THIS_FILE when it is available. */
  37 #ifndef THIS_FILE
  38     #define THIS_FILE __FILE__
  39 #endif
  40 
  41 NSColor **sColors = nil;
  42 NSColor **appleColors = nil;
  43 
  44 @implementation CSystemColors
  45 
  46 + (void)initialize {
  47     JNIEnv *env = [ThreadUtilities getJNIEnv];
  48 JNF_COCOA_ENTER(env);
  49     [CSystemColors reloadColors];
  50     [[NSNotificationCenter defaultCenter] addObserver:[CSystemColors class] selector:@selector(systemColorsDidChange:) name:NSSystemColorsDidChangeNotification object:nil];
  51 JNF_COCOA_EXIT(env);
  52 }
  53 
  54 static JNF_CLASS_CACHE(jc_LWCToolkit, "sun/lwawt/macosx/LWCToolkit");
  55 static JNF_STATIC_MEMBER_CACHE(jm_systemColorsChanged, jc_LWCToolkit, "systemColorsChanged", "()V");
  56 
  57 + (void)systemColorsDidChange:(NSNotification *)notification {
  58     AWT_ASSERT_APPKIT_THREAD;
  59 
  60     [CSystemColors reloadColors];


 118             if (appleColors[i] != NULL) CFRelease(appleColors[i]); // GC
 119         }
 120     }
 121 
 122     appleColors[sun_lwawt_macosx_LWCToolkit_KEYBOARD_FOCUS_COLOR] =                    [NSColor keyboardFocusIndicatorColor];
 123     appleColors[sun_lwawt_macosx_LWCToolkit_INACTIVE_SELECTION_BACKGROUND_COLOR] =    [NSColor secondarySelectedControlColor];
 124     appleColors[sun_lwawt_macosx_LWCToolkit_INACTIVE_SELECTION_FOREGROUND_COLOR] =    [NSColor controlDarkShadowColor];
 125 
 126     for (i = 0; i < sun_lwawt_macosx_LWCToolkit_NUM_APPLE_COLORS; i++) {
 127         if (appleColors[i] != NULL) CFRetain(appleColors[i]); // GC
 128     }
 129 }
 130 
 131 + (NSColor*)getColor:(NSUInteger)colorIndex useAppleColor:(BOOL)useAppleColor {
 132     NSColor* result = nil;
 133 
 134     if (colorIndex < (useAppleColor) ? sun_lwawt_macosx_LWCToolkit_NUM_APPLE_COLORS : java_awt_SystemColor_NUM_COLORS) {
 135         result = (useAppleColor ? appleColors : sColors)[colorIndex];
 136     }
 137     else {
 138         NSLog(@"%s: %s %sColor: %ld not found, returning black.", THIS_FILE, __FUNCTION__, (useAppleColor) ? "Apple" : "System", colorIndex);
 139         result = [NSColor blackColor];
 140     }
 141 
 142     return result;
 143 }
 144 @end