194
194
cairo_new_path (pCairoContext);
195
195
cairo_restore (pCairoContext);
197
double x1, x2, dx, h = pDock->iDecorationsHeight;
200
for (ic = pDock->icons; ic != NULL; ic = ic->next)
203
if (CAIRO_DOCK_IS_SEPARATOR (pIcon))
205
x1 = pIcon->fDrawX = pIcon->fX;
208
for (ic = ic->next; ic != NULL; ic = ic->next)
211
if (!CAIRO_DOCK_IS_SEPARATOR (pIcon))
222
g_print ("separator from %.2f to %.2f\n", x1, x2);
223
dx = MIN (fRadius, (x2 - x1) / 2);
225
cairo_move_to (pCairoContext, x1, 0.);
226
cairo_rel_curve_to (pCairoContext,
230
cairo_rel_move_to (pCairoContext,
232
cairo_rel_curve_to (pCairoContext,
236
cairo_close_path (pCairoContext);
238
cairo_set_operator (pCairoContext, CAIRO_OPERATOR_DEST_OUT);
239
cairo_set_source_rgba (pCairoContext, 0.0, 0.0, 0.0, 1.0);
240
cairo_fill (pCairoContext);
244
cairo_move_to (pCairoContext, x1, 0.);
245
cairo_rel_curve_to (pCairoContext,
249
cairo_rel_move_to (pCairoContext,
251
cairo_rel_curve_to (pCairoContext,
256
cairo_set_operator (pCairoContext, CAIRO_OPERATOR_OVER);
257
cairo_set_line_width (pCairoContext, fLineWidth);
258
cairo_set_source_rgba (pCairoContext, myBackground.fLineColor[0], myBackground.fLineColor[1], myBackground.fLineColor[2], myBackground.fLineColor[3]);
259
cairo_stroke (pCairoContext);
197
264
//\____________________ On dessine la ficelle qui les joint.
198
265
if (myIcons.iStringLineWidth > 0)
199
266
cairo_dock_draw_string (pCairoContext, pDock, myIcons.iStringLineWidth, FALSE, FALSE);
414
const int iNbCurveSteps = 20;
415
static void _draw_physical_separator (double x1, double x2, CairoDock *pDock)
417
_cairo_dock_define_static_vertex_tab (2*(iNbCurveSteps+1) + 1); // +1 pour boucler
419
double fLineWidth = myBackground.iDockLineWidth;
420
double fRadius = (pDock->iDecorationsHeight + fLineWidth - 2 * myBackground.iDockRadius > 0 ? myBackground.iDockRadius : (pDock->iDecorationsHeight + fLineWidth) / 2 - 1);
421
double dx = MIN (fRadius, (x2 - x1) / 2);
422
double h = pDock->iDecorationsHeight;
425
for (i = 0; i <= iNbCurveSteps; i ++)
427
t = 1.*i/NB_VERTEX_PER_ICON_PAIR; // [0;1]
428
_cairo_dock_set_vertex_xy (n,
429
Bezier (x1, x1 + dx,x1_,x1,t),
430
Bezier (y1, y0_,y1_,y1,t));
433
_cairo_dock_set_vertex_xy(_i, _x, _y)
348
436
static void cd_render_opengl (CairoDock *pDock)
404
492
cairo_dock_draw_current_path_opengl (fLineWidth, myBackground.fLineColor, iNbVertex);
498
glBlendFunc (GL_ONE, GL_ZERO);
499
glColor4f (0., 0., 0., 0.);
407
502
//\_____________ On dessine la ficelle.
408
503
if (myIcons.iStringLineWidth > 0)
409
504
cairo_dock_draw_string_opengl (pDock, myIcons.iStringLineWidth, FALSE, FALSE);