Logging in...
ALOHA; echo ; } else { echo "you're logged in"; } ?>

Blog

Posted on: 8 Jun 2010
Synapse

TSPProgressIndicator ver. 1.0 Cocoa custom progress indicator class

TSPProgressIndicator is a highly customizable progress indicator class which lets you create a cool progress indicator with a few line of code. TSPProgressIndicator is a NSView subclass so the height and width of the progress indicator will be binded to the height and width of the NSView, without any restraints.


Main functions for customizing the progress indicator

  • Progressbar main color
  • Progressbar holder color
  • Shadow color and blur radius
  • Upper and lower text color, font size and alignment
  • Progressbar corner radius
  • Indeterminate animation both in main thread and another thread




Theming example:

	
	[myProgress setMaxValue: 100.0];
	[myProgress setCornerRadius: 15];
	[myProgress setProgressColor: [NSColor colorWithCalibratedRed:0.076 green:0.076 blue:0.071 alpha:1.000]];
	[myProgress setFontSize: 11]; 
	[myProgress setProgressTextAlign: 2];
	
Posted on: 6 Jul 2010
Synapse
License: LGPL License

Wineskin, what is it?

What is Wineskin?

Wineskin is a tool used to make wrappers to run Windows software or games on Mac OS X.  The wrappers are in the form of a normal Mac .app Application, which can be double clicked and ran just like a native app.

If you make a wrapper that uses software you are not licensed to distribute, you can still get it working, and clear out the programs, then allow others to have copies of your wrapper so they can put their licensed program inside of it and use it, or just make wrappers for yourself and run your Windows software on your Mac without even needing Windows.

For more information visit the official website
FAQ and Manual

Posted on: 30 Jun 2010
Synapse

Startup Manager - add your app to startup with ease

Here is a simple way on how you could add any of your applications to the start up application list. Before you do the following make sure that you have included the StartupMgr.m and StartupMgr.h files in your project

1. Add a new NSObject


2. Make sure you have selected the newly added object, go in the Inspector Window > Object Identity add StartupMgr in the Class section


3. Add a checkbox and connect it with the IBOutlet and IBAction from the StartupMgr object added in steps 1 and 2



There is also a sample project attached. Check it out.
Posted on: 6 Apr 2010
Synapse

TSPWindow ver. 1.0 – Cocoa custom window class

Let me present you my latest project TSPWindow. TSPWindow is a subclass of NSWindow witch let you customize your window simply and quickly. With a little imagination you can build almost any kind of window you want. Let me remind you that TSPWindow is still in the first release so it has limited functionalities and theming capabilities but we hope that in the future it’ll be better and more customizable.


Theming example:

													
[HUDWindow setTitleBarHeight: 25.0];
[HUDWindow setFooterBarHeight: 0.0];										
NSColor *colort1 = [NSColor colorWithCalibratedWhite:.5 alpha:.82];
NSColor *colort2 = [NSColor colorWithCalibratedWhite:.1 alpha:.82];
NSColor *colort3 = [NSColor colorWithCalibratedWhite:0 alpha:.82];
NSColor *colort4 = [NSColor colorWithCalibratedWhite:0 alpha:.82];
NSGradient *normalGradient = [[NSGradient alloc] initWithColorsAndLocations:colort1,0.0,colort2,0.5,colort3,.51,colort4,1.0,nil];					
NSColor *color1 = [NSColor colorWithCalibratedWhite:0 alpha:.82];
NSColor *color2 = [NSColor colorWithCalibratedWhite:.02 alpha:.82];										
NSColor *color3 = [NSColor colorWithCalibratedWhite:.05 alpha:.82];										
NSColor *color4 = [NSColor colorWithCalibratedWhite:0 alpha:.82];

NSGradient *gradientC = [[NSGradient alloc] initWithColorsAndLocations:color1,0.0,color2,0.5,color3,.51,color4,1.0,nil];

[HUDWindow setTitleBarGradient: normalGradient];	
[HUDWindow setBodyGradient:gradientC]; 
													
												
Posted on: 14 Mar 2010
Synapse

Run AppleScript code inside Objective-C

The difference between this example and the one posted some time ago (this one) is that you don’t need a AppleScript file inside your apps resource folder. The nicest thing about this approach is that you don’t have to compile your AppleScript meaning lesser space occupied and secondly there’s no way to “steal” the code used in your script.


Calling the function:

													
[self executeAScript:@"do shell script \"rm -rf ~/Library/Preferences/com.someFile.plist\" with administrator privileges"];
													
												

The function that will execute the AppleScript code:

													
- (void)executeAScript:(NSString*)ascript {
   NSDictionary* errorDict = [NSDictionary dictionary];
   NSAppleEventDescriptor* returnDescriptor = NULL;
   NSAppleScript* scriptObject = [[NSAppleScript alloc] initWithSource:ascript];

	returnDescriptor = [scriptObject executeAndReturnError: &errorDict];
   [scriptObject release];

	if ([errorDict count] > 0 && ![[[errorDict objectForKey:@"NSAppleScriptErrorNumber"] stringValue] isEqualToString:@"-128"]) {
    	 [[NSAlert alertWithMessageText:[NSString stringWithFormat:@"%@ (Error %@)",[errorDict objectForKey:@"NSAppleScriptErrorMessage"],[errorDict objectForKey:@"NSAppleScriptErrorNumber"]]
	      defaultButton:@"OK"
    	  alternateButton:@""
      	otherButton:@""
     	 informativeTextWithFormat:@""
      	] runModal];
 	}

}
													
												
Posted on: 6 Apr 2010
Synapse
License: Public Domain

Threads in Cocoa using ThreadWorker

ThreadWorker is a class makes it easy to offload a task to another thread and notify your application when you’ve completed the task. Creating multithreaded applications with ThreadWorker it’s easier than Objective-C in Mac OS X’s Cocoa framework raw code.


Calling ThreadWorker looks something like this:

													
[ThreadWorker workOn:self
                  withSelector:@selector(longTask:)
                  withArgument:someData
                  didEndTarget:self
                  didEndSelector:@selector(longTaskFinished:)];
													
												

In this case, longTask would be run in another thread, and longTaskFinished would be called on the original calling thread when longTask is finished.

1