|
Друзья, вот какой у меня к вам вопрос. Есть задача, запустить AS приложение (swf) в standalone режиме с gnash в fullscreen (а в конечном итоге, реализовать использование внешних функций). Я, соответсвенно, решил сделать небольшую "обертку" на Си. Рассудил я следующим образом: - gnash имеет опцию "-x ID" где ID -- собсвтенно номер окна. - в си есть exec, которым я запущу gnash как отдельную ветку и укажу номер окна.
поскольку я ранее не имел дело с оконными интерфейсами (в т/ч KDE), я нашел документацию и решил попробовать
------------------ int main( int argc, char *argv[] ){
int pid; GtkWidget *window;
// if( !(pid = fork())){ // sleep(2); // argv[0]="ls"; argv[1]="test.swf"; argv[2]="-x"; argv[3]="0"; argv[4]=NULL; // execv("/usr/bin/gnash", argv); // }
gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC (destroy), NULL); Window xwin = GDK_WINDOW_XWINDOW (window); gtk_widget_show (window); printf("xwin: %d\n", xwin); argv[0]="ls"; argv[1]="test.swf"; argv[2]="-x"; argv[3]=(char *)xwin; argv[4]="-j"; argv[5]="100"; argv[6]="-k"; argv[7]="100"; argv[8]=NULL; execv("/usr/bin/gnash", argv); gtk_main();
return 0; }; ------------------
в общем, и окно открывается и gnash запускается, и в fork режиме и вместо текущего процесса, но вот в окно! в окно у меня никак не получается вставить вывод gnash. буду признателен, если более сведующие и компетентные товарищи подскажут что-нибудь дельное.
заранее признателен всем откликнувшимся. |