+2001-07-24 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * atk/atkobject.[c|h]
+ Move some implementation from GAIL:
+ Default implementations for some some functions
+ atk_object_real_get_name, atk_object_real_set_name,
+ atk_object_real_get_description, atk_object_real_set_description,
+ atk_object_real_get_parent, atk_object_real_set_parent,
+ atk_object_real_get_role,
+ atk_object_real_connect_property_change_handler,
+ atk_object_real_remove_property_change_handler,
+ atk_object_notify,
+ definition of property-changed signal.
+ Initialize pointers to NULL in atk_object_init().
+ Initialize uninitialized function pointers to NULL in
+ atk_object_class_init().
+
2001-07-23 Brian Cameron <brian.cameron@sun.com>
+
* atk/atkobject.c
Changed children_changed signal to allow NULL pointers
for the 2nd argument to the signal handler.
* atk/makefile.msc : updated win32 build
2001-07-20 Padraig O'Briain <padraig.obriain@sun.com>
+
* atk/atkaction.[c|h], docs/atk-sections.txt,
docs/tmpl/atkaction.sgml
Add atk_action_get_name() and atk_action_set_description()
2001-07-18 Padraig O'Briain <padraig.obriain@sun.com>
+
* atk/atkstate.[c|h]
Add ATK_STATE_ENABLED so we can distinguish between a consistent
and inconsistent GtkToggleButton
2001-07-16 Brian Cameron <brian.cameron@sun.com>
+
* atk/atkeditabletext.c atk/atktext.c atk/atktext.h atk/atkutil.h
docs/atk-sections.txt docs/tmpl/atktext.sgml docs/tmpl/atkutil.sgml
gail_textattributes_update.pat is for gail/gail and integrates the
configure file doesn't include AM_CONFIG_HEADER.
2001-07-11 Brian Cameron <brian.cameron@sun.com>
+
* tmpl/atkdocument.sgml
Added new file for docs.
2001-07-11 Padraig O'Briain <padraig.obriain@sun.com>
+
* atk/atkimage.c atk/atkutil.c
Changes to build with Sun's FORTE compiler.
2001-07-10 Brian Cameron <brian.cameron@sun.com>
+
* tmpl/atk-unused.sgml tmpl/atkcomponent.sgml tmpl/atkeditabletext.sgml
tmpl/atkimage.sgml tmpl/atkselection.sgml tmpl/atkstate.sgml
tmpl/atkstreamablecontent.sgml tmpl/atktable.sgml
to adapt to recent GSignal changes.
2001-06-28 Brian Cameron <brian.cameron@sun.com>
+
* atk/atkutil.c atk/atkutil.h docs/atk-sections.txt
docs/tmpl/atkutil.sgml
Added new functiosn to AtkUtil.
2001-06-28 Brian Cameron <brian.cameron@sun.com>
+
* atk/Makefile.am atk/atk.h atk/atkdocument.c atk/atkdocument.h
docs/atk-docs.sgml docs/atk-sections.txt docs/tmpl/atk-unused.sgml
docs/tmpl/atkobject.sgml
Added new atk document interface.
2001-06-28 Brian Cameron <brian.cameron@sun.com>
+
* atk/atkcomponent.c atk/atkcomponent.h atk/atkimage.c
atk/atkimage.h atk/atktext.c atk/atktext.h atk/atkutil.h
Updated so that functions that take screen coords as
Updated docs as well.
2001-06-28 Brian Cameron <brian.cameron@sun.com>
+
*atk/atkaction.c atk/atkcomponent.c atk/atkeditabletext.c
atk/atkhyperlink.c atk/atkobject.c atk/atkregistry.c
atk/atkstate.c atk/atkstateset.c atk/atkstreamablecontent.c
Cleaned up docs. Added atkstreamablecontent.sgml
2001-06-28 Brian Cameron <brian.cameron@sun.com>
+
*atk/atktable.h, atk/atktable.c
Updated signal handler definitions.
2001-06-27 Brian Cameron <brian.cameron@sun.com>
+
*atk/atktext.h
Updated AtkXYCoords enum.
2001-06-27 Brian Cameron <brian.cameron@sun.com>
+
*atk/atkaction.c atk/atkaction.h atk/atkcomponent.c
atk/atkcomponent.h atk/atkhyperlink.c atk/atkhypertext.c
atk/atkimage.c atk/atkimage.h atk/atkobject.c
changes to the API.
2001-06-27 Louise Miller <lousie.miller@sun.com>
+
*atk/atkselection.h, atk/atkselection.c
changed return type to gboolean for
atk_selection_select_all_selection
2001-06-26 Brian Cameron <brian.cameron@sun.com>
+
*atk/atkstate.h atk/atkstate.c
docs/tmpl/atk-unused.sgml docs/tmpl/atkselection.sgml
docs/tmpl/atkstate.sgml docs/tmpl/atktable.sgml
Added ATK_STATE_STALE. Updated docs.
2001-06-22 Lucy Brophy <lucy.brophy@sun.com>
+
*atk/atktext.h
Removed the macro ATK_TEXT_BOUNDARY_CURSOR_POS
2001-06-21 Brian Cameron <brian.cameron@sun.com>
+
* atk/atkeditabletext.h, atk/atkobject.h,
atktext.[ch]
Added AtkAttributeSet_free() convenience
function.
2001-06-20 Peter Williams <peterw@ximian.com>
+
* atk/atknoopobject.h: Correct prototype name: agtk_widget_get_type ->
atk_no_op_object_get_type. Change #ifdef __cplusplus mess to nicer
G_{BEGIN,END}_DECLS.
2001-06-20 Brian Cameron <brian.cameron@sun.com>
+
* atk/atktable.c, atk/atkmarshal.list
Removed needless marshal and updated signal handlers in
atktable.c
2001-06-20 Louise Miller <louise.miller@sun.com>
+
*atk/atktable.h, atk/table.c, docs/tmpl/atktable.sgml
Changed parameters for get_selected_rows/get_selected_columns
Added 4 new functions, add_row_selection, remove_row_selection,
add_column_selection, remove_column_selection
2001-06-19 Brian Cameron <brian.cameron@sun.com>
+
* atk/atktable.c
Fixed minor bug with signals.
2001-06-18 Brian Cameron <brian.cameron@sun.com>
+
* atk/atktable
Added signals.
2001-06-15 Brian Cameron & Lucy Brophy <brian.cameron@sun.com>
+
* atk/atkselection.h atk/atkselection.c
Now add_selection, clear_selection, and remove_selection
return a boolean indicating SUCCESS/FAILURE to indicate
if the operation was successful.
2001-06-13 Brian Cameron & Lucy Brophy <brian.cameron@sun.com>
+
* atk/atktable.h atk/atktable.h
Updated so now the get_text_before|at|after functions
return the start & end offset of the string. Updated the
* New files atk/atkstreamablecontent.[ch]
Updated files: atk/Makefile.am, atk/atk.h
+
* atk/atkvalue.c: Updated comments
2001-06-06 Padraig O'Briain <padraig.obriain@sun.com>
* atk/atkobject.c: Add support for setting and getting
accessible-value property.
+
* atk/atkvalue.[ch] Make GValue in atk_value_set_current_value const
Fri Jun 01 Brian Cameron <brian.cameron@sun.com>
* atk/atkeditabletext.[ch], atk/atktext.[ch]
+
* docs/atk-overrides.txt, docs/Makefile.am
Updated the interface for dealing with selected
text to handle multiple selected regions. Removed
accessible-caret, accessible-selection and accessible-value
2001-05-29 Brian Cameron <brian.cameron@sun.com>
+
* docs/atk-sections.txt
+
* docs/tmpl/*
Improved the layout/formatting of the atk docs. Added docs/tmpl
files.
2001-05-23 Padraig O'Briain <padraig.obriain@sun.com>
* atk/atkobject.h: Correct naming of role for status bar
+
* atk/atktext.c:
Clarify behaviour of atk_text_get_text_after/at/before_offset
enum {
CHILDREN_CHANGED,
FOCUS_EVENT,
+ PROPERTY_CHANGE,
+
LAST_SIGNAL
};
-static void atk_object_class_init (AtkObjectClass *klass);
-static void atk_object_init (AtkObject *accessible,
- AtkObjectClass *klass);
-static AtkRelationSet* atk_object_real_ref_relation_set (AtkObject *accessible);
-
-static void atk_object_real_set_property(GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void atk_object_real_get_property(GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-static void atk_object_finalize (GObject *object);
+static void atk_object_class_init (AtkObjectClass *klass);
+static void atk_object_init (AtkObject *accessible,
+ AtkObjectClass *klass);
+static AtkRelationSet* atk_object_real_ref_relation_set
+ (AtkObject *accessible);
+
+static void atk_object_real_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec);
+static void atk_object_real_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec);
+static void atk_object_finalize (GObject *object);
+static G_CONST_RETURN gchar*
+ atk_object_real_get_name (AtkObject *object);
+static G_CONST_RETURN gchar*
+ atk_object_real_get_description
+ (AtkObject *object);
+static AtkObject* atk_object_real_get_parent (AtkObject *object);
+static AtkRole atk_object_real_get_role (AtkObject *object);
+static void atk_object_real_set_name (AtkObject *object,
+ const gchar *name);
+static void atk_object_real_set_description
+ (AtkObject *object,
+ const gchar *description);
+static void atk_object_real_set_parent (AtkObject *object,
+ AtkObject *parent);
static void atk_object_real_set_role (AtkObject *object,
AtkRole role);
+static guint atk_object_real_connect_property_change_handler
+ (AtkObject *obj,
+ AtkPropertyChangeHandler
+ *handler);
+static void atk_object_real_remove_property_change_handler
+ (AtkObject *obj,
+ guint handler_id);
+static void atk_object_notify (GObject *obj,
+ GParamSpec *pspec);
+
static guint atk_object_signals[LAST_SIGNAL] = { 0, };
gobject_class->set_property = atk_object_real_set_property;
gobject_class->get_property = atk_object_real_get_property;
gobject_class->finalize = atk_object_finalize;
-
+ gobject_class->notify = atk_object_notify;
+
+ klass->get_name = atk_object_real_get_name;
+ klass->get_description = atk_object_real_get_description;
+ klass->get_parent = atk_object_real_get_parent;
+ klass->get_n_children = NULL;
+ klass->ref_child = NULL;
+ klass->get_index_in_parent = NULL;
klass->ref_relation_set = atk_object_real_ref_relation_set;
+ klass->get_role = atk_object_real_get_role;
+ klass->ref_state_set = NULL;
+ klass->set_name = atk_object_real_set_name;
+ klass->set_description = atk_object_real_set_description;
+ klass->set_parent = atk_object_real_set_parent;
klass->set_role = atk_object_real_set_role;
+ klass->connect_property_change_handler =
+ atk_object_real_connect_property_change_handler;
+ klass->remove_property_change_handler =
+ atk_object_real_remove_property_change_handler;
/*
* We do not define default signal handlers here
*/
- klass->focus_event = NULL;
klass->children_changed = NULL;
+ klass->focus_event = NULL;
+ klass->property_change = NULL;
g_object_class_install_property (gobject_class,
PROP_NAME,
g_cclosure_marshal_VOID__BOOLEAN,
G_TYPE_NONE,
1, G_TYPE_BOOLEAN);
+ atk_object_signals[PROPERTY_CHANGE] =
+ g_signal_new ("property_change",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (AtkObjectClass, property_change),
+ (GSignalAccumulator) NULL, NULL,
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE, 1,
+ G_TYPE_POINTER);
}
static void
atk_object_init (AtkObject *accessible,
AtkObjectClass *klass)
{
+ accessible->name = NULL;
+ accessible->description = NULL;
+ accessible->accessible_parent = NULL;
+ accessible->relation_set = NULL;
+ accessible->role = ATK_ROLE_UNKNOWN;
}
GType
G_OBJECT_CLASS (parent_class)->finalize (object);
}
+static G_CONST_RETURN gchar*
+atk_object_real_get_name (AtkObject *object)
+{
+ return object->name;
+}
+
+static G_CONST_RETURN gchar*
+atk_object_real_get_description (AtkObject *object)
+{
+ return object->description;
+}
+
+static AtkObject*
+atk_object_real_get_parent (AtkObject *object)
+{
+ return object->accessible_parent;
+}
+
+static AtkRole
+atk_object_real_get_role (AtkObject *object)
+{
+ return object->role;
+}
+
+static void
+atk_object_real_set_name (AtkObject *object,
+ const gchar *name)
+{
+ g_free (object->name);
+ object->name = g_strdup (name);
+}
+
+static void
+atk_object_real_set_description (AtkObject *object,
+ const gchar *description)
+{
+ g_free (object->description);
+ object->description = g_strdup (description);
+}
+
+static void
+atk_object_real_set_parent (AtkObject *object,
+ AtkObject *parent)
+{
+ object->accessible_parent = parent;
+
+}
+
static void
atk_object_real_set_role (AtkObject *object,
AtkRole role)
{
object->role = role;
}
+
+static guint
+atk_object_real_connect_property_change_handler (AtkObject *obj,
+ AtkPropertyChangeHandler *handler)
+{
+ return g_signal_connect_closure_by_id (obj,
+ atk_object_signals[PROPERTY_CHANGE],
+ 0,
+ g_cclosure_new (
+ G_CALLBACK (handler), NULL,
+ (GClosureNotify) NULL),
+ FALSE);
+}
+
+static void
+atk_object_real_remove_property_change_handler (AtkObject *obj,
+ guint handler_id)
+{
+ g_signal_handler_disconnect (obj, handler_id);
+}
+
+/*
+ * This function is a signal handler for notify signal which gets emitted
+ * when a property changes value.
+ *
+ * It constructs an AtkPropertyValues structure and emits a "property_changed"
+ * signal which causes the user specified AtkPropertyChangeHandler
+ * to be called.
+ */
+static void
+atk_object_notify (GObject *obj,
+ GParamSpec *pspec)
+{
+ AtkPropertyValues values;
+
+ memset (&values.old_value, 0, sizeof (GValue));
+ memset (&values.new_value, 0, sizeof (GValue));
+ g_value_init (&values.new_value, pspec->value_type);
+ g_object_get_property(obj, pspec->name, &values.new_value);
+ values.property_name = pspec->name;
+ g_signal_emit (obj, atk_object_signals[PROPERTY_CHANGE], 0,
+ &values, NULL);
+}
+
*/
void (*focus_event) (AtkObject *accessible,
gboolean focus_in);
+ /*
+ * The signal handler which is executed when there is a property_change
+ * signal for an object.
+ */
+ gint (*property_change) (AtkObject *accessible,
+ AtkPropertyValues *values);
+
};
GType atk_object_get_type (void);