|
Packit |
98cdb6 |
#include <string.h>
|
|
Packit |
98cdb6 |
#include <stdlib.h>
|
|
Packit |
98cdb6 |
#include <gtk/gtk.h>
|
|
Packit |
98cdb6 |
#include <testlib.h>
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
static gint _test_paned (gpointer data);
|
|
Packit |
98cdb6 |
static void _check_paned (AtkObject *obj);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
static void _property_change_handler (AtkObject *obj,
|
|
Packit |
98cdb6 |
AtkPropertyValues *values);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
#define NUM_VALID_ROLES 1
|
|
Packit |
98cdb6 |
static gint last_position;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
static void _property_change_handler (AtkObject *obj,
|
|
Packit |
98cdb6 |
AtkPropertyValues *values)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
const gchar *type_name = g_type_name (G_TYPE_FROM_INSTANCE (obj));
|
|
Packit |
98cdb6 |
const gchar *name = atk_object_get_name (obj);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
g_print ("_property_change_handler: Accessible Type: %s\n",
|
|
Packit |
98cdb6 |
type_name ? type_name : "NULL");
|
|
Packit |
98cdb6 |
g_print ("_property_change_handler: Accessible name: %s\n",
|
|
Packit |
98cdb6 |
name ? name : "NULL");
|
|
Packit |
98cdb6 |
g_print ("_property_change_handler: PropertyName: %s\n",
|
|
Packit |
98cdb6 |
values->property_name ? values->property_name: "NULL");
|
|
Packit |
98cdb6 |
if (strcmp (values->property_name, "accessible-value") == 0)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
GValue *value, val;
|
|
Packit |
98cdb6 |
int position;
|
|
Packit |
98cdb6 |
value = &val;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
memset (value, 0, sizeof (GValue));
|
|
Packit |
98cdb6 |
atk_value_get_current_value (ATK_VALUE (obj), value);
|
|
Packit |
98cdb6 |
g_return_if_fail (G_VALUE_HOLDS_INT (value));
|
|
Packit |
98cdb6 |
position = g_value_get_int (value);
|
|
Packit |
98cdb6 |
g_print ("Position is %d previous position was %d\n",
|
|
Packit |
98cdb6 |
position, last_position);
|
|
Packit |
98cdb6 |
last_position = position;
|
|
Packit |
98cdb6 |
atk_value_get_minimum_value (ATK_VALUE (obj), value);
|
|
Packit |
98cdb6 |
g_return_if_fail (G_VALUE_HOLDS_INT (value));
|
|
Packit |
98cdb6 |
position = g_value_get_int (value);
|
|
Packit |
98cdb6 |
g_print ("Minimum Value is %d\n", position);
|
|
Packit |
98cdb6 |
atk_value_get_maximum_value (ATK_VALUE (obj), value);
|
|
Packit |
98cdb6 |
g_return_if_fail (G_VALUE_HOLDS_INT (value));
|
|
Packit |
98cdb6 |
position = g_value_get_int (value);
|
|
Packit |
98cdb6 |
g_print ("Maximum Value is %d\n", position);
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
static gint _test_paned (gpointer data)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
AtkObject *obj = ATK_OBJECT (data);
|
|
Packit |
98cdb6 |
AtkRole role = atk_object_get_role (obj);
|
|
Packit |
98cdb6 |
GtkWidget *widget;
|
|
Packit |
98cdb6 |
static gint times = 0;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
widget = GTK_ACCESSIBLE (obj)->widget;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
if (role == ATK_ROLE_SPLIT_PANE)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
GValue *value, val;
|
|
Packit |
98cdb6 |
int position;
|
|
Packit |
98cdb6 |
value = &val;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
memset (value, 0, sizeof (GValue));
|
|
Packit |
98cdb6 |
atk_value_get_current_value (ATK_VALUE (obj), value);
|
|
Packit |
98cdb6 |
g_return_val_if_fail (G_VALUE_HOLDS_INT (value), FALSE);
|
|
Packit |
98cdb6 |
position = g_value_get_int (value);
|
|
Packit |
98cdb6 |
g_print ("Position is : %d\n", position);
|
|
Packit |
98cdb6 |
last_position = position;
|
|
Packit |
98cdb6 |
position *= 2;
|
|
Packit |
98cdb6 |
g_value_set_int (value, position);
|
|
Packit |
98cdb6 |
atk_value_set_current_value (ATK_VALUE (obj), value);
|
|
Packit |
98cdb6 |
times++;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
if (times < 4)
|
|
Packit |
98cdb6 |
return TRUE;
|
|
Packit |
98cdb6 |
else
|
|
Packit |
98cdb6 |
return FALSE;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
static void _check_paned (AtkObject *obj)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
static gboolean done_paned = FALSE;
|
|
Packit |
98cdb6 |
AtkRole role;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
role = atk_object_get_role (obj);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
if (role == ATK_ROLE_FRAME)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
AtkRole roles[NUM_VALID_ROLES];
|
|
Packit |
98cdb6 |
AtkObject *paned_obj;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
if (done_paned)
|
|
Packit |
98cdb6 |
return;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
roles[0] = ATK_ROLE_SPLIT_PANE;
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
paned_obj = find_object_by_role (obj, roles, NUM_VALID_ROLES);
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
if (paned_obj)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
if (!done_paned)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
done_paned = TRUE;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
atk_object_connect_property_change_handler (paned_obj,
|
|
Packit |
98cdb6 |
(AtkPropertyChangeHandler*) _property_change_handler);
|
|
Packit |
98cdb6 |
g_timeout_add (2000, _test_paned, paned_obj);
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
return;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
if (role != ATK_ROLE_COMBO_BOX)
|
|
Packit |
98cdb6 |
return;
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
static void
|
|
Packit |
98cdb6 |
_create_event_watcher (void)
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
atk_add_focus_tracker (_check_paned);
|
|
Packit |
98cdb6 |
}
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
int
|
|
Packit |
98cdb6 |
gtk_module_init(gint argc, char* argv[])
|
|
Packit |
98cdb6 |
{
|
|
Packit |
98cdb6 |
g_print("testpaned Module loaded\n");
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
_create_event_watcher();
|
|
Packit |
98cdb6 |
|
|
Packit |
98cdb6 |
return 0;
|
|
Packit |
98cdb6 |
}
|