File: SecondWindowOwner.m

package info (click to toggle)
gnustep-examples 1%3A1.2.0-2
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 1,952 kB
  • ctags: 270
  • sloc: objc: 14,381; makefile: 65
file content (127 lines) | stat: -rw-r--r-- 3,976 bytes parent folder | download | duplicates (3)
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/*
 *  SecondWindowOwner.m: An application to demonstrate the GNUstep toolbars 
 *
 *  Copyright (c) 2004 Free Software Foundation, Inc.
 *  
 *  Author: Quentin Mathe <qmathe@club-internet.fr>
 *  Date: March 2004
 *
 *  This sample program is part of GNUstep.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program 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 General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include "SecondWindowOwner.h"

@implementation SecondWindowOwner

- (void) awakeFromNib
{
  GSToolbar *otherToolbar;
  
  //NSLog(@"Nib loaded with window");
  
  otherToolbar = [[GSToolbar alloc] initWithIdentifier: @"blablaToolbar"];
  //NSLog(@"Mini controller delegate %@", self);
  
  [otherToolbar setDelegate: self];
  
  [otherToolbarView setBorderMask: GSToolbarViewTopBorder 
                                 | GSToolbarViewBottomBorder
				 | GSToolbarViewRightBorder
			         | GSToolbarViewLeftBorder];
  [(GSToolbarView *)otherToolbarView setToolbar: otherToolbar];
  // We do a cast to eliminate a warning...
  
  RELEASE(otherToolbar);  
}

// Toolbar delegates

- (NSToolbarItem *) toolbar: (GSToolbar *)toolbar itemForItemIdentifier: (NSString *)identifier 
                                             willBeInsertedIntoToolbar: (BOOL)willBeInserted 
{
  NSToolbarItem *toolbarItem = [[NSToolbarItem alloc] initWithItemIdentifier: identifier];

  //NSLog(@"toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar: has been called");
  
  AUTORELEASE(toolbarItem);

  if ([identifier isEqual: @"Third"])
    {
      [toolbarItem setLabel: @"Validation example"];
      [toolbarItem setImage: [NSImage imageNamed:@"RecyclerFull"]];
      [toolbarItem setTarget: buttonWithValidation];
      [toolbarItem setAction: @selector(performClick:)];
    }
  else if ([identifier isEqual: @"Four"]) 
    {
      [toolbarItem setLabel: @"Yet another item"];
      [toolbarItem setImage: [NSImage imageNamed: @"RecyclerFull"]];
      [toolbarItem setTarget: window];
      [toolbarItem setAction: @selector(toggleToolbarShown:)];
    }

  return toolbarItem;
}

- (NSArray *) toolbarDefaultItemIdentifiers: (GSToolbar *)toolbar {
  //NSLog(@"toolbarDefaultItemIdentifiers: has been called");

  return [NSArray arrayWithObjects: @"Third",
                                    @"Four", 
                                    NSToolbarShowFontsItemIdentifier, 
				    NSToolbarShowColorsItemIdentifier,  
				    nil];
}

- (NSArray *) toolbarAllowedItemIdentifiers: (GSToolbar *)toolbar {
  //NSLog(@"toolbarAllowedItemIdentifiers: has been called"); 
    
  return [NSArray arrayWithObjects: @"Third", 
                                    @"Four",
                                    NSToolbarShowFontsItemIdentifier,
	                            NSToolbarShowColorsItemIdentifier,  
				    nil];
}

- (NSArray *) toolbarSelectableItemIdentifiers: (NSToolbar *)toolbar
{
  //NSLog(@"toolbarSelectableItemIdentifiers: has been called");
  
  return [NSArray arrayWithObjects: @"Third", 
                                    NSToolbarShowFontsItemIdentifier,  
				    nil];
}

// ---

- (void) removeItem: (id)sender
{
  [[otherToolbarView toolbar] removeItemAtIndex: [itemIndexField intValue]];
}

- (NSWindow *) window 
{
  return window;
}

- (void) windowClose: (NSNotification *)notification
{
  [[NSNotificationCenter defaultCenter] removeObserver: self];
  AUTORELEASE(self);
}

@end