/*
 * This file is autogenerated with bcop:
 * The Compiz option code generator
 *
 * 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.
 *
 */

#ifndef _SNAP_OPTIONS_H
#define _SNAP_OPTIONS_H

#ifndef _SNAP_OPTIONS_INTERNAL
#define getCompPluginInfo snapOptionsGetCompPluginInfo
#endif

#ifdef  __cplusplus
extern "C" {
#endif

CompPluginVTable *snapOptionsGetCompPluginInfo (void);

typedef enum
{
    SnapDisplayOptionAvoidSnap,
    SnapDisplayOptionNum
} SnapDisplayOptions;

typedef void (*snapDisplayOptionChangeNotifyProc) (CompDisplay *display, CompOption *opt, SnapDisplayOptions num);

CompOption *snapGetDisplayOption (CompDisplay *d, SnapDisplayOptions num);

typedef enum
{
    SnapScreenOptionSnapType,
    SnapScreenOptionEdgesCategories,
    SnapScreenOptionResistanceDistance,
    SnapScreenOptionAttractionDistance,
    SnapScreenOptionNum
} SnapScreenOptions;

typedef void (*snapScreenOptionChangeNotifyProc) (CompScreen *screen, CompOption *opt, SnapScreenOptions num);

CompOption *snapGetScreenOption (CompScreen *s, SnapScreenOptions num);

#define AvoidSnapShiftMask (1 << 0)
#define AvoidSnapAltMask (1 << 1)
#define AvoidSnapControlMask (1 << 2)
#define AvoidSnapMetaMask (1 << 3)


#define SnapTypeEdgeResistanceMask (1 << 0)
#define SnapTypeEdgeAttractionMask (1 << 1)


#define EdgesCategoriesScreenEdgesMask (1 << 0)
#define EdgesCategoriesWindowEdgesMask (1 << 1)


CompListValue *  snapGetAvoidSnap (CompDisplay *d);
unsigned int     snapGetAvoidSnapMask (CompDisplay *d);
CompOption *     snapGetAvoidSnapOption (CompDisplay *d);
void             snapSetAvoidSnapNotify (CompDisplay *d, snapDisplayOptionChangeNotifyProc notify);
            
CompListValue *  snapGetSnapType (CompScreen *s);
unsigned int     snapGetSnapTypeMask (CompScreen *s);
CompOption *     snapGetSnapTypeOption (CompScreen *s);
void             snapSetSnapTypeNotify (CompScreen *s, snapScreenOptionChangeNotifyProc notify);
            
CompListValue *  snapGetEdgesCategories (CompScreen *s);
unsigned int     snapGetEdgesCategoriesMask (CompScreen *s);
CompOption *     snapGetEdgesCategoriesOption (CompScreen *s);
void             snapSetEdgesCategoriesNotify (CompScreen *s, snapScreenOptionChangeNotifyProc notify);
            
int              snapGetResistanceDistance (CompScreen *s);
CompOption *     snapGetResistanceDistanceOption (CompScreen *s);
void             snapSetResistanceDistanceNotify (CompScreen *s, snapScreenOptionChangeNotifyProc notify);
            
int              snapGetAttractionDistance (CompScreen *s);
CompOption *     snapGetAttractionDistanceOption (CompScreen *s);
void             snapSetAttractionDistanceNotify (CompScreen *s, snapScreenOptionChangeNotifyProc notify);
            
#ifdef  __cplusplus
}
#endif

#endif


syntax highlighted by Code2HTML, v. 0.9.1