Code: Select all
EnableExplicit
#MaxLines = 20
Define LastLine.I
Procedure AddLine(EditorGadgetID.I, Line.I)
AddGadgetItem(EditorGadgetID, -1, "Line " + Str(Line))
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Linux
Protected EndMark.I
Protected TextBuffer.I
Protected EndIter.GtkTextIter
TextBuffer = gtk_text_view_get_buffer_(GadgetID(EditorGadgetID))
gtk_text_buffer_get_end_iter_(TextBuffer, @EndIter)
EndMark = gtk_text_buffer_create_mark_(TextBuffer, "end_mark",
@EndIter, #False)
gtk_text_view_scroll_mark_onscreen_(GadgetID(EditorGadgetID), EndMark)
CompilerCase #PB_OS_MacOS
Protected Range.NSRange
Range.NSRange\location = Len(GetGadgetText(EditorGadgetID))
CocoaMessage(0, GadgetID(EditorGadgetID), "scrollRangeToVisible:@", @Range)
CompilerCase #PB_OS_Windows
SendMessage_(GadgetID(EditorGadgetID), #EM_SETSEL, -1, -1)
CompilerEndSelect
EndProcedure
OpenWindow(0, 270, 100, 220, 150, "EditorGadget")
EditorGadget(0, 10, 10, 200, 130)
AddWindowTimer(0, 0, 500)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Timer
If LastLine < #MaxLines
LastLine + 1
AddLine(0, LastLine)
Else
RemoveWindowTimer(0, 0)
EndIf
EndSelect
ForEver