// Created with MonoDevelop
//
//    QuickStep: Acquire, view and identify spectra 
//    Copyright (C) 2021 Torsten Schache, Hiperscan GmbH Dresden, Germany
//
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.

namespace Hiperscan.Extensions.ApoIdent
{
    public enum ApoIdentApplicationState
    {
        None,

        ProgramStart,

        ConfigBeginProfileChanged,
        ConfigProfileChanged,
        ConfigProfileSettingsChanged,


        ConnectionStart,
        ConnectionStartIdentServerFailed,
        ConnectionIdentServerVersionRefused,
        ConnectionIdentServerRefused,
        ConnectionInitDeviceTryAgain,
        ConnectionInitDeviceFailed,
        ConnnectionDeviceRegistrationFailed,
        ConnectionInitFinderFailed,
        ConnectionCheckIdentModuleFailed,
        ConnectionLoadDataFailed,
        CoonectDeviceWarmupFailed,
        ConnectDeviceWarmupInterrupted, 
        ConnectionRemindOfUpdate,
        ConnectionWarmupStart,
        ConnectionWarmupProgress,
        ConnectionWarmupEnd, //OK
        ConnectionBeginLoadingData,
        ConnectionLoadingDatatProgressed,
        ConnectionUnknownError,
        ConnectionLost, //OK

        SubstanceManagementSubstanceSelectionNotChanged,
        SubstanceManagementSubstanceAfterSelectionChanged,
        SubstanceManagementSubstanceNoSubstanceSelected,
        SubstanceManagementModelClassDialog,
        SubstanceManagementNotMeasurableDialog,
        SubstanceManagementInfoButtonClassificationDialog,
        SubstanceManagementAdditionalTextDialog,
        SubstanceManagementExchangeNoDataDialog,
        SubstanceManagementExchangeSelectFileDialog,
        SubstanceManagementExchangeSelectSubstanceDialog,
        SubstanceManagementPdfLoading,
        SubstanceManagementReinit,


        MeasuringStart,
        MeasuringWaitForNextCycle,
        MeasuringRunCycle,
        MeasuringStateChanged,
        MeasuringFailed,
        MeasuringFailedPostProcessing,
        MeasuringTransflectanceFailed,
        MeasuringBlackFailed,
        MeasuringWhiteFailed,
        MeasuringInterruptedStart,
        MeasuringInterruptedEnd,
        MeasuringSuccess,
        MeasuringForFirstFluid,
        MeasuringReferencesReset,
        MeasuringStartInternalCaibration,
        MeasuringEndInternalCaibration,
        MeasuringTimeLeft,
        MeasuringResultCheck,
        MeasuringResultCheckRepeated,


        ResultAdditionalTestsWindowStart,
        ResultAdditionalTestsWindowClosed,
        ResultShowPlots,
        ResultShowValuationList,
        ResultPreSuggestion,

        ProtocolDataChanged,
        ProtocolBatchDeadLineChanged,
        ProtocolCheckSave,
        ProtocolSavingFailed,
        ProtocolSavingSuccess,
        ProtocolDataExchangeOk,
        ProtocolDataExchangeFailed,
        ProtocolPrintingFailed,
        ProtocolLabelPrintingFailed,
        ProtocolShowingFailed,

        MainWindowFocus,


        CheckSettings,
        ImportantCustomerInfo,

        DeviceStateChanged,
        DeviceAverageChanged,
        DeviceVersionDetected,

        ShowErrorDialogWithServiceDialog,
        ShowErrorDialogWithoutSerivceDialog,

        QueryDialog,
        PreferencesDialog,
        SubstancesDialog,
        StartQuickStep,

        Exit,
    }
}
