preference to disable image placeholders
This commit is contained in:
cbiesinger%web.de 2002-04-10 14:45:05 +00:00
Родитель a2dc8bc7ee
Коммит 898fb53814
5 изменённых файлов: 91 добавлений и 68 удалений

Просмотреть файл

@ -1184,46 +1184,51 @@ nsImageFrame::DisplayAltFeedback(nsIPresContext* aPresContext,
aRenderingContext.PushState(); aRenderingContext.PushState();
aRenderingContext.SetClipRect(inner, nsClipCombine_kIntersect, clipState); aRenderingContext.SetClipRect(inner, nsClipCombine_kIntersect, clipState);
PRInt32 size = NSIntPixelsToTwips(ICON_SIZE, p2t); PRBool dispIcon = mIconLoad ? mIconLoad->mPrefShowPlaceholders : PR_TRUE;
PRBool iconUsed = PR_FALSE; // Check if we should display image placeholders
if (dispIcon) {
PRInt32 size = NSIntPixelsToTwips(ICON_SIZE, p2t);
// see if the icon images are present... PRBool iconUsed = PR_FALSE;
if (mIconLoad && mIconLoad->mIconsLoaded) {
// pick the correct image
NS_ASSERTION( aIconId == NS_ICON_LOADING_IMAGE ||
aIconId == NS_ICON_BROKEN_IMAGE, "Invalid Icon ID in DisplayAltFeedback");
nsCOMPtr<imgIContainer> imgCon; // see if the icon images are present...
if (mIconLoad->mIconLoads[aIconId].mRequest) { if (mIconLoad && mIconLoad->mIconsLoaded) {
mIconLoad->mIconLoads[aIconId].mRequest->GetImage(getter_AddRefs(imgCon)); // pick the correct image
} NS_ASSERTION( aIconId == NS_ICON_LOADING_IMAGE ||
if (imgCon) { aIconId == NS_ICON_BROKEN_IMAGE, "Invalid Icon ID in DisplayAltFeedback");
// draw it
nsPoint p(inner.x, inner.y); nsCOMPtr<imgIContainer> imgCon;
nsRect r(0,0,size,size); if (mIconLoad->mIconLoads[aIconId].mRequest) {
aRenderingContext.DrawImage(imgCon, &r, &p); mIconLoad->mIconLoads[aIconId].mRequest->GetImage(getter_AddRefs(imgCon));
iconUsed = PR_TRUE; }
if (imgCon) {
// draw it
nsPoint p(inner.x, inner.y);
nsRect r(0,0,size,size);
aRenderingContext.DrawImage(imgCon, &r, &p);
iconUsed = PR_TRUE;
}
} }
// if we could not draw the image, then just draw some grafitti
if (!iconUsed) {
nscolor oldColor;
aRenderingContext.DrawRect(0,0,size,size);
aRenderingContext.GetColor(oldColor);
aRenderingContext.SetColor( aIconId == NS_ICON_BROKEN_IMAGE ? NS_RGB(0xFF,0,0) : NS_RGB(0,0xFF,0));
aRenderingContext.FillEllipse(NS_STATIC_CAST(int,size/2),NS_STATIC_CAST(int,size/2),
NS_STATIC_CAST(int,(size/2)-(2*p2t)),NS_STATIC_CAST(int,(size/2)-(2*p2t)));
aRenderingContext.SetColor(oldColor);
}
// Reduce the inner rect by the width of the icon, and leave an
// additional ICON_PADDING pixels for padding
PRInt32 iconWidth = NSIntPixelsToTwips(ICON_SIZE + ICON_PADDING, p2t);
inner.x += iconWidth;
inner.width -= iconWidth;
} }
// if we could not draw the image, then just draw some grafitti
if (!iconUsed) {
nscolor oldColor;
aRenderingContext.DrawRect(0,0,size,size);
aRenderingContext.GetColor(oldColor);
aRenderingContext.SetColor( aIconId == NS_ICON_BROKEN_IMAGE ? NS_RGB(0xFF,0,0) : NS_RGB(0,0xFF,0));
aRenderingContext.FillEllipse(NS_STATIC_CAST(int,size/2),NS_STATIC_CAST(int,size/2),
NS_STATIC_CAST(int,(size/2)-(2*p2t)),NS_STATIC_CAST(int,(size/2)-(2*p2t)));
aRenderingContext.SetColor(oldColor);
}
// Reduce the inner rect by the width of the icon, and leave an
// additional ICON_PADDING pixels for padding
PRInt32 iconWidth = NSIntPixelsToTwips(ICON_SIZE + ICON_PADDING, p2t);
inner.x += iconWidth;
inner.width -= iconWidth;
// If there's still room, display the alt-text // If there's still room, display the alt-text
if (!inner.IsEmpty()) { if (!inner.IsEmpty()) {
nsCOMPtr<nsIContent> content; nsCOMPtr<nsIContent> content;
@ -2232,6 +2237,11 @@ void nsImageFrame::IconLoad::GetPrefs(nsIPresContext *aPresContext)
} else { } else {
mPrefAllImagesBlocked = PR_FALSE; mPrefAllImagesBlocked = PR_FALSE;
} }
if (NS_SUCCEEDED(prefs->GetBoolPref("browser.display.show_image_placeholders", &boolPref))) {
mPrefShowPlaceholders = boolPref;
} else {
mPrefShowPlaceholders = PR_TRUE;
}
} }
} }

