git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			177 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        fontmap.h
 | 
						|
// Purpose:     interface of wxFontMapper
 | 
						|
// Author:      wxWidgets team
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Licence:     wxWindows license
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxFontMapper
 | 
						|
    @wxheader{fontmap.h}
 | 
						|
 | 
						|
    wxFontMapper manages user-definable correspondence between logical font
 | 
						|
    names and the fonts present on the machine.
 | 
						|
 | 
						|
    The default implementations of all functions will ask the user if they are
 | 
						|
    not capable of finding the answer themselves and store the answer in a
 | 
						|
    config file (configurable via SetConfigXXX functions). This behaviour may
 | 
						|
    be disabled by giving the value of @false to "interactive" parameter.
 | 
						|
 | 
						|
    However, the functions will always consult the config file to allow the
 | 
						|
    user-defined values override the default logic and there is no way to
 | 
						|
    disable this - which shouldn't be ever needed because if "interactive" was
 | 
						|
    never @true, the config file is never created anyhow.
 | 
						|
 | 
						|
    In case everything else fails (i.e. there is no record in config file
 | 
						|
    and "interactive" is @false or user denied to choose any replacement),
 | 
						|
    the class queries wxEncodingConverter
 | 
						|
    for "equivalent" encodings (e.g. iso8859-2 and cp1250) and tries them.
 | 
						|
 | 
						|
    @library{wxcore}
 | 
						|
    @category{misc}
 | 
						|
 | 
						|
    @see wxEncodingConverter, @ref overview_nonenglishoverview "Writing non-English
 | 
						|
    applications"
 | 
						|
*/
 | 
						|
