added special char for horizontal centering (#3)
[smdp.git] / src / viewer.c
index 2de71e4..4aec11e 100644 (file)
@@ -459,50 +459,62 @@ void add_line(WINDOW *window, int y, int x, line_t *line, int max_cols, int colo
         wprintw(window,
                 "%s", &line->text->text[offset]);
 
-    // IS_H1 || IS_H2
-    } else if(CHECK_BIT(line->bits, IS_H1) || CHECK_BIT(line->bits, IS_H2)) {
+    // IS_QUOTE
+    } else if(CHECK_BIT(line->bits, IS_QUOTE)) {
+        while(line->text->text[offset] == '>') {
+            // print a reverse color block
+            if(colors) {
+                wattron(window, COLOR_PAIR(CP_BLACK));
+                wprintw(window, "%s", " ");
+                wattron(window, COLOR_PAIR(CP_WHITE));
+                wprintw(window, "%s", " ");
+            } else {
+                wprintw(window, "%s", ">");
+            }
 
-        // set headline color
-        if(colors)
-            wattron(window, COLOR_PAIR(CP_BLUE));
+            // find next quote or break
+            offset++;
+            if(line->text->text[offset] == ' ')
+                offset = next_word(line->text, offset);
+        }
 
-        // enable underline for H1
-        if(CHECK_BIT(line->bits, IS_H1))
-            wattron(window, A_UNDERLINE);
+        inline_display(window, &line->text->text[offset], colors);
 
-        // skip hashes
-        while(line->text->text[offset] == '#')
-            offset = next_word(line->text, offset);
+    } else {
 
-        // print whole lines
-        wprintw(window,
-                "%s", &line->text->text[offset]);
+        // IS_CENTER
+        if(CHECK_BIT(line->bits, IS_CENTER)) {
+            if(line->length < max_cols) {
+                wmove(window, y, x + ((max_cols - line->length) / 2));
+            }
+        }
 
-        wattroff(window, A_UNDERLINE);
+        // IS_H1 || IS_H2
+        if(CHECK_BIT(line->bits, IS_H1) || CHECK_BIT(line->bits, IS_H2)) {
 
-    } else {
+            // set headline color
+            if(colors)
+                wattron(window, COLOR_PAIR(CP_BLUE));
 
-        // IS_QUOTE
-        if(CHECK_BIT(line->bits, IS_QUOTE)) {
-            while(line->text->text[offset] == '>') {
-                // print a reverse color block
-                if(colors) {
-                    wattron(window, COLOR_PAIR(CP_BLACK));
-                    wprintw(window, "%s", " ");
-                    wattron(window, COLOR_PAIR(CP_WHITE));
-                    wprintw(window, "%s", " ");
-                } else {
-                    wprintw(window, "%s", ">");
-                }
+            // enable underline for H1
+            if(CHECK_BIT(line->bits, IS_H1))
+                wattron(window, A_UNDERLINE);
 
-                // find next quote or break
-                offset++;
-                if(line->text->text[offset] == ' ')
-                    offset = next_word(line->text, offset);
-            }
-        }
+            // skip hashes
+            while(line->text->text[offset] == '#')
+                offset = next_word(line->text, offset);
 
-        inline_display(window, &line->text->text[offset], colors);
+            // print whole lines
+            wprintw(window,
+                    "%s", &line->text->text[offset]);
+
+            wattroff(window, A_UNDERLINE);
+
+        // no line-wide markdown
+        } else {
+
+            inline_display(window, &line->text->text[offset], colors);
+        }
     }
 
     // fill rest off line with spaces