mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-14 17:50:19 +00:00
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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user