возможно, ламерский вопрос про запуск gnash в "своем" окне
Друзья, вот какой у меня к вам вопрос. Есть задача, запустить 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. буду признателен, если более сведующие и компетентные товарищи подскажут что-нибудь дельное.
заранее признателен всем откликнувшимся.
- 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. буду признателен, если более сведующие и компетентные товарищи подскажут что-нибудь дельное.
заранее признателен всем откликнувшимся.
