Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 83 lines (62 sloc) 1.928 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
// Copyright 2010 Todd Ditchendorf
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#import "UMEBarButtonItemButton.h"
#import "UMEBarButtonItemButtonCell.h"
#import <UMEKit/UMEBarButtonItem.h>

#define MIN_WIDTH 36
#define MIN_HEIGHT 44
#define BACK_TITLE_OFFSET_X 5

@implementation UMEBarButtonItemButton

+ (Class)cellClass {
    return [UMEBarButtonItemButtonCell class];
}


- (id)initWithFrame:(NSRect)frame {
    if (self = [super initWithFrame:frame]) {
        [self setButtonType:NSMomentaryPushInButton];
        [self setBordered:NO];
        [self setFocusRingType:NSFocusRingTypeNone];
        [self setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable|NSViewMinXMargin|NSViewMaxXMargin|NSViewMinYMargin|NSViewMaxYMargin];
    }
    return self;
}


- (void)dealloc {
    self.item = nil;
    [super dealloc];
}


- (BOOL)isFlipped {
    return YES;
}


- (void)sizeToFit {
    [super sizeToFit];
    
    NSSize size = [self bounds].size;
    
    size.width += 18;
    if (size.width < MIN_WIDTH) {
        size.width = MIN_WIDTH;
    }
    if (size.height < MIN_HEIGHT) {
        size.height = MIN_HEIGHT;
    }
    
    if (UMEBarButtonItemStyleBack == item.style) {
        size.width += BACK_TITLE_OFFSET_X;
    }
    [self setFrameSize:size];
}


- (BOOL)isEnabled {
    return [super isEnabled];
}


- (void)setEnabled:(BOOL)yn {
    [super setEnabled:yn];
}

@synthesize item;
@end
Something went wrong with that request. Please try again.