1998-10-20 00:46:58 +04:00
|
|
|
//
|
|
|
|
// Shadow box drawing routines for the Fast Light Tool Kit (FLTK).
|
|
|
|
//
|
2011-07-19 08:49:30 +04:00
|
|
|
// Copyright 1998-2011 by Bill Spitzak and others.
|
|
|
|
//
|
|
|
|
// This library is free software. Distribution and use rights are outlined in
|
|
|
|
// the file "COPYING" which should have been included with this file. If this
|
|
|
|
// file is missing or damaged, see the license at:
|
|
|
|
//
|
2020-07-01 19:03:10 +03:00
|
|
|
// https://www.fltk.org/COPYING.php
|
1998-10-20 00:46:58 +04:00
|
|
|
//
|
2020-07-01 19:03:10 +03:00
|
|
|
// Please see the following page on how to report bugs and issues:
|
2005-04-16 04:13:17 +04:00
|
|
|
//
|
2020-07-01 19:03:10 +03:00
|
|
|
// https://www.fltk.org/bugs.php
|
1998-10-20 00:46:58 +04:00
|
|
|
//
|
1998-10-06 22:21:25 +04:00
|
|
|
|
|
|
|
#include <FL/Fl.H>
|
|
|
|
#include <FL/fl_draw.H>
|
|
|
|
|
2020-09-01 13:33:11 +03:00
|
|
|
// Global parameters for box drawing algorithm:
|
|
|
|
//
|
|
|
|
// BW = box shadow width
|
|
|
|
#define BW (Fl::box_shadow_width())
|
1998-10-06 22:21:25 +04:00
|
|
|
|
|
|
|
static void fl_shadow_frame(int x, int y, int w, int h, Fl_Color c) {
|
|
|
|
fl_color(FL_DARK3);
|
2005-08-30 01:16:38 +04:00
|
|
|
fl_rectf(x+BW, y+h-BW, w - BW, BW);
|
2005-02-06 04:42:40 +03:00
|
|
|
fl_rectf(x+w-BW, y+BW, BW, h - BW);
|
2015-07-09 03:10:44 +03:00
|
|
|
Fl::set_box_color(c);
|
2005-02-06 04:42:40 +03:00
|
|
|
fl_rect(x,y,w-BW,h-BW);
|
1998-10-06 22:21:25 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
static void fl_shadow_box(int x, int y, int w, int h, Fl_Color c) {
|
2015-07-09 03:10:44 +03:00
|
|
|
Fl::set_box_color(c);
|
2024-10-15 19:02:48 +03:00
|
|
|
fl_rectf(x,y,w-BW,h-BW);
|
1998-10-06 22:21:25 +04:00
|
|
|
fl_shadow_frame(x,y,w,h,FL_GRAY0);
|
|
|
|
}
|
|
|
|
|
2024-04-26 13:42:11 +03:00
|
|
|
extern void fl_internal_boxtype(Fl_Boxtype, Fl_Box_Draw_F*, Fl_Box_Draw_Focus_F* =NULL);
|
2002-03-26 00:08:42 +03:00
|
|
|
Fl_Boxtype fl_define_FL_SHADOW_BOX() {
|
1998-10-06 22:21:25 +04:00
|
|
|
fl_internal_boxtype(_FL_SHADOW_FRAME, fl_shadow_frame);
|
|
|
|
fl_internal_boxtype(_FL_SHADOW_BOX, fl_shadow_box);
|
|
|
|
return _FL_SHADOW_BOX;
|
|
|
|
}
|