Commit Graph

29 Commits

Author SHA1 Message Date
Pietro Gagliardi 8a81650b3d Moved it all back; the preemptive multitaksing during an event handler kills us on all platforms. Going to have to restrict ALL GUI accss to happening from one t hread, so going to need to drop uitask entirely and have just a start() callback for startup code and a post() function for posting requests to windows (like channel sends but into a perpetual buffer). 2014-07-02 22:53:03 -04:00
Pietro Gagliardi 5d339e656b Moved everything out of the way pending rewrite. 2014-07-02 17:13:40 -04:00
Pietro Gagliardi 1f0299bd51 Removed the gtk_main_quit() kludge from uitask_unix.go; this also removes our_idle_callback() and its associated stuff. 2014-07-01 19:42:55 -04:00
Pietro Gagliardi e04e5f5cad Converted the GTK+ backend to use the new uitask. Indeterminate progressbars no longer work; this will be fixed soon. 2014-07-01 12:09:31 -04:00
Pietro Gagliardi abb642071d Made the default action for Window.Closing reject the close request. 2014-07-01 09:44:57 -04:00
Pietro Gagliardi 3565889e15 Made Window.Closing a callback closure. 2014-06-30 23:48:08 -04:00
Pietro Gagliardi ffa1bbe0b9 Restored the previous new API. I'm going to change it so that events are callbacks rather than using a window handler, but other than that... yeah. 2014-06-30 22:48:12 -04:00
Pietro Gagliardi 33155f7496 Reverted everything back to the old API. 2014-06-30 09:57:44 -04:00
Pietro Gagliardi 385993792f Migrated the GTK+ backend to the new API. 2014-06-28 21:40:44 -04:00
Pietro Gagliardi 4a68c3cb7a Applied the new control sizing system to the GTK+ backend. 2014-06-25 23:44:22 -04:00
Pietro Gagliardi 1e66637cd2 More go fmt. 2014-06-10 14:59:39 -04:00
Pietro Gagliardi 10f55564d0 Fixed modality issues on the GTK+ MsgBox() changes. The system introduced here has the advantage of scaling out to all other types of dialogs. 2014-06-08 11:50:11 -04:00
Pietro Gagliardi 99059483a7 Resolved TODOs in callbacks_unix.go. (For the returning FALSE TODO, I decided it would be safest to let event handlers propagate, as I did with Areas earlier.) 2014-06-02 22:07:50 -04:00
Pietro Gagliardi a48dd80add Removed the extra #cgo directives from the Unix files. cgo collects directives from ALL files, rather than using each file's directive individually, so having them combined like this is pointless. Instead, the #cgo directives are (or is, since there's only one) in uitask_unix.go. Will do the same for Mac next; this will help since we're going to add a CFLAGS value afterward. 2014-05-19 22:32:38 -04:00
Pietro Gagliardi b9c12da838 More TODOs (see previous commit). 2014-05-17 17:10:23 -04:00
Pietro Gagliardi 3bf215ae4e Split out the common resizing code into its own function so that it's all in one place. This will also affect what happens if I switch to DeferWindowPos() on Windows. 2014-04-07 14:32:25 -04:00
Pietro Gagliardi 81153617dc Got rid of gtkWidget and changed to using *C.GtkWidget everywhere. This gets rid of some of the casting functions and invocations of said functions, and only adds sysdata_unix.go to the cgo list. 2014-04-01 16:30:38 -04:00
Pietro Gagliardi 14770e890a Moved <stdlib.h> includes in the GTK+ backend to gtk_unix.h; organized that file a bit. 2014-04-01 16:01:49 -04:00
Pietro Gagliardi 64d5eb541e Changed the new resizing code so that it uses the same allocated slice per window instead of making a new one to store all the resize requests each time. 2014-03-17 21:09:03 -04:00
Pietro Gagliardi 19227080da Changed window resizes so that the actual Control.setRect() functions appended to an array of requests that the resize() function set all at once instead of having each done individually. This will be necessary for what I think will be a solution to the deadlocks. It doesn't work right now; I'm assuming it's allocating too much memory. I know how to fix this, but I'm committing what I have so far to be safe. 2014-03-17 20:42:36 -04:00
Pietro Gagliardi 63f8033f49 Split out includes of <gtk/gtk.h> into a new header file so the GTK+ versioning macros can be included in all Go files, not just area_unix.go. 2014-03-16 10:34:12 -04:00
Pietro Gagliardi a7f7ea1b8d Major overhaul of the way GTK+ events are handled. Closures that perform events are no longer generated; instead all events are given to fixed, compile-time, cgo-exported callback functions that take the sysData as user data. This saves memory (we no longer need to generate closures and we no longer have to save them elsewhere to keep them from being garbage collected) and makes the top of sysdata_unix.go slightly cleaner, but it moves the code for handling UI events into callbacks_unix.go. This is needed for Area, in which we need to feed the sysData to an event connected to a subwidget instead of the main widget returned. 2014-03-14 20:03:02 -04:00
Pietro Gagliardi 34ce16d586 Separated file creation dates from the package comment. 2014-03-12 21:55:45 -04:00
Pietro Gagliardi 55f7a9638e Changed the way uitask is dispatched on GTK+ to make event handling not a CPU hog. 2014-03-12 20:00:29 -04:00
Pietro Gagliardi fb82e651a4 Moved to a proper package; main() is now a test and go test -c is used to build. Once I iron out a bug with Windows event handling, I'll add a README. 2014-02-19 11:41:10 -05:00
Pietro Gagliardi 622d7b1569 Added window (and thus control) resizing. Other bugs have been fixed along the way. 2014-02-16 18:04:57 -05:00
Pietro Gagliardi 7c365b3920 [GTK+] Added buttons. Things aren't quite being positioned properly yet though... 2014-02-16 17:30:58 -05:00
Pietro Gagliardi 1bcbce4142 Cleaned up the idle callback code. 2014-02-16 17:09:58 -05:00
Pietro Gagliardi 7a99d42d65 Added cgo-safe callback code for GTK+ signals. GTK+ signals work! 2014-02-16 16:43:48 -05:00