Pietro Gagliardi
06fa877058
Updated an error message.
2016-01-14 03:29:08 -05:00
Pietro Gagliardi
454fabaf2b
Implemented metrics on Windows and fixed Unicode conversion in uiDrawNewTextLayout().
2016-01-13 00:54:52 -05:00
Pietro Gagliardi
09458c794a
Ported the new drawing system to Windows.
2016-01-12 18:14:48 -05:00
Pietro Gagliardi
0ec7d91e22
Filled in the text coordinate conversion functions on Windows.
2016-01-09 18:22:51 -05:00
Pietro Gagliardi
ef54b99b93
Fixed text rendering on Windows. Woo, it all works so far!
2016-01-09 02:23:01 -05:00
Pietro Gagliardi
a826fd7516
Wrote the text drawing code on Windows. Now to build and test.
2016-01-09 01:07:48 -05:00
Pietro Gagliardi
6a15e23897
Set up saner handling of sonames at build time.
2016-01-05 11:51:36 -05:00
Florent Clairambault
e24c8f6440
Merge remote-tracking branch 'upstream/master'
2016-01-02 13:27:08 +01:00
Florent Clairambault
c204e47b72
Various fixes around makefiles
...
* $PREFIX is uppercase (I have no idea why I put it lowercase before).
* "install" rules is OS specific and moved to new OS specific files. So that they can be included last.
* "examples" rule defines the list of examples to execute.
* Travis launches the "test" rule.
2016-01-01 23:19:14 +01:00
Pietro Gagliardi
5d40eff32a
Added Windows 7 compatibility to the manifest.
2015-12-31 19:58:03 -05:00
Pietro Gagliardi
c5d4813dec
Stubbed out the text drawing functions on Windows too.
2015-12-31 12:30:53 -05:00
Pietro Gagliardi
6a5997cc1a
More notes.
2015-12-23 15:22:01 -05:00
Pietro Gagliardi
5698d84cf3
More text rendering stuff. And given how it appears I have to render DirectWrite data into a Direct2D path geometry, I might be a little bit too much in over my head here...
2015-12-23 15:19:40 -05:00
Pietro Gagliardi
9efb452b2e
Implemented the font family listing on Windows.
2015-12-22 20:01:53 -05:00
Pietro Gagliardi
5267489f0b
Now entering Valhalla.
2015-12-22 16:00:51 -05:00
Pietro Gagliardi
a1d2c2b9fd
Oh that's fucking wonderful, dwrite.h is C++-only. This is gonna make things extra wonderful...
2015-12-22 15:51:16 -05:00
Pietro Gagliardi
e63f73e240
TODO elaboration.
2015-12-22 01:06:18 -05:00
Pietro Gagliardi
51d7cabfd9
More TODOs.
2015-12-22 01:02:06 -05:00
Pietro Gagliardi
0b68fc6931
More TODOs.
2015-12-22 00:43:48 -05:00
Pietro Gagliardi
f04bbe1bdc
Laid the foundation for text rendering into uiAreas on Windows. GTK+ and Cocoa backends need no special setup (we can start using Pango and Core Text respectively without extra initialization). Not sure when I'll actually add the APIs to draw text, but hopefully it's soon because I really really really need to start working on what I was actually going to USE this library for, and text rendering is the last major prerequisite.
2015-12-22 00:35:52 -05:00
Pietro Gagliardi
af374ed859
Implemented redrawing on scrolling and adjusting scrolling on resizing and actually implemented scrolled drawing correctly on uiArea on Windows.
2015-12-19 14:43:34 -05:00
Pietro Gagliardi
13fa2e213d
Took scrolling into account on uiArea with drawing (untested) and mouse events (tested). This is the preliminary work for moving scrolling from pixels to DIPs. But first, a test of scrolled drawing.
2015-12-18 22:06:48 -05:00
Pietro Gagliardi
adc72c9d0b
Implemented the other areautil.c functions.
2015-12-18 21:38:27 -05:00
Pietro Gagliardi
5e90cbcb93
Started a windows/areautil.c for miscellaneous functions, mostly (completely for now) having to do with coordinates and sizes. Right now it only has renderTargetGetSize().
2015-12-18 21:15:40 -05:00
Pietro Gagliardi
444a7d3045
Fixed mouse capture behavior. It's not as clean as it could be, but it'll do.
2015-12-18 19:38:21 -05:00
Pietro Gagliardi
4b114f2764
Started the implementation of mouse crossing on Windows.
2015-12-18 18:06:45 -05:00
Pietro Gagliardi
ce042eb12a
Added an expository comment to windows/area.c.
2015-12-18 15:05:49 -05:00
Pietro Gagliardi
4edcddce14
Fixed the ID2D1RenderTarget::GetSize() madness a *SECOND* time. Urgh. Also removed a now-irrelevant TODO.
2015-12-18 15:04:37 -05:00
Pietro Gagliardi
6d06e15390
More Windows uiArea migration and compiler error fixes. Now to figure out what happened with GetSize again...
2015-12-18 14:21:35 -05:00
Pietro Gagliardi
e76b34b670
Split windows/area.c into a bunch of files to make it much more manageable. Also did half of the migration to the new uiArea system.
2015-12-18 12:00:46 -05:00
Pietro Gagliardi
e390730e6f
Reestablished the Windows build. Also fixed a small bug in windows/area.c. Now to re-establish the test!
2015-12-11 19:49:14 -05:00
Pietro Gagliardi
70886e4ade
Moved the old build files away. Yes that's right folks, we're redoing the build system *again*! Isn't that *fun*?
2015-12-10 18:49:50 -05:00
Pietro Gagliardi
919e5f09cd
Double-correction of previous commit.
2015-12-09 15:38:24 -05:00
Pietro Gagliardi
5f530c5bf7
More MinGW stuff.
2015-12-09 15:36:56 -05:00
Pietro Gagliardi
be6555d885
More MinGW removal stuff.
2015-12-09 15:31:14 -05:00
Pietro Gagliardi
5e26720f18
Removed $ARCH from the build.
2015-12-09 13:49:13 -05:00
Pietro Gagliardi
0307e74e90
Added uiMultilineEntry on Windows. Fixed a misuse of std::condition_variable in the uiQueueMain test program.
2015-12-06 14:38:13 -05:00
Pietro Gagliardi
3394142357
Some TODO expansion. This was the active tab on my browser the whole time and I didn't even notice!
2015-12-05 20:37:29 -05:00
Pietro Gagliardi
c5eef23930
More TODOs.
2015-12-05 20:31:57 -05:00
Pietro Gagliardi
88f9c7ea19
Quick comment update for previous commit.
2015-12-04 23:49:04 -05:00
Pietro Gagliardi
f77955aefb
Added uiQueueMain() (basically g_idle_add()) and implemented it on all platforms except Haiku. A test to come. After this we can start rewriting the Go package ui at long last.
2015-12-04 23:42:03 -05:00
Pietro Gagliardi
8084041139
Removed uiAreaHandler.RedrawOnResize(); Direct2D requires us to always redraw on resize (see previous commit). Added windows/amd64 to the example makefiles and updated them to use libui.xxx instead of new.xxx.
2015-12-04 21:04:51 -05:00
Pietro Gagliardi
c2100a19be
Implemented some changes to uiArea on Windows, thanks to instructions from Rick Brewster. Removing uiAreaHandler.RedrawOnResize() comes next.
2015-12-04 20:45:31 -05:00
Pietro Gagliardi
d1c93a9956
Made relayouts on Windows faster by preventing an accidental requeue of a window that's being processed in the event that a layout change changes the minimum size (such as switching tabs).
2015-12-04 19:34:51 -05:00
Pietro Gagliardi
d9343c0b4b
More TODOs.
2015-11-30 09:12:56 -05:00
Pietro Gagliardi
bf35167d40
More TODOs.
2015-11-28 16:36:08 -05:00
Pietro Gagliardi
e6e264408f
Implemented dialog parenting on Windows. Eliminated the dialog helper. uiArea still works (and still responds to key events), but IsDialogMessage() isn't being called for the active window anymore...
2015-11-28 10:53:48 -05:00
Pietro Gagliardi
7646e8303d
Fixed a small bug in the uiArea message filter.
2015-11-27 23:00:57 -05:00
Pietro Gagliardi
09129229fd
Fixed assorted MSVC uiArea issues.
2015-11-27 22:44:42 -05:00
Pietro Gagliardi
14887ad7e3
Fixed a logical error in the uiArea message filter.
2015-11-27 21:53:17 -05:00
Pietro Gagliardi
3a5a4557ab
Switch uiArea from using a custom message pump to using a message filter for input handling. This allows us to rewrite the dialog system to avoid needing to block ALL windows and set a proper parent window.
2015-11-27 21:45:30 -05:00
Pietro Gagliardi
f5a2759b09
Dropped utarray in favor of our ptrArray. This should get rid of our strdup woes.
2015-11-27 20:38:21 -05:00
Pietro Gagliardi
99176a1d10
Disabled compiler warnings for system headers on MSVC. Removed /Wp64; it's a no-op on VS2013 (our minimum supported version).
2015-11-27 20:07:23 -05:00
Pietro Gagliardi
d29d36a6cd
Fixed assorted build errors in the MSVC build. It works! And MinGW-w64 will need isolation awareness...
2015-11-27 19:59:46 -05:00
Pietro Gagliardi
abd99a325b
Integrated the Common Controls 6 manifest into libui.dll. While it does work, themes don't work, and I wonder if it's because of isolation awareness. Time to write an nmakefile!
2015-11-27 13:35:24 -05:00
Pietro Gagliardi
b8be92bc45
More notes.
2015-11-27 12:35:23 -05:00
Pietro Gagliardi
bd354fd651
More TODOs.
2015-11-27 12:21:40 -05:00
Pietro Gagliardi
f93d9a4c91
More WPF foundations/boilerplate work.
2015-11-25 14:38:40 -05:00
Pietro Gagliardi
980b93381b
Fixed alpha transparency on Haiku, or so it seems. Assorted other notes too.
2015-11-23 19:12:11 -05:00
Pietro Gagliardi
c40e80d5a5
Added C++ to the build and started writing the actual Haiku code. I think this isg oing to have to require a GCC 4 hybrid...
2015-11-17 11:49:23 -05:00
Pietro Gagliardi
858ff1d64f
Quick makefile change.
2015-10-17 10:22:43 -04:00
Pietro Gagliardi
c9b241a7b6
More makefile work.
2015-10-17 10:20:31 -04:00
Pietro Gagliardi
260a7f4879
More makefile fixes.
2015-10-16 23:33:53 -04:00
Pietro Gagliardi
f19d3cd0c7
More makefile work.
2015-10-16 22:49:54 -04:00
Pietro Gagliardi
790edf0df8
Assembled a new make system. Not quite working the way I'd like yet, but definitely a start.
2015-10-16 20:55:09 -04:00
Pietro Gagliardi
ab97e26efc
Moved all the common stuff in a new folder common/. This is part of the makefile simplification.
2015-10-16 18:31:14 -04:00
Pietro Gagliardi
982bc989cd
Cleaned up the makefile a bit.
2015-10-16 18:14:05 -04:00
Pietro Gagliardi
b4cbf79cbb
Implemented dashing on OS X.
2015-10-16 11:05:08 -04:00
Pietro Gagliardi
8119a69572
Implemented dashing on Windows.
2015-10-16 10:46:26 -04:00
Pietro Gagliardi
2b4ba6ad16
Implemented mouse event coordinates and proper render target size getting on Windows.
2015-10-14 09:31:31 -04:00
Pietro Gagliardi
b5ac921988
Implemented clipping on Windows. Phew!
2015-10-13 13:20:25 -04:00
Pietro Gagliardi
2fd6ba8081
Switched from usin ptrarray to maintaining an array of structures to store context state on Windows. This is neeed because an ID2D1DrawingStateBlock does not store the clipping information (in fact, the clipping does not work quite the way we would like it...).
2015-10-13 10:47:54 -04:00
Pietro Gagliardi
c6cdabe20d
Preparation for proper, extensible state tracking and clipping on Windows.
2015-10-12 21:11:42 -04:00
Pietro Gagliardi
dac5eea07a
Fixed transforms on Windows.
2015-10-12 12:16:44 -04:00
Pietro Gagliardi
5f2a8474d9
Attempted to get things working on Windows. Result: argggggggggggggggggggggggggggh I need to write a matrix test suite.
2015-10-12 10:30:36 -04:00
Pietro Gagliardi
46e3fee40d
Added a center point to scaling transforms. Fixed rotations on GTK+.
2015-10-12 01:43:12 -04:00
Pietro Gagliardi
0989454106
Implemented negative arcs on Windows.
2015-10-11 22:14:27 -04:00
Pietro Gagliardi
b09cdb5137
Made 90° point toward y=+∞.
2015-10-11 20:24:06 -04:00
Pietro Gagliardi
0ae3ef918d
Implemented the matrix stuff on Windows. Also fixed the signature of uiDrawMatrixSkew().
2015-10-11 12:36:48 -04:00
Pietro Gagliardi
f3a2635f8c
Fixed circles in Windows once and for all.
2015-10-11 07:51:14 -04:00
Pietro Gagliardi
6fe77e12f9
More urgent TODOs. Groan...
2015-10-10 21:04:54 -04:00
Pietro Gagliardi
5b37dc9fbe
Fully fixed arcs on the Windows backend, for real this time.
2015-10-10 10:48:10 -04:00
Pietro Gagliardi
22b38accee
Got the Windows backend's arc code mostly working. It's still 360° arcs that cause problems...
2015-10-10 09:23:44 -04:00
Pietro Gagliardi
73d77ef38b
Capped sweeps at 2π radians.
2015-10-09 22:00:41 -04:00
Pietro Gagliardi
2c7ed07747
Changed the arc functions to take a start angle and a sweep amount instead of a start angle and an end angle. This makes it easier to reason about sweeps > 2π radians.
2015-10-09 21:51:43 -04:00
Pietro Gagliardi
7075bea0f5
Added uiAreaQueueRedrawAll() and implemented on all platforms. NOW we can focus exclusively on the test suite.
2015-10-09 15:27:57 -04:00
Pietro Gagliardi
5da68c64b3
Implemented uiComboboxSetSelected() on OS X and Windows; fixed editable combobox minimum widths on OS X.
2015-10-09 14:39:26 -04:00
Pietro Gagliardi
1d4e341583
Fixed a memory leak in the Windows uiArea.
2015-10-09 12:41:01 -04:00
Pietro Gagliardi
b0492cbde8
Fixed up more bits of uiArea on Windows.
2015-10-09 11:49:57 -04:00
Pietro Gagliardi
e4e72e55bb
Merged the Windows uiArea back into the main library.
2015-10-09 11:17:58 -04:00
Pietro Gagliardi
e27781cce7
Integrated the test into the main packge. I'll need to handle a few corner cases here...
2015-10-08 19:20:06 -04:00
Pietro Gagliardi
eb96d5edb0
Implemented the new combobox stuff on Windows.
2015-10-08 15:42:58 -04:00
Pietro Gagliardi
9dbc8a1ba2
Started writing the Uniscribe gunk. This is a mess...
2015-09-14 22:42:07 -04:00
Pietro Gagliardi
c5e4c3a92d
Fixed some bugs in the Windows uiArea code.
2015-09-08 12:11:01 -04:00
Pietro Gagliardi
dab88e74f2
Fixed uiGroup children positioning on Windows.
2015-09-02 21:29:16 -04:00
Pietro Gagliardi
eb7372f7c4
Fixed a memory leak.
2015-09-02 19:46:10 -04:00
Pietro Gagliardi
8df022f806
Fixed up uiSpinbox now that we can do it without having an extra container in the way.
2015-09-02 19:35:34 -04:00
Pietro Gagliardi
7abf662076
More TODOs.
2015-09-02 18:29:14 -04:00
Pietro Gagliardi
80a5f1ac29
More uiRadioButtons work.
2015-09-02 18:26:48 -04:00
Pietro Gagliardi
a96e76a4b5
More TODOs.
2015-09-02 16:43:20 -04:00
Pietro Gagliardi
35a4098a35
Made the uiWindow grow when necessary.
2015-09-02 16:26:54 -04:00
Pietro Gagliardi
3f1b72721e
Implemented uiTab minimum size and uiWindow resize restriction.
2015-09-02 16:02:06 -04:00
Pietro Gagliardi
54332b90fb
Finally merged out the redo folder.
2015-09-02 13:48:06 -04:00
Pietro Gagliardi
e3c64dc0d1
Removed what was left in the main folder. We are so fucking close..
2015-09-02 13:47:18 -04:00
Pietro Gagliardi
cefd262f42
More migration. Just control.c left, and then we can build.
2015-08-31 15:14:02 -04:00
Pietro Gagliardi
413ec1a2c3
More migration.
2015-08-31 13:37:56 -04:00
Pietro Gagliardi
3a607cbbf2
Moved back a whole bunch of Windows files.
2015-08-31 12:45:53 -04:00
Pietro Gagliardi
ec4ac0d596
Started the migration of uiTab on Windows. Phew; we're getting close...
2015-08-31 11:31:42 -04:00
Pietro Gagliardi
99c37b9697
Wrote up the boilerplate needed for tab pages.
2015-08-31 10:55:33 -04:00
Pietro Gagliardi
411afe4480
"Migrated" uiSpinbox in the same way as with uiRadioButtons. I might need a container and a uiWindowsSpinboxEditHandle()...
2015-08-31 07:28:15 -04:00
Pietro Gagliardi
887c087920
Started the migration of Windows uiRadioButtons. There are two files here: OLDradiobuttons.c, which is the old code as is, and radiobuttons.c, which is the partially-migrated file.
2015-08-30 22:08:25 -04:00
Pietro Gagliardi
311a7d4124
More migration work.
2015-08-30 19:32:05 -04:00
Pietro Gagliardi
f5cfdaddb9
Started work on reimplementing Windows API controls with parents. This handles uiGroup. Need to add child.c next.
2015-08-30 18:38:22 -04:00
Pietro Gagliardi
465d497cb6
Migrated all the single-HWND controls that don't have a child. Moment of truth time: do we require all controls to have a single HWND? Leaning toward yes.
2015-08-30 12:25:53 -04:00
Pietro Gagliardi
d4bb41f4c0
Migrated uiButton on Windows to the new backend. Most controls will, fortunately, be this smooth.
2015-08-29 21:02:38 -04:00
Pietro Gagliardi
4f930ca8c3
Commit message withheld
2015-08-28 18:27:17 -04:00
Pietro Gagliardi
8213eac2d7
Moved everything up a directory level.
2015-08-27 12:05:11 -04:00
Pietro Gagliardi
d98ca5dfd4
Removed more files from the top level.
2015-08-27 11:59:59 -04:00
Pietro Gagliardi
670907489b
Removed some ancient Windows files.
2015-05-30 17:48:02 -04:00
Pietro Gagliardi
721d58d4b9
Brought init.c, text.c, and util.c back on Windows. Migrated util.c; still need to do init.c.
2015-05-15 21:09:13 -04:00
Pietro Gagliardi
8594646e45
Migrated windows/group.c. Also forgot a line in windows/tab.c.
2015-05-15 21:06:52 -04:00
Pietro Gagliardi
ab4c534360
Migrated windows/tab.c.
2015-05-15 18:54:13 -04:00
Pietro Gagliardi
7d0f250ba7
More migration of files that don't need changes.
2015-05-15 16:17:28 -04:00
Pietro Gagliardi
bc9b995c4c
Moved the basic controls back to the new Windows backend. More file clearout.
2015-05-15 16:14:22 -04:00
Pietro Gagliardi
f380912665
Added sizing information acquisition to the new Windows backend; started clearing out the old windows/container.c.
2015-05-15 16:04:10 -04:00
Pietro Gagliardi
00e53ef547
Started cleaning out the old tree.
2015-05-14 19:29:41 -04:00
Pietro Gagliardi
f100989803
Fixed up wording on some errors in windows/menu.c and unix/menu.c.
2015-05-13 10:25:54 -04:00
Pietro Gagliardi
9cca703b06
More uiGroup Windows work.
2015-05-13 10:24:24 -04:00
Pietro Gagliardi
4f267d49c6
More Windows uiGroup work.
2015-05-11 23:02:26 -04:00
Pietro Gagliardi
8f9c40daaa
Added an initial implementation of uiGroup on Windows.
2015-05-11 22:53:51 -04:00
Pietro Gagliardi
5deac6cfd6
Made Windows resizes use SWP_NOREDRAW. This makes checking the Spaced box faster, at least.
2015-05-11 13:24:10 -04:00
Pietro Gagliardi
a517beccae
Added uiContainerUpdate() calls to each SetMargined().
2015-05-11 12:42:13 -04:00
Pietro Gagliardi
2c9e63d8d2
Same as previous commits, but for uiContainer. We don't need to do these because everything that calls uiControlSetParent() (which should only ever be a uiContainer) should also be updating themselves afterward (or are about to be destroyed).
2015-05-11 12:20:41 -04:00
Pietro Gagliardi
df376a5e0b
Started to optimize container updating. Removed container updates from each new control set parent.
2015-05-11 12:16:28 -04:00
Pietro Gagliardi
a625cc30ad
sigh
2015-05-11 12:08:30 -04:00
Pietro Gagliardi
d13c0f3cbd
Revert "Attempted to improve the profiler a bit, making it more like a real profiler. It doesn't quite work yet."
...
It won't work. We spend most of our time in GetMessage(). Thanks to various people on Stack Overflow.
This reverts commit a342998263
.
2015-05-11 11:46:34 -04:00
Pietro Gagliardi
573e411e2a
Revert "Integrated idl2h into the main tree so we can custoize it in ui-specific ways; also moved windows/profiler.go to the new tools/ directory."
...
Adding runtime type checking obviates an actual GObject-like type system, which is out of scope.
This reverts commit 7a21bdec42
.
2015-05-11 10:24:47 -04:00
Pietro Gagliardi
7a21bdec42
Integrated idl2h into the main tree so we can custoize it in ui-specific ways; also moved windows/profiler.go to the new tools/ directory.
2015-05-11 10:15:32 -04:00
Pietro Gagliardi
a342998263
Attempted to improve the profiler a bit, making it more like a real profiler. It doesn't quite work yet.
2015-05-10 23:02:16 -04:00
Pietro Gagliardi
c0c6b4fed6
Made all variables that refer to a tab page be called 'page'.
2015-05-10 21:22:22 -04:00
Pietro Gagliardi
721acd44a4
Used integer division in the profiler average column to make it easier to sort.
2015-05-10 17:42:28 -04:00
Pietro Gagliardi
cb8a4872d5
Added a rudimentary profiler to the Windows backend.
2015-05-10 17:35:52 -04:00
Pietro Gagliardi
41030b0a03
Made it so uiContainer on Windows only updates when we ask it to resize, not on every WM_WINDOWPOSCHANGED. More TODOs.
2015-05-10 12:57:13 -04:00
Pietro Gagliardi
bcafe6806a
Made uiTab on Windows only resize when explicitly asked to rsize, not on every WM_WINDOWPOSCHANGED. This is important for making resizes smooth.
2015-05-10 12:54:11 -04:00
Pietro Gagliardi
24d63adb51
Migrated the Windows backend to the new bin.
2015-05-10 12:48:11 -04:00
Pietro Gagliardi
a2cf4908a3
Started cleaning up bin handling. uiBin is now a real type and all of the things you need to do to a bin are its methods.
2015-05-10 12:36:14 -04:00
Pietro Gagliardi
4954d608f4
Got rid of a stray debugging line in windows/button.c.
2015-05-09 21:19:06 -04:00
Pietro Gagliardi
7bdc50c25a
Inhibited uiEntryOnChanged() with uiEntrySetText() on Windows.
2015-05-09 21:18:27 -04:00
Pietro Gagliardi
349d54b2f1
More commentary and TODOs about the previous commit(s).
2015-05-09 16:04:54 -04:00
Pietro Gagliardi
bd4716c949
Started code for handling WM_QUERYENDSESSION and its console equivalent.
2015-05-09 14:22:51 -04:00
Pietro Gagliardi
5e258c0c48
Implemented the Quit menu item shouldQuit() logic on Windows.
2015-05-09 10:53:38 -04:00
Pietro Gagliardi
a6c86cc863
More Windows uninit stuff.
2015-05-08 17:17:03 -04:00
Pietro Gagliardi
3f3191ea7a
More Windows uiUninit() implementation.
2015-05-08 15:01:23 -04:00
Pietro Gagliardi
04923399fe
Implemented uninitMenus() on Windows.
2015-05-08 14:23:22 -04:00
Pietro Gagliardi
85ca2a0901
Wrote uninitAlloc() on Windows.
2015-05-08 14:05:16 -04:00
Pietro Gagliardi
b60f17ee5a
Added type names to the memory allocator on Windows. More TODOs.
2015-05-08 10:34:59 -04:00
Pietro Gagliardi
27d6994bdc
Implemented stub uiUninit()s.
2015-05-07 22:32:17 -04:00
Pietro Gagliardi
6c9a122a7d
Changed the default uiWindowOnClosing() behavior. Decided to keep the int return.
2015-05-07 20:01:17 -04:00
Pietro Gagliardi
34f55321e0
Added a [libui] and a newline to the message printed by complain().
2015-05-07 19:34:45 -04:00
Pietro Gagliardi
ab5975eeb5
More TODOs.
2015-05-07 18:14:21 -04:00
Pietro Gagliardi
727b6871bc
Made uiFree(NULL) illegal to spot bugs.
2015-05-07 17:45:55 -04:00
Pietro Gagliardi
efbdf14d5f
Made all instances of SetWindowPos() and MoveWindow() use the same wrapper functions so they can all use the same flags. Only the SetWindoPos() that sets the initial size of a uiWindow is unaffected (since that is a special case).
2015-05-07 17:40:13 -04:00
Pietro Gagliardi
49595bb18d
Set up proper -m flag manipulation for cross-compiling builds.
2015-05-07 16:02:34 -04:00
Pietro Gagliardi
598a499072
Changed ARCH on Windows to be amd64 for a 64-bit build instead of just 64 for consistency with the OS X one.
2015-05-07 15:47:29 -04:00
Pietro Gagliardi
2107595ce7
"Exported" uiSizing fields.
2015-05-07 14:33:46 -04:00
Pietro Gagliardi
f74394fbac
"Exported" uiSizingSys fields.
2015-05-07 14:22:31 -04:00
Pietro Gagliardi
6e4845f11f
Fixed tab order on Windows.
2015-05-07 14:20:31 -04:00
Pietro Gagliardi
38a5341603
Fixed public/private namespace clobbering in the Windows backend and a wrong name in ui_darwin.h.
2015-05-07 12:58:33 -04:00
Pietro Gagliardi
91f7096257
Resolved a TODO; we were already doing the right hting.
2015-05-07 12:25:44 -04:00
Pietro Gagliardi
bb617883d1
"Fixed" box padded application bug on Windows; more related TODOs.
2015-05-07 12:24:02 -04:00
Pietro Gagliardi
94da27c9ba
Decided not to rewrite the resizing logic in windows/tab.c for now. Adjusted a few comments as well.
2015-05-07 10:14:49 -04:00
Pietro Gagliardi
316657e09e
I'm wrong; read-only edit controls on Windows DO get their backgrounds from their parents. Thanks gamax92 for help confirming.
2015-05-07 00:23:35 -04:00
Pietro Gagliardi
6a1661fd91
Implemented read-only uiEntries on Windows.
2015-05-06 22:21:11 -04:00
Pietro Gagliardi
5128fed0af
Implemented uiEntryOnChanged() on Windows.
2015-05-06 20:06:16 -04:00
Pietro Gagliardi
5b65c58715
Removed a stale TODO.
2015-05-06 18:56:12 -04:00
Pietro Gagliardi
329b4f29dd
Implemented tab navigation across tabs on Windows.
2015-05-06 18:37:21 -04:00
Pietro Gagliardi
c5e5fbd909
Laid the foundation for proper tab navigation in uiTabs.
2015-05-06 18:05:07 -04:00
Pietro Gagliardi
d247e76866
Implemented uiTabInsertPageBefore() on Windows.
2015-05-06 14:09:20 -04:00
Pietro Gagliardi
956b78718f
Migrated windows/tab.c to ptrarray and fixed the build.
2015-05-06 13:37:23 -04:00
Pietro Gagliardi
8c3ca7fcce
Fixed WM_PRINTCLIENT on uiContainers in windows/container.c. It works.
2015-05-06 12:39:06 -04:00
Pietro Gagliardi
047913d1a6
Made paintContainerBackground() in windows/container.c respect the clip rect.
2015-05-06 11:30:09 -04:00
Pietro Gagliardi
74fc1aea45
Split out the parent drawing in windows/container.c into its own function. This is necessary to allow for clipping.
2015-05-06 11:10:28 -04:00
Pietro Gagliardi
7e0d79713b
Changed the uiContainer code on Windows to use WM_PRINTCLIENT directly instead of creating the brush each time. Thanks to Barmak Shemirani ( http://stackoverflow.com/questions/30066108/brush-origin-patblt-and-mapwindowrect-confusion ) for inspiring me with this solution that I should have thought of myself =P
2015-05-06 02:20:08 -04:00
Pietro Gagliardi
526e9b81ea
Fixed bin destruction handling on the Windows backend.
2015-05-06 00:52:24 -04:00
Pietro Gagliardi
bc2e6d134b
Started working on a pointer array implementation. This also means we'll need the C standard library for memcpy()/memmove(), so drop the DisableThreadLibraryCalls() TODO.
2015-05-05 22:55:02 -04:00
Pietro Gagliardi
657cbe2013
Updated a TODO.
2015-05-05 20:57:30 -04:00
Pietro Gagliardi
58540b2b2b
Changed from GetWindowRect() in windows/contianer.c to get the parent's client size to GetClientRect(); we're only interested in the size, and WM_PRINTCLIENT is strictly for the client :/ It's still correct as far as I know (the old code used it).
2015-05-05 20:56:07 -04:00
Pietro Gagliardi
9f8d16b26a
Revert "Switch to using DeferWindowPos() in Windows resizes. It doesn't optimize anything just yet (because it's still recursively invoked), but it can be optimized later (by not responding to container resizes and only using container updates); and more important, it puts (most of) the resizing invocations in one place."
...
Decided not to make the code that much more complicated.
This reverts commit f6fdf932e1
.
2015-05-05 15:19:55 -04:00
Pietro Gagliardi
f6fdf932e1
Switch to using DeferWindowPos() in Windows resizes. It doesn't optimize anything just yet (because it's still recursively invoked), but it can be optimized later (by not responding to container resizes and only using container updates); and more important, it puts (most of) the resizing invocations in one place.
2015-05-05 15:10:37 -04:00
Pietro Gagliardi
f35d68907b
More flicker work and TODOs.
2015-05-05 14:44:10 -04:00
Pietro Gagliardi
7f56079257
Disabled WM_PRINTCLIENT in uiContainer on Windows for now.
2015-05-05 14:37:25 -04:00
Pietro Gagliardi
4ba82c6eeb
Started refactoring uiContainer painting on Windows to be more efficient and handle WM_PRINTCLIENT.
2015-05-05 14:00:55 -04:00
Pietro Gagliardi
93ead4043e
Added a wrapper around MapWindowRect() to simplify error handling. This will be needed for future changes to windows/container.c.
2015-05-05 13:12:48 -04:00
Pietro Gagliardi
047d5aaa4d
Added error checking to the container painting code. More TODOs.
2015-05-05 13:01:20 -04:00
Pietro Gagliardi
40993b33ab
One person reports flicker, one person doesn't... I'll have to investigate myself.
2015-05-05 11:02:32 -04:00
Pietro Gagliardi
84b263ade6
Removed windows/OLDcontainer.c; we finally implemented everything from it.
2015-05-05 09:40:34 -04:00
Pietro Gagliardi
913025c3de
More TODOs.
2015-05-05 09:34:43 -04:00
Pietro Gagliardi
c0cc7f2df4
Implemented uiContainer transparent background drawing.
2015-05-05 09:10:58 -04:00
Pietro Gagliardi
2d49baa2f1
Seemingly fixed redraw issues with uiContainer on Windows control background painting. Now to paint uiContainer's background itself.
2015-05-05 00:16:25 -04:00
Pietro Gagliardi
2968d48d9e
Figured out something workable for control backgrounds on Windows!
2015-05-04 23:06:16 -04:00
Pietro Gagliardi
4e56f2d2b5
Disabled the WM_CTLCOLORxxx handler for now.
2015-05-04 22:04:24 -04:00
Pietro Gagliardi
d4245a448d
Moved the WM_CTLCOLORxxx handler back into the Windows uiContainer.
2015-05-04 20:36:33 -04:00
Pietro Gagliardi
e808b155cc
Moved a TODO to the long-term TODO list.
2015-05-04 20:11:58 -04:00
Pietro Gagliardi
0ad6cbb4b5
Removed a now-stale TODO thanks to some past commits.
2015-05-04 20:11:05 -04:00
Pietro Gagliardi
8b8be286ff
Made private functions in the various bin source files static.
2015-05-04 17:42:20 -04:00
Pietro Gagliardi
b2e9b646a4
Got rid of typedefs in the various newcontrol files for consistency.
2015-05-04 15:51:23 -04:00
Pietro Gagliardi
854d1f49af
Made preferredSize function names consistent on Windows. Stale TODO cleanup.
2015-05-04 14:56:26 -04:00
Pietro Gagliardi
7f41a3982f
Finished implementing uiTab enable/disable on Windows.
2015-05-04 14:45:18 -04:00
Pietro Gagliardi
5c9751f4d4
Set up a framework on Windows for implementing tab enable/disable.
2015-05-04 14:42:23 -04:00
Pietro Gagliardi
23e3230156
Fixed control enabling on Windows uiWindows.
2015-05-04 14:32:55 -04:00
Pietro Gagliardi
4716781e78
Finished container enable/disable on Windows for now.
2015-05-04 14:05:36 -04:00
Pietro Gagliardi
d98a2291cb
More enable/disable container stuff.
2015-05-04 11:09:28 -04:00
Pietro Gagliardi
b15f5ff1c7
Started implementing container enable/disable on Windows. More TODOs.
2015-05-04 09:53:53 -04:00
Pietro Gagliardi
862f84292f
Fixed an error in windows/container.c.
2015-05-03 19:58:37 -04:00
Pietro Gagliardi
fd4c559e86
Removed the typename argument from uiAlloc() and uiRealloc().
2015-05-03 19:52:24 -04:00
Pietro Gagliardi
997db39bb7
Decided not to optimize Windows menu item lookup.
2015-05-03 17:37:36 -04:00
Pietro Gagliardi
23cfcc8c6d
Confirmed that tabs are taken into account with TCM_ADJUSTRECT on Windows.
2015-05-03 17:21:48 -04:00
Pietro Gagliardi
aa568e51cf
Implemented uiControlPreferredSize() on Windows uiTabs.
2015-05-03 17:13:40 -04:00
Pietro Gagliardi
fc1044aab9
Quick TODOTODOTODO... resolution.
2015-05-03 16:56:58 -04:00
Pietro Gagliardi
2186192502
Changed c-> to uiControl(c)-> in the various newcontrol files for consistency.
2015-05-03 14:44:46 -04:00
Pietro Gagliardi
51cdb1817e
Added WS_EX_CONTROLPARENT to uiContainer on Windows.
2015-05-03 14:12:45 -04:00
Pietro Gagliardi
e8600450aa
TODO elaboration.
2015-05-03 12:36:35 -04:00
Pietro Gagliardi
61bcfa1a7e
Cleaned up and resolved DllMain() TODOs and issues.
2015-05-03 12:34:10 -04:00
Pietro Gagliardi
80c79d31a3
Changed the Windows window-creation code to handle menu wrapping.
2015-05-03 12:15:24 -04:00
Pietro Gagliardi
643ed46b00
Cleaned up windows/container.c resize(). More TODOs.
2015-05-03 11:55:34 -04:00
Pietro Gagliardi
dc5b7f4c59
Some TODO resolution in windows/tab.c. Wine bug filed ( https://bugs.winehq.org/show_bug.cgi?id=38527 ); first tab behavior verified with program in wine bug.
2015-05-03 11:47:06 -04:00
Pietro Gagliardi
d50701b3a7
TODO consolidation.
2015-05-03 10:21:36 -04:00
Pietro Gagliardi
454b3ecb03
Changed the various OS-side control creation functions to use Make like uiMakeContainer() does instead of New.
2015-05-02 20:51:00 -04:00
Pietro Gagliardi
57bc11d67c
TODO consolidation.
2015-05-02 14:58:29 -04:00
Pietro Gagliardi
3260de37b3
BOOL -> int in initAlloc() on Windows.
2015-05-02 12:29:55 -04:00
Pietro Gagliardi
a70d56d77c
Switched to the Windows API heap functions in windows/alloc.c.
2015-05-02 12:27:53 -04:00
Pietro Gagliardi
effb919176
Added DllMain() to the Windows code.
2015-05-01 10:19:44 -04:00
Pietro Gagliardi
5094f08994
Fixed build errors from the previous commit.
2015-05-01 10:16:02 -04:00
Pietro Gagliardi
5ad2bfd6f0
Cleaned up uipriv*.h.
2015-05-01 10:14:11 -04:00
Pietro Gagliardi
122b1b0d2c
Some TODO consolidation.
2015-05-01 10:11:22 -04:00
Pietro Gagliardi
7dc7c5a5cd
Resolved a minor TODO in windows/menu.c.
2015-04-30 23:34:56 -04:00
Pietro Gagliardi
83f936a637
Fixed menus on Windows to avoid pointers moving underfoot.
2015-04-30 18:30:25 -04:00
Pietro Gagliardi
60a5931207
Added duplicate special menu item protection to the Windows backend.
2015-04-30 18:18:20 -04:00
Pietro Gagliardi
40dee5a693
Added bin destruction OS parent checks.
2015-04-30 17:49:38 -04:00
Pietro Gagliardi
dad19a6318
Switched from GetParent() to GetAncestor() on Windows since GetAncestor() has no documented error state.
2015-04-30 17:39:20 -04:00
Pietro Gagliardi
6400a6ea8c
TODO consolidation.
2015-04-30 17:34:15 -04:00
Pietro Gagliardi
75b4d28569
Implemented menu destruction on Windows.
2015-04-30 17:05:41 -04:00
Pietro Gagliardi
b52aa4cfcb
Started Windows menu destruction code and fixed a bug in GTK+ menu destruction.
2015-04-30 16:44:06 -04:00
Pietro Gagliardi
14de9f3cad
Fixed bug in Windows uiWindowOnClosing() handler.
2015-04-30 16:41:41 -04:00
Pietro Gagliardi
10345a2c7d
Implemented the new uiTab methods on Windows.
2015-04-30 15:50:03 -04:00
Pietro Gagliardi
c8695e4ca2
Decided to remove allocation logging. Leak checking can be done with dedicated tools.
2015-04-30 13:37:13 -04:00
Pietro Gagliardi
127f025eee
Decided not to bother with destruction blocking for now.
2015-04-30 13:30:00 -04:00
Pietro Gagliardi
63f1f7576e
Fixed a dumb typo in windows/tab.c that prevented tab switching from working correctly on Windows.
2015-04-29 23:05:15 -04:00
Pietro Gagliardi
a036632795
Re-connected Windows events. More TODOs.
2015-04-29 19:17:26 -04:00
Pietro Gagliardi
8f79f0596f
Set hidden flag variables BEFORE updating parent containers. Otherwise, parents won't reposition children correctly on systems where updates happen immediately (like OS X).
2015-04-29 14:25:34 -04:00
Pietro Gagliardi
6c6bce3702
Moved everything back to the top level.
2015-04-29 11:02:38 -04:00
Pietro Gagliardi
0ca0dcaf2d
Migrated the Windows basic controls. Rewrite in the new/ folder done!
2015-04-29 10:46:09 -04:00
Pietro Gagliardi
4c280ca42c
Removed or moved a bunch of stale files from the old source. All that's left now is to re-add the main controls and recreate the test program.
2015-04-29 10:20:25 -04:00
Pietro Gagliardi
90bb60a435
Moved windows/newcontrol.c and windows/tab.c back. Totally not migrated yet.
2015-04-29 01:34:03 -04:00
Pietro Gagliardi
7c91616af1
More old code file removal.
2015-04-28 13:53:45 -04:00
Pietro Gagliardi
bf401201f9
Removed a whole bunch of files from the old source tree.
2015-04-28 13:51:13 -04:00
Pietro Gagliardi
ac8e59c004
Hooked up the Windows menu event system and fixed some bugs in it. Still need to define menu events in general...
2015-04-21 18:52:57 -04:00
Pietro Gagliardi
dc386a599e
Added a framework for handling menu events on Windows.
2015-04-21 18:44:31 -04:00
Pietro Gagliardi
b6a2233d0b
Adjusted the Windows menu code for the recent changes (see past few commits).
2015-04-20 23:46:02 -04:00
Pietro Gagliardi
f303f066e2
Started implementing menus on Windows.
2015-04-20 20:26:21 -04:00
Pietro Gagliardi
21a29a5468
More destruction rules following code.
2015-04-19 22:59:06 -04:00
Pietro Gagliardi
24469a6e7b
Added code to check that a control is not destroyed while it has a parent. This isn't enough for uiStack, though...
2015-04-19 22:53:09 -04:00
Pietro Gagliardi
57329ea332
Implemented the desire background behavior for controls in windows/parent.c. Only one thing remains: clipping.
2015-04-18 20:31:32 -04:00
Pietro Gagliardi
9492e0b1c1
Settled WM_PRINTCLIENT for uiParent on Windows.
2015-04-18 20:27:12 -04:00
Pietro Gagliardi
92474f94af
Implemented WM_PAINT for uiParent on Windows. It seems to work...
2015-04-18 20:20:47 -04:00
Pietro Gagliardi
a2311c4c19
More TODOs.
2015-04-18 18:33:41 -04:00
Pietro Gagliardi
cf8871c524
Cleaned up the new control lifetime logic on Windows.
2015-04-18 18:07:57 -04:00
Pietro Gagliardi
55fe50463f
Changed Windows onWM_DESTROY to a generic onDestroy handler with a data parameter. This will make decoupling widget destruction from WM_DESTROY (like we did on GTK+ by decoupling from ::destroy) easier.
2015-04-18 18:02:16 -04:00
Pietro Gagliardi
63ccceed4f
Implemented uiTabDeletePage() on Windows. I'm really getting unhappy with the way we're implemented right now...
2015-04-18 14:41:28 -04:00
Pietro Gagliardi
492099f85a
Implemented lifetime stuff on Windows Tab. Starting to wonder why I'm bothering, or if this is even working. Anyway now I can write uiTabDeletePage()...
2015-04-18 14:19:42 -04:00
Pietro Gagliardi
efd94b2528
Continued implementing Windows lifetime code. Now for uiTab.
2015-04-18 14:16:06 -04:00
Pietro Gagliardi
8dcdbd0878
Started the work to settle lifetime issues on the Windows backend.
2015-04-18 14:06:12 -04:00
Pietro Gagliardi
1a76abef21
Implemented uiParentDestroy() on the Windows and Unix backends. These don't actually *use* it yet; that'll come later. (Ultimately, there should only be one path into window destruction, which leads to one path in uiParent destruction and one path in child destruction.) More TODOs.
2015-04-17 15:52:28 -04:00
Pietro Gagliardi
841b5c0c73
Migrated windows/parent.c to the previous commits's changes.
2015-04-17 14:53:56 -04:00
Pietro Gagliardi
9f0729de1c
Changed uiParentSetChild() to uiParentSetMainControl(). Backend changes incoming.
2015-04-17 13:43:01 -04:00
Pietro Gagliardi
d79acdf876
More Windows backend cleanup.
2015-04-17 11:19:42 -04:00
Pietro Gagliardi
c4499416d9
Migrated windows/tab.c.
2015-04-17 11:18:45 -04:00
Pietro Gagliardi
1ed80a8609
Migrated windows/entry.c and windows/label.c.
2015-04-17 11:13:42 -04:00
Pietro Gagliardi
292ea9db7a
Migrated windows/checkbox.c. Yes, this might work...
2015-04-17 10:49:14 -04:00
Pietro Gagliardi
5e5df97642
Migrated windows/button.c. This might be better; I don't know yet...
2015-04-17 10:40:52 -04:00
Pietro Gagliardi
b91fe0c2ac
Some more makefile fixups.
2015-04-16 20:52:47 -04:00
Pietro Gagliardi
3ac3d0a871
Fixed warnings in the Windows backend. That just leaves the Mac OS X one...
2015-04-16 10:03:31 -04:00
Pietro Gagliardi
a2b7492b32
Fixed the rest of the Windows build errors. IT STILL WORKS! Now to fix warnings, if any...
2015-04-16 09:59:05 -04:00
Pietro Gagliardi
83cb200582
Fixed some build errors in the Windows backend.
2015-04-16 09:53:44 -04:00
Pietro Gagliardi
0a34d4f894
Converted windows/windows.c. Now to build and test. More TODOs.
2015-04-16 09:44:06 -04:00
Pietro Gagliardi
a0b1ec8191
Fixed some errors in the Windows code.
2015-04-16 09:33:21 -04:00
Pietro Gagliardi
2cc7899d89
Converted windows/tab.c.
2015-04-16 09:32:34 -04:00
Pietro Gagliardi
45d6183743
Migrated windows/entry.c and windows/label.c.
2015-04-16 09:20:00 -04:00
Pietro Gagliardi
9b409db3a3
Migrated windows/checkbox.c and made some small fixes to windows/button.c.
2015-04-16 09:08:38 -04:00
Pietro Gagliardi
e9c00b6b65
More windows/newcontrol.c migration.
2015-04-16 01:53:23 -04:00
Pietro Gagliardi
6674944c0a
Migrated newcontrol.c and button.c on the Windows backend.
2015-04-16 01:52:31 -04:00
Pietro Gagliardi
aa802768a4
Started building the make structure.
2015-04-15 19:14:28 -04:00
Pietro Gagliardi
d4fb903c07
Moved the uipriv_*.h files to the respective folders. The ui_*.h files stay up here; they'll be moved to IDLs later.
2015-04-15 18:51:04 -04:00
Pietro Gagliardi
e69c0c93eb
Split all OS backends into their own folders.
2015-04-15 18:49:45 -04:00