{-# LINE 2 "./Graphics/UI/Gtk/Layout/Fixed.chs" #-}-- -*-haskell-*--- GIMP Toolkit (GTK) Widget Fixed---- Author : Duncan Coutts---- Created: 2 August 2004---- Copyright (C) 2004-2005 Duncan Coutts---- This library is free software; you can redistribute it and/or-- modify it under the terms of the GNU Lesser General Public-- License as published by the Free Software Foundation; either-- version 2.1 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-- Lesser General Public License for more details.---- |-- Maintainer : gtk2hs-users@lists.sourceforge.net-- Stability : provisional-- Portability : portable (depends on GHC)---- A container which allows you to position widgets at fixed coordinates--moduleGraphics.UI.Gtk.Layout.Fixed(-- * Detail---- | The 'Fixed' widget is a container which can place child widgets at fixed-- positions and with fixed sizes, given in pixels. 'Fixed' performs no-- automatic layout management.---- For most applications, you should not use this container! It keeps you-- from having to learn about the other Gtk+ containers, but it results in-- broken applications. With 'Fixed', the following things will result in-- truncated text, overlapping widgets, and other display bugs:---- * Themes, which may change widget sizes.---- * Fonts other than the one you used to write the app will of course-- change the size of widgets containing text; keep in mind that users may use-- a larger font because of difficulty reading the default, or they may be-- using Windows or the framebuffer port of Gtk+, where different fonts are-- available.---- * Translation of text into other languages changes its size. Also,-- display of non-English text will use a different font in many cases.---- In addition, the fixed widget can't properly be mirrored in right-to-left-- languages such as Hebrew and Arabic. i.e. normally Gtk+ will flip the-- interface to put labels to the right of the thing they label, but it can't-- do that with 'Fixed'. So your application will not be usable in-- right-to-left languages.---- Finally, fixed positioning makes it kind of annoying to add\/remove GUI-- elements, since you have to reposition all the other elements. This is a-- long-term maintenance problem for your application.---- If you know none of these things are an issue for your application, and-- prefer the simplicity of 'Fixed', by all means use the widget. But you-- should be aware of the tradeoffs.-- * Class Hierarchy-- |-- @-- | 'GObject'-- | +----'Object'-- | +----'Widget'-- | +----'Container'-- | +----Fixed-- @-- * TypesFixed,FixedClass,castToFixed,gTypeFixed,toFixed,-- * ConstructorsfixedNew,-- * MethodsfixedPut,fixedMove,fixedSetHasWindow,fixedGetHasWindow,-- * AttributesfixedHasWindow,-- * Child AttributesfixedChildX,fixedChildY,)whereimportControl.Monad(liftM)importSystem.Glib.FFIimportSystem.Glib.AttributesimportGraphics.UI.Gtk.Abstract.Object(makeNewObject)importGraphics.UI.Gtk.Types{-# LINE 104 "./Graphics/UI/Gtk/Layout/Fixed.chs" #-}importGraphics.UI.Gtk.Abstract.ContainerChildProperties{-# LINE 107 "./Graphics/UI/Gtk/Layout/Fixed.chs" #-}---------------------- Constructors-- | Creates a new 'Fixed'.--fixedNew::IOFixedfixedNew=makeNewObjectmkFixed$liftM(castPtr::PtrWidget->PtrFixed)$gtk_fixed_new{-# LINE 118 "./Graphics/UI/Gtk/Layout/Fixed.chs" #-}---------------------- Methods-- | Adds a widget to a 'Fixed' container at the given position.--fixedPut::(FixedClassself,WidgetClasswidget)=>self->widget-- ^ @widget@ - the widget to add.->(Int,Int)-- ^ @(x,y)@ - the horizontal and vertical position to place-- the widget at.->IO()fixedPutselfwidget(x,y)=(\(Fixedarg1)(Widgetarg2)arg3arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_fixed_putargPtr1argPtr2arg3arg4){-# LINE 131 "./Graphics/UI/Gtk/Layout/Fixed.chs" #-}(toFixedself)(toWidgetwidget)(fromIntegralx)(fromIntegraly)-- | Moves a child of a 'Fixed' container to the given position.--fixedMove::(FixedClassself,WidgetClasswidget)=>self->widget-- ^ @widget@ - the child widget.->(Int,Int)-- ^ @(x,y)@ - the horizontal and vertical position to move the-- widget to.->IO()fixedMoveselfwidget(x,y)=(\(Fixedarg1)(Widgetarg2)arg3arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_fixed_moveargPtr1argPtr2arg3arg4){-# LINE 145 "./Graphics/UI/Gtk/Layout/Fixed.chs" #-}(toFixedself)(toWidgetwidget)(fromIntegralx)(fromIntegraly)-- | Sets whether the 'Fixed' widget is created with a separate 'DrawWindow' for-- its window or not. (By default, it will be created with no separate-- 'DrawWindow'). This function must be called while the 'Fixed' is not-- realized, for instance, immediately after the window is created.---- This function was added to provide an easy migration path for older-- applications which may expect 'Fixed' to have a separate window.--fixedSetHasWindow::FixedClassself=>self->Bool->IO()fixedSetHasWindowselfhasWindow=(\(Fixedarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_fixed_set_has_windowargPtr1arg2){-# LINE 161 "./Graphics/UI/Gtk/Layout/Fixed.chs" #-}(toFixedself)(fromBoolhasWindow)-- | Gets whether the 'Fixed' has its own 'DrawWindow'. See-- 'fixedSetHasWindow'.--fixedGetHasWindow::FixedClassself=>self->IOBoolfixedGetHasWindowself=liftMtoBool$(\(Fixedarg1)->withForeignPtrarg1$\argPtr1->gtk_fixed_get_has_windowargPtr1){-# LINE 171 "./Graphics/UI/Gtk/Layout/Fixed.chs" #-}(toFixedself)---------------------- Attributes-- | \'hasWindow\' property. See 'fixedGetHasWindow' and 'fixedSetHasWindow'--fixedHasWindow::FixedClassself=>AttrselfBoolfixedHasWindow=newAttrfixedGetHasWindowfixedSetHasWindow---------------------- Child Attributes-- | X position of child widget.---- Default value: 0--fixedChildX::(FixedClassself,WidgetClasschild)=>child->AttrselfIntfixedChildX=newAttrFromContainerChildIntProperty"x"-- | Y position of child widget.---- Default value: 0--fixedChildY::(FixedClassself,WidgetClasschild)=>child->AttrselfIntfixedChildY=newAttrFromContainerChildIntProperty"y"foreignimportccallunsafe"gtk_fixed_new"gtk_fixed_new::(IO(PtrWidget))foreignimportccallsafe"gtk_fixed_put"gtk_fixed_put::((PtrFixed)->((PtrWidget)->(CInt->(CInt->(IO())))))foreignimportccallsafe"gtk_fixed_move"gtk_fixed_move::((PtrFixed)->((PtrWidget)->(CInt->(CInt->(IO())))))foreignimportccallsafe"gtk_fixed_set_has_window"gtk_fixed_set_has_window::((PtrFixed)->(CInt->(IO())))foreignimportccallunsafe"gtk_fixed_get_has_window"gtk_fixed_get_has_window::((PtrFixed)->(IOCInt))