Commit Graph

48 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 a210775287 More go fmt. 2014-06-10 15:43:01 -04:00
Pietro Gagliardi c34f2c234c Documented click event on activate behavior in the GTK+ backend. 2014-06-07 11:40:25 -04:00
Pietro Gagliardi 9a86659c37 Removed TODOs about device coordinates in the GTK+ backend; that has been resolved. 2014-06-03 12:54:13 -04:00
Pietro Gagliardi b62fd3279f Removed a leftover TODO note in area_unix.go. 2014-06-02 22:10:23 -04:00
Pietro Gagliardi c82949b8d2 Removed some more commented-out code from ages ago from area_unix.go. 2014-06-02 12:03:37 -04:00
Pietro Gagliardi 475e232ea1 Applied the new Area event behavior to the GTK+ backend. Yay, loads of TODOs resolved in one fell swoop! 2014-06-02 12:02:29 -04:00
Pietro Gagliardi 7e5a810e51 Verified the previous commit. 2014-06-01 00:22:15 -04:00
Pietro Gagliardi e1f322dce0 Changed Unix Area WM_ACTIVATE equivalent handling to use enter-notify-event and leave-notify-event instead of focus-in-event and focus-out-event as suggested by tristan in irc.gimp.net/#gtk+. 2014-06-01 00:16:57 -04:00
Pietro Gagliardi 20a7e4fb62 Implemented the new Modifiers behavior on the GTK+ backend. In addition, removed some code commented out long ago and restructured a few functions for the change. 2014-05-29 11:49:59 -04:00
Pietro Gagliardi f4afa2a951 Attempted to add focus change support to the new GTK+ high-order click code like we do on Windows; it isn't working quite yet but I'll mark it as a TODO for now. 2014-05-23 23:38:14 -04:00
Pietro Gagliardi dbeccfa922 Added custom double-click/triple-click/higher-order click handling to GTK+ Areas. 2014-05-23 18:30:08 -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 ce14390eff Fixed variable names in Area drawing code on Unix to reflect that image.Rectangle is point-to-point, not origin/size like on Mac OS X. Windows was already fine; it just uses "left, top, right, and bottom" instead of "x0, y0, x1, and y1". 2014-05-17 17:01:52 -04:00
Pietro Gagliardi ea9b4bdfc2 Added (most of) the Super and Meta changes for GTK+. The Modifiers were already in the correct order. 2014-05-16 18:39:08 -04:00
Pietro Gagliardi 3508239bf7 Completed extending of mouse buttons to the system's limit; defined (as undefined) the mouse drag behavior for buttons >= 3; implemented all that on the GTK+ side, and decided to have MouseEvents.Held[] be sorted (documentation only for now; need to check the code to make sure it follows). Good Lord... 2014-05-07 17:51:04 -04:00
Pietro Gagliardi 41631be076 Cleaned up/removed some TODOs in area_unix.go. 2014-04-27 20:54:39 -04:00
Pietro Gagliardi da2d4da15a Added click-to-focus to GTK+ Areas and documented that click-to-focus happens; also TODOs related to that. 2014-04-14 23:11:28 -04:00
Pietro Gagliardi ae4950bbd8 Switched to ARGB drawing in Areas on GTK+. 2014-04-12 13:48:59 -04:00
Pietro Gagliardi a01ffafba0 Fixed Area mouse events being sent when something happens outside the Area itself. 2014-04-10 18:52:43 -04:00
Pietro Gagliardi 78bb4cdace Fixed Area drawing assuming the first pixel of the *image.NRGBA is at i.Pix[0]. 2014-04-09 18:26:20 -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 efdd60375a Documented that the clip area in AreaHandler.Paint() more properly and indicate that it is cleared on each AreaHandler.Paint() call; (try to) implement that on Windows (GTK+ does it for us; noted that as well). 2014-03-29 19:02:09 -04:00
Pietro Gagliardi 5190c7c763 Finished re-adding the numeric keypad keys and fixing up the GTK+ Area implementation to handle the new KeyEvent. Everything seems to work on this end... 2014-03-29 13:09:27 -04:00
Pietro Gagliardi 75acdfd9ad Re-added the numeric keypad keys to ExtKey and removed predefkeys in area_unix.go since all are now being handled. 2014-03-29 13:01:42 -04:00
Pietro Gagliardi 84450cfa64 Added the proper provision for numeric keypad entry. 2014-03-29 12:57:54 -04:00
Pietro Gagliardi 07a877fa6e Updated the GTK+ implementation and test programs to reflect the new KeyEvent setup. 2014-03-29 12:33:36 -04:00
Pietro Gagliardi ab6e7121e4 Added a flag to AreaHandler.Key()/Mouse() to indicate that a repaint is needed after that event has been handled. (Having Repaint() as a method deadlocked for the same reason resizing deadlocked before.) 2014-03-27 20:31:23 -04:00
Pietro Gagliardi 7637193aff The latest go tip fixes cgo to not be confused by typedefs of incomplete types like cairo_t; remove the hack to make GTK+ builds work in the meantime. As a side effect, package ui now requires go tip to build; reflected this in the README. 2014-03-27 17:20:46 -04:00
Pietro Gagliardi 45cd12cccf Printed the hardware_keycode on GTK+ Area key events... something came up so I think I might be able to do what I originally wanted to do with keyboards... also more TODOs. 2014-03-26 23:13:31 -04:00
Pietro Gagliardi f5084c07d4 Fixed import formatting on area_unix.go. I'm rereading the GLFW source; it makes some interesting assumptions that might allow me to get a better solution to this whole keystroke ordeal after all... if I'm provided with irrefutable evidence. 2014-03-26 11:01:37 -04:00
Pietro Gagliardi bbccf96981 Fixed the shrinking not working: the Cairo clip rect apparently can fall outside the actual size of the widget. (I did notice this before.) 2014-03-23 21:31:29 -04:00
Pietro Gagliardi a41f582866 Added Area resizing. Everything mostly works, but not making things smaller... 2014-03-23 20:54:11 -04:00
Pietro Gagliardi 7acb3c5272 Added GDK_KEY_Alt_L/R to the modifier key handling in GTK+ key events. 2014-03-23 17:26:11 -04:00
Pietro Gagliardi aee2b98270 Fixed modifier keys in GTK+ not being registered by KeyEvent on first press. 2014-03-23 17:24:13 -04:00
Pietro Gagliardi d1376e035d Added the GTK+ implementation of Area keyboard events. Seems to work fine for now... 2014-03-23 17:12:30 -04:00
Pietro Gagliardi 18271980cb Finished writing what I need for the GTK+ key equivalency test: display of GDK_KEYMAP_A and GDK_KEYMAP_a to see if I can do what I want to do (map back). 2014-03-21 22:33:07 -04:00
Pietro Gagliardi d14aed4f47 Added code to the GTK+ Area to print the GdkKeymapKeys for a given key value. For GTK+/X11 it appears that we can just use the keyval field... that just leaves GTK+/Wayland (see previous commit). If the same applies, we'll need to see if I can feed artificial keycodes in and it'll still work as expected... 2014-03-21 17:06:46 -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 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 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 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 829cf7b1c6 Added (untested) GTK+ implementation of Area's mouse events. 2014-03-15 22:29:47 -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 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