]> git.mdlowis.com Git - archive/afm.git/commitdiff
colors!
authorabellenir <a@bellenir.com>
Sat, 26 Jul 2014 05:11:30 +0000 (05:11 +0000)
committerabellenir <a@bellenir.com>
Sat, 26 Jul 2014 05:11:30 +0000 (05:11 +0000)
source/main.c
source/screen.c
source/screen.h
source/workdir.c
source/workdir.h

index 5809f4a2555e890650e0c7eb348fdfc6b4f6f8e1..86ecf8060168941b37ce8c9c673127991b2ea2ed 100644 (file)
@@ -22,6 +22,8 @@ int main(int argc, char** argv) {
     signal(SIGWINCH, handle_signal);
     /* Initialize ncurses and user input settings */
     initscr();
+    start_color();
+    init_pair(DIRECTORY, COLOR_BLUE, COLOR_BLACK);
     raw();
     keypad(stdscr, TRUE);
     noecho();
index d48921b9a5c7b245a899b3a36fb18a65769a71d4..023e159aeb0e3719b1b05da1d94c877393d8e217 100644 (file)
@@ -145,17 +145,20 @@ void screen_frame_draw_files(frame_t* frame){
     //list files
     while (i < vec_size(frame->workdir->vfiles)){
         char* filename = (char*)vec_at(frame->workdir->vfiles, i);
+        bool dir = is_dir(filename);
         if(strcmp(filename, "..") != 0) filename = &(filename[pathlength]);
         if(filename[0] == '/') filename = &(filename[1]);
         if(frame == state_get_focused_frame() && i == frame->workdir->idx){
             wattron(frame->p_win, A_STANDOUT);
             wattron(frame->p_win, A_BOLD);
         }
+        if(dir) wattron(frame->p_win, COLOR_PAIR(DIRECTORY));
         mvwaddnstr(frame->p_win, FrameTopBuffer+i-frame->workdir->top_index, 1, filename, cols-2);
         if(frame == state_get_focused_frame() && i == frame->workdir->idx){
             wattroff(frame->p_win, A_STANDOUT);
             wattroff(frame->p_win, A_BOLD);
         }
+        if(dir) wattroff(frame->p_win, COLOR_PAIR(DIRECTORY));
         i++;
         if((FrameTopBuffer+i-frame->workdir->top_index+FrameBotBuffer) > rows) break;
     }
index 3a4829211086d51ce0557e8e8f8939d0a8c20fcb..546cc2402fc2fa30a2840eeddae6f3d94ab1bdb1 100644 (file)
@@ -25,4 +25,8 @@ typedef struct {
     WorkDir_T* workdir;
 } frame_t;
 
+enum ColorPairs {
+       DIRECTORY = 1
+};
+
 #endif /* SCREEN_H */
index eed6bb45ad889302f7538009df6a2bd19e9efe9b..09b8a8b2d4c2b552a9de322af8d31e4ef224aa50 100644 (file)
@@ -17,7 +17,7 @@
 
 static void get_files(int windex);
 
-static bool is_dir(char* path) {
+bool is_dir(char* path) {
     struct stat s;
     return ((stat(path, &s) == 0) && (s.st_mode & S_IFDIR));
 }
index a325287269ecf19e981dd3bd6c0eeceb97b9f9ea..b12391092aa58670dd2d8d1d378f74427573e814 100644 (file)
@@ -10,8 +10,6 @@
 #include <stdbool.h>
 #include "vec.h"
 
-static bool is_dir(char* path);
-
 void workdir_deinit(void);
 
 typedef struct {
@@ -31,4 +29,6 @@ void workdir_cd(WorkDir_T*);
 
 void workdir_ls(WorkDir_T*);
 
+bool is_dir(char* path);
+
 #endif /* WORKDIR_H */