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);
159 fClient(gmt.fClient),
160 fFilename(gmt.fFilename),
161 fChanged(gmt.fChanged),
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)
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).
const TGPicture * GetPicture(const char *name)
Get picture from the picture pool.
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.
Mother of all ROOT objects.
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.
void AddFirst(TObject *obj) override
Insert object at beginning of collection.
void Delete(Option_t *option="") override
Remove all objects from the collection AND delete all heap based objects.
Regular expression class.
const char * Data() const
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual const char * HomeDirectory(const char *userName=nullptr)
Return the user's home directory.