Silverfrost Forums

Welcome to our forums

Can you create similar GUI ?

17 Dec 2013 11:46 (Edited: 19 Dec 2013 10:29) #13484

Remember we were doing testing of SSE/parallel libraries here few weeks back ? Well, i'd like to create for these tests professional GUI which may look like this image below. Some very well known site was interested to use our tests for RAM/multiprocessing benchmarking and even potentially to add them to their benchmark suite. I'd do that myself (though it is not that easy with shadows, specifically if make whole screen re-sizable) but unfortunately i don't have time, being completely screwed right now, and i'd have also to make all these tests to work unattended and then make nice looking final table displayed in this black box. You are welcome to do that for me completely from start to the end, the sources are posted here last month, i do not care about ownership, several people contributed to it, mostly John, Davidb and if they have no objection let it will be our forum joint venture here 😃

http://img854.imageshack.us/img854/8452/g4vp.png

The general design for the table should be like this with the 3 tests (Transposed, SSE2 and LAIPE omitting regular block matrix test for unattended cases because it runs too slow) on top and selectable matrix sizes (750, 1000,1500, 2000, 3000, 5000, 7500) at the left. The black square has to be %cw area with the light blue Arial fonts scaled to 0.8 of standard size. John's color coded graphics were also looking great but that's an extra (if it will not take too much time to fit here). All has to look great on Windows 8 tablet too

http://img856.imageshack.us/img856/4240/x4oa.png

18 Dec 2013 7:27 #13485

In order to provide cell colours using %lv it would be necessary to respond to the NM_CUSTOMDRAW redraw message.

It would be a non-trivial task to include this in ClearWin+ and there may be other priorities when it comes to improving %lv.

18 Dec 2013 9:32 #13492

Remind me - can the content of %lv table be CtrlC and pasted into other document? If not then just the text table would be fine. Last time i checked 15 years ago, this compiler supported basic HTML functions natively by the way, may be table can me made in HTML?

18 Dec 2013 9:54 #13493

You can use Ctrl+C with %lv[edit_cells].

ClearWin+ HTML does not support tables.

19 Dec 2013 6:22 (Edited: 19 Dec 2013 9:58) #13498

Without graphical buttons, icons, separators and other beautifications in order to post here i have got the following. The shadow around %cw area is really tough stuff and was not done yet. Any way to do that besides using %gr instead of %cw ?

Also is there a way to paint each of 3 panels of %1.3ob with different backgrounds (for example by using different wallpapers or just using background color) not the way like i do that with a lot of spaces which are ignored too if not use at least one character what i actually do. The code looks not elegant due to that?

  winapp
  include <windows.ins>
  iUn0 = 100

  i = winio@('%sy[no_border]&')
  i = winio@('%bg&', rgb@(3,3,3))


  i = winio@('%1.3ob[invisible]&')
  i = winio@('%`bg&', rgb@(100,5,3))
  i = winio@('.                                                                                                     &')
  i = winio@('%`bg&', rgb@(100,5,3))
  i = winio@('.                                                                                           &')
  i = winio@('%`bg&', rgb@(100,5,3))
  i = winio@('.                                                                                                          %ff&')
  i = winio@('%cb&') 


  i = winio@('%`bg&', rgb@(53,53,53))
  i = winio@('.                                                                                              &')
  i = winio@('%`bg&', rgb@(53,53,53))
  i = winio@('.                                                                                           &')
  i = winio@('%`bg&', rgb@(53,53,53))
  i = winio@('.                                                                                                               %ff&')
  i = winio@('%`bg&', rgb@(53,53,53))
  i = winio@('.                                                      &')

  i = winio@('%fn[Arial]%ts%tc&',1.d0, rgb@(200,222,255))
  i = winio@('%`bg&', rgb@(53,53,53))
  i = winio@('Set Separate Tests &')
  i = winio@('%`bg&', rgb@(53,53,53))
  i = winio@('.                    &')
  i = winio@('%`bg&', rgb@(53,53,53))
  i = winio@('Set All Tests             &')
  i = winio@('%`bg&', rgb@(53,53,53))
  i = winio@('.                                                        &')
  i = winio@('%`bg&', rgb@(53,53,53))
  i = winio@('.                             &')
  i = winio@('%`bg&', rgb@(53,53,53))
  i = winio@('About      %ff&')

  i = winio@('%`bg&', rgb@(53,53,53))
  i = winio@('.                                                                                           &')
  i = winio@('%`bg&', rgb@(53,53,53))
  i = winio@('.                                                                                           &')
  i = winio@('%`bg&', rgb@(53,53,53))
  i = winio@('.                                        &')
  i = winio@('%cb&') 

  i = winio@('.%ff&')

  i = winio@('%fn[Courier New]%ts%tc&',0.9d0,rgb@(0,177,255))

  i = winio@(' %`bg&', rgb@(33,33,33))
  i = winio@('%2.1ob[invisible]&')
  i = winio@('  %ff&')
  i = winio@('  %ff&')
  i = winio@('  %`bg%70.24cw[local_font]&', rgb@(0,0,0), iUn0)
  i = winio@('%ff&') 
  i = winio@('  %ff&')
  i = winio@('  %ff&')
  i = winio@('  %ff&')
  i = winio@('%cb&')
