summaryrefslogtreecommitdiff
path: root/src/fl_oval_box.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/fl_oval_box.cxx')
-rw-r--r--src/fl_oval_box.cxx23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/fl_oval_box.cxx b/src/fl_oval_box.cxx
index 9a0e1968a..3d8d27fd3 100644
--- a/src/fl_oval_box.cxx
+++ b/src/fl_oval_box.cxx
@@ -45,11 +45,24 @@ static void fl_oval_shadow_box(int x, int y, int w, int h, Fl_Color c) {
fl_oval_box(x,y,w,h,c);
}
-extern void fl_internal_boxtype(Fl_Boxtype, Fl_Box_Draw_F*);
+void fl_oval_focus(Fl_Boxtype bt, int x, int y, int w, int h, Fl_Color fg, Fl_Color bg) {
+ x += Fl::box_dx(bt)+1;
+ y += Fl::box_dy(bt)+1;
+ w -= Fl::box_dw(bt)+2;
+ h -= Fl::box_dh(bt)+2;
+ Fl_Color savecolor = fl_color();
+ fl_color(fl_contrast(fg, bg));
+ fl_line_style(FL_DOT);
+ fl_arc(x, y, w, h, 0, 360);
+ fl_line_style(FL_SOLID);
+ fl_color(savecolor);
+}
+
+extern void fl_internal_boxtype(Fl_Boxtype, Fl_Box_Draw_F*, Fl_Box_Draw_Focus_F* =NULL);
Fl_Boxtype fl_define_FL_OVAL_BOX() {
- fl_internal_boxtype(_FL_OSHADOW_BOX,fl_oval_shadow_box);
- fl_internal_boxtype(_FL_OVAL_FRAME,fl_oval_frame);
- fl_internal_boxtype(_FL_OFLAT_BOX,fl_oval_flat_box);
- fl_internal_boxtype(_FL_OVAL_BOX,fl_oval_box);
+ fl_internal_boxtype(_FL_OSHADOW_BOX, fl_oval_shadow_box, fl_oval_focus);
+ fl_internal_boxtype(_FL_OVAL_FRAME, fl_oval_frame, fl_oval_focus);
+ fl_internal_boxtype(_FL_OFLAT_BOX, fl_oval_flat_box, fl_oval_focus);
+ fl_internal_boxtype(_FL_OVAL_BOX, fl_oval_box, fl_oval_focus);
return _FL_OVAL_BOX;
}