Use a standard GtkScrolledWindow with xtext
Used in maingui, fkeys, text events, rawlog This also implements the set_scroll_adjustments signal in xtext
This commit is contained in:
		
							parent
							
								
									8d77fd6a57
								
							
						
					
					
						commit
						5f7321280e
					
				
					 8 changed files with 96 additions and 82 deletions
				
			
		|  | @ -14,7 +14,7 @@ EXTRA_DIST = \ | |||
| 	sexy-spell-entry.h sexy-marshal.h textgui.h urlgrab.h userlistgui.h xtext.h \ | ||||
| 	../../data/hexchat.gresource.xml | ||||
| 
 | ||||
| BUILT_SOURCES = resources.c | ||||
| BUILT_SOURCES = resources.c xtext_marshalers.h xtext_marshalers.c | ||||
| 
 | ||||
| CLEANFILES = $(BUILT_SOURCES) | ||||
| 
 | ||||
|  | @ -30,7 +30,13 @@ hexchat_SOURCES = ascii.c banlist.c chanlist.c chanview.c custom-list.c \ | |||
| 	dccgui.c editlist.c fe-gtk.c fkeys.c gtkutil.c ignoregui.c joind.c menu.c \ | ||||
| 	maingui.c notifygui.c palette.c pixmaps.c plugin-tray.c $(plugingui_c) \ | ||||
| 	rawlog.c resources.c servlistgui.c setup.c $(iso_codes_c) sexy-marshal.c \ | ||||
| 	sexy-spell-entry.c textgui.c urlgrab.c userlistgui.c xtext.c | ||||
| 	sexy-spell-entry.c textgui.c urlgrab.c userlistgui.c xtext.c xtext_marshalers.c | ||||
| 
 | ||||
| resources.c: ../../data/hexchat.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=../../data --generate-dependencies ../../data/hexchat.gresource.xml) | ||||
| 	$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=../../data --generate-source $< | ||||
| 
 | ||||
