33 #include "RConfigure.h"
48 const int gray_width = 8;
49 const int gray_height = 8;
50 static unsigned char gray_bits[] = {
51 0x55, 0xaa, 0x55, 0xaa,
52 0x55, 0xaa, 0x55, 0xaa
56 ClassImp(TGResourcePool);
61 TGResourcePool::TGResourcePool(TGClient *client)
64 fDefaultColormap = gVirtualX->GetColormap();
67 TString default_font = gEnv->GetValue(
"Gui.DefaultFont",
"-*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1");
68 TString menu_font = gEnv->GetValue(
"Gui.MenuFont",
"-*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1");
69 TString menu_hi_font = gEnv->GetValue(
"Gui.MenuHiFont",
"-*-helvetica-bold-r-*-*-12-*-*-*-*-*-iso8859-1");
70 TString doc_fixed_font = gEnv->GetValue(
"Gui.DocFixedFont",
"-*-courier-medium-r-*-*-12-*-*-*-*-*-iso8859-1");
71 TString doc_prop_font = gEnv->GetValue(
"Gui.DocPropFont",
"-*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1");
72 TString icon_font = gEnv->GetValue(
"Gui.IconFont",
"-*-helvetica-medium-r-*-*-10-*-*-*-*-*-iso8859-1");
73 TString status_font = gEnv->GetValue(
"Gui.StatusFont",
"-*-helvetica-medium-r-*-*-10-*-*-*-*-*-iso8859-1");
74 TString backcolor = gEnv->GetValue(
"Gui.BackgroundColor",
"#e0e0e0");
75 TString forecolor = gEnv->GetValue(
"Gui.ForegroundColor",
"black");
76 TString highlightcolor = gEnv->GetValue(
"Gui.HighLightColor",
"#d0d0d0");
77 TString selbackcolor = gEnv->GetValue(
"Gui.SelectBackgroundColor",
"#86abd9");
78 TString selforecolor = gEnv->GetValue(
"Gui.SelectForegroundColor",
"white");
79 TString docbackcolor = gEnv->GetValue(
"Gui.DocumentBackgroundColor",
"white");
80 TString docforecolor = gEnv->GetValue(
"Gui.DocumentForegroundColor",
"black");
81 TString tipbackcolor = gEnv->GetValue(
"Gui.TooltipBackgroundColor",
"LightYellow");
82 TString tipforecolor = gEnv->GetValue(
"Gui.TooltipForegroundColor",
"black");
83 TString framebgpixmap = gEnv->GetValue(
"Gui.FrameBackgroundPixmap",
"");
84 TString docbgpixmap = gEnv->GetValue(
"Gui.DocumentBackgroundPixmap",
"");
86 TString icon_path = gEnv->GetValue(
"Gui.IconPath",
"");
87 if (icon_path.IsNull()) {
89 gSystem->PrependPathName(gSystem->HomeDirectory(), icon_path);
91 icon_path =
".:" + icon_path +
":" + TROOT::GetIconPath() +
":" + EXTRAICONPATH;
93 icon_path =
".;" + icon_path +
";" + TROOT::GetIconPath() +
";" + EXTRAICONPATH;
97 TString mime_file =
".root.mimes";
98 gSystem->PrependPathName(gSystem->HomeDirectory(), mime_file);
99 mime_file = gEnv->GetValue(
"Gui.MimeTypeFile", mime_file.Data());
100 char *mf = gSystem->ExpandPathName(mime_file.Data());
105 if (gSystem->AccessPathName(mime_file, kReadPermission)) {
106 mime_file =
"root.mimes";
107 gSystem->PrependPathName(TROOT::GetEtcDir(), mime_file);
111 fClient->GetColorByName(
"white", fWhite);
112 fClient->GetColorByName(
"black", fBlack);
113 if (!fClient->GetColorByName(backcolor, fBackColor))
115 if (!fClient->GetColorByName(forecolor, fForeColor))
117 if (!fClient->GetColorByName(highlightcolor, fHighLightColor))
118 fHighLightColor = fWhite;
119 fHilite = fClient->GetHilite(fBackColor);
120 fShadow = fClient->GetShadow(fBackColor);
121 if (!fClient->GetColorByName(selbackcolor, fSelBackColor))
122 fSelBackColor = fBlack;
123 if (!fClient->GetColorByName(selforecolor, fSelForeColor))
124 fSelForeColor = fWhite;
125 if (!fClient->GetColorByName(docbackcolor, fDocBackColor))
126 fDocBackColor = fWhite;
127 if (!fClient->GetColorByName(docforecolor, fDocForeColor))
128 fDocForeColor = fBlack;
129 if (!fClient->GetColorByName(tipbackcolor, fTipBackColor))
130 fTipBackColor = fWhite;
131 if (!fClient->GetColorByName(tipforecolor, fTipForeColor))
132 fTipForeColor = fBlack;
135 fCheckered = gVirtualX->CreatePixmap(fClient->GetDefaultRoot()->GetId(),
136 (
const char *)gray_bits,
137 gray_width, gray_height,
139 gVirtualX->GetDepth());
140 fCheckeredBitmap = gVirtualX->CreatePixmap(fClient->GetDefaultRoot()->GetId(),
141 (
const char *)gray_bits,
142 gray_width, gray_height,
148 fPicturePool =
new TGPicturePool(fClient, icon_path);
150 fDefaultBackPicture = 0;
151 fDefaultDocBackPicture = 0;
152 if (!framebgpixmap.IsNull())
153 fDefaultBackPicture = fPicturePool->GetPicture(framebgpixmap);
154 if (!docbgpixmap.IsNull())
155 fDefaultDocBackPicture = fPicturePool->GetPicture(docbgpixmap);
158 fFontPool =
new TGFontPool(fClient);
159 fDefaultFont = fFontPool->GetFont(default_font);
160 fMenuFont = fFontPool->GetFont(menu_font);
161 fMenuHiFont = fFontPool->GetFont(menu_hi_font);
162 fDocFixedFont = fFontPool->GetFont(doc_fixed_font);
163 fDocPropFont = fFontPool->GetFont(doc_prop_font);
164 fIconFont = fFontPool->GetFont(icon_font);
165 fStatusFont = fFontPool->GetFont(status_font);
168 fGCPool =
new TGGCPool(fClient);
171 gval.fMask = kGCForeground | kGCBackground | kGCFont |
172 kGCFillStyle | kGCGraphicsExposures;
173 gval.fGraphicsExposures = kFALSE;
174 gval.fFillStyle = kFillSolid;
175 gval.fFont = fDefaultFont->GetFontHandle();
176 gval.fBackground = fBackColor;
177 gval.fForeground = fBlack;
178 fBlackGC = fGCPool->GetGC(&gval, kTRUE);
180 gval.fForeground = fWhite;
181 fWhiteGC = fGCPool->GetGC(&gval, kTRUE);
183 gval.fForeground = fHilite;
184 fHiliteGC = fGCPool->GetGC(&gval, kTRUE);
186 gval.fForeground = fShadow;
187 fShadowGC = fGCPool->GetGC(&gval, kTRUE);
189 gval.fForeground = fBackColor;
190 fBckgndGC = fGCPool->GetGC(&gval, kTRUE);
192 gval.fForeground = fForeColor;
193 fFrameGC = fGCPool->GetGC(&gval, kTRUE);
195 gval.fForeground = fSelBackColor;
196 fSelbgndGC = fGCPool->GetGC(&gval, kTRUE);
198 gval.fForeground = fSelForeColor;
199 gval.fBackground = fSelBackColor;
200 fSelGC = fGCPool->GetGC(&gval, kTRUE);
202 gval.fFont = fDocPropFont->GetFontHandle();
203 gval.fForeground = fDocForeColor;
204 gval.fBackground = fDocBackColor;
205 fDocGC = fGCPool->GetGC(&gval, kTRUE);
207 gval.fForeground = fDocBackColor;
208 fDocbgndGC = fGCPool->GetGC(&gval, kTRUE);
210 gval.fFont = fStatusFont->GetFontHandle();
211 gval.fForeground = fTipForeColor;
212 gval.fBackground = fTipBackColor;
213 fTipGC = fGCPool->GetGC(&gval, kTRUE);
215 gval.fMask = kGCForeground | kGCBackground | kGCFillStyle |
216 kGCLineWidth | kGCSubwindowMode |
217 kGCGraphicsExposures | kGCStipple;
218 gval.fForeground = fBlack;
219 gval.fBackground = fSelBackColor;
221 gval.fFillStyle = kFillStippled;
222 gval.fSubwindowMode = kIncludeInferiors;
223 gval.fGraphicsExposures = kFALSE;
224 gval.fStipple = fCheckeredBitmap;
225 fFocusGC = fGCPool->GetGC(&gval, kTRUE);
228 fDefaultCursor = kNone;
229 fGrabCursor = gVirtualX->CreateCursor(kArrowRight);
230 fTextCursor = gVirtualX->CreateCursor(kCaret);
231 fWaitCursor = gVirtualX->CreateCursor(kWatch);
234 fMimeTypeList =
new TGMimeTypes(fClient, mime_file);
238 fClipboardAtom = gVirtualX->InternAtom(
"_ROOT_CLIPBOARD", kFALSE);
240 fClipboardAtom = gVirtualX->InternAtom(
"CLIPBOARD", kFALSE);
247 TGResourcePool::~TGResourcePool()
252 delete fMimeTypeList;
254 gVirtualX->DeletePixmap(fCheckered);
255 gVirtualX->DeletePixmap(fCheckeredBitmap);