1 /********************************************************************************
2 *                                                                               *
3 *              H o r i z o n t a l   C o n t a i n e r   W i d g e t            *
4 *                                                                               *
5 *********************************************************************************
6 * Copyright (C) 1997,2020 by Jeroen van der Zijp.   All Rights Reserved.        *
7 *********************************************************************************
8 * This library is free software; you can redistribute it and/or modify          *
9 * it under the terms of the GNU Lesser General Public License as published by   *
10 * the Free Software Foundation; either version 3 of the License, or             *
11 * (at your option) any later version.                                           *
12 *                                                                               *
13 * This library is distributed in the hope that it will be useful,               *
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of                *
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                 *
16 * GNU Lesser General Public License for more details.                           *
17 *                                                                               *
18 * You should have received a copy of the GNU Lesser General Public License      *
19 * along with this program.  If not, see <http://www.gnu.org/licenses/>          *
20 ********************************************************************************/
21 #ifndef FXHORIZONTALFRAME_H
22 #define FXHORIZONTALFRAME_H
23 
24 #ifndef FXPACKER_H
25 #include "FXPacker.h"
26 #endif
27 
28 namespace FX {
29 
30 
31 /**
32 * Horizontal frame layout manager widget is used to automatically
33 * place child-windows horizontally from left-to-right, or right-to-left,
34 * depending on the child window's layout hints.
35 */
36 class FXAPI FXHorizontalFrame : public FXPacker {
FXDECLARE(FXHorizontalFrame)37   FXDECLARE(FXHorizontalFrame)
38 protected:
39   FXHorizontalFrame(){}
40 private:
41   FXHorizontalFrame(const FXHorizontalFrame&);
42   FXHorizontalFrame &operator=(const FXHorizontalFrame&);
43 public:
44 
45   /// Construct a horizontal frame layout manager
46   FXHorizontalFrame(FXComposite *p,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=DEFAULT_SPACING,FXint pr=DEFAULT_SPACING,FXint pt=DEFAULT_SPACING,FXint pb=DEFAULT_SPACING,FXint hs=DEFAULT_SPACING,FXint vs=DEFAULT_SPACING);
47 
48   /// Perform layout
49   virtual void layout();
50 
51   /// Return default width
52   virtual FXint getDefaultWidth();
53 
54   /// Return default height
55   virtual FXint getDefaultHeight();
56   };
57 
58 }
59 
60 #endif
61