open Utils open Property open TiBase class tientry ~(widget : GEdit.entry) ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window = object val entry = widget inherit tiwidget ~name ~widget ~parent_tree ~pos ~insert_evbox parent_window method private class_name = "GEdit.entry" initializer classe <- "entry"; proplist <- proplist @ [ "visibility", new prop_bool ~name:"visibility" ~init:"true" ~set:(ftrue entry#set_visibility); "editable", new prop_bool ~name:"editable" ~init:"true" ~set:(ftrue entry#set_editable) ] end let new_tientry ~name ?(listprop = []) = new tientry ~name ~widget:(GEdit.entry ()) class tispin_button ~(widget : GEdit.spin_button) ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window = object val spin_button = widget inherit tientry ~widget:(widget :> GEdit.entry) ~name ~parent_tree ~pos ~insert_evbox parent_window method private class_name = "GEdit.spin_button" initializer classe <- "spin_button"; proplist <- proplist @ [ "digits", new prop_int ~name:"digits" ~init:"0" ~set:(ftrue spin_button#set_digits); "update_policy", new prop_spin_button_update_policy ~name:"update_policy" ~init:"ALWAYS" ~set:(ftrue spin_button#set_update_policy); "numeric", new prop_bool ~name:"numeric" ~init:"false" ~set:(ftrue spin_button#set_numeric); "wrap", new prop_bool ~name:"wrap" ~init:"false" ~set:(ftrue spin_button#set_wrap); "shadow_type", new prop_shadow ~name:"shadow_type" ~init:"NONE" ~set:(ftrue spin_button#set_shadow_type); "snap_to_ticks", new prop_bool ~name:"snap_to_ticks" ~init:"false" ~set:(ftrue spin_button#set_snap_to_ticks) ] end let get_adjustment () = let rv = ref 0. and rl = ref 0. and ru = ref 100. and rsi = ref 1. and rpi = ref 10. and rps = ref 10. in let w = GWindow.window ~modal:true () in let v = GPack.vbox ~packing:w#add () in let l = GMisc.label ~text:"adjustment properties" ~packing:v#pack () in let h1 = GPack.hbox ~packing:v#pack () in let l1 = GMisc.label ~text:"value" ~packing:h1#pack () in let e1 = GEdit.entry ~text:"0." ~packing:h1#pack () in let h2 = GPack.hbox ~packing:v#pack () in let l2 = GMisc.label ~text:"lower" ~packing:h2#pack () in let e2 = GEdit.entry ~text:"0." ~packing:h2#pack () in let h3 = GPack.hbox ~packing:v#pack () in let l3 = GMisc.label ~text:"upper" ~packing:h3#pack () in let e3 = GEdit.entry ~text:"100." ~packing:h3#pack () in let h4 = GPack.hbox ~packing:v#pack () in let l4 = GMisc.label ~text:"step_incr" ~packing:h4#pack () in let e4 = GEdit.entry ~text:"1." ~packing:h4#pack () in let h5 = GPack.hbox ~packing:v#pack () in let l5 = GMisc.label ~text:"page_incr" ~packing:h5#pack () in let e5 = GEdit.entry ~text:"10." ~packing:h5#pack () in let h6 = GPack.hbox ~packing:v#pack () in let l6 = GMisc.label ~text:"page_size" ~packing:h6#pack () in let e6 = GEdit.entry ~text:"10." ~packing:h6#pack () in let h7 = GPack.hbox ~packing:v#pack () in let b1 = GButton.button ~label:"OK" ~packing:h7#pack () in let b2 = GButton.button ~label:"Cancel" ~packing:h7#pack () in w#show (); b1#connect#clicked ~callback:(fun () -> begin try rv := float_of_string e1#text with _ -> try rv := float_of_int (int_of_string e1#text) with _ -> () end; begin try rl := float_of_string e2#text with _ -> try rl := float_of_int (int_of_string e2#text) with _ -> () end; begin try ru := float_of_string e3#text with _ -> try ru := float_of_int (int_of_string e3#text) with _ -> () end; begin try rsi := float_of_string e4#text with _ -> try rsi := float_of_int (int_of_string e4#text) with _ -> () end; begin try rpi := float_of_string e5#text with _ -> try rpi := float_of_int (int_of_string e5#text) with _ -> () end; begin try rps := float_of_string e6#text with _ -> try rps := float_of_int (int_of_string e6#text) with _ -> () end; w#destroy ()); b2#connect#clicked ~callback:w#destroy; w#connect#destroy ~callback:GMain.Main.quit; GMain.Main.main (); !rv, !rl, !ru, !rsi, !rpi, !rps let new_tispin_button ~name ?(listprop = []) = let v, l, u, si, pi, ps = get_adjustment () in new tispin_button ~name ~widget:(GEdit.spin_button ~adjustment: (GData.adjustment ~value:v ~lower:l ~upper:u ~step_incr:si ~page_incr:pi ~page_size:ps ()) ()) class ticombo ~(widget : GEdit.combo) ~name ~parent_tree ~pos ?(insert_evbox=true) parent_window = object val combo = widget inherit tiwidget ~name ~widget ~parent_tree ~pos ~insert_evbox parent_window method private class_name = "GEdit.combo" initializer classe <- "combo"; proplist <- proplist @ [ "use_arrows", new prop_combo_use_arrows ~name:"use_arrows" ~init:"true" ~set:(ftrue combo#set_use_arrows); "case_sensitive", new prop_bool ~name:"case_sensitive" ~init:"false" ~set:(ftrue combo#set_case_sensitive) ] end let new_ticombo ~name ?(listprop = []) = new ticombo ~name ~widget:(GEdit.combo ())