| xtext_marshalers.h: xtext_marshalers.list | ||||
| 	$(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=_xtext_marshal --header $(srcdir)/xtext_marshalers.list > $@ | ||||
| 
 | ||||
| xtext_marshalers.c: xtext_marshalers.list | ||||
| 	$(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=_xtext_marshal --body $(srcdir)/xtext_marshalers.list > $@ | ||||
|  |  | |||
|  | @ -661,7 +661,7 @@ key_dialog_set_data (GtkWidget * entry, int d) | |||
| void | ||||
| key_dialog_show () | ||||
| { | ||||
| 	GtkWidget *vbox, *hbox, *list, *vbox2, *wid, *wid2, *wid3, *hbox2; | ||||
| 	GtkWidget *vbox, *hbox, *list, *vbox2, *wid, *wid2, *wid3; | ||||
| 	struct key_binding *kb; | ||||
| 	gchar *titles[] = { NULL, NULL, NULL, "1", "2" }; | ||||
| 	char temp[32]; | ||||
|  | @ -774,21 +774,13 @@ key_dialog_show () | |||
| 															 key_dialog_set_data, | ||||
| 															 (void *) 1, vbox2); | ||||
| 
 | ||||
| 	hbox2 = gtk_hbox_new (0, 2); | ||||
| 	gtk_box_pack_end (GTK_BOX (vbox), hbox2, 0, 0, 1); | ||||
| 	wid2 = gtk_scrolled_window_new (NULL, NULL); | ||||
| 	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (wid2), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | ||||
| 	gtk_container_add (GTK_CONTAINER (vbox), wid2); | ||||
| 
 | ||||
| 	wid = gtk_xtext_new (colors, 0); | ||||
| 	gtk_widget_set_usize (wid, 0, 75); | ||||
| 	gtk_box_pack_start (GTK_BOX (hbox2), wid, 1, 1, 1); | ||||
| 	gtk_xtext_set_font (GTK_XTEXT (wid), prefs.hex_text_font); | ||||
| 	gtk_widget_show (wid); | ||||
| 
 | ||||
| 	wid2 = gtk_vscrollbar_new (GTK_XTEXT (wid)->adj); | ||||
| 	gtk_box_pack_start (GTK_BOX (hbox2), wid2, 0, 0, 0); | ||||
| 	gtk_widget_show (wid2); | ||||
| 
 | ||||
| 	gtk_widget_show (hbox2); | ||||
| 	key_dialog_text = wid; | ||||
| 	key_dialog_text = gtk_xtext_new (colors, 0); | ||||
| 	gtk_container_add (GTK_CONTAINER (wid2), key_dialog_text); | ||||
| 	gtk_xtext_set_font (GTK_XTEXT (key_dialog_text), prefs.hex_text_font); | ||||
| 
 | ||||
| 	gtk_widget_show_all (key_dialog); | ||||
| } | ||||
|  |  | |||
|  | @ -54,7 +54,6 @@ | |||
| 
 | ||||
| #define GUI_SPACING (3) | ||||
| #define GUI_BORDER (0) | ||||
| #define SCROLLBAR_SPACING (2) | ||||
| 
 | ||||
| enum | ||||
| { | ||||
|  | @ -2309,7 +2308,7 @@ mg_update_xtext (GtkWidget *wid) | |||
| static void | ||||
| mg_create_textarea (session *sess, GtkWidget *box) | ||||
| { | ||||
| 	GtkWidget *inbox, *vbox, *frame; | ||||
| 	GtkWidget *scrolledwindow; | ||||
| 	GtkXText *xtext; | ||||
| 	session_gui *gui = sess->gui; | ||||
| 	static const GtkTargetEntry dnd_targets[] = | ||||
|  | @ -2322,15 +2321,12 @@ mg_create_textarea (session *sess, GtkWidget *box) | |||
| 		{"HEXCHAT_USERLIST", GTK_TARGET_SAME_APP, 75 } | ||||
| 	}; | ||||
| 
 | ||||
| 	vbox = gtk_vbox_new (FALSE, 0); | ||||
| 	gtk_container_add (GTK_CONTAINER (box), vbox); | ||||
| 
 | ||||
| 	inbox = gtk_hbox_new (FALSE, SCROLLBAR_SPACING); | ||||
| 	gtk_container_add (GTK_CONTAINER (vbox), inbox); | ||||
| 
 | ||||
| 	frame = gtk_frame_new (NULL); | ||||
| 	gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); | ||||
| 	gtk_container_add (GTK_CONTAINER (inbox), frame); | ||||
| 	scrolledwindow = gtk_scrolled_window_new (NULL, NULL); | ||||
| 	gui->vscrollbar = gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW (scrolledwindow)); /* For fkeys */ | ||||
| 	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); | ||||
| 	gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); | ||||
| 	gtk_container_add (GTK_CONTAINER (box), scrolledwindow); | ||||
| 
 | ||||
| 	gui->xtext = gtk_xtext_new (colors, TRUE); | ||||
| 	xtext = GTK_XTEXT (gui->xtext); | ||||
|  | @ -2338,14 +2334,12 @@ mg_create_textarea (session *sess, GtkWidget *box) | |||
| 	gtk_xtext_set_thin_separator (xtext, prefs.hex_text_thin_sep); | ||||
| 	gtk_xtext_set_urlcheck_function (xtext, mg_word_check); | ||||
| 	gtk_xtext_set_max_lines (xtext, prefs.hex_text_max_lines); | ||||
| 	gtk_container_add (GTK_CONTAINER (frame), GTK_WIDGET (xtext)); | ||||
| 	gtk_container_add (GTK_CONTAINER (scrolledwindow), GTK_WIDGET (xtext)); | ||||
| 
 | ||||
| 	mg_update_xtext (GTK_WIDGET (xtext)); | ||||
| 
 | ||||
| 	g_signal_connect (G_OBJECT (xtext), "word_click", | ||||
| 							G_CALLBACK (mg_word_clicked), NULL); | ||||
| 
 | ||||
