Code: Select all
;-TOP
#ProgramTitle = "Main Window"
#Version = "v1.01.1"
Enumeration Windows
#Main
EndEnumeration
Enumeration Menus
#MainMenu
EndEnumeration
Enumeration MenuItems
#MainMenuExitApplication
#MainButtonMenuEdit
#MainButtonMenuCopy
#MainButtonMenuMove
#MainButtonMenuMkDir
#MainButtonMenuDelete
EndEnumeration
Enumeration Gadgets
#MainEdit
#MainContainer
#MainButtonEdit
#MainButtonCopy
#MainButtonMove
#MainButtonMkDir
#MainButtonDelete
EndEnumeration
Enumeration Status
#MainStatusBar
EndEnumeration
Global ExitApplication
; ----
Procedure UpdateWindow()
Protected dx, dy
dx = WindowWidth(#Main)
dy = WindowHeight(#Main) - StatusBarHeight(#MainStatusBar) - MenuHeight()
; Resize gadgets
ResizeGadget(#MainEdit, 0, 0, dx, dy - 30)
ResizeGadget(#MainContainer, 0, dy - 30, dx, 30)
EndProcedure
; ----
Procedure Main()
Protected x, y, dx, dy
#MainStyle = #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget
If OpenWindow(#Main, #PB_Ignore, #PB_Ignore, 800, 600, #ProgramTitle , #MainStyle)
; Menu
CreateMenu(#MainMenu, WindowID(#Main))
MenuTitle("File")
MenuItem(#MainMenuExitApplication, "E&xit")
; StatusBar
CreateStatusBar(#MainStatusBar, WindowID(#Main))
AddStatusBarField(#PB_Ignore)
StatusBarText(#MainStatusBar, 0, " " + #Version)
; Gadgets
dx = WindowWidth(#Main)
dy = WindowHeight(#Main) - StatusBarHeight(#MainStatusBar) - MenuHeight()
EditorGadget(#MainEdit, 0, 0, dx, dy - 30)
ContainerGadget(#MainContainer, 0, dy - 30, dx, 30, #PB_Container_Single)
ButtonGadget(#MainButtonEdit, 2, 2, 100, 26, "F4-Edit")
ButtonGadget(#MainButtonCopy, 104, 2, 100, 26, "F5-Copy")
ButtonGadget(#MainButtonMove, 208, 2, 100, 26, "F6-Move")
ButtonGadget(#MainButtonMkDir, 312, 2, 100, 26, "F7-Mkdir")
ButtonGadget(#MainButtonDelete, 416, 2, 100, 26, "F8-Delete")
CloseGadgetList()
SetGadgetColor(#MainEdit, #PB_Gadget_FrontColor, #Blue)
SetGadgetColor(#MainEdit, #PB_Gadget_BackColor, $E6E0B0)
; Shortcuts
AddKeyboardShortcut(#Main, #PB_Shortcut_F4, #MainButtonMenuEdit)
;TODO
; Bind events
BindEvent(#PB_Event_SizeWindow, @UpdateWindow(), #Main)
; Main loop
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
ExitApplication = #True
Case #PB_Event_Menu
Select EventMenu()
Case #MainMenuExitApplication
ExitApplication = #True
Case #MainButtonMenuEdit
PostEvent(#PB_Event_Gadget, #Main, #MainButtonEdit, #PB_EventType_LeftClick)
;TODO
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case #MainButtonEdit
Debug "Edit"
;TODO
EndSelect
EndSelect
Until ExitApplication
EndIf
EndProcedure : Main()

