Commit Graph

376 Commits

Author SHA1 Message Date
vurtun
f21c835363 fixed piemenu 2016-03-28 12:36:56 +02:00
vurtun
fcba0e676b Added skinning and extend customization
Previous visual changes in the library were quite limited with some
colors and some global properties. This commit changes all that and
provides way more control over every widgets visual appearance.
Changes include extended color selection, per widget properties and
the possibility to use skinning.
While the new API allows for a lot more control it is currently quite
low level and needs a lot more testing and probably another higher
level style API to make changes in code easier. I also had to remove
the style modification code inside the demo and will probably first
try to write another higher level API before adding it back in.

This commit also include some breaking changes to existing code like
the missing style stack API and some widget names changes due to
added granularity granted by the rewritten style.
2016-03-26 16:05:19 +01:00
vurtun
2cedc57f5d Extend default draw command API
The default draw command buffering API now supports filled and
outlined shapes as well as two additional commands: polygon and
polyline. While zahnrad only requires a small number of basic
filled draw command shapes to actual function the underlying canvas
to convert from draw commands to vertex buffer commands allows
for lot more. So the gap should now be filled and drawing more
complex custom is now a little bit easier. I thought about adding a
path drawing API to the draw command API but decided it is not
worth the hassle, at least for now.
2016-03-16 13:01:47 +01:00
vurtun
467118a86e Removed UI recording and revert to old version
I spend the last week(s) with lot of time thinking about this and I
came to the conclusion that recording it is not really worth doing.
In theory it could be interesting but the truth is I don't want to
do any more complex refactoring anymore and want to have a break
from extending this library. I spend over a year on this and I think
it is time for me to move on to other things. I will continue fixing
errors or adding requested essential smaller features but no
more complex rewrites or risky changes.
2016-03-15 21:12:25 +01:00
vurtun
5d54d65894 Removed textual UI representation 2016-03-09 13:12:30 +01:00
vurtun
4f677d200e Fixed C++ build errors 2016-03-08 08:58:55 +01:00
vurtun
68edafcd0c Added 'Enter' and 'Leave' widget events 2016-03-08 08:50:21 +01:00
vurtun
b0cc043879 added missing ifdefs for windows 2016-03-08 08:44:31 +01:00
vurtun
b09849f41a Added script to UI bytecode compile + file browser
This is quite a big commit which adds an experimental text script to
UI bytecode compiler. The compiler is still under heavy development
and can and will be under heavy changes, so use with caution.

