Gadget sur un Canvas
Publié : jeu. 05/sept./2013 10:37
Je pensais qu'un StringGadget était inopérationnel sur un CanvasGadget.
Je voudrais savoir si le résultat de ce code est un bug ou pas et si ça fonctionne sous environnement Linux et Mac OS.
Avec la souris, sélectionner une position sur le canvas. Entrer un texte, puis valider avec la touche entrée.
Je voudrais savoir si le résultat de ce code est un bug ou pas et si ça fonctionne sous environnement Linux et Mac OS.
Avec la souris, sélectionner une position sur le canvas. Entrer un texte, puis valider avec la touche entrée.
Code : Tout sélectionner
Enumeration Police
#Font
EndEnumeration
Enumeration Windows
#Mainform
EndEnumeration
Enumeration Gadgets
#Canvas
#Buffer
EndEnumeration
Enumeration MenuAndShortCut
#Kbd_Return
EndEnumeration
Define.l Event, WEvent, MEvent, GEvent, TEvent
Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered|#PB_Window_SizeGadget
Global WWidth.i, WHeight.i, Buffer.s
Procedure Open_MainForm()
LoadFont(#Font, "Arial", 9)
SetGadgetFont(#PB_Default, FontID(#Font))
OpenWindow(#Mainform, 0, 0, 800, 600, "New Form", WindowStyle)
CanvasGadget(#Canvas, 0, 0, 800, 600)
AddKeyboardShortcut(#Mainform, #PB_Shortcut_Return, #Kbd_Return)
EndProcedure
Open_MainForm()
Repeat
Event = WaitWindowEvent(10)
WEvent = EventWindow()
MEvent = EventMenu()
GEvent = EventGadget()
TEvent = EventType()
Select Event
Case #PB_Event_Menu
Select MEvent
Case #Kbd_Return
If IsGadget(#Buffer)
Buffer = GetGadgetText(#Buffer)
StartDrawing(CanvasOutput(#Canvas))
DrawingMode(#PB_2DDrawing_Transparent )
DrawingFont(FontID(#Font))
DrawText(GadgetX(#Buffer), GadgetY(#Buffer), Buffer, RGB(0, 0, 0))
StopDrawing()
FreeGadget(#Buffer)
EndIf
EndSelect
Case #PB_Event_Gadget
Select GEvent
Case #Canvas
Select TEvent
Case #PB_EventType_LeftButtonDown
x = GetGadgetAttribute(0, #PB_Canvas_MouseX)
y = GetGadgetAttribute(0, #PB_Canvas_MouseY)
StringGadget(#Buffer, x, y, 300, 22,"Votre texte")
SetActiveGadget(#Buffer)
EndSelect
EndSelect
Case #PB_Event_SizeWindow
WWidth = WindowWidth(#Mainform, #PB_Window_InnerCoordinate)
WHeight = WindowHeight(#Mainform, #PB_Window_InnerCoordinate)
ResizeGadget(#Canvas, #PB_Ignore, #PB_Ignore, WWidth, WHeight)
Case #PB_Event_CloseWindow
End
EndSelect
ForEver