#include #include void linkAction (GtkWidget *widget, gpointer data); extern char links[1024][20]; void addH1 (GtkWidget *root, char *line) { gchar *markup = g_markup_printf_escaped ("%s", line); GtkWidget *label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), markup); g_free (markup); gtk_widget_set_margin_start (label, 10); gtk_widget_set_margin_end (label, 10); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); gtk_container_add (GTK_CONTAINER (root), label); } void addH2 (GtkWidget *root, char *line) { gchar *markup = g_markup_printf_escaped ("%s", line); GtkWidget *label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), markup); g_free (markup); gtk_widget_set_margin_start (label, 10); gtk_widget_set_margin_end (label, 10); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); gtk_container_add (GTK_CONTAINER (root), label); } void addH3 (GtkWidget *root, char *line) { gchar *markup = g_markup_printf_escaped ("%s", line); GtkWidget *label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), markup); g_free (markup); gtk_widget_set_margin_start (label, 10); gtk_widget_set_margin_end (label, 10); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); gtk_container_add (GTK_CONTAINER (root), label); } void addLink (GtkWidget *root, char *url, char *text) { GtkWidget *linkBox = gtk_button_new (); gchar *markup = g_markup_printf_escaped ("%s", text); GtkWidget *label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), markup); g_free (markup); gtk_widget_set_margin_start (linkBox, 10); gtk_widget_set_margin_end (linkBox, 10); gtk_button_set_relief (GTK_BUTTON (linkBox), GTK_RELIEF_NONE); g_signal_connect (linkBox, "clicked", G_CALLBACK (linkAction), url); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); gtk_container_add (GTK_CONTAINER (linkBox), label); gtk_container_add (GTK_CONTAINER (root), linkBox); } void addCode (GtkWidget *root, const char *code, char *meta) { gchar *markup = g_markup_printf_escaped ("%s", code); GtkWidget *label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), markup); g_free (markup); gtk_widget_set_margin_start (label, 10); gtk_widget_set_margin_end (label, 10); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); gtk_container_add (GTK_CONTAINER (root), label); } void addUList (GtkWidget *root, char *text) { GtkWidget *label = gtk_label_new (text); gtk_widget_set_margin_start (label, 20); gtk_widget_set_margin_end (label, 10); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); gtk_container_add (GTK_CONTAINER (root), label); //gtk_label_set_selectable (GTK_LABEL (label), TRUE); } void addQuote (GtkWidget *root, char *quote) { gchar *markup = g_markup_printf_escaped ("%s", quote); GtkWidget *label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), markup); g_free (markup); gtk_widget_set_margin_start (label, 20); gtk_widget_set_margin_end (label, 10); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); gtk_container_add (GTK_CONTAINER (root), label); } void addText (GtkWidget *root, char *text) { GtkWidget *label = gtk_label_new (text); gtk_widget_set_margin_start (label, 10); gtk_widget_set_margin_end (label, 10); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); gtk_container_add (GTK_CONTAINER (root), label); }