Commit Graph
100 Commits
Author SHA1 Message Date
Thomas Geymayer 557e4f75b5 canvas::Layout: support for hiding items. 2014-07-21 00:25:59 +02:00
Thomas Geymayer e71d6b24d7 cppbind: helper to call Nasal methods on NasalWidget. 2014-07-21 00:22:15 +02:00
Thomas Geymayer 726a4c6d10 canvas::NasalWidget: check for empty setGeometry callback. 2014-07-20 23:31:32 +02:00
Thomas Geymayer 6af8d32078 cppbind: fix Ghost casting/storage in polymorphic class hierarchies. 2014-07-20 23:17:33 +02:00
Thomas Geymayer f6b16e2ba8 canvas::Element: floating point scissor coordinates.
GL_SCISSOR itself only supports integer coordinates, but
with reference frames different from GLOBAL transforms
influence the position of the clipping frame, possibly
resulting in wrong positions due to too low precision.
2014-07-19 20:52:17 +02:00
Thomas Geymayer e415b08da4 canvas::BoxLayout: fix parent ref on add/remove. 2014-07-17 15:10:35 +02:00
Thomas Geymayer 9709cfe20d canvas::BoxLayout: set stretch factor by item. 2014-07-16 19:24:41 +02:00
Thomas Geymayer a5e99ea996 Nasal: require 0o as prefix for octal numbers.
Using just 0 as prefix for octal number can lead to confusion
where numbers could be interpreted the wrong way (oct instead of
dec).
Lets follow the same convention as Python 3 and Ecma 262 level 6
and use '0o' as prefix which can not be confused inadvertently.
2014-07-14 18:51:11 +02:00
Thomas Geymayer d9df10fe10 canvas::Layout: keep user provided size hints.
Don't let size hints layouted or calculated by Nasal widgets
override user provided hints.
2014-07-12 17:30:33 +02:00
Thomas Geymayer f1677f5546 SGTrackToAnimation: supress wrong warnings. 2014-07-12 11:55:38 +02:00
Thomas Geymayer cb796e374a SGPropertyNode: add InterpolationMgr getter. 2014-07-12 01:07:28 +02:00
Thomas Geymayer 7c3491c679 Don't restore old canvasses on reset.
No need for this anymore as PRESERVE now works as expected.
Otherwise old canvasses are restored and do not work anymore
as the placements of the new canvasses do not apply.
2014-07-11 19:07:53 +02:00
Thomas Geymayer 6200b160ec canvas::Element: fix cleanup (and hopefully crash) 2014-07-01 12:09:55 +02:00
Thomas Geymayer 9868fb03a2 pkg::Package: callback for installation start.
Allow eg. Aircraft Center to add listeners to packages to
be called if installation starts.
2014-06-30 18:36:15 +02:00
Thomas Geymayer a69130ff10 pkg: Remove Install from list after uninstall. 2014-06-30 18:34:41 +02:00
Thomas Geymayer 0b60643053 HTTPRequest/pkg::Install: do not replace callbacks.
Keep a list of callbacks to allow registering multiple callbacks
to the same event. This is consistent with eg. jQuery.Deferred
and is needed for example to open multiple dialogs showing the
progress of installing a package at the same time.
2014-06-30 18:22:24 +02:00
Thomas Geymayer dc4644bf3a canvas::Widget: pass ghost to onRemove handler 2014-06-29 11:57:12 +02:00
Thomas Geymayer 38b766f845 canvas::BoxLayout: fix hfw layouting (fix updating size hint cache). 2014-06-28 13:08:06 +02:00
Thomas Geymayer 10d0be013e fix g++ 4.4: "warning: suggest parentheses around ‘&&’ within ‘||’"
Warning does not make sense, but the old g++ complains...
2014-06-27 01:48:08 +02:00
Thomas Geymayer 5126ae5891 SGPath: fix creating paths with permission checker.
Check permission of the whole path and not to individual
directories, as none of the intermediate directories need
to be writeable by IORules.
2014-06-26 16:07:33 +02:00
Thomas Geymayer 49bcf49db1 Nasal: fix parsing octal/hex numbers in strings as well as during lexing.
Parse the same number formats (octal, dec, hex) in literals and tokens. Was
previously quite a mess, and is still not the best solution, as lexing and
string parsing uses different implementations, although they are meant to
do exactly the same conversions.
2014-06-26 14:21:18 +02:00
Thomas Geymayer 3bbb272ad5 nasal::Ghost: improve intrusive pointer storage and weak references.
- Just increment/decrement reference count for intrusive
   smart pointers. No need to create an additional object
   on the heap.
 - Keep strong reference for weak pointer based ghosts
   to prevent destroying objects while beeing used.
