Add lhs_dialog.pbi a GUI Library/Module
Initial state with some Bugs
This commit is contained in:
parent
9d6def2132
commit
a7d3ed5432
1 changed files with 174 additions and 0 deletions
174
GUI/lhs_dialog.pbi
Normal file
174
GUI/lhs_dialog.pbi
Normal file
|
@ -0,0 +1,174 @@
|
|||
;************************************************
|
||||
;*
|
||||
;* Advanced Dialog V0.1
|
||||
;*
|
||||
;*
|
||||
;*
|
||||
|
||||
DeclareModule lhs_lib_adv_diag
|
||||
Enumeration Dialogtypes
|
||||
#lhs_adv_dialog_text
|
||||
#lhs_adv_dialog_string
|
||||
#lhs_adv_dialog_edit
|
||||
EndEnumeration
|
||||
|
||||
Declare dialog() ;Dialog darstellen und abwarten
|
||||
Declare init(Titel.s)
|
||||
Declare add(Descrition.s, UID.s, Type.i, Lines.i, Content.s="") ;Element zum Dialog hinzufügen
|
||||
Declare reset() ;dialog Liste leeren.
|
||||
Declare.s get_explizit(UID.s) ;Respronse exlpizit zurückgeben
|
||||
Declare get_init() ;get() Initilaiseren beim ersten element
|
||||
Declare.s get() ;gibt das Aktuelle element zurück
|
||||
|
||||
EndDeclareModule
|
||||
|
||||
Module lhs_lib_adv_diag
|
||||
Structure lhs_adv_dialog
|
||||
Lines.i
|
||||
Id.i
|
||||
Text_Id.i
|
||||
UID.s
|
||||
Description.s
|
||||
Type.i
|
||||
Response.s
|
||||
EndStructure
|
||||
|
||||
Global NewList lhs_adv_diag_content.lhs_adv_dialog()
|
||||
Global Current_Element, Total_Elements
|
||||
|
||||
Procedure reset()
|
||||
ClearList(lhs_adv_diag_content())
|
||||
EndProcedure
|
||||
|
||||
Procedure add(Descrition.s, UID.s, Type.i, Lines.i, Content.s="")
|
||||
AddElement(lhs_adv_diag_content())
|
||||
lhs_adv_diag_content()\Description = Descrition
|
||||
lhs_adv_diag_content()\UID = UID
|
||||
lhs_adv_diag_content()\Type= Type
|
||||
lhs_adv_diag_content()\Lines = Lines
|
||||
lhs_adv_diag_content()\Response = Content
|
||||
EndProcedure
|
||||
|
||||
Procedure init(Titel.s)
|
||||
reset()
|
||||
AddElement(lhs_adv_diag_content())
|
||||
lhs_adv_diag_content()\Description = Titel
|
||||
Total_Elements = 0
|
||||
Current_Element = 0
|
||||
EndProcedure
|
||||
|
||||
|
||||
Procedure dialog()
|
||||
Define Dialog, Dialog_Height, Event, PosY, Lines_curr, Current, Button_Ok, Button_Cancel
|
||||
ResetList(lhs_adv_diag_content())
|
||||
NextElement(lhs_adv_diag_content())
|
||||
Current_Element = 0
|
||||
PosY = 0
|
||||
Lines_curr = 0
|
||||
Height = 0
|
||||
Dialog_Height = 50
|
||||
Dialog = OpenWindow(#PB_Any, 0,0, 400, Dialog_Height, lhs_adv_diag_content()\Description, #PB_Window_TitleBar | #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget)
|
||||
While NextElement(lhs_adv_diag_content())
|
||||
Current_Element + 1
|
||||
If lhs_adv_diag_content()\Lines = 1
|
||||
Lines_curr + 1
|
||||
PoSY = (Lines_curr * 50) - 45
|
||||
Height = 40
|
||||
Dialog_Height + 50
|
||||
Else
|
||||
Lines_curr + lhs_adv_diag_content()\Lines
|
||||
Height = (lhs_adv_diag_content()\Lines * 50)
|
||||
Dialog_Height + Height
|
||||
Height - 15
|
||||
PosY = (Lines_curr * 50) - Height
|
||||
EndIf
|
||||
ResizeWindow(Dialog, #PB_Ignore, #PB_Ignore, #PB_Ignore, Dialog_Height)
|
||||
WindowBounds(Dialog, 400, Dialog_Height, 400, Dialog_Height)
|
||||
Select lhs_adv_diag_content()\Type
|
||||
Case #lhs_adv_dialog_text
|
||||
lhs_adv_diag_content()\Id = TextGadget(#PB_Any, 5, PoSY , 390, Height, lhs_adv_diag_content()\Description)
|
||||
Case #lhs_adv_dialog_string
|
||||
lhs_adv_diag_content()\Text_Id = TextGadget(#PB_Any, 5, PoSY , 90, Height, lhs_adv_diag_content()\Description)
|
||||
lhs_adv_diag_content()\Id = StringGadget(#PB_Any, 100, PoSY , 290, Height, lhs_adv_diag_content()\Response)
|
||||
Case #lhs_adv_dialog_edit
|
||||
lhs_adv_diag_content()\Text_Id = TextGadget(#PB_Any, 5, PoSY , 90, Height, lhs_adv_diag_content()\Description)
|
||||
lhs_adv_diag_content()\Id = EditorGadget(#PB_Any, 100, PoSY , 290, Height)
|
||||
SetGadgetText(lhs_adv_diag_content()\Id, lhs_adv_diag_content()\Response)
|
||||
Default
|
||||
;Reines Text Element
|
||||
|
||||
EndSelect
|
||||
|
||||
Wend
|
||||
; Ok und Cancel Button
|
||||
PosY + Height + 10
|
||||
Button_Ok = ButtonGadget(#PB_Any, 5, PosY, 190, 40, "Ok")
|
||||
Button_Cancel = ButtonGadget(#PB_Any, 205, PosY, 190, 40, "Cancel")
|
||||
Repeat
|
||||
Event = WaitWindowEvent()
|
||||
|
||||
Select Event
|
||||
Case #PB_Event_CloseWindow
|
||||
Quit=1
|
||||
Case #PB_Event_Gadget
|
||||
Select EventGadget()
|
||||
Case Button_Cancel
|
||||
CloseWindow(dialog)
|
||||
ProcedureReturn #False
|
||||
Case Button_Ok
|
||||
ResetList(lhs_adv_diag_content())
|
||||
NextElement(lhs_adv_diag_content())
|
||||
While NextElement(lhs_adv_diag_content())
|
||||
lhs_adv_diag_content()\Response = GetGadgetText(lhs_adv_diag_content()\Id)
|
||||
Wend
|
||||
CloseWindow(dialog)
|
||||
ProcedureReturn #True
|
||||
EndSelect
|
||||
|
||||
EndSelect
|
||||
|
||||
|
||||
Until Quit=1
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure.s get_explizit(UID.s)
|
||||
ResetList(lhs_adv_diag_content())
|
||||
While NextElement(lhs_adv_diag_content())
|
||||
If lhs_adv_diag_content()\UID = UID
|
||||
ProcedureReturn lhs_adv_diag_content()\Response
|
||||
EndIf
|
||||
Wend
|
||||
|
||||
ProcedureReturn UID
|
||||
EndProcedure
|
||||
|
||||
|
||||
Procedure get_init()
|
||||
Current_Element = 1
|
||||
EndProcedure
|
||||
|
||||
Procedure.s get()
|
||||
|
||||
EndProcedure
|
||||
|
||||
|
||||
EndModule
|
||||
|
||||
; lhs_lib_adv_diag::init("Test Dialog")
|
||||
; lhs_lib_adv_diag::add("Test", "test", lhs_lib_adv_diag::#lhs_adv_dialog_edit, 2)
|
||||
; lhs_lib_adv_diag::add("Test2", "test2", lhs_lib_adv_diag::#lhs_adv_dialog_string, 1)
|
||||
; lhs_lib_adv_diag::add("Test3", "test3", lhs_lib_adv_diag::#lhs_adv_dialog_edit, 1)
|
||||
; lhs_lib_adv_diag::add("Test4", "test4", lhs_lib_adv_diag::#lhs_adv_dialog_string, 1)
|
||||
; If lhs_lib_adv_diag::dialog()
|
||||
; MessageRequester("Info", "Ok")
|
||||
; Else
|
||||
; MessageRequester("Info", "Cancel")
|
||||
; EndIf
|
||||
; MessageRequester("Test", lhs_lib_adv_diag::get_explizit("test"))
|
||||
; IDE Options = PureBasic 5.71 beta 1 LTS (Linux - x64)
|
||||
; CursorPosition = 95
|
||||
; FirstLine = 67
|
||||
; Folding = --
|
||||
; EnableXP
|
||||
; SubSystem = qt
|
Loading…
Reference in a new issue