/*-------------------------------------------------------------------------*/ void qmonMatrixSelect(Widget w, XtPointer cld, XtPointer cad) { XbaeMatrixSelectCellCallbackStruct *cbs = (XbaeMatrixSelectCellCallbackStruct*) cad; int select_begin=0; int i; Widget* matrices = (Widget*) cld; DENTER(GUI_LAYER, "qmonMatrixSelect"); if (cbs->params && !strcmp(cbs->params[0], "begin")) { XbaeMatrixDeselectAll(w); while (matrices && *matrices) { XbaeMatrixDeselectAll(*matrices); matrices++; } XbaeMatrixSelectRow(w, cbs->row); } if (cbs->params && !strcmp(cbs->params[0], "end")) { while (matrices && *matrices) { XbaeMatrixDeselectAll(*matrices); matrices++; } select_begin = XbaeMatrixFirstSelectedRow(w); if (select_begin == -1) { XbaeMatrixSelectRow(w, cbs->row); DEXIT; return; } if (cbs->row < select_begin) { for (i=cbs->row; i<select_begin; i++) XbaeMatrixSelectRow(w, i); } else { for (i=select_begin; i<=cbs->row; i++) XbaeMatrixSelectRow(w, i); } } if (cbs->params && !strcmp(cbs->params[0], "toggle")) { if (XbaeMatrixIsRowSelected(w, cbs->row)) { DPRINTF(("XbaeMatrixDeselectRow\n")); XbaeMatrixDeselectRow(w, cbs->row); } else { XbaeMatrixSelectRow(w, cbs->row); DPRINTF(("XbaeMatrixSelectRow\n")); } } if (cbs->params && !strcmp(cbs->params[0], "editall")) { XbaeMatrixEditCell(w, cbs->row, cbs->column); } if (cbs->params && !strcmp(cbs->params[0], "edit") && cbs->column != 0) { XbaeMatrixEditCell(w, cbs->row, cbs->column); } DEXIT; }
void selectCB(Widget w, XtPointer client_data, XtPointer call_data) { XbaeMatrixSelectCellCallbackStruct *sc = (XbaeMatrixSelectCellCallbackStruct *) call_data; XbaeMatrixSelectRow(w, sc->row); XbaeMatrixSelectColumn(w, sc->column); }
/*********************************************************************** * * * When selecting a cell highlight the complete row. * * * ***********************************************************************/ static void matrix_select_cb(Widget w, XtPointer cd, XbaeMatrixSelectCellCallbackStruct *cbs) { static int prev_row = 0; if (cbs->row != prev_row) { XbaeMatrixDeselectAll(w); XbaeMatrixSelectRow(w, cbs->row); prev_row = cbs->row; } }