--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swthyperlink.cpp Thu Jul 15 18:31:06 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swthyperlink.cpp Thu Aug 19 09:48:13 2010 +0300
@@ -86,7 +86,6 @@
UpdateDefaultFontL();
iFormattedText.CreateL(KNullDesC);
iOriginalText.CreateL(KNullDesC);
- UpdateSkinColor();
SetBackground(this); // Back will be drawn by ASwtControlBase::Draw
#ifdef RD_TACTILE_FEEDBACK
@@ -103,13 +102,6 @@
{
UpdateDefaultFontL();
}
- else if (aType == KAknsMessageSkinChange)
- {
- if (!iCustomTextColor)
- {
- UpdateSkinColor();
- }
- }
}
@@ -165,14 +157,14 @@
textLocation.iX += alignmentSpace;
}
- TRgb textColor = iLinkColor;
+ TRgb textColor = LinkColor();
// Same background highlight as that of Link
if (iPressed || (iDisplay.UiUtils().NaviKeyInput() && IsFocused()))
{
- textColor = iHighlightedLinkColor;
+ textColor = PressedLinkColor();
aGc.SetPenStyle(CGraphicsContext::ENullPen);
aGc.SetBrushStyle(CGraphicsContext::ESolidBrush);
- aGc.SetBrushColor(iHighlightColor);
+ aGc.SetBrushColor(LinkBgColor());
aGc.DrawRect(TRect(TPoint(textLocation.iX, textLocation.iY - aFont->FontMaxAscent()),
TSize(textWidth, aFont->FontLineGap())));
}
@@ -188,23 +180,6 @@
}
-void CSwtHyperLink::UpdateSkinColor()
-{
- AknsUtils::GetCachedColor(AknsUtils::SkinInstance(),
- iLinkColor,
- KAknsIIDQsnHighlightColors,
- EAknsCIQsnHighlightColorsCG3);
- AknsUtils::GetCachedColor(AknsUtils::SkinInstance(),
- iHighlightColor,
- KAknsIIDQsnHighlightColors,
- EAknsCIQsnHighlightColorsCG2);
- AknsUtils::GetCachedColor(AknsUtils::SkinInstance(),
- iHighlightedLinkColor,
- KAknsIIDQsnTextColors,
- EAknsCIQsnTextColorsCG24);
-}
-
-
void CSwtHyperLink::UpdateDefaultFontL()
{
if (iDefaultFont)
@@ -272,6 +247,43 @@
return scheme;
}
+TRgb CSwtHyperLink::LinkColor() const
+{
+ TBool highlighted = HasHighlight();
+ if (!highlighted && iCustomFg)
+ {
+ return iCustomFg->RgbValue();
+ }
+ else
+ {
+ TRgb res(0);
+ AknsUtils::GetCachedColor(AknsUtils::SkinInstance(),
+ res,
+ KAknsIIDQsnHighlightColors,
+ EAknsCIQsnHighlightColorsCG3);
+ return res;
+ }
+}
+
+TRgb CSwtHyperLink::PressedLinkColor() const
+{
+ TRgb res(0);
+ AknsUtils::GetCachedColor(AknsUtils::SkinInstance(),
+ res,
+ KAknsIIDQsnTextColors,
+ EAknsCIQsnTextColorsCG24);
+ return res;
+}
+
+TRgb CSwtHyperLink::LinkBgColor() const
+{
+ TRgb res(0);
+ AknsUtils::GetCachedColor(AknsUtils::SkinInstance(),
+ res,
+ KAknsIIDQsnHighlightColors,
+ EAknsCIQsnHighlightColorsCG2);
+ return res;
+}
// ---------------------------------------------------------------------------
// From class CCoeControl.
@@ -446,7 +458,7 @@
#endif //RD_JAVA_ADVANCED_TACTILE_FEEDBACK
}
#endif //RD_TACTILE_FEEDBACK
- Redraw();
+ GetShell().UpdateHighlight(ETrue); // draw now
break;
}
@@ -463,7 +475,7 @@
}
if (pressed != iPressed)
{
- Redraw();
+ GetShell().UpdateHighlight(ETrue); // draw now
}
break;
}
@@ -478,7 +490,7 @@
}
if (pressed != iPressed)
{
- Redraw();
+ GetShell().UpdateHighlight(ETrue); // draw now
}
break;
}
@@ -497,18 +509,7 @@
void CSwtHyperLink::SetForegroundL(const MSwtColor* aColor)
{
ASwtControlBase::DoSetForegroundL(aColor);
- aColor ? iCustomTextColor = ETrue : iCustomTextColor = EFalse;
- if (iCustomTextColor)
- {
- TRgb rgb;
- TBool overrideColorSet(GetColor(EColorControlText, rgb));
- ASSERT(overrideColorSet);
- iLinkColor = rgb;
- }
- else
- {
- UpdateSkinColor();
- }
+ iCustomFg = aColor;
Redraw();
}
@@ -542,6 +543,15 @@
return res;
}
+// ---------------------------------------------------------------------------
+// CSwtHyperLink::PressBackgroundPolicy
+// From MSwtControl
+// ---------------------------------------------------------------------------
+//
+TInt CSwtHyperLink::PressBackgroundPolicy() const
+{
+ return EEmbeddedPressBackground;
+}
// ---------------------------------------------------------------------------
// From class ASwtControlBase.