Example #1
0
static gint
layer_list_events (GtkWidget *widget,
		   GdkEvent  *event)
{
  GdkEventKey *kevent;
  GdkEventButton *bevent;
  GtkWidget *event_widget;
  DiaLayerWidget *layer_widget;

  event_widget = gtk_get_event_widget (event);

  if (GTK_IS_LIST_ITEM (event_widget)) {
    layer_widget = DIA_LAYER_WIDGET(event_widget);

    switch (event->type) {
    case GDK_BUTTON_PRESS:
      bevent = (GdkEventButton *) event;
      break;

    case GDK_2BUTTON_PRESS:
      bevent = (GdkEventButton *) event;
      layer_dialog_edit_layer(layer_widget, NULL, NULL);
      return TRUE;

    case GDK_KEY_PRESS:
      kevent = (GdkEventKey *) event;
      switch (kevent->keyval) {
      case GDK_Up:
	/* printf ("up arrow\n"); */
	break;
      case GDK_Down:
	/* printf ("down arrow\n"); */
	break;
      default:
	return FALSE;
      }
      return TRUE;

    default:
      break;
    }
  }

  return FALSE;
}
Example #2
0
/* Inserts items at the beginning of the list. */
int
clip_GTK_LISTPREPENDITEMS(ClipMachine * ClipMachineMemory)
{
   C_widget *clst = _fetch_cw_arg(ClipMachineMemory);

   ClipVar  *cv = _clip_spar(ClipMachineMemory, 2);

   GList    *items = NULL;

   CHECKCWID(clst, GTK_IS_LIST);
   CHECKARG4(2, ARRAY_type_of_ClipVarType, CHARACTER_type_of_ClipVarType, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType);
   switch (cv->ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType)
    {
    case CHARACTER_type_of_ClipVarType:
       items =
	g_list_append(items,
		      gtk_list_item_new_with_label(cv->ClipStrVar_s_of_ClipVar.ClipBuf_str_of_ClipStrVar.buf_of_ClipBuf));
       break;

    case MAP_type_of_ClipVarType:
    case NUMERIC_type_of_ClipVarType:
       {
	  C_widget *citem = _fetch_cwidget(ClipMachineMemory, cv);

	  CHECKCWID(citem, GTK_IS_WIDGET);
	  if (GTK_IS_LIST_ITEM(citem->widget))
	     items = g_list_append(items, citem->widget);
	  else
	   {
	      GtkWidget *item = gtk_list_item_new();

	      gtk_container_add(GTK_CONTAINER(item), citem->widget);
	      items = g_list_append(items, item);
	   }
	  break;
       }

    case ARRAY_type_of_ClipVarType:
       {
	  C_widget *citem;

	  GtkWidget *item;

	  int       i;

	  for (i = 0; i < cv->ClipArrVar_a_of_ClipVar.count_of_ClipArrVar; i++)
	   {
	      switch (cv->ClipArrVar_a_of_ClipVar.ClipVar_items_of_ClipArrVar[i].ClipType_t_of_ClipVar.
		      ClipVartype_type_of_ClipType)
	       {
	       case CHARACTER_type_of_ClipVarType:
		  items =
		   g_list_append(items,
				 gtk_list_item_new_with_label(cv->ClipArrVar_a_of_ClipVar.
							      ClipVar_items_of_ClipArrVar[i].ClipStrVar_s_of_ClipVar.
							      ClipBuf_str_of_ClipStrVar.buf_of_ClipBuf));
		  break;
	       case MAP_type_of_ClipVarType:
	       case NUMERIC_type_of_ClipVarType:
		  citem = _fetch_cwidget(ClipMachineMemory, &cv->ClipArrVar_a_of_ClipVar.ClipVar_items_of_ClipArrVar[i]);
		  CHECKCWID(citem, GTK_IS_WIDGET);
		  if (GTK_IS_LIST_ITEM(citem->widget))
		     items = g_list_append(items, citem->widget);
		  else
		   {
		      item = gtk_list_item_new();
		      gtk_container_add(GTK_CONTAINER(item), citem->widget);
		      items = g_list_append(items, item);
		   }
		  break;
	       default:
		  break;
	       }
	   }

       }
    default:
       break;
    }
   gtk_list_prepend_items(GTK_LIST(clst->widget), items);
   return 0;
 err:
   return 1;
}