2016-09-27 09:05:03 +00:00
|
|
|
|
# GobGen
|
2014-10-04 19:11:52 +00:00
|
|
|
|
|
2016-09-27 09:05:03 +00:00
|
|
|
|
Generate boilerplate code for a GObject descendant in Emacs.
|
2014-10-04 19:11:52 +00:00
|
|
|
|
|
2016-09-27 09:05:03 +00:00
|
|
|
|
## Usage
|
2014-10-04 19:11:52 +00:00
|
|
|
|
|
2016-09-27 09:05:03 +00:00
|
|
|
|
1. Execute `M-x gobgen`
|
|
|
|
|
2. Specify a class name in snake_case
|
|
|
|
|
3. Specify a parent class name in snake_case
|
|
|
|
|
3. If the guessed prefixes are not OK, fix them
|
|
|
|
|
4. Check GLib >= 2.38 if you are building for new(ish) GLib
|
|
|
|
|
versions. This puts some optimalizations in the code, like makes
|
|
|
|
|
use of macros like `g_object_get_private`
|
|
|
|
|
5. Check Has private members if you want to add a private struct to
|
|
|
|
|
your object
|
2014-10-04 19:11:52 +00:00
|
|
|
|
|
2016-09-27 09:05:03 +00:00
|
|
|
|
## Installation
|
2014-10-04 19:11:52 +00:00
|
|
|
|
|
2016-09-27 09:05:03 +00:00
|
|
|
|
1. Clone this repository and add it to your `load-path`
|
|
|
|
|
2. `(require 'gobgen)`
|
2014-10-04 19:11:52 +00:00
|
|
|
|
|
2016-09-27 09:05:03 +00:00
|
|
|
|
## Contributing
|
2014-10-04 19:11:52 +00:00
|
|
|
|
|
2016-09-27 09:05:03 +00:00
|
|
|
|
If you have a feature idea or find a bug, feel free to issue a pull
|
|
|
|
|
request. If you need any help with the code, find me on Matrix
|
|
|
|
|
as
|
|
|
|
|
[@gergely.polonkai.eu](https://riot.im/app/#/user/@gergely:polonkai.eu)
|
|
|
|
|
|
|
|
|
|
## Credits
|
|
|
|
|
|
|
|
|
|
This package is heavily based on Gustavo Sverzut
|
|
|
|
|
Barieri’s
|
|
|
|
|
[gobject-class.el](https://www.emacswiki.org/emacs/gobject-class.el).
|
|
|
|
|
|
|
|
|
|
## Future plans
|
|
|
|
|
|
|
|
|
|
There are tons of features I plan, here is a brief list:
|
|
|
|
|
|
2016-09-27 12:15:38 +00:00
|
|
|
|
* Properties
|
|
|
|
|
* Signals
|
2016-09-27 09:05:03 +00:00
|
|
|
|
* Pre-define methods, virtual or not
|
|
|
|
|
* Add GTK-Doc blocks for for the generated code
|
2016-09-27 12:15:38 +00:00
|
|
|
|
* Widget specialization
|
|
|
|
|
** Standalone with custom `render()` method
|
|
|
|
|
** Composite
|
|
|
|
|
** Templated composite, that should also create a `GtkBuilder`
|
|
|
|
|
template
|
|
|
|
|
* Add some help text for fields
|
|
|
|
|
* GLib requirement check (if 2.38 is turned on)
|
|
|
|
|
* Possibly add a `GET_PRIV` macro for 2.38+
|
2016-09-27 09:05:03 +00:00
|
|
|
|
|
|
|
|
|
## Requirements
|
|
|
|
|
|
|
|
|
|
`gobgen.el` depends only on the Emacs widget library.
|
|
|
|
|
|
|
|
|
|
Tested on Emacs 24.3 and 25.1, please report if you succeed (or fail)
|
|
|
|
|
on other versions!
|