add padding
This commit is contained in:
		
							parent
							
								
									94e8fed7c5
								
							
						
					
					
						commit
						4b7c856c0a
					
				| @ -25,6 +25,7 @@ int word_wrap = False; | ||||
| int line_height = 0;   /* if line height < font height, it will be raised to font height */ | ||||
| 
 | ||||
| int separator_height = 2; /* height of the separator line between two notifications */ | ||||
| int padding = 0; | ||||
| enum separator_color sep_color = AUTO; /* AUTO or FOREGROUND */ | ||||
| 
 | ||||
| /* show a notification on startup
 | ||||
|  | ||||
							
								
								
									
										31
									
								
								dunst.c
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								dunst.c
									
									
									
									
									
								
							| @ -110,7 +110,7 @@ void context_menu(void); | ||||
| void run_script(notification *n); | ||||
| 
 | ||||
| void r_line_cache_init(r_line_cache *c); | ||||
| void r_line_cache_append(r_line_cache *c, const char *s, ColorSet *col, bool continues); | ||||
| void r_line_cache_append(r_line_cache *c, const char *s, ColorSet *col, bool is_begin, bool is_end); | ||||
| void r_line_cache_reset(r_line_cache *c); | ||||
| 
 | ||||
| void init_shortcut(keyboard_shortcut * shortcut); | ||||
| @ -487,7 +487,7 @@ void r_line_cache_init(r_line_cache *c) | ||||
|     c->lines = NULL; | ||||
| } | ||||
| 
 | ||||
| void r_line_cache_append(r_line_cache *c, const char *s, ColorSet *col, bool continues) | ||||
| void r_line_cache_append(r_line_cache *c, const char *s, ColorSet *col, bool is_begin, bool is_end) | ||||
| { | ||||
|     if (!c || !s) | ||||
|         return; | ||||
| @ -501,7 +501,8 @@ void r_line_cache_append(r_line_cache *c, const char *s, ColorSet *col, bool con | ||||
|     c->count++; | ||||
|     c->lines[c->count-1].colors = col; | ||||
|     c->lines[c->count-1].str = strdup(s); | ||||
|     c->lines[c->count-1].continues = continues; | ||||
|     c->lines[c->count-1].is_begin = is_begin; | ||||
|     c->lines[c->count-1].is_end = is_end; | ||||
| } | ||||
| 
 | ||||
| void r_line_cache_reset(r_line_cache *c) | ||||
| @ -614,7 +615,7 @@ void add_notification_to_line_cache(notification *n, int max_width) | ||||
|         n->line_count = linecnt; | ||||
|         char *cur = buf; | ||||
|         for (int i = 0; i < linecnt; i++) { | ||||
|                 r_line_cache_append(&line_cache, cur, n->colors, i+1 != linecnt); | ||||
|                 r_line_cache_append(&line_cache, cur, n->colors,i == 0, i == linecnt-1); | ||||
| 
 | ||||
|                 while (*cur != '\0') | ||||
|                         cur++; | ||||
| @ -763,7 +764,7 @@ void fill_line_cache(int width) | ||||
|                         sasprintf(&tmp, "(%d more)", queue_cnt); | ||||
|                         ColorSet *last_colors = | ||||
|                                 line_cache.lines[line_cache.count-1].colors; | ||||
|                         r_line_cache_append(&line_cache, tmp, last_colors, false); | ||||
|                         r_line_cache_append(&line_cache, tmp, last_colors, true, true); | ||||
|                         free(tmp); | ||||
|                 } else { | ||||
|                         char *old = line_cache.lines[0].str; | ||||
| @ -801,6 +802,7 @@ void draw_win(void) | ||||
|         /* resize dc to correct width */ | ||||
| 
 | ||||
|         int height = (line_cache.count * line_height) | ||||
|                    + n_queue_len(&displayed) * 2 * padding | ||||
|                    + (separator_height * (n_queue_len(&displayed) - 1)); | ||||
| 
 | ||||
| 
 | ||||
| @ -815,16 +817,25 @@ void draw_win(void) | ||||
| 
 | ||||
| 
 | ||||
|                 /* draw background */ | ||||
|                 drawrect(dc, 0, 0, width, line_height, true, line.colors->BG); | ||||
|                 int pad = 0; | ||||
|                 pad += line.is_begin ? padding : 0; | ||||
|                 pad += line.is_end ? padding : 0; | ||||
| 
 | ||||
|                 drawrect(dc, 0, 0, width, pad +  line_height, true, line.colors->BG); | ||||
| 
 | ||||
|                 /* draw text */ | ||||
|                 dc->x = calculate_x_offset(width, textw(dc, line.str)); | ||||
|                 dc->y += (line_height - font_h) / 2; | ||||
| 
 | ||||
|                 dc->y += ((line_height - font_h) / 2); | ||||
|                 dc->y += line.is_begin ? padding : 0; | ||||
| 
 | ||||
|                 drawtextn(dc, line.str, strlen(line.str), line.colors); | ||||
| 
 | ||||
|                 dc->y += line_height - ((line_height - font_h) / 2); | ||||
|                 dc->y += line.is_end ? padding : 0; | ||||
| 
 | ||||
|                 /* draw separator */ | ||||
|                 if (separator_height > 0 && i < line_cache.count - 1 && !line.continues) { | ||||
|                 if (separator_height > 0 && i < line_cache.count - 1 && line.is_end) { | ||||
|                         dc->x = 0; | ||||
|                         double color; | ||||
|                         if (sep_color == AUTO) | ||||
| @ -834,7 +845,6 @@ void draw_win(void) | ||||
|                         drawrect(dc, 0, 0, width, separator_height, true, color); | ||||
|                         dc->y += separator_height; | ||||
|                 } | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         move_and_map(width, height); | ||||
| @ -1631,6 +1641,9 @@ void load_options(char *cmdline_config_path) | ||||
|             option_get_int("global", "separator_height", | ||||
|                            "-sep_height/-separator_height", separator_height, | ||||
|                            "height of the separator line"); | ||||
|         padding = | ||||
|             option_get_int("global", "padding", "-padding", padding, | ||||
|                             "Padding between text and separator"); | ||||
|         transparency = | ||||
|             option_get_int("global", "transparency", "-transparency", | ||||
|                            transparency, "Transparency. range 0-100"); | ||||
|  | ||||
							
								
								
									
										3
									
								
								dunst.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								dunst.h
									
									
									
									
									
								
							| @ -92,7 +92,8 @@ typedef struct _keyboard_shortcut { | ||||
| typedef struct _r_line { | ||||
|     ColorSet *colors; | ||||
|     char *str; | ||||
|     bool continues; | ||||
|     bool is_begin; | ||||
|     bool is_end; | ||||
| } r_line; | ||||
| 
 | ||||
| typedef struct r_line_cache { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Sascha Kruse
						Sascha Kruse