/* Sets a position of the widget */ int clip_GTK_WIDGETSETPOSITION(ClipMachine * cm) { C_widget *cwid = _fetch_cw_arg(cm); gint x = _clip_parni(cm, 2); gint y = _clip_parni(cm, 3); CHECKOPT(2, NUMERIC_t); CHECKOPT(3, NUMERIC_t); CHECKCWID(cwid,GTK_IS_WIDGET); if (_clip_parinfo(cm, 2) == NUMERIC_t) gtk_widget_set(cwid->widget,"x",x,NULL); if (_clip_parinfo(cm, 3) == NUMERIC_t) gtk_widget_set(cwid->widget,"y",y,NULL); return 0; err: return 1; }
/* Sets a size of the widget */ int clip_GTK_WIDGETSETSIZE(ClipMachine * cm) { C_widget *cwid = _fetch_cw_arg(cm); gint width = _clip_parni(cm, 2); gint height = _clip_parni(cm, 3); CHECKOPT(2, NUMERIC_t); CHECKOPT(3, NUMERIC_t); CHECKCWID(cwid,GTK_IS_WIDGET); if (_clip_parinfo(cm, 2) == NUMERIC_t) gtk_widget_set(cwid->widget,"width",width,NULL); if (_clip_parinfo(cm, 3) == NUMERIC_t) gtk_widget_set(cwid->widget,"height",height,NULL); return 0; err: return 1; }
int clip_GTK_TIPSQUERYSETEMITALWAYS(ClipMachine * cm) { C_widget *ctq = _fetch_cw_arg(cm); gboolean always = _clip_parl(cm,2); CHECKCWID(ctq,GTK_IS_TIPS_QUERY); CHECKOPT(2,LOGICAL_t); gtk_widget_set(ctq->widget, "emit-always", always, NULL); return 0; err: return 1; }
int clip_GTK_TABLESETNCOLUMNS(ClipMachine *cm) { C_widget *ctbl = _fetch_cw_arg(cm); guint ncols = _clip_parni(cm,2); CHECKCWID(ctbl,GTK_IS_TABLE); CHECKOPT(2,NUMERIC_t); gtk_widget_set(ctbl->widget, "n-columns",ncols,NULL); return 0; err: return 1; }
GtkWidget *make_canvas(void) { GtkWidget *canvas; GdkColor black = { 0, 0, 0, 0 }; /* Canvas */ canvas = gtk_drawing_area_new(); gtk_widget_modify_bg(canvas, GTK_STATE_NORMAL, &black); g_signal_connect(G_OBJECT(canvas), "motion_notify_event", G_CALLBACK(motion_notify_event), NULL); g_signal_connect(G_OBJECT(canvas), "button_press_event", G_CALLBACK(button_press_event), NULL); g_signal_connect(G_OBJECT(canvas), "button_release_event", G_CALLBACK(button_release_event), NULL); g_signal_connect(G_OBJECT(canvas), "scroll_event", G_CALLBACK(scroll_event), NULL); GTK_WIDGET_SET_FLAGS(canvas, GTK_CAN_FOCUS); g_signal_connect(G_OBJECT(canvas), "key_press_event", G_CALLBACK(key_press_event), NULL); g_signal_connect(G_OBJECT(canvas), "expose_event", G_CALLBACK(expose_event), NULL); g_signal_connect(G_OBJECT(canvas), "enter_notify_event", G_CALLBACK(enter_notify_event), NULL); g_signal_connect(G_OBJECT(canvas), "leave_notify_event", G_CALLBACK(leave_notify_event), NULL); gtk_widget_set(canvas, "has-tooltip", TRUE, NULL); g_signal_connect(G_OBJECT(canvas), "query_tooltip", G_CALLBACK(canvas_tooltip), NULL); gtk_widget_set_events(canvas, GDK_EXPOSE | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_KEY_PRESS_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SCROLL | GDK_POINTER_MOTION_MASK); gtk_widget_set_double_buffered(canvas, FALSE); setup_canvas_drag(canvas); draw_ctx.widget = canvas; return canvas; }
int clip_GTK_SPINBUTTONSETCLIMBRATE(ClipMachine * ClipMachineMemory) { C_widget *cspb = _fetch_cw_arg(ClipMachineMemory); gfloat climb_rate = _clip_parnd(ClipMachineMemory, 2); CHECKCWID(cspb, GTK_IS_SPIN_BUTTON); CHECKOPT(2, NUMERIC_type_of_ClipVarType); gtk_widget_set(cspb->widget, "climb-rate", climb_rate, NULL); return 0; err: return 1; }
static GtkWidget *_xgamma_add_channel_widget (GtkWidget *pInteractiveWidget, gchar *cLabel, int iChannelNumber, guint *iSignalID, double fChannelGamma) { GtkWidget *pLabel = gtk_label_new (cLabel); gtk_table_attach_defaults (GTK_TABLE (pInteractiveWidget), pLabel, 0, 1, iChannelNumber, iChannelNumber+1); GtkWidget *pHScale = gtk_hscale_new_with_range (GAMMA_MIN, GAMMA_MAX, .02); gtk_scale_set_digits (GTK_SCALE (pHScale), 2); gtk_range_set_value (GTK_RANGE (pHScale), fChannelGamma); gtk_widget_set (pHScale, "width-request", 150, NULL); *iSignalID = g_signal_connect (G_OBJECT (pHScale), "value-changed", G_CALLBACK (on_scale_value_changed), GINT_TO_POINTER (iChannelNumber)); gtk_table_attach_defaults (GTK_TABLE (pInteractiveWidget), pHScale, 1, 2, iChannelNumber, iChannelNumber+1); return pHScale; }
GtkWidget* bst_choice_dialog_createv (BstChoice *first_choice, ...) { BstChoice *choice; GtkWidget *vbox, *dialog; va_list args; g_return_val_if_fail (first_choice != NULL, NULL); /* text portions */ vbox = gtk_widget_new (GTK_TYPE_VBOX, "visible", TRUE, "border_width", 5, NULL); va_start (args, first_choice); choice = first_choice; do { guint choice_type = choice->type_and_flags & BST_CHOICE_TYPE_MASK; guint choice_flags = choice->type_and_flags & BST_CHOICE_FLAG_MASK; switch (choice_type) { GtkWidget *any; case BST_CHOICE_TYPE_TEXT: /* any = bst_scroll_text_create (BST_TEXT_VIEW_CENTER, choice->name); */ any = gtk_widget_new (GTK_TYPE_LABEL, "visible", TRUE, "justify", GTK_JUSTIFY_CENTER, "label", choice->name, "wrap", FALSE, NULL); gtk_box_pack_start (GTK_BOX (vbox), any, TRUE, TRUE, 0); gtk_widget_set_sensitive (any, !(choice_flags & BST_CHOICE_FLAG_INSENSITIVE)); break; case BST_CHOICE_TYPE_SEPARATOR: any = gtk_widget_new (GTK_TYPE_HSEPARATOR, "visible", TRUE, "sensitive", FALSE, NULL); gtk_box_pack_start (GTK_BOX (vbox), any, TRUE, TRUE, 0); gtk_widget_set_sensitive (any, !(choice_flags & BST_CHOICE_FLAG_INSENSITIVE)); break; } choice = va_arg (args, BstChoice*); } while (choice); va_end (args); /* create dialog */ dialog = gxk_dialog_new (NULL, NULL, GXK_DIALOG_POPUP_POS | GXK_DIALOG_MODAL, NULL, vbox); gtk_widget_ref (dialog); gtk_object_sink (GTK_OBJECT (dialog)); /* add items */ va_start (args, first_choice); choice = first_choice; do { guint choice_type = choice->type_and_flags & BST_CHOICE_TYPE_MASK; guint choice_flags = choice->type_and_flags & BST_CHOICE_FLAG_MASK; switch (choice_type) { GtkWidget *any; case BST_CHOICE_TYPE_TITLE: gtk_widget_set (dialog, "title", choice->name, NULL); break; case BST_CHOICE_TYPE_ITEM: any = gxk_dialog_action_multi (GXK_DIALOG (dialog), choice->name, button_choice_activate, choice->p_id, choice->icon_stock_id, (choice_flags & BST_CHOICE_FLAG_DEFAULT) ? GXK_DIALOG_MULTI_DEFAULT : 0); if (choice_flags & BST_CHOICE_FLAG_INSENSITIVE) gtk_widget_set_sensitive (any, FALSE); break; } free_choice (choice); choice = va_arg (args, BstChoice*); } while (choice); va_end (args); return dialog; }
static GtkWidget * get_voice_test_frame(PurplePlugin *plugin) { GtkWidget *vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER); GtkWidget *level = gtk_progress_bar_new(); GtkWidget *volume = gtk_hscale_new_with_range(0, 100, 1); GtkWidget *threshold = gtk_hscale_new_with_range(0, 100, 1); GtkWidget *label; GtkTable *table = GTK_TABLE(gtk_table_new(2, 2, FALSE)); GstElement *pipeline; GstBus *bus; BusCbCtx *ctx; g_object_set(vbox, "width-request", 500, NULL); gtk_table_set_row_spacings(table, PIDGIN_HIG_BOX_SPACE); gtk_table_set_col_spacings(table, PIDGIN_HIG_BOX_SPACE); label = gtk_label_new(_("Volume:")); g_object_set(label, "xalign", 0.0, NULL); gtk_table_attach(table, label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); gtk_table_attach_defaults(table, volume, 1, 2, 0, 1); label = gtk_label_new(_("Silence threshold:")); g_object_set(label, "xalign", 0.0, "yalign", 1.0, NULL); gtk_table_attach(table, label, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0); gtk_table_attach_defaults(table, threshold, 1, 2, 1, 2); gtk_container_add(GTK_CONTAINER(vbox), level); gtk_container_add(GTK_CONTAINER(vbox), GTK_WIDGET(table)); gtk_widget_show_all(vbox); pipeline = create_pipeline(); bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline)); gst_bus_add_signal_watch(bus); ctx = g_new(BusCbCtx, 1); ctx->level = GTK_PROGRESS_BAR(level); ctx->threshold = GTK_RANGE(threshold); g_signal_connect_data(bus, "message", G_CALLBACK(gst_bus_cb), ctx, (GClosureNotify)g_free, 0); gst_object_unref(bus); g_signal_connect(volume, "value-changed", (GCallback)on_volume_change_cb, pipeline); gtk_range_set_value(GTK_RANGE(volume), purple_prefs_get_int("/purple/media/audio/volume/input")); gtk_widget_set(volume, "draw-value", FALSE, NULL); gtk_range_set_value(GTK_RANGE(threshold), purple_prefs_get_int("/purple/media/audio/silence_threshold")); g_signal_connect(vbox, "destroy", G_CALLBACK(voice_test_frame_destroy_cb), pipeline); g_signal_connect(volume, "destroy", G_CALLBACK(volume_scale_destroy_cb), NULL); g_signal_connect(threshold, "format-value", G_CALLBACK(threshold_value_format_cb), NULL); g_signal_connect(threshold, "destroy", G_CALLBACK(threshold_scale_destroy_cb), NULL); return vbox; }
int main (int argc, char *argv[]) { GtkWidget *window, *vbox, *hbox, *sbar, *spin, *button; GslConfigValue gslconfig[] = { { "wave_chunk_padding", 1, }, { "dcache_block_size", 8192, }, { "dcache_cache_memory", 5 * 1024 * 1024, }, { NULL, }, }; WaveView *view, *first_view = NULL; guint i; g_thread_init (NULL); g_type_init (); birnet_init (&argc, &argv, NULL); gsl_init (gslconfig); bse_init_inprocess (&argc, &argv, NULL, NULL); gtk_init (&argc, &argv); gxk_init (); _bst_init_utils (); if (argc < 2) g_error ("need filenames"); vbox = gtk_widget_new (GTK_TYPE_VBOX, "visible", TRUE, "border_width", 10, NULL); gtk_box_pack_start (GTK_BOX (vbox), pack_test_widget (), TRUE, TRUE, 0); sbar = gtk_widget_new (GTK_TYPE_HSCROLLBAR, "visible", TRUE, NULL); gtk_box_pack_start (GTK_BOX (vbox), sbar, FALSE, TRUE, 0); for (i = 1; i < argc; i++) { view = g_new (WaveView, 1); view->handle = gsl_wave_handle_new (argv[i], 1, 44100, 440, GSL_WAVE_FORMAT_SIGNED_16, G_LITTLE_ENDIAN, 0, -1); if (!view->handle) g_error ("failed to create handle for \"%s\": stat() failed", argv[i]); view->qsampler = g_object_new (BST_TYPE_QSAMPLER, "visible", TRUE, "events", (GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_BUTTON1_MOTION_MASK), NULL); g_object_connect (view->qsampler, "signal::button_press_event", qsampler_button_event, view, "signal::button_release_event", qsampler_button_event, view, "signal::motion_notify_event", qsampler_motion_event, view, NULL); qsampler_set_handle (view->qsampler, view->handle); bst_qsampler_set_adjustment (view->qsampler, gtk_range_get_adjustment (GTK_RANGE (sbar))); gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (view->qsampler), TRUE, TRUE, 2); view->next = wave_views; wave_views = view; if (i == 1) first_view = view; } spin = gtk_spin_button_new (GTK_ADJUSTMENT (gtk_adjustment_new (100, 1e-16, 1e+16, 0.1, 10, 0)), 0, 5); gtk_widget_set (spin, "visible", TRUE, "width_request", 40, NULL); for (view = wave_views; view; view = view->next) g_object_connect (GTK_OBJECT (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (spin))), "signal::value_changed", adjust_zoom, view->qsampler, NULL); gtk_box_pack_start (GTK_BOX (vbox), spin, FALSE, TRUE, 0); spin = gtk_spin_button_new (GTK_ADJUSTMENT (gtk_adjustment_new (100, 1e-16, 1e+16, 1, 10, 0)), 0, 5); gtk_widget_set (spin, "visible", TRUE, "width_request", 40, NULL); for (view = wave_views; view; view = view->next) g_object_connect (GTK_OBJECT (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (spin))), "signal::value_changed", adjust_vscale, view->qsampler, NULL); gtk_box_pack_start (GTK_BOX (vbox), spin, FALSE, TRUE, 0); hbox = gtk_widget_new (GTK_TYPE_HBOX, "visible", TRUE, "border_width", 10, NULL); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0); button = g_object_connect (g_object_new (GTK_TYPE_BUTTON, "visible", TRUE, "label", _("Selection to Loop"), NULL), "swapped_signal::clicked", selection_to_loop, first_view->qsampler, NULL); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0); button = g_object_connect (g_object_new (GTK_TYPE_BUTTON, "visible", TRUE, "label", _("Loop to Selection"), NULL), "swapped_signal::clicked", loop_to_selection, first_view->qsampler, NULL); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0); button = g_object_connect (g_object_new (GTK_TYPE_BUTTON, "visible", TRUE, "label", _("Zoom Selection"), NULL), "swapped_signal::clicked", zoom_selection, first_view->qsampler, NULL); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0); button = g_object_connect (g_object_new (GTK_TYPE_BUTTON, "visible", TRUE, "label", _("Apply Loop"), NULL), "swapped_signal::clicked", set_loop, first_view->qsampler, NULL); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0); button = g_object_connect (g_object_new (GTK_TYPE_BUTTON, "visible", TRUE, "label", _("Reset Loop"), NULL), "swapped_signal::clicked", unset_loop, first_view->qsampler, NULL); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0); button = g_object_connect (g_object_new (GTK_TYPE_BUTTON, "visible", TRUE, "label", _("Score"), NULL), "swapped_signal::clicked", score, first_view->qsampler, NULL); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0); button = g_object_connect (g_object_new (GTK_TYPE_BUTTON, "visible", TRUE, "label", _("Find"), NULL), "swapped_signal::clicked", find, first_view, NULL); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0); window = g_object_connect (gtk_widget_new (GTK_TYPE_WINDOW, "child", vbox, "visible", TRUE, "height_request", 450, "width_request", 1400, "allow_shrink", TRUE, NULL), "signal::destroy", gtk_main_quit, NULL, NULL); button = g_object_new (GTK_TYPE_BUTTON, "visible", TRUE, "label", _("Mark Signal (Head)"), NULL); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0); for (view = wave_views; view; view = view->next) g_object_connect (GTK_OBJECT (button), "swapped_signal::clicked", mark_signalh, view, NULL); button = g_object_new (GTK_TYPE_BUTTON, "visible", TRUE, "label", _("Mark Signal (Tail)"), NULL); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0); for (view = wave_views; view; view = view->next) g_object_connect (GTK_OBJECT (button), "swapped_signal::clicked", mark_signalt, view, NULL); gtk_main (); return 0; }
Chat * win_chat_create(const gchar *id) { GtkWidget *scroll; Chat *c; GtkWidget *b; gchar *s; c = (Chat *)g_malloc(sizeof(Chat)); c->id = g_strdup(id); c->enter_sends = pref_chat_enter_sends; c->blink_state = BlinkOff; c->need_blinking = FALSE; c->notify_sent = FALSE; c->user = user_get(id); c->win = GTK_WINDOW(create_win_chat()); g_assert(c->win != NULL); scroll = lookup_widget(GTK_WIDGET(c->win), "scroll_output"); g_assert(scroll != NULL); c->input = GTK_TEXT_VIEW(lookup_widget(GTK_WIDGET(c->win), "input")); g_assert(c->input != NULL); c->output = GTK_HTML(glen_html_new()); g_assert(c->output != NULL); gtk_widget_set_name(GTK_WIDGET(c->output), "output"); gtk_widget_set(GTK_WIDGET(c->output), "can-focus", FALSE, NULL); gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(c->output)); gtk_widget_show(GTK_WIDGET(c->output)); c->stream = glen_html_begin(c->output); // gtk_html_write(c->output, c->stream, header, strlen(header)); /* ustaw pixbuf dla 'lampki' */ b = lookup_widget(GTK_WIDGET(c->win), "image_typing"); g_assert(b != NULL); gtk_image_set_from_pixbuf(GTK_IMAGE(b), typing_off_pixbuf); /* callbacki do przyciskow */ b = lookup_widget(GTK_WIDGET(c->win), "clear_btn"); g_assert(b != NULL); g_signal_connect(G_OBJECT(b), "clicked", G_CALLBACK(clear_btn_clicked_cb), (gpointer)c); b = lookup_widget(GTK_WIDGET(c->win), "send_btn"); g_assert(b != NULL); g_signal_connect(G_OBJECT(b), "clicked", G_CALLBACK(send_btn_clicked_cb), (gpointer)c); b = lookup_widget(GTK_WIDGET(c->win), "close_btn"); g_assert(b != NULL); g_signal_connect(G_OBJECT(b), "clicked", G_CALLBACK(close_btn_clicked_cb), (gpointer)c); b = lookup_widget(GTK_WIDGET(c->win), "enter_sends_btn"); g_assert(b != NULL); g_signal_connect(G_OBJECT(b), "toggled", G_CALLBACK(enter_sends_btn_cb), (gpointer)c); /* reszta */ b = lookup_widget(GTK_WIDGET(c->win), "input"); g_assert(b != NULL); g_signal_connect(G_OBJECT(b), "key_press_event", G_CALLBACK(input_key_press_cb), (gpointer)c); g_signal_connect(G_OBJECT(b), "copy_clipboard", G_CALLBACK(input_copy_clipboard_cb), (gpointer)c); gtk_widget_grab_focus(b); g_signal_connect(G_OBJECT(c->win), "delete_event", G_CALLBACK(delete_win_cb), c); // g_signal_connect(G_OBJECT(c->win), "window_state_event", // G_CALLBACK(window_state_cb), c); g_signal_connect_after(G_OBJECT(c->win), "visibility_notify_event", G_CALLBACK(visibility_changed_cb), c); g_signal_connect(G_OBJECT(c->win), "focus_in_event", G_CALLBACK(focus_in_cb), c); /* ustaw tooltip dla 'lampki */ b = lookup_widget(GTK_WIDGET(c->win), "eventbox_typing"); g_assert(b != NULL); s = toutf("Je¶li lampka zapali siê oznacza to, ¿e Twój " "rozmówca w³a¶nie pisze wiadomo¶æ"); gtk_tooltips_set_tip(tooltips, b, s, NULL); g_free(s); return c; }
static void aboutbox() { GtkWidget *vbox1; GtkWidget *label1; GtkWidget *about_exit; GtkWidget *scroll1; GtkWidget *table1; GtkWidget *label_fmt, *label_trk; struct xmp_fmt_info *f, *fmt; int i; if (about_window) { gdk_window_raise(about_window->window); return; } about_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_object_set_data(GTK_OBJECT(about_window), "about_window", about_window); gtk_window_set_title(GTK_WINDOW(about_window),"About the XMP Plugin"); gtk_window_set_policy(GTK_WINDOW(about_window), FALSE, FALSE, FALSE); gtk_signal_connect(GTK_OBJECT(about_window), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &about_window); gtk_container_border_width(GTK_CONTAINER(about_window), 10); gtk_widget_realize(about_window); vbox1 = gtk_vbox_new(FALSE, 4); gtk_container_add(GTK_CONTAINER(about_window), vbox1); gtk_object_set_data(GTK_OBJECT(about_window), "vbox1", vbox1); gtk_widget_show(vbox1); gtk_container_border_width(GTK_CONTAINER(vbox1), 10); label1 = gtk_label_new( "Extended Module Player " VERSION "\n" "Written by Claudio Matsuoka and Hipolito Carraro Jr.\n" "\n" "Portions Copyright (C) 1998,2000 Olivier Lapicque,\n" "(C) 1998 Tammo Hinrichs, (C) 1998 Sylvain Chipaux,\n" "(C) 1997 Bert Jahn, (C) 1999 Tatsuyuki Satoh, (C)\n" "2001-2006 Russell Marks\n" "\n" "Supported module formats:" ); gtk_object_set_data(GTK_OBJECT(label1), "label1", label1); gtk_box_pack_start(GTK_BOX(vbox1), label1, TRUE, TRUE, 0); scroll1 = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll1), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_widget_set_size_request(scroll1, 290, 100); gtk_object_set_data(GTK_OBJECT(scroll1), "scroll1", scroll1); gtk_widget_set (scroll1, "height", 100, NULL); gtk_box_pack_start(GTK_BOX(vbox1), scroll1, TRUE, TRUE, 0); xmp_get_fmt_info(&fmt); table1 = gtk_table_new(100, 2, FALSE); for (i = 0, f = fmt; f; i++, f = f->next) { label_fmt = gtk_label_new(f->id); label_trk = gtk_label_new(f->tracker); gtk_label_set_justify (GTK_LABEL (label_fmt), GTK_JUSTIFY_LEFT); gtk_label_set_justify (GTK_LABEL (label_trk), GTK_JUSTIFY_LEFT); gtk_table_attach_defaults (GTK_TABLE (table1), label_fmt, 0, 1, i, i + 1); gtk_table_attach_defaults (GTK_TABLE (table1), label_trk, 1, 2, i, i + 1); } gtk_table_resize (GTK_TABLE (table1), i + 1, 3); gtk_object_set_data(GTK_OBJECT(table1), "table1", table1); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll1), table1); about_exit = gtk_button_new_with_label("Ok"); gtk_signal_connect_object(GTK_OBJECT(about_exit), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(about_window)); gtk_object_set_data(GTK_OBJECT(about_window), "about_exit", about_exit); gtk_box_pack_start(GTK_BOX(vbox1), about_exit, FALSE, FALSE, 0); gtk_widget_show_all(about_window); }