GPAL - Generally Positive Automation Library v1.0
GPAL The Fluent Automation LIbrary
Loading...
Searching...
No Matches
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
 CGenerallyPositive.Enums.AIModelModel ID to request from the AI provider via GPAL.AI.WithModel. Acts like an enum of well-known model IDs per provider, but also accepts any freehand string (e.g. a brand new model release that predates this enum) via an implicit conversion from string
 CGenerallyPositive.AIProvider
 CGenerallyPositive.AIProviderDefinitionPer-provider connection definition: base URL, endpoint, default model, auth style, and any extra headers. Stored in AIProvidersConfig.yaml; built-in defaults cover XAI, OpenAI, Anthropic
 CGenerallyPositive.AIProvidersConfigLoads and saves the AI provider definitions used by GPAL.AI.WithProvider. Stored as ./AIProvidersConfig.yaml. Built-in defaults for XAI, OpenAI, and Anthropic are always available even without a config file; the file extends or overrides them. Auto-loaded silently on startup if the file exists
 CGenerallyPositive.Enums.AIProviderTypeAI provider/API to send prompts to via GPAL.AI.WithProvider. Named constants cover XAI, OpenAI, and Anthropic; any other string converts implicitly, looked up against AIProvidersConfig
 CGenerallyPositive.ApplicationHelper
 CAttribute
 CGenerallyPositive.Browser.CdpResultExtractors.CommandAttribute
 CGenerallyPositive.CommandAttribute
 CGenerallyPositive.GPALAttribute
 CGenerallyPositive.ActionAttribute
 CGenerallyPositive.BrowserAttribute
 CGenerallyPositive.BrowserTypeAttribute
 CGenerallyPositive.CallbackAttribute
 CGenerallyPositive.ComponentAttribute
 CGenerallyPositive.ConstantAttribute
 CGenerallyPositive.DataAttribute
 CGenerallyPositive.DirectoryAttribute
 CGenerallyPositive.ElementAssitantAttribute
 CGenerallyPositive.EnumAttribute
 CGenerallyPositive.FileAttribute
 CGenerallyPositive.FluentAttribute
 CGenerallyPositive.FormsAttribute
 CGenerallyPositive.GPALFileAttribute
 CGenerallyPositive.GPALSettingsAttribute
 CGenerallyPositive.HelperAttribute
 CGenerallyPositive.InProgressAttribute
 CGenerallyPositive.IntAttribute
 CGenerallyPositive.InterfaceAttribute
 CGenerallyPositive.KeysAttribute
 CGenerallyPositive.MatchHRef
 CGenerallyPositive.MatchPlaceholder
 CGenerallyPositive.MatchSrc
 CGenerallyPositive.MatchText
 CGenerallyPositive.MatchValue
 CGenerallyPositive.ModifierAttribute
 CGenerallyPositive.ScrollAttribute
 CGenerallyPositive.SelectorAttribute
 CGenerallyPositive.SettingsAttribute
 CGenerallyPositive.SingleUseAttribute
 CGenerallyPositive.URLAttribute
 CGenerallyPositive.WaitAttribute
 CGenerallyPositive.WithCSS
 CGenerallyPositive.WithDeltaX
 CGenerallyPositive.WithDeltaY
 CGenerallyPositive.WithImage
 CGenerallyPositive.WithOffsetX
 CGenerallyPositive.WithOffsetY
 CGenerallyPositive.WithSelectorName
 CGenerallyPositive.WithText
 CGenerallyPositive.WithValue
 CGenerallyPositive.WithXPath
 CGenerallyPositive.WorkflowAttribute
 CGenerallyPositive.AuthCodePayloadAuthorization code (and granted scope) returned by GPALRESTAPI's get-access-token endpoint after a user completes an OAuth redirect
 CGenerallyPositive.AWSTokenResponseJSON response from the AWS Cognito OAuth token endpoint
 CGenerallyPositive.AzureTokenResponseJSON response from the Azure AD (Microsoft Entra ID) OAuth token endpoint
 CGenerallyPositive.Base64HelperHelper class for base64 encoding/decoding and saving decoded content with sensible file extensions based on content type. Designed for backend use - no UI, no complex fluent API
 CGenerallyPositive.BitwardenTokenResponseJSON response from Bitwarden's OAuth token endpoint
 CGenerallyPositive.Browser.BoxModelResponse
 CGenerallyPositive.Browser.BrowserHelper
 CGenerallyPositive.Browser.BrowserSettings
 CGenerallyPositive.ExcelHelper.CellDifference
 CChainedEventEmitter
 CExplicitNullYamlEventEmitter
 CHumanReadableAliasEventEmitter
 CGenerallyPositive.ClassificationConfig
 CGenerallyPositive.ClientRectangleRepresents a client-side bounding rectangle (similar to DOMRect) with additional convenience properties
 CGenerallyPositive.SelectorSet.ClientRectangle
 CGenerallyPositive.Enums.ContentTypeContentType is a struct that acts like a string but also an enum for some intellisense help. Users may use the enum like values: Json, Form, Text, Xml, Html, Binary, or enter any arbitrary content type, which is the point - a site's own API can ask for anything
 CGenerallyPositive.ConverterHelper
 CGenerallyPositive.ConverterSettings
 CGenerallyPositive.CredentialsConfigEndpoint URLs, redirect URIs, and protocol field names used by the credential service handlers.
Holds protocol/endpoint configuration only - never secrets. Loaded from and saved to ./credentialsConfig.json via Load()/Save()
 CGenerallyPositive.CsvValue
 CCustomCreationConverter
 CGenerallyPositive.CustomJsonConverter
 CGenerallyPositive.DashlaneItemA single vault item returned by the Dashlane CLI (dcli password list --json)
 CGenerallyPositive.GPALDatabase.DatabaseErrorWhat went wrong on the last call, and enough about it to act on.
A failure hands the callback the database and nothing else, so everything it would need to ask about lives here: the server's own number for it, the sql that ran, the parameters it ran against, and which row of them was being written when it stopped
 CGenerallyPositive.DigestRulesConfigLoads and saves the named DigestRuleSets used by HtmlToOptimizedMarkdown, stored as ./LLMDigestRules.yaml so site-specific tuning can be edited without recompiling
 CGenerallyPositive.DigestRuleSetOne named set of LLM-digest cleanup rules: which nodes are junk, where the main content usually lives, what base URL to use for relative sitemap links, and which post-conversion markdown cleanup passes to run. Sites drift over time, so these live in LLMDigestRules.yaml rather than being hardcoded
 CGenerallyPositive.Application.ElementSettings
 CGenerallyPositive.Browser.ElementSettings
 CSystem.EventArgs
 CGenerallyPositive.GPAL.GPALEventArgsUsed to pass objects of interest when publishing an Information or Exception Channel message
NOTE: Properties are contextual to where the Information/Exception is published.
Only objects relevant to that context will be passed as an event argument, the rest will be null.
In this way, the programmer can examine aspects when the message is published and utilize those for logging or debugging or fault-tolerance handling.
Every event will have a GPALObject as applicable to the context publishing the message.
 CGenerallyPositive.GPALForm.FileSelectorEventArgsEvent arguments passed to a GPALFileSelector callback when the file/folder selection dialog is closed, whether by the user picking a path or cancelling
 CException
 CGenerallyPositive.GPALExceptionThrown where GPAL deliberately ends the workflow, such as a CallIf handler returning CallIfStatus.Terminate or a driver that could not be started.
The reason has always been published before this is thrown, so the uncaught handler reports the termination without repeating the message or printing a stack trace
 CGenerallyPositive.FileHelperFile-side plumbing behind the fluent chain: writing a unit of work's data out in a delimited format, resolving where each browser actually downloads to, tokenizing input files, and the path handling the rest of the library leans on.
Most of this is internal. The members exposed here are the ones a workflow has a legitimate reason to call directly, mainly to find out where a download will land before going to fetch it
 CGenerallyPositive.GoogleCloudHandles Google Cloud operations such as project creation, API enabling, and API key generation
 CGenerallyPositive.GoogleDorkingConfig
 CGenerallyPositive.GoogleDriveConfig
 CGenerallyPositive.GoogleServiceAccountKeyDeserialized contents of a Google Cloud service account JSON key file, used by GoogleHandler.FetchServiceAccountToken to sign a JWT
 CGenerallyPositive.GoogleSheetsConfig
 CGenerallyPositive.GoogleTokenResponseJSON response from Google's OAuth token endpoint
 CGenerallyPositive.GPALEverything starts here, all the GPAL controls and global settings using fluent syntax are here. GPAL cannot inherit any of the GPAL interfaces since it is a static class, but it does implement them, but will return some GPAL object or interface
 CGenerallyPositive.GPALCallOne request the page made, as reported by the browser while .CaptureCalls was on. Where a GPALRequest says what to ask for, this says what was asked for, so an endpoint can be read off a page rather than guessed at and then written into a request
 CGenerallyPositive.GPALForm.GPALControlsUnused placeholder class
 CGenerallyPositive.GPALForm.GPALSpliterMarks where one pane of a GPALSplitter ends and the other begins, added to the splitter with GPAL.SplitRight or GPAL.SplitBottom.
