47 char line[1024] = {0};
48 char mime[1024] = {0};
49 char pattern[256] = {0};
51 char sicon[256] = {0};
52 char action[256] = {0};
68 while (fgets(
line, 1024, mfp)) {
70 s[strlen(
line)-1] = 0;
71 while (*s ==
' ') s++;
72 if (*s ==
'#')
continue;
76 strlcpy(mime,
line, 1024);
80 if (!strncmp(s,
"pattern", 7)) {
81 if (!(s = strchr(
line,
'='))) {
82 Error(
"TGMimeTypes",
"malformed pattern line, = missing");
87 strlcpy(pattern, s, 256);
91 }
else if (!strncmp(s,
"icon", 4)) {
92 if (!(s = strchr(
line,
'='))) {
93 Error(
"TGMimeTypes",
"malformed icon line, = missing");
99 if ((s2 = strchr(s,
' '))) {
101 strlcpy(icon, s, 256);
104 strlcpy(sicon, s2, 256);
107 strlcpy(icon, s, 256);
108 strlcpy(sicon, s, 256);
113 }
else if (!strncmp(s,
"action", 6)) {
114 if (!(s = strchr(
line,
'='))) {
115 Error(
"TGMimeTypes",
"malformed action line, = missing");
120 strlcpy(action, s, 256);
127 if (strchr(pattern,
' ')) {
128 char *tmppattern = strtok(pattern,
" ");
129 while (tmppattern && (*tmppattern !=
' ')) {
130 AddType(mime, tmppattern, icon, sicon, action);
131 tmppattern = strtok(0,
" ");
134 AddType(mime, pattern, icon, sicon, action);
194 while ((mime = (
TGMime *) next()))
232 return (strlen(action) > 0);
247 return (strlen(
type) > 0);
260 while ((
m = (
TGMime *) next())) {
261 printf(
"Type: %s\n",
m->fType.Data());
262 printf(
"Pattern: %s\n",
m->fPattern.Data());
263 if (
m->fIcon !=
m->fSIcon)
264 printf(
"Icon: %s %s\n",
m->fIcon.Data(),
m->fSIcon.Data());
266 printf(
"Icon: %s\n",
m->fIcon.Data());
267 printf(
"Action: %s\n",
m->fAction.Data());
268 printf(
"------------\n\n");
284 FILE *fp = fopen(
filename.Data(),
"wt");
287 Error(
"SaveMimes",
"can not open %s to store mime types",
filename.Data());
297 while ((
m = (
TGMime *) next())) {
298 fprintf(fp,
"%s\n",
m->fType.Data());
299 fprintf(fp,
"pattern = %s\n",
m->fPattern.Data());
300 if (
m->fIcon !=
m->fSIcon)
301 fprintf(fp,
"icon = %s %s\n",
m->fIcon.Data(),
m->fSIcon.Data());
303 fprintf(fp,
"icon = %s\n",
m->fIcon.Data());
304 fprintf(fp,
"action = %s\n\n",
m->fAction.Data());
316 const char *sicon,
const char *action)
328 fList->AddFirst(mime);
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
char * Strip(const char *str, char c=' ')
Strip leading and trailing c (blanks by default) from a string.
R__EXTERN TSystem * gSystem
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
const char * AsString() const
Return the date & time as a string (ctime() format).
This class handles mime types, used by browsers to map file types to applications and icons.
TGMimeTypes & operator=(const TGMimeTypes &gmt)
Assignment operator.
Bool_t fChanged
true if file has changed
void SaveMimes()
Save mime types in user's mime type file.
TGMime * Find(const char *filename)
Given a filename find the matching mime type object.
void AddType(const char *type, const char *pat, const char *icon, const char *sicon, const char *action)
Add a mime type to the list of mime types.
TOrdCollection * fList
list of mime types
TGMimeTypes(const TGMimeTypes &gmt)
Copy constructor.
~TGMimeTypes() override
Delete mime type pool.
TGClient * fClient
client to which mime types belong (display server)
void Print(Option_t *option="") const override
Print list of mime types.
const TGPicture * GetIcon(const char *filename, Bool_t small_icon)
Return icon belonging to mime type of filename.
Bool_t GetAction(const char *filename, char *action)
Return in action the mime action string belonging to filename.
Bool_t GetType(const char *filename, char *type)
Return in type the mime type belonging to filename.
TString fFilename
file name of mime type file
TGMime is internally used by TGMimeTypes.
TString fPattern
filename pattern
TRegexp * fReg
pattern regular expression
TString fIcon
associated icon (32x32)
TString fAction
associated action
~TGMime() override
Delete mime object.
TString fSIcon
associated small icon (16x16)
The TGPicture class implements pictures and icons used in the different GUI elements and widgets.
TObject & operator=(const TObject &rhs)
TObject assignment operator.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
TObject()
TObject constructor.
Regular expression class.
const char * Data() const
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const