Resolve the APP_ATTR situation
This commit is contained in:
		
							parent
							
								
									5939c7135a
								
							
						
					
					
						commit
						36e726eca0
					
				
							
								
								
									
										66
									
								
								nncmpp.c
									
									
									
									
									
								
							
							
						
						
									
										66
									
								
								nncmpp.c
									
									
									
									
									
								
							| @ -943,9 +943,8 @@ app_draw_song_info (void) | ||||
| 	if (!(map = item_list_get (&g_ctx.playlist, g_ctx.song))) | ||||
| 		return; | ||||
| 
 | ||||
| 	// XXX: can we get rid of this and still make it look acceptable?
 | ||||
| 	chtype a_normal    = APP_ATTR (HEADER); | ||||
| 	chtype a_highlight = APP_ATTR (HIGHLIGHT); | ||||
| 	chtype attr_header    = APP_ATTR (HEADER); | ||||
| 	chtype attr_highlight = APP_ATTR (HIGHLIGHT); | ||||
| 
 | ||||
| 	char *title; | ||||
| 	if ((title = compact_map_find (map, "title")) | ||||
| @ -954,8 +953,8 @@ app_draw_song_info (void) | ||||
| 	{ | ||||
| 		struct row_buffer buf; | ||||
| 		row_buffer_init (&buf); | ||||
| 		row_buffer_append (&buf, title, a_highlight); | ||||
| 		app_flush_header (&buf, a_highlight); | ||||
| 		row_buffer_append (&buf, title, attr_highlight); | ||||
| 		app_flush_header (&buf, attr_highlight); | ||||
| 	} | ||||
| 
 | ||||
| 	char *artist = compact_map_find (map, "artist"); | ||||
| @ -967,12 +966,12 @@ app_draw_song_info (void) | ||||
| 	row_buffer_init (&buf); | ||||
| 
 | ||||
| 	if (artist) | ||||
| 		row_buffer_append_args (&buf, " by "   + !buf.total_width, a_normal, | ||||
| 			artist, a_highlight, NULL); | ||||
| 		row_buffer_append_args (&buf, " by "   + !buf.total_width, attr_header, | ||||
| 			artist, attr_highlight, NULL); | ||||
| 	if (album) | ||||
| 		row_buffer_append_args (&buf, " from " + !buf.total_width, a_normal, | ||||
| 			album, a_highlight, NULL); | ||||
| 	app_flush_header (&buf, a_normal); | ||||
| 		row_buffer_append_args (&buf, " from " + !buf.total_width, attr_header, | ||||
| 			album,  attr_highlight, NULL); | ||||
| 	app_flush_header (&buf, attr_header); | ||||
| } | ||||
| 
 | ||||
| static char * | ||||
| @ -1034,40 +1033,39 @@ app_draw_status (void) | ||||
| 	if (g_ctx.state != PLAYER_STOPPED) | ||||
| 		app_draw_song_info (); | ||||
| 
 | ||||
| 	// XXX: can we get rid of this and still make it look acceptable?
 | ||||
| 	chtype a_normal    = APP_ATTR (HEADER); | ||||
| 	chtype a_highlight = APP_ATTR (HIGHLIGHT); | ||||
| 	chtype attr_header    = APP_ATTR (HEADER); | ||||
| 	chtype attr_highlight = APP_ATTR (HIGHLIGHT); | ||||
| 
 | ||||
| 	struct row_buffer buf; | ||||
| 	row_buffer_init (&buf); | ||||
| 
 | ||||
| 	bool stopped = g_ctx.state == PLAYER_STOPPED; | ||||
| 	chtype a_song_action = stopped ? a_normal : a_highlight; | ||||
| 	chtype attr_song_action = stopped ? attr_header : attr_highlight; | ||||
| 
 | ||||
| 	const char *toggle = g_ctx.state == PLAYER_PLAYING ? "||" : "|>"; | ||||
| 	row_buffer_append_args (&buf, | ||||
| 		"<<",   a_song_action, " ",  a_normal, | ||||
| 		toggle, a_highlight,   " ",  a_normal, | ||||
| 		"[]",   a_song_action, " ",  a_normal, | ||||
| 		">>",   a_song_action, "  ", a_normal, | ||||
| 		"<<",   attr_song_action, " ",  attr_header, | ||||
| 		toggle, attr_highlight,   " ",  attr_header, | ||||
| 		"[]",   attr_song_action, " ",  attr_header, | ||||
| 		">>",   attr_song_action, "  ", attr_header, | ||||
| 		NULL); | ||||
| 
 | ||||
