module Ledgrid:sig
..end
val flash_duration : int
val blink_duration : int
val blink_toggles_no : int
exception Non_existing_led_light of int * int
exception Non_existing_port of int
val tooltips : GData.tooltips
val make_pixmap_from_xpm_file : file_name:string -> GDraw.pixmap
class led_light :?default:bool -> ?x:int -> ?y:int -> off_pixmap:#GDraw.pixmap -> on_pixmap:#GDraw.pixmap -> packing:(GObj.widget -> unit) -> unit ->
object
..end
val useless_array_of_led_light_options : led_light option array
val useless_label : GMisc.label
class led_grid :?default:bool -> on_xpm_file_name:string -> off_xpm_file_name:string -> nothing_xpm_file_name:string -> columns:int -> rows:int -> packing:(GObj.widget -> unit) -> ?angle:float -> ?no_leds_at:(int * int) list -> unit ->
object
..end
val range : int -> int -> int list
class device_led_grid :on_xpm_file_name:string -> off_xpm_file_name:string -> nothing_xpm_file_name:string -> ?show_100_mbs:bool -> ports:int -> packing:(GObj.widget -> unit) -> ?angle:float -> ?lines:int -> unit ->
object
..end
let main ports () =
let window = GWindow.window ~title:"Switch n.2" ~border_width:0 () in
window#connect#destroy ~callback:GMain.Main.quit;
let grid =
new device_led_grid ~packing:window#add ~ports ~show_100_mbs:true ~lines:2
~off_xpm_file_name:"sample-files/off.xpm"
~on_xpm_file_name:"sample-files/on.xpm"
~nothing_xpm_file_name:"sample-files/nothing.xpm"
() in
for i = 1 to ports / 3 do
grid#connect ((Random.int ports) + 1);
done;
(** Simulate a distinct communication between two ports every 50 milliseconds: *)
GMain.Timeout.add 50 (function () -> grid#blink (grid#random_connected_port);
grid#blink (grid#random_connected_port);
true);
window#show ();
Main.main ()
let _ = main 64 ()