Seite 1 von 1

Splittergadget Layout Probleme

Verfasst: 22.03.2011 15:12
von smateja
Hallo zusammen,

ich versuche jetzt seit einer Ewigkeit ein Fensterlayout mit Hilfe von Splittergadgets und Containgergadgets zu erstellen und bekomme es nicht hin wie ich es gerne möchte.

Ziel ist es, 3 Spalten zu haben - wobei die Spalte links und rechts jeweils in 2 Zeilen unterteilt ist.

Mein bisheriger versuch schaut folgendermaßen aus:

Code: Alles auswählen




Enumeration

#Hauptfenster

#Layout_Links_Oben
#Layout_Links_Unten
#Layout_Hauptbereich
#Layout_Rechts_Oben
#Layout_Rechts_Unten

#statusbar

#Splitter_Horizontal_Links
#Splitter_Horizontal_Rechts

#Splitter_Vertikal_Links
#Splitter_Vertikal_Rechts

EndEnumeration



Layout_Offset_Statusbar = 22
Layout_Offset_Oben= 80
Layout_Panelweite_Links =200
Layout_Panelweite_Rechts =200

OpenWindow(#Hauptfenster, 0, 0, 1024, 768, "SplitterGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
 
CreateStatusBar(#statusbar, WindowID(#Hauptfenster))
AddStatusBarField(90)
AddStatusBarField(90)
AddStatusBarField(90)
AddStatusBarField(90)
AddStatusBarField(90)


ContainerGadget(#Layout_Links_Oben, 0, 0, 0, 0, #PB_Container_Raised)
    CloseGadgetList()

ContainerGadget(#Layout_Links_Unten, 0, 0, 0, 0, #PB_Container_Raised)
    CloseGadgetList()

ContainerGadget(#Layout_Hauptbereich, 0, 0, 0, 0, #PB_Container_Raised)
    CloseGadgetList()

ContainerGadget(#Layout_Rechts_Oben, 0, 0, 0, 0, #PB_Container_Raised)
    CloseGadgetList()

ContainerGadget(#Layout_Rechts_Unten, 0, 0, 0, 0, #PB_Container_Raised)
    CloseGadgetList()
    

    
 SplitterGadget(#Splitter_Horizontal_Links, 0, 0, Layout_Panelweite_Links, WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben), #Layout_Links_Oben, #Layout_Links_Unten)
 SetGadgetAttribute(#Splitter_Horizontal_Links, #PB_Splitter_FirstMinimumSize, 200)
  SetGadgetAttribute(#Splitter_Horizontal_Links, #PB_Splitter_SecondMinimumSize, 200)

 SplitterGadget(#Splitter_Horizontal_Rechts, WindowWidth(#Hauptfenster)-Layout_Panelweite_Rechts, 0, Layout_Panelweite_Rechts, WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben), #Layout_Rechts_Oben, #Layout_Rechts_Unten)  
 SetGadgetAttribute(#Splitter_Horizontal_Rechts, #PB_Splitter_FirstMinimumSize, 200) 
 SetGadgetAttribute(#Splitter_Horizontal_Rechts, #PB_Splitter_SecondMinimumSize, 200)   
    
    
 SplitterGadget(#Splitter_Vertikal_Links, 0, Layout_Offset_Oben, WindowWidth(#Hauptfenster)-(Layout_Panelweite_Links+Layout_Panelweite_Rechts),  WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben),  #Splitter_Horizontal_Links,#Layout_Hauptbereich,#PB_Splitter_FirstFixed|#PB_Splitter_Vertical)    
 SetGadgetAttribute(#Splitter_Vertikal_Links, #PB_Splitter_FirstMinimumSize, 200) 
 
 SplitterGadget(#Splitter_Vertikal_Rechts, Layout_Panelweite_Links, Layout_Offset_Oben, 200, WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben),  #Layout_Hauptbereich,#Splitter_Horizontal_Rechts ,#PB_Splitter_Vertical)    
 SetGadgetAttribute(#Splitter_Vertikal_Rechts, #PB_Splitter_SecondMinimumSize, 200)  
    

    
Repeat
   event = WaitWindowEvent(20)
   
   Select event
      Case #PB_Event_SizeWindow
      
      ResizeGadget(#Splitter_Vertikal_Links, 0, 0, WindowWidth(#Hauptfenster)-200, WindowHeight(#Hauptfenster))
      ResizeGadget(#Splitter_Vertikal_Rechts,WindowWidth(#Hauptfenster)-200, 0, 200, WindowHeight(#Hauptfenster))
      
         ;ResizeGadget(#Splitter_Horizontal_Links, #PB_Ignore, #PB_Ignore,Layout_Panelweite_Links, WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben))
         ;ResizeGadget(#Splitter_Horizontal_Rechts, WindowWidth(#Hauptfenster)-Layout_Panelweite_Rechts, 0,(Layout_Panelweite_Rechts+Layout_Panelweite_Rechts), WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben))
         
         ;ResizeGadget(#Splitter_Vertikal_Links, #PB_Ignore, Layout_Offset_Oben, WindowWidth(#Hauptfenster)-(Layout_Panelweite_Links), WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben))
         ;ResizeGadget(#Splitter_Vertikal_Rechts, #PB_Ignore, #PB_Ignore, WindowWidth(#Hauptfenster), WindowHeight(#Hauptfenster))
   EndSelect 
   
Until event = #PB_Event_CloseWindow

Ich hab schon x Variationen versucht - aber ich komme leider nicht zu meinem Ergebnis.

Thx schon mal im Vorraus

Re: Splittergadget Layout Probleme

Verfasst: 22.03.2011 15:34
von gnozal
Hello, I am not sure that it's exactly what you want :

Code: Alles auswählen

Enumeration
  #Window_0
EndEnumeration
Enumeration
  #Container_Oben_1
  #Container_Unten_1
  #Container_Mitte
  #Container_Oben_2
  #Container_Unten_2
  #Splitter_Links
  #Splitter_Rechts
  #Splitter_LM
  #Splitter_Main
EndEnumeration
Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 450, 200, 592, 415, "Window_0", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    ContainerGadget(#Container_Oben_1, 15, 30, 110, 150, #PB_Container_Raised)
    CloseGadgetList()
    ContainerGadget(#Container_Unten_1, 15, 180, 110, 145, #PB_Container_Raised)
    CloseGadgetList()
    SplitterGadget(#Splitter_Links, 5, 20, 125, 355, #Container_Oben_1, #Container_Unten_1, #PB_Splitter_Separator)
    ContainerGadget(#Container_Mitte, 130, 30, 140, 295, #PB_Container_Raised)
    CloseGadgetList()
    ContainerGadget(#Container_Oben_2, 275, 30, 115, 150, #PB_Container_Raised)
    CloseGadgetList()
    ContainerGadget(#Container_Unten_2, 275, 180, 115, 145, #PB_Container_Raised)
    CloseGadgetList()
    SplitterGadget(#Splitter_Rechts, 270, 20, 125, 350, #Container_Oben_2, #Container_Unten_2, #PB_Splitter_Separator)
    SplitterGadget(#Splitter_LM, 0, 5, 265, 385, #Splitter_Links, #Container_Mitte, #PB_Splitter_Separator|#PB_Splitter_Vertical)
    SplitterGadget(#Splitter_Main, 10, 10, 570, 395, #Splitter_LM, #Splitter_Rechts, #PB_Splitter_Separator|#PB_Splitter_Vertical)
    SetGadgetState(#Splitter_Main, 385)
    SetGadgetState(#Splitter_LM, 125)
    SetGadgetState(#Splitter_Rechts, 200)
    SetGadgetState(#Splitter_Links, 200)
  EndIf
EndProcedure

OpenWindow_Window_0()

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0
          CloseWindow(#Window_0)
          Break
      EndSelect
  EndSelect
ForEver

Re: Splittergadget Layout Probleme

Verfasst: 22.03.2011 15:37
von smateja
Thx a lot - works nice and its exactly what i am looking for.

By the way - the last CloseGadgetList() must be deleted.