/      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . Nonexalign yalign xscale yscalexalign yalign xscale yscale!A type for parameters for editorsThe direction of a split&JConvenience method to get a parameter, or if not set the default parameter*  !"#$%&'(/)  !"#$%&'()  !"#$%&'(  !"#$%&'(/ Safe-Inferred68)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-CReimplement this in instances to make triggering of events possible.WReturns the event, so that you may get values back from an event Args: Notifier, Event0Suse Left to register and Right to unregister Args: Notifier, EventSelector, Unique13This shows the implementation of the event mechnism25Every event needs to know its selector and its source4EEvery event needs a selector, which should identify the type of event )*+,-./012345 )*+,-./012345 423)*+,-./015)*+,-./012345 Safe-InferredM6789:06789:789:66789:0None36:HM<,Signal handlers for the different pane types>The event source in the gtk editor context If the second argument is Left Handler the handler gets registered If the second argument is Right Unique the handler will be removed The returned unique value must be used for unregistering an event1{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: The Notifier List is a list of event sources, to which registrations are propageted. The last map is used to unregister propagated events properly@0A type for a function to register a gtk event |C#validation of a contents has failedDBgeneric, no gui event, the contents of the widget may have changedE,button specific, the button has been pressedFUgeneric, a keyboard key has been pressed and released, while the widget has the focusGRgeneric, a mouse key has been pressed and released, while the widget has the focusH"generic, the widget gets the focusI$generic, the widget looses the focusJA type for an event in the GUIN}True means that the event has been completely handled, gtk shoudn't do any further action about it (Often not a good ideaOVA type to describe an editor. alpha is the type of the individual field of the recordP@A type for the application of a value to be reflected in the GUIQ,A type for extracting a value from an editorR+A type for injecting a value into an editorS(A type for setting the field of a recordT&A type for getting a field of a recordXBPropagate the event with the selector from notifier to eventSourceYYActivate the event after the event has been declared and the widget has been constructed2>A convinence method for not repeating this over and over again(;<=>?1@ABCDEFGHIJKLMNOPQRST34UVWXY25Z678 ;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ TSRQPOWJKLMNBIHGFEDC@>?A<=;YXUVZ;<=>?1@ABIHGFEDCJKLMNOPQRST34UVWXY25Z678None[vA type to describe a field of a record, which can be edited | alpha is the type of the individual field of the record`)A constructor type for a field desciption9Construct a new notebookd)Function to construct a field descriptioneFunction to construct an editorf1Convenience method to validate and extract fieldsh1get through outerAlignment, frame, innerAlignment[\]^_`a9b:cdefgh[\]^_`abcdefghb[_^]\dfgeach` [_^]\`a9b:cdefghNone24Mi!Things that can be pretty-printedj$Pretty-print something in isolation.k/Pretty-print something in a precedence context.(pretty-print with the default style and  defaultMode.$ijklmnopqrstuvwxyz{|};<~=> ijklmnopqrstuvwxyz{|}~ srmnopqltuv{zx}~yw|ijkijklmnopqrstuvwxyz{|};<~=>None?@PP? @None68:M(All kinds of panes are instances of pane gets the top Widget of this paneKDescription of a window layout Horizontal: top bottom Vertical: left right0The relative direction to a pane from the parentAn element of a path to a paneA path to a paneDABCDEFG@;<=@<=; ABCDEFG NoneM&An invisible editor without any effect8Editor for a boolean value in the form of a check button;Editor for a boolean value in the form of two radio buttons7Editor for an enum value in the form of n radio buttonsHAn Editor for nothing (which may report a click) in the form of a buttonAn Editor to display an image-Editor for a Text in the form of a text entry/Editor for a String in the form of a text entryCEditor for a multiline string in the form of a multiline text entry1Editor for an integer in the form of a spin entry]Editor for for any value which is an instance of Read and Show in the form of a | text entryHUEditor for no value, it only emtis a clicked event and has the form of a check buttoneEditor for the selection of some element from a static list of elements in the | form of a combo boxBLike comboSelectionEditor but allows entry of text not in the list^Editor for the selection of some elements from a list of elements in the | form of a list boxzEditor for the selection of some elements from a static list of elements in the | form of a list box with toggle elementseEditor for the selection of some elements from a static list of elements in the | form of a list boxsEditor for the selection of a file path in the form of a text entry and a button, | which opens a gtk file chooserEditor for a font selectionEditor for color selectioneAn editor, which opens another editor You have to inject a value before the button can be clicked.HIJKHIJK None +2468M&LReturns 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 M=The active view can be split in two (horizontal or vertical) &Two notebooks can be collapsed to one }Moves the activePane in the given direction, if possible | If their are many possibilities choose the leftmost and topmost NFind the target for a move O'Moves the given Pane to the given path PJMoves the given Pane to the given path, care for groups (layout, paneMap)  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, QGGet another pane path which points to the other side at the same level R/Get the opposite direction of a pane direction S&Get the layout at the given pane path 0Get the notebook widget for the given pane path ,Get the (gtk) Paned widget for a given path  Get the path to the active pane Get the active notebook T/Translates a pane direction to the widget name U$Changes a pane path in the pane map VChanges the layout for a split WChanges the layout for a nest X Changes the layout for a detach Y"Changes the layout for a reattach Z"Changes the layout for a collapse [Changes the layout for a move \ 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 mabcLdMefghNOPi j    klmQRSnopqTrUsVWXYZ[\]^_`tuvwxyz{|}~5     5     mabcLdMefghNOPi j    klmQRSnopqTrUsVWXYZ[\]^_`tuvwxyz{|}~  Safe-InferredAA class for providing default values for certain types of editors   None"'An editor which composes two subeditors$-Like a pair editor, but with a moveable split%|An editor with a subeditor which gets active, when a checkbox is selected or deselected (if the positive Argument is False)&|An editor with a subeditor which gets active, when a checkbox is selected or grayed out (if the positive Argument is False)'|An editor with a subeditor which gets active, when a checkbox is selected or deselected (if the positive Argument is False)(DAn editor with a subeditor, of which a list of items can be selected! !"#$%&'(The mbSort arg, a sort function if desiredThe  mbReplaceY arg, a function which is a criteria for removing an old entry when adding a new value)*+,-. !"#$%&'()*+,-.%&"#$'( !)*.-+, !"#$%&'()*+,-.  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWXYZ[\]^_`abcdefghijklmnopqrstuvwxyzm{|}~m{|                                  ! " # $  % & & ' ( ) * + , - . / 0 1 2 3456789B:;<=>?@ABCDEFGHIJ 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 o p q r s t u v w x y z { | } ~                                   ltk-0.15.0.3Graphics.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 EventSelectorregisterEvents nonEmptyLinesallOf forceJust forceHeadsplit Connections ConnectionConnectCNotifierNoti GtkRegFunc GtkHandlerGUIEventSelectorValidationErrorMayHaveChangedClicked KeyPressed ButtonPressedFocusInFocusOutGUIEventselector eventText gtkReturnEditor Applicator ExtractorInjectorSetterGetter allGUIEventsgenericGUIEvents emptyNotifierpropagateEvent activateEventpropagateAsChangedFieldDescriptionNFDHFDVFDFDMkFieldDescription 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 textEditor stringEditormultilineStringEditor intEditor genericEditorcomboSelectionEditorcomboEntryEditormultiselectionEditorstaticListMultiEditorstaticListEditor fileEditor fontEditor colorEditor otherEditorokCancelFields initGtkRcremovePaneAdmin addPaneAdmin getPanePrimgetPanesnotebookInsertOrdered markLabelfigureOutPaneName paneFromNamembPaneFromNameguiPropertiesFromNameposTypeToPaneDirectionpaneDirectionToPosTypeviewSwitchTabs viewTabsPosviewSplitHorizontalviewSplitVertical viewSplit' viewCollapse viewCollapse' viewNewGroupnewGroupOrBringToFrontbringGroupToFrontviewNest viewNest' closeGroup viewDetach viewDetach'getActiveWindowgetActiveScreenhandleNotebookSwitchviewMovebringPaneToFrontgetBestPanePathgetBestPathForId newNotebook' newNotebook allGroupNames getNotebookgetPanedgetActivePanePathgetActivePanePathOrStandardgetActiveNotebook widgetGet getUIAction getPanesSt getPaneMapSt getActivePane setActivePane getUiManager getWindows getMainWindow getLayout getDefault ColumnDescr pairEditor tupel3Editor splitEditor maybeEditor disableEditoreitherOrEditormultisetEditor filesEditor textsEditordependencyEditordependenciesEditorversionRangeEditor versionEditordefaultParameterssplit' GUIEventReggetStandardRegFunction fromString ifThenElse/$fEventSourceNotifierGUIEventIOGUIEventSelector$fEventSelectorGUIEventSelector$fEventGUIEventGUIEventSelectorbuildBoxEditor prefsStylelexerinteger $fPrettyTextMkFieldDescriptionPPppToS$fShowNotebook$fShowConnection$fShowUIManager $fShowWindow $fShowIDEPane $fOrdIDEPane $fEqIDEPane buttonEditor$fButtonClassWidget$fBinClassWidget$fContainerClassWidget mkLabelBox viewSplitfindMoveTargetmovemove' otherSideotherDirectionlayoutFromPathpaneDirectionToWidgetName adjustPanesadjustLayoutForSplitadjustLayoutForNestadjustLayoutForDetachadjustLayoutForReattachadjustLayoutForCollapseadjustLayoutForGroupMoveadjustLayoutForGroupRemoveremoveGLaddGL adjustLayoutwidgetFromPathtrace groupPrefixwithoutGroupPrefix groupLabel getGroupsFromgroupNameDialoghandleReattachgroupMenuLabelfindAppropriatesetCurrentNotebookPagesterminalsWithPanePath findGroupPathfindDetachedPathlayoutsFromPathgetWidgetNameListgetNotebookOrPaned getNotebook'panePathElementToWidgetNameadjustNotebookschooseWidgetFromPath widgetGetRelgetThissetThis getWindowsSt setWindowsStgetUiManagerSt setPanesSt setPaneMapStgetActivePaneStsetActivePaneSt getLayoutSt setLayoutStgetPanePathFromNBsetPanePathFromNBcastToNotebook' $fDefaultBool$fDefaultMaybe $fDefaultText $fDefault[] $fDefault(,,) $fDefault(,)$fDefaultEither $fDefaultIntVersion2IntersectVersionRangesSUnionVersionRangesSVersion1ThisOrEarlierVersionSEarlierVersionSThisOrLaterVersionS LaterVersionSWildcardVersionS ThisVersionS$fDefaultPackageName$fDefaultDependency$fDefaultVersionRange$fDefaultVersion$fDefaultVersion2$fDefaultVersion1$fShowVersion2$fShowVersion1