| 
							- 
 - /*******************************************************************************/
 - /* Copyright (C) 2013 Jonathan Moore Liles                                     */
 - /*                                                                             */
 - /* This program is free software; you can redistribute it and/or modify it     */
 - /* under the terms of the GNU General Public License as published by the       */
 - /* Free Software Foundation; either version 2 of the License, or (at your      */
 - /* option) any later version.                                                  */
 - /*                                                                             */
 - /* This program is distributed in the hope that it will be useful, but WITHOUT */
 - /* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or       */
 - /* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for   */
 - /* more details.                                                               */
 - /*                                                                             */
 - /* You should have received a copy of the GNU General Public License along     */
 - /* with This program; see the file COPYING.  If not,write to the Free Software */
 - /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 - /*******************************************************************************/
 - 
 - #include <FL/x.H>
 - #include <FL/Fl_Double_Window.H>
 - #include <FL/Fl.H>                                           
 - #include <FL/Fl_Box.H>
 - #include <FL/Fl_Socket_Window.H>
 - #include <stdlib.h>
 - 
 - int main ( int argc, char **argv )
 - {
 -     Window into = 0;
 -     int wait_for_client = 0;
 - 
 -     if ( argc > 1 )
 -     {
 -         if ( !strcmp( argv[1], "--wait" ) )
 -             wait_for_client = 1;
 -         else
 -             sscanf( argv[1], "%lx", &into );
 -     }
 - 
 -     fl_open_display();
 - 
 -     Fl_Double_Window *plug = NULL;
 - 
 -     if (  ! wait_for_client )
 -     {
 -         { Fl_Double_Window *o = plug = new Fl_Double_Window( 300,300, "Plug");
 -             o->color( FL_GRAY );
 -             { 
 -                 Fl_Box *o = new Fl_Box( 0, 0, 300, 300, 
 -                                         "You should see a gray box in the upper left hand corner on green field if embedding worked.");
 - 
 -                 o->align( FL_ALIGN_WRAP );
 -                 o->box(FL_UP_BOX);
 -                 Fl_Group::current()->resizable(o);
 -             }
 -           
 -             o->end();
 -           
 -             /* NOTE: window to be embedded is never show()'n */
 -         }
 -     }
 - 
 -     Fl_Socket_Window *socket = NULL;
 - 
 -     if ( ! into )
 -     {
 -         { Fl_Double_Window *o = new Fl_Double_Window( 500, 600, "Top-Level" );
 -             { Fl_Box *o = new Fl_Box( 0, 0, 500, 100, "This is the top-level window, the window for embedding should be nested below" );
 -                 o->align( FL_ALIGN_WRAP );
 -                 o->box( FL_BORDER_BOX );
 -             }
 -             { Fl_Socket_Window *o = socket = new Fl_Socket_Window( 0, 100, 500,500, "Socket");
 -                 o->color(FL_GREEN);
 -                 o->end();
 -                 o->show();
 -             }
 -             o->end();
 - 
 -             o->show();
 -         }
 -     }
 -     if ( ! wait_for_client )
 -     {
 -         if ( ! into )
 -         {
 -             fl_embed( plug, fl_xid( socket ));
 -         }
 -         else
 -         {
 -             fl_embed( plug, into );
 -         }
 -     }
 -     else
 -     {
 -         printf( "Waiting for client... win_id = 0x%lx %ld\n", fl_xid( socket ), fl_xid( socket ) );
 -     }
 - 
 -     Fl::run();
 - 
 -     return 0;
 - }
 
 
  |