digitalmars.D - D is fast
- Andrew Fedoniouk (7/7) Apr 25 2005 I second on that :)
- Charlie (4/11) Apr 25 2005 Wow this is looking awesome, when can we get something to play with ?
- Andrew Fedoniouk (5/23) Apr 25 2005 "when can we get something to play with ?"
- Charlie (4/31) Apr 25 2005 Do you have a name for it ?
- Andrew Fedoniouk (37/73) Apr 25 2005 Hi, Charlie,
- Alexander Panek (7/34) Apr 25 2005 sounds very nice!
- Andrew Fedoniouk (109/110) Apr 25 2005 main.d is attached to the post
- Alexander Panek (8/11) Apr 25 2005 it also looks great! =)
- Andrew Fedoniouk (60/79) Apr 25 2005 Yes,
- Derek Parnell (10/12) Apr 25 2005
- Andrew Fedoniouk (250/266) Apr 25 2005 I don't know what "low level" means here.
- Nils Hensel (5/9) Apr 25 2005 Doesn't that mean one just had to write an OpenGL Graphics object to be
- Andrew Fedoniouk (14/26) Apr 25 2005 Ummm....
- Norbert Nemec (8/10) Apr 27 2005 Have you thought about using Cairo? (www.cairographics.org) This might
- Andrew Fedoniouk (16/27) Apr 27 2005 Well, it is matter of personal preferences
- Georg Wrede (27/28) Apr 27 2005 There may be several things for which you don't need antialiased
- Andrew Fedoniouk (17/56) Apr 27 2005 Rotation and stretching of images by itself is sort of antialiasing.
- =?ISO-8859-1?Q?Julio_C=E9sar_Carrascal_Urquijo?= (8/19) Apr 29 2005 We are there!!... Well, almost :)
- Unknown W. Brackets (6/8) Apr 26 2005 Does this mean that my good friend, who is legally very blind, and can
- Andrew Fedoniouk (11/18) Apr 26 2005 You can use system magnifier tool. Why not?
- Brad Beveridge (5/14) Apr 25 2005 Very clean code - I like it! Normally I hate programming GUI apps
- Andrew Fedoniouk (6/18) Apr 25 2005 "How are you planning on licensing Harmonia when you release it?"
- Norbert Nemec (29/34) Apr 26 2005 I would strongly encourage you to pick some well-known open source
-
Dave
(37/49)
Apr 26 2005
- Unknown W. Brackets (15/15) Apr 26 2005 I don't see how that would work. If you sold a product or library, and
- Dave (12/28) Apr 26 2005 Yes but they would be less likely to do that if they were charged for th...
- Thomas Kuehne (14/17) Apr 26 2005 -----BEGIN PGP SIGNED MESSAGE-----
- Unknown W. Brackets (2/18) Apr 26 2005
- Norbert Nemec (15/82) Apr 26 2005 Actually, I wanted to avoid getting into too many details, but
- Mike Parker (7/14) Apr 26 2005 Unfortunately, until shared library support gets baked into D on all
- Brad Beveridge (6/23) Apr 26 2005 Also, I would tend to think that the LGPL line will be even more blurred...
- Norbert Nemec (11/17) Apr 27 2005 Guess, that's a problem of the "common interpretation" of LGPL. It is
- Charlie (5/8) Apr 25 2005 What does this mean / do :
- Alexander Panek (6/19) Apr 25 2005 I think it just adds the seperator to the big (list-)box in the left?
- Charlie (5/28) Apr 25 2005 Ahh ok, calling Window's opCatAssign , just looked a little scary at fir...
- Andrew Fedoniouk (15/38) Apr 25 2005 this ~= (splitter = new Splitter(true));
- Joey Peters (3/11) Apr 25 2005 This is looking really slick. Good work.
- =?ISO-8859-1?Q?Jari-Matti_M=E4kel=E4?= (8/10) Apr 25 2005 Too bad I'm not running Windows, looks pretty neat though. :) I also
- Andrew Fedoniouk (12/28) Apr 25 2005 In fact parser supports XML only with minor SGMLism:
- bobef (6/19) Apr 26 2005 No Tab support? I mean keyboard works fine if I have focus on item but
- Andrew Fedoniouk (4/22) Apr 26 2005 The code is there. Not connected yet.
- Dejan Lekic (7/7) Apr 26 2005 One, single (the most important to me) question: Does it work on GNU/Lin...
- Andrew Fedoniouk (11/18) Apr 26 2005 "GNU/Linux and/or MacOSX?"
- Benjamin Herr (4/7) Apr 27 2005 But Swing also is ugly and slow and looks out of place on every
- Andrew Fedoniouk (11/20) Apr 27 2005 I know why Swing is slow.
I second on that :) Teasing :) demo is here: http://terrainformatica.com/screenshots/HarmoniaDemo.zip (e.g. try to move splitter) After loading and starting you should see this picture: http://terrainformatica.com/screenshots/harmonia.png Andrew.
Apr 25 2005
Wow this is looking awesome, when can we get something to play with ? Charlie "Andrew Fedoniouk" <news terrainformatica.com> wrote in message news:d4jknu$2n39$1 digitaldaemon.com...I second on that :) Teasing :) demo is here: http://terrainformatica.com/screenshots/HarmoniaDemo.zip (e.g. try to move splitter) After loading and starting you should see this picture: http://terrainformatica.com/screenshots/harmonia.png Andrew.
Apr 25 2005
"when can we get something to play with ?" I hope at the end of this week. Andrew. "Charlie" <charles jwavro.com> wrote in message news:d4jl8m$2nm0$1 digitaldaemon.com...Wow this is looking awesome, when can we get something to play with ? Charlie "Andrew Fedoniouk" <news terrainformatica.com> wrote in message news:d4jknu$2n39$1 digitaldaemon.com...I second on that :) Teasing :) demo is here: http://terrainformatica.com/screenshots/HarmoniaDemo.zip (e.g. try to move splitter) After loading and starting you should see this picture: http://terrainformatica.com/screenshots/harmonia.png Andrew.
Apr 25 2005
Do you have a name for it ? Charlie "Andrew Fedoniouk" <news terrainformatica.com> wrote in message news:d4jlnh$2o7k$1 digitaldaemon.com..."when can we get something to play with ?" I hope at the end of this week. Andrew. "Charlie" <charles jwavro.com> wrote in message news:d4jl8m$2nm0$1 digitaldaemon.com...Wow this is looking awesome, when can we get something to play with ? Charlie "Andrew Fedoniouk" <news terrainformatica.com> wrote in message news:d4jknu$2n39$1 digitaldaemon.com...I second on that :) Teasing :) demo is here: http://terrainformatica.com/screenshots/HarmoniaDemo.zip (e.g. try to move splitter) After loading and starting you should see this picture: http://terrainformatica.com/screenshots/harmonia.png Andrew.
Apr 25 2005
Hi, Charlie, 20 posts below it was sort of announcment: --------------------------------------------------- "It got a name: "Harmonia" or Harmonia framework ( Harmonia as Phobos and Deimos was a kid of Ares/Mars. BTW: This guy was so productive.... ) It has only win32 port so far but it is highly portable: it uses around 30 functions which use underlying OS resourses and they are located in separate native package in four files native.application, native.graphics, native.exchange, native.window. All native functions use 'native' prefix, e.g. nativeSetCursor(CursorType ct); Architecture and main goals: 1) Clear and classic class hierarchy (close to initial Java AWT) 2) Capture/bubble event propagation schema ( used in HTML event model http://catcode.com/domcontent/events/capture.html) which allows to create extremely compact and clean event handling. 3) Builtin compact and fast (in fact very fast) HTML engine. HTML used as universal layout manager, renderer and resource definition framework: e.g. dailogs, tooltips are entities defined by HTML. 4) Themeable - means that rendering style - colors, fonts, etc. are strongly separated from interaction and logic code. On the screenshot is a rendering of Harmonia default "Pathfinder theme" (themes/pathfinder.d, inspired by color gamma of shots taken by Mars Pathinder crawlers) 5) It does not use native OS widgets. Everything: menus, dialogs, controls, etc. are under the Harmonia control and are subjects of themeable styling. It is windowless framework, means it is use only OS toplevel window frames. Everything inside is "harmonised". This approach is highly usefull for creating modern web style (but lightwight!) UI and in games." "Charlie" <charles jwavro.com> wrote in message news:d4jn52$2pj2$1 digitaldaemon.com...Do you have a name for it ? Charlie "Andrew Fedoniouk" <news terrainformatica.com> wrote in message news:d4jlnh$2o7k$1 digitaldaemon.com..."when can we get something to play with ?" I hope at the end of this week. Andrew. "Charlie" <charles jwavro.com> wrote in message news:d4jl8m$2nm0$1 digitaldaemon.com...Wow this is looking awesome, when can we get something to play with ? Charlie "Andrew Fedoniouk" <news terrainformatica.com> wrote in message news:d4jknu$2n39$1 digitaldaemon.com...I second on that :) Teasing :) demo is here: http://terrainformatica.com/screenshots/HarmoniaDemo.zip (e.g. try to move splitter) After loading and starting you should see this picture: http://terrainformatica.com/screenshots/harmonia.png Andrew.
Apr 25 2005
On Mon, 25 Apr 2005 22:59:28 +0200, Andrew Fedoniouk <news terrainformatica.com> wrote:"when can we get something to play with ?" I hope at the end of this week. Andrew. "Charlie" <charles jwavro.com> wrote in message news:d4jl8m$2nm0$1 digitaldaemon.com...sounds very nice! may we get the code of the demo to see how it works? Alex -- huh? did you say something? :oWow this is looking awesome, when can we get something to play with ? Charlie "Andrew Fedoniouk" <news terrainformatica.com> wrote in message news:d4jknu$2n39$1 digitaldaemon.com...I second on that :) Teasing :) demo is here: http://terrainformatica.com/screenshots/HarmoniaDemo.zip (e.g. try to move splitter) After loading and starting you should see this picture: http://terrainformatica.com/screenshots/harmonia.png Andrew.
Apr 25 2005
Hi, Alex,may we get the code of the demo to see how it works?main.d is attached to the post begin 666 main.d M:6UP;W)T(&AA<FUO;FEA+G5I+F%P<&QI8V%T:6]N.PT*:6UP;W)T(&AA<FUO M;7!O<G0 :&%R;6]N:6$N=6DN979E;G1S.PT*:6UP;W)T(&AA<FUO;FEA+G5I M;',N<V-R;VQL8F%R.PT*:6UP;W)T(&AA<FUO;FEA+G5I+F-O;G1R;VQS+FQI M"FEM<&]R="!H87)M;VYI82YU:2YC;VYT86EN97)S+G-P;&ET=&5R.PT*:6UP M;W)T(&AA<FUO;FEA+G5I+F-O;G1A:6YE<G,N=&%B<SL-"FEM<&]R="!H87)M M=&%T:6, =&AI<R I( T*>PT*("!!<'!L:6-A=&EO;BYO;E-T87)T(#T M(" +R\ 4G5N=&EM92!S=&%R=&5D+B!3=&%T:6-S('=E<F4 :6YT:71A;&EZ M(&AE<F4-"B (" ("AN97< 37E7:6YD;W<H*2DN<W1A=&4 /2!7:6YD;W<N M/2 -"B (" O+R!!;&P =VEN9&]W<R!C;&]S960 <V\ 9&\ 9W)A8V5F=6P M;"!H<#L- M*3L-"B (" ('-P;&ET=&5R('X](&QB.PT*"2 ("!L8BYP;&%C92 ](')E M(" (" (")/;F4B+ T*(" (" (" B5'=O(BP-"B (" (" (E1H<F5E M(")3:7 4VEX(%-I>"!3:7 4VEX(%-I>"!3:7 4VEX(BP-"B (" (" M;F%M92 ](")(5$U,(%1E<W0B.PT*(" (" =&%B<R!^/2!H<#L-" T*(" M(" :' N;&]A9 T**"(\2%1-3"!B86-K+6-O;&]R/2=E9&ET(&1I86QO9R< M/DA434P =&5X=#PO23X )FYB<W [;&]A9&5D(&EN=&\ /$(^2%1-3%9I97<\ M+T(^("T <V-R;VQL86)L92!(5$U,(&-O;G1A:6YE<BX\+T Q/ T*(" \4#Y) M;FQI;F4 :6UA9V4Z/$E-1R!S<F,])W1E<W0N<&YG)R\^(&%N9" \0T]$13X M8V]D92!E>&%M<&QE.R \+T-/1$4^/"]0/ T*(" \4"!H96EG:'0],3 P)2!P M861D:6YG/3$P<'0 8F]R9&5R+7=I9'1H/3-P>"!B;W)D97(M<W1Y;&4])W-O M;&ED(&YO;F4 ;F]N92!N;VYE)R!B;W)D97(M8V]L;W(]9&EA;&]G+7-H861O M=&%N9&%R9"!(5$U,("T <&5R8V5N=', :&5R92!A<F4 /$D^<&5R8V5N=', M9G)O;2!F<F5E('-P86-E/"])/BX-"B (" \0E(O/DYO=&EC92 S('!I>&5L M(&)A<B!A="!T:&4 ;&5F="!S:61E("T :70 :7, ;&5F="!B;W)D97( ;V8 M=&AE('!A<F%G<F%P:"X 4W5C:"!P97)C96YT<R!A<F4 =7-E9"!I;G-T96%D M(&]F(&9L97 G97, :6X 6%5,+CPO4#X-"B /%1!0DQ%(&-E;&QS<&%C:6YG M/3$P<' 8V5L;'!A9&1I;F<],3!P>"!P861D:6YG/3$P<' 8F]R9&5R+7=I M9'1H/3%P>"!B;W)D97(M<W1Y;&4]<V]L:60 8F]R9&5R+6-O;&]R/61I86QO M9RUS:&%D;W< / T*(" (#Q44CX-"B (" \5$0 =VED=& ],S E(&AE:6=H M=#TQ M/2=H96QL;R!W;W)L9"< =VED=& ],3 P<' +SX-"F%N9"!B=71T;VXZ/$E. M4%54('1Y<&4]8G5T=&]N('9A;'5E/2=B=71T;VXG('=I9'1H/38P<' +SX- M"F%N9"!C;VUB;V)O>#H-"CQ)3E!55"!T>7!E/7-E;&5C="!W:61T:#TV,'!X M/ T*(" (" (" \3U!424]./D]N93PO3U!424]./ T*(" (" (" \3U!4 M24]./E1W;SPO3U!424]./ T*(" (" (" \3U!424]./E1H<F5E/"]/4%1) M3U!424]./D9I=F4\+T]05$E/3CX-"B (" (" /$]05$E/3CY3:7 4VEX M4%1)3TX^4V5V96X\+T]05$E/3CX-"B (" (" /$]05$E/3CY%:6=H=#PO M3U!424]./ T*(" (" (" \3U!424]./DYI;F4\+T]05$E/3CX-"B (" M<CTG9&EA;&]G+6QI9VAT('-C<F]L;&)A<B< 8F]R9&5R/2<Q<' <V]L:60 M(" (" \5$0 8F]R9&5R/2<Q<' <V]L:60 9&EA;&]G+7-H861O=R< =&5X M="UA;&EG;CUR:6=H=#YR:6=H="!A;&EG;F5D(&-E;&P =VET:"!B;W)D97(\ M+U1$/ T*(" (" /%1$/F9O=7(\+U1$/ T*(" (" /%1$(&)A8VLM8V]L M;W(])V1I86QO9RUL:6=H="!S8W)O;&QB87(G(&)O<F1E<CTG,7!X('-O;&ED M(&1I86QO9RUS:&%D;W<G/C(\+U1$/ T*(" (#PO5 M(" (" /%1$(&-O;'-P86X],B!B86-K+6-O;&]R/2=D:6%L;V<M;&EG:'0 M9&EA;&]G+7-H861O=R<^8V]L<W!A;CTR+"!T86)L92!C96QL<R!W:71H(&=R M861I96YT(&)A8VMG<F]U;F1S/"]41#X-"B (" (#Q41"!B86-K+6-O;&]R M/2=D:6%L;V<M;&EG:'0 9&EA;&]G+6QI9VAT('-C<F]L;&)A<B!D:6%L;V<M M<VAA9&]W)SXS/"]41#X-"B (" \+U12/ T*(" \+U1!0DQ%/ T*(" \4#Y( M>7!E<FQI;FL =&5S=#H /$$ :')E9CTG:'1T<#HO+W1E<G)A:6YF;W)M871I M*0T*(" (" >PT*(" (" ("!(=&UL4&%N96P =R ](&YE=R!(=&UL4&%N M96PH*3L-"B (" (" =RYN86UE(#T =&]55$8Q-BAF;W)M870H(E1E<W0 M9"AF;W)M870H(CQ(5$U,(&)A8VLM8V]L;W(]961I="!B;W)D97(])S%P>"!S M;VQI9"!D:6%L;V<M<VAA9&]W)R!P861D:6YG/3AP>#Y497-T(",\0CXE9#PO M:60 9')A=T-O;G1E;G0H1W)A<&AI8W, 9RD-"B >PT*(" (" <W5P97(N M(" (" (&%U=&\ 1W)A<&AI8W, :6< /2!N97< 1W)A<&AI8W,H:6TI.PT* M(" ('!O:6YT(&1S=" ]('!L86-E+G!O:6YT3V8H,2D[("\O('1O<"!R:6=H M(&1S="YY("T](&EM+F1I;65N<VEO;BYY.PT*(" (" ("!G+F-O<'E296-T M.PT*(" ('-P;&ET=&5R+G!L86-E(#T !" `` ` end
Apr 25 2005
On Mon, 25 Apr 2005 23:50:28 +0200, Andrew Fedoniouk <news terrainformatica.com> wrote:Hi, Alex,it also looks great! =) btw, is/will there also (be) menu-support? (the MainMenu, as it`s called Alex -- huh? did you say something? :omay we get the code of the demo to see how it works?main.d is attached to the post
Apr 25 2005
btw, is/will there also (be) menu-support? (the MainMenu, as it`s calledYes, MenuBar, Menu and PopupMenu are almost there. Basic widget set includes: Buttons: Button, CommandButton, OptionBox, CheckBox. Edit: EditBox (singleline), RichTextBox ( multiline editor, if I will have a time) Selector: ListBox, DDListBox, ComboBox. Other: TreeView, Grid (if I will have a time) Bars: ToolBar and StatusBar. Containers: Splitter and Tabs. Tooltips (plain and HTML tooltips) and HTML popups. All controls are "windowless" - means that they are not using system widgets. Overall pure D part is pretty clean. Example of real Splitter.d attached. "native" modules (4 items) are mess a bit. "Alexander Panek" <alexander.panek brainsware.org> wrote in message news:op.sps5xwt8y2yy8c chello080109082145.3.15.vie.surfer.at...On Mon, 25 Apr 2005 23:50:28 +0200, Andrew Fedoniouk <news terrainformatica.com> wrote:begin 666 splitter.d M<G0 :&%R;6]N:6$N=6DN=VED9V5T<SL-" T*8VQA<W, 4W!L:71T97(Z(%=I M9&=E=',-"GL-"G!R;W1E8W1E9#H- M8F]O;"!V97)T:6-A;"P =6EN="!B87)3:7IE(#T M+G9E<G1I8V%L(#T M979T+G!O<RYY("T 9FER<W0N<&QA8V4N:&5I9VAT*3L-" D)"0ER971U<FX M=')U93L-" D)"6-A<V4 179E;G10;VEN=&5R+E50. T*"0D)"6-A<'1U<F4H M9F%L<V4I.PT*"0D)"7)E='5R;B!T<G5E.PT*"0D)8V%S92!%=F5N=%!O:6YT M97(N34]613H-" D)"0EI9B A979T+FES4&]I;G1"=71T;VXI(')E='5R;B!F M<VEZ92AE=G0N<&]S+G +2!O9F9S970L9FER<W0N<&QA8V4N:&5I9VAT*3L- M92YW:61T:"QE=G0N<&]S+GD +2!O9F9S970I.PT*"0D)"61O3&%Y;W5T*"D[ M72YL96YG=& (3T ,BD <F5T=7)N(&9A;'-E.PT*"0E7:61G970 9FER<W0 M+G!L86-E(#T M"0EI;G0 =S$ /2!F:7)S="YP;&%C92YW:61T:#L- M<E-I>F4I.PT*"0D):68H('<R(#P ," I('L =S( /2 P.R!W,2 ]('!L86-E M>F4H=S$L('!L86-E+FAE:6=H="D[( T*"0D);&%S="YP;&%C92 ](')E8W0H M"0D)9FER<W0N<&QA8V4 /2!S:7IE*'!L86-E+G=I9'1H+"!H,2D[( T*"0D) M;&%S="YP;&%C92 ](')E8W0H<&]I;G0H,"QH,2 K(&)A<E-I>F4I+'-I>F4HHi, Alex,it also looks great! =) btw, is/will there also (be) menu-support? (the MainMenu, as it`s called Alex -- huh? did you say something? :omay we get the code of the demo to see how it works?main.d is attached to the post` end
Apr 25 2005
On Mon, 25 Apr 2005 16:59:27 -0700, Andrew Fedoniouk wrote: [snip]All controls are "windowless" - means that they are not using system widgets.Does that mean you are doing the low-level rendering in D? And is that using Regions, or just simple pixel draws. How are you handling the Z-order issues? -- Derek Melbourne, Australia 26/04/2005 10:05:00 AM
Apr 25 2005
Does that mean you are doing the low-level rendering in D? And is that using Regions, or just simple pixel draws. How are you handling the Z-order issues?I don't know what "low level" means here. Nothing spectacular there in fact. All drawing done through Graphics object (attached). All target platforms have correspondent native*** function implemented. This Graphics is a common denominator for all GUI platforms. There are no Regions as a separate entity. Just pair of PushClip/PopClip. There are plans to create GraphicsEx based on http://www.antigrain.com/ but in next version. Andrew. "Derek Parnell" <derek psych.ward> wrote in message news:1fvlwk767kij4.1delnx3s7y2ns.dlg 40tude.net...On Mon, 25 Apr 2005 16:59:27 -0700, Andrew Fedoniouk wrote: [snip]begin 666 graphics.d M>PT*(" ('!R:79A=&4 :6UP;W)T(&AA<FUO;FEA+G5I+FYA=&EV92YW:6XS M,F=R87!H:6-S.PT*?0T*96QS90T*>PT*(" ('-T871I8R!A<W-E<G0H,"D[ M"0DO+R!7:6YD;W=S(&]N;'D 9F]R(&$ =VAI;&4L(&YE960 <V]M96)O9'D M86)L92!E;G1I='D-"B J("!7:6YD;W<L($EM86=E(&%N9"!0<FEN=&5R(&%R M92!)4W5R9F%C97,-"B J+PT*:6YT97)F86-E($E3=7)F86-E( T*>PT*("!V M+PT*96YU;2 Z('5I;G0 +R\ <WES=&5M(&-O;&]R<PT*>PT*("!44D%.4U!! M4D5.5" (" (" (#T ,'A&1D9&1D9&1BP-"B 3D]?0T],3U( (" (" M3TQ/4E]$24%,3T=?0E))1TA4(#T M3T=?4TA!1$]7( D (#T M3E]415A4(" (#T M5$585" (" (#T M0T%05$E/3E]415A4(#T M(" (" (#T M8R M(&1R87=I;F< <')I;6ET:79E<RX-"B *B\-" T*8VQA<W, 1W)A<&AI M8W,Z('!U8FQI8R!.871I=F5'<F%P:&EC<PT*>PT*("!P86-K86=E. T*(" M($E3=7)F86-E(%]S=7)F86-E.PT*(" ($9O;G0 (" (%]F;VYT.PT*(" M('-T871I8R!&;VYT(%]D969A=6QT1F]N=#L-"B ("!C;VQO<B ("!?=&5X M.B ( T*(" ( T*(" ('1H:7,H($E3=7)F86-E('-U<F9A8V4 *2 -"B M("![( T*(" (" 7W-U<F9A8V4 /2!S=7)F86-E.R -"B (" (%]S=7)F M86-E+FEN:71I86QI>F4H=&AI<RD[(" -"B (" (&YA=&EV95-E=$9O;G0H M("!I9BA?<W5R9F%C92D 7W-U<F9A8V4N9FEN86QI>F4H=&AI<RD[(%]S=7)F M86-E(#T ;G5L;#M M86YT(&9O<B!A(&1R87< ;W!E<F%T:6]N('1H870 9')A=W, =&AE('-O=7)C M92!C=7)R96YT('-U<F9A8V4N(%1H92!C;W!Y(&]P97)A=&EO;B!I<R!P97)F M=&AE('-E='1I;F< ;V8 =&AE(&-U<G)E;G0 9')A=VEN9R!O<&5R871I;VXN M86YG;&4-"B (" 0'!A<F%M(&1S="!T:&4 9&5S=&EN871I;VX <&]I;G0 M*&]R:6=I;B!O9B!W:&5R92!T;R!C;W!Y*0T*(" ("! <V5E("-S971$<F%W M<W0L(')E8W0 <W)C+"!'<F%P:&EC<R!G<W)C(#T M(" ("!I9B 9W-R8R!I<R!N=6QL("D 9W-R8R ]('1H:7,[( T*(" (" M;F%T:79E0V]P>5)E8W0H(&=S<F,L('-R8RP 9'-T("D[( T*(" ('T-" T* M(" ('9O:60 =&EL95)E8W0H<F5C="!D<W0L(')E8W0 <W)C+"!'<F%P:&EC M<R!G<W)C(#T M"B (" (&EN="!M87A9(#T 9'-T+F)O='1O;3L-"B (" (&EN="!S<F-( M(#T <W)C+FAE:6=H=#L-"B (" (&EN="!S<F-7(#T <W)C+G=I9'1H.PT* M>2 ](&1S="YT;W [(' N>2 \/2!M87A9.R!P+GD *ST <W)C2"D-"B (" M('L-"B (" (" :68H<"YY("L <RYY(#X ;6%X62D <RYY(#T ;6%X62 M M+G /2!D<W0N;&5F=#L <"YX(#P](&UA>% [(' N>" K/2!S<F-7*0T*(" M(&=S<F, :7, ;G5L;" I(&=S<F, /2!T:&ES.PT*(" (" ;F%T:79E4W1R M971C:%)E8W0H(&=S<F,L('-R8RP 9'-T("D[( T*(" ('T-" T*(" ("\J M* T*(" (" J(&1R87< <F5C="!U<VEN9R!C=7)R96YT(&)R=7-H("AI9B!A M;GDI(&%N9"!P96X *&EF(&%N>2D 9F]R(&)O<F1E<G,-"B (" *B\-" T* M>6=O;B <&]I;G1;72!P;VEN=', *0T*(" ('L-"B (" (&YA=&EV941R M87=0;VQY9V]N*'!O:6YT<RD[( T*(" ('T-" T*(" ("\O('-O;&ED(&9I M:6QL4F5C="AR96-T(')C+"!C;VQO<B!B*2 -"B ("![( T*(" (" ;F%T M;W!,969T+"!C;VQO<B!T;W!2:6=H="P 8V]L;W( 8F]T=&]M4FEG:'0L(&-O M="AR8RQT;W!,969T+'1O<%)I9VAT+&)O='1O;5)I9VAT+&)O='1O;4QE9G0I M,BD[( T*(" ('T-"B -" T*(" (&5N=6T 1%)!5SH =6EN=" O+R!D<F%W M(" (" (" 0T5.5$52(#T ,' Q+ T*(" (" (" (%))1TA4(#T ,' R M+ T*(" (" (" ( T*(" (" (" (%1/4" ]( D),' P,"P-"B (" M(" ("!-241$3$4 /2 ),' Q,"P-"B (" (" ("!"3U143TT /2 ),' R M(" ("!0051(7T5,3$E04TE3(#T M('1E>'0 870 <&]S:71I;VX )W=H97)E)PT*(" ('9O:60 9')A=T-H87)S M*'=C:&%R6UT 8VAA<G,L('!O:6YT('=H97)E*2 -"B ("![( T*(" (" M+R]R96-T(')C(#T <F5C="AW:&5R92YX+'=H97)E+GDL,"PP*3L-"B (" M:&%R<RAC:&%R<RDN>#L-"B (" (" :6YT('D /2!W:&5R92YY("L 7V9O M;G0N87-C96YT("L ,3L-"B (" (" 9FEL;%)E8W0H<F5C=" =VAE<F4N M>"P >2P =VAE<F4N>" K('< +2 Q+"!Y("DL(%]T97AT0V]L;W(I.PT*(" M(" ?0T*(" ('T-" T*(" ("\O(&1R87< =&5X="!A;&EG;F5D(&EN<VED M87)S+"!R96-T('=H97)E+"!U:6YT(&9L86=S(#T 1%)!5RY,1494('P 1%)! M<F5T=7)N(&1I;65N<VEO;G, ;V8 =&AE('-T<FEN9R -"B (" O+R!O;B!T M:&4 9W)A<&AI8W, 9F]R('1H92!C=7)R96YT(&9O;G0-"B ("!S:7IE(&UE M(" (" 875T;R!'<F%P:&EC<R!I9R ](&YE=R!'<F%P:&EC<RAS<F,I.PT* M=R!M;VYO8VAR;VUE(&)I=&UA< T*(" ('9O:60 9')A=U!I>&UA<"AC;VQO M<B!C+"!P;VEN="!D<W0L('-I>F4 <&EX;6%P4VEZ92P =6)Y=&5;72!P:7AM M4VEZ92QP:7AM87 I.PT*(" ('T-" T*(" ("\O(&1E=&5R;6EN97, :68 M(" ('T-" T*(" (&5N=6T 4&5N4W1Y;&4 .B!U:6YT( T*(" ('L-"B M(" (%-/3$E$7TE.4TE$12P-"B (" (%-/3$E$+ T*(" (" 1$%32"P- M"B (" ($1/5"P-"B (" ($1!4TA$3U0L( T*(" (" 1$%32$1/5$1/ M5 T*(" ('T-" T*(" ('9O:60 <V5T4&5N*&-O;&]R(&,L(&EN="!W:61T M(" >PT*(" (" (&YA=&EV95-E=%!E;BAC+"!W:61T:"P 8V%S="AU:6YT M+2 -"B (" (%9%4E1)0T%,+" (" (" ("\O('Q\?'Q\( T*(" (" M(" (" (" O+R O+R\O+R -"B (" ($-23U-3+" (" (" (" ("\O M;&4 <W1Y;&4 /2!"<G5S:%-T>6QE+E-/3$E$*0T*(" ('L-"B (" ("!N M0G)U<V H5%)!3E-005)%3E0L(&-A<W0H0G)U<VA3='EL92DP*3L-"B ("!] M875L=$9O;G0I.PT*(" (" 96QS90T*(" (" ("!N871I=F53971&;VYT M*%]F;VYT(#T M<FX 7V9O;G0[('T-" T*(" ("\O('-E="!T97AT(&-O;&]R(" A*0T*(" M;F4[('T-"B ("!B;V]L('5N9&5R;&EN92AB;V]L('8I('L <F5T=7)N(%]U M>PT*(" (" ;F%T:79E4V5T3W)I9VEN*' I.PT*(" ('T-" T*(" ("\O M('!U<V 8VQI<" M('-E=', 8VQI<'!I;F< 87)E82P <F5T=7)N<R!T<G5E M(&EF(')E<W5L=&%N="!A<F5A(&ES(&YO="!E;7!T>0T*(" (&)O;VP <'5S M:$-L:7 H<F5C="!R8RD >R!R971U<FX ;F%T:79E4'5S:$-L:7 H<F,I.R!] M"B (" O+R!!5%1..B!C86QL('1H:7, ;VYL>2!I9B!P<F5V:6]U<R!P=7-H M0VQI<"!R971U<FYE9" G=')U92<-"B ("!V;VED('!O<$-L:7 H*2![(')E M>&5L<U!E<DEN8V H8F]O;"!R97-E=" ](&9A;'-E*0T*(" ('L-"B (" M:" ](&YA=&EV95!I>&5L<U!E<DEN8VA/;E-C<F5E;B I.PT*(" (" <F5T M=7)N('!I>&5L<TEN26YC:#L- M=#H M1&5F( T*(" ('L-"B (" (&-H87);72 ;F%M93L-"B (" (&EN=" M(" <VEZ93L +R\ :6X <&EX96QS+ T*(" (" 8F]O;" ("!B;VQD.PT* M+$9O;G0I.PT*(" (" +R\ 8W)E871E(&1E9F%U;'0 <WES=&5M(&9O;G0L M*$9O;G1$968L1F]N="D-"B ("!S=&%T:6, 1F]N="!C<F5A=&5">41E9BA& M*"!D968N;F%M92P 9&5F+G-I>F4L(&1E9BYB;VQD+"!D968N:71A;&EC("D[ M871I8R!&;VYT(&-R96%T92AC:&%R6UT ;F%M92P :6YT('-I>F50:7AE;',L M(&)O;VP 8F]L9" ](&9A;'-E+"!B;V]L(&ET86QI8R ](&9A;'-E*2 -"B M(" <F5T=7)N(&9O;G1S+FEN=&5R;BAD968L("9C<F5A=&5">41E9B I.PT* M(" ('T-"B ("!S=&%T:6, 1F]N="!C<F5A=&4H8VAA<EM=(&YA;64L(&1O M=6)L92!S:7IE4&]I;G1S+"!B;V]L(&)O;&0 /2!F86QS92P 8F]O;"!I=&%L M(" 9&5F+FYA;64 /2!N86UE.PT*(" (" 9&5F+G-I>F4 /2 M(&-A<W0H M(&9O;G1S+FEN=&5R;BAD968L("9C<F5A=&5">41E9B I.PT*(" ('T-" T* M(" ('-T871I8R!&;VYT('-Y<W1E;2 I("\O(&1E9F%U;'0 <WES=&5M(&9O M<FX 9&5F+FYA;64[('T-"B ("!I;G0 (" ('-I>F4H*2 ("![(')E='5R M;B!D968N<VEZ93L ?0T*(" (&)O;VP (" 8F]L9" I(" ('L <F5T=7)N M=F5);FET365T<FEC<RAN=6QL*3L <F5T=7)N(%]A<V-E;G0[('T-"B ("!I M;G0 (" (&AE:6=H=" I("![(&YA=&EV94EN:71-971R:6-S*&YU;&PI.R!R M971U<FX 7VAE:6=H=#L M(#P M8GET92!B("D-"GL-"B <F5T=7)N("AC87-T*&-O;&]R*6$ /#P ,C0I('P M*&-A<W0H8V]L;W(I8B \/" Q-BD ?" H8V%S="AC;VQO<BEG(#P M:70-"GL-"B 4% L("\O('!I>&5L<PT*("!-32P +R\ ;6EL;&EM971E<G,- M("\O('!O:6YT<PT*("!04BP +R\ <&5R8V5N=',-"GT-" T*=6EN="!P:7AE M;',H9&]U8FQE(&0L($Q5(&QU*0T*>PT*("!S=VET8V H(&QU("D-"B >PT* M(" (&-A<V4 3%4N4% Z(')E='5R;B!C87-T*'5I;G0I9#L-"B ("!C87-E M($Q5+DU-.B!R971U<FX 8V%S="AU:6YT*2AC87-T*&1O=6)L92DH1W)A<&AI M8W,N<&EX96QS4&5R26YC:" I("H 9"D +R R-2XT*3L-"B ("!C87-E($Q5 M+D--.B!R971U<FX 8V%S="AU:6YT*2AC87-T*&1O=6)L92DH1W)A<&AI8W,N M<&EX96QS4&5R26YC:" I("H 9"D +R R+C4T*3L-"B ("!C87-E($Q5+DE. M.B!R971U<FX 8V%S="AU:6YT*2AC87-T*&1O=6)L92DH1W)A<&AI8W,N<&EX M96QS4&5R26YC:" I("H 9"DI.PT*(" (&-A<V4 3%4N4%0Z(')E='5R;B!C M87-T*'5I;G0I*&-A<W0H9&]U8FQE*2A'<F%P:&EC<RYP:7AE;'-097));F-H 3971U<FX ,#L- ` endAll controls are "windowless" - means that they are not using system widgets.Does that mean you are doing the low-level rendering in D? And is that using Regions, or just simple pixel draws. How are you handling the Z-order issues? -- Derek Melbourne, Australia 26/04/2005 10:05:00 AM
Apr 25 2005
Andrew Fedoniouk schrieb:Nothing spectacular there in fact. All drawing done through Graphics object (attached). All target platforms have correspondent native*** function implemented. This Graphics is a common denominator for all GUI platforms.Doesn't that mean one just had to write an OpenGL Graphics object to be multiplatform? Regards, Nils
Apr 25 2005
Doesn't that mean one just had to write an OpenGL Graphics object to be multiplatform?Yes, it is possible to write Graphics based on OpenGL primitives.... to be multiplatform?Ummm.... See, there are four (and only four) native group of functions in files: native.application - startup/shutdown, GUI message pump, standard dialogs. native.graphics - per se native.exchange - clipboard support and the like. native.window - top-level window bindings. I think that GLUT or GLUI could be used as an example for other than Graphics functions. I am not sure though. As an idea: Ben's Hinkle MinWin library could be used as a porting layer. At least partially. Andrew. "Nils Hensel" <nils.hensel web.de> wrote in message news:d4kjmm$jto$1 digitaldaemon.com...Andrew Fedoniouk schrieb:Nothing spectacular there in fact. All drawing done through Graphics object (attached). All target platforms have correspondent native*** function implemented. This Graphics is a common denominator for all GUI platforms.Doesn't that mean one just had to write an OpenGL Graphics object to be multiplatform? Regards, Nils
Apr 25 2005
Andrew Fedoniouk schrieb:There are plans to create GraphicsEx based on http://www.antigrain.com/ but in next version.Have you thought about using Cairo? (www.cairographics.org) This might give you far more performance, since it allows hardware accellerated backends as well (among many others) AGG does, afaik, aim more at very low level control and precision than at performance. (Besides, a AGG backend for Cairo is certain to be produced by someone, and this would probably also offer access to the low-level details in those points where you need them.)
Apr 27 2005
Have you thought about using Cairo?Well, it is matter of personal preferences I know author of AGG (Max Schemanarev) in person, so he may help in the case. Cairo dependends on libpixman but it is in C. I need to take a closer look again on it to be short. I don't think that antialiased rendering should be used everywhere. For cases when you definitely need it AGG works and works well. Other GUI stuff - rendering of basic widgets does not require AA drawing. Harmonia already supports alpha channel rendering so complex widget shapes rendered as a composition of static 32bpp PNGs. Harmonia relies on OS graphics primitives which are already hardware accelerated. E.g. on Windows it uses text rendering with ClearType (if it is enabled). Andrew. "Norbert Nemec" <Norbert Nemec-online.de> wrote in message news:d4nsch$spn$1 digitaldaemon.com...Andrew Fedoniouk schrieb:There are plans to create GraphicsEx based on http://www.antigrain.com/ but in next version.Have you thought about using Cairo? (www.cairographics.org) This might give you far more performance, since it allows hardware accellerated backends as well (among many others) AGG does, afaik, aim more at very low level control and precision than at performance. (Besides, a AGG backend for Cairo is certain to be produced by someone, and this would probably also offer access to the low-level details in those points where you need them.)
Apr 27 2005
Andrew Fedoniouk wrote:I don't think that antialiased rendering should be used everywhere.There may be several things for which you don't need antialiased rendering. However, I can only think of GUI Widgets. Images usually do need antialiased rendering. Pictures (as in camera shots), rotated, composited, transparent, or vector graphics -- all of these do actually need antialiased rendering. For a "free flow" of "items" on the screen, most do actually need antialiasing. Even fonts, unless you use the (very few) Microsoft/Adobe owned ones. But they're not free. (As in beer.) Also, do remember, that when screen resolutions exceed what one can see with plain eyes, then things like window borders, and the like, have to be defined in fractions of pixels (exceeding 1.0 pixels), to be usable at all. Also most of the motivation of using larger-than-the-minimum font sizes is actually due to wanting to use aliased fonts, not necessarily just "larger" fonts. (Thus erasing the virtues of a larger screen estate as such.) --- Let's just say, that if antialiasing were invented years before lcd-screens, then everything would be antialiased. Then wed have (as standard issue) the user-definable Virtual Size. Thus, there'd be a slider, where you can zoom the entire screen, as if it were just a zoom view of a piece of paper, through an SLR camera. Oh, and we _will_ get there -- very shortly. The fixed screen sizes, non-aliased window decorations, button borders, and System Fonts, all will vanish very shortly. The need is there, the means are there, all we need to wait for is the Recognition of that it's _both_ important, and possible right now.
Apr 27 2005
Images usually do need antialiased rendering. Pictures (as in camera shots), rotated, composited, transparent, or vector graphics -- all of these do actually need antialiased rendering.Rotation and stretching of images by itself is sort of antialiasing. .... "composited, transparent" ... I have no idea how this is tied with antialiasing. And only pure vector graphics - yes - do need antialiasing and on the screen. For this cases will be GraphicsEx.For a "free flow" of "items" on the screen, most do actually need antialiasing.Could you give an example?Even fonts, unless you use the (very few) Microsoft/Adobe owned ones. But they're not free. (As in beer.)ClearType (algorithm of font AA drawing) is not a property of the particular font but rather method of font rendering. It is builtin in Windows and in some flavours of Linux. Mac also has something.Also, do remember, that when screen resolutions exceed what one can see with plain eyes, then things like window borders, and the like, have to be defined in fractions of pixels (exceeding 1.0 pixels), to be usable at all.??? I missed you here completely. If screen will have more than 300DPI resolution it will not need AA drawing nor subpixel positioning as size of pixels will be small enough to see smooth picture. Andrew. "Georg Wrede" <georg.wrede nospam.org> wrote in message news:42703177.40503 nospam.org...Andrew Fedoniouk wrote:I don't think that antialiased rendering should be used everywhere.There may be several things for which you don't need antialiased rendering. However, I can only think of GUI Widgets. Images usually do need antialiased rendering. Pictures (as in camera shots), rotated, composited, transparent, or vector graphics -- all of these do actually need antialiased rendering. For a "free flow" of "items" on the screen, most do actually need antialiasing. Even fonts, unless you use the (very few) Microsoft/Adobe owned ones. But they're not free. (As in beer.) Also, do remember, that when screen resolutions exceed what one can see with plain eyes, then things like window borders, and the like, have to be defined in fractions of pixels (exceeding 1.0 pixels), to be usable at all. Also most of the motivation of using larger-than-the-minimum font sizes is actually due to wanting to use aliased fonts, not necessarily just "larger" fonts. (Thus erasing the virtues of a larger screen estate as such.) --- Let's just say, that if antialiasing were invented years before lcd-screens, then everything would be antialiased. Then wed have (as standard issue) the user-definable Virtual Size. Thus, there'd be a slider, where you can zoom the entire screen, as if it were just a zoom view of a piece of paper, through an SLR camera. Oh, and we _will_ get there -- very shortly. The fixed screen sizes, non-aliased window decorations, button borders, and System Fonts, all will vanish very shortly. The need is there, the means are there, all we need to wait for is the Recognition of that it's _both_ important, and possible right now.
Apr 27 2005
We are there!!... Well, almost :) You should really take a look at Luminocity, an experimental window manager being developed by the good folks at RedHat. It's best features are anti aliased vector widgets using Cairo, wobbly windows, zooming / panning on a 3D world using OpenGL. Some preview videos and screenshots are available to download here: http://www.gnome.org/~seth/blog/xshots Georg Wrede wrote:... lcd-screens, then everything would be antialiased. Then wed have (as standard issue) the user-definable Virtual Size. Thus, there'd be a slider, where you can zoom the entire screen, as if it were just a zoom view of a piece of paper, through an SLR camera. Oh, and we _will_ get there -- very shortly. The fixed screen sizes, non-aliased window decorations, button borders, and System Fonts, all will vanish very shortly. The need is there, the means are there, all we need to wait for is the Recognition of that it's _both_ important, and possible right now.
Apr 29 2005
Does this mean that my good friend, who is legally very blind, and can only see the computer screen with the magnifier on at good strength won't like or wish to use any of the programs one might write with this library, as the widgets wouldn't benefit from the system's accessability features? -[Unknown]All controls are "windowless" - means that they are not using system widgets.
Apr 26 2005
You can use system magnifier tool. Why not? But accessibility in general is not only magnification. In case of Harmonia it is going to be a special theme - high contrast and with bigger fonts. HTML as a form layout tool also helps to solve accessibility issues - its stretchable features allows to use different form factors keeping related information close (e.g. label/control). The same is valid for internationalization (localization) issues. Andrew. "Unknown W. Brackets" <unknown simplemachines.org> wrote in message news:d4m0j6$21lu$2 digitaldaemon.com...Does this mean that my good friend, who is legally very blind, and can only see the computer screen with the magnifier on at good strength won't like or wish to use any of the programs one might write with this library, as the widgets wouldn't benefit from the system's accessability features? -[Unknown]All controls are "windowless" - means that they are not using system widgets.
Apr 26 2005
Andrew Fedoniouk wrote:Hi, Alex,Very clean code - I like it! Normally I hate programming GUI apps because the APIs suck. Your API looks very nice and clean. How are you planning on licensing Harmonia when you release it? Bradmay we get the code of the demo to see how it works?main.d is attached to the post
Apr 25 2005
"How are you planning on licensing Harmonia when you release it?" Free. Just copuple of wishe like: a) to not remove copyright notices. b) to place a link to our site on derived products. "Brad Beveridge" <brad somewhere.net> wrote in message news:d4jpdc$2rui$1 digitaldaemon.com...Andrew Fedoniouk wrote:Hi, Alex,Very clean code - I like it! Normally I hate programming GUI apps because the APIs suck. Your API looks very nice and clean. How are you planning on licensing Harmonia when you release it? Bradmay we get the code of the demo to see how it works?main.d is attached to the post
Apr 25 2005
Andrew Fedoniouk schrieb:"How are you planning on licensing Harmonia when you release it?" Free. Just copuple of wishe like: a) to not remove copyright notices. b) to place a link to our site on derived products.I would strongly encourage you to pick some well-known open source license. There are many software projects out there where the author had the best intentions to make the software "free", and lateron, legal issues popped up with some home-grown license. Just using some well-known license like GPL, BSD, MIT or others is the easiest way to avoid that problem. Best known is probably GPL. Anyhow, this license restricts the use of your library to projects that are open source as well. LGPL would be an alternative, if you deliberately want to allow people to use your library in proprietary projects and perhaps make money even though you don't see a penny. Both licenses are worked out very elaborately. Other licenses are simpler and less elaborate or just follow more specific needs. A good compilation of alternative licenses can be found at http://www.opensource.org/licenses/index.php A bit more commented but also more political is the compilation by GNU: http://www.gnu.org/licenses/license-list.html The wish a) is usually covered by any license. As is the general demand for recognition of you as the original author in any derived work. The wish b) is simple but also rather unclear as it stands. Many licenses try to clarify this wish in one way or another. Many do it in a way that fails to meet certain standards for free licenses. In general you don't have to become an expert on licensing issues, but it will certainly pay off to spend a little though on it now, so you and the users of your library will not have the hassle lateron and you neither throw away your own rights nor block the most flexible use of your library. Greetings, Norbert
Apr 26 2005
In article <d4lldv$1n01$1 digitaldaemon.com>, Norbert Nemec says...Andrew Fedoniouk schrieb:<snip> Norbert is right - it would make sense to check out the links and find a library already in use that suits your intent. However..."How are you planning on licensing Harmonia when you release it?" Free. Just copuple of wishe like: a) to not remove copyright notices. b) to place a link to our site on derived products.Best known is probably GPL. Anyhow, this license restricts the use of your library to projects that are open source as well. LGPL would be an alternative, if you deliberately want to allow people to use your library in proprietary projects and perhaps make money even though you don't see a penny. Both licenses are worked out very elaborately. Other licenses are simpler and less elaborate or just follow more specific needs.Even if you license it GPL, people can still make money off of it (and you may still not see a penny), even if they follow the GPL to a 'T'. In your case, the GPL basically says that the developer of an application using your library has to make the source code for their application available to people whom they distribute the application to (w/o restriction), even if they charge a bundle for it. It also says that the people they distribute the application to must then in turn distribute the source code with the binaries (w/o restriction) and so on down the line. If the original developer charges a bundle for an application using your library, then the entity buying it is much less likely to ever re-distribute your library unless they in turn get paid something. If part of your intent is to make your library available to as many people as possible, then the GPL can actually end-up working against that because there are those who don't want to use GPL in their applications because of all of the legal B.S. associated with it (e.g.: distributing all of their expensive source code in exchange for using a GPL library for merely a part of it). The original developer of the application (or anyone buying it) using your library is not obligated at all to making your library publically available for download, giving it away free, or anything like that. You could still license your library GPL and not let anyone download it unless they paid for it. Of course, after they buy it, they can do whatever they want with the binaries and/or source code. That's the original intent of the GPL - to give people who pay for software ultimate control over what they buy. IMO, if it is your intent to share the code to this library in as non-restrictive a way as possible, pick a license that does not make it necessary for the users to distribute their source code as well. You can even say in the license something like "...if you use this library in your application, then the Harmonia library source code must be made available upon request to the user of your application...". In that way, people reluctant to use GPL'd libraries will not see a problem with using your library, yet you can bind them to a source code distribution policy for your library through the terms of your license. That will have the effect of giving your library the largest potential distribution, if that is your intent.
Apr 26 2005
I don't see how that would work. If you sold a product or library, and gave it to the client under the GPL... they would have full rights to redistribute it. In essence, they could then go and redsistribute it for free. In other words, they could give it to other, potential clients. Many people dual license open source projects, because of the plaugish nature of the GPL, like MySQL. But, as you say, it's sometimes possible to go with a less restrictive license. It's obviously important to note that you don't have to release your software under one and only one license. In any case, there are actually some that describe the case of copyright statements. In a project of mine, we use a license we spent some time approving with the lawyer, which is mostly open source but has other restrictions like the copyright one. It's not always a bad idea to do this. -[Unknown]
Apr 26 2005
"Unknown W. Brackets" <unknown simplemachines.org> wrote in message news:d4m0er$21lu$1 digitaldaemon.com...I don't see how that would work. If you sold a product or library, and gave it to the client under the GPL... they would have full rights to redistribute it. In essence, they could then go and redsistribute it for free. In other words, they could give it to other, potential clients.Yes but they would be less likely to do that if they were charged for the derivitive work .. and my point was that licensing with the GPL doesn't mean someone can't charge for derivitive works. It's been done. The larger point was really that if the intent is to make the lib. as widely distributed as possible, then the GPL is not the best of OSS licenses for that.Many people dual license open source projects, because of the plaugish nature of the GPL, like MySQL. But, as you say, it's sometimes possible to go with a less restrictive license. It's obviously important to note that you don't have to release your software under one and only one license. In any case, there are actually some that describe the case of copyright statements. In a project of mine, we use a license we spent some time approving with the lawyer, which is mostly open source but has other restrictions like the copyright one. It's not always a bad idea to do this.There-in lies the rub - you had to get and (presumably) pay for a lawyer for all of that licensing.. Been there, done that, and the lawyers made more money off of that project than the programmers did! <g> Agreed, though. Sometimes it is needed.-[Unknown]
Apr 26 2005
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Unknown W. Brackets schrieb am Tue, 26 Apr 2005 11:14:54 -0700:I don't see how that would work. If you sold a product or library, and gave it to the client under the GPL... they would have full rights to redistribute it.Have a look at http://superwaba.com.br paying users: LGPL non-paying users: GPL ... Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFCbovL3w+/yD4P9tIRAq9TAJ9iyO3pbHdu/LCRzAoldvYUnEOQZwCghTCT tYtkOLiC2FATpFbkyriCP7I= =XNSx -----END PGP SIGNATURE-----
Apr 26 2005
That's dual licensing, as I described below. -[Unknown]Unknown W. Brackets schrieb am Tue, 26 Apr 2005 11:14:54 -0700:I don't see how that would work. If you sold a product or library, and gave it to the client under the GPL... they would have full rights to redistribute it.Have a look at http://superwaba.com.br paying users: LGPL non-paying users: GPL ... Thomas
Apr 26 2005
Actually, I wanted to avoid getting into too many details, but obviously, that is difficult in such a topic. As far as I can see, the the way of "abuse" of the GPL that Dave describes does not even go against the spirit of the GPL. In no way does the GPL want to prohibit making money on software. It only want to prevent people from selling black-box software where the buyer has no real control over what he bought. Independent of that, since Andrew is working on a library, the LGPL might be a more adequate choice. Distributing a library as GPL is indeed rather restrictive and only makes sense if you want to make a political statement (like GNU readline) or have bigger plans with your software (like dual-licensing it for commercial users, as Trolltech does it with Qt). If the main intention is to have a *free* library, LGPL is the way to go. Dave schrieb:In article <d4lldv$1n01$1 digitaldaemon.com>, Norbert Nemec says...Andrew Fedoniouk schrieb:<snip> Norbert is right - it would make sense to check out the links and find a library already in use that suits your intent. However..."How are you planning on licensing Harmonia when you release it?" Free. Just copuple of wishe like: a) to not remove copyright notices. b) to place a link to our site on derived products.Best known is probably GPL. Anyhow, this license restricts the use of your library to projects that are open source as well. LGPL would be an alternative, if you deliberately want to allow people to use your library in proprietary projects and perhaps make money even though you don't see a penny. Both licenses are worked out very elaborately. Other licenses are simpler and less elaborate or just follow more specific needs.Even if you license it GPL, people can still make money off of it (and you may still not see a penny), even if they follow the GPL to a 'T'. In your case, the GPL basically says that the developer of an application using your library has to make the source code for their application available to people whom they distribute the application to (w/o restriction), even if they charge a bundle for it. It also says that the people they distribute the application to must then in turn distribute the source code with the binaries (w/o restriction) and so on down the line. If the original developer charges a bundle for an application using your library, then the entity buying it is much less likely to ever re-distribute your library unless they in turn get paid something. If part of your intent is to make your library available to as many people as possible, then the GPL can actually end-up working against that because there are those who don't want to use GPL in their applications because of all of the legal B.S. associated with it (e.g.: distributing all of their expensive source code in exchange for using a GPL library for merely a part of it). The original developer of the application (or anyone buying it) using your library is not obligated at all to making your library publically available for download, giving it away free, or anything like that. You could still license your library GPL and not let anyone download it unless they paid for it. Of course, after they buy it, they can do whatever they want with the binaries and/or source code. That's the original intent of the GPL - to give people who pay for software ultimate control over what they buy. IMO, if it is your intent to share the code to this library in as non-restrictive a way as possible, pick a license that does not make it necessary for the users to distribute their source code as well. You can even say in the license something like "...if you use this library in your application, then the Harmonia library source code must be made available upon request to the user of your application...". In that way, people reluctant to use GPL'd libraries will not see a problem with using your library, yet you can bind them to a source code distribution policy for your library through the terms of your license. That will have the effect of giving your library the largest potential distribution, if that is your intent.
Apr 26 2005
Norbert Nemec wrote:Independent of that, since Andrew is working on a library, the LGPL might be a more adequate choice. Distributing a library as GPL is indeed rather restrictive and only makes sense if you want to make a political statement (like GNU readline) or have bigger plans with your software (like dual-licensing it for commercial users, as Trolltech does it with Qt). If the main intention is to have a *free* library, LGPL is the way to go.Unfortunately, until shared library support gets baked into D on all supported platforms, LGPL will be just as restrictive as GPL - assuming one follows the common interpretation of the LGPL that linking statically constitutes a derivative work and requires the client app to be open source, while linking dynamically allows the client app to stay closed.
Apr 26 2005
Mike Parker wrote:Norbert Nemec wrote:Also, I would tend to think that the LGPL line will be even more blurred with D. Most of the people I know say "include the headers, link to the library and you're fine", not easy to do with D - unless you want to create thin D files that are header-like. BradIndependent of that, since Andrew is working on a library, the LGPL might be a more adequate choice. Distributing a library as GPL is indeed rather restrictive and only makes sense if you want to make a political statement (like GNU readline) or have bigger plans with your software (like dual-licensing it for commercial users, as Trolltech does it with Qt). If the main intention is to have a *free* library, LGPL is the way to go.Unfortunately, until shared library support gets baked into D on all supported platforms, LGPL will be just as restrictive as GPL - assuming one follows the common interpretation of the LGPL that linking statically constitutes a derivative work and requires the client app to be open source, while linking dynamically allows the client app to stay closed.
Apr 26 2005
Mike Parker schrieb:Unfortunately, until shared library support gets baked into D on all supported platforms, LGPL will be just as restrictive as GPL - assuming one follows the common interpretation of the LGPL that linking statically constitutes a derivative work and requires the client app to be open source, while linking dynamically allows the client app to stay closed.Guess, that's a problem of the "common interpretation" of LGPL. It is true, that many people draw the line at statically vs. dynamically linking, but that is problematic in many languages and I don't think that interpretation has been tested in court yet. (Even the GPL itself has only recently been tested for the first time.) I guess, what should be possible in any case is to add a line to the LGPL for your code that explicitely allows static linking. Anyhow: GPL has indeed often had compatibility issues with other licenses, so it might be an idea to choose something else. Maybe something rather modern like the Mozilla license?
Apr 27 2005
What does this mean / do : this ~= (splitter = new Splitter(true)); ? "Andrew Fedoniouk" <news terrainformatica.com> wrote in message news:d4jon5$2r9u$1 digitaldaemon.com...Hi, Alex,may we get the code of the demo to see how it works?main.d is attached to the post
Apr 25 2005
On Tue, 26 Apr 2005 00:07:13 +0200, Charlie <charles jwavro.com> wrote:What does this mean / do : this ~= (splitter = new Splitter(true)); ? "Andrew Fedoniouk" <news terrainformatica.com> wrote in message news:d4jon5$2r9u$1 digitaldaemon.com...I think it just adds the seperator to the big (list-)box in the left? ("this ~= uiObject" seems to add an object to the window) Alex -- huh? did you say something? :oHi, Alex,may we get the code of the demo to see how it works?main.d is attached to the post
Apr 25 2005
Ahh ok, calling Window's opCatAssign , just looked a little scary at first :). Charlie "Alexander Panek" <alexander.panek brainsware.org> wrote in message news:op.sps6vqyly2yy8c chello080109082145.3.15.vie.surfer.at...On Tue, 26 Apr 2005 00:07:13 +0200, Charlie <charles jwavro.com> wrote:What does this mean / do : this ~= (splitter = new Splitter(true)); ? "Andrew Fedoniouk" <news terrainformatica.com> wrote in message news:d4jon5$2r9u$1 digitaldaemon.com...I think it just adds the seperator to the big (list-)box in the left? ("this ~= uiObject" seems to add an object to the window) Alex -- huh? did you say something? :oHi, Alex,may we get the code of the demo to see how it works?main.d is attached to the post
Apr 25 2005
this ~= (splitter = new Splitter(true)); is a: splitter = new Splitter(true); // adds vertical splitter - "resizeable" divider between two widgets this ~= splitter; // adds the splitter to the container - 'this' is window instance. There are three main classes: Widget - rectangular entity capable to receive events. Widgets: Widget - container of widgets, has opCatAssign (~=), opApply & co. Window: Widgets - OS window (frame), widget container by itself. All other things are just derivations from these "three W". E.g. Splitter : (is a) Widgets. Andrew. "Alexander Panek" <alexander.panek brainsware.org> wrote in message news:op.sps6vqyly2yy8c chello080109082145.3.15.vie.surfer.at...On Tue, 26 Apr 2005 00:07:13 +0200, Charlie <charles jwavro.com> wrote:What does this mean / do : this ~= (splitter = new Splitter(true)); ? "Andrew Fedoniouk" <news terrainformatica.com> wrote in message news:d4jon5$2r9u$1 digitaldaemon.com...I think it just adds the seperator to the big (list-)box in the left? ("this ~= uiObject" seems to add an object to the window) Alex -- huh? did you say something? :oHi, Alex,may we get the code of the demo to see how it works?main.d is attached to the post
Apr 25 2005
This is looking really slick. Good work. "Andrew Fedoniouk" <news terrainformatica.com> schreef in bericht news:d4jknu$2n39$1 digitaldaemon.com...I second on that :) Teasing :) demo is here: http://terrainformatica.com/screenshots/HarmoniaDemo.zip (e.g. try to move splitter) After loading and starting you should see this picture: http://terrainformatica.com/screenshots/harmonia.png Andrew.
Apr 25 2005
Andrew Fedoniouk wrote:After loading and starting you should see this picture: http://terrainformatica.com/screenshots/harmonia.pngToo bad I'm not running Windows, looks pretty neat though. :) I also like the idea of separating the GUI structure from the source code. One question: wouldn't it be an important goal to support XTHML or XML instead of this old HTML-stuff before anyone starts using Harmonia? XML really did the same with markup language parsing as D did with c-stylish programming language parsing. Jari-Matti
Apr 25 2005
Too bad I'm not running Windows, looks pretty neat though. :) I also like the idea of separating the GUI structure from the source code.It will be a port to Linux and Mac.One question: wouldn't it be an important goal to support XTHML or XML instead of this old HTML-stuff before anyone starts using Harmonia? XML really did the same with markup language parsing as D did with c-stylish programming language parsing.In fact parser supports XML only with minor SGMLism: attribute values which comply to SGML TOKEN production can be used without "". So <td colspan=1> and <td colspan="1"> are equivalent. If you don't want first case then you can use second case only. Anyway it is not strictly speaking HTML - very close - yes, but not exactly. Intention is to support HTML 3.2 with addons suitable for form layout e.g. vertical alignment which standard HTML up to propsed XHTML 2.0 does not have. Andrew. "Jari-Matti Mäkelä" <jmjmak utu.fi.no.sp.am> wrote in message news:d4jqq7$2t8n$1 digitaldaemon.com...Andrew Fedoniouk wrote:After loading and starting you should see this picture: http://terrainformatica.com/screenshots/harmonia.pngToo bad I'm not running Windows, looks pretty neat though. :) I also like the idea of separating the GUI structure from the source code. One question: wouldn't it be an important goal to support XTHML or XML instead of this old HTML-stuff before anyone starts using Harmonia? XML really did the same with markup language parsing as D did with c-stylish programming language parsing. Jari-Matti
Apr 25 2005
No Tab support? I mean keyboard works fine if I have focus on item but can I switch between them with the keyboard? Also is there some level of customization available for Harmonia? I mean I don't like this orange look and these gradient buttons and stuff. Also I'm not sure about the tabs... Can I change some of these? Andrew Fedoniouk wrote:I second on that :) Teasing :) demo is here: http://terrainformatica.com/screenshots/HarmoniaDemo.zip (e.g. try to move splitter) After loading and starting you should see this picture: http://terrainformatica.com/screenshots/harmonia.png Andrew.
Apr 26 2005
The code is there. Not connected yet. The same for acceleratros. "bobef" <bobef paintballforce.com> wrote in message news:d4l9mr$1ah8$1 digitaldaemon.com...No Tab support? I mean keyboard works fine if I have focus on item but can I switch between them with the keyboard? Also is there some level of customization available for Harmonia? I mean I don't like this orange look and these gradient buttons and stuff. Also I'm not sure about the tabs... Can I change some of these? Andrew Fedoniouk wrote:I second on that :) Teasing :) demo is here: http://terrainformatica.com/screenshots/HarmoniaDemo.zip (e.g. try to move splitter) After loading and starting you should see this picture: http://terrainformatica.com/screenshots/harmonia.png Andrew.
Apr 26 2005
One, single (the most important to me) question: Does it work on GNU/Linux and/or MacOSX? -- ........... Dejan Lekic http://dejan.lekic.org
Apr 26 2005
"GNU/Linux and/or MacOSX?" Not yet but planned. Porting was in my mind from the very beginning. In fact choosen architecture (not to use system controls/widgets at all, as in SWING) should follow to high portability. I will appreciate if anybody can take care Linux and Mac OS ports. I think it is a right time now to start with them. Andrew. "Dejan Lekic" <leka entropy.tmok.com> wrote in message news:d4lcnb$1dkf$1 digitaldaemon.com...One, single (the most important to me) question: Does it work on GNU/Linux and/or MacOSX? -- ........... Dejan Lekic http://dejan.lekic.org
Apr 26 2005
Andrew Fedoniouk wrote:In fact choosen architecture (not to use system controls/widgets at all, as in SWING) should follow to high portability.But Swing also is ugly and slow and looks out of place on every platform, so maybe you might want to choose another role model ;) --ben
Apr 27 2005
But Swing also is ugly and slow and looks out of place on every platform, so maybe you might want to choose another role model ;)I know why Swing is slow. D and differnet GUI architecture allow to avoid this. "looks out of place on every platform" Agreed. In Harmonia I am going to create harmonia.themes.system.d theme which will use on e.g. WinXP calls to uxtheme.dll to render basic widgets: buttons, scrollbars, etc. But again all widgets will be "harmonicas" inside. Andrew. "Benjamin Herr" <ben 0x539.de> wrote in message news:d4on3p$1mfg$1 digitaldaemon.com...Andrew Fedoniouk wrote:In fact choosen architecture (not to use system controls/widgets at all, as in SWING) should follow to high portability.But Swing also is ugly and slow and looks out of place on every platform, so maybe you might want to choose another role model ;) --ben
Apr 27 2005