Code: Select all
Repeat
Event = WaitWindowEvent()
Select EventWindow()
Case TabWindow
TabWindow_Events(Event) ; Dieser Prozedurname ist immer der Fenstername gefolgt von '_Events'
If Event = #PB_Event_CloseWindow
CloseWindow(TabWindow)
ProgExit = 1
ElseIf Event = #PB_Event_SizeWindow
ExamineDesktops()
GetWindowRect_(FindWindow_("Shell_TrayWnd",0),taskwin.RECT)
TaskBarHeight = (taskwin \ bottom - taskwin \ top)
MyFrame = FrameGadget(#PB_Any,0,52,WindowWidth(TabWindow , #PB_Window_FrameCoordinate),4,"",#PB_Frame_Double)
For x = 1 To GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerWidth) Step 500
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_X,x)
Next
For y = 1 To GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerHeight) Step 500
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_Y,y)
Next
ScrollAreaWidth = GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerWidth) - GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_X)
ScrollAreaHeight = GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerHeight) - GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_Y)
WindowBounds(TabWindow, 1280, 768, DesktopWidth(0), DesktopHeight(0))
If OriginalImage
Original_Image_Draw()
Palette_DrawFromDesign(OriginalFile, "Original", 0)
EndIf
If SteuerstreifenImage
Steuerstreifen_Image_Draw()
Palette_DrawFromDesign(TempFileName, "SteuerStreifen", SteuerStreifenLen)
EndIf
EndIf
Case ListWindow
ListWindow_Events(Event)
If Event = #PB_Event_CloseWindow
CloseWindow(ListWindow)
If OriginalImageLoaded = #True And SteuerStreifenImageLoaded = #True
DisableEnable_ToolBarButtons(0,0,0,1,0,0,1,0)
ElseIf OriginalImageLoaded = #True And SteuerStreifenImageLoaded = #False
DisableEnable_ToolBarButtons(0,0,1,0,0,0,1,0)
EndIf
EndIf
Case SteuerstreifenWindow
SteuerstreifenWindow_Events(Event)
If Event = #PB_Event_CloseWindow
CloseWindow(SteuerstreifenWindow)
DisableEnable_ToolBarButtons(0,0,1,0,0,0,1,0)
EndIf
Case ProgramSetupWindow
ProgramSetupWindow_Events(Event)
If Event = #PB_Event_CloseWindow
CloseWindow(ProgramSetupWindow)
DisableEnable_ToolBarButtons(0,0,1,1,1,0,0,0)
EndIf
Case NewBindingWindow
NewBindingWindow_Events(Event)
If Event = #PB_Event_CloseWindow
CloseWindow(NewBindingWindow)
SetActiveWindow(SteuerstreifenWindow)
DisableWindow(SteuerstreifenWindow, #False)
EndIf
Case Steuerstreifen_BindingViewer
Steuerstreifen_BindingViewer_Events(event)
If Event = #PB_Event_CloseWindow
CloseWindow(Steuerstreifen_BindingViewer)
SetActiveWindow(SteuerstreifenWindow)
DisableWindow(SteuerstreifenWindow, #False)
EndIf
EndSelect
; First part is for the windows/Dialogs in the program with their own Eventloop
;***************************************************************
; Second part handles all keyboard/menu/toolbarevents and hotkeys
Select Event
Case #PB_Event_Menu
Select EventMenu()
Case 1903
DisplayPopupMenu(100,WindowID(TabWindow), (WindowX(TabWindow, #PB_Window_InnerCoordinate) + 1), (WindowY(TabWindow, #PB_Window_InnerCoordinate) + 57))
Case 3001 To 3030
GetMenuItemText(100, EventMenu())
If Not Left(GetMenuItemText(100, EventMenu()), 4) = StSt_None
Design_LoadFromList(GetMenuItemText(100, EventMenu()))
EndIf
Case #Toolbar_load, 1003
Icon_Load(EventMenu())
Case #ToolBar_Liste, 1903
DisplayPopupMenu(100,WindowID(TabWindow), (WindowX(TabWindow, #PB_Window_InnerCoordinate) + 1), (WindowY(TabWindow, #PB_Window_InnerCoordinate) + 57))
Case #Toolbar_Save, 1002
Icon_Save(EventMenu())
Case #Toolbar_Make, 1004
Icon_Make(EventMenu())
Case #Toolbar_Statistic, 1006
Icon_Statistic(EventMenu())
Case #Toolbar_Help, 1001
Icon_Help(EventMenu())
Case #Toolbar_Setup, 1007
Icon_Setup(EventMenu())
Case 1010 ; Zoom 0
If GetGadgetState(Panel_1) = 0
If (GetGadgetState(TrackBar_Original) > 0)
SetGadgetState(TrackBar_Original, 0)
Original_Image_Zoom(EventType)
Else
Beep_(800,300)
EndIf
ElseIf GetGadgetState(Panel_1) = 2
If (GetGadgetState(TrackBar_SteuerStreifen) > 0)
SetGadgetState(TrackBar_SteuerStreifen, 0)
Steuerstreifen_Image_Zoom(EventType)
Else
Beep_(800,300)
EndIf
EndIf
Case 1011 ; Zoom kleiner
If GetGadgetState(Panel_1) = 0
If (GetGadgetState(TrackBar_Original) > 0) And (GetGadgetState(TrackBar_Original) <= 10)
SetGadgetState(TrackBar_Original, (GetGadgetState(TrackBar_Original) - 1))
Original_Image_Zoom(EventType)
Else
Beep_(800,300)
EndIf
ElseIf GetGadgetState(Panel_1) = 2
If (GetGadgetState(TrackBar_SteuerStreifen) > 0) And (GetGadgetState(TrackBar_SteuerStreifen) <= 10)
SetGadgetState(TrackBar_SteuerStreifen, (GetGadgetState(TrackBar_SteuerStreifen) - 1))
Steuerstreifen_Image_Zoom(EventType)
Else
Beep_(800,300)
EndIf
EndIf
Case 1012 ; Zoom größer
If GetGadgetState(Panel_1) = 0
If (GetGadgetState(TrackBar_Original) => 0) And (GetGadgetState(TrackBar_Original) <= 9)
SetGadgetState(TrackBar_Original, (GetGadgetState(TrackBar_Original) + 1))
Original_Image_Zoom(EventType)
Else
Beep_(800,300)
EndIf
ElseIf GetGadgetState(Panel_1) = 2
If (GetGadgetState(TrackBar_SteuerStreifen) => 0) And (GetGadgetState(TrackBar_SteuerStreifen) <= 9)
SetGadgetState(TrackBar_SteuerStreifen, (GetGadgetState(TrackBar_SteuerStreifen) + 1))
Steuerstreifen_Image_Zoom(EventType)
Else
Beep_(800,300)
EndIf
EndIf
Case 1101 ; Entspricht NumPad 1 Ende
If GetGadgetState(Panel_1) = 0
If (GetGadgetAttribute(ScrollArea_Original, #PB_ScrollArea_X) >= 0)
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_X , 0)
EndIf
If (GetGadgetAttribute(ScrollArea_Original, #PB_ScrollArea_Y) <= GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerHeight) - (ScrollAreaHeight + 1))
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_Y , GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerHeight))
EndIf
ElseIf GetGadgetState(Panel_1) = 2
If (GetGadgetAttribute(ScrollArea_Steuerstreifen, #PB_ScrollArea_X) >= 0)
SetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_X , 0)
EndIf
If (GetGadgetAttribute(ScrollArea_Steuerstreifen, #PB_ScrollArea_Y) <= GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_InnerHeight) - (ScrollAreaHeight+1))
SetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_Y , GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_InnerHeight))
EndIf
EndIf
Case 1102 ; Entspricht NumPad 2 Down
If GetGadgetState(Panel_1) = 0
If (GetGadgetAttribute(ScrollArea_Original, #PB_ScrollArea_Y) <= GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerHeight) - (ScrollAreaHeight+1))
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_Y ,GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_Y) + 200)
Else
Beep_(800,300)
EndIf
ElseIf GetGadgetState(Panel_1) = 2
If (GetGadgetAttribute(ScrollArea_Steuerstreifen, #PB_ScrollArea_Y) < GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_InnerHeight) - (ScrollAreaHeight+1))
SetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_Y ,GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_Y) + 200)
Else
Beep_(800,300)
EndIf
EndIf
Case 1103 ; Entspricht NumPad 3 Page down
If GetGadgetState(Panel_1) = 0
If (GetGadgetAttribute(ScrollArea_Original, #PB_ScrollArea_X) >= 0)
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_X ,GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerWidth))
EndIf
If (GetGadgetAttribute(ScrollArea_Original, #PB_ScrollArea_Y) <= GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerHeight) - (ScrollAreaHeight+1))
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_Y , GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerHeight))
EndIf
ElseIf GetGadgetState(Panel_1) = 2
If (GetGadgetAttribute(ScrollArea_Steuerstreifen, #PB_ScrollArea_X) >= 0)
SetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_X , GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_InnerWidth))
EndIf
If (GetGadgetAttribute(ScrollArea_Steuerstreifen, #PB_ScrollArea_Y) <= GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_InnerHeight) - (ScrollAreaHeight+1))
SetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_Y , GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_InnerHeight))
EndIf
EndIf
Case 1104 ; Entspricht NumPad 4 Left
If GetGadgetState(Panel_1) = 0
If (GetGadgetAttribute(ScrollArea_Original, #PB_ScrollArea_X) > 0)
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_X ,GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_X) - 200)
Else
Beep_(800,300)
EndIf
ElseIf GetGadgetState(Panel_1) = 2
If (GetGadgetAttribute(ScrollArea_Steuerstreifen, #PB_ScrollArea_X) > 0)
SetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_X ,GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_X) - 200)
Else
Beep_(800,300)
EndIf
EndIf
Case 1106 ; Entspricht NumPad 6 Right
If GetGadgetState(Panel_1) = 0
If (GetGadgetAttribute(ScrollArea_Original, #PB_ScrollArea_X) < GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerWidth) - (ScrollAreaWidth+1))
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_X ,GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_X) + 200)
Else
Beep_(800,300)
EndIf
ElseIf GetGadgetState(Panel_1) = 2
If (GetGadgetAttribute(ScrollArea_Steuerstreifen, #PB_ScrollArea_X) < GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_InnerWidth) - (ScrollAreaWidth+1))
SetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_X ,GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_X) + 200)
Else
Beep_(800,300)
EndIf
EndIf
Case 1107 ; Entspricht NumPad 7 Pos1
If GetGadgetState(Panel_1) = 0
If (GetGadgetAttribute(ScrollArea_Original, #PB_ScrollArea_X) >= 0)
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_X ,0)
EndIf
If (GetGadgetAttribute(ScrollArea_Original, #PB_ScrollArea_Y) <= GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerHeight) - (ScrollAreaHeight+1))
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_Y , 0)
EndIf
ElseIf GetGadgetState(Panel_1) = 2
If (GetGadgetAttribute(ScrollArea_Steuerstreifen, #PB_ScrollArea_X) >= 0)
SetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_X , 0)
EndIf
If (GetGadgetAttribute(ScrollArea_Steuerstreifen, #PB_ScrollArea_Y) <= GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_InnerHeight) - (ScrollAreaHeight+1))
SetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_Y , 0)
EndIf
EndIf
Case 1108 ; Entspricht NumPad 8 Up
If GetGadgetState(Panel_1) = 0
If (GetGadgetAttribute(ScrollArea_Original, #PB_ScrollArea_Y) > 0)
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_Y ,GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_Y) - 200)
Else
Beep_(800,300)
EndIf
ElseIf GetGadgetState(Panel_1) = 2
If (GetGadgetAttribute(ScrollArea_Steuerstreifen, #PB_ScrollArea_Y) > 0)
SetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_Y ,GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_Y) - 200)
Else
Beep_(800,300)
EndIf
EndIf
Case 1109 ; Entspricht NumPad 9 Page up
If GetGadgetState(Panel_1) = 0
If (GetGadgetAttribute(ScrollArea_Original, #PB_ScrollArea_X) >= 0)
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_X ,GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerWidth))
EndIf
If (GetGadgetAttribute(ScrollArea_Original, #PB_ScrollArea_Y) <= GetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_InnerHeight) - (ScrollAreaHeight+1))
SetGadgetAttribute(ScrollArea_Original,#PB_ScrollArea_Y , 0)
EndIf
ElseIf GetGadgetState(Panel_1) = 2
If (GetGadgetAttribute(ScrollArea_Steuerstreifen, #PB_ScrollArea_X) >= 0)
SetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_X , GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_InnerWidth))
EndIf
If (GetGadgetAttribute(ScrollArea_Steuerstreifen, #PB_ScrollArea_Y) <= GetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_InnerHeight) - (ScrollAreaHeight+1))
SetGadgetAttribute(ScrollArea_Steuerstreifen,#PB_ScrollArea_Y , 0)
EndIf
EndIf
Case 1200
If GetGadgetState(Panel_1) <> 0
If OriginalImageLoaded = #True
SetGadgetState(Panel_1,0)
Else
Beep_(800,300)
EndIf
EndIf
Case 1201
If GetGadgetState(Panel_1) <> 1
If OriginalPaletteLoaded = #True
SetGadgetState(Panel_1,1)
Else
Beep_(800,300)
EndIf
EndIf
Case 1202
If GetGadgetState(Panel_1) <> 2
If SteuerStreifenImageLoaded = #True
SetGadgetState(Panel_1,2)
Else
Beep_(800,300)
EndIf
EndIf
Case 1203
If GetGadgetState(Panel_1) <> 3
If SteuerStreifenPaletteLoaded = #True
SetGadgetState(Panel_1,3)
Else
Beep_(800,300)
EndIf
EndIf
Case #Toolbar_Exit, 9999
Icon_Exit(EventMenu())
ProgExit = 1
EndSelect
EndSelect
Until ProgExit = 1
, opened first.
This window contains the panel with 4 pages, scrollareas, canvasgadgets, trackbars and the toolbar, from which all other windows will be opened.
In the first part, all windows with their own eventloops are checked and handled.
In the second part all other actions, belonging to the TabWindow (MainWindow), are handled, events from/for panel-pages, scrollbars, trackbars, scrollareas, keyboard-hotkeys and so on.
What and where is the mistake with two event loops in one repeat >> until loop?