theme.c (2666B)
1 #include <stddef.h> 2 3 #include <X11/Xlib.h> 4 #include <X11/Xft/Xft.h> 5 6 #include "memory.h" 7 #include "common.h" 8 #include "theme.h" 9 #include "theme_config.h" 10 11 ledit_theme * 12 theme_create(ledit_common *common) { 13 ledit_theme *theme = ledit_malloc(sizeof(ledit_theme)); 14 theme->scrollbar_width = SCROLLBAR_WIDTH; 15 theme->scrollbar_step = SCROLLBAR_STEP; 16 theme->text_font = TEXT_FONT; 17 theme->text_size = TEXT_SIZE; 18 theme->text_fg_hex = TEXT_FG; 19 theme->text_bg_hex = TEXT_BG; 20 theme->cursor_fg_hex = CURSOR_FG; 21 theme->cursor_bg_hex = CURSOR_BG; 22 theme->selection_fg_hex = SELECTION_FG; 23 theme->selection_bg_hex = SELECTION_BG; 24 theme->bar_fg_hex = BAR_FG; 25 theme->bar_bg_hex = BAR_BG; 26 theme->bar_cursor_hex = BAR_CURSOR; 27 theme->scrollbar_fg_hex = SCROLLBAR_FG; 28 theme->scrollbar_bg_hex = SCROLLBAR_BG; 29 XftColorAllocName(common->dpy, common->vis, common->cm, TEXT_FG, &theme->text_fg); 30 XftColorAllocName(common->dpy, common->vis, common->cm, TEXT_BG, &theme->text_bg); 31 XftColorAllocName(common->dpy, common->vis, common->cm, CURSOR_FG, &theme->cursor_fg); 32 XftColorAllocName(common->dpy, common->vis, common->cm, CURSOR_BG, &theme->cursor_bg); 33 XftColorAllocName(common->dpy, common->vis, common->cm, SELECTION_FG, &theme->selection_fg); 34 XftColorAllocName(common->dpy, common->vis, common->cm, SELECTION_BG, &theme->selection_bg); 35 XftColorAllocName(common->dpy, common->vis, common->cm, BAR_FG, &theme->bar_fg); 36 XftColorAllocName(common->dpy, common->vis, common->cm, BAR_BG, &theme->bar_bg); 37 XftColorAllocName(common->dpy, common->vis, common->cm, BAR_CURSOR, &theme->bar_cursor); 38 XftColorAllocName(common->dpy, common->vis, common->cm, SCROLLBAR_FG, &theme->scrollbar_fg); 39 XftColorAllocName(common->dpy, common->vis, common->cm, SCROLLBAR_BG, &theme->scrollbar_bg); 40 return theme; 41 } 42 43 void 44 theme_destroy(ledit_common *common, ledit_theme *theme) { 45 XftColorFree(common->dpy, common->vis, common->cm, &theme->text_fg); 46 XftColorFree(common->dpy, common->vis, common->cm, &theme->text_bg); 47 XftColorFree(common->dpy, common->vis, common->cm, &theme->cursor_fg); 48 XftColorFree(common->dpy, common->vis, common->cm, &theme->cursor_bg); 49 XftColorFree(common->dpy, common->vis, common->cm, &theme->selection_fg); 50 XftColorFree(common->dpy, common->vis, common->cm, &theme->selection_bg); 51 XftColorFree(common->dpy, common->vis, common->cm, &theme->bar_fg); 52 XftColorFree(common->dpy, common->vis, common->cm, &theme->bar_bg); 53 XftColorFree(common->dpy, common->vis, common->cm, &theme->bar_cursor); 54 XftColorFree(common->dpy, common->vis, common->cm, &theme->scrollbar_fg); 55 XftColorFree(common->dpy, common->vis, common->cm, &theme->scrollbar_bg); 56 free(theme); 57 }