It is not a control and cannot be added to a form, which is the point: a split belongs to the splitter that owns it rather than to wherever it happened to appear in a chain
 CGenerallyPositive.GPALForm.GPALTreeNodeA handle to a tree node returned by GPALTreeView.AddNode(string). Use it to add children and control expansion
 CGenerallyPositive.Enums.HttpVerbHttpMethod is a struct that acts like a string but also an enum for some intellisense help. Users may use the enum like values: Get, Post, Put, Patch, Delete, Head, Options, or enter any arbitrary method
 CGenerallyPositive.IAllowAICredentials
 CGenerallyPositive.IAllowAITask
 CGenerallyPositive.IGPALAI
 CGenerallyPositive.GPALAI
 CGenerallyPositive.IGPALAI
 CGenerallyPositive.IAllowAIModel
 CGenerallyPositive.IAllowAITask
 CGenerallyPositive.IAllowAIOutput
 CGenerallyPositive.IAllowAIConfig
 CGenerallyPositive.IGPALAI
 CGenerallyPositive.IGPALAI
 CGenerallyPositive.IAllowAITaskConfig
 CGenerallyPositive.IAllowAIConfig
 CGenerallyPositive.IAllowAnd
 CGenerallyPositive.IAllowThen
 CGenerallyPositive.Application.IAllowApplicationOpen
 CGenerallyPositive.Application.IAllowApplicationOpenOrParameters
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Application.ApplicationApplication object that contains the fluent methods to create your Application workflow.
Instantiated using GPAL.Application
 CGenerallyPositive.Application.IAllowApplicationSettingsOrOpen
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Application.IAllowApplicationSettings
 CGenerallyPositive.Application.IAllowAllApplicationAndAllSelector
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Application.IAllowApplicationOpenOrParameters
 CGenerallyPositive.Application.IAllowApplicationSettingsOrOpen
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.IAllowBase64Save
 CGenerallyPositive.IAllowBase64SaveOrInput
 CGenerallyPositive.Browser.IAllowBrowserType
 CGenerallyPositive.Browser.IAllowBrowserTypeOrGoto
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.BrowserBrowser object that contains the fluent methods to create your Browser workflow.
Instatiated using GPAL.Browser
 CGenerallyPositive.Application.IAllowCallBack
 CGenerallyPositive.Application.IAllowAfterAnySelector
 CGenerallyPositive.Application.IAllowAfterWaitForAndSizeControl
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Application.IAllowAllApplicationAndAllSelector
 CGenerallyPositive.Application.IAllowAllExceptParameters
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Application.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Application.IAllowAfterWaitForAndSizeControl
 CGenerallyPositive.Application.IAllowSelectorActionOrAnySelector
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Browser.IAllowCallBack
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAllBrowserAndAllSelector
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IAllowAfterImageSelector
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IAllowAfterWaitForAndSizeControl
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IAllowAfterWaitForAndSizeControl
 CGenerallyPositive.GPALForm.IAllowCallBack
 CGenerallyPositive.GPALForm.GPALFormForm object that contains the fluent methods to create interactive forms.
Instatiated using GPAL.Form
 CGenerallyPositive.GPALForm.IAllowFormSettingsAndActions
 CGenerallyPositive.GPALForm.GPALFormForm object that contains the fluent methods to create interactive forms.
Instatiated using GPAL.Form
 CGenerallyPositive.IAllowCallBack
 CGenerallyPositive.IAllowSelectorSettings
 CGenerallyPositive.SelectorGPAL Selector used to locate Application and Browser elements.
Instantiated with GPAL.Selector
 CGenerallyPositive.Browser.IAllowCasting
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IAllowAllBrowserAndAllSelector
 CGenerallyPositive.Browser.IAllowBrowserActionOrAnySelector
 CGenerallyPositive.Browser.IAllowCallTemplateWhat a workflow may say once .WithCallFilter has said which call it is after. Taking a template only means something when there is something to match, so this is the only place it is offered
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.GPALForm.IAllowChartSettings
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndChartSettings
 CGenerallyPositive.GPALForm.GPALChartA GPAL chart instantiated with GPAL.Chart for use on GPAL forms.
Callback EventHandler is invoked on the GPALChart.WindowsControl.Clicked event
 CGenerallyPositive.GPALForm.IAllowChecked
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndChecked
 CGenerallyPositive.GPALForm.IAllowControlSettingsEnabledAndChecked
 CGenerallyPositive.GPALForm.GPALCheckboxA GPAL checkbox instantiateds with GPAL,Checkbox for use on GPAL forms.
Callback EventHandler is invoked on the GPALCheckbox.WindowsControl.CheckChanged event.
Default is not checked
 CGenerallyPositive.GPALForm.GPALRadioButtonA GPAL radiobutton instantiated with GPAL.RadioButton for use GPAL forms.
Callback EventHandler is invoked on the GPALRadioButton.WindowsControl.CheckChanged event.
Default is not selected
 CGenerallyPositive.Application.IAllowClicks
 CGenerallyPositive.Application.IAllowSelectorAction
 CGenerallyPositive.Application.IAllowAfterAnySelector
 CGenerallyPositive.Application.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Application.IAllowAllActionAndAnySelector
 CGenerallyPositive.Application.IAllowWithHeaderOrFileActions
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Application.IAllowSelectorActionOrAnySelector
 CGenerallyPositive.Browser.IAllowClicks
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IAllowSelectorAction
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IAllowAfterImageSelector
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IAllowBrowserActionOrAnySelector
 CGenerallyPositive.Browser.IAllowBrowserSettingsOrSelectorAction
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.IAllowClientId
 CGenerallyPositive.IAllowCredentialsServiceKeyWithCredentials
 CGenerallyPositive.ICredentials
 CGenerallyPositive.Credentials
 CGenerallyPositive.IAllowClientSecret
 CGenerallyPositive.ICredentials
 CGenerallyPositive.Application.IAllowClose
 CGenerallyPositive.Application.IAllowApplicationAction
 CGenerallyPositive.Application.IAllowAllActionAndAnySelector
 CGenerallyPositive.Application.IAllowAllApplicationAndAllSelector
 CGenerallyPositive.Application.IAllowAllExceptParameters
 CGenerallyPositive.Browser.IAllowClose
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.Browser.IAllowWithHeaderOrFileActions
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.IAllowColumnPrecision
 CGenerallyPositive.IAllowPrecsionScaleAndSettings
 CGenerallyPositive.IGPALDatabase
 CGenerallyPositive.GPALDatabaseClass to define database usage. Currently only used for input from a table, sql or stored procedure.
Instantiated with GPAL.Database
 CGenerallyPositive.IAllowColumnScale
 CGenerallyPositive.IAllowPrecsionScaleAndSettings
 CGenerallyPositive.GPALForm.IAllowControlSettings
 CGenerallyPositive.GPALForm.GPALTabA GPAL tab instantiated with GPAL.Tab for use on GPAL forms.
Callback EventHandler is invoked on the GPALTab.WindowsControl.Clicked event
 CGenerallyPositive.GPALForm.IAllowBarItemSettings
 CGenerallyPositive.GPALForm.GPALBarItemA single item shared by GPAL menu bars and toolbars. Because it derives from GPALControl it speaks the same one-parameter fluent vocabulary as every other control (WithCallback, WithShortcutKey, WithName, WithToolTip), and adds an optional image. The callback added via GPALControl.WithCallback<TDelegate>(TDelegate) is wired to the item's Click event; the shortcut set via GPALControl.WithShortcutKey is shown on menu items (toolbars have no per-button shortcut)
 CGenerallyPositive.GPALForm.IAllowComboBoxControlSettings
 CGenerallyPositive.GPALForm.GPALComboBoxA dropdown list (ComboBox) for selecting one option from a predefined set of choices. Selection changes trigger WhenSelectedDo callback(s). By default uses DropDownList style (no free text entry)
 CGenerallyPositive.GPALForm.IAllowControlAndDataGridViewSettingsAndActions
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndChartSettings
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndChecked
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndDataGridViewSettings
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndEnabled
 CGenerallyPositive.GPALForm.GPALTextAreaA GPAL multiline textare instantiated with GPAL.TextArea for use on GPAL forms.
Callback EventHandler is invoked on the GPALTextarea.WindowsControl.TextChanged event
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndFontSettings
 CGenerallyPositive.GPALForm.GPALControlBase class for all GPAL form controls
 CGenerallyPositive.GPALForm.GPALBarItemA single item shared by GPAL menu bars and toolbars. Because it derives from GPALControl it speaks the same one-parameter fluent vocabulary as every other control (WithCallback, WithShortcutKey, WithName, WithToolTip), and adds an optional image. The callback added via GPALControl.WithCallback<TDelegate>(TDelegate) is wired to the item's Click event; the shortcut set via GPALControl.WithShortcutKey is shown on menu items (toolbars have no per-button shortcut)
 CGenerallyPositive.GPALForm.GPALButtonA GPAL button instantiated with GPAL.Button for use on GPAL forms.
Callback EventHandler is invoked on the GPALButton.WindowsControl.Clicked event
 CGenerallyPositive.GPALForm.GPALChartA GPAL chart instantiated with GPAL.Chart for use on GPAL forms.
