summaryrefslogtreecommitdiff
path: root/src/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils.c')
-rwxr-xr-xsrc/utils.c73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c
index a19b021..e4fdbc0 100755
--- a/src/utils.c
+++ b/src/utils.c
@@ -1,4 +1,6 @@
#include <stdio.h>
+#include <string.h>
+
#include "utils.h"
int parseArgs(int argc, char **argv, struct progArgs *args) {
@@ -22,3 +24,74 @@ void usage(char *progname) {
<ddOpts>\t\n\
", progname);
}
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+{ int length, x, y;
+ float temp;
+
+ if(win == NULL)
+ win = stdscr;
+ getyx(win, y, x);
+ if(startx != 0)
+ x = startx;
+ if(starty != 0)
+ y = starty;
+ if(width == 0)
+ width = 80;
+
+ length = strlen(string);
+ temp = (width - length)/ 2;
+ x = startx + (int)temp;
+ wattron(win, color);
+ mvwprintw(win, y, x, "%s", string);
+ wattroff(win, color);
+ refresh();
+}
+
+
+void makeWin(WINDOW *win, PANEL *panel, int h, int w, int y, int x, char title[]) {
+ int i;
+ win = newwin(h, w, y, x);
+ mvwprintw(win, 0, 0, "%s", title);
+ mvwchgat(win, 0, 0, -1, A_BOLD, 2, NULL);
+ for(i=1;i<h;i++) mvwchgat(win, i, 0, -1, A_STANDOUT, 1, NULL);
+ panel = new_panel(win);
+}
+
+
+int cursesInit(WINDOW *wins[], PANEL *panels[], int count) {
+ int screenH, screenW;
+
+ /* Initialize curses */
+ initscr();
+ start_color();
+ raw();
+ noecho();
+ keypad(stdscr, TRUE);
+
+ /* Initialize all the colors */
+ init_pair(1, COLOR_WHITE, COLOR_BLACK);
+ init_pair(2, COLOR_WHITE, COLOR_BLUE);
+ init_pair(3, COLOR_BLUE, COLOR_BLACK);
+ init_pair(4, COLOR_CYAN, COLOR_BLACK);
+
+ /* Initialize windows and panels */
+ getmaxyx(stdscr, screenH, screenW);
+ if ( screenH < 8 || screenW < 40 ) return 1;
+
+ makeWin(wins[0], panels[0], 3 , screenW, 0 , 0, "Menu");
+ makeWin(wins[1], panels[1], screenH-6 , screenW, 3 , 0, "Main Win");
+ makeWin(wins[2], panels[2], 2 , screenW, screenH-3 , 0, "Commands");
+
+ /* Set up the user pointers to the next panel
+ set_panel_userptr(panels[0], panels[1]);
+ set_panel_userptr(panels[1], panels[2]);
+ set_panel_userptr(panels[2], panels[0]);
+ */
+
+ /* Update the stacking order. 2nd panel will be on top */
+ update_panels();
+
+ return 0;
+}
+