Upgrade to latest nmage(v0.16.2)+icon+readme

This commit is contained in:
bloeys
2023-02-03 02:34:49 +04:00
parent 0419ea06d1
commit b0733e9a0c
7 changed files with 54 additions and 56 deletions

View File

@ -1,3 +1,14 @@
# gopad
Notepad in Golang and using nMage and ImGUI.
## Developer Details
### Hide Console on Windows
Running the executable on windows opens a terminal as well. To hide that we build with: `go build -ldflags -H=windowsgui .`
### Program Icon
`*.syso` files are used by `go build` on Windows to add information to the executable that Windows can read, such as version and icon.
We use `github.com/tc-hib/go-winres` to generate these via the command: `go-winres simply --icon gopad-icon.ico --manifest gui`

View File

@ -335,7 +335,7 @@ func getCharIndexFromCursor(l *Line, cursorGridX int) int {
return -1
}
//TODO: The offset chars must be how many grid cols between cursor col and the nearest non-tab char.
// TODO: The offset chars must be how many grid cols between cursor col and the nearest non-tab char.
func getTabs(l *Line, gridPosX int) (tabCount, charsToOffsetBy int) {
charIndex := getCharIndexFromCursor(l, gridPosX)

12
go.mod
View File

@ -1,15 +1,15 @@
module github.com/bloeys/gopad
go 1.17
go 1.18
require (
github.com/bloeys/nmage v0.0.10
github.com/inkyblackness/imgui-go/v4 v4.4.0
github.com/veandco/go-sdl2 v0.4.14
github.com/bloeys/nmage v0.16.2
github.com/inkyblackness/imgui-go/v4 v4.6.0
github.com/veandco/go-sdl2 v0.4.25
)
require (
github.com/bloeys/assimp-go v0.4.2 // indirect
github.com/bloeys/gglm v0.3.1 // indirect
github.com/bloeys/assimp-go v0.4.4 // indirect
github.com/bloeys/gglm v0.43.0 // indirect
github.com/go-gl/gl v0.0.0-20211210172815-726fda9656d6 // indirect
)

23
go.sum
View File

@ -1,22 +1,19 @@
github.com/bloeys/assimp-go v0.4.2 h1:ArVK74BCFcTO/rCGj2NgZG9xtbjnJdEn5npIeJx1Z04=
github.com/bloeys/assimp-go v0.4.2/go.mod h1:my3yRxT7CfOztmvi+0svmwbaqw0KFrxaHxncoyaEIP0=
github.com/bloeys/gglm v0.3.1 h1:Sy9upW7SBsBfDXrSmEhid3aQ+7J7itej+upwcxOnPMQ=
github.com/bloeys/gglm v0.3.1/go.mod h1:qwJQ0WzV191wAMwlGicbfbChbKoSedMk7gFFX6GnyOk=
github.com/bloeys/nmage v0.0.10 h1:6Ryl3qjEbXxeIL+9BnBxOrGaW9mKObyY/JbRYkR8ogQ=
github.com/bloeys/nmage v0.0.10/go.mod h1:4h2tKtMvk9ab8r/+rem4QonPXEBTho6VWvpCMm0M6iM=
github.com/bloeys/assimp-go v0.4.4 h1:Yn5e/RpE0Oes0YMBy8O7KkwAO4R/RpgrZPJCt08dVIU=
github.com/bloeys/assimp-go v0.4.4/go.mod h1:my3yRxT7CfOztmvi+0svmwbaqw0KFrxaHxncoyaEIP0=
github.com/bloeys/gglm v0.43.0 h1:ZpOghR3PHfpkigTDh+FqxLsF0gN8CD6s/bWoei6LyxI=
github.com/bloeys/gglm v0.43.0/go.mod h1:qwJQ0WzV191wAMwlGicbfbChbKoSedMk7gFFX6GnyOk=
github.com/bloeys/nmage v0.16.2 h1:fuCaMrGW5ev4sRS0E70bv3Y++C84RMItFTBSq4/+Tfc=
github.com/bloeys/nmage v0.16.2/go.mod h1:Z9pqkadzLYP+HUnV11lsomfxIzcpzLX3Yp5YCqiICUM=
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/go-gl/gl v0.0.0-20211025173605-bda47ffaa784/go.mod h1:9YTyiznxEY1fVinfM7RvRcjRHbw2xLBJ3AAGIT0I4Nw=
github.com/go-gl/gl v0.0.0-20211210172815-726fda9656d6 h1:zDw5v7qm4yH7N8C8uWd+8Ii9rROdgWxQuGoJ9WDXxfk=
github.com/go-gl/gl v0.0.0-20211210172815-726fda9656d6/go.mod h1:9YTyiznxEY1fVinfM7RvRcjRHbw2xLBJ3AAGIT0I4Nw=
github.com/inkyblackness/imgui-go/v4 v4.3.0/go.mod h1:g8SAGtOYUP7rYaOB2AsVKCEHmPMDmJKgt4z6d+flhb0=
github.com/inkyblackness/imgui-go/v4 v4.4.0 h1:jY32Xl18aRwTBXaDfyefCmPDxJOtGM8kGfu/kMNJpbE=
github.com/inkyblackness/imgui-go/v4 v4.4.0/go.mod h1:g8SAGtOYUP7rYaOB2AsVKCEHmPMDmJKgt4z6d+flhb0=
github.com/inkyblackness/imgui-go/v4 v4.6.0 h1:ShcnXEYl80+xREGBY9OpGWePA6FfJChY9Varsm+3jjE=
github.com/inkyblackness/imgui-go/v4 v4.6.0/go.mod h1:g8SAGtOYUP7rYaOB2AsVKCEHmPMDmJKgt4z6d+flhb0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/veandco/go-sdl2 v0.4.10/go.mod h1:OROqMhHD43nT4/i9crJukyVecjPNYYuCofep6SNiAjY=
github.com/veandco/go-sdl2 v0.4.14 h1:ShagETHJG8NCWVn9rwfZ9WLIaN4c2maw3gfFH+9DlOg=
github.com/veandco/go-sdl2 v0.4.14/go.mod h1:OROqMhHD43nT4/i9crJukyVecjPNYYuCofep6SNiAjY=
github.com/veandco/go-sdl2 v0.4.25 h1:J5ac3KKOccp/0xGJA1PaNYKPUcZm19IxhDGs8lJofPI=
github.com/veandco/go-sdl2 v0.4.25/go.mod h1:OROqMhHD43nT4/i9crJukyVecjPNYYuCofep6SNiAjY=

62
main.go
View File

@ -22,7 +22,6 @@ type Gopad struct {
Win *engine.Window
mainFont imgui.Font
ImGUIInfo nmageimgui.ImguiInfo
Quitting bool
mainMenuBarHeight float32
sidebarWidthFactor float32
@ -46,8 +45,6 @@ type Gopad struct {
winHeight float32
}
var ()
func main() {
chdirErr := os.Chdir(filepath.Dir(os.Args[0]))
@ -80,8 +77,23 @@ func main() {
newRunes: []rune{},
}
// Init runs within an imgui frame, but imgui frames do NOT allow adding fonts,
// so we do it here
g.LoadFonts()
// engine.SetVSync(true)
engine.Run(&g)
engine.Run(&g, g.Win, g.ImGUIInfo)
}
func (g *Gopad) LoadFonts() {
fConfig := imgui.NewFontConfig()
fConfig.SetOversampleH(2)
fConfig.SetOversampleV(2)
g.mainFont = g.ImGUIInfo.AddFontTTF("./res/fonts/courier-prime.regular.ttf", settings.FontSize, &fConfig, nil)
fConfig.Delete()
}
func (g *Gopad) Init() {
@ -89,14 +101,6 @@ func (g *Gopad) Init() {
g.Win.SDLWin.SetTitle("Gopad")
g.Win.EventCallbacks = append(g.Win.EventCallbacks, g.handleWindowEvents)
//Setup font
fConfig := imgui.NewFontConfig()
defer fConfig.Delete()
fConfig.SetOversampleH(2)
fConfig.SetOversampleV(2)
g.mainFont = g.ImGUIInfo.AddFontTTF("./res/fonts/courier-prime.regular.ttf", settings.FontSize, &fConfig, nil)
//Sidebar
g.CurrDirContents = getDirContents(g.CurrDir)
@ -122,9 +126,8 @@ func (g *Gopad) Init() {
}
g.activeEditor = len(g.editors) - 1
}
func (g *Gopad) Start() {
// Prepare editors
imgui.PushFont(g.mainFont)
for i := 0; i < len(g.editors); i++ {
e := &g.editors[i]
@ -150,14 +153,6 @@ func (g *Gopad) handleWindowEvents(event sdl.Event) {
}
}
func (g *Gopad) FrameStart() {
if g.editorToClose > -1 {
g.closeEditor(g.editorToClose)
g.editorToClose = -1
}
}
func (g *Gopad) closeEditor(eIndex int) {
g.editors = append(g.editors[:eIndex], g.editors[eIndex+1:]...)
@ -172,7 +167,14 @@ func (g *Gopad) closeEditor(eIndex int) {
func (g *Gopad) Update() {
if input.IsQuitClicked() {
g.Quitting = true
engine.Quit()
return
}
// Close editors if needed
if g.editorToClose > -1 {
g.closeEditor(g.editorToClose)
g.editorToClose = -1
}
if g.haveErr {
@ -448,19 +450,7 @@ func (g *Gopad) FrameEnd() {
g.newRunes = []rune{}
}
func (g *Gopad) ShouldRun() bool {
return !g.Quitting
}
func (g *Gopad) GetWindow() *engine.Window {
return g.Win
}
func (g *Gopad) GetImGUI() nmageimgui.ImguiInfo {
return g.ImGUIInfo
}
func (g *Gopad) Deinit() {
func (g *Gopad) DeInit() {
g.Win.Destroy()
}

BIN
rsrc_windows_386.syso Executable file

Binary file not shown.

BIN
rsrc_windows_amd64.syso Executable file

Binary file not shown.