Skip to content

wiloe/walk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About Walk
==========

Walk is a "Windows Application Library Kit" for the Go Programming Language.

It includes packages for 2-D drawing, graphical user interfaces, printing and
more. The goal is to have a library that makes developing a Windows Desktop
application using the Go Programming Language an easy walk.

For now it will be restricted to those apis that are available out of the box on
Windows XP SP3.

Is it ready for production work?
================================

No, there is a lot of stuff missing and some existing parts may need to be
redone. Don't rely on anything here to be stable yet, it will take some time.

Setup
=====

1. Make sure you have a working Go installation and build environment, 
   see this go-nuts post for details:
   http://groups.google.com/group/golang-nuts/msg/5c87630a84f4fd0c
   
   Updated versions of the Windows Go build are available here:
   http://code.google.com/p/gomingw/downloads/list
   
2. git clone https://github.com/lxn/walk.git

3. cd walk/src && gomake

Using Walk
==========

See the examples directory for inspiration. Docs may appear as time permits ;)

Some features of the Walk gui package require an application manifest file
alongside your executable, to make use of common controls 6.0. See the examples
directory for such a file.

You should be aware that this project is far from being mature - anything could
break or change without warning.

ui2walk
=======

The ui2walk tool generates Go code for use with Walk from Qt Designer ui files.

It generates a .go file for every .ui file in the current working directory,
recursively.

If you e.g. have a file 'mydialog.ui', ui2walk will create 'mydialog_ui.go' in 
the same directory.

To use the generated code, put something like this into a file 'mydialog.go':

--------------------------------------------------------------------------------

package main

import (
	"os"
	"walk"
)

type MyDialog struct {
	*walk.Dialog
	ui myDialogUI
}

func RunMyDialog(owner walk.RootWidget) (int, os.Error) {
	dlg := &MyDialog{}
	if err := dlg.init(owner); err != nil {
		return 0, err
	}
	
	// Your custom init and event handling code goes here

	return dlg.Run(), nil
}

--------------------------------------------------------------------------------

ui2walk is early code and a lot of features are missing. Dialogs and composites
should already work more or less, support for MainWindows will arrive later.

Contribute
==========

Contributions in form of design, code, documentation, bug reporting or other
ways you see fit are very welcome.

Thank You!

About

"Windows Application Library Kit" for the Go Programming Language

Resources

License

Stars

Watchers

Forks

Packages

No packages published