Hi,

I have successfully embedded InternetExplorer canvas (from mshtml.dll) as a 
subwindow of fltk window - under MingW.
I had one problem thought, acceleration keys  - such as PgDown, PgUp, 
Copy/Paste/Cut (CTRL+C, CTRL+V, Ctrl+X), even Delete key -
did not work without modification of fltk library. The reason for that is that 
fltk gives no chance to call calls TranslateAccelerator functions - which have 
to
be processed before messages are translated and dispatched to WinProc(s).

The modification adds possibility to call these accelerators before 
TranslateMessage() and DispatchMessage() within
fl_wait() (approx. line 338 in Fl_win32.cxx) and if successful, such message is 
not furthet processed:


static int (*translate_accelerator_)(MSG * msg)  = 0;

// this platform-specific  declaration  would be  in Fl_win32.H
void fl_translate_accelerator(int (*accelerator)(MSG * msg)){
  translate_accelerator_ = accelerator;
}


fl_wait(...){
  ...
  if(!translate_accelerator_ || !(*translate_accelerator_)(&fl_msg)){
        TranslateMessage(&fl_msg);
        DispatchMessage(&fl_msg);
  }
}

Implementation of the translator is completely up to the user, normally this 
pointer is NULL.
The function could be even declared without argument as user can always dig it 
out from fl_msg which is set at that moment.

Maybe some users are interested to embed stock "windows controls" - so maybe 
something similar can be added to next fltk version (1.3)?

R.
_______________________________________________
fltk-dev mailing list
fltk-dev@easysw.com
http://lists.easysw.com/mailman/listinfo/fltk-dev

Reply via email to