/*========================================================================*/ static int WizardRelease(Block * block, int button, int x, int y, int mod) { PyMOLGlobals *G = block->G; register CWizard *I = G->Wizard; int LineHeight = SettingGetGlobal_i(G, cSetting_internal_gui_control_size); int a; a = ((I->Block->rect.top - (y + cWizardClickOffset)) - cWizardTopMargin) / LineHeight; if(I->Pressed) I->Pressed = -1; OrthoDirty(G); OrthoUngrab(G); if((a >= 0) && ((ov_size) a < I->NLine)) { switch (I->Line[a].type) { case cWizTypeButton: if(I->Stack >= 0) if(I->Wiz[I->Stack]) { PLog(G, I->Line[a].code, cPLog_pym); PParse(G, I->Line[a].code); PFlush(G); } break; } } I->Pressed = -1; return (1); }
static int ControlRelease(Block * block, int button, int x, int y, int mod) { PyMOLGlobals *G = block->G; register CControl *I = G->Control; int sel = 0; I->LastPos = x; sel = which_button(I, x, y); if(!I->SkipRelease) { switch (sel) { case 0: SceneSetFrame(G, 4, 0); PLog(G, "cmd.rewind()", cPLog_pym); break; case 1: SceneSetFrame(G, 5, -1); PLog(G, "cmd.back()", cPLog_pym); break; case 2: MoviePlay(G, cMovieStop); if(SettingGet(G, cSetting_sculpting)) SettingSet(G, cSetting_sculpting, 0); if(SettingGetGlobal_b(G, cSetting_rock)) SettingSetGlobal_b(G, cSetting_rock, false); ExecutiveDrawNow(G); OrthoDirty(G); PLog(G, "cmd.mstop()", cPLog_pym); break; case 3: if(!MoviePlaying(G)) { if(mod & cOrthoCTRL) { PLog(G, "cmd.rewind()", cPLog_pym); PLog(G, "cmd.mplay()", cPLog_pym); SceneSetFrame(G, 4, 0); MoviePlay(G, cMoviePlay); } else { PLog(G, "cmd.mplay()", cPLog_pym); MoviePlay(G, cMoviePlay); } } else { MoviePlay(G, cMovieStop); ExecutiveDrawNow(G); OrthoDirty(G); PLog(G, "cmd.mstop()", cPLog_pym); } break; case 4: SceneSetFrame(G, 5, 1); PLog(G, "cmd.forward()", cPLog_pym); break; case 5: if(mod & cOrthoCTRL) { SceneSetFrame(G, 3, 0); PLog(G, "cmd.middle()", cPLog_pym); } else { SceneSetFrame(G, 6, 0); PLog(G, "cmd.ending()", cPLog_pym); } break; case 6: if(SettingGetGlobal_b(G, cSetting_seq_view)) { SettingSetGlobal_b(G, cSetting_seq_view, 0); SeqChanged(G); PLog(G, "cmd.set('seq_view',0)", cPLog_pym); } else { SettingSetGlobal_b(G, cSetting_seq_view, 1); SeqChanged(G); PLog(G, "cmd.set('seq_view',1)", cPLog_pym); } OrthoDirty(G); break; case 7: SettingSetGlobal_b(G, cSetting_rock, !SettingGetGlobal_b(G, cSetting_rock)); if(SettingGetGlobal_b(G, cSetting_rock)) { SceneRestartSweepTimer(G); PLog(G, "cmd.rock(1)", cPLog_pym); } else PLog(G, "cmd.rock(0)", cPLog_pym); SceneRestartFrameTimer(G); OrthoDirty(G); break; case 8: PLog(G, "cmd.fullscreen()", cPLog_pym); ExecutiveFullScreen(G, -1); break; } OrthoDirty(G); OrthoUngrab(G); I->LastClickTime = UtilGetSeconds(G); I->DragFlag = false; I->Active = -1; I->Pressed = -1; } return (1); }