123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265(**************************************************************************)(* Lablgtk *)(* *)(* This program is free software; you can redistribute it *)(* and/or modify it under the terms of the GNU Library General *)(* Public License as published by the Free Software Foundation *)(* version 2, with the exception described in file COPYING which *)(* comes with the library. *)(* *)(* This program is distributed in the hope that it will be useful, *)(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *)(* GNU Library General Public License for more details. *)(* *)(* You should have received a copy of the GNU Library General *)(* Public License along with this program; if not, write to the *)(* Free Software Foundation, Inc., 59 Temple Place, Suite 330, *)(* Boston, MA 02111-1307 USA *)(* *)(* *)(**************************************************************************)(* $Id$ *)typeunichar=inttypeunistring=unichararrayexceptionGErrorofstringexternal_init:unit->unit="ml_glib_init"let()=_init();Callback.register_exception"gerror"(GError"")moduleMain=structtypetexternalcreate:bool->t="ml_g_main_new"externaliteration:bool->bool="ml_g_main_iteration"externalpending:unit->bool="ml_g_main_pending"externalis_running:t->bool="ml_g_main_is_running"externalquit:t->unit="ml_g_main_quit"externaldestroy:t->unit="ml_g_main_destroy"typelocale_category=[`ALL|`COLLATE|`CTYPE|`MESSAGES|`MONETARY|`NUMERIC|`TIME]externalsetlocale:locale_category->stringoption->string="ml_setlocale"externalwrap_poll_func:unit->unit="ml_g_wrap_poll_func"endletint_of_priority=function|`HIGH->-100|`DEFAULT->0|`HIGH_IDLE->100|`DEFAULT_IDLE->200|`LOW->300moduleTimeout=structtypeidexternaladd:?prio:int->ms:int->callback:(unit->bool)->id="ml_g_timeout_add"letadd=add?prio:Noneexternalremove:id->unit="ml_g_source_remove"endmoduleIdle=structtypeidexternaladd:?prio:int->(unit->bool)->id="ml_g_idle_add"externalremove:id->unit="ml_g_source_remove"endmoduleIo=structtypechanneltypecondition=[`IN|`OUT|`PRI|`ERR|`HUP|`NVAL]typeidexternalchannel_of_descr:Unix.file_descr->channel="ml_g_io_channel_unix_new"externalremove:id->unit="ml_g_source_remove"externaladd_watch:cond:conditionlist->callback:(conditionlist->bool)->?prio:int->channel->id="ml_g_io_add_watch"externalread:channel->buf:bytes->pos:int->len:int->int="ml_g_io_channel_read"externalread_chars:channel->buf:bytes->pos:int->len:int->int="ml_g_io_channel_read_chars"endmoduleMessage=structtypelog_level=[`ERROR|`CRITICAL|`WARNING|`MESSAGE|`INFO|`DEBUG|`FLAG_RECURSION|`FLAG_FATAL]external_log_level:log_level->int="ml_Log_level_val"letlog_level=function|`CUSTOMi->ilsl8|#log_levelaslevel->_log_levellevelletint_of_log_levelslevels=List.fold_left(funacclev->acclor(log_levellev))0levelstypelog_handlerexternal_set_log_handler:?domain:string->levels:int->(level:int->string->unit)->log_handler="ml_g_log_set_handler"letset_log_handler?domain~levelsf=_set_log_handler?domain~levels:(int_of_log_levelslevels)fexternalremove_log_handler:log_handler->unit="ml_g_log_remove_handler"external_set_always_fatal:int->unit="ml_g_log_set_always_fatal"letset_always_fatal(levels:log_levellist)=_set_always_fatal(int_of_log_levelslevels)external_set_fatal_mask:?domain:string->int->unit="ml_g_log_set_fatal_mask"letset_fatal_mask?domainlevels=_set_fatal_mask?domain(int_of_log_levelslevels)external_log:string->int->string->unit="ml_g_log"letlog?(domain="")levelfmt=Printf.kprintf(_logdomain(log_levellevel))fmt[@alert"-deprecated"]end(*
module Thread = struct
external init : unit -> unit = "ml_g_thread_init"
(* Call only once! *)
external enter : unit -> unit = "ml_gdk_threads_enter"
external leave : unit -> unit = "ml_gdk_threads_leave"
end
*)moduleConvert=structtypeerror=|NO_CONVERSION|ILLEGAL_SEQUENCE|FAILED|PARTIAL_INPUT|BAD_URI|NOT_ABSOLUTE_PATHexceptionErroroferror*stringlet()=Callback.register_exception"g_convert_error"(Error(NO_CONVERSION,""))externalconvert:string->to_codeset:string->from_codeset:string->string="ml_g_convert"externalconvert_with_fallback:?fallback:string->to_codeset:string->from_codeset:string->string->string="ml_g_convert_with_fallback"(* [get_charset ()] returns the pair [u,s] where [u] is true if the
current charset is UTF-8 encoded and [s] is the charset name. *)externalget_charset:unit->bool*string="ml_g_get_charset"externalutf8_validate:string->bool="ml_g_utf8_validate"letraise_bad_utf8()=raise(Error(ILLEGAL_SEQUENCE,"Invalid byte sequence for UTF-8 string"))letlocale_from_utf8s=matchget_charset()with|(true,_)->ifutf8_validatesthenselseraise_bad_utf8()|(false,to_codeset)->converts~to_codeset~from_codeset:"UTF-8"letlocale_to_utf8s=matchget_charset()with|(true,_)->ifutf8_validatesthenselseraise_bad_utf8()|(false,from_codeset)->converts~to_codeset:"UTF-8"~from_codesetexternalfilename_from_utf8:string->string="ml_g_filename_from_utf8"externalfilename_to_utf8:string->string="ml_g_filename_to_utf8"externalfilename_from_uri:string->stringoption*string="ml_g_filename_from_uri"externalfilename_to_uri:?hostname:string->string->string="ml_g_filename_to_uri"endmoduleUnichar=structexternalto_lower:unichar->unichar="ml_g_unichar_tolower"externalto_upper:unichar->unichar="ml_g_unichar_toupper"externalto_title:unichar->unichar="ml_g_unichar_totitle"externaldigit_value:unichar->int="ml_g_unichar_digit_value"externalxdigit_value:unichar->int="ml_g_unichar_xdigit_value"externalvalidate:unichar->bool="ml_g_unichar_validate"[@@noalloc]externalisalnum:unichar->bool="ml_g_unichar_isalnum"externalisalpha:unichar->bool="ml_g_unichar_isalpha"externaliscntrl:unichar->bool="ml_g_unichar_iscntrl"externalisdigit:unichar->bool="ml_g_unichar_isdigit"externalisgraph:unichar->bool="ml_g_unichar_isgraph"externalislower:unichar->bool="ml_g_unichar_islower"externalisprint:unichar->bool="ml_g_unichar_isprint"externalispunct:unichar->bool="ml_g_unichar_ispunct"externalisspace:unichar->bool="ml_g_unichar_isspace"externalisupper:unichar->bool="ml_g_unichar_isupper"externalisxdigit:unichar->bool="ml_g_unichar_isxdigit"externalistitle:unichar->bool="ml_g_unichar_istitle"externalisdefined:unichar->bool="ml_g_unichar_isdefined"externaliswide:unichar->bool="ml_g_unichar_iswide"endmoduleUtf8=structincludeGutf8externalvalidate:string->bool="ml_g_utf8_validate"externallength:string->int="ml_g_utf8_strlen"externaloffset_to_pos:string->pos:int->off:int->int="ml_g_utf8_offset_to_pointer"[@@noalloc]externaluppercase:string->string="ml_g_utf8_strup"externallowercase:string->string="ml_g_utf8_strdown"typenormalize_mode=[`DEFAULT|`DEFAULT_COMPOSE|`ALL|`ALL_COMPOSE]externalnormalize:string->normalize_mode->string="ml_g_utf8_normalize"externalcasefold:string->string="ml_g_utf8_casefold"externalcollate:string->string->int="ml_g_utf8_collate"externalcollate_key:string->string="ml_g_utf8_collate_key"endmoduleMarkup=structtypeerror=|BAD_UTF8|EMPTY|PARSE|UNKNOWN_ELEMENT|UNKNOWN_ATTRIBUTE|INVALID_CONTENTexceptionErroroferror*stringlet()=Callback.register_exception"g_markup_error"(Error(BAD_UTF8,""))externalescape_text:string->string="ml_g_markup_escape_text"endexternalget_prgname:unit->string="ml_g_get_prgname"externalset_prgname:string->unit="ml_g_set_prgname"externalget_application_name:unit->string="ml_g_get_application_name"externalset_application_name:string->unit="ml_g_set_application_name"externalget_user_name:unit->string="ml_g_get_user_name"externalget_real_name:unit->string="ml_g_get_real_name"externalget_home_dir:unit->stringoption="ml_g_get_home_dir"externalget_tmp_dir:unit->string="ml_g_get_tmp_dir"externalfind_program_in_path:string->string="ml_g_find_program_in_path"externalgetenv:string->string="ml_g_getenv"externalsetenv:string->string->bool->unit="ml_g_setenv"externalunsetenv:string->unit="ml_g_unsetenv"externalget_user_cache_dir:unit->string="ml_g_get_user_cache_dir"externalget_user_data_dir:unit->string="ml_g_get_user_data_dir"externalget_user_config_dir:unit->string="ml_g_get_user_config_dir"externalget_system_data_dirs:unit->stringlist="ml_g_get_system_data_dirs"externalget_system_config_dirs:unit->stringlist="ml_g_get_system_config_dirs"externalusleep:int->unit="ml_g_usleep"