| Newsgroups |
gmane.comp.lang.ocaml.beginners |
| Message-ID |
<[email protected]> |
The below is a good answer, but you might consider interfacing ocaml to another language by some means, either RPC or function bindings. Depending on your software that you're writing, you might be able to just compile your ocaml code down to java with ocamljava compilers, write you java gui, and then have ocaml's type safety and richness help you. But you can't compile any ocaml code that calls into C functions from the JVM because I (or someone else if they beat me) haven't written the ctypes backend for JVM yet :)
OCaml: Effective Path to GUI Programming?
| |
| | | | | | | |
| OCaml: Effective Path to GUI Programming?I have seen a few threads that touch on GUI programming in OCaml but I don't feel they clearly lead to a clear-cut solution when a GUI interface is needed. My quest... |
| |
| View on stackoverflow.com | Preview by Yahoo |
| |
| |
On Friday, June 26, 2015 12:38 AM, "Hendrik Boom [email protected] [ocaml_beginners]" <[email protected]> wrote:
What user-interface libraries and/or bindings are available in/for OCAML?
Do any of them handle UTF-8?
Which are cross-platform? My primary platform is Linux on 32-bit intel
architecture, but portability to others would be covenient.
What I need at the moment is a paned window (or several windows), a few
menus, mouse movements, button annd key clicks, and the ability to
place and erase pieces of text pretty well anywhere in those panes,
preferably in several colours and a few type faces (plain, italic,
bold).
-- hendrik
#yiv9566384967 #yiv9566384967 -- #yiv9566384967ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv9566384967 #yiv9566384967ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv9566384967 #yiv9566384967ygrp-mkp #yiv9566384967hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv9566384967 #yiv9566384967ygrp-mkp #yiv9566384967ads {margin-bottom:10px;}#yiv9566384967 #yiv9566384967ygrp-mkp .yiv9566384967ad {padding:0 0;}#yiv9566384967 #yiv9566384967ygrp-mkp .yiv9566384967ad p {margin:0;}#yiv9566384967 #yiv9566384967ygrp-mkp .yiv9566384967ad a {color:#0000ff;text-decoration:none;}#yiv9566384967 #yiv9566384967ygrp-sponsor #yiv9566384967ygrp-lc {font-family:Arial;}#yiv9566384967 #yiv9566384967ygrp-sponsor #yiv9566384967ygrp-lc #yiv9566384967hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv9566384967 #yiv9566384967ygrp-sponsor #yiv9566384967ygrp-lc .yiv9566384967ad {margin-bottom:10px;padding:0 0;}#yiv9566384967 #yiv9566384967actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv9566384967 #yiv9566384967activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv9566384967 #yiv9566384967activity span {font-weight:700;}#yiv9566384967 #yiv9566384967activity span:first-child {text-transform:uppercase;}#yiv9566384967 #yiv9566384967activity span a {color:#5085b6;text-decoration:none;}#yiv9566384967 #yiv9566384967activity span span {color:#ff7900;}#yiv9566384967 #yiv9566384967activity span .yiv9566384967underline {text-decoration:underline;}#yiv9566384967 .yiv9566384967attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv9566384967 .yiv9566384967attach div a {text-decoration:none;}#yiv9566384967 .yiv9566384967attach img {border:none;padding-right:5px;}#yiv9566384967 .yiv9566384967attach label {display:block;margin-bottom:5px;}#yiv9566384967 .yiv9566384967attach label a {text-decoration:none;}#yiv9566384967 blockquote {margin:0 0 0 4px;}#yiv9566384967 .yiv9566384967bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv9566384967 .yiv9566384967bold a {text-decoration:none;}#yiv9566384967 dd.yiv9566384967last p a {font-family:Verdana;font-weight:700;}#yiv9566384967 dd.yiv9566384967last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv9566384967 dd.yiv9566384967last p span.yiv9566384967yshortcuts {margin-right:0;}#yiv9566384967 div.yiv9566384967attach-table div div a {text-decoration:none;}#yiv9566384967 div.yiv9566384967attach-table {width:400px;}#yiv9566384967 div.yiv9566384967file-title a, #yiv9566384967 div.yiv9566384967file-title a:active, #yiv9566384967 div.yiv9566384967file-title a:hover, #yiv9566384967 div.yiv9566384967file-title a:visited {text-decoration:none;}#yiv9566384967 div.yiv9566384967photo-title a, #yiv9566384967 div.yiv9566384967photo-title a:active, #yiv9566384967 div.yiv9566384967photo-title a:hover, #yiv9566384967 div.yiv9566384967photo-title a:visited {text-decoration:none;}#yiv9566384967 div#yiv9566384967ygrp-mlmsg #yiv9566384967ygrp-msg p a span.yiv9566384967yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv9566384967 .yiv9566384967green {color:#628c2a;}#yiv9566384967 .yiv9566384967MsoNormal {margin:0 0 0 0;}#yiv9566384967 o {font-size:0;}#yiv9566384967 #yiv9566384967photos div {float:left;width:72px;}#yiv9566384967 #yiv9566384967photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv9566384967 #yiv9566384967photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv9566384967 #yiv9566384967reco-category {font-size:77%;}#yiv9566384967 #yiv9566384967reco-desc {font-size:77%;}#yiv9566384967 .yiv9566384967replbq {margin:4px;}#yiv9566384967 #yiv9566384967ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv9566384967 #yiv9566384967ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv9566384967 #yiv9566384967ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv9566384967 #yiv9566384967ygrp-mlmsg select, #yiv9566384967 input, #yiv9566384967 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv9566384967 #yiv9566384967ygrp-mlmsg pre, #yiv9566384967 code {font:115% monospace;}#yiv9566384967 #yiv9566384967ygrp-mlmsg * {line-height:1.22em;}#yiv9566384967 #yiv9566384967ygrp-mlmsg #yiv9566384967logo {padding-bottom:10px;}#yiv9566384967 #yiv9566384967ygrp-msg p a {font-family:Verdana;}#yiv9566384967 #yiv9566384967ygrp-msg p#yiv9566384967attach-count span {color:#1E66AE;font-weight:700;}#yiv9566384967 #yiv9566384967ygrp-reco #yiv9566384967reco-head {color:#ff7900;font-weight:700;}#yiv9566384967 #yiv9566384967ygrp-reco {margin-bottom:20px;padding:0px;}#yiv9566384967 #yiv9566384967ygrp-sponsor #yiv9566384967ov li a {font-size:130%;text-decoration:none;}#yiv9566384967 #yiv9566384967ygrp-sponsor #yiv9566384967ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv9566384967 #yiv9566384967ygrp-sponsor #yiv9566384967ov ul {margin:0;padding:0 0 0 8px;}#yiv9566384967 #yiv9566384967ygrp-text {font-family:Georgia;}#yiv9566384967 #yiv9566384967ygrp-text p {margin:0 0 1em 0;}#yiv9566384967 #yiv9566384967ygrp-text tt {font-size:120%;}#yiv9566384967 #yiv9566384967ygrp-vital ul li:last-child {border-right:none !important;}#yiv9566384967