|
From: <arn...@us...> - 2008-04-24 13:03:26
|
Revision: 1177
http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=1177&view=rev
Author: arnetheduck
Date: 2008-04-24 06:02:58 -0700 (Thu, 24 Apr 2008)
Log Message:
-----------
simplify tooltip interface
Modified Paths:
--------------
dcplusplus/trunk/dwt/include/dwt/Policies.h
dcplusplus/trunk/dwt/include/dwt/aspects/AspectActivate.h
dcplusplus/trunk/dwt/include/dwt/aspects/AspectDragDrop.h
dcplusplus/trunk/dwt/include/dwt/widgets/CheckBox.h
dcplusplus/trunk/dwt/include/dwt/widgets/ToolTip.h
dcplusplus/trunk/dwt/src/widgets/ToolTip.cpp
dcplusplus/trunk/win32/AspectStatus.h
Property Changed:
----------------
dcplusplus/trunk/
Property changes on: dcplusplus/trunk
___________________________________________________________________
Name: bzr:revision-info
- timestamp: 2008-04-15 10:04:09.540999889 +0200
committer: Jacek Sieka <arn...@gm...>
properties:
branch-nick: dcplusplus
+ timestamp: 2008-04-15 14:45:40.223999977 +0200
committer: Jacek Sieka <arn...@gm...>
properties:
branch-nick: dcplusplus
Name: bzr:revision-id:v3-trunk1
- 1027 arn...@gm...-20080323183926-schknwnkgeo7ivdn
1028 zouzou123gen-20080323220411-r8usuc3qxwuh7zsn
1029 zouzou123gen-20080323221249-0su72zaj13e706mk
1030 arn...@gm...-20080324140623-muba1dl46m000o8c
1031 zouzou123gen-20080324141933-qbgr93ugpe0297m6
1032 arn...@gm...-20080324153706-siidja05n84i00b1
1033 arn...@gm...-20080324153823-lhn3awurnu77riln
1034 arn...@gm...-20080324165650-zapppziji67yf5a2
1035 zouzou123gen-20080324175936-4mqc2kh0lo5wtdu2
1036 zouzou123gen-20080325004602-6wdsoym95mjuhwd3
1037 arn...@gm...-20080325100659-8fqy6q65itmghlep
1038 zouzou123gen-20080325175216-s297sdiucukfvijh
1039 arn...@gm...-20080325210137-3dfqyoi8ykosy087
1040 arn...@gm...-20080325211747-nwwy1eb33r071sca
1041 arn...@gm...-20080326084110-qbselrjckku275xi
1042 zouzou123gen-20080326123631-35642mgbk2i4ty32
1043 zouzou123gen-20080326124345-f4xwn2d3ty8ubd6r
1044 arn...@gm...-20080326162031-il0nyms30w0mky43
1045 arn...@gm...-20080326164801-8dru8mjc06xgzjpv
1046 arn...@gm...-20080326170438-uzl2rx8fqnohak7g
1047 zouzou123gen-20080326172821-d6uqcbmfb0c6rwlv
1048 arn...@gm...-20080326213257-qlgdh7m2712p2l0q
1049 arn...@gm...-20080326214313-ktnoekgk3s0wmatz
1050 arn...@gm...-20080326215256-0j1iqrf286b9g7zf
1051 arn...@gm...-20080327082121-hoi22wh1gwjdfbyd
1052 arn...@gm...-20080327120639-um3tukdt374rwvgm
1053 zouzou123gen-20080327130703-6vtek6uxy3vua543
1054 arn...@gm...-20080327215831-dmg5mkufskabwkro
1055 arn...@gm...-20080327231459-cdztcv25alsuyqmf
1056 arn...@gm...-20080328085925-gceybsr53oml1p24
1057 arn...@gm...-20080328200512-1sjuu6bcnl2dyd2a
1058 arn...@gm...-20080328210347-bussqjrm5mfswh7o
1059 arn...@gm...-20080329055630-braiir1dskv7a4qm
1060 arn...@gm...-20080329061558-rck8dz60wpj3c5ja
1061 arn...@gm...-20080329081253-if6o5jn329mbzfpl
1062 arn...@gm...-20080329081619-cb4x930j8sp55cs0
1063 arn...@gm...-20080329103216-hgjzo7ra2zixbztd
1064 arn...@gm...-20080329124042-q3aw4iodmo5kafyp
1065 arn...@gm...-20080329124926-2je1z18p0272zpua
1066 arn...@gm...-20080329150901-ehj9t32en7eps2dp
1067 zouzou123gen-20080329153653-36xlvpik2ns9r84r
1068 zouzou123gen-20080329162703-51xr8hg073pg7wq5
1069 zouzou123gen-20080329234706-8ddipdqu0xeudkql
1070 arn...@gm...-20080330081232-ubqr1171ewalrd4q
1071 zouzou123gen-20080330131607-yppbs3mgyjef1cux
1072 zouzou123gen-20080330134835-yv1nogy77ib1uehd
1073 zouzou123gen-20080331124549-alyw7vugdn30piqy
1074 zouzou123gen-20080331135108-q8frtqsin5bosfzm
1075 zouzou123gen-20080331140757-u94q52yccl5lsifk
1076 zouzou123gen-20080331152513-ue1x5qhigcw51348
1077 arn...@gm...-20080331184436-a8g6chibmg8nswls
1078 arn...@gm...-20080331220648-81485k28qmwruwz6
1079 zouzou123gen-20080401081001-2yjn07cf8s5sxr3a
1080 zouzou123gen-20080401081247-f3p4hdjojnd460jw
1081 zouzou123gen-20080401084117-24a454g8o0x656kg
1082 zouzou123gen-20080401133146-jabb5i8870fg6f66
1083 zouzou123gen-20080401154610-mxdqoo5bksru93e6
1084 arn...@gm...-20080401185530-lqj4tflt5ldmx46f
1085 arn...@gm...-20080401212616-ffl7m0xm8gt15knk
1086 arn...@gm...-20080402084515-ofmnwihzv159jton
1087 arn...@gm...-20080402133105-y70soi38owzl76i9
1088 arn...@gm...-20080402142417-rn2dbkx19wfz3vae
1089 arn...@gm...-20080402144459-u3z3hqvl8aqjc4a0
1090 zouzou123gen-20080402145051-zi8tmvy8u3r2mzu8
1091 arn...@gm...-20080402152137-f397uz1yp9qjvfwh
1092 zouzou123gen-20080402170355-29wda40wk3cy7lu5
1093 arn...@gm...-20080402180628-ipos9li0c4bsmq1h
1094 arn...@gm...-20080402181235-s2a6f4ww4lzayl46
1095 arn...@gm...-20080402193851-6mu64vgep6tijith
1096 arn...@gm...-20080402203810-86zpxsx69q83zf3r
1097 arn...@gm...-20080402204331-so2e8n892o23pejr
1098 poy-20080402224153-225qylr2cfwhqrg7
1099 mrmikejj-20080403125112-o8polh8rkn62umyh
1100 arn...@gm...-20080403125139-8xub76j1xazhfxna
1101 po...@12...-20080403140544-13kockkjho883nb4
1102 po...@12...-20080403143012-bxghtoodiolugpbs
1103 arn...@gm...-20080403190809-bbi4bz5rfcvjnt20
1104 arn...@gm...-20080403205410-czxru1vcg1s4wcws
1105 arn...@gm...-20080403213124-54spdrwszgyimd90
1106 po...@12...-20080404002406-aj74x5tngi6mmmj1
1107 arn...@gm...-20080404122415-mjy07qzbaxyhagra
1108 po...@12...-20080404145445-84lyk5tyy3b3br14
1109 po...@12...-20080404231417-v4v8x7u3f0hm0ejc
1110 po...@12...-20080405001107-14d1ojjof8xhvcj8
1111 arn...@gm...-20080405071929-jmnrul21sxx04kky
1112 arn...@gm...-20080405080105-9qbda7be0pi7y1ai
1113 po...@12...-20080405154555-yuj2n5kyndfjlpsf
1114 po...@12...-20080405220250-8y09d0samsj8ja94
1115 po...@12...-20080406134101-4860ytb61sbu3yhg
1116 po...@12...-20080406155849-2wzxzuzs5m8zpk0g
1117 po...@12...-20080406164835-bv5dydhm3qqydsty
1118 arn...@gm...-20080406210237-c7tyfgiz2sjgv044
1119 po...@12...-20080407114423-4yajg1rffidq76bj
1120 arn...@gm...-20080407194826-c42t4bjzw4vflejn
1121 po...@12...-20080407214303-o7ul1bvcn6gvaoc9
1122 po...@12...-20080407220647-r7f3em92til5j67s
1123 po...@12...-20080408212439-54t3bqlhvw1nu4xc
1124 arn...@gm...-20080409193708-y6erfzwrcb1seet3
1125 arn...@gm...-20080409195827-ub6t2s3wdf28nfpz
1126 po...@12...-20080409215055-1zmqhhm2859878c1
1127 arn...@gm...-20080410102447-l4es4cbukkqwcnpc
1128 arn...@gm...-20080410214118-b70g50tl27cq9q29
1129 arn...@gm...-20080411074730-w1pu78qigtx87lx3
1130 arn...@gm...-20080411090724-kwdj9pg9hrv1xhwb
1131 po...@12...-20080411153057-tn7zhxqk0z7ceref
1132 arn...@gm...-20080411200946-ierqlg8v9vzj18n2
1133 arn...@gm...-20080411201718-ecshulwd7ic0wdci
1134 arn...@gm...-20080411204047-jc9vzcsf32j38dvc
1135 arn...@gm...-20080411205445-ojuz2a29yq8ww37j
1136 arn...@gm...-20080411214746-r420xmdgo35pkweb
1137 po...@12...-20080412010723-cibh8r0itlzqyt3f
1138 arn...@gm...-20080412200504-6qfeqnsghxgrk775
1139 arn...@gm...-20080413095435-2pkfb407hk8j54te
1140 arn...@gm...-20080413133927-zw2tpz8o8p3izyix
1141 arn...@gm...-20080413165025-ug342rxtq4blxck5
1142 arn...@gm...-20080413182618-6ihabn0tii6gb2m2
1143 arn...@gm...-20080413184517-9p08tedakta1h762
1144 arn...@gm...-20080413193655-kc98lx7kpzo42q43
1145 arn...@gm...-20080414132947-pguvkuzvyadukssc
1146 arn...@gm...-20080414133544-pxwxm9kcvw0k0vf3
1147 po...@12...-20080414174341-hw1im7ysymscpiq0
1148 arn...@gm...-20080414181459-5gu852lneflgf5d6
1149 po...@12...-20080414205719-d80e75fsl8zzi6je
1150 arn...@gm...-20080414211616-835ve71r1qdlbhb4
1151 arn...@gm...-20080415080409-4cid9q7opng8ijav
+ 1027 arn...@gm...-20080323183926-schknwnkgeo7ivdn
1028 zouzou123gen-20080323220411-r8usuc3qxwuh7zsn
1029 zouzou123gen-20080323221249-0su72zaj13e706mk
1030 arn...@gm...-20080324140623-muba1dl46m000o8c
1031 zouzou123gen-20080324141933-qbgr93ugpe0297m6
1032 arn...@gm...-20080324153706-siidja05n84i00b1
1033 arn...@gm...-20080324153823-lhn3awurnu77riln
1034 arn...@gm...-20080324165650-zapppziji67yf5a2
1035 zouzou123gen-20080324175936-4mqc2kh0lo5wtdu2
1036 zouzou123gen-20080325004602-6wdsoym95mjuhwd3
1037 arn...@gm...-20080325100659-8fqy6q65itmghlep
1038 zouzou123gen-20080325175216-s297sdiucukfvijh
1039 arn...@gm...-20080325210137-3dfqyoi8ykosy087
1040 arn...@gm...-20080325211747-nwwy1eb33r071sca
1041 arn...@gm...-20080326084110-qbselrjckku275xi
1042 zouzou123gen-20080326123631-35642mgbk2i4ty32
1043 zouzou123gen-20080326124345-f4xwn2d3ty8ubd6r
1044 arn...@gm...-20080326162031-il0nyms30w0mky43
1045 arn...@gm...-20080326164801-8dru8mjc06xgzjpv
1046 arn...@gm...-20080326170438-uzl2rx8fqnohak7g
1047 zouzou123gen-20080326172821-d6uqcbmfb0c6rwlv
1048 arn...@gm...-20080326213257-qlgdh7m2712p2l0q
1049 arn...@gm...-20080326214313-ktnoekgk3s0wmatz
1050 arn...@gm...-20080326215256-0j1iqrf286b9g7zf
1051 arn...@gm...-20080327082121-hoi22wh1gwjdfbyd
1052 arn...@gm...-20080327120639-um3tukdt374rwvgm
1053 zouzou123gen-20080327130703-6vtek6uxy3vua543
1054 arn...@gm...-20080327215831-dmg5mkufskabwkro
1055 arn...@gm...-20080327231459-cdztcv25alsuyqmf
1056 arn...@gm...-20080328085925-gceybsr53oml1p24
1057 arn...@gm...-20080328200512-1sjuu6bcnl2dyd2a
1058 arn...@gm...-20080328210347-bussqjrm5mfswh7o
1059 arn...@gm...-20080329055630-braiir1dskv7a4qm
1060 arn...@gm...-20080329061558-rck8dz60wpj3c5ja
1061 arn...@gm...-20080329081253-if6o5jn329mbzfpl
1062 arn...@gm...-20080329081619-cb4x930j8sp55cs0
1063 arn...@gm...-20080329103216-hgjzo7ra2zixbztd
1064 arn...@gm...-20080329124042-q3aw4iodmo5kafyp
1065 arn...@gm...-20080329124926-2je1z18p0272zpua
1066 arn...@gm...-20080329150901-ehj9t32en7eps2dp
1067 zouzou123gen-20080329153653-36xlvpik2ns9r84r
1068 zouzou123gen-20080329162703-51xr8hg073pg7wq5
1069 zouzou123gen-20080329234706-8ddipdqu0xeudkql
1070 arn...@gm...-20080330081232-ubqr1171ewalrd4q
1071 zouzou123gen-20080330131607-yppbs3mgyjef1cux
1072 zouzou123gen-20080330134835-yv1nogy77ib1uehd
1073 zouzou123gen-20080331124549-alyw7vugdn30piqy
1074 zouzou123gen-20080331135108-q8frtqsin5bosfzm
1075 zouzou123gen-20080331140757-u94q52yccl5lsifk
1076 zouzou123gen-20080331152513-ue1x5qhigcw51348
1077 arn...@gm...-20080331184436-a8g6chibmg8nswls
1078 arn...@gm...-20080331220648-81485k28qmwruwz6
1079 zouzou123gen-20080401081001-2yjn07cf8s5sxr3a
1080 zouzou123gen-20080401081247-f3p4hdjojnd460jw
1081 zouzou123gen-20080401084117-24a454g8o0x656kg
1082 zouzou123gen-20080401133146-jabb5i8870fg6f66
1083 zouzou123gen-20080401154610-mxdqoo5bksru93e6
1084 arn...@gm...-20080401185530-lqj4tflt5ldmx46f
1085 arn...@gm...-20080401212616-ffl7m0xm8gt15knk
1086 arn...@gm...-20080402084515-ofmnwihzv159jton
1087 arn...@gm...-20080402133105-y70soi38owzl76i9
1088 arn...@gm...-20080402142417-rn2dbkx19wfz3vae
1089 arn...@gm...-20080402144459-u3z3hqvl8aqjc4a0
1090 zouzou123gen-20080402145051-zi8tmvy8u3r2mzu8
1091 arn...@gm...-20080402152137-f397uz1yp9qjvfwh
1092 zouzou123gen-20080402170355-29wda40wk3cy7lu5
1093 arn...@gm...-20080402180628-ipos9li0c4bsmq1h
1094 arn...@gm...-20080402181235-s2a6f4ww4lzayl46
1095 arn...@gm...-20080402193851-6mu64vgep6tijith
1096 arn...@gm...-20080402203810-86zpxsx69q83zf3r
1097 arn...@gm...-20080402204331-so2e8n892o23pejr
1098 poy-20080402224153-225qylr2cfwhqrg7
1099 mrmikejj-20080403125112-o8polh8rkn62umyh
1100 arn...@gm...-20080403125139-8xub76j1xazhfxna
1101 po...@12...-20080403140544-13kockkjho883nb4
1102 po...@12...-20080403143012-bxghtoodiolugpbs
1103 arn...@gm...-20080403190809-bbi4bz5rfcvjnt20
1104 arn...@gm...-20080403205410-czxru1vcg1s4wcws
1105 arn...@gm...-20080403213124-54spdrwszgyimd90
1106 po...@12...-20080404002406-aj74x5tngi6mmmj1
1107 arn...@gm...-20080404122415-mjy07qzbaxyhagra
1108 po...@12...-20080404145445-84lyk5tyy3b3br14
1109 po...@12...-20080404231417-v4v8x7u3f0hm0ejc
1110 po...@12...-20080405001107-14d1ojjof8xhvcj8
1111 arn...@gm...-20080405071929-jmnrul21sxx04kky
1112 arn...@gm...-20080405080105-9qbda7be0pi7y1ai
1113 po...@12...-20080405154555-yuj2n5kyndfjlpsf
1114 po...@12...-20080405220250-8y09d0samsj8ja94
1115 po...@12...-20080406134101-4860ytb61sbu3yhg
1116 po...@12...-20080406155849-2wzxzuzs5m8zpk0g
1117 po...@12...-20080406164835-bv5dydhm3qqydsty
1118 arn...@gm...-20080406210237-c7tyfgiz2sjgv044
1119 po...@12...-20080407114423-4yajg1rffidq76bj
1120 arn...@gm...-20080407194826-c42t4bjzw4vflejn
1121 po...@12...-20080407214303-o7ul1bvcn6gvaoc9
1122 po...@12...-20080407220647-r7f3em92til5j67s
1123 po...@12...-20080408212439-54t3bqlhvw1nu4xc
1124 arn...@gm...-20080409193708-y6erfzwrcb1seet3
1125 arn...@gm...-20080409195827-ub6t2s3wdf28nfpz
1126 po...@12...-20080409215055-1zmqhhm2859878c1
1127 arn...@gm...-20080410102447-l4es4cbukkqwcnpc
1128 arn...@gm...-20080410214118-b70g50tl27cq9q29
1129 arn...@gm...-20080411074730-w1pu78qigtx87lx3
1130 arn...@gm...-20080411090724-kwdj9pg9hrv1xhwb
1131 po...@12...-20080411153057-tn7zhxqk0z7ceref
1132 arn...@gm...-20080411200946-ierqlg8v9vzj18n2
1133 arn...@gm...-20080411201718-ecshulwd7ic0wdci
1134 arn...@gm...-20080411204047-jc9vzcsf32j38dvc
1135 arn...@gm...-20080411205445-ojuz2a29yq8ww37j
1136 arn...@gm...-20080411214746-r420xmdgo35pkweb
1137 po...@12...-20080412010723-cibh8r0itlzqyt3f
1138 arn...@gm...-20080412200504-6qfeqnsghxgrk775
1139 arn...@gm...-20080413095435-2pkfb407hk8j54te
1140 arn...@gm...-20080413133927-zw2tpz8o8p3izyix
1141 arn...@gm...-20080413165025-ug342rxtq4blxck5
1142 arn...@gm...-20080413182618-6ihabn0tii6gb2m2
1143 arn...@gm...-20080413184517-9p08tedakta1h762
1144 arn...@gm...-20080413193655-kc98lx7kpzo42q43
1145 arn...@gm...-20080414132947-pguvkuzvyadukssc
1146 arn...@gm...-20080414133544-pxwxm9kcvw0k0vf3
1147 po...@12...-20080414174341-hw1im7ysymscpiq0
1148 arn...@gm...-20080414181459-5gu852lneflgf5d6
1149 po...@12...-20080414205719-d80e75fsl8zzi6je
1150 arn...@gm...-20080414211616-835ve71r1qdlbhb4
1151 arn...@gm...-20080415080409-4cid9q7opng8ijav
1152 arn...@gm...-20080415124540-roduj23x442jeefn
Modified: dcplusplus/trunk/dwt/include/dwt/Policies.h
===================================================================
--- dcplusplus/trunk/dwt/include/dwt/Policies.h 2008-04-24 13:00:18 UTC (rev 1176)
+++ dcplusplus/trunk/dwt/include/dwt/Policies.h 2008-04-24 13:02:58 UTC (rev 1177)
@@ -255,9 +255,6 @@
#ifndef WINCE // MDI Widgets doesn't exist on CE
/// Aspect classes for a MDI Child Container Widget
-/** Used as the third template argument to WidgetFactory if you're creating an MDI
- * Child Container Widget
- */
class MDIChild
: public Widget
{
Modified: dcplusplus/trunk/dwt/include/dwt/aspects/AspectActivate.h
===================================================================
--- dcplusplus/trunk/dwt/include/dwt/aspects/AspectActivate.h 2008-04-24 13:00:18 UTC (rev 1176)
+++ dcplusplus/trunk/dwt/include/dwt/aspects/AspectActivate.h 2008-04-24 13:02:58 UTC (rev 1177)
@@ -51,6 +51,9 @@
class AspectActivate
{
WidgetType& W() { return *static_cast<WidgetType*>(this); }
+ const WidgetType& W() const { return *static_cast<const WidgetType*>(this); }
+
+ HWND H() const { return W().handle(); }
static bool isActive(const MSG& msg) {
return LOWORD( msg.wParam ) == WA_ACTIVE || LOWORD( msg.wParam ) == WA_CLICKACTIVE;
@@ -94,13 +97,13 @@
template< class WidgetType >
void AspectActivate< WidgetType >::setActive()
{
- ::SetActiveWindow( static_cast< WidgetType * >( this )->handle() );
+ ::SetActiveWindow( H() );
}
template< class WidgetType >
bool AspectActivate< WidgetType >::getActive() const
{
- return ::GetActiveWindow() == static_cast< const WidgetType * >( this )->handle();
+ return ::GetActiveWindow() == H();
}
}
Modified: dcplusplus/trunk/dwt/include/dwt/aspects/AspectDragDrop.h
===================================================================
--- dcplusplus/trunk/dwt/include/dwt/aspects/AspectDragDrop.h 2008-04-24 13:00:18 UTC (rev 1176)
+++ dcplusplus/trunk/dwt/include/dwt/aspects/AspectDragDrop.h 2008-04-24 13:02:58 UTC (rev 1177)
@@ -52,6 +52,11 @@
template< class WidgetType >
class AspectDragDrop
{
+ WidgetType& W() { return *static_cast<WidgetType*>(this); }
+ const WidgetType& W() const { return *static_cast<const WidgetType*>(this); }
+
+ HWND H() const { return W().handle(); }
+
struct Dispatcher {
typedef std::tr1::function<void (std::vector< tstring>, Point )> F;
@@ -99,9 +104,7 @@
* }
*/
void onDragDrop(const typename Dispatcher::F& f) {
- static_cast<WidgetType*>(this)->addCallback(
- Message( WM_DROPFILES ), Dispatcher(f)
- );
+ W().addCallback(Message( WM_DROPFILES ), Dispatcher(f));
}
/// Setup Drag & Drop for this dialog
/** This setup the ability to receive an WM_DROPFILES msg if you drop a file on dialog
@@ -117,7 +120,7 @@
template< class WidgetType >
void AspectDragDrop< WidgetType >::setDragAcceptFiles(bool accept)
{
- DragAcceptFiles(static_cast< WidgetType * >( this )->handle(),accept);
+ DragAcceptFiles(H(), accept);
}
}
Modified: dcplusplus/trunk/dwt/include/dwt/widgets/CheckBox.h
===================================================================
--- dcplusplus/trunk/dwt/include/dwt/widgets/CheckBox.h 2008-04-24 13:00:18 UTC (rev 1176)
+++ dcplusplus/trunk/dwt/include/dwt/widgets/CheckBox.h 2008-04-24 13:02:58 UTC (rev 1177)
@@ -101,7 +101,7 @@
inline void CheckBox::setChecked( bool value )
{
- this->sendMessage(BM_SETCHECK, static_cast< WPARAM >( value ? BST_CHECKED : BST_UNCHECKED ) );
+ this->sendMessage(BM_SETCHECK, value ? BST_CHECKED : BST_UNCHECKED);
}
inline bool CheckBox::getChecked()
Modified: dcplusplus/trunk/dwt/include/dwt/widgets/ToolTip.h
===================================================================
--- dcplusplus/trunk/dwt/include/dwt/widgets/ToolTip.h 2008-04-24 13:00:18 UTC (rev 1176)
+++ dcplusplus/trunk/dwt/include/dwt/widgets/ToolTip.h 2008-04-24 13:02:58 UTC (rev 1177)
@@ -52,16 +52,19 @@
typedef MessageMap< Policies::Subclassed > BaseType;
friend class WidgetCreator< ToolTip >;
- struct Dispatcher
- {
- typedef std::tr1::function<const tstring& ()> F;
+ struct Dispatcher {
+ typedef std::tr1::function<void (tstring&)> F;
Dispatcher(const F& f_) : f(f_) { }
bool operator()(const MSG& msg, LRESULT& ret) {
LPNMTTDISPINFO ttdi = reinterpret_cast< LPNMTTDISPINFO >( msg.lParam );
- ttdi->lpszText = const_cast<LPTSTR>(f().c_str());
- return 0;
+ ToolTip* tip = hwnd_cast<ToolTip*>(ttdi->hdr.hwndFrom);
+ if(tip) {
+ f(tip->text);
+ ttdi->lpszText = const_cast<LPTSTR>(tip->text.c_str());
+ }
+ return true;
}
F f;
@@ -72,7 +75,7 @@
typedef ToolTip ThisType;
/// Object type
- typedef ThisType * ObjectType;
+ typedef ThisType* ObjectType;
struct Seed : public BaseType::Seed {
typedef ThisType WidgetType;
@@ -86,6 +89,8 @@
void setTool(Widget* widget, const Dispatcher::F& callback);
void setMaxTipWidth(int width);
+
+ void onGetTip(const Dispatcher::F& f);
/// Actually creates the Toolbar
/** You should call WidgetFactory::createToolbar if you instantiate class
@@ -102,6 +107,8 @@
// is supposed to do so when parent is killed...
virtual ~ToolTip()
{}
+
+ tstring text;
};
inline ToolTip::ToolTip( Widget * parent )
@@ -115,6 +122,10 @@
sendMessage(TTM_SETMAXTIPWIDTH, 0, static_cast<LPARAM>(width));
}
+inline void ToolTip::onGetTip(const Dispatcher::F& f) {
+ setCallback(Message(WM_NOTIFY, TTN_GETDISPINFO), Dispatcher(f));
}
+}
+
#endif /*ToolTip_H_*/
Modified: dcplusplus/trunk/dwt/src/widgets/ToolTip.cpp
===================================================================
--- dcplusplus/trunk/dwt/src/widgets/ToolTip.cpp 2008-04-24 13:00:18 UTC (rev 1176)
+++ dcplusplus/trunk/dwt/src/widgets/ToolTip.cpp 2008-04-24 13:02:58 UTC (rev 1177)
@@ -51,9 +51,7 @@
}
void ToolTip::setTool(Widget* widget, const Dispatcher::F& f) {
- addCallback(
- Message(WM_NOTIFY, TTN_GETDISPINFO), Dispatcher(f)
- );
+ onGetTip(f);
TOOLINFO ti = { sizeof(TOOLINFO) };
ti.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
Modified: dcplusplus/trunk/win32/AspectStatus.h
===================================================================
--- dcplusplus/trunk/win32/AspectStatus.h 2008-04-24 13:00:18 UTC (rev 1176)
+++ dcplusplus/trunk/win32/AspectStatus.h 2008-04-24 13:02:58 UTC (rev 1177)
@@ -42,7 +42,7 @@
status = static_cast<WidgetType*>(this)->addChild(cs);
statusTip = static_cast<WidgetType*>(this)->addChild(dwt::ToolTip::Seed());
- statusTip->setTool(status, std::tr1::bind(&ThisType::handleToolTip, this));
+ statusTip->setTool(status, std::tr1::bind(&ThisType::handleToolTip, this, _1));
}
void setStatus(int s, const tstring& text) {
@@ -75,7 +75,6 @@
statusSizes[WidgetType::STATUS_STATUS] = sz.x - std::accumulate(statusSizes.begin(), statusSizes.end(), 0);
status->setSections(statusSizes);
- statusTip->setMaxTipWidth(statusSizes[WidgetType::STATUS_STATUS]);
}
void mapWidget(int s, dwt::Widget* widget) {
@@ -93,7 +92,6 @@
dwt::Application::FilterIter filterIter;
dwt::ToolTipPtr statusTip;
TStringList lastLines;
- tstring tip;
enum { MAX_LINES = 10 };
@@ -102,7 +100,8 @@
return false;
}
- const tstring& handleToolTip() {
+ void handleToolTip(tstring& tip) {
+ statusTip->setMaxTipWidth(statusSizes[WidgetType::STATUS_STATUS]);
tip.clear();
for(size_t i = 0; i < lastLines.size(); ++i) {
if(i > 0) {
@@ -110,7 +109,6 @@
}
tip += lastLines[i];
}
- return tip;
}
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|