Skip to content

File SpinnakerGUI.h

File List > GUI > SpinnakerGUI.h

Go to the documentation of this file

//=============================================================================
// Copyright (c) 2026 FLIR Integrated Imaging Solutions, Inc. All Rights Reserved.
//
// This software is the confidential and proprietary information of FLIR
// Integrated Imaging Solutions, Inc. ("Confidential Information"). You
// shall not disclose such Confidential Information and shall use it only in
// accordance with the terms of the license agreement you entered into
// with FLIR Integrated Imaging Solutions, Inc. (FLIR).
//
// FLIR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
// SOFTWARE, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE, OR NON-INFRINGEMENT. FLIR SHALL NOT BE LIABLE FOR ANY DAMAGES
// SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
// THIS SOFTWARE OR ITS DERIVATIVES.
//=============================================================================

#pragma once

#include "GUI/SpinnakerGUI_WPF.h"
#include "ViewerDlg.h"
#include "PropertyGridDlg.h"
#include "CameraSelectionDlg.h"

namespace Spinnaker
{
    namespace GUI
    {
        class SPINNAKER_API GUIFactory
        {
          public:
            GUIFactory(void);

            ~GUIFactory(void);

            static CameraSelectionDlg* GetCameraSelectionDlg();

            static PropertyGridDlg* GetPropertyGridDlg();

            static ViewerDlg* GetViewer();

            bool ConnectGUILib(Spinnaker::CameraPtr camera);

            void DisconnectGUILib();

            bool IsConnected()
            {
                return m_bisConnected;
            }

            std::list<std::string> GetDialogNameList();

            std::list<std::string> GetControlNameList();

            int GetNumDlgs();

            void ShowDlgByIndex(unsigned int index);

            void ShowDlgByName(std::string dialogName);

            void HideDlgByIndex(unsigned int index);

            void HideDlgByName(std::string dialogName);

            int GetNumCtrls();

          protected:
            static CameraSelectionDlg* m_pCameraSelectionDialog;
            static ViewerDlg* m_pViewer;
            static PropertyGridDlg* m_pPropertyGridDialog;

            // WPF GUI API
            Spinnaker::GUI_WPF::GUIFactory* m_pWPFGUIFactory;

            bool m_bisConnected;
            //      CameraControlProxy* m_pCameraControlProxy;
        };

    } // namespace GUI
} // namespace Spinnaker