A document filename is accepted on the command line now. master
authorTilman Sauerbeck <tilman@code-monkey.de>
Tue, 18 Mar 2008 19:35:56 +0000 (20:35 +0100)
committerTilman Sauerbeck <tilman@code-monkey.de>
Tue, 18 Mar 2008 19:35:56 +0000 (20:35 +0100)
src/main.c
src/rakt-window.c
src/rakt-window.h

index a849e97..be7bc27 100644 (file)
@@ -21,6 +21,8 @@
 # include <config.h>
 #endif
 
+#include <limits.h>
+#include <stdlib.h>
 #include <gtk/gtkmain.h>
 
 #include "rakt-window.h"
@@ -29,6 +31,7 @@ int
 main (int argc, char **argv)
 {
        GtkWidget *window;
+       gchar rp[PATH_MAX], filename[PATH_MAX];
 
        gtk_init (&argc, &argv);
 
@@ -37,6 +40,13 @@ main (int argc, char **argv)
        window = rakt_window_new ();
        gtk_widget_show (window);
 
+       if (argc > 1) {
+               g_snprintf (filename, sizeof (filename),
+                           "file://%s", realpath (argv[1], rp));
+
+               rakt_window_open_document (RAKT_WINDOW (window), filename);
+       }
+
        gtk_main ();
 
        gtk_widget_destroy (window);
index f83cb6e..d5ce251 100644 (file)
@@ -189,8 +189,8 @@ render_page (RaktWindow *window)
        gtk_widget_queue_draw_area (priv->drawing_area, 0, 0, width, height);
 }
 
-static void
-open_document (RaktWindow *window, gchar *uri)
+void
+rakt_window_open_document (RaktWindow *window, const gchar *uri)
 {
        RaktWindowPriv *priv;
        GError *error = NULL;
@@ -385,7 +385,7 @@ on_action_open (GtkAction *action, RaktWindow *window)
                gchar *uri;
 
                uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog));
-               open_document (window, uri);
+               rakt_window_open_document (window, uri);
                g_free (uri);
        }
 
index 4c7676f..0d4137b 100644 (file)
@@ -49,6 +49,8 @@ typedef struct {
 GType rakt_window_get_type (void);
 GtkWidget *rakt_window_new (void);
 
+void rakt_window_open_document (RaktWindow *window, const gchar *uri);
+
 G_END_DECLS
 
 #endif