60
60
static void nux_base_window_accessible_init(NuxBaseWindowAccessible* base_window_accessible);
63
static void nux_base_window_accessible_initialize (AtkObject *accessible,
65
static AtkObject *nux_base_window_accessible_get_parent (AtkObject *obj);
66
static AtkStateSet *nux_base_window_accessible_ref_state_set (AtkObject *obj);
63
static void nux_base_window_accessible_initialize(AtkObject* accessible,
65
static AtkObject* nux_base_window_accessible_get_parent(AtkObject* obj);
66
static AtkStateSet* nux_base_window_accessible_ref_state_set(AtkObject* obj);
69
static void on_change_keyboard_receiver_cb (AtkObject *accessible,
69
static void on_change_keyboard_receiver_cb(AtkObject* accessible,
72
72
G_DEFINE_TYPE(NuxBaseWindowAccessible, nux_base_window_accessible, NUX_TYPE_VIEW_ACCESSIBLE)
166
166
nux_base_window_accessible_initialize(AtkObject* accessible,
169
nux::Object *nux_object = NULL;
170
nux::BaseWindow *bwindow = NULL;
169
nux::Object* nux_object = NULL;
170
nux::BaseWindow* bwindow = NULL;
172
ATK_OBJECT_CLASS (nux_base_window_accessible_parent_class)->initialize (accessible, data);
172
ATK_OBJECT_CLASS(nux_base_window_accessible_parent_class)->initialize(accessible, data);
174
174
accessible->role = ATK_ROLE_WINDOW;
176
nux_object = nux_object_accessible_get_object (NUX_OBJECT_ACCESSIBLE (accessible));
177
bwindow = dynamic_cast<nux::BaseWindow *>(nux_object);
176
nux_object = nux_object_accessible_get_object(NUX_OBJECT_ACCESSIBLE(accessible));
177
bwindow = dynamic_cast<nux::BaseWindow*>(nux_object);
179
179
/* This gives us if the window has the underlying key input */
180
bwindow->OnStartKeyboardReceiver.connect (sigc::bind (sigc::ptr_fun (on_change_keyboard_receiver_cb),
182
bwindow->OnStopKeyboardReceiver.connect (sigc::bind (sigc::ptr_fun (on_change_keyboard_receiver_cb),
180
bwindow->OnStartKeyboardReceiver.connect(sigc::bind(sigc::ptr_fun(on_change_keyboard_receiver_cb),
182
bwindow->OnStopKeyboardReceiver.connect(sigc::bind(sigc::ptr_fun(on_change_keyboard_receiver_cb),
186
186
static AtkObject*
229
229
is_active = (self->priv->key_focused || self->priv->child_key_focused);
231
231
if (self->priv->active != is_active)
233
self->priv->active = is_active;
236
signal_id = ACTIVATE;
238
signal_id = DEACTIVATE;
240
atk_object_notify_state_change (ATK_OBJECT (self),
241
ATK_STATE_ACTIVE, is_active);
242
g_signal_emit (self, signals [signal_id], 0);
233
self->priv->active = is_active;
236
signal_id = ACTIVATE;
238
signal_id = DEACTIVATE;
240
atk_object_notify_state_change(ATK_OBJECT(self),
241
ATK_STATE_ACTIVE, is_active);
242
g_signal_emit(self, signals [signal_id], 0);
247
on_change_keyboard_receiver_cb (AtkObject *object,
247
on_change_keyboard_receiver_cb(AtkObject* object,
250
NuxBaseWindowAccessible *self = NULL;
250
NuxBaseWindowAccessible* self = NULL;
252
252
/* On the base window, we suppose that the window is active if it
253
253
has the key focus (see nux::InputArea) */
254
self = NUX_BASE_WINDOW_ACCESSIBLE (object);
254
self = NUX_BASE_WINDOW_ACCESSIBLE(object);
256
256
if (self->priv->key_focused != focus_in)
258
self->priv->key_focused = focus_in;
258
self->priv->key_focused = focus_in;
266
nux_base_window_set_child_key_focused (NuxBaseWindowAccessible *self,
266
nux_base_window_set_child_key_focused(NuxBaseWindowAccessible* self,
269
g_return_if_fail (NUX_IS_BASE_WINDOW_ACCESSIBLE (self));
269
g_return_if_fail(NUX_IS_BASE_WINDOW_ACCESSIBLE(self));
271
271
if (self->priv->child_key_focused != value)
273
self->priv->child_key_focused = value;
273
self->priv->child_key_focused = value;