mirror of
https://github.com/nickshanks/ResKnife.git
synced 2025-02-07 05:30:44 +00:00
Added support for deleting LSTBs using the "Clear" menu item. Also added general support for cut/copy/paste/clear menu items to template fields.
This commit is contained in:
parent
c3dfaeef25
commit
c01540cbe8
Binary file not shown.
@ -7,7 +7,7 @@
|
||||
<key>IBEditorPositions</key>
|
||||
<dict>
|
||||
<key>23</key>
|
||||
<string>412 326 270 342 0 0 1024 746 </string>
|
||||
<string>379 326 270 342 0 0 1024 746 </string>
|
||||
</dict>
|
||||
<key>IBFramework Version</key>
|
||||
<string>326.0</string>
|
||||
|
Binary file not shown.
2
NuTemplateEditor/Localizable.strings
Normal file
2
NuTemplateEditor/Localizable.strings
Normal file
@ -0,0 +1,2 @@
|
||||
/* Name we give the "Create New Resource..." menu item: */
|
||||
"Create List Entry" = "Create List Entry";
|
@ -83,5 +83,11 @@
|
||||
}
|
||||
|
||||
|
||||
-(IBAction) clear: (id)sender
|
||||
{
|
||||
[containing removeObject: self];
|
||||
[self autorelease];
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
@ -40,6 +40,7 @@
|
||||
NSMutableArray* templateStructure; // Pre-parsed form of our template.
|
||||
NSMutableArray* resourceStructure; // Parsed form of our resource.
|
||||
id <ResKnifeResourceProtocol> resource; // The resource we operate on.
|
||||
NSMenuItem* createFieldItem; // "Create Resource" menu item we usurp to create list items.
|
||||
}
|
||||
|
||||
-(void) readTemplate: (id <ResKnifeResourceProtocol>)tmplRes;
|
||||
@ -48,6 +49,10 @@
|
||||
-(void) writeResData;
|
||||
|
||||
-(IBAction) showCreateResourceSheet: (id)sender;
|
||||
-(IBAction) cut: (id)sender;
|
||||
-(IBAction) copy: (id)sender;
|
||||
-(IBAction) paste: (id)sender;
|
||||
-(IBAction) clear: (id)sender;
|
||||
|
||||
|
||||
@end
|
||||
|
@ -65,6 +65,7 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
createFieldItem = nil;
|
||||
resource = [newResource retain];
|
||||
templateStructure = [[NSMutableArray alloc] init];
|
||||
resourceStructure = [[NSMutableArray alloc] init];
|
||||
@ -248,6 +249,42 @@
|
||||
}
|
||||
|
||||
|
||||
-(IBAction) cut: (id)sender;
|
||||
{
|
||||
NuTemplateElement *selItem = (NuTemplateElement*) [dataList selectedItem];
|
||||
|
||||
[selItem cut: sender]; // Let selected item do its magic.
|
||||
|
||||
[dataList reloadData]; // Update our display.
|
||||
}
|
||||
|
||||
-(IBAction) copy: (id)sender;
|
||||
{
|
||||
NuTemplateElement *selItem = (NuTemplateElement*) [dataList selectedItem];
|
||||
|
||||
[selItem copy: sender]; // Let selected item do its magic.
|
||||
|
||||
[dataList reloadData]; // Update our display.
|
||||
}
|
||||
|
||||
-(IBAction) paste: (id)sender;
|
||||
{
|
||||
NuTemplateElement *selItem = (NuTemplateElement*) [dataList selectedItem];
|
||||
|
||||
[selItem paste: sender]; // Let selected item do its magic.
|
||||
|
||||
[dataList reloadData]; // Update our display.
|
||||
}
|
||||
|
||||
-(IBAction) clear: (id)sender;
|
||||
{
|
||||
NuTemplateElement *selItem = (NuTemplateElement*) [dataList selectedItem];
|
||||
|
||||
[selItem clear: sender]; // Let selected item do its magic.
|
||||
|
||||
[dataList reloadData]; // Update our display.
|
||||
}
|
||||
|
||||
/* showCreateResourceSheet: we mis-use this menu item for creating new template fields.
|
||||
This works by selecting an item that serves as a template (another LSTB), or knows
|
||||
how to create an item (LSTE) and passing the message on to it. */
|
||||
@ -264,14 +301,38 @@
|
||||
|
||||
-(BOOL) validateMenuItem: (NSMenuItem*)item
|
||||
{
|
||||
NuTemplateElement *selItem = (NuTemplateElement*) [dataList selectedItem];
|
||||
NuTemplateElement *selElement = (NuTemplateElement*) [dataList selectedItem];
|
||||
|
||||
if( [item action] == @selector(showCreateResourceSheet:) )
|
||||
return( selItem != nil && [selItem respondsToSelector: @selector(showCreateResourceSheet:)] );
|
||||
{
|
||||
createFieldItem = item;
|
||||
[item setTitle: NSLocalizedString(@"Create List Entry",@"")];
|
||||
|
||||
return( selElement != nil && [selElement respondsToSelector: @selector(showCreateResourceSheet:)] );
|
||||
}
|
||||
else if( [item action] == @selector(cut:) )
|
||||
return( selElement != nil && [selElement respondsToSelector: @selector(cut:)] );
|
||||
else if( [item action] == @selector(copy:) )
|
||||
return( selElement != nil && [selElement respondsToSelector: @selector(copy:)] );
|
||||
else if( [item action] == @selector(paste:) && selElement != nil
|
||||
&& [selElement respondsToSelector: @selector(validateMenuItem:)] )
|
||||
return( [selElement validateMenuItem: item] );
|
||||
else if( [item action] == @selector(clear:) )
|
||||
return( selElement != nil && [selElement respondsToSelector: @selector(clear:)] );
|
||||
else return [super validateMenuItem:item];
|
||||
}
|
||||
|
||||
|
||||
-(void) windowDidResignKey: (NSNotification*)notification
|
||||
{
|
||||
if( createFieldItem )
|
||||
{
|
||||
[createFieldItem setTitle: NSLocalizedString(@"Create New Resource...",@"")];
|
||||
createFieldItem = nil;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-(BOOL) windowShouldClose: (id)sender // Window delegate.
|
||||
{
|
||||
[self writeResData]; // Save resource.
|
||||
|
@ -258,6 +258,7 @@
|
||||
3D0933BF04DF151C00DD74B1,
|
||||
3D0933EB04DF319F00DD74B1,
|
||||
3D0B38B504DEF465005AED5E,
|
||||
3D2EE5E204E5C56F00515930,
|
||||
);
|
||||
isa = PBXGroup;
|
||||
path = NuTemplateEditor;
|
||||
@ -313,6 +314,7 @@
|
||||
files = (
|
||||
3D0B38C204DEF5E5005AED5E,
|
||||
3D0933F504DFD7CF00DD74B1,
|
||||
3D2EE5E304E5C56F00515930,
|
||||
);
|
||||
isa = PBXResourcesBuildPhase;
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@ -461,6 +463,18 @@
|
||||
settings = {
|
||||
};
|
||||
};
|
||||
3D2EE5E204E5C56F00515930 = {
|
||||
fileEncoding = 4;
|
||||
isa = PBXFileReference;
|
||||
path = Localizable.strings;
|
||||
refType = 4;
|
||||
};
|
||||
3D2EE5E304E5C56F00515930 = {
|
||||
fileRef = 3D2EE5E204E5C56F00515930;
|
||||
isa = PBXBuildFile;
|
||||
settings = {
|
||||
};
|
||||
};
|
||||
3D3292F604DC1980008C719F = {
|
||||
fileRef = 3D3B99B104DC15600056861E;
|
||||
isa = PBXBuildFile;
|
||||
|
Loading…
x
Reference in New Issue
Block a user