示例#1
0
const gchar *
empathy_roster_view_get_group_at_y (EmpathyRosterView *self,
    gint y)
{
  GtkListBoxRow *row;

  row = gtk_list_box_get_row_at_y (GTK_LIST_BOX (self), y);

  if (EMPATHY_IS_ROSTER_CONTACT (row))
    return empathy_roster_contact_get_group (EMPATHY_ROSTER_CONTACT (row));
  else if (EMPATHY_IS_ROSTER_GROUP (row))
    return empathy_roster_group_get_name (EMPATHY_ROSTER_GROUP (row));

  return NULL;
}
示例#2
0
/**
 * @out_row: (out) (allow-none)
 */
FolksIndividual *
empathy_roster_view_get_individual_at_y (EmpathyRosterView *self,
    gint y,
    GtkListBoxRow **out_row)
{
  GtkListBoxRow *row;

  row = gtk_list_box_get_row_at_y (GTK_LIST_BOX (self), y);

  if (out_row != NULL)
    *out_row = row;

  if (!EMPATHY_IS_ROSTER_CONTACT (row))
    return NULL;

  return empathy_roster_contact_get_individual (EMPATHY_ROSTER_CONTACT (row));
}
static gboolean
list_button_release_event (GtkListBox *box,
                           GdkEvent   *event,
                           GtkWidget  *chooser)
{
  gdouble x, y;
  GtkListBoxRow *row;

  gdk_event_get_coords (event, &x, &y);
  row = gtk_list_box_get_row_at_y (box, y);
  if (row && g_object_get_data (G_OBJECT (row), "back"))
    {
      g_signal_emit_by_name (row, "activate", NULL);
      return TRUE;
    }

  return FALSE;
}
示例#4
0
static gboolean
empathy_roster_view_button_press_event (GtkWidget *widget,
    GdkEventButton *event)
{
  EmpathyRosterView *self = EMPATHY_ROSTER_VIEW (widget);
  gboolean (*chain_up) (GtkWidget *, GdkEventButton *) =
      ((GtkWidgetClass *) empathy_roster_view_parent_class)->button_press_event;

  if (event->button == 3)
    {
      GtkListBoxRow *row;

      row = gtk_list_box_get_row_at_y (GTK_LIST_BOX (self), event->y);

      if (row != NULL)
        {
          gtk_list_box_select_row (GTK_LIST_BOX (self), row);

          fire_popup_individual_menu (self, row, event->button, event->time);
        }
    }

  return chain_up (widget, event);
}