LINUX.ORG.RU

Сообщения wizar

 

[C++][NetBeans 6.9]

Сразу скажу,в что линуксе я новичок. Вообщем, дело в том, что как то странно работает дебаг в NetBeans. Проект на С++, использует ncurses. Одно время дебаг шёл нормально, теперь же после установки брейкпоинта и запуска дебага в Debugger console пишет

Launching
User program running
User program running
User program stopped
User program finished
И никакой возможности пройтись по программе нету. В чём может быть проблема?

 

wizar
()

[C++] Тип MENU из ncurses

Нужно управлять меню не в функции прорисовки, поэтому было решено просто записывать структуру MENU, а потом её использовать. Так вот, проверил, да, структура передаётся. Сделал post_menu - да,работает.Однако, когда я написал некое подобие обработчика нажатий - вообщем кнопки не обрабатываются

   char c;
    while((c = wgetch(lWin)) != KEY_F(3))
	{
	    switch(c)
	        {	case KEY_DOWN:
				menu_driver(Menu, REQ_DOWN_ITEM);
				break;
			case KEY_UP:
				menu_driver(Menu, REQ_UP_ITEM);
				break;
		}
            wrefresh(lWin);
        }
    

 

wizar
()

Меню ncurses

Пишу простенький файловый менеджер на ncurses.Решил выводить список файлов в виде меню с помощью menu.h.Столкнулся с проблемой,если количество элементов большое(например,100),то ничего не выводится.Вот код


void Window::DrawMWindow(vector<FData> &List, WINDOW *win) {
    int nCount = List.size();
    char **choices = new char *[nCount + 1];
    for (int i = 0; i < nCount; i++) 
   {
        choices[i] = new char [strlen(List[i].name)];
        strcpy(choices[i], List[i].name);        
    }
    choices[nCount] = (char *) NULL;

    ITEM **mItems;
    int c;
    MENU *Menu;
    int nChois, i;

    mItems = (ITEM **) calloc(nCount, sizeof (ITEM *));
    for (i = 0; i < nCount; i++)
        mItems[i] = new_item(choices[i], NULL);

    Menu = new_menu((ITEM**) mItems);
    set_menu_fore(Menu, COLOR_PAIR(1) | A_REVERSE);
    set_menu_back(Menu, COLOR_PAIR(1));
    set_menu_grey(Menu, COLOR_PAIR(1));
   
    set_menu_win(Menu, win);
    set_menu_sub(Menu, derwin(win,24,50,1,1));
    
    box(win, 0, 0);
	
    post_menu(Menu);
    while (true) {
        c = wgetch(win);
        switch (c) {
            case KEY_DOWN:
                menu_driver(Menu, REQ_DOWN_ITEM);
                break;
            case KEY_UP:
                menu_driver(Menu, REQ_UP_ITEM);
                break;
            case 10:
                unpost_menu(Menu);
                
                exit;
        }
        wrefresh(win);
    }

wizar
()

RSS подписка на новые темы