• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp5907
r3wp58701
total:64608

results window for this page: [start: 40701 end: 40800]

world-name: r3wp

Group: View ... discuss view related issues [web-public]
Anton:
17-Mar-2009
Think about the kind of experience you would have with web browsing 
if the browser only showed you a page after it had completely loaded. 
In small part, this is what you seem to want to build into your app. 
Those decisions could accumulate into a very irritating web experience.
Graham:
17-Mar-2009
VID and RebGUI widgets don't have a 'loading now ..." state.  Perhaps 
they should
Anton:
17-Mar-2009
Well, I would want to see three things:
1) A "loading data..." message.
2) A progress bar.
3) A busy indicator.

All three could be combined into a single widget, or kept separate.
Anton:
17-Mar-2009
You could ghost the table widget until the data has arrived and is 
ready. Put a box over the top of it with effect [merge luma -20] 
or something like that.
Graham:
17-Mar-2009
The other thing is .. if you have no data returned from your database 
query ... you then present a useless empty widget.  Or, you present 
an alert that there was no data .. which means you then have to close 
it down .. or you just update your "loading ..." message.
Graham:
17-Mar-2009
Eg if you do a search on your gmail ... it doesn't return an empty 
table, but a message saying there were no results.
Graham:
17-Mar-2009
Same if I have an ajax type of search ... I don't show an empty table 
until it fills .. I show a spinning image and then show the table 
when it is filled.
Anton:
17-Mar-2009
And while we're talking about querying and result displays, I often 
am confused as to whether a query I submitted actually returned, 
when it returned empty data. This causes me to query several times 
just to see if the server actually got my query and returned. The 
answer to this (in my opinion) is to return the query and time of 
query in the results as well, in the table title. So you can see 
*something* change on every query result.
Anton:
17-Mar-2009
Hiding the table has the side benefit of telling the user (visually) 
that their query was accepted, but relies on the data transfer to 
be slow. A negative is if the user wanted to keep looking at some 
of the data from the previous query while waiting for the results 
of the next query.
Anton:
17-Mar-2009
If the table has a selection facility, and the user wanted to do 
something like select row 4 (and then maybe copy it or do something 
else) from several consecutive resultsets, then that might be disrupted 
by hiding and showing the table. Something to keep in mind. (Do you 
keep the same table, or do you remake it for each resultset?)
TomBon:
23-Mar-2009
hi, getting this error.

** Script Error: Face object reused (in more than one pane): none


is there any solution to 'copy or clone' a layout or reuse a layout

for multiple usage ? putting the layout into a object doesn't help 
either. 

same error message. I need a layout-template containing buttons, 
label etc.

and want use this template for to 'pane' it into 20 different independent 

boxes. these boxes will shown 20 different numeric datas, progress 
bars etc. 

have had a look also into stylize/master but can't mix vid with facets 
or 

am I to tired to see a simple solution. builing a very complex facet 
from 

scratch is very time consuming, what is the best design for this? 

tom
Steeve:
23-Mar-2009
contruct a context with variables each time you clone the layout
Steeve:
23-Mar-2009
layout [a: text b: button]
v1: context [a: b: none]
set bind copy next first v1 v1 reduce [a b]

now you can construct v2, v3, V4 using the same layout
TomBon:
23-Mar-2009
doesn't work as expected but will take a look again after some sleep. 
 thx for the code snippet steeve
Henrik:
31-Mar-2009
is there a simple way to tell whether a window was opened with INFORM 
or VIEW?
Pekr:
10-Apr-2009
If someone has some spare time to spend, I would like to have some 
tests being done for following case - In our PC shop, we mounted 
big LCD TV for some message/advertising purposes. The problem is, 
that the screen is placed vertically. I wrote small news scroller 
script, which eats some CPU cycles, but is still OK and very simple. 
But - when I tried it on that vertically placed TV, it is practically 
unusable :-(  - too jerky. I would like to know, if it is a driver 
issue, or just another View kernel defficiency? Should there be a 
reason why it should be a difference in performance? Video works 
OK for example.


Here's the script to test - http://www.xidys.com/rebol/news-scroller-r2.r
, so if you are willing to mess with your PC settings, go ahead :-) 
(not sure your icon placement will persist ...)
sqlab:
10-Apr-2009
An integer! or time! that specifies periodic timer events for a face. 
This is used for animation or repetitive events (such as holding 
the mouse down on certain types of user interface styles). An integer! 
value indicates the number of events per second. A time! provides 
the period between events. The timer event is sent to the face feel 
Engage function with an event type of time.

