+2001-11-19 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * atk/atkobject.c (atk_object_notify_state_change):
+ Fix bug in calculation of number of toggle states
+
+ * atk/atkstate.c:
+ Correct out-by-1 error in atk_state_type_register()
+ Use type (number of states defined) in atk_state_type_get_name()
+ and atk_state_type_for_name()
+
2001-11-17 Padraig O'Briain <padraig.obriain@sun.com>
* atk/atkeditabletext.c:
AtkState state,
gboolean value)
{
+#define N_TOGGLE_STATES 2
AtkPropertyValues values = { 0, };
- AtkState toggle_states[] = { ATK_STATE_EXPANDED, ATK_STATE_COLLAPSED };
- AtkState toggled_states[] = { ATK_STATE_COLLAPSED, ATK_STATE_EXPANDED };
+ AtkState toggle_states[N_TOGGLE_STATES] = { ATK_STATE_EXPANDED,
+ ATK_STATE_COLLAPSED };
+ AtkState toggled_states[N_TOGGLE_STATES] = { ATK_STATE_COLLAPSED,
+ ATK_STATE_EXPANDED };
values.property_name = atk_object_name_property_state;
if (value)
g_value_init (&values.new_value, G_TYPE_INT);
g_value_set_int (&values.new_value, state);
- for (i = 0; i < sizeof (toggle_states); i ++)
+ for (i = 0; i < N_TOGGLE_STATES; i++)
{
if (toggle_states[i] == state)
{
#include <string.h>
+static guint type = ATK_STATE_LAST_DEFINED;
+
#define NUM_POSSIBLE_STATES (sizeof(AtkState)*8)
static gchar* state_names[NUM_POSSIBLE_STATES] = {
AtkStateType
atk_state_type_register (const gchar *name)
{
- static guint type = ATK_STATE_LAST_DEFINED;
- if (type < NUM_POSSIBLE_STATES)
+
+ if (type < NUM_POSSIBLE_STATES -1)
{
state_names[++type] = g_strdup (name);
return (type);
{
gint n;
- if (state == 0)
- return NULL;
-
- for (n=0; n<NUM_POSSIBLE_STATES; n++)
- {
- if (state == n)
+ if (state < type)
+ {
+ n = state;
return state_names[n];
- }
+ }
return NULL;
}
g_return_val_if_fail (name != NULL, 0);
g_return_val_if_fail (strlen (name) > 0, 0);
- for (i = 0; i < NUM_POSSIBLE_STATES; i++)
+ for (i = 0; i < type; i++)
{
if (state_names[i] == NULL)
continue;