Library XP_Menu_Lib
Posted: Wed Nov 12, 2008 6:02 pm
Hi
I do not know english, sorry
I have done library for menu
Example
Library for PB 4.50
Here library is discussed in russian language
http://pbasic.spb.ru/phpBB2/viewtopic.php?t=596
I do not know english, sorry
I have done library for menu
Example
Code: Select all
; For compiling library needs Library XP_Menu_Lib - http://purik.nextmail.ru/PureBasic/XP_Menu_Lib.rar
Procedure GlavWindowCallback(WindowID, Message, wParam, lParam)
Protected Result=#PB_ProcessPureBasicEvents
XP_Menu_CB(WindowID, Message, wParam, lParam)
ProcedureReturn Result
EndProcedure
StyleMenu.xp_menudata
OpenWindow(4,0,0,300,200,"Example XP_Menu_Lib",#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_Invisible)
CreateGadgetList(WindowID(4))
CheckBoxGadget(0,10,20,200,15,"Style menu general") : SetGadgetState(0,1)
CheckBoxGadget(1,10,50,200,15,"Style menu popup") : SetGadgetState(1,1)
CheckBoxGadget(2,10,80,200,15,"Style menu system") : SetGadgetState(2,1)
CheckBoxGadget(3,10,110,200,15,"Style menu tray") : SetGadgetState(3,1)
TextGadget(4,10,140,80,15, "Style menu")
ComboBoxGadget(5,80,136,100,100)
AddGadgetItem(5,-1,"Standart")
AddGadgetItem(5,-1,"XP")
AddGadgetItem(5,-1,"2003")
AddGadgetItem(5,-1,"Create style")
SetGadgetState(5,1)
If CreateMenu(2,WindowID(4))
MenuTitle("File")
MenuItem(1,"New"+Chr(9)+"Ctrl+N")
MenuItem(2,"Open..."+Chr(9)+"Ctrl+N") : DisableMenuItem(2,2,1)
MenuItem(3,"Save"+Chr(9)+"Ctrl+N")
MenuItem(4,"Save As..."+Chr(9)+"Ctrl+N") : DisableMenuItem(2,4,1) : SetMenuItemState(2,4,1)
MenuItem(46,"Save All"+Chr(9)+"Ctrl+N")
MenuItem(15,"Close"+Chr(9)+"Ctrl+N") : SetMenuItemState(2,15,1)
MenuBar()
OpenSubMenu("Files")
MenuItem(20,"1) 1")
MenuItem(21,"2) 2")
MenuItem(22,"3) 3")
MenuItem(23,"4) 4")
MenuItem(24,"5) 5")
MenuItem(25,"6) 6")
MenuItem(26,"7) 7")
MenuItem(27,"8) 8")
MenuItem(28,"9) 9")
MenuItem(29,"10) 10")
CloseSubMenu()
; Ðàçäåëèòåëü ìåæäó ïóíêòàìè.
MenuBar()
MenuItem(6,"Exit")
MenuTitle("Edit")
MenuItem(7, "Undo")
MenuItem(8,"Redo")
MenuTitle("Help")
MenuItem(2,"About")
MenuBar()
OpenSubMenu(" ¹1")
For i=2 To 8
MenuItem(1,"Item")
OpenSubMenu(" ¹"+Str(i))
Next
CloseSubMenu()
CloseSubMenu()
CloseSubMenu()
CloseSubMenu()
CloseSubMenu()
CloseSubMenu()
CloseSubMenu()
CloseSubMenu()
MenuItem(73,"Item")
EndIf
If CreatePopupMenu(8)
MenuItem(1,"Item 1")
MenuItem(2,"Item 2")
EndIf
If CreatePopupMenu(10)
MenuItem(1,"Item 3")
MenuItem(2,"Item 4")
EndIf
ExtractIcon_(0,GetSystemDirectory()+"\sendmail.dll",0)
AddSysTrayIcon(0,WindowID(4),ExtractIcon_(0,GetSystemDirectory()+"\sendmail.dll",0) )
SysTrayIconToolTip(0,"Ðîáîòà XP_Menu_Lib")
SetWindowCallback(@GlavWindowCallback(),4)
; #XP_RegMenu - Registration menu
; #XP_DelMenu - Removing to registrations menu
XP_MenuRegister(MenuID(2), #XP_RegMenu, #XP_RegGeneralMenu,WindowID(4)) ; Ðåãèñòðàöèÿ ãëàâíîãî ìåíþ
XP_MenuRegister(MenuID(8), #XP_RegMenu, #XP_RegPopupMenu) ; Ðåãèñòðàöèÿ êîíòåêñòíîãî ìåíþ
XP_MenuRegister(GetSystemMenu_(WindowID(4),0), #XP_RegMenu, #XP_RegSysMenu) ; Ðåãèñòðàöèÿ ñèñòåìíîãî ìåíþ
XP_MenuRegister(MenuID(10), #XP_RegMenu, #XP_RegPopupMenu) ; Ðåãèñòðàöèÿ êîíòåêñòíîãî ìåíþ â òðåå
XP_SetMenuIcon(MenuID(2),1,ExtractIcon_(0,GetSystemDirectory()+"\sendmail.dll",0) )
XP_SetMenuIcon(MenuID(2),2,ExtractIcon_(0,GetSystemDirectory()+"\shell32.dll",19) )
XP_SetMenuIcon(MenuID(2),41,ExtractIcon_(0,GetSystemDirectory()+"\shell32.dll",38) )
HideWindow(4,0)
; Debug XP_GetMenuItemText(MenuID(2), 2)
; Debug XP_GetMenuItemText(MenuID(2), 47)
;Debug MenuID(2)
Repeat
Event=WaitWindowEvent()
Gadget=EventGadget()
Type=EventType()
Menu=EventMenu()
If Event=#WM_RBUTTONUP
DisplayPopupMenu(8, WindowID(4))
EndIf
If Event=#PB_Event_SysTray
If Type=#PB_EventType_RightClick
DisplayPopupMenu(10, WindowID(4))
EndIf
EndIf
If Event = #PB_Event_Gadget
Select Gadget
Case 0
If XP_GetMenuStyle()=#XP_StyleNormal
XP_MenuRegister(MenuID(2), GetGadgetState(0), #XP_RegGeneralMenu)
Else
XP_MenuRegister(MenuID(2), GetGadgetState(0), #XP_RegGeneralMenu, WindowID(4))
EndIf
Case 1
XP_MenuRegister(MenuID(8), GetGadgetState(1), #XP_RegPopupMenu)
Case 2
XP_MenuRegister(GetSystemMenu_(WindowID(4),0),GetGadgetState(2), #XP_RegSysMenu)
Case 3
XP_MenuRegister(MenuID(10), GetGadgetState(3), #XP_RegPopupMenu)
Case 5 ; Ñòèëü ìåíþ
If Type=1
Select GetGadgetState(5)
Case 0
XP_SetMenuStyle(#XP_StyleNormal)
XP_EnableDrawTitleBar(WindowID(4), #XP_DelMenu)
Case 1
XP_SetMenuStyle(#XP_StyleXP)
XP_EnableDrawTitleBar(WindowID(4), #XP_RegMenu)
Case 2
XP_SetMenuStyle(#XP_Style2003)
XP_EnableDrawTitleBar(WindowID(4), #XP_RegMenu)
Case 3
XP_GetMenuStructure(StyleMenu)
StyleMenu\ColFillColor = RGB(242, 229, 241)
StyleMenu\FrameColor = RGB(105, 5, 93)
StyleMenu\BackgroundColor = RGB(255, 255, 216)
StyleMenu\TextSelectColor = RGB(221, 129, 80)
StyleMenu\TextNormalColor = RGB(108, 2, 98)
StyleMenu\TextSelectTABColor = RGB(1, 44, 173)
StyleMenu\TextNormalTABColor = RGB(71, 135, 64)
StyleMenu\IconBarGradientStartColor = RGB(248, 248, 248)
StyleMenu\IconBarGradientEndColor = RGB(185, 116, 185)
StyleMenu\CheckBoxEnableActive_CHECK_Color = RGB(255, 252, 0)
StyleMenu\CheckBoxEnable_CHECK_Color = RGB(0, 0, 233)
StyleMenu\CheckBoxDisableActive_CHECK_Color= RGB(255, 129, 0)
StyleMenu\CheckBoxDisable_CHECK_Color = RGB(255, 108, 108)
StyleMenu\CheckBoxEnableActive_BACK_Color = RGB(215, 160, 199)
StyleMenu\CheckBoxEnable_BACK_Color = RGB(178, 70, 146)
StyleMenu\CheckBoxDisableActive_BACK_Color = RGB(57, 172, 115)
StyleMenu\CheckBoxDisable_BACK_Color = RGB(165, 126, 159)
StyleMenu\CheckBoxEnableActive_FRAME_Color = RGB(233, 8, 0)
StyleMenu\CheckBoxEnable_FRAME_Color = RGB(231, 230, 2)
StyleMenu\CheckBoxDisableActive_FRAME_Color= RGB(158, 156, 144)
StyleMenu\CheckBoxDisable_FRAME_Color = RGB(158, 156, 144)
XP_SetMenuStructure(StyleMenu)
XP_EnableDrawTitleBar(WindowID(4), 1)
EndSelect
EndIf
EndSelect
EndIf
Until Event=#PB_Event_CloseWindow
Library for PB 4.50
Here library is discussed in russian language
http://pbasic.spb.ru/phpBB2/viewtopic.php?t=596