Callback EventHandler is invoked on the GPALChart.WindowsControl.Clicked event
 CGenerallyPositive.GPALForm.GPALCheckboxA GPAL checkbox instantiateds with GPAL,Checkbox for use on GPAL forms.
Callback EventHandler is invoked on the GPALCheckbox.WindowsControl.CheckChanged event.
Default is not checked
 CGenerallyPositive.GPALForm.GPALComboBoxA dropdown list (ComboBox) for selecting one option from a predefined set of choices. Selection changes trigger WhenSelectedDo callback(s). By default uses DropDownList style (no free text entry)
 CGenerallyPositive.GPALForm.GPALDataGridViewA grid control instantiated with GPAL.DataGridView for use on GPAL forms, displaying the contents of an IGPALGrid<T> as rows and columns
 CGenerallyPositive.GPALForm.GPALDateTimePickerA date/time picker control instantiated with GPAL.DateTimePicker for use on GPAL forms
 CGenerallyPositive.GPALForm.GPALFileSelectorA file/folder selector control instantiated with GPAL.FileSelector for use on GPAL forms. Displays a button which, when clicked, opens an OpenFileDialog or FolderBrowserDialog (depending on WithSelectFolder(bool)) and raises its callbacks with a FileSelectorEventArgs once the dialog closes
 CGenerallyPositive.GPALForm.GPALGroupBoxA titled box around a set of controls, instantiated with GPAL.GroupBox and laid out like any other control.
 CGenerallyPositive.GPALForm.GPALInputA GPAL single line input instantiated with GPAL.Input for use on GPAL forms.
Callback EventHandler is invoked on the GPALInput.WindowsControl.TextChanged event
 CGenerallyPositive.GPALForm.GPALLabelA GPAL lable instantiated with GPAL.Label for use on GPAL forms.
Callback EventHandler is invoked on the GPALLabel.WindowsControl.Clicked event.
Labels autosize to fit the form
 CGenerallyPositive.GPALForm.GPALListViewA list view control capable of displaying data in Details, List, LargeIcon, SmallIcon, or Tile views. Supports columns, item selection, double-click activation and multi-select
 CGenerallyPositive.GPALForm.GPALMenuBarA menu bar docked to the top of a GPAL form. Open a top-level menu with WithMenu(string), then attach GPALBarItems to it with WithItem(GPALBarItem) (and optional WithSeparator rules). Items added after a WithMenu call belong to that menu until the next WithMenu
 CGenerallyPositive.GPALForm.GPALNumericUpDownA numeric up/down spinner control instantiated with GPAL.NumericUpDown for use on GPAL forms
 CGenerallyPositive.GPALForm.GPALProgressBarA progress indicator control that shows completion percentage or indeterminate activity. Supports continuous bar, marquee animation and basic value tracking
 CGenerallyPositive.GPALForm.GPALRadioButtonA GPAL radiobutton instantiated with GPAL.RadioButton for use GPAL forms.
