Now parse a file
missing: fix url, use a pointer to static data
This commit is contained in:
parent
221ec20578
commit
11b54d9cb5
|
@ -0,0 +1,13 @@
|
||||||
|
#ifndef _GEMGUI_H
|
||||||
|
#define _GEMGUI_H
|
||||||
|
|
||||||
|
void addH1 (GtkWidget *root, char *line);
|
||||||
|
void addH2 (GtkWidget *root, char *line);
|
||||||
|
void addH3 (GtkWidget *root, char *line);
|
||||||
|
void addLink (GtkWidget *root, char *url, char *text);
|
||||||
|
void addCode (GtkWidget *root, char *code, char *meta);
|
||||||
|
void addQuote (GtkWidget *root, char *quote);
|
||||||
|
void addUList (GtkWidget *root, char *text);
|
||||||
|
void addText (GtkWidget *root, char *text);
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,6 @@
|
||||||
|
#ifndef _GEMPARSE_H
|
||||||
|
#define _GEMPARSE_H
|
||||||
|
|
||||||
|
int parseFile (char *path);
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,133 @@
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include "../include/gemgui.h"
|
||||||
|
|
||||||
|
void linkAction (GtkWidget *widget, gpointer data);
|
||||||
|
|
||||||
|
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_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_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_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_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,
|
||||||
|
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_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_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_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
|
||||||
|
gtk_container_add (GTK_CONTAINER (root), label);
|
||||||
|
}
|
|
@ -1,5 +1,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include "../include/gemgui.h"
|
||||||
|
|
||||||
#ifdef TESTGEMPARSE
|
#ifdef TESTGEMPARSE
|
||||||
|
|
||||||
|
@ -17,6 +19,10 @@ void addUList (const char *text);
|
||||||
|
|
||||||
int parseFile (char *path);
|
int parseFile (char *path);
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
extern GtkWidget *render;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -43,7 +49,11 @@ parseFile (char *path)
|
||||||
//Remove tailing '\n'
|
//Remove tailing '\n'
|
||||||
line[size - 1] = '\0';
|
line[size - 1] = '\0';
|
||||||
|
|
||||||
|
#ifdef TESTGEMPARSE
|
||||||
addH3 (line + i);
|
addH3 (line + i);
|
||||||
|
#else
|
||||||
|
addH3 (render, line + i);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else if (size > 2 && line[0] == '#' && line [1] == '#')
|
else if (size > 2 && line[0] == '#' && line [1] == '#')
|
||||||
{
|
{
|
||||||
|
@ -56,7 +66,11 @@ parseFile (char *path)
|
||||||
//Remove tailing '\n'
|
//Remove tailing '\n'
|
||||||
line[size - 1] = '\0';
|
line[size - 1] = '\0';
|
||||||
|
|
||||||
|
#ifdef TESTGEMPARSE
|
||||||
addH2 (line + i);
|
addH2 (line + i);
|
||||||
|
#else
|
||||||
|
addH2 (render, line + i);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else if (size > 1 && line[0] == '#')
|
else if (size > 1 && line[0] == '#')
|
||||||
{
|
{
|
||||||
|
@ -69,7 +83,11 @@ parseFile (char *path)
|
||||||
//Remove tailing '\n'
|
//Remove tailing '\n'
|
||||||
line[size - 1] = '\0';
|
line[size - 1] = '\0';
|
||||||
|
|
||||||
|
#ifdef TESTGEMPARSE
|
||||||
addH1 (line + i);
|
addH1 (line + i);
|
||||||
|
#else
|
||||||
|
addH1 (render, line + i);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else if (size > 2 && line[0] == '=' && line[1] == '>')
|
else if (size > 2 && line[0] == '=' && line[1] == '>')
|
||||||
{
|
{
|
||||||
|
@ -98,13 +116,21 @@ parseFile (char *path)
|
||||||
|
|
||||||
//If not text, text = url
|
//If not text, text = url
|
||||||
if (beginText == size)
|
if (beginText == size)
|
||||||
|
#ifdef TESTGEMPARSE
|
||||||
addLink (line + beginUrl, line + beginUrl);
|
addLink (line + beginUrl, line + beginUrl);
|
||||||
|
#else
|
||||||
|
addLink (render, line + beginUrl, line + beginUrl);
|
||||||
|
#endif
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//Remove tailing '\n'
|
//Remove tailing '\n'
|
||||||
line[size - 1] = '\0';
|
line[size - 1] = '\0';
|
||||||
|
|
||||||
|
#ifdef TESTGEMPARSE
|
||||||
addLink (line + beginUrl, line + beginText);
|
addLink (line + beginUrl, line + beginText);
|
||||||
|
#else
|
||||||
|
addLink (render, line + beginUrl, line + beginText);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (size > 3 && line[0] == '`' && line[1] == '`' && line[2] == '`')
|
else if (size > 3 && line[0] == '`' && line[1] == '`' && line[2] == '`')
|
||||||
|
@ -129,7 +155,11 @@ parseFile (char *path)
|
||||||
size = strlen (code);
|
size = strlen (code);
|
||||||
code[size - 1] = '\0';
|
code[size - 1] = '\0';
|
||||||
|
|
||||||
|
#ifdef TESTGEMPARSE
|
||||||
addCode (line + 3, code);
|
addCode (line + 3, code);
|
||||||
|
#else
|
||||||
|
addCode (render, code, line + 3);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else if (size > 1 && line[0] == '*')
|
else if (size > 1 && line[0] == '*')
|
||||||
{
|
{
|
||||||
|
@ -176,7 +206,11 @@ parseFile (char *path)
|
||||||
size = strlen(text);
|
size = strlen(text);
|
||||||
text[size - 1] = '\0';
|
text[size - 1] = '\0';
|
||||||
|
|
||||||
|
#ifdef TESTGEMPARSE
|
||||||
addUList (text);
|
addUList (text);
|
||||||
|
#else
|
||||||
|
addUList (render, text);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else if (size > 1 && line[0] == '>')
|
else if (size > 1 && line[0] == '>')
|
||||||
{
|
{
|
||||||
|
@ -189,10 +223,18 @@ parseFile (char *path)
|
||||||
//Remove tailing '\n'
|
//Remove tailing '\n'
|
||||||
line[size - 1] = '\0';
|
line[size - 1] = '\0';
|
||||||
|
|
||||||
|
#ifdef TESTGEMPARSE
|
||||||
addQuote (line + i);
|
addQuote (line + i);
|
||||||
|
#else
|
||||||
|
addQuote (render, line + i);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
#ifdef TESTGEMPARSE
|
||||||
printf ("%s", line);
|
printf ("%s", line);
|
||||||
|
#else
|
||||||
|
addText (render, line);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose (fileToParse);
|
fclose (fileToParse);
|
||||||
|
|
172
src/main.c
172
src/main.c
|
@ -1,4 +1,6 @@
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
#include "../include/gemgui.h"
|
||||||
|
#include "../include/gemparse.h"
|
||||||
|
|
||||||
GtkEntryBuffer *pathBarContent = NULL;
|
GtkEntryBuffer *pathBarContent = NULL;
|
||||||
GtkWidget *render = NULL;
|
GtkWidget *render = NULL;
|
||||||
|
@ -10,7 +12,7 @@ loadPage (const char *link)
|
||||||
printf("Loading page : %s\n", link);
|
printf("Loading page : %s\n", link);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
void
|
||||||
linkAction (GtkWidget *widget,
|
linkAction (GtkWidget *widget,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
{
|
{
|
||||||
|
@ -24,184 +26,22 @@ goAction (GtkWidget *widget,
|
||||||
loadPage ((const char*)gtk_entry_buffer_get_text (pathBarContent));
|
loadPage ((const char*)gtk_entry_buffer_get_text (pathBarContent));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
addText (GtkWidget *root,
|
|
||||||
gchar *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_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
|
|
||||||
gtk_container_add (GTK_CONTAINER (root), label);
|
|
||||||
//gtk_label_set_selectable (GTK_LABEL (label), TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
addTitle1 (GtkWidget *root,
|
|
||||||
gchar *text)
|
|
||||||
{
|
|
||||||
gchar *markup = g_markup_printf_escaped ("<span weight=\"bold\" size=\"xx-large\">%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 (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);
|
|
||||||
//gtk_label_set_selectable (GTK_LABEL (label), TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
addTitle2 (GtkWidget *root,
|
|
||||||
gchar *text)
|
|
||||||
{
|
|
||||||
gchar *markup = g_markup_printf_escaped ("<span weight=\"bold\" size=\"x-large\">%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 (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);
|
|
||||||
//gtk_label_set_selectable (GTK_LABEL (label), TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
addTitle3 (GtkWidget *root,
|
|
||||||
gchar *text)
|
|
||||||
{
|
|
||||||
gchar *markup = g_markup_printf_escaped ("<span weight=\"bold\" size=\"large\">%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 (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);
|
|
||||||
//gtk_label_set_selectable (GTK_LABEL (label), TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
addTitle4 (GtkWidget *root,
|
|
||||||
gchar *text)
|
|
||||||
{
|
|
||||||
gchar *markup = g_markup_printf_escaped ("<span weight=\"bold\" size=\"medium\">%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 (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);
|
|
||||||
//gtk_label_set_selectable (GTK_LABEL (label), TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
addTitle5 (GtkWidget *root,
|
|
||||||
gchar *text)
|
|
||||||
{
|
|
||||||
gchar *markup = g_markup_printf_escaped ("<span weight=\"bold\" size=\"small\">%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 (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);
|
|
||||||
//gtk_label_set_selectable (GTK_LABEL (label), TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
addTitle6 (GtkWidget *root,
|
|
||||||
gchar *text)
|
|
||||||
{
|
|
||||||
gchar *markup = g_markup_printf_escaped ("<span weight=\"bold\" size=\"x-small\">%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 (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);
|
|
||||||
//gtk_label_set_selectable (GTK_LABEL (label), TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
addLink (GtkWidget *root,
|
|
||||||
gchar *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), "un lien");
|
|
||||||
gtk_widget_set_halign (label, GTK_ALIGN_START);
|
|
||||||
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
|
|
||||||
gtk_container_add (GTK_CONTAINER (linkBox), label);
|
|
||||||
gtk_container_add (GTK_CONTAINER (root), linkBox);
|
|
||||||
//gtk_label_set_selectable (GTK_LABEL (label), TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
addCode (GtkWidget *root,
|
|
||||||
gchar *text)
|
|
||||||
{
|
|
||||||
gchar *markup = g_markup_printf_escaped ("<span font_family=\"monospace\">%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 (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);
|
|
||||||
//gtk_label_set_selectable (GTK_LABEL (label), TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
makeRender (void)
|
makeRender (void)
|
||||||
{
|
{
|
||||||
if (render != NULL)
|
if (render != NULL)
|
||||||
gtk_widget_destroy (render);
|
gtk_widget_destroy (render);
|
||||||
|
|
||||||
render = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
|
render = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
|
||||||
|
|
||||||
addTitle1 (render, "Titre de test");
|
parseFile ("test.gmi");
|
||||||
addTitle2 (render, "Titre de test");
|
|
||||||
addTitle3 (render, "Titre de test");
|
|
||||||
addTitle4 (render, "Titre de test");
|
|
||||||
addTitle5 (render, "Titre de test");
|
|
||||||
addTitle6 (render, "Titre de test");
|
|
||||||
addText (render, "Bonjour, ceci est un test.\nFonctionne-t-il ?");
|
|
||||||
addLink(render, "lien test");
|
|
||||||
addCode(render, " .~.\n /V\\\n // \\\\\n/( )\\\n ^`~'^");
|
|
||||||
|
|
||||||
gtk_container_add (GTK_CONTAINER (window), render);
|
gtk_container_add (GTK_CONTAINER (window), render);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This function's goal is to build the main interface */
|
/* This function's goal is to build the main interface */
|
||||||
static void
|
static void
|
||||||
build_interface ()
|
build_interface (void)
|
||||||
{
|
{
|
||||||
GtkWidget *pathBar;
|
GtkWidget *pathBar;
|
||||||
GtkWidget *headerBar;
|
GtkWidget *headerBar;
|
||||||
|
|
Loading…
Reference in New Issue