| 	if (stopped) | ||||
| 		row_buffer_append (&buf, "Stopped", a_normal); | ||||
| 		row_buffer_append (&buf, "Stopped", attr_header); | ||||
| 	else | ||||
| 	{ | ||||
| 		if (g_ctx.song_elapsed >= 0) | ||||
| 		{ | ||||
| 			app_write_time (&buf, g_ctx.song_elapsed, a_normal); | ||||
| 			row_buffer_append (&buf, " ", a_normal); | ||||
| 			app_write_time (&buf, g_ctx.song_elapsed, attr_header); | ||||
| 			row_buffer_append (&buf, " ", attr_header); | ||||
| 		} | ||||
| 		if (g_ctx.song_duration >= 1) | ||||
| 		{ | ||||
| 			row_buffer_append (&buf, "/ ", a_normal); | ||||
| 			app_write_time (&buf, g_ctx.song_duration, a_normal); | ||||
| 			row_buffer_append (&buf, " ", a_normal); | ||||
| 			row_buffer_append (&buf, "/ ", attr_header); | ||||
| 			app_write_time (&buf, g_ctx.song_duration, attr_header); | ||||
| 			row_buffer_append (&buf, " ", attr_header); | ||||
| 		} | ||||
| 		row_buffer_append (&buf, " ", a_normal); | ||||
| 		row_buffer_append (&buf, " ", attr_header); | ||||
| 	} | ||||
| 
 | ||||
| 	// It gets a bit complicated due to the only right-aligned item on the row
 | ||||
| @ -1088,15 +1086,15 @@ app_draw_status (void) | ||||
| 			(float) g_ctx.song_elapsed / g_ctx.song_duration, remaining); | ||||
| 	} | ||||
| 	else | ||||
| 		row_buffer_space (&buf, remaining, a_normal); | ||||
| 		row_buffer_space (&buf, remaining, attr_header); | ||||
| 
 | ||||
| 	if (volume) | ||||
| 	{ | ||||
| 		row_buffer_append (&buf, volume, a_normal); | ||||
| 		row_buffer_append (&buf, volume, attr_header); | ||||
| 		free (volume); | ||||
| 	} | ||||
| 	g_ctx.controls_offset = g_ctx.header_height; | ||||
| 	app_flush_header (&buf, a_normal); | ||||
| 	app_flush_header (&buf, attr_header); | ||||
| } | ||||
| 
 | ||||
| static void | ||||
| @ -1123,24 +1121,22 @@ app_draw_header (void) | ||||
| 		app_write_line ("Disconnected", APP_ATTR (HEADER)); | ||||
| 	} | ||||
| 
 | ||||
| 	// XXX: can we get rid of this and still make it look acceptable?
 | ||||
| 	chtype a_normal = APP_ATTR (TAB_BAR); | ||||
| 	chtype a_active = APP_ATTR (TAB_ACTIVE); | ||||
| 	chtype attrs[2] = { APP_ATTR (TAB_BAR), APP_ATTR (TAB_ACTIVE) }; | ||||
| 
 | ||||
| 	struct row_buffer buf; | ||||
| 	row_buffer_init (&buf); | ||||
| 
 | ||||
| 	// The help tab is disguised so that it's not too intruding
 | ||||
| 	row_buffer_append (&buf, APP_TITLE, | ||||
| 		g_ctx.active_tab == g_ctx.help_tab ? a_active : a_normal); | ||||
| 	row_buffer_append (&buf, " ", a_normal); | ||||
| 		attrs[g_ctx.active_tab == g_ctx.help_tab]); | ||||
| 	row_buffer_append (&buf, " ", attrs[false]); | ||||
| 
 | ||||
| 	LIST_FOR_EACH (struct tab, iter, g_ctx.tabs) | ||||
| 	{ | ||||
| 		row_buffer_append (&buf, iter->name, | ||||
| 			iter == g_ctx.active_tab ? a_active : a_normal); | ||||
| 			attrs[iter == g_ctx.active_tab]); | ||||
| 	} | ||||
| 	app_flush_header (&buf, a_normal); | ||||
| 	app_flush_header (&buf, attrs[false]); | ||||
| } | ||||
| 
 | ||||
| static int | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user