Voila je voulais savoir si il y avait moyen de forcer le focus sur une fenetre en GLUT.
J´utilise GLUT et la lib FLTK.
Mon probleme : Je crée une fenetre, je defini les callback pour le clavier et ils ne fonctionnent pas ( car la fenetre n´est pas en focus, c´est ce que je pense). Il faut que je clique sur une autre fenetre et que je revienne sur ma fenetre pour que les touches clavier soient enfin detectées.
Ma definition de fenetre ressemble a ca :
void gmed_edit_room ( Fl_Widget *, long)
{
Fl_Widget* obj;
int i;
char gfxtiles[256];
gmed_initall();
glutwindow_w = ( GMED_MAIN_WIDTH+1+GMED_TILE_WIDTH)*BS;
glutwindow_h = ( GMED_MAIN_HEIGH)*BS;
/ / -- Create FLTK window:
Fl_Window window(glutwindow_w+20, glutwindow_h+150);
gmed_create_buttons();
window.show(NULL,NULL); / / glut will die unless parent window visible
window.begin(); / / this will cause Glut window to be a child
glutInitWindowSize(glutwindow_w, glutwindow_h);
glutInitWindowPosition(10,90); / / place it inside parent window
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH / *| GLUT_MULTISAMPLE*/ ) ;
glutCreateWindow("Game Map Edit");
window.end();
glGetIntegerv(GL_VIEWPORT, viewport);
/ / -- Define Callbacks functions
glutMouseFunc(gmed_mouse);
glutDisplayFunc(gmed_redraw);
glutMotionFunc(gmed_processMousePassiveMotion); / / Callback when mouse moves and a button is pressed
glutPassiveMotionFunc(gmed_processMousePassiveMoti
on); / / Callback when mouse move and no buttons are pressed
glutKeyboardFunc(gmed_keyboard);
glutSpecialFunc(gmed_special_keyboard);
/ / Load graphic cell set
/ / -- Load level
gmed_load();
sprintf(gfxtiles, " gcs%02d.h", gmed_graphicset);
gmed_init_tile(gfxtiles);
glutMainLoop();
}