In addition I added the old file browser for unix like platforms
back into the demo. At the moment it only supports windows but
the only part of the file browser that is platform dependend
is the directory content loader which should be easy to implement
in other platforms as well.
2016-03-07 18:17:15 +01:00
vurtun
32277127ac Added color picker widget
An additional widget for picking a color was added. Color picker use
the new draw call command multicolor rectangle which is not supported
everywhere. All demos using the optional vertex buffer output can use
the color picker without problems. Other platforms need to support
a drawing function or do not it.
2016-03-04 17:13:30 +01:00
vurtun
33af175b7e Added color conversion to and from hex string 2016-03-03 21:16:25 +01:00
vurtun
344be6eed2 Added window (de)activation into demo menu
Extended the demo window with a submenu which allows to activated or
deactivate windows. In this particular case the sequence in which the
control and demo window in contrast to all the other windows are
placed is important but only in this demo since querying is done by
the control window.
2016-03-03 14:36:28 +01:00
vurtun
3d905b2451 Fixed small C++ error since new is a keyword 2016-03-03 13:17:32 +01:00
vurtun
acb2a31b82 Fixed window hiding and exposing bug
Previously rapidly closing and exposing windows caused the library
to freeze. This had two reasons one was a bug in the list insert
and remove code the other was in the fact that if the currently
active window is removed no other window would active which resulted
in a blocking UI. Both problems are now fixed but there is a small
visual bug which is triggered if a window is toggled.
2016-03-03 13:12:20 +01:00
vurtun
047deec3cd Added time and date combobox to demo
Extended the demo with two additional very helpful comboboxes.
The first one is a simple time picker and the other one is a
date picker with year, month, week day selection.
2016-03-02 17:58:22 +01:00
vurtun
8159391640 Added Title alignment flags to menu header fix #53
Previously all menu titles were centered in X- and Y-axis without any
way to control the alignment. Since it was requested I added an
alignment flag to `zr_menu_text_begin`. To achieve the same outcome
like before this commit the flag has to be `ZR_TEXT_DEFAULT_CENTER`.
2016-03-02 09:45:06 +01:00
vurtun
1125016d0a Fixed simple allegro example text drawing bug
I forgot to change text drawing in the native allegro drawing API.
It should now be fixed and draw correctly. Furthmore I increased the
size of the demo window menu items to ensure that the checkbox text
is correctly drawn without clipping.
2016-03-01 19:52:18 +01:00
vurtun
c19a6a1bbe Finished experimental recording features
First version supporting the new record and play feature which allows
to `record` a number of API calls and lets you replay them at a later
point of time. This could be the basis for creating an Editor and
other more advanced features. While I tested the functionality there
still could be a number of bugs and I would recommend waiting
until all bugs are removed before using it.
2016-03-01 18:48:19 +01:00
vurtun
d0d5414164 first step 2016-02-24 13:19:39 +01:00
vurtun
ae1e3fc003 Fixed C++ errors that depend on typesafe enums
Fixed one of the small issues between C and C++. The handling of
enums. While C uses weak types and compiling `zr_flags` or
`enum zr_text_alignment` did not cause any problems, trying to do the
same with C++ results in errors or in this case a linking
error since while the function exist with `zr_flags` it does not
exist with `enum zr_text_alignment` (another problem of function
overloading...)
2016-02-16 13:42:20 +01:00
vurtun
9ab708e543 Fixed some c++ errors that slipped through 2016-02-15 19:37:31 +01:00
vurtun
e4448f5881 Added additional widget utility functions 2016-02-15 19:03:21 +01:00
vurtun
f727058044 Fixed rgb->hsv conversion and extended granularity
The conversion function from rgb color to hsv color was bugged and
provided wrong values. It is now fixed and hopefully is now correct.
In addition a number of utility functions have been added to make
conversion between user provided color format and zahnrads own
format easier.
2016-02-15 02:19:09 +01:00
vurtun
6adbb375de updated apple demos 2016-02-14 22:06:51 +01:00
vurtun
de384a805b changed layout param from zr_size to int 2016-02-14 22:06:12 +01:00
vurtun
98da4841dd Fixed canvas arc and therefore piemenu drawing
I forgot to add the center point to drawing an arc which resulted
in half spheres. It is now fixed and should work as intended.
2016-02-12 20:30:06 +01:00
vurtun
730fd24746 Fixed popup drawing inside groups
Previously the popup buffer state was stored inside the group
panel layout instead of the window layout. This caused
overdraw for popups and the underlying window. To fix that now
all popups are stored inside the root window panel layout
and everything is drawn correctly.
2016-02-12 19:09:36 +01:00
vurtun
890430db76 Fixed node editor node linking
Because clicking was changed to happen on button up instead
of button down linking was bugged. It has been fixed and should
work now was expected.
2016-02-12 17:51:59 +01:00
vurtun
fdbcc52629 Merged examples and demos into one (first step)
While dividing previously spared me from a lot of work and problems
it is probably best to have everything working for every or as many
platforms as possible. Some platforms fail to provide good ways
to support everything (e.g.:X11 does not have pixmap clipping with
different width/height or alpha-blending) but all OpenGL demos
outside allegro (needs some additional work) should be able to run.
2016-02-11 23:29:02 +01:00
vurtun
f5b6010a01 Added additional selectable color themes to demo
This commit extents the provided number of themes inside the demo
and updates the default style by using a smaller default padding
value for windows.
2016-02-09 15:16:05 +01:00
vurtun
c4916f62dd renamed zr_layout to zr_panel 2016-02-02 15:43:19 +01:00
richi
292c33d78b Additional CoreGraphics Example
iOS_CoreGraphics does contain a simple example running
Zahnrad on top of the native CoreGraphics API.
2016-02-01 21:15:25 +01:00
richi
c3da9dc2b6 vertexes -> vertices 2016-02-01 09:42:05 +01:00
vurtun
b2e99df63d Added enter event to edit widget
Decided to add support for commit the content of a edit wiget
content by enter if a flag was set. Tried to add other flags
like auto complete but failed for now to find a good way.
Also more importantly added `zr_edit_box` to filter callback.
2016-02-01 09:26:22 +01:00
vurtun
96fe7f7775 Added a global alpha modifier to zr_convert
Previously it was not possible to control the visibility or rather
the transparency of all render vertex buffer output. For that to
change another settings was added to zr_convert_config to control
the visibility. To achieve the same result as previously it is now
required to fill that property with 1.0f. To make all GUI element
as a whole more transparent a value between 0.0 and 1.0 can be
selected with 0.0 being completely hidden and 1.0f completly
visible.
2016-01-28 22:24:54 +01:00
vurtun
5c8cc7228c removed tab input code 2016-01-26 21:38:54 +01:00
vurtun
9757f59c66 Finally fixed the oldest bug in this library
For now month I failed to find out why text calculation was
bugged for zahnrads own vertex buffer font. I finally found
the problem and fixed it.
2016-01-26 14:56:28 +01:00
vurtun
c98153b59a removed need to pass string id to combobox 2016-01-20 19:36:40 +01:00
richi
67c5d53348 Calling zr_layout_peek first
Calling zr_layout_peek before zr_edit_string
2016-01-20 13:45:19 +01:00
richi
b73aa6ae74 Automatically show and hide the onscreen keyboard
This is an example how to show and hide a onscreen keyboard. The logic
is implemented in zr_touch_edit_string
2016-01-20 12:43:58 +01:00
richi
aa64398646 ifndef MIN, MAX and CLAMP
Does make live a lot easier for backends.
2016-01-20 12:35:31 +01:00
vurtun
4e7c183aa6 Merge branch 'master' of https://github.com/vurtun/gui 2016-01-20 03:15:56 +01:00
vurtun
096cf3d27f extended to return more state information 2016-01-20 03:15:38 +01:00
richi
c462ee09ac Text input on iOS and tvOS
This commit does implement text input for iOS and tvOS using the native
onscreen keyboard.
2016-01-19 18:24:43 +01:00
richi
5d1fdcdbe2 Backends for Mac OS X, iOS and tvOS
This is a bunch of experimental render backends for Mac OS X, iOS and
tvOS.
2016-01-17 16:09:59 +01:00
vurtun
4a49bfe64f updated opengl demos 2016-01-14 15:25:35 +01:00
vurtun
349017a28e fixed demo contextual menu height 2016-01-09 18:31:59 +01:00
vurtun
048a671e94 added initial state to tree layout 2016-01-09 16:07:22 +01:00
vurtun
8731c3d89e updated memory constants 2016-01-09 13:56:56 +01:00
vurtun
8d4284184c simplified having more than contextual menu 2016-01-08 00:30:40 +01:00
vurtun
04d0b75108 split draw rectangle function 2016-01-07 16:00:25 +01:00
vurtun
86d00cbe6e added rounding to x11 demo 2016-01-06 18:00:25 +01:00
vurtun
fd51ad4488 fixed text input for X11 & fixed utf8 edit box 2016-01-06 15:08:55 +01:00
vurtun
183013231b extended demo + fixed some bugs 2016-01-05 17:24:45 +01:00
vurtun
9a52c86548 removed clang -Weverything warnings 2016-01-05 12:54:23 +01:00
vurtun
8945d97eae updated demo and fixed some small bugs 2016-01-04 21:34:48 +01:00
vurtun
508df9d41d fixed blocking popup 2016-01-04 01:59:11 +01:00
vurtun
1be6475e5b fixed #35 2016-01-04 00:19:38 +01:00
vurtun
333d5f33e7 fixed typo #34 no3,4 2016-01-03 23:26:07 +01:00
vurtun
e6a305f020 fixed typo #34 no.2 2016-01-03 23:20:50 +01:00
vurtun
d943a32e18 renamed 'graph' to 'chart' #33 2016-01-03 20:33:56 +01:00
vurtun
138f6b3af5 some cleaning up 2016-01-03 20:23:12 +01:00
vurtun
080b59dcc2 removed sin & cos dependency 2016-01-03 01:47:01 +01:00
vurtun
7c37c06e4c event-based updates round.2 2016-01-02 14:54:45 +01:00
vurtun
bcabde32ab update LICENSE year 2016-01-01 09:51:35 +01:00
vurtun
a19590b738 removed win32 demo 2015-12-31 16:13:51 +01:00
vurtun
75f92de581 added another allegro demo 2015-12-31 14:39:29 +01:00
vurtun
20b9d3cd45 massive rewrite 2015-12-30 16:31:08 +01:00
vurtun
daae1b8804 major update no.1 2015-12-17 16:48:35 +01:00
vurtun
a59e45ab6f fixed color picker slider 2015-12-15 13:31:57 +01:00
vurtun
f43e3ea5e9 uses higher default compiler optimization #30 2015-12-12 15:57:56 +01:00
vurtun
9c3365e1ab added no dep linux opengl version 2015-12-11 11:58:09 +01:00
vurtun
36d86df9ab added missing vao freeing function 2015-12-11 11:57:34 +01:00
vurtun
db695a6e62 fixed typo 2015-12-08 23:27:59 +01:00
vurtun
3eeacea7b6 updated example + demo 2015-12-08 16:25:56 +01:00
vurtun
6db11ac7ce added icon/symbol menus 2015-12-07 13:46:29 +01:00
vurtun
37df97bee1 fixed menu text symbol/icon button 2015-12-06 20:35:18 +01:00
vurtun
80faad49fe removed debug code 2015-12-04 21:03:56 +01:00
vurtun
f7fdba4335 added password edit field 2015-12-04 01:08:39 +01:00
vurtun
98c5cf9277 fixed 'glyphes' typo 2015-12-03 19:32:46 +01:00
vurtun
89e7043b05 fixed 'modifyable' API typo 2015-12-03 18:54:41 +01:00
vurtun
2b2b33fc0b added multiline editbox + fixed some bugs 2015-12-01 00:21:34 +01:00
Yasuhiro Matsumoto
50d3324d73 fix Makefile for windows 2015-11-26 23:32:57 +09:00
Yasuhiro Matsumoto
f0ae284c9c include inttypes.h for PRIu64 2015-11-26 23:32:31 +09:00
Yasuhiro Matsumoto
0863941ab4 Remove compiler warnings 2015-11-26 15:56:05 +09:00
vurtun
bf493a550e added glfw demo 2015-11-25 18:12:58 +01:00
vurtun
4a9fd633ef renamed opengl version to sdl 2015-11-25 17:26:23 +01:00
Micha Mettke
69e13ea482 fixed win32 demo 2015-11-25 16:11:01 -08:00
vurtun
3e0ff05f9e removed unused variables 2015-11-24 19:33:46 +01:00
vurtun
61a56a48c4 added additional more clean demo version 2015-11-24 17:47:52 +01:00
vurtun
a59a5f54d6 fixed zr_spacing 2015-11-23 12:52:21 +01:00
vurtun
19e4080537 changed window header API for less draw calls 2015-11-22 20:03:42 +01:00
vurtun
c3f02270dd updated demos 2015-11-21 12:20:36 +01:00
vurtun
da8ce2e673 fixed multiple windows with opened popups 2015-11-21 12:19:22 +01:00
vurtun
44156326b9 added text height to text command 2015-11-20 00:20:03 +01:00
vurtun
e68c87ef27 made widgets private + removed tree 2015-11-19 18:36:16 +01:00
vurtun
c4b97faac0 removed unused variables 2015-11-11 16:56:21 +01:00
vurtun
56574a7361 added editbox with enter support 2015-11-11 12:03:17 +01:00
vurtun
b4370cf6b1 added draggable color selector 2015-11-10 16:37:48 +01:00
vurtun
65a865c570 added dragging widget 2015-11-10 15:07:43 +01:00