Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
Hello Martin. Game over. MSEgui is assisted, MSEide too. => https://github.com/fredvs/sak ideU (based on MSEide) is totally assisted. => https://github.com/fredvs/ideU Many thanks Martin for your perfect assistive interface. Happy Xmas for everybody. Fre;D -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
On Thursday 24 December 2015 12:37:26 Fred van Stappen wrote: > Hello Martin. > > Game over. > > MSEgui is assisted, MSEide too. > => https://github.com/fredvs/sak > > ideU (based on MSEide) is totally assisted. > => https://github.com/fredvs/ideU > Congrats and thank you very much! Martin -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
On Wednesday 23 December 2015 17:05:34 Fred van Stappen wrote: > > Hum, nearly... => (tobject.classname() says "tcustomtabbar1" :-) ) tcustomtabbar1 inherits from tcustomtabbar. > But tcustomtabbar1(Sender).activetag return always: 0, even when a other > tab is clicked ;-( > Sure, all tag properties of the tab items have the value 0 by default. Do you mean "tcustomtabbar.activetab"? Martin -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
Hello Martin. > The question is why sender.getassistivecaption() produces a compile error for > you. Ha, ok. Because Sender was Tobject => changed with iassistiveclient => fixed ;-) >Why don't you use > mstr1:= sender.getassistivecaption(); > if mstr1 = '' then begin > mstr1:= sender.getassistivename(); > end; Because it is too simple ;-) ... No, it is because I like to have full control individual by widget. > Info about the widget category could be embedded into the result of > iassistiveclient.getassistiveflags(). Are there no standards? Yes, but like for WhatName(), I want to be the boss. By the way, it will surely be very helpful for somebody else, so many thanks. > "tobject.classname()" returns the classname. Excellent and very useful. >> What widget is it ? > >"tcustomtabbar". Hum, nearly... => (tobject.classname() says "tcustomtabbar1" :-) ) But tcustomtabbar1(Sender).activetag return always: 0, even when a other tab is clicked ;-( => ttabbar, on his side, gives the correct activetag. OK, I have follow your advices and commit it to sak_mse. I am very happy with the result. Many thanks Martin. Fre;D -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
On Wednesday 23 December 2015 17:38:25 Fred van Stappen wrote: > > > But tcustomtabbar1(Sender).activetag return always: 0, even when a > > > other tab is clicked ;-( > > Ha, ok. > > > Sure, all tag properties of the tab items have the value 0 by default. Do > > you mean "tcustomtabbar.activetab"? > > Not sure I understood. > > In MSEide, the tabs in source editor are recognized as tcustomtabbar1. > Do you mean "tcustomtabbar1.activetab"? > > Yes, of course. > > Or how to know the active tab in tcustomtabbar1 ? > You wrote "But tcustomtabbar1(Sender).activeta*g* return always: 0", "activetag" <> "activetab". Martin -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
> You wrote "But tcustomtabbar1(Sender).activeta*g* return always: 0", > "activetag" <> "activetab". > > Martin Oooops, ok, I need new glasses, all is ok now with activetab, sorry for the noise. Many thanks Martin. Fre;D -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
> > But tcustomtabbar1(Sender).activetag return always: 0, even when a other > > tab is clicked ;-( Ha, ok. > Sure, all tag properties of the tab items have the value 0 by default. Do you > mean "tcustomtabbar.activetab"? Not sure I understood. In MSEide, the tabs in source editor are recognized as tcustomtabbar1. Do you mean "tcustomtabbar1.activetab"? Yes, of course. Or how to know the active tab in tcustomtabbar1 ? Thanks. Fre;D, -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
On Tuesday 22 December 2015 14:30:09 Martin Schreiber wrote: > > The tabs are an embedded tcustomtabbar without widgetstate ws_iswidget > which does not get iassisttiveserver.clientmouseevent() currently, but > doitementer() is sent. > git master a8e9a2545e88b69af73baf3d4f4e84f5aec5cef7 sends > iassisttiveserver.clientmouseevent() for embedded widgets too. > git master 71ea172eb3b828886b9aa02e49be90eff9a166ea returns the new flag asf_embedded in iassistiveclient.getassistiveflags() for widgets without ws_iswidget. Also fixed the multiple call of iassitiveserver.doitementer() for tabs. Martin -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
> > git master a8e9a2545e88b69af73baf3d4f4e84f5aec5cef7 sends > > iassisttiveserver.clientmouseevent() for embedded widgets too. > > > git master 71ea172eb3b828886b9aa02e49be90eff9a166ea returns the new flag > asf_embedded in iassistiveclient.getassistiveflags() for widgets without > ws_iswidget. Also fixed the multiple call of iassitiveserver.doitementer() > for tabs. Many thanks Martin ;-) I will deeply study all your previous comments and apply it to sak_mse. Re-many thanks. Fre;D -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
On Tuesday 22 December 2015 13:25:39 Fred van Stappen wrote: > > Please show more code. > > Hello Martin. > > Maybe I use a obsolete way but it works perfectly. > For example, for Ttabbar => > > if (Sender is Ttabbar) then >Result := 'tabbar, ' + Ttabbar(Sender).name + ', ' + >Ttabbar(Sender).tabs[ttabbar(Sender).activetag-1].caption > > Works like wanted ;-). > The question is why sender.getassistivecaption() produces a compile error for you. > Here the complete code to get the name of a widget. > Each assistive event has that code, for example => > > procedure TSAK.clientmouseevent(const sender: iassistiveclient; >const info: mouseeventinfoty); > begin > if WhatName(Sender.getinstance) <> '' then > begin > ... > Why don't you use " var mstr1: msestring; ... mstr1:= sender.getassistivecaption(); if mstr1 = '' then begin mstr1:= sender.getassistivename(); end; " Info about the widget category could be embedded into the result of iassistiveclient.getassistiveflags(). Are there no standards? > > But there is a mystery about tab... > > In MSEide, in sourceform it uses tab for each opened source. (vertical list > of tab on right size of form). > > Sadly, at mousemove, it is not recognized as ttabpage nor ttab nor > ttabwidget nor ttabbar with WhatName(sender) but as "Unknown" with the > correct caption. > The tabs are an embedded tcustomtabbar without widgetstate ws_iswidget which does not get iassisttiveserver.clientmouseevent() currently, but doitementer() is sent. git master a8e9a2545e88b69af73baf3d4f4e84f5aec5cef7 sends iassisttiveserver.clientmouseevent() for embedded widgets too. > What widget is it ? > "tcustomtabbar". > Is it possible to retrieve the class name of a component (or maybe there > are no class-name for component in MSE). Or do you have a idea how to know > what type of component is the sender ? > "tobject.classname()" returns the classname. Martin -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
> Please use sender.getassistivehint() instead. The interface iassistiveclient > ("sender") should provide all you need. => if (Sender is ttoolbar) then Result := 'tool bar, ' + Sender.getassistivehint() => error => sak_mse.pas(535,39) Error: identifier idents no member "getassistivehint" _ PS: => if (Sender is ttoolbar) then Result := 'tool bar, ' + ttoolbar(Sender).getassistivehint() => works like charm. Fre;D -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
On Monday 21 December 2015 17:30:49 Fred van Stappen wrote: > > Please use sender.getassistivehint() instead. The interface > > iassistiveclient ("sender") should provide all you need. > > => if (Sender is ttoolbar) then >Result := 'tool bar, ' + Sender.getassistivehint() > > => error => sak_mse.pas(535,39) Error: identifier idents no member > "getassistivehint" _ > That works in assistivemonitor: " procedure tmainfo.showvalues(const sender: iassistiveclient); var dataintf: iifidatalink; valueprop: ppropinfo; flags: assistiveflagsty; rea1: real; begin flags:= sender.getassistiveflags(); assistivename.value:= sender.getassistivename(); assistivecaption.value:= sender.getassistivecaption(); assistivetext.value:= sender.getassistivetext(); assistivehint.value:= sender.getassistivehint(); assistivecaretindex.value:= sender.getassistivecaretindex(); ... procedure tassistivemonitor.doitementer(const sender: iassistiveclient; const items: shapeinfoarty; const aindex: integer); begin mainfo.showvalues(sender); track('',sender,inttostrmse(aindex)); end; " Please show more code. Martin -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
> > > Can't you use iassistiveserver.doitementer()? > > > > For Ttoolbar? No, I did not try it. > > I will try it asap. Hello Martin. For TToolbar I have lot of luck with tcustomtoolbar.getassistivehint() ;-) This is used successfully => if (Sender is ttoolbar) then Result := 'tool bar, ' + ttoolbar(Sender).getassistivehint() But with last MSE commit there is that error while compiling. => error => "no indent for getassistivehint()" The trick was to: => transfered from "protected" => to "public" and it works. ;-) But maybe there was a reason to make getassistivehint() protected... PS: Problem to retrieve special key (like "Enter", "left", "F10", "Shift", ...) in TWidgetGrid solved. ;-) Thanks. Fre;D -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
On Monday 21 December 2015 17:08:43 Fred van Stappen wrote: > > > > Can't you use iassistiveserver.doitementer()? > > > > > > For Ttoolbar? No, I did not try it. > > > I will try it asap. > > Hello Martin. > > For TToolbar I have lot of luck with tcustomtoolbar.getassistivehint() ;-) > > This is used successfully => > > if (Sender is ttoolbar) then > Result := 'tool bar, ' + ttoolbar(Sender).getassistivehint() > Please use sender.getassistivehint() instead. The interface iassistiveclient ("sender") should provide all you need. Martin -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
> > I cannot make tabs assisted, I cannot find a way to make him say, when a > > tab has changed => "tab the_file.pas focused" for example... Excellent, many thanks. By the way, tested yesterday (long) night => sender.getassistivecaretindex() for TWidgetGrid. Perfect, it works now. And to get the character typed => ... char_typed:= sender.getassistivecelltext(info.cell); char_typed := char_typed[sender.getassistivecaretindex()]; ... => result for assistive-TWidgetGrid => like TMemoEdit => 2x voices (one say the character, other the word). => perfect. I did not find how to get the key pressed (for example "left", "right", "up", "down") so I use sender.getassistivecaretindex() for "left", "right" compare it with the earlier character entered (> or <). For "up" and "down", I use info.cell.row and compare it too to with earlier character entered. PS: If you have a other idea, i am open ;-) Martin I am really happy that we did it, till the end, totally and efficient. I will make tab assisted this we and after that, we may say that msegui is totally and perfectly assisted. Many thanks Martin. I re-test all this we and hope to give you the final commit before Xmas. Fre;D -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
On Saturday 19 December 2015 13:18:34 Fred van Stappen wrote: > > > I cannot make tabs assisted, I cannot find a way to make him say, when > > > a tab has changed => "tab the_file.pas focused" for example... > > Excellent, many thanks. > > By the way, tested yesterday (long) night => > sender.getassistivecaretindex() for TWidgetGrid. Perfect, it works now. And > to get the character typed => > ... > char_typed:= sender.getassistivecelltext(info.cell); > char_typed := char_typed[sender.getassistivecaretindex()]; > ... There should be an iassistiveserver.dokeydown() call from the active cell widget (not from twidgetgrid!). Do you receive that event? > => result for assistive-TWidgetGrid => like TMemoEdit => 2x voices (one say > the character, other the word). => perfect. > > I did not find how to get the key pressed (for example "left", "right", > "up", "down") so I use sender.getassistivecaretindex() for "left", "right" > compare it with the earlier character entered (> or <). For "up" and > "down", I use info.cell.row and compare it too to with earlier character > entered. > These keys also are sent by the active cell widget. Please check the "asf_gridcell" flag from "iassistiveclient.getassistiveflags()" in order to see if a widget is embedded in a twidgetgrid, please see the updated demo. Martin -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
> That will not work in translated applications. What is necessary is a > dedicated 'assistivename' property. Another at least 8 bytes in every twidget > instance... Huh, yes, other assisted-widgetset have "assistive_description" => very useful for images and "assistive_enabled" so you may assign or not assistive for each widget. Fre;D -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
> > Subsidiary other question, how to have a flat look (no borders) for TButton > > ? > Please activate "frame" and "frame.optionsskin" "fso_flat". Ooops, too simple for me ;-) Other thing... I cannot make tabs assisted, I cannot find a way to make him say, when a tab has changed => "tab the_file.pas focused" for example... A example in your assistive monitor will be welcome. Many thanks. Fre;D -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
On Friday 18 December 2015 15:26:39 Fred van Stappen wrote: > > > or what index-button has receive a mouse event ? > > > > Can't you use iassistiveserver.doitementer()? > > For Ttoolbar? No, I did not try it. > I will try it asap. > > Martin, all my comments about mse-assistive want to be positive. > It is not criticism, it is to make it better. > Sure, no problem. Maybe you remember, when we started with "iassisitiveclient" it was nearly empty and I explicitely asked you what functions and procedures you need in "iassistiveclient" and "iassistiveserver". Martin -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
> > or what index-button has receive a mouse event ? > > > Can't you use iassistiveserver.doitementer()? For Ttoolbar? No, I did not try it. I will try it asap. Martin, all my comments about mse-assistive want to be positive. It is not criticism, it is to make it better. Your assistive-interface is wonderful and it has already things that other widgetset do not have (for example onmousemove for menus-items). I know that it was lot of work but, trust me, assistive is a must for high quality widgetset like msegui. Your assistive-interface is nearly perfect. Now, the work of sak or others is to use well your assitive.interface. Fre;D -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
On Thursday 17 December 2015 15:30:12 Fred van Stappen wrote: > > > Now MSEide is totally assisted, even for source editor and MSEdesigner > > > and fpGUIdesigner. > > > > Congrats! > > Thanks for the thanks. ;- > > All is assisted, even the debugger form. > I did not find a way to make Ttoolbar assistive. Please use iassistiveclient.getassistivehint(), see the updated assistive monitor demo. > > Does it exist a way to be advised when a new commit was gone in MSEide, > like receiving a mail for each commit ? > If you are registered at GitLab you can subscribe a live feed. Martin -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
> > All is assisted, even the debugger form. > > I did not find a way to make Ttoolbar assistive. Ooops, wow, perfect. So MSEide is completely assistive too, even for component-tablet ;-) Hum, maybe, if you agree, I propose to change only very, very few things in MSEide code. For all TWidgetgrid (in sourceform.pas and all other units that uses it), there is always the same name : 'grid'. I would propose, for sourceform.pas that you rename it to => source_editor. It can be done very easy => with replace-command: "grid." into "source_editor". Feel free to re-name message-grid too. So, assistive will call it by his real name (and not "grid"). > If you are registered at GitLab you can subscribe a live feed. Ha, ok, perfect. Many thanks Martin. Fre;D -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
On Thursday 17 December 2015 23:07:09 Fred van Stappen wrote: > Hum, maybe, if you agree, I propose to change only very, very few things in > MSEide code. > > For all TWidgetgrid (in sourceform.pas and all other units that uses it), > there is always the same name : 'grid'. > > I would propose, for sourceform.pas that you rename it to => source_editor. > It can be done very easy => with replace-command: "grid." into > "source_editor". > > Feel free to re-name message-grid too. > > So, assistive will call it by his real name (and not "grid"). That will not work in translated applications. What is necessary is a dedicated 'assistivename' property. Another at least 8 bytes in every twidget instance... Martin -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
On Friday 18 December 2015 01:45:16 Fred van Stappen wrote: > > > All is assisted, even the debugger form. > > > I did not find a way to make Ttoolbar assistive. > > > > Please use iassistiveclient.getassistivehint(), see the updated assistive > > monitor demo. > > Ok to get the hint-text => thanks, but how to get the name of one of the > buttons clicked, ttoolbar items have no names. > or what index-button has receive a mouse event ? > Can't you use iassistiveserver.doitementer()? > I think that maybe, like you said when we begin sak_mse, that Ttoolbar is > not or very difficult to be assisted. > > By the way, you can have the same result with a array of buttons. > > Subsidiary other question, how to have a flat look (no borders) for TButton > ? Please activate "frame" and "frame.optionsskin" "fso_flat". Martin -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
> > All is assisted, even the debugger form. > > I did not find a way to make Ttoolbar assistive. > > Please use iassistiveclient.getassistivehint(), see the updated assistive > monitor demo. Ok to get the hint-text => thanks, but how to get the name of one of the buttons clicked, or what index-button has receive a mouse event ? I think that maybe, like you said when we begin sak_mse, that Ttoolbar is not or very difficult to be assisted. By the way, you can have the same result with a array of buttons. Subsidiary other question, how to have a flat look (no borders) for TButton ? Thanks. Fre;D -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
On Thursday 17 December 2015 03:54:35 Fred van Stappen wrote: > > Sadly, there is a problem with "cek_enter". > > Ok, solved, => msegridsglob was missing in second "uses" ( I agree it was > well hidden ;-) ). > > Now MSEide is totally assisted, even for source editor and MSEdesigner and > fpGUIdesigner. > Congrats! Martin -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] iassistiveclientgrid and cek_enter ?
> Sadly, there is a problem with "cek_enter". Ok, solved, => msegridsglob was missing in second "uses" ( I agree it was well hidden ;-) ). Now MSEide is totally assisted, even for source editor and MSEdesigner and fpGUIdesigner. In my humble opinion, the result is WOW x 1000 Many thanks Martin. Fre;D -- ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk