"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "layer1/ButMode.cpp" between
pymol-open-source-2.2.0.tar.gz and pymol-open-source-2.3.0.tar.gz

About: PyMOL is a Python-enhanced molecular graphics tool. It excels at 3D visualization of proteins, small molecules, density, surfaces, and trajectories. It also includes molecular editing, ray tracing, and movies. Open Source version.

ButMode.cpp  (pymol-open-source-2.2.0):ButMode.cpp  (pymol-open-source-2.3.0)
skipping to change at line 41 skipping to change at line 41
#include "Text.h" #include "Text.h"
#include "Menu.h" #include "Menu.h"
#include "CGO.h" #include "CGO.h"
#include "Movie.h" #include "Movie.h"
#define cButModeLineHeight DIP2PIXEL(12) #define cButModeLineHeight DIP2PIXEL(12)
#define cButModeLeftMargin DIP2PIXEL(2) #define cButModeLeftMargin DIP2PIXEL(2)
#define cButModeTopMargin DIP2PIXEL(1) #define cButModeTopMargin DIP2PIXEL(1)
#define cButModeBottomMargin DIP2PIXEL(2) #define cButModeBottomMargin DIP2PIXEL(2)
struct _CButMode { struct CButMode : public Block {
::Block *Block; CodeType Code[cButModeCount + 1] {};
CodeType Code[cButModeCount + 1]; int NCode {};
int NCode; int Mode[cButModeInputCount] {};
int Mode[cButModeInputCount]; int NBut {};
int NBut; float Rate { 0.0f };
float Rate; float RateShown { 0.0f };
float RateShown; float Samples { 0.0f }, Delay { 0.0f };
float Samples, Delay; float TextColor1[3] = { 0.5f, 0.5f, 1.0f };
float TextColor1[3]; float TextColor2[3] = { 0.8f, 0.8f, 0.8f };
float TextColor2[3]; float TextColor3[3] = { 1.0f, 0.5f, 0.5f };
float TextColor3[3]; int DeferCnt { 0 };
int DeferCnt; float DeferTime { 0.0f };
float DeferTime;
CButMode(PyMOLGlobals * G) : Block(G) {}
int click(int button, int x, int y, int mod) override;
void draw(CGO *orthoCGO) override;
bool fastDraw(CGO* orthoCGO) override;
}; };
/*========================================================================*/ /*========================================================================*/
Block *ButModeGetBlock(PyMOLGlobals * G) Block *ButModeGetBlock(PyMOLGlobals * G)
{ {
CButMode *I = G->ButMode; CButMode *I = G->ButMode;
{ {
return (I->Block); return (I);
} }
} }
int ButModeGetHeight(PyMOLGlobals * G) int ButModeGetHeight(PyMOLGlobals * G)
{ {
if(SettingGetGlobal_b(G, cSetting_mouse_grid)) if(SettingGetGlobal_b(G, cSetting_mouse_grid))
return DIP2PIXEL(124); return DIP2PIXEL(124);
else else
return DIP2PIXEL(40); return DIP2PIXEL(40);
} }
skipping to change at line 134 skipping to change at line 139
CButMode *I = G->ButMode; CButMode *I = G->ButMode;
I->Samples = 0.0; I->Samples = 0.0;
I->Rate = 0.0; I->Rate = 0.0;
I->RateShown = 0; I->RateShown = 0;
I->Delay = 0; I->Delay = 0;
} }
/*========================================================================*/ /*========================================================================*/
void ButModeFree(PyMOLGlobals * G) void ButModeFree(PyMOLGlobals * G)
{ {
CButMode *I = G->ButMode; DeleteP(G->ButMode);
OrthoFreeBlock(G, I->Block);
FreeP(G->ButMode);
} }
/*========================================================================*/ /*========================================================================*/
static int ButModeClick(Block * block, int button, int x, int y, int mod) int CButMode::click(int button, int x, int y, int mod)
{ {
PyMOLGlobals *G = block->G; int dy = (y - rect.bottom) / cButModeLineHeight;
int dy = (y - block->rect.bottom) / cButModeLineHeight;
// int dx = (x - block->rect.left); // int dx = (x - block->rect.left);
int forward = 1; int forward = 1;
// TAKEN OUT : BB 12/11 : Mouse position should not have // TAKEN OUT : BB 12/11 : Mouse position should not have
// an effect on whether the mouse ring goes forwards or // an effect on whether the mouse ring goes forwards or
// backwards. // backwards.
// forward = (dx > ((block->rect.right - block->rect.left) / 2)); // forward = (dx > ((block->rect.right - block->rect.left) / 2));
// //
/* register CButMode *I=block->G->ButMode; */ /* register CButMode *I=block->G->ButMode; */
if(button == P_GLUT_BUTTON_SCROLL_BACKWARD || button == P_GLUT_RIGHT_BUTTON) if(button == P_GLUT_BUTTON_SCROLL_BACKWARD || button == P_GLUT_RIGHT_BUTTON)
forward = !forward; forward = !forward;
if(mod == cOrthoSHIFT) if(mod == cOrthoSHIFT)
forward = !forward; forward = !forward;
if(dy < 2) { if(dy < 2) {
if(ButModeTranslate(G, P_GLUT_SINGLE_LEFT, 0) != cButModePickAtom) { if(ButModeTranslate(m_G, P_GLUT_SINGLE_LEFT, 0) != cButModePickAtom) {
if(!forward) { if(!forward) {
PLog(G, "cmd.mouse('select_backward')", cPLog_pym); PLog(m_G, "cmd.mouse('select_backward')", cPLog_pym);
OrthoCommandIn(G, "mouse select_backward,quiet=1"); OrthoCommandIn(m_G, "mouse select_backward,quiet=1");
} else { } else {
PLog(G, "cmd.mouse('select_forward')", cPLog_pym); PLog(m_G, "cmd.mouse('select_forward')", cPLog_pym);
OrthoCommandIn(G, "mouse select_forward,quiet=1"); OrthoCommandIn(m_G, "mouse select_forward,quiet=1");
} }
} }
} else { } else {
if(button == P_GLUT_RIGHT_BUTTON) { if(button == P_GLUT_RIGHT_BUTTON) {
MenuActivate0Arg(G,x,y,x,y,false,"mouse_config"); MenuActivate0Arg(m_G,x,y,x,y,false,"mouse_config");
} else { } else {
if(!forward) { if(!forward) {
PLog(G, "cmd.mouse('backward')", cPLog_pym); PLog(m_G, "cmd.mouse('backward')", cPLog_pym);
OrthoCommandIn(G, "mouse backward,quiet=1"); OrthoCommandIn(m_G, "mouse backward,quiet=1");
} else { } else {
PLog(G, "cmd.mouse('forward')", cPLog_pym); PLog(m_G, "cmd.mouse('forward')", cPLog_pym);
OrthoCommandIn(G, "mouse forward,quiet=1"); OrthoCommandIn(m_G, "mouse forward,quiet=1");
} }
} }
} }
return (1); return (1);
} }
short ButModeDrawFastImpl(Block * block, short definitely ORTHOCGOARG); static bool ButModeDrawFastImpl(Block * block, short definitely ORTHOCGOARG);
/*========================================================================*/ /*========================================================================*/
static void ButModeDraw(Block * block ORTHOCGOARG) void CButMode::draw(CGO* orthoCGO)
{ {
PyMOLGlobals *G = block->G;
CButMode *I = G->ButMode;
int x, y, a; int x, y, a;
int mode; int mode;
float *textColor = I->Block->TextColor; const float *textColor = TextColor;
float *textColor2 = I->TextColor2; const float *textColor2 = TextColor2;
CButMode *I = this; // TODO: Remove during ButMode refactor
#define BLANK_STR " " #define BLANK_STR " "
if(G->HaveGUI && G->ValidContext && ((block->rect.right - block->rect.left) > if(m_G->HaveGUI && m_G->ValidContext && ((rect.right - rect.left) > 6)) {
6)) { if(SettingGetGlobal_b(m_G, cSetting_internal_gui_mode) == 0) {
if(SettingGetGlobal_b(G, cSetting_internal_gui_mode) == 0) {
if (orthoCGO) if (orthoCGO)
CGOColorv(orthoCGO, I->Block->BackColor); CGOColorv(orthoCGO, BackColor);
#ifndef PURE_OPENGL_ES_2 #ifndef PURE_OPENGL_ES_2
else else
glColor3fv(I->Block->BackColor); glColor3fv(BackColor);
#endif #endif
BlockFill(I->Block ORTHOCGOARGVAR); fill(orthoCGO);
BlockDrawLeftEdge(I->Block ORTHOCGOARGVAR); drawLeftEdge(orthoCGO);
} else { } else {
BlockDrawLeftEdge(I->Block ORTHOCGOARGVAR); drawLeftEdge(orthoCGO);
if (orthoCGO) if (orthoCGO)
CGOColor(orthoCGO, .5f, .5f, .5f); CGOColor(orthoCGO, .5f, .5f, .5f);
#ifndef PURE_OPENGL_ES_2 #ifndef PURE_OPENGL_ES_2
else else
glColor3f(0.5, 0.5, 0.5); glColor3f(0.5, 0.5, 0.5);
#endif #endif
BlockDrawTopEdge(I->Block); drawTopEdge();
textColor2 = OrthoGetOverlayColor(G); textColor2 = OrthoGetOverlayColor(m_G);
textColor = textColor2; textColor = textColor2;
} }
x = I->Block->rect.left + cButModeLeftMargin; x = rect.left + cButModeLeftMargin;
y = (I->Block->rect.top - cButModeLineHeight) - cButModeTopMargin; y = (rect.top - cButModeLineHeight) - cButModeTopMargin;
TextSetColor(G, textColor); TextSetColor(m_G, textColor);
TextDrawStrAt(G, "Mouse Mode ", x + 1, y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "Mouse Mode ", x + 1, y ORTHOCGOARGVAR);
TextSetColor(G, I->TextColor3); TextSetColor(m_G, TextColor3);
TextDrawStrAt(G, SettingGetGlobal_s(G, cSetting_button_mode_name), x + DIP2P TextDrawStrAt(m_G, SettingGetGlobal_s(m_G, cSetting_button_mode_name), x + D
IXEL(88), y ORTHOCGOARGVAR); IP2PIXEL(88), y ORTHOCGOARGVAR);
/* TextDrawStrAt(G,"2-Bttn Selecting",x+88,y); */ /* TextDrawStrAt(m_G,"2-Bttn Selecting",x+88,y); */
y -= cButModeLineHeight; y -= cButModeLineHeight;
if(SettingGetGlobal_b(G, cSetting_mouse_grid)) { if(SettingGetGlobal_b(m_G, cSetting_mouse_grid)) {
TextSetColor(G, I->TextColor3); TextSetColor(m_G, TextColor3);
TextDrawStrAt(G, "Buttons", x + DIP2PIXEL(6), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "Buttons", x + DIP2PIXEL(6), y ORTHOCGOARGVAR);
TextSetColor(G, I->TextColor1); TextSetColor(m_G, TextColor1);
/* TextDrawStrAt(G," Left Mddl Rght Scrl",x+48,y); */ /* TextDrawStrAt(m_G," Left Mddl Rght Scrl",x+48,y); */
TextDrawStrAt(G, " L M R Wheel", x + DIP2PIXEL(43), y ORTHOCGOAR TextDrawStrAt(m_G, " L M R Wheel", x + DIP2PIXEL(43), y ORTHOCGO
GVAR); ARGVAR);
y -= cButModeLineHeight; y -= cButModeLineHeight;
/* glColor3fv(I->Block->TextColor); /* glColor3fv(I->Block->TextColor);
TextDrawStrAt(G,"K",x,y-4); */ TextDrawStrAt(m_G,"K",x,y-4); */
TextSetColor(G, I->TextColor3); TextSetColor(m_G, TextColor3);
TextDrawStrAt(G, "&", x + DIP2PIXEL(12), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "&", x + DIP2PIXEL(12), y ORTHOCGOARGVAR);
TextDrawStrAt(G, "Keys", x + DIP2PIXEL(24), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "Keys", x + DIP2PIXEL(24), y ORTHOCGOARGVAR);
TextSetColor(G, textColor2); TextSetColor(m_G, textColor2);
TextSetPos2i(G, x + DIP2PIXEL(64), y); TextSetPos2i(m_G, x + DIP2PIXEL(64), y);
for(a = 0; a < 3; a++) { for(a = 0; a < 3; a++) {
mode = I->Mode[a]; mode = Mode[a];
if(mode < 0) if(mode < 0)
TextDrawStr(G, BLANK_STR ORTHOCGOARGVAR); TextDrawStr(m_G, BLANK_STR ORTHOCGOARGVAR);
else else
TextDrawStr(G, I->Code[mode] ORTHOCGOARGVAR); TextDrawStr(m_G, Code[mode] ORTHOCGOARGVAR);
} }
mode = I->Mode[12]; mode = Mode[12];
if(mode < 0) if(mode < 0)
TextDrawStr(G, BLANK_STR ORTHOCGOARGVAR); TextDrawStr(m_G, BLANK_STR ORTHOCGOARGVAR);
else else
TextDrawStr(G, I->Code[mode] ORTHOCGOARGVAR); TextDrawStr(m_G, Code[mode] ORTHOCGOARGVAR);
y -= cButModeLineHeight; y -= cButModeLineHeight;
/* TextSetColor(G,I->Block->TextColor); /* TextSetColor(m_G,I->Block->TextColor);
TextDrawStrAt(G,"e",x+5,y-1); */ TextDrawStrAt(m_G,"e",x+5,y-1); */
TextSetColor(G, I->TextColor1); TextSetColor(m_G, TextColor1);
TextSetColor(G, I->TextColor1); TextSetColor(m_G, TextColor1);
TextDrawStrAt(G, "Shft ", x + DIP2PIXEL(24), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "Shft ", x + DIP2PIXEL(24), y ORTHOCGOARGVAR);
TextSetColor(G, textColor2); TextSetColor(m_G, textColor2);
TextSetPos2i(G, x + DIP2PIXEL(64), y); TextSetPos2i(m_G, x + DIP2PIXEL(64), y);
for(a = 3; a < 6; a++) { for(a = 3; a < 6; a++) {
mode = I->Mode[a]; mode = I->Mode[a];
if(mode < 0) if(mode < 0)
TextDrawStr(G, BLANK_STR ORTHOCGOARGVAR); TextDrawStr(m_G, BLANK_STR ORTHOCGOARGVAR);
else else
TextDrawStr(G, I->Code[mode] ORTHOCGOARGVAR); TextDrawStr(m_G, Code[mode] ORTHOCGOARGVAR);
} }
mode = I->Mode[13]; mode = Mode[13];
if(mode < 0) if(mode < 0)
TextDrawStr(G, BLANK_STR ORTHOCGOARGVAR); TextDrawStr(m_G, BLANK_STR ORTHOCGOARGVAR);
else else
TextDrawStr(G, I->Code[mode] ORTHOCGOARGVAR); TextDrawStr(m_G, Code[mode] ORTHOCGOARGVAR);
y -= cButModeLineHeight; y -= cButModeLineHeight;
/* glColor3fv(I->Block->TextColor); /* glColor3fv(I->Block->TextColor);
TextDrawStrAt(G,"y",x+10,y+2); */ TextDrawStrAt(m_G,"y",x+10,y+2); */
TextSetColor(G, I->TextColor1); TextSetColor(m_G, TextColor1);
TextDrawStrAt(G, "Ctrl ", x + DIP2PIXEL(24), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "Ctrl ", x + DIP2PIXEL(24), y ORTHOCGOARGVAR);
TextSetColor(G, textColor2); TextSetColor(m_G, textColor2);
TextSetPos2i(G, x + DIP2PIXEL(64), y); TextSetPos2i(m_G, x + DIP2PIXEL(64), y);
for(a = 6; a < 9; a++) { for(a = 6; a < 9; a++) {
mode = I->Mode[a]; mode = I->Mode[a];
if(mode < 0) if(mode < 0)
TextDrawStr(G, BLANK_STR ORTHOCGOARGVAR); TextDrawStr(m_G, BLANK_STR ORTHOCGOARGVAR);
else else
TextDrawStr(G, I->Code[mode] ORTHOCGOARGVAR); TextDrawStr(m_G, Code[mode] ORTHOCGOARGVAR);
} }
mode = I->Mode[14]; mode = I->Mode[14];
if(mode < 0) if(mode < 0)
TextDrawStr(G, BLANK_STR ORTHOCGOARGVAR); TextDrawStr(m_G, BLANK_STR ORTHOCGOARGVAR);
else else
TextDrawStr(G, I->Code[mode] ORTHOCGOARGVAR); TextDrawStr(m_G, Code[mode] ORTHOCGOARGVAR);
y -= cButModeLineHeight; y -= cButModeLineHeight;
/* glColor3fv(I->Block->TextColor); /* glColor3fv(I->Block->TextColor);
TextDrawStrAt(G,"s",x+15,y+3); */ TextDrawStrAt(m_G,"s",x+15,y+3); */
TextSetColor(G, I->TextColor1); TextSetColor(m_G, TextColor1);
TextSetColor(G, I->TextColor1); TextSetColor(m_G, TextColor1);
TextDrawStrAt(G, "CtSh ", x + DIP2PIXEL(24), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "CtSh ", x + DIP2PIXEL(24), y ORTHOCGOARGVAR);
TextSetColor(G, textColor2); TextSetColor(m_G, textColor2);
TextSetPos2i(G, x + DIP2PIXEL(64), y); TextSetPos2i(m_G, x + DIP2PIXEL(64), y);
for(a = 9; a < 12; a++) { for(a = 9; a < 12; a++) {
mode = I->Mode[a]; mode = Mode[a];
if(mode < 0) if(mode < 0)
TextDrawStr(G, BLANK_STR ORTHOCGOARGVAR); TextDrawStr(m_G, BLANK_STR ORTHOCGOARGVAR);
else else
TextDrawStr(G, I->Code[mode] ORTHOCGOARGVAR); TextDrawStr(m_G, Code[mode] ORTHOCGOARGVAR);
} }
mode = I->Mode[15]; mode = Mode[15];
if(mode < 0) if(mode < 0)
TextDrawStr(G, BLANK_STR ORTHOCGOARGVAR); TextDrawStr(m_G, BLANK_STR ORTHOCGOARGVAR);
else else
TextDrawStr(G, I->Code[mode] ORTHOCGOARGVAR); TextDrawStr(m_G, Code[mode] ORTHOCGOARGVAR);
y -= cButModeLineHeight; y -= cButModeLineHeight;
TextSetColor(G, I->Block->TextColor); TextSetColor(m_G, TextColor);
TextSetColor(G, I->TextColor1); TextSetColor(m_G, TextColor1);
TextDrawStrAt(G, " SnglClk", x - DIP2PIXEL(8), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, " SnglClk", x - DIP2PIXEL(8), y ORTHOCGOARGVAR);
TextSetColor(G, textColor2); TextSetColor(m_G, textColor2);
TextSetPos2i(G, x + DIP2PIXEL(64), y); TextSetPos2i(m_G, x + DIP2PIXEL(64), y);
for(a = 19; a < 22; a++) { for(a = 19; a < 22; a++) {
mode = I->Mode[a]; mode = Mode[a];
if(mode < 0) if(mode < 0)
TextDrawStr(G, BLANK_STR ORTHOCGOARGVAR); TextDrawStr(m_G, BLANK_STR ORTHOCGOARGVAR);
else else
TextDrawStr(G, I->Code[mode] ORTHOCGOARGVAR); TextDrawStr(m_G, Code[mode] ORTHOCGOARGVAR);
} }
TextSetColor(G, I->Block->TextColor); TextSetColor(m_G, TextColor);
y -= cButModeLineHeight; y -= cButModeLineHeight;
TextSetColor(G, I->Block->TextColor); TextSetColor(m_G, TextColor);
TextSetColor(G, I->TextColor1); TextSetColor(m_G, TextColor1);
TextDrawStrAt(G, " DblClk", x, y ORTHOCGOARGVAR); TextDrawStrAt(m_G, " DblClk", x, y ORTHOCGOARGVAR);
TextSetColor(G, textColor2); TextSetColor(m_G, textColor2);
TextSetPos2i(G, x + DIP2PIXEL(64), y); TextSetPos2i(m_G, x + DIP2PIXEL(64), y);
for(a = 16; a < 19; a++) { for(a = 16; a < 19; a++) {
mode = I->Mode[a]; mode = I->Mode[a];
if(mode < 0) if(mode < 0)
TextDrawStr(G, BLANK_STR ORTHOCGOARGVAR); TextDrawStr(m_G, BLANK_STR ORTHOCGOARGVAR);
else else
TextDrawStr(G, I->Code[mode] ORTHOCGOARGVAR); TextDrawStr(m_G, Code[mode] ORTHOCGOARGVAR);
} }
TextSetColor(G, I->Block->TextColor); TextSetColor(m_G, TextColor);
y -= cButModeLineHeight; y -= cButModeLineHeight;
} }
{ {
TextSetColor(G, textColor); TextSetColor(m_G, textColor);
if(ButModeTranslate(G, P_GLUT_SINGLE_LEFT, 0) == cButModePickAtom) { if(ButModeTranslate(m_G, P_GLUT_SINGLE_LEFT, 0) == cButModePickAtom) {
TextDrawStrAt(G, "Picking ", x, y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "Picking ", x, y ORTHOCGOARGVAR);
TextSetColor(G, I->TextColor3); TextSetColor(m_G, TextColor3);
TextDrawStrAt(G, "Atoms (and Joints)", x + DIP2PIXEL(64), y ORTHOCGOARGV TextDrawStrAt(m_G, "Atoms (and Joints)", x + DIP2PIXEL(64), y ORTHOCGOAR
AR); GVAR);
} else { } else {
TextDrawStrAt(G, "Selecting ", x, y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "Selecting ", x, y ORTHOCGOARGVAR);
TextSetColor(G, I->TextColor3); TextSetColor(m_G, TextColor3);
switch (SettingGetGlobal_i(G, cSetting_mouse_selection_mode)) { switch (SettingGetGlobal_i(m_G, cSetting_mouse_selection_mode)) {
case 0: case 0:
TextDrawStrAt(G, "Atoms", x + DIP2PIXEL(80), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "Atoms", x + DIP2PIXEL(80), y ORTHOCGOARGVAR);
break; break;
case 1: case 1:
TextDrawStrAt(G, "Residues", x + DIP2PIXEL(80), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "Residues", x + DIP2PIXEL(80), y ORTHOCGOARGVAR);
break; break;
case 2: case 2:
TextDrawStrAt(G, "Chains", x + DIP2PIXEL(80), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "Chains", x + DIP2PIXEL(80), y ORTHOCGOARGVAR);
break; break;
case 3: case 3:
TextDrawStrAt(G, "Segments", x + DIP2PIXEL(80), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "Segments", x + DIP2PIXEL(80), y ORTHOCGOARGVAR);
break; break;
case 4: case 4:
TextDrawStrAt(G, "Objects", x + DIP2PIXEL(80), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "Objects", x + DIP2PIXEL(80), y ORTHOCGOARGVAR);
break; break;
case 5: case 5:
TextDrawStrAt(G, "Molecules", x + DIP2PIXEL(80), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "Molecules", x + DIP2PIXEL(80), y ORTHOCGOARGVAR);
break; break;
case 6: case 6:
TextDrawStrAt(G, "C-alphas", x + DIP2PIXEL(80), y ORTHOCGOARGVAR); TextDrawStrAt(m_G, "C-alphas", x + DIP2PIXEL(80), y ORTHOCGOARGVAR);
break; break;
} }
} }
} }
} }
if (!ORTHOCGOARGB || !(SettingGetGlobal_b(G, cSetting_show_frame_rate) || Movi if (!ORTHOCGOARGB || !(SettingGetGlobal_b(m_G, cSetting_show_frame_rate) || Mo
ePlaying(G))) { viePlaying(m_G))) {
ButModeDrawFastImpl(block, true ORTHOCGOARGVAR); ButModeDrawFastImpl(this, true ORTHOCGOARGVAR);
} }
} }
static short ButModeDrawFast(Block * block ORTHOCGOARG){ bool CButMode::fastDraw(CGO* orthoCGO){
return ButModeDrawFastImpl(block, false ORTHOCGOARGVAR); return ButModeDrawFastImpl(this, false, orthoCGO);
} }
short ButModeDrawFastImpl(Block * block, short definitely ORTHOCGOARG) static bool ButModeDrawFastImpl(Block * block, short definitely ORTHOCGOARG)
{ {
PyMOLGlobals *G = block->G; PyMOLGlobals *G = block->m_G;
CButMode *I = G->ButMode; CButMode *I = block->m_G->ButMode;
int x, y; int x, y;
float *textColor = I->Block->TextColor; float *textColor = I->TextColor;
float *textColor2 = I->TextColor2; float *textColor2 = I->TextColor2;
if (!definitely && (!(SettingGetGlobal_b(G, cSetting_show_frame_rate) || Movie Playing(G)))) { if (!definitely && (!(SettingGetGlobal_b(G, cSetting_show_frame_rate) || Movie Playing(G)))) {
return false; return false;
} }
x = I->Block->rect.left + cButModeLeftMargin; x = I->rect.left + cButModeLeftMargin;
y = I->Block->rect.bottom + cButModeLineHeight + cButModeBottomMargin; y = I->rect.bottom + cButModeLineHeight + cButModeBottomMargin;
TextSetColor(G, I->Block->TextColor); TextSetColor(G, I->TextColor);
y -= cButModeLineHeight; y -= cButModeLineHeight;
#ifndef PURE_OPENGL_ES_2 #ifndef PURE_OPENGL_ES_2
{ {
int buffer; int buffer;
/* TODO : Why do we only do this for the back right buffer, /* TODO : Why do we only do this for the back right buffer,
for performance? */ for performance? */
glGetIntegerv(GL_DRAW_BUFFER, (GLint *) & buffer); glGetIntegerv(GL_DRAW_BUFFER, (GLint *) & buffer);
if(buffer != GL_BACK_RIGHT) { if(buffer != GL_BACK_RIGHT) {
#else #else
{ {
skipping to change at line 476 skipping to change at line 476
} else if(frame_rate) { } else if(frame_rate) {
} }
} }
return true; return true;
} }
/*========================================================================*/ /*========================================================================*/
int ButModeInit(PyMOLGlobals * G) int ButModeInit(PyMOLGlobals * G)
{ {
CButMode *I = NULL; CButMode *I = NULL;
if((I = (G->ButMode = Calloc(CButMode, 1)))) { if((I = (G->ButMode = new CButMode(G)))) {
int a; int a;
I->Rate = 0.0; I->Rate = 0.0;
I->Samples = 0.0; I->Samples = 0.0;
I->RateShown = 0.0; I->RateShown = 0.0;
I->Delay = 0.0; I->Delay = 0.0;
I->DeferCnt = 0; I->DeferCnt = 0;
I->DeferTime = 0.0F; I->DeferTime = 0.0F;
I->NCode = cButModeCount; I->NCode = cButModeCount;
skipping to change at line 550 skipping to change at line 550
strcpy(I->Code[cButModeMovViewZ], "MvVZ "); strcpy(I->Code[cButModeMovViewZ], "MvVZ ");
strcpy(I->Code[cButModeDragObj], "DrgO "); strcpy(I->Code[cButModeDragObj], "DrgO ");
strcpy(I->Code[cButModeInvMoveSlabAndZoom], "IMSZ "); strcpy(I->Code[cButModeInvMoveSlabAndZoom], "IMSZ ");
strcpy(I->Code[cButModeInvTransZ], "IMvZ "); strcpy(I->Code[cButModeInvTransZ], "IMvZ ");
strcpy(I->Code[cButModeSeleSetBox], " Box "); strcpy(I->Code[cButModeSeleSetBox], " Box ");
strcpy(I->Code[cButModeInvRotZ], "IRtZ "); strcpy(I->Code[cButModeInvRotZ], "IRtZ ");
strcpy(I->Code[cButModeRotL], "RotL " ); strcpy(I->Code[cButModeRotL], "RotL " );
strcpy(I->Code[cButModeMovL], "MovL " ); strcpy(I->Code[cButModeMovL], "MovL " );
strcpy(I->Code[cButModeMvzL], "MvzL " ); strcpy(I->Code[cButModeMvzL], "MvzL " );
I->Block = OrthoNewBlock(G, NULL); I->active = true;
I->Block->fClick = ButModeClick;
I->Block->fDraw = ButModeDraw; I->TextColor[0] = 0.2F;
I->Block->fFastDraw = ButModeDrawFast; I->TextColor[1] = 1.0F;
I->Block->fReshape = BlockReshape; I->TextColor[2] = 0.2F;
I->Block->active = true;
I->Block->TextColor[0] = 0.2F;
I->Block->TextColor[1] = 1.0F;
I->Block->TextColor[2] = 0.2F;
I->TextColor1[0] = 0.5F; I->TextColor1[0] = 0.5F;
I->TextColor1[1] = 0.5F; I->TextColor1[1] = 0.5F;
I->TextColor1[2] = 1.0F; I->TextColor1[2] = 1.0F;
I->TextColor2[0] = 0.8F; I->TextColor2[0] = 0.8F;
I->TextColor2[1] = 0.8F; I->TextColor2[1] = 0.8F;
I->TextColor2[2] = 0.8F; I->TextColor2[2] = 0.8F;
I->TextColor3[0] = 1.0F; I->TextColor3[0] = 1.0F;
I->TextColor3[1] = 0.5F; I->TextColor3[1] = 0.5F;
I->TextColor3[2] = 0.5F; I->TextColor3[2] = 0.5F;
OrthoAttach(G, I->Block, cOrthoTool); OrthoAttach(G, I, cOrthoTool);
return 1; return 1;
} else } else
return 0; return 0;
} }
/*========================================================================*/ /*========================================================================*/
int ButModeCheckPossibleSingleClick(PyMOLGlobals * G, int button, int mod) int ButModeCheckPossibleSingleClick(PyMOLGlobals * G, int button, int mod)
{ {
int click_button = -1; int click_button = -1;
switch (button) { switch (button) {
 End of changes. 79 change blocks. 
166 lines changed or deleted 160 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)