| 	gui->vscrollbar = gtk_vscrollbar_new (GTK_XTEXT (xtext)->adj); | ||||
| 	gtk_box_pack_start (GTK_BOX (inbox), gui->vscrollbar, FALSE, TRUE, 0); | ||||
| #ifndef WIN32	/* needs more work */ | ||||
| 	gtk_drag_dest_set (gui->vscrollbar, 5, dnd_dest_targets, 2, | ||||
| 							 GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_LINK); | ||||
|  |  | |||
|  | @ -100,7 +100,7 @@ rawlog_key_cb (GtkWidget * wid, GdkEventKey * key, gpointer userdata) | |||
| void | ||||
| open_rawlog (struct server *serv) | ||||
| { | ||||
| 	GtkWidget *hbox, *vscrollbar, *vbox; | ||||
| 	GtkWidget *bbox, *scrolledwindow, *vbox; | ||||
| 	char tbuf[256]; | ||||
| 
 | ||||
| 	if (serv->gui->rawlog_window) | ||||
|  | @ -115,37 +115,30 @@ open_rawlog (struct server *serv) | |||
| 							 640, 320, &vbox, serv); | ||||
| 	gtkutil_destroy_on_esc (serv->gui->rawlog_window); | ||||
| 
 | ||||
| 	hbox = gtk_hbox_new (FALSE, 2); | ||||
| 	gtk_container_add (GTK_CONTAINER (vbox), hbox); | ||||
| 	gtk_container_set_border_width (GTK_CONTAINER (hbox), 4); | ||||
| 	gtk_widget_show (hbox); | ||||
| 	scrolledwindow = gtk_scrolled_window_new (NULL, NULL); | ||||
| 	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); | ||||
| 	gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); | ||||
| 	gtk_container_add (GTK_CONTAINER (vbox), scrolledwindow); | ||||
| 
 | ||||
| 	serv->gui->rawlog_textlist = gtk_xtext_new (colors, 0); | ||||
| 
 | ||||
| 	gtk_container_add (GTK_CONTAINER (hbox), serv->gui->rawlog_textlist); | ||||
| 	gtk_container_add (GTK_CONTAINER (scrolledwindow), serv->gui->rawlog_textlist); | ||||
| 	gtk_xtext_set_font (GTK_XTEXT (serv->gui->rawlog_textlist), prefs.hex_text_font); | ||||
| 	GTK_XTEXT (serv->gui->rawlog_textlist)->ignore_hidden = 1; | ||||
| 	gtk_widget_show (serv->gui->rawlog_textlist); | ||||
| 
 | ||||
| 	vscrollbar = gtk_vscrollbar_new (GTK_XTEXT (serv->gui->rawlog_textlist)->adj); | ||||
| 	gtk_box_pack_start (GTK_BOX (hbox), vscrollbar, FALSE, FALSE, 0); | ||||
| 	show_and_unfocus (vscrollbar); | ||||
| 	bbox = gtk_hbutton_box_new (); | ||||
| 	gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_SPREAD); | ||||
| 	gtk_box_pack_end (GTK_BOX (vbox), bbox, 0, 0, 4); | ||||
| 
 | ||||
| 	hbox = gtk_hbutton_box_new (); | ||||
| 	gtk_button_box_set_layout (GTK_BUTTON_BOX (hbox), GTK_BUTTONBOX_SPREAD); | ||||
| 	gtk_box_pack_end (GTK_BOX (vbox), hbox, 0, 0, 0); | ||||
| 	gtk_widget_show (hbox); | ||||
| 
 | ||||
| 	gtkutil_button (hbox, GTK_STOCK_CLEAR, NULL, rawlog_clearbutton, | ||||
| 	gtkutil_button (bbox, GTK_STOCK_CLEAR, NULL, rawlog_clearbutton, | ||||
| 						 serv, _("Clear Raw Log")); | ||||
| 
 | ||||
| 	gtkutil_button (hbox, GTK_STOCK_SAVE_AS, NULL, rawlog_savebutton, | ||||
| 	gtkutil_button (bbox, GTK_STOCK_SAVE_AS, NULL, rawlog_savebutton, | ||||
| 						 serv, _("Save As...")); | ||||
| 
 | ||||
| 	/* Copy selection to clipboard when Ctrl+Shift+C is pressed AND text auto-copy is disabled */ | ||||
| 	g_signal_connect (G_OBJECT (serv->gui->rawlog_window), "key_press_event", G_CALLBACK (rawlog_key_cb), serv->gui->rawlog_textlist); | ||||
| 
 | ||||
| 	gtk_widget_show (serv->gui->rawlog_window); | ||||
| 	gtk_widget_show_all (serv->gui->rawlog_window); | ||||
| } | ||||
| 
 | ||||
| void | ||||
|  |  | |||
|  | @ -371,7 +371,6 @@ pevent_dialog_show () | |||
| 	gtk_paned_pack1 (GTK_PANED (wid), th, 1, 1); | ||||
| 	gtk_paned_pack2 (GTK_PANED (wid), bh, 0, 1); | ||||
| 	gtk_box_pack_start (GTK_BOX (vbox), wid, 1, 1, 0); | ||||
| 	gtk_widget_show (wid); | ||||
| 
 | ||||
| 	store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, | ||||
| 	                            G_TYPE_STRING, G_TYPE_INT); | ||||
|  | @ -389,30 +388,24 @@ pevent_dialog_show () | |||
| 	g_signal_connect (G_OBJECT (pevent_dialog_entry), "activate", | ||||
| 							G_CALLBACK (pevent_dialog_update), pevent_dialog_twid); | ||||
| 	gtk_box_pack_start (GTK_BOX (bh), pevent_dialog_entry, 0, 0, 0); | ||||
| 	gtk_widget_show (pevent_dialog_entry); | ||||
| 
 | ||||
