Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  PDocAccessible.ipdl   Sprache: unbekannt

 
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

include protocol PBrowser;

include DocAccessibleTypes;

include "mozilla/GfxMessageUtils.h";

using mozilla::LayoutDeviceIntRect from "Units.h";
using mozilla::LayoutDeviceIntPoint from "Units.h";
using mozilla::LayoutDeviceIntSize from "Units.h";
using mozilla::a11y::role from "mozilla/a11y/IPCTypes.h";
using mozilla::a11y::AccType from "mozilla/a11y/IPCTypes.h";
using mozilla::a11y::AccGenericType from "mozilla/a11y/IPCTypes.h";
[RefCounted] using mozilla::a11y::AccAttributes from "mozilla/a11y/IPCTypes.h";
using mozilla::a11y::CacheUpdateType from "mozilla/a11y/IPCTypes.h";
using mozilla::gfx::Matrix4x4 from "mozilla/gfx/Matrix.h";

namespace mozilla {
namespace a11y {

struct AccessibleData
{
  uint64_t ID;
  role Role;
  uint64_t ParentID;
  uint32_t IndexInParent;
  AccType Type;
  AccGenericType GenericTypes;
  uint8_t RoleMapEntryIndex;
  nullable AccAttributes CacheFields;
};

struct CacheEventData {
  CacheUpdateType UpdateType;
  CacheData[] aData;
};

struct ShowEventData {
  AccessibleData[] NewTree;
  bool EventSuppressed;
  bool Complete;
  bool FromUser;
};

struct HideEventData {
  uint64_t ID;
  bool IsFromUserInput;
};

struct ReorderEventData {
  uint64_t ID;
  uint32_t Type;
};

struct TextChangeEventData {
  uint64_t ID;
  nsString Str;
  int32_t Start;
  uint32_t Len;
  bool IsInsert;
  bool FromUser;
};

union MutationEventData {
  CacheEventData;
  ShowEventData;
  HideEventData;
  ReorderEventData;
  TextChangeEventData;
};

struct TextRangeData
{
  uint64_t StartID;
  uint64_t EndID;
  int32_t StartOffset;
  int32_t EndOffset;
};

[ManualDealloc, ChildImpl=virtual, ParentImpl=virtual]
protocol PDocAccessible
{
  manager PBrowser;

parent:
  async Shutdown();

  /*
   * Notify the parent process the document in the child process is firing an
   * event.
   */
  async Event(uint64_t aID, uint32_t type);
  async StateChangeEvent(uint64_t aID, uint64_t aState, bool aEnabled);
  async CaretMoveEvent(uint64_t aID,
                       LayoutDeviceIntRect aCaretRect,
                       int32_t aOffset,
                       bool aIsSelectionCollapsed, bool aIsAtEndOfLine,
                       int32_t aGranularity, bool aFromUser);
  async MutationEvents(MutationEventData[] aData);
  async SelectionEvent(uint64_t aID, uint64_t aWidgetID, uint32_t aType);
  async RoleChangedEvent(role aRole, uint8_t aRoleMapEntryIndex);
  async FocusEvent(uint64_t aID, LayoutDeviceIntRect aCaretRect);
  async ScrollingEvent(uint64_t aID, uint64_t aType,
                       uint32_t aScrollX, uint32_t aScrollY,
                       uint32_t aMaxScrollX, uint32_t aMaxScrollY);
#ifndef XP_WIN
  async AnnouncementEvent(uint64_t aID,
                          nsString aAnnouncement,
                          uint16_t aPriority);
#endif
  async TextSelectionChangeEvent(uint64_t aID, TextRangeData[] aSelection);

  /*
   * Tell the parent document to bind the existing document as a new child
   * document.
   */
  async BindChildDoc(PDocAccessible aChildDoc, uint64_t aID);

  /*
   * Cache The World
   */
  async Cache(CacheUpdateType aUpdateType, CacheData[] aData);

  /*
   * Lists of accessibles that either gained or lost a selected state.
   */
  async SelectedAccessiblesChanged(uint64_t[] aSelectedIDs, uint64_t[] aUnselectedIDs);

  /*
   * Tell the parent process that the given Accessibles are about to be moved
   * via subsequent hide and show events.
   */
  async AccessiblesWillMove(uint64_t[] aIDs);

child:
  async __delete__();

  /*
   * Called as a result of focus shifting from chrome to content
   * elements through keyboard navigation.
   */
  async RestoreFocus();

  // LocalAccessible
  async ScrollTo(uint64_t aID, uint32_t aScrollType);
  async ScrollToPoint(uint64_t aID, uint32_t aScrollType, int32_t aX,
                      int32_t aY);
#ifndef XP_WIN
  async Announce(uint64_t aID, nsString aAnnouncement, uint16_t aPriority);
#endif

  // AccessibleText

  async SetCaretOffset(uint64_t aID, int32_t aOffset);

  async SetTextSelection(uint64_t aStartID, int32_t aStartOffset,
                     uint64_t aEndID, int32_t aEndOffset,
                     int32_t aSelectionNum);
  async RemoveTextSelection(uint64_t aID, int32_t aSelectionNum);

  async ScrollTextLeafRangeIntoView(uint64_t aStartID, int32_t aStartOffset,
                                    uint64_t aEndID, int32_t aEndOffset,
                                    uint32_t aScrollType);
  async ScrollSubstringToPoint(uint64_t aID,
                               int32_t aStartOffset,
                               int32_t aEndOffset,
                               uint32_t aCoordinateType,
                               int32_t aX, int32_t aY);

  async ReplaceText(uint64_t aID, nsString aText);
  async InsertText(uint64_t aID, nsString aText, int32_t aPosition);
  async CopyText(uint64_t aID, int32_t aStartPos, int32_t aEndPos);
  async CutText(uint64_t aID, int32_t aStartPos, int32_t aEndPos);
  async DeleteText(uint64_t aID, int32_t aStartPos, int32_t aEndPos);
  async PasteText(uint64_t aID, int32_t aPosition);

  async TakeSelection(uint64_t aID);
  async SetSelected(uint64_t aID, bool aSelected);

  async DoActionAsync(uint64_t aID, uint8_t aIndex);

  async SetCurValue(uint64_t aID, double aValue);

  async TakeFocus(uint64_t aID);

  /*
   * Verify the cache. Used for testing purposes.
   */
  async VerifyCache(uint64_t aID, uint64_t aCacheDomain, nullable AccAttributes aFields);

};

}
}

[ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge