Ignore:
Timestamp:
02/15/15 21:33:48 (10 years ago)
Author:
epyon
Message:
  • gui hover and selected support
  • minor changes
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gui/gui_renderer.cc

    r346 r351  
    4444using namespace nv;
    4545using namespace nv::gui;
     46
     47struct vertex
     48{
     49        ivec2 position;
     50        vec2  texcoord;
     51        vec4  color;
     52        vertex() {}
     53        vertex( const nv::ivec2& cr, const nv::vec2& tc, const nv::vec4& c )
     54                : position( cr ), texcoord( tc ), color( c )
     55        {
     56        }
     57};
    4658
    4759const ivec2 atlas_size = ivec2( 1024, 1024 );
     
    239251                std::string path;
    240252                std::string text;
    241 
    242                 if ( m_style.get( e, "skin", path ) )
     253                const char* stext[] = { nullptr, "selected", "hover" };
     254                const char* selector = stext[border];
     255                if ( e->m_flags[HOVER] )    selector = stext[2];
     256                if ( e->m_flags[SELECTED] ) selector = stext[1];
     257
     258                if ( m_style.get( e, "skin", selector, path ) )
    243259                {
    244260                        size_t image_id = load_image( path );
     
    286302                {
    287303
    288                         if ( m_style.get( e, "border", border ) && m_style.get( e, "border_color", color ) )
     304                        if ( m_style.get( e, "border", selector, border ) && m_style.get( e, "border_color", selector, color ) )
    289305                        {
    290306                                rectangle inner = abs.shrinked( border );
     
    296312                        }
    297313
    298                         if ( m_style.get( e, "background_color", color ) )
     314                        if ( m_style.get( e, "background_color", selector, color ) )
    299315                        {
    300316                                qvec.emplace_back( abs.ul, abs.lr, color );
     
    305321                if ( !text.empty() )
    306322                {
    307                         if ( m_style.get( e, "text_color", color ) && m_style.get( e, "text_font", path ) && m_style.get( e, "text_size", border ) )
     323                        if ( m_style.get( e, "text_color", selector, color ) && m_style.get( e, "text_font", selector, path ) && m_style.get( e, "text_size", selector, border ) )
    308324                        {
    309325                                size_t font_id = load_font( path, (uint16)border );
     
    331347}
    332348
     349void renderer::on_hover_change( element* e, bool hover )
     350{
     351        // TODO: FIX
     352        NV_LOG( nv::LOG_DEBUG, "on_hover_change" );
     353        e->m_flags[DIRTY] = true;
     354}
     355
     356void renderer::on_select_change( element* e, bool select )
     357{
     358        // TODO: FIX
     359        NV_LOG( nv::LOG_DEBUG, "on_select_change" );
     360        e->m_flags[DIRTY] = true;
     361}
     362
     363
    333364void renderer::draw( element* e )
    334365{
Note: See TracChangeset for help on using the changeset viewer.