Просмотреть файл

@ -276,6 +276,7 @@ private:
PRPackedBool mIconsLoaded; PRPackedBool mIconsLoaded;
PRPackedBool mPrefForceInlineAltText; PRPackedBool mPrefForceInlineAltText;
PRPackedBool mPrefAllImagesBlocked; PRPackedBool mPrefAllImagesBlocked;
PRPackedBool mPrefShowPlaceholders;
}; };
static IconLoad* mIconLoad; // singleton patern: one LoadIcons instance is used static IconLoad* mIconLoad; // singleton patern: one LoadIcons instance is used
}; };

Просмотреть файл

@ -1184,46 +1184,51 @@ nsImageFrame::DisplayAltFeedback(nsIPresContext* aPresContext,
aRenderingContext.PushState(); aRenderingContext.PushState();
aRenderingContext.SetClipRect(inner, nsClipCombine_kIntersect, clipState); aRenderingContext.SetClipRect(inner, nsClipCombine_kIntersect, clipState);
PRInt32 size = NSIntPixelsToTwips(ICON_SIZE, p2t); PRBool dispIcon = mIconLoad ? mIconLoad->mPrefShowPlaceholders : PR_TRUE;
PRBool iconUsed = PR_FALSE; // Check if we should display image placeholders
if (dispIcon) {
PRInt32 size = NSIntPixelsToTwips(ICON_SIZE, p2t);
// see if the icon images are present... PRBool iconUsed = PR_FALSE;
if (mIconLoad && mIconLoad->mIconsLoaded) {
// pick the correct image
NS_ASSERTION( aIconId == NS_ICON_LOADING_IMAGE ||
aIconId == NS_ICON_BROKEN_IMAGE, "Invalid Icon ID in DisplayAltFeedback");
nsCOMPtr<imgIContainer> imgCon; // see if the icon images are present...
if (mIconLoad->mIconLoads[aIconId].mRequest) { if (mIconLoad && mIconLoad->mIconsLoaded) {
mIconLoad->mIconLoads[aIconId].mRequest->GetImage(getter_AddRefs(imgCon)); // pick the correct image
} NS_ASSERTION( aIconId == NS_ICON_LOADING_IMAGE ||
if (imgCon) { aIconId == NS_ICON_BROKEN_IMAGE, "Invalid Icon ID in DisplayAltFeedback");
// draw it
nsPoint p(inner.x, inner.y); nsCOMPtr<imgIContainer> imgCon;
nsRect r(0,0,size,size); if (mIconLoad->mIconLoads[aIconId].mRequest) {
aRenderingContext.DrawImage(imgCon, &r, &p); mIconLoad->mIconLoads[aIconId].mRequest->GetImage(getter_AddRefs(imgCon));
iconUsed = PR_TRUE; }
if (imgCon) {
// draw it
nsPoint p(inner.x, inner.y);
nsRect r(0,0,size,size);
aRenderingContext.DrawImage(imgCon, &r, &p);
iconUsed = PR_TRUE;
}
} }
// if we could not draw the image, then just draw some grafitti
if (!iconUsed) {
nscolor oldColor;
aRenderingContext.DrawRect(0,0,size,size);
aRenderingContext.GetColor(oldColor);
aRenderingContext.SetColor( aIconId == NS_ICON_BROKEN_IMAGE ? NS_RGB(0xFF,0,0) : NS_RGB(0,0xFF,0));
aRenderingContext.FillEllipse(NS_STATIC_CAST(int,size/2),NS_STATIC_CAST(int,size/2),
NS_STATIC_CAST(int,(size/2)-(2*p2t)),NS_STATIC_CAST(int,(size/2)-(2*p2t)));
aRenderingContext.SetColor(oldColor);
}
// Reduce the inner rect by the width of the icon, and leave an
// additional ICON_PADDING pixels for padding
PRInt32 iconWidth = NSIntPixelsToTwips(ICON_SIZE + ICON_PADDING, p2t);
inner.x += iconWidth;
inner.width -= iconWidth;
} }
// if we could not draw the image, then just draw some grafitti
if (!iconUsed) {
nscolor oldColor;
aRenderingContext.DrawRect(0,0,size,size);
aRenderingContext.GetColor(oldColor);
aRenderingContext.SetColor( aIconId == NS_ICON_BROKEN_IMAGE ? NS_RGB(0xFF,0,0) : NS_RGB(0,0xFF,0));
aRenderingContext.FillEllipse(NS_STATIC_CAST(int,size/2),NS_STATIC_CAST(int,size/2),
NS_STATIC_CAST(int,(size/2)-(2*p2t)),NS_STATIC_CAST(int,(size/2)-(2*p2t)));
aRenderingContext.SetColor(oldColor);
}
// Reduce the inner rect by the width of the icon, and leave an
// additional ICON_PADDING pixels for padding
PRInt32 iconWidth = NSIntPixelsToTwips(ICON_SIZE + ICON_PADDING, p2t);
inner.x += iconWidth;
inner.width -= iconWidth;
// If there's still room, display the alt-text // If there's still room, display the alt-text
if (!inner.IsEmpty()) { if (!inner.IsEmpty()) {
nsCOMPtr<nsIContent> content; nsCOMPtr<nsIContent> content;
@ -2232,6 +2237,11 @@ void nsImageFrame::IconLoad::GetPrefs(nsIPresContext *aPresContext)
} else { } else {
mPrefAllImagesBlocked = PR_FALSE; mPrefAllImagesBlocked = PR_FALSE;
} }
if (NS_SUCCEEDED(prefs->GetBoolPref("browser.display.show_image_placeholders", &boolPref))) {
mPrefShowPlaceholders = boolPref;
} else {
mPrefShowPlaceholders = PR_TRUE;
}
} }
} }

