aboutsummaryrefslogtreecommitdiff
path: root/src/lib/FL/Fl_Image_Repeat_Button.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/FL/Fl_Image_Repeat_Button.cxx')
-rw-r--r--src/lib/FL/Fl_Image_Repeat_Button.cxx86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/lib/FL/Fl_Image_Repeat_Button.cxx b/src/lib/FL/Fl_Image_Repeat_Button.cxx
new file mode 100644
index 0000000..71530de
--- /dev/null
+++ b/src/lib/FL/Fl_Image_Repeat_Button.cxx
@@ -0,0 +1,86 @@
1#include <FL/Fl_Image_Repeat_Button.H>
2#include <FL/Fl_Image.H>
3#include <FL/fl_draw.H>
4
5#ifndef NULL
6#define NULL 0
7#endif
8void Fl_Image_Repeat_Button::up_image(Fl_Image* p_upimage)
9{
10 upimage=p_upimage;
11}
12
13void Fl_Image_Repeat_Button::down_image(Fl_Image* p_downimage)
14{
15 downimage=p_downimage;
16}
17
18Fl_Image* Fl_Image_Repeat_Button::up_image()
19{
20 return upimage;
21}
22
23Fl_Image* Fl_Image_Repeat_Button::down_image()
24{
25 return downimage;
26}
27
28Fl_Image_Repeat_Button::Fl_Image_Repeat_Button(int a,int b,int c,int d):Fl_Repeat_Button(a,b,c,d)
29{
30 upimage=NULL;
31 downimage=NULL;
32 Fl_Repeat_Button::clear_visible_focus();
33}
34
35
36void Fl_Image_Repeat_Button::draw()
37{
38 // begin - Fl_Button::draw() (box section)
39 if (type() == FL_HIDDEN_BUTTON) return;
40 Fl_Color col = value() ? selection_color() : color();
41
42
43 draw_box(value() ? (down_box()?down_box():fl_down(box())) : box(), col);
44 // end - Fl_Button::draw() (box section)
45
46 // begin - modification to render up/down image
47 Fl_Boxtype box_;
48 Fl_Image* pic_;
49
50 if(value())
51 {
52 box_ = (down_box())? down_box() : fl_down(box());
53 pic_ = downimage;
54 }
55 else
56 {
57 box_ = box();
58 pic_ = upimage;
59 }
60
61 if(pic_)
62 {
63 int xx = x() + Fl::box_dx(box_);
64 int yy = y() + Fl::box_dy(box_);
65 int ww = w() - Fl::box_dw(box_);
66 int hh = h() - Fl::box_dh(box_);
67 int xpos = (ww - pic_->w()) / 2;
68 int ypos = (hh - pic_->h()) / 2;
69
70 fl_push_clip(xx, yy, ww, hh);
71 pic_->draw(xx + xpos, yy + ypos);
72 fl_pop_clip();
73 }
74 // end- modification to render up/down image
75
76 // begin - Fl_Button::draw() (label section)
77 if (labeltype() == FL_NORMAL_LABEL && value()) {
78 Fl_Color c = labelcolor();
79 labelcolor(fl_contrast(c, col));
80 draw_label();
81 labelcolor(c);
82 } else draw_label();
83 if (Fl::focus() == this) draw_focus();
84 // end - Fl_Button::draw() (label section)
85}
86