int windowMode = 1;
char *mem1, *mem2; // dummies, as this dialog can never be OK'ed
+static int currentPV, highTextStart[2], highTextEnd[2];
-void
-MemoProc (Option *opt, int n, int x, int y)
-{
- static int pressed; // keep track of button 3 state
- switch(n) {
- case 0: // pointer motion
- if(!pressed) return;
-// MovePV(x, y, lineGap + BOARD_HEIGHT * (squareSize + lineGap));
- break;
- case 3: // press button 3
- pressed = 1;
- SelectPV(opt, x, y);
- break;
- case -3: // release button 3
- pressed = 0;
- StopPV(opt);
- break;
- }
-}
+int MemoProc P((Option *opt, int n, int x, int y, char *text, int index));
Option engoutOptions[] = {
{ 0, LL|T2T, 17, NULL, NULL, NULL, NULL, Label, " " },
{ 0, NO_OK, 0, NULL, NULL, "", NULL, EndMark , "" }
};
+int
+MemoProc (Option *opt, int n, int x, int y, char *text, int index)
+{ // user callback for mouse events in memo
+ static int pressed; // keep track of button 3 state
+ int start, end, currentPV = (opt != &engoutOptions[5]);
+
+ switch(n) {
+ case 0: // pointer motion
+ if(!pressed) return FALSE; // only motion with button 3 down is of interest
+ MovePV(x, y, 500/*lineGap + BOARD_HEIGHT * (squareSize + lineGap)*/);
+ break;
+ case 3: // press button 3
+ pressed = 1;
+ if(LoadMultiPV(x, y, text, index, &start, &end, currentPV)) {
+#ifdef TODO_GTK
+ XawTextSetSelection( w, start, end );
+#endif
+ highTextStart[currentPV] = start; highTextEnd[currentPV] = end;
+ }
+ break;
+ case -3: // release button 3
+ pressed = 0;
+ highTextStart[currentPV] = highTextEnd[currentPV] = 0;
+ UnLoadPV();
+ break;
+ default:
+ return FALSE; // not meant for us; do regular event handler
+ }
+ return TRUE;
+}
+
void
SetIcon (int which, int field, int nIcon)
{ // first call into xengineoutput.c to pick up icon pixmap
Any<Btn3Down>: select-start() extend-end() SelectPV(0) \n \
<Btn3Up>: StopPV() \n";
-void
-SelectPV (Option *opt, int x, int y)
-{ // [HGM] pv: translate click to PV line, and load it for display
- int start, end, index;
- char *val;
- int currentPV = (opt->handle != memoWidget);
-#ifdef TODO_GTK
- XawTextGetSelectionPos(w, &index, &dummy);
- XtSetArg(arg, XtNstring, &val);
- XtGetValues(w, &arg, 1);
-#endif
- if(LoadMultiPV(x, y, val, index, &start, &end, currentPV)) {
-#ifdef TODO_GTK
- XawTextSetSelection( w, start, end );
-#endif
- highTextStart[currentPV] = start; highTextEnd[currentPV] = end;
- }
-}
-
-void
-StopPV (Option *opt)
-{ // [HGM] pv: on right-button release, stop displaying PV
-#ifdef TODO_GTK
- XawTextUnsetSelection( opt->handle );
-#endif
- highTextStart[currentPV] = highTextEnd[currentPV] = 0;
- UnLoadPV();
-#ifdef TODO_GTK
- XtCallActionProc(opt->handle, "beginning-of-file", event, NULL, 0);
-#endif
-}
-
//------------------------------- pane switching -----------------------------------
void