Просмотреть файл

@ -276,6 +276,7 @@ private:
PRPackedBool mIconsLoaded; PRPackedBool mIconsLoaded;
PRPackedBool mPrefForceInlineAltText; PRPackedBool mPrefForceInlineAltText;
PRPackedBool mPrefAllImagesBlocked; PRPackedBool mPrefAllImagesBlocked;
PRPackedBool mPrefShowPlaceholders;
}; };
static IconLoad* mIconLoad; // singleton patern: one LoadIcons instance is used static IconLoad* mIconLoad; // singleton patern: one LoadIcons instance is used
}; };

Просмотреть файл

@ -79,6 +79,7 @@ pref("browser.display.use_system_colors", false);
pref("browser.display.foreground_color", "#000000"); pref("browser.display.foreground_color", "#000000");
pref("browser.display.background_color", "#FFFFFF"); pref("browser.display.background_color", "#FFFFFF");
pref("browser.display.force_inline_alttext", false); // true = force ALT text for missing images to be layed out inline pref("browser.display.force_inline_alttext", false); // true = force ALT text for missing images to be layed out inline
pref("browser.display.show_image_placeholders", true); // true = show image placeholders while image is loaded and when image is broken
pref("browser.anchor_color", "#0000EE"); pref("browser.anchor_color", "#0000EE");
pref("browser.visited_color", "#551A8B"); pref("browser.visited_color", "#551A8B");
pref("browser.underline_anchors", true); pref("browser.underline_anchors", true);