[util] Further refactor option parsing
diff --git a/util/options.hh b/util/options.hh
index 9be0b6b..716d1ad 100644
--- a/util/options.hh
+++ b/util/options.hh
@@ -30,13 +30,17 @@
 #define OPTIONS_HH
 
 
+#define DEFAULT_MARGIN 18
+#define DEFAULT_FORE "#000000"
+#define DEFAULT_BACK "#FFFFFF"
+
 extern struct view_options_t
 {
   view_options_t (void) {
     memset (this, 0, sizeof (*this));
-    fore = "#000000";
-    back = "#ffffff";
-    margin.t = margin.r = margin.b = margin.l = 18.;
+    fore = DEFAULT_FORE;
+    back = DEFAULT_BACK;
+    margin.t = margin.r = margin.b = margin.l = DEFAULT_MARGIN;
   }
 
   hb_bool_t annotate;
@@ -48,6 +52,7 @@
   } margin;
 } view_opts[1];
 
+
 extern struct shape_options_t
 {
   shape_options_t (void) {
@@ -63,11 +68,14 @@
   char **shapers;
 } shape_opts[1];
 
+
+#define DEFAULT_FONT_SIZE 36
+
 extern struct font_options_t
 {
   font_options_t (void) {
     memset (this, 0, sizeof (*this));
-    font_size = 36.;
+    font_size = DEFAULT_FONT_SIZE;
   }
 
   const char *font_file;
@@ -80,6 +88,10 @@
 extern hb_bool_t debug;
 
 
+void option_context_add_view_opts	(GOptionContext *context);
+void option_context_add_shape_opts	(GOptionContext *context);
+void option_context_add_font_opts	(GOptionContext *context);
+
 void parse_options (int argc, char *argv[]);