19 Dec 2013 6:24 #13499
  i = winio@('  %ff&')
  i = winio@('%sf%ts%tc&',1.3d0,rgb@(255,255,255))
  i = winio@('  %ff&')
  i = winio@('%bf%cn You can run each test independently  %`bf%ff&')
  i = winio@('  %ff&')
  i = winio@('%sf%ts%tc&',0.9d0,rgb@(255,255,255))
  i = winio@('%cn by clicking on each test icon %ff&')
  i = winio@('  %ff&')
  i = winio@('  %ff&')
  i = winio@('%sf%ts%tc&',1.3d0,rgb@(255,255,255))
  i = winio@('   %`bc&', rgb@(53,53,53))
  i = winio@('%cn Gauss      SSE      LAIPE %ff&')
  i = winio@('  %ff&')
  i = winio@('  %ff&')
  i = winio@('  %ff&')

  i = winio@('%sf%ts%tc&',1.3d0,rgb@(255,255,255))
  i = winio@('%cn%bf%it Or run all tests together %`it%`bf%ff&')
  i = winio@('  %ff&')
  i = winio@('  %ff&')
  i = winio@('  %ff&')
  i = winio@('  %ff&')

  i = winio@('%sf%ts%tc&',1d0,rgb@(200,255,255))
  i = winio@('%`bc&', rgb@(53,53,53))
  i = winio@('%cn%^bt[  Start Test  ]&', 'exit')   
  i = winio@('%`bc&', rgb@(53,53,53))
  i = winio@('    %^bt[  Stop Test   ]    &', 'exit')
  i = winio@('%cb&')

  i = winio@('%cb&')
  i = winio@('%ff &')

  i = winio@('%ac[esc]&','exit')
  i = winio@('%lw',ilw)

  write(100,*)' ' 
  write(100,*)' ' 
  write(100,*)'                 G A U S S    ELIMINATION   MATRIX   TESTS' 
  write(100,*)' ' 
  write(100,*)' ____________________________________________________________________________'	
  write(100,*)'              !        |        |        |        |        |        |        '
  write(100,*)'              |   750  |  1000  |  1500  |  2000  |  3000  |  5000  |  7500  '
  write(100,*)' _____________}________}________|________|________|________|________|_______ '	
  write(100,*)'              !        |        |        |        |        |        |        '
  write(100,*)'   Gauss      !        |        |        |        |        |        |        '
  write(100,*)' _____________}________}________|________|________|________|________|_______ '	
  write(100,*)'              !        |        |        |        |        |        |        '
  write(100,*)'   Gauss SSE  !        |        |        |        |        |        |        '
  write(100,*)' _____________}________}________|________|________|________|________|_______ '		
  write(100,*)'              !        |        |        |        |        |        |        '
  write(100,*)'   LAIPE  1   !        |        |        |        |        |        |        '
  write(100,*)'   LAIPE  2   !        |        |        |        |        |        |        '
  write(100,*)'   LAIPE  3   !        |        |        |        |        |        |        '
  write(100,*)'   LAIPE  4   !        |        |        |        |        |        |        '
  write(100,*)'   LAIPE  5   !        |        |        |        |        |        |        '
  write(100,*)'   LAIPE  6   !        |        |        |        |        |        |        '
  write(100,*)'   LAIPE  7   !        |        |        |        |        |        |        '
  write(100,*)'   LAIPE  8   !        |        |        |        |        |        |        '
  write(100,*)' _____________}________}________|________|________|________|________|_______ '	

  end program
19 Dec 2013 8:55 (Edited: 19 Dec 2013 10:30) #13501

Continuing my question asked in previous post: here is simplified program which demonstrates that cell backgrounds are not colored till the end of the line. Any ways to do that besides using spaces?

  winapp
  include <windows.ins>
  j=123456	
  i = winio@('%ww[no_border]&')
  i = winio@('%1.3ob[invisible]&')
  i = winio@('%`bg&', rgb@(220,125,3))
  i = winio@(' Cell 1   %ff&')
  i = winio@('%cb&') 

  i = winio@('%`bg&', rgb@(100,225,3))
  i = winio@('Cell 2   Parameter  %rd&', j)
  i = winio@('%cb&') 

  i = winio@('%`bg&', rgb@(100,5,223))
  i = winio@(' Cell3%ff&')
  i = winio@('%cb&') 

  i = winio@('%ac[esc]','exit')

  end program
19 Dec 2013 3:00 #13504

You could add spaces after 'Cell 1' and 'Cell 3'. In this sample you could make the main background colour (%bg) green for the middle cell otherwise you might be able to play around with the font height to make the text box fill the cell.

19 Dec 2013 10:59 (Edited: 20 Dec 2013 10:31) #13508

this message should be deleted

20 Dec 2013 12:53 (Edited: 20 Dec 2013 10:31) #13511

Problem with using spaces is that each computer and OS has slightly different fonts. The result will be ugly cut endings.

Well, Paul, you have done a lot of improvements lately, i clearly see and enjoy the advances and very appreciate that work done unbelievably but seems completely for free, hope it will pay later a lot because deserves it, but here come the requests to make few more:

  1. the ability to setup background color for the whole individual individual %ob cells by rgb@ and texture bitmaps from the Resources. That is obvious #1 thing which is needed for making PRO-looking GUIs

  2. another is ability to change the color for vscrol and hscrol bars

Asking shadows with %cw or %ww (but not like it is done with [casts_shadow] ) or 3D shadowed fonts looking literally like they are immersing in the background would be definitely an overkill but are those two doable?

20 Dec 2013 7:18 #13513

Dan

Thanks for your comments and concern.

I will make a note of your request. ClearWin+ has been greatly improved over the last few months, particularly with the extension to 64 bits and the addition of anti-aliasing and opacity. Other additions can be considered when time allows.

20 Dec 2013 10:37 #13516

Thanks, Paul. Wish you keep development with the same speed and great acceptance of your work among other compilers.

Meantime here is what i got so far with the GUI for tests. Now accepting suggestions for the name of the test suite built on this forum

http://img22.imageshack.us/img22/6528/03vp.png

21 Dec 2013 6:12 #13518
  1. How about BENCHMATRIX ? Such web company exists though...

  2. Paul, to demonstrate how white hscroll and vscroll ruining the whole GUI (and any other made in dark theme) here is the screenshot. Ideally CWP has to have them of different shapes too, current one is too obsolete

http://img546.imageshack.us/img546/3039/nt2r.png

21 Dec 2013 7:51 #13519

It is possible to change the background colour of the scroll bar but I don't know of a way to change the colour of the 'thumb'.

21 Dec 2013 9:59 #13520

Pity, but that still would help too.

These bars also have white 'accent' line on the top or left border for h and vscroll, respectively, does it follow automatically main color ? Would be great not to leave white

21 Dec 2013 1:05 #13521

I will add it to the 'to do' list and then see what is possible.

24 Dec 2013 9:01 #13522

I have had a look at this and I can not find a simple way to change the properties of the scroll bars. Scroll bars are provided via a style attribute on the parent window so WM_CTRLCOLORSCROLLBAR is not applicable. The documentation points to using 'flat scroll bars' but these are not available in later Microsoft DLLs and would be messy to implement.

So the only feasible way forward would be to change to independent child scroll bar controls and this would be a significant programming task.

24 Dec 2013 3:53 #13523

That's pity...

9 Jan 2014 4:46 (Edited: 11 Jan 2014 5:23) #13529

Paul, As an after lunch exercise I was still a bit playing with above GUI. The code is almost done. It has one pity Achilles heel though. As soon as i will generally finish the whole thing i will post the source and resource files for everyone to edit and improve

Is it possible to add the feature to set the background of each individual cells of %N.Mob/%cb table same as it is done with web HTML tables? And/or change each cell wallpaper? The table is key feature for alignment of any GUI, in HTML it is used in absolutely every web page on the net. Adding this feature will make CWP powerful almost perfect GUI builder.

After much efforts to reproduce the above GUI I see it is almost impossible task without that feature. Using characters as a fill solution like we discussed above leads to misalignments when code is used in other computers with different OS. The example below shows how perfectly aligned GUI on one computer completely broke on another one because of different font matrices used in different OS even for the same name fonts. Other GUI elements suffer too. For example, the tiny blue buttons like one near 'Set Sub-Tests' (this specific one was photoshoped to show how they look ideally in other OS) became broke too due to font's height/width change.

http://img819.imageshack.us/img819/9589/dqsc.png

9 Jan 2014 7:54 #13530

Dan

I have made a note to investigate this request.

Please login to reply.