Beispiel #1
0
/*-------------------------------------------------------------------------*/
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;
}
Beispiel #2
0
void selectCB(Widget w, XtPointer client_data, XtPointer call_data)
{
    XbaeMatrixSelectCellCallbackStruct *sc =
    (XbaeMatrixSelectCellCallbackStruct *) call_data;
    XbaeMatrixSelectRow(w, sc->row);
    XbaeMatrixSelectColumn(w, sc->column);
}
Beispiel #3
0
/***********************************************************************
 *                                                                     *
 *   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;
   }
}