<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">1) One of those projects that I haven’t had time for. If there was interest, it may rekindle my interest in moving it along. Looking back, with the second prototype I diverged too far from the GS way of doing this as I got focused on XML definitions and so the interactive REPL part suffered. it’s really code in mid-flight.<div class=""><br class=""></div><div class="">2) However, the code still seems to work under R20 - See console session below:</div><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">Erlang/OTP 20 [erts-9.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255); min-height: 12px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""></span><br class=""></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">Eshell V9.0 (abort with ^G)</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">1> gx:start().</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">[<0.63.0> gx_driver:150] "/opt/local/lib/erlang/lib/wx-1.8.1/priv"</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">[<0.63.0> gx_driver:124] info_got_wx_consts</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">[<0.63.0> gx_driver:134] {handle_info,</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> {wxe_driver,open_file,"/Users/stevedavis"}}</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">{ok,<0.62.0>}</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">2> rr(gx).</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">[aui,bitmapbutton,box,button,calendar,checkbox,checklist,</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> choice,combo,control,date,dialog,editor,evh,filetree,font,</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> frame,g,grid,gs,gs_font,gui,gx,gx_cache,gx_ui,gx_wx,image,</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> input,line|...]</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">3> F = #frame{id=window, size={400,200}}.</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">#frame{id = window,ref = undefined,label = undefined,</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> pos = {-1,-1},</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> size = {400,200},</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> callbacks = [],icon = undefined,title = <<"Untitled">>,</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> show = true,virtual = false,content = []}</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">4> gx:create(F).</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">[#gx_ui{id = window,</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> ref = #wx_ref{ref = 37,type = wxFrame,state = []},</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> parent = #wx_ref{ref = 0,type = wx,state = []},</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> module = gx_ui_frame}]</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">5> gx:names().</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">[window]</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">6> gx:config(window, size, {800, 400}).</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">[<0.60.0> gx_ui:59] {{g,<0.62.0>,#Port<0.3025>,undefined,<0.64.0>,gx},</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> window,</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> [{size,{800,400}}]}</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">[ok]</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">7> gx:ide().</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">[<0.95.0> gx_ui:59] {{g,<0.93.0>,#Port<0.3158>,undefined,<0.94.0>,ide},</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> log,</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> [{append,<<"$ {init,{gx,ide,{wx_ref,0,wx,[]},gx,start,[],[]},[{resources,undefined}]}\n">>}]}</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Courier New'; background-color: rgb(255, 255, 255);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">{ok,<0.93.0>}</span></div></div><div class=""><br class=""><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jul 11, 2017, at 2:48 AM, Joe Armstrong <<a href="mailto:erlang@gmail.com" class="">erlang@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Wow - lot's of code for me to stare at - thanks<br class=""><br class="">A couple of questions:<br class=""><br class="">1) I downloaded the gx project and saw that there had been no<br class=""> commits since Jul 13 2014 - is this totally dead?<br class=""><br class="">2) How do I run your gx code? - what's a top level command to create a window???<br class=""><br class="">Cheers<br class=""><br class="">/Joe<br class=""><br class=""><br class="">On Tue, Jul 11, 2017 at 1:07 AM, Steve Davis<br class=""><<a href="mailto:steven.charles.davis@gmail.com" class="">steven.charles.davis@gmail.com</a>> wrote:<br class=""><blockquote type="cite" class="">Sizers are crazy. A while back I had a decent go at making a hand-written<br class="">version of wx interfacing directly to the erlang driver and trying to make<br class="">it sensible as an API like GS. I think it should still work.<br class=""><br class="">The following code was the result of a lot of reading the WxWidgets C++ API<br class="">docs and translating into what I felt was sensible to get to a single<br class="">interface module that resembled GS (i.e the module gx.erl).<br class=""><br class=""><a href="https://github.com/komone/gx/blob/master/src/ui/gx_ui_sizer.erl" class="">https://github.com/komone/gx/blob/master/src/ui/gx_ui_sizer.erl</a><br class=""><br class="">https://github.com/komone/gx/blob/master/src/ui/gx_ui_control.erl<br class=""><br class="">https://github.com/komone/gx/blob/master/src/ui/gx_ui_button.erl<br class=""><br class=""><br class=""></blockquote></div></div></blockquote></div><br class=""></div></div></body></html>