]> git.karo-electronics.de Git - gbdfed.git/blobdiff - guifile.c
Fixup several compile faults due to changes in recent distributions,
[gbdfed.git] / guifile.c
index a9f21e3785d5671769725eb2b6399abebe5c6575..8ee6c93ba22b8cc01e3339e8fae03b571cd18827 100644 (file)
--- a/guifile.c
+++ b/guifile.c
@@ -40,6 +40,7 @@
 #define HEX_FORMAT     7
 #define PSF_FORMAT     8
 #define PSFUNI_FORMAT  9
+#define HEADER_FORMAT  10
 
 /*
  * An array of filters used for the open/import and save dialogs.
@@ -196,6 +197,11 @@ make_file_chooser_filters(void)
     gtk_file_filter_add_pattern(filename_filters[PSF_FORMAT],
                                 "*.[Ps][Ss][Ff]*");
 
+    filename_filters[HEADER_FORMAT] = gtk_file_filter_new();
+    gtk_file_filter_add_pattern(filename_filters[HEADER_FORMAT],
+                                "*.[Hh]");
+
+
     /*
      * This one is basically for exporting unimap files that belong to PSF
      * fonts.
@@ -312,6 +318,9 @@ export_font(gchar *filename, gbdfed_editor_t *ed, gboolean copy_filename)
       case HEX_FORMAT:
         bdf_export_hex(out, font, &options.font_opts, 0, 0);
         break;
+      case HEADER_FORMAT:
+        bdf_export_header(out, font, &options.font_opts, 0, 0);
+        break;
       case PSF_FORMAT:
         sinfo.start = sinfo.end = 0;
         (void) fontgrid_has_selection(FONTGRID(ed->fgrid), &sinfo);
@@ -2117,6 +2126,7 @@ make_file_dialog_title(guint type, gboolean save)
       case OTF_FORMAT: title = "TrueType"; break;
       case PSF_FORMAT: title = "PSF"; break;
       case HEX_FORMAT: title = "HEX"; break;
+      case HEADER_FORMAT: title = "HEADER"; break;
     }
 
     if (save) {
@@ -2371,6 +2381,8 @@ update_save_dialog(gbdfed_editor_t *ed, guint type)
           (void) strcpy(dot, ".psfu");
         else if (type == HEX_FORMAT)
           (void) strcpy(dot, ".hex");
+        else if (type == HEADER_FORMAT)
+          (void) strcpy(dot, ".h");
 
     } else
       dotpos = -1;
@@ -2939,6 +2951,22 @@ guifile_export_hex_font(GtkWidget *w, gpointer data)
     guiutil_show_dialog_centered(ed->save_dialog, ed->shell);
 }
 
+void
+guifile_export_header_font(GtkWidget *w, gpointer data)
+{
+    gbdfed_editor_t *ed = editors + GPOINTER_TO_UINT(data);
+
+    /*
+     * No check is done for a "valid" HEX font because it actually pads the
+     * output font into bitmaps of two sizes, the wider size twice as wide
+     * as the narrower size.
+     */
+
+    update_save_dialog(ed, HEADER_FORMAT);
+
+    guiutil_show_dialog_centered(ed->save_dialog, ed->shell);
+}
+
 void
 guifile_save_as(GtkWidget *w, gpointer data)
 {