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

📄 gtkscrolledwindow.c

📁 gtk是linux一款强大的夸平台的图形化开发工具
💻 C
📖 第 1 页 / 共 3 页
字号:
      if (old_adjustment == hadjustment)	return;      gtk_signal_disconnect_by_func (GTK_OBJECT (old_adjustment),				     GTK_SIGNAL_FUNC (gtk_scrolled_window_adjustment_changed),				     scrolled_window);      gtk_range_set_adjustment (GTK_RANGE (scrolled_window->hscrollbar),				hadjustment);    }  hadjustment = gtk_range_get_adjustment (GTK_RANGE (scrolled_window->hscrollbar));  gtk_signal_connect (GTK_OBJECT (hadjustment),		      "changed",		      GTK_SIGNAL_FUNC (gtk_scrolled_window_adjustment_changed),		      scrolled_window);  gtk_scrolled_window_adjustment_changed (hadjustment, scrolled_window);    if (bin->child)    gtk_widget_set_scroll_adjustments (bin->child,				       gtk_range_get_adjustment (GTK_RANGE (scrolled_window->hscrollbar)),				       gtk_range_get_adjustment (GTK_RANGE (scrolled_window->vscrollbar)));}voidgtk_scrolled_window_set_vadjustment (GtkScrolledWindow *scrolled_window,				     GtkAdjustment     *vadjustment){  GtkBin *bin;  g_return_if_fail (scrolled_window != NULL);  g_return_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window));  if (vadjustment)    g_return_if_fail (GTK_IS_ADJUSTMENT (vadjustment));  else    vadjustment = (GtkAdjustment*) gtk_object_new (GTK_TYPE_ADJUSTMENT, NULL);  bin = GTK_BIN (scrolled_window);  if (!scrolled_window->vscrollbar)    {      gtk_widget_push_composite_child ();      scrolled_window->vscrollbar = gtk_vscrollbar_new (vadjustment);      gtk_widget_set_composite_name (scrolled_window->vscrollbar, "vscrollbar");      gtk_widget_pop_composite_child ();      gtk_widget_set_parent (scrolled_window->vscrollbar, GTK_WIDGET (scrolled_window));      gtk_widget_ref (scrolled_window->vscrollbar);      gtk_widget_show (scrolled_window->vscrollbar);    }  else    {      GtkAdjustment *old_adjustment;            old_adjustment = gtk_range_get_adjustment (GTK_RANGE (scrolled_window->vscrollbar));      if (old_adjustment == vadjustment)	return;      gtk_signal_disconnect_by_func (GTK_OBJECT (old_adjustment),				     GTK_SIGNAL_FUNC (gtk_scrolled_window_adjustment_changed),				     scrolled_window);      gtk_range_set_adjustment (GTK_RANGE (scrolled_window->vscrollbar),				vadjustment);    }  vadjustment = gtk_range_get_adjustment (GTK_RANGE (scrolled_window->vscrollbar));  gtk_signal_connect (GTK_OBJECT (vadjustment),		      "changed",		      GTK_SIGNAL_FUNC (gtk_scrolled_window_adjustment_changed),		      scrolled_window);  gtk_scrolled_window_adjustment_changed (vadjustment, scrolled_window);  if (bin->child)    gtk_widget_set_scroll_adjustments (bin->child,				       gtk_range_get_adjustment (GTK_RANGE (scrolled_window->hscrollbar)),				       gtk_range_get_adjustment (GTK_RANGE (scrolled_window->vscrollbar)));}GtkAdjustment*gtk_scrolled_window_get_hadjustment (GtkScrolledWindow *scrolled_window){  g_return_val_if_fail (scrolled_window != NULL, NULL);  g_return_val_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window), NULL);  return (scrolled_window->hscrollbar ?	  gtk_range_get_adjustment (GTK_RANGE (scrolled_window->hscrollbar)) :	  NULL);}GtkAdjustment*gtk_scrolled_window_get_vadjustment (GtkScrolledWindow *scrolled_window){  g_return_val_if_fail (scrolled_window != NULL, NULL);  g_return_val_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window), NULL);  return (scrolled_window->vscrollbar ?	  gtk_range_get_adjustment (GTK_RANGE (scrolled_window->vscrollbar)) :	  NULL);}voidgtk_scrolled_window_set_policy (GtkScrolledWindow *scrolled_window,				GtkPolicyType      hscrollbar_policy,				GtkPolicyType      vscrollbar_policy){  g_return_if_fail (scrolled_window != NULL);  g_return_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window));  if ((scrolled_window->hscrollbar_policy != hscrollbar_policy) ||      (scrolled_window->vscrollbar_policy != vscrollbar_policy))    {      scrolled_window->hscrollbar_policy = hscrollbar_policy;      scrolled_window->vscrollbar_policy = vscrollbar_policy;      gtk_widget_queue_resize (GTK_WIDGET (scrolled_window));    }}voidgtk_scrolled_window_set_placement (GtkScrolledWindow *scrolled_window,				   GtkCornerType      window_placement){  g_return_if_fail (scrolled_window != NULL);  g_return_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window));  if (scrolled_window->window_placement != window_placement)    {      scrolled_window->window_placement = window_placement;      gtk_widget_queue_resize (GTK_WIDGET (scrolled_window));    }}static voidgtk_scrolled_window_destroy (GtkObject *object){  GtkScrolledWindow *scrolled_window;  g_return_if_fail (object != NULL);  g_return_if_fail (GTK_IS_SCROLLED_WINDOW (object));  scrolled_window = GTK_SCROLLED_WINDOW (object);  gtk_widget_unparent (scrolled_window->hscrollbar);  gtk_widget_unparent (scrolled_window->vscrollbar);  gtk_widget_destroy (scrolled_window->hscrollbar);  gtk_widget_destroy (scrolled_window->vscrollbar);  GTK_OBJECT_CLASS (parent_class)->destroy (object);}static voidgtk_scrolled_window_finalize (GtkObject *object){  GtkScrolledWindow *scrolled_window;  scrolled_window = GTK_SCROLLED_WINDOW (object);  gtk_widget_unref (scrolled_window->hscrollbar);  gtk_widget_unref (scrolled_window->vscrollbar);  GTK_OBJECT_CLASS (parent_class)->finalize (object);}static voidgtk_scrolled_window_map (GtkWidget *widget){  GtkScrolledWindow *scrolled_window;  g_return_if_fail (widget != NULL);  g_return_if_fail (GTK_IS_SCROLLED_WINDOW (widget));  scrolled_window = GTK_SCROLLED_WINDOW (widget);  /* chain parent class handler to map self and child */  GTK_WIDGET_CLASS (parent_class)->map (widget);    if (GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar) &&      !GTK_WIDGET_MAPPED (scrolled_window->hscrollbar))    gtk_widget_map (scrolled_window->hscrollbar);    if (GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar) &&      !GTK_WIDGET_MAPPED (scrolled_window->vscrollbar))    gtk_widget_map (scrolled_window->vscrollbar);}static voidgtk_scrolled_window_unmap (GtkWidget *widget){  GtkScrolledWindow *scrolled_window;  g_return_if_fail (widget != NULL);  g_return_if_fail (GTK_IS_SCROLLED_WINDOW (widget));  scrolled_window = GTK_SCROLLED_WINDOW (widget);  /* chain parent class handler to unmap self and child */  GTK_WIDGET_CLASS (parent_class)->unmap (widget);    if (GTK_WIDGET_MAPPED (scrolled_window->hscrollbar))    gtk_widget_unmap (scrolled_window->hscrollbar);    if (GTK_WIDGET_MAPPED (scrolled_window->vscrollbar))    gtk_widget_unmap (scrolled_window->vscrollbar);}static voidgtk_scrolled_window_draw (GtkWidget    *widget,			  GdkRectangle *area){  GtkScrolledWindow *scrolled_window;  GtkBin *bin;  GdkRectangle child_area;  g_return_if_fail (widget != NULL);  g_return_if_fail (GTK_IS_SCROLLED_WINDOW (widget));  g_return_if_fail (area != NULL);    scrolled_window = GTK_SCROLLED_WINDOW (widget);  bin = GTK_BIN (widget);  if (bin->child && GTK_WIDGET_VISIBLE (bin->child) &&      gtk_widget_intersect (bin->child, area, &child_area))    gtk_widget_draw (bin->child, &child_area);    if (GTK_WIDGET_VISIBLE (scrolled_window->hscrollbar) &&      gtk_widget_intersect (scrolled_window->hscrollbar, area, &child_area))    gtk_widget_draw (scrolled_window->hscrollbar, &child_area);    if (GTK_WIDGET_VISIBLE (scrolled_window->vscrollbar) &&      gtk_widget_intersect (scrolled_window->vscrollbar, area, &child_area))    gtk_widget_draw (scrolled_window->vscrollbar, &child_area);}static voidgtk_scrolled_window_forall (GtkContainer *container,			    gboolean	  include_internals,			    GtkCallback   callback,			    gpointer      callback_data){  g_return_if_fail (container != NULL);  g_return_if_fail (GTK_IS_SCROLLED_WINDOW (container));  g_return_if_fail (callback != NULL);  GTK_CONTAINER_CLASS (parent_class)->forall (container,					      include_internals,					      callback,					      callback_data);  if (include_internals)    {      GtkScrolledWindow *scrolled_window;      scrolled_window = GTK_SCROLLED_WINDOW (container);            if (scrolled_window->vscrollbar)	callback (scrolled_window->vscrollbar, callback_data);      if (scrolled_window->hscrollbar)	callback (scrolled_window->hscrollbar, callback_data);    }}static voidgtk_scrolled_window_size_request (GtkWidget      *widget,				  GtkRequisition *requisition){  GtkScrolledWindow *scrolled_window;  GtkBin *bin;  gint extra_width;  gint extra_height;  GtkRequisition hscrollbar_requisition;  GtkRequisition vscrollbar_requisition;  GtkRequisition child_requisition;  g_return_if_fail (widget != NULL);  g_return_if_fail (GTK_IS_SCROLLED_WINDOW (widget));  g_return_if_fail (requisition != NULL);  scrolled_window = GTK_SCROLLED_WINDOW (widget);  bin = GTK_BIN (scrolled_window);  extra_width = 0;  extra_height = 0;  requisition->width = 0;  requisition->height = 0;    gtk_widget_size_request (scrolled_window->hscrollbar,			   &hscrollbar_requisition);  gtk_widget_size_request (scrolled_window->vscrollbar,			   &vscrollbar_requisition);    if (bin->child && GTK_WIDGET_VISIBLE (bin->child))    {      static guint quark_aux_info = 0;      if (!quark_aux_info)	quark_aux_info = g_quark_from_static_string ("gtk-aux-info");      gtk_widget_size_request (bin->child, &child_requisition);      if (scrolled_window->hscrollbar_policy == GTK_POLICY_NEVER)	requisition->width += child_requisition.width;      else	{	  GtkWidgetAuxInfo *aux_info;	  aux_info = gtk_object_get_data_by_id (GTK_OBJECT (bin->child), quark_aux_info);	  if (aux_info && aux_info->width > 0)	    {	      requisition->width += aux_info->width;	      extra_width = -1;	    }	  else	    requisition->width += vscrollbar_requisition.width;	}      if (scrolled_window->vscrollbar_policy == GTK_POLICY_NEVER)	requisition->height += child_requisition.height;      else	{	  GtkWidgetAuxInfo *aux_info;	  aux_info = gtk_object_get_data_by_id (GTK_OBJECT (bin->child), quark_aux_info);	  if (aux_info && aux_info->height > 0)	    {	      requisition->height += aux_info->height;	      extra_height = -1;	    }	  else

⌨️ 快捷键说明

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