Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

First commit.

  • Loading branch information...
commit 2e0695d9a36d0bc430a72b48b1efdccd53437b85 0 parents
@yllan authored
6 .gitignore
@@ -0,0 +1,6 @@
+*.[oa]
+*~
+.DS_Store
+*.mode1v3
+*.pbxuser
+build/
BIN  English.lproj/InfoPlist.strings
Binary file not shown
3,059 English.lproj/MainMenu.xib
3,059 additions, 0 deletions not shown
28 Info.plist
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>com.yourcompany.${PRODUCT_NAME:identifier}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>NSMainNibFile</key>
+ <string>MainMenu</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>
0  README
No changes.
296 ShameOnMe.xcodeproj/project.pbxproj
@@ -0,0 +1,296 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; };
+ 2EF2158B0EE6B5A100AF16B9 /* YLPixellateWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EF2158A0EE6B5A100AF16B9 /* YLPixellateWindow.m */; };
+ 2EF2158F0EE6B70C00AF16B9 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2EF2158E0EE6B70C00AF16B9 /* QuartzCore.framework */; };
+ 2EF215A40EE6B85C00AF16B9 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2EF215A30EE6B85C00AF16B9 /* ApplicationServices.framework */; };
+ 2EF215B60EE6B95500AF16B9 /* YLTransparentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EF215B50EE6B95500AF16B9 /* YLTransparentView.m */; };
+ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
+ 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
+ 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
+ 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
+ 1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = "<group>"; };
+ 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
+ 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
+ 2EF215890EE6B5A100AF16B9 /* YLPixellateWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YLPixellateWindow.h; sourceTree = "<group>"; };
+ 2EF2158A0EE6B5A100AF16B9 /* YLPixellateWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YLPixellateWindow.m; sourceTree = "<group>"; };
+ 2EF2158E0EE6B70C00AF16B9 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; };
+ 2EF215A30EE6B85C00AF16B9 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
+ 2EF215B40EE6B95500AF16B9 /* YLTransparentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YLTransparentView.h; sourceTree = "<group>"; };
+ 2EF215B50EE6B95500AF16B9 /* YLTransparentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YLTransparentView.m; sourceTree = "<group>"; };
+ 32CA4F630368D1EE00C91783 /* ShameOnMe_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShameOnMe_Prefix.pch; sourceTree = "<group>"; };
+ 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ 8D1107320486CEB800E47090 /* ShameOnMe.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ShameOnMe.app; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 8D11072E0486CEB800E47090 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
+ 2EF2158F0EE6B70C00AF16B9 /* QuartzCore.framework in Frameworks */,
+ 2EF215A40EE6B85C00AF16B9 /* ApplicationServices.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 080E96DDFE201D6D7F000001 /* Classes */ = {
+ isa = PBXGroup;
+ children = (
+ 2EF215890EE6B5A100AF16B9 /* YLPixellateWindow.h */,
+ 2EF2158A0EE6B5A100AF16B9 /* YLPixellateWindow.m */,
+ 2EF215B40EE6B95500AF16B9 /* YLTransparentView.h */,
+ 2EF215B50EE6B95500AF16B9 /* YLTransparentView.m */,
+ );
+ name = Classes;
+ sourceTree = "<group>";
+ };
+ 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 2EF215A30EE6B85C00AF16B9 /* ApplicationServices.framework */,
+ 2EF2158E0EE6B70C00AF16B9 /* QuartzCore.framework */,
+ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
+ );
+ name = "Linked Frameworks";
+ sourceTree = "<group>";
+ };
+ 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 29B97324FDCFA39411CA2CEA /* AppKit.framework */,
+ 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */,
+ 29B97325FDCFA39411CA2CEA /* Foundation.framework */,
+ );
+ name = "Other Frameworks";
+ sourceTree = "<group>";
+ };
+ 19C28FACFE9D520D11CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 8D1107320486CEB800E47090 /* ShameOnMe.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 29B97314FDCFA39411CA2CEA /* ShameOnMe */ = {
+ isa = PBXGroup;
+ children = (
+ 080E96DDFE201D6D7F000001 /* Classes */,
+ 29B97315FDCFA39411CA2CEA /* Other Sources */,
+ 29B97317FDCFA39411CA2CEA /* Resources */,
+ 29B97323FDCFA39411CA2CEA /* Frameworks */,
+ 19C28FACFE9D520D11CA2CBB /* Products */,
+ );
+ name = ShameOnMe;
+ sourceTree = "<group>";
+ };
+ 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
+ isa = PBXGroup;
+ children = (
+ 32CA4F630368D1EE00C91783 /* ShameOnMe_Prefix.pch */,
+ 29B97316FDCFA39411CA2CEA /* main.m */,
+ );
+ name = "Other Sources";
+ sourceTree = "<group>";
+ };
+ 29B97317FDCFA39411CA2CEA /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 8D1107310486CEB800E47090 /* Info.plist */,
+ 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
+ 1DDD58140DA1D0A300B32029 /* MainMenu.xib */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
+ 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 8D1107260486CEB800E47090 /* ShameOnMe */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "ShameOnMe" */;
+ buildPhases = (
+ 8D1107290486CEB800E47090 /* Resources */,
+ 8D11072C0486CEB800E47090 /* Sources */,
+ 8D11072E0486CEB800E47090 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = ShameOnMe;
+ productInstallPath = "$(HOME)/Applications";
+ productName = ShameOnMe;
+ productReference = 8D1107320486CEB800E47090 /* ShameOnMe.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 29B97313FDCFA39411CA2CEA /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ShameOnMe" */;
+ compatibilityVersion = "Xcode 3.1";
+ hasScannedForEncodings = 1;
+ mainGroup = 29B97314FDCFA39411CA2CEA /* ShameOnMe */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 8D1107260486CEB800E47090 /* ShameOnMe */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 8D1107290486CEB800E47090 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
+ 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8D11072C0486CEB800E47090 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D11072D0486CEB800E47090 /* main.m in Sources */,
+ 2EF2158B0EE6B5A100AF16B9 /* YLPixellateWindow.m in Sources */,
+ 2EF215B60EE6B95500AF16B9 /* YLTransparentView.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 089C165DFE840E0CC02AAC07 /* English */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+ 1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 1DDD58150DA1D0A300B32029 /* English */,
+ );
+ name = MainMenu.xib;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ C01FCF4B08A954540054247B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = ShameOnMe_Prefix.pch;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_NAME = ShameOnMe;
+ };
+ name = Debug;
+ };
+ C01FCF4C08A954540054247B /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = ShameOnMe_Prefix.pch;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_NAME = ShameOnMe;
+ };
+ name = Release;
+ };
+ C01FCF4F08A954540054247B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ PREBINDING = NO;
+ SDKROOT = macosx10.5;
+ };
+ name = Debug;
+ };
+ C01FCF5008A954540054247B /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ PREBINDING = NO;
+ SDKROOT = macosx10.5;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "ShameOnMe" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C01FCF4B08A954540054247B /* Debug */,
+ C01FCF4C08A954540054247B /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ShameOnMe" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C01FCF4F08A954540054247B /* Debug */,
+ C01FCF5008A954540054247B /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
+}
7 ShameOnMe_Prefix.pch
@@ -0,0 +1,7 @@
+//
+// Prefix header for all source files of the 'ShameOnMe' target in the 'ShameOnMe' project
+//
+
+#ifdef __OBJC__
+ #import <Cocoa/Cocoa.h>
+#endif
15 YLPixellateWindow.h
@@ -0,0 +1,15 @@
+//
+// YLPixellateWindow.h
+// ShameOnMe
+//
+// Created by hypor on 12/3/08.
+// Copyright 2008 Bigs Hypo. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+@interface YLPixellateWindow : NSPanel {
+ NSPoint initialLocation;
+}
+
+@end
91 YLPixellateWindow.m
@@ -0,0 +1,91 @@
+//
+// YLPixellateWindow.m
+// ShameOnMe
+//
+// Created by hypor on 12/3/08.
+// Copyright 2008 Bigs Hypo. All rights reserved.
+//
+
+#import "YLPixellateWindow.h"
+#import <QuartzCore/QuartzCore.h>
+#import <ApplicationServices/ApplicationServices.h>
+
+typedef void * CGSConnectionID;
+extern OSStatus CGSNewConnection(const void **attr, CGSConnectionID *id);
+extern OSStatus CGSNewCIFilterByName(CGSConnectionID, CFStringRef, uint32_t *);
+extern OSStatus CGSSetCIFilterValuesFromDictionary(CGSConnectionID, uint32_t, CFDictionaryRef);
+extern OSStatus CGSAddWindowFilter(CGSConnectionID, NSInteger, uint32_t, int);
+
+@implementation YLPixellateWindow
+- (id) initWithContentRect: (NSRect)contentRect styleMask: (unsigned int)aStyle backing: (NSBackingStoreType)bufferingType defer: (BOOL)flag
+{
+ NSWindow *result = [super initWithContentRect: contentRect styleMask: /*NSBorderlessWindowMask*/aStyle backing: NSBackingStoreBuffered defer: NO];
+ [result setBackgroundColor: [NSColor whiteColor]];
+ [result setLevel: kCGNumberOfWindowLevelKeys - 1];
+ [result setAlphaValue: 0.1];
+ [result setOpaque: NO];
+ [result setHasShadow: YES];
+// [result _setContentHasShadow: NO];
+
+ //*
+ CGSConnectionID _myConnection;
+ uint32_t __compositingFilter;
+
+ int __compositingType = 1;
+ CGSNewConnection(NULL , &_myConnection);
+
+ NSDictionary *optionsDict;
+//*
+ CGSNewCIFilterByName(_myConnection, (CFStringRef)@"CIPixellate", &__compositingFilter);
+ optionsDict = [NSDictionary dictionaryWithObject: [NSNumber numberWithFloat: 10.0] forKey: @"inputScale"];
+/*/
+ CGSNewCIFilterByName(_myConnection, (CFStringRef)@"CIGaussianBlur", &__compositingFilter);
+ optionsDict = [NSDictionary dictionaryWithObject: [NSNumber numberWithFloat: 5.0] forKey: @"inputRadius"];
+/**/
+ CGSSetCIFilterValuesFromDictionary(_myConnection, __compositingFilter, (CFDictionaryRef)optionsDict);
+ CGSAddWindowFilter(_myConnection, [result windowNumber], __compositingFilter, __compositingType);
+
+ return result;
+
+}
+
+- (BOOL) canBecomeKeyWindow
+{
+ return YES;
+}
+/*
+- (void) mouseDragged: (NSEvent *)theEvent
+{
+ NSPoint currentLocation;
+ NSPoint newOrigin;
+ NSRect screenFrame = [[NSScreen mainScreen] frame];
+ NSRect windowFrame = [self frame];
+
+ //grab the current global mouse location; we could just as easily get the mouse location
+ //in the same way as we do in -mouseDown:
+ currentLocation = [self convertBaseToScreen: [self mouseLocationOutsideOfEventStream]];
+ newOrigin.x = currentLocation.x - initialLocation.x;
+ newOrigin.y = currentLocation.y - initialLocation.y;
+
+ // Don't let window get dragged up under the menu bar
+ if ((newOrigin.y + windowFrame.size.height) > (screenFrame.origin.y + screenFrame.size.height)) {
+ newOrigin.y = screenFrame.origin.y + (screenFrame.size.height - windowFrame.size.height);
+ }
+
+ //go ahead and move the window to the new location
+ [self setFrameOrigin: newOrigin];
+}
+
+//We start tracking the a drag operation here when the user first clicks the mouse,
+//to establish the initial location.
+- (void) mouseDown: (NSEvent *)theEvent
+{
+ NSRect windowFrame = [self frame];
+
+ //grab the mouse location in global coordinates
+ initialLocation = [self convertBaseToScreen: [theEvent locationInWindow]];
+ initialLocation.x -= windowFrame.origin.x;
+ initialLocation.y -= windowFrame.origin.y;
+}
+/**/
+@end
16 YLTransparentView.h
@@ -0,0 +1,16 @@
+//
+// YLTransparentView.h
+// ShameOnMe
+//
+// Created by hypor on 12/3/08.
+// Copyright 2008 Bigs Hypo. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface YLTransparentView : NSView {
+
+}
+
+@end
37 YLTransparentView.m
@@ -0,0 +1,37 @@
+//
+// YLTransparentView.m
+// ShameOnMe
+//
+// Created by hypor on 12/3/08.
+// Copyright 2008 Bigs Hypo. All rights reserved.
+//
+
+#import "YLTransparentView.h"
+
+
+@implementation YLTransparentView
+
+- (id) initWithFrame: (NSRect)frame
+{
+ self = [super initWithFrame: frame];
+ if (self) {
+ // Initialization code here.
+ }
+ return self;
+}
+
+- (void) drawRect: (NSRect)rect
+{
+// [[self window] setOpaque: NO];
+// [[self window] _setContentHasShadow: NO];
+
+ [[NSColor clearColor] set];
+ NSRectFill(rect);
+}
+
+- (BOOL) isOpaque
+{
+ return YES;
+}
+
+@end
14 main.m
@@ -0,0 +1,14 @@
+//
+// main.m
+// ShameOnMe
+//
+// Created by hypor on 12/3/08.
+// Copyright Bigs Hypo 2008. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+int main(int argc, char *argv[])
+{
+ return NSApplicationMain(argc, (const char **) argv);
+}
Please sign in to comment.
Something went wrong with that request. Please try again.