| 	tbox = gtk_hbox_new (0, 0); | ||||
| 	gtk_container_add (GTK_CONTAINER (bh), tbox); | ||||
| 	gtk_widget_show (tbox); | ||||
| 
 | ||||
| 	gtk_container_add (GTK_CONTAINER (tbox), pevent_dialog_twid); | ||||
| 	wid = gtk_scrolled_window_new (NULL, NULL); | ||||
| 	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (wid), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); | ||||
| 	gtk_container_add (GTK_CONTAINER (tbox), wid); | ||||
| 
 | ||||
| 	gtk_container_add (GTK_CONTAINER (wid), pevent_dialog_twid); | ||||
| 	gtk_xtext_set_font (GTK_XTEXT (pevent_dialog_twid), prefs.hex_text_font); | ||||
| 
 | ||||
| 	wid = gtk_vscrollbar_new (GTK_XTEXT (pevent_dialog_twid)->adj); | ||||
| 	gtk_box_pack_start (GTK_BOX (tbox), wid, FALSE, FALSE, 0); | ||||
| 	show_and_unfocus (wid); | ||||
| 
 | ||||
| 	gtk_widget_show (pevent_dialog_twid); | ||||
| 
 | ||||
| 	hstore = gtk_list_store_new (2, G_TYPE_INT, G_TYPE_STRING); | ||||
| 	pevent_dialog_hlist = gtkutil_treeview_new (bh, GTK_TREE_MODEL (hstore), | ||||
| 															  NULL, | ||||
| 															  0, _("$ Number"), | ||||
| 															  1, _("Description"), -1); | ||||
| 	gtk_widget_show (pevent_dialog_hlist); | ||||
| 
 | ||||
| 	pevent_dialog_fill (pevent_dialog_list); | ||||
| 	gtk_widget_show (pevent_dialog_list); | ||||
| 
 | ||||
| 	hbox = gtk_hbutton_box_new (); | ||||
| 	gtk_box_pack_end (GTK_BOX (vbox), hbox, 0, 0, 2); | ||||
|  | @ -429,15 +422,11 @@ pevent_dialog_show () | |||
| 	gtk_box_pack_end (GTK_BOX (hbox), wid, 0, 0, 0); | ||||
| 	g_signal_connect (G_OBJECT (wid), "clicked", | ||||
| 							G_CALLBACK (pevent_test_cb), pevent_dialog_twid); | ||||
| 	gtk_widget_show (wid); | ||||
| 
 | ||||
| 	wid = gtk_button_new_from_stock (GTK_STOCK_OK); | ||||
| 	gtk_box_pack_start (GTK_BOX (hbox), wid, 0, 0, 0); | ||||
| 	g_signal_connect (G_OBJECT (wid), "clicked", | ||||
| 							G_CALLBACK (pevent_ok_cb), NULL); | ||||
| 	gtk_widget_show (wid); | ||||
| 
 | ||||
| 	gtk_widget_show (hbox); | ||||
| 
 | ||||
| 	gtk_widget_show (pevent_dialog); | ||||
| 	gtk_widget_show_all (pevent_dialog); | ||||
| } | ||||
|  |  | |||
|  | @ -45,6 +45,7 @@ | |||
| #include "fe-gtk.h" | ||||
| #include "xtext.h" | ||||
| #include "fkeys.h" | ||||
| #include "xtext_marshalers.h" | ||||
| 
 | ||||
