static void draw_recipe_subtabs( const catacurses::window &w, const std::string &tab, const std::string &subtab, const recipe_subset &available_recipes, TAB_MODE mode ) { werase( w ); int width = getmaxx( w ); for( int i = 0; i < width; i++ ) { if( i == 0 ) { mvwputch( w, 2, i, BORDER_COLOR, LINE_XXXO ); } else if( i == width ) { // @todo: that is always false! mvwputch( w, 2, i, BORDER_COLOR, LINE_XOXX ); } else { mvwputch( w, 2, i, BORDER_COLOR, LINE_OXOX ); } } for( int i = 0; i < 3; i++ ) { mvwputch( w, i, 0, BORDER_COLOR, LINE_XOXO ); // |^ mvwputch( w, i, width - 1, BORDER_COLOR, LINE_XOXO ); // ^| } switch( mode ) { case NORMAL: { int pos_x = 2;//draw the tabs on each other int tab_step = 3;//step between tabs, two for tabs border for( const auto &stt : craft_subcat_list[tab] ) { bool empty = available_recipes.empty_category( tab, stt != "CSC_ALL" ? stt : "" ); draw_subtab( w, pos_x, normalized_names[stt], subtab == stt, true, empty ); pos_x += utf8_width( normalized_names[stt] ) + tab_step; } break; } case FILTERED: case BATCH: werase( w ); for( int i = 0; i < 3; i++ ) { mvwputch( w, i, 0, BORDER_COLOR, LINE_XOXO ); // |^ mvwputch( w, i, width - 1, BORDER_COLOR, LINE_XOXO ); // ^| } break; } wrefresh( w ); }
static void draw_recipe_subtabs( WINDOW *w, std::string tab, std::string subtab, TAB_MODE mode ) { werase( w ); int width = getmaxx( w ); for( int i = 0; i < width; i++ ) { if( i == 0 ) { mvwputch( w, 2, i, BORDER_COLOR, LINE_XXXO ); } else if( i == width ) { mvwputch( w, 2, i, BORDER_COLOR, LINE_XOXX ); } else { mvwputch( w, 2, i, BORDER_COLOR, LINE_OXOX ); } } for( int i = 0; i < 3; i++ ) { mvwputch( w, i, 0, BORDER_COLOR, LINE_XOXO ); // |^ mvwputch( w, i, width - 1, BORDER_COLOR, LINE_XOXO ); // ^| } switch( mode ) { case NORMAL: { int pos_x = 2;//draw the tabs on each other int tab_step = 3;//step between tabs, two for tabs border for( const auto stt : craft_subcat_list[tab] ) { draw_subtab( w, pos_x, normalized_names[stt], subtab == stt ); pos_x += utf8_width( normalized_names[stt] ) + tab_step; } break; } case FILTERED: case BATCH: werase( w ); for( int i = 0; i < 3; i++ ) { mvwputch( w, i, 0, BORDER_COLOR, LINE_XOXO ); // |^ mvwputch( w, i, width - 1, BORDER_COLOR, LINE_XOXO ); // ^| } break; } wrefresh( w ); }