2016-04-26 11 views
0

Ich habe folgende C++ Code für eine sehr einfache Anwendung ncurses:ncurses getmaxx geben nur eine halbe Klemmengröße

ui::MainUI::MainUI(void) : _window(initscr()), 
          xsize(getmaxx(_window)), 
          ysize(getmaxy(_window)), 
          _header(newwin(1, ysize, 0, 0)), 
          interrupted(false) { 
    curs_set(0); 
    start_color(); 
} 

void ui::MainUI::showMainUI(void) { 
    setTitle("title"); 
    refresh(); 
    wrefresh(_header); 
} 

void ui::MainUI::quit(void) { 
    endwin(); 
} 

void ui::MainUI::setTitle(std::string title) { 
    init_pair(1, 7, 4); 
    wbkgd(_header, COLOR_PAIR(1)); 
    int startpos = (ysize - (int)title.size())/2; 
    mvwaddstr(_header, 0, startpos, title.c_str()); 
} 

Es außer so weit funktioniert, dass der Header ist genau die Hälfte der Klemmenbreite. Ich habe mit verschiedenen Funktionen experimentiert, aber leider kann ich es nicht funktionieren lassen. Ich habe auch verschiedene Shells ausprobiert (zsh, bash und sh) - alle haben das gleiche Problem, also muss es in diesem Code sein.
Ich würde mich über Vorschläge freuen. Danke vorher.

Antwort

0

Soll startpos aus xsize statt ysize berechnet werden?

int startpos = (xsize - (int)title.size())/2; 
+0

Jeeez - Sie haben Recht. Ich habe die xsize und ysize verwechselt ...? – TacoVox