⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gtkclist.c

📁 gtk是linux一款强大的夸平台的图形化开发工具
💻 C
📖 第 1 页 / 共 5 页
字号:
  clist->column[column].button_passive = FALSE;  gtk_signal_disconnect_by_func (GTK_OBJECT (clist->column[column].button),				 (GtkSignalFunc) column_title_passive_func,				 NULL);  GTK_WIDGET_SET_FLAGS (clist->column[column].button, GTK_CAN_FOCUS);  if (GTK_WIDGET_VISIBLE (clist))    gtk_widget_queue_draw (clist->column[column].button);}voidgtk_clist_column_title_passive (GtkCList *clist,				gint      column){  GtkButton *button;  g_return_if_fail (clist != NULL);  g_return_if_fail (GTK_IS_CLIST (clist));  if (column < 0 || column >= clist->columns)    return;  if (!clist->column[column].button || clist->column[column].button_passive)    return;  button = GTK_BUTTON (clist->column[column].button);  clist->column[column].button_passive = TRUE;  if (button->button_down)    gtk_button_released (button);  if (button->in_button)    gtk_button_leave (button);  gtk_signal_connect (GTK_OBJECT (clist->column[column].button), "event",		      (GtkSignalFunc) column_title_passive_func, NULL);  GTK_WIDGET_UNSET_FLAGS (clist->column[column].button, GTK_CAN_FOCUS);  if (GTK_WIDGET_VISIBLE (clist))    gtk_widget_queue_draw (clist->column[column].button);}voidgtk_clist_column_titles_active (GtkCList *clist){  gint i;  g_return_if_fail (clist != NULL);  g_return_if_fail (GTK_IS_CLIST (clist));  if (!GTK_CLIST_SHOW_TITLES(clist))    return;  for (i = 0; i < clist->columns; i++)    gtk_clist_column_title_active (clist, i);}voidgtk_clist_column_titles_passive (GtkCList *clist){  gint i;  g_return_if_fail (clist != NULL);  g_return_if_fail (GTK_IS_CLIST (clist));  if (!GTK_CLIST_SHOW_TITLES(clist))    return;  for (i = 0; i < clist->columns; i++)    gtk_clist_column_title_passive (clist, i);}voidgtk_clist_set_column_title (GtkCList    *clist,			    gint         column,			    const gchar *title){  gint new_button = 0;  GtkWidget *old_widget;  GtkWidget *alignment = NULL;  GtkWidget *label;  g_return_if_fail (clist != NULL);  g_return_if_fail (GTK_IS_CLIST (clist));  if (column < 0 || column >= clist->columns)    return;  /* if the column button doesn't currently exist,   * it has to be created first */  if (!clist->column[column].button)    {      column_button_create (clist, column);      new_button = 1;    }  column_title_new (clist, column, title);  /* remove and destroy the old widget */  old_widget = GTK_BIN (clist->column[column].button)->child;  if (old_widget)    gtk_container_remove (GTK_CONTAINER (clist->column[column].button), old_widget);  /* create new alignment based no column justification */  switch (clist->column[column].justification)    {    case GTK_JUSTIFY_LEFT:      alignment = gtk_alignment_new (0.0, 0.5, 0.0, 0.0);      break;    case GTK_JUSTIFY_RIGHT:      alignment = gtk_alignment_new (1.0, 0.5, 0.0, 0.0);      break;    case GTK_JUSTIFY_CENTER:      alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);      break;    case GTK_JUSTIFY_FILL:      alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);      break;    }  gtk_widget_push_composite_child ();  label = gtk_label_new (clist->column[column].title);  gtk_widget_pop_composite_child ();  gtk_container_add (GTK_CONTAINER (alignment), label);  gtk_container_add (GTK_CONTAINER (clist->column[column].button), alignment);  gtk_widget_show (label);  gtk_widget_show (alignment);  /* if this button didn't previously exist, then the   * column button positions have to be re-computed */  if (GTK_WIDGET_VISIBLE (clist) && new_button)    size_allocate_title_buttons (clist);}gchar *gtk_clist_get_column_title (GtkCList *clist,			    gint      column){  g_return_val_if_fail (clist != NULL, NULL);  g_return_val_if_fail (GTK_IS_CLIST (clist), NULL);  if (column < 0 || column >= clist->columns)    return NULL;  return clist->column[column].title;}voidgtk_clist_set_column_widget (GtkCList  *clist,			     gint       column,			     GtkWidget *widget){  gint new_button = 0;  GtkWidget *old_widget;  g_return_if_fail (clist != NULL);  g_return_if_fail (GTK_IS_CLIST (clist));  if (column < 0 || column >= clist->columns)    return;  /* if the column button doesn't currently exist,   * it has to be created first */  if (!clist->column[column].button)    {      column_button_create (clist, column);      new_button = 1;    }  column_title_new (clist, column, NULL);  /* remove and destroy the old widget */  old_widget = GTK_BIN (clist->column[column].button)->child;  if (old_widget)    gtk_container_remove (GTK_CONTAINER (clist->column[column].button),			  old_widget);  /* add and show the widget */  if (widget)    {      gtk_container_add (GTK_CONTAINER (clist->column[column].button), widget);      gtk_widget_show (widget);    }  /* if this button didn't previously exist, then the   * column button positions have to be re-computed */  if (GTK_WIDGET_VISIBLE (clist) && new_button)    size_allocate_title_buttons (clist);}GtkWidget *gtk_clist_get_column_widget (GtkCList *clist,			     gint      column){  g_return_val_if_fail (clist != NULL, NULL);  g_return_val_if_fail (GTK_IS_CLIST (clist), NULL);  if (column < 0 || column >= clist->columns)    return NULL;  if (clist->column[column].button)    return GTK_BUTTON (clist->column[column].button)->child;  return NULL;}voidgtk_clist_set_column_justification (GtkCList         *clist,				    gint              column,				    GtkJustification  justification){  GtkWidget *alignment;  g_return_if_fail (clist != NULL);  g_return_if_fail (GTK_IS_CLIST (clist));  if (column < 0 || column >= clist->columns)    return;  clist->column[column].justification = justification;  /* change the alinment of the button title if it's not a   * custom widget */  if (clist->column[column].title)    {      alignment = GTK_BIN (clist->column[column].button)->child;      switch (clist->column[column].justification)	{	case GTK_JUSTIFY_LEFT:	  gtk_alignment_set (GTK_ALIGNMENT (alignment), 0.0, 0.5, 0.0, 0.0);	  break;	case GTK_JUSTIFY_RIGHT:	  gtk_alignment_set (GTK_ALIGNMENT (alignment), 1.0, 0.5, 0.0, 0.0);	  break;	case GTK_JUSTIFY_CENTER:	  gtk_alignment_set (GTK_ALIGNMENT (alignment), 0.5, 0.5, 0.0, 0.0);	  break;	case GTK_JUSTIFY_FILL:	  gtk_alignment_set (GTK_ALIGNMENT (alignment), 0.5, 0.5, 0.0, 0.0);	  break;	default:	  break;	}    }  if (CLIST_UNFROZEN (clist))    draw_rows (clist, NULL);}voidgtk_clist_set_column_visibility (GtkCList *clist,				 gint      column,				 gboolean  visible){  g_return_if_fail (clist != NULL);  g_return_if_fail (GTK_IS_CLIST (clist));  if (column < 0 || column >= clist->columns)    return;  if (clist->column[column].visible == visible)    return;  /* don't hide last visible column */  if (!visible)    {      gint i;      gint vis_columns = 0;      for (i = 0, vis_columns = 0; i < clist->columns && vis_columns < 2; i++)	if (clist->column[i].visible)	  vis_columns++;      if (vis_columns < 2)	return;    }  clist->column[column].visible = visible;  if (clist->column[column].button)    {      if (visible)	gtk_widget_show (clist->column[column].button);      else	gtk_widget_hide (clist->column[column].button);    }    gtk_widget_queue_resize (GTK_WIDGET(clist));}voidgtk_clist_set_column_resizeable (GtkCList *clist,				 gint      column,				 gboolean  resizeable){  g_return_if_fail (clist != NULL);  g_return_if_fail (GTK_IS_CLIST (clist));  if (column < 0 || column >= clist->columns)    return;  if (clist->column[column].resizeable == resizeable)    return;  clist->column[column].resizeable = resizeable;  if (resizeable)    clist->column[column].auto_resize = FALSE;  if (GTK_WIDGET_VISIBLE (clist))    size_allocate_title_buttons (clist);}voidgtk_clist_set_column_auto_resize (GtkCList *clist,				  gint      column,				  gboolean  auto_resize){  g_return_if_fail (clist != NULL);  g_return_if_fail (GTK_IS_CLIST (clist));  if (column < 0 || column >= clist->columns)    return;  if (clist->column[column].auto_resize == auto_resize)    return;  clist->column[column].auto_resize = auto_resize;  if (auto_resize)    {      clist->column[column].resizeable = FALSE;      if (!GTK_CLIST_AUTO_RESIZE_BLOCKED(clist))	{	  gint width;	  width = gtk_clist_optimal_column_width (clist, column);	  gtk_clist_set_column_width (clist, column, width);	}    }  if (GTK_WIDGET_VISIBLE (clist))    size_allocate_title_buttons (clist);}gintgtk_clist_columns_autosize (GtkCList *clist){  gint i;  gint width;  g_return_val_if_fail (clist != NULL, 0);  g_return_val_if_fail (GTK_IS_CLIST (clist), 0);  gtk_clist_freeze (clist);  width = 0;  for (i = 0; i < clist->columns; i++)    {      gtk_clist_set_column_width (clist, i,				  gtk_clist_optimal_column_width (clist, i));      width += clist->column[i].width;    }  gtk_clist_thaw (clist);  return width;}gintgtk_clist_optimal_column_width (GtkCList *clist,				gint      column){  GtkRequisition requisition;  GList *list;  gint width;  g_return_val_if_fail (clist != NULL, 0);  g_return_val_if_fail (GTK_CLIST (clist), 0);  if (column < 0 || column > clist->columns)    return 0;  if (GTK_CLIST_SHOW_TITLES(clist) && clist->column[column].button)    width = (clist->column[column].button->requisition.width)#if 0	     (CELL_SPACING + (2 * COLUMN_INSET)))#endif		;  else    width = 0;  for (list = clist->row_list; list; list = list->next)    {      GTK_CLIST_CLASS_FW (clist)->cell_size_request	(clist, GTK_CLIST_ROW (list), column, &requisition);      width = MAX (width, requisition.width);    }  return width;}voidgtk_clist_set_column_width (GtkCList *clist,			    gint      column,			    gint      width){  g_return_if_fail (clist != NULL);  g_return_if_fail (GTK_IS_CLIST (clist));  if (column < 0 || column >= clist->columns)    return;  gtk_signal_emit (GTK_OBJECT (clist), clist_signals[RESIZE_COLUMN],		   column, width);}voidgtk_clist_set_column_min_width (GtkCList *clist,				gint      column,				gint      min_width){  g_return_if_fail (clist != NULL);  g_return_if_fail (GTK_IS_CLIST (clist));  if (column < 0 || column >= clist->columns)    return;  if (clist->column[column].min_width == min_width)    return;  if (clist->column[column].max_width >= 0  &&      clist->column[column].max_width < min_width)    clist->column[column].min_width = clist->column[column].max_width;  else    clist->column[column].min_width = min_width;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -