logo
Литература_1 / photon_old

Модификация функции закрытия окна

И в завершение Вам необходимо модифицировать функцию newwin_close(), так чтобы она устанавливала массив win указателей на экземпляры в NULL для окна, когда оно закрывается. Таким способом Вы можете проверять на NULL в массиве win, чтобы определить, существует ли ещё окно.

Модифицируйте код newwin_close.c, как показано выше:

extern int win_ctr;

extern PtWidget_t *win[5];

int

newwin_close( PtWidget_t *widget, ApInfo_t *apinfo,

PtCallbackInfo_t *cbinfo )

{

PhWindowEvent_t *we = cbinfo->cbdata;

int i;

/* предотвращает предупреждения (варнинги) об отсутствии ссылок */

apinfo = apinfo;

/* обработка только события WM close */

if ( we->event_f != Ph_WM_CLOSE ) {

return( Pt_CONTINUE );

}

/* Прелестно, это закрыто. Тогда что это такое? */

for ( i = 0; i < win_ctr; i++ ) {

if ( win[i] == widget ) {

win[i] = NULL;

break;

}

}

return( Pt_CONTINUE );

}

      1. Yandex.RTB R-A-252273-3
        Yandex.RTB R-A-252273-4