Wenn ich mein Fenster maximiere gibt GadgetWidth/Height bezogen auf ein Containergadget welches sich in einem Splittergadget befindet nicht den richtigen wert zurück. Es gibt stattdessen nur den Wert vor dem Maximieren wieder, hebt man dann die Maximierung auf gibt es dann
den für das maximierte Fenster richtigen Wert wieder.
Code: Alles auswählen
Enumeration
#MainWindow
#ProjectWindow
EndEnumeration
Enumeration
#MainMenu
EndEnumeration
Enumeration
#MenuNew
#MenuOpen
#MenuSave
#MenuProject
EndEnumeration
Enumeration
#ProjectOKButton
#ProjectCancelButton
#ProjectNameInfoText
#ProjectNameString
#ProjectWidthInfoText
#ProjectHeightInfoText
#ProjectWidthString
#ProjectHeightString
#EditorImage
#ToolPanel
#EditorVScroll
#EditorHScroll
#MapScrollArea
#MapImage
#EditorContainer
#ToolSplitter
#MainSplitter
EndEnumeration
Enumeration
#ImEditor
#ImMiniMap
EndEnumeration
CreateImage(#ImEditor,200,200)
CreateImage(#ImMiniMap,200,200)
Global MapWidth.l, MapHeight.l, MapName.s
MapWidth = 200
MapHeight = 200
MapName = "Neues Level"
OpenWindow(#MainWindow,0,0,800,600,"MapED v0.002", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
CreateMenu(#MainMenu,WindowID(#MainWindow))
MenuTitle("Datei")
MenuItem(#MenuNew,"Neu")
MenuItem(#MenuOpen,"Öffnen")
MenuItem(#MenuSave,"Speichern")
MenuBar()
MenuItem(#MenuProject,"Projekteigenschaften")
MenuBar()
ContainerGadget(#EditorContainer,0,0,400,600)
ImageGadget(#EditorImage,0,0, 200, 200, ImageID(#ImEditor))
ScrollBarGadget(#EditorVScroll,0,0,20,100,0,MapHeight-1,1,#PB_ScrollBar_Vertical)
ScrollBarGadget(#EditorHScroll,0,0,100,20,0,MapWidth-1,1)
CloseGadgetList()
ScrollAreaGadget(#MapScrollArea, 0, 0, 200,200,200,200,1)
ImageGadget(#MapImage,0,0,150,150,ImageID(#ImMiniMap))
CloseGadgetList()
PanelGadget(#ToolPanel, 600, 5, 100, 100)
AddGadgetItem (#ToolPanel, -1, "Karte")
AddGadgetItem (#ToolPanel, -1, "Wand")
AddGadgetItem (#ToolPanel, -1, "Paralax")
AddGadgetItem (#ToolPanel, -1, "Funktion")
CloseGadgetList()
SplitterGadget(#ToolSplitter, 400,200,200,600,#ToolPanel,#MapScrollArea,#PB_Splitter_Separator)
SetGadgetState(#ToolSplitter,380)
SplitterGadget(#MainSplitter,0,0,600,480,#EditorContainer,#ToolSplitter,#PB_Splitter_Separator|#PB_Splitter_Vertical )
SetGadgetState(#MainSplitter,440)
Procedure.b ProjectWindow()
DisableWindow(#MainWindow, #True)
OpenWindow(#ProjectWindow,0,0,300,80,"Projekteigenschaften", #PB_Window_ScreenCentered, WindowID(#MainWindow))
ButtonGadget(#ProjectOKButton,225,30,70,20,"OK")
ButtonGadget(#ProjectCancelButton,225,55,70,20,"Abbrechen")
TextGadget(#ProjectNameInfoText,5,10,50,15,"Name:")
StringGadget(#ProjectNameString,55,5,240,20,MapName)
TextGadget(#ProjectWidthInfoText,5,35,50,15,"Breite = ")
StringGadget(#ProjectWidthString,55,30,50,20,Str(MapWidth), #PB_String_Numeric )
TextGadget(#ProjectHeightInfoText,5,60,50,15,"Höhe = ")
StringGadget(#ProjectHeightString,55,55,50,20,Str(MapHeight), #PB_String_Numeric )
Repeat
If WaitWindowEvent() = #PB_Event_Gadget
Select EventGadget()
Case #ProjectOKButton
If Val(GetGadgetText(#ProjectWidthString)) < 16 Or Val(GetGadgetText(#ProjectWidthString)) > 1024 Or Val(GetGadgetText(#ProjectHeightString)) < 16 Or Val(GetGadgetText(#ProjectHeightString)) > 1024
MessageRequester("Achtung","Die Höhe und Breite des Projektes muss zwischen 16 und 1024 liegen!")
Else
MapName = GetGadgetText(#ProjectNameString)
MapWidth = Val(GetGadgetText(#ProjectWidthString))
MapHeight = Val(GetGadgetText(#ProjectHeightString))
CloseWindow(#ProjectWindow)
DisableWindow(#MainWindow, #False)
ProcedureReturn #True
EndIf
Case #ProjectCancelButton
CloseWindow(#ProjectWindow)
DisableWindow(#MainWindow, #False)
ProcedureReturn #False
EndSelect
EndIf
ForEver
EndProcedure
Procedure DrawEditorImage()
Protected imWidth.l, imHeight.l
StartDrawing(ImageOutput(#ImEditor))
imWidth = ImageWidth(#ImEditor)
imHeight = ImageHeight(#ImEditor)
StopDrawing()
EndProcedure
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu()
Case #MenuProject
ProjectWindow()
EndSelect
Case #PB_Event_CloseWindow
CloseWindow(#MainWindow)
End
Case #PB_Event_SizeWindow
winw.l = WindowWidth(#MainWindow)
winh.l = WindowHeight(#MainWindow) - MenuHeight()
WindowEvent()
;-***Hier frage ich die Größe des Containergadgets ab
edw.l = GadgetWidth(#EditorContainer)
edh.l = GadgetHeight(#EditorContainer)
Debug edw
If edw - 20> 1 And edh - 20 > 1
CreateImage(#ImEditor,edw - 20, edh - 20)
SetGadgetState(#EditorImage, ImageID(0))
EndIf
ResizeGadget(#EditorVScroll,edw-20,0,20,edh-20)
ResizeGadget(#EditorHScroll,0, edh-20, edw-20, 20)
ResizeGadget(#MainSplitter,0, 0, winw, winh)
EndSelect
ForEver