Starting Helpfiles (chm) from a dolphin application via F1 what it the official way

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Starting Helpfiles (chm) from a dolphin application via F1 what it the official way

Christoph J. Bachinger
After doing a search in DSDN and in the D6 Smalltalk code I found in
ClosedCommandDescriptionIssueDialog the method

addContextHelpProvider: helpProvider
 "Add context sensative F1 help to self."

 | table |
 table := self view acceleratorTable.
 table isNil ifTrue: [table := AcceleratorTable new].
 table addKey: VK_F1
  commandDescription: (ClosedCommandDescription
    command: (Message selector: #openHelpFor: argument: self)
    description: 'Help'
    receiver: helpProvider).
 "cdemers - 5/12/2004 The message bellow causes a deepCopy of the
ClosedCommandDescription to be made, which makes a deepCopy of the arguments
and the reciever.  This is probably not what a user would want, and can
cause a long delay in opening the window.  The deepCopy happens in
ShellView<<updateCombinedAcceleratorTable"
 self view acceleratorTable: table

Adapting this code to my application I get a message after pressing the F1
Key. So everything is fine but is this the offical way?

First I was confused about the comment  from cjdemers about the deepCopy.
But after looking at ShellView<<updateCombinedAcceleratorTable I saw the
deepCopy was changed to only copy. So it seems to be fixed and the comment
should be removed.

Whats the best way to get the F1 key?

cjb


Reply | Threaded
Open this post in threaded view
|

Re: Starting Helpfiles (chm) from a dolphin application via F1 what it the official way

Christopher J. Demers
"Christoph J. Bachinger" <[hidden email]> wrote in message
news:[hidden email]...
> After doing a search in DSDN and in the D6 Smalltalk code I found in
> ClosedCommandDescriptionIssueDialog the method
>
> addContextHelpProvider: helpProvider
> "Add context sensative F1 help to self."
...
> First I was confused about the comment  from cjdemers about the deepCopy.
> But after looking at ShellView<<updateCombinedAcceleratorTable I saw the
> deepCopy was changed to only copy. So it seems to be fixed and the comment
> should be removed.

That class is actually in support of a unit test I submitted to OA
illustrating a problem with the way the ClosedCommandDescription was being
used.  You can read about the issue report and resolution here:

http://groups.google.com/group/comp.lang.smalltalk.dolphin/browse_frm/thread/8e9431a3613bcd05/72317dd4a3113e9a?lnk=st&q=ClosedCommandDescription+Dolphin&rnum=1#72317dd4a3113e9a

There may be philosophic considerations as to what sort of unit tests should
be included with Dolphin.  I am not sure if we are getting all OA unit tests
just because we are beta testers, or if they will also be in the release.  I
think it is perfectly fine for the beta to include them, and certainly good
for OA to keep a large collection of tests they can run.  However some of
the tests may be a bit too esoteric to be of interest to most users of the
released version.

> Whats the best way to get the F1 key?

My current thinking is that overriding the additionalAccelerators method in
your presenter may be better.  Something like this:
========
additionalAccelerators
    ^#(#(#cmdFind 'CTRL+F'))
========
I suspect (but can't test right now) that 'F1' could be used in place of
'CTRL+F', and #cmdFind is the symbol of the method you want to execute.  Of
course if you have a menu then you should use that to trigger help instead
(F1 can be set as the accelerator in the UI).

Chris


Reply | Threaded
Open this post in threaded view
|

Re: Starting Helpfiles (chm) from a dolphin application via F1 what it the official way

Steve Alan Waring
In reply to this post by Christoph J. Bachinger
Hi Christoph,

Another way to do this is to add support for WM_HELP. I have used this
technique, and I find it easier than adding accelerators for F1.

The attached package is for D5, but should work in D6. It adds the HELPINFO
structure and a HelpEvent as well as some view/presenter event handlers. You
can then implement #onHelpRequested: in your presenter and open your CHM at
the relevant page.

I have been using this package for a while, but I have not tested it in D6
as yet. Standard disclaimers apply!

Steve
--
Steve Waring
[hidden email]


begin 666 SW ContextHelp.pac
M?"!P86-K86=E('P-"G!A8VMA9V4@.CT@4&%C:V%G92!N86UE.B G4U<@0V]N
M=&5X=$AE;' G+@T*<&%C:V%G92!P87A697)S:6]N.B P.PT*"6)A<VEC0V]M
M;65N=#H@)R<N#0H-"G!A8VMA9V4@8F%S:6-086-K86=E5F5R<VEO;CH@)S4G
M+@T*#0IP86-K86=E(&)A<VEC4V-R:7!T070Z("-P;W-T:6YS=&%L;"!P=70Z
M("=6:65W(&%D9$AE;'!4;TUE<W-A9V5-87 G+@T*<&%C:V%G92!B87-I8U-C
M<FEP=$%T.B C<')E=6YI;G-T86QL('!U=#H@)U9I97<@<F5M;W9E2&5L<$9R
M;VU-97-S86=E36%P)RX-"@T*<&%C:V%G92!C;&%S<TYA;65S#0H)861D.B C
M2&5L<$5V96YT.PT*"6%D9#H@(TA%3%!)3D9/.PT*"7EO=7)S96QF+@T*#0IP
M86-K86=E(&UE=&AO9$YA;65S#0H)861D.B C4')E<V5N=&5R("T^("-H96QP
M5&%R9V5T5FEE=SL-"@EA9&0Z("-0<F5S96YT97(@+3X@(V]N2&5L<%)E<75E
M<W1E9#H[#0H)861D.B C4')E<V5N=&5R("T^("-S96YD2&5L<$UE<W-A9V4[
M#0H)861D.B C4VAE;&Q6:65W("T^("-H87-#;VYT97AT2&5L<#L-"@EA9&0Z
M("-3:&5L;%9I97<@+3X@(VAA<T-O;G1E>'1(96QP.CL-"@EA9&0Z("-6:65W
M("T^("-O;DAE;'!297%U97-T960Z.PT*"6%D9#H@(U9I97<@+3X@(W=M2&5L
M<#IW4&%R86TZ;%!A<F%M.CL-"@EA9&0Z("=6:65W(&-L87-S)R M/B C861D
M2&5L<%1O365S<V%G94UA<#L-"@EA9&0Z("=6:65W(&-L87-S)R M/B C<F5M
M;W9E2&5L<$9R;VU-97-S86=E36%P.PT*"7EO=7)S96QF+@T*#0IP86-K86=E
M(')E<V]U<F-E3F%M97,-"@EA9&0Z("-0<F5S96YT97(@+3X@)T]+($-A;F-E
M;"!(96QP(&)U='1O;B!B;&]C:R<[#0H)>6]U<G-E;&8N#0H-"G!A8VMA9V4@
M8FEN87)Y1VQO8F%L3F%M97,Z("A3970@;F5W#0H)>6]U<G-E;&8I+@T*#0IP
M86-K86=E(&=L;V)A;$%L:6%S97,Z("A3970@;F5W#0H)>6]U<G-E;&8I+@T*
M#0IP86-K86=E(&%L;%)E<V]U<F-E3F%M97,Z("A3970@;F5W#0H)861D.B C
M4')E<V5N=&5R("T^("=/2R!#86YC96P@2&5L<"!B=71T;[hidden email]*
M"7EO=7)S96QF*2X-"@T*<&%C:V%G92!S9710<F5R97%U:7-I=&5S.B H261E
M;G1I='E3970@;F5W#0H)861D.B G+BY<+BY<+BY<3V)J96-T($%R='-<1&]L
M<&AI;EQ"87-E7$1O;'!H:6XG.PT*"6%D9#H@)RXN7"XN7"XN7$]B:F5C="!!
M<G1S7$1O;'!H:6Y<35907$)A<V5<1&]L<&AI;B!-5E @0F%S92<[#0H)>6]U
M<G-E;&8I+@T*#0IP86-K86=E(0T*#0HB0VQA<W,@1&5F:6YI=&EO;G,B(0T*
M#0I7:6YD;W=S179E;G0@<W5B8VQA<W,Z("-(96QP179E;G0-"@EI;G-T86YC
M959A<FEA8FQE3F%M97,Z("<G#0H)8VQA<W-687)I86)L94YA;65S.B G)PT*
M"7!O;VQ$:6-T:6]N87)I97,Z("<G#0H)8VQA<W-);G-T86YC959A<FEA8FQE
M3F%M97,Z("<G(0T*5VEN,S)3=')U8W1U<F4@<W5B8VQA<W,Z("-(14Q024Y&
M3PT*"6EN<W1A;F-E5F%R:6%B;&5.86UE<SH@)R<-"@EC;&%S<U9A<FEA8FQE
M3F%M97,Z("<G#0H)<&]O;$1I8W1I;VYA<FEE<SH@)R<-"@EC;&%S<TEN<W1A
M;F-E5F%R:6%B;&5.86UE<SH@)R<A#0H-"B)';&]B86P@06QI87-E<R(A#0H-
M"@T*(DQO;W-E($UE=&AO9',B(0T*#0HA4')E<V5N=&5R(&UE=&AO9'-&;W(A
M#0H-"FAE;'!487)G9716:65W#0H)7G-E;&8@=FEE=R$-"@T*;VY(96QP4F5Q
M=65S=&5D.B!A2&5L<$5V96YT( T*"5YS96QF('9I97<@;VY(96QP4F5Q=65S
M=&5D.B!A2&5L<$5V96YT(0T*#0IS96YD2&5L<$UE<W-A9V4-"@DB(V1E9FEN
M92!735](14Q0(" @(" @(" @(" @(" @(" @(" @(" @(#!X,# U,R(-"@T*
M"7P@:"!\#0H):" Z/2!(14Q024Y&3R!N97<@8F5(96QP26YF;U=I;F1O=RX-
M"@ES96QF(&AE;'!487)G9716:65W( T*"0ES96YD365S<V%G93H@,39R-3,-
M"@D)=U!A<F%M.B P#0H)"6Q087)A;3H@:"!Y;W5R061D<F5S<R$@(0T*(5!R
M97-E;G1E<B!C871E9V]R:65S1F]R.B C:&5L<%1A<F=E=%9I97<A8V]M;6%N
M9',A<'5B;&EC(2 A#0HA4')E<V5N=&5R(&-A=&5G;W)I97-&;W(Z("-O;DAE
M;'!297%U97-T960Z(65V96YT(&AA;F1L:6YG(7!U8FQI8R$@(0T*(5!R97-E
M;G1E<B!C871E9V]R:65S1F]R.B C<V5N9$AE;'!-97-S86=E(6-O;6UA;F1S
M(7!U8FQI8R$@(0T*#0HA4VAE;&Q6:65W(&UE=&AO9'-&;W(A#0H-"FAA<T-O
M;G1E>'1(96QP#0H)(B-D969I;F4@5U-?15A?0T].5$585$A%3% @(" @(" @
M,'@P,# P,#0P,$PB#0H-"@E><V5L9B!E>%-T>6QE06QL36%S:SH@,39R,# P
M,# T,# A#0H-"FAA<T-O;G1E>'1(96QP.B!A0F]O;&5A;B -"@DB(V1E9FEN
M92!74U]%6%]#3TY415A42$5,4" @(" @(" P># P,# P-# P3"(-"@T*"7-E
M;&8@97A3='EL94UA<VLZ(#$V<C P,# P-# P('-E=#H@84)O;VQE86XA("$-
M"B%3:&5L;%9I97<@8V%T96=O<FEE<T9O<CH@(VAA<T-O;G1E>'1(96QP(6%C
M8V5S<VEN9R%P=6)L:6,A("$-"B%3:&5L;%9I97<@8V%T96=O<FEE<T9O<CH@
M(VAA<T-O;G1E>'1(96QP.B%A8V-E<W-I;F<A<'5B;&EC(2 A#0H-"B%6:65W
M(&UE=&AO9'-&;W(A#0H-"F]N2&5L<%)E<75E<W1E9#H@84AE;'!%=F5N=" -
M"@DB5&AE($1E9E=I;F1O=U!R;V,@9G5N8W1I;VX@<&%S<V5S(%=-7TA%3% @
M=&\@=&AE('!A<F5N="!W:6YD;W<@;V8@82!C:&EL9"!W:6YD;W<@;W(@=&\@
M=&AE(&]W;F5R(&]F(&$@=&]P+6QE=F5L('=I;F1O=RX@(@T*#0H)7FYI;"$-
M"@T*=VU(96QP.B!M97-S86=E('=087)A;3H@=U!A<F%M(&Q087)A;3H@;%!A
M<F%M( T*"5YS96QF('!R97-E;G1E<B!O;DAE;'!297%U97-T960Z("A(96QP
M179E;G0@#0H)"0D);65S<V%G93H@;65S<V%G90T*"0D)"6AA;F1L93H@:&%N
M9&QE#0H)"0D)=U!A<F%M.B!W4&%R86T-"@D)"0EL4&%R86TZ(&Q087)A;2DA
M("$-"B%6:65W(&-A=&5G;W)I97-&;W(Z("-O;DAE;'!297%U97-T960Z(65V
M96YT(&AA;F1L:6YG(7!U8FQI8R$@(0T*(59I97<@8V%T96=O<FEE<T9O<CH@
M(W=M2&5L<#IW4&%R86TZ;%!A<F%M.B%E=F5N="!H86YD;&EN9RUW:6XS,B%P
M<FEV871E(2 A#0H-"B%6:65W(&-L87-S(&UE=&AO9'-&;W(A#0H-"F%D9$AE
M;'!4;TUE<W-A9V5-87 -"@DB#0H)<V5L9B!A9&1(96QP5&]-97-S86=E36%P
M#0H)(@T*#0H)365S<V%G94UA<"!A=#H@,39R-3,@*R Q('!U=#H@(W=M2&5L
M<#IW4&%R86TZ;%!A<F%M.@T*"2(C9&5F:6YE(%=-7TA%3% @(" @(" @(" @
M(" @(" @(" @(" @(" @,'@P,#4S(B$-"@T*<F5M;W9E2&5L<$9R;VU-97-S
M86=E36%P#0H)(@T*"7-E;&8@<F5M;W9E2&5L<$9R;VU-97-S86=E36%P#0H)
M(@T*#0H)365S<V%G94UA<"!A=#H@,39R-3,@*R Q('!U=#H@;FEL#0H)(B-D
M969I;F4@5TU?2$5,4" @(" @(" @(" @(" @(" @(" @(" @(" P># P-3,B
M(2 A#0HA5FEE=R!C;&%S<R!C871E9V]R:65S1F]R.B C861D2&5L<%1O365S
M<V%G94UA<"%A8V-E<W-I;F<A;75S="!N;W0@<W1R:7 A<'5B;&EC(2 A#0HA
M5FEE=R!C;&%S<R!C871E9V]R:65S1F]R.B C<F5M;W9E2&5L<$9R;VU-97-S
M86=E36%P(6%C8V5S<VEN9R%M=7-T(&YO="!S=')I<"%P=6)L:6,A("$-"@T*
M(D5N9"!O9B!P86-K86=E(&1E9FEN:71I;VXB(0T*#0HB4V]U<F-E($=L;V)A
M;',B(0T*#0HB0VQA<W-E<R(A#0H-"DAE;'!%=F5N="!G=6ED.B H1U5)1"!F
M<F]M4W1R:6YG.B G>S0X.30P.3=&+4(U1#(M-$-&0RU!,C<Y+3DU048Q.3<R
M,4(R-WTG*2$-"DAE;'!%=F5N="!C;VUM96YT.B G)R$-"B%(96QP179E;G0@
M8V%T96=O<FEE<T9O<D-L87-S(4U64"U6:65W<RU%=F5N=',A("$-"B%(96QP
M179E;G0@;65T:&]D<T9O<B$-"@T*:7-&;W)-96YU#0H)(DAE;' @<F5Q=65S
M=&5D(&9O<B!A(&UE;G4@:71E;2XB#0H-"@E><V5L9B!W:6Y3=')U8W0@:7-(
M96QP26YF;TUE;G5)=&5M(0T*#0II<T9O<E=I;F1O=PT*"2)(96QP(')E<75E
M<W1E9"!F;W(@82!C;VYT<F]L(&]R('=I;F1O=RXB#0H-"@E><V5L9B!W:6Y3
M=')U8W0@:7-(96QP26YF;U=I;F1O=R$-"@T*=VEN4W1R=6-T#0H)(D%N<W=E
M<B!A(%=I;F1O=W,@<W1R=6-T=7)E(&-O;G1A:6YI;F<@=&AE($A%3%!)3D9/
M(&EN9F]R;6%T:6]N#0H)9F]R('1H92!R96-E:79E<BXB#0H-"@E>2$5,4$E.
M1D\@9G)O;4%D9')E<W,Z('-E;&8@;%!A<F%M(2 A#0HA2&5L<$5V96YT(&-A
M=&5G;W)I97-&;W(Z("-I<T9O<DUE;G4A<'5B;&EC(71E<W1I;F<A("$-"B%(
M96QP179E;G0@8V%T96=O<FEE<T9O<CH@(VES1F]R5VEN9&]W(7!U8FQI8R%T
M97-T:6YG(2 A#0HA2&5L<$5V96YT(&-A=&5G;W)I97-&;W(Z("-W:6Y3=')U
M8W0A86-C97-S:6YG(7!U8FQI8R$@(0T*#0I(14Q024Y&3R!G=6ED.B H1U5)
M1"!F<F]M4W1R:6YG.B G>T9#14-#-D-!+4-&04,M-#,R1"TY.#(U+3)!-40R
M1C$T,44R,GTG*2$-"DA%3%!)3D9/(&-O;6UE;G0Z("<G(0T*(4A%3%!)3D9/
M(&-A=&5G;W)I97-&;W)#;&%S<R%%>'1E<FYA;"U$871A+5-T<G5C='5R960M
M5VEN,S(A("$-"B%(14Q024Y&3R!M971H;V1S1F]R(0T*#0IB94AE;'!);F9O
M5VEN9&]W#0H)(B-D969I;F4@2$5,4$E.1D]?5TE.1$]7(" @(#!X,# P,2(-
M"@T*"7-E;&8@:4-O;G1E>'14>7!E.B Q-G(Q(0T*#0ID=T-O;G1E>'1)9 T*
M"2)!;G-W97(@=&AE(')E8V5I=F5R)W,@9'=#;VYT97AT260@9FEE;&0@87,@
M82!3;6%L;'1A;&L@;V)J96-T+B(-"@T*"5XH8GET97,@9'=O<F1!=$]F9G-E
M=#H@,38I(0T*#0ID=U-I>F4Z(&%N3V)J96-T#0H)(E-E="!T:&4@<F5C96EV
M97(G<R!D=U-I>F4@9FEE;&0@=&\@=&AE('9A;'5E(&]F(&%N3V)J96-T+B(-
M"@T*"6)Y=&5S(&1W;W)D071/9F9S970Z(# @<'5T.B!A;D]B:F5C="$-"@T*
M:$ET96U(86YD;&4-"@DB06YS=V5R('1H92!R96-E:79E<B=S(&A)=&5M2&%N
M9&QE(&9I96QD(&%S(&$@4VUA;&QT86QK(&]B:F5C="XB#0H-"@E>*&)Y=&5S
M(&1W;W)D071/9F9S970Z(#$R*2!A<T5X=&5R;F%L2&%N9&QE(0T*#0IH271E
M;4AA;F1L93H@86Y/8FIE8W0-"@DB4V5T('1H92!R96-E:79E<B=S(&A)=&5M
M2&%N9&QE(&9I96QD('1O('1H92!V86QU92!O9B!A;D]B:F5C="XB#0H-"@EB
M>71E<R!D=V]R9$%T3V9F<V5T.B Q,B!P=70Z(&%N3V)J96-T(0T*#0II0V]N
M=&5X=%1Y<&4-"@DB06YS=V5R('1H92!R96-E:79E<B=S(&E#;VYT97AT5'EP
M92!F:65L9"!A<R!A(%-M86QL=&%L:R!O8FIE8W0N(@T*#0H)7BAB>71E<R!D
M=V]R9$%T3V9F<V5T.B T*2$-"@T*:4-O;G1E>'14>7!E.B!A;D]B:F5C= T*
M"2)3970@=&AE(')E8V5I=F5R)W,@:4-O;G1E>'14>7!E(&9I96QD('1O('1H
M92!V86QU92!O9B!A;D]B:F5C="XB#0H-"@EB>71E<R!D=V]R9$%T3V9F<V5T
M.B T('!U=#H@86Y/8FIE8W0A#0H-"FE#=')L260-"@DB06YS=V5R('1H92!R
M96-E:79E<B=S(&E#=')L260@9FEE;&0@87,@82!3;6%L;'1A;&L@;V)J96-T
M+B(-"@T*"5XH8GET97,@9'=O<F1!=$]F9G-E=#H@."DA#0H-"FES2&5L<$EN
M9F]-96YU271E;0T*"2(C9&5F:6YE($A%3%!)3D9/7TU%3E5)5$5-(" P># P
M,#(B#0H-"@E><V5L9B!I0V]N=&5X=%1Y<&4@/2 Q-G(R(0T*#0II<TAE;'!)
M;F9O5VEN9&]W#0H)(B-D969I;F4@2$5,4$E.1D]?5TE.1$]7(" @(#!X,# P
M,2(-"@T*"5YS96QF(&E#;VYT97AT5'EP92 ](#$V<C$A#0H-"DUO=7-E4&]S
M#0H)(D%N<W=E<B!T:&4@<F5C96EV97(G<R!-;W5S95!O<R!F:65L9"!A<R!A
M(%-M86QL=&%L:R!O8FIE8W0N(@T*#0H)7E!/24Y43"!F<F]M061D<F5S<SH@
M*&)Y=&5S('EO=7)!9&1R97-S("L@,C I(0T*#0I-;W5S95!O<SH@86Y/8FIE
M8W0-"@DB4V5T('1H92!R96-E:79E<B=S($UO=7-E4&]S(&9I96QD('1O('1H
M92!V86QU92!O9B!A;D]B:F5C="XB#0H-"@EA;D]B:F5C="!R97!L86-E0GET
M97-/9CH@8GET97,@9G)O;3H@,C$@=&\Z(#(X('-T87)T:6YG070Z(#$A("$-
M"B%(14Q024Y&3R!C871E9V]R:65S1F]R.B C8F5(96QP26YF;U=I;F1O=R%M
M;V1E<R%P=6)L:6,A("$-"B%(14Q024Y&3R!C871E9V]R:65S1F]R.B C9'=#
M;VYT97AT260A*BIC;VUP:6QE9"!A8V-E<W-O<G,J*B%P=6)L:6,A("$-"B%(
M14Q024Y&3R!C871E9V]R:65S1F]R.B C9'=3:7IE.B$J*F-O;7!I;&5D(&%C
M8V5S<V]R<RHJ(7!U8FQI8R$@(0T*(4A%3%!)3D9/(&-A=&5G;W)I97-&;W(Z
M("-H271E;4AA;F1L92$J*F-O;7!I;&5D(&%C8V5S<V]R<RHJ(7!U8FQI8R$@
M(0T*(4A%3%!)3D9/(&-A=&5G;W)I97-&;W(Z("-H271E;4AA;F1L93HA*BIC
M;VUP:6QE9"!A8V-E<W-O<G,J*B%P=6)L:6,A("$-"B%(14Q024Y&3R!C871E
M9V]R:65S1F]R.B C:4-O;G1E>'14>7!E(2HJ8V]M<&EL960@86-C97-S;W)S
M*BHA<'5B;&EC(2 A#0HA2$5,4$E.1D\@8V%T96=O<FEE<T9O<CH@(VE#;VYT
M97AT5'EP93HA*BIC;VUP:6QE9"!A8V-E<W-O<G,J*B%P=6)L:6,A("$-"B%(
M14Q024Y&3R!C871E9V]R:65S1F]R.B C:4-T<FQ)9"$J*F-O;7!I;&5D(&%C
M8V5S<V]R<RHJ(7!U8FQI8R$@(0T*(4A%3%!)3D9/(&-A=&5G;W)I97-&;W(Z
M("-I<TAE;'!);F9O365N=4ET96TA<'5B;&EC(71E<W1I;F<A("$-"B%(14Q0
M24Y&3R!C871E9V]R:65S1F]R.B C:7-(96QP26YF;U=I;F1O=R%P=6)L:6,A
M=&5S=&EN9R$@(0T*(4A%3%!)3D9/(&-A=&5G;W)I97-&;W(Z("--;W5S95!O
M<R$J*F-O;7!I;&5D(&%C8V5S<V]R<RHJ(7!U8FQI8R$@(0T*(4A%3%!)3D9/
M(&-A=&5G;W)I97-&;W(Z("--;W5S95!O<SHA*BIC;VUP:6QE9"!A8V-E<W-O
M<G,J*B%P=6)L:6,A("$-"@T*(4A%3%!)3D9/(&-L87-S(&UE=&AO9'-&;W(A
M#0H-"F1E9FEN949I96QD<PT*"2)$969I;F4@=&AE(&9I96QD<R!O9B!T:&4@
M5VEN,S(@2$5,4$E.1D\@<W1R=6-T=7)E+@T*#0H)"4A%3%!)3D9/(&-O;7!I
M;&5$969I;FET:6]N#0H)(@T*#0H)(@T*"2-I9BA724Y615(@/CT@,'@P-# P
M*0T*"2-D969I;F4@2$5,4$E.1D]?5TE.1$]7(" @(#!X,# P,0T*"2-D969I
M;F4@2$5,4$E.1D]?345.54E414T@(#!X,# P,@T*"71Y<&5D968@<W1R=6-T
M('1A9TA%3%!)3D9/(" @(" @+RH@4W1R=6-T=7)E('!O:6YT960@=&\@8GD@
M;%!A<F%M(&]F(%=-7TA%3% @*B\-"@E[#0H)(" @(%5)3E0@(" @8V)3:7IE
M.R @(" @(" @(" @(" O*B!3:7IE(&EN(&)Y=&5S(&]F('1H:7,@<W1R=6-T
M(" J+PT*"2 @("!I;G0@(" @(&E#;VYT97AT5'EP93L@(" @(" @+RH@16ET
M:&5R($A%3%!)3D9/7U=)3D1/5R!O<B!(14Q024Y&3U]-14Y5251%32 J+PT*
M"2 @("!I;G0@(" @(&E#=')L260[(" @(" @(" @(" @+RH@0V]N=')O;"!)
M9"!O<B!A($UE;G4@:71E;2!)9"X@*B\-"@D@(" @2$%.1$Q%("!H271E;4AA
M;F1L93L@(" @(" @("\J(&A7;F0@;V8@8V]N=')O;"!O<B!H365N=2X@(" @
M("HO#0H)(" @($173U)$7U!44B!D=T-O;G1E>'1)9#L@(" @(" O*B!#;VYT
M97AT($ED(&%S<V]C:6%T960@=VET:"!T:&ES(&ET96T@*B\-"@D@(" @4$])
M3E0@("!-;W5S95!O<SL@(" @(" @(" @("\J($UO=7-E(%!O<VET:6]N(&EN
M('-C<F5E;B!C;RUO<F1I;F%T97,@*B\-"@E]("!(14Q024Y&3RP@1D%2("I,
M4$A%3%!)3D9/.PT*"2(-"@T*"7-E;&8-"@D)9&5F:6YE1FEE;&0Z("-D=U-I
M>F4@='EP93H@1%=/4D1&:65L9"!W<FET94]N;'D@8F5/=F5R<FED93L-"@D)
M9&5F:6YE1FEE;&0Z("-I0V]N=&5X=%1Y<&4@='EP93H@1%=/4D1&:65L9"!N
M97<[#0H)"61E9FEN949I96QD.B C:4-T<FQ)9"!T>7!E.B!$5T]21$9I96QD
M(')E861/;FQY.PT*"0ED969I;F5&:65L9#H@(VA)=&5M2&%N9&QE('1Y<&4Z
M($A!3D1,149I96QD(&YE=SL-"@D)9&5F:6YE1FEE;&0Z("-D=T-O;G1E>'1)
M9"!T>7!E.B!$5T]21$9I96QD(')E861/;FQY.PT*"0ED969I;F5&:65L9#H@
M(TUO=7-E4&]S('1Y<&4Z("A3=')U8W1U<F5&:65L9"!T>7!E.B!03TE.5"DA
M("$-"B%(14Q024Y&3R!C;&%S<R!C871E9V]R:65S1F]R.B C9&5F:6YE1FEE
M;&1S(6EN:71I86QI>FEN9R%P=6)L:6,A("$-"@T*(D)I;F%R>2!';&]B86QS
M(B$-"@T*(E)E<V]U<F-E<R(A#0H-"BA297-O=7)C94ED96YT:69I97(@8VQA
M<W,Z(%!R97-E;G1E<B!N86UE.B G3TL@0V%N8V5L($AE;' @8G5T=&]N(&)L
M;V-K)RD@87-S:6=N.B H3V)J96-T(&9R;VU":6YA<GE3=&]R94)Y=&5S.@T*
M*$)Y=&5!<G)A>2!F<F]M0F%S938T4W1R:6YG.B G259.55%I07A)15E#1$%!
M0D%!04%6;6QL9#%*;&,R.3%C;4YL04%!04%!-$)*04)45D5*4UI83G9D6$IJ
M6E9.55%K2C5D1U9"8VY*: T*955&:EDR5GIC,CEY54A*=F5(:T%!04%!8V=!
M04%!:TE!04%H53%20TE$16=49V=-04%O04%!0E1614I785=6,U5(2G9E2&M!
M04%!00T*;6=!04%!04%!04)304%!045!04%!15)V8DA";V%7-&=45EI1245*
M:&,R5E-!04%!1%%!04%%3G9B;E)H85<U;&-L6G!:6&1I04%!00T*1'=!04%!
M04%!04%!04%!05EG04%!04E!04%#0T%!04%"04%!04%!04%%44)!04E!;T%%
M04%!04%!04%'05%S054S;'ID1U9T43(Y<PT*8C-)04%!04%(=T%!04%!04%!
M04A!04%!04%!04%!04%!04%!04%!06]!14%!05E"1%%"1V-M1G1A5S5N5$=&
M-6(S5C!!04%!04]O00T*04%!04%!04$X04%!04=)04%!04=!04%!;6=%04%!
M04%!04-A04%!04%!04%!34%"04%"4T%!04%#9T%!049",6,R:$-D6%(P8C(U
M:0T*04%!045104%!04%!04%#9T%104%99T%!04%)04%!0T-!04%!0D%!04%!
M06=!,%%"04%!06-!24%!04%!04%!04%!04%!04%!04%C00T*04%!04%!04%!
M04%!04%!04%!0G=!9T%!04%!04%)24%!04%%04%!03!W5&ED,%E&16=!14%!
M04%1,CET8E=&=5I%4FQC,DYY85A", T*85<Y=4%!04%!3&]!04%!04%!04%5
M9T%!04%)04%!0G9A,4E!04%!0T%!04%4,'-"04%!04%104%!04%!04%!04%!
M04%!=T%!04%90@T*1'="3EI83GI95V1L53)6>&175G59,E5!04%!07EG04%!
M04%!04%$44%!04%99T%!04%)04%!04=!=W-!5%=6>F,R1FY:5DYL8FU100T*
M04%!075G04%!04%!04%"4T%!04%%04%!04=.>5I71C!:548P3VU6-&1'5G5D
M1'!I04%!04%G04%!05E#0E%"46(R;'5D04%!04%!9@T*04%!04-W04%!34E$
M04%!04%!04%J44%!041-04%!0G=!9T%!8V=-04%!04%!04,V04%!04%!04%!
M1DE!04%!1D%!04%D1U8T9$1P:0T*04%!04%104%!1DE!04%!0T%!04%4,'1W
M06=!04)G15!!1F1*5&M24%8Q0DU154Y&5%563U9!04%!04)Y04%!04Q!04%!
M0W=!04%!00T*04%!04%104%!4"\O+R\O+R\O+R\O+R\O+R\O+R\O.%!!04%!
M0E%!04%&54%!04%E04%!07EG04%!04%!04%$44%!04%99T%!04%!00T*04%$
M0T%W04%!04%!04U%04%!1$)!04%!04%!04%"34%!04)'0T))04%104%!15IY
M65<Q<&)M9$1B,C5Z9$A*:&%7-3!C=T%!04%#-@T*04%!04%!04%!1DE!04%!
M3T%!04%:;6PT6E=25V%75C-5;6QN84A2,2\O+R]U9T%!04%!04%!0E-!04%!
M14%!04%'6G!E1U9K54=&>0T*6E<U,%5M;&YA2%16+W8O+W5G04%!04%!04%"
M4T%!04%$=T%!04=:<&5'5FM6;6QL9#!*=F1(4G9B8R\O+R\K-D%!04%!04%!
M049)00T*04%!4D%!04%:;6PT6E=245E82FQB;E)#8C-2,&(R,$)!04%!;6=%
M04%!04%!04-!06=!05EG04%!0D5!04%!04%!04%O045!04=)00T*04%!0T%!
M04%G9T%!04%104%!04%)049%05%!04%%049!04%!04%!04%!04%!04%!04%!
M2$%!04%!04%!04%!04%!04%!04%!44%500T*04%!04%!0T-!04%!0D%!04%.
M344T;F9I06=!04%!04%!3&]!04%!04%!04%59T%!04%904%!0FI95S5J6E=X
M4T%!04%"9T%!045.: T*8FU.;&)!14%!04%"04%!04%!04%!04%!04%!0D%!
M04%-9TU!04%!04%!1$M!04%!04%!04%.04%!04)I04%!04%G04%!2$E$04%!
M00T*04%!06M!34%!1TE!04%!0T%!04%W9TU!04%!04%!0S%!04%!0W=!04%-
M241!04%!04%!06I104%!1$U!04%"04)104%C9TU!04%!00T*04%!04)!04%9
M9T%!04%%04%!0E-!04%!0F=!04%%3FAB;4YL8D5!1D%!0D-"04%!04%!04%(
M24%!04%S04%!04Q!04%!04%!04%!0@T*04%!02\O+R\O+R\O+R\O+R\O+R\O
M+R\O+S%O04%!049!04%!;T%!04%"-$%!041+04%!04%!04%!3D%!04%#04)!
M04%K05%!04%!00T*04%!5$%!04%O9U%!04%!04%!1$%"04%!9&8O+R\K045!
M04)R+R\O+T%!54%!32\O+R\X9T)104%!44%!04IO0D%!04%!04%!9T%)00T*
M04=)04%!05)!04%!04%!04%+04)!04)I04%!04%G04%!24E!04%!14%!04%!
M0T%"4D%%04%!0W="9T%!04%!04%!04%!04%!04%!00T*0G=!04%!04%!04%!
M04%!04%!04%!3$%'04%!04%!04%G9T%!04%104%!1%1"3THS-&=)04%!04%!
M04,V04%!04%!04%!1DE!04%!4 T*04%!06,R5G5:16AL8DA"3EI83GI95V1L
M56=!04%!44%!04))6E=X=T%104%!045!04%!04%!04%!04%!04%%04%!07E!
M=T%!04%!00T*04UO04%!04%!04%!,$%!04%'24%!04%$04%!06-G34%!04%!
M04%#44%W04%99T%!04%)04%!1$-!=T%!04%!04%%<T)!04%,04%!00T*=V=-
M04%!04%!04-.04%!04UW04%!3$%'04%">4%W04%!04%!04QO04%!04%!04%!
M56=!04%!;T%!04)P8S!6=5E72G-:5U$V66=!00T*04%%04%!06=!04%!<T%9
M04%(241!04%!04%!04%!44%!1TE!04%!0D%!04%59T%!04%104%!0DE:5WAW
M<T%904%%245!04%!04%!00T*8V=!04%#=T%!04%S04%!04%!04%!045!04%$
M+R\O+R\O+R\O+R\O+R\O+R\O+R\O<%%!04%!54%!041R04%!04AG04%!36]!
M04%!00T*04%!03!!04%!24%%04%#44)!04%!04%!04)-04%!0VE"04%!04%!
M04%-045!04(Q+R\O+S1!44%!045!04%!04)104%Z+R\O+WE!1@T*04%!0D%!
M04$V9T%!04%!04%!04%!44%!9T%104%!64-#44)36E=.,%E7-6YB1U5!04%!
M07=G34%!04%!04%!3$%!04%#=T%!04U)1 T*04%!04%!04%!44%!04%%04%!
M07E!=T%!04%!04%-;T%!04%!04%!03!!04%!1TE!04%!0D%!04%C9TU!04%!
M04%!0U%!=T%!66=!00T*04%)04%!1$-!=T%!04%!04%!<T%!04%,04%!07=G
M34%!04%!04%$6$%104%044%!04M!0D%!0D-"04%!04%!04%(24%!04%S04%!
M00T*3$%!04%!04%!04%!04%!02\O+R\O+R\O+R\O+R\O+R\O+R\O+W=504%!
M049!04%!.$%!04%#34%!041+04%!04%!04%!3D%!04%":0T*04%!04%W04%!
M2$%#04%"04)104%S05E!04I!14%!04%!04%!17=!04%%649"04%$04%!05-7
M3G9B9T%!04%!04%!04%%04%!04$T0PT*15%"5%9%2E1A5S5N8D=6,&(R-5%C
M;3DT95%!04%!0V%!04%!04%!04%&24%!04%(04%!05)'.7-C1VAP8FQ)04%!
M05E!04%!4U<Q: T*6C)64UI7>&AD1VPR6E5:<&)'5DUB,DYH9$<Y>75G04%!
M04%!04%"4T%!04%"=T%!04=.,6-N2FQB;E)304%!045104%!14YV8FY2: T*
M85<U;&-L6G!:6&-U85=.=D1G269!1DY546M6-&1'5GEB;49S56U6>F(S5GE9
M,E9-85=*>5E82C552$IV94AK04%!04%59T%!04)!00T*04%":V(R>'=A1VQU
<6DA)=TU$575:1WAS04%!04%!/3TG*2DA#0H-"@``
`
end


Reply | Threaded
Open this post in threaded view
|

Re: Starting Helpfiles (chm) from a dolphin application via F1 what it the official way

Christoph J. Bachinger
In reply to this post by Christopher J. Demers
Hi Christopher,

> additionalAccelerators
>    ^#(#(#cmdFind 'CTRL+F'))
> ========
> I suspect (but can't test right now) that 'F1' could be used in place of
> 'CTRL+F', and #cmdFind is the symbol of the method you want to execute.
> Of course if you have a menu then you should use that to trigger help
> instead (F1 can be set as the accelerator in the UI).

I think you showed me the official way and as you suspected
additionalAccelerators
    ^#(#(#cmdHelp 'F1'))
worked fine in my shell class :) .

one disadvantage of this way is, that the help is not dependent to the
application subviews.

thanks
cjb


Reply | Threaded
Open this post in threaded view
|

Re: Starting Helpfiles (chm) from a dolphin application via F1 what it the official way

Christoph J. Bachinger
In reply to this post by Steve Alan Waring
Hi Steve,

> Another way to do this is to add support for WM_HELP. I have used this
> technique, and I find it easier than adding accelerators for F1.

I wouldn't say easier but more flexible (see my answer to cjdemers) and its
straight forward because hitting keys should be handled by the event system.
To look for the wm_help message was my first approach in figuring out how
this stuff works in dolphin. Finding nothing let me ask the question about
the official way.

Perhaps, when Andy and Blair will recover from the update stress of Dolphin
6, they will have a look at your package to include similar stuff in Dolphin
7 ;-).

Thanks for the package. I tested it in D6 and got an #onHelpRequested:
message after pressing F1 in my application. So it works for me.
But one question which comes from my little knowledge about the event system
and the windows help mechanism. Shouldn't there not be a trigger message in
the View #onHelpRequested: method like below
to have a hook for the different subpresenters.

onHelpRequested: aKeyEvent
    self presenter trigger: #helpRequested with: aKeyEvent.
    ^nil

cjb


Reply | Threaded
Open this post in threaded view
|

Re: Starting Helpfiles (chm) from a dolphin application via F1 what it the official way

Steve Alan Waring
Hi Christoph,

> I wouldn't say easier

Might have been the wrong word to use!

> but more flexible

Yes, for example you can piggy back the help system and get  "Context Help"
for free. I used a similar technique as the "Visual Object Finder" to locate
the view under a mouse click, and then do something like:
"theView sendMessage: WM_HELP wParam: 0 lParam: HELPINFO new
beHelpInfoWindow yourAddress.". Easy ... and FWIW: the reason the package is
named "ContextHelp".

> Perhaps, when Andy and Blair will recover from the update stress of
> Dolphin 6, they will have a look at your package to include similar stuff
> in Dolphin

Yes, when I saw your message, it reminded me that I had to implement this
myself. I agree that handling of WM_HELP would be a nice addition to the
base image, but I should have thought of that 4 months ago :)

> and the windows help mechanism. Shouldn't there not be a trigger message
> in the View #onHelpRequested: method like below

Yes, you are right, however I have never needed it so I never got around to
implementing it. Since Windows passes WM_HELP up the parent chain, there is
not as much need to wire up subpresenters for this event. Also, I think you
would need to stop window's default processing, which you can't do from an
event handler unless you pass a valueModel around ... so it could get tricky
... best left to Andy and Blair!

Steve
--
Steve Waring
[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: Starting Helpfiles (chm) from a dolphin application via F1 what it the official way

Christoph J. Bachinger
Hi Steve,

thanks for answer.

> so it could get tricky best left to Andy and Blair!

Is this an new inverse religion? Let the gurus work and the followers
mediate.

cjb