| PopupClosed -> ()
-let ask_text ~(gui:#gui) ?(title = "") ?(msg = "") ?(multiline = false) () =
+let ask_text ~(gui:#gui) ?(title = "") ?(msg = "") ?(multiline = false)
+ ?default ()
+=
let dialog = gui#newEmptyDialog () in
dialog#emptyDialog#set_title title;
dialog#emptyDialogLabel#set_label msg;
~vpolicy:`ALWAYS ~packing:dialog#emptyDialogVBox#add ()
in
let view = GText.view ~wrap_mode:`CHAR ~packing:win#add () in
+ let buffer = view#buffer in
+ (match default with
+ | None -> ()
+ | Some text ->
+ buffer#set_text text;
+ buffer#select_range buffer#start_iter buffer#end_iter);
view#misc#grab_focus ();
connect_button dialog#emptyDialogOkButton (fun _ ->
- return (Some (view#buffer#get_text ())))
+ return (Some (buffer#get_text ())))
end else begin (* monoline input required: use a TextEntry widget *)
let entry = GEdit.entry ~packing:dialog#emptyDialogVBox#add () in
+ (match default with
+ | None -> ()
+ | Some text ->
+ entry#set_text text;
+ entry#select_region ~start:0 ~stop:max_int);
entry#misc#grab_focus ();
connect_button dialog#emptyDialogOkButton (fun _ ->
return (Some entry#text))