HDR*PowerBuilder0600Žp"5FRE*˙˙˙˙˙˙˙˙˙€NOD*ś źENT*0600†× Şp"5menu_techniques.aplENT*0600…Şp"5menu_techniques.sraENT*0600QŞp"5menu_techniques.praENT*06000‘<Őv"5m_menu_with_toolbar.menENT*0600ŢŐv"5m_menu_with_toolbar.srmENT*0600n˛Mm"5 w_test.winENT*0600€BMm"5 w_test.srwDAT*öforward global transaction sqlca global dynamicdescriptionarea sqlda global dynamicstagingarea sqlsa global error error global message message end forward global type menu_techniques from application end type global menu_techniques menu_techniques on menu_techniques.create appname = "menu_techniques" message = create message sqlca = create transaction sqlda = create dynamicdescriptionarea sqlsa = create dynamicstagingarea error = create error end on on menu_techniques.destDAT*roy destroy( sqlca ) destroy( sqlda ) destroy( sqlsa ) destroy( error ) destroy( message ) end on event open;open(w_test) end event DAT*Q$ ¤í ˆ °˙H°ówXĘów˙˙˙˙ ˆ  śđC ˆ  Œî > ¨ŠÁđC0ű+j+\@ \‘ř+¸ŒîuîRm´ö˙"Arialö˙"Arialö˙"Arialö˙"Arial˙˙˙DAT*öforward global type m_menu_with_toolbar from menu end type type m_test from menu within m_menu_with_toolbar end type type m_abc from menu within m_test end type type m_cbs from menu within m_test end type type m_item3 from menu within m_test end type type m_item4 from menu within m_test end type type m_- from menu within m_test end type type m_more from menu within m_test end type type m_onemore from menu within m_test end type type m_-1 from menu within m_test end type type mDAT*ö_disableditem from menu within m_test end type type m_displayeddown from menu within m_test end type type m_test from menu within m_menu_with_toolbar m_abc m_abc m_cbs m_cbs m_item3 m_item3 m_item4 m_item4 m_- m_- m_more m_more m_onemore m_onemore m_-1 m_-1 m_disableditem m_disableditem m_displayeddown m_displayeddown end type end forward global type m_menu_with_toolbar from menu m_test m_test end type global m_menu_with_toolbar m_menu_with_toolbar type variables menu im_DAT*ölast_selected end variables forward prototypes public subroutine mf_unselect () public subroutine mf_select (menu am_menuitem) end prototypes public subroutine mf_unselect ();if isValid(im_last_selected) then if im_last_selected.tag <> "" then im_last_selected.ToolBarItemName = im_last_selected.tag end if end if end subroutine public subroutine mf_select (menu am_menuitem);// find out what was highlighted: menu item or toolbar item uint lui_flags, MF_HILITE = 128 lui_flagDAT*ös = IntHigh(Message.WordParm) // because PB does not support Bitwise operations like // lui_flags = lui_flags AND MF_HILITE use different method lui_flags -= mod(lui_flags, MF_HILITE) if mod(lui_flags, MF_HILITE * 2) > 0 then return // menu item text is selected if am_menuitem.ToolBarItemDown then return // ignore icons that are displayed down if am_menuitem.tag = "" then am_menuitem.tag = am_menuitem.ToolBarItemName end if im_last_selected = am_menuitem am_menuitem.ToolBarItemDAT* öName = am_menuitem.ToolBarItemDownName end subroutine on m_menu_with_toolbar.create m_menu_with_toolbar=this this.m_test=create m_test this.Item[]={this.m_test} end on on m_menu_with_toolbar.destroy destroy(this.m_test) end on type m_test from menu within m_menu_with_toolbar m_abc m_abc m_cbs m_cbs m_item3 m_item3 m_item4 m_item4 m_- m_- m_more m_more m_onemore m_onemore m_-1 m_-1 m_disableditem m_disableditem m_displayeddown m_displayeddown end type on m_test.creatDAT*"öe this.Text="&File" this.m_abc=create m_abc this.m_cbs=create m_cbs this.m_item3=create m_item3 this.m_item4=create m_item4 this.m_-=create m_- this.m_more=create m_more this.m_onemore=create m_onemore this.m_-1=create m_-1 this.m_disableditem=create m_disableditem this.m_displayeddown=create m_displayeddown this.Item[]={this.m_abc, & this.m_cbs, & this.m_item3, & this.m_item4, & this.m_-, & this.m_more, & this.m_onemore, & this.m_-1, & this.m_disableditem, & this.m_displayeddDAT*$öown} end on on m_test.destroy destroy(this.m_abc) destroy(this.m_cbs) destroy(this.m_item3) destroy(this.m_item4) destroy(this.m_-) destroy(this.m_more) destroy(this.m_onemore) destroy(this.m_-1) destroy(this.m_disableditem) destroy(this.m_displayeddown) end on type m_abc from menu within m_test end type on m_abc.create this.Text="Item 1" this.Microhelp="Microhelp for Item 1" this.ToolBarItemDownName="DataWindow5!" this.ToolBarItemName="DataWindow!" this.ToolBarItemTexDAT*&öt="Item 1" end on event selected;mf_select(this) end event type m_cbs from menu within m_test end type event selected;mf_select(this) end event on m_cbs.create this.Text="Item 2" this.Microhelp="Microhelp for Item 2" this.ToolBarItemDownName="Custom027!" this.ToolBarItemName="Custom026!" this.ToolBarItemText="Item 1" end on type m_item3 from menu within m_test end type on m_item3.create this.Text="Item 3" this.Microhelp="Microhelp for Item 3" this.ToolBarItemDowDAT*(önName="Destination5!" this.ToolBarItemName="DataPipeline!" this.ToolBarItemText="Item 3" end on event selected;mf_select(this) end event type m_item4 from menu within m_test end type on m_item4.create this.Text="Item 4" this.Microhelp="Microhelp for Item 4" this.ToolBarItemDownName="Custom050!" this.ToolBarItemName="Custom039!" this.ToolBarItemText="Item 4" end on event selected;mf_select(this) end event type m_- from menu within m_test end type on m_-.create thDAT**öis.Text="-" end on type m_more from menu within m_test end type on m_more.create this.Text="more" this.Microhelp="Microhelp for more" this.ToolBarItemDownName="RunWindow!" this.ToolBarItemName="Window!" this.ToolBarItemText="More" end on event selected;mf_select(this) end event type m_onemore from menu within m_test end type on m_onemore.create this.Text="Debug" this.Microhelp="Microhelp for Debug" this.ToolBarItemDownName="Custom089!" this.ToolBarItemName="Debug!"DAT*,ö this.ToolBarItemText="Debug" end on event selected;mf_select(this) end event type m_-1 from menu within m_test end type on m_-1.create this.Text="-" end on type m_disableditem from menu within m_test end type event selected;mf_select(this) end event on m_disableditem.create this.Text="Disabled Item" this.Microhelp="Microhelp for Disabled Item" this.ToolBarItemDownName="UserObject!" this.ToolBarItemName="UserObject5!" this.ToolBarItemText="Disabled" this.EnabledDAT*.ö=false end on type m_displayeddown from menu within m_test end type on m_displayeddown.create this.Text="Displayed Down" this.Microhelp="Microhelp for Displayed Down" this.ToolBarItemDownName="LibraryList5!" this.ToolBarItemName="QueryLibraryList5!" this.ToolBarItemText="Icon Down" this.ToolBarItemDown=true end on event selected;mf_select(this) end event event clicked;if this.ToolBarItemDown then //this.ToolBarItemDown = False this.ToolBarItemText = "Icon Down" else DAT*V //this.ToolBarItemDown = True this.ToolBarItemText = "Icon Up" end if end event DAT*2örŽ@Ôv"5Őv"5Ž@Ž@Ž@€‰n@n@ 9@9@08@8@=^@^@Gh@h@Ui@i@aj@j@uk@k@}@}@‘‹@‹@ž@@ŤŽ@Ž@ş\@\@€Řt@t@Ř€ŕĐm_menu_with_toolbarmenuwindowmenumergeoptionmenuitemtypestructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobject€ p5€ DAT*4öX>€ p5€ X>€ p5€ X>€ p5€ X>€ p5€ X>€ p5€ X>€ p5€ X>DAT*6ö€ p5€ X>€ p5€ X>€ p5€ X>€ p5€ X>€ p5€ X>€ p5€ X>messageČDAT*8öđ@h¸ŕ0X€¨Đř Hp˜Ŕč8`ˆ°2m_menu_with_toolbar˙˙ € Fmf_unselectam_menuitemmf_select+create+destroy+selected+clickedQ ˙˙€QCmenu. x3_initsrcmenum_menu_with_toolbarwindowmenumergeoptionmenuitemtypestructuremailrecipientenvironmentmailDAT*:öfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjectm_testm_abcm_cbsm_item3m_item4m_-m_morem_onemorem_-1m_disableditemm_displayeddownmessage0˙˙˙˙ @˙˙˙˙"@˙˙)@˙˙9@˙˙F@˙˙P@˙˙^@˙˙j@˙˙~ @˙˙Š @˙˙š @˙˙§ @˙˙´ @DAT*<ö˙˙Ă@˙˙Ď˙˙Ö˙˙Ü˙˙â˙˙ę˙˙ň˙˙ö˙˙ý ˙˙ ˙˙  ˙˙ ˙˙+@đ…€á€€€€€€€€€€č €€€Ŕ˙˙DAT*>ö€€˙˙€€˙˙€€˙˙€€˙˙€€˙˙€€˙˙€€˙˙€€˙˙€€˙˙€€˙˙€€˙˙r$•l$$$8,şl0$8@$H$6…DAT*@ö8dP8im_last_selected€€˙˙‹€˙˙ €˙˙  $ 0 8 @ H ,$;~BBÔBZ‘~2BaBÔ2Ćp$ˆ$8ŞĘ$$6…@‡HP$6… D p ˆŚĘŢd(am_menuitemluiDAT*Bö_flagsmf_hilitemessageP˙˙ €˙˙  ˙˙€ ˙˙ @€X@˙˙˙˙˙˙˙˙˙˙ im_last_selected,€˙˙ ˙˙     $ @ H P J‡*‡ ($˛€ |  d0 m_test€€˙˙itemŽ@€  ( $dDAT*Döm_test€ €€€€2 'mf_unselectmf_select+create+destroyP˙˙Ŕ˙˙ Ŕ˙˙Ŕ˙˙Ŕ2 m_testim_last_selected(˙˙ €˙˙€]  @ř€1€ € @   €€ €€˙˙˙˙€˙˙DAT*Fö˙˙€˙˙"˙˙˙˙€˙˙*˙˙˙˙€˙˙Œ 80…*$‡4*<‡L*T‡d*l‡x*€‡*˜‡Ź*´‡Ä*̇ä*ě‡* ‡$$,$4$<$D$L$T$\DAT*Hö$d$l$˛€ |0F\rˆ ž ´ Ę ŕ ödttext&Filem_abc€€˙˙m_cbs,€,€˙˙m_item3D€D€˙˙m_item4\€\€˙˙m_-t€t€˙˙m_moreˆ€ˆ€˙˙m_onemore € €˙˙m_-1Ąź€ź€˙˙m_disableditemÔ€Ô€˙˙m_displayeddownô€ô€˙˙itemŽ@€,€D€\€t€ˆ€ €ź€Ô€ô€ DAT*Jö $4 <L Td lx € ˜Ź ´Ä Ěä ě   $ , 4 < D L T \ d l ’ $$($8$D$T$h$x$$¨$*8FT b p ~d°Pm_abc€m_cbs€m_item3 DAT*Lö€m_item40€m_-@€m_moreL€m_onemore\€m_-1p€m_disableditem€€m_displayeddown˜€  ( 8 D T h x  ¨ €€2 +create+destroy(˙˙Ŕ˙˙Ŕ2 Um_abcm_cbsm_item3m_item4m_-m_morem_onemorem_-1m_disableditemm_displayeddownČ˙˙ €˙˙ €˙˙ €˙˙ €˙˙ €DAT*Nö˙˙ €˙˙' €˙˙1 €˙˙6 €˙˙E €]  @ €1€ € @   €€ € € € € € € € € € €"˙˙˙˙€˙˙*˙˙˙˙€˙˙ˆ80…$8,0…DAT*PöX8`0…€8ˆ0…¤80…4NhdŹ(textItem 1microhelpƒ Microhelp for Item 1toolbaritemdownnameA DataWindow5!toolbaritemnamem DataWindow!toolbaritemtext”  $ X € ¤ Ň) 8dmf_selectŔ €€2 +create+selected(˙˙:ŔöŁ˙˙DAT*RöŔ2 ]  @H€1€ € @   €€"˙˙˙˙€˙˙3˙˙˙˙€˙˙Ň) 8dmf_selectolŔ ˆ80…$8,0…X8`0…|8„0… DAT*Tö8¨0…4NhdŻ(textItem 2microhelp Microhelp for Item 2toolbaritemdownnameA Custom027!toolbaritemnamek Custom026!toolbaritemtext Item 1 $ X |   €€2 +selected+create(˙˙Ŕ˙˙ Ŕ2 ]  @p€1€ € @   DAT*Vö€€3˙˙˙˙€˙˙"˙˙˙˙€˙˙ˆ80…$8,0…X8`0…€8ˆ0…¨80…4Nhd°(text\@Item 3microhelp˙ Microhelp for Item 3toolbaritemdownname\@A Destination5!toolbaritemnamen DataPipeline!toolbaritemtextDAT*Xö–  $ X € ¨ Ň) 8dmf_selectŔ €€2 +create+selected(˙˙Ŕ˙˙Ŕ2 ]  @˜€1€ € @   €€"˙˙˙˙€˙˙3˙˙˙˙€˙˙DAT*Zöˆ80…$8,0…X8`0…|8„0… 80…4Nhd¨(text‰Item 4microhelp˙ Microhelp for Item 4toolbaritemdownname\@A Custom050!toolbaritemnamek Custom039!toolbaritemtext  $ X |   Ň) 8dmf_selectŔ €DAT*\ö€2 +create+selected(˙˙Ŕ˙˙Ŕ2 ]  @Ŕ€1€ € @   €€"˙˙˙˙€˙˙3˙˙˙˙€˙˙ 80…dtext- €2 +create˙˙Ŕ2 DAT*^ö]  @č€1€ € @   €€"˙˙˙˙€˙˙ˆ80… 8(0…P8X0…t8|0…”8œ0…4NhdĄ(textmoremicrohelp Microhelp for moretoolbaritemdownname; DAT*`öRunWindow!toolbaritemnamec Window!toolbaritemtext„ More  P t ” Ň) 8dmf_selectŔ €€2 +create+selected(˙˙Ŕ˙˙Ŕ2 ]  @€1€ € @   €€"˙˙˙˙€DAT*bö˙˙3˙˙˙˙€˙˙ˆ80… 8(0…P8X0…t8|0…”80…4Nhdœ(textDebugmicrohelp Microhelp for Debugtoolbaritemdownname< Custom089!toolbaritemnamec Debug!toolbaritemtextƒ   P t ” Ň) 8dDAT*dömf_selectŔ €€2 +create+selected(˙˙Ŕ˙˙Ŕ2 ]  @8€1€ € @   €€"˙˙˙˙€˙˙3˙˙˙˙€˙˙ 80…dtext- DAT*fö€2 +create˙˙Ŕ2 ]  @`€1€ € @   €€"˙˙˙˙€˙˙Ň) 8dmf_selectŔ œ80…(800…`8h0…„8Œ0…Ź8´DAT*hö0…Č9}4Nh‚dĐ0textDisabled Itemmicrohelp Microhelp for Disabled ItemtoolbaritemdownnameL UserObject!toolbaritemnamet UserObject5!toolbaritemtext™ Disabledenabled˝ ( ` „ Ź Č €€2 +selected+create(˙˙Ŕ˙˙ Ŕ2 ]  @ˆ€1DAT*jö€ € @   €€3˙˙˙˙€˙˙"˙˙˙˙€˙˙œ80…,840…h8p0…8˜0…ź8Ä0…ŕ9}4Nh‚dč0textDisplayed Downmicrohelp Microhelp for Displayed DowntooDAT*lölbaritemdownname Q LibraryList5!toolbaritemname~ QueryLibraryList5!toolbaritemtextŤ Icon DowntoolbaritemdownÎ , h  ź ŕ Ň) 8dmf_selectŔ N$.(800…H<8D0…*.dLtoolbaritemdowntoolbaritemtext Icon Down Icon Up ( DAT*˝< €€€2 +create+selected+clicked<˙˙Ŕ˙˙Ŕ˙˙Ŕ2 ]  @°€1€ € @   €€"˙˙˙˙€˙˙3˙˙˙˙€˙˙=˙˙˙˙€˙˙DAT*pörn@Mm"5Mm"5n@n@n@€‰Ž@Ž@Z@Z@Y@Y@*a@a@7T@T@H^@^@Rh@h@`i@i@lj@j@€k@k@Œ}@}@œ‹@‹@Š@@śŽ@Ž@Ĺ\@\@ü@@€”t@t@”° €UŽ@€œf@f@¨w_testwindowmenuwindowtypewindowstatewindowobjecttoolbaralignmentstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectionDAT*röinfopowerobject€ 0mdiclientPlace mouse pointer over toolbar icons, wait for tooltip then move the pointerm_menu_with_toolbar€ P†messageapplicationÔl2w_test˙˙ €0itemidflagshmenu+menu+create+destroy+open-˙˙ ˙˙  ˙˙LNNLQL x_initsrcwindoww_testmenuwindowtypewindowstatewindowobjecttoolbaralignDAT*tömentstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjectmdiclientmdi_1messagem_menu_with_toolbarapplicationĚ˙˙˙˙ @˙˙˙˙@˙˙@˙˙'@˙˙3@˙˙@@˙˙Q@˙˙[@˙˙i @˙˙u @˙˙‰ @˙˙• @˙˙Ľ @DAT*vö˙˙˛@˙˙ż@˙˙Î@˙˙Ú@˙˙ä˙˙ę@˙˙ň@˙˙@đ…€€€€Ŕ%˙˙wW '&€€˙˙ x$źLŤ@˝L8ĽD$n$8,•^1l,,$(Dditemidflagshmenu::messagePle˙˙DAT*xö ss˙˙ d˙˙ ie˙˙@€4 menuid Ž@ Ž@mf_unselect˙˙Ŕ˙˙  $ , r $8Ş20j8‡H*P‡`h$˛€ |2Hdp8menuname m_menu_with_toolbarmenuid( Ž@€˙˙mdi_1@&€@€˙˙controlXa@@&€ 0 8H P` h 4$•DAT*zö $ $ d(menuid Ž@ Ž@mdi_1\@&€   Vź;Ť@˝;$9},•<1J,$"d ::message˙˙@€˙˙˙˙  €€%€v€{vą%2 +menu+create+destroy+openP˙˙2˙˙n@Ŕn@˙˙6Ŕ˙˙7˙˙n@Ŕn@˙˙;Ŕ2 hxywidthheDAT*|öighttitlebartitlemenunamebackcolorcontrolmenuminboxmaxboxresizablewindowtypemdi_1˙˙˙˙8˙˙7 ˙˙ ¸˙˙˙˙€˙˙ U€˙˙)ŔŔŔ˙˙3Ŕ˙˙?Ŕ˙˙FŔ˙˙MŔ˙˙WŔ€˙˙b €] 87 ¸€€U€ €ŔŔŔDAT*~öŔ€Ŕ€€l€1€ŔŔŔ  @@€@ €$˙˙v€{)˙˙˙˙€˙˙!)˙˙˙˙€˙˙*+˙˙˙˙%€ą2 2 backcolor˙˙€€€] €€€DAT*DAT*‚öforward global type w_test from Window end type type mdi_1 from mdiclient within w_test end type end forward global type w_test from Window int X=270 int Y=312 int Width=2615 int Height=1208 boolean TitleBar=true string Title="Place mouse pointer over toolbar icons, wait for tooltip then move the pointer" string MenuName="m_menu_with_toolbar" long BackColor=79741120 boolean ControlMenu=true boolean MinBox=true boolean MaxBox=true boolean Resizable=true WindowType WindowType=mdDAT*„öihelp! event menu pbm_menuselect mdi_1 mdi_1 end type global w_test w_test event menu;if Handle(this.MenuID) = hmenu then this.MenuID.DYNAMIC mf_unselect() end if end event on w_test.create if this.MenuName = "m_menu_with_toolbar" then this.MenuID = create m_menu_with_toolbar this.mdi_1=create mdi_1 this.Control[]={this.mdi_1} end on on w_test.destroy if IsValid(MenuID) then destroy(MenuID) destroy(this.mdi_1) end on event open;GetApplication().ToolBarText = True end evDAT*Vent type mdi_1 from mdiclient within w_test long BackColor=276856960 end type DAT*ˆörf@Şp"5Şp"5o@o@€"p@p@9€?q@q@R€Xr@r@X€^t@t@^€ff@f@f@€‰r^@^@|h@h@Ši@i@–j@j@Şk@k@ś}@}@Ƌ@‹@ӝ@@ŕŽ@Ž@ď\@\@€űn@€ ű€menu_techniquestransactionsqlcadynamicdescriptionareasqldadynamicstagingareasqlsaerrormessageapplicationstructuremailrecipientenvironmentmailfiledescriptioDAT*Šönmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjectw_test20sqlcasqldasqlsaerrormessagemenu_techniquesx˙˙ €˙˙ €˙˙ €˙˙ €˙˙ €˙˙ €#+create+destroycommandline+openQ{ ˙˙QS xů_initsrctransactiondynamicdescriptionareadynamicstagingareaerrormessageapplicationmenu_techniquesstructuremailrecipientenvDAT*Œöironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjectw_test|˙˙˙˙ @˙˙@˙˙,@˙˙?@˙˙E@˙˙M @˙˙Y˙˙i @˙˙s @˙˙@˙˙@˙˙Ą@˙˙­@˙˙˝@˙˙Ę@˙˙×@˙˙ć@˙˙ň@đDAT*Žö…€€€Ŕ˙˙ f80…j(‡j<‡j\‡jx‡jˆ‡(6DRd0appnamemenu_techniquesmessage €˙˙transaction0€˙˙dynamicdescriptionareaD€˙˙dynamicstagingaread€˙˙error€€˙˙ (<\xˆ$ DAT*öd"Śź‚Ť@˝‚ś8dcommandlinew_test(˙˙ ˙˙ @€€€€2 +create+destroy+open<˙˙Ŕ˙˙Ŕ˙˙Ŕ2       ˙˙˙˙€˙˙˙˙˙˙€˙˙˙˙€˙˙DAT*