Files
pymol-open-source/layer1/SceneMouse.h
2024-01-30 16:39:08 -05:00

93 lines
2.2 KiB
C++

#pragma once
#include "Picking.h"
#include "pymol/zstring_view.h"
struct Block;
struct PyMOLGlobals;
namespace pymol
{
struct CObject;
}
struct NamedPickContext {
std::string name;
int state;
};
struct NamedPicking {
Pickable src;
NamedPickContext context;
NamedPicking(const Picking& pick);
};
void SceneClickObject(PyMOLGlobals* G, pymol::CObject* obj, const NamedPicking& LastPicked,
int mode, pymol::zstring_view sel_mode_kw);
void SceneClickTransformObject(
PyMOLGlobals* G, pymol::CObject* obj, const NamedPicking& LastPicked, int mode, bool is_single_click);
void SceneClickPickBond(PyMOLGlobals* G, int x, int y, int mode, const NamedPicking& LastPicked);
/**
* Handles mouse clicks in the scene
* @param block Scene block
* @param button button pressed
* @param x x coordinate
* @param y y coordinate
* @param mod modifier key
* @param when time of event
*
* @pre Active rendering context
*/
void SceneClick(Block* block, int button, int x, int y, int mod, double when);
/**
* Handles mouse release in the scene
* @param block Scene block
* @param button button released
* @param x x coordinate
* @param y y coordinate
* @param mod modifier key
* @param when time of event
*
* @pre Active rendering context
*/
void SceneRelease(Block* block, int button, int x, int y, int mod, double when);
/**
* Handles mouse drag in the scene
* @param block Scene block
* @param button button released
* @param x x coordinate
* @param y y coordinate
* @param mod modifier key
* @param when time of event
*
* @pre Active rendering context
*/
void SceneDrag(Block* block, int x, int y, int mod, double when);
/**
* Handles mouse drag in the scene
* @param block Scene block
* @param button button released
* @param x x coordinate
* @param y y coordinate
* @param mod modifier key
* @param when time of event
*
* @pre Active rendering context
*/
void SceneMouseMove(Block* block, int x, int y, int mod, double when);
/**
* Deselect or toggle off entries
* @param button button pressed
* @param mod modifier key
* @param mode button mode
* @return if something has been deselected or toggled
*/
void SceneClickPickNothing(PyMOLGlobals* G, int button, int mod, int mode);