| #define charlen(str) g_utf8_skip[*(guchar *)(str)] | ||||
| 
 | ||||
|  | @ -67,13 +68,6 @@ | |||
| /* force scrolling off */ | ||||
| #define dontscroll(buf) (buf)->last_pixel_pos = 0x7fffffff | ||||
| 
 | ||||
| extern void gtk_marshal_VOID__POINTER_POINTER (GClosure     *closure, | ||||
|                                                GValue       *return_value, | ||||
|                                                guint         n_param_values, | ||||
|                                                const GValue *param_values, | ||||
|                                                gpointer      invocation_hint, | ||||
|                                                gpointer      marshal_data); | ||||
| 
 | ||||
| static GtkWidgetClass *parent_class = NULL; | ||||
| 
 | ||||
| struct textentry | ||||
|  | @ -99,6 +93,7 @@ struct textentry | |||
| enum | ||||
| { | ||||
| 	WORD_CLICK, | ||||
| 	SET_SCROLL_ADJUSTMENTS, | ||||
| 	LAST_SIGNAL | ||||
| }; | ||||
| 
 | ||||
|  | @ -121,6 +116,8 @@ static char *gtk_xtext_selection_get_text (GtkXText *xtext, int *len_ret); | |||
| static textentry *gtk_xtext_nth (GtkXText *xtext, int line, int *subline); | ||||
| static void gtk_xtext_adjustment_changed (GtkAdjustment * adj, | ||||
| 														GtkXText * xtext); | ||||
| static void gtk_xtext_scroll_adjustments (GtkXText *xtext, GtkAdjustment *hadj, | ||||
| 										GtkAdjustment *vadj); | ||||
| static int gtk_xtext_render_ents (GtkXText * xtext, textentry *, textentry *); | ||||
| static void gtk_xtext_recalc_widths (xtext_buffer *buf, int); | ||||
| static void gtk_xtext_fix_indent (xtext_buffer *buf); | ||||
|  | @ -452,14 +449,8 @@ gtk_xtext_init (GtkXText * xtext) | |||
| 	xtext->recycle = FALSE; | ||||
| 	xtext->dont_render = FALSE; | ||||
| 	xtext->dont_render2 = FALSE; | ||||
| 	gtk_xtext_scroll_adjustments (xtext, NULL, NULL); | ||||
| 
 | ||||
| 	xtext->adj = (GtkAdjustment *) gtk_adjustment_new (0, 0, 1, 1, 1, 1); | ||||
| 	g_object_ref (G_OBJECT (xtext->adj)); | ||||
| 	g_object_ref_sink (G_OBJECT (xtext->adj)); | ||||
| 	g_object_unref (G_OBJECT (xtext->adj)); | ||||
| 
 | ||||