from http://www.rebol.com/docs/view-system.html
Graham:
15-Apr-2009
Is there any way to detect where the mouse is after a double click? 
 I want to popup a menu where the mouse is ...
TomBon:
19-Apr-2009
visualisation,
does somebody knows how to create a map like this in rebol?

a qubic map:
http://gdmap.sourceforge.net/img/gdmap-preview.png

some more examples and radial maps of this are here:

http://wiki.ubuntuusers.de/Festplattenbelegung?highlight=verzeichnisserstell

A hint to a source, algo or raw concept etc. would be nice.

especial the calculation how to find and place to the proper position 
within 
the workspace is what I am looking for.
Henrik:
21-Apr-2009
am I right that an INFORM window can't be used with INSERT-EVENT-FUNC 
or is there a way around that?
Graham:
23-Apr-2009
I've got this puzzling problem.  I have a function that brings up 
a rebgui window with some elements in it.  The elements are defined 
as local to that function.  The function is invoked by clicking on 
a table element in another window.
Graham:
23-Apr-2009
Hmm.  Doesn't happen in VID so must be a rebgui issue.
TomBon:
23-Apr-2009
; I need 100 rows like these both samples with unshared data access 
for each row.

; I have also tried with stylize/master (panel with) to construct/compose 
a master 

; row like this but doesn't succeed. any change to make this work?


list-func: func [] [ layout/tight [across x: text "x"  y: text "y" 
z: progress 0.5   w: box 40x20 effect [ draw arrow blue rotate  60 
]   ] ]

view layout [
	a: box 300x50
	b: box 300x50
	do [a/pane: list-func]
	do [b/pane: list-func]

 btn "set a" [a/data: [x/text: "1" y/text: "2"  z/data: 0.8 w/effect: 
 [ draw arrow red rotate  180 ]   ]  show a ]

 btn "set b" [b/data: [x/text: "1" y/text: "2"  z/data: 0.8 w/effect: 
 [ draw arrow red rotate  180 ]   ]  show b ]

 btn "set"   [x/text: "1" y/text: "2"  z/data: 0.8 w/effect: [ draw 
 arrow red rotate  180 ] show b  ]
]

