static void iMatrixDrawFocus(Ihandle* ih) { int x1, y1, x2, y2, dx, dy; if (iupAttribGetBoolean(ih, "HIDEFOCUS")) return; /* there are no cells that can get the focus */ if (ih->data->columns.num <= 1 || ih->data->lines.num <= 1) return; if (!iupMatrixAuxIsCellVisible(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell)) return; iupMatrixGetVisibleCellDim(ih, ih->data->lines.focus_cell, ih->data->columns.focus_cell, &x1, &y1, &dx, &dy); x2 = x1 + dx - 1; y2 = y1 + dy - 1; if (ih->data->columns.focus_cell == 1 && ih->data->columns.dt[0].size == 0) x1++; if (ih->data->lines.focus_cell == 1 && ih->data->lines.dt[0].size == 0) y1++; { cdCanvas* cd_canvas_front = (cdCanvas*)IupGetAttribute(ih, "_CD_CANVAS"); /* front buffer canvas */ IupCdDrawFocusRect(ih, cd_canvas_front, x1, iupMATRIX_INVERTYAXIS(ih, y1), x2, iupMATRIX_INVERTYAXIS(ih, y2)); } }
static int iDialRedraw_CB(Ihandle* ih) { if (!ih->data->cddbuffer) return IUP_DEFAULT; /* update display */ cdCanvasFlush(ih->data->cddbuffer); if (ih->data->has_focus) IupCdDrawFocusRect(ih, ih->data->cdcanvas, 0, 0, ih->data->w-1, ih->data->h-1); return IUP_DEFAULT; }
static void iDialRepaint(Ihandle* ih) { if (!ih->data->cddbuffer) return; /* update render */ cdCanvasBackground(ih->data->cddbuffer, ih->data->bgcolor); cdCanvasClear(ih->data->cddbuffer); ih->data->Draw(ih); /* update display */ cdCanvasFlush(ih->data->cddbuffer); if (ih->data->has_focus) IupCdDrawFocusRect(ih, ih->data->cdcanvas, 0, 0, ih->data->w-1, ih->data->h-1); }
static int iDialRedraw_CB(Ihandle* ih) { if (!ih->data->cd_canvas) return IUP_DEFAULT; /* update display */ cdCanvasFlush(ih->data->cd_canvas); if (ih->data->has_focus) { cdCanvas* cd_canvas_front = (cdCanvas*)IupGetAttribute(ih, "_CD_CANVAS"); /* front buffer canvas */ IupCdDrawFocusRect(ih, cd_canvas_front, 0, 0, ih->data->w - 1, ih->data->h - 1); } return IUP_DEFAULT; }
static void iDialRepaint(Ihandle* ih) { if (!ih->data->cd_canvas) return; cdCanvasActivate(ih->data->cd_canvas); /* update render */ cdCanvasBackground(ih->data->cd_canvas, ih->data->bgcolor); cdCanvasClear(ih->data->cd_canvas); ih->data->Draw(ih); /* update display */ cdCanvasFlush(ih->data->cd_canvas); if (ih->data->has_focus) { cdCanvas* cd_canvas_front = (cdCanvas*)IupGetAttribute(ih, "_CD_CANVAS"); /* front buffer canvas */ IupCdDrawFocusRect(ih, cd_canvas_front, 0, 0, ih->data->w - 1, ih->data->h - 1); } }