| 	xtext->vc_signal_tag = g_signal_connect (G_OBJECT (xtext->adj), | ||||
| 				"value_changed", G_CALLBACK (gtk_xtext_adjustment_changed), xtext); | ||||
| 	{ | ||||
| 		static const GtkTargetEntry targets[] = { | ||||
| 			{ "UTF8_STRING", 0, TARGET_UTF8_STRING }, | ||||
|  | @ -513,6 +504,9 @@ gtk_xtext_adjustment_timeout (GtkXText * xtext) | |||
| static void | ||||
| gtk_xtext_adjustment_changed (GtkAdjustment * adj, GtkXText * xtext) | ||||
| { | ||||
| 	if (!gtk_widget_get_realized (GTK_WIDGET (xtext))) | ||||
| 		return; | ||||
| 
 | ||||
| 	if (xtext->buffer->old_value != xtext->adj->value) | ||||
| 	{ | ||||
| 		if (xtext->adj->value >= xtext->adj->upper - xtext->adj->page_size) | ||||
|  | @ -2216,6 +2210,37 @@ gtk_xtext_scroll (GtkWidget *widget, GdkEventScroll *event) | |||
| 	return FALSE; | ||||
| } | ||||
| 
 | ||||
| static void | ||||
| gtk_xtext_scroll_adjustments (GtkXText *xtext, GtkAdjustment *hadj, GtkAdjustment *vadj) | ||||
| { | ||||
| 	/* hadj is ignored entirely */ | ||||
| 
 | ||||
| 	if (vadj) | ||||
| 		g_return_if_fail (GTK_IS_ADJUSTMENT (vadj)); | ||||
| 	else | ||||
| 		vadj = GTK_ADJUSTMENT(gtk_adjustment_new (0, 0, 1, 1, 1, 1)); | ||||
| 
 | ||||
| 	if (xtext->adj && (xtext->adj != vadj)) | ||||
| 	{ | ||||
| 		g_signal_handlers_disconnect_by_func (xtext->adj, | ||||
| 								gtk_xtext_adjustment_changed, | ||||
| 								xtext); | ||||
| 		g_object_unref (xtext->adj); | ||||
| 	} | ||||
| 
 | ||||
| 	if (xtext->adj != vadj) | ||||
| 	{ | ||||
| 		xtext->adj = vadj; | ||||
| 		g_object_ref_sink (xtext->adj); | ||||
| 
 | ||||
| 		xtext->vc_signal_tag = g_signal_connect (xtext->adj, "value-changed", | ||||
| 							G_CALLBACK (gtk_xtext_adjustment_changed), | ||||
| 							xtext); | ||||
| 
 | ||||
| 		gtk_xtext_adjustment_changed (xtext->adj, xtext); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| static void | ||||
| gtk_xtext_class_init (GtkXTextClass * class) | ||||
| { | ||||
|  | @ -2235,9 +2260,19 @@ gtk_xtext_class_init (GtkXTextClass * class) | |||
| 							G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, | ||||
| 							G_STRUCT_OFFSET (GtkXTextClass, word_click), | ||||
| 							NULL, NULL, | ||||
| 							gtk_marshal_VOID__POINTER_POINTER, | ||||
| 							_xtext_marshal_VOID__POINTER_POINTER, | ||||
| 							G_TYPE_NONE, | ||||
| 							2, G_TYPE_POINTER, G_TYPE_POINTER); | ||||
| 	xtext_signals[SET_SCROLL_ADJUSTMENTS] = | ||||
| 		g_signal_new ("set_scroll_adjustments", | ||||
| 							G_OBJECT_CLASS_TYPE (object_class), | ||||
| 							G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, | ||||
| 							G_STRUCT_OFFSET (GtkXTextClass, set_scroll_adjustments), | ||||
| 							NULL, NULL, | ||||
| 							_xtext_marshal_VOID__OBJECT_OBJECT, | ||||
| 							G_TYPE_NONE, | ||||
| 							2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT); | ||||
| 
 | ||||
| 	object_class->destroy = gtk_xtext_destroy; | ||||
| 
 | ||||
| 	widget_class->realize = gtk_xtext_realize; | ||||
|  | @ -2252,8 +2287,10 @@ gtk_xtext_class_init (GtkXTextClass * class) | |||
| 	widget_class->expose_event = gtk_xtext_expose; | ||||
| 	widget_class->scroll_event = gtk_xtext_scroll; | ||||
| 	widget_class->leave_notify_event = gtk_xtext_leave_notify; | ||||
| 	widget_class->set_scroll_adjustments_signal = xtext_signals[SET_SCROLL_ADJUSTMENTS]; | ||||
| 
 | ||||
| 	xtext_class->word_click = NULL; | ||||
| 	xtext_class->set_scroll_adjustments = gtk_xtext_scroll_adjustments; | ||||
| } | ||||
| 
 | ||||
| GType | ||||
|  |  | |||
|  | @ -239,6 +239,7 @@ struct _GtkXTextClass | |||
| { | ||||
| 	GtkWidgetClass parent_class; | ||||
| 	void (*word_click) (GtkXText * xtext, char *word, GdkEventButton * event); | ||||
| 	void (*set_scroll_adjustments) (GtkXText *xtext, GtkAdjustment *hadj, GtkAdjustment *vadj); | ||||
| }; | ||||
| 
 | ||||
| GtkWidget *gtk_xtext_new (GdkColor palette[], int separator); | ||||
|  |  | |||
							
								
								
									
										2
									
								
								src/fe-gtk/xtext_marshalers.list
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								src/fe-gtk/xtext_marshalers.list
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| VOID:OBJECT,OBJECT | ||||
| VOID:POINTER,POINTER | ||||
		Loading…
	
	Add table
		
		Reference in a new issue