AppFileInfo.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 //
00003 //  File:           AppFileInfo.h
00004 //
00005 //  Description:    File type information
00006 //
00007 //  Copyright 1998, Be Incorporated, All Rights Reserved.
00008 //
00009 ****************************************************************************/
00010 
00011 #ifndef _APP_FILE_INFO_H
00012 #define _APP_FILE_INFO_H
00013 
00014 #ifndef _BE_BUILD_H
00015 #include <BeBuild.h>
00016 #endif
00017 #include <NodeInfo.h>
00018 
00019 class BBitmap;
00020 class BMessage;
00021 class BResources;
00022 class BFile;
00023 
00024 /* ------------------------------------------------------------- */
00025 
00026 struct  version_info {
00027     uint32  major;
00028     uint32  middle;
00029     uint32  minor;
00030     uint32  variety;
00031     uint32  internal;
00032     char    short_info[64];
00033     char    long_info[256];
00034 };
00035 
00036 enum version_variety {
00037     B_DEVELOPMENT_VERSION = 0,
00038     B_ALPHA_VERSION,
00039     B_BETA_VERSION,
00040     B_GAMMA_VERSION,
00041     B_GOLDEN_MASTER_VERSION,
00042     B_FINAL_VERSION
00043 };
00044 
00045 enum info_location {
00046     B_USE_ATTRIBUTES = 0x1,
00047     B_USE_RESOURCES = 0x2,
00048     B_USE_BOTH_LOCATIONS = 0x3
00049 };
00050 
00051 enum version_kind {
00052     B_APP_VERSION_KIND,
00053     B_SYSTEM_VERSION_KIND
00054 };
00055 
00056 /* ------------------------------------------------------------- */
00057 
00058 class BAppFileInfo: public BNodeInfo {
00059 public:
00060                     BAppFileInfo();
00061                     BAppFileInfo(BFile *file);
00062 virtual             ~BAppFileInfo();
00063 
00064         status_t    SetTo(BFile *file);
00065 
00066 virtual status_t    GetType(char *type) const;
00067         status_t    GetSignature(char *sig) const;
00068         status_t    GetAppFlags(uint32 *flags) const;
00069         status_t    GetSupportedTypes(BMessage *types) const;
00070         status_t    GetIcon(BBitmap *icon, icon_size which) const;
00071         status_t    GetVersionInfo(version_info *vinfo, version_kind k) const;
00072         status_t    GetIconForType(const char *type,
00073                                     BBitmap *icon,
00074                                     icon_size which) const;
00075         
00076         bool        IsSupportedType(const char *type) const;
00077 
00078 virtual status_t    SetType(const char *type);
00079         status_t    SetSignature(const char *sig);
00080         status_t    SetAppFlags(uint32 flags);
00081         status_t    SetSupportedTypes(const BMessage *types,
00082                                         bool sync_all);
00083         status_t    SetSupportedTypes(const BMessage *types);
00084         status_t    SetIcon(const BBitmap *icon, icon_size which);
00085         status_t    SetVersionInfo(const version_info *vinfo, version_kind k);
00086         status_t    SetIconForType(const char *type,
00087                                     const BBitmap *icon,
00088                                     icon_size which);
00089 
00090         void        SetInfoLocation(info_location loc);
00091         bool        IsUsingAttributes() const;
00092         bool        IsUsingResources() const;
00093 
00094         bool        Supports(BMimeType *mt) const;
00095 
00096 private:
00097 typedef BNodeInfo inherited;
00098 friend  status_t    _update_mime_info_(const char *, int32);
00099 friend  status_t    _real_update_app_(BAppFileInfo *, const char *, bool);
00100 friend  status_t    _query_for_app_(BMimeType *, const char *,
00101                         entry_ref *, version_info *);
00102 friend  class       BRoster;
00103 
00104 virtual void        _ReservedAppFileInfo1();
00105 virtual void        _ReservedAppFileInfo2();
00106 virtual void        _ReservedAppFileInfo3();
00107 
00108 static  status_t    SetSupTypesForAll(BMimeType *, const BMessage *);
00109 
00110         BAppFileInfo    &operator=(const BAppFileInfo &);
00111                         BAppFileInfo(const BAppFileInfo &);
00112 
00113         status_t    _SetSupportedTypes(const BMessage *types);
00114         status_t    UpdateFromRsrc();
00115         status_t    RealUpdateRsrcToAttr();
00116         status_t    UpdateMetaMime(const char *path, bool force,
00117                         uint32 *changes_mask) const;
00118         bool        IsApp();
00119         status_t    GetMetaMime(BMimeType *meta) const;
00120 
00121         BResources  *fResources;
00122         info_location   fWhere;
00123         uint32      _reserved[2];
00124 };
00125 
00126 #endif

Copyright 2005 by yellowTAB GmbH, Be Inc., Palm Source Inc. and their respective legal successors
All rights reserved.