Skip to content

Instantly share code, notes, and snippets.

@boucher
Created June 1, 2009 22:53
Show Gist options
  • Select an option

  • Save boucher/121856 to your computer and use it in GitHub Desktop.

Select an option

Save boucher/121856 to your computer and use it in GitHub Desktop.
/*
* AppController.j
* toolbar
*
* Created by __Me__ on __Date__.
* Copyright 2008 __MyCompanyName__. All rights reserved.
*/
@import <Foundation/CPObject.j>
@import <AppKit/CPBezierPath.j>
@implementation AppController : CPObject
{
}
- (void)applicationDidFinishLaunching:(CPNotification)aNotification
{
var theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero() styleMask:CPBorderlessBridgeWindowMask],
contentView = [theWindow contentView];
var toolbar = [[CPToolbar alloc] initWithIdentifier:"Posts"] ;
var toolbarDelegate = [[ToolbarDelegate alloc] init] ;
[toolbar setDelegate:toolbarDelegate] ;
[toolbar setVisible:YES] ;
[theWindow setToolbar:toolbar] ;
[theWindow orderFront:self];
// Uncomment the following line to turn on the standard menu bar.
[CPMenu setMenuBarVisible:YES];
}
@end
var AddToolbarItemIdentifier = "AddToolbarItemIdentifier",
EditToolbarItemIdentifier = "EditToolbarItemIdentifier",
RemoveToolbarItemIdentifier = "RemoveToolbarItemIdentifier";
@implementation ToolbarDelegate : CPObject
{
}
- (CPArray)toolbarAllowedItemIdentifiers:(CPToolbar)aToolbar
{
return [AddToolbarItemIdentifier, RemoveToolbarItemIdentifier, EditToolbarItemIdentifier];
}
- (CPArray)toolbarDefaultItemIdentifiers:(CPToolbar)aToolbar
{
return [AddToolbarItemIdentifier, RemoveToolbarItemIdentifier, EditToolbarItemIdentifier];
}
- (CPToolbarItem)toolbar:(CPToolbar)aToolbar itemForItemIdentifier:(CPString)anItemIdentifier willBeInsertedIntoToolbar:(BOOL)aFlag
{
var toolbarItem = [[CPToolbarItem alloc] initWithItemIdentifier:anItemIdentifier];
var mainBundle = [CPBundle mainBundle];
if (anItemIdentifier === AddToolbarItemIdentifier)
{
[toolbarItem setLabel:"Add blog post"];
[toolbarItem setMinSize:CGSizeMake(32, 32)];
[toolbarItem setMaxSize:CGSizeMake(32, 32)];
}
else if (anItemIdentifier === RemoveToolbarItemIdentifier)
{
[toolbarItem setLabel:"Remove blog post"];
[toolbarItem setMinSize:CGSizeMake(32, 32)];
[toolbarItem setMaxSize:CGSizeMake(32, 32)];
}
else if (anItemIdentifier === EditToolbarItemIdentifier)
{
var textField = [[CPTextField alloc] initWithFrame:CGRectMakeZero()];
[textField setEditable:YES];
[textField setBezeled:YES];
[textField setStringValue:@"search meeeeeee"];
[textField sizeToFit];
[textField setTarget:self];
[textField setAction:@selector(returnPressed:)];
[toolbarItem setView:textField];
[toolbarItem setLabel:"Search blog posts"];
[toolbarItem setMinSize:CGSizeMake(150, 32)];
[toolbarItem setMaxSize:CGSizeMake(150, 32)];
}
return toolbarItem;
}
- (void)returnPressed:(id)sender
{
CPLogConsole("Object value: <"+[sender objectValue]+">", "info");
CPLogConsole("String value: <"+[sender stringValue]+">", "info");
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment