~ted/libdbusmenu/hashtable_free

« back to all changes in this revision

Viewing changes to libdbusmenu-glib/server.c

  • Committer: Cody Russell
  • Date: 2010-07-30 17:27:30 UTC
  • mfrom: (133.1.7 open-menu-signal)
  • Revision ID: crussell@canonical.com-20100730172730-e7ynobiz0i213r6m
Merge open-menu-signal branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
65
65
        ID_PROP_UPDATE,
66
66
        ID_UPDATE,
67
67
        LAYOUT_UPDATED,
 
68
        ITEM_ACTIVATION,
68
69
        LAST_SIGNAL
69
70
};
70
71
 
165
166
                                                 NULL, NULL,
166
167
                                                 _dbusmenu_server_marshal_VOID__UINT_INT,
167
168
                                                 G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_INT);
 
169
        /**
 
170
                DbusmenuServer::item-activation-requested:
 
171
                @arg0: The #DbusmenuServer emitting the signal.
 
172
                @arg1: The ID of the parent for this update.
 
173
                @arg2: The timestamp of when the event happened
 
174
 
 
175
                This is signaled when a menuitem under this server
 
176
                sends it's activate signal.
 
177
        */
 
178
        signals[ITEM_ACTIVATION] =  g_signal_new(DBUSMENU_SERVER_SIGNAL_ITEM_ACTIVATION,
 
179
                                                 G_TYPE_FROM_CLASS(class),
 
180
                                                 G_SIGNAL_RUN_LAST,
 
181
                                                 G_STRUCT_OFFSET(DbusmenuServerClass, item_activation),
 
182
                                                 NULL, NULL,
 
183
                                                 _dbusmenu_server_marshal_VOID__INT_UINT,
 
184
                                                 G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_UINT);
168
185
 
169
186
 
170
187
        g_object_class_install_property (object_class, PROP_DBUS_OBJECT,
359
376
        return;
360
377
}
361
378
 
 
379
/* Called when a menu item emits its activated signal so it
 
380
   gets passed across the bus. */
 
381
static void 
 
382
menuitem_activated (DbusmenuMenuitem * mi, guint timestamp, DbusmenuServer * server)
 
383
{
 
384
        g_signal_emit(G_OBJECT(server), signals[ITEM_ACTIVATION], 0, dbusmenu_menuitem_get_id(mi), timestamp, TRUE);
 
385
        return;
 
386
}
 
387
 
362
388
/* Connects all the signals that we're interested in
363
389
   coming from a menuitem */
364
390
static void
368
394
        g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED, G_CALLBACK(menuitem_child_removed), data);
369
395
        g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED, G_CALLBACK(menuitem_child_moved), data);
370
396
        g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED, G_CALLBACK(menuitem_property_changed), data);
 
397
        g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(menuitem_activated), data);
371
398
        return;
372
399
}
373
400