FLTK
Fl_Clock.H
1 //
2 // Clock header file for the Fast Light Tool Kit (FLTK).
3 //
4 // Copyright 1998-2017 by Bill Spitzak and others.
5 //
6 // This library is free software. Distribution and use rights are outlined in
7 // the file "COPYING" which should have been included with this file. If this
8 // file is missing or damaged, see the license at:
9 //
10 // https://www.fltk.org/COPYING.php
11 //
12 // Please see the following page on how to report bugs and issues:
13 //
14 // https://www.fltk.org/bugs.php
15 //
16 
17 /* \file
18  Fl_Clock, Fl_Clock_Output widgets . */
19 
20 #ifndef Fl_Clock_H
21 #define Fl_Clock_H
22 
23 #ifndef Fl_Widget_H
24 #include "Fl_Widget.H"
25 #endif
26 
27 // Values for type():
28 // Please change doxygen documentation below (class Fl_Clock_Output)
29 // accordingly as well when changing the following type values:
30 
31 #define FL_SQUARE_CLOCK 0
32 #define FL_ROUND_CLOCK 1
33 #define FL_ANALOG_CLOCK FL_SQUARE_CLOCK
34 #define FL_DIGITAL_CLOCK FL_SQUARE_CLOCK
36 // fabien: Please keep the horizontal formatting of both images in class desc,
37 // don't lose vertical space for nothing!
38 
65 class FL_EXPORT Fl_Clock_Output : public Fl_Widget {
66  int hour_, minute_, second_;
67  ulong value_;
68  int shadow_; // draw shadows of hands
69  void drawhands(Fl_Color,Fl_Color); // part of draw
70 protected:
71  void draw();
72  void draw(int X, int Y, int W, int H);
73 public:
74 
75  Fl_Clock_Output(int X, int Y, int W, int H, const char *L = 0);
76 
77  void value(ulong v); // set to this Unix time
78 
79  void value(int H, int m, int s);
80 
86  ulong value() const {return value_;}
87 
92  int hour() const {return hour_;}
93 
98  int minute() const {return minute_;}
99 
104  int second() const {return second_;}
105 
113  int shadow() const {return shadow_;}
114 
127  void shadow(int mode) { shadow_ = mode ? 1 : 0; }
128 };
129 
130 // a Fl_Clock displays the current time always by using a timeout:
131 
152 class FL_EXPORT Fl_Clock : public Fl_Clock_Output {
153 public:
154  int handle(int);
155 
156  Fl_Clock(int X, int Y, int W, int H, const char *L = 0);
157 
158  Fl_Clock(uchar t, int X, int Y, int W, int H, const char *L);
159 
160  ~Fl_Clock();
161 };
162 
163 #endif
Fl_Widget is the base class for all widgets in FLTK.
Definition: Fl_Widget.H:85
This widget provides a round analog clock display.
Definition: Fl_Clock.H:152
virtual int handle(int event)
Handles the specified event.
Definition: Fl_Widget.cxx:102
virtual void draw()=0
Draws the widget.
int hour() const
Returns the displayed hour (0 to 23).
Definition: Fl_Clock.H:92
unsigned long ulong
unsigned long
Definition: fl_types.h:30
ulong value() const
Returns the displayed time.
Definition: Fl_Clock.H:86
This widget can be used to display a program-supplied time.
Definition: Fl_Clock.H:65
Fl_Widget, Fl_Label classes .
int second() const
Returns the displayed second (0 to 60, 60=leap second).
Definition: Fl_Clock.H:104
unsigned int Fl_Color
An FLTK color value; see also Colors.
Definition: Enumerations.H:1042
int shadow() const
Returns the shadow drawing mode of the hands.
Definition: Fl_Clock.H:113
void shadow(int mode)
Sets the shadow drawing mode of the hands.
Definition: Fl_Clock.H:127
unsigned char uchar
unsigned char
Definition: fl_types.h:28
int minute() const
Returns the displayed minute (0 to 59).
Definition: Fl_Clock.H:98