F/      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . *xalign yalign xscale yscale xalign yalign xscale yscale "A type for parameters for editors The direction of a split  !"#$%&KConvenience method to get a parameter, or if not set the default parameter '(/)  !"#$%&'()  !"#$%&'()   !"#$%&'( )/Everything which is an event source needs this  alpha is the Notifier  beta is the event  gamma is the monad  delta is the event selector *+,-DReimplement this in instances to make triggering of events possible .AReturns the event, so that you may get values back from an event  Args: Notifier, Event /0-use Left to register and Right to unregister ' Args: Notifier, EventSelector, Unique 14This shows the implementation of the event mechnism 26Every event needs to know its selector and its source 34FEvery event needs a selector, which should identify the type of event 5 )*+,-./012345 423)*+,-./015 )*+,-./0*+,-./01233456#remove leading and trailing spaces 789:;0<6789:;<89:;<766789:;<#=>-Signal handlers for the different pane types ?@+The event source in the gtk editor context D If the second argument is Left Handler the handler gets registered D If the second argument is Right Unique the handler will be removed C The returned unique value must be used for unregistering an event A1(The widgets are the real event sources. < The GtkRegFunc is the function used to register the event. : The connectIds are set, when the event is activated, and & can be used to deactivate the event. " Or it is a propagated event and: F The Notifier List is a list of event sources, to which registrations  are propageted. ? The last map is used to unregister propagated events properly B.A type for a function to register a gtk event  | CDE$validation of a contents has failed FCgeneric, no gui event, the contents of the widget may have changed G-button specific, the button has been pressed HVgeneric, a keyboard key has been pressed and released, while the widget has the focus ISgeneric, a mouse key has been pressed and released, while the widget has the focus J#generic, the widget gets the focus K%generic, the widget looses the focus LA type for an event in the GUI MNOPQ7True means that the event has been completely handled,  gtk shoudn',t do any further action about it (Often not  a good idea RA type to describe an editor. 9 alpha is the type of the individual field of the record SAA type for the application of a value to be reflected in the GUI T-A type for extracting a value from an editor U,A type for injecting a value into an editor V)A type for setting the field of a record W'A type for getting a field of a record XZ[CPropagate the event with the selector from notifier to eventSource \=Activate the event after the event has been declared and the  widget has been constructed ]?A convinence method for not repeating this over and over again 2^"=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^"WVUTSR]ZLMNOPQDKJIHGFEB@AC>?=\[XY^!=>??@AABCDKJIHGFEEFGHIJKLMNOPQMNOPQRSTUVWXZ[\]^_<A type to describe a field of a record, which can be edited ; | alpha is the type of the individual field of the record `abcd*A constructor type for a field desciption e3Construct a new notebook f4gh*Function to construct a field description i Function to construct an editor j2Convenience method to validate and extract fields kl2get through outerAlignment, frame, innerAlignment _`abcdefghijklf_cba`hjkiegld_cba``abcdefghijkl"m"Things that can be pretty-printed n%Pretty-print something in isolation. o0Pretty-print something in a precedence context. pqrstuvwxyz{|}~56(pretty-print with the default style and  defaultMode. mnopqrstuvwxyz{|}~ wvqrstupxyz~|}{mno mnonopqrsturstuvwxyz{|}~78SS =)All kinds of panes are instances of pane !gets the top Widget of this pane Description of a window layout - Horizontal: top bottom Vertical: left right 1The relative direction to a pane from the parent An element of a path to a pane A path to a pane @=>?@>?==  'An invisible editor without any effect 9Editor for a boolean value in the form of a check button <Editor for a boolean value in the form of two radio buttons 8Editor for an enum value in the form of n radio buttons IAn Editor for nothing (which may report a click) in the form of a button An Editor to display an image 0Editor for a string in the form of a text entry DEditor for a multiline string in the form of a multiline text entry 2Editor for an integer in the form of a spin entry PEditor for for any value which is an instance of Read and Show in the form of a  | text entry 9VEditor for no value, it only emtis a clicked event and has the form of a check button OEditor for the selection of some element from a static list of elements in the  | form of a combo box IEditor for the selection of some elements from a list of elements in the  | form of a list box PEditor for the selection of some elements from a static list of elements in the + | form of a list box with toggle elements PEditor for the selection of some elements from a static list of elements in the  | form of a list box REditor for the selection of a file path in the form of a text entry and a button, " | which opens a gtk file chooser Editor for a font selection Editor for color selection &An editor, which opens another editor @ You have to inject a value before the button can be clicked.  S:;Returns a label box <"Add the change mark or removes it >Constructs a unique pane name, which is an index and a string (Toggle the tabs of the current notebook .Sets the tab position in the current notebook 8Split the currently active pane in horizontal direction 6Split the currently active pane in vertical direction ==The active view can be split in two (horizontal or vertical) &Two notebooks can be collapsed to one >?@A9Moves the activePane in the given direction, if possible C | If their are many possibilities choose the leftmost and topmost BFind the target for a move C'Moves the given Pane to the given path DJMoves the given Pane to the given path, care for groups (layout, paneMap) E 5Bring the pane to the front position in its notebook  +Get a valid panePath from a standard path.  Get a standard path.  Construct a new notebook  Construct a new notebook, FGHIGGet another pane path which points to the other side at the same level J/Get the opposite direction of a pane direction K&Get the layout at the given pane path LMN0Get the notebook widget for the given pane path O,Get the (gtk) Paned widget for a given path  Get the path to the active pane Get the active notebook P/Translates a pane direction to the widget name QR$Changes a pane path in the pane map STChanges the layout for a split UChanges the layout for a nest V Changes the layout for a detach W"Changes the layout for a reattach X"Changes the layout for a collapse YChanges the layout for a move Z Changes the layout for a remove [&Remove group layout at a certain path \#Add group layout at a certain path ]GChanges the layout by replacing element at pane path (pp) with replace ^&Get the widget from a list of strings _`abc3     3     )      BA class for providing default values for certain types of editors  defghijkl !"(An editor which composes two subeditors #$.Like a pair editor, but with a moveable split %JAn editor with a subeditor which gets active, when a checkbox is selected 3 or deselected (if the positive Argument is False) &JAn editor with a subeditor which gets active, when a checkbox is selected 3 or grayed out (if the positive Argument is False) 'JAn editor with a subeditor which gets active, when a checkbox is selected 3 or deselected (if the positive Argument is False) (EAn editor with a subeditor, of which a list of items can be selected The mbSort! arg, a sort function if desired The  mbReplace5 arg, a function which is a criteria for removing an % old entry when adding a new value )*+,-. !"#$%&'()*+,-.%&"#$'( !)*.-+, !!"#$%&'()*+,-.m  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~qq                                  ! " # $  % & & ' ( ) * + , - . / 0 1 2 3456B789:; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n op ltk-0.10.0Graphics.UI.Editor.Parameters Control.Event MyMissingGraphics.UI.Editor.BasicsGraphics.UI.Editor.MakeEditorText.PrinterParser Graphics.UI.Editor.DescriptionPPGraphics.UI.Frame.PanesGraphics.UI.Editor.SimpleGraphics.UI.Frame.ViewFrameDefaultGraphics.UI.Editor.Composite ParameterParaPack ParaMultiSel ParaStockIdParaHorizontal ParaMinSizeParaInnerPaddingParaInnerAlignmentParaOuterPaddingParaOuterAlignment ParaShowLabel ParaShadow ParaDirection ParaSynopsisParaName ParametersHorizontalAlignKeepStopHorizontalStartHorizontal DirectionVertical Horizontal emptyParamsparaName paraSynopsis paraShowLabel paraDirection paraShadowparaOuterAlignmentparaInnerAlignmentparaOuterPaddingparaInnerPadding paraMinSizeparaHorizontal paraStockId paraMultiSelparaPack getParametergetParameterPrim<<<- EventSource getHandlers setHandlersmyUniquecanTriggerEvent triggerEvent registerEventunregisterEventHandlersEvent getSelector EventSelectorregisterEventstrim nonEmptyLinesallOf forceJust forceHeadsplitreplace Connections ConnectionConnectCNotifierNoti GtkRegFunc GtkHandlerGUIEventSelectorValidationErrorMayHaveChangedClicked KeyPressed ButtonPressedFocusInFocusOutGUIEventselectorgtkEvent eventText gtkReturnEditor Applicator ExtractorInjectorSetterGetter allGUIEventsgenericGUIEvents emptyNotifierpropagateEvent activateEventgetStandardRegFunctionpropagateAsChangedFieldDescriptionNFDHFDVFDFDMkFieldDescription parameters buildEditorflattenFieldDescriptionmkFieldmkEditorextractAndValidateextract getRealWidgetPrettypretty prettyPrecMkFieldDescriptionSFieldDescriptionSFDS fieldPrinter fieldParserParserPrintermkFieldSapplyFieldParsers boolParser readParser pairParser stringParser lineParser intParser colorParser emptyParser whiteSpacesymbol identifiercolon prettyPrint emptyPrintermaybePP writeFields showFields readFields parseFieldsFieldDescriptionPPNFDPPHFDPPVFDPPFDPP fieldEditor applicator mkFieldPPextractFieldDescriptionflattenFieldDescriptionPPflattenFieldDescriptionPPToS FrameStatewindows uiManagerpanespaneMap activePanepanePathFromNBlayout StandardPathIDEPanePaneCPaneName PaneMonad setFrameState getFrameStaterunInIOpanePathForGroup getThisPanedisplayThisPanegetOrBuildThisPane buildThisPaneactivateThisPane closeThisPaneRecoverablePane saveState recoverStatebuilder makeActive closePanegetPane forceGetPanegetOrBuildPane displayPanegetAndDisplayPane buildPanePane getTopWidgetpaneId primPaneNamepaneName getAddedIndex PaneLayout TerminalP paneGroupspaneTabs currentPage detachedId detachedSize VerticalP HorizontalP PaneDirectionRightPLeftPBottomPTopPPanePathElementGroupPSplitPPanePathsignalDisconnectAllnoEditor boolEditor boolEditor2 enumEditor clickEditor imageEditor stringEditormultilineStringEditor intEditor genericEditorcomboSelectionEditormultiselectionEditorstaticListMultiEditorstaticListEditor fileEditor fontEditor colorEditor otherEditorokCancelFields initGtkRcremovePaneAdmin addPaneAdmin getPanePrimgetPanesnotebookInsertOrdered markLabelfigureOutPaneName paneFromNamembPaneFromNameguiPropertiesFromNameposTypeToPaneDirectionpaneDirectionToPosTypeviewSwitchTabs viewTabsPosviewSplitHorizontalviewSplitVertical viewSplit' viewCollapse viewCollapse' viewNewGroupnewGroupOrBringToFrontbringGroupToFrontviewNest viewNest' closeGroup viewDetach viewDetach'handleNotebookSwitchviewMovebringPaneToFrontgetBestPanePathgetBestPathForId newNotebook' newNotebook allGroupNames getNotebookgetPanedgetActivePanePathgetActivePanePathOrStandardgetActiveNotebook widgetGet getUIAction getPanesSt getPaneMapSt getActivePane setActivePane getUiManager getWindows getMainWindow getLayout getDefault ColumnDescr pairEditor tupel3Editor splitEditor maybeEditor disableEditoreitherOrEditormultisetEditor filesEditor stringsEditordependencyEditordependenciesEditorversionRangeEditor versionEditordefaultParameterssplit' GUIEventRegbuildBoxEditor prefsStylelexerMkFieldDescriptionPPppToS buttonEditorwithoutGroupPrefix mkLabelBox groupLabel viewSplit getGroupsFromgroupNameDialoghandleReattachgroupMenuLabelfindMoveTargetmovemove'findAppropriateterminalsWithPanePath findGroupPathfindDetachedPath otherSideotherDirectionlayoutFromPathlayoutsFromPathgetWidgetNameListgetNotebookOrPaned getNotebook'paneDirectionToWidgetNamepanePathElementToWidgetName adjustPanesadjustNotebooksadjustLayoutForSplitadjustLayoutForNestadjustLayoutForDetachadjustLayoutForReattachadjustLayoutForCollapseadjustLayoutForGroupMoveadjustLayoutForGroupRemoveremoveGLaddGL adjustLayoutwidgetFromPathchooseWidgetFromPath widgetGetRelgetThissetThiscastToNotebook'Version2IntersectVersionRangesSUnionVersionRangesSVersion1ThisOrEarlierVersionSEarlierVersionSThisOrLaterVersionS LaterVersionS ThisVersionS