diff --git a/src/frontend/terminaloverlay.cc b/src/frontend/terminaloverlay.cc index 4a3dbe5..916ba51 100644 --- a/src/frontend/terminaloverlay.cc +++ b/src/frontend/terminaloverlay.cc @@ -202,8 +202,8 @@ void NotificationEngine::apply( Framebuffer &fb ) const /* draw bar across top of screen */ Cell notification_bar( 0 ); - notification_bar.get_renditions().foreground_color = 37; - notification_bar.get_renditions().background_color = 44; + notification_bar.get_renditions().set_foreground_color( 37 ); + notification_bar.get_renditions().set_background_color( 44 ); notification_bar.append( 0x20 ); for ( int i = 0; i < fb.ds.get_width(); i++ ) { @@ -273,8 +273,8 @@ void NotificationEngine::apply( Framebuffer &fb ) const this_cell = fb.get_mutable_cell( 0, overlay_col ); fb.reset_cell( this_cell ); this_cell->get_renditions().set_attribute(Renditions::bold, true); - this_cell->get_renditions().foreground_color = 37; - this_cell->get_renditions().background_color = 44; + this_cell->get_renditions().set_foreground_color( 37 ); + this_cell->get_renditions().set_background_color( 44 ); this_cell->append( ch ); this_cell->set_wide( chwidth == 2 ); diff --git a/src/terminal/terminalframebuffer.h b/src/terminal/terminalframebuffer.h index 723dc0a..45dca5a 100644 --- a/src/terminal/terminalframebuffer.h +++ b/src/terminal/terminalframebuffer.h @@ -55,11 +55,11 @@ namespace Terminal { public: typedef enum { bold, faint, italic, underlined, blink, inverse, invisible, SIZE } attribute_type; - static const unsigned int true_color_mask = 0x80000000; - unsigned int foreground_color; - unsigned int background_color; private: - unsigned int attributes : 8; + static const uint64_t true_color_mask = 0x1000000; + uint64_t foreground_color : 25; + uint64_t background_color : 25; + uint64_t attributes : 8; public: Renditions( color_type s_background ); @@ -76,6 +76,9 @@ namespace Terminal { return (color & true_color_mask) != 0; } + unsigned int get_foreground_color() const { return foreground_color; } + unsigned int get_background_color() const { return background_color; } + bool operator==( const Renditions &x ) const { return ( attributes == x.attributes ) @@ -332,7 +335,7 @@ namespace Terminal { void add_rendition( color_type x ) { renditions.set_rendition( x ); } const Renditions& get_renditions( void ) const { return renditions; } Renditions& get_renditions( void ) { return renditions; } - int get_background_rendition( void ) const { return renditions.background_color; } + int get_background_rendition( void ) const { return renditions.get_background_color(); } void save_cursor( void ); void restore_cursor( void );