mirror of
https://github.com/schrodinger/pymol-open-source.git
synced 2026-06-04 20:04:21 +08:00
93 lines
2.2 KiB
C++
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);
|
|
|