From: Petr M. <mi...@ph...> - 2004-05-09 14:08:14
|
> > As I use the new ginput.m for accessing gnuplot mousing events from > > Octave, I can see some current "inconvencies". In principle, we would be > > of advantage to get ginput(n) functionality of Matlab. > > I've never used Matlab. Perhaps you could cut-and-paste a man page > description of ginput(n) so that I know what you have in mind? See http://www.mathworks.com/access/helpdesk/help/techdoc/ref/ginput.html In summary, it returns mouse position (x,y) and which mouse button was clicked (1, 2, 3 from left) or ASCII number if key on the keyboard was hit, at that position. > > B. Mousing hotkeys (including those "hardcoded" to x11 like "q" and > > "space") should be disabled during "pause mouse". > > Why would you want to do that? From Octave, I run 3 instances of gnuplot. The main one draws a map. I do "infinitely" 'pause mouse' and analyze key or mouse: if 'h' pressed => draw horizontal section through the map in 2nd gnuplot, 'v' for vertical in 3rd gnuplot, 'q' get off the loop. > I should think it would be useful to be able to zoom, unzoom, and rotate > during mouse mode. Same for the space key. Sometimes yes, sometimes not => that's why my proposal for pause mouse key will pause until mouse click or key press, with gnuplot default hotkeys being switched off. > If you want character input rather than mouse coordinates, then > why are you issuing a 'pause mouse' command in the first place? I want to know the key pressed in x11 graph. > You want a way to back out of a 'pause mouse' command without > actually sending mouse coordinates, is that right? No, I want them too. > Would it be sufficient to activate a SIGINT handling routine for the > plot window during pause mouse, so that you can type ctrl-C in it? Obviously no. > > - x11_set_cursor(), pm_set_cursor() etc. should be changed from > > > > term_set_cursor(int type, int x, int y) > > to > > term_set_special(int what, int option, int x, int y) > > Those are functionally equivalent, aren't they? Currently only for what==TERM_SPECIAL_SETCURSOR > Your first pair of examples below use an extra parameter, but it doesn't > gain anything other the second pair. > > term->set_special(TERM_SPECIAL_HOTKEYS, 1, 0, 0) // enable hotkeys > > term->set_special(TERM_SPECIAL_HOTKEYS, 0, 0, 0) // disable > > term->set_special(TERM_SPECIAL_RAISE, 0, 0, 0) // used by "raise" and > > term->set_special(TERM_SPECIAL_LOWER, 0, 0, 0) // "lower" commands The main idea is to avoid plenty of new x11/pm/win API functions in x11.trm, pm.trm, win.trm, rather than adding a new integer (command) into a table of interactive terminal functions. => support for commands "raise", "lower", "setcursor", "switch hotkeys" etc. would be done without touching x11.trm, pm.trm etc -- just add one #define TERM_SPECIAL_BLA into a common .h file, and implement the catch for this TERM_SPECIAL_BLA in gclient.c, gplt_x11.c or ... (and if not implemented, then it is silently ignored). I hope I made it more clear now. --- PM |