Commit Graph

1284 Commits

Author SHA1 Message Date
Pietro Gagliardi 3873d1990a Added keyboard planning to the Area planning... oh boy. 2014-03-18 14:18:53 -04:00
Pietro Gagliardi 92dc282ffd Added the framework code for handling keyboard events in GTK+ Areas. Oh boy... this is gonna hurt (as I will describe shortly). 2014-03-18 12:44:21 -04:00
Pietro Gagliardi ac684b15a5 One last quick note in README. 2014-03-18 11:55:35 -04:00
Pietro Gagliardi c628c86597 Updated README with this decision. Also other documents as well. 2014-03-18 11:55:01 -04:00
Pietro Gagliardi 24342eb05d Restored the locks everywhere except on resizing calculations. I'll run under the assumption that uitask cannot process any requests while a resize occurs, which means preferredSize() and Stack/Grid.setRect() are inherently safe... let's hope I'm right... 2014-03-18 11:50:56 -04:00
Pietro Gagliardi b95d581e86 Update on my locking problem in the README. 2014-03-18 11:30:35 -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 c180703373 Er oh the crash was because I was still using the lock-friendly code. Will still apply the change to memory allocation because memory reuse. 2014-03-17 21:02:11 -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 c078266c6d Quick README fixup 2014-03-17 14:16:30 -04:00
Pietro Gagliardi e5425036e0 Put the Label that changed each second in the main test. 2014-03-17 14:14:29 -04:00
Pietro Gagliardi ad2208d370 Elaborated in the README. 2014-03-17 14:10:23 -04:00
Pietro Gagliardi 0e8680c04f Dumped the mutex locks from the other controls and elaborated/asked for help in the README. 2014-03-17 14:09:09 -04:00
Pietro Gagliardi bdb26046b6 Removed the areasnafu.md now that I have a solution... reverting back to the channel-based approach re-introduced the Paint deadlock, so it was still there all along. 2014-03-17 13:49:12 -04:00
Pietro Gagliardi 4adf1ae5cd Removed the mutexes from Labels and Areas because I'm at my wits end about settling the deadlock between window resizing and setting a Label's text. 2014-03-17 13:37:51 -04:00
Pietro Gagliardi 7c3647712b Updated the test program to the new AreaHandler interface. The deadlock still happens... just not so easily... so it's elsewhere... 2014-03-16 21:52:50 -04:00
Pietro Gagliardi ae554f10c3 Changed Area to use a delegate handler object that implements the new AreaHandler interface for handling events. Also updated the GTK+ backend with this change, and made a few more tweaks to the documentation in area.go. 2014-03-16 21:40:33 -04:00
Pietro Gagliardi ab4d286c78 Added a document explaining my Area woes. 2014-03-16 14:56:40 -04:00
Pietro Gagliardi 356ed25b52 Added a time display to the Area test for testing deadlocks that will happen when Area becomes more feature-filled... it appears one has now appeared when resizing the window... 2014-03-16 11:24:30 -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 7b95e735d6 More TODOs. 2014-03-16 09:54:37 -04:00
Pietro Gagliardi fbef151bb2 Attempted to fix non-handling of the Alt key by having the GDK window's display's keymap used instead; it didn't work. 2014-03-16 01:39:30 -04:00
Pietro Gagliardi 961d8484bc Clarified that MouseEvent.Held will not include Down/Up. 2014-03-15 22:39:16 -04:00
Pietro Gagliardi 6ef6dd8eba Added a test of the mouse event handling. 2014-03-15 22:38:06 -04:00
Pietro Gagliardi 2c547cb5ec Added note in MouseEvent documentation about both Down and Up being 0 representing mouse movement. 2014-03-15 22:30:49 -04:00
Pietro Gagliardi 829cf7b1c6 Added (untested) GTK+ implementation of Area's mouse events. 2014-03-15 22:29:47 -04:00
Pietro Gagliardi a5a3287696 Added portable code for Area's MouseEvent. 2014-03-15 21:36:10 -04:00
Pietro Gagliardi 56c05a4e78 More mouse event planning. I now have enough figured out to implement on GTK+. 2014-03-15 21:07:57 -04:00
Pietro Gagliardi a82a50c440 Documented the details of Area's coordinate system. 2014-03-15 17:27:42 -04:00
Pietro Gagliardi 0cf3a69ed7 More mouse event planning and TODOs. 2014-03-15 17:14:47 -04:00
Pietro Gagliardi b8a3ba82b9 More mouse handling planning. 2014-03-15 16:40:20 -04:00
Pietro Gagliardi 77c72b7387 More mouse event handling planning. 2014-03-15 15:43:35 -04:00
Pietro Gagliardi f259148200 Changed the Go 1.3 comment in README to point to go tip since it was confusing some people. 2014-03-15 14:32:05 -04:00
Pietro Gagliardi e429b8d6b8 Allowed GTK+ windows to be resized smaller than the size request of the controls within. 2014-03-15 14:27:18 -04:00
Pietro Gagliardi 05905e3add Began to plan out what I need for mouse events. 2014-03-15 14:04:27 -04:00
Pietro Gagliardi 5fca3a5a2b More TODOs. 2014-03-15 00:57:28 -04:00
Pietro Gagliardi e3770fa8de Added a slightly more meaningful test: draw an Image in an area. 2014-03-15 00:55:30 -04:00
Pietro Gagliardi 4616fdfc5e Actually committed the rectangle to the Area. Area drawing on GTK+ implemented! 2014-03-14 23:36:47 -04:00
Pietro Gagliardi 6cdda6ebec Provided a way to connect child widget signals in the GTK+ sysData and connected Area to draw. I think I'm getting the wrong child widget, though... 2014-03-14 23:15:24 -04:00
Pietro Gagliardi a61b43f50c Hacked around the cairo issue for now; hooked everything together and fixed a few things. Added the Area test to the test program. Now to just hook up the draw event. 2014-03-14 23:06:51 -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 af7a218b47 Added Area support in sysdata.go so the package can compile again. Now to do that big change mentioned in the previous commit: overhaul of the GTK+ signal system. 2014-03-14 18:47:18 -04:00
Pietro Gagliardi 7a5b635824 Added the GTK+ implementation of Area. It's not enabled yet due to cgo bugs, and there's some extra work needed (started here) to tie this in... 2014-03-14 18:44:59 -04:00
Pietro Gagliardi c3c0edda3d Added the portable code for Area. 2014-03-14 16:43:46 -04:00
Pietro Gagliardi 9b2b3187cb More Area planning. I think I now have all the info I need... 2014-03-14 14:47:27 -04:00
Pietro Gagliardi e2ae065579 More Area planning and TODOs. 2014-03-14 13:14:58 -04:00
Pietro Gagliardi 502522b0a6 More Area planning. 2014-03-14 12:40:47 -04:00
Pietro Gagliardi 21d3bf944b More Area planning. 2014-03-14 09:09:42 -04:00
Pietro Gagliardi 43da1118be More Area API planning. 2014-03-14 08:43:18 -04:00
Pietro Gagliardi 85f6b63c12 More Area planning doc fixups. 2014-03-14 07:32:43 -04:00