class wxFontMapper
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Default ctor.
 | 
						|
    */
 | 
						|
    wxFontMapper();
 | 
						|
 | 
						|
    /**
 | 
						|
        Virtual dtor for a base class.
 | 
						|
    */
 | 
						|
    ~wxFontMapper();
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the encoding for the given charset (in the form of RFC 2046) or
 | 
						|
        @c wxFONTENCODING_SYSTEM if couldn't decode it.
 | 
						|
        Be careful when using this function with @a interactive set to @true
 | 
						|
        (default value) as the function then may show a dialog box to the user which
 | 
						|
        may lead to unexpected reentrancies and may also take a significantly longer
 | 
						|
        time than a simple function call. For these reasons, it is almost always a bad
 | 
						|
        idea to call this function from the event handlers for repeatedly generated
 | 
						|
        events such as @c EVT_PAINT.
 | 
						|
    */
 | 
						|
    wxFontEncoding CharsetToEncoding(const wxString& charset,
 | 
						|
                                     bool interactive = true);
 | 
						|
 | 
						|
    /**
 | 
						|
        Get the current font mapper object. If there is no current object, creates
 | 
						|
        one.
 | 
						|
 | 
						|
        @see Set()
 | 
						|
    */
 | 
						|
    static wxFontMapper* Get();
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the array of all possible names for the given encoding. The array is
 | 
						|
        @NULL-terminated. IF it isn't empty, the first name in it is the canonical
 | 
						|
        encoding name, i.e. the same string as returned by
 | 
						|
        GetEncodingName().
 | 
						|
    */
 | 
						|
    static const wxChar** GetAllEncodingNames(wxFontEncoding encoding);
 | 
						|
 | 
						|
    //@{
 | 
						|
    /**
 | 
						|
        Find an alternative for the given encoding (which is supposed to not be
 | 
						|
        available on this system). If successful, return @true and fill info
 | 
						|
        structure with the parameters required to create the font, otherwise
 | 
						|
        return @false.
 | 
						|
        The first form is for wxWidgets' internal use while the second one
 | 
						|
        is better suitable for general use -- it returns wxFontEncoding which
 | 
						|
        can consequently be passed to wxFont constructor.
 | 
						|
    */
 | 
						|
    bool GetAltForEncoding(wxFontEncoding encoding,
 | 
						|
                           wxNativeEncodingInfo* info,
 | 
						|
                           const wxString& facename = wxEmptyString,
 | 
						|
                           bool interactive = true);
 | 
						|
    bool GetAltForEncoding(wxFontEncoding encoding,
 | 
						|
                           wxFontEncoding* alt_encoding,
 | 
						|
                           const wxString& facename = wxEmptyString,
 | 
						|
                           bool interactive = true);
 | 
						|
    //@}
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the @e n-th supported encoding. Together with
 | 
						|
        GetSupportedEncodingsCount()
 | 
						|
        this method may be used to get all supported encodings.
 | 
						|
    */
 | 
						|
    static wxFontEncoding GetEncoding(size_t n);
 | 
						|
 | 
						|
    /**
 | 
						|
        Return user-readable string describing the given encoding.
 | 
						|
    */
 | 
						|
    static wxString GetEncodingDescription(wxFontEncoding encoding);
 | 
						|
 | 
						|
    /**
 | 
						|
        Return the encoding corresponding to the given internal name. This function is
 | 
						|
        the inverse of GetEncodingName() and is
 | 
						|
        intentionally less general than
 | 
						|
        CharsetToEncoding(), i.e. it doesn't
 | 
						|
        try to make any guesses nor ever asks the user. It is meant just as a way of
 | 
						|
        restoring objects previously serialized using
 | 
						|
        GetEncodingName().
 | 
						|
    */
 | 
						|
    static wxFontEncoding GetEncodingFromName(const wxString& encoding);
 | 
						|
 | 
						|
    /**
 | 
						|
        Return internal string identifier for the encoding (see also
 | 
						|
        wxFontMapper::GetEncodingDescription)
 | 
						|
 | 
						|
        @see GetEncodingFromName()
 | 
						|
    */
 | 
						|
    static wxString GetEncodingName(wxFontEncoding encoding);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the number of the font encodings supported by this class. Together with
 | 
						|
        GetEncoding() this method may be used to get
 | 
						|
        all supported encodings.
 | 
						|
    */
 | 
						|
    static size_t GetSupportedEncodingsCount();
 | 
						|
 | 
						|
    /**
 | 
						|
        Check whether given encoding is available in given face or not.
 | 
						|
        If no facename is given, find @e any font in this encoding.
 | 
						|
    */
 | 
						|
    bool IsEncodingAvailable(wxFontEncoding encoding,
 | 
						|
                             const wxString& facename = wxEmptyString);
 | 
						|
 | 
						|
    /**
 | 
						|
        Set the current font mapper object and return previous one (may be @NULL).
 | 
						|
        This method is only useful if you want to plug-in an alternative font mapper
 | 
						|
        into wxWidgets.
 | 
						|
 | 
						|
        @see Get()
 | 
						|
    */
 | 
						|
    static wxFontMapper* Set(wxFontMapper* mapper);
 | 
						|
 | 
						|
    /**
 | 
						|
        Set the config object to use (may be @NULL to use default).
 | 
						|
        By default, the global one (from wxConfigBase::Get() will be used)
 | 
						|
        and the default root path for the config settings is the string returned by
 | 
						|
        GetDefaultConfigPath().
 | 
						|
    */
 | 
						|
    void SetConfig(wxConfigBase* config);
 | 
						|
 | 
						|
    /**
 | 
						|
        Set the root config path to use (should be an absolute path).
 | 
						|
    */
 | 
						|
    void SetConfigPath(const wxString& prefix);
 | 
						|
 | 
						|
    /**
 | 
						|
        The parent window for modal dialogs.
 | 
						|
    */
 | 
						|
    void SetDialogParent(wxWindow* parent);
 | 
						|
 | 
						|
    /**
 | 
						|
        The title for the dialogs (note that default is quite reasonable).
 | 
						|
    */
 | 
						|
    void SetDialogTitle(const wxString& title);
 | 
						|
};
 | 
						|
 |