7 public class MiniDisplay
: PanelDisplayBase
{
8 private DisplayState display_state
= DisplayState
.TIME
;
11 public enum DisplayState
{
17 protected override void redraw_time () {
18 if (display_state
== DisplayState
.TIME
) queue_draw ();
21 protected override void redraw_time_alt () {
22 if (display_state
== DisplayState
.TIME_ALT
) queue_draw ();
25 public MiniDisplay () {
29 set_size_request (width
, height
);
33 protected override bool draw_contents (Cairo
.Context cr
, Gdk
.EventExpose event
) {
35 double font_size
= 16;
36 double smaller_font_size
= font_size
- 4;
38 double y
= smaller_font_size
- padding
+ 1.0;
41 string xruns_str
= "X: %u".printf (xruns
);
42 text (cr
, xruns_str
, padding
+ x
, y
, smaller_font_size
, "#ff0000");
43 } else switch (display_state
) {
44 case DisplayState
.TIME
:
46 text (cr
, time
, padding
+ x
, y
, smaller_font_size
);
48 case DisplayState
.TIME_ALT
:
49 text (cr
, time_alt
, padding
+ x
, y
, smaller_font_size
);
52 assert_not_reached ();
59 public signal void double_click ();
61 public override bool button_press_event (Gdk
.EventButton event
) {
62 if (event
.type
== EventType
.2BUTTON_PRESS
) {
66 if (event
.type
== EventType
.BUTTON_PRESS
) {
67 short disp_state
= (short)display_state
;
69 reset_xruns_requested ();
72 display_state
= (DisplayState
) ((++disp_state
) % (short) DisplayState
.ENUM_END
);
73 //new MessageDialog (null, DialogFlags.MODAL, MessageType.INFO, ButtonsType.CLOSE, "display state: %d", (int)display_state);
84 } //namespace Jackpanel