File: SecondWindowOwner.m

package info (click to toggle)
gnustep-examples 1%3A1.4.0%2Bgit20210703-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 3,164 kB
  • sloc: objc: 17,202; makefile: 56
file content (131 lines) | stat: -rw-r--r-- 4,097 bytes parent folder | download | duplicates (5)
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
128
129
130
131
/*
 *  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"
#include <GNUstepGUI/GSToolbarView.h>

@implementation SecondWindowOwner

- (void) awakeFromNib
{
  NSToolbar *otherToolbar;
  
  //NSLog(@"Nib loaded with window");
  
  otherToolbar = [[NSToolbar alloc] initWithIdentifier: @"blablaToolbar"];
  //NSLog(@"Mini controller delegate %@", self);
  
  [otherToolbar setDelegate: self];
  
  [otherToolbarView setBorderMask: GSToolbarViewTopBorder 
                    | GSToolbarViewBottomBorder
                    | GSToolbarViewRightBorder
                    | GSToolbarViewLeftBorder];
  // We do a cast to eliminate a warning...
  [otherToolbar _setToolbarView: (GSToolbarView *)otherToolbarView];
  
  // We leak the toolbar! It should rather be an instance variable and 
  // freed when this object gets deallocated.
  //RELEASE(otherToolbar);  
}

// Toolbar delegates

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

  //NSLog(@"toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar: has been called");
  
  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 AUTORELEASE(toolbarItem);
}

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

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

- (NSArray *) toolbarAllowedItemIdentifiers: (NSToolbar *)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