143 lines
4.5 KiB
C
143 lines
4.5 KiB
C
#include <gtk/gtk.h>
|
|
|
|
#include <gemgui.h>
|
|
|
|
void linkAction (GtkWidget *widget, gpointer data);
|
|
extern char links[1024][20];
|
|
|
|
void
|
|
addH1 (GtkWidget *root,
|
|
char *line)
|
|
{
|
|
gchar *markup = g_markup_printf_escaped ("<span weight=\"bold\" size=\"xx-large\">%s</span>", 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 ("<span weight=\"bold\" size=\"x-large\">%s</span>", 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 ("<span weight=\"bold\" size=\"large\">%s</span>", 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 ("<span foreground=\"#0000FF\" underline=\"single\">%s</span>", 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 ("<span font_family=\"monospace\">%s</span>", 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 ("<span foreground=\"#707070\">%s</span>", 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);
|
|
}
|