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
|