libs-gui/Headers/AppKit/NSFontManager.h
Fred Kiefer 0d78f7f50a Another bit of #include -> #import replacement.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30033 72102866-910b-0410-8b05-ffd578937521
2010-03-24 22:41:21 +00:00

225 lines
5.5 KiB
Objective-C

/*
NSFontManager.h
Manages system and user fonts
Copyright (C) 1996 Free Software Foundation, Inc.
Author: Scott Christley <scottc@net-community.com>
Date: 1996
Modified: Fred Kiefer <FredKiefer@gmx.de>
Date: January 2000
Almost complete rewrite.
This file is part of the GNUstep GUI Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; see the file COPYING.LIB.
If not, see <http://www.gnu.org/licenses/> or write to the
Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef _GNUstep_H_NSFontManager
#define _GNUstep_H_NSFontManager
#import <GNUstepBase/GSVersionMacros.h>
#import <Foundation/NSObject.h>
@class NSString;
@class NSArray;
@class NSDictionary;
@class NSMutableDictionary;
@class NSFont;
@class NSFontDescriptor;
@class NSMenu;
@class NSFontPanel;
#if OS_API_VERSION(MAC_OS_X_VERSION_10_3, GS_API_LATEST)
enum _NSFontManagerAddCollectionOptions
{
NSFontCollectionApplicationOnlyMask = 1 << 0
};
#endif
typedef unsigned int NSFontTraitMask;
enum {
NSItalicFontMask = 1,
NSBoldFontMask = 2,
NSUnboldFontMask = 4,
NSNonStandardCharacterSetFontMask = 8,
NSNarrowFontMask = 16,
NSExpandedFontMask = 32,
NSCondensedFontMask = 64,
NSSmallCapsFontMask = 128,
NSPosterFontMask = 256,
NSCompressedFontMask = 512,
NSFixedPitchFontMask = 1024,
NSUnitalicFontMask = 1 << 24
};
typedef enum {
NSNoFontChangeAction,
NSViaPanelFontAction,
NSAddTraitFontAction,
NSRemoveTraitFontAction,
NSSizeUpFontAction,
NSSizeDownFontAction,
NSHeavierFontAction,
NSLighterFontAction,
} NSFontTag;
@interface NSFontManager : NSObject
{
// Attributes
id _delegate;
SEL _action;
NSFont *_selectedFont;
BOOL _multiple;
NSMenu *_fontMenu;
NSFontTag _storedTag;
NSFontTraitMask _trait;
id _fontEnumerator;
NSDictionary *_selectedAttributes;
NSMutableDictionary *_collections;
}
//
// Managing the FontManager
//
+ (void) setFontManagerFactory: (Class)aClass;
+ (void) setFontPanelFactory: (Class)aClass;
+ (NSFontManager *)sharedFontManager;
//
// information on available fonts
//
- (NSArray *)availableFonts;
- (NSArray *)availableFontFamilies;
- (NSArray *)availableFontNamesWithTraits:(NSFontTraitMask)fontTraitMask;
- (NSArray *)availableMembersOfFontFamily:(NSString *)family;
- (NSString *) localizedNameForFamily:(NSString *)family face:(NSString *)face;
//
// Selecting fonts
//
- (void)setSelectedFont:(NSFont *)fontObject
isMultiple:(BOOL)flag;
- (NSFont *)selectedFont;
- (BOOL)isMultiple;
- (BOOL)sendAction;
//
// Action methods
//
- (void)addFontTrait:(id)sender;
- (void)removeFontTrait:(id)sender;
- (void)modifyFont:(id)sender;
- (void)modifyFontViaPanel:(id)sender;
//
//Automatic font conversion
//
- (NSFont *)convertFont:(NSFont *)fontObject;
//
// Converting Fonts
//
- (NSFont *)convertFont:(NSFont *)fontObject
toFamily:(NSString *)family;
- (NSFont *)convertFont:(NSFont *)fontObject
toFace:(NSString *)typeface;
- (NSFont *)convertFont:(NSFont *)fontObject
toHaveTrait:(NSFontTraitMask)trait;
- (NSFont *)convertFont:(NSFont *)fontObject
toNotHaveTrait:(NSFontTraitMask)trait;
- (NSFont *)convertFont:(NSFont *)fontObject
toSize:(float)size;
- (NSFont *)convertWeight:(BOOL)upFlag
ofFont:(NSFont *)fontObject;
//
// Getting a font
//
- (NSFont *)fontWithFamily:(NSString *)family
traits:(NSFontTraitMask)traits
weight:(int)weight
size:(float)size;
//
// Examining a font
//
- (NSFontTraitMask)traitsOfFont:(NSFont *)aFont;
- (int)weightOfFont:(NSFont *)fontObject;
- (BOOL)fontNamed:(NSString *)typeface
hasTraits:(NSFontTraitMask)fontTraitMask;
//
// Enabling
//
- (BOOL)isEnabled;
- (void)setEnabled:(BOOL)flag;
//
// Font menu
//
- (NSMenu *)fontMenu:(BOOL)create;
- (void)setFontMenu:(NSMenu *)newMenu;
//
// Font panel
//
- (NSFontPanel *)fontPanel:(BOOL)create;
- (void)orderFrontFontPanel:(id)sender;
//
// Assigning a Delegate
//
- (id)delegate;
- (void)setDelegate:(id)anObject;
//
// Action Methods
//
- (SEL)action;
- (void)setAction:(SEL)aSelector;
#if OS_API_VERSION(MAC_OS_X_VERSION_10_3, GS_API_LATEST)
- (BOOL)addCollection:(NSString *)name options:(int)options;
- (BOOL)removeCollection:(NSString *)collection;
- (NSArray *)collectionNames;
- (void)addFontDescriptors:(NSArray *)descriptors
toCollection:(NSString *)collection;
- (void)removeFontDescriptor:(NSFontDescriptor *)descriptor
fromCollection:(NSString *)collection;
- (NSArray *)fontDescriptorsInCollection:(NSString *)collection;
- (NSArray *)availableFontNamesMatchingFontDescriptor:(NSFontDescriptor *)descriptor;
- (NSDictionary *)convertAttributes:(NSDictionary *)attributes;
- (void)setSelectedAttributes:(NSDictionary *)attributes
isMultiple:(BOOL)flag;
#endif
@end
@interface NSObject (NSFontManagerDelegate)
//
// Methods Implemented by the Delegate
//
- (BOOL)fontManager:(id)sender willIncludeFont:(NSString *)fontName;
@end
#endif // _GNUstep_H_NSFontManager