Поэтому собcтвенно, хочется разделить логику программы и GUI.
Ботаю GTK по API reference, и вот что непонятно: когда мы нарисовали окошко, мы запускаем gtk_main()
И на этом управление переходит к GTK. То есть вся логика программы должны быть "внутри" объектов GTK.
(ну например, прикручена к нажатию кнопки)
Мне же хочется иметь main loop, который будет делать кучу всего, в частности обновлять окно.
Чем-нибудь вроде
Код: Выделить всё
while(TRUE)
{
do_something();
void refresh_window(void)
{
if(toolkit==GTK)
{refersh_window_for_gtk();}
elseif(toolkit==ETK)
{refresh_window_for_ETK();}
else
{refresh_window_for_windows();}
}
do_something_else();
}Как это можно реализовать?
То есть есть мысль, конечно, зафигачить 2 потока.
В одном пускать GUI, а во втором логику, но это будет ни фига не портируемо, или прийдется еще и несколько реализаций через потоки тащить(для винды, линукса, итд)