2014-06-23 13:14:07 +02:00
Thomas Geymayer 645cae184b SGConditionRef typedef. No functional changes. 2014-06-22 15:35:31 +02:00
Thomas Geymayer bd9fa7017f ShivaVG: fix call to shCopyPixels.
It is not used anyhow, but just in case...
2014-06-21 13:09:29 +02:00
Thomas Geymayer fc9f3abfbb ShivaVG: check for zero before dividing. 2014-06-21 12:26:58 +02:00
Thomas Geymayer f2f1b36df9 Nasal: better error message for non-numeric string. 2014-06-21 00:21:36 +02:00
Thomas Geymayer 03d2a166b7 canvas::CustomEvent: init bubbles member. 2014-06-19 13:04:21 +02:00
Thomas Geymayer f0a76aa918 Use Boost.Test for strutils_test and add some md5/hex tests. 2014-06-18 18:22:31 +02:00
Thomas Geymayer c144c3562c Keep md5 inside simgear and use single encodeHex implementation. 2014-06-18 18:07:42 +02:00
Thomas Geymayer e06f9462ab Expose md5.h to flightgear for. Will need a better interface... 2014-06-17 22:32:40 +02:00
Thomas Geymayer 9aa5c3b2ae Nasal: support for standard bitwise operators.
This makes bitwise operations a lot easier^^
2014-06-17 16:59:04 +02:00
Thomas Geymayer 2c41c25fcd canvas::Text: get maximum width (if displayed on a single line). 2014-06-17 16:12:29 +02:00
Thomas Geymayer 9ffc0ae8bc canvas::NasalWidget: ensure nasal part is destroyed 2014-06-16 23:45:52 +02:00
Thomas Geymayer 5024b62c0a cppbind: queue Ghosts for deletion and delete outside gc. 2014-06-15 16:34:47 +02:00
Thomas Geymayer 82d5c605e5 canvas::Element: check if element is valid. 2014-06-15 16:30:57 +02:00
Thomas Geymayer 737b1948bf canvas::Layout: proper cleanup/update on removing items. 2014-06-15 16:30:25 +02:00
Thomas Geymayer 1225e53162 pkg: allow 'installed' as filter criterion. 2014-06-15 13:58:12 +02:00
Thomas Geymayer b58bf443ff canvas::Layout: add clear method to remove all items. 2014-06-14 13:19:00 +02:00
Thomas Geymayer 9bef80fbef Simple Markdown parser.
Parse just a tiny subset of Markdown, to basically collapse
multiple whitespace and do paragraphs only after two newlines.
Also one-level, unordered lists are supported. The output can
be eg. directly forwarded to canvas::Text.
2014-06-13 19:12:56 +02:00
Thomas Geymayer 36cb7a752b canvas::Text: add heightForWidth method. 2014-06-13 00:08:57 +02:00
Thomas Geymayer d3b211e787 canvas::Layout: support height-for-width layouting. 2014-06-13 00:03:40 +02:00
Thomas Geymayer e3f0fad272 Package: fix property type (description) 2014-06-12 23:26:01 +02:00
Thomas Geymayer e8f10dd2e8 pkg: Fix recursion in Install destructor.
Prevent creating a shared pointer from this in
destructor, which would lead to recursively
calling the descructor.
2014-06-12 23:21:56 +02:00
Thomas Geymayer dd2bf418b9 canvas::Layout: remove/get child items. 2014-06-12 00:35:17 +02:00
Thomas Geymayer 97cc250047 Package: fix detection of unknown filter term. 2014-06-11 18:18:18 +02:00
Thomas Geymayer 49fc75926e Use Boost.Test to test utf8tolatin1 - others to be converted too... 2014-06-11 00:29:17 +02:00
Thomas Geymayer 9880ba39a7 pkg: Support for install callbacks and fix memory corruption. 2014-06-11 00:19:11 +02:00
Thomas Geymayer c716cfbb07 cppbind: expose SGRect as [x, y, w, h] 2014-06-10 18:42:12 +02:00
Thomas Geymayer ade4627f1a Package: use correct tag for download url. 2014-06-10 00:45:03 +02:00
Thomas Geymayer e508ff724c canvas::BoxLayout: add custom additional whitespace (spacer/stretch) 2014-06-08 23:30:11 +02:00
Thomas Geymayer c54e3f8101 canvas::Image: allow aspect ratio preserving display. 2014-06-08 02:16:07 +02:00
Thomas Geymayer e302ad092e canvas::Image: abort http requests if image is destroyed. 2014-06-05 17:25:12 +02:00
Thomas Geymayer 7a65d42a4c Canvas: fix transformation of clip rect. 2014-06-05 16:07:09 +02:00
Thomas Geymayer d3a14bfd61 canvas: BoxLayout shared pointer typedef. 2014-06-04 17:48:46 +02:00
Thomas Geymayer 03cafe4547 Catalog: add method to get all packages in a catalog. 2014-06-04 17:47:29 +02:00
Thomas Geymayer e5acc3f048 cppbind::Ghost: improve compiler error message for wrong usage. 2014-06-04 17:46:35 +02:00
Thomas Geymayer 4931ce0364 This has to work on windows now^^ 2014-06-04 13:41:48 +02:00
Thomas Geymayer e3d53e854a Hopefully fixing windows build. 2014-06-04 12:17:00 +02:00
Thomas Geymayer bdf6b25338 Now the real fix for old compilers... 2014-06-04 03:16:02 +02:00
Thomas Geymayer 5dddba26ac Fix headless build and reduce include dependencies. 2014-06-04 02:46:57 +02:00
Thomas Geymayer 746fa419ed Trying to fix problems retrieving static member address with old compilers. 2014-06-04 02:45:52 +02:00
Thomas Geymayer 7080f919e9 Fix for old versions of Boost.
No support for BOOST_STATIC_ASSERT_MSG before Boost 1.46.
2014-06-03 20:34:21 +02:00
Thomas Geymayer c4e0014d74 cppbind::Ghost: safely use strong and weak references.
Allow using strong and weak references within the same
class hierarchy and seemlessly convert between them -
from and to Nasal.
2014-06-03 18:40:01 +02:00
Thomas Geymayer 7d9797e091 SGSharedPtr: add constructor to convert from SGWeakPtr. 2014-06-03 01:58:57 +02:00
Thomas Geymayer 32274027ef Missing return statement 2014-06-01 12:14:31 +02:00
Thomas Geymayer d09943cbb8 Fix wrong include guard (identified by clang) 2014-06-01 12:12:28 +02:00
Thomas Geymayer 150039f9ba Canvas/Layout: tweak the way elements are exposed to Nasal. 2014-06-01 12:12:28 +02:00
Thomas Geymayer 820a315cbe Canvas: fix possible crash with destroyed canvasses 2014-06-01 12:12:28 +02:00
Thomas Geymayer 8abe4622b9 Canvas: trigger immediate update from property tree/Nasal. 2014-06-01 12:12:28 +02:00
Thomas Geymayer b36cdebe8b Canvas: basic layouting system.
Support for vertical and horizontal layouts. More layouts and
widgets can be created using Nasal.
2014-05-31 02:40:59 +02:00
Thomas Geymayer 3c0544c9a6 Sky dome: remove unused variables/code. 2014-05-31 00:09:56 +02:00
Thomas Geymayer be358f8d24 cppbind: use Hash iterators to extract simgear::Map 2014-05-30 23:59:36 +02:00
Thomas Geymayer e1abab393b Fix for clang/template dependent name lookup.
Thanks to James & Nicholas...
2014-05-30 23:57:55 +02:00
Thomas Geymayer 0b21181f1a Canvas: allow dispatching events to Canavs itself 2014-05-29 16:34:33 +02:00
Thomas Geymayer dfdd1c6d5e cppbind: some new methods and safer type check. 2014-05-29 16:30:41 +02:00
Thomas Geymayer a8e96997cb nasal::Hash: add iterators. 2014-05-29 14:14:52 +02:00
Thomas Geymayer 6db07373ee PropertyBasedElement: extend HTML5 (Canvas) data props interface
Allow check if property exists and removing properties.
2014-05-29 01:22:35 +02:00
Thomas Geymayer 36ae8cdce3 Update doxgen config and some comments. 2014-05-29 00:27:50 +02:00
Thomas Geymayer d77ba7d2db canvas::Element: setter/getter for HTML5 style data-* properties. 2014-05-28 18:11:32 +02:00
Thomas Geymayer 6e58fdac85 canvas: exclude data-* properties from triggering an update.
Allows using data-* properties on canvas and elements,
similar to HTML5, without triggering a new rendering of
the canvas.
2014-05-27 17:56:46 +02:00
Thomas Geymayer 3f6933940e ShivaVG: get rid of glu dependency.
We do not use the image rendering part anyhow, so
just disable it for now. If we want to use it we
will need a modified implementation anyhow to
integrate with OpenSceneGraph threaded OpenGL
resource management.
2014-05-27 17:56:46 +02:00
Thomas Geymayer 9c421d55a9 Canvas: support for custom events and event dispatching. 2014-05-19 00:17:23 +02:00
Thomas Geymayer 1af6cbc1aa cppbind.Ghost: more member overloads. 2014-05-18 23:55:43 +02:00
Thomas Geymayer a9e7af6e6e Enable dynamic linking on Mac for Boost.Test 2014-05-18 17:47:03 +02:00
Thomas Geymayer c967fbc0a6 cppbind.Ghost: clean up a bit 2014-05-18 17:43:30 +02:00
Thomas Geymayer 6929ba75c0 cppbind: convert maps from nasal. 2014-05-18 13:34:06 +02:00
Thomas Geymayer 289777bd99 cppbind.Ghost: register _get called on retrieving unset member.
Allow registering a callback on ghosts called upon retrieving
an unset member.
2014-05-18 13:34:06 +02:00
Thomas Geymayer 7535dfd2d0 cppbind: from_nasal/to_nasal for SGWeakReferenced based objects 2014-05-10 10:49:11 +02:00
Thomas Geymayer 23279b4d0a Canvas: move window from flightgear. 2014-05-09 16:17:40 +02:00
Thomas Geymayer d34d3ecfb1 SGWeakReferenced: fix for clang. 2014-05-09 11:52:42 +02:00
Thomas Geymayer 55f18574aa Fix for CMake 2.6
No named arguments for add_test in CMake 2.6.
2014-05-08 11:17:28 +02:00
Thomas Geymayer 02ac1a43c1 Add smart pointer tests (finally using Boost.Test) 2014-05-08 02:17:24 +02:00
Thomas Geymayer b2c3a90adf Fix use count for deleted, reference counted objects.
Remove inconsitency of returning 0 or ~0. If the object
has been deleted there are no more references, so always
return 0.
2014-05-08 01:43:41 +02:00
Thomas Geymayer 9975c751a7 Add support for using SGWeakPtr with virtual base classes.
- Add SGVirtualWeakReferenced to be used as base class
   for reference counted objects supporting weak references
   and virtual base classes.
 - Modify SGWeakPtr to copy with SGVirtualWeakReferenced
   objects.
2014-05-08 00:27:00 +02:00
Thomas Geymayer efbec8b367 Canvas: base Elements/Canvas on SGWeakReferenced. 2014-05-06 18:10:42 +02:00
Thomas Geymayer 9642f6d946 cppbind: add naContext/naRef overload to Ghost::_set 2014-05-06 18:10:35 +02:00
Thomas Geymayer 247aa49849 SGSharedPtr/SGWeakPtr: add some methods/operators
- allow placing SGWeakPtr in sorted STL containers (eg. requiring
   operator<)
 - add reset() like for boost::shared_ptr/boost::weak_ptr
 - add helper to extract pointer from SGWeakPtr
2014-05-06 18:10:14 +02:00
Thomas Geymayer edaae885ee cppbind: small logging/warning updates. 2014-05-05 15:06:15 +02:00
Thomas Geymayer b101f64cd8 cppbind.Ghost: register _set called on setting new properties. 2014-05-05 15:06:09 +02:00
Thomas Geymayer f75d1cbcb1 cppbind: disable special handling of 'parents' for ghost. 2014-05-05 14:48:29 +02:00