Commit Graph

112 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 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 990d50e9a1 Rolled back all those changes; I'm stupid. 2014-06-30 22:42:48 -04:00
Pietro Gagliardi 46ba0049cb Converted the Windows backend to make uitask a function that runs the func() passed into it, rather than a channel that sends the function to another dispatcher. Windows lets us, since SendMessage() will switch threads if called form another thread. This gets rid of one goroutine and makes things cleaner. Mac OS X has the same optimization avaialble (performSelectorOnMainThread:); GTK+... doesn't seem to... 2014-06-30 20:55:42 -04:00
Pietro Gagliardi 33155f7496 Reverted everything back to the old API. 2014-06-30 09:57:44 -04:00
Pietro Gagliardi affc65a5a4 Fixed the build. New API works on Windows! Also removed TODO on dialogs in Windows since I can't reproduce the weird behavior anymore; I guess the new code fixes it. 2014-06-28 16:37:55 -04:00
Pietro Gagliardi 2e7f3d299e Migrated sysdata_windows.go to the new API. Also more TODOs. 2014-06-28 02:55:15 -04:00
Pietro Gagliardi ebbd76716f Implemented Checkbox.SetChecked() on Windows. 2014-06-26 21:40:23 -04:00
Pietro Gagliardi 5c002e3d0f Allowed tab stops on Windows; see http://blogs.msdn.com/b/oldnewthing/archive/2003/10/21/55384.aspx. Fixes #13 2014-06-26 20:20:00 -04:00
Pietro Gagliardi b5abbebf0b Implemented new label behavior on Windows. 2014-06-25 12:20:59 -04:00
Pietro Gagliardi af2e8c4b13 Made sysdata_windows.go send func()s to uitask and not uimsgs. This is also more correct, as multi-step processes happen in one homogenous blob instead of in steps spread across two goroutines. 2014-06-12 11:46:51 -04:00
Pietro Gagliardi d14ee7f3dd Fixed the implementation of sysData.center() on Windows to be thread-safe; also added center() to the _xSysData interface. 2014-06-11 10:01:55 -04:00
papplampe 4fa35b2239 added Center function to window 2014-06-11 11:41:31 +02:00
Pietro Gagliardi 94f9684e68 More go fmt. 2014-06-10 10:14:35 -04:00
Pietro Gagliardi caeff5bb88 Implemented RepaintAll() on Windows. 2014-06-09 22:26:37 -04:00
Pietro Gagliardi bd2317777e Resolved vertical alignment of labels on Windows. 2014-06-09 17:28:12 -04:00
Pietro Gagliardi 2a878f0e91 Removed TODO about Windows label ellipsization; SS_LEFTNOWORDWRAP's docs say so. Replaced it with one about vertical label alignment... 2014-06-09 17:06:33 -04:00
Pietro Gagliardi ef3adffd54 Fixed the Windows 7 progressbar animation dumbness. 2014-06-07 23:27:38 -04:00
Pietro Gagliardi fe4d9b992d Changed SetWindowLong() to SetWindowLongPtr() in the Windows backend. I forgot I already had some there :| 2014-06-07 14:50:05 -04:00
Pietro Gagliardi 00ec85dee6 Implemented code to save and restore control focus on Windows properly when switching away from/back to our program. It's disabled for now though because it doesn't seem to work... 2014-06-05 23:27:17 -04:00
Pietro Gagliardi bb44712fad Changed Checkbox on Windows to use BS_CHECKBOX instead of BS_AUTOCHECKBOX; this will be necessary to fix the focus issue in todo.md (see http://blogs.msdn.com/b/oldnewthing/archive/2014/05/22/10527522.aspx). 2014-06-05 18:28:40 -04:00
Pietro Gagliardi d69c90401f Decided to panic in the hwnd sanity check in sysdata_windows.go; the situation /is/ exceptional, after all (and we need to just get rid of all errors sometime). 2014-06-03 22:47:49 -04:00
Pietro Gagliardi 33d4178865 Migrated area_windows.go to the new string handling. I think that's it for converting existing code... Now to test on real Windows. 2014-06-03 11:04:31 -04:00
Pietro Gagliardi a46668ca22 Migrated stdwndclass_windows.go to the new string handling. 2014-06-03 10:52:53 -04:00
Pietro Gagliardi 38800f027f Converted sysdata_windows.go to use the new string conversion setup from the previous commit. This has to be first, otherwise a few other things will fail to compile... 2014-06-03 03:20:04 -04:00
Pietro Gagliardi b13453ad9e Changed storeSysData() on Windows to write the HWND to the sysData structure there. This will be important for removing some of the TODOs from areaWndProc(). 2014-05-30 23:28:41 -04:00
Pietro Gagliardi 09f5c7764e Cleaned up the classType struct and sysData.make() in sysdata_windows.go to remove unused fields and the window class registration code now that we no longer register window classes on the fly for each new Window/Area. 2014-05-30 23:07:19 -04:00
Pietro Gagliardi 2e0914e575 Changed Areas on WIndows so that they all use the same window class, rather than having one per Area. 2014-05-30 23:02:15 -04:00
Pietro Gagliardi 855a09656a Changed Areas on Windows to store their sysData inside the window memory instead of being given it via a closure. Actually having only one window class for all Areas comes next. 2014-05-30 22:14:55 -04:00
Pietro Gagliardi a3e27bfbd0 Converted the standard Windows window class (for Window) to be a single class, rather than having a new one for each Window. Now for Area. 2014-05-30 21:49:55 -04:00
Pietro Gagliardi 4a66f1467b Moved the standard window class (for Window) on Windows to get the sysData pointer from CreateWindowEx() and store it in the window memory instead of being given it via a closure. This will lead to having only one window class for all Windows, which will come next. Also fixed an error in windowsconstgen's output related to GetWindowLongPtr()/SetWindowLongPtr(). 2014-05-30 17:59:29 -04:00
Pietro Gagliardi 4045d50f94 Checked to see if the previous commit worked after removing the leftover Combobox selectIndex() code; it does. Removed the dummy code from the Windows and GTK+ backends as well. 2014-05-29 04:41:07 -04:00
Pietro Gagliardi 339a77b5d6 Removed constants from windows_windows.go, controls_windows.go, and comctl_windows.go, as we can now use the constants generator. 2014-05-25 12:39:53 -04:00
Pietro Gagliardi 2ce95f3937 Removed CW_USEDEFAULT variable definition. It won't compile right now, but our cgo-based generator will make sure that isn't a problem. 2014-05-25 12:31:38 -04:00
Pietro Gagliardi eb0188a099 Changed most instances of var to const in the Windows code. Only one left... 2014-05-25 11:31:57 -04:00
Pietro Gagliardi 582e3b4644 Implemented triple-clicks and up on Windows. 2014-05-23 17:01:56 -04:00
Pietro Gagliardi be56293e9c Found a method in NSArrayController via Stack Overflow which lets me suppress selection-changing behavior on NSTableView inserts; use that on Listbox in Mac OS X. This means sysData.selectIndices() and its Mac OS X implementation can (and has) gone away, clearing TODOs on Windows and Unix by extension. 2014-05-17 12:42:00 -04:00
Pietro Gagliardi 9ed8d9c816 Consistency change: all Windows API structure field names now match case-wise (some were forcibly exported in the past for historical reasons: I originally started package ui by trying to write a Windows API wrapper, but decided to ditch that and just use the Windows API directly from package ui). Also more TODOs. 2014-05-11 11:11:57 -04:00
Pietro Gagliardi 7f89f4afb9 More Windows TODO cleanup/removal and future plans. The message-only window in uitask_windows.go now has a title. 2014-04-28 13:06:24 -04:00
Pietro Gagliardi fb50badf00 Fixed Area test time label weirdness by making Labels truncate their text instead of word-wrapping on all platforms. This doesn't explain GTK+/Wayland, alas. 2014-04-13 18:05:07 -04:00
Pietro Gagliardi 6c265dd54d Rolled back the Windows horizontally scrolling Listbox changes because I can't seem to get it to work on Mac OS X (and keeping that code there is inefficient); removed the guarantee of horizontal scrollbars in Listbox and made that a future plan. Both the Windows and the non-working Mac OS X code is in unmigrated/hscrolllistbox.go (and the unmigrated/ folder will be renamed shortly). 2014-04-13 13:00:07 -04:00
Pietro Gagliardi bd1926db17 Added horizontal scrollbars to Listboxes on Windows. Also fixed typos and bugs in Windows sysData.selectedTexts(). 2014-04-13 02:57:35 -04:00
Pietro Gagliardi d4c79539af Fixed Listboxes on Mac OS X having an initial selection. 2014-04-12 22:05:34 -04:00
Pietro Gagliardi 274fa0c292 Fixed Comboboxes on Mac OS X having an initial selection. This also lays the groundwork for adding Combobox/Listbox.Select() as a public function... 2014-04-12 21:49:41 -04:00
Pietro Gagliardi bd907dadd8 More future plans and TODOs. 2014-04-10 16:44:45 -04:00
Pietro Gagliardi 4ac5290771 Fixed Listbox and LineEdit borders on Windows. Also more TODOs. 2014-04-02 19:57:49 -04:00
Pietro Gagliardi 973853c835 Fixed odd Listbox sizing on Windows. (Windows by default sizes List Box controls so that partial items are not visible.) 2014-04-02 10:15:04 -04:00
Pietro Gagliardi cbf439223b Changed the font loading on Windows to always load the control font unless a flag to not load any font is set; when menus and statusbars are added, they need special casing. This also means the preferred size calculations reads controlFont directly (it will need the same change). 2014-04-01 21:24:20 -04:00
Pietro Gagliardi 8cb3991ef9 Fixed Windows control sizing: turns out simply calling GetTextMetrics() was not enough, as the GetDC() functions don't load the control font into the DC; we have to do it ourselves with SelectObject() (according to GetTextMetrics()'s docs on MSDN). Upon re-evaluation, the only things that need custom fonts are menus and statusbars; I don't know if menus can be done with the standard contorls and statusbars change the font of all controls inside... so how fonts are handled in classData needs to change now. 2014-04-01 21:17:27 -04:00