Code: Select all
#PB_EventType_Change
#PB_EventType_Focus
#PB_EventType_LostFocus
Code: Select all
#PB_EventType_Change
#PB_EventType_Focus
#PB_EventType_LostFocus
Code: Select all
;-TOP
Procedure ScintillaCallBack(Gadget, *scinotify.SCNotification)
Select *scinotify\nmhdr\code
Case #SCN_MODIFIED
;Debug *scinotify\modificationType
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
; Always ready
CompilerCase #PB_OS_MacOS
If *scinotify\modificationType & #SC_MOD_BEFOREINSERT
PostEvent(#PB_Event_Gadget, GetActiveWindow(), Gadget, #PB_EventType_Change)
ElseIf *scinotify\modificationType & #SC_MOD_BEFOREDELETE
PostEvent(#PB_Event_Gadget, GetActiveWindow(), Gadget, #PB_EventType_Change)
EndIf
CompilerCase #PB_OS_Linux
If *scinotify\modificationType & #SC_MOD_BEFOREINSERT
PostEvent(#PB_Event_Gadget, GetActiveWindow(), Gadget, #PB_EventType_Change)
ElseIf *scinotify\modificationType & #SC_MOD_BEFOREDELETE
PostEvent(#PB_Event_Gadget, GetActiveWindow(), Gadget, #PB_EventType_Change)
EndIf
CompilerEndSelect
Case #SCN_FOCUSIN
PostEvent(#PB_Event_Gadget, GetActiveWindow(), Gadget, #PB_EventType_Focus)
Case #SCN_FOCUSOUT
PostEvent(#PB_Event_Gadget, GetActiveWindow(), Gadget, #PB_EventType_LostFocus)
EndSelect
EndProcedure
If OpenWindow(0, 0, 0, 330, 90, "ScintillaGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If InitScintilla()
ScintillaGadget(0, 10, 10, 320, 70, @ScintillaCallBack())
; Ausgabe auf rote Farbe setzen
ScintillaSendMessage(0, #SCI_STYLESETFORE, 0, RGB(255, 0, 0))
; Anfänglichen Text des ScintillaGadgets festlegen
ScintillaSendMessage(0, #SCI_SETTEXT, 0, UTF8("This is a simple ScintillaGadget with text..."))
; Hinzufügen einer zweiten Zeile mit einem vorherigen Zeilenumbruch
Text$ = Chr(10) + "Second line"
ScintillaSendMessage(0, #SCI_APPENDTEXT, Len(Text$), UTF8(Text$))
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Select EventType()
Case #PB_EventType_Focus
Debug "Focus"
Case #PB_EventType_LostFocus
Debug "LostFocus"
Case #PB_EventType_Change
Debug "Change"
EndSelect
EndSelect
EndSelect
ForEver
EndIf
Hi Taz,
Code: Select all
InitScintilla()
Runtime Enumeration
#Scintilla
EndEnumeration
Procedure MyCallback(Gadget, *scinotify.SCNotification)
Debug ElapsedMilliseconds()
EndProcedure
#Dialog = 0
#Xml = 0
XML$ = "<window id='#PB_Any' name='test' text='test' minwidth='auto' minheight='auto' flags='#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_SizeGadget'>" +
" <vbox expand='item:2'>" +
" <hbox>" +
" <button text='button 1'/>" +
" <checkbox text='checkbox 1'/>" +
" <button text='button 2'/>" +
" </hbox>" +
" <scintilla id='#Scintilla' text='content' height='150'/>" +
" </vbox>" +
"</window>"
If ParseXML(#Xml, XML$) And XMLStatus(#Xml) = #PB_XML_Success
If CreateDialog(#Dialog) And OpenXMLDialog(#Dialog, #Xml, "test")
ScintillaGadget(#Scintilla,GadgetX(#Scintilla),GadgetY(#Scintilla),GadgetWidth(#Scintilla),GadgetHeight(#Scintilla),@MyCallback())
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Else
Debug "Dialog error: " + DialogError(#Dialog)
EndIf
Else
Debug "XML error: " + XMLError(#Xml) + " (Line: " + XMLErrorLine(#Xml) + ")"
EndIf
Code: Select all
InitScintilla()
Runtime Enumeration Gadgets
#ORG_FILE
#ORG_OPEN
#ORG_EDIT
#NEW_FILE
#NEW_OPEN
#NEW_SAVE
#NEW_EDIT
EndEnumeration
Procedure MyCallback(Gadget, *scinotify.SCNotification)
Debug ElapsedMilliseconds()
EndProcedure
#Dialog = 0
#Xml = 0
XML$ = ~" <window flags='#PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered' minwidth='400' minheight='300' text='Translate Json File' name='test' id='#PB_Any'>\n"
XML$ + ~" <vbox>\n"
XML$ + ~" <splitter colspan='2' flags='#PB_Splitter_Vertical' name='SPLIT1'>\n"
XML$ + ~" <frame text='Orginal'>\n"
XML$ + ~" <gridbox colexpand='item:1' rowexpand='item:2'>\n"
XML$ + ~" <string flags='#PB_String_ReadOnly' id='#ORG_FILE'/>\n"
XML$ + ~" <button text='. . .' id='#ORG_OPEN'/>\n"
XML$ + ~" <scintilla colspan='2' id='#ORG_EDIT'/> \n"
XML$ + ~" </gridbox> \n"
XML$ + ~" </frame>\n"
XML$ + ~" <frame text='New'>\n"
XML$ + ~" <gridbox colexpand='item:1' rowexpand='item:2' columns='3'>\n"
XML$ + ~" <string flags='#PB_String_ReadOnly' id='#NEW_FILE'/>\n"
XML$ + ~" <button text='. . .' id='#NEW_OPEN'/>\n"
XML$ + ~" <button text='Save' id='#NEW_SAVE'/>\n"
XML$ + ~" <scintilla colspan='3' id='#NEW_EDIT'/> \n"
XML$ + ~" </gridbox> \n"
XML$ + ~" </frame> \n"
XML$ + ~" </splitter> \n"
XML$ + ~" </vbox> \n"
XML$ + ~" </window> \n"
If ParseXML(#Xml, XML$) And XMLStatus(#Xml) = #PB_XML_Success
If CreateDialog(#Dialog) And OpenXMLDialog(#Dialog, #Xml, "test")
ScintillaGadget(#ORG_EDIT,GadgetX(#ORG_EDIT),GadgetY(#ORG_EDIT),GadgetWidth(#ORG_EDIT),GadgetHeight(#ORG_EDIT),@MyCallback())
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Else
Debug "Dialog error: " + DialogError(#Dialog)
EndIf
Else
Debug "XML error: " + XMLError(#Xml) + " (Line: " + XMLErrorLine(#Xml) + ")"
EndIf
Code: Select all
InitScintilla()
Runtime Enumeration Gadgets
#ORG_FILE
#ORG_OPEN
#ORG_EDIT
#NEW_FILE
#NEW_OPEN
#NEW_SAVE
#NEW_EDIT
EndEnumeration
Procedure MyCallback(Gadget, *scinotify.SCNotification)
Debug ElapsedMilliseconds()
EndProcedure
#Dialog = 0
#Xml = 0
XML$ = ~" <window flags='#PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered' minwidth='400' minheight='300' text='Translate Json File' name='test' id='#PB_Any'>\n"
XML$ + ~" <vbox>\n"
XML$ + ~" <splitter colspan='2' flags='#PB_Splitter_Vertical' name='SPLIT1'>\n"
XML$ + ~" <frame text='Orginal'>\n"
XML$ + ~" <gridbox colexpand='item:1' rowexpand='item:2'>\n"
XML$ + ~" <string flags='#PB_String_ReadOnly' id='#ORG_FILE'/>\n"
XML$ + ~" <button text='. . .' id='#ORG_OPEN'/>\n"
XML$ + ~" <scintilla colspan='2' id='#ORG_EDIT'/> \n"
XML$ + ~" </gridbox> \n"
XML$ + ~" </frame>\n"
XML$ + ~" <frame text='New'>\n"
XML$ + ~" <gridbox colexpand='item:1' rowexpand='item:2' columns='3'>\n"
XML$ + ~" <string flags='#PB_String_ReadOnly' id='#NEW_FILE'/>\n"
XML$ + ~" <button text='. . .' id='#NEW_OPEN'/>\n"
XML$ + ~" <button text='Save' id='#NEW_SAVE'/>\n"
XML$ + ~" <scintilla colspan='3' id='#NEW_EDIT'/> \n"
XML$ + ~" </gridbox> \n"
XML$ + ~" </frame> \n"
XML$ + ~" </splitter> \n"
XML$ + ~" </vbox> \n"
XML$ + ~" </window> \n"
If ParseXML(#Xml, XML$) And XMLStatus(#Xml) = #PB_XML_Success
If CreateDialog(#Dialog) And OpenXMLDialog(#Dialog, #Xml, "test")
OpenGadgetList(GetGadgetAttribute(DialogGadget(#Dialog,"SPLIT1"),#PB_Splitter_FirstGadget))
ScintillaGadget(#ORG_EDIT,GadgetX(#ORG_EDIT),GadgetY(#ORG_EDIT),GadgetWidth(#ORG_EDIT),GadgetHeight(#ORG_EDIT),@MyCallback())
CloseGadgetList()
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Else
Debug "Dialog error: " + DialogError(#Dialog)
EndIf
Else
Debug "XML error: " + XMLError(#Xml) + " (Line: " + XMLErrorLine(#Xml) + ")"
EndIf