[gnome-latex: 4/205] GUI: source view and log/message zone with a vertical pane and automatic scrollbars



commit 83ad65686f15a2d0557bfe129bc4f2db9f593398
Author: Sébastien Wilmet <sebastien wilmet gmail com>
Date:   Tue Jul 28 01:09:01 2009 +0200

    GUI: source view and log/message zone with a vertical pane and automatic scrollbars

 AUTHORS |  2 +-
 GOALS   |  2 +-
 TODO    | 19 ++++++++++++-------
 main.c  | 48 ++++++++++++++++++++++++++++++++++++++++++++----
 4 files changed, 58 insertions(+), 13 deletions(-)
---
diff --git a/AUTHORS b/AUTHORS
index 75dc26f..d02c61f 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1 +1 @@
-Sébastien Wilmet : sebastien wilmet gmail com
+Sébastien Wilmet <sebastien wilmet gmail com>
diff --git a/GOALS b/GOALS
index a5afedd..bf4f43b 100644
--- a/GOALS
+++ b/GOALS
@@ -25,5 +25,5 @@ Objectifs en plus pour la version 0.1 :
 - système de backup (fichiers~) et de sauvegarde automatique toutes les x minutes
 - pouvoir configurer les commandes pour la compilation et le visionnage
 - préférences pour les caractères (taille, police, couleurs, etc)
-- pouvoir choisir les boutons à afficher
+- pouvoir personnaliser la barre d'outils
 
diff --git a/TODO b/TODO
index 21a5730..80e8a15 100644
--- a/TODO
+++ b/TODO
@@ -1,21 +1,26 @@
 TODO LaTeXila
 
-23/07/2009 au 29/07/2009
+23/07/2009 au 28/07/2009
 
-[-] faire l'interface graphique
+[x] faire l'interface graphique
        x menu
        x barre d'outils
-       - zone de texte éditable (comme gedit)
-       - zone de log/messages
+       x zone de texte éditable (comme gedit)
+       x zone de log/messages
        x barre de status
 
-[-] trouver plus de doc sur le développement d'application GNOME (un site qui regroupe tout ?)
+[x] trouver plus de doc sur le développement d'application GNOME
        x barre d'outils : boutons avec texte et icône qui changent selon les préférences définies dans GNOME 
: texte en-dessous, icônes seules, etc.
        x icônes de base changeant selon le thème
        x traduction, internationalisation
-       - gestion et enregistrement des préférences utilisateurs (avec gconf)
-       - ...
+       x coloration syntaxique
 
 [x] GIT
        x mettre en place GIT en local
        x comprendre les commandes de base
+
+[-] traduction (gettext)
+       - lire le tutoriel
+       - mettre en place la traduction
+       - traduire
+
diff --git a/main.c b/main.c
index e8862bc..862cb89 100644
--- a/main.c
+++ b/main.c
@@ -56,6 +56,8 @@ main (int argc, char *argv[])
 
        gtk_init (&argc, &argv);
 
+       /* main window */
+
        GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
        g_signal_connect (G_OBJECT (window), "destroy",
                        G_CALLBACK (gtk_main_quit), NULL);
@@ -63,8 +65,16 @@ main (int argc, char *argv[])
                        G_CALLBACK (gtk_main_quit), NULL);
        gtk_window_set_title (GTK_WINDOW (window), "LaTeXila");
 
-       GtkWidget *main_vbox = gtk_vbox_new (FALSE, 0);
-       gtk_container_add (GTK_CONTAINER (window), main_vbox);
+       /* boxes and panes */
+
+       GtkWidget *vbox1 = gtk_vbox_new (FALSE, 0);
+       gtk_container_add (GTK_CONTAINER (window), vbox1);
+
+       GtkWidget *vbox2 = gtk_vbox_new (FALSE, 0);
+       gtk_box_pack_end (GTK_BOX (vbox1), vbox2, TRUE, TRUE, 0);
+
+       GtkWidget *vpaned = gtk_vpaned_new ();
+       gtk_box_pack_start (GTK_BOX (vbox2), vpaned, TRUE, TRUE, 0);
 
        /* menubar */
        GtkUIManager *ui_manager = gtk_ui_manager_new ();
@@ -78,11 +88,41 @@ main (int argc, char *argv[])
                return EXIT_FAILURE;
        }
        g_signal_connect (ui_manager, "add-widget", G_CALLBACK (menu_add_widget),
-                       main_vbox);
+                       vbox1);
+
+       /* source view */
+       GtkWidget *source_view = gtk_text_view_new ();
+       GtkTextBuffer *source_buffer = gtk_text_view_get_buffer (
+                       GTK_TEXT_VIEW (source_view));
+       char *source_default_text = "\\documentclass[a4paper,11pt]{article}\n"
+               "\\begin{document}\n"
+               "\\end{document}";
+       gtk_text_buffer_set_text (source_buffer, source_default_text, -1);
+
+       // with a scrollbar
+       GtkWidget *sw = gtk_scrolled_window_new (NULL, NULL);
+       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
+                       GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+       gtk_paned_pack1 (GTK_PANED (vpaned), sw, TRUE, TRUE);
+       gtk_container_add (GTK_CONTAINER (sw), source_view);
+       
+       /* log zone */
+       GtkWidget *log_view = gtk_text_view_new ();
+       GtkTextBuffer *log_buffer = gtk_text_view_get_buffer (
+                       GTK_TEXT_VIEW (log_view));
+       gtk_text_buffer_set_text (log_buffer, "Welcome to LaTeXila!", -1);
+       gtk_text_view_set_editable (GTK_TEXT_VIEW(log_view), FALSE);
+       
+       // with a scrollbar
+       sw = gtk_scrolled_window_new (NULL, NULL);
+       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
+                       GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+       gtk_paned_pack2 (GTK_PANED (vpaned), sw, TRUE, TRUE);
+       gtk_container_add (GTK_CONTAINER (sw), log_view);
 
        /* statusbar */
        GtkWidget *statusbar = gtk_statusbar_new ();
-       gtk_box_pack_end (GTK_BOX (main_vbox), statusbar, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX (vbox2), statusbar, FALSE, FALSE, 0);
 
 
        gtk_widget_show_all (window);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]