mirror of
https://github.com/gnustep/apps-gorm.git
synced 2025-02-23 11:41:05 +00:00
Pull private methods into a separate file
This commit is contained in:
parent
5fbe6939cd
commit
abb6dc553c
4 changed files with 176 additions and 94 deletions
|
@ -23,92 +23,9 @@
|
|||
* USA.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AppKit/AppKit.h>
|
||||
|
||||
#import <GormCore/GormPlugin.h>
|
||||
#import <GormCore/GormDocumentController.h>
|
||||
|
||||
#import <GNUstepGUI/GSNibLoading.h>
|
||||
|
||||
#import "GormToolPrivate.h"
|
||||
#import "AppDelegate.h"
|
||||
|
||||
static NSMutableArray *__types = nil;
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wobjc-protocol-method-implementation"
|
||||
|
||||
// Special method category smashes so that we can register types...
|
||||
|
||||
@implementation NSDocumentController (ToolPrivate)
|
||||
|
||||
- (Class) documentClassForType: (NSString *)type
|
||||
{
|
||||
return [GormDocument class];
|
||||
}
|
||||
|
||||
- (NSString *) typeFromFileExtension: (NSString *)fileExtension
|
||||
{
|
||||
int i, count = [__types count];
|
||||
|
||||
// Check for a document type with the supplied extension
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
NSDictionary *typeInfo = [__types objectAtIndex: i];
|
||||
NSArray *array = [typeInfo objectForKey: @"NSUnixExtensions"];
|
||||
|
||||
NSDebugLog(@"typeInfo = %@", typeInfo);
|
||||
NSDebugLog(@"fileExtension = %@", fileExtension);
|
||||
|
||||
if ([array containsObject: fileExtension])
|
||||
{
|
||||
NSString *type = [typeInfo objectForKey: @"NSName"];
|
||||
NSDebugLog(@"type = %@", type);
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
NSDebugLog(@"FAILED");
|
||||
return nil;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation GormDocument (ToolPrivate)
|
||||
|
||||
+ (BOOL) isNativeType: (NSString *)type
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation GormPlugin (ToolPrivate)
|
||||
|
||||
- (void) registerDocumentTypeName: (NSString *)name
|
||||
humanReadableName: (NSString *)hrName
|
||||
forExtensions: (NSArray *)extensions
|
||||
{
|
||||
if (__types == nil)
|
||||
{
|
||||
__types = [NSMutableArray arrayWithCapacity: 10];
|
||||
}
|
||||
|
||||
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
|
||||
name, @"NSName",
|
||||
hrName, @"NSHumanReadableName",
|
||||
extensions, @"NSUnixExtensions",
|
||||
@"Editor", @"NSRole",
|
||||
nil];
|
||||
[__types addObject: dict];
|
||||
|
||||
NSDebugLog(@"__types = %@", __types);
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
@interface ArgPair : NSObject <NSCopying>
|
||||
{
|
||||
NSString *_argument;
|
||||
|
@ -178,14 +95,6 @@ static NSMutableArray *__types = nil;
|
|||
// AppDelegate...
|
||||
@implementation AppDelegate
|
||||
|
||||
+ (void) initialize
|
||||
{
|
||||
if (__types == nil)
|
||||
{
|
||||
__types = [NSMutableArray arrayWithCapacity: 10];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSDictionary *) parseArguments
|
||||
{
|
||||
GormDocumentController *dc = [GormDocumentController sharedDocumentController];
|
||||
|
|
|
@ -7,8 +7,12 @@ include $(GNUSTEP_MAKEFILES)/common.make
|
|||
PACKAGE_NAME = gormtool
|
||||
TOOL_NAME = gormtool
|
||||
|
||||
gormtool_HEADER_FILES =
|
||||
gormtool_OBJC_FILES = main.m AppDelegate.m
|
||||
gormtool_HEADER_FILES = AppDelegate.h
|
||||
GormToolPrivate.h \
|
||||
|
||||
gormtool_OBJC_FILES = main.m \
|
||||
AppDelegate.m \
|
||||
GormToolPrivate.m \
|
||||
|
||||
-include GNUmakefile.preamble
|
||||
|
||||
|
|
67
Tools/gormtool/GormToolPrivate.h
Normal file
67
Tools/gormtool/GormToolPrivate.h
Normal file
|
@ -0,0 +1,67 @@
|
|||
/* GormToolPrivate.h
|
||||
*
|
||||
* Copyright (C) 2023 Free Software Foundation, Inc.
|
||||
*
|
||||
* Author: Gregory John Casamento <greg.casamento@gmail.com>
|
||||
* Date: 2023
|
||||
*
|
||||
* This file 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 3 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., 51 Franklin Street, Fifth Floor, Boston, MA 02111
|
||||
* USA.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef INCLUDE_GormToolPrivate_H
|
||||
#define INCLUDE_GormToolPrivate_H
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AppKit/AppKit.h>
|
||||
|
||||
#import <GormCore/GormPlugin.h>
|
||||
#import <GormCore/GormDocumentController.h>
|
||||
#import <GormCore/GormDocument.h>
|
||||
|
||||
#import <GNUstepGUI/GSNibLoading.h>
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wobjc-protocol-method-implementation"
|
||||
|
||||
// Special method category smashes so that we can register types...
|
||||
|
||||
@interface NSDocumentController (ToolPrivate)
|
||||
|
||||
- (Class) documentClassForType: (NSString *)type;
|
||||
- (NSString *) typeFromFileExtension: (NSString *)fileExtension;
|
||||
|
||||
@end
|
||||
|
||||
@interface GormDocument (ToolPrivate)
|
||||
|
||||
+ (BOOL) isNativeType: (NSString *)type;
|
||||
|
||||
@end
|
||||
|
||||
@interface GormPlugin (ToolPrivate)
|
||||
|
||||
- (void) registerDocumentTypeName: (NSString *)name
|
||||
humanReadableName: (NSString *)hrName
|
||||
forExtensions: (NSArray *)extensions;
|
||||
|
||||
@end
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
#endif
|
102
Tools/gormtool/GormToolPrivate.m
Normal file
102
Tools/gormtool/GormToolPrivate.m
Normal file
|
@ -0,0 +1,102 @@
|
|||
/* GormToolPrivate.m
|
||||
*
|
||||
* Copyright (C) 2023 Free Software Foundation, Inc.
|
||||
*
|
||||
* Author: Gregory John Casamento <greg.casamento@gmail.com>
|
||||
* Date: 2023
|
||||
*
|
||||
* This file 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 3 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., 51 Franklin Street, Fifth Floor, Boston, MA 02111
|
||||
* USA.
|
||||
*/
|
||||
|
||||
#import "GormToolPrivate.h"
|
||||
|
||||
static NSMutableArray *__types = nil;
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wobjc-protocol-method-implementation"
|
||||
|
||||
// Special method category smashes so that we can register types...
|
||||
|
||||
@implementation NSDocumentController (ToolPrivate)
|
||||
|
||||
- (Class) documentClassForType: (NSString *)type
|
||||
{
|
||||
return [GormDocument class];
|
||||
}
|
||||
|
||||
- (NSString *) typeFromFileExtension: (NSString *)fileExtension
|
||||
{
|
||||
int i, count = [__types count];
|
||||
|
||||
// Check for a document type with the supplied extension
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
NSDictionary *typeInfo = [__types objectAtIndex: i];
|
||||
NSArray *array = [typeInfo objectForKey: @"NSUnixExtensions"];
|
||||
|
||||
NSDebugLog(@"typeInfo = %@", typeInfo);
|
||||
NSDebugLog(@"fileExtension = %@", fileExtension);
|
||||
|
||||
if ([array containsObject: fileExtension])
|
||||
{
|
||||
NSString *type = [typeInfo objectForKey: @"NSName"];
|
||||
NSDebugLog(@"type = %@", type);
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
NSDebugLog(@"FAILED");
|
||||
return nil;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation GormDocument (ToolPrivate)
|
||||
|
||||
+ (BOOL) isNativeType: (NSString *)type
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation GormPlugin (ToolPrivate)
|
||||
|
||||
- (void) registerDocumentTypeName: (NSString *)name
|
||||
humanReadableName: (NSString *)hrName
|
||||
forExtensions: (NSArray *)extensions
|
||||
{
|
||||
if (__types == nil)
|
||||
{
|
||||
__types = [NSMutableArray arrayWithCapacity: 10];
|
||||
}
|
||||
|
||||
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
|
||||
name, @"NSName",
|
||||
hrName, @"NSHumanReadableName",
|
||||
extensions, @"NSUnixExtensions",
|
||||
@"Editor", @"NSRole",
|
||||
nil];
|
||||
[__types addObject: dict];
|
||||
|
||||
NSDebugLog(@"__types = %@", __types);
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#pragma GCC diagnostic pop
|
Loading…
Reference in a new issue