static VALUE rg_add_states(VALUE self, VALUE rbtypes) { AtkStateSet *set = _SELF(self); long n; AtkStateType *types = RVAL2ATKSTATETYPES(rbtypes, &n); atk_state_set_add_states(set, types, n); g_free(types); return self; }
G_MODULE_EXPORT void test_init (gchar *path) { AtkStateSet *ss; gchar *td; if (path == NULL) g_error("No test data path provided"); tdata_path = path; td = g_build_path(G_DIR_SEPARATOR_S, tdata_path, OBJECT_TEST_1, NULL); root_accessible = ATK_OBJECT(atk_object_xml_parse(td)); g_free(td); ss = atk_object_ref_state_set(ATK_OBJECT(root_accessible)); atk_state_set_add_states(ss, states, 5); g_object_unref(G_OBJECT(ss)); }
AtkStateSet * spi_state_set_cache_from_sequence (const GArray *seq) { int i; AtkStateSet *set; AtkStateType *states; spi_init_state_type_tables (); states = g_newa (AtkStateType, seq->len); for (i = 0; i < seq->len; i++) states [i] = state_spi_to_atk (g_array_index (seq, dbus_int32_t, i)); set = atk_state_set_new (); atk_state_set_add_states (set, states, seq->len); g_array_free (seq, TRUE); return set; }
/** * Wrapper for atk_state_set_add_states(). */ static PyObject* _atkstateset_add_states (PyAtkStateSet *self, PyObject *args) { int i; int amount; gboolean islist = FALSE; gboolean istuple = FALSE; AtkStateType *types = NULL; PyObject *val; debug ("_atkstateset_add_states\n"); if (!PyArg_ParseTuple (args, "O:add_states", &val)) return NULL; istuple = PyTuple_Check (val); if (!istuple) islist = PyList_Check (val); if (!islist && !istuple) return NULL; amount = (islist) ? PyList_Size (val) : PyTuple_Size (val); types = PyMem_New (AtkStateType, amount); if (!types) return PyErr_NoMemory (); if (islist) for (i = 0; i < amount; i++) types[i] = PyInt_AsLong (PyList_GetItem (val, i)); else for (i = 0; i < amount; i++) types[i] = PyInt_AsLong (PyTuple_GetItem (val, i)); atk_state_set_add_states (ATKSTATESET (self), types, amount); PyMem_Free (types); Py_RETURN_NONE; }
static gboolean test_state_set (void) { AtkStateSet *state_set1, *state_set2, *state_set3; AtkStateType state_array[3]; gboolean b_val; state_set1 = atk_state_set_new (); b_val = atk_state_set_is_empty (state_set1); if (b_val) { g_print ("New state set is not empty\n"); return FALSE; } b_val = atk_state_set_add_state (state_set1, ATK_STATE_ACTIVE); if (!b_val) { g_print ("Adding new state set failed\n"); return FALSE; } b_val = atk_state_set_is_empty (state_set1); if (!b_val) { g_print ("New state set is empty when it should not be\n"); return FALSE; } b_val = atk_state_set_add_state (state_set1, ATK_STATE_ACTIVE); if (b_val) { g_print ("Adding new state set succeeded when it should not have\n"); return FALSE; } state_array[0] = ATK_STATE_ACTIVE; state_array[1] = ATK_STATE_VISIBLE; state_array[2] = ATK_STATE_BUSY; atk_state_set_add_states (state_set1, state_array, 3); b_val = atk_state_set_contains_state (state_set1, ATK_STATE_ACTIVE); if (!b_val) { g_print ("Contains state failed for ATK_STATE_ACTIVE but should not have\n"); return FALSE; } b_val = atk_state_set_contains_state (state_set1, ATK_STATE_VISIBLE); if (!b_val) { g_print ("Contains state failed for ATK_STATE_VISIBLE but should not have\n"); return FALSE; } b_val = atk_state_set_contains_state (state_set1, ATK_STATE_BUSY); if (!b_val) { g_print ("Contains state failed for ATK_STATE_BUSY but should not have\n"); return FALSE; } b_val = atk_state_set_contains_state (state_set1, ATK_STATE_VERTICAL); if (b_val) { g_print ("Contains state succeeded for ATK_STATE_VERTICAL but should not have\n"); return FALSE; } atk_state_set_remove_state (state_set1, ATK_STATE_BUSY); b_val = atk_state_set_contains_state (state_set1, ATK_STATE_BUSY); if (b_val) { g_print ("Contains state succeeded for ATK_STATE_BUSY but should not have\n"); return FALSE; } b_val = atk_state_set_contains_state (state_set1, ATK_STATE_VISIBLE); if (!b_val) { g_print ("Contains state failed for ATK_STATE_VISIBLE but should not have\n"); return FALSE; } b_val = atk_state_set_contains_states (state_set1, state_array, 3); if (b_val) { g_print ("Contains states succeeded should not have\n"); return FALSE; } b_val = atk_state_set_contains_states (state_set1, state_array, 2); if (!b_val) { g_print ("Contains states failed should not have\n"); return FALSE; } state_array[0] = ATK_STATE_SINGLE_LINE; state_array[1] = ATK_STATE_VISIBLE; state_array[2] = ATK_STATE_VERTICAL; state_set2 = atk_state_set_new(); atk_state_set_add_states (state_set2, state_array, 3); state_set3 = atk_state_set_and_sets (state_set1, state_set2); b_val = atk_state_set_contains_state (state_set3, ATK_STATE_VISIBLE); if (!b_val) { g_print ("Contains state failed for ATK_STATE_VISIBLE after and but should not have\n"); return FALSE; } b_val = atk_state_set_contains_state (state_set3, ATK_STATE_BUSY); if (b_val) { g_print ("Contains state succeeded for ATK_STATE_BUSY after and but should not have\n"); return FALSE; } g_object_unref (state_set3); atk_state_set_remove_state (state_set1, ATK_STATE_VISIBLE); state_set3 = atk_state_set_and_sets (state_set1, state_set2); if (state_set3) { g_print ("state_set 3 is not NULL after and but should be\n"); return FALSE; } state_set3 = atk_state_set_or_sets (state_set1, state_set2); b_val = atk_state_set_contains_state (state_set3, ATK_STATE_VISIBLE); if (!b_val) { g_print ("Contains state failed for ATK_STATE_VISIBLE after or but should not have\n"); return FALSE; } b_val = atk_state_set_contains_state (state_set3, ATK_STATE_INVALID); if (b_val) { g_print ("Contains state succeeded for ATK_STATE_INVALID after or but should not have\n"); return FALSE; } g_object_unref (state_set3); b_val = atk_state_set_add_state (state_set1, ATK_STATE_VISIBLE); if (!b_val) { g_print ("Adding new state set failed\n"); return FALSE; } state_set3 = atk_state_set_xor_sets (state_set1, state_set2); b_val = atk_state_set_contains_state (state_set3, ATK_STATE_VISIBLE); if (b_val) { g_print ("Contains state succeeded for ATK_STATE_VISIBLE after xor but should not have\n"); return FALSE; } b_val = atk_state_set_contains_state (state_set3, ATK_STATE_ACTIVE); if (!b_val) { g_print ("Contains state failed for ATK_STATE_ACTIVE after xor but should not have\n"); return FALSE; } atk_state_set_clear_states (state_set1); b_val = atk_state_set_contains_state (state_set1, ATK_STATE_ACTIVE); if (b_val) { g_print ("Contains state succeeded for ATK_STATE_ACTIVE but should not have\n"); return FALSE; } g_object_unref (state_set1); g_object_unref (state_set2); g_object_unref (state_set3); return TRUE; }