All pastes #400604 Raw Edit

Miscellany

public c v1 · immutable
·published 2007-03-18 20:18 UTC
rendered paste body
#include <gtk/gtk.h>static void scrolled_window_set_size (GtkScrolledWindow *sw, GtkWidget *rqWidget, double dcxMaxScreenPercent, double dcyMaxScreenPercent) ;int main (int argc, char **argv)  {  int Nix, Nix1 ;  GtkWidget *tbl = NULL, *sw = NULL, *dialog = NULL ;  char *lbl = NULL ;  gtk_init (&argc, &argv) ;  dialog = gtk_dialog_new () ;  tbl = g_object_new (GTK_TYPE_TABLE, "visible", TRUE, NULL) ;  for (Nix = 0 ; Nix < 16 ; Nix++)    for (Nix1 = 0 ; Nix1 < 10 ; Nix1++, g_free (lbl))      gtk_table_attach (GTK_TABLE (tbl), g_object_new (GTK_TYPE_LABEL, "visible", TRUE,        "label", lbl = g_strdup_printf ("Label[%d][%d]", Nix, Nix1), NULL),        Nix1, Nix1 + 1, Nix, Nix + 1, GTK_FILL, GTK_FILL, 10, 10) ;  sw = g_object_new (GTK_TYPE_SCROLLED_WINDOW, "visible", TRUE,    "hscrollbar-policy", GTK_POLICY_AUTOMATIC,    "vscrollbar-policy", GTK_POLICY_AUTOMATIC,    NULL) ;  gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw), tbl) ;  gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), sw) ;  /* The hack */  scrolled_window_set_size (GTK_SCROLLED_WINDOW (sw), tbl, 0.95, 0.95) ;  gtk_dialog_run (GTK_DIALOG (dialog)) ;  return 0 ;  }static void scrolled_window_set_size (GtkScrolledWindow *sw, GtkWidget *rqWidget, double dcxMaxScreenPercent, double dcyMaxScreenPercent)  {  GtkPolicyType hpol, vpol ;  GList *llChildren = gtk_container_get_children (GTK_CONTAINER (sw)) ;  int xScr, yScr, cxScr, cyScr, depth ;  GtkRequisition rq = {-1, -1} ;  if (NULL == llChildren) return ;  gtk_scrolled_window_get_policy (sw, &hpol, &vpol) ;  gtk_scrolled_window_set_policy (sw, GTK_POLICY_NEVER, GTK_POLICY_NEVER) ;  gdk_window_get_geometry (gdk_get_default_root_window (), &xScr, &yScr, &cxScr, &cyScr, &depth) ;  gtk_widget_size_request (rqWidget, &rq) ;  gtk_widget_set_size_request (GTK_WIDGET (llChildren->data),    MIN (cxScr * dcxMaxScreenPercent, rq.width),    MIN (cyScr * dcyMaxScreenPercent, rq.height)) ;  gtk_scrolled_window_set_policy (sw, hpol, vpol) ;  }