dnd.c \
tbo-object.c \
comic-load.c \
+ tbo-utils.c \
tbo-window.h \
comic.h \
comic-new-dialog.h \
dnd.h \
tbo-object.h \
comic-load.h \
+ tbo-utils.h \
custom-stock.h
tbo_CFLAGS = @GTK_CFLAGS@ \
#include "tbo-object.h"
#include "svgimage.h"
#include "textobj.h"
+#include "tbo-utils.h"
char *TITLE;
NULL,
NULL);
- // Basename -> TODO tbo-utils
- gchar **basename = g_strsplit (filename, "/", -1);
- gchar **pointer = basename;
- while (*pointer) pointer++;
- TITLE = g_strdup (*--pointer);
- g_strfreev (basename);
+ char base_name[255];
+ get_base_name (filename, base_name, 255);
+ TITLE = g_strdup(base_name);
if (g_file_get_contents (filename, &text, &length, NULL) == FALSE) {
GtkWidget *dialog = gtk_message_dialog_new (NULL,
GTK_RESPONSE_ACCEPT,
NULL);
- snprintf (buffer, 255, "%s.tbo", window->comic->title);
+ snprintf (buffer, 250, "%s", window->comic->title);
+ if (!g_str_has_suffix ((window->comic->title), ".tbo"))
+ strcat (buffer, ".tbo");
gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (filechooser), buffer);
response = gtk_dialog_run (GTK_DIALOG (filechooser));
if (response == GTK_RESPONSE_ACCEPT)
{
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser));
- tbo_comic_save (window->comic, filename);
+ tbo_comic_save (window, filename);
}
gtk_widget_destroy ((GtkWidget *) filechooser);
#include "tbo-window.h"
#include "page.h"
#include "comic-load.h"
+#include "tbo-utils.h"
Comic *
tbo_comic_new (const char *title, int width, int height)
Comic *new_comic;
new_comic = malloc(sizeof(Comic));
- new_comic->title = malloc(strlen(title)*sizeof(char));
- sprintf (new_comic->title, "%s", title);
+ snprintf (new_comic->title, 255, "%s", title);
new_comic->width = width;
new_comic->height = height;
new_comic->pages = NULL;
}
g_list_free (g_list_first (comic->pages));
- free (comic->title);
free (comic);
}
}
void
-tbo_comic_save (Comic *comic, char *filename)
+tbo_comic_save (TboWindow *tbo, char *filename)
{
GList *p;
char buffer[255];
FILE *file = fopen (filename, "w");
+ Comic *comic = tbo->comic;
+
if (!file)
{
snprintf (buffer, 255, _("Failed saving: %s"), strerror (errno));
gtk_widget_destroy ((GtkWidget *) dialog);
return;
}
+ get_base_name (filename, comic->title, 255);
+ gtk_window_set_title (GTK_WINDOW (tbo->window), comic->title);
snprintf (buffer, 255, "<tbo width=\"%d\" height=\"%d\">\n",
comic->width,
Page *tbo_comic_prev_page (Comic *comic);
Page *tbo_comic_get_current_page (Comic *comic);
void tbo_comic_set_current_page (Comic *comic, Page *page);
-void tbo_comic_save (Comic *comic, char *filename);
+void tbo_comic_save (TboWindow *tbo, char *filename);
void tbo_comic_open (TboWindow *window, char *filename);
#endif
#include "frame.h"
#include "doodle-treeview.h"
#include "dnd.h"
+#include "tbo-utils.h"
void free_gstring_array (GArray *arr);
g_array_free (arr, TRUE);
}
-void
-get_base_name (gchar *str, gchar *ret, int size)
-{
- gchar **paths;
- gchar **dirname;
- paths = g_strsplit (str, "/", 0);
- dirname = paths;
- while (*dirname) dirname++;
- dirname--;
- snprintf (ret, size, *dirname);
- g_strfreev (paths);
-}
-
GArray *
get_files (gchar *base_dir, gboolean isdir)
{
typedef struct
{
- char *title;
+ char title[255];
int width;
int height;
GList *pages;
--- /dev/null
+#include <gtk/gtk.h>
+#include "tbo-utils.h"
+
+
+void
+get_base_name (gchar *str, gchar *ret, int size)
+{
+ gchar **paths;
+ gchar **dirname;
+ paths = g_strsplit (str, "/", 0);
+ dirname = paths;
+ while (*dirname) dirname++;
+ dirname--;
+ snprintf (ret, size, *dirname);
+ g_strfreev (paths);
+}
--- /dev/null
+#ifndef __TBO_UTILS__
+#define __TBO_UTILS__
+
+#include <gtk/gtk.h>
+
+void get_base_name (gchar *str, gchar *ret, int size);
+
+#endif