Closed Bug 380524 Opened 18 years ago Closed 18 years ago

implement IAccessibleComponent

Categories

(Core :: Disability Access APIs, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: surkov, Assigned: surkov)

References

(Blocks 1 open bug)

Details

Attachments

(1 file, 2 obsolete files)

Attached patch patch (obsolete) — Splinter Review
No description provided.
Attachment #264618 - Flags: superreview?(neil)
Attachment #264618 - Flags: review?(aaronleventhal)
Comment on attachment 264618 [details] [diff] [review] patch >+ // The coordinates of the returned position are relative to this object's >+ // parent or relative to the screen on which this object is rendered if it >+ // has no parent. >+ if (!parentAcc) >+ return NS_OK; Except you didn't set *aX and *aY in this case. >+STDMETHODIMP >+CAccessibleComponent::get_foreground(IA2Color *aForeground) >+{ >+ IA2ARGB color = 0; >+ HRESULT hr = GetARGBValueFromCSSProperty(NS_LITERAL_STRING("color"), &color); >+ *aForeground = color; >+ >+ return hr; >+} Why not make GetARGBValueFromCSSProperty take an IA2Color* parameter? >+ *aColorValue = (((IA2ARGB) (blue) << IA2BlueShift) | >+ ((IA2ARGB) (green) << IA2GreenShift) | >+ ((IA2ARGB) (red) << IA2RedShift) | >+ ((IA2ARGB) (alpha) << IA2AlphaShift)); Unfortunately alpha is from 0.0 to 1.0 while you probably want 0 to 255. Also it's not clear what ((IA2ARGB) (blue) << IA2BlueShift) does, perhaps writing it as (((IAARGB) blue) << IA2BlueShift) might make more sense.
Attachment #264618 - Flags: superreview?(neil) → superreview-
> Also it's not clear what ((IA2ARGB) (blue) << IA2BlueShift) does, perhaps > writing it as (((IAARGB) blue) << IA2BlueShift) might make more sense. > Ok, though I took this from GDI+ Color class implementation (GdiPlusColor.h)
Attached patch patch2 (obsolete) — Splinter Review
with neil's comments
Attachment #264618 - Attachment is obsolete: true
Attachment #264635 - Flags: superreview?(neil)
Attachment #264635 - Flags: review?(aaronleventhal)
Attachment #264618 - Flags: review?(aaronleventhal)
Comment on attachment 264635 [details] [diff] [review] patch2 >+ // compose ARGB value >+ IA2ARGB colorValue = 0; >+ colorValue = ((((IA2ARGB) blue) << IA2BlueShift) | >+ (((IA2ARGB) green) << IA2GreenShift) | >+ (((IA2ARGB) red) << IA2RedShift) | >+ (((IA2ARGB) (alpha * 0xff)) << IA2AlphaShift)); >+ >+ *aColorValue = colorValue; OK, so apparently an IA2Color is just a long, so there's no point defining a private IA2ARGB type for your intermediate calculation, just change these all to IA2Color and write *aColorValue directly. sr=me with this fixed. Also you don't need the outermost set of parentheses and you have too much indentation. It's a pity that we use ABGR internally otherwise you could have used NS_RGBA()
Attachment #264635 - Flags: superreview?(neil) → superreview+
Comment on attachment 264635 [details] [diff] [review] patch2 r+ although I think locationInParent should still work if something is offscreen (we still expose coordinates) -- it's just outside of the currently visible bounds. if (states & nsIAccessibleStates::STATE_INVISIBLE || states & nsIAccessibleStates::STATE_OFFSCREEN) return S_OK;
Attachment #264635 - Flags: review?(aaronleventhal) → review+
Attached patch patch3Splinter Review
with Neil's and Aaron's comments
Attachment #264635 - Attachment is obsolete: true
checked in
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: