World: r3wp
[!RebGUI] A lightweight alternative to VID
older newer | first last |
Ashley 10-Apr-2005 [535x2] | I was wondering when someone was going to ask about the whole 9999 thing. ;) It's an optimization to avoid a redundant size assignment prior to 'size-text but has the problems you quoted. I'll probably change it back to -1x-1 in the next build or two. |
Thanks for the link ... that and some testing has convinced me to remove the 'show redefine from the next build. | |
shadwolf 11-Apr-2005 [537x12] | I'm working on tab-panel 2 arrows insertion ;) |
first change into the arrow/feel/engage down event you will need to add if face/action [do face/action] to enable the arrow to launch action ;:) | |
I started the work on arrow motion ;) | |
in the tab-panel so for now no code is available maybe later to night (I have yet some little things done ;) | |
sorry face/action in arrow was yet supported !!! | |
im don't know why the supplyed action for the tab-panel is not doed on mouse done avant ... | |
TAB-PANEL widget looks like : | |
redraw: function [face act pos] [test-size test-wid] [ if act = 'show [face/pane/1/size: face/size - 0x20 either not dir-buttons [ dir-buttons: true test-wid: last face/pane test-size: test-wid/offset/x + test-wid/size/x if greater? test-size face/size/x [ insert tail face/pane face/l-arw: make arrow [ size: 20x20 offset: as-pair (face/size/x - 40) 0 data: 'left action: [print "you clicked left" ] ] do face/l-arw/init insert tail face/pane face/r-arw: make arrow [ size: 20x20 offset: as-pair (face/size/x - 20) 0 action: [print "you clicked right" ] data: 'right ] do face/r-arw/init ] ][ face/r-arw/offset: as-pair (face/size/x - 20) 0 face/l-arw/offset: as-pair (face/size/x - 40) 0 ] print "la liste des bouttn est plus grande que ce que l'on voit!!!" ] | |
tab-panel/feel/redraw offcourse | |
in it the arrow/action is not done when we make a click on them ... pretty anoying for the rest ... | |
another thing anoying is that we need to move the buttons so to do this easier we need to pack the header button of the tab-panel into two boxes in order to slide them ;) | |
this means the complete change of the feel event switch for the header to adapt them to the new path face/parent-face/parent-face ;) | |
Ashley 11-Apr-2005 [549] | re: action. Try: action: does [print "you clicked right" ] |
shadwolf 11-Apr-2005 [550x9] | k |
Well I'm going to sleep :) I have 2 bugs with current implementation 1) clicking into the panel arrow is not possibe ... 2) header button countainer and sub countainer have the 100x100 size ... | |
tab-panel: make face [ color: none pane: [] l-arw: none r-arw: none dir-buttons: false feel: make default-feel [ redraw: function [face act pos] [test-size test-wid] [ if act = 'show [face/pane/1/size: face/size - 0x20 ; ; test-wid: face/pane/1 ; test-size: test-wid/size/x ; if greater? test-size face/size/x [ ; either not dir-buttons [ ; dir-buttons: true ; insert tail face/pane face/l-arw: make arrow [ ; size: 20x20 ; offset: as-pair (face/size/x - 40) 0 ; data: 'left ; action: [print "you clicked left" ] ; ] do face/l-arw/init ; insert tail face/pane face/r-arw: make arrow [ ; size: 20x20 ; offset: as-pair (face/size/x - 20) 0 ; action: [print "you clicked right" ] ; data: 'right ; ] do face/r-arw/init ; ][ ; face/r-arw/offset: as-pair (face/size/x - 20) 0 ; face/l-arw/offset: as-pair (face/size/x - 40) 0 ; ] ; ] ; print "la liste des bouttn est plus grande que ce que l'on voit!!!" ] ] ] init: has [tab-offset last-tab] [ ; create main display area insert pane make face [ offset: 0x20 edge: default-edge] ; add tabs tab-offset: 0x0 insert tail pane make face [ offset: 0x0 pane: [] color: none ] container: last pane insert container/pane make face [ offset: 0x0 pane: [] color: none] foreach [title spec] data [ insert tail container/pane/1/pane make face [ offset: tab-offset size: 1x20 pane: [] text: title effect: reduce ['round edge-color 5 'draw copy []] resize: none font: make default-font [align: 'center valign: 'bottom] para: default-para feel: make default-feel [ over: func [face act pos] [ either act [ insert face/effect/draw compose [ ; compose required for AGG betas pen over-color line 3x1 (as-pair face/size/x - 4 1) line 2x2 (as-pair face/size/x - 3 2) line 1x3 (as-pair face/size/x - 2 3) ] show face ][ if face/parent-face/parent-face/parent-face/pane/1/pane <> face/data [ ; clear unless selected clear face/effect/draw show face ] ] ] engage: function [face act event] [pf old-face] [ if event/type = 'down [ pf: face/parent-face pf3: pf/parent-face/parent-face if pf3/pane/1/pane = face/data [return] ; has a new tab been selected? clear face/effect/draw old-face: pick pf/pane pf3/data ; find previous tab old-face/resize: pf3/size ; remember last size old-face/size: old-face/size - 0x1 ; deflag old clear old-face/effect/draw face/size: face/size + 0x1 ; flag new face/feel/over face true 0x0 pf3/data: index? find pf/pane face ; set new pane# pf3/pane/1/pane: face/data ; init tab panel if pf3/size <> face/resize [ ; recursive resize span-resize pf3/pane/1 pf3/size - face/resize face/resize: pf3/size ] show pf3 ] ] ] ] last-tab: last container/pane/1/pane last-tab/size/x: 10 + first size-text last-tab ; set tab title width display/layout "" spec last-tab ; generate tab spec into tab pane last-tab/data: last-tab/pane ; swap pane into data last-tab/pane: none ; clear pane last-tab/resize: size ; original panel size tab-offset/x: tab-offset/x + last-tab/size/x ; set offset for next tab title ] print "size et countainer a la con !!" probe size/x container/size: as-pair size/x 20 probe container/size/x container/pane/1/size: container/size container/pane/1/pane/1/size: container/pane/1/pane/1/size + 0x1 ; flag 1st tab data: 1 ; set pane# pane/1/pane: container/pane/1/pane/1/data ; init tab panel container/pane/1/pane/1/feel/over container/pane/1/pane/1 true 0x0 ; flag first as active ] ] | |
as I inserted 2 countainers to hold header buttons in tab panel I had to recode lot of path to be able to locate the convienient widgets := | |
:))) | |
i solve both bugs by adding 9999x20 in the containers definition | |
now I have a new bug the 2 last header button are inserted into the secon tab-panel (the demo one ;) )) | |
how could they jump there ??? | |
I have no Idea :) | |
shadwolf 12-Apr-2005 [559x6] | well ashley the last code is posted to you private area (don't want to garbage this directory) |
have fun ;) | |
the last thing to be done is: 1) scroll the sub countainer when we clic on the arrows 2) when the windows is bigger enought the arrows must desapeare been hided :) | |
sure you need first to find why the 2 last button header of the main tab panel jumps to the secon tab panel | |
Ashley: I posted to you in private my l astest code. visualisation of the arrows and scoll of the header buttons is done | |
there is still some bugs that I don't know how to solve them ... this time I'm really off ... | |
shadwolf 21-Apr-2005 [565x3] | ASHLEY LOOK TO PRIVATE FOR A SCROLLER WITH NONE JITTERRING DRAGGER IMPLEMENTATION. |
and lot of information of what I done and how :) | |
for all people reading this groups tab-panel problems have been solve | |
Gregg 21-Apr-2005 [568] | Excellent Shadwolf. Glad to see things are still active and progressing on this. I wish I weren't so busy at the moment, and I hope the community will help to make RebGUI a model for future projects. |
shadwolf 21-Apr-2005 [569x2] | for this project I think the most important thing is the continuty there was so mutch widgets lib more or less evoluted that have been abandonned because no body was conserned by the futurs of those library I want to participate more but my implementations in general are very code consumming ;). |
but I'm learning lot of things. | |
Ashley 24-Apr-2005 [571] | Alpha2 build available at: http://www.dobeash.com/files/RebGUI-020.zip Highlights include: - New, unit based sizing model (see http://www.dobeash.com/it/rebgui/display.html) - Improved language localization (see http://www.dobeash.com/it/rebgui/locale.html) - New arrow, chevron, check-group, led-group, scroller, spinner and drop-list widgets - Lots of minor fixes - show redefine removed - Use of -1 instead of 9999 to denote auto-size - Aesthetic improvements (use of gradients) - %tour.r substantially rewritten Known issues - spinner and drop-list widgets need more work - scroller needs more work (resizeable dragger) In progress - Improved tab-panel (shadwolf) - Menu (cyphre / shadwolf) - tabbing - field input validation (field input masks, etc) That leaves less than half a dozen widgets to go! list single column listview multi-column treeview popup-menu context menu status status bar with one or more “segments” |
Robert 24-Apr-2005 [572x2] | Great stuff!! One question WRT fields uses in specification and runtime, for example LED-Group. Is it possible to alter the led-group content? Adding or removing possible entries in it? Or is this a one-time action when the widget initializes? |
resizing system: How about a method that will store the layout if altered by the user and reload the GUI in the same layout? It always drives me nuts if I have to resize application splitter bars, panes etc. when starting again. | |
Pekr 24-Apr-2005 [574x2] | Rebgui starts to look very nicely polished (UI wise), just a bit WinXP-ish, but it never mind here ... maybe OSx users will complain later :-) |
I do not remember now, if it was said that skin system will be available later? | |
shadwolf 24-Apr-2005 [576x2] | beautyfull ;) |
robet adding some thing to a group coud be done by append My-group-var/data compose [etc...] then my-group-var/init :) | |
Gregg 24-Apr-2005 [578x2] | Drop list seems to have some issues. Doesn't keep the selected value. Maybe just a demo thing. |
Looking awesome though! | |
shadwolf 24-Apr-2005 [580x2] | gregg it's just a demo thing ;) |
Known issues - spinner and drop-list widgets need more work | |
Volker 25-Apr-2005 [582] | would it be ok if i try to make this stuff style-compatible? so that it could be used both ways? |
shadwolf 25-Apr-2005 [583x2] | Volker sure but once you get a working code you need to submit it to Ashley ;) |
to allow him interger it and ptimize it | |
older newer | first last |