quit
TomBon:
23-Apr-2009
or how to supply data to a standard list containing progress and 
draw elements like this one above?
Gregg:
26-Apr-2009
LIST doesn't iterate styles that need state (IIRC). I would generate 
the layout dynamically and put the whole thing into a scrolling pane, 
unless that ends up being too slow or memory intensive.
Anton:
26-Apr-2009
I agree. It's very difficult to make a lot of styles behave properly 
when iterated by a LIST. (And I've tried, believe me.) It's better 
to make a window full of real faces and scroll your data through 
them yourself.
TomBon:
26-Apr-2009
thx for direction gregg and anton, will create a custom face for 
this.
Maxim:
1-May-2009
anyone had issues with view popups when inserting a custom event-handler?


I'm doing something in view, nothing patched, wake event left as-is... 
I have an inserted an event-handler, and the moment I click on a 
choice, all the events stop... even time events.


I don't even receive events at my handler, so its not a "returning 
none from event-handler" type bug... any ideas, fixes, similar unsolvable 
observations?
jocko:
2-May-2009
I am not looking for thumbnail generation, but for image display 
with rescaling with fractional zoom factor (let's say between 0.5 
and 2.0). When using effect resizing in a layout, the interpolation 
mode is nearest. Is it possible to set it differently (i.e. bilinear) 
?
Henrik:
2-May-2009
I'm not sure the View engine supports filtering at all. The DRAW 
engine does for upward scaling, but not downward scaling < 1. I only 
mentioned thumbs, because it's a common scenario. :-)
jocko:
2-May-2009
ok, anyway,  to my opinion, it'a a must for the R3 engine.
jocko:
2-May-2009
Nice ! Another reason to expect a close beta release !
Maxim:
3-May-2009
is there a definite documentation on the systray support in windows? 
 I have some working code (from Izkata) but I am wondering if there 
is more to the interface than what I am using.

an exhaustive code example could also suffice
Maxim:
3-May-2009
I could use the scroll, but since its a field, the moment I enter 
text, the scroll goes back its default, which is badly aligned with 
the fields I am trying to get clean  \ :-(
Maxim:
3-May-2009
ahhh I forgot that the para's offset is called origin... its been 
a while since I've tinkered with VID  :-)
Steeve:
4-May-2009
We can do a other missing interpolations in R2 wit maths, but it 
will be slow...
Henrik:
4-May-2009
do http://www.hmkdesign.dk/rebol/thumbtest/thumbtest.r


A small test I did to compare methods for generating thumbnails in 
R2.
Gregg:
4-May-2009
REBOL []

; r/3 = 'activate = left-click
; r/3 = 'activate = rt-click+menu-item-sel

hex: func [
    {Returns the base-10 value of a hexadecimal number.}
    value [integer! string! issue!] "A hexadecimal number"
][

    ; Convert to an issue first, so integers can also be translated.
    to integer! to issue! value
]

make-elements: func [name count type /local result][
    if not word? type [type: type?/word type]
    result: copy "^/"
    repeat i count [
        append result join name [i " [" type "]" newline]
    ]
    to block! result
]

NOTIFYICONDATA: make struct! compose [
    cbSize  [integer!]
    hwnd    [integer!]
    uId     [integer!]
    uFlags  [integer!]
    uCallBackMessage [integer!]
    hIcon   [integer!]
    (make-elements 'szTip 64 #"@")  ; CHAR
] none
NOTIFYICONDATA/cbSize: length? third NOTIFYICONDATA

;change at third NOTIFYICONDATA 25 "New ToolTip!"
;probe NOTIFYICONDATA
;halt

;constants required by Shell_NotifyIcon API call:
NIM_ADD:     hex 0
NIM_MODIFY:  hex 1
NIM_DELETE:  hex 2
NIF_MESSAGE: hex 1
NIF_ICON:    hex 2
NIF_TIP:     hex 4
WM_MOUSEMOVE:       hex 200
WM_LBUTTONDOWN:     hex 201  ;   'Button down
WM_LBUTTONUP:       hex 202  ;     'Button up
WM_LBUTTONDBLCLK:   hex 203  ; 'Double-click
WM_RBUTTONDOWN:     hex 204  ;   'Button down
WM_RBUTTONUP:       hex 205  ;     'Button up
WM_RBUTTONDBLCLK:   hex 206  ; 'Double-click


;Public Declare Function SetForegroundWindow Lib "user32" (ByVal 
hwnd As Long) As Long

lib: load/library %shell32.dll

Shell_NotifyIcon: make routine! compose/deep [
    dwMessage [integer!]
    pnid      [struct! [(NOTIFYICONDATA)]]
    return:   [integer!]
] lib "Shell_NotifyIconA"


my-hwnd?: does [second get-modes system/ports/system [window]]

set-tray-tooltip: func [struct string] [
    change at third struct 25 string
    struct
]



system-awake: func [port /local evt][
    if all [evt: pick port 1  (evt/1 = 'tray)] [
        status/text: mold evt
        show status
;         if any [
;             (evt/3 = 'activate)
;             all [(evt/3 = 'menu)  (evt/4 = 'desktop)]
;         ] [
;             if not desktop-loaded [
;                 link-exec-start-desktop/force
;             ]
;         ]
;         if all [(evt/3 = 'menu)  (evt/4 = 'quit)] [quit]
    ]
    false
]

system/ports/system/awake: :system-awake
append system/ports/wait-list system/ports/system

view layout [
    style button button 200
    button "Add Tray Menus" [
        set-modes system/ports/system compose/deep [
            tray: [
                add main [

                    help: (rejoin ["REBOL/Link" any [""]]) ; tooltip

                    menu: [test: "Test" desktop: "Start Desktop" bar quit: "Quit"]
                ]
                add other [
                    ;help: (rejoin ["REBOL/Link" any [""]])
                    menu: [test-2: "Test-2" bar quit-2: "Quit-2"]
                ]
            ]
        ]
    ]
    button "Remove Tray Main Menu" [
        set-modes system/ports/system [
            tray: [remove main]
        ]
    ]
    button "Remove Tray Other Menu" [
        set-modes system/ports/system [
            tray: [remove other]
        ]
    ]
    ;button "Change Tray Other Menu" [
    ;    set-modes system/ports/system [
    ;        tray: [
    ;            change other [
    ;                help: "New Help!"

    ;                menu: [test-3: "Test-3" bar quit-3: "Quit-3"]
    ;            ]
    ;        ]
    ;    ]
    ;]
    button "Modify Tooltip" [
        nid: make struct! NOTIFYICONDATA none
        nid/hwnd: my-hwnd?
        nid/uid: 1
        nid/cbSize: length? third nid
        nid/uFlags:  NIF_TIP  ; NIF_ICON
        ;nid/hIcon:
        ;nid/szTip:  "New ToolTip!^@"
        set-tray-tooltip nid "New ToolTip A!"
        ;print mold third nid
        res: Shell_NotifyIcon NIM_MODIFY nid
        print [res to logic! res]
    ]
    button "Modify Other Tooltip" [
        nid: make struct! NOTIFYICONDATA none
        nid/hwnd: my-hwnd?
        nid/uid: 2
        nid/cbSize: length? third nid
        nid/uFlags:  NIF_TIP  ; NIF_ICON
        ;nid/hIcon:
        ;nid/szTip:  "New ToolTip!^@"
        set-tray-tooltip nid "New ToolTip B!"
        ;print mold third nid
        res: Shell_NotifyIcon NIM_MODIFY nid
        print [res to logic! res]
    ]
    button "Unview" [unview]
    status: text 200
]



free lib
Janko:
7-May-2009
If there wouldn't be a systray I probably wouldn't switch my bigger 
project to rebol and consequently started with all projects in rebol.. 
cheyenne was the most cruicial reason, if there wouldn't be cheyenne 
I would never switch -- but systray was the final nail in the coffin 
of the previous languge for that particular project. So, thanks  
Pekr and Cyphre!
Henrik:
9-May-2009
Is there a simple way to replace one style with another in a pane? 
I would like to interchange a FIELD and an INFO in the same spot, 
but by directly altering the field face.
ICarii:
9-May-2009
define a separate: field/info and swap the face reference i guess
ICarii:
9-May-2009
should be simple as a variable swap - just have to use globals in 
R2
ICarii:
9-May-2009
alternately I would add a single redraw check at the top level and 
scan children for a 'lock value in a predefined field / flags.
Maxim:
9-May-2009
the easiest way I`ve done this henrik is to have a face which has 
two extra facets (style, protected) and a function called change, 
 


calling 'change to another style gets all the values from the global 
style block for that stylename, and changes all facets excluding 
any which are in the protected block.  it also sets the stylename 
within the function, so you can easily do decisions based on that.


alternatively, you can make an external function which does the same, 
but adding the protected inside the 'WITH [ ] spec makes it easier 
to contextualize the system.
Henrik:
12-May-2009
If I have a window-feel with a 'detect function, could it be performed 
after an 'engage function for a face in that window? Is there a way 
to swap that around?
Henrik:
12-May-2009
hmm... it's actually only the sequence of events that needs altering. 
as far as I can tell that function only fires one event at a time 
from the event queue.
Maxim:
12-May-2009
basically, the detect goes from window, thru all children up to the 
face which generated the even, in order for you to trap the event 
in a parent face.
Henrik:
12-May-2009
I'm a little thick on the event system. So I ask many dumb questions. 
:-)
Henrik:
12-May-2009
Ok, from the event queue it doesn't make sense, I guess. But from 
what I'm trying to do, I need to do something to a local face _before_ 
something else happens globally.
Henrik:
12-May-2009
hmm.. basically what I have for detect is sitting now in the window-feel. 
So I could move it out into a separate function and use INSERT-EVENT-FUNC 
on it?
Maxim:
12-May-2009
give me a minute, I'll make you an explicit example in rebol code, 
from some source I have here  :-)
Henrik:
12-May-2009
ok, I'll go make a cup of chocolate :-)
Maxim:
12-May-2009
note: 

-if returns none when it doesn't match, so that is returned from 
the handler.

-I put the handler within a ctx, just to allow for local vars within 
handler (which I don't use, but figured I'd demonstrate, for all 
to see)
Maxim:
12-May-2009
you could instead trigger a function here, (if proper conditions 
are met) and return event all the time.
Henrik:
12-May-2009
I really think I need this painted on a big card board sign, because 
I don't get it. Would the original detect first need to be blocked, 
then the engage would run and then we run the detect again?
Maxim:
12-May-2009
I just realized I had a slightly skewed view of the event ordering, 
but in essence the above still holds.
Henrik:
13-May-2009
I've looked at the solution for a bit, and I don't think it's flexible 
enough.


I would rather leave the event handling system untouched and then 
in the window-feel specify that we need to do something after the 
engage. Then there would be another event handler, which handles 
events generated by the original 'detect. Is it possible to generate 
events inside the detect, that can be handled by the window-feel 
after the engage?


The problem would otherwise be that the event needs to be handled 
in every single engage function (dozens).
Maxim:
13-May-2009
there is no way that I know of to do code after the do events processes 
it, a part from adding oprations in the wake event.  and the detect 
is the first part of that process, the inset event handlers are part 
of the detect phase, as I discovered yesterday.
Henrik:
13-May-2009
now I need something else: making a face completely event transparent.
Henrik:
13-May-2009
I'm just trying to create a simple floating rectangle.
Henrik:
13-May-2009
If I hover it above a text field, I can type text in the field, but 
I can't click on the field to mark up text with the mouse.
Maxim:
13-May-2009
do you a small example you can post ?
Maxim:
13-May-2009
I'm am sensing a few minutes of lost time ahead  ;-)
Maxim:
13-May-2009
well, it seems that the do event handling really is not great.  I've 
tried all I know and it really looks like:

 if a face from a diffrent branch is over another face, it blocks 
 all events to underlying faces.  only child faces can pass events 
 to their parents... this is pretty evil.


You could use Anton's do event simulator lib, and hack it so it allows 
this.  :-(   you'd have to remember that a  face has required/handled 
the event (in its detect) and stop looking amongst further pane branches.
Maxim:
13-May-2009
Its also possible that Anton, Gabriele or Cyphre have found a trick. 
 I'd be interesed to know in any case, cause this could be a problem 
for me in the future too.
Henrik:
13-May-2009
yes, even this fix is rather expensive. one face for each side instead 
of one, but maybe it will speed up redrawing big faces a bit.
Henrik:
14-May-2009
Maxim, do you know how the iterated faces function is used in View? 
I'm stuck in a situation where the index is sometimes returned as 
none.
Anton:
14-May-2009
You can't do event-transparent faces. I figured out a huge hack (simulating 
DO EVENT) which was not quite able to go the whole way. :-(
Anton:
14-May-2009
Can I see a demo of your technique, Steeve?

I wanted transparent events along with transparent regions of a face 
(eg. a face with rounded corners, the events should pass through 
the corner regions, but the rest should land on the face).
It just couldn't be done properly - see my file
http://anton.wildit.net.au/rebol/gui/transparent-events.r
Anton:
15-May-2009
Yes, what I tried was a definitive solution. But after working on 
it for a very long time, I found it can't be done completely. (At 
least, I am 99% certain.)
Maxim:
15-May-2009
well, it allowed you to build skewed windows, which isn't a small 
feat within windows   :-)
Anton:
15-May-2009
Well, yes, but it still wasn't a complete solution.
amacleod:
15-May-2009
Is there a delay with view when working with internal values?


For example if I change the offset of a scroll-panel after showing 
it it reverts to the changed value but if I put a wait of .1 the 
offset viewed remains as expected and does not show the new value.

Am I making sense?
Steeve:
15-May-2009
the function SHOW, pushes a new show event in the events stack,but 
is not dispatched until your program enter in a wait loop.
So it's normal.
Steeve:
15-May-2009
It's the main difference between procedural programming and event-driven 
programming.

When you develop event-driven applications, you must use a different 
flow in your code
Steeve:
15-May-2009
Eheh, you have no choice, when you are programming a visual interface 
with Rebol, it's an event-driven flow
Henrik:
16-May-2009
does View set parent-face for a layout internally?
Maxim:
16-May-2009
it is set after a show
Maxim:
16-May-2009
some view functions require the parent-face to be set in order to 
work.... this is sometimes usefull when you want to create stuff 
between a call to layout and one to show.
Henrik:
16-May-2009
I'm altering the VID model and so all faces are required to have 
a parent-face set.
Maxim:
16-May-2009
you can do directly within a call to style :-)
Maxim:
16-May-2009
give me a minute... will load code to be sure I give a proper working 
example.
Henrik:
16-May-2009
ok, can you decide the size of a column? say you want to share column 
sizes across multiple panels.
Maxim:
16-May-2009
if you look at the styles above, they inherit their sizes from the 
content... but you can easily do a simple trick  :-)


only inherit the size in the direction of the size which is set to 
-1

so if you do: 	

column 200x-1 [ 

then it would staticaly size the x but inherit the y
amacleod:
16-May-2009
Sorry Anton, Yes I'm using your scroll-panel  in R2. I was not the 
scroll panel that was the issue but how to get each occurance of 
a specific word from the face/text
Brock:
16-May-2009
Max, is there a specific version of View that the above code works 
with?  R2 all, R2 specific, or R3?
Maxim:
16-May-2009
for now... I need something that just "works".  speed is secondary... 
the actual file copy is quick, its the login at each command which 
takes about a second ...
Maxim:
16-May-2009
basically at each operation, like clicking on a folder to view its 
content, I use call with an ssh related command.

I retrieve the output, report any errors or parse the return data 
and refresh the ui.


currently, it starts with root dir list, and you click on folders 
to go into them, or click on a checkbox to select it for other file 
manipulations.


each time I use call, the command-line must do a log-ing, since a 
system call is an atomic operation.
Maxim:
17-May-2009
you should ckeck out glayout's inspector... its a MacOS like finder 
to browe ANY rebol structure... and the end of a tree of data, if 
you click on something, you can then see what is inside  :-)
Maxim:
17-May-2009
the rebol.org demo app has a button which allows you to use it.
Maxim:
17-May-2009
many features could be added to it, but for what I use it for, its 
already very usefull... 


its only bug is that is seems to have trouble with unset! values... 
but I could probably fix that now that I have more understanding 
of a lot of rebol's more complex issues.
Maxim:
21-May-2009
glayout has its own popup system, so I didn't notice this earlier, 
but i'm using VID for another project.... I've tried a lot of things, 
but nothing seems to work... I don't want to have to path VID internals 
again...
Maxim:
21-May-2009
seems I can use my glayout version of show-popup hide-popup in VID 
directly , and that works flawlessly in a few tests.... even fixing 
the inform call indirectly.
Graham:
21-May-2009
Looks like a bug.
Maxim:
21-May-2009
but my dialogs don't have a close button in the main pane of the 
layout (using faces with nested panes).  :-(
Gabriele:
21-May-2009
Max, that's intentional. by default, there needs to be a way to get 
rid of the modal popup. if you don't provide any, the system will 
get rid of it on click. do you have an example where you want a modal 
popup (blocking your app) with no clickable face in it?
Maxim:
21-May-2009
I did a full analysis of the problem (again, since I had done so 
with glayout a looooonng time ago) and there is no simple ways to 
handle the issue with the current view setup.
Maxim:
21-May-2009
so I built a new pair of funcs and do the event blocking for non 
pop ups in my event-handler.
Henrik:
21-May-2009
I don't have a PC keyboard, but does View support overwrite/insert 
switcing?
Henrik:
21-May-2009
hmm... I thought it was a matter of doing some changes in CTX-TEXT. 
but if I get this right, it won't matter.
40701 / 6460812345...406407[408] 409410...643644645646647