From 4805d825f8facc6d7f94c075c698edf50bccea38 Mon Sep 17 00:00:00 2001
From: Julian Smart <julian@anthemion.co.uk>
Date: Tue, 22 Jan 2002 22:37:13 +0000
Subject: [PATCH] Added screenshot and a few lines of explanation.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 contrib/docs/latex/fl/body.tex     | 178 ++++++++++++++++++++++++++++-
 contrib/docs/latex/fl/screen01.bmp | Bin 0 -> 155146 bytes
 contrib/docs/latex/fl/screen01.gif | Bin 0 -> 10668 bytes
 3 files changed, 176 insertions(+), 2 deletions(-)
 create mode 100644 contrib/docs/latex/fl/screen01.bmp
 create mode 100644 contrib/docs/latex/fl/screen01.gif

diff --git a/contrib/docs/latex/fl/body.tex b/contrib/docs/latex/fl/body.tex
index 9918813326..402c7e9cf8 100644
--- a/contrib/docs/latex/fl/body.tex
+++ b/contrib/docs/latex/fl/body.tex
@@ -3,9 +3,183 @@
 \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
 \setfooter{\thepage}{}{}{}{}{\thepage}%
 
-\section{What is FL?}
+\section{What is FL?}\label{whatisfl}
 
 This manual describes FL (Frame Layout), a
 class library for managing sophisticated window layout,
