IndexSelectPluginInfo.h 5.43 KB
Newer Older
hrchilds's avatar
hrchilds committed
1 2
/*****************************************************************************
*
bonnell's avatar
bonnell committed
3
* Copyright (c) 2000 - 2017, Lawrence Livermore National Security, LLC
hrchilds's avatar
hrchilds committed
4
* Produced at the Lawrence Livermore National Laboratory
5
* LLNL-CODE-442911
hrchilds's avatar
hrchilds committed
6 7
* All rights reserved.
*
8
* This file is  part of VisIt. For  details, see https://visit.llnl.gov/.  The
hrchilds's avatar
hrchilds committed
9 10 11 12 13 14 15 16 17 18
* full copyright notice is contained in the file COPYRIGHT located at the root
* of the VisIt distribution or at http://www.llnl.gov/visit/copyright.html.
*
* Redistribution  and  use  in  source  and  binary  forms,  with  or  without
* modification, are permitted provided that the following conditions are met:
*
*  - Redistributions of  source code must  retain the above  copyright notice,
*    this list of conditions and the disclaimer below.
*  - Redistributions in binary form must reproduce the above copyright notice,
*    this  list of  conditions  and  the  disclaimer (as noted below)  in  the
19 20 21
*    documentation and/or other materials provided with the distribution.
*  - Neither the name of  the LLNS/LLNL nor the names of  its contributors may
*    be used to endorse or promote products derived from this software without
hrchilds's avatar
hrchilds committed
22 23 24 25 26
*    specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR  IMPLIED WARRANTIES, INCLUDING,  BUT NOT  LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND  FITNESS FOR A PARTICULAR  PURPOSE
27 28 29
* ARE  DISCLAIMED. IN  NO EVENT  SHALL LAWRENCE  LIVERMORE NATIONAL  SECURITY,
* LLC, THE  U.S.  DEPARTMENT OF  ENERGY  OR  CONTRIBUTORS BE  LIABLE  FOR  ANY
* DIRECT,  INDIRECT,   INCIDENTAL,   SPECIAL,   EXEMPLARY,  OR   CONSEQUENTIAL
hrchilds's avatar
hrchilds committed
30 31 32 33 34 35 36 37 38
* DAMAGES (INCLUDING, BUT NOT  LIMITED TO, PROCUREMENT OF  SUBSTITUTE GOODS OR
* SERVICES; LOSS OF  USE, DATA, OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER
* CAUSED  AND  ON  ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT
* LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING IN ANY  WAY
* OUT OF THE  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
*****************************************************************************/

hrchilds's avatar
hrchilds committed
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
// ************************************************************************* //
//  File: IndexSelectPluginInfo.h
// ************************************************************************* //

#ifndef INDEXSELECT_PLUGIN_INFO_H
#define INDEXSELECT_PLUGIN_INFO_H
#include <OperatorPluginInfo.h>
#include <operator_plugin_exports.h>

class IndexSelectAttributes;

// ****************************************************************************
//  Class: IndexSelectPluginInfo
//
//  Purpose:
//    Five classes that provide all the information about an IndexSelect operator
//
56 57
//  Programmer: generated by xml2info
//  Creation:   omitted
hrchilds's avatar
hrchilds committed
58 59 60 61 62 63 64 65
//
//  Modifications:
//
// ****************************************************************************

class IndexSelectGeneralPluginInfo : public virtual GeneralOperatorPluginInfo
{
  public:
66 67 68
    virtual const char *GetName() const;
    virtual const char *GetVersion() const;
    virtual const char *GetID() const;
hrchilds's avatar
hrchilds committed
69
    virtual bool  EnabledByDefault() const;
70
    virtual const char *GetCategoryName() const;
hrchilds's avatar
hrchilds committed
71 72 73 74 75 76 77 78 79 80 81 82
};

class IndexSelectCommonPluginInfo : public virtual CommonOperatorPluginInfo, public virtual IndexSelectGeneralPluginInfo
{
  public:
    virtual AttributeSubject *AllocAttributes();
    virtual void CopyAttributes(AttributeSubject *to, AttributeSubject *from);
};

class IndexSelectGUIPluginInfo : public virtual GUIOperatorPluginInfo, public virtual IndexSelectCommonPluginInfo
{
  public:
83
    virtual QString *GetMenuName() const;
hrchilds's avatar
hrchilds committed
84
    virtual QvisPostableWindowObserver *CreatePluginWindow(int type,
85 86
        AttributeSubject *attr, const QString &caption, const QString &shortName,
        QvisNotepadArea *notepad);
hrchilds's avatar
hrchilds committed
87 88 89
    virtual const char **XPMIconData() const;
};

90
class IndexSelectViewerEnginePluginInfo : public virtual ViewerEngineOperatorPluginInfo, public virtual IndexSelectCommonPluginInfo
hrchilds's avatar
hrchilds committed
91 92 93 94 95 96 97 98
{
  public:
    virtual AttributeSubject *GetClientAtts();
    virtual AttributeSubject *GetDefaultAtts();
    virtual void SetClientAtts(AttributeSubject *atts);
    virtual void GetClientAtts(AttributeSubject *atts);

    virtual void InitializeOperatorAtts(AttributeSubject *atts,
99
                                        const avtPlotMetaData &plot,
100
                                        const bool fromDefault);
101
    virtual void UpdateOperatorAtts(AttributeSubject *atts,
102 103
                                    const avtPlotMetaData &plot);
    virtual const char *GetMenuName() const;
hrchilds's avatar
hrchilds committed
104 105 106 107 108 109 110

    static void InitializeGlobalObjects();
  private:
    static IndexSelectAttributes *defaultAtts;
    static IndexSelectAttributes *clientAtts;
};

111 112 113 114 115 116 117
class IndexSelectViewerPluginInfo : public virtual ViewerOperatorPluginInfo, public virtual IndexSelectViewerEnginePluginInfo
{
  public:
    virtual const char **XPMIconData() const;
};

class IndexSelectEnginePluginInfo : public virtual EngineOperatorPluginInfo, public virtual IndexSelectViewerEnginePluginInfo
hrchilds's avatar
hrchilds committed
118 119 120 121 122 123 124 125
{
  public:
    virtual avtPluginFilter *AllocAvtPluginFilter();
};

class IndexSelectScriptingPluginInfo : public virtual ScriptingOperatorPluginInfo, public virtual IndexSelectCommonPluginInfo
{
  public:
hrchilds's avatar
hrchilds committed
126
    virtual void InitializePlugin(AttributeSubject *subj, void *data);
hrchilds's avatar
hrchilds committed
127 128
    virtual void *GetMethodTable(int *nMethods);
    virtual bool TypesMatch(void *pyobject);
hrchilds's avatar
hrchilds committed
129
    virtual char *GetLogString();
hrchilds's avatar
hrchilds committed
130 131 132 133
    virtual void SetDefaults(const AttributeSubject *atts);
};

#endif