The following editor/code supports the use of CTRL-X,C,V to copy text around but CTRL-A to select all does not work. Does anyone know how to add CTRL-A support?
Code: Select all
'===============================================================================
' Editor.bas
' Simple Text Editor
' Created on September 09, 2014
' Latest change on October 20, 2016
'===============================================================================
#Include "WinGUI.bi"
#Include "WinDialogs.bi"
Dim Shared As HWND Window_Main, Edit_Text
Dim As MSG msg
Dim Shared As String file, filter, text
Dim As Long x0, y0, x1, y1
Declare Sub FileSave()
'Filter for LoadSaveDialog:
filter = "Basic Files (*.bas)" + Chr(0) + "*.bas" + Chr(0) _
+ "Text Files (*.txt)" + Chr(0) + "*.txt" + Chr(0)_
+ "All Files (*.*)" + Chr(0) + "*.*" + Chr(0, 0)
Sub FileNew()
'New file
If Len(EditBox_GetText(Edit_Text)) > 0 Then
If MessageBox(0, "Save text?", "Save", MB_YESNO Or MB_ICONQUESTION) = IDYES Then FileSave()
EditBox_SetText(Edit_Text, "")
End If
file = ""
SetWindowText(Window_Main, "New File")
End Sub
Sub FileOpen()
'Open a file
Dim As String Buffer
If Len(EditBox_GetText(Edit_Text)) > 0 Then
If MessageBox(0, "Save text?", "Save", MB_YESNO Or MB_ICONQUESTION) = IDYES Then FileSave()
End If
EditBox_SetText(Edit_Text, "")
file = LoadSaveDialog(, filter)
If file <> "" Then
Open file For Binary As #1
Buffer = Space(LOF(1))
Get #1,, Buffer
Close #1
EditBox_SetText(Edit_Text, Buffer)
SetWindowText(Window_Main, file)
End If
End Sub
Sub FileSave()
'Save file
file = LoadSaveDialog(1, filter)
If file <> "" Then
Open file For Binary As #1
Put #1,, EditBox_GetText(Edit_Text)
Close #1
SetWindowText(Window_Main, file)
End If
End Sub
Sub FileExit()
'End
If Len(EditBox_GetText(Edit_Text)) > 0 Then
If MessageBox(0, "Save text?", "Save", MB_YESNO Or MB_ICONQUESTION) = IDYES Then FileSave()
End If
End
End Sub
Sub Info()
'Info anzeigen
MessageBox(0, "Simple text editor, created in FreeBasic", "Info", MB_OK Or MB_ICONINFORMATION)
End Sub
Sub CreateWindow_Main()
'Main Window with menu and text editor
Dim As HMENU hMenu, hFile, hEdit, hHelp
Window_Main = Window_New(100, 100, 800, 500, "Text Editor")
hMenu = CreateMenu()
hEdit = CreateMenu()
hFile = CreateMenu()
hHelp = CreateMenu()
MenuTitle(hMenu, hFile, "File")
MenuTitle(hMenu, hEdit, "Edit")
MenuTitle(hMenu, hHelp, "Help")
MenuItem(hFile, 1, "New")
MenuItem(hFile, 2, "Open")
MenuItem(hFile, 3, "Save")
MenuItem(hFile, 4, "Exit")
MenuItem(hEdit, 5, "Undo")
MenuItem(hEdit, 6, "Cut")
MenuItem(hEdit, 7, "Copy")
MenuItem(hEdit, 8, "Paste")
MenuItem(hEdit, 9, "Delete")
MenuItem(hHelp, 10, "Info")
SetMenu(Window_Main, hMenu )
Edit_Text = Editor_New(10, 10, 780, 480, "",, Window_Main)
Control_SetFont(Edit_Text, "Courier New")
End Sub
'Main:
CreateWindow_Main()
Do
WaitEvent(Window_Main, msg)
Select Case msg.hwnd
Case Window_Main
Select Case msg.message
Case WM_COMMAND 'Menu commands
Select Case msg.wParam
Case 1
FileNew()
Case 2
FileOpen()
Case 3
FileSave()
Case 4
FileExit()
Case 5
EditBox_Undo(Edit_Text)
Case 6
EditBox_Cut(Edit_Text)
Case 7
EditBox_Copy(Edit_Text)
Case 8
EditBox_Paste(Edit_Text)
Case 9
EditBox_Clear(Edit_Text)
Case 10
Info()
End Select
Case Else
'Resize editor if window size is changed
Window_GetSize(Window_Main, x0, y0, x1, y1)
Control_Resize(Edit_Text, 20, 20, x1 - 30, y1 - 30)
End Select
End Select
Loop Until Window_Event_Close(Window_Main, msg)
End