mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-09-10 12:47:13 +00:00
207 lines
9.2 KiB
Plaintext
207 lines
9.2 KiB
Plaintext
/*
|
|
* AppController.j
|
|
* NewTextField
|
|
*
|
|
* Created by Aparajita Fishman.
|
|
* Copyright (c) 2011, Intalio, Inc.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
@import <Foundation/CPObject.j>
|
|
|
|
@import "OldTextField.j"
|
|
|
|
|
|
@implementation AppController : CPObject
|
|
{
|
|
CPWindow theWindow;
|
|
CPTextField newField;
|
|
OldTextField oldField;
|
|
CPCheckBox newFieldEnabler;
|
|
CPCheckBox oldFieldEnabler;
|
|
CPArray themeValues;
|
|
}
|
|
|
|
- (void)applicationDidFinishLaunching:(CPNotification)aNotification
|
|
{
|
|
theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero() styleMask:CPBorderlessBridgeWindowMask];
|
|
|
|
var bezelColor = CPColorWithImages(
|
|
[
|
|
["textfield-bezel-square-0.png", 3.0, 4.0],
|
|
["textfield-bezel-square-1.png", 1.0, 4.0],
|
|
["textfield-bezel-square-2.png", 3.0, 4.0],
|
|
["textfield-bezel-square-3.png", 3.0, 1.0],
|
|
["textfield-bezel-square-4.png", 1.0, 1.0],
|
|
["textfield-bezel-square-5.png", 3.0, 1.0],
|
|
["textfield-bezel-square-6.png", 3.0, 4.0],
|
|
["textfield-bezel-square-7.png", 1.0, 4.0],
|
|
["textfield-bezel-square-8.png", 3.0, 4.0]
|
|
]),
|
|
|
|
bezelFocusedColor = CPColorWithImages(
|
|
[
|
|
["textfield-bezel-square-focused-0.png", 7.0, 7.0],
|
|
["textfield-bezel-square-focused-1.png", 1.0, 7.0],
|
|
["textfield-bezel-square-focused-2.png", 7.0, 7.0],
|
|
["textfield-bezel-square-focused-3.png", 7.0, 1.0],
|
|
["textfield-bezel-square-focused-4.png", 1.0, 1.0],
|
|
["textfield-bezel-square-focused-5.png", 7.0, 1.0],
|
|
["textfield-bezel-square-focused-6.png", 7.0, 7.0],
|
|
["textfield-bezel-square-focused-7.png", 1.0, 7.0],
|
|
["textfield-bezel-square-focused-8.png", 7.0, 7.0]
|
|
]),
|
|
|
|
bezelDisabledColor = CPColorWithImages(
|
|
[
|
|
["textfield-bezel-square-disabled-0.png", 3.0, 4.0],
|
|
["textfield-bezel-square-disabled-1.png", 1.0, 4.0],
|
|
["textfield-bezel-square-disabled-2.png", 3.0, 4.0],
|
|
["textfield-bezel-square-disabled-3.png", 3.0, 1.0],
|
|
["textfield-bezel-square-disabled-4.png", 1.0, 1.0],
|
|
["textfield-bezel-square-disabled-5.png", 3.0, 1.0],
|
|
["textfield-bezel-square-disabled-6.png", 3.0, 4.0],
|
|
["textfield-bezel-square-disabled-7.png", 1.0, 4.0],
|
|
["textfield-bezel-square-disabled-8.png", 3.0, 4.0]
|
|
]),
|
|
|
|
placeholderColor = [CPColor colorWithCalibratedRed:189.0 / 255.0 green:199.0 / 255.0 blue:211.0 / 255.0 alpha:1.0];
|
|
|
|
themeValues =
|
|
[
|
|
[@"vertical-alignment", CPTopVerticalTextAlignment, CPThemeStateBezeled],
|
|
[@"bezel-color", bezelColor, CPThemeStateBezeled],
|
|
[@"bezel-color", bezelFocusedColor, CPThemeStateBezeled | CPThemeStateEditing],
|
|
[@"bezel-color", bezelDisabledColor, CPThemeStateBezeled | CPThemeStateDisabled],
|
|
[@"font", [CPFont systemFontOfSize:12.0], CPThemeStateBezeled],
|
|
|
|
[@"content-inset", CGInsetMake(8.0, 7.0, 5.0, 8.0), CPThemeStateBezeled],
|
|
[@"content-inset", CGInsetMake(7.0, 7.0, 5.0, 8.0), CPThemeStateBezeled | CPThemeStateEditing],
|
|
[@"bezel-inset", CGInsetMake(3.0, 4.0, 3.0, 4.0), CPThemeStateBezeled],
|
|
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateBezeled | CPThemeStateEditing],
|
|
|
|
[@"text-color", placeholderColor, OldTextFieldStatePlaceholder],
|
|
|
|
[@"line-break-mode", CPLineBreakByTruncatingTail, CPThemeStateTableDataView],
|
|
[@"vertical-alignment", CPCenterVerticalTextAlignment, CPThemeStateTableDataView],
|
|
[@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 5.0), CPThemeStateTableDataView],
|
|
|
|
[@"text-color", [CPColor colorWithCalibratedWhite:51.0 / 255.0 alpha:1.0], CPThemeStateTableDataView],
|
|
[@"text-color", [CPColor whiteColor], CPThemeStateTableDataView | CPThemeStateSelectedTableDataView],
|
|
[@"font", [CPFont boldSystemFontOfSize:12.0], CPThemeStateTableDataView | CPThemeStateSelectedTableDataView],
|
|
[@"text-color", [CPColor blackColor], CPThemeStateTableDataView | CPThemeStateEditing],
|
|
[@"content-inset", CGInsetMake(7.0, 7.0, 5.0, 8.0), CPThemeStateTableDataView | CPThemeStateEditing],
|
|
[@"font", [CPFont systemFontOfSize:12.0], CPThemeStateTableDataView | CPThemeStateEditing],
|
|
[@"bezel-inset", CGInsetMake(-2.0, -2.0, -2.0, -2.0), CPThemeStateTableDataView | CPThemeStateEditing],
|
|
|
|
[@"text-color", [CPColor colorWithCalibratedWhite:125.0 / 255.0 alpha:1.0], CPThemeStateTableDataView | CPThemeStateGroupRow],
|
|
[@"text-color", [CPColor colorWithCalibratedWhite:1.0 alpha:1.0], CPThemeStateTableDataView | CPThemeStateGroupRow | CPThemeStateSelectedTableDataView],
|
|
[@"text-shadow-color", [CPColor whiteColor], CPThemeStateTableDataView | CPThemeStateGroupRow],
|
|
[@"text-shadow-offset", CGSizeMake(0,1), CPThemeStateTableDataView | CPThemeStateGroupRow],
|
|
[@"text-shadow-color", [CPColor colorWithCalibratedWhite:0.0 alpha:0.6], CPThemeStateTableDataView | CPThemeStateGroupRow | CPThemeStateSelectedTableDataView],
|
|
[@"font", [CPFont boldSystemFontOfSize:12.0], CPThemeStateTableDataView | CPThemeStateGroupRow]
|
|
];
|
|
|
|
[self makeFields:[CPTextField class] atPosition:50];
|
|
[self makeFields:[OldTextField class] atPosition:350];
|
|
|
|
var scrollView = [[CPScrollView alloc] initWithFrame:CGRectMake(50, 150, 200, 200)],
|
|
table = [[CPTableView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)],
|
|
column = [[CPTableColumn alloc] initWithIdentifier:@"1"];
|
|
|
|
[scrollView setBorderType:CPBezelBorder];
|
|
[table setDataSource:self];
|
|
[table setVerticalMotionCanBeginDrag:NO];
|
|
[column setResizingMask:CPTableColumnAutoresizingMask];
|
|
[column setEditable:YES];
|
|
[table setColumnAutoresizingStyle:CPTableViewLastColumnOnlyAutoresizingStyle];
|
|
[table addTableColumn:column];
|
|
[[theWindow contentView] addSubview:scrollView];
|
|
[scrollView setDocumentView:table];
|
|
|
|
[theWindow orderFront:self];
|
|
}
|
|
|
|
- (void)makeFields:(Class)fieldClass atPosition:(int)position
|
|
{
|
|
var contentView = [theWindow contentView],
|
|
label = [CPTextField labelWithTitle:fieldClass === CPTextField ? @"New" : @"Old"],
|
|
field = [fieldClass textFieldWithStringValue:@"" placeholder:@"Text field" width:200];
|
|
|
|
[label setFont:[CPFont boldSystemFontOfSize:12]];
|
|
[label setFrameOrigin:CGPointMake(position, 20)];
|
|
[contentView addSubview:label];
|
|
|
|
if (fieldClass === [CPTextField class])
|
|
newField = field;
|
|
else
|
|
{
|
|
oldField = field;
|
|
[field registerThemeValues:themeValues];
|
|
}
|
|
|
|
[field setFrameOrigin:CGPointMake(position, 50)];
|
|
[field sizeToFit];
|
|
[contentView addSubview:field];
|
|
|
|
var fieldEnabler = [CPCheckBox checkBoxWithTitle:@"Enabled"];
|
|
|
|
[fieldEnabler setFrameOrigin:CGPointMake(position + 210, 57)];
|
|
[fieldEnabler setTarget:self];
|
|
[fieldEnabler setAction:@selector(enableField:)];
|
|
[fieldEnabler setState:CPOnState];
|
|
[contentView addSubview:fieldEnabler];
|
|
|
|
var bigField = [fieldClass textFieldWithStringValue:@"" placeholder:@"Big text field" width:200];
|
|
|
|
if (fieldClass === [CPTextField class])
|
|
newFieldEnabler = fieldEnabler;
|
|
else
|
|
{
|
|
oldFieldEnabler = fieldEnabler;
|
|
[bigField registerThemeValues:themeValues];
|
|
}
|
|
|
|
[bigField setFrameOrigin:CGPointMake(position, 100)];
|
|
[bigField setFont:[CPFont systemFontOfSize:18]];
|
|
[bigField sizeToFit];
|
|
[contentView addSubview:bigField];
|
|
|
|
}
|
|
|
|
- (void)enableField:(id)sender
|
|
{
|
|
var field = sender === newFieldEnabler ? newField : oldField;
|
|
[field setEnabled:[sender state] === CPOnState];
|
|
}
|
|
|
|
- (int)numberOfRowsInTableView:(CPTableView)aTableView
|
|
{
|
|
return 7;
|
|
}
|
|
|
|
- (id)tableView:(CPTableView)aTableView objectValueForTableColumn:(CPTableColumn)column row:(int)row
|
|
{
|
|
return "Row " + row;
|
|
}
|
|
|
|
- (void)tableView:(CPTableView)aTableView setObjectValue:(id)anObject forTableColumn:(CPTableColumn)aTableColumn row:(int)rowIndex
|
|
{
|
|
|
|
}
|
|
|
|
@end
|