Hacking Guide for Java ATK Wrapper
==================================

As a general rule, non-trivial maintainer-submitted patches should be posted to
gnome-accessibility-devel for comment and informational purpose prior to commit.

Patches are welcome and if there are any suggestions, please send comments
directly to the current maintainer, Magdalen Berns m.berns@thismagpie.com and
make sure to cc the gnome-accessibility-devel list too.

To file a bug against java-atk-wrapper:

1. go to <https://bugzilla.gnome.org/enter_bug.cgi?product=java-atk-wrapper>
2. select java-atk-wrapper from the component list
3. file bug using a descriptive subject title
4. Wait for maintainer to accept bug or upload a patch to your bug for review

More information on Java ATK Wrapper can be found at:
  <https://wiki.gnome.org/Accessibility/JavaAtkWrapper>

Methods Not Yet Fully Implemented
---------------------------------

Document Interface (not yet implemented):
  get_current_page_number
  get_page_count

HyperlinkImpl:
TODO Currently Not fully documented by ATK

# NOTE: Window interface signals currently seems to be being handled in jawobject.c
Object base class:
  AtkFunction
  implementor_ref_accessible
  get_attributes

TableCell:
  get_column_header_cells
  get_row_header_cells

Deprecated Methods Which Are Implemented
----------------------------------------

Table Interface:
  get_column_at_index
  get_row_at_index

Text Interface:
  get_text_after_offset  -   use get_string_at_offset instead
  get_text_at_offset     -   use get_string_at_offset instead
  get_text_before_offset -   use get_string_at_offset instead

Conventions for Writing Java ATK Wrapper Code
---------------------------------------------

Spaces instead of tabs.
Two spaces per indent.

JNI warning and error messages are in the form:

  if (jaw_debug)
    g_warning("method calling instance: instance == NULL");

These statements will only print if the environment variable JAW_DEBUG is set to 1. To use this
setting type the following into the terminal or set it in ~/.bashrc:

  export JAW_DEBUG=1

Other Things to Keep in Mind
----------------------------

The jint object is mapped to C's long which is always at least 32 bits), instead
of of C's int (which could be 16 bits). The resource for glib types can be
found at <https://developer.gnome.org/glib/stable/glib-Basic-Types.html>

