mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-25 12:21:07 +00:00
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30033 72102866-910b-0410-8b05-ffd578937521
225 lines
5.5 KiB
Objective-C
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
|
|
|
|
|