Callback EventHandler is invoked on the GPALRadioButton.WindowsControl.CheckChanged event.
Default is not selected
 CGenerallyPositive.GPALForm.GPALRichTextBoxA read-only display control for rendering simple Markdown - headings (#, ##, ###), bold, italic, underline, strikethrough, inline code, {colorname}text{} color spans, — horizontal rules, and bullet (-, *) or numbered (1.) lists with nesting via leading spaces. Intended for displaying formatted AI responses or other structured text
 CGenerallyPositive.GPALForm.GPALSplitterTwo panes with a bar between them, instantiated with GPAL.Splitter and laid out like any other control.
The controls of both panes are added in order, with GPAL.SplitRight or GPAL.SplitBottom marking where the first pane ends. Everything before the marker is the left or top pane, everything after it the right or bottom. With no marker at all, everything is in the first pane.
A splitter is built whole before it goes anywhere, so it can hold another splitter, a group box, or a plain control, and nesting is whatever the workflow nested rather than whatever the ordering happened to imply.
 CGenerallyPositive.GPALForm.GPALStatusStripA status bar (usually docked at the bottom of the form) that displays real-time messages, progress indicators, or simple key-value status pairs
 CGenerallyPositive.GPALForm.GPALTabA GPAL tab instantiated with GPAL.Tab for use on GPAL forms.
Callback EventHandler is invoked on the GPALTab.WindowsControl.Clicked event
 CGenerallyPositive.GPALForm.GPALTableLayoutPanelA table layout panel instantiated with GPAL.TableLayoutPanel for use on GPAL forms, used to arrange other controls in a configurable grid of rows and columns
 CGenerallyPositive.GPALForm.GPALTextAreaA GPAL multiline textare instantiated with GPAL.TextArea for use on GPAL forms.
Callback EventHandler is invoked on the GPALTextarea.WindowsControl.TextChanged event
 CGenerallyPositive.GPALForm.GPALToolbarA toolbar docked below the menu bar, containing GPALBarItem buttons and optional separators
 CGenerallyPositive.GPALForm.GPALTreeViewA tree view control instantiated with GPAL.TreeView for use on GPAL forms
 CGenerallyPositive.GPALForm.GPALLabelA GPAL lable instantiated with GPAL.Label for use on GPAL forms.
Callback EventHandler is invoked on the GPALLabel.WindowsControl.Clicked event.
Labels autosize to fit the form
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndTableLayoutPanelSettings
 CGenerallyPositive.GPALForm.GPALTableLayoutPanelA table layout panel instantiated with GPAL.TableLayoutPanel for use on GPAL forms, used to arrange other controls in a configurable grid of rows and columns
 CGenerallyPositive.GPALForm.IAllowControlSettingsEnabledAndChecked
 CGenerallyPositive.GPALForm.IAllowControlSettingsEnabledAndDefault
 CGenerallyPositive.GPALForm.GPALButtonA GPAL button instantiated with GPAL.Button for use on GPAL forms.
Callback EventHandler is invoked on the GPALButton.WindowsControl.Clicked event
 CGenerallyPositive.GPALForm.IAllowControlSettingsPlaceholderEnabledAndPassword
 CGenerallyPositive.GPALForm.GPALInputA GPAL single line input instantiated with GPAL.Input for use on GPAL forms.
Callback EventHandler is invoked on the GPALInput.WindowsControl.TextChanged event
 CGenerallyPositive.GPALForm.IAllowDataGridViewControlSettings
 CGenerallyPositive.GPALForm.GPALDataGridViewA grid control instantiated with GPAL.DataGridView for use on GPAL forms, displaying the contents of an IGPALGrid<T> as rows and columns
 CGenerallyPositive.GPALForm.IAllowDateTimePickerControlSettings
 CGenerallyPositive.GPALForm.GPALDateTimePickerA date/time picker control instantiated with GPAL.DateTimePicker for use on GPAL forms
 CGenerallyPositive.GPALForm.IAllowFileSelectorControlSettings
 CGenerallyPositive.GPALForm.GPALFileSelectorA file/folder selector control instantiated with GPAL.FileSelector for use on GPAL forms. Displays a button which, when clicked, opens an OpenFileDialog or FolderBrowserDialog (depending on WithSelectFolder(bool)) and raises its callbacks with a FileSelectorEventArgs once the dialog closes
 CGenerallyPositive.GPALForm.IAllowForEventControlSettings
 CGenerallyPositive.GPALForm.GPALControlBase class for all GPAL form controls
 CGenerallyPositive.GPALForm.IAllowGroupBoxControlSettings
 CGenerallyPositive.GPALForm.GPALGroupBoxA titled box around a set of controls, instantiated with GPAL.GroupBox and laid out like any other control.
 CGenerallyPositive.GPALForm.IAllowListVIewControlSettings
 CGenerallyPositive.GPALForm.GPALListViewA list view control capable of displaying data in Details, List, LargeIcon, SmallIcon, or Tile views. Supports columns, item selection, double-click activation and multi-select
 CGenerallyPositive.GPALForm.IAllowMenuBarControlSettings
 CGenerallyPositive.GPALForm.GPALMenuBarA menu bar docked to the top of a GPAL form. Open a top-level menu with WithMenu(string), then attach GPALBarItems to it with WithItem(GPALBarItem) (and optional WithSeparator rules). Items added after a WithMenu call belong to that menu until the next WithMenu
 CGenerallyPositive.GPALForm.IAllowNumericUpDownControlSettings
 CGenerallyPositive.GPALForm.GPALNumericUpDownA numeric up/down spinner control instantiated with GPAL.NumericUpDown for use on GPAL forms
 CGenerallyPositive.GPALForm.IAllowProgressBarControlSettings
 CGenerallyPositive.GPALForm.GPALProgressBarA progress indicator control that shows completion percentage or indeterminate activity. Supports continuous bar, marquee animation and basic value tracking
 CGenerallyPositive.GPALForm.IAllowRichTextBoxControlSettings
 CGenerallyPositive.GPALForm.GPALRichTextBoxA read-only display control for rendering simple Markdown - headings (#, ##, ###), bold, italic, underline, strikethrough, inline code, {colorname}text{} color spans, — horizontal rules, and bullet (-, *) or numbered (1.) lists with nesting via leading spaces. Intended for displaying formatted AI responses or other structured text
 CGenerallyPositive.GPALForm.IAllowSplitterControlSettings
 CGenerallyPositive.GPALForm.GPALSplitterTwo panes with a bar between them, instantiated with GPAL.Splitter and laid out like any other control.
The controls of both panes are added in order, with GPAL.SplitRight or GPAL.SplitBottom marking where the first pane ends. Everything before the marker is the left or top pane, everything after it the right or bottom. With no marker at all, everything is in the first pane.
A splitter is built whole before it goes anywhere, so it can hold another splitter, a group box, or a plain control, and nesting is whatever the workflow nested rather than whatever the ordering happened to imply.
 CGenerallyPositive.GPALForm.IAllowStatusStripControlSettings
 CGenerallyPositive.GPALForm.GPALStatusStripA status bar (usually docked at the bottom of the form) that displays real-time messages, progress indicators, or simple key-value status pairs
 CGenerallyPositive.GPALForm.IAllowToolTipDelay
 CGenerallyPositive.GPALForm.GPALControlBase class for all GPAL form controls
 CGenerallyPositive.GPALForm.IAllowToolbarControlSettings
 CGenerallyPositive.GPALForm.GPALToolbarA toolbar docked below the menu bar, containing GPALBarItem buttons and optional separators
 CGenerallyPositive.GPALForm.IAllowTreeViewControlSettings
 CGenerallyPositive.GPALForm.GPALTreeViewA tree view control instantiated with GPAL.TreeView for use on GPAL forms
 CGenerallyPositive.IAllowConverterActions
 CGenerallyPositive.IAllowConverterInputAndActions
 CGenerallyPositive.IGPALConverter
 CGenerallyPositive.GPALConverter
 CGenerallyPositive.IAllowConverterSettingsAndActions
 CGenerallyPositive.IGPALConverter
 CGenerallyPositive.IGPALConverter
 CGenerallyPositive.IAllowCredentialServiceType
 CGenerallyPositive.ICredentials
 CGenerallyPositive.IAllowCryptoDecrypt
 CGenerallyPositive.IAllowCryptoAction
 CGenerallyPositive.IAllowCryptoConfig
 CGenerallyPositive.ICryptography
 CGenerallyPositive.Cryptography
 CGenerallyPositive.ICryptography
 CGenerallyPositive.IAllowCryptoEncrypt
 CGenerallyPositive.IAllowCryptoAction
 CGenerallyPositive.IAllowCryptoGenerateIV
 CGenerallyPositive.IAllowCryptoAction
 CGenerallyPositive.IAllowCryptoConfig
 CGenerallyPositive.IAllowCryptoGenerateKey
 CGenerallyPositive.IAllowCryptoAction
 CGenerallyPositive.IAllowCryptoConfig
 CGenerallyPositive.IAllowCryptoKeyGenInput
 CGenerallyPositive.ICryptography
 CGenerallyPositive.IAllowCryptoHash
 CGenerallyPositive.IAllowCryptoAction
 CGenerallyPositive.IAllowCryptoInput
 CGenerallyPositive.IAllowCryptoConfig
 CGenerallyPositive.IAllowCryptoKeyGenInput
 CGenerallyPositive.IAllowCryptoSign
 CGenerallyPositive.IAllowCryptoAction
 CGenerallyPositive.IAllowCryptoVerify
 CGenerallyPositive.IAllowCryptoAction
 CGenerallyPositive.IAllowDatabaseExecute
 CGenerallyPositive.IAllowDatabaseActions
 CGenerallyPositive.IAllowParametersAndActions
 CGenerallyPositive.IGPALDatabase
 CGenerallyPositive.IGPALDatabase
 CGenerallyPositive.IAllowDatabaseInto
 CGenerallyPositive.IAllowParametersAndInto
 CGenerallyPositive.IGPALDatabase
 CGenerallyPositive.IAllowDatabaseUsing
 CGenerallyPositive.IAllowParametersAndUsing
 CGenerallyPositive.IGPALDatabase
 CGenerallyPositive.GPALForm.IAllowDataGridViewSettings
 CGenerallyPositive.GPALForm.IAllowControlAndDataGridViewSettingsAndActions
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndDataGridViewSettings
 CGenerallyPositive.Browser.IAllowDebugPort
 CGenerallyPositive.Browser.IAllowBrowserSettings
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IAllowBrowserSettingsOrGoToAllow Browser Settings, Goto, WaitOnDocumentReady
 CGenerallyPositive.Browser.IAllowAllBrowserAndAllSelector
 CGenerallyPositive.Browser.IAllowSelectorInFrameBrowserSettingsOrGoto
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IAllowBrowserSettingsOrSelectorAction
 CGenerallyPositive.GPALForm.IAllowDefault
 CGenerallyPositive.GPALForm.IAllowControlSettingsEnabledAndDefault
 CGenerallyPositive.Browser.IAllowDialogHandling
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.Browser.IAllowDragAndDrop
 CGenerallyPositive.Browser.IAllowSelectorAction
 CGenerallyPositive.IAllowDriveCredentials
 CGenerallyPositive.IGoogleDrive
 CGenerallyPositive.GoogleDrive
 CGenerallyPositive.Application.IAllowElementActions
 CGenerallyPositive.Application.IAllowElementSettingsAndActions
 CGenerallyPositive.Application.ElementAssistantApplication ElementAssistant with fluent methods to help you manipulate AutomationElements in callback EventHandlers.
Instantiated with GPAL.ElementAssistant
 CGenerallyPositive.Browser.IAllowElementActions
 CGenerallyPositive.Browser.IAllowElementSettingsAndActions
 CGenerallyPositive.Browser.ElementAssistantBrowser ElementAssistant object with fluent methods to help you manipulate WebElements in Callback EventHandlers.
Instantiated with GPAL.ElementAssistant()
 CGenerallyPositive.Application.IAllowElementSetting
 CGenerallyPositive.Application.IAllowElementSettingsAndActions
 CGenerallyPositive.IAllowEmailActions
 CGenerallyPositive.IAllowEmailEnvelopeAndActions
 CGenerallyPositive.IGPALMail
 CGenerallyPositive.GPALMailProvides a fluent API for configuring, sending, and receiving email via SMTP, IMAP, and POP. Supports specifying server connection settings, envelope details (from/to/cc/bcc, subject, body, attachments), sending mail through SMTP, retrieving messages from an IMAP inbox, and persisting/loading mail settings to/from a GPALFile
 CGenerallyPositive.IAllowNameEnvelopeAndActions
 CGenerallyPositive.IGPALMail
 CGenerallyPositive.IAllowEmailEnvelope
 CGenerallyPositive.IAllowEmailEnvelopeAndActions
 CGenerallyPositive.IAllowEmailServerSettingsAndName
 CGenerallyPositive.IGPALMail
 CGenerallyPositive.IAllowNameEnvelopeAndActions
 CGenerallyPositive.IGPALMail
 CGenerallyPositive.IAllowEmailReceiveOptions
 CGenerallyPositive.IAllowEmailEnvelopeAndActions
 CGenerallyPositive.IAllowEmailServerSettingsAndName
 CGenerallyPositive.IAllowNameEnvelopeAndActions
 CGenerallyPositive.GPALForm.IAllowEnabled
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndEnabled
 CGenerallyPositive.GPALForm.IAllowControlSettingsEnabledAndChecked
 CGenerallyPositive.GPALForm.IAllowControlSettingsEnabledAndDefault
 CGenerallyPositive.GPALForm.IAllowControlSettingsPlaceholderEnabledAndPassword
 CGenerallyPositive.GPALForm.IAllowRichTextBoxControlSettings
 CGenerallyPositive.IAllowExcelCompareSettings
 CGenerallyPositive.IAllowExcelOperations
 CGenerallyPositive.IGPALExcel
 CGenerallyPositive.GPALExcelProvides fluent, file-based automation of Excel workbooks: opening one or more workbooks (including wildcard-matched sets of files), selecting a sheet, reading/writing ranges, columns, rows and individual cells, performing simple aggregate calculations (sum/count), comparing ranges against a grid, another file, or another range, and saving results back to a file, grid, or sheet. All operations apply to every workbook currently loaded via WithFile(GPALFile), so a single chain can drive many files at once. Errors are reported via GPAL.PublishSimpleEvent rather than thrown
 CGenerallyPositive.IGPALExcel
 CGenerallyPositive.IAllowExcelCore
 CGenerallyPositive.IAllowExcelCellSettings
 CGenerallyPositive.IGPALExcel
 CGenerallyPositive.IAllowExcelFileSelection
 CGenerallyPositive.IGPALExcel
 CGenerallyPositive.IAllowExcelSheetSelection
 CGenerallyPositive.IAllowExcelOperations
 CGenerallyPositive.IGPALExcel
 CGenerallyPositive.IAllowExcelSearchAndReplaceSettings
 CGenerallyPositive.IGPALExcel
 CGenerallyPositive.Browser.IAllowExecuteJavaScript
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.Browser.IAllowExistingBrowser
 CGenerallyPositive.Browser.IAllowBrowserSettings
 CGenerallyPositive.Browser.IAllowBrowserTypeOrGoto
 CGenerallyPositive.Browser.IAllowFetch
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.Browser.IAllowGetGridAndFillInFrom
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IAllowWithPagesAndFetch
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Application.IAllowFileActions
 CGenerallyPositive.Application.IAllowWithHeaderOrFileActions
 CGenerallyPositive.Browser.IAllowFileActions
 CGenerallyPositive.Browser.IAllowWithHeaderOrFileActions
 CGenerallyPositive.IAllowFileActions
 CGenerallyPositive.IGPALFile
 CGenerallyPositive.GPALFileGPAL File object instantied with GPAL.File
Used to load tokens into a GPALGrid [rows/columns]
 CGenerallyPositive.Application.IAllowFillInFrom
 CGenerallyPositive.Application.IAllowGetGridAndFillInFrom
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Application.IAllowSelectorAction
 CGenerallyPositive.Browser.IAllowFillInFrom
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IAllowAfterImageSelector
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IAllowGetGridAndFillInFrom
 CGenerallyPositive.Browser.IAllowSelectorAction
 CGenerallyPositive.GPALForm.IAllowFillInFrom
 CGenerallyPositive.GPALForm.IAllowDataGridViewActions
 CGenerallyPositive.GPALForm.IAllowControlAndDataGridViewSettingsAndActions
 CGenerallyPositive.GPALForm.IAllowFormActionsAndFillIn
 CGenerallyPositive.GPALForm.GPALFormForm object that contains the fluent methods to create interactive forms.
Instatiated using GPAL.Form
 CGenerallyPositive.Application.IAllowFocus
 CGenerallyPositive.Application.IAllowSelectorAction
 CGenerallyPositive.Browser.IAllowFocus
 CGenerallyPositive.Browser.IAllowSelectorAction
 CGenerallyPositive.GPALForm.IAllowFontSettings
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndFontSettings
 CGenerallyPositive.GPALForm.IAllowFormActions
 CGenerallyPositive.GPALForm.IAllowFormActionsAndFillIn
 CGenerallyPositive.GPALForm.IAllowFormSettingsAndActions
 CGenerallyPositive.Browser.IAllowFormatRange
 CGenerallyPositive.Browser.IGoogleSheets
 CGenerallyPositive.GoogleSheets
 CGenerallyPositive.Browser.IAllowFormatSettings
 CGenerallyPositive.Browser.IGoogleSheets
 CGenerallyPositive.GPALForm.IAllowFormSettings
 CGenerallyPositive.GPALForm.IAllowFormSettingsAndActions
 CGenerallyPositive.Application.IAllowForSelector
 CGenerallyPositive.Application.ElementAssistantApplication ElementAssistant with fluent methods to help you manipulate AutomationElements in callback EventHandlers.
Instantiated with GPAL.ElementAssistant
 CGenerallyPositive.Browser.IAllowGet
 CGenerallyPositive.Browser.IAllowGoToOrGet
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.Browser.IAllowBrowserSettingsOrGoToAllow Browser Settings, Goto, WaitOnDocumentReady
 CGenerallyPositive.Browser.IAllowBrowserTypeOrGoto
 CGenerallyPositive.IAllowGetCredentials
 CGenerallyPositive.IAllowCredentialsIntoCredentials
 CGenerallyPositive.ICredentials
 CGenerallyPositive.ICredentials
 CGenerallyPositive.Browser.IAllowGetElements
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IAllowGetGridAndFillInFrom
 CGenerallyPositive.Application.IAllowGetGrid
 CGenerallyPositive.Application.IAllowGetGridAndFillInFrom
 CGenerallyPositive.Application.IAllowWithNextPageButtonOrGetGrid
 CGenerallyPositive.Application.IAllowAfterAnySelector
 CGenerallyPositive.Application.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Application.IAllowSelectorActionOrAnySelector
 CGenerallyPositive.Application.IAllowWithPagesAndGridActions
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Browser.IAllowGetGrid
 CGenerallyPositive.Browser.IAllowGetGridAndFillInFrom
 CGenerallyPositive.Browser.IAllowWithNextPageButtonOrGetGrid
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IAllowAfterImageSelector
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IAllowWithPagesAndGridActions
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IAllowGetWindowRectangle
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.IAllowGiven
 CGenerallyPositive.Browser.IAllowGoogleSheetsSaveTo
 CGenerallyPositive.Browser.IAllowSheetOperations
 CGenerallyPositive.Browser.IAllowDataOperations
 CGenerallyPositive.Browser.IAllowDeployWebApp
 CGenerallyPositive.Browser.IGoogleSheets
 CGenerallyPositive.Browser.IAllowSheetSelection
 CGenerallyPositive.Browser.IGoogleSheets
 CGenerallyPositive.Browser.IGoogleSheets
 CGenerallyPositive.Browser.IAllowInDataOperations
 CGenerallyPositive.Browser.IGoogleSheets
 CGenerallyPositive.Browser.IAllowSheetSelection
 CGenerallyPositive.Browser.IGoogleSheets
 CGenerallyPositive.Browser.IAllowGoTo
 CGenerallyPositive.Browser.IAllowGoToOrGet
 CGenerallyPositive.IAllowGPALSettings
 CGenerallyPositive.GPALSettings
 CGenerallyPositive.Browser.IAllowGPALUrlStorageDataAllow setting the storage data parameter for 'set' operations
 CGenerallyPositive.Browser.IGPALUrlPublic interface exposed to consumers
 CGenerallyPositive.Browser.GPALUrlRepresents a URL with optional pre-navigation storage cleanup / inspection actions. Uses fluent builder pattern with fail-forward design (logs issues instead of throwing exceptions). Supports implicit conversion to/from string (with warning on first implicit use)
 CGenerallyPositive.Browser.IAllowGraphicSettings
 CGenerallyPositive.Browser.IImageHelper
 CGenerallyPositive.ImageHelperProvides comprehensive image capture, conversion, and matching capabilities for automation scenarios. Supports both desktop (headful) and browser (headless/headful) screenshot workflows with fluent chaining
 CGenerallyPositive.Browser.IAllowHideElement
 CGenerallyPositive.Browser.IAllowSelectorAction
 CGenerallyPositive.Application.IAllowHover
 CGenerallyPositive.Application.IAllowSelectorAction
 CGenerallyPositive.Browser.IAllowHover
 CGenerallyPositive.Browser.IAllowSelectorAction
 CGenerallyPositive.Browser.IAllowInjectScript
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.Browser.IAllowInSelector
 CGenerallyPositive.Browser.IAllowAnySelector
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IAllowAllBrowserAndAllSelector
 CGenerallyPositive.Browser.IAllowBrowserActionOrAnySelector
 CGenerallyPositive.Browser.IAllowInsertSettings
 CGenerallyPositive.Browser.IAllowDataOperations
 CGenerallyPositive.Browser.IGoogleSheets
 CGenerallyPositive.Application.IAllowKeyboardActions
 CGenerallyPositive.Application.IAllowSelectorAction
 CGenerallyPositive.IAllowKeyFromApiEndpoint
 CGenerallyPositive.ICredentials
 CGenerallyPositive.IAllowLocalFileOperations
 CGenerallyPositive.IGoogleDrive
 CGenerallyPositive.Application.IAllowMoveTo
 CGenerallyPositive.Application.IAllowSelectorAction
 CGenerallyPositive.Browser.IAllowMoveTo
 CGenerallyPositive.Browser.IAllowSelectorAction
 CGenerallyPositive.IAllowName
 CGenerallyPositive.IAllowNameEnvelopeAndActions
 CGenerallyPositive.Browser.IAllowNetworkIdleSettings
 CGenerallyPositive.Browser.IAllowBrowserSettings
 CGenerallyPositive.Browser.IAllowNewTabOrWindow
 CGenerallyPositive.Browser.IAllowBrowserActionOrAnySelector
 CGenerallyPositive.Browser.IAllowBrowserSettings
 CGenerallyPositive.OCRInterfaces.IAllowOCRRegion
 CGenerallyPositive.OCRInterfaces.IAllowOCRSettings
 CGenerallyPositive.OCRInterfaces.IAllowOCRSettingsOrExecute
 CGenerallyPositive.OCRInterfaces.IGPALOCR
 CGenerallyPositive.Browser.IAllowPageControl
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.IAllowParameterLength
 CGenerallyPositive.IGPALDatabase
 CGenerallyPositive.IAllowParameters
 CGenerallyPositive.IAllowParametersAndActions
 CGenerallyPositive.IAllowParametersAndInto
 CGenerallyPositive.IAllowParametersAndUsing
 CGenerallyPositive.GPALForm.IAllowPassword
 CGenerallyPositive.GPALForm.IAllowControlSettingsPlaceholderEnabledAndPassword
 CGenerallyPositive.Application.IAllowPersistentCallBack
 CGenerallyPositive.Application.IAllowPersistence
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Browser.IAllowPersistentCallBack
 CGenerallyPositive.Browser.IAllowBrowserSettings
 CGenerallyPositive.GPALForm.IAllowPlaceholder
 CGenerallyPositive.GPALForm.GPALTextAreaA GPAL multiline textare instantiated with GPAL.TextArea for use on GPAL forms.
Callback EventHandler is invoked on the GPALTextarea.WindowsControl.TextChanged event
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndEnabled
 CGenerallyPositive.GPALForm.IAllowControlSettingsPlaceholderEnabledAndPassword
 CGenerallyPositive.Browser.IAllowPrintDomElement
 CGenerallyPositive.Browser.IAllowSelectorAction
 CGenerallyPositive.Browser.IAllowPuppeteerActions
 CGenerallyPositive.Browser.IAllowPuppeteerExecution
 CGenerallyPositive.Browser.IAllowPuppeteerAttribute
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.PuppeteerClient
 CGenerallyPositive.Browser.IAllowPuppeteerCheckNetworkIdleOrExecution
 CGenerallyPositive.Browser.IAllowPuppeteerParametersOrExecution
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.IAllowPuppeteerDragAndDrop
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.IAllowPuppeteerEndpointDetails
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.IAllowPuppeteerParameters
 CGenerallyPositive.Browser.IAllowPuppeteerEndpointDetails
 CGenerallyPositive.Browser.IAllowPuppeteerParametersOrExecution
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.IAllowPuppeteerParametersOrExecution
 CGenerallyPositive.Browser.IAllowPuppeteerScrollElement
 CGenerallyPositive.Browser.IAllowPuppeteerParametersOrExecution
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.IAllowPuppeteerStorageOptions
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.IAllowPuppeteerCommunicator
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.IAllowPuppeteerEndpoint
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.IAllowPuppeteerInputText
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.IAllowPuppeteerRangeValue
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.IAllowPuppeteerSelectOptions
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.Browser.IAllowPuppeteerWorkflow
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.IAllowRangeValue
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.RESTClientFluent REST client for making API calls with a chained interface. Supports defining workflows, executing them in loops, and accessing results. Results are accessed via a non-generic indexer, requiring casting to the desired type
 CGenerallyPositive.GPALForm.IAllowReadOnly
 CGenerallyPositive.GPALForm.GPALTextAreaA GPAL multiline textare instantiated with GPAL.TextArea for use on GPAL forms.
Callback EventHandler is invoked on the GPALTextarea.WindowsControl.TextChanged event
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndEnabled
 CGenerallyPositive.GPALForm.IAllowControlSettingsPlaceholderEnabledAndPassword
 CGenerallyPositive.GPALForm.IAllowRichTextBoxControlSettings
 CGenerallyPositive.IAllowRemoteFileOperations
 CGenerallyPositive.IGoogleDrive
 CGenerallyPositive.IAllowRESTEndpoint
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IAllowRESTInputText
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IAllowRESTMethod
 CGenerallyPositive.IAllowRESTExecution
 CGenerallyPositive.IAllowCheckNetworkIdleOrExecution
 CGenerallyPositive.IAllowRESTParametersOrExecution
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IAllowRESTAttribute
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IAllowRESTCaptureOptions
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IAllowRESTDragAndDrop
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IAllowRESTEndpointDetails
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IAllowRESTParameters
 CGenerallyPositive.IAllowRESTEndpointDetails
 CGenerallyPositive.IAllowRESTParametersOrExecution
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IAllowRESTParametersOrExecution
 CGenerallyPositive.IAllowRESTScrollElement
 CGenerallyPositive.IAllowRESTParametersOrExecution
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IAllowRESTStorageOptions
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IAllowRestMethods
 CGenerallyPositive.IAllowRESTParametersOrExecution
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IAllowRESTWithDownloadFilename
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IAllowRESTWithUploadFilename
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.IAllowRESTWorkflow
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.Browser.IAllowRun
 CGenerallyPositive.Browser.IAllowWorkflowExecution
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IAllowScheduledWorkflow
 CGenerallyPositive.Browser.IAllowScheduledWorkflowExecution
 CGenerallyPositive.Browser.WorkflowSchedulerRuns whole workflows at once, each one building and owning whatever it drives. Scheduling only: it starts workflows, limits how many are in flight, spaces their starts, and waits for them. It knows nothing about browsers, which is why one workflow can run Chrome on OttoMagic while the next runs Firefox on Selenium.

For several steps against one browser you already have, use Browser.WithWorkflow(Action<IBrowser>) and Browser.Run instead
 CGenerallyPositive.Browser.WorkflowSchedulerRuns whole workflows at once, each one building and owning whatever it drives. Scheduling only: it starts workflows, limits how many are in flight, spaces their starts, and waits for them. It knows nothing about browsers, which is why one workflow can run Chrome on OttoMagic while the next runs Firefox on Selenium.

For several steps against one browser you already have, use Browser.WithWorkflow(Action<IBrowser>) and Browser.Run instead
 CGenerallyPositive.Browser.IAllowScreenshot
 CGenerallyPositive.Browser.IImageHelper
 CGenerallyPositive.Application.IAllowScrolling
 CGenerallyPositive.Application.IAllowSelectorAction
 CGenerallyPositive.Browser.IAllowScrolling
 CGenerallyPositive.Browser.IAllowSelectorAction
 CGenerallyPositive.IAllowSelectOptions
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.Browser.IAllowSetAttributeValue
 CGenerallyPositive.Browser.IAllowSelectorAction
 CGenerallyPositive.Application.IAllowSetRange
 CGenerallyPositive.Application.IAllowSelectorAction
 CGenerallyPositive.Browser.IAllowSetValueFromElement
 CGenerallyPositive.Browser.IAllowSelectorAction
 CGenerallyPositive.Browser.IAllowSiteMapOperations
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.Application.IAllowSizeControl
 CGenerallyPositive.Application.IAllowAfterWaitForAndSizeControl
 CGenerallyPositive.Application.IAllowAllApplicationAndAllSelector
 CGenerallyPositive.Application.IAllowAllExceptParameters
 CGenerallyPositive.Application.IAllowApplicationAction
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Browser.IAllowStartWorkflow
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IAllowGetGridAndFillInFrom
 CGenerallyPositive.Browser.IAllowStorageAction
 CGenerallyPositive.Browser.IAllowStorageOptions
 CGenerallyPositive.Browser.IAllowBrowserActionOrAnySelector
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IAllowStorageData
 CGenerallyPositive.Browser.IAllowStorageOptions
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IAllowStorageOutData
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Application.IAllowTabActions
 CGenerallyPositive.Application.IAllowApplicationAction
 CGenerallyPositive.Browser.IAllowTabActions
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.Browser.IAllowWithHeaderOrFileActions
 CGenerallyPositive.GPALForm.IAllowTableLayoutPanelSettings
 CGenerallyPositive.GPALForm.IAllowControlSettingsAndTableLayoutPanelSettings
 CGenerallyPositive.Application.IAllowToGPALObject< TResult >
 CGenerallyPositive.Application.IAllowSelectorAction
 CGenerallyPositive.Browser.IAllowToGPALObject< TResult >
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IAllowBrowserActionOrAnySelector
 CGenerallyPositive.Browser.IAllowElementSetting
 CGenerallyPositive.Browser.IAllowElementSettingsAndActions
 CGenerallyPositive.Browser.IAllowGPALUrlForUrlStarting interface - only allows setting the target URL
 CGenerallyPositive.Browser.IGPALUrlPublic interface exposed to consumers
 CGenerallyPositive.Browser.IAllowGPALUrlStorageItemConfigInterface after deleting a specific item - allows optional path/domain
 CGenerallyPositive.Browser.IGPALUrlPublic interface exposed to consumers
 CGenerallyPositive.Browser.IAllowGPALUrlStorageTypeInterface after URL is set - allows selecting storage type
 CGenerallyPositive.Browser.IAllowGPALUrlStorageItemConfigInterface after deleting a specific item - allows optional path/domain
 CGenerallyPositive.Browser.IGPALUrlPublic interface exposed to consumers
 CGenerallyPositive.Browser.IAllowGoToOrGet
 CGenerallyPositive.Browser.IAllowPuppeteerEndpointDetails
 CGenerallyPositive.Browser.IAllowScriptOperations
 CGenerallyPositive.Browser.IGoogleSheets
 CGenerallyPositive.Browser.IAllowSheetSelection
 CGenerallyPositive.Browser.IAllowSizeControl
 CGenerallyPositive.Browser.IAllowAfterWaitForAndSizeControl
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.Browser.IAllowBrowserSettings
 CGenerallyPositive.Browser.IAllowSpreadsheetSelection
 CGenerallyPositive.Browser.IGoogleSheets
 CGenerallyPositive.Browser.IAllowTriggerSettings
 CGenerallyPositive.Browser.IGoogleSheets
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IGoogleSheets
 CGenerallyPositive.Browser.IImageHelper
 CGenerallyPositive.Browser.IPuppeteerClient
 CGenerallyPositive.IAllowToGPALObject< TResult >
 CGenerallyPositive.IAllowAIConfig
 CGenerallyPositive.IAllowAIExecution
 CGenerallyPositive.IGPALAI
 CGenerallyPositive.IAllowAIProvider
 CGenerallyPositive.IGPALAI
 CGenerallyPositive.IAllowAITask
 CGenerallyPositive.IAllowConverterInput
 CGenerallyPositive.IAllowBase64SaveOrInput
 CGenerallyPositive.IAllowConverterInputAndActions
 CGenerallyPositive.IGPALConverter
 CGenerallyPositive.IAllowConverterSettings
 CGenerallyPositive.IAllowConverterSettingsAndActions
 CGenerallyPositive.IGPALConverter
 CGenerallyPositive.IAllowCredentialsIntoCredentials
 CGenerallyPositive.IAllowCredentialsPassword
 CGenerallyPositive.ICredentials
 CGenerallyPositive.IAllowCredentialsServiceKeyWithCredentials
 CGenerallyPositive.IAllowCredentialsUsername
 CGenerallyPositive.ICredentials
 CGenerallyPositive.IAllowDatabaseSettings
 CGenerallyPositive.IAllowDatabaseGridSettingsSaveTo(...) already ran the read (an out parameter forces that), so chaining .Execute() afterward would just re-run the same command as a meaningless non-query. Chain more settings instead, or .ToGPALObject() to get back to the full interface for a new Create/Read/Update/Delete
 CGenerallyPositive.GPALDatabaseClass to define database usage. Currently only used for input from a table, sql or stored procedure.
Instantiated with GPAL.Database
 CGenerallyPositive.IAllowPrecsionScaleAndSettings
 CGenerallyPositive.IGPALDatabase
 CGenerallyPositive.IAllowDriveFileSelection
 CGenerallyPositive.IAllowDriveActions
 CGenerallyPositive.IGoogleDrive
 CGenerallyPositive.IAllowDriveListOperations
 CGenerallyPositive.IGoogleDrive
 CGenerallyPositive.IGoogleDrive
 CGenerallyPositive.IAllowEmailEnvelopeAndActions
 CGenerallyPositive.IAllowEmailServerSettings
 CGenerallyPositive.IAllowEmailServerSettingsAndName
 CGenerallyPositive.IAllowEmailServerSettingsAndName
 CGenerallyPositive.IAllowExcelSheetSelection
 CGenerallyPositive.IAllowExecutableSetup
 CGenerallyPositive.Launcher
 CGenerallyPositive.IAllowFileName
 CGenerallyPositive.IAllowFileSettings
 CGenerallyPositive.IGPALFile
 CGenerallyPositive.IGPALFile
 CGenerallyPositive.IAllowFileSettings
 CGenerallyPositive.IAllowGridActions< T >
 CGenerallyPositive.IGPALGrid< T >
 CGenerallyPositive.IAllowLoggingSettings
 CGenerallyPositive.IAllowLoggingAndSetting
 CGenerallyPositive.IGPALLogger
 CGenerallyPositive.GPALLoggerProvides configurable logging to a file (in any format supported by GPALConverter) or to a GPALDatabase. Configuration is performed via a fluent interface (IAllowLoggingSettings / IAllowLoggingAndSetting), allowing the root directory, directory structure, filename pattern, delimiter, log type, and date format to be set before calling Log(dynamic). Errors and warnings encountered while logging are reported via GPAL.PublishSimpleEvent rather than throwing exceptions
 CGenerallyPositive.IGPALLogger
 CGenerallyPositive.IAllowNameEnvelopeAndActions
 CGenerallyPositive.IAllowRESTEndpointDetails
 CGenerallyPositive.IAllowRequestSettings
 CGenerallyPositive.GPALRequestDescribes an API request for .Fetch to issue from inside the page, so it carries the session the browser has already earned: its cookies, its TLS fingerprint, its header order and any anti-bot clearance.
Built once and reused, the same way a Selector is. Where a Selector says how to find an element, this says what to ask the site's own API for
 CGenerallyPositive.IAllowRunningExecutable
 CGenerallyPositive.Launcher
 CGenerallyPositive.IAllowSelectorSettings
 CGenerallyPositive.ICryptography
 CGenerallyPositive.IGPALConverter
 CGenerallyPositive.IGPALDatabase
 CGenerallyPositive.IGPALExcel
 CGenerallyPositive.IGPALLogger
 CGenerallyPositive.IGPALMail
 CGenerallyPositive.IRESTClient
 CGenerallyPositive.OCRInterfaces.IAllowToGPALObject< TResult >
 CGenerallyPositive.OCRInterfaces.IAllowOCRSettings
 CGenerallyPositive.Application.IAllowWaitFor
 CGenerallyPositive.Application.IAllowAllActionAndAnySelector
 CGenerallyPositive.Application.IAllowSelectorAction
 CGenerallyPositive.Application.IAllowSelectorActionOrAnySelector
 CGenerallyPositive.Browser.IAllowWaitFor
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IAllowAfterImageSelector
 CGenerallyPositive.Browser.IAllowBrowserActionOrAnySelector
 CGenerallyPositive.Application.IAllowWaitForWindow
 CGenerallyPositive.Application.IAllowAllActionAndAnySelector
 CGenerallyPositive.Application.IAllowSelectorActionOrAnySelector
 CGenerallyPositive.Browser.IAllowWaitForWindow
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IAllowBrowserActionOrAnySelector
 CGenerallyPositive.IAllowWaitingExecutable
 CGenerallyPositive.IAllowRunningExecutable
 CGenerallyPositive.Launcher
 CGenerallyPositive.IAllowWhen
 CGenerallyPositive.Browser.IAllowWindowActions
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IAllowWindowScrollBy
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.Application.IAllowWithAllThatMatch
 CGenerallyPositive.Application.IAllowAfterAnySelector
 CGenerallyPositive.Application.IAllowSelectorActionOrAnySelector
 CGenerallyPositive.Browser.IAllowWithAllThatMatch
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IAllowBrowserSettingsOrGoToAllow Browser Settings, Goto, WaitOnDocumentReady
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Browser.IAllowWithAttribute
 CGenerallyPositive.Browser.IAllowSelectorAction
 CGenerallyPositive.Browser.IAllowWithAutomationEngine
 CGenerallyPositive.Browser.IAllowBrowserSettings
 CGenerallyPositive.Browser.IAllowBrowserTypeOrGoto
 CGenerallyPositive.Browser.IAllowWithData
 CGenerallyPositive.Browser.IAllowWithSelector
 CGenerallyPositive.Browser.IAllowAnySelector
 CGenerallyPositive.Application.IAllowWithGridToSave
 CGenerallyPositive.Application.IApplication
 CGenerallyPositive.Browser.IAllowWithGridToSave
 CGenerallyPositive.Browser.IAllowSelectorAction
 CGenerallyPositive.Browser.IBrowser
 CGenerallyPositive.Application.IAllowWithHardware
 CGenerallyPositive.Browser.IAllowWithHardware
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IAllowAfterImageSelector
 CGenerallyPositive.Browser.IAllowWithPagesAndGridActions
 CGenerallyPositive.Application.IAllowWithHeader
 CGenerallyPositive.Application.IAllowWithHeaderOrFileActions
 CGenerallyPositive.Browser.IAllowWithHeader
 CGenerallyPositive.Browser.IAllowWithHeaderOrFileActions
 CGenerallyPositive.Application.IAllowWithInfiniteScroll
 CGenerallyPositive.Application.IAllowAfterAnySelector
 CGenerallyPositive.Application.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Application.IAllowSelectorActionOrAnySelector
 CGenerallyPositive.Browser.IAllowWithInfiniteScroll
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IAllowAfterImageSelector
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IAllowWithJavaScript
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IAllowWithPagesAndGridActions
 CGenerallyPositive.Application.IAllowWithNextPageButton
 CGenerallyPositive.Application.IAllowWithNextPageButtonOrGetGrid
 CGenerallyPositive.Browser.IAllowWithNextPageButton
 CGenerallyPositive.Browser.IAllowWithNextPageButtonOrGetGrid
 CGenerallyPositive.Application.IAllowWithPages
 CGenerallyPositive.Application.IAllowAfterAnySelector
 CGenerallyPositive.Application.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Application.IAllowSelectorActionOrAnySelector
 CGenerallyPositive.Application.IAllowWithPagesAndGridActions
 CGenerallyPositive.Browser.IAllowWithPages
 CGenerallyPositive.Browser.IAllowAfterAnySelector
 CGenerallyPositive.Browser.IAllowAfterAnySelectorExceptWithAll
 CGenerallyPositive.Browser.IAllowAfterImageSelector
 CGenerallyPositive.Browser.IAllowAfterWaitFor
 CGenerallyPositive.Browser.IAllowWithPagesAndFetch
 CGenerallyPositive.Browser.IAllowWithPagesAndGridActions
 CGenerallyPositive.Application.IAllowWithPersistentSelector
 CGenerallyPositive.Application.IAllowPersistence
 CGenerallyPositive.Browser.IAllowWithPersistentSelector
 CGenerallyPositive.Browser.IAllowBrowserSettings
 CGenerallyPositive.Application.IAllowWithSelector
 CGenerallyPositive.Application.IAllowAnySelector
 CGenerallyPositive.Application.IAllowAllActionAndAnySelector
 CGenerallyPositive.Application.IAllowAllApplicationAndAllSelector
 CGenerallyPositive.Application.IAllowAllExceptParameters
 CGenerallyPositive.Application.IAllowSelectorActionOrAnySelector
 CGenerallyPositive.Browser.IAllowWithTokensFrom
 CGenerallyPositive.Browser.IAllowBrowserAction
 CGenerallyPositive.Browser.IAllowGetGridAndFillInFrom
 CGenerallyPositive.Browser.IAllowWithTriggerFunction
 CGenerallyPositive.Browser.IAllowInDataOperations
 CGenerallyPositive.Browser.IAllowTriggerSettings
 CGenerallyPositive.Browser.IAllowWorkflow
 CGenerallyPositive.Browser.IAllowBrowserActionOrAnySelector
 CGenerallyPositive.Browser.IBrowser
 CIDisposable
 CGenerallyPositive.GPALDatabaseClass to define database usage. Currently only used for input from a table, sql or stored procedure.
Instantiated with GPAL.Database
 CGenerallyPositive.GPALElementPseudo element used in Applications and Browser workflows for image matching and unified automation. Implements IGPALElement and mimics IWebElement where possible
 CSystem.IDisposable
 CGenerallyPositive.IGPALDatabase
 CIEnumerable
 CGenerallyPositive.IGPALGrid< T >
 CIEqualityComparer
 CGenerallyPositive.ConverterHelper.ReferenceEqualityComparer
 CGenerallyPositive.ReferenceEqualityComparer
 CGenerallyPositive.ReferenceEqualityComparer
 CIGoogleDorking
 CGenerallyPositive.GoogleDorking
 CGenerallyPositive.Application.IGPALAutomationElement
 CGenerallyPositive.Application.GPALAutomationElementApplication workflow container for automation elements
 CGenerallyPositive.IGPALElement
 CGenerallyPositive.GPALElementPseudo element used in Applications and Browser workflows for image matching and unified automation. Implements IGPALElement and mimics IWebElement where possible
 CGenerallyPositive.IGPALYouTube
 CGenerallyPositive.Browser.GPALYouTubeFluent YouTube video uploader. Entry point: GPAL.YouTube. Upload phase: WithCredentials -> WithTitle -> ... -> Upload(file). Schedule phase: WithVideos(results) -> WaitForProcessing(seconds) -> ScheduleAt(PremiereTime). ScheduleAt runs in the background; the calling thread is not blocked
 CGenerallyPositive.Browser.IHiddenDesktopOne Win32 desktop object a browser is running on. Reached from the browser that is on it, so a workflow that has the browser never has to remember what the desktop was called
 CGenerallyPositive.Browser.IHiddenDesktopsEvery hidden desktop this process has made, and the screen itself. Peek and Return move the screen, which is not something one desktop owns, so they live here rather than on a single desktop
 CGenerallyPositive.Browser.IMagicHelper
 CGenerallyPositive.Browser.MagicHelper
 CIYamlTypeConverter
 CComplexYamlConverter
 CDateTimeOffsetYamlConverterWrites a DateTimeOffset as a single round-trippable string, and a null as a null. Without this YamlDotNet walks the struct's properties and emits a mapping of dateTime, utcDateTime, localDateTime, date, day, dayOfWeek and the rest, which carries the same instant six times over and cannot be read back into a DateTimeOffset.
The "o" format is the only one that keeps the offset, which is the whole reason to use this type over DateTime
 CIPAddressYamlConverter
 CNullableBigIntegerYamlConverter
 CNullableGuidYamlConverterWrites a Guid, and a null Guid?, the way the rest of GPAL writes nulls. Without this YamlDotNet has no handling for the type and renders a null as an empty string, which does not read back as a null
 CNullableTimeSpanYamlConverterWrites a TimeSpan, and a null TimeSpan?, the way the rest of GPAL writes nulls. Without this YamlDotNet has no handling for the type and renders a null as an empty string, which does not read back as a null.
The "c" format is the round-trippable one, matching what ConverterHelper writes elsewhere
 CUriYamlConverter
 CVersionYamlConverterWrites a Version as the string everyone recognizes, "1.2.3.4", and a null as a null. Without this YamlDotNet walks the type's properties and emits a mapping of major, minor, build, revision, majorRevision and minorRevision, with -1 standing in for the parts that were never set
 CWaitTimeYamlConverter
 CJsonConverter
 CGenerallyPositive.BigIntegerJsonConverter
 CGenerallyPositive.ComplexJsonConverter
 CGenerallyPositive.IPAddressJsonConverter
 CGenerallyPositive.UriJsonConverter
 CGenerallyPositive.VersionJsonConverter
 CGenerallyPositive.KeeperLoginDataLogin fields (username, password, and URL) of a Keeper record
 CGenerallyPositive.KeeperRecordA single record returned by Keeper Commander (keeper list/keeper search --format=json)
 CGenerallyPositive.Browser.BrowserHelper.KillProcessesResultResult of attempting to kill one or more processes by name
 CGenerallyPositive.LastPassItemA single vault item returned by the LastPass CLI (lpass ls --json)
 CGenerallyPositive.LLMDigestResult
 CGenerallyPositive.Browser.Model
 CGenerallyPositive.NextJsHydrationResult
 CGenerallyPositive.Browser.PuppeteerCommunicator.Node
 CGenerallyPositive.OCRInterfaces
 CGenerallyPositive.OnePasswordFieldA single custom field of a 1Password item, such as a username or password field
 CGenerallyPositive.OnePasswordItemA single vault item returned by the 1Password CLI (op item list --format=json)
 CGenerallyPositive.OnePasswordUrlA single URL associated with a 1Password item
 CGenerallyPositive.Browser.PremiereTimeRepresents a premiere schedule time. Presets (In5Minutes, In1Hour, etc.) store a relative offset and resolve to UtcNow + offset at the moment Resolve() is called, so the premiere time is set relative to when each video finishes processing, not when the chain was built
 CGenerallyPositive.Printer
 CGenerallyPositive.PrinterSettings
 CGenerallyPositive.Browser.Native.PROCESS_INFORMATION
 CGenerallyPositive.Browser.CdpResultExtractors.ProtocolCommand
 CGenerallyPositive.Browser.CdpResultExtractors.ProtocolDomain
 CGenerallyPositive.Browser.CdpResultExtractors.ProtocolReturn
 CGenerallyPositive.Browser.CdpResultExtractors.ProtocolRoot
 CGenerallyPositive.Browser.CdpResultExtractors.ProtocolType
 CGenerallyPositive.Browser.Puppeteer
 CGenerallyPositive.Browser.PuppeteerCommunicator
 CGenerallyPositive.ReceivedEmailA simplified representation of a single email message retrieved by GPALMail.Receive
 CGenerallyPositive.Browser.ElementHelper.RECT
 CResultCollection
 CGenerallyPositive.SearchItem
 CGenerallyPositive.SearchResponse
 CGenerallyPositive.Browser.Native.SECURITY_ATTRIBUTES
 CGenerallyPositive.SelectorSettings.SelectorPathEntryAn entry defining a selector locator, a selector path
 CGenerallyPositive.SelectorSet
 CGenerallyPositive.SelectorSettingsSettings for the current selector. Use this only for debugging
 CGenerallyPositive.Browser.SeleniumStorageHelper
 CGenerallyPositive.SpreadsheetResponse.Sheet
 CGenerallyPositive.SpreadsheetResponse.SheetProperties
 CGenerallyPositive.Browser.Native.STARTUPINFO
 CGenerallyPositive.Browser.Native.STARTUPINFOEX
 CGenerallyPositive.Browser.StorageActionRepresents a single storage-related action to perform before navigating to a URL
 CGenerallyPositive.Browser.TabTuple
 CTextBox
 CGenerallyPositive.GPALForm.PlaceholderTextBoxHttps://stackoverflow.com/questions/11873378/adding-placeholder-text-to-textbox
 CGenerallyPositive.UnitOfWorkEverything revolves around the Unit of Work.
A Unit of Work is defined as one or more selectors between actions (GoTo, Run, LeftClick, Hover, etc.)
Use this only for debugging
 CGenerallyPositive.VkCodeToDomKeyConverter
 CGenerallyPositive.Enums.WaitTimeWaitTime is a struct that acts like an int but also an enum for some intellisense help Users may use the enum like values: Forever, Never, Immediate or enter any arbitrary integer
 CGenerallyPositive.Browser.WindowHelper
 CGenerallyPositive.WindowHelper
 CGenerallyPositive.Browser.WindowInfo
 CGenerallyPositive.Browser.WindowSession
 CGenerallyPositive.Browser.WindowTuple
 CGenerallyPositive.Browser.WorkflowRunWhat became of one workflow handed to WorkflowScheduler: whether it finished, how long it took, and what it threw if it threw. Held in the order the workflows were added, so Index says which
 CGenerallyPositive.XPathInfoRepresents XPath matching information returned by advanced selector strategies
 CGenerallyPositive.Browser.YouTubePlaylistResultResult returned by GPALYouTube.CreatePlaylist containing the playlist ID and public URL
 CGenerallyPositive.Browser.YouTubeUploadResultResult returned by GPALYouTube.Upload containing the assigned video ID, public URL, and status
 CGenerallyPositive.Browser.YouTubeVideoInfoVideo metadata returned by GPALYouTube.GetResults. Tags are populated for direct video lookups; search results leave Tags empty