/usr/include/GNUstep/Renaissance/GSAutoLayoutDefaults.h is in librenaissance0-dev 0.9.0-4+b6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | /* -*-objc-*-
GSAutoLayoutDefaults.h
Copyright (C) 2002 Free Software Foundation, Inc.
Author: Nicola Pero <n.pero@mi.flashnet.it>
Date: April 2002
This file is part of GNUstep Renaissance
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _GNUstep_H_GSAutoLayoutDefaults
#define _GNUstep_H_GSAutoLayoutDefaults
#ifndef GNUSTEP
# include <Foundation/Foundation.h>
# include <AppKit/AppKit.h>
# include "GNUstep.h"
#else
# include <AppKit/NSView.h>
# include <AppKit/NSWindow.h>
#endif
/*
* An essential idea in the GSAutoLayout framework is that of default
* autolayout behaviour. Every class can provide/compute default
* autolayout flags for objects of that class. Unless overridden,
* those flags are automatically used.
*
* The expand/align flags are normally chosen as follows -
*
* - if the control displays information and making the control
* bigger displays more information (for example a textfield in the
* horizontal direction, a textview in all directions, a scrollview
* in all directions, etc), then that control has a
* GSAutoLayoutAlignment of GSAutoLayoutExpand set in that direction.
* For containers, if anything the container contains
* expand in that direction, the container expands too in that
* direction. Typically, a window is made resizable in a direction
* if and only if it contains a view that expands in that direction.
*
* - in all other cases, it's basically a matter of aesthetics to
* decide what to do when more space is available. There are a few
* options:
*
* GSAutoLayoutWeakExpand: means the control is expanded when more
* space is available. This is different from GSAutoLayoutExpand
* in that the control does not 'suggest' to be given more space;
* that is, a weak-expand view in a window does not normally cause
* the window to be made resizable. But if more space is made
* available, a weak-expand view will expand. Typically, `spaces'
* (vspace and hspace) are weak-expand views.
*
* GSAutoLayoutCenter, GSAutoLayoutAlignMin, GSAutoLayoutAlignMax:
* The view is moved to the center, min or max (of the coordinates)
* of the available space, and the remaining space is left blank.
* The default for everything which is not expanding is
* GSAutoLayoutCenter. You may often want to override this
* with GSAutoLayoutAlignLeft, or GSAutoLayoutAlignRight.
*
* The borders are normally chosen as follows -
*
* - 4 in all directions for all views, but 0 in all directions for
* containers.
*
*/
/* This enum is used to pass alignment flags for views. Only one of
* the options is valid in each direction. AlignMin is alignment
* towards the minimum coordinates - ie, left if coordinates increase
* from left to right, and right for AlignMax. */
typedef enum
{
GSAutoLayoutExpand = 0,
GSAutoLayoutWeakExpand = 1,
GSAutoLayoutAlignMin = 2,
GSAutoLayoutAlignCenter = 3,
GSAutoLayoutAlignMax = 4
} GSAutoLayoutAlignment;
@interface NSView (AutoLayoutDefaults)
- (GSAutoLayoutAlignment) autolayoutDefaultHorizontalAlignment;
- (GSAutoLayoutAlignment) autolayoutDefaultVerticalAlignment;
- (float) autolayoutDefaultHorizontalBorder;
- (float) autolayoutDefaultVerticalBorder;
@end
@interface NSView (DisplayAutoLayoutContainers)
/* This method is implemented by NSView to call the same method with
* the same argument on all subviews. In practice, calling
* this method with YES/NO will turn display of autolayout
* containers on/off in all subviews of the view.
*
* Containers (boxes, grids, etc) implement this method to call
* super's implementation (passing down the flags), then turning
* on/off drawing red lines to display their borders, and how they
* layout the space inside themselves.
*
* This method can be used when debugging, or inside a graphical
* editor.
*/
- (void) setDisplayAutoLayoutContainers: (BOOL)flag;
@end
@interface NSWindow (DisplayAutoLayoutContainers)
/* NSWindow implements this method to call the same method with the
* same argument on the content view. In practice, calling
* this method with YES/NO will turn display of autolayout
* containers on/off in all the window.
*/
- (void) setDisplayAutoLayoutContainers: (BOOL)flag;
@end
#endif
|