-including docking panes.
+with panes that can be moved around the main window
+and customized. FL handles many decoration and dragging
+issues, giving applications the kind of docking facilities
+that Visual C++ and Netscape Navigator possess.
+
+The following screenshot (from fl\_demo1) shows a frame with a number of
+bars that can be dragged around. The vertical grippers with
+two lines allow a bar to be dragged in that row, changing the
+ordering of the bar if necessary.
+The dotted grippers (as in Netscape Navigator) allow
+a whole row to be moved, again changing the position of the row
+if required. While moving a bar or row, immediate feedback
+is given as the moving bar displaces other bars.
+
+Other features: the splitter bar shows a dotted thick line as
+it's dragged. Single-clicking on a row handle minimizes it to
+a horizontal tab which is given its own narrow row. This allows
+the user to temporarily hide a row whilst allowing quick access
+to it when required.
+
+A close button (x) hides a bar completely. You can get it back again
+by right-clicking and selecting the appropriate menu item.
+
+A left or right pointing arrow button expands the pane in that direction.
+
+\center{\image{}{screen01.bmp}}
+
+\section{Compiling and using FL}
+
+FL can be found under the 'contrib' hierarchy, in the following directories:
+
+\begin{verbatim}
+  contrib/src/fl
+  contrib/include/wx/fl
+  contrib/samples/fl
+  contrib/docs/latex/wx
+  docs/html/fl
+  docs/htmlhelp/fl.chm
+  docs/pdf/fl.pdf
+  docs/winhelp/fl.hlp
+\end{verbatim}
+
+To compile FL:
+
+\begin{itemize}\itemsep=0pt
+\item Under Windows using VC++, open the flVC.dsw project
+and compile.
+\item Under Unix, FL should be configured when you configured
+wxWindows. Make FL by changing directory to contrib/src/fl and
+type 'make'.
+\end{itemize}
+
+To use FL:
+
+\begin{itemize}\itemsep=0pt
+\item Under Windows using VC++, link with fl[d].lib.
+\item Under Unix, link with libfl[d].a.
+\end{itemize}
+
+\section{FL concepts}
+
+The following is taken from fl\_demo1 and shows the main code implementing the
+user interface as illustrated in \helpref{What is FL?}{whatisfl}.
+
+Notable points in the code:
+
+\begin{itemize}\itemsep=0pt
+\item creating a new \helpref{wxFrameLayout}{wxframelayout} passing the top-level frame and the window that
+is interpreted as the main 'client' window;
+\item setting an updates manager for optimizing drag operations;
+\item adding plugins for implementing various features;
+\item adding bars;
+\item enabling floating mode.
+\end{itemize}
+
+\begin{verbatim}
+MyFrame::MyFrame(wxFrame *frame)
+    : wxFrame( frame, -1, "wxWindows 2.0 wxFrameLayout Test Application", wxDefaultPosition, 
+          wxSize( 700, 500 ), 
+          wxCLIP_CHILDREN | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | 
+          wxTHICK_FRAME   | wxSYSTEM_MENU  | wxCAPTION, 
+          "freimas" )
+{
+    mpClientWnd = CreateTextCtrl( "Client window" );
+    
+    mpLayout = new wxFrameLayout( this, mpClientWnd );
+    
+    mpLayout->SetUpdatesManager( new cbGCUpdatesMgr() );
+    
+    // setup plugins for testing
+    mpLayout->PushDefaultPlugins();
+    
+    mpLayout->AddPlugin( CLASSINFO( cbBarHintsPlugin ) ); // fancy "X"es and bevel for bars
+    mpLayout->AddPlugin( CLASSINFO( cbHintAnimationPlugin ) );
+    mpLayout->AddPlugin( CLASSINFO( cbRowDragPlugin  ) );
+    mpLayout->AddPlugin( CLASSINFO( cbAntiflickerPlugin ) );
+    mpLayout->AddPlugin( CLASSINFO( cbSimpleCustomizationPlugin ) );
+    
+    // drop in some bars
+    cbDimInfo sizes0( 200,45, // when docked horizontally      
+                      200,85, // when docked vertically        
+                      175,35, // when floated                  
+                      FALSE,  // the bar is not fixed-size
+                      4,      // vertical gap (bar border)
+                      4       // horizontal gap (bar border)
+                    ); 
+    
+    cbDimInfo sizes1( 150,35, // when docked horizontally      
+                      150,85, // when docked vertically        
+                      175,35, // when floated                  
+                      TRUE,   // the bar is not fixed-size
+                      4,      // vertical gap (bar border)
+                      4       // horizontal gap (bar border)
+                    ); 
+    
+    cbDimInfo sizes2( 175,45, // when docked horizontally      
+                      175,37, // when docked vertically        
+                      170,35, // when floated                  
+                      TRUE,   // the bar is not fixed-size
+                      4,      // vertical gap (bar border)
+                      4,      // horizontal gap (bar border)
+                      new cbDynToolBarDimHandler()
+                    ); 
+    
+    mpLayout->AddBar( CreateTextCtrl("Hello"),  // bar window
+                      sizes0, FL_ALIGN_TOP,     // alignment ( 0-top,1-bottom, etc)
+                      0,                        // insert into 0th row (vert. position)
+                      0,                        // offset from the start of row (in pixels)
+                      "InfoViewer1",            // name to refere in customization pop-ups
+                      TRUE
+                    );
+    
+    mpLayout->AddBar( CreateTextCtrl("Bye"),    // bar window
+                      sizes0, FL_ALIGN_TOP,     // alignment ( 0-top,1-bottom, etc)
+                      1,                        // insert into 0th row (vert. position)
+                      0,                        // offset from the start of row (in pixels)
+                      "InfoViewer2",            // name to refere in customization pop-ups
+                      TRUE
+                    );
+    
+    mpLayout->AddBar( CreateTextCtrl("Fixed0"), // bar window
+                      sizes1, FL_ALIGN_TOP,     // alignment ( 0-top,1-bottom, etc)
+                      0,                        // insert into 0th row (vert. position)
+                      0,                        // offset from the start of row (in pixels)
+                      "ToolBar1",               // name to refer in customization pop-ups
+                      TRUE
+                    );
+    
+    wxDynamicToolBar* pToolBar = new wxDynamicToolBar();
+    
+    pToolBar->Create( this, -1 );
+    
+    // 1001-1006 ids of command events fired by added tool-buttons
+    
+    pToolBar->AddTool( 1001, BMP_DIR "new.bmp" );
+    pToolBar->AddTool( 1002, BMP_DIR "open.bmp" );
+    pToolBar->AddTool( 1003, BMP_DIR "save.bmp" );
+    
+    pToolBar->AddTool( 1004, BMP_DIR "cut.bmp" );
+    pToolBar->AddTool( 1005, BMP_DIR "copy.bmp" );
+    pToolBar->AddTool( 1006, BMP_DIR "paste.bmp" );   
+    
+    mpLayout->AddBar( pToolBar,             // bar window (can be NULL)
+                      sizes2, FL_ALIGN_TOP, // alignment ( 0-top,1-bottom, etc)
+                      0,                    // insert into 0th row (vert. position)
+                      0,                    // offset from the start of row (in pixels)
+                      "ToolBar2",           // name to refere in customization pop-ups
+                      FALSE
+                    );
+    
+    mpLayout->EnableFloating( TRUE ); // off, thinking about wxGtk...
+}
+\end{verbatim}
+
+
 
diff --git a/contrib/docs/latex/fl/screen01.bmp b/contrib/docs/latex/fl/screen01.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..16bcd0dee81bac23de6a156315421e170a3de459
GIT binary patch
literal 155146
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

literal 0
HcmV?d00001

diff --git a/contrib/docs/latex/fl/screen01.gif b/contrib/docs/latex/fl/screen01.gif
new file mode 100644
index 0000000000000000000000000000000000000000..372bc6ffb7faa847e156774a407d037b7f9d65e5
GIT binary patch
literal 10668
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
ae!_N*%63hLcFm4<Eq=#8UcE#^6Z{{E;Rdq+

literal 0
HcmV?d00001

-- 
2.45.2

