/* Example for use of GNU gettext. Copyright (C) 2003 Free Software Foundation, Inc. This file is in the public domain. Source code of the Hello class. */ #include #include "Hello.h" #include #include @implementation Hello - (id)init { if ((self = [super init])) [self createUI]; return self; } - (void)dealloc { RELEASE (window); [super dealloc]; } - (void)makeKeyAndOrderFront { if (![window isVisible]) [window center]; [window makeKeyAndOrderFront:self]; } - (void)done { [window close]; } @end @implementation Hello (UIBuilder) - (void)createUI { GSVbox *cview; GSHbox *buttonbar; int i; label1 = [NSTextField new]; [label1 setStringValue: _(@"Hello, world!")]; [label1 setAlignment: NSLeftTextAlignment]; [label1 setBordered: NO]; [label1 setEditable: NO]; [label1 setBezeled: NO]; [label1 setDrawsBackground: NO]; [label1 sizeToFit]; label2 = [NSTextField new]; [label2 setStringValue: [NSString stringWithFormat: _(@"This program is running as process number %d."), [[NSProcessInfo processInfo] processIdentifier]]]; [label2 setAlignment: NSLeftTextAlignment]; [label2 setBordered: NO]; [label2 setEditable: NO]; [label2 setBezeled: NO]; [label2 setDrawsBackground: NO]; [label2 sizeToFit]; okButton = [NSButton new]; [okButton setTitle: @"OK"]; [okButton setTarget: self]; [okButton setAction: @selector(done)]; [okButton setFrameSize: NSMakeSize(60,22)]; [okButton setAutoresizingMask: 7]; buttonbar = [GSHbox new]; [buttonbar setAutoresizingMask: NSViewMinXMargin]; [buttonbar addView: okButton]; AUTORELEASE (okButton); cview = [GSVbox new]; // GSVbox is flawed: We have to add the controls bottom-up, and mark the // last one (= the topmost one) as non-resizable in Y direction, so that the // Y space becomes equally distributed _between_ (not above) the subviews. [cview addView: buttonbar]; AUTORELEASE (buttonbar); [cview addView: label2]; AUTORELEASE (label2); [cview addView: label1 enablingYResizing: NO]; AUTORELEASE (label1); window = [[NSWindow alloc] initWithContentRect: NSMakeRect(0,0, [cview frame].size.width, [cview frame].size.height) styleMask: (NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask) backing: NSBackingStoreBuffered defer: NO]; [window setDelegate: self]; [window setTitle: @"Hello example"]; [window setReleasedWhenClosed: NO]; [window setContentView: cview]; } @end