1 2009-12-03 Jeffrey Stedfast <fejj@novell.com>
3 * runtime.cpp (SetZoomFactor): Stubbed out.
5 2009-12-03 Jeffrey Stedfast <fejj@novell.com>
7 * brush.cpp (ImageBrush::ImageOpenedEvent): Added.
8 (ImageBrush::ImageOpened): Emit our own ImageOpened event.
10 2009-12-03 Larry Ewing <lewing@novell.com>
13 * mediaelement.cpp (Render): Set the extend mode to pad now that
14 we can in the hopes that it will bring us closer to sl rendering.
16 2009-12-03 Larry Ewing <lewing@novell.com>
19 * mediaelement.cpp (Render): Adjust the rendering bounds in the
20 case where RenderSize != actual size this fixes DRT 280.
22 2009-12-03 Jackson Harper <jackson@ximian.com>
24 * xaml.cpp: A single namespace uri can have many prefixes. ie
25 xmlns:foo="My.Namespace" xmlns:bar="My.Namespace"
27 2009-12-03 Larry Ewing <lewing@novell.com>
29 * Makefile.am (libmoon_include_headers): add textoptions.h to the
32 2009-12-03 Alan McGovern <amcgovern@novell.com>
34 * contentcontrol.cpp: Comment out an extra check when changing
35 the content on a ContentControl which breaks some
36 silverlight toolkit tests.
38 2009-12-02 Jeffrey Stedfast <fejj@novell.com>
40 * collection.h (enum CollectionIteratorError): New enum to define
41 the possible error conditions for the CollectionIterator methods.
43 * collection.cpp (CollectionIterator::Next): Now returns bool and
44 takes an 'err' argument for error reporting rather than having the
45 return value handle everything.
46 (CollectionIterator::GetCurrent): Modified to also check index <=
47 Count and made the int error argument into a
48 CollectionIteratorError argument.
50 * resources.cpp (class ResourceDictionaryIterator): Implemented.
51 (ResourceDictionary::GetIterator): Return a new
52 ResourceDictionaryIterator.
53 (GetFromMergedDictionaries): Updated for CollectionIterator API
56 * provider.cpp (StylePropertyValueProvider::RecomputePropertyValue):
57 Updated for CollectionIterator API changes.
58 (StylePropertyValueProvider::SealStyle): Same.
60 * style.cpp (SetterBaseCollection::Seal): Updated for
61 CollectionIterator API changes.
63 2009-12-02 Jackson Harper <jackson@ximian.com>
65 * xaml.cpp: hack to allow Icon's to have a default Source
68 2009-12-02 Alan McGovern <amcgovern@novell.com>
70 * frameworkelement.cpp: Testing shows that MS emits all the
71 SizeChanged events before doing another measure pass. This
72 fixes an older version of the DataVisualisation demos in the
73 Controls Toolkit demo.
75 2009-12-01 Jeffrey Stedfast <fejj@novell.com>
77 * layout.cpp (GenerateGlyphCluster): Only apply horiBearingX if it
78 is not the first glyph in the cluster. Fixes drt 279.
80 2009-12-01 Jeffrey Stedfast <fejj@novell.com>
82 * textblock.cpp (TextBlock::Paint): Moved the "show text boxes"
83 debug rendering out of here and into layout.cpp.
84 (TextBlock::ComputeBounds): Use layout->GetRenderExtents() to get
85 the (pre-transformed) bounds rather than the complex kung-fu that
86 was there before. Fixes Vector Space Zero's side-scrolling "WAVE"
89 * layout.cpp (TextLayout::GetRenderExtents): New helper method to
90 get the render rectangle for the layout.
91 (TextLayout::Render): If the "show text boxes" debug flag is set,
92 render a green rectangle for the text region.
94 2009-12-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
96 * audio.cpp: Make mutex recursive.
98 2009-12-01 Alan McGovern <amcgovern@novell.com>
101 * runtime.cpp: 1) Rename GenerateFocusChangedEvents to
102 EmitFocusChangeEvents.
103 2) Replace AutoFocusAsync with EmitFocusChangedEventsAsync as
104 that's what it's used for now.
105 3) Generate and queue all the required GotFocus/LostFocus
106 events as soon as a new element is focused, don't wait til
109 2009-12-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
111 * dependencyobject.cpp: ~EventObject: no need to access
112 Deployment::GetCurrent, we already know the deployment.
114 2009-12-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
116 * pipeline.h: Fix typo in comment.
118 2009-12-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
120 * pipeline.h: Remove outdated comment.
122 2009-12-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
124 * debug.cpp: Handle aborts too to get stack traces when pulseaudio
127 2009-12-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
129 * mediaelement.cpp: fix printf format specifier for 64 bits.
131 2009-12-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
133 * pipeline-asf.cpp: Fix error message to include error code.
135 2009-12-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
137 * audio.cpp|h: Use our Mutex class.
139 2009-12-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
141 * pipeline.cpp: Make the protected FileSource ctor take an Type::Kind
142 parameter and update accordingly.
144 2009-12-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
146 * deployment.cpp: Make the number of objects dumped configurable by
147 environment variable.
149 2009-12-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
151 * debug.cpp|h: Make the number of stack frames printed configurable
152 with an env var. Remove the ifdefs for managed stack frames - always
155 2009-12-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
157 * mediaelement.cpp: OpenCompletedHandler: emit MediaOpened event if
158 we're detached. Fixes MS DRT #521.
160 2009-11-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
162 * deployment.h: Mark (only) the thread-safe GetSurface version for
165 * cbinding.cpp|h: Regenerated.
167 2009-11-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
169 * dependencyobject.cpp: DO::Dispose: if we have a parent at this point,
170 remove any destroyed event handlers we may have and call SetParent on it.
173 * collection.cpp: (DependencyObjectCollection and ResourceDictionary)
174 ::AddedToCollection: if we didn't end up adding the item to the
175 collection, ensure that we don't leave the item with a parent.
176 Fixes a crash in MS DRT #485.
178 2009-11-30 Jackson Harper <jackson@ximian.com>
180 * resources.h: Fix managed return type of the merged dictionaries
183 2009-11-30 Jeffrey Stedfast <fejj@novell.com>
185 * mediaelement.cpp (MediaEndedHandler): Fixed printf formatter.
187 2009-11-30 Andrés G. Aragoneses <aaragoneses@novell.com>
189 * security.c: MOON_A11Y_INTERNAL_HACK is not needed anymore
190 since the audit finished in r147098. r: spouliot
192 2009-11-30 Alan McGovern <amcgovern@novell.com>
194 * contentcontrol.cpp: Invalidate the measure whenever the
195 Content changes otherwise we may never apply the template
196 and display the content.
198 2009-11-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
200 * pipeline.cpp: IMediaStream::EnqueueFrame: use the same algorithm
201 as IMediaDemuxer::FillBuffers to determine if we have a frame or not,
202 this way there won't be any disagreement between those two. Fixes an
203 issue with DRT #521 where the video wouldn't resume playing after
204 the MediaElement was reattached to the tree.
206 * mediaelement.cpp|h: Save the current state when the MediaElement
207 is detached from the tree and if we're reattached, go back to the
208 original state (i.e. start playing again if we were playing). Fixes
211 2009-11-30 Alan McGovern <amcgovern@novell.com>
213 * uielement.cpp: When propagating hint flags up the visual
214 tree, we can only safely stop walking up the tree if the
215 visual parent already has the hint flag set.
217 * frameworkelement.cpp: If an element invalidates its Measure
218 or Arrange inside a LayoutUpdated handler, we should do
219 another measure/arrange pass immediately. Also add in a
220 debug sanity check to ensure that there are no dirty
221 elements left over when we've finished updating.
223 2009-11-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
225 * dependencyobject.cpp|h: Remove EO::GetStackTrace, never used.
227 * debug.cpp|h: Move MAX_STACK_FRAMES into debug.cpp so that a change
228 doesn't require a rebuild of *everything*.
230 2009-11-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
232 * dependencyobject.cpp: In the parent destroyed handler, call
233 SetParent (NULL) instead of clearing the field directly so that
234 we don't miss any other related cleanup that must be done.
236 2009-11-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
238 * dependencyobject.cpp|h: Add a SetParentSafe method that managed code
239 can use. This method differs from the normal SetParent method in that
240 it listens for the parent's Destroyed event and calls SetParent (NULL)
241 This is a lot easier than keeping track in managed code of objects we
242 must call SetParent (NULL) on.
245 * frameworkelement.cpp|h: Make sure we clear out the parent on objects
246 we call SetParent on whenever the object changes or when we're disposed.
248 * cbinding.cpp|h: Regenerated.
250 2009-11-30 Alan McGovern <amcgovern@novell.com>
252 * uielement.cpp: Revert 147089 as I didn't mean to commit it
255 2009-11-27 Alan McGovern <amcgovern@novell.com>
257 * uielement.cpp: Remove the fast path to avoid walking up the
258 tree if the hint flag is already set as it breaks drt 549.
260 2009-11-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
262 * uielement.cpp: SetIsAttached: check the surface for null before using
263 it, we may end up here during shutdown, in which case there is no
266 2009-11-27 Alan McGovern <amcgovern@novell.com>
268 * frameworkelement.cpp: Fix an issue where if we found no
269 dirty elements while searching the DIRTY_MEASURE_HINT path,
270 we could exit early (without doing an Arrange or Size path).
272 2009-11-27 Alan McGovern <amcgovern@novell.com>
274 * uielement.cpp: If an item which has a value set for
275 LastRenderSize is added to the tree, ensure that the dirty
276 size hint is propagated up the tree.
278 2009-11-27 Alan McGovern <amcgovern@novell.com>
280 * frameworkelement.cpp: Add a default handler to the switch to
281 silence compiler warnings.
283 2009-11-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
306 * mediaelement.cpp|h:
307 * mms-downloader.cpp:
308 * frameworkelement.cpp:
309 * dependencyobject.cpp|h: Remove the surface field and the SetSurface
310 method from EventObject. Add (Set)IsAttached, which replaces the earlier
311 "is attached" logic of having a surface set. Update all usages. When
312 we really wanted to get the surface, we now need to get it from the
315 * cbinding.cpp|h: Regenerated.
317 2009-11-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
319 * dependencyobject.h: Remove unneeded cbinding/pinvoke.
321 * deployment.cpp|h: Make Surface a normal property so that we can make
324 * runtime.cpp|h: Added GetTimeManagerReffed (thread-safe), and make
325 necessary changes to make it thread safe too.
327 * dependencyproperty.g.cpp: Regenerated.
329 2009-11-27 Alan McGovern <amcgovern@novell.com>
336 * frameworkelement.cpp: Whenever an element is invalidated,
337 propagate a hint flag up the visual tree. Use this hint flag
338 to avoid walking branches which are not dirty, thus reducing
339 the time required to walk large trees by more than a factor
342 2009-11-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
344 * pipeline.cpp|h: Media::ReportSeekCompleted: don't reset 'stopped',
345 it makes us buffer after a Stop (since we seek to 0 when stopping).
347 2009-11-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
349 * mediaelement.cpp: BufferingProgressChangedHandler: don't go to
350 buffering unless we're paused or playing.
352 2009-11-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
354 * mediaplayer.cpp: Initialize duration to zero.
356 2009-11-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
358 * pipeline.cpp: Remove a g_warning.
360 2009-11-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
362 * mediaelement.cpp: Fix bad printf.
364 2009-11-25 Jeffrey Stedfast <fejj@novell.com>
366 * fontmanager.cpp (FontFace::GetExtents): Now takes a gapless
367 argument, which, if set, subtracts the sTypoLineGap from the
368 overall LineSpacing and Descender metrics.
370 * fonts.cpp (TextFont::.ctor): Now takes a gapless bool argument
371 to specify whether or not the Height() method should ignore the
373 (TextFont::UpdateFaceExtents): Updated to pass along the gapless
375 (TextFont::LoadPortableUserInterface): Modified to tell our caller
376 whether or not the sTypoLineGap should be ignored.
377 (TextFont::Load): Pass a gapless arg to TextFont's ctor.
379 2009-11-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
381 * pipeline.cpp|h: Media::ReportSeekCompleted: add a 'pending_seeks'
382 parameter that will tell the Media if it can clear the 'stopped' state
383 (so that buffering can begin again).
385 * mediaelement.cpp: SeekCompletedHandler: don't call Play on anything
386 here, the reason we did it was to signal the pipeline that it could
387 start buffering again - however this is broken since we must always
388 start buffering after a seek (even if the previous state was Stopped).
389 Go into the buffering state when we get a buffering changed event and
390 we're not already in the buffering state. Also store the PlayRequested
391 bit in Seek if we're in a playing state.
393 2009-11-25 Larry Ewing <lewing@novell.com>
395 * textblock.cpp (ComputeBounds): compute our actual bounding rect
396 if the text alignment isn't left;
398 Fixes 279 and http://www.silverlightstopwatch.com
400 2009-11-25 Jackson Harper <jackson@ximian.com>
402 * runtime.cpp|h: Implement a flag and access method for running out
403 of browser. DESKTOP_INIT will use this flag and in the future a
404 chrome'd OOB could use this flag also.
406 2009-11-25 Alan McGovern <amcgovern@novell.com>
408 * popup.h: Add a missing @CallInitialize which resulted in 555
411 * textbox.h: Keep the usage of the Initialize method
412 consistent - add @CallInitialise to the native type if
413 Initialize is required instead of making it virtual and
416 2009-11-25 Alan McGovern <amcgovern@novell.com>
418 * runtime.cpp: Use TabNavigationWalker to perform the actual
419 focusing otherwise we will only focus properly if the root
420 element is a focusable control. If nothing in the tree is
421 focusable, the root element itself is forcibly focused.
424 2009-11-25 Alan McGovern <amcgovern@novell.com>
426 * grid.cpp: UIElements are only considered to span an auto row
427 if they do not also span a star row. Similarly for columns.
428 Add the missing check to the if statement. Fixes several
429 moon-units and also scrollbars on the silverlight toolkit.
431 2009-11-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
433 * mediaelement.cpp: SeekingHandler: only set BufferingProgress and emit
434 the event if the property actually changes.
436 2009-11-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
438 * mediaelement.cpp: Don't go to the Buffering state when Seek is called,
439 do it instead in the Seeking handler. Fixes regression of MS DRT #486.
441 2009-11-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
443 * pipeline.cpp|h: Ensure that after a seek we don't add frames to the
444 streams that we don't need (such as frames before the last keyframe
445 before the point we seeked to). Also emit Media::SeekingEvent when we
448 * mediaplayer.cpp: Remove the DEBUG_ADVANCEFRAME define: use the LOG_EX
449 logging method instead.
451 * mediaelement.cpp: When we seek, go to the Buffering state, and when
452 the pipeline starts seeking, set buffering progress to 0. This ensures
453 we emit buffering process changed events when the seek has completed.
455 * pipeline-asf.cpp: MmsPlaylistEntry: When we seek we need to clear
456 whatever we have in our queue of packets.
458 * playlist.cpp: Implement PlaylistEntry::SeekingHandler.
460 2009-11-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
465 * mediaelement.cpp: Make Media::GetDemuxer and IMediaStream::GetDemuxer
466 return a reffed demuxer (and rename methods appropiately). Also update
467 all usage of those methods.
469 2009-11-23 Alan McGovern <amcgovern@novell.com>
474 * dependencyobject.h:
475 * dependencyobject.cpp: DOs which are expanded from a
476 ControlTemplate need to keep track of the
477 'templateBindingSource' so that we can attach new
478 TemplateBindings later. This value is stored in addition to
479 'IsTemplateItem' as DOs can be expanded from templates which
480 are not ControlTemplates and only ControlTemplate passes in
481 a non-NULL value for templateBindingSource.
484 * cbinding.cpp: regen
486 2009-11-21 Larry Ewing <lewing@novell.com>
488 * frameworkelement.cpp: round the layout slot and the size
489 constraints when using layout rounding.
491 * frameworkelement.h: remove unused overload.
493 * grid.cpp (PostRender): clear any path before drawing grid lines.
495 Fix 2024 (and 2005 other than font metrics) by applying layout
496 rounding more aggressively.
498 2009-11-20 Larry Ewing <lewing@novell.com>
500 * runtime.cpp: Invalidate the window when removing a message
503 2009-11-20 Larry Ewing <lewing@novell.com>
505 * grid.cpp (PostRender): use apply the layout clip when rendering
508 2009-11-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
510 * managedtypeinfo.cpp: Use strcmp instead of g_strcmp0 since the latter
511 isn't available in sled10.
513 2009-11-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
515 * type.h.in: Generate P/Invoke for Types::RegisterType.
518 * cbinding.h: Regenerated.
520 2009-11-20 Larry Ewing <lewing@novell.com>
522 * textblock.cpp: Fix the dynamic property providers to subclass
523 from FrameworkProvider so that layout actually works with these
524 elements. Change the min size hack until Jeff fixes it properly.
526 Fixes DRT 269 (again).
528 2009-11-20 Chris Toshok <toshok@ximian.com>
530 * media.h,media.cpp (class Image): add ImageOpenedEvent.
532 * enums.h,enums.cpp (enum TextHintingMode): add SL3 enum.
534 * textoptions.h (class TextOptions): add this static SL3 class.
536 * effect.h, effect.cpp: stub ShaderEffect and PixelShader.
538 2009-11-20 Larry Ewing <lewing@novell.com>
540 * frameworkelement.cpp (Measure): don't expand templates on items
543 2009-11-20 Alan McGovern <amcgovern@novell.com>
545 * grid.cpp: Elements which span star rows and auto columns are
546 measured twice. The first time they are measured we only
547 want the desired width in order to calculate the size of the
548 Auto column, as such we need to ignore the value of the
549 desired height. This fixes the ScrollBar out of view issue
552 2009-11-19 Larry Ewing <lewing@novell.com>
554 * runtime.cpp: remove the manual fs message layout logic.
556 * runtime.h: make the messages panels.
558 * fullscreen.xaml: use grid layout rather than doing manual
561 * incomplete-support.xaml: rework the padding a little.
563 2009-11-19 Larry Ewing <lewing@novell.com>
565 * frameworkelement.cpp (Arrange): make the layout_clip less
566 restrictive as indicated by the tests.
568 2009-11-19 Jeffrey Stedfast <fejj@novell.com>
570 * uri.cpp (Parse): Lowercase the hostname and remove the port if
571 it is identical to the default port for the protocol as per the
572 documentation on the Uri class on MSDN.
574 2009-11-19 Sebastien Pouliot <sebastien@ximian.com>
576 * deployment.cpp: Update comment (it's not incomplete anymore)
578 2009-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
580 * mediaelement.cpp|h: Add support for getting a quality level,
581 determined by dropped frames per second. Use this quality level
582 to decide which filter algorithm we should ask cairo to use.
584 2009-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
586 * mediaelement.cpp|h: Remove unused field.
588 2009-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
590 * value.cpp: Need to create zeroed out memory for ManagedTypeInfo
591 instances, since the assignment operator on the next line will try to
592 free whatever the previous memory was pointing to.
595 * contentcontrol.cpp: Create ManagedTypeInfo instances using g_new
596 instead of new to match the way they'll be deleted (g_free). Also
597 delete them properly.
599 * type.h[.in]: Move ManagedTypeInfo to its own file to not require a
600 complete rebuild every time it changes. ManagedTypeInfo: added copy
601 constructor and destructor: these are used when g++ does it's copy
602 magick. Added [in]equality operators so that Value can compare to instances
603 correctly. Added Initialize/Free methods - to be used when an instance is
604 created with glibs g_new.
606 * value.cpp: Properly compare and free ManagedTypeInfo instances.
608 * Makefile.am: Added managedtypeinfo.h|cpp.
612 * contentcontrol.cpp:
613 * dependencyproperty.g.cpp: Include managedtypeinfo.h.
615 2009-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
617 * src.mdp: Updated with new files.
619 2009-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
621 * runtime.cpp: Set object type when calling base ctor to get correct
622 object type tracking.
626 * audio-pulse.cpp: Set the correct object type on AudioSource
629 2009-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
631 * type.h[.in]: No need to generate cbindings/pinvokes for ~Types
634 * cbinding.cpp|h: Regenerated.
636 2009-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
638 * dependencyobject.cpp: Remove debug spew.
640 2009-11-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
642 * brush.cpp: ImageBrush::SetupBrush: Fix a possible deadlock in error
645 2009-11-18 Chris Toshok <toshok@ximian.com>
647 [ fixes silverlight.net/showcase/ ]
649 * downloader.cpp (Downloader::ValidateDownloadPolicy): we need to
650 maintain the trailing separator on the source_location.
651 (Downloader::Open): same.
653 2009-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
655 * cbinding.h: Regenerated.
657 2009-11-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
659 * value.cpp: Don't ever use memcmp for structure comparison - it fails
660 randomly if the structures have padding. Also special case float/double
661 comparison to take epsilon into account. Fixes random failures in MS
665 * grid.h: Add [in]equality operators.
672 * propertypath.h: Make inequality operator be the exact opposite of the
673 equality operator, negating the equality operator (even if code was
674 already correct, but duplicated - this way there's a lesser chance of
675 the equality operators getting out of sync)
677 2009-11-18 Jeffrey Stedfast <fejj@novell.com>
679 * textbox.cpp (TextBoxBase::OnMouseMove): Update the primary
680 selection clipboard as the selection changes. Fixes lewing's frown
681 by turning it upside down.
683 2009-11-18 Larry Ewing <lewing@novell.com>
685 * runtime.cpp (PaintToDrawable): fix the lame expose color logic
686 so it at least works.
688 2009-11-18 Larry Ewing <lewing@novell.com>
693 * uielement.cpp: check the status of the pattern to avoid drawing
694 with it if we are in an error state. And fix a backwards condition
695 in the previous patch.
697 * uielement.cpp: initialize the transforms.
699 2009-11-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
701 * runtime.cpp: We want to parse MOONLIGHT_DEBUG if LOGGING is defined
704 2009-11-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
709 * fontmanager.cpp: Tune ifdefs to allow configuring with logging but
710 without debug support.
712 * audio.cpp: Fix uninitialized variable warning (used in logging).
714 2009-11-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
718 * eventargs.cpp|h: Rename MarkerReachedEventArgs to
719 TimelineMarkerRoutedEventArgs to better match managed code, and move
720 the class to eventargs.cpp|h together with the rest of the event args
726 * type-generated.cpp: Regenerated.
728 2009-11-17 Larry Ewing <lewing@novell.com>
731 * multiscaleimage.cpp (RenderCollection):
732 * uielement.cpp (PostRender): Check the status of the pattern
733 before trying to draw with it in case something has gone wrong.
735 Fixes DRT 1 and and a couple of sites by not putting the cairo
736 context into an invalid state.
738 2009-11-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
740 * playlist.cpp: ParseASX2: don't verify the end of the uri, there is
741 no guarantee the uri has a specific ending.
743 2009-11-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
745 * mediaplayer.cpp: Open: Call SetSelected and ref on the video stream
746 we actually select, and not all of video streams we loop over.
748 2009-11-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
750 * mediaelement.h: Added LogReady event.
752 * eventargs.cpp|h: Added a LogReadyRoutedEventArgs class.
754 * enums.cpp|h: Added LogSource enum.
760 * type-generated.cpp: Regenerated.
762 2009-11-17 Jeffrey Stedfast <fejj@novell.com>
766 * textbox.cpp (KeyPressPageUp, KeyPressPageDown): Silverlight
767 seems to set these to handled even if no cursor change took place.
769 2009-11-17 Sebastien Pouliot <sebastien@ximian.com>
771 * security.c: Do not consider System.Xml.dll and Microsoft.
772 VisualBasic.dll as platform code since, right now, they do not
773 contain any [SecurityCritical] nor [SecuritySafeCritical] code
775 2009-11-17 Alan McGovern <amcgovern@novell.com>
778 * grid.cpp: We need to store the sizes of all the grid
779 segments immediately after we finish measuring them. These
780 sizes are used as our base values when deciding if we should
781 expand star rows/cols. The rules for expanding star
782 rows/cols now make sense :)
784 2009-11-17 Jeffrey Stedfast <fejj@novell.com>
786 * uri.cpp (Combine): Use different combining rules for 1.0 apps
787 (if the relative_path starts with a '/', always replace the path
788 rather than combining).
790 2009-11-17 Alan McGovern <amcgovern@novell.com>
792 * grid.cpp: Remove a bunch of code from Grid::ArrangeOverride
793 which isn't required anymore.
795 2009-11-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
797 * mediaelement.cpp: Fix compiler warning.
799 2009-11-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
801 * pipeline-ui.cpp|h: Distinguish between user initiated download
802 requests and automatic download requests - if the user asked us to
803 download the codecs, show the ui even if the user previously selected
804 to not be asked about codec downloads again.
806 * mediaelement.cpp: When requesting a codec download, indicate that the
807 user did not initiate this request, it's an automatic request.
809 2009-11-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
811 * mms-downloader.cpp: Revert previous fix, it breaks MS DRT 938.
813 2009-11-16 Alan McGovern <amcgovern@novell.com>
819 * dependencyproperty.g.cpp: Revert r146166 as it has some
820 bizarre side effects.
822 2009-11-16 Chris Toshok <toshok@ximian.com>
824 * dependencyobject.h (class EventObject): we need to make
825 AddHandler virtual so UIElement can override it and do special
826 things when Loaded is poked.
828 * uielement.h,cpp: optimize the Loaded tree walking code, reducing
829 the number of nodes we visit by 2-3 orders of magnitude.
831 * list.h,cpp (List::Prepend): add an override that allows you to
832 prepend an entire list onto the front of another one. used in the
833 Loaded tree walking code.
835 2009-11-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
837 * mms-downloader.cpp: Play: if we're already playing, don't send
838 another play request to the server, it might confuse the server.
841 2009-11-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
843 * dependencyobject.cpp: Remove some debug spew.
845 2009-11-14 Larry Ewing <lewing@novell.com>
848 * mediaelement.cpp: fix mediaelement rendering to match image and
849 clean up the code in both a little bit.
851 2009-11-14 Larry Ewing <lewing@novell.com>
853 * shape.cpp (MeasureOverride): fix a bug that slipped in due to
854 the previous shape changes.
856 Fixes 653 and some unit tests.
858 2009-11-13 Jeffrey Stedfast <fejj@novell.com>
860 * mediaelement.cpp (Pause): Seems that playlist can actually be
861 null here when the downloader fails, so properly handle null
862 situations instead of asserting.
864 2009-11-13 Jeffrey Stedfast <fejj@novell.com>
866 * pipeline-ui.cpp (AcceptClicked): Don't need to strdup the
867 CODEC_URL string - just pass it as an argument to
869 (ToggleEula): When toggling the EULA on, make the dialog
870 resizable. Likewise, when hiding the EULA, disable resize.
871 (Show): Make the EULA scrollview expand/fill available space so
872 that when the dialog gets resized, it expands as well.
874 2009-11-13 Larry Ewing <lewing@novell.com>
876 * shape.cpp: rework rectangle and ellipse layout logic so that it
877 plays lightly nicer with other things. Fix stretch invalidation
880 Fixes MS 92 and moon 404 as well as some resizing issues visible
883 2009-11-13 Alan McGovern <amcgovern@novell.com>
885 * dependencyproperty.g.cpp: regen.
890 * template.cpp: DOs which are expanded from a ControlTemplate
891 need to keep track of the 'templateBindingSource' so that we
892 can attach new TemplateBindings later. This value is stored
893 in addition to 'IsTemplateItem' as DOs can be expanded from
894 templates which are not ControlTemplates (i.e.
897 2009-11-13 Alan McGovern <amcgovern@novell.com>
901 * type-generated.cpp:
902 * frameworkelement.h:
903 * frameworkelement.cpp: Move the invoking of OnApplyTemplate
904 from Control to FrameworkElement as ContentPresenter (a
905 FrameworkElement) needs to have its OnApplyTemplate method
908 2009-11-13 Alan McGovern <amcgovern@novell.com>
910 * contentcontrol.cpp: Call the correct base method in the
911 GetDefaultTemplate override. We should also be returning
912 NULL instead of false.
914 2009-11-13 Alan McGovern <amcgovern@novell.com>
916 * runtime.cpp: When we attach a layer we need to set
917 needs_measure and needs_arrange to true otherwise we won't
918 do a layout pass until something else invalidates... if it
921 2009-11-13 Alan McGovern <amcgovern@novell.com>
923 * dependencyobject.cpp: Fix a case where a user-registered DP
924 was (incorrectly) setting the Surface if it's type was a DO.
926 2009-11-13 Alan McGovern <amcgovern@novell.com>
928 * value.cpp: If the DO is null, don't try to clone it.
930 2009-11-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
932 * dependencyobject.cpp: Improve event handling to not create the
933 'events' field except when handlers are added. This will improve
934 memory usage slightly, and enable a few fast-paths (null checks
935 only) when there are no event handlers.
937 2009-11-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
939 * playlist.cpp: Fix compile error.
941 2009-11-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
943 * pipeline.cpp: If the PlaylistParser doesn't have enough data
944 to parse the source, retry later instead of failing.
946 * playlist.cpp|h: TryFixError: need to know the total read size
947 when we fix up characters after the first read (i.e. if the asx
948 file is bigger than the buffer size).
952 2009-11-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
954 * uielement.cpp: WalkTreeForLoadedHandlers cache application
955 and deployment for the method's duration.
957 2009-11-12 Geoff Norton <gnorton@novell.com>
959 * utils.cpp: We need to special case the case-sensitivity handling
960 of debug symbol files as well, to support the soft debugger.
962 2009-11-12 Larry Ewing <lewing@novell.com>
964 Fix image stretching and alignment so that 641, 802, 889, and 921
965 are all doing the right thing.
967 * frameworkelement.cpp (Arrange): when applying alignment rules
968 take the minimum size into account not the stretched size.
970 * media.cpp (Render): rework the rendering logic to match the DRTS.
971 (ComputeActualSize): in the canvas case we do use the constrained
972 size not the minimum size.
974 2009-11-12 Jeffrey Stedfast <fejj@novell.com>
976 * media.cpp (Image::OnPropertyChanged): Only report errors if we
977 are being parsed by the xaml parser.
979 * pipeline.cpp (Initialize): If GetResource() fails, report
982 * mediaelement.cpp (SetUriSource): Set a new bitflag,
983 Initializing, before initializing the playlist so that if it
984 errors out we can properly emit MediaFailed events. Unset the flag
986 (SetDemuxerSource): Same.
987 (SetStreamSource): Here too.
988 (SetSource): And here.
989 (OpeningHandler): Unset the Initializing flag.
990 (MediaErrorHandler): If we are initializing, emit MediaFailed even
991 if the state is Closed.
993 * glyphs.cpp (OnPropertyChanged): Only set MoonError and emit
994 ParserErrors when we are in the xaml parser.
996 * bitmapimage.cpp (UriSourceChanged): If GetResource() fails, call
997 DownloaderFailed() which will do proper cleanup and emit
999 (OnPropertyChanged): Only set MoonError for Uri source changes if
1000 we are in the xaml parser.
1002 * uri.h (IsInvalidPath): Fixed to also return true for "\fu".
1003 (IsUncPath): Now returns true as long as the first character is
1004 "\", it no lonegr requires "\\".
1006 * application.cpp (GetResource): Now returns bool so that it can
1007 return false if there was an error.
1009 * xaml.cpp (start_element): Set IsBeingParsed() on DO's to true.
1010 (end_element_handler): And set it back to false here.
1012 * dependencyobject.h: Added IsBeingParsed state so that objects
1013 can check it when their property values change to see if they need
1014 to do special processing. Kind of a gross hack but it is needed in
1015 order to avoid emitting exceptions for Uri property changes in
1016 various elements when an invalid uri is set normally (whereas they
1017 need to emit errors when being parsed from xaml).
1019 2009-11-12 Andreia Gaita <avidigal@novell.com>
1021 * deployment.cpp: don't unref the application after creating it,
1022 it gets unreffed when SetCurrentApplication is called with a new
1023 one or when deployment shuts down.
1025 2009-11-11 Chris Toshok <toshok@ximian.com>
1027 * utils.h,cpp (managed_unzip_stream_to_stream_first_file): new
1028 method, basically the same as managed_unzip_stream_to_stream, only
1029 it always unzips the first file in the zip.
1031 * deployment.h (class ExtensionPart): superclass is ExternalPart,
1032 not DependencyObject.
1034 2009-11-11 Chris Toshok <toshok@ximian.com>
1036 * timeline.cpp (DispatcherTimer::Stop): DispatcherTimer.Stop is
1037 available in managed-land and is callable more than once
1038 apparently (silverlight.net is doing it). we need to not crash in
1039 this case, so only try to stop the clock if it's not null.
1043 2009-11-11 Larry Ewing <lewing@novell.com>
1045 Fix hit testing (via InsideLayoutClip) on layout clipped elements
1046 where the parent may not have a clip.
1048 * layoutinformation.cpp (GetClip): fix the composite offset
1051 * frameworkelement.cpp (FindElementsInHostCoordinates): use the
1052 current visibility when hittesting.
1054 * uielement.cpp (PostRender): render the layout clip when
1055 rendering clipping in debug mode.
1057 2009-11-11 Larry Ewing <lewing@novell.com>
1059 * grid.cpp (ArrangeOverride): remove the visibility checks from
1060 grid they are handled in the layout logic.
1062 2009-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
1064 * dependencyproperty.cpp|h: Add GetDependencyProperty overloads which
1065 take a Type instance to avoid calling Deployment::GetCurrent as much.
1066 Update according to Type/Value API changes.
1077 * contentcontrol.cpp:
1078 * dependencyobject.cpp: Update according to Type/Value API changes.
1080 * type.cpp|h|in: Remove all the static convenience methods that were
1081 accessing Deployment::GetCurrent, and add a deployment field to the
1082 Type instance so that we can keep the instance methods at least.
1084 * value.cpp|h|in: Make the Is method take a deployment parameter.
1086 * xaml.cpp|h: Store a deployment instance on the XamlParserInfo so that
1087 we don't have to use Deployment::GetCurrent that much. Updated
1088 according to Type API changes.
1090 * type-generated.cpp: Regenerated.
1092 2009-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
1094 * value.h: Don't include cairo.h nor string.h.
1097 * writeablebitmap.h: Include cairo.h.
1098 * file-downloader.cpp: Include string.h.
1100 2009-11-11 Larry Ewing <lewing@novell.com>
1102 * frameworkelement.cpp: In measure make sure we track the last
1103 size we were measured at even if we are collapsed.
1104 In Arrange don't descend into the tree if we are not visible but
1105 track the last slot.
1107 2009-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
1109 * value.h: Don't include cairo.h nor string.h.
1112 * writeablebitmap.h: Include cairo.h.
1113 * file-downloader.cpp: Include string.h.
1115 2009-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
1117 * dependencyobject.cpp|h: Inline GetDeployment when SANITY isn't
1120 2009-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
1122 * dependencyobject.cpp: DependencyObject::Dispose (): we need to clear out
1123 the parent, we might still be alive after our parent has died, so don't
1124 crash if somebody does an upward tree walk in that case.
1126 2009-11-11 Alan McGovern <amcgovern@novell.com>
1128 * frameworkelement.cpp: If a template is applied when
1129 FE::Measure is called, Surface::needs_measure will be set to
1130 true even though the FE will not have a dirty measure when
1131 the function completes. This can result in us having an
1132 empty measure_list with Surface::needs_measure still set to
1133 true, thus preventing us from arranging any elements and
1134 hitting the 250 max passes. r: lewing
1136 2009-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
1138 * value.h|in: Make checked_get_subclass and checked_get_exact only
1139 check in SANITY or DEBUG builds.
1141 * type.cpp|h|in: Only define IsSubclassOrSuperclassOf in SANITY or
1144 2009-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
1146 * type.cpp|h|in: Remove unused method.
1148 2009-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
1150 * layoutinformation.cpp: Fix a g++ warning.
1152 2009-11-11 Larry Ewing <lewing@novell.com>
1154 * uielement.cpp (DoArrange): if we haven't been arranged yet but
1155 we have a parent be sure to invalidate the parent before exiting.
1157 * frameworkelement.cpp: set the layout slot before calling
1164 2009-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
1166 * fontmanager.cpp|h: Cache system fonts.
1170 2009-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
1173 * list.cpp|h: Inline a few methods which are used very often.
1175 2009-11-10 Larry Ewing <lewing@novell.com>
1177 * frameworkelement.cpp:
1178 * frameworkelement.h:
1179 * uielement.cpp: Rework hit testing to use InsideObject so that we
1180 don't have to guess at fill and stroke values when doing testing.
1181 Consider the global clip on short circuiting and the layout clip
1185 * textblock.h: Implement the rules for textblock hitting.
1190 * layoutinformation.cpp:
1193 * shape.cpp: Rework to use the new clip helper methods.
1197 2009-11-10 Jackson Harper <jackson@ximian.com>
1199 * resources.cpp: Hack that allows us to add the same item to
1200 multiple resource dictionaries.
1204 2009-11-10 Larry Ewing <lewing@novell.com>
1208 * brush.cpp: Get overly aggressive about invalidations.
1212 * frameworkelement.cpp: rework the values we store for
1213 layout. Keep track of the raw results of measure and feed them
1214 back into the arrange along with the public desired size. Allow
1215 Actual* to be completely computed for elements that operate that
1216 way. Walk up the tree when rendering LayoutClip Make canvas
1217 slightly less special.
1220 * textblock.h: Make Actual* a computed value. Rework the
1234 * usercontrol.cpp: rework the layout output now that we are
1235 storing our hidden desires.
1237 * runtime.cpp: disable ftb for now. Use image surface by
1242 2009-11-10 Alan McGovern <amcgovern@novell.com>
1245 * grid.cpp: Revert the grid changes in r145839 as they
1246 interact badly with upcoming layout fixes. r: lewing
1248 2009-11-10 Alan McGovern <amcgovern@novell.com>
1251 * grid.cpp: When expanding in MeasureOverride, do not use the
1252 value of [Horizontal|Vertical]Aligment. This fixes a case
1253 where we would expand and consume too much space. r: lewing
1255 2009-11-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
1258 * window-gtk.h|cpp: Add a surface ctor parameter.
1260 * runtime.cpp: Pass the surface as a parameter to the ctor instead of
1261 setting it afterwards, since the window ctor will end up needing the
1264 * cbinding.h|cpp: Regenerated.
1268 2009-11-09 Andreia Gaita <avidigal@novell.com>
1270 * dependencyproperty.cpp: if the unresolved Target name is not found
1271 (i.e., is managed-only, like "(ButtonBase.ClickMode)"), use the type
1272 of the current object instead. Fixes bug #543072
1276 2009-11-09 Chris Toshok <toshok@ximian.com>
1278 * uielement.h (class UIElement): add CacheMode property.
1280 * Makefile.am (libmoon_la_SOURCES): add bitmapcache.cpp
1281 (libmoon_include_headers): add bitmapcache.h
1285 2009-11-09 Chris Toshok <toshok@ximian.com>
1287 * runtime.h|.cpp (Surface::Attach): add the loaded handler before
1288 calling AttachLayer, as the latter does the tree walk copying the
1289 event handlers. Fixes DRT #163.
1290 (globally): fix code/comments to not refer to the toplevel element
1291 as "canvas" anymore.
1295 2009-11-09 Chris Toshok <toshok@ximian.com>
1297 * uielement.h (class UIElement): mark the Key a MouseLeftButton
1298 events as GenerateManagedEventField=true.
1302 2009-11-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
1310 * frameworkelement.cpp:
1311 * deepzoomimagetilesource.cpp: Fix compiler warnings.
1315 2009-11-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
1317 * dependencyobject.cpp: Initialize variables to null to silence compiler
1318 warnings in release builds.
1322 2009-11-08 Chris Toshok <toshok@ximian.com>
1324 * deployment.h|cpp: stub out some OutOfBrowser classes.
1328 2009-11-08 Chris Toshok <toshok@ximian.com>
1330 * effect.h|cpp: stub out SL3 effects classes.
1334 2009-11-08 Larry Ewing <lewing@novell.com>
1336 * incomplete-support.xaml: make things a little prettier by adding
1337 margins and max width.
1339 2009-11-08 Chris Toshok <toshok@ximian.com>
1341 * Makefile.am (runtime.lo): be explicit about dependencies on
1342 fullscreen.h and incompletely-support.h so we won't get screwed by
1343 build-time dependencies.
1347 2009-11-08 Chris Toshok <toshok@ximian.com>
1349 * runtime.h|cpp (Surface::Attach): if we're running > SL2, call
1350 ShowIncompleteSilverlightSupportMessage.
1351 (Surface::ShowIncompleteSilverlightSupportMessage): show our
1352 incomplete support message. as an optimization, hook up to
1353 Completed on the storyboard to remove the layer when the
1354 storyboard is finished.
1355 (Surface::HideIncompleteSilverlightSupportMessage): detach the
1357 (Surface::ShowFullScreenMessage): use the same optimization of
1358 removing the layer when the storyboard completes.
1360 * Makefile.am (noinst_PROGRAMS): add xaml-to-header.exe here.
1361 (libmoon_include_headers): add deepzoomimagetilesource.h and
1362 multiscalesubimage.h here and remove them from EXTRA_DIST. also,
1363 remove fullscreen.h entirely since we generate it at build time.
1364 (EXTRA_DIST): add fullscreen.xaml and incomplete-support.xaml
1365 here, as well as xaml-to-header.cs.
1367 * incomplete-support.xaml: new xaml file for our incomplete
1370 * fullscreen.xaml: move fullscreen.xaml here.
1372 * xaml-to-header.cs: move fullscreen/fullscreen.cs here and
1373 massage it to make it reusable for the incomplete-support.xaml
1378 2009-11-07 Geoff Norton <gnorton@novell.com>
1380 * deployment.cpp: Support connecting to sdb when built in debug
1383 2009-11-06 Chris Toshok <toshok@ximian.com>
1385 * uielement.h|cpp (UIElement::ElementAdded): simplify this a bit
1386 using WalkTreeForLoadedHandlers.
1387 (UIElement::RemoveHandler): pass the removal on to the deployment
1389 (UIElement::WalkTreeForLoadedHandlers): here there be dragons.
1390 (UIElement::OnLoaded): this method does nothing but update the
1392 (UIElement::ClearLoaded): we also need to
1393 ClearForeachGeneration (UIElement::LoadedEvent) so they'll be
1394 copied again when we get added back to the tree.
1396 * provider.cpp (InheritedPropertyValueProvider::PropagateInheritedProperty):
1397 use Logical tree walk ordering.
1399 * tabnavigationwalker.cpp (TabNavigationWalker::Sort): same.
1401 * panel.cpp (Panel::OnPropertyChanged): we have to call
1402 SetSubtreeObject before calling ElementAdded.
1404 * frameworkelement.h|cpp (FrameworkElement::UpdateLayout): remove
1405 the block of code that emits the LoadedEvent.
1406 (FrameworkElement::RegisterManagedOverrides): add our loaded hook
1408 (FrameworkElement::OnLoaded): call our loaded hook.
1410 * deployment.h|cpp (class Deployment): a whole bunch of new code
1411 to handle management of a list of loaded handlers similar in
1412 spirit to LayoutUpdated but much more complicated. bleah.
1414 * dependencyobject.h|cpp: a whole bunch of new apis:
1415 (ForeachHandler): call a method for every handler for a given
1416 event. Optionally only iterate over handlers added since the last
1417 time ForeachHandler was called.
1418 (ClearForeachGeneration): clears the "last time ForeachHandler was
1420 (ForHandler): same as foreach, invoke the same type of handler
1421 method, but only on 1 event handler.
1422 (HasHandlers): returns true if the object has handlers for a
1424 (RemoveHandler): make these virtual because UIElement will
1425 override them to remove handlers from the Deployment's loaded
1428 * control.cpp (Control::DoApplyTemplate): since we do it after
1429 ElementAdded, calling WalkTreeForLoadedHandlers here causes
1430 another treewalk, but we need to pass different args to it than
1433 * collection.h (enum VisualTreeWalkerDirection): add
1436 * collection.h|cpp (class DeepTreeWalker): add a
1437 VisualTreeWalkerDirection to this walker as well.
1439 * border.cpp (Border::OnPropertyChanged): we have to make sure to
1440 call SetSubtreeObject before calling ElementAdded.
1442 2009-11-06 Alan McGovern <amcgovern@novell.com>
1444 * grid.cpp: There's no need to expand star rows/cols at this
1445 point as any time they would expand here, they would be
1446 expanded in ArrangeOverride anyway. r: spouliot
1448 2009-11-05 Jeffrey Stedfast <fejj@novell.com>
1450 * brush.cpp (ImageBrush::OnPropertyChanged): Check that the Source
1451 uri is valid and the download policy will allow it.
1453 * media.cpp (Image::OnPropertyChanged): Check that the Source uri
1454 is valid and the download policy will allow it.
1456 * mediaelement.cpp (OnPropertyChanged): Check that the Source uri
1457 is valid and the download policy will allow it.
1459 * glyphs.cpp (DownloadFont): Now takes a MoonError argument so
1460 that (late) download policy errors (caused by a failed
1461 Downloader::Open) can propogate up through callers like
1462 OnPropertyChanged() or SetParent().
1463 (SetParent): Moved here from from SetSurface() so that we can
1464 throw an exception when ading the glyphs to the tree if the
1466 (OnPropertyChanged): Set the MoonError if the uri is invalid.
1468 * bitmapimage.cpp (ValidateDownloadPolicy): New method to check if
1469 the uri can be downloaded.
1470 (OnPropertyChanged): Check if the Source uri is invalid. If so,
1473 * downloader.cpp (ValidateDownloadPolicy): New static method to
1474 check that the policy would allow downloading the content at the
1475 uri. Split out from Open().
1477 * uri.h (IsInvalidPath): New method to check the validity of the
1478 path component of a URI.
1479 (IsUncPath): New method that returns true if the path begins with \\
1483 2009-11-05 Alan McGovern <amcgovern@novell.com>
1490 * frameworkelement.h:
1491 * contentcontrol.cpp:
1492 * frameworkelement.cpp: Templates must be expanded as part of
1493 the first step of Measure. To support this, remove the old
1494 ApplyTemplateHook managed path and refactor the
1495 GetTemplateRoot managed path into a more generic
1496 GetDefaultTemplate method. Whenever native code needs to get
1497 a default template from managed, this is invoked to retrieve
1498 it. ApplyTemplate and OnApplyTemplate have been moved to
1499 FrameworkElement itself to simplify the code required to
1500 support templateable framework elements (ItemsPresenter for
1504 * cbinding.cpp: regen. r: toshok
1506 2009-11-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
1508 * dependencyproperty.cpp: Fix an uninitialized variable problem.
1512 2009-11-05 Jackson Harper <jackson@ximian.com>
1514 * playlist.cpp: After we successfully fixup an error we need to
1515 reset the error args otherwise the error will be raised when the
1516 parsing is all done. Fixes 96x.fm.
1520 2009-11-04 Sebastien Pouliot <sebastien@ximian.com>
1522 * list.cpp: Remove unused (even in test) code.
1523 * tabnavigationwalker.cpp: Complete int/uint fix.
1527 2009-11-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
1534 * tabnavigationwalker.cpp: Fix warnings when building release builds.
1538 2009-11-04 Alan McGovern <amcgovern@novell.com>
1543 * control.cpp: 1) Disabling the ComboBox should set
1544 IsDropDownOpen to false
1545 2) If the dropdown is opened while the ComboBox is disabled,
1546 the children of the popup are disabled.
1547 3) If the dropdown is open, re-enabling the ComboBox doesn't
1548 close the dropdown and also doesn't update the IsEnabled
1549 state on the children.
1552 2009-11-03 Jackson Harper <jackson@ximian.com>
1554 * xaml.cpp: Dont force setting a property in managed if it was
1555 registered by a base type.
1559 2009-10-29 Chris Toshok <toshok@ximian.com>
1561 * messagebox.cpp (message_box_show): don't use
1562 gtk_message_dialog_new with user strings, since they might contain
1563 reserved characters.
1567 2009-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
1569 * pipeline.cpp: If we can't seek, reset the 'seeking' flag to false.
1573 2009-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
1575 * deployment.cpp: Fix typo in return statement.
1579 2009-11-03 Alan McGovern <amcgovern@novell.com>
1582 * grid.cpp: Rewrite Grid so that it passes the correct sizes
1583 to elements spanning Star or Auto segments. Fixes
1584 tic-tac-toe. r: lewing
1586 2009-11-02 Alan McGovern <amcgovern@novell.com>
1591 * frameworkelement.h:
1592 * frameworkelement.cpp: Certain UIElements (Controls and
1593 ContentPresenters) need to apply a template before
1594 MeasureOverride is invoked. Add a callback
1595 (ApplyTemplateHook) to FrameworkElement which is non-null
1596 for Controls and ContentPresenters to that these templates
1597 can be expanded properly. r: rolf
1599 * cbinding.cpp: regen. r: rolf
1601 2009-11-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
1603 * pipeline.h: Remove dead code.
1607 2009-11-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
1609 * pipeline.cpp|h: ProgressiveSource: close the write handle in the dtor
1610 to avoid race conditions - media thread closing the handle and main
1615 2009-11-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
1617 * mms-downloader.cpp: When sending logs, use NoPolicy. We've already
1618 checked if we can access the server or not. Using StreamingPolicy is
1619 wrong now that we create mms downloaders for those always. Also
1624 2009-11-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
1627 * enums.h|cpp: Remove MediaStateError, it's not used in SL2. Whenever
1628 an error occurs we go to the Closed state.
1632 2009-11-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
1634 * mms-downloader.cpp: Accept rtsp[s] schemes too.
1636 * downloader.cpp: determine mms'ness by using the policy passed in
1637 instead of comparing schemes (differently in other places - the
1638 pipeline considers rtsp and rtsps schemes too as streaming).
1642 2009-11-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
1644 * pipeline-asf.cpp: When we got a packet from the mms downloader, ask
1645 the demuxer to fill its buffers. This fixes some cases where the mms
1646 stream never finishes buffering. Added GetDemuxerReffed.
1650 2009-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
1652 * pipeline.cpp: Don't completely stop working when the media is
1653 stopped, the media element needs the first frame of the media, so
1654 when stopped, buffer 1 frame instead of 0. Makes MS DRT #483 pass.
1656 2009-10-29 Alan McGovern <amcgovern@novell.com>
1658 * grid.cpp: Grid should not invalidate its measure unless
1659 either the Columns or Rows collection changes. This reverts
1660 what looks like an accidental commit by lewing in r123309.
1663 2009-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
1665 * mediaelement.cpp: If we Seek when Paused, we need to update
1666 paused_position. Fixes one error in MS DRT #483.
1670 2009-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
1672 * pipeline.cpp: Media::SelectDemuxerAsync: seek to 0 on the source
1673 before searching for a demuxer. Makes #546241 play all the audio it
1678 2009-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
1680 * pipeline.cpp: Include signal.h.
1684 2009-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
1686 * mediaelement.cpp: OpenCompletedHandler: only emit
1687 DownloadProgressChanged if MediaOpened hasn't been raised. This fixes
1688 MS DRT #25 (which checks that DownloadProgressChanged isn't raised
1689 after calling Stop and then Play on a media element).
1693 2009-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
1695 * pipeline.cpp: When we enter a new thread, ensure that we don't
1696 inherit blocked signals from the thread that created us. Fixes deadlock
1697 reported in #546241.
1701 2009-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
1703 * mediaplayer.cpp|h: Instead of keeping a flag telling whether we're
1704 seeking or not, keep a counter, since we may end up with multiple
1705 pending seeks, and we only want to restart playback when the last seek
1706 finishes. Also call MediaElement's seek method so that we do everything
1707 we must do when a seek happens. Fixes our media test #153.
1709 * mediaelement.cpp|h: Add a force parameter to Seek to force seeking no
1710 matter which state we're in. Used by MediaPlayer to seek when we open
1713 * pipeline.cpp|h: Don't start filling the buffers when a media is opened,
1714 the first thing we do after opening a media is seeking, which would
1715 invalidate whatever buffer we create. When the first seek has finished,
1716 it will request a buffer fill. Also remove the optimization that was
1717 joining multiple seeks into one (the last one), since there was no way
1718 MediaPlayer could know which seek finished when the SeekCompleted event
1719 was raised. We now do all seeks, in the correct order.
1721 * playlist.cpp|h: Remove the same optimization here, have a list of pending
1722 seeks and execute them in order.
1726 2009-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
1728 * pipeline.cpp: Add a workaround for having invalid codecs in the
1729 expected codec location - with this workaround the user will get
1730 a new codec download dialog.
1734 2009-10-26 Sebastien Pouliot <sebastien@ximian.com>
1736 * deployment.cpp: Match SL appdomain friendly name
1740 2009-10-23 Chris Toshok <toshok@ximian.com>
1742 * runtime.cpp (Surface::IsVersionSupported): report that we
1743 support versions 3.0.x, because the alternative is not even
1744 attempting to execute many xaps.
1748 2009-10-23 Chris Toshok <toshok@ximian.com>
1750 * frameworkelement.cpp (FrameworkElement::UpdateLayout): call
1751 Deployment::GetCurrent()->LayoutUpdated() instead of walking an
1754 * frameworkelement.h (class FrameworkElement): remove
1757 * deployment.h,cpp (Deployment::LayoutUpdated): move the
1758 FrameworkElement event here, since any layout updating causes
1759 every LayoutUpdated handler to be called, even for those elements
1762 * type-generated.cpp: regen
1766 2009-10-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
1768 * pipeline.h: IMediaDemuxer: add a GetCanSeek method specifying whether
1769 a demuxer can seek or not. ExternalDemuxer (aka MediaStreamSource) can
1770 specify false for this (which won't prevent SL from trying to seek on
1771 the MediaStreamSource though). Implement ExternalDemuxer::SetCanSeek.
1773 * mediaelement.cpp: If the demuxer can't seek, set CanSeek = false.
1777 2009-10-23 Stephane Delcroix <sdelcroix@novell.com>
1779 * uri.cpp (flatten_path): keep track of ../ parts if there's no
1780 previous part to drop, or if the previous part is ../ too.
1784 2009-10-23 Stephane Delcroix <sdelcroix@novell.com>
1786 * deepzoomimagetilesource..h|cpp: the strip_and_set hack is no longer
1787 required with jeff's latest patch
1791 2009-10-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
1793 * pipeline-ui.cpp: ShowUI: We need to set the current deployment here.
1797 2009-10-22 Jeffrey Stedfast <fejj@novell.com>
1799 * uri.cpp (flatten_path): New helper function to flatten a path
1800 (e.g. get rid of extra /'s, ./'s, and handle ../'s).
1801 (Parse): If the Uri is absolute, flatten the path.
1802 (Combine): Simplified by just concatenating the old path, the
1803 relative_path, and then calling flatten_path(). Also, thanks to
1804 Stephane's investigations, fixed the fact that a relative_path
1805 starting with '/' does not combine at the root like previously
1810 2009-10-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
1812 * dependencyobject.cpp|h: CanEmitEvents: add an event_id argument, so
1813 that we can allow DestroyedEvent during shutdown. This fixes a crash
1814 with namescopes - they rely on DestroyedEVent to properly detach from
1819 2009-10-21 Stephane Delcroix <sdelcroix@novell.com>
1821 * uri.cpp: url_encode the whitespaces too,
1825 2009-10-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
1827 * pipeline-ui.cpp: Include stdlib.h to fix release builds.
1831 2009-10-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
1833 * pipeline.cpp: GetMediaReffed might return null, add some null checks
1838 2009-10-20 Andreia Gaita <avidigal@novell.com>
1840 * timemanager.[h|cpp]: (AddDispatcherCall) used by Dispatcher to add tick
1841 calls. If it's called while we're in the emitting loop, save the new
1842 ones on another list so they'll get invoked on the next tick. All other
1843 tick calls added via AddTickCall get invoked asap.
1845 * list.[h|cpp]: change CloneAndClear to MoveTo, it now moves the queue
1846 nodes to an existing queue instead of creating a new one
1848 * cbinding.[h|cpp]: regen
1852 2009-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
1854 * pipeline.cpp: IMediaDemuxer::ReportGetFrameCompleted: Only clear the
1855 pending_stream field if we're stopped or if we processed the returned
1856 frame. Specifically do not clear the pending_stream field if we're
1857 not executing on a media thread (since when the method is called again on
1858 the media thread we might end up dropping the frame) - and it's a race
1859 condition that may cause crashes.
1863 2009-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
1865 * runtime.cpp|h: Add a DetachWindow which detaches the surface from
1866 the window and prevents the window from getting destroyed when the
1867 surface is destroyed. Also add a few protections against having a
1868 null window, which we may get when the window has been detached.
1872 2009-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
1876 * type.h.in: Added a LookupEvent method that takes a deployment
1877 parameter so that it doesn't try to use Deployment::GetCurrent. This
1878 is required when we need to lookup events for deployments which are
1879 not the current one (when re-creating a PluginInstance since its
1880 source has changed for instance).
1884 2009-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
1887 * window.cpp|h: Detach the window from the deployment by not storing it,
1888 use Surface' deployment instead. Also add a convenience SetCurrentDeployment
1900 * dependencyproperty.cpp: Include deployment.h, required now that
1901 window.h doesn't include it.
1904 * Makefile.am: Updated with window.cpp.
1908 2009-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
1910 * deployment.cpp|h: Moved all managed code handling from PluginInstance
1915 2009-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
1917 * codec-version.h.in: Bump ABI to 16.
1919 2009-10-19 Andreia Gaita <avidigal@novell.com>
1921 * list.[h|cpp]: (Queue::CloneAndClear) Added, clones the queue while
1922 clearing the original
1924 * timemanager.cpp: Make a copy of the queued tick calls and use that
1925 instead of the live queue. Callbacks may insert new calls into the
1926 queue, and those should be invoked on the next tick, not on the
1927 current one. Fixes drt #244
1931 2009-10-19 Andreia Gaita <avidigal@novell.com>
1933 * timemanager.cpp: fix START_TIMER define and add timing logs on tick calls
1937 2009-10-15 Alan McGovern <amcgovern@novell.com>
1939 * grid.cpp: Add comment explaining why the InvalidateMeasure
1942 2009-10-15 Alan McGovern <amcgovern@novell.com>
1944 * grid.cpp: Changing a Grid property (Row, RowSpan etc) on a
1945 UIElement invalidates its measure. r: lewing.
1947 2009-10-15 Stephane Delcroix <sdelcroix@novell.com>
1949 * multiscaleimage.cpp: send the RoutedException on ImageOpenFailed.
1950 Errorcode and (empty) message are matching SL behavior. Fixes drt #874.
1954 2009-10-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
1959 * type-generated.cpp: Regenerated.
1963 2009-10-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
1965 * pipeline.cpp: A printf sneaked in.
1969 2009-10-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
1987 * mms-downloader.cpp: Fix 64 bit printf format specifier on x64.
1991 2009-10-14 Andreia Gaita <avidigal@novell.com>
1993 * timeline.[h|cpp]: destroy dispatcher timer clocks immediately if
1994 they're stopped and not restarted on the same tick
1998 2009-10-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
2001 * pipeline-asf.cpp: Updated according to API changes.
2003 * pipeline.cpp|h: Media::Dispose: Check if we've been disposed and
2004 do nothing in that case. This way we don't hit the warning just below
2005 about not being in the media thread.
2007 MediaThreadPool::IsThreadPoolThread: Return the value we calculated,
2008 not a hardcoded 'true' value.
2010 Make the demuxer serialized: Don't seek if we're waiting for a frame (wait
2011 until the frame has been returned). Also don't request a frame if we're
2012 seeking (just do nothing, when the seek completes new frames will be
2015 Change seeking to store the last seeked-to pts in the demuxer
2016 when marshalling seeks from the main thread to the media thread. This
2017 ensures that if two seeks are enqueued quickly, we won't seek twice, only
2018 to the last (there is also another potential issue: if the first seek
2019 couldn't complete because we were waiting for a frame, we could end up
2020 seeking in the wrong order).
2022 * deployment.cpp: Delete the local variable, not the instance field
2027 2009-10-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
2029 * pipeline.cpp: ProgressiveSource::DataWrite: write_fd might be null
2030 if we've been disposed, don't print a warning in this case. Also don't
2031 get the media until we've passed the write_fd check - this way we don't
2032 leak refs if the check fails.
2036 2009-10-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
2038 * pipeline.cpp: Remove more output which can happen during normal
2039 executing (shutdown in particular for these cases).
2043 2009-10-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
2045 * pipeline.cpp: Media::RetryHttp: don't dispose media objects in this
2046 method directly, it's called on the main thread, instead marshal the
2047 Dispose to the media thread. Also reset error_reported, otherwise
2048 Initialize will just bail out immediately.
2052 2009-10-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
2054 * pipeline.cpp: Download progress can actually go down (if the file
2055 size goes down). So don't print a scary warning.
2059 2009-10-13 Jeffrey Stedfast <fejj@novell.com>
2061 * textbox.cpp (TextBoxView::Layout): Set dirty to false after
2062 laying out the text.
2063 (TextBoxView::Render): Don't do Layout here.
2067 2009-10-09 Chris Toshok <toshok@ximian.com>
2069 * control.cpp (Control::OnPropertyChanged): drt #438 shows that
2070 you can set Template = null to clear the template's visual tree.
2072 (Control::ClearTemplate): set template_root to NULL after we
2077 2009-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
2079 * mediaelement.cpp: MediaElement::SetUriSource: Remove scary warning
2080 which may happen quite often and in common code paths.
2084 2009-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
2086 * dependencyobject.cpp: DependencyObject::ProviderValueChanged: After
2087 invoking the property changed handler the values we have might have
2088 gotten deleted. Clone them before calling the property changed handler
2089 so that we don't access deleted values. Makes #544211 not crash.
2093 2009-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
2095 * dependencyobject.cpp: Emit overloads: ensure we unref the calldata
2096 when returning early.
2100 2009-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
2102 * mediaelement.h: Make SourceProperty nullable. Fixes #537849.
2104 * dependencyproperty.g.cpp: Regenerated.
2108 2009-10-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
2110 * pipeline-ui.cpp: Add checks against a null downloader, fixes #468491.
2114 2009-10-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
2116 * audio.cpp: AudioSource::Dispose: lock around field accesses,
2117 and move the fields into a local variables so we can clean up
2118 with the mutex unlocked.
2122 2009-10-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
2124 * audio.cpp: AudioSource::IsQueueEmpty: it's pretty common to
2125 end up with a null stream, so don't spam the console with warnings.
2129 2009-10-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
2131 * mediaplayer.cpp: Open: seek to the initial pts.
2133 * playlist.cpp: When we re-open a media after stopping it, don't do
2134 it async since we might end up doing things in the wrong order.
2140 2009-10-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
2142 * deployment.cpp|h: Make shutdown an async/iterative process to ensure
2143 we don't accidentally get deadlocked while shutting down. Change shutdown
2144 sequence to first ensure no media threads are running, then do managed
2145 shutdown unloading the appdomain, and do nothing more until the appdomain
2146 has unloaded successfully (calling mono_domain_finalize which we used to is
2147 very wrong since it assumes all managed threads have been aborted, when only
2148 mono_domain_unload actually aborts threads - we ended up executing code in
2149 other managed threads with freed objects everywhere). Added an
2150 AppDomainUnloadedEvent so that the plugin can know when the appdomain has
2151 been unloaded and free itself. Dispose the types when the deployment is
2152 disposed, and delete them types when the deployment is destroyed. This way we
2153 make sure that the types are available until all the objects have been
2154 deleted. This also fixes different code paths / deletion points
2155 depending on whether we built with object tracking or not. This also
2156 removes the need for the is_dead variable. Maintain a counter of the number of
2157 deployments alive so that we know when runtime can be shut down.
2159 * dependencyobject.cpp: Don't emit events while we're shutting down.
2160 Deployment::is_dead is dead now, remove checks, replaced with Deployment::
2161 IsShuttingDown wherever applicable. Only emit DestroyedEvent on the main
2164 * dependencyproperty.cpp|h: Add a Dispose method which clears out any
2165 refs the default value might have (but keep a default value, we depend
2166 in some places on having a default value).
2168 * type.cpp: Dispose: call Dispose on the DP.
2171 * type.h.in: Remove 'disposed' field: no longer needed.
2175 2009-10-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
2177 * pipeline.cpp|h: Media::Stop[Async]: when called clear all buffers.
2178 This ensures that we don't keep the (default) 5s buffer of media in
2179 memory while stopped. Add lots of checks for a stopped media so that
2180 we don't refill the buffer after clearing it.
2181 Makes MS DRT #238, #239 and #244 require a lot less memory.
2183 * playlist.cpp: Call Play on the media too when we start playing.
2185 2009-10-05 Jeffrey Stedfast <fejj@novell.com>
2187 * runtime.cpp (HandleUIKeyPress): Silverlight 2.0 does not
2188 silently drop repeated key-press events.
2192 2009-10-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
2194 * pipeline.cpp: MediaFrames can be deleted on any thread. Fixes an
2195 issue where we'd create more MediaFrames than the delayed unref
2196 mechanism could free, so we'd run out of memory.
2200 2009-10-05 Alan McGovern <amcgovern@novell.com>
2204 * dependencyobject.h:
2205 * dependencyobject.cpp: Store the starting_generation and
2206 only_unemitted flags on the EmitContext so that the values
2207 are used when we call DoEmitCurrentContext from managed
2210 2009-10-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
2212 * pipeline.cpp|h: IMediaDemuxer::FillBuffers, don't enqueue a request
2213 if we there is already a request pending.
2217 2009-10-01 Jeffrey Stedfast <fejj@novell.com>
2219 Gets drt #412 a bit closer to passing.
2221 * textblock.cpp (TextBlock): Initialize our own FontDescription
2222 needed so we can tell the layout engine what the base font to use
2223 for calculating BlockLineHeight proportions.
2224 (TextBlock): Delete our FontDescription.
2225 (UpdateFontDescription): New method to update our own
2226 FontDescription and notify the layout engine of any changes.
2227 (UpdateLayoutAttributes): Call UpdateFontDescription().
2228 (UpdateFontDescriptions): Same.
2230 * layout.cpp (TextLayout::SetBaseFont): Calculate the proportional
2231 distance to the baseline given the base font.
2232 (TextLayout::OverrideLineHeight): Don't check line_height against
2233 NAN, check it against 0 instead. NAN means that we use the
2234 containing TextBlock's font height as a base.
2235 (TextLayout::LineHeightOverride): New method to figure out the
2236 line height value to use when using BlockLineHeight strategy.
2237 (TextLayout::DescendOverride): Given the overridden LineHeight,
2238 calculate the baseline offset using the proportional distance
2239 calculated in SetBaseFont().
2240 (TextLayout::Layout): Instead of using 0 as the overridden line
2241 descent, use the value calculated from DescendOverride(). Also use
2242 LineHeightOverride() instead of line_height directly.
2246 2009-10-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
2248 * pipeline-asf.cpp: MmsPlaylistEntry: clear the queue when we're
2249 disposed, that ensures that the queue is cleared up even if the
2250 MmsPlaylistEntry itself leaks.
2254 2009-10-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
2256 * pipeline-asf.cpp: Fix some potential leaks.
2260 2009-10-01 Jeffrey Stedfast <fejj@novell.com>
2262 * fonts.h (class TextFont): Make some of the getters const.
2266 2009-10-01 Andreia Gaita <avidigal@novell.com>
2268 * utils.cpp: if there's no Application instance, use the root temp
2269 dir to store, and track the created path directly on deployment so
2270 it can be cleared up in the end.
2274 2009-10-01 Alan McGovern <amcgovern@novell.com>
2276 * runtime.cpp: WalkTreeForLoaded has already been called on
2277 this element as part of the previous call to AttachLayer.
2279 2009-10-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
2281 * dependencyobject.h: Make GetUnsafeDeployment available always, media
2282 code might use it to get the deployment of the object instead of the
2285 * pipeline.cpp|h: Added WaitForCompletion to MediaThreadPool: allows a
2286 deployment instance to wait until there is nothing more executing in
2287 the thread pool regarding that deployment.
2289 * deployment.cpp|h: Maintain a list of all the Media instances created
2290 and dispose them when the deployment shuts down.
2294 2009-10-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
2296 * dependencyobject.cpp|h: EventObject::CanEmitEvents: added to avoid
2297 some code duplication in all our Emit methods.
2301 2009-10-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
2303 * audio.cpp: Dispose: make sure the audio really stops.
2307 2009-10-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
2309 * pipeline.cpp|h: ExternalDemuxer: Make writes to the callbacks
2310 thread-safe, since managed code may clear them up on the finalizer
2313 * cbinding.cpp|h: Regenerated.
2317 2009-09-30 Alan McGovern <amcgovern@novell.com>
2319 * runtime.cpp: If the surface has been zombified, don't handle
2320 the plugin focus in/out event. r: toshok
2322 2009-09-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
2324 * pipeline.cpp: IMediaDecoder::ReportDecodeFrameCompleted: add some
2327 2009-09-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
2329 * pipeline.cpp: IMediaDemuxer::ReportGetFrameCompleted: always do the
2330 decoding async. This ensures we don't reenter managed code when the
2331 frame comes from MediaStreamSource.
2335 2009-09-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
2337 * pipeline.cpp|h: MediaThreadPool: Don't use a globally allocated list
2338 for the queue, it may blow up when the process shuts down because the
2339 media thread might still be running when the list is destroyed causing
2344 2009-09-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
2346 * pipeline.cpp|h: MediaThreadPool: Add a max_threads const variable
2347 specifying the max number of threads, and use static memory for all of
2352 2009-09-30 Andreia Gaita <avidigal@novell.com>
2354 * deployment.[h|cpp]: Added TrackPath/UntrackPath to track temporary
2355 paths that get created in applications, so they can be released even
2356 if the Application instance leaks.
2358 * application.[h|cpp]: Added GetResourceRoot, returns resource_root,
2359 which keeps the base temp path of all files and resources for an
2362 * utils.cpp: use the Application GetResourceRoot as a base path for
2363 all temporary files.
2367 2009-09-30 Alan McGovern <amcgovern@novell.com>
2369 * runtime.cpp: When the plugin gets focus or loses focus, we
2370 have to emit the corresponding event on the currently
2371 focused element - not on the TopLevel. Note that if we focus
2372 out of the plugin, we emit LostFocus on the currently
2373 focused element but do *not* set the current focused element
2374 to null. Lastly when handling the mouse down event, we
2375 should not try to focus elements in the hitlist from the
2376 mouse click. This mostly fixes DRT 745. r: rolf
2378 2009-09-30 Alan McGovern <amcgovern@novell.com>
2382 * validators.cpp: IsInputMethodEnabled defaults to true and
2383 also needs a validator to ensure that it's only set on
2385 * dependencyproperty.g.cpp: IsInputMethodEnabled defaults to
2386 true and also needs a validator to ensure that it's only set
2389 2009-09-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
2391 * pipeline.cpp: Reset more state when a seek completes.
2395 2009-09-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
2397 * pipeline.cpp: Media::EnqueueWork: we need to lock around the entire
2398 call to MediaThreadPool::AddWork, since otherwise we have a race
2399 condition between setting the is_disposed variable to true and adding
2404 2009-09-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
2406 * mediaelement.cpp: Stop immediately when the we're deattached from the
2411 2009-09-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
2413 * deployment.h: Fix typo in comment.
2415 2009-09-29 Chris Toshok <toshok@ximian.com>
2417 * dependencyobject.cpp (EventObject::StartEmit): when we copy the
2418 list of closures to invoke, don't copy ones that are
2419 pending_removal. This fixes the crash due to re-entering in drt
2420 502 in a way that doesn't break the existing plugin behavior.
2421 (EventObject::DoEmitCurrentContext): revert the
2422 !closure->pending_removal change that caused plugin event listener
2423 breakage in the xaml tests.
2427 2009-09-29 Larry Ewing <lewing@novell.com>
2429 * border.cpp (InsideObject): improve Border::InsideObject to
2430 handle the actual drawn bounds.
2436 2009-09-29 Jeffrey Stedfast <fejj@novell.com>
2438 * textbox.cpp (PostOnKeyDown): Renamed from OnCharacterKeyDown()
2439 to be more consistent with the managed method names. Don't set
2440 Handled to true, since anything that makes it this far should also
2445 2009-09-28 Andreia Gaita <avidigal@novell.com>
2447 * application.cpp, bitmapimage.cpp,
2448 file-downloader.cpp, fontmanager.cpp,
2449 pipeline-ui.cpp, pipeline.cpp,
2450 utils.cpp: uniform usage of glib io calls
2454 2009-09-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
2456 * window-gtk.cpp: gtk_window_destroy can cause reentry, so ensure we leave
2457 the current deployment as it was when returning from it.
2461 2009-09-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
2463 * mediaelement.cpp|h: When receiving markers from the pipeline, store them
2464 in a general list and only move them into a TimelineCollection just before
2465 checking if they are to be emitted. This avoids locking a mutex during a
2466 potentially large time, as well as trying to emit an event on the pipeline
2467 thread (collection changed event when adding markers to the
2468 TimelineCollection).
2472 2009-09-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
2474 * audio.cpp: Follow refcounting rules with the AlsaPlayer.
2478 2009-09-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
2480 * audio.cpp: AudioPlayer::Shutdown: no need to unref with the mutex
2481 locked. CreateInstance: Add a couple of comments.
2485 2009-09-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
2487 * deployment.cpp|h: No need for the downloaders field to be a pointer
2488 when it'll always exist. Move the downloader abort code to the node's
2489 destructor, this way we ensure that the downloader is always aborted.
2490 Reinitialize: clear the downloaders list instead of creating a new one
2491 (and leaking the previous one).
2495 2009-09-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
2497 * audio.cpp|h: AudioPlayer can't derive from EventObject, since
2498 EventObject is tied to a particular deployment, while AudioPlayer is
2499 process-wide. Implement simple refcounting in AudioPlayer to work
2500 around this and keep the old behaviour.
2505 * type-generated.cpp: Regenerated.
2509 2009-09-28 Chris Toshok <toshok@ximian.com>
2511 * frameworkelement.h|cpp (class FrameworkElement): remove the
2512 empty SetValueWithErrorImpl implementation.
2516 2009-09-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
2518 * pipeline.cpp: Make Media::OpenAsync really async. Fixes issues with
2519 MS DRT #244 (and possibly others) where we'd end up raising the
2520 MediaOpened event while still parsing xaml (the test didn't have time
2521 to attach an handler to the event before it was raised).
2525 2009-09-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
2527 * mediaelement.cpp: Stop when we're detached. This helps with a
2528 resource "leak": if the user code just removes the mediaelement from
2529 the visual tree and forgets about it, we'd continue playing until the
2530 gc kicks in and finds out it should free the mediaelement.
2534 2009-09-28 Chris Toshok <toshok@ximian.com>
2536 * dependencyobject.cpp (EventObject::DoEmitCurrentContext): don't
2537 call closure functions when the closure is pending removal. if
2538 it's a managed delegate it will likely have already been
2539 collected. This fixes the regression of drt #502.
2543 2009-09-24 Stephen Shaw <sshaw@decriptor.com>
2545 * multiscaleimage.cpp (MultiScaleImage::GetZoomAnimationEndPoint):
2546 Method now returns a value
2550 2009-09-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
2552 * mediaelement.cpp|h: Remove unused methods.
2556 2009-09-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
2558 * pipeline.cpp: Remove an unused variable (fixing a compiler warning).
2562 2009-09-23 Chris Toshok <toshok@ximian.com>
2564 * uielement.cpp (UIElement::EmitGotFocus): this event passes
2565 RoutedEventArgs, not EventArgs.
2566 (UIElement::EmitLostFocus): same.
2568 * eventargs.h|cpp (class MouseButtonEventArgs): add this type, and
2569 make both MouseButtonEventArgs and MouseWheelEventArgs subclass
2570 from MouseEventArgs. Move MouseEventArgs::GetButton and
2571 ::GetClickCount to MouseButtonEventArgs.
2573 * runtime.cpp (Surface::CreateArgsForEvent): for the button
2574 events, create a MouseButtonEventArgs.
2576 * textbox.h|cpp: MouseEventArgs -> MouseButtonEventArgs for all
2577 button handling methods.
2579 * value.h, type.h, type-generate.cpp, cbinding.h|cpp: regen.
2583 2009-09-23 Chris Toshok <toshok@ximian.com>
2585 * uielement.h (class UIElement): add event metadata.
2587 * uielement.cpp (UIElement::OnLoaded): pass RoutedEventArgs to the
2589 (UIElement::ClearLoaded): same with Unloaded.
2591 * type-generated.cpp, type.h, value.h: regen.
2593 * transform.h (class Matrix): add event metadata.
2595 * timeline.h (class TimelineGroup): add event metadata.
2597 * textbox.h (class TextBox): add event metadata.
2598 (class PasswordBox): add event metadata.
2600 * stylus.h (class StylusPoint): add event metadata.
2602 * runtime.cpp (Surface::PerformReleaseCapture): we need to clear
2603 captured/pendingReleaseCapture before emitting the event,
2604 otherwise we could get into an infinite loop between handler and
2605 ReleaseMouseCapture.
2606 (Surface::EmitEventOnList): remove the ctx arg to DoEmit.
2608 * namescope.h (class NameScope): add event metadata.
2610 * multiscaleimage.h (class MultiScaleImage): add event metadata.
2612 * mediaelement.h (class MediaElement): add event metadata.
2614 * media.h (class MediaBase): add event metadata.
2616 * frameworkelement.h (class FrameworkElement): add event metadata.
2618 * deployment.h (class Deployment): add event metadata.
2620 * dependencyproperty.h: remove PropertyChangedEventArgs from here.
2622 * eventargs.h: and put it here.
2624 * dependencyproperty.h|cpp: replace the emitting count with a
2625 stack of EmitContexts. This is since the managed layer calls a
2626 function to actually perform the emit, and the managed code
2627 doesn't have access to the context.
2628 (AddOnEventHandler,RemoveOnEventHandler): new methods so that we
2629 can replace the normal emit machinery with a delegate into managed
2630 that calls the OnEvent method.
2631 (StartEmit): push the new context onto the stack
2632 (DoEmit): if there's an on_event handler, call that and let it do
2633 the work. otherwise call DoEmitCurrentContext.
2634 (DoEmitCurrentContext): move the actual invoking of event closures
2636 (FinishEmit): pop the context off the stack.
2637 (DependencyObject::ProviderValueChanged): we have to allocate
2638 PropertyChangedEventArgs on the heap now that it's refcounted.
2639 (DependencyObject::NotifyListenersOfPropertyChange): same.
2640 (DependencyObject::collection_item_changed): same.
2642 * control.h (class Control): add event metadata.
2644 * control.cpp (Control::OnPropertyChanged): when emitting
2645 IsEnabledChangedEvent, and pass the PropertyChangedEventArgs.
2647 * collection.h (class Collection): add event metadata.
2649 * brush.h (class ImageBrush): add event metadata.
2651 * bitmapsource.h (class BitmapSource): add event metadata.
2653 * bitmapimage.h (class BitmapImage): add event metadata.
2655 * application.h (class Application): add event metadata.
2657 * cbinding.h|cpp: regen.
2659 r: spouliot, andriea
2661 2009-09-23 Stephane Delcroix <sdelcroix@novell.com>
2663 * multiscaleimage.cpp: fix the vp_h computation. vp_h is
2664 vp_w *msi_h/msi_w, NOT vp_w*msi_w/msi_h !
2666 2009-09-21 Stephane Delcroix <sdelcroix@novell.com>
2668 * multiscaleimage.h|cpp: stop the animations when setting
2669 UseSprings to false. Set the values to the target values
2670 of the animations too.
2674 2009-09-18 Jackson Harper <jackson@ximian.com>
2676 * xaml.cpp|h: Use flags passed to createfromstring now for
2677 validating templates and importing the default namespace.
2679 * collection.cpp|h: Implement a resource dictionary collection,
2680 this is a collection of dictionaries used for the
2681 MergedDictionaries property of ResourceDictionaries
2682 * resources.cpp|h: Implement the merged dictionaries property and
2683 check them when looking up items in a dictionary.
2684 * dependencyproperty.g.cpp:
2685 * types-generated.cpp:
2686 * cbinding.c|h: regen
2688 2009-09-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
2690 * pipeline-asf.cpp: MmsPlaylistEntry::WritePacket: actually fetch the
2691 media before asserting that it isn't null.
2695 2009-09-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
2697 * pipeline.cpp: When filling buffers, treat a buffering_time of 0 as a
2698 buffering_time of 1 ms, otherwise we'll do nothing at all since we have
2699 the requested amount of buffer (nothing at all), but buffering progress
2700 is is still at 0% (since we didn't buffer anything). Don't change the
2701 buffering progress calculation, since playback would fail (there would
2702 be nothing to play).
2706 2009-09-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
2708 * mms-downloader.cpp: Remove old debugging code that was stripping out
2709 everything after a ? in a url.
2713 2009-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
2715 * xaml.cpp: Honor the debug configuration option instead of enabling it
2718 * glyphs.cpp: Move debug code into conditional expression.
2720 * debug.h: DEBUG is resolved to nothing at all in release builds, so
2721 when checking if debug is defined in complex expressions we need to
2722 use 'defined (DEBUG)', since otherwise the expression becomes bogus.
2723 Also Move #include "runtime.h" outside of the conditional code, this
2724 way we don't have different include requirements in other headers
2725 depending on debug/release configuration.
2729 2009-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
2731 * dependencyobject.cpp|h: SetCurrentDeployment: add a parameter
2732 specifying whether the current thread should be registered with the
2735 This fixes a minor catch with the media threads: they need to register
2736 the current thread with the deployment before calling
2737 SetCurrentDeployment, but they can't call GetDeployment to get the
2738 deployment to register the thread with before calling
2739 SetCurrentDeployment since it would trigger a deployment mis-matched
2742 * pipeline.cpp|h: Add a thread pool to manage media threads instead of
2743 creating one thread per Media instance.
2745 * pipeline-asf.cpp: Updated according to Media API changes.
2749 2009-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
2751 * mediaplayer.cpp: GetVolume: Get the AudioSource instance before using
2756 2009-09-16 Larry Ewing <lewing@novell.com>
2758 * multiscaleimage.cpp (OnPropertyChanged): chain up to MediaBase
2759 not DependencyObject so that property changes actually work.
2763 2009-09-14 Jeffrey Stedfast <fejj@novell.com>
2765 * deployment.cpp (Initialize): Disable MONO_IOMAP=case.
2767 * application.cpp (GetResourceAsPath): ExtractAll using
2768 CanonModeResource (everything gets lowercased).
2770 * xap.cpp (Unpack): ExtractAll using CanonModeXap (everything but
2771 .dll's get lowercased).
2772 (xap_create_from_file): Canonicalize the AppManifest.xaml file
2775 * utils.cpp (CanonicalizeFilename): Now takes a tri-state mode
2776 argument to specify whether it is canonicalizing a Xap file, a
2777 resource name, or just fixing path separators. When in Xap mode,
2778 don't downcase Dll base names.
2779 (ExtractAll): When extracting a Xap, symlink a fully lowercased
2780 filename to the unmodified .dll name.
2784 2009-09-16 Larry Ewing <lewing@novell.com>
2786 * tilesource.h: make tileblendtime unamanaged so we can use it
2787 when creating the fade animation.
2789 * multiscaleimage.cpp (Render): use the duration from the
2790 tilesource for the fade animation. This probably needs to listen
2791 to change events but more testing is required.
2795 2009-09-16 Larry Ewing <lewing@novell.com>
2797 * style.h: make IsSealed field internal.
2799 2009-09-16 Sebastien Pouliot <sebastien@ximian.com>
2801 * messagebox.h: Remove tab to please the generator
2805 2009-09-16 Sebastien Pouliot <sebastien@ximian.com>
2807 * deepzoomimagetilesource.cpp: don't leak get_resource_aborter
2812 2009-09-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
2814 * pipeline.cpp|h: ProgressiveSource::Dispose: we can only abort the
2815 resource loader from the main thread.
2819 2009-09-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
2822 * bitmapimage.cpp: don't leak get_res_aborter.
2826 2009-09-16 Stephane Delcroix <sdelcroix@novell.com>
2828 * multiscaleimage.h|cpp: StopDownloading () abort and clean the
2829 downloaders. Call it from the dtor, InvalidateTileLayer and
2830 OnSourcePropertyChanged. Should prevent drt874 from randomly failing.
2834 2009-09-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
2836 * pipeline.cpp: MediaClosure: remove the 'finished' field (never used)
2837 and add a 'description' field to ease understanding of what is going
2842 2009-09-15 Sebastien Pouliot <sebastien@ximian.com>
2844 * messagebox.h: Workaround old gtk+ lacking GTK_MESSAGE_OTHER
2848 2009-09-15 Larry Ewing <lewing@novell.com>
2850 * control.h: Mark IsTemplateItem as internal.
2852 * mediaelement.h: mark DownloadProgress as readonly.
2854 * multiscaleimage.h: make AspectRatio, IsDownloading and IsIdle
2857 2009-09-15 Sebastien Pouliot <sebastien@ximian.com>
2859 * messagebox.cpp|h: New. MessageBox implementation
2860 * Makefile.am: Add new files to the build
2864 2009-09-15 Stephane Delcroix <sdelcroix@novell.com>
2866 * multiscaleimage.cpp: set the surface pointer to NULL after
2871 2009-09-16 Chris Toshok <toshok@ximian.com>
2873 * dependencyobject.cpp (EventObject::Emit): don't return early
2874 when we have a pre-emit handler, even if the list is empty. Also,
2875 don't do the pre-emit handler here.
2876 (EventObject::DoEmit): instead do it here.
2878 2009-09-14 Chris Toshok <toshok@ximian.com>
2880 * xaml.cpp (XamlLoader::CreateFromFileWithError): use the new
2881 ParserErrorEventArgs overload to MoonError::FillIn to simplify
2883 (XamlLoader::CreateFromStringWithError): same.
2884 (XamlLoader::HydrateFromStringWithError): same.
2886 * pipeline-asf.cpp (MmsSource::DownloadFailedHandler): pass a
2887 MoonError to the ErrorEventArgs, instead of the multiple args.
2889 * playlist.cpp: same.
2891 * asf/asf.cpp: same.
2893 * downloader.cpp (Downloader::SendInternal): pass a MoonError to
2894 the ErrorEventArgs, instead of the multiple args.
2895 (Downloader::NotifyFailed): same.
2897 * runtime.cpp (Surface::EmitError): same.
2899 * mediaelement.cpp (MediaElement::ReportErrorOccurred): same.
2901 * pipeline.cpp: same.
2903 * dependencyobject.cpp (DependencyObject::SetValueWithErrorImpl):
2904 we need to free the string we pass to MoonError::FillIn now that
2906 (DependencyObject::IsValueValid): same.
2907 (DependencyObject::RegisterAllNamesRootedAt): same.
2908 (DependencyObject::ReadLocalValueWithError): same.
2909 (DependencyObject::GetValueWithError): same.
2910 (DependencyObject::GetValueNoDefaultWithError): same.
2911 (DependencyObject::SetParent): same.
2913 * brush.h|cpp (ImageBrush::image_failed): pass in the calldata to
2915 (ImageBrush::ImageFailed): pass the ImageErrorEventArgs on to our
2916 ImageFailedEvent, after reffing them.
2918 * bitmapimage.cpp (BitmapImage::DownloaderComplete): if there was
2919 an error, we need to fill in the moon error with the appropriate
2920 exception, code, and msg. the calldata to the Emit call is now an
2921 ImageErrorEventArgs again, which we construct using the
2923 (BitmapImage::DownloaderFailed): same sort of change.
2924 (BitmapImage::CreateLoader): same.
2926 * bitmapimage.h (class BitmapImage): rename "error" field to
2927 "gerror" to make it clearer what it is in the code.
2929 * enums.h (enum ErrorEventArgsType): rename ErrorType to this so
2930 we get a little more indication of where it comes from. this enum
2931 is not long for this world, if I can help it.
2933 * media.h|cpp (Image::image_failed): pass in the calldata to
2935 (Image::ImageFailed): pass the ImageErrorEventArgs on to our
2936 ImageFailedEvent, after reffing them.
2938 * error.h|cpp: move all the eventargs subclasses from here
2940 (class MoonError): add a non-empty ctor, copy ctor and operator=.
2941 Also, remove the char* vs. const char* apis. make them all const
2942 char*, and dup the passed in string. Lastly, add a FillIn
2943 overload that takes a ParserErrorEventArgs.
2945 * eventargs.h|cpp: the ErrorEventArgs subclasses now keep some
2946 info in an embedded MoonError.
2947 (ExceptionRoutedEventArgs): remove this class. Nothing in
2948 unmanaged code uses it.
2950 2009-09-14 Sebastien Pouliot <sebastien@ximian.com>
2952 * xaml.cpp: remove dead code
2956 2009-09-14 Chris Toshok <toshok@ximian.com>
2958 * xaml.cpp (XamlLoader::CreateFromFileWithError): use the new
2959 ParserErrorEventArgs overload to MoonError::FillIn to simplify
2961 (XamlLoader::CreateFromStringWithError): same.
2962 (XamlLoader::HydrateFromStringWithError): same.
2964 * pipeline-asf.cpp (MmsSource::DownloadFailedHandler): pass a
2965 MoonError to the ErrorEventArgs, instead of the multiple args.
2967 * playlist.cpp: same.
2969 * asf/asf.cpp: same.
2971 * downloader.cpp (Downloader::SendInternal): pass a MoonError to
2972 the ErrorEventArgs, instead of the multiple args.
2973 (Downloader::NotifyFailed): same.
2975 * runtime.cpp (Surface::EmitError): same.
2977 * mediaelement.cpp (MediaElement::ReportErrorOccurred): same.
2979 * pipeline.cpp: same.
2981 * dependencyobject.cpp (DependencyObject::SetValueWithErrorImpl):
2982 we need to free the string we pass to MoonError::FillIn now that
2984 (DependencyObject::IsValueValid): same.
2985 (DependencyObject::RegisterAllNamesRootedAt): same.
2986 (DependencyObject::ReadLocalValueWithError): same.
2987 (DependencyObject::GetValueWithError): same.
2988 (DependencyObject::GetValueNoDefaultWithError): same.
2989 (DependencyObject::SetParent): same.
2991 * brush.h|cpp (ImageBrush::image_failed): pass in the calldata to
2993 (ImageBrush::ImageFailed): pass the ImageErrorEventArgs on to our
2994 ImageFailedEvent, after reffing them.
2996 * bitmapimage.cpp (BitmapImage::DownloaderComplete): if there was
2997 an error, we need to fill in the moon error with the appropriate
2998 exception, code, and msg. the calldata to the Emit call is now an
2999 ImageErrorEventArgs again, which we construct using the
3001 (BitmapImage::DownloaderFailed): same sort of change.
3002 (BitmapImage::CreateLoader): same.
3004 * bitmapimage.h (class BitmapImage): rename "error" field to
3005 "gerror" to make it clearer what it is in the code.
3007 * enums.h (enum ErrorEventArgsType): rename ErrorType to this so
3008 we get a little more indication of where it comes from. this enum
3009 is not long for this world, if I can help it.
3011 * media.h|cpp (Image::image_failed): pass in the calldata to
3013 (Image::ImageFailed): pass the ImageErrorEventArgs on to our
3014 ImageFailedEvent, after reffing them.
3016 * error.h|cpp: move all the eventargs subclasses from here
3018 (class MoonError): add a non-empty ctor, copy ctor and operator=.
3019 Also, remove the char* vs. const char* apis. make them all const
3020 char*, and dup the passed in string. Lastly, add a FillIn
3021 overload that takes a ParserErrorEventArgs.
3023 * eventargs.h|cpp: the ErrorEventArgs subclasses now keep some
3024 info in an embedded MoonError.
3025 (ExceptionRoutedEventArgs): remove this class. Nothing in
3026 unmanaged code uses it.
3028 2009-09-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3031 * audio-pulse.cpp|h: Delay pulse/alsa initialization until we actually
3032 need to play something, and clean up when we stop playing audio.
3034 * mutex.h: Add support for recursive mutexes.
3038 2009-09-14 Stephane Delcroix <sdelcroix@novell.com>
3040 * deepzoomimagetilesource.h:
3041 * multiscaleimage.h|cpp:
3043 * uielement.h: drop some manually written cbindings in favor of
3046 * cbinding.h|cpp: regen
3050 2009-09-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3052 * audio.cpp: It should be safe to delete audio sources on any
3057 2009-09-11 Larry Ewing <lewing@novell.com>
3059 * deployment.cpp, deployment.h: add OutOfBrowserSettings,
3060 ExternalPartCollection, ExternalPart and ExtensionPart to allow
3065 2009-09-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
3067 * audio.cpp|h: Add AudioSource::GetMediaPlayerReffed and use it
3068 wherever we used to access the field directly. Fixes a very rare
3073 2009-09-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
3075 * pipeline-asf.cpp: Add a null check.
3079 2009-09-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
3081 * runtime.h: Fix typo in sanity message.
3083 2009-09-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
3085 * audio.cpp: WriteFull: have a local copy of the stream pointer,
3086 it may get changed on the main thread.
3090 2009-09-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
3092 * audio-alsa.cpp: AlsaSource::InitializeInternal: make sure we unref
3093 the audio stream in all code paths.
3097 2009-09-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
3099 * mediaelement.cpp: Dont ref/unref around the MarkerTimeout tick call,
3100 it should be safe since the tick call is removed upon destruction.
3104 2009-09-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
3106 * audio.cpp|h: Make AudioPlayer refcounted, and shutdown when the
3107 AudioPlayer is disposed due to refcounting reaching 0. This way
3108 we can keep the instance lock for as little time as possible
3109 (to do the ref), instead of during the entire Add/Remove calls,
3110 which may end up deadlocking deep inside pulse in rare circumstances
3111 (we try to add an audio source on one thread(requires a global pa lock)
3112 when removing another audio source on another thread as a response to
3113 an event from pa which may already have the global pa lock).
3118 * type-generated.cpp: Regenerated
3122 2009-09-11 Stephane Delcroix <sdelcroix@novell.com>
3124 * multiscaleimage.h|.cpp: DownloadTile () now takes a user_data
3125 pointer instead of subcache, layer, x and y. Avoids some tree waliking
3130 2009-09-11 Stephane Delcroix <sdelcroix@novell.com>
3132 * multiscaleimage.cpp: QTree: remove the QTreeNode alias, fix
3133 qtree_remove to take guint64 indices, qtree_next_sibling for
3138 2009-09-10 Jackson Harper <jackson@ximian.com>
3140 * namescope.h: Add an accessor for the names hashtable so we can
3141 use them in plugin-debug.
3145 2009-09-10 Jackson Harper <jackson@ximian.com>
3147 * xaml.cpp|h: Add flags to the callback data
3148 - Add a pinvoke function that allows propertys to be delayed in
3149 their set call until after the element is fully parsed. This
3150 allows things like adding elements to a Selector and setting its
3155 2009-09-10 Larry Ewing <lewing@novell.com>
3157 * multiscaleimage.cpp (RenderSingle): work around the cairo
3158 limitations by doing the viewport/msi intersection and clipping in
3163 2009-09-10 Stephane Delcroix <sdelcroix@novell.com>
3165 * multiscaleimage.cpp: drop 3 useless lines (the cairocontext we
3166 receive on Render is already clipped to the control size.
3167 Wrap the clipping to image size in a conditional to avoid clipping
3168 with really huge rectangles. That it a bug in cairo, as shown in
3169 drt 2013, 2014. In those cases, the rendering will (visually) leak
3170 for the low order layers.
3174 2009-09-09 Jackson Harper <jackson@ximian.com>
3176 * xaml.cpp: When we are setting attributes we want to set
3177 everything with a backing dependency property before we set things
3178 that require managed. We also delay the setting of attributes with
3179 an explicit managed namespace reference. NOTE: We dont delay
3180 setting attributes that have a DP but are forced into managed
3181 because of their type.
3182 - We can share SetUnknownAttribute functions because the default
3183 xmlns is inited to NULL.
3187 2009-09-09 Stephane Delcroix <sdelcroix@novell.com>
3189 * multiscaleimage.cpp: Clear () the SubImagesCollection on
3190 source changed. Speed things up when reusing the same MSI
3191 over and over with different sources. drt #2004 is now passing
3196 2009-09-08 Sebastien Pouliot <sebastien@ximian.com>
3198 * downloader.h, layout.h, list.h: Add missing virtual destructors
3202 2009-09-08 Chris Toshok <toshok@ximian.com>
3204 * provider.cpp (StylePropertyValueProvider::SealStyle): pass true
3205 for ProviderValueChanged's @set_parent.
3206 (InheritedPropertyValueProvider::PropagateInheritedProperty): pass
3207 true in the visual walking case, and false in the
3208 textblock->inline case.
3209 (PROP_ADD): pass true.
3210 (AutoCreatePropertyValueProvider::GetPropertyValue): pass true.
3211 (InheritedPropertyValueProvider::PropagateInheritedProperty):
3212 do a deep traversal of the tree, looking for children who have a
3213 mapped property from the changed one (MapPropertyToDescendant
3214 returns NULL if there's no mapping). Once we find a suitable
3215 descendant, call ProviderValueChanged on it with "true" for
3216 notify_listeners. This will take care of notifying further down
3217 the tree if need be, and we can skip that branch. For textblocks
3218 we also have to iterate over the inlines to propagate the property
3219 change notification.
3220 (InheritedPropertyValueProvider::PropagateInheritedPropertiesOnAddingToTree):
3221 traverse the entire subtree looking for classes which can inherit
3222 properties from above them. when we find one, get the inherited
3223 value. if it's non-null, notify that the property has changed,
3224 and keep trace of this property (we only notify once for a given
3225 subtree, since the normal ProviderValueChanged notifications will
3226 handle the rest for that property.)
3227 (walk_tree): this recursive function does the bulk of the work for
3228 ::PropagateInheritedPropertiesOnAddingToTree
3230 * dependencyobject.h|cpp (DependencyObject::ProviderValueChanged):
3231 add an additional argument (set_parent), which is true for every
3232 instant except when TextBox is propagating inherited brushes to
3233 its constituent inlines. In this case, the textbox is still the
3234 parent of the brush. At least for the time being. In a perfect
3235 world all the changed handling would live in the leaf
3236 nodes (i.e. in the Inlines themselves)
3237 (DependencyObject::ClearValue): track api change
3238 (DependencyObject::SetValueWithErrorImpl): same.
3239 (DependencyObject::GetValue): add an overload for allowing both
3240 starting and ending precedences, and implement the other two
3241 overloads in terms of it.
3242 (DependencyObject::GetValueSkippingPrecedence): remove, no longer
3245 * uielement.cpp (UIElement::ElementAdded): propagate all
3246 inheritable properties into the subtree we're adding, before
3251 2009-09-08 Stephane Delcroix <sdelcroix@novell.com>
3253 * downloader.h|.cpp: new MsiPolicy, like MediaPolicy but doesn't allow
3254 redirections (drt 874)
3256 * bitmapimage.h|bitmapimage.cpp: new SetDownloadPolicy () to override the
3259 * multiscaleimage.cpp: use MsiPolicy, fixes drt 874.
3263 2009-09-08 Sebastien Pouliot <sebastien@ximian.com>
3265 * downloader.cpp: Skip redirection check if the source url is a
3270 2009-09-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
3272 * bitmapimage.cpp: CreateLoader: we were relying on an DownloadFailed
3273 event from the downloader after cancelling a resource request, this
3274 is no longer true, so emit ImageFailed manually after calling Abort.
3278 2009-09-08 Stephane Delcroix <sdelcroix@novell.com>
3280 * deepzoomimagetilesource.cpp: don't render if any MSI extends
3281 is 0. avoid rendering an extra layer in some cases.
3285 2009-09-08 Stephane Delcroix <sdelcroix@novell.com>
3287 * deepzoomimagetilesource.h|cpp: replace downloader usage by
3288 Application::GetResource (). Parses the xml stream as it comes,
3289 instead of all at once.
3293 2009-09-07 Chris Toshok <toshok@ximian.com>
3295 * dependencyobject.cpp (DependencyObject::ProviderValueChanged):
3296 don't bail out early if both values are null, as the property
3297 might be AlwaysChange.
3298 (DependencyObject::ClearValue): same.
3302 2009-09-07 Stephane Delcroix <sdelcroix@novell.com>
3304 * multiscaleimage.cpp: the tileLayer parameter is not the number
3305 of layers to invalidate.
3309 2009-09-07 Stephane Delcroix <sdelcroix@novell.com>
3311 * multiscaleimage.cpp: InvalidateTileLayer no longer invalidate the
3312 full cache, but only the requested tiles.
3316 2009-09-05 Stephane Delcroix <sdelcroix@novell.com>
3318 * multiscaleimage.cpp:
3319 * deepzoomimagetilesource.h|cpp: do the same cleaning suffs (clearing
3320 the cache, aborting the downloaders, invalidating, etc...) on dzits
3321 urisource changed that is done on msi sourcechanged.
3325 2009-09-05 Stephane Delcroix <sdelcroix@novell.com>
3327 * multiscaleimage.h|cpp: code reshuffling and refactoring. Move
3328 the OnSourcePropertyChanged handling outside of OnPropertyChanged.
3329 No longer keep a source instance variable, as we can get it with
3334 2009-09-04 Larry Ewing <lewing@novell.com>
3336 * multiscaleimage.cpp (RenderSingle): clip our rendering to the
3337 image bounds so that when we are scaling up we don't end up with
3342 2009-09-04 Stephane Delcroix <sdelcroix@novell.com>
3344 * utils.h|cpp: add a void* arg to the Cancellable api
3346 * application.cpp: remove the downloader notifications on
3349 2009-09-04 Stephane Delcroix <sdelcroix@novell.com>
3351 * multiscaleimage.cpp: on source change, don't only Abort() the
3352 dlders, but also reset the internal state of the dlders to Free
3356 2009-09-03 Stephane Delcroix <sdelcroix@novell.com>
3358 * multiscaleimage.cpp: reset the Viewport to its default values
3359 on source change. Eventually fixes drt#511.
3363 2009-09-03 Jeffrey Stedfast <fejj@novell.com>
3365 * textbox.h: Nuke the CallInitialize metadata from TextBox.
3367 2009-09-03 Stephane Delcroix <sdelcroix@novell.com>
3369 * deepzoomimagetilesource.h: add Generate* attributes
3371 2009-09-03 Stephane Delcroix <sdelcroix@novell.com>
3373 * multiscaleimage.h: drop the GenrateJSBinding attributes
3375 2009-09-03 Stephane Delcroix <sdelcroix@novell.com>
3378 * deepzoomimagetilesource.h|cpp: remove a hack in the parser, and
3379 move it to the DZITS ctor. DRTs (509 and 511) and some sites shows
3380 that we have to strip an eventual leading / on ctor but not on
3383 2009-09-02 Andreia Gaita <avidigal@novell.com>
3385 * dependencyobject.cpp: move the storage cleanup to Dispose, they
3386 will need to invoke handlers and other things that require the
3387 object to still be alive. fixes crash on drt 109
3391 2009-09-02 Jackson Harper <jackson@ximian.com>
3393 * dependencyproperty.cpp: If the explicitly mentioned type does
3394 not contain the property, try looking for the property on the
3395 current lookup obejct. Allows things like (UIElement.Height) on a
3400 2009-09-02 Jeffrey Stedfast <fejj@novell.com>
3402 * textblock.cpp (TextBlock::OnCollectionChanged): Explicitly call
3403 UpdateLayoutAttributes(). We can't rely on it being called as a
3404 result of setting the Text property since the overall Text
3405 property value might not have changed.
3406 (TextBlock::OnCollectionItemChanged): Same here.
3407 (TextBlock::OnPropertyChanged): Same for when the Inlines property
3408 changes. In the FontSource case, don't set invalidate to
3409 false. Also set dirty to true.
3410 (SetTextInternal): Changed to return void, no need to return bool
3415 2009-09-01 Jeffrey Stedfast <fejj@novell.com>
3417 * layout.cpp (TextLayoutGlyphCluster::Render): If the background
3418 brush is null, don't bother drawing a background.
3422 2009-09-01 Jeffrey Stedfast <fejj@novell.com>
3424 * layout.cpp (TextLayoutGlyphCluster::Render): If the Foreground
3425 brush is null, don't render the text.
3429 2009-09-01 Sebastien Pouliot <sebastien@ximian.com>
3431 * utils.cpp (CopyFileTo): Close the destination file handle if
3432 the source (filename) cannot be opened.
3436 2009-09-01 Sebastien Pouliot <sebastien@ximian.com>
3438 * uielement.cpp (UIElement::Paint): Don't leak a copy of the
3439 region when *not* using FTB rendering.
3443 2009-09-01 Larry Ewing <lewing@novell.com>
3445 * frameworkelement.cpp: clear LastRenderSize before we emit so
3446 that we don't end up in a possible recursion.
3448 Fixes http://www.worldwidetelescope.org/webclient/
3452 2009-09-01 Sebastien Pouliot <sebastien@ximian.com>
3454 * xaml.cpp: Fix DRT355 (broken at r140756) to report the "right"
3455 error code when an invalid xap file is encoutered.
3459 2009-08-31 Sebastien Pouliot <sebastien@ximian.com>
3461 * debug.cpp: Delete frame if we're not using it in the loop
3462 * resources.cpp: Don't leak Value instance on error
3466 2009-08-30 Andreia Gaita <avidigal@novell.com>
3470 * animation.[h|cpp]: rename TeardownClockGroup to TeardownClock and
3471 move it to the Timeline class so all timelines can clear their clocks.
3472 Removed private root_clock, all timelines should use the timeline
3475 * timeline.[h|cpp]: TeardownClock removes the clock from the parent
3476 ClockGroup and clears the ref on the clock so it can be destroyed
3477 (which in turn will release the ref on the timeline so it too gets
3479 DispatcherTimer doesn't have to destroy it's clock, the timeline
3480 dispose takes care of that. Added TeardownClock for DispatcherTimer
3481 so it stops the clock before disposing.
3482 Removed private root_clock, all timelines should use the timeline
3485 * clock.[h|cpp]: Added Dispose to Clock and ClockGroup. The
3486 group Dispose goes down the hierarchy of clocks and starts clearing
3487 clocks (via timeline TeardownClock) from bottom to top, so
3488 everything is guaranteed to die before the root clock gets
3491 * timemanager.cpp: Dispose root clock before releasing it
3495 2009-08-30 Andreia Gaita <avidigal@novell.com>
3497 * textblock.cpp: drop the run reference, it's already reffed on the
3502 2009-08-28 Alan McGovern <amcgovern@novell.com>
3506 * contentcontrol.cpp: ContentControl is not in charge of
3507 expanding its content template, the users of ContentControl
3508 have to do that. When applying a ControlTemplate, if it
3509 expands to an empty element or one which is not a UIElement,
3510 we ignore the template and instead apply the default
3513 2009-08-27 Jeffrey Stedfast <fejj@novell.com>
3515 * textbox.cpp (TextBoxBase::Initialize): Don't listen for Focus or
3516 Mouse events anymore (except the special internal MultiClick
3517 event). Managed code will now call our public On$Event() methods
3519 (TextBoxBase::OnKeyUp): Don't ever set args.Handled to
3520 true. Doesn't seem like SL ever does.
3524 2009-08-27 Stephane Delcroix <sdelcroix@novell.com>
3526 * tilesource.h: rely on the generator for internal properties.
3529 * deepzoomimagetilesource.cpp: use the accesors instead of the
3532 2009-08-27 Andreia Gaita <avidigal@novell.com>
3534 * dependencyobject.cpp: list should only be cleared, not destroyed,
3535 storage_hash still needs it
3539 2009-08-26 Chris Toshok <toshok@ximian.com>
3541 * xaml.cpp (XamlParserInfo::ClearBuffer): set buffer to NULL after
3546 2009-08-16 Chris Toshok <toshok@ximian.com>
3548 * value.h.in, value.cpp: remove Value::Set. it's unnecessary.
3550 * validators.cpp (Validators::BalanceValidator): use the
3551 assignment operator instead of ::Set, which no longer exists.
3552 (Validators::VolumeValidator): same.
3553 (Validators::CursorValidator): don't assign the pointer, assign
3554 the value. This should have caused bugs...
3558 2009-08-26 Jeffrey Stedfast <fejj@novell.com>
3560 * validators.cpp (FloatValidator): New validator to make sure a
3561 value is within range for a float.
3563 * glyphs.cpp: Get rid of origin_y_specified, origin_x, and
3564 origin_y state variables. We can just query these on demand.
3565 (Render): Simplified slightly.
3566 (GetTransformOrigin): Get rid of unused variable.
3567 (GetOriginPoint): Just use the ascender rather than the height and
3568 the descender. Simpler that way.
3570 * glyphs.h: Changed default OriginX and OriginY values to what
3571 they should be according to the moon-unit tests (also makes drt
3576 2009-08-26 Alan McGovern <amcgovern@novell.com>
3581 * template.cpp: Allow FrameworkTemplates to be expanded in
3582 managed code. Using that, expand the ItemsPanelTemplate in
3583 ItemsControl when it is available. r: toshok
3585 2009-08-26 Andrés G. Aragoneses <aaragoneses@novell.com>
3587 * security.c: Fixed typos in last "a11y" commit.
3589 2009-08-26 Chris Toshok <toshok@ximian.com>
3591 * textbox.cpp (TextBoxBase::SetSurface): only call
3592 gtk_im_context_set_client_window if @surface is non-null. this
3593 quiets down some of the gtk warnings on shutdown.
3597 2009-08-26 Alan McGovern <amcgovern@novell.com>
3602 * type-generated.cpp: regen r: shana
3604 2009-08-26 Andreia Gaita <avidigal@novell.com>
3606 * animation.[h|cpp]: Redesign AnimationStorages. There's now 4
3607 public methods that DOs and Clocks use to control an animation:
3608 - when a new storage is attached and there is already one on
3609 the property, Disable removes the handlers from the previous
3611 - when a storage is detached, the previous one is enabled via
3612 Enable, which attaches the handlers;
3613 - when a clock is stopped, it calls Stop, which detaches
3614 everything and resets the property;
3615 - when cloning, SwitchTarget is used to replace the DO and its
3616 handlers on the storage, to avoid having to clone all the
3617 storages every time.
3619 Storages are now only deleted when the clock stops, is destroyed
3620 or when the DO they're attached to is destroyed. IsLonely was
3621 removed (meaningless now), as well as the resettable flag (only
3622 enabled animations reset)
3624 * dependencyobject.[h|cpp]: a DO can have more than one animation
3625 running on the same DP, and they need to be stored so that when a
3626 DO is cloned, all running animations are updated to the new DO -
3627 - this way, when they stop they update the current DO and not the
3628 one they were originally attached to. This fixes the animation
3629 problems on togglebuttons and other objects that have several
3630 animations overlapping each other. The storage_hash now stores a
3631 List* of AnimationStorage::Node objects with all existing animations
3632 for every DP, and the animation storage cloning process doesn't clone
3633 the storages, it merely creates a new List* with the existing storages
3634 and updates them to the newly cloned DO.
3638 2009-08-26 Alan McGovern <amcgovern@novell.com>
3640 * template.cpp: NNull check 'result' before using it. r:shana
3642 2009-08-26 Andrés G. Aragoneses <aaragoneses@novell.com>
3644 * security.c: Mark MoonAtkBridge.dll as platform assembly.
3646 2009-08-25 Chris Toshok <toshok@ximian.com>
3648 * control.cpp (Control::OnPropertyChanged): emit IsEnabledChanged
3649 when IsEnabledProperty has changed. we need to do it after the
3650 focus handling has happened, though, as
3651 FocusManager.GetFocusedElement() returns the currently focused
3652 thing in handlers for IsEnabledChanged. Fixes the rendering of
3653 disabled elements in drt #432.
3657 2009-08-26 Jackson Harper <jackson@ximian.com>
3659 * dependencyproperty.cpp: Allow setting properties that are
3660 attached on their owner type without parens. r: toshok
3662 2009-08-26 Jackson Harper <jackson@ximian.com>
3664 * xaml.cpp|h: Expose a function for parsing bools so the plugin
3665 code can use our bool parsing code. (Handle ints).
3667 r: shana && kangaroo
3669 2009-08-25 Jeffrey Stedfast <fejj@novell.com>
3671 * textblock.cpp (TextBlock::UpdateFontDescriptions): Don't
3672 invalidate unless one of the fonts has actually changed.
3676 2009-08-25 Jackson Harper <jackson@ximian.com>
3678 * type.cpp: Function was still in the header but somehow lost its
3679 implementation. We dont use it anywhere but its useful for
3680 debugging. r: kangaroo
3682 2009-08-25 Alan McGovern <amcgovern@novell.com>
3688 * contentcontrol.cpp: Add support for using
3689 ContentControl.ContentTemplate when it is available. If
3690 there is no Control.Template, ContentControl.ControlTemplate
3691 is used. If that isn't available, we call into managed code
3692 and get the fallback root. r: toshok
3694 2009-08-24 Jackson Harper <jackson@ximian.com>
3696 * dependencyobject.cpp: Hydrated objects are registered in their
3697 parent namescope so we need to unregister them there also. r: toshok
3699 2009-08-21 Jeffrey Stedfast <fejj@novell.com>
3701 * fontmanager.cpp (AddResource): Need to free the path string
3702 before returning on success.
3704 * frameworkelement.cpp (UpdateLayout): Modified outer-loop to not
3705 leak the various lists.
3709 2009-08-21 Jeffrey Stedfast <fejj@novell.com>
3711 * grid.cpp (DestroyMatrices): Need to use delete[] to free the
3716 2009-08-21 Alan McGovern <amcgovern@novell.com>
3719 * template.cpp: Whenever any template is expanded, the
3720 template namescope should be locked. r: jackson
3722 2009-08-21 Alan McGovern <amcgovern@novell.com>
3724 * grid.cpp: When assigning sizes to grid segments, if the
3725 current UIElement spans across star segments, then extra
3726 height will only be assigned to those star segments.
3727 Otherwise extra height will be assigned to Auto and Pixel
3730 2009-08-20 Jeffrey Stedfast <fejj@novell.com>
3732 * textbox.cpp (TextBoxBase::Emit*Async): Removed.
3733 (TextBox::EmitSelectionChanged): Updated to use EmitAsync().
3734 (TextBox::EmitTextChanged): Same.
3735 (PasswordBox::EmitTextChanged): Same.
3737 * popup.cpp (OnPropertyChanged): Use the new EmitAsync() method.
3739 * dependencyobject.cpp (EventObject::EmitAsync): New method to
3740 emit an event asynchronously.
3744 2009-08-20 Jeffrey Stedfast <fejj@novell.com>
3746 * textbox.cpp (emit_selection_changed): Pass along the generation
3747 to the virtual EmitSelectionChanged() method.
3748 (emit_text_changed): Same.
3749 (EmitSelectionChangedAsync): Use a custom closure so that we can
3750 capture the current event generation to use when we actuall emit
3752 (EmitTextChangedAsync): Same.
3756 2009-08-20 Jackson Harper <jackson@ximian.com>
3758 * xaml.cpp: Setting OBJECT properties allows objects to be parsed
3759 from strings that shouldn't normally be. Such as SolidColorBrush
3760 and PointCollection.
3762 2009-08-19 Jeffrey Stedfast <fejj@novell.com>
3764 * fontmanager.cpp (FontFace::GetExtents): Updated to implement the
3765 same algorithm used by Silverlight.
3769 2009-08-19 Jackson Harper <jackson@ximian.com>
3771 * playlist.cpp: Its possible to queue an async operation and then
3772 call Dispose before that operation has taken place. This patch
3773 makes Playlist delay its unref and adds guards in its async
3774 callback functions to avoid this. Fixes http://www.nederland24.nl/
3777 2009-08-18 Jackson Harper <jackson@ximian.com>
3779 * template.cpp: Remove not very helpful and somewhat scary looking
3780 debug spew. r:toshok
3782 2009-08-18 Jeffrey Stedfast <fejj@novell.com>
3784 * layout.cpp (word_type_changed): Partial revert for previous
3785 commit as it broke drt #208.
3789 2009-08-17 Jeffrey Stedfast <fejj@novell.com>
3793 * layout.cpp (SetMaxWidth): If setting MaxWidth to 0, treat it as
3795 (word_type_changed): Allow alphabetic characters inside
3797 (layout_word_wrap): Allow line advance to equal max width.
3801 2009-08-18 Alan McGovern <amcgovern@novell.com>
3804 * grid.cpp: Remove the 'magic' size as size allocations are
3805 read from row_matrix/col_matrix now. r: kangaroo
3807 2009-08-18 Alan McGovern <amcgovern@novell.com>
3810 * grid.cpp: Allocate sizes of the grid segments in the correct
3813 2009-08-17 Alan McGovern <amcgovern@novell.com>
3816 * grid.cpp: When allocating sizes for rows/columns, clamp the
3817 sizes between the Min and Max values in a consistent manner.
3820 2009-08-17 Alan McGovern <amcgovern@novell.com>
3823 * grid.cpp: Change the parameter order in the Segment
3824 constructors to be "value, min, max" to be consistent with
3825 how 'CLAMP' is usually defined. r: jackson
3827 2009-08-16 Chris Toshok <toshok@ximian.com>
3829 * xaml.cpp (value_from_str_with_parser): fix the abundant memory
3830 leaks in this method.
3832 * propertypath.h (struct PropertyPath): add a copy constructor
3833 here so the xaml.cpp changes work without crashing.
3837 2009-08-16 Chris Toshok <toshok@ximian.com>
3839 * xaml.cpp (value_from_str_with_parser): we were using the return
3840 value from this method to be "v has been set to a value", but this
3841 isn't enough state. We also need to know if the
3842 caller (dependency_object_set_attributes, specifically) should
3843 continue on or skip the attribute after it's called us. So, we
3844 add a "bool *v_set" parameter, and change the return value to
3845 "false = skip, true = continue processing." We return false in
3846 only 1 case right now, if a double-typed value is to be parsed
3847 from an empty string. This fixes the Klotski demo, which has
3848 <TranslateTransform X=""> in its xaml. Also, fix the g_strstrip
3849 usage to also deal properly with leading spaces, and stop
3850 duplicating "g_free (s); return true;" - just break there, and let
3851 the blanket free/return at the end of the method handle it.
3852 (dependency_object_set_attributes): simplify the {} handling, and
3853 stop leaking the string value of the attribute when we pass it to
3858 2009-08-15 Larry Ewing <lewing@novell.com>
3860 * mediaelement.cpp (Render): use the same logic we used in image
3861 here to always adjust the paint rect when stretch != StretchNone.
3865 2009-08-15 Larry Ewing <lewing@novell.com>
3867 * shape.cpp (MeasureOverride): Stretch to the proper width when
3868 available size in not infinite. Avoid using infinite dimesions as
3869 constraints for Uniform stretches.
3871 Fixes Header stretching in playboy an improves DRT #210.
3875 2009-08-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
3877 * pipeline.cpp: Quiet some debug spew.
3881 2009-08-14 Larry Ewing <lewing@novell.com>
3883 * grid.cpp (MeasureOverride): properly use min and max.
3885 Fixes regression in DRT #319 from new table code
3889 2009-08-14 Larry Ewing <lewing@novell.com>
3891 * media.cpp: always adjust our paint rectangle when Stretch !=
3894 Fixes DRT #516 and the regression in #422
3898 2009-08-14 Larry Ewing <lewing@novell.com>
3900 * frameworkelement.cpp (Arrange): apply the size constraints after
3901 we the the actualsize back from the element.
3903 * layoutinformation.cpp (GetClip): now that other things are
3904 improved only traverse up one level.
3906 Fixes clipping on the smooth streaming size and DRT #210
3910 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3912 * pipeline.cpp: IMediaDecoder::Dispose: clear the list of pending
3917 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3919 * pipeline.cpp: IMediaDecoder::Dispose: store a copy of our instance
3920 variables in local variables and clear out the instance variables
3921 before unreffing them - prevents certain rare cases of infinite loops.
3925 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3927 * pipeline.cpp: IMediaDecoder::DecodeFrameAsync: don't do anything if
3928 we've been disposed.
3932 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3934 * pipeline.cpp: IMediaObject::EmitSafe: unref the args in all code
3939 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3941 * pipeline.cpp: IMediaObject::AddSafeHandler: don't add any handlers
3942 if we've been disposed.
3946 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3948 * pipeline.cpp: IMediaObject::Dispose: clear the list of events
3949 we were supposed to emit on the main thread.
3953 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3955 * pipeline.cpp: IMediaDemuxer::Dispose: add a missing unref.
3959 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3961 * pipeline.cpp: IMediaDemuxer::Dispose: store a copy of our instance
3962 variables in local varaibles and clear out the instance variables
3963 before unreffing them - prevents certain rare cases of infinite loops.
3967 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3969 * pipeline.cpp: IMediaStream::Dispose: store a copy of our instance
3970 variables in local variables and clear out the instance variables
3971 before unreffing them - prevents certain rare cases of infinite loops.
3975 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3977 * pipeline.cpp: Media::RetryHttp: we need to Dispose the previous
3982 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3984 * pipeline-asf.cpp: MmsPlaylistEntry::Dispose: break a circular
3985 dependency between MmsPlaylistEntry and Media.
3989 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3991 * pipeline.cpp: Media::Dispose: store a copy of our instance variables
3992 in local variables and clear out the instance variables before
3993 unreffing them - prevents certain rare cases of infinite loops.
3997 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3999 * pipeline.cpp: MarkerStream::Dispose: call base class' Dispose.
4003 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
4005 * pipeline-asf.cpp: Add a few missing unrefs.
4009 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
4011 * pipeline.cpp|h: Add a MediaDisposObjectClosure that ensures that
4012 the closure is called.
4016 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
4018 * pipeline.cpp: Add an invalid MediaResult value, so that MediaClosure
4019 can detect if the callback has been called or not.
4023 2009-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
4025 * pipeline.cpp: Media::DisposeObject: if we couldn't enqueue the
4026 dispose on the media thread, call dispose directly.
4030 2009-08-14 Alan McGovern <amcgovern@novell.com>
4033 * grid.cpp: Rewrite the size allocation code in grid to better
4034 match the microsoft implementation. It works much better for
4035 the pixel and auto cases, but still has some issues with
4036 star columns. r: lewing
4038 2009-08-14 Jeffrey Stedfast <fejj@novell.com>
4040 * application.cpp (GetResource): Close the stream when we're
4041 done. Also changed to check write_cb exists before reading from
4042 the stream - if the callback is NULL, don't even bother.
4043 (GetResourceAsBuffer): Removed.
4044 (GetResourceAsPath): Instead of calling GetResourceAsBuffer(), do
4045 the streaming ourselves. Also return NULL if writing the stream to
4048 * utils.cpp (managed_stream_open/read/write/etc): Changed to be
4049 internal. These symbols don't need to be publicly exported.
4051 * utils.h: Added a Stream_Close function signature to
4052 ManagedStreamCallbacks.
4054 * bitmapimage.cpp (resource_notify): Make static/internal - does
4055 not need to be publicly exported.
4059 2009-08-14 Stephane Delcroix <sdelcroix@novell.com>
4061 * multiscaleimage.cpp: retry downloading up to 5 times.
4063 2009-08-14 Stephane Delcroix <sdelcroix@novell.com>
4065 * bitmapimage.h|cpp, multiscaliemage.cpp: abort downaloaders on
4070 2009-08-13 Larry Ewing <lewing@novell.com>
4072 * usercontrol.cpp (MeasureOverride): don't constrain the results.
4078 2009-08-13 Larry Ewing <lewing@novell.com>
4080 * textblock.cpp (MeasureOverride):
4081 * textbox.cpp (MeasureOverride): ceil our measurement request when
4082 layout rounding is being done so that we don't get rounded down
4083 and forced to wrap. More testing is in order but failure mode for
4086 Fixes wrapping in Playboy and the chess final screen.
4090 2009-08-13 Larry Ewing <lewing@novell.com>
4092 * timesource.h (MOON_PRIORITY_DEFAULT): lower our default priority
4093 to idle so that firefox and gtk can process events without getting
4094 starved. Improved Quakelight and StrangeAttractor experience.
4098 2009-08-13 Larry Ewing <lewing@novell.com>
4100 * src/brush.cpp: replace all cairo_matrix_invert calls with a
4101 version that warns if it fails.
4105 2009-08-13 Jeffrey Stedfast <fejj@novell.com>
4107 * layout.cpp (TextLayoutGlyphCluster::Render): No-op if the
4108 advance width is 0. Fixes test-videobrush-text.xaml to render all
4113 2009-08-13 Chris Toshok <toshok@novell.com>
4115 * xaml.cpp (start_element): If the element is a TextBox.Text
4116 CDATA, treat it as verbatim. Partial fix for drt 2003.
4120 2009-08-13 Jeffrey Stedfast <fejj@novell.com>
4122 * layout.cpp (Layout): Make sure all attributes were able to load
4123 their fonts. If not, we can't proceed. Fixes the NULL TextFont
4126 * textblock.cpp (OnPropertyChanged): Instead of using
4127 UpdateLayoutAttributes(), all we really need to do is call
4128 UpdateFontDescriptions() when the FontSource changes.
4132 2009-08-13 Jeffrey Stedfast <fejj@novell.com>
4134 * fonts.cpp (TextFont::Load): When loading a font face from a
4135 source w/o any families specified, make sure to set master=0 so
4136 that we don't try to get extents from faces[-1].
4140 2009-08-13 Larry Ewing <lewing@novell.com>
4144 * writeablebitmap.cpp (InitializeFromBitmapSource): always use
4145 rgba pixelformat like sl3 does now.
4147 2009-08-12 Chris Toshok <toshok@ximian.com>
4149 * bitmapsource.h|cpp (SetBitmapData): add an extra parameter
4150 "own" (default: true) which, if true, causes the bitmap source to
4151 free the bitmapdata when it's destroyed.
4153 * cbinding.h|cpp: regen
4155 2009-08-12 Alan McGovern <amcgovern@novell.com>
4158 * cbinding.cpp: regen r: toshok
4164 * contentcontrol.cpp:
4165 * frameworkelement.cpp: A ContentControl which has no Template
4166 needs to call into managed land to create a 'default
4167 template'. When the Content is a UIElement, the UIElement is
4168 used as the template root, otherwise a Grid + TextBlock
4169 (with Binding) is used. This is the same as what
4170 ContentPresenter does to its Content property. r: toshok
4172 2009-08-12 Alan McGovern <amcgovern@novell.com>
4174 * uielement.cpp: VisualParent should be set to null before
4175 invalidating the cache otherwise the element might be added
4176 to the dirty lists. This causes issues if the element is
4177 added back into the visual tree at a different level. r:
4180 2009-08-12 Stephane Delcroix <sdelcroix@novell.com>
4182 * multiscaleimage.cpp: clear the cache on source change, cache a NULL
4183 tile on downloader failure (fix drt 2014 for good).
4185 2009-08-12 Stephane Delcroix <sdelcroix@novell.com>
4187 * multiscaleimage.cpp: restore the initial number of concurrent
4188 downloaders, drt 2014 will require a proper fix.
4190 2009-08-12 Chris Toshok <toshok@ximian.com>
4192 * media.h|cpp (class Image): if our source is a BitmapSource,
4193 handle the PixelDataChangedEvent and Invalidate ourselves if it's
4196 * brush.h|cpp (class ImageBrush): if our source is a BitmapSource,
4197 handle the PixelDataChangedEvent and notify our listeners to
4198 redraw if it's emitted.
4200 * bitmapsource.h|cpp (class BitmapSource): add an event so classes
4201 using BitmapSources can be notified when the pixel data
4202 changes (primarily for use with WriteableBitmap). Emit it from
4203 BitmapSource::Invalidate.
4205 * type-generated.cpp, cbinding.h|cpp: regen
4207 2009-08-11 Chris Toshok <toshok@ximian.com>
4209 [ each of these changes fixes a line of text in drt 444 ]
4210 * fontmanager.cpp (FontManager::AddResource): seek the stream to 0
4213 * textblock.cpp (TextBlock::OnPropertyChanged): we need to call
4214 UpdateLayoutAttributes if FontSource is changed, so that the
4215 change propagates down to the inlines.
4219 2009-08-11 Larry Ewing <lewing@novell.com>
4221 * grid.cpp (MeasureOverride): adjust row definition values by
4222 max/min values when building up the Actual sizes
4228 2009-08-11 Jeffrey Stedfast <fejj@novell.com>
4230 * textbox.cpp (TextBox::OnPropertyChanged): Set the font_source on
4231 the TextFontDescription as well as emitting an event so the view
4232 knows it has to re-render. Improves drt 480.
4233 (PasswordBox::OnPropertyChanged): Same.
4234 (TextBox::ClearFontSource): Removed, not used.
4235 (PasswordBox::ClearFontSource): Same.
4239 2009-08-11 Andreia Gaita <avidigal@novell.com>
4241 * runtime.cpp: TimeManager should be the last thing destroyed, other
4242 objects might need to access it while disposing. r: alan
4244 2009-08-11 Stephane Delcroix <sdelcroix@novell.com>
4246 * multiscaleimage.cpp: cast so the modulo operation opers on int,
4247 not guint64. Fix sharedtiles usage. r:shana, lewing
4249 2009-08-11 Jeffrey Stedfast <fejj@novell.com>
4251 * textbox.cpp (TextBoxBase::Paste): Change the multiline
4252 truncation test to explicitly check for \r, \n and 0x2028 instead
4253 of using g_unichar_type() which didn't return the expected values
4254 for these characters. Partial fix for drt 2003.
4255 (*Box::OnPropertyChanged): Updated for AddResource() API change.
4257 * textblock.cpp (TextBlock::OnPropertyChanged): Updated for
4258 AddResource() API change.
4260 * fontmanager.cpp (AddResource): Instead of having our callers
4261 generate a unique resource name, let us do it for them. Don't
4262 bother using mkstemp()/mkdtemp() since our root dir is already
4263 unique. Also fixed to reset the stream resource after consuming it
4264 so that if multiple textblocks/boxes/etc reuse the FontSource,
4265 things work properly. Partial fix for drt 444.
4269 2009-08-11 Alan McGovern <amcgovern@novell.com>
4271 * runtime.cpp: Controls aren't really auto-focused. What
4272 happens is that when a focused control is removed from the
4273 live tree SL does not emit a LostFocus event and so when the
4274 control is added back into the tree it still thinks it has
4275 focus. This call is still needed as there can be pending
4276 GotFocus/LostFocus events waiting to be emitted. r: toshok.
4278 2009-08-11 Alan McGovern <amcgovern@novell.com>
4280 * runtime.cpp: Make HandleUIKeyPress do the same thing as
4281 HandleUIKeyRelease when there is no toplevel so it doesn't
4284 2009-08-10 Larry Ewing <lewing@novell.com>
4286 * bitmapimage.cpp (CreateLoader): if the image isn't a png or a
4287 jpg abort the getresource call.
4289 2009-08-07 Larry Ewing <lewing@novell.com>
4291 * dirty.cpp (UpdateLayout): don't use the toplevel hack on
4294 Gets DRT #516 very close to passing slight layout problems left.
4296 2009-08-10 Andreia Gaita <avidigal@novell.com>
4298 * ptr.h: Change the base class to not allow direct casts to Value
4299 objects. Add cast operator to cast between DO classes directly
4301 2009-08-10 Andreia Gaita <avidigal@novell.com>
4303 * animation.[h|cpp]: Check for valid applier before trying to use it,
4304 it could be disposing, same for targetprop.
4305 * timemanager.cpp: clear applier when disposing
4307 2009-08-10 Andreia Gaita <avidigal@novell.com>
4309 * ptr.h: Rename OwnerPtr to DOPtr to make it clear it's a smart
4310 pointer for DependencyObject.
4311 * shape.cpp, timeline.cpp: Rename OwnerPtr to DOPtr
4312 * multiscaleimage.[h|cpp]: Use DOPtr to store DOs and auto-release
4313 them when destroying
4315 2009-08-10 Alan McGovern <amcgovern@novell.com>
4317 * frameworkelement.cpp: A new measure pass should be made if
4318 either the available width *or* available height has changed
4319 since the last measure pass.
4321 2009-08-10 Andreia Gaita <avidigal@novell.com>
4323 * ptr.h: fix assignment operators, the copy by reference ones were
4324 causing the pointer to be destroyed prematurely when assigning via
4327 2009-08-08 Chris Toshok <toshok@ximian.com>
4329 * fontmanager.cpp (FontManager::AddResource): pass stream->handle
4330 as the first arg to stream->Read, not stream itself. Also, get
4331 rid of "total" and just pass a 0 offset for each read, since we're
4332 writing the full buffer's contents up to nread each time anyway.
4334 2009-08-07 Andreia Gaita <avidigal@novell.com>
4338 * multiscaleimage.cpp: Fix the type of the left shit operations to
4339 avoid overflows. Make it an inline function for easier maintenance.
4340 * tilesource.[h|cpp]: Fix the type of the image width and height,
4341 should be bigger than int.
4343 2009-08-07 Jeffrey Stedfast <fejj@novell.com>
4347 * textbox.cpp (TextBox::OnPropertyChanged): If setting
4348 SelectedText to "", don't emit TextChanged events if there was no
4350 (PasswordBox::OnPropertyChanged): Same.
4352 2009-08-06 Chris Toshok <toshok@ximian.com>
4354 * runtime.cpp (Surface::tick_after_attach_reached): the ordering
4355 of code between this method and Surface::ToplevelLoaded is likely
4356 still somewhat wrong, but moving the Emit here fixes drt #21.
4358 2009-08-06 Chris Toshok <toshok@ximian.com>
4360 * window-gtk.cpp: move the InvokeTickCalls from here...
4362 * runtime.cpp: to the HandleUI* methods here, so they will be used
4363 in both windowed and windowless codepaths.
4365 2009-08-06 Chris Toshok <toshok@ximian.com>
4367 * timemanager.h|cpp (TimeManager::RemoveTickCall): this takes
4368 another argument now (the data object passed to AddTickCall) so we
4369 can differentiate callbacks properly.
4371 * runtime.h|cpp (Surface::Attach): we don't return true from
4372 IsLoaded until after the first tick, so that our measure pass has
4373 been run (and contentpresenters are created for all content
4374 controls.) register the tick call here (after removing any that
4375 may have already been added).
4376 (Surface::tick_after_attach_reached): set ticked_after_attach to
4378 (Surface::IsLoaded): we require ticked_after_attach to be true
4381 * cbinding.h|cpp: regen.
4383 2009-08-06 Jeffrey Stedfast <fejj@novell.com>
4385 * textbox.cpp (TextBoxBase::OnFocusOut): Instead of clearing the
4386 selection, just set the selection to the cursor position. This
4387 way, if the control gets programatically Focus()'d again, then the
4388 cursor will be where it was just before the control lost
4389 focus. Partial fix for drt 2003.
4391 2009-08-06 Jackson Harper <jackson@ximian.com>
4393 * xaml.cpp|xaml.h: Add bindings for checking/setting whether a
4394 property has already been set.
4396 2009-08-06 Jackson Harper <jackson@ximian.com>
4398 * xaml.cpp: Its possible that a buffered element can add a new
4399 namespace that start_element_handler will not know about, just
4400 ignore this error and the namespace will be added when the buffer
4403 2009-08-06 Jackson Harper <jackson@ximian.com>
4405 * xaml.cpp: Handle null in the print_tree debug code. (This can
4406 occur when loading a null template)
4408 2009-08-05 Larry Ewing <lewing@novell.com>
4410 * frameworkelement.cpp (UpdateLayout): revert an accidental
4413 2009-08-05 Jeffrey Stedfast <fejj@novell.com>
4415 * textbox.cpp (TextBoxBase::OnKeyDown): Cut and Copy operations
4416 should not copy the text buffer to the clipboard if the contents
4419 2009-08-05 Larry Ewing <lewing@novell.com>
4421 * uielement.cpp (ElementRemoved): clear the desired size when
4422 removing the element.
4424 * layoutinformation.cpp: partially revert one of the workarounds.
4426 * frameworkelement.cpp (Arrange): get the old_size from the
4427 RenderSize not the ActualWidth.
4429 2009-08-05 Chris Toshok <toshok@ximian.com>
4431 * popup.cpp (class GenerationClosure): new closure for emiting the
4432 Opened and Closed events.
4433 (Popup::emit_opened, Popup::emit_closed): pass the generation from
4434 the closure to ->Emit.
4435 (Popup::OnPropertyChanged): for the tick call, pass a closure that
4436 contains the current event generation.
4438 * timemanager.h, timemanager.cpp (TimeManager::InvokeTickCalls):
4439 factor out the loop for invoking tick calls here and call it from
4440 the source tick method.
4442 * window-gtk.cpp (MoonWindowGtk::button_press)
4443 (MoonWindowGtk::button_release, MoonWindowGtk::scroll)
4444 (MoonWindowGtk::motion_notify, MoonWindowGtk::crossing_notify)
4445 (MoonWindowGtk::focus_in, MoonWindowGtk::focus_out)
4446 (MoonWindowGtk::key_press, MoonWindowGtk::key_release): call
4447 TimeManager::InvokeTickCalls from each of these methods before we
4448 call the Surface::HandleUI* method.
4450 * dependencyobject.h (class EventObject): make a couple of api
4452 (AddTickCall*): add an "EventObject* data" parameter. if it's
4453 NULL, pass "this", so we have the current behavior.
4454 (DoEmit/Emit): add a "starting_generation" optional argument. if
4455 it's supplied, we invoke only those handlers with tokens less than
4456 the starting_generation (i.e. those handlers that were registered
4457 before the event was generated.)
4459 2009-08-05 Jeffrey Stedfast <fejj@novell.com>
4461 * textbox.cpp (TextBoxBase::OnPropertyChanged): Don't clear the
4462 FontSource property when the FontFamily property changes.
4463 (TextBox::OnPropertyChanged): Handle FontSource property changes.
4464 (PasswordBox::OnPropertyChanged): Same.
4466 * textblock.cpp (CleanupDownloaders): Free the font_source string
4468 (SetFontSource): Update the font_source string based on the
4470 (UpdateLayoutAttributes): No longer need to get the font_source
4471 string, we already have it.
4472 (UpdateFontDescriptions): Same.
4473 (OnCollectionItemChanged): Here too.
4474 (OnPropertyChanged): Update the font_source string when the
4475 FontSource property changes.
4477 2009-08-05 Jeffrey Stedfast <fejj@novell.com>
4479 * textbox.cpp (OnMouseLeftButtonMultiClick): Don't poke at the raw
4480 GdkEventButton structure, use the new MouseEventArgs accessors
4483 * eventargs.cpp (GetButton): Get the id of the button pressed.
4484 (GetClickCount): Get the number of clicks on the button.
4486 2009-08-05 Alan McGovern <amcgovern@novell.com>
4488 * panel.cpp: The LogicalParent needs to be set before the
4489 element is added, otherwise the Loaded event can be fired
4490 before LogicalParent is set.
4492 2009-08-04 Larry Ewing <lewing@novell.com>
4494 * uielement.cpp (DoMeasure): invalidate up the tree more
4495 agressively. Fixes DRT #190 regression.
4497 2009-08-04 Jeffrey Stedfast <fejj@novell.com>
4499 * textbox.cpp (TextBoxBase::OnMouseLeftButtonMultiClick): New
4500 callback for the MultiClick event.
4501 (TextBoxBase::OnMouseLeftButtonDown): No longer needs to handle
4502 double and triple mouse clicks.
4504 * uielement.h: Added a MosueLeftButtonMultiClickEvent.
4506 * runtime.cpp (CreateArgsForEvent): Handle MultiClickEvent.
4507 (HandleUIButtonPress): Handle 2 and 3 button mouse clicks.
4509 * pipeline.h (IMediaObject): FrameNode's dtor needs to be virtual.
4511 2009-08-04 Jeffrey Stedfast <fejj@novell.com>
4513 * utils.cpp (write_all): Changed to just return int (-1 for fail,
4515 (ExtractFile): Don't fsync(). Saves us a lot of time.
4517 2009-08-03 Larry Ewing <lewing@novell.com>
4519 * shape.cpp (ArrangeOverride): clear the current path.
4521 2009-08-03 Larry Ewing <lewing@novell.com>
4523 * textbox.cpp (OnModelChanged): InvalidateMeasure when things
4526 2009-08-03 Jeffrey Stedfast <fejj@novell.com>
4528 * fontmanager.cpp (AddResource): Implemented a version of this
4529 interface that can take a ManagedStreamCallbacks argument.
4531 * application.cpp (GetResourceAsPath): If we are adding the X's
4532 ourselves, use MakeTempDir() instead of CreateTempDir().
4534 2009-07-31 Larry Ewing <lewing@novell.com>
4536 * layoutinformation.cpp (GetClip): add another hack for layoutclip
4537 on Controls while things are in flux.
4539 2009-07-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
4541 * pipeline.cpp: Media::EnqueueWork: return a bool indicating whether
4542 the work was enqueued or not.
4544 2009-07-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
4546 * pipeline.cpp: Media: use the new ClearQueue overload instead of
4547 spreading the logic all over the place.
4549 2009-07-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
4551 * pipeline.cpp: Media: add a ClearQueue overload which optionally
4554 2009-07-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
4556 * playlist.cpp: Don't g_warn something which can happen in normal
4559 2009-07-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
4561 * mediaplayer.cpp: Plug a leak in one rare code-path.
4563 2009-07-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
4565 * mediaplayer.cpp: Close: dispose the AudioSource, it won't be used again.
4567 2009-07-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
4569 * mediaplayer.cpp: Dispose: call base class Dispose after we've finished.
4571 2009-07-31 Jeffrey Stedfast <fejj@novell.com>
4573 * fonts.cpp (LoadPortableUserInterface): Always load the en-US
4574 font(s) first, and then load the preferred CJK font, followed by
4575 the rest. This improves drt 414.
4577 * fontmanager.cpp (GetExtents): Improved baseline alignment by
4578 adjusting Descent if Height is larger than Ascent +
4579 Descent. Especially visible with drt 107's Deobfuscated Brauhaus
4582 2009-07-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
4584 * deployment.cpp: Dispose: we need to unref and null out the application.
4586 2009-07-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
4590 * eventargs.cpp|h: Set the object's type upon construction instead
4591 of using SetObjectType right after. This is useful when tracking
4592 objects by type - the ctor also shows up.
4594 * dependencyobject.cpp|h: Add a DependencyObject ctor that takes
4595 a Type::Kind argument.
4597 2009-07-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
4599 * debug.cpp: Make the stacktrace pipes thread-local. This way
4600 printing stacktraces from several threads at the same time doesn't
4601 result in a big mess.
4603 2009-07-30 Larry Ewing <lewing@novell.com>
4605 * layoutinformation.cpp (GetClip): add a workaround for the panel
4606 case while layoutinformation is refactored.
4608 2009-07-30 Larry Ewing <lewing@novell.com>
4610 * layoutinformation.cpp: repair a merge bug.
4612 2009-07-30 Larry Ewing <lewing@novell.com>
4614 * layoutinformation.cpp, layoutinformation.h: move layoutinformation
4615 out of uielement.h. Compute the layout clip on the fly.
4618 * dependencyproperty.g.cpp:
4619 * frameworkelement.cpp:
4620 * frameworkelement.h:
4631 * uielement.h: start reworking layout logic at we refactor
4632 layoutinformation. Use RenderLayoutClip where appropriate.
4634 2009-07-30 Jeffrey Stedfast <fejj@novell.com>
4636 * fontmanager.cpp (GetExtents): Much better fix than the
4637 string-comparison hack. Poke at the TrueType/OpenType OS/2 table
4638 and use the usWinAscent/usWinDescent values since this is what
4639 most Windows applications (brokenly) use according to some info I
4640 found on the web. Low and behold, this also makes the Adobe Caslon
4641 Pro metrics work out exactly like they do in Silverlight, so I'm
4642 guessing that the info I found is accurate :-)
4644 2009-07-30 Larry Ewing <lewing@novell.com>
4646 * uielement.cpp (DoArrange): revert the parent invalidation change as it
4649 2009-07-30 Larry Ewing <lewing@novell.com>
4651 * control.cpp (OnPropertyChanged): update the layout if the
4654 2009-07-30 Larry Ewing <lewing@novell.com>
4656 * uielement.cpp (DoArrange): remove the parent invalidation call
4657 it shouldn't be required now and is contraindicated by DRT #501.
4659 * runtime.cpp: InvalidateMeasure on resize.
4661 2009-07-30 Alan McGovern <amcgovern@novell.com>
4664 * textbox.cpp: TextBox and Popup should use AddAsyncEventCall
4667 * dependencyobject.h:
4668 * dependencyobject.cpp: Implement a new method for adding
4669 callbacks to invoke asynchronous events. They can't be
4670 invoked using the regular AddTickCall as that causes the
4671 ordering of mouse events and asynchronous events to be
4672 incorrect preventing drt 333, 476 and some others from
4675 2009-07-30 Jeffrey Stedfast <fejj@novell.com>
4677 * fontmanager.cpp (GetExtents): Now uses the alternative method of
4678 getting font metrics. Also, when dealing with Adobe fonts, use the
4679 bbox to get metrics rather than using the normal
4680 ascender/descender/height values.
4682 2009-07-30 Jackson Harper <jackson@ximian.com>
4684 * xaml.cpp: Swallow white space before linebreaks.
4686 2009-07-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
4688 * src.mdp: Connect the Build command in
4689 MonoDevelop with 'make install'.
4691 2009-07-30 Andreia Gaita <avidigal@novell.com>
4693 * multiscaleimage.cpp: leak and initialization fixes
4695 2009-07-30 Andreia Gaita <avidigal@novell.com>
4697 * shape.cpp: use smart pointer to avoid unreffing by hand
4699 2009-07-30 Andreia Gaita <avidigal@novell.com>
4701 * timeline.cpp: leak fix
4703 2009-07-30 Andreia Gaita <avidigal@novell.com>
4705 * ptr.h: added RefPtr and OwnerPtr, smart refcounting pointer classes
4706 * Makefile.am: updated
4708 2009-07-29 Larry Ewing <lewing@novell.com>
4710 * border.cpp (ArrangeOverride): return the input now that it is
4713 * frameworkelement.cpp: short circuit Measure and Arrange if the
4714 element is collapsed.
4716 2009-07-29 Jeffrey Stedfast <fejj@novell.com>
4718 * textbox.cpp (TextBoxBase::OnKeyDown): Only reset the IM context
4719 of the keyboard event was handled (meaning the state has changed).
4720 (TextBoxBase::OnCharacterKeyDown): Don't reset the IM context
4723 2009-07-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4725 * shape.cpp: Plug a leak.
4727 2009-07-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4729 * pipeline.cpp: IMediaObject::EmitSafe (): use same refcounting
4730 semantics as EventObject::Emit: unref the event args at the end of
4733 2009-07-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4735 * pipeline.cpp: IMediaDemuxer::SeekAsync (): don't return before
4736 unreffing the reffed media we've got.
4738 2009-07-29 Sebastien Pouliot <sebastien@ximian.com>
4740 * pipeline-ui.cpp: Delegate the codec integrity validation to Mono.
4741 Helper.CheckIntegrity (System.Windows.dll)
4743 2009-07-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4745 * pipeline.cpp (Media::SelectDemuxerAsync): minor performance
4746 improvement: return true immediately if we've actually managed to
4747 open a demuxer instead of enqueuing another call to
4750 2009-07-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4754 * pipeline-asf.cpp (MmsPlaylistEntry::AddEntry): add the entry
4755 to the playlist before initializing it, since initializing it may
4756 end up opening it right away and then it must be present in the
4759 2009-07-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4761 * pipeline-asf.cpp (ASFDemuxer::Open): unref the streams we've
4762 created when done with them.
4764 2009-07-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4766 * pipeline.cpp: printf -> LOG_PIPELINE.
4768 2009-07-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4770 * mp3.cpp (Mp3Demuxer::ReadHeader): unref the stream we've created
4771 when we're done with it.
4773 2009-07-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4775 * audio.cpp IMediaStream::PopFrame() gives us a reffed object,
4776 unref it when done with it.
4778 2009-07-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4780 * dependencyobject.h: Make EventObject::GetObjectType
4781 non-virtual. No need for a virtual method anymore, since we store
4782 the type on the object itself.
4784 2009-07-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4786 * application.cpp: unref the downloader when it has finished.
4788 2009-07-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4790 * utils.cpp|h: Cancellable: use strong typing to store the
4791 downloader and ref it. This way the cancel callback can use the
4794 2009-07-29 Alan McGovern <amcgovern@novell.com>
4799 * cbinding.cpp: 1) TextBox cannot hook into Key press events
4800 in unmanaged code otherwise they never propagate to managed
4801 and the user cannot intercept them. Instead of hooking to
4802 the event in native code, just call native
4803 TextBox::OnKeyDown in the managed override.
4804 2) Key press events are actually handled in two different
4805 places. 'Navigation' keypresses like Left/Right/PgUp are
4806 handled when the textbox OnKeyDown virtual method is
4807 invoked. 'Character' keypresses like 'a', 'b', 'c' are
4808 handled after the KeyDown event is emitted
4809 3) If a key press does not affect the textbox state (i.e.
4810 pressing 'left' when the caret is already at the very left),
4811 then the keypress is not handled.
4812 4) The KeyDown event is emitted even if OnKeyDown is overriden
4813 and the base method is not invoked.
4814 5) The tab key should be interpreted as 'Focus next control'
4815 only after the KeyDown event handlers have run and the key
4816 press is not handled.
4818 2009-07-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
4820 * pipeline.cpp: NullDecoder: add wmav3 to the list of codecs we
4821 know we can't decode. This means that if the user does not have
4822 MS codecs (or any other codecs) installed, he'll get the download
4823 codecs dialog for wmav3 media too.
4825 2009-07-28 Sebastien Pouliot <sebastien@ximian.com>
4827 * mediaelement.cpp: Add a check if the codecs have already been
4828 downloaded/installed without refreshing the browser. This will
4829 stop additional dialogs showing up and fix a crash (x86_64) if
4830 the codecs are downloaded/installed a second time in the same
4833 2009-07-27 Larry Ewing <lewing@novell.com>
4836 * src/frameworkelement.cpp:
4839 * src/textblock.cpp:
4840 * src/usercontrol.cpp: Move the alignment logic out of the
4841 controls and into the Arrange call now.
4843 Fixes DRT #335 improves several others.
4845 2009-07-28 Jackson Harper <jackson@ximian.com>
4847 * xaml.cpp: Handle UNMANAGEDMATRIX, it's just a matrix with
4849 - Don't create a Matrix for TRANSFORM properties if "Identity" was
4850 used as the string. (kinda seems like an SL bug to me).
4852 2009-07-28 Jeffrey Stedfast <fejj@novell.com>
4854 * multiscaleimage.cpp: Fixed a bunch of compiler warnings.
4856 * window-gtk.cpp (button_press): Revert change to drop
4857 2BUTTON_PRESS and 3BUTTON_PRESS events. TextBox needs these until
4858 we find a better way (also, 234 is still broken even with this
4859 change, which breaks 337 and possibly makes other
4860 TextBox/PasswordBox drts unfixable).
4862 2009-07-27 Larry Ewing <lewing@novell.com>
4864 * glyphs.cpp, glyphs.h: Start implmenting glyph layout. Fixes DRT #442.
4866 2009-07-27 Larry Ewing <lewing@novell.com>
4868 * frameworkelement.cpp: Always round down when doing layout
4871 * uielement.cpp (OnPropertyChanged): Invalidate layout on
4876 2009-07-27 Chris Toshok <toshok@ximian.com>
4878 * dependencyobject.cpp (EventObject::DoEmit): we emit the XAML
4879 handler *after* all registered handlers. part of the fix for drt
4882 * window-gtk.cpp (MoonWindowGtk::button_press): ignore
4883 double-click and triple click gdk events here. part of the fix
4886 2009-07-27 Jackson Harper <jackson@ximian.com>
4888 * xaml.cpp|h: Hydrate needs to accept Value* instead of a DOB. It
4889 is legal to hydrate a top level managed non DOB class.
4890 * cbinding.cpp|h: regen
4892 2009-07-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
4894 * mp3.cpp: When seeking and we don't have enough data to seek to
4895 the desired pts, try again a bit later. Fixes MS DRT #59.
4897 2009-07-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
4899 * src.mdp: Use Makefile integration.
4901 2009-07-27 Alan McGovern <amcgovern@novell.com>
4903 * uielement.cpp: Default styles are applied even if the user
4904 applies a style. Fixes some visual glitches in the controls
4907 2009-07-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
4909 * pipeline.cpp|h: Use Application::GetResource instead of creating
4910 downloaders to get data.
4912 2009-07-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
4914 * pipeline.cpp: ReportErrorOccurred: don't propagate more than one
4917 2009-07-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
4919 * application.cpp: GetResource: set the notify_size callback
4920 on the downloader too. Media must known the size whenever possible.
4922 2009-07-27 Larry Ewing <lewing@novell.com>
4924 * uielement.cpp (GetTransformToUIElementWithError): signal and
4925 error in the to_element doesn't have a Surface case.
4927 2009-07-26 Larry Ewing <lewing@novell.com>
4929 * rect.h: make PointInside inclusive on the top/left.
4931 2009-07-24 Larry Ewing <lewing@novell.com>
4933 * textblock.cpp: Rework the bounds computation to be the max of
4934 the actual and the framework element settings. Fixes DRT #245.
4936 2009-07-24 Larry Ewing <lewing@novell.com>
4938 * border.cpp: Apply the default constraints more carefully.
4940 * src/frameworkelement.cpp, src/frameworkelement.h: add
4941 ApplySizeContraints method, use it.
4945 * src/textblock.cpp:
4946 * src/usercontrol.cpp: use ApplySizeContraints method.
4948 2009-07-24 Larry Ewing <lewing@novell.com>
4950 Rename some of the layout information based on some
4953 2009-07-24 Jeffrey Stedfast <fejj@novell.com>
4955 * textbox.cpp (TextBoxBase::OnPropertyChanged): When our
4956 width/height properties change, pass those values along to our
4957 TextBoxView as well.
4959 2009-07-24 Jackson Harper <jackson@ximian.com>
4961 * xaml.cpp: Instead of cloning the element set it's namescope
4962 explicitly so it doesn't get registered in another namescope when
4963 it is used as a property of an element in another namescope.
4965 2009-07-23 Jeffrey Stedfast <fejj@novell.com>
4967 * downloader.cpp (same_domain): Fixed to be safe if/when a uri
4970 2009-07-23 Alan McGovern <amcgovern@novell.com>
4972 * animation.cpp: If the initial value is null, create a Value
4973 with the correct type with IsNull set to true.
4975 2009-07-23 Jackson Harper <jackson@ximian.com>
4977 * xaml.cpp: If we are getting a named item from the app resources
4978 we should clone it since it comes from a different namescope. This
4979 allows you to have named items in app.resources be referenced in
4980 control code as a static resource even if it has the same name as
4981 an object in the control code.
4983 2009-07-23 Jeffrey Stedfast <fejj@novell.com>
4985 * fonts.cpp (LoadPortableUserInterface): Even if we are a
4986 Silverlight 2.0 app, we still need to load Lucida Sans for the
4987 font face extents (Lucida extents seem to be very close to what
4988 Microsoft Silverlight is using).
4990 2009-07-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
4992 * runtime.cpp: HandleUIKeyRelease: add a null check before
4993 accessing toplevel. Apparently toplevel can be null when the
4994 site fails to load completely (mstv.cz / bug #506306).
4996 2009-07-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
4998 * media.h: MarkerReachedEventArgs: make Markers accessible to
5002 * cbinding.cpp: Regenerated.
5004 2009-07-22 Chris Toshok <toshok@ximian.com>
5006 * animation.h|cpp: add some more accessors for AnimationStorages
5007 so we can clone them.
5009 * dependencyproperty.h|cpp: remove all the AnimationStorage stuff
5010 from here, and put it in DependencyObject where (imo) it belonged
5013 * dependencyobject.h|cpp: move the AnimationStorage stuff here,
5014 and also add support for cloning the storage while we're cloning
5015 the object. This means that new animations started against
5016 existing objects (with animations) will inherit the right reset
5017 value. This fixes the button animation regression.
5019 2009-07-22 Jeffrey Stedfast <fejj@novell.com>
5021 * fonts.cpp (LoadPortableUserInterface): If the application is a
5022 Silverlight 2.0 app, default to Verdana instead of Lucida Sans
5025 * textbox.cpp (TextBoxBase::OnKeyDown): The clipboard Cut action
5026 is a no-op for ReadOnly TextBox controls.
5028 2009-07-22 Sebastien Pouliot <sebastien@ximian.com>
5030 * runtime.cpp: Call GetMaximumRefreshRate before unreferencing
5031 the current timemanager.
5033 2009-07-21 Jeffrey Stedfast <fejj@novell.com>
5035 * textbox.cpp (TextBoxBase::CursorPrevWord): Fixed the logic a
5037 (TextBoxBase::OnKeyDown): Implemented alternate keybindings for
5039 (TextBoxBase::OnKeyDown): If there is no selection and the user
5040 invokes the Cut or Copy commands, do not overwrite the clipboard
5041 buffer with an empty string.
5043 2009-07-21 Jackson Harper <jackson@ximian.com>
5045 * xaml.cpp: Raise errors from managed SetProperty.
5047 2009-07-21 Jackson Harper <jackson@ximian.com>
5049 * xaml.cpp: Don't raise errors if we are a managed element, let
5050 the managed SetProperty handle that stuff.
5052 2009-07-21 Alan McGovern <amcgovern@novell.com>
5055 * dependencyproperty.g.cpp: The issue with auto creating
5056 PathGeometry.Figures appears to be fixed so add
5057 AutoCreateValue to FiguresProperty and see how the bots
5060 2009-07-20 Chris Toshok <toshok@ximian.com>
5062 * application.h|cpp: add a ResourceBase parameter to all the
5063 GetResource calls and to the GetResourceCallback delegate type.
5065 * dependencyobject.h (DependencyObject::SetResourceBase,
5066 DependencyObject::GetResourceBase): new methods.
5068 * dependencyobject.cpp (DependencyObject::ProviderValueChanged):
5069 "inherit" resource base from our parent (this might be very, very
5071 (DependencyObject::Initialize): init resource_base to null.
5072 (DependencyObject::~DependencyObject): free resource_base.
5074 * bitmapimage.cpp (BitmapImage::UriSourceChanged): locate the
5075 resource using our resource base.
5077 * template.cpp (FrameworkTemplate::GetVisualTree): use the same
5078 resource base when expanding the template.
5080 * textblock.cpp (Inline::AddFontResource): locate the font using
5082 (TextBlock::AddFontResource): same.
5084 * textbox.cpp (TextBoxBase::AddFontResource): same.
5085 using our resource base.
5087 * glyphs.cpp (Glyphs::SetFontResource): same.
5089 * xaml.cpp (XamlParserInfo::AddCreatedElement): factor out all
5090 those SetSurface calls, and put it here. Also, set the resource
5091 base at the same time.
5092 (XamlLoader::Initialize): store off the resource_base.
5093 (XamlLoader::~XamlLoader): and free it.
5094 (xaml_loader_new): take a resourceBase, and pass it along.
5095 (XamlLoader::HydrateFromString): set the ResourceBase on the
5097 (create_element_info_from_imported_managed_type): remove the
5098 SetSurface call, just call XamlParserInfo::AddCreatedElement.
5099 (XamlElementInstanceNative::CreateItem): same.
5100 (XamlElementInfoManaged::CreateElementInstance): same.
5101 (XamlElementInfoManaged::CreateWrappedElementInstance): same.
5103 * xaml.h (class XamlLoader): add a common Initialize method, and a
5104 ctor overload that takes a "resource base", which is the uri which
5105 we're loading from. Also add a GetResourceBase() accessor.
5109 2009-07-20 Larry Ewing <lewing@novell.com>
5111 * uielement.cpp (ComputeTransform): add a hack for placing popup
5114 * popup.cpp: call updatetransform on our child whenever the offset
5115 values change. Fixes DRTs #325 #503
5117 2009-07-18 Jackson Harper <jackson@ximian.com>
5119 * xaml.h|cpp: New flag on the loader for determining whether or
5120 not to auto import the default SL namespace.
5121 - Throw the proper error if the default namespace isn't available.
5122 * template.cpp: Templates get the default namespace auto
5125 2009-07-17 Larry Ewing <lewing@novell.com>
5127 * runtime.cpp (Attach): copy the current framerate to the new
5130 2009-07-17 Jeffrey Stedfast <fejj@novell.com>
5132 * textbox.cpp (TextBoxBase::Commit): Respect MaxLength and
5134 (TextBoxBase::Paste): Consider the SelectionLength in our
5135 MaxLength overflow calculation.
5136 (TextBuffer::ctor): Instead of taking ownership of a string
5137 buffer, just copy it instead. This keeps memory management more
5139 (TextBoxUndoActionInsert::ctor): No longer takes ownership of the
5141 (TextBoxUndoActionReplace::ctor): Same, so copy it.
5142 (*Box::OnPropertyChanged): Fixed to g_free(text) after creating
5143 the undo action. I think some of these situations leaked before.
5145 2009-07-17 Stephane Delcroix <sdelcroix@novell.com>
5147 * bitmapimage.h: tag UriSourceProperty with AlwaysChange. fix #2014
5149 2009-07-17 Stephane Delcroix <sdelcroix@novell.com>
5151 * multiscaleimage.cpp: more protections against crash with 31 layers
5153 2009-07-17 Stephane Delcroix <sdelcroix@novell.com>
5155 * multiscaleimage.cpp: allow up to 31 layers.
5157 2009-07-17 Stephane Delcroix <sdelcroix@novell.com>
5159 * multiscaleimage.cpp: emit OpenImageSucceed for non DZ tile sources
5161 2009-07-17 Alan McGovern <amcgovern@novell.com>
5163 * runtime.cpp: Correctly set 'emittingMouseEvent' to
5164 true/false when we receive a mouse event. Fixes some mouse
5165 capture issues in drt 535
5167 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5169 * playlist.cpp|h: Make the *Async methods really async, and add corresponding
5172 * mediaplayer.cpp: Don't allow Play while we're seeking.
5174 * mediaelement.cpp: When calling any of the async methods on the playlist,
5175 set the expected state immediately, since CurrentState is not async. Also
5176 allow Play/Pause/Stop if we're already in the desired state, since there might
5177 be another state changed pending.
5179 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5181 * mediaplayer.cpp|h: Emit BufferUnderflowEvent when the buffer underflows.
5183 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5185 * pipeline.cpp|h: Notify the decoder when a seek has completed so
5186 that it can clean its state properly. FillBuffers: the final buffer size
5187 is equal to the smallest buffer size of all the streams, not the buffer
5188 size of the last stream.
5190 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5192 * mediaplayer.cpp: Video/AudioFinished: don't do anything if the video/audio
5193 has already finished.
5195 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5197 * playlist.cpp|h: Fix IsSingleFile implementation.
5199 * mediaelement.cpp|h: Don't emit MediaOpened after reloading a media after
5200 a Stop for non-playlist media.
5202 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5204 * mediaplayer.cpp|h: Add a StopAudio method which stops the audio, and use
5205 it whenever we stop the audio. AdvanceFrame: For media with a specified
5206 duration stop the audio when we've reached the desired duration.
5208 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5210 * mediaelement.cpp: OpenCompletedHander: Before emitting
5211 DownloadProgressChangedEvent get the highest DownloadProgress value
5212 from either our own dependency property or the media. For mms streams
5213 download progress needs to be 1.0 when emitting MediaOpenedEvent,
5214 the mms code sets media's DownloadProgress to 1.0 after parsing the
5215 asf header correctly, but since the media emits the DownloadProgressChanged
5216 event async, the dependency property in MediaElement hasn't been updated
5217 yet in OpenCompletedHandler.
5219 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5221 * pipeline.cpp: Allow buffering progress to go down, not only up.
5222 Also fix progress events to only emit if delta > 0.5% or if equal
5223 to lower/upper limits.
5225 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5227 * pipeline.cpp|h: When we get a decode frame request from another
5228 thread, store the request on the demuxer in a list, instead of on the
5229 media thread's stack. This ensures that decode frame requests are
5230 decoded in the same order they're requested.
5235 * type-generated.cpp: Regenerated.
5237 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5239 * playlist.cpp|h: Added and Emit EntryChangedEvent.
5241 * type-generated.cpp: Regenerated.
5243 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5245 * playlist.cpp: PlaylistList::Dispose: set current_node to null, since we'll delete
5248 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5250 * mediaelement.cpp: Only emit BufferingProgressChanged if it has gone up. The real
5251 buffer level will fluctuate as we play.
5253 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5255 * mediaelement.cpp|h: When we pause, store the current position, which we must return
5256 while paused. It may differ from the actual position when we pause, since the actual
5257 pause is done async.
5259 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5261 * mediaplayer.cpp|h:
5262 * mediaelement.cpp|h: Use a property value provider for
5263 Render/DroppedFramesPerSecond.
5265 2009-07-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5267 * mediaelement.cpp|h: Make ReportErrorOccurred thread-safe. Managed code might
5268 call us from a worker thread.
5270 2009-07-16 Jackson Harper <jackson@ximian.com>
5272 * xaml.cpp: When creating user controls make sure that we are
5273 hydrating if an x:Class type name is used.
5275 2009-07-16 Jeffrey Stedfast <fejj@novell.com>
5277 * textbox.cpp (TextBoxUndoActionInsert::.ctor): Now takes an
5278 'atomic' argument. If atomic is true, then the buffer is not
5279 growable. This is the behavior we want for TextBoxBase::Paste(),
5280 but not TextBoxBase::Commit() (which needs to allow growable
5281 insert actions so that Undo removes the string of text the user
5282 just typed as opposed to just the most recent character).
5283 (TextBoxBase::Paste): Pass 'true' as the 'atomic' argument to
5284 TextBoxUndoActionInsert::.ctor().
5286 2009-07-16 Alan McGovern <amcgovern@novell.com>
5291 * uielement.cpp: 1) If the Control is not attached to a
5292 subtree which has been loaded, don't propagate IsEnabled to
5294 2) Whenever a Control is loaded we traverse it's visual
5295 parents until we find another control and propagate the
5298 2009-07-16 Stephane Delcroix <sdelcroix@novell.com>
5300 * multiscaleimage.h: mark the ViewportOrigin and ViewportWidth
5301 properties as AlwaysChange. fix drt #291.
5303 2009-07-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
5305 * dependencyobject.cpp: Retrieve all instance variables we need
5306 into local variables before decreasing the refcount. If the
5307 refcount is > 0 after decreasing it, we can't access instance
5308 variables anymore, since another thread might have unreffed which
5309 would cause the object to be deleted already.
5311 2009-07-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
5313 * dependencyobject.cpp: #if DEBUG -> #if SANITY and fix a typo in
5316 2009-07-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
5318 * dependencyobject.cpp: Add sanity check for refcount < 0.
5320 2009-07-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
5322 * dependencyobject.cpp: Move sanity verification into #if SANITY.
5324 2009-07-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
5326 * dependencyobject.h: Is, GetType, GetTypeName: use the Type
5327 overloads which takes a Deployment and provide our deployment
5330 2009-07-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
5332 * type.cpp|h.in: Add Find, IsAssignable and IsSubclassOf methods
5333 which takes a Deployment argument for when we already have the
5334 Deployment handy. This way we can avoid hitting
5335 Deployment::GetCurrent on some frequently used methods.
5337 * type.h: Regenerated.
5339 2009-07-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
5341 * runtime.h: Add stack trace to warning.
5343 2009-07-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
5345 * audio.cpp: Underflowed: if we haven't ended and don't have any
5346 more frames, we need to set the Waiting bit so that we start
5347 playing again when we get more frames.
5349 2009-07-16 Stephane Delcroix <sdelcroix@novell.com>
5351 * multiscaleimage.cpp: reset the bitmapimage uri for the next time,
5352 avoid issues while reusing dlders for the same images, like in drt2013
5354 2009-07-16 Stephane Delcroix <sdelcroix@novell.com>
5356 * tilesource.h|cpp, multiscleimage.h|cpp: invalidate the full msi cache
5357 on tilesource InvalidateTileLayer ().
5359 2009-07-16 Jackson Harper <jackson@ximian.com>
5361 * xaml.cpp: Remove some dead code.
5363 2009-07-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
5365 * deployment.h: DeploymentStack: Added to ease push/pop current
5366 deployment when calling into a browser.
5368 2009-07-15 Chris Toshok <toshok@ximian.com>
5370 * clock.h|cpp (Clock::CalculateFillTime): split this out from
5371 Clock::Begin since we can seek on a clock that hasn't actually hit
5373 (Clock::Begin): call CalculateFillTime.
5374 (Clock::UpdateFromParentTime): change our calculations slightly
5375 for what localTime is in the face of a seek, and update
5376 progress/localtime even when stopped. Also, call
5377 CalculateFillTime if we're seeking on a clock that hasn't started,
5378 to make sure we get the proper progress.
5379 (Clock::Seek): don't apply the SpeedRatio here, we do it in
5380 UpdateFromParentTime.
5382 * animation.h|cpp (AnimationStorage::GetStopValue): remove, it's
5384 (AnimationStorage::UpdatePropertyValue): pass the stopValue or
5385 baseValue as the defaultDestinationValue to
5386 AnimationClock::GetCurrentValue.
5387 (AnimationStorage::ResetPropertyValue): use ?: instead of if+else.
5388 (DoubleAnimation::GetCurrentValue): if there's a correctly typed
5389 defaultDestinationValue, use that before the base case of end =
5391 (ColorAnimation::GetCurrentValue): same.
5392 (PointAnimation::GetCurrentValue): same.
5394 2009-07-15 Jackson Harper <jackson@ximian.com>
5396 * xaml.cpp|h: Consolidate some of the data passed to
5397 every callback and not used much into a struct.
5399 2009-07-15 Jeffrey Stedfast <fejj@novell.com>
5401 * fontmanager.cpp (IndexFontSubdirectory): font_stream_new() can
5402 return NULL, so properly handle this error condition.
5403 (IndexFontFile): Same.
5404 (FontManager::OpenFontFace): Here too.
5405 (OpenSystemFont): Don't destroy the FcPattern until after opening
5406 the font (otherwise the filename will be free'd memory).
5408 * textbox.cpp (TextBoxView::Paint): Use the CaretBrush property to
5409 get the brush used for rendering the blinking caret. This is a 3.0
5412 2009-07-15 Alan McGovern <amcgovern@novell.com>
5415 * control.cpp: Remove the Control::SetVisualParent override
5416 which ensures Control::IsEnabled is propagated correctly as
5417 this needs to be performed in UIElement::SetVisualParent.
5418 Set the subtreeobject before calling
5419 FrameworkElement::ElementAdded otherwise Control::IsEnabled
5420 cannot be propagated.
5423 * uielement.cpp: Whenever the visual parent is changed on a
5424 UIElement we need to propagate Control::IsEnabled changes
5425 down the tree. Allows drt 557 to get a lot further.
5427 2009-07-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
5429 * mediaelement.cpp: SetProperties: set last seeked-to pts to 0.
5431 2009-07-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
5433 * pipeline.cpp: When seeking, reset buffering progress to 0.
5435 2009-07-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
5437 * mediaelement.cpp: SetDemuxerSource: no downloading goes on here
5438 (that we know of), so initialize DownloadProgress to 1.0.
5440 2009-07-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
5442 * mediaelement.cpp: Don't emit CurrentStateChanged after calling
5443 SetState, since SetState will also emit the event.
5445 2009-07-15 Alan McGovern <amcgovern@novell.com>
5447 * tabnavigationwalker.cpp: If a child node is disabled, there
5448 is no point in walking its children or attempting to tab to
5451 2009-07-15 Jackson Harper <jackson@ximian.com>
5453 * xaml.cpp: We don't want to auto import the SL namespaces when
5456 2009-07-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
5458 * pipeline.cpp|h: AudioStream: add a keyframe flag to the ctor.
5460 * cbinding.cpp|h: Regenerated.
5462 2009-07-15 Stephane Delcroix <sdelcroix@novell.com>
5464 * bitmapimage.h|cpp: drop the downloader references, rely on
5465 Application::GetResource () for getting from resource AND downloading. The
5466 old downloader mechanism for v1 js callbacks.
5468 2009-07-14 Stephane Delcroix <sdelcroix@novell.com>
5470 * application.h|cpp: Application.GetResource () now try to get the resource
5471 from the managed callback, then fallback to downloading.
5473 2009-07-14 Stephane Delcroix <sdelcroix@novell.com>
5475 * utils.h|cpp: Cancellable class, passed as method argument, allows
5476 to abort an async action.
5478 2009-07-15 Stephane Delcroix <sdelcroix@novell.com>
5480 * tilesource.h|cpp: add an invalidate_tile_layer_func so MSI can
5481 hook itself in and invalidate the cache
5483 2009-07-15 Stephane Delcroix <sdelcroix@novell.com>
5485 * tilesource.h|cpp: stub InvalidateTileLayer
5487 2009-07-15 Alan McGovern <amcgovern@novell.com>
5489 * control.cpp: Ensure that the control loses focus when it is
5490 disabled even if there are no other focusable controls. Also
5491 ensure the surface is not null before using it, fixes a
5494 2009-07-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
5496 * error.h: ErrorEventArg: Add accessors that can be pinvoked.
5498 * cbinding.cpp|h: Regenerated.
5500 2009-07-15 Alan McGovern <amcgovern@novell.com>
5502 * control.cpp: When the focused control is disabled, tab to
5503 the next suitable control.
5505 2009-07-15 Alan McGovern <amcgovern@novell.com>
5508 * runtime.cpp: Implement the default autofocusing behaviour
5509 which silverlight exhibits. Apparently if the root control
5510 is focused, silverlight will keep attempting to focus a
5511 child of that control until it succeeds. Once a child
5512 control is focused, the focus changed events are emitted
5513 immediately, ignoring the usual focusing rules. Fixes DRT
5516 2009-07-15 Alan McGovern <amcgovern@novell.com>
5518 * uielement.cpp: When clearing the Loaded flag on a UIElement,
5519 we should clear the flag on all visual children too.
5521 2009-07-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
5523 * audio.cpp: Ref when we're supposed to ref. Fixes a crash.
5525 2009-07-14 Larry Ewing <lewing@novell.com>
5527 * panel.cpp (OnPropertyChanged): make sure we invalidate the panel
5528 bounds when the bg changes. Fixes 641
5530 2009-07-14 Larry Ewing <lewing@novell.com>
5532 * border.cpp (OnSubPropertyChanged): elements must listen to
5533 subproperty changes for brushes. Fixes 2020
5535 2009-07-14 Alan McGovern <amcgovern@novell.com>
5537 * tabnavigationwalker.cpp: If TabNavagationWalker::Focus () is
5538 called on a Control with the 'Cycle' navigation mode and
5539 none of the children of that node can be tabbed to, then
5540 focus remains on that control.
5542 2009-07-13 Jeffrey Stedfast <fejj@novell.com>
5544 * fonts.cpp (TextFont::Load): Don't g_strfreev() the families
5545 string array until after we've finished using the hash
5546 table. Prevents FMRs.
5548 2009-07-13 Jackson Harper <jackson@ximian.com>
5550 * xaml.cpp: Don't allow setting x:Name and Name on the same
5552 - Raise an error if we try to set a property to an incompatible
5555 2009-07-13 Alan McGovern <amcgovern@novell.com>
5558 * uielement.cpp: If the focused element is removed from the
5559 visual tree, it should lose focus.
5561 2009-07-13 Jackson Harper <jackson@ximian.com>
5563 * xaml.cpp: Oops, trying to get the element name from the wrong
5566 2009-07-13 Jackson Harper <jackson@ximian.com>
5568 * xaml.cpp: Handle MoonErrors for AddChild.
5570 2009-07-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
5577 * mms-downloader.cpp: IMediaObject: make the media field
5578 private, and add thread-safe property accessors (using a
5579 mutex and always returning a reffed object). Update all code
5580 which accessed the old accessor to use the new accessor and
5581 unref the media when done.
5583 2009-07-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
5585 * pipeline.cpp|h: Deleted MemoryNestedSource, not used anymore.
5589 * type-generated.cpp: Regenerated.
5591 2009-07-13 Alan McGovern <amcgovern@novell.com>
5593 * control.cpp: A control does not have to be loaded to be
5594 focusable, the visual tree it's attached to has to be
5597 2009-07-13 Alan McGovern <amcgovern@novell.com>
5601 * tabnavigationwalker.h: TabNavigation should activate if the
5602 control does not handle the Tab key
5604 2009-07-13 Alan McGovern <amcgovern@novell.com>
5611 * tabnavigationwalker.h:
5612 * tabnavigationwalker.cpp: Commit the initial implementation
5613 of the TabNavigationWalker. Supports the three tabbing modes
5614 and also forward/backward tabbing. Passes drt 323 except for
5615 a default focusing issue.
5617 2009-07-13 Alan McGovern <amcgovern@novell.com>
5619 * keyboard.cpp: Handle shift + tab (GDK_ISO_Left_Tab) as a
5622 2009-07-13 Jérémie Laval <jeremie.laval@gmail.com>
5624 * src/dependencyproperty.cpp: Added const modifier to local variables.
5625 Fix the build with recent gcc.
5627 2009-07-10 Chris Toshok <toshok@ximian.com>
5629 * value.h.in|cpp (Value::Clone): new method, clone the DO if the
5630 value contains one, and otherwise just copy the contents.
5632 * namescope.cpp (NameScope::CloneCore): clone the mapping (hm,
5633 this is probably wrong, as the mapping needs to reference cloned
5634 objects, not the same objects that existed in the original
5637 * collection.h|cpp (Collection::CloneCore): clone the collection
5640 * dependencyproperty.h|cpp (resolve_property_path): add a
5641 promoted_values hashtable argument. if the value has already been
5642 promoted, don't do it again. promote the first value we can while
5643 resolving the property path. Don't promote UIElement subclasses
5646 * dependencyobject.h|cpp: add api for cloning (deep copying) for
5647 DependencyObjects. DependencyObject::Clone is the public
5648 interface, with subclasses overriding ::CloneCore if they need to.
5650 * color.cpp (color_to_string): multiply by 255, not 256.
5652 * animation.h|cpp (Storyboard::HookupAnimationsRecurse): this
5653 takes a hashtable now so we don't promote values more than
5654 once (doing so causes previous animations to target objects that
5655 are no longer attached anywhere).
5657 * cbinding.h, cbinding.cpp, value.h, type-generated.cpp: regen.
5659 2009-07-10 Larry Ewing <lewing@novell.com>
5661 * shape.cpp (MeasureOverride): start working towards fixing
5662 LayoutShapes with some tweaking here.
5663 (Clip): apply the framework clip to elements in the flow too.
5665 2009-07-10 Jeffrey Stedfast <fejj@novell.com>
5667 * textbox.cpp (TextBoxBase::CursorNextWord): Emulate Windows
5669 (TextBoxBase::CursorPrevWord): Same.
5670 (TextBoxBase::KeyPressRight): If there is currently a selection
5671 and the user presses ArrowRight by itself, set the anchor and
5672 cursor at the end of the selection.
5673 (TextBoxBase::KeyPressLeft): Same idea, but set them at the start
5676 2009-07-10 Jeffrey Stedfast <fejj@novell.com>
5678 * textbox.cpp: Always set SelectionStart before
5679 SelectionLength. Fixes a bug when selecting backwards from the end
5682 2009-07-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
5684 * mediaelement.cpp|h: Store the last seeked-to position so that we never
5685 return a value before that as the current Position. MS DRT #486 uses
5686 a MediaStreamSource which returns frames before the seeked to position
5687 after seeking, and the test checks that MediaElement's Position property
5688 never returns a value before the seeked to position.
5690 2009-07-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
5692 * audio.cpp: When we stop, we need to discard any audio data we might
5695 2009-07-10 Sebastien Pouliot <sebastien at ximian.com>
5697 * runtime.cpp|h, type-generated.cpp: Rename
5698 SourceDownloadCompletedEvent to SourceDownloadCompleteEvent
5700 2009-07-09 Jeffrey Stedfast <fejj@novell.com>
5704 * uri.cpp: Don't use a GData for params, instead use a custom
5705 linked-list. This makes it easier to compare param lists.
5706 (operator==): Compare params.
5708 * textbox.cpp (TextBoxBase::OnFocusOut): When we focus out, clear
5711 2009-07-09 Jackson Harper <jackson@ximian.com>
5713 * dependencyobject.cpp|h: Add a little more logic for setting
5714 things to NULL and consolidate in it's own function (STRING can
5715 now be set to NULL).
5717 2009-07-09 Sebastien Pouliot <sebastien at ximian.com>
5719 * downloader.cpp|h: Don't check redirection AFTER downloading the
5720 data. Expose CheckRedirectionPolicy so the plugin can check for
5721 the redirection policy when creating a new stream.
5722 * uri.cpp|h: Add IsAbsolute method and make the return value of
5725 2009-07-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
5727 * playlist.cpp: StopAsync: (PlaylistEntry): don't stop the MediaPlayer,
5728 the root takes care of that. (Playlist): loop over all children and
5729 call StopAsync on them, this way all nested playlists are reset properly
5730 (PlaylistRoot): when done stopping, reopen us.
5732 2009-07-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
5734 * playlist.cpp: Skip UTF8 boms when checking if a file is a playlist.
5736 2009-07-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
5738 * mediaelement.cpp: If we don't AutoPlay, we end up Paused, not Stopped.
5740 2009-07-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
5742 * mediaelement.cpp: Don't go directly into a Buffering state, when
5743 MediaOpened is emitted we must be either in Paused or Playing state.
5745 2009-07-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
5747 * mediaelement.cpp: Seek: if CanSeek is false, don't seek.
5749 2009-07-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
5751 * mediaelement.cpp|h: Emit CurrentState events asynchronously.
5753 2009-07-08 Larry Ewing <lewing@novell.com>
5755 * frameworkelement.cpp (Arrange): apply min/max values to the
5758 2009-07-08 Jeffrey Stedfast <fejj@novell.com>
5760 * fontmanager.cpp (FontManager::OpenSystemFont): Make 2 attempts
5761 at opening the requested system font. First, try using the font
5762 name exactly as the user gave it to us. If that fails, fallback to
5763 canonicalizing it and the style values.
5764 (style_diff): Modify the algorithm used to compare the style
5765 difference between 2 fonts.
5767 2009-07-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
5770 * mediaelement.h: Add validators for Balance and Volume.
5771 This fixes MS DRT #960.
5773 * value.cpp|in: Add support for changing a value.
5776 * dependencyproperty.g.cpp: Regenerated.
5778 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5780 * playlist.h|cpp: Add support for PARAMS elements in ASX files. Fix
5781 some casing changes with media attributes. PlayNext: fix logic, after
5782 finishing a nested playlist we must play the next entry in our playlist,
5783 not finish right away. If the pipeline raises a MediaError event due to
5784 missing a codec (which is most likely due to an unsupported media file),
5785 don't propagate the error, just play the next entry. Fix a lot of error
5786 code/message changes from 1.0 to 2.0. MS DRT #78 now passes, as well
5787 as 99.6% of our playlist tests.
5789 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5792 * playlist.h|cpp: Unify playlist detection into one place and add
5793 support for skipping initial whitespace in the file.
5795 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5797 * playlist.cpp|h: String setters: be consistent: take a const string
5798 and dup inside the setter if required, instead of always when calling
5799 the setter, which may leak.
5801 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5803 * playlist.cpp: OnASXStartElement: null initialize to avoid reading
5806 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5808 * playlist.cpp: Cleanup: cleanup properly since we may continue to live
5809 after this method has been called.
5811 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5813 * playlist.cpp: PlaylistEntry: needs to ref/unref the source.
5815 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5818 * playlist.cpp|h: Store any ErrorEventArgs in the PlaylistParser, and if
5819 the parsing fails, propagate the args up in the pipeline.
5821 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5823 * mediaelement.cpp: We need to populate media attributes before raising
5826 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5828 * mediaelement.cpp: When emitting MediaOpened, ensure that DownloadProgress
5829 has changed at least a tiny bit.
5831 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5833 * mediaelement.cpp: MediaOpened event comes with an empty RoutedEventArgs.
5835 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5837 * mediaelement.cpp: Properly set CanPause and CanSeek, and always use
5838 mediaplayer's duration as NaturalDuration.
5840 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5842 * mediaplayer.cpp: All starting points seem to be allowed now, so don't
5843 throw an error event for starting point > duration anymore. Also duration
5844 is always the entire length of the media, regardless of when we start and
5845 how long we're supposed to play.
5847 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5849 * error.cpp|h: Add custom information to ErrorEventArgs, to provide
5850 better Moonlight debugging and in some cases we need more information
5851 than what MS reports.
5853 2009-07-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
5855 * media.cpp: MediaAttributes are case-insensitive.
5857 2009-07-07 Jeffrey Stedfast <fejj@novell.com>
5859 * fontmanager.cpp (canon_font_family_and_style): New convenience
5860 function to canonicalize font family & style info, split out of
5862 (IndexMatchFace): Use the new function.
5864 2009-07-07 Jackson Harper <jackson@ximian.com>
5866 * style.h: Need an internal setter for IsSealed so we can do the
5867 parser seal/unseal hack.
5869 2009-07-07 Sebastien Pouliot <sebastien@ximian.com>
5871 * downloader.cpp|h: Add a new FontPolicy since it differs from
5872 XamlPolicy (which is otherwise *unused*) and fix policies wrt
5873 http://msdn.microsoft.com/en-us/library/cc189008(VS.95).aspx
5874 * glyphs.cpp, textblock.cpp, textbox.cpp: Use the new FontPolicy
5877 2009-07-07 Alan McGovern <amcgovern@novell.com>
5879 * namescope.cpp: Once a namescope is locked, don't allow names
5880 to be registered or unregistered. Fixes the case where the
5881 name is changed on a template item.
5883 2009-07-07 Alan McGovern <amcgovern@novell.com>
5887 * template.cpp: When expanding a template, mark all the
5888 children as TemplateItems so they will be able to look up
5889 the correct namescope.
5893 * dependencyproperty.g.cpp: Add an "IsTemplateItem" attached
5896 * dependencyobject.h:
5897 * dependencyobject.cpp: Add extra overloads to FindName and
5898 FindNameScope so that we can tell whether we are looking up
5899 a template name or regular name.
5902 * namescope.cpp: Add the ability to lock a namescope so it
5903 can be recognised as a template namescope.
5905 2009-07-07 Jackson Harper <jackson@ximian.com>
5907 * xaml.cpp: Lookup properties on the owner type so attached
5908 properties get looked up properly when setting them via text ie
5909 <Canvas.Left>5</Canvas.Left>
5911 2009-07-06 Jackson Harper <jackson@ximian.com>
5913 * xaml.cpp: Ignored elements should buffer their contents
5914 - Add in Ignored attributes
5916 2009-07-06 Jackson Harper <jackson@ximian.com>
5918 * xaml.cpp: Implement ignorable namespaces.
5920 2009-07-06 Larry Ewing <lewing@novell.com>
5922 * multiscaleimage.cpp (ZoomAboutLogicalPoint): make this compile.
5924 2009-07-06 Stephane Delcroix <sdelcroix@novell.com>
5926 * multiscaleimage.cpp, multiscaleimage.h: keep the zoom and pan targets
5927 so ZoomAbout *= the target's value for zoom, not the current one.
5929 2009-07-06 Jeffrey Stedfast <fejj@novell.com>
5933 * fonts.cpp (LoadPortableUserInterface): Return the index of the
5935 (TextFont::Load): If PUI is our first family, keep track of which
5936 face the Lucida face is and use that as our master. Otherwise use
5938 (TextFont::UpdateFaceExtents): Use the 'master' face to get the
5939 extents from, rather than the first face.
5941 2009-07-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
5943 * playlist.cpp: PlayNext: play even if previous entry didn't fail.
5944 Fixes our test #136.
5946 2009-07-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
5948 * playlist.cpp|h: Remove wsx/smil parsing, it's a server side
5949 playlist format so we'll never get it, it'll be parsed on the
5952 2009-07-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
5954 * mediaelement.cpp: Fix warning.
5956 2009-07-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
5960 2009-07-03 Larry Ewing <lewing@novell.com>
5962 * textblock.cpp (ArrangeOverride): try to get textblock height
5963 stretching closer. See 295 and 2020 for examples.
5965 2009-07-03 Alan McGovern <amcgovern@novell.com>
5967 * runtime.cpp: We don't need to change these actually.
5969 2009-07-03 Alan McGovern <amcgovern@novell.com>
5971 * runtime.cpp: When inside the if statement, we know that
5972 toplevel and element are the same, so use 'element' instead
5973 of 'toplevel' in case the toplevel is removed during the
5974 loaded/resized event. Fixes memorabilia.
5976 2009-07-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
5978 * mms-downloader.cpp: ProcessResponseHeaderCallback:
5979 set current deployment.
5981 2009-07-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
5983 * pipeline-asf.cpp|h:
5984 * mms-downloader.cpp|h: If downloading the mms url
5985 doesn't succeed, raise an error. Fixes MS DRT #222
5988 2009-07-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
5991 * mediaelement.cpp: When playing an mms stream, SL sets
5992 DownloadProgress to 1.0 after downloading the header.
5993 Makes MS DRT #222 reach a bit further.
5995 2009-07-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
5997 * pipeline.cpp: Fix printf.
5999 2009-07-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
6001 * mediaelement.cpp: Handle DownloadProgressChanged events
6004 2009-07-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
6006 * downloader.cpp|h: Add another downloader API
6007 method, this time to get the DownloaderResponse.
6009 * cbinding.cpp|h: Regenerated.
6011 2009-07-02 Stephane Delcroix <sdelcroix@novell.com>
6013 * multiscaleimage.h: instruct the generator to do more for us.
6015 2009-07-02 Chris Toshok <toshok@ximian.com>
6017 * propertypath.h: fix operator== and add operator!=.
6019 * validators.h|cpp: add StoryboardTargetPropertyValidator.
6021 * dependencyproperty.g.cpp: regen.
6023 * animation.h (class Storyboard): use a special validator for
6024 TargetPropertyProperty such that it follows the semantics laid out
6025 in StoryboardTest.SetTargetPropertyTwice*.
6027 2009-07-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
6029 * mediaelement.cpp: Protect against emitting BufferingProgressChanged
6030 when the actual value hasn't changed.
6032 * pipeline.cpp: FillBuffers: don't report any buffering progress
6033 if we don't have any media streams.
6035 2009-07-02 Jeffrey Stedfast <fejj@novell.com>
6037 * fonts.cpp (LoadPortableUserInterface): Now takes a 'lang'
6038 argument which is used for loading the preferred default font (by
6039 language) first, before the other fallback fonts.
6040 (TextFont::Load): Pass in the 'lang' argument.
6041 (TextFontDescription): Added methods to get/set a Language
6044 * textblock.cpp (Inline::UpdateFontDescription): Set the language
6045 on the TextFontDescription.
6046 (TextBlock::OnPropertyChanged): If the
6047 FrameworkElement::LanguageProperty changes, reload the fonts and
6050 2009-07-02 Jackson Harper <jackson@ximian.com>
6052 * xaml.cpp: Fix error code so it gets propogated up when
6053 validating templates.
6055 2009-07-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
6057 * runtime.cpp: Fix printf.
6059 2009-07-02 Stephane Delcroix <sdelcroix@novell.com>
6061 * multiscaleimage.h|cpp: handle the various motion finished separately
6062 and only emit th eMotionFinished event if all the 3 (zoom, pan, fade)
6063 animations are completed.
6065 2009-07-02 Stephane Delcroix <sdelcroix@novell.com>
6067 * multiscaleimage.h|cpp: use 2 internals dp for animating pan & zoom.
6068 use a custom property provider so getting vp origin or width returns
6069 the current value, while setting them sets the animation's targets.
6071 2009-07-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
6073 * pipeline.cpp: FillBuffers: Only take into
6074 account media streams when trying to determine
6075 if all streams have reached its end. Fixes our test
6078 2009-07-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
6080 * mediaelement.cpp: Reinvalidate everything when
6081 clearing a source. Fixes MS DRT #45 (after setting
6082 the source to an empty string, the media element
6083 shouldn't render anything anymore).
6085 2009-07-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
6087 * pipeline.cpp: FillBuffers: Take into account that
6088 decoders may call SetOutputEnded once SetInputEnded
6089 is called, and update the number of ended streams
6090 immediately. Fixes our test #111.
6092 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6095 * playlist.cpp: Make debug output more descriptive.
6097 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6099 * pipeline-asf.cpp|h: Reimplement support for mms seeking.
6101 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6103 * mp3.cpp: GetFrameAsyncInternal: if we don't have enough data,
6106 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6108 * mp3.cpp: Fix parsing of xing vbr headers causing wrong
6109 duration to get calculated of the file.
6111 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6113 * mp3.cpp: FindMpegHeader: fix return value: the offset of
6114 the header goes into the result output variable and we return
6115 success instead of returning a bogus error value.
6117 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6119 * pipeline.cpp: If we couldn't select a demuxer because of
6120 not having enough data yet, try again later.
6122 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6124 * mediaelement.cpp: If Source (or UriSource) is either null
6125 or an empty string, we're only supposed to clean up, not
6126 trying to play the null/empty string.
6128 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6130 * pipeline.cpp: Use ProgressEventArgs to pass buffering progress
6131 to MediaElement. Clamp BufferingProgress to 0.0 <=> 1.0, and if
6132 all streams have finished their output, set buffering progress
6135 * playlist.cpp: Properly forward progress event args.
6137 * mediaelement.cpp: Set buffering progress when it changes,
6138 and raise BufferingProgressChanged. Don't try to autoplay
6139 when buffering progress is < 1.0, wait until it reaches 1.0.
6141 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6143 * audio-pulse.cpp: Fix warning.
6145 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6147 * audio-alsa.cpp: WriteMmap: If we try to write with an audio
6148 source which has ended, call Underflowed, since that's what's
6151 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6153 * audio-alsa.cpp: If hw setup failed, dump current hw parameters
6154 to stdout (if debug mode is enabled).
6156 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6158 * mms-downloader.cpp: Do better initialization and cleanup of
6159 downloader and state variables to prevent issues when seeking.
6161 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6163 * mms-downloader.cpp: Write: Don't use math when not necessary to
6164 avoid overflows, and if we end up freeing the buffer set the size
6167 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6169 * mms-downloader.cpp: Use thread-safe tick call from media thread.
6171 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6173 * mms-downloader.cpp: Don't leak the uri.
6175 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6177 * downloader.h: Make OpenInitialize public so that the
6178 MmsDownloader can reinitialize it when sending new requests.
6180 2009-06-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
6182 * audio.cpp: Play 24 bit audio unconditionally.
6184 2009-07-01 Chris Toshok <toshok@ximian.com>
6186 * Makefile.am (INCLUDES): turns out we need to include ../plugin
6187 here to deal with type-generated/type.h/etc.
6189 * type.h.in: fix annoying indent problem.
6191 * cbinding.h, dependencyproperty.g.cpp, type-generated.cpp,
6192 value.h, type.h: regen
6194 2009-07-01 Larry Ewing <lewing@novell.com>
6196 * textblock.cpp (ArrangeOverride): take alignment into account
6197 when computing our size.
6199 2009-07-01 Jeffrey Stedfast <fejj@novell.com>
6201 * textblock.cpp (ArrangeOverride): Set the available width on the
6202 layout so that it can properly align the text for center/right
6205 2009-07-01 Jackson Harper <jackson@ximian.com>
6207 * xaml.cpp: Need to set the binding source when we are validating
6210 2009-07-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
6212 * mediaelement.cpp: SetMarkerTimeout: when unreffing self
6213 use a delayed timeout, since we can be the last ref, this
6214 ensures the stack is unwound first.
6216 2009-06-30 Larry Ewing <lewing@novell.com>
6218 * border.cpp (Render): get CornerRound rendering closer to the sl
6221 2009-06-30 Chris Toshok <toshok@ximian.com>
6223 * clock.h|cpp: Seeking doesn't start the clock. And we have to
6224 support UpdateFromParentTime even while paused, since we can seek
6225 while paused. Fixes 392 (along with actually fixing the test..)
6227 2009-06-30 Chris Toshok <toshok@ximian.com>
6229 * clock.h|cpp: fix Seek and SeekAlignedToLastTick. fixed DRT
6232 2009-06-30 Jeffrey Stedfast <fejj@novell.com>
6234 * fontmanager.cpp (style_diff): Improved a bit so that we never
6235 return G_MAXINT if any font by the same name is found, no matter
6236 what style differences there are.
6238 2009-06-30 Jackson Harper <jackson@ximian.com>
6240 * deepzoomimagetilesource.cpp: Parsers need to be freed.
6242 2009-06-30 Alan McGovern <amcgovern@novell.com>
6244 * popup.cpp: According to the docs, a popup which is GC'ed
6245 should be closed. Ensure that this happens.
6247 2009-06-30 Alan McGovern <amcgovern@novell.com>
6249 * popup.cpp: If the child is set after the popup is opened,
6250 make sure it is shown. Ensure that we now only emit the
6251 Opened/Closed events when the popup IsOpen state changes.
6252 Allows 503 to progress further.
6254 2009-06-30 Jackson Harper <jackson@ximian.com>
6256 * xaml.cpp|h: Add a flag for template validation
6257 - Implement template validation and propogate errors up
6258 * cbinding.cpp: regen
6260 2009-06-30 Stephane Delcroix <sdelcroix@novell.com>
6262 * multiscaleimage.cpp: drop a debug block that was misinterpreted by
6263 the preprocessor. fir x drt 265.
6265 2009-06-30 Stephane Delcroix <sdelcroix@novell.com>
6267 * multiscaleimage.cpp: download the first num_dl (6) levels while the
6270 2009-06-29 Alan McGovern <amcgovern@novell.com>
6272 * control.cpp: Unregress drt 911, EnabledChanged events fire
6273 at the correct time again.
6275 2009-06-29 Jeffrey Stedfast <fejj@novell.com>
6277 * fontmanager.cpp (LoadGlyph): Save some memory by dropping some
6278 of the GlyphMetrics fields.
6280 * layout.cpp: Updated to keep track of the previous GlyphInfo
6281 rather than the previous GlyphInfo's index.
6283 * fonts.cpp (TextFont::GetGlyphInfo): Set the GlyphInfo face.
6284 (TextFont::Kerning): Modified to take GlyphInfo arguments rather
6285 than face indexes since they are worthless w/o knowing which font
6286 face the indexes of each are for.
6288 2009-06-29 Alan McGovern <amcgovern@novell.com>
6290 * control.cpp: Propagate the IsEnabled changes down the visual
6291 tree in OnPropertyChanged, not in SetValue.
6293 2009-06-29 Jackson Harper <jackson@ximian.com>
6295 * xaml.cpp: Store enums as INTs.
6297 2009-06-28 Chris Toshok <toshok@ximian.com>
6299 * clock.h|cpp (Clock::RaiseAccumulatedEvents): switch (state ==
6300 Clock::Active) to (state != Clock::Stopped) to tell whether or not
6301 we've started (since we can start directly in the filling state.)
6303 Also remove all the idle_hint stuff, since it's no longer used.
6305 * timemanager.cpp (RootClockGroup::UpdateFromParentTime): not sure
6306 why this method is needed at all, but at the very lease we need to
6307 stop calling ClockGroup::UpdateFromParentTime, since this method
6308 very nearly duplicates that one (and we're therefore looping over
6309 the child clocks twice).
6311 2009-06-28 Chris Toshok <toshok@ximian.com>
6313 * color.cpp (named_colors): update these so that text-colors.xaml
6316 2009-06-28 Larry Ewing <lewing@novell.com>
6318 * xaml.cpp (value_from_str_with_parser): allow NAN to be NAN too.
6320 2009-06-27 Jeffrey Stedfast <fejj@novell.com>
6322 * glyphs.cpp (OnPropertyChanged): When the FontUriProperty
6323 changes, the layout *always* gets dirty. We also always need to
6326 * fonts.cpp (TextFont::UpdateFaceExtents): New helper method to
6327 calculate/update the font extents. Only use the extents of the
6328 first face - this fixes a bunch of MS DRTs.
6329 (TextFont::.ctor): Call UpdateFaceExtents().
6330 (TextFont::SetSize): Need to call UpdateFaceExtents() here. Fixes
6331 a number of regressions (like MS DRT #43).
6333 2009-06-27 Chris Toshok <toshok@ximian.com>
6335 * grid.cpp (Grid::OnCollectionItemChanged): don't
6336 InvalidateMeasure() when the grid's actualwidth or row's
6337 actualheight is set. this gets us into an infinite loop.
6339 2009-06-26 Chris Toshok <toshok@ximian.com>
6341 * enums.cpp (grid_unit_type_map): add a mapping for GridUnitType.
6342 (initialize_enums): and add it to the hashtable.
6344 * grid.h|cpp: make ColumnDefinition.ActualWidth and
6345 RowDefinition.ActualHeight dependencyproperties to make the plugin
6346 binding easier. get rid of each class's "actual" field.
6348 2009-06-25 Chris Toshok <toshok@ximian.com>
6350 * xaml.h|cpp (xaml_is_valid_event_name): pass in the type of the
6351 object we're looking the event up on, and a flag as to whether or
6352 not to allow desktop-specific events. and just look up the event
6353 from the type system instead of having the hardcoded list.
6355 2009-06-25 Chris Toshok <toshok@ximian.com>
6357 * xaml.h|cpp (xaml_is_valid_event_name): pass in the type of the
6358 object we're looking the event up on, and a flag as to whether or
6359 not to allow desktop-specific events. and just look up the event
6360 from the type system instead of having the hardcoded list.
6362 2009-06-26 Jeffrey Stedfast <fejj@novell.com>
6364 * fonts.cpp (LoadPortableUserInterface): Only set that we've
6365 loaded PUI, not each individual fallback face. The other faces may
6366 match user-specified faces, but there may also be a font source
6367 that it is loading them from (which may differ from the locally
6370 2009-06-26 Jeffrey Stedfast <fejj@novell.com>
6372 * runtime.cpp: Don't need to call font_init() or font_shutdown()
6375 * deployment.cpp: Create a new FontManager per Deployment and
6376 provide an access method to get at it.
6378 * textblock.cpp, glyphs.cpp, textbox.cpp: Updated for the font
6381 * provider.cpp: Removed FontFilenameProperty and FontGUIDProperty
6382 inheritance, these no longer exist.
6384 * fonts.cpp|h: New source files with the higher-level abstraction
6385 for font loading, glyph manipulation, etc.
6387 * fontmanager.cpp|h: New source files containing a FontManager
6388 class which handles caching of font faces and indexing of font
6389 resources. Serves as platform-dependent font loading layer.
6391 * font.cpp|h: Removed.
6393 2009-06-26 Jeffrey Stedfast <fejj@novell.com>
6395 * uri.cpp (ToString): Respct the UriHideQuery flag.
6397 2009-06-26 Larry Ewing <lewing@novell.com>
6399 * border.h: change the default value.
6401 * cornerradius.h: reorder the bottom* arguments.
6403 2009-06-26 Alan McGovern <amcgovern@novell.com>
6406 * popup.cpp: Handle popup hittesting when its closed in a way
6409 2009-06-26 Alan McGovern <amcgovern@novell.com>
6411 * popup.cpp: Keep the RENDER_VISIBLE flag in sync with the
6412 IsOpen state so that hittesting works correctly.
6414 2009-06-25 Chris Toshok <toshok@ximian.com>
6416 * xaml.h|cpp (xaml_is_valid_event_name): pass in the type of the
6417 object we're looking the event up on, and a flag as to whether or
6418 not to allow desktop-specific events. and just look up the event
6419 from the type system instead of having the hardcoded list.
6421 2009-06-25 Larry Ewing <lewing@novell.com>
6423 * grid.cpp, grid.h (PostRender): move the grid lines from Render to
6424 PostRender so that the lines are on top of the children (which
6425 appears to be the sl behavior). Fixes at least 317 and 446.
6427 2009-06-25 Sebastien Pouliot <sebastien@ximian.com>
6429 * downloader.cpp: Fix MediaElement policy wrt cross-domain access.
6430 Fix two unnumbered DRT tests.
6432 2009-06-25 Chris Toshok <toshok@ximian.com>
6434 * textbox.h|cpp (TextBoxBase::SelectWithError): we need to
6435 generate ArgumentExceptions here if start/length are out of range.
6436 This could, in the future, be entirely handled by the setter
6437 methods but for now we don't pass a MoonError to them.
6439 * xaml.h|cpp (xaml_set_property_from_str): this method takes an
6440 additional MoonError parameter so we can communicate back if there
6441 was a problem. Also, call SetValueWithError.
6443 * cbinding.h|cpp: regen.
6445 2009-06-25 Chris Toshok <toshok@ximian.com>
6447 * resources.h|cpp: add a "from_resource_dictionary_api" bool so we
6448 can tell in AddedToCollection and RemovedFromCollection if we got
6449 there from using ResourceDictionary's string-based api or
6450 Collection's object-based api. Take care of adding/removing the
6451 key for the object in those methods if we didn't come from the RD
6454 * type.cpp (Type): quiet valgrind down by using "delete []"
6455 instead of "delete" to free up the interfaces array.
6457 2009-06-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
6459 * mediaplayer.cpp: Improve debug output.
6461 2009-06-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
6463 * pipeline.h: Added a ProgressEventArgs class.
6467 * type-generated.cpp: Regenerated.
6469 2009-06-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
6471 * audio.cpp|h: Add support for having different input (from the
6472 codec) and output (to the device) formats. This is required for
6473 pulseaudio 0.10 which doesn't support 24 bit audio, only 16 and 32
6474 bit. Also add support for multi channel audio.
6477 * audio-pulse.cpp: Add support for multi channel and 24 bit audio
6478 and update according to audio API changes.
6480 2009-06-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
6482 * audio-alsa.cpp: Fix debug output by not duplicating declarations.
6484 2009-06-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
6486 * audio.cpp|h: Add support for dumping raw audio data to a file.
6488 2009-06-25 Alan McGovern <amcgovern@novell.com>
6490 * dependencyproperty.g.cpp: Regen
6492 2009-06-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
6496 * file-downloader.h:
6497 * internal-downloader.h: Add a SetFilename abstract method to
6498 InternalDownloader, provide implementations in FileDownloader
6499 and MmsDownloader and call the abstract method in the downloader
6500 instead of blindly casting an InternalDownloader to a FileDownloader
6501 when it might be an MmsDownloader.
6503 2009-06-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
6505 * pipeline.cpp|h: AudioStream: add possibility of having different
6506 input and output formats.
6508 * cbinding.cpp|h: Regenerated.
6510 2009-06-24 Chris Toshok <toshok@ximian.com>
6512 * xaml.cpp (matrix_from_str): handle "Identity" here.
6513 (value_from_str_with_parser): you can also create TransformGroups
6514 directly using the matrix syntax. Also, add support for parsing
6515 FontWeight/FontStyle/FontWeight structs here since we can't just
6516 rely on the enum_* stuff alone to do it.
6518 * value.h.in, value.cpp: add support for
6519 FontWeight/FontStyle/FontWeight structs.
6521 * textblock.cpp (Inline::UpdateFontDescription): track the
6523 (TextBlock::Layout): same.
6525 * textbox.cpp (TextBoxBase::Initialize): same.
6526 (TextBoxBase::OnPropertyChanged): same.
6528 * fontweight.h, fontstyle.h, fontstretch.h: new files, we're using
6529 structs now for these.
6531 * textblock.h, control.h: use the FontWeight/FontStyle/FontWeight
6532 struct types for properties instead of our internal enums.
6534 * Makefile.am (libmoon_include_headers): add fontstretch.h
6535 fontstyle.h, and fontweight.h
6537 * type-generated.cpp: regen.
6539 * cbinding.h|cppp: regen.
6541 * dependencyproperty.g.cpp: regen.
6545 2009-06-24 Larry Ewing <lewing@novell.com>
6547 * panel.cpp (Render): add layout clipping to panel rendering.
6549 2009-06-24 Larry Ewing <lewing@novell.com>
6551 * grid.h: stop drawing the gridlines by default. See comment for
6554 2009-06-24 Alan McGovern <amcgovern@novell.com>
6557 * runtime.cpp: Focus changed events should be emitted at the
6558 start and end of any user initiated event.
6559 can_raise_focus_changed is no longer necessary.
6561 2009-06-23 Larry Ewing <lewing@novell.com>
6563 * frameworkelement.cpp (UpdateLayout): reorder the way we process
6564 the lyout queues. Fixes ms 409.
6566 2009-06-23 Jackson Harper <jackson@ximian.com>
6568 * xaml.cpp: Handle empty buffers
6570 2009-06-23 Jackson Harper <jackson@ximian.com>
6572 * xaml.cpp: ContentControl can not have string content set this
6573 way, if the content object is a string it needs to be set with
6576 2009-06-23 Jackson Harper <jackson@ximian.com>
6578 * xaml.cpp: Another stab at not skipping empty attributes. Fixed
6579 all the unit test regression this caused last night.
6581 2009-06-23 Alan McGovern <amcgovern@novell.com>
6583 * grid.cpp: A dash length of 4 seems to be more correct.
6585 2009-06-23 Alan McGovern <amcgovern@novell.com>
6588 * grid.cpp: Implement Grid.ShowGridlines
6590 2009-06-22 Jackson Harper <jackson@ximian.com>
6592 * xaml.cpp: Pass the full prop name to managed
6593 - If managed fails to set the property, delete it so unmanaged can
6596 2009-06-22 Larry Ewing <lewing@novell.com>
6598 * provider.cpp: make UIElement::UseLayoutRounding inherited, this
6599 doesn't make it pass 2019 but it does a lot more.
6601 * shape.cpp: mirror the silverlight logic for canvas children with
6602 only one of w/h set. Fixes ms test 23.
6604 2009-06-18 Larry Ewing <lewing@novell.com>
6606 * shape.cpp: try to get the shape flags right once again trap
6607 explicit small values properly. Add Clipping logic to clip shapes
6608 to the fe values when explicitly set.
6610 * frameworkelement.cpp: look at stretch even when we have no
6613 2009-06-19 Jackson Harper <jackson@ximian.com>
6615 * xaml.cpp|h: We now have a managed version of AddChild so remove
6616 all the AddToContainer junk and use the managed AddChild instead.
6617 - Add MoonError to all the callbacks. Not handling the errors yet,
6618 but at least they are there now.
6620 2009-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
6622 * xaml.cpp: Add comment about absolute/relative paths
6625 2009-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
6627 * multiscaleimage.cpp: When an image has been opened,
6628 invalidate everything.
6630 2009-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
6632 * multiscaleimage.cpp|h: Emit MotionFinished after
6633 SetViewportWidth/SetViewportOrigin has been called.
6635 2009-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
6637 * multiscaleimage.cpp|h:
6638 * deepzoomimagetilesource.cpp|h: Raise error events.
6640 2009-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
6642 * multiscaleimage.cpp|h: Add support for methods exposed to JS.
6644 * cbinding.h: Regenerated.
6646 2009-06-18 Sebastien Pouliot <sebastien@ximian.com>
6648 * textblock.cpp: Avoid crash when using FontSource
6650 2009-06-18 Alan McGovern <amcgovern@novell.com>
6654 * control.cpp: When the visual parent changes on a Control, it
6655 needs to search up the visual tree to find out the Enabled
6656 state of the first Control it finds. When raising the
6657 IsEnabledChanged events, the control must emit its event
6658 before controls in its subtree emit their events. Fixes drt
6661 2009-06-17 Jeffrey Stedfast <fejj@novell.com>
6663 * textbox.cpp (Paste): Don't allow pastes to exceed MaxLength and
6664 for single-line entry controls (e.g. PasswordBox), don't allow
6667 2009-06-17 Alan McGovern <amcgovern@novell.com>
6669 * uielement.cpp: Changing UIElement::Visibility should also
6670 invalidate the parents measure. This allows DRT 2050 to
6671 complete without timing out.
6673 2009-06-17 Alan McGovern <amcgovern@novell.com>
6675 * uielement.cpp: Changing UIElement.Visibility should result
6676 in the measure being invalidated.
6678 2009-06-17 Alan McGovern <amcgovern@novell.com>
6680 * font.cpp: When the font cache is destroyed, set it to NULL
6681 so that if a Font is destroyed later it does not try to
6683 Null check the the FontFace cache before using it.
6684 If the FT_Face stream is null already, don't try to destroy
6687 2009-06-17 Alan McGovern <amcgovern@novell.com>
6689 * runtime.cpp: A subset of keypresses are allowed to bubble up
6690 when in fullscreen mode. Fixes drt 175.
6692 2009-06-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
6694 * uri.cpp: Add a null check to prevent a crash.
6696 2009-06-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
6698 * uri.cpp: Flag a lot more characters as url unsafe, and
6699 fix printf specifiers for url encoded characters to not
6700 include extra 'ff' sequences for every encoded character.
6702 This fixes parts of MS DRT #641.
6704 2009-06-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
6706 * downloader.cpp|h: Add an Open overload which takes an Uri
6707 instead of a string.
6709 * deepzoomimagetilesource.cpp:
6710 * bitmapimage.cpp: Use the Uri overload of Downloader::Open.
6712 2009-06-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
6714 * playlist.cpp: When we stop, emit the StopEvent.
6716 * mediaelement.cpp: Don't return a CurrentPosition > NaturalDuration.
6718 2009-06-16 Chris Toshok <toshok@ximian.com>
6720 * xaml.cpp (XamlElementInfoStaticResource,
6721 XamlElementInstanceStaticResource): remove these classes.
6722 (begin_buffering_element_names): remove this unused variable.
6723 (XamlParserInfo::LookupNamedResource): remove.
6724 (DefaultNamespace::FindElement): remove the
6725 XamlElementInfoStaticResource case, and just let the managed
6726 loader create the StaticResource element itself.
6727 (is_static_resource_element): remove.
6728 (XamlElementInstanceNative::SetProperty): defer to the loader if
6729 either the property or the value RequiresManagedSet.
6730 (dependency_object_set_property): defer to the loader if the value
6732 (dependency_object_set_attributes): remove all processing of
6733 markup extensions from unmanaged code.
6734 (xaml_markup_parse_argument): remove.
6735 (xaml_markup_extension_type): remove.
6736 (handle_markup_in_managed): remove.
6737 (handle_xaml_markup_extension): remove.
6739 * panel.h|cpp (Panel::Panel): just set our subtree object here.
6740 (Panel::GetSubtreeObject): remove.
6742 * provider.cpp (AutoCreatePropertyValueProvider::GetPropertyValue):
6743 don't notify listeners when creating an auto-created value.
6745 * dependencyobject.cpp (DependencyObject::ProviderValueChanged):
6746 only call the property's change callback if we're notifying
6749 2009-06-17 Andreia Gaita <avidigal@novell.com>
6751 * dependencyobject.cpp: (Emit) if types have been destroyed, bail out
6753 2009-06-17 Andreia Gaita <avidigal@novell.com>
6755 * xaml.cpp: fix typo
6757 2009-06-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
6759 * pipeline.cpp: Remove spurious printfs.
6761 2009-06-16 Andreia Gaita <avidigal@novell.com>
6763 * deployment.[h|cpp]: Try to dispose types only if there are no
6764 objects pending destruction. If there are, dispose only after
6765 they are all cleared (on DrainUnrefs). This makes sure no properties
6766 are destroyed while objects are still pending.
6767 Added isDead flag, used when doing object tracking to protect against
6768 trying to access type fields when the types have been destroyed
6769 already (when doing ref logging and the final leak report).
6770 Type destruction is slightly delayed when doing object tracking
6771 to allow for the report (otherwise we wouldn't have any type names
6772 on it, and that would be sad)
6774 * type.cpp: fake-clear the properties list by setting it's count to 0
6775 so access by id fails (in case someone wants to access the property
6776 while we're disposing everything).
6777 Delete all the registered types and kill the properties list when
6778 destroying. By this point all properties and objects should be
6780 * type.h.in: added dispose flag.
6781 * type.h: regenerated
6783 2009-06-16 Andreia Gaita <avidigal@novell.com>
6785 * uielement.cpp: release all refs on dispose
6787 2009-06-16 Andreia Gaita <avidigal@novell.com>
6789 * control.[h|cpp]: Dispose() added. Don't be clingy, unref things
6791 2009-06-16 Jeffrey Stedfast <fejj@novell.com>
6793 * xaml.cpp (value_from_str_with_parser): Handle Type::CHAR
6795 2009-06-16 Larry Ewing <lewing@novell.com>
6797 * shape.cpp: try to be more careful about clearing SHAPE_EMPTY
6798 when properties change in preparation for fixing the autocreated
6799 property notification stuff
6801 2009-06-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
6803 * multiscaleimage.cpp: Add a call to print_stack_trace, looks
6804 like abort () doesn't cause a stack trace.
6806 2009-06-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
6808 * mediaplayer.cpp: Remove circular dependency between MediaPlayer
6809 and MediaElement, clear out the element in Dispose and add a null
6810 check before accessing the element. Fixes crash in MS DRT #238.
6812 2009-06-15 Andreia Gaita <avidigal@novell.com>
6814 * frameworkelement.cpp: delete UIElement nodes when we're done
6817 2009-06-15 Jeffrey Stedfast <fejj@novell.com>
6819 * textblock.cpp (SetTextInternal): Get rid of some duplicated
6822 2009-06-15 Alan McGovern <amcgovern@novell.com>
6825 * frameworkelement.h:
6826 * frameworkelement.cpp: Give an initial implementation of
6827 FindElementInHostCoordinates (UIElement, Rect) which treats
6828 the rect as a series of points and checks each one until a
6829 hit is found. Allows drt 280 to
6831 2009-06-15 Jeffrey Stedfast <fejj@novell.com>
6833 * dependencyobject.cpp (Initialize): Initialize is_hydrated to
6836 2009-06-15 Andreia Gaita <avidigal@novell.com>
6838 * type.[h|cpp]: Dispose method added, to help separate between clearing
6839 all the DPs and actually deleting the types. For now, just clears the
6840 DPs and doesn't touch the type list.
6841 * deployment.cpp: (Dispose) types are disposed here, for now.
6843 2009-06-15 Andreia Gaita <avidigal@novell.com>
6845 * dependencyproperty.g.cpp: regenerated
6847 2009-06-15 Jackson Harper <jackson@ximian.com>
6849 * xaml.cpp: Reorder errors.
6851 2009-06-15 Andreia Gaita <avidigal@novell.com>
6853 * deployment.cpp: (Reinitialize) AssemblyPartsCollection is reffed
6854 inside SetParts, and since we don't store it anywhere else, drop a
6857 2009-06-15 Andreia Gaita <avidigal@novell.com>
6859 * dependencyproperty.cpp, animation.[h|cpp]: Fix animation storage so
6860 it removes itself from the property list and gets deleted as soon as
6861 possible, otherwise it will not only leak, but blow up once we start
6863 Floating status is gone.
6865 2009-06-15 Andreia Gaita <avidigal@novell.com>
6867 * value.[h.in|cpp], debug.h, runtime.[h|cpp]: LOG_VALUE macro added,
6868 and some extra debugging output for refcounting.
6871 2009-06-15 Alan McGovern <amcgovern@novell.com>
6873 * frameworkelement.cpp: Objects can be hit as long as their
6874 height as greater than zero and the point is in the fill or
6877 2009-06-15 Alan McGovern <amcgovern@novell.com>
6879 * frameworkelement.cpp: Back that change out as it causes some
6880 regressions in the moon-unit tests.
6882 2009-06-15 Alan McGovern <amcgovern@novell.com>
6884 * frameworkelement.cpp: We can hit an element in both stroke
6887 2009-06-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
6889 * playlist.cpp|h: When a media reports that it has been opened
6890 successfully, check if we're the current element, and if not,
6891 don't to anything more until we are the current element. This
6892 fixes an issue with server side playlists where they would
6893 only play the first entry.
6895 * pipeline.cpp|h: Move code out of header.
6897 * pipeline-asf.cpp|h: Inform the MmsPlaylistEntry whenever an
6900 2009-06-15 Alan McGovern <amcgovern@novell.com>
6902 * frameworkelement.cpp: We're hittesting the clip, we use
6903 user-space coordinates, so apply the identity matrix to get
6906 2009-06-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
6908 * pipeline.h: Expose MediaFrame::IsKeyFrame to C.
6910 * cbinding.cpp|h: Regenerated.
6912 2009-06-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
6914 * enums.cpp: Rename MediaElementState -> MediaState. Add 'Paused'
6915 to the enum->str conversion table.
6917 2009-06-15 Alan McGovern <amcgovern@novell.com>
6919 * mediaplayer.cpp: The MediaPlayer should ref the MediaElement
6920 it's attached to otherwise it can access the element after
6921 the element has been destroyed. Stops 238 crashing.
6923 2009-06-14 Andreia Gaita <avidigal@novell.com>
6925 * value.[h.in|cpp]: (CreateUnref*) Accept EventObject instead of DPs, since
6926 there are certain refcounted objects that aren't child classes of
6928 Wrap null objects but don't try to unref them.
6931 2009-06-14 Andreia Gaita <avidigal@novell.com>
6933 * debug.[h|cpp]: add max frame arg for finer control when getting
6936 2009-06-12 Jackson Harper <jackson@ximian.com>
6938 * xaml.cpp|h: import_xmlns now validates the namespace so we can
6939 raise an error if it is invalid.
6941 2009-06-12 Jackson Harper <jackson@ximian.com>
6943 * xaml.cpp: Don't allow dtds.
6945 2009-06-12 Jackson Harper <jackson@ximian.com>
6947 * xaml.cpp: SL doesn't handle NaN the same way that strtod does.
6949 2009-06-12 Jackson Harper <jackson@ximian.com>
6951 * xaml.cpp: Use the value attribute parsing for enum types, this
6952 allows them to have x:Key and x:Name attributes.
6954 2009-06-12 Sebastien Pouliot <sebastien@ximian.com>
6956 * dependencyproperty.g.cpp: Regenerated
6957 * deployment.h: Update ExternalCallersFromCrossDomainProperty
6958 generator-related properties and add unmanaged accessors
6959 * enumscpp|h: Remove CrossDomainAccessFullAccess value which was
6960 dropped after SL2 beta2
6961 * uri.cpp|h: Add new Uri::SameSiteOfOrigin method
6962 * validators.cpp|h: Add new CrossDomainValidator that ensure we
6963 can set only once Deployment::ExternalCallersFromCrossDomainProperty
6965 2009-06-11 Jackson Harper <jackson@ximian.com>
6967 * xaml.cpp: Re-enable the force USERCONTROL to be managed thingy.
6968 - Don't try to set managed properties in
6969 dependency_object_add_child.
6970 - Make sure we only create managed property elements for managed
6971 items, even if they are DOBs, otherwise UserControl.Resources gets
6972 a native property info.
6974 2009-06-11 Alan McGovern <amcgovern@novell.com>
6977 * runtime.cpp: The uielements involved in GotFocus/LostFocus
6978 events need to be stored in a queue so that focusing
6979 multiple elements in one tick works correctly.
6981 2009-06-11 Alan McGovern <amcgovern@novell.com>
6985 * type-generated.cpp: Make Popup.[Opened|Closed] asynchronous.
6987 2009-06-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
6989 * src.mdp: Define HAVE_CONFIG_H to fix build in MD.
6991 * security.c: Fix signed/unsigned mismatch warning.
6993 * error.cpp: Fix warning about not initialize in correct order.
6995 2009-06-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
6997 * pipeline.cpp: Fix warning/typo in printf.
6999 2009-06-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
7001 * pipeline.cpp: MarkerStream: if there is no callback, store
7002 the markers in a list instead of just dropping them. Fixes an
7003 issue with our #150 where we'd lose markers since the stream
7004 had processed them before getting a callback.
7006 * mediaelement.cpp: Check if a marker stream has stored markers
7007 (which would have been added before the calback was set).
7009 2009-06-10 Larry Ewing <lewing@novell.com>
7011 * frameworkelement.cpp (Arrange): measure containers if they
7012 haven't been at least for now.
7014 2009-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
7016 * mediaelement.cpp: When we get a stream as the source, set download
7017 progress immediately to 1.0. Also emit DownloadProgressChanged just
7018 after opening the file (to ensure that we emit DownloadProgressChanged
7019 at least once). This makes MS DRT #420 not time out.
7021 2009-06-10 Larry Ewing <lewing@novell.com>
7023 * frameworkelement.cpp (UpdateLayout): if we find a unloaded
7024 element while walking the tree emit loaded on it now.
7026 2009-06-10 Larry Ewing <lewing@novell.com>
7028 * frameworkelement.cpp (UpdateLayout): emit SizeChanged in the
7029 place it was supposed to be emitted.
7031 2009-06-10 Jeffrey Stedfast <fejj@novell.com>
7033 * layout.cpp (Layout): Don't apply font height to the line unless
7034 text has been rendered on that line using that font.
7036 2009-06-10 Jackson Harper <jackson@ximian.com>
7038 * xaml.cpp|h: Add another param to LookupObject to specify whether
7039 we are looking up a property. We can't rely on the '.' being in
7040 the name because x:Class names can have namespaces.
7041 - Force USERCONTROL to be looked up in managed so we can
7044 2009-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
7046 * playlist.cpp|h: PlaylistEntry: Add support for getting duration for
7047 parent entries/playlists too. Also propagate the BufferUnderflow
7050 * pipeline.cpp: Change logic when filling the buffer to request
7051 a frame from the least-buffered stream. This solves an issue with
7052 live streams, we might end up playing audio only when the video
7053 buffer was empty and the audio buffer never full.
7055 * mediaplayer.cpp|h: When determining duration of an entry, check
7056 the entry's parents too for duration. We also need to set
7057 first_live_pts when rendering. This makes MS DRT #129
7058 not time out. Add a BufferUnderflow to inform listeners of any
7061 * mediaelement.cpp|h: Handle the BufferUnderflow event, pause
7062 playback and update states accordingly. Remove UpdateProgress,
7065 * type-generated.cpp: Regenerated.
7067 2009-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
7069 * mediaplayer.cpp: use the correct max value for guint64.
7071 2009-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
7073 * mediaplayer.cpp|h: Make flags a thread-safe variable, since
7074 we might write to it from an audio thread.
7076 2009-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
7078 * playlist.cpp: When checking if an entry has duration, check
7079 the right entry. Fixes a possible crash.
7081 2009-06-10 Alan McGovern <amcgovern@novell.com>
7083 * multiscaleimage.cpp: The FadeIn storyboard should emit a MotionFinished
7084 event too. Allows drt 293 to complete.
7086 2009-06-10 Alan McGovern <amcgovern@novell.com>
7088 * uri.cpp: Uris starting with "\\" need to be recognised as
7091 2009-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
7093 * pipeline-asf.cpp: Remove dead code.
7095 2009-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
7097 * runtime.cpp: g_warning -> printf to ease breaking on
7100 2009-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
7102 * dependencyobject.h: Fix IdMask.
7104 2009-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
7106 * pipeline.h|cpp: Rework some of the buffer filling algorithm:
7107 we now never have more than one frame pending (to know which
7108 stream a response comes from - if frame parameter to
7109 ReportGetFrameCompleted is null, we need to mark the corresponding
7110 stream as ended. Also split the 'stream ended' concept in two:
7111 input ended (the demuxer won't give us more data) and output
7112 ended (the decoder won't give us more data). This fixed
7116 * pipeline-asf.h|cpp: GetFrameAsync: For some error codes we
7117 need to try again later.
7119 * mediaelement.cpp: CheckMarkers: subtract one to not include
7120 both ends of the range, if the marker matches exactly the end
7121 of a range it will get emitted twice otherwise.
7124 * audio.cpp: Updated according to IMediaStream changes.
7126 2009-06-09 Jeffrey Stedfast <fejj@novell.com>
7128 * value.cpp (operator==): Fix a crash if comparing a null
7131 * textbox.cpp (EmitSelectionChangedAsync): Only emit the event if
7132 the control is loaded.
7133 (EmitTextChangedAsync): Same.
7135 2009-06-09 Alan McGovern <amcgovern@novell.com>
7137 * runtime.cpp: The first mouse click will always Focus on the
7138 'default' control. After that we follow the normal focusing
7139 rules and focus on the first eligible control which the
7140 mouse has clicked on.
7142 2009-06-08 Jackson Harper <jackson@ximian.com>
7144 * xaml.cpp: Add TimeSpan to the primitive types.
7146 2009-06-08 Chris Toshok <toshok@ximian.com>
7148 * runtime.h (class Surface): add IsZombie.
7150 2009-06-08 Jackson Harper <jackson@ximian.com>
7152 * error.cpp|h: Add method and fields for line/char positions.
7153 * xaml.cpp: Fill in line/char positions on MoonErrors, this allows
7154 them to get propogated to managed and fixes some of the unit tests.
7156 2009-06-08 Jackson Harper <jackson@ximian.com>
7158 * xaml.cpp|h: Pass the property xmlns and the element xmlns into
7159 managed when setting properties.
7161 2009-06-08 Alan McGovern <amcgovern@novell.com>
7163 * runtime.cpp: Un-regress drt 783. We need to raise our cached
7164 focus changed event, then process the focus change itself,
7165 then raise the events for the new change.
7167 2009-06-08 Alan McGovern <amcgovern@novell.com>
7170 * runtime.cpp: If Control.Focus is called from inside a
7171 GotFocus handler, the focus change occurs immediately and
7172 the new GotFocus event is raised as soon as the current
7173 handler is finished.
7175 2009-06-08 Jackson Harper <jackson@ximian.com>
7177 * xaml.cpp: Bail out after we hit the first attribute parsing
7180 2009-06-08 Jackson Harper <jackson@ximian.com>
7182 * xaml.cpp: We need to convert path geometry strings from managed.
7184 2009-06-08 Jackson Harper <jackson@ximian.com>
7186 * xaml.cpp: Little more cleanup now that we don't have to reparse
7187 attributes for x:Class.
7189 2009-06-05 Chris Toshok <toshok@ximian.com>
7191 * xaml.cpp (XNamespace::SetAttribute): setting x:Class on an
7192 element when we aren't hydrating is illegal. this has the
7193 pleasant side effect of removing the need to reparse attributes,
7194 so axe that code as well.
7196 2009-06-05 Chris Toshok <toshok@ximian.com>
7198 * textbox.cpp (TextBoxView::Blink): don't set deployments using
7199 the pattern Deployment::SetCurrent (GetDeployment()), as
7200 GetDeployment() issues a warning if the object's deployment
7201 doesn't match the current one. use
7202 DependencyObject::SetCurrentDeployment(true) instead.
7204 2009-06-04 Chris Toshok <toshok@ximian.com>
7206 * runtime.cpp (Surface::EmitError): stop unreffing the args after
7207 the Emit call. Emit unrefs them for us.
7209 2009-06-05 Jeffrey Stedfast <fejj@novell.com>
7211 * layout.cpp (layout_word_wrap): Stop processing when we come to
7212 open-punctuation if it isn't the first char in the word as this is
7213 a good break opportunity. Fixes the last remaining issue in
7216 2009-06-04 Jackson Harper <jackson@ximian.com>
7218 * xaml.cpp: Track the owner type of properties so we know whether
7219 or not to go into managed when we are dealing with an attached
7222 2009-06-04 Jeffrey Stedfast <fejj@novell.com>
7224 * font.cpp (OpenFaceByIndex): If lang is non-null, then accept any
7225 font face that fontconfig can find for the requested language.
7226 (FontFace::LoadFontFace): Get the lang string and pass it along.
7227 (FontFace::Init): initialize a default font hash table for
7228 non-latin languages.
7229 (FontFace::Shutdown): destroy aformentioned table.
7230 (FontFace::LoadDefaultFaceForLang): New helper method to load the
7231 default font face for a given language code.
7232 (FontFace::GetDefault): If the language in the Fc pattern is
7233 'special', use LoadDefaultFaceForLang().
7234 (TextFontDescription::.ctor): Initialize language.
7235 (TextFontDescription::.dtor): Free language.
7236 (TextFontDescription::CreatePattern): Add the FC_LANG attribute if
7238 (TextFontDescription::UnsetFields): Unset the language field.
7239 (TextFontDescription::Merge): Merge the language field.
7240 (TextFontDescription::GetLanguage): New method to get the language.
7241 (TextFontDescription::SetLanguage): New method to set the language.
7242 (TextFontDescription::ToString): Modified a bit.
7244 * textblock.cpp (Inline::Equals): Compare XmlLanguage attributes
7246 (Inline::UpdateFontDescription): Pass the XmlLanguage along to the
7247 TextFontDescription.
7249 2009-06-04 Jackson Harper <jackson@ximian.com>
7251 * xaml.cpp: The managed property could be either the property or
7254 2009-06-04 Larry Ewing <lewing@novell.com>
7256 * canvas.cpp (OnCollectionItemChanged): call
7257 InvalidateSubtreePaint on items when their position in the canvas
7258 changes to make sure we clear the old region. Fixes a couple of
7259 the inkpresenter tests.
7261 2009-06-04 Larry Ewing <lewing@novell.com>
7263 * shape.cpp (ComputeStretchBounds): reject negative width/height
7264 settings. Fixes test-shape-negative.xaml
7266 2009-06-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
7268 * multiscaleimage.cpp: Add a debugging abort to try to find the
7271 2009-06-04 Alan McGovern <amcgovern@novell.com>
7274 * type-generated.cpp: Actually add IsEnabledChangedEvent
7276 2009-06-04 Alan McGovern <amcgovern@novell.com>
7278 * control.h: Add IsEnabledChangedEvent to native
7280 * type-generated.cpp: regen
7282 2009-06-04 Stephane Delcroix <sdelcroix@novell.com>
7284 * multiscaleimage.cpp: qtree_insert () takes no value. returns
7285 the newly created QTreeNode. qtree_insert_at () renamed to
7286 qtree_insert_with_value ().
7288 2009-06-03 Alan McGovern <amcgovern@novell.com>
7293 * uielement.cpp|h: Calling Control.Focus () results in a recursive
7294 check to find a focusable element. A mouse click does a non-recursive
7295 check on the elements which were 'hit'. Fixes two DRTs.
7297 2009-06-03 Jackson Harper <jackson@ximian.com>
7299 * xaml.cpp: Update some error messages.
7300 - Pass the current namespace in when creating property infos in
7302 * frameworkelement.h: ActualWidth and ActualHeight are readonly
7304 * dependencyproperty.g.cpp: regen
7306 2009-06-03 Jeffrey Stedfast <fejj@novell.com>
7308 * font.cpp (GetCharIndex): Use FcFreeTypeCharIndex() which does a
7309 bit more than FT_Get_Char_index().
7311 * layout.cpp (TextLayout::Layout): Silverlight 2.0 /never/ counts
7312 trailing lwsp towards line width, even if underlined.
7313 (TextLayoutGlyphCluster::Render): Don't underline trailing lwsp if
7314 we are the last glyph cluster on a line.
7315 (GenerateGlyphCluster): Keep track of underline width (calculated
7316 using width up to/including last non-lwsp char).
7317 (word_type_changed): Consider numerics as part of the containing
7320 2009-06-03 Jackson Harper <jackson@ximian.com>
7322 * xaml.cpp|h: We need to look for managed properties on native
7324 - Set the element info for properties to the type of the property.
7325 - Add the ability for properties to force their set to be in
7326 managed even if they come from a native type.
7328 2009-06-03 Alan McGovern <amcgovern@novell.com>
7330 * uielement.cpp: Calculate the Transform between two UIElements
7333 2009-06-03 Alan McGovern <amcgovern@novell.com>
7335 * transform.cpp: When instantiating a Matrix from a cairo_matrix_t
7336 we need to populate M11/M12/M21 etc with the correct values.
7338 2009-06-02 Chris Toshok <toshok@ximian.com>
7340 * xaml.cpp (dependency_object_add_child): XamlElementInfoEnum has
7341 Type::INVALID as its Kind. This is another facet to the "we need
7342 to register enum types" work that will need to be done. The
7343 GetKind() method needs to eventually return a property Kind, but
7344 until then we'll just check for Type::INVALID.
7346 2009-06-02 Sebastien Pouliot <sebastien@ximian.com>
7348 * security.c: Use the PREVIEW_VERSION for the environment variable
7349 used to turn off security (coreclr and verifier)
7351 2009-06-02 Jeffrey Stedfast <fejj@novell.com>
7353 * textblock.cpp (SetTextInternal): Oops, I must have somehow nuked
7354 the run->SetAutogenerated() logic a while back which is causing
7357 * layout.cpp (layout_word_overflow): Removed, Silverlight 2.0 no
7358 longer supports this wrapping model.
7360 2009-06-02 Larry Ewing <lewing@novell.com>
7362 * uielement.cpp (DoArrange): don't poke at unset values. Fixes
7365 2009-06-02 Jeffrey Stedfast <fejj@novell.com>
7367 * runtime.cpp (HandleMouseEvent): Fixed compile warning about 'if
7370 2009-06-02 Alan McGovern <amcgovern@novell.com>
7372 * collection.cpp: Fix DeepTreeWalker.Step (). It used to step in
7373 reverse logical order.
7376 * uielement.cpp|h: Make Focus a virtual method on UIElement.
7378 * src/runtime.cpp: When the surface receives a mouse down we need to
7379 focus the first control added to the root element if the user has not
7380 clicked on a control or focused one using Control.Focus (). Then any
7381 pending Focus events are raised before the mouse event is processed.
7383 * src/window-gtk.cpp: Always pass a right mouse button event into the
7384 Surface so that we can fire any pending Focus events to match the
7385 behaviour of Silverlight.
7387 2009-06-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
7389 * mms-downloader.cpp: Use strtoull instead of g_ascii_strtoull
7390 since g_ascii_strtoull isn't available in sled.
7392 2009-06-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
7394 * mms-downloader.cpp: Use strtoull instead of g_ascii_strtoull
7395 since g_ascii_strtoull isn't available in sled.
7397 2009-06-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
7402 * type-generated.cpp: Regenerated.
7404 * downloader.h: Removed streaming_features, not used here anymore.
7410 * pipeline-asf.cpp|h:
7411 * mms-downloader.cpp|h: Implement support for server side playlists.
7413 2009-06-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
7415 * pipeline.cpp: Check queued_requests for null after locking too.
7417 2009-06-02 Alan McGovern <amcgovern@novell.com>
7419 * runtime.cpp|h: Focus changed events are emitted synchronously right
7420 before a MouseLeftButtonDown or MouseRightButtonDown event.
7422 2009-06-01 Chris Toshok <toshok@ximian.com>
7424 * type.h.in|cpp (Types::RegisterType): permit a ctor_visible flag
7425 here too so xaml.cpp knows if the type is creatable.
7427 * type.h, cbinding.cpp|h: regen
7429 2009-06-01 Chris Toshok <toshok@ximian.com>
7431 * xaml.cpp (dependency_object_add_child): only do this check for
7432 non-Type::MANAGED children.
7434 2009-06-01 Chris Toshok <toshok@ximian.com>
7436 * grid.cpp|h: the row/columndefinitioncollections do not permit
7437 definitions to be inserted more than once.
7439 * type.h.in (class Type): add IsCtorVisible method and ctor arg.
7441 * type.h, type-generated.cpp: regen.
7443 * xaml.cpp (XamlElementInstanceNative::CreateItem): only create
7444 the instance if the ctor is visible.
7445 (dependency_object_add_child): if the ctor for the child isn't
7446 visible, error out even if it's the same type/kind as the
7449 2009-06-01 Jeffrey Stedfast <fejj@novell.com>
7451 * deployment.cpp (Dispose): Properly chain up to
7452 DependencyObject::Dispose().
7454 * bitmapimage.cpp (Dispose): Fixed Dispose chaining.
7456 * brush.cpp (ImageBrush::Dispose): Chain up to
7457 TileBrush::Dispose() instead of EventObject::Dispose(). Fixes a
7458 crash in GlyphsManagedDRT
7460 * dependencyobject.cpp (WildcardListener): Uh, this needs to
7461 subclass Listener or we can't go around casting it to a Listener.
7462 (CallbackListener): Same.
7464 2009-06-01 Chris Toshok <toshok@ximian.com>
7466 * runtime.cpp (Surface::EmitEventOnList): if the list is empty (or
7467 end_idx == 0) return early.
7469 * xaml.cpp (XamlLoader::HydrateFromString): turns out we only mark
7470 the toplevel object as hydrated if parser_info->hydrating == true.
7471 this fixes some managed parsing stuff since XamlReader.Load was
7472 using the same codepath (just passing NULL into
7473 XamlReader::HydrateFromString.)
7475 2009-05-29 Jeffrey Stedfast <fejj@novell.com>
7477 * application.cpp (GetResourceAsPath): Fixed extra
7478 XXXXXX'age. CreateTempDir() already handles appending the XXXXXX's
7481 2009-05-29 Alan McGovern <amcgovern@novell.com>
7483 * control.cpp: When Control.Focus () is called, if the control itself
7484 is not focusable, we need to check it's visual children. The call will
7485 complete successfully if any of the children are focusable, and that
7486 child will become the focused element.
7488 2009-05-29 Alan McGovern <amcgovern@novell.com>
7490 * control.cpp|h: If a control becomes disabled, it loses mouse capture
7491 and cannot regain it later. If CaptureMouse is called on a disabled
7492 control, the mouse is successfully captured and then immediately
7493 released which fires the LostMouseCapture event.
7495 * runtime.cpp|h: If control A captures the mouse, control B can't steal
7496 the capture or release the capture. Add an explicit ReleaseMouseCapture
7497 function to accomodate this behaviour.
7499 * uielement.cpp|h: Add an EmitLostMouseCapture event and a CanCaptureMouse
7500 function which signifies whether or not the current UIElement can keep the
7503 2009-05-28 Jeffrey Stedfast <fejj@novell.com>
7505 * textbox.h (class PasswordBox): Marked PasswordProperty as
7506 AlwaysChange so that setting this property (even to the same
7507 value) will force a PasswordChanged event to be emitted.
7508 (class TextBox): Marked SelectedTextProperty as AlwaysChange to
7509 fix moon-unit test: SetIdenticalSelectedText()
7511 * textbox.cpp (PasswordBox::OnPropertyChanged): Removed debugging
7512 printfs for utf8->ucs4 conversion errors.
7514 2009-05-28 Jeffrey Stedfast <fejj@novell.com>
7516 * textbox.h (class TextBox): Added the AlwaysChange metadata to
7517 SelectionStart/Length properties.
7519 * textbox.cpp (TextBoxBase::EmitSelectionChangedAsync): New method
7520 to asynchronously emit SelectionChanged events.
7521 (TextBoxBase::EmitTextChangedAsync): Same for TextChanged events.
7522 (TextBoxBase::SyncAndEmit): Asynchronously emit the events.
7523 (TextBox::EmitSelectionChanged): Simply emit the event now, don't
7524 bother updating state which is now handled elsewhere.
7525 (TextBox::EmitTextChanged): Same.
7526 (TextBox::OnPropertyChanged): When clamping the SelectionLength
7527 value due to a SelectionState property change, block events - we
7528 should only emit a single SelectionChanged event. Also modified to
7529 avoid emitting a TextBoxModelChanged event if the values didn't
7530 actually change. Same for SelectionLength changes.
7532 2009-05-28 Chris Toshok <toshok@ximian.com>
7534 * value.h.in, value.cpp: add a copy assignment operator.
7538 2009-05-28 Alan McGovern <amcgovern@novell.com>
7540 * control.cpp: When changing Control.IsEnabled, create the
7543 2009-05-28 Alan McGovern <amcgovern@novell.com>
7545 * animation.cpp: Fix a double free caused by the line
7546 converted = Value (*value);
7548 2009-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
7550 * pipeline-ui.cpp: Protect against a null surface.
7552 * mediaelement.cpp: Get the surface from the deployment (which should
7553 always have a surface) instead of the media element's surface
7554 (which is not guaranteed to be set always).
7556 2009-05-28 Alan McGovern <amcgovern@novell.com>
7558 * control.cpp|h: Control.IsEnabled propagates to its children
7559 when the control is Loaded.
7561 2009-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
7565 2009-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
7567 * mms-downloader.cpp: Custom headers must be requested before
7568 opening the downloader.
7570 2009-05-28 Stephane Delcroix <sdelcroix@novell.com>
7572 * multiscaleimage.h|cpp: replace the hash cache on uri by
7573 a set of qtree, one per subimage. This should speed stuffs
7574 a lot, as uri crating/parsing/hashing was taking up to 20%
7577 2009-05-28 Stephane Delcroix <sdelcroix@novell.com>
7579 * multiscalesubimage.h: GetId (). Get subimage id, used as
7582 2009-05-28 Stephane Delcroix <sdelcroix@novell.com>
7584 * multiscaleimage.cpp: qtree_new, qtree_lookup, qtree_destroy,
7585 qtree_insert, etc. The Q(uad)Tree data structure is a tree with
7586 4 child nodes, matching the tree-ish pyramid of MSI tiles.
7588 2009-05-28 Andreia Gaita <avidigal@novel.com>
7590 * timeline.cpp: Stop the clock when you call Stop.
7592 2009-05-27 Jeffrey Stedfast <fejj@novell.com>
7594 * textbox.cpp (TextBoxBase::SyncAndEmit): Now takes a sync_text
7595 argument which defaults to true. If not set, we avoid calling
7596 SyncText() even if emit has the TEXT_CHANGED bit set.
7597 (TextBox::OnPropertyChanged): Call SyncAndEmit() with sync_text =
7598 false if the value was just set to null.
7600 2009-05-27 Alan McGovern <amcgovern@novell.com>
7603 * control.cpp: Implement correct propagation of
7604 Control.IsEnabled. Children of disabled controls are
7605 disabled. When their parent is re-enabled, they go back to
7606 their previous state.
7608 2009-05-27 Jeffrey Stedfast <fejj@novell.com>
7610 Fixes to make sure that an TextChanged and SelectionChanged events
7611 are emitted after each and every change to the Text/Selection
7614 * textbox.cpp (TextBoxBase::BatchPush): Call at the start of each
7615 batch operation. Prevents SyncAndEmit() from doing anything until
7616 all nested batch operations are completed.
7617 (TextBoxBase::BatchPop): Call at the end of each
7619 (TextBoxBase::*): Instead of using inkeypress, use the more
7620 generic BatchPush()/Pop().
7621 (TextBox::OnPropertyChanged): Call SyncAndEmit() after
7622 Text/Selection changes.
7623 (PasswordBox::OnPropertyChanged): Same.
7625 2009-05-27 Geoff Norton <gnorton@novell.com>
7627 * runtime.cpp|h: Support the splash progress/completed events.
7629 * type-generated.h: Regen
7631 2009-05-27 Jeffrey Stedfast <fejj@novell.com>
7633 * textbox.cpp (TextBox::EmitSelectionChanged): Only emit the event
7634 if the TextBox is loaded and unset the emit state.
7635 (TextBox::EmitTextChanged): Same.
7637 2009-05-27 Geoff Norton <gnorton@novell.com>
7639 * deployment.cpp|h: Allow reinitializing the appdomain if our
7640 Source has changed, or we're switching from the splash screen to
7643 2009-05-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
7646 * textblock.cpp: Fix warnings.
7648 2009-05-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
7651 * runtime.h|cpp: Add LOG_PIPELINE_EX and parse LOG_ASF correctly.
7653 2009-05-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
7659 * mms-downloader.cpp:
7660 * internal-downloader.h:
7661 * file-downloader.h:
7662 * file-downloader.cpp:
7663 * pipeline-asf.cpp: Updated according to downloader API changes.
7666 * downloader.cpp: Add support for retrieving response headers
7667 and disable caching. Initialize the downloader interface methods
7668 to their default/dummy methods statically.
7672 * type-generated.cpp:
7674 * cbinding.cpp: Regenerated.
7676 2009-05-27 Alan McGovern <amcgovern@novell.com>
7678 * resources.cpp: Wait til AddedToCollection returns success
7679 before adding the item to the hashtable.
7681 2009-05-27 Alan McGovern <amcgovern@novell.com>
7683 * resources.cpp: Propagate the error (if there is one) from
7684 Collection::AddWithError. If there is an error, clear the item
7685 from the hashtable before returning.
7687 2009-05-27 Alan McGovern <amcgovern@novell.com>
7691 * dependencyproperty.g.cpp: Control.Enabled needs to be
7692 created in native code as it's required for hittesting. A
7693 disabled control and its visual children do not receive
7694 mouse events and are not visible to
7695 VisualTreeHelper.FindElementInHostCoordinates.
7697 2009-05-26 Jeffrey Stedfast <fejj@novell.com>
7699 * glyphs.cpp (OnPropertyChanged): Set the font weight/slant based
7700 on the StyleSimulations value.
7701 (Layout): No longer need to pass along StyleSimulations to
7704 * font.cpp (style_weights): Added more style weight name mappings.
7705 (style_slants): Same.
7706 (FontFace::IsItalic): New method to query the font face to see if
7707 it is italic or not.
7708 (FontFace::IsBold): Same idea.
7709 (TextFont::TextFont): Now takes a TextFontDescription so that we
7710 can initialize the new 'simulate' member variable which tells us
7711 if we have to simulate bold or italics due to not finding a
7713 (TextFont::GetGlyphInfo): No longer takes a StyleSimulations
7714 argument. Instead, it now uses the 'simulate' member variable to
7715 pass to FontFace::LoadGlyph().
7716 (TextFontDescription::CreatePattern): Always add Weight and Slant
7717 to the pattern now, even if it is the default font
7718 family. Silverlight 2.0 no longer restricts bold/italics to
7721 2009-05-26 Chris Toshok <toshok@ximian.com>
7723 * xaml.cpp (XamlElementInstance::SetName): if it's a
7724 dependencyobject, add it to the container here.
7725 (XamlElementInstance::SetKey): same.
7726 (end_element_handler): only do the AddToParentContainer call here
7727 if the element is not a dependencyobject.
7729 2009-05-25 Jeffrey Stedfast <fejj@novell.com>
7731 * glyphs.cpp: Changed 'style' to be unsigned.
7733 2009-05-25 Andreia Gaita <avidigal@novel.com>
7735 * timeline.h|cpp (DispatcherTimer): reset the clock properly when
7736 restarting a dispatcher timer. also, rename Run to Restart.
7737 note: if a timer is not stopped or started during it's tick event,
7738 the time spent on the tick is counted for the next tick on the
7741 2009-05-25 Chris Toshok <toshok@ximian.com>
7743 * runtime.h|cpp (Surface::EmitError): add an overload so
7744 Application.cs can cause an error to be emitted on the surface.
7746 * cbinding.h|cpp: regen.
7748 2009-05-25 Andreia Gaita <avidigal@novel.com>
7750 * border.cpp (OnPropertyChanged): Invalidate when background is
7753 2009-05-25 Chris Toshok <toshok@ximian.com>
7755 * uielement.cpp (UIElement::GetTransformToUIElementWithError):
7756 this method fails incorrectly when you call it on the toplevel
7757 element of a surface.
7759 2009-05-25 Chris Toshok <toshok@ximian.com>
7761 * xaml.cpp (class XNamespace): name conflicts are pseudo-allowed
7762 for separate resource dictionary name registration. this isn't
7763 exactly right, since the name *should* be unregistered.
7765 2009-05-25 Chris Toshok <toshok@ximian.com>
7767 * validators.cpp (Validators::TemplateValidator): this is causing
7768 DRT 438 to throw an exception and subsequently timeout. its
7769 removal doesn't seem to break anything else, so ifdef it out with
7772 2009-05-25 Alan McGovern <amcgovern@novell.com>
7777 * dependencyobject.cpp
7778 * dependencyproperty.cpp
7779 * dependencyproperty.g.cpp
7780 * dependencyproperty.h
7781 * uielement.h: There are two types of DependencyProperty.
7782 Core properties and custom properties. Custom properties
7783 do not set the parent on a DO. This makes the old
7784 'SetsParent' property redundant, so remove it.
7786 2009-05-22 Chris Toshok <toshok@ximian.com>
7788 * xaml.cpp (XamlElementInstance::SetName): don't call
7789 AddToContainer here. in case the element is a value type, and
7790 we're adding it to a RD on a managed type (like StackPanel), the
7791 managed xaml loader will marshal the value type to C# and we'll
7792 lose any further updates to the value typed object by the parser.
7793 That is, if we parse <Color x:Key="foo">#ffffff00</Color>, the
7794 ManagedXamlLoader will see a color with #00000000 as its value, as
7795 the content hasn't been parsed by the time we create the managed
7797 (XamlElementInstance::SetKey): same.
7798 (end_element_handler): call AddToParentContainer here instead.
7800 2009-05-22 Chris Toshok <toshok@ximian.com>
7802 * dependencyobject.cpp (DependencyObject::OnPropertyChanged): we
7803 were missing the case where HydratedFromXaml elements weren't
7804 updating their parent namescope on name changes, only their
7805 private ones. Adding the parent namescope fix fixes FaceMonkey's
7808 2009-05-22 Jackson Harper <jackson@ximian.com>
7810 * xaml.h|cpp: New callback for registering elements in
7811 containers, we need to do this earlier on in the parse than
7812 setproperty because other elements could reference these elements
7813 before they've been set.
7815 2009-05-21 Alan McGovern <amcgovern@novell.com>
7818 * src/cbinding.h: regen
7820 * dependencyproperty.c:
7821 * dependencyproperty.h: We can either register a 'core' property or a
7822 'custom' property from managed code. Core properties are part of the
7823 framework itself, custom properties are user-created. Custom properties
7824 don't set the parent or register names in namescopes.
7826 2009-05-21 Stephane Delcroix <sdelcroix@novell.com>
7828 * deepzoomimagetilesource.h:
7829 * deepzoomimagetilesource.cpp: IsParsed () function, so we know,
7830 without listening to the event, if a tilesource is ready to be
7832 * multiscaleimage.cpp: check dzits.IsParsed() before getting the tile
7833 size from a subimage source.
7835 2009-05-21 Larry Ewing <lewing@novell.com>
7837 * multiscaleimage.cpp (RenderCollection): reoorder the max level
7838 test so that we only call get_tile_func once in that case. Speeds
7839 up hardrock and the moment.
7841 2009-05-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
7843 * debug.h: Added LOG_ASF.
7845 2009-05-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
7847 * runtime.h: Don't use 64 bit constants for the runtime debug enum.
7849 2009-05-21 Alan McGovern <amcgovern@novell.com>
7853 * src/dependencyproperty.g.cpp: regen
7855 * dependencyobject.cpp:
7856 * dependencyproperty.cpp:
7857 * dependencyproperty.h:
7858 * uielement.h: Add the ability to set a DP as non-parenting and
7859 apply it to FrameworkElement::TagProperty
7861 2009-05-20 Larry Ewing <lewing@novell.com>
7863 * multiscaleimage.cpp (RenderCollection): fix bug introduced in
7864 earlier tile size fix. Fixes covertocover.
7866 2009-05-20 Larry Ewing <lewing@novell.com>
7869 * bitmapsource.cpp: when creating a cached surface use the group
7870 target type not the overall target.
7872 2009-05-20 Larry Ewing <lewing@novell.com>
7874 * frameworkelement.cpp (ComputeActualSize): avoid making a
7875 IsLayoutContainer call here.
7877 2009-05-20 Stephane Delcroix <sdelcroix@novell.com>
7879 * multiscaleimage.cpp: support different tile sizes for the collection
7880 and the individual images. Fixes "the moment" 2D.
7882 2009-05-20 Larry Ewing <lewing@novell.com>
7884 * xaml.cpp: update the parser error numbers and strings to match 2.0.
7886 2009-05-20 Larry Ewing <lewing@novell.com>
7888 * multiscaleimage.cpp: small change to avoid getting the property
7891 2009-05-20 Alan McGovern <amcgovern@novell.com>
7896 * type-generated.cpp: Register 'float' as a known type
7898 2009-05-20 Chris Toshok <toshok@ximian.com>
7900 * type.h.in: a few changes. We no longer pass the kind name to
7901 the ctor, since nothing ever uses it, and the type name is enough.
7902 add both an interface array and array count to the Type ctor, as
7903 well as a is_interface bool. Lastly, add IsAssignableFrom
7906 * dependencyobject.cpp (DependencyObject::IsValueValid): switch
7907 from using a direct comparison on Kinds to using
7908 Type::IsAssignableFrom. this makes interfaces work.
7910 * cbinding.h, cbinding.cpp, type-generated.cpp, type.h: regen.
7912 * animation.cpp (AnimationClock::HookupStorage): instead of
7913 comparing kinds, use Type::IsAssignableFrom to see if we can
7914 animate the property using a particular timeline type.
7915 (DoubleAnimation::GetCurrentValue,
7916 DoubleAnimation::GetTargetValue, ColorAnimation::GetCurrentValue,
7917 ColorAnimation::GetTargetValue, PointAnimation::GetCurrentValue,
7918 PointAnimation::GetTargetValue): add code to deal with the start
7919 value not being the same type as the animation uses (this can
7920 happen if we're animating an interface property like
7921 IComparable.) The start values in that case are 0.0, Point(0.0),
7922 and Color(0,0,0,0), respectively.
7924 2009-05-19 Larry Ewing <lewing@novell.com>
7926 * collection.cpp: avoid some GetDeployment calls in looping cases.
7928 2009-05-19 Larry Ewing <lewing@novell.com>
7930 * frameworkelement.cpp (UpdateLayout): clear the needs flags when
7931 we restart in case they we're properly cleared before.
7933 2009-05-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
7935 * pipeline.cpp|h: Add an ExternalDecoder which takes a list of
7936 function pointers to call whenever the corresponding virtual method
7939 * enums.h: Move enums from the pipeline here (makes it easier to
7940 create c bindings for methods taking enums)
7944 * pipeline-ffmpeg.cpp: Update accccording to enum changes.
7946 * codec-version.h.in: Bump ABI version.
7950 * type-generated.cpp: Regenerated.
7952 2009-05-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
7958 * pipeline-ffmpeg.cpp:
7959 * pipeline.cpp|h: Add accessors for fields in VideoStream,
7960 AudioStream and MediaFrame.
7961 * cbinding.cpp|h: Regenerated.
7963 2009-05-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
7965 * cbinding.cpp|h: Regenerated.
7967 2009-05-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
7969 * security.h: Include <mono/metadata/assembly.h>.
7970 Fixes a warning (and the build with MD).
7972 2009-05-19 Alan McGovern <amcgovern@novell.com>
7974 * animation.cpp: Add some optimisations to ObjectKeyFrames.
7975 Don't call back into managed when the value is null or when
7976 the the value is already of the exact right kind. This will
7977 need to be reviewed once unmanaged code understands
7978 interfaces so we can fastpath interfaces too.
7980 2009-05-18 Larry Ewing <lewing@novell.com>
7984 * frameworkelement.cpp: for the time being use the needs* flags on
7985 surface to skip the UpdateLayout logic when the tree is clean.
7986 Optimize a couple of the property reads inside the deep walk.
7988 * provider.cpp (GetPropertyValue): rework some more of the checks
7989 to remove some other remaining unneeded checks.
7991 2009-05-18 Chris Toshok <toshok@ximian.com>
7993 * dependencyproperty.g.cpp (Types::RegisterNativeProperties):
7996 2009-05-18 Larry Ewing <lewing@novell.com>
7998 * bitmapsource.cpp (GetSurface): use the content type of the image
7999 when creating the native surface.
8001 2009-05-18 Larry Ewing <lewing@novell.com>
8003 * provider.cpp (GetPropertyValue): reorder the framework element
8004 property lookup to avoid an extra type inquiry in a potentially
8007 2009-05-18 Larry Ewing <lewing@novell.com>
8009 * xaml.cpp (dependency_object_set_attributes): move the types
8010 lookup outside the loop.
8012 2009-05-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
8015 * type.h: Regenerated.
8018 * dependencyobject.h:
8019 * dependencyproperty.h:
8022 * frameworkelement.h:
8025 * type.h: Sprinkle CBindingPrequisite around. Also use ints
8026 instead of Type::Kind values in function pointers.
8028 2009-05-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
8030 * window-gtk.h: Add a GetNativeWidget which returns a void
8031 pointer instead of GtkWidget* so that we don't need to include
8032 gtk for the c bindings.
8034 2009-05-18 Alan McGovern <amcgovern@novell.com>
8036 * contentcontrol.cpp: For contentcontrols, the applied
8037 template is only cleared if the old or new content is a
8038 UIElement (frameworkelement?). The fallback 'template' of a
8039 Grid + TextBlock is also reused every time.
8041 2009-05-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
8043 * utils.h: Use c++-style structs to please the generator.
8045 2009-05-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
8047 * window-gtk.h: Add a GetNativeWidget which returns a void
8048 pointer instead of GtkWidget* so that we don't need to include
8049 gtk for the c bindings.
8050 * cbinding.h|cpp: Updated.
8052 2009-05-16 Chris Toshok <toshok@ximian.com>
8054 * xaml.cpp (flush_char_data): verbatim mode cdata still needs to
8055 be g_strstrip'ed, but we can't do it until right before we use it,
8058 2009-05-16 Chris Toshok <toshok@ximian.com>
8060 * xaml.cpp (XamlElementInfo::SetIsCDataVerbatim,
8061 XamlElementInfo::IsCDataVerbatim): new methods to set and get a
8062 flag telling the cdata_handler to not collapse/remove
8063 whitespace. <clr:String> requires this.
8064 (PrimitiveNamespace::FindElement): for the "String" case, call
8065 XamlElementInfo::SetIsCDataVerbatim(true).
8066 (char_data_handler): if the current element IsCDataVerbatim, just
8067 append the input string and return.
8069 2009-05-16 Alan McGovern <amcgovern@novell.com>
8071 * security.c: Bump the security env var to _04
8073 2009-05-16 Alan McGovern <amcgovern@novell.com>
8081 * dependencyproperty.g.cpp: Add type converting to
8082 ObjectKeyFrame. The conversion is done during the Resolve
8083 phase. If the type conversion can't be completed an
8084 exception is thrown.
8086 2009-05-15 Chris Toshok <toshok@ximian.com>
8088 * dependencyobject.cpp (DependencyObject::RegisterAllNamesRootedAt):
8089 in the hydrated case we still need to register our name.
8090 (DependencyObject::ProviderValueChanged): don't swallow the error
8091 when we SetParent on the new_as_dep.
8092 (DependencyObject::SetParent): if we're adding a Hydrated
8093 element (i.e. one that was loaded using LoadComponent), we need to
8094 register its name into the parent namescope. Also, move the
8095 quickest check to the top so we don't do the family check on every
8096 SetParent call if the before/after parent are the same. Lastly,
8097 we only register names if the current parent is NULL. That is, if
8098 a named brush is a property on an element already, and its name is
8099 registered, we don't register it in the new namescope when it's
8100 set as a property on a second element. Odd but it matches SL
8102 (DependencyObject::FindName): no longer walk up the namescope
8103 hierarchy, and don't look up things in the toplevel's namescope
8106 * dependencyobject.h (class DependencyObject): add
8107 SetIsHydratedFromXaml/IsHydratedFromXaml, used by the parser.
8109 * xaml.cpp (XamlLoader::HydrateFromString): flag the resulting
8110 object as being hydrated.
8111 (everywhere): we don't need GetParentNamescope for anything. we
8112 always use the toplevel namescope of the subtree the parser is
8115 * provider.cpp (AutoCreatePropertyValueProvider::GetPropertyValue):
8116 don't pass a null error to ProviderValueChanged.
8118 2009-05-15 Larry Ewing <lewing@novell.com>
8120 * frameworkelement.cpp (UpdateLayout): just warn if the element is
8121 loaded don't skip it for now since it causes regressions in the
8124 2009-05-15 Chris Toshok <toshok@ximian.com>
8126 * timeline.cpp (ParallelTimeline::GetNaturalDurationCore): tiny
8127 change that gets automatic storyboards with zero length children
8128 to have a zero length themselves.
8130 2009-05-15 Larry Ewing <lewing@novell.com>
8132 * grid.cpp (OnCollectionItemChanged): invalidate on column
8135 2009-05-15 Larry Ewing <lewing@novell.com>
8137 * debug.h (LOG_LAYOUT): use printf.
8139 * mediaelement.cpp (ArrangeOverride): remove layout debug spew.
8141 * frameworkelement.cpp: reorder the updated_list and clean up some
8144 * uielement.cpp (PostSubtreeLoad): we can't guard against emitting
8145 loaded here since it will break delayed queuing of loaded events
8146 when the tree is modified inside the event handler. Improves
8148 2009-05-15 Jackson Harper <jackson@ximian.com>
8150 * xaml.cpp: Use the property element's type instead of parsing out
8151 the name, this fixes setting propertys of imported managed types.
8153 2009-05-15 Alan McGovern <amcgovern@novell.com>
8156 * dependencyproperty.g.cpp: The Keyframes property of
8157 ObjectAnimationUsingKeyframes needs to be autogenerated.
8159 2009-05-15 Alan McGovern <amcgovern@novell.com>
8161 * type-generated.cpp:
8162 * frameworkelement.h: Properly handle exceptions when updating
8163 the source in a 2 way binding. Raise the
8164 BindingValidationError event in the right place.
8166 2009-05-14 Jackson Harper <jackson@ximian.com>
8168 * xaml.cpp: Pass the item's xmlns when setting unknown attributes.
8170 2009-05-14 Larry Ewing <lewing@novell.com>
8172 * xaml.cpp (lookup_named_item): make this nonrecursive.
8174 2009-05-14 Jeffrey Stedfast <fejj@novell.com>
8176 * frameworkelement.cpp (OnPropertyChanged): Do a
8177 FullInvalidate(true) when the Horizontal or Vertical Alignment
8180 2009-05-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
8182 * dependencyobject.cpp: unref: only try to delete
8183 us if we had a 0 refcount after decrementing refcount.
8184 Also use an atomic fetch when checking if the object
8187 2009-05-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
8189 * dependencyobject.cpp: when printing stack traces
8190 first get all the lines to print, then print them.
8191 This way it's a lot less probable to get other lines
8192 in between when printing stacktraces from multiple threads.
8194 2009-05-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
8196 * dependencyobject.cpp: Print typename for object creation
8197 too, now that we don't have to call a virtual method to
8200 2009-05-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
8202 * timesource.h: G_PRIORITY_IDLE doesn't exist, use
8203 G_PRIORITY_HIGH_IDLE.
8205 2009-05-13 Chris Toshok <toshok@ximian.com>
8207 * xaml.cpp (class XamlContextInternal): allow for a parent context
8208 so that we can track context's (and resources) across multiple
8209 template instantiations.
8210 (create_resource_list): just stuff the FrameworkElement on the
8211 list and leave the GetValue(UIElement::Resources) for when we look
8212 up the actual resource.
8213 (end_element_handler): when creating a new XamlContext pass in our
8214 current XamlContext.
8215 (XamlContextInternal::LookupNamedItem): handle both changes (FWE
8216 in our resources list, and parent context chaining.)
8218 2009-05-13 Jackson Harper <jackson@ximian.com>
8220 * xaml.cpp: We need to dup the top_element since this can be
8223 2009-05-13 Chris Toshok <toshok@ximian.com>
8225 * clock.cpp (Clock::UpdateFromParentTime): for instantaneous
8226 clocks (those with Duration=00:00:00) we weren't emitting
8227 completed (or switching to Fill/Stop).
8229 2009-05-13 Jackson Harper <jackson@ximian.com>
8231 * xaml.h|cpp: use a Value* for top level objects, this lets us get
8232 rid of the gchandle hack in the managed xaml loader for non DOB
8235 2009-05-13 Larry Ewing <lewing@novell.com>
8237 * canvas.cpp: make IsLayoutContainer nonrecursive using
8240 * frameworkelement.cpp:
8241 * uielement.cpp, uielement.h:
8243 * shape.cpp: start reworking the container layout logic to avoid
8246 * collection.cpp: don't ref elements inside DeepTreeWalker use
8247 UnsafeUIElementNode instead.
8249 * dirty.cpp (UpdateLayout): remove some dead code.
8251 2009-05-13 Alan McGovern <amcgovern@novell.com>
8253 * value.cpp: Ensure we don't explode when checking null uris
8255 2009-05-13 Alan McGovern <amcgovern@novell.com>
8257 * validators.cpp: If StyleProperty has a value and it is
8258 'null', that is allowed to be replaced.
8260 2009-05-12 Chris Toshok <toshok@ximian.com>
8262 * timeline.cpp (DispatcherTimer::Start): when resetting the clock
8263 we need to make sure to reset the root parent time, or else the
8264 timer will tick immediately when started (if it's previously hit
8267 2009-05-12 Larry Ewing <lewing@novell.com>
8269 * collection.cpp, collection.h: Add a SkipBranch method to avoid
8270 computing walking into the tree when we can.
8272 * frameworkelement.cpp (UpdateLayout): Use the new skip branch
8273 logic in deeptreewalker to avoid invisible elements.
8275 2009-05-12 Larry Ewing <lewing@novell.com>
8277 * frameworkelement.cpp (UpdateLayout): revert the visibility change
8280 2009-05-12 Larry Ewing <lewing@novell.com>
8282 * frameworkelement.cpp (ComputeBounds): make sure the bounds are
8283 the size of the full element, and skip elements based on the
8284 actual visibility setting not the computed one.
8286 2009-05-12 Jeffrey Stedfast <fejj@novell.com>
8288 * textbox.cpp (InvalidateCursor): New helper method which applies
8289 the absolute transform to the cursor before invalidating the
8291 (ShowCursor): Use InvalidateCursor().
8293 (UpdateCursor): Here too.
8295 2009-05-12 Jeffrey Stedfast <fejj@novell.com>
8297 * textbox.cpp (OnKeyDown): Need to set the handled flag on the
8298 routed event args in the case where the key event is handled by
8300 (OnKeyUp): Set the handled flag in both cases here.
8302 2009-05-11 Alan McGovern <amcgovern@novell.com>
8306 * contentcontrol.cpp: Recommit r133738 as it's not causing the
8309 2009-05-09 Andreia Gaita <avidigal@novell.com>
8311 * uielement.h: Add GenerateJSBinding annotation to
8312 CaptureMouse, ReleaseMouseCapture and
8313 GetTransformToUIElementWithError (TransformToVisual)
8315 2009-05-09 Chris Toshok <toshok@ximian.com>
8317 * eventargs.cpp (KeyEventArgs::IsModifier): reverse the sense of
8318 this check so we're buildable on SLED10.
8320 2009-05-08 Jeffrey Stedfast <fejj@novell.com>
8322 * layout.cpp (layout_word_wrap): If we can't find a suitable place
8323 to wrap in the first time through the loop, make sure to respect
8324 the 'force' state the second time through.
8326 * application.cpp (GetResourceAsPath): Updated.
8328 * utils.cpp (CanonicalizeFilename): Now takes a 'lower' argument
8329 to specify whether the filename should be lowercased as it is
8331 (ExtractAll): The 'canon' argument has been renamed to 'lower'
8332 which more accurately reflects its purpose. Pass this on to
8333 CanonicalizeFilename().
8335 2009-05-08 Alan McGovern <amcgovern@novell.com>
8339 * contentcontrol.cpp: Revert the changes in r133738 until I
8340 can figure out why the x86 bot doesn't like them. It's
8341 causing the extended controls tests to time out.
8343 2009-05-07 Alan McGovern <amcgovern@novell.com>
8347 * contentcontrol.cpp: If the content property changes, the
8348 Template is cleared if it has already been applied.
8350 2009-05-07 Andreia Gaita <avidigal@novell.com>
8352 * src/uielement.cpp (GetTransformToUIElementWithError): Don't fail if
8353 the to_element is the top level element.
8355 2009-05-06 Chris Toshok <toshok@ximian.com>
8357 * xaml.cpp (dependency_object_set_attributes): we can't assume
8358 that a NULL value for @v means it hasn't been set, since {x:Null}
8359 could have been specified. we need another flag to make it work.
8361 2009-05-06 Jeffrey Stedfast <fejj@novell.com>
8363 * textbox.cpp (OnPropertyChanged): Guard against calling
8364 ResetIMContext in the middle of some keyboard input.
8366 2009-05-05 Chris Toshok <toshok@ximian.com>
8368 * collection.cpp (Collection::InsertWithError): we need to make a
8369 further copy because the caller could remove the element in a
8370 handler, which causes us to delete the value (values aren't ref
8373 2009-05-05 Jeffrey Stedfast <fejj@novell.com>
8375 * textbox.cpp (TextBoxBase::Initialize): Set use_preedit() to
8376 false since we're not rendering the preedit strings ourselves.
8377 (TextBoxBase::SetSurface): Update the GtkIMContext's client
8379 (TextBoxView::UpdateCursor): Update the GtkIMContext's idea of
8380 where the cursor is at.
8382 2009-05-05 Alan McGovern <amcgovern@novell.com>
8384 * xaml.cpp: If 'Key' hasn't been set, use 'Name'. Allows
8385 elements to be added to ResourceDictionarys in managed land.
8387 2009-05-05 Jeffrey Stedfast <fejj@novell.com>
8389 * layout.cpp (Select): Fixed some selection logic.
8391 * textbox.cpp (TextBoxBase::Initialize): Create a new GtkIMContext
8392 and hook up some callbacks. Also init need_im_reset to false.
8393 (TextBoxBase::~TextBoxBase): Kill the IMContext.
8394 (TextBoxBase::OnKeyDown): Filter the event key through the
8395 IMContext. If it handles the key, don't do anything more.
8396 (TextBoxBase::DeleteSurrounding): New callback method for
8398 (TextBoxBase::RetrieveSurrounding): Same.
8399 (TextBoxBase::Commit): New IMContext callback method to commit the
8400 input-method chars into the TextBox.
8401 (TextBoxBase::ResetIMContext): New helper method to reset the
8403 (TextBoxBase::OnFocusOut): Update GtkIMContext focus state.
8404 (TextBoxBase::OnFocusIn): Same.
8405 (TextBoxBase::OnPropertyChanged): If the IsReadOnly property state
8406 changes, update the GtkIMContext state accordingly. Same with the
8407 various Selection states and Text property.
8409 * eventargs.cpp (GetEvent): New method to get access to the
8410 original GdkEventKey event for use with GtkIMContext.
8412 2009-05-05 Alan McGovern <amcgovern@novell.com>
8416 * dependencyproperty.g.cpp: Back out the default value fix
8417 until the parser can be updated to handle this.
8419 2009-05-05 Alan McGovern <amcgovern@novell.com>
8423 * dependencyproperty.g.cpp: PathGeometry.Figures and
8424 ObjectAnimationUsingKeyframes.KeyFrames both need to be
8425 autogenerated. This allows them to pass their respective
8426 DefaultValues tests (when those tests are run).
8428 2009-05-05 Alan McGovern <amcgovern@novell.com>
8430 * template.h: Remove the forward decls for TemplateBinding and
8431 XamlTemplateBinding as they don't exist in unmanaged anymore
8433 2009-05-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
8435 * pipeline-ffmpeg.cpp: FfmpegDecoder: Chain Dispose.
8437 2009-05-04 Geoff Norton <gnorton@novell.com>
8439 * codec-version.h.in: Bump
8440 * pipeline-ui.cpp: Bump because we no longer link libmoon in the codecs
8442 2009-05-04 Jeffrey Stedfast <fejj@novell.com>
8444 * debug.cpp (Frame::ToString): fixed compile warning.
8446 * uielement.cpp (UpdateLayout): Need to return a bool here, we
8449 * textbox.cpp (Blink): Set the deployment.
8451 2009-05-03 Chris Toshok <toshok@ximian.com>
8453 * everywhere (NotifyListenersOfPropertyChange): add a MoonError
8456 * xaml.h|.cpp (class XamlContext): add GetTemplateBindingSource so we
8457 can hook up TemplateBindings in managed code. Also, change all
8458 the loader callback types to take a loader pointer so we can get
8461 * template.h|.cpp: remove all the lists of bindings, the
8462 two different template binding types (XamlTemplateBinding and
8463 TemplateBinding) and their respective List::Node containers. all
8464 this is handled in managed land now, where it belongs.
8466 * dependencyproperty.h|.cpp: move
8467 PropertyChangedEventArgs to dependencyproperty.h, and unify the
8468 two types for property change handlers into simply
8469 PropertyChangeHandler.
8471 * dependencyobject.h: remove the PropertyChangedEventArgs struct
8472 from here, it now lives in dependencyproperty.h
8474 * dependencyobject.cpp (class CallbackListener): pass a MoonError
8476 (DependencyObject::ProviderValueChanged): reuse the
8477 PropertyChangedEventArgs since property change callbacks take them
8478 now instead of splitting up the old_value/new_value/property.
8480 * control.cpp (Control::Control, Control::~Control,
8481 Control::ApplyTemplate): remove all reference to the list of
8484 * control.h (class Control): remove the list of bindings.
8486 * cbinding.h|.cpp, type-generated.cpp, type.h, value.h:
8489 2009-05-03 Jeffrey Stedfast <fejj@novell.com>
8491 * runtime.h (InMainThread): check main_thread_inited.
8493 * runtime.cpp: All flags variables are now 32bit. Split _EX flags
8494 into a second debug_flags_ex. Also added a new bool var to keep
8495 track of whether or not main_thread has been initialized since we
8496 can't necessary compare against NULL.
8500 2009-05-03 Jeffrey Stedfast <fejj@novell.com>
8502 * debug.cpp: #include <unistd.h>
8504 * *.h: Don't #include stdint.h or unistd.h (only cpp files should
8507 2009-05-02 Jeffrey Stedfast <fejj@novell.com>
8514 * value.h[.in]: Don't include stdint.h
8516 2009-05-01 Jackson Harper <jackson@ximian.com>
8518 * xaml.cpp: Handle the {} escape sequence. (Managed code will have to
8521 2009-05-01 Larry Ewing <lewing@novell.com>
8523 * collection.cpp: rework the sorting invalidation logic so that we
8524 don't do it quite as often.
8526 2009-05-01 Larry Ewing <lewing@novell.com>
8529 * collection.cpp: cache the deployment more and add a
8530 VisualTreeWalker interface to help with that.
8532 2009-05-01 Larry Ewing <lewing@novell.com>
8536 * type.cpp: Move the IsSubclassOrSuperclassOf logic into types and
8537 add a static version that handles looking up the deploy for us.
8541 * value.cpp: Make it possible to use a cached deployment when
8542 retriving values using the ::As* methods and calling
8543 Types::IsSubclassOrSuperclassOf.
8545 * style.cpp: when sealing the style use the cached deployment logic.
8547 2009-05-01 Larry Ewing <lewing@novell.com>
8549 * dependencyobject.h:
8550 * xaml.cpp: use types more directly in a few more places to reduce
8551 calls to Deployment::GetCurrent even more.
8553 2009-05-01 Jackson Harper <jackson@ximian.com>
8556 * dependencyobject.cpp|h: Move the name validation check to a
8557 validator (phase one of moving NameProperty to frameworkelement).
8558 * dependencyproperty.g.cpp: regen
8560 2009-05-01 Jackson Harper <jackson@ximian.com>
8563 * value.h.in: Sync with their .h's
8565 2009-04-30 Jackson Harper <jackson@ximian.com>
8567 * xaml.cpp: Use the type system for detecting if we should be in
8568 buffering mode, anything that is a FrameworkTemplate
8569 should be buffered. This fixes custom types that inherit from
8570 DataTemplate not getting buffered properly.
8572 2009-04-30 Jackson Harper <jackson@ximian.com>
8574 * xaml.cpp: We need to pass the object to GetPropertyName because
8575 non DOB objects can have content properties now.
8577 2009-04-30 Jackson Harper <jackson@ximian.com>
8579 * xaml.cpp: Don't require a content property name when we are
8580 trying to set a managed content property. This could be the
8581 content of a managed collection.
8583 2009-04-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
8585 * bitmapimage.cpp: Make sure we clean up any previous
8586 downloaders when we create new ones.
8588 2009-04-29 Larry Ewing <lewing@novell.com>
8590 * frameworkelement.cpp:
8591 * uielement.cpp (DoMeasure): reorder some calls to improve speed
8592 until the new logic lands.
8594 2009-04-29 Larry Ewing <lewing@novell.com>
8596 * value.h (checked_get_subclass): use IsSubclassOrSuperclassOf to
8597 reduce Deployment::GetCurrent calls.
8600 * type.cpp: add IsSubclassOrSuperclassOf so that we can use it it
8603 2009-04-29 Larry Ewing <lewing@novell.com>
8606 * dependencyobject.cpp: reuse types to reduce calls to
8607 Deployment::GetCurrent ().
8609 2009-04-29 Alan McGovern <alan.mcgovern@gmail.com>
8611 * popup.cpp: Forgot to call the base Dispose method.
8613 2009-04-29 Geoff Norton <gnorton@novell.com>
8615 * debug.cpp: Not everyone in the world is 32-bit intel.
8617 2009-04-29 Jeffrey Stedfast <fejj@novell.com>
8619 * textblock.cpp (SetTextInternal): Protect everything from
8620 reentrancy and never replace the autocreated InlineCollection with
8621 a newly allocated one. Instead, Clear() the old one and add the
8623 (OnCollectionChanged): If !setvalue, then it means we are updating
8624 stuff elsewhere. Avoid causing reentrancy. Also simplified a bit.
8626 2009-04-29 Andreia Gaita <avidigal@novell.com>
8628 * dependencyobject.cpp: Add MOONLIGHT_OBJECT_TRACK_VISI for outputting
8629 parseable stacktraces for later visualization
8631 2009-04-29 Andreia Gaita <avidigal@novell.com>
8633 * debug.[cpp|h]: Add libunwind-backed output for tracing ref/unref
8634 calls in a nice way, for later parsing and visualization.
8636 2009-04-29 Geoff Norton <gnorton@novell.com>
8638 * pipeline-ui.cpp|h: If the codec download ends prematurely, dlopen
8639 nicely crashes on a incomplete .so (thanks). As such we're going to
8640 sha1 the expected binary before blindly installing it to gatekeep
8643 2009-04-29 Jeffrey Stedfast <fejj@novell.com>
8645 Fixes some cursor position/selection bugs
8647 * layout.cpp (TextLayoutLine): Initialize a new member variable
8649 (Layout): Update line->count (needed for the reworking of
8650 GetCursor) and line->length (which was the case of the bugs)
8651 variables as we go. Switch to doing this for run->length too.
8652 (GetCursor): Reworked a bit to use character indexes to help us
8653 find the correct cursor position rather than using byte offsets
8654 which were more awkward.
8656 2009-04-29 Alan McGovern <amcgovern@novell.com>
8659 * popup.cpp: Remove the attached layer correctly when the
8660 surface is being nulled on a Popup.
8662 2009-04-29 Geoff Norton <gnorton@novell.com>
8665 * provider.cpp: GetIterator returns a ref'd iter, we need to delete
8666 it when we're done to clean it up.
8667 * dependencyproperty.g.cpp: You raise me up.
8668 * deployment.cpp|h: Deployment has a cyclic reference to things
8669 stored in it (AssemblyParts, NameScope), we need to break this cycle
8670 in our disposer so they can be properly cleand up.
8671 * xaml.cpp: If we create a new collection, and set the collection as
8672 some objects value, it will have a refcount of 2. We need to unref
8673 the collection once we've handed it off.
8675 2009-04-28 Geoff Norton <gnorton@novell.com>
8677 * popup.cpp: We cannot access this local value here since its been
8678 cleared in our dispose call.
8680 2009-04-28 Geoff Norton <gnorton@novell.com>
8682 * deployment.cpp: Now that we properly shut down the clocks and
8683 media threads, we can finalize the domain here instead of pumping
8686 2009-04-28 Chris Toshok <toshok@ximian.com>
8688 * dirty.cpp (Surface::UpdateLayout): quiet g++ about taking the
8689 address of a temporary.
8691 2009-04-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
8694 * audio.cpp: When looping over playing nodes, don't include
8695 nodes in the Waiting state.
8697 * audio-alsa.cpp: when Played, update the poll list. The state
8698 might not actually have changed if only the Waiting flag was
8701 2009-04-28 Larry Ewing <lewing@novell.com>
8708 * frameworkelement.h:
8709 * frameworkelement.cpp: add FrameworkProvider for actual*
8710 values. Rework layout using the actual* values and add a first
8711 pass at looping layout.
8714 * collection.h: Add a deep tree walker that allows you to walk the
8715 entire tree without recursing.
8722 * canvas.cpp: rework layout logic for the new providers and handle
8723 more of the corner cases.
8726 * textblock.cpp: Remove the old Actual* provider since we use the
8727 generic one now. Go a bit crazy with Invalidations until they can
8730 * eventargs.cpp: stop using IsAnythingDirty.
8732 2009-04-28 Larry Ewing <lewing@novell.com>
8734 * dependencyobject.cpp:
8739 * timesource.h: rework the priority of our event queue so that
8740 we end up being more responsive to input and give the browser a
8741 chance to do things like repaint.
8743 2009-04-28 Jackson Harper <jackson@ximian.com>
8745 * xaml.cpp: Don't allow x:Class on non top level elements.
8747 2009-04-28 Jackson Harper <jackson@ximian.com>
8749 * dependencyproperty.cpp: When resolving property paths if we
8750 don't have enough info to lookup the correct managed type we just
8751 verify that the current lookup object has the correct type name,
8752 excluding namespace.
8754 2009-04-28 Alan McGovern <amcgovern@novell.com>
8759 * contentcontrol.cpp: Add the ability to stop ContentControl
8760 from automatically setting the LogicalParent when a
8761 FrameworkElement is added as the Content.
8763 2009-04-27 Jackson Harper <jackson@ximian.com>
8765 * value.cpp: property path's have expanded paths that need to be
8766 copied, freed, ect now.
8767 * propertypath.h: Add an expanded path to the property path, this
8768 is a path with managed types marked with namespaces expanded into
8769 full names. So 'moon:MyType' becomes something like
8770 'MoonNamespace.MyType'.
8771 * dependencyproperty.cpp: If an expanded path is available use
8772 that for property path parsing. Also added support for the ' mark
8773 for escaping full type names (otherwise full names could not have
8774 '.'s). The ' can only be used in expanded paths.
8775 * xaml.cpp: When parsing property paths expand out managed
8776 namespaces if possible.
8778 2009-04-27 Geoff Norton <gnorton@novell.com>
8780 * value.cpp: Its possible for these pointers to be 0x0 here, so
8781 we need to guard against a invalid dereference causing a SIGSEGV
8782 fixes moon-unit with toggleref on.
8784 2009-04-27 Geoff Norton <gnorton@novell.com>
8786 * codec-url.h, pipeline-ui.cpp: Update for 1.9p1
8788 2009-04-24 Chris Toshok <toshok@ximian.com>
8790 It turns out the granularity of overriding in styles is at the
8791 setter level, not the style level. so if you have a local style
8792 with a setter for Background, it doesn't overwrite the default
8793 style setters for, say, Foreground. We handle this by having two
8794 style providers, with the local style provider overriding the
8795 default style provider.
8797 * frameworkelement.cpp (FrameworkElement::FrameworkElement):
8798 initialize both of the style providers (at both LocalStyle and
8799 DefaultStyle levels.)
8800 (FrameworkElement::OnPropertyChanged): call ApplyStyle on the new
8801 style (so that values are converted in managed-land), and seal it
8802 at the local style level.
8803 (FrameworkElement::SetDefaultStyle): same blob here, but seal it
8804 at the default style level.
8806 * dependencyobject.cpp (DependencyObject::Initialize): pass
8807 precedences to the providers in their ctors, and also don't
8808 initialize a style provider here. This saves us from having a
8809 style provider on anything except frameworkelement subclasses.
8811 * mediaelement.h|.cpp, textbox.cpp, textblock.cpp: add the
8812 precedence ctor arg to property value providers.
8814 * provider.h: provider ctors now take both an object and a
8815 precedence level. that way they know what precedence level to
8816 notify changes on (this is mostly for the style provider, but it
8817 moves all the precedence level logic to the spot where we create
8818 the provider, not in the provider code itself.)
8820 * provider.cpp: add all the precedence ctor args.
8821 (StylePropertyValueProvider::SealStyle): call ProviderValueChanged
8822 with the precedence we were initialized with.
8823 (AutoCreatePropertyValueProvider::GetPropertyValue): same.
8825 2009-04-24 Alan McGovern <amcgovern@novell.com>
8827 * runtime.cpp: When a layer is being detached, don't try to
8828 invalidate its bounds if the active window has already been
8829 torn down. Fixes the case where a popup is open while the
8830 window is being torn down.
8832 2009-04-24 Alan McGovern <amcgovern@novell.com>
8835 * popup.cpp: When the popup is detached from the surface, it
8836 should automatically close if it is open.
8838 2009-04-23 Jeffrey Stedfast <fejj@novell.com>
8840 * layout.cpp (Layout): Silverlight 2.0 no longer starts plotting
8841 lwsp after going beyond the width constraint. Fixes the
8842 tests in the far right in MS DRT 206.
8844 2009-04-23 Jeffrey Stedfast <fejj@novell.com>
8846 * font.cpp (GetGlyphInfo): Don't special-case
8847 ZeroWidthNonBreakingSpace anymore. Rely on the font for this
8848 glyph. That seems to be what SL2 does now...
8850 * layout.cpp (layout_word_wrap): Fixed logic for word-joiners and
8851 implemenetd a forced-wrap if we can't find a suitable place to
8854 2009-04-23 Jeffrey Stedfast <fejj@novell.com>
8856 * layout.cpp (layout_word_wrap): Don't treat special numeric
8857 punctuation as the start of a numeric word until we see what lays
8860 2009-04-23 Jeffrey Stedfast <fejj@novell.com>
8862 * layout.cpp (layout_word_wrap): Don't ignore Zero-Width spaces
8863 anymore, that was a 1.0-thing and can no longer be used. Also
8864 added support for non-breaking-glue classes as well as rules for
8865 breaking on combining-marks, open-punctuation, contingents,
8866 quotations, prefixes, and words starting with an infix.
8868 2009-04-23 Chris Toshok <toshok@ximian.com>
8870 * animation.cpp|.h, clock.cpp|.h: remove
8871 OnSurfaceAttach/OnSurfaceDetach. They're no longer used.
8873 2009-04-23 Chris Toshok <toshok@ximian.com>
8875 * clock.cpp (ClockGroup::UpdateFromParentTime): cache the current
8876 clock state and use that to tell whether to update the child
8877 clocks on this tick. Clock::UpdateFromParentTime will change it
8878 out from under us, and child clocks won't get updated the last
8879 time when we switch to Filling or Stopped.
8881 2009-04-23 Chris Toshok <toshok@ximian.com>
8883 * animation.cpp (Animation::AllocateClock): remove the name
8884 setting from here, since it only works here if the target/property
8885 were set on the animation itself.
8886 (AnimationClock::HookupStorage): and move it here, when we know
8887 both the target and property.
8889 * multiscaleimage.cpp (MultiScaleImage::SetViewportWidth): use
8890 Class::Event instead of instance->Event. also set the name of the
8891 storyboard in debug mode.
8892 (MultiScaleImage::SetViewportOrigin): same.
8893 (motion_finished): make static.
8895 2009-04-23 Chris Toshok <toshok@ximian.com>
8897 * clock.cpp (ClockGroup::UpdateFromParentTime): only tick child
8898 clocks (not clockgroups, mind you) if we're active and not paused.
8899 Fixes animations reverting in lutz's deep zoom demo.
8901 2009-04-23 Jeffrey Stedfast <fejj@novell.com>
8903 Lots of fixage for MS DRT #209
8905 * layout.cpp (layout_word_wrap): Fixed for inseparables,
8906 exclamations, ambiguous, and postfix. Also removed the
8907 glyph->index == 0 hack that was there for Silverlight 1.0
8909 2009-04-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
8911 * dependencyobject.h:
8912 * dependencyobject.cpp: Add a way to mark allow objects to be
8913 deleted on any thread, not just the main thread.
8915 * pipeline.cpp: MediaClosures can be deleted on any thread.
8917 2009-04-22 Jeffrey Stedfast <fejj@novell.com>
8919 * layout.cpp (layout_word_wrap): Add a bit more logic for infix
8920 separators. Finishes off MSDRT 208.
8922 2009-04-22 Chris Toshok <toshok@ximian.com>
8924 * xaml.cpp (value_from_str): permit empty int32's (they're 0).
8925 add comment about empty doubles.
8927 2009-04-22 Chris Toshok <toshok@ximian.com>
8929 * xaml.cpp (dependency_object_add_child): guard against adding an
8930 empty Value to a resource dictionary. this happen when you have
8931 no content on a primitive type (<sys:Bool></sys:Bool>) and
8932 value_from_str can't deal with parsing an empty string.
8933 (value_from_str): for non-object/non-string types, we need to
8934 strip leading/trailing whitespace before attempting to parse. this
8935 allows things like: <sys:Bool> true </sys:Bool>
8936 (class XamlElementInstanceValueType): for empty elements the value
8937 will have never been set. try to set it here using an empty
8940 2009-04-22 Jeffrey Stedfast <fejj@novell.com>
8942 * textbox.cpp (OnPropertyChanged): Clamp our SelectionStart and
8943 SelectionLength values as they come in. Apparently this is what
8944 Silverlight does too.
8946 2009-04-22 Chris Toshok <toshok@ximian.com>
8948 * clock.h|cpp (Clock::UpdateFromParentTime): returns a bool now,
8949 with true meaning "i need another tick."
8950 (ClockGroup::UpdateFromParentTime): same.
8952 * timeline.cpp (DispatcherTimer::Start): use the timemanager to
8954 (DispatcherTimer::Run): use the root_clock's parent clock here to
8955 simplify the code a bit.
8956 (DispatcherTimer::~DispatcherTimer): same.
8958 * animation.cpp (Storyboard::BeginWithError): simplify this a bit.
8959 we don't care about groups, just add it to the deployment's
8962 * timemanager.h|cpp (class RootClockGroup): new class to represent
8963 the root clock group created by a time manager to house all other
8964 clocks in a surface. It has slightly different behavior from a
8965 noprmal clock group, particularly wrt putting the timemanager to
8967 (TimeManager::TimeManager): create a RootClockGroup.
8968 (TimeManager::RemoveTickCall): if we're putting the time manager
8969 to sleep, check to see if this was the last tick call, and clear
8970 the flag (and stop the source if the flags are now empty).
8971 (TimeManager::NeedRedraw): now that clock smoothing isn't used,
8972 source->SetTimerFrequency() can't be called with whatever timeout
8973 we like and have it migrrate back to the user-specified time. so
8974 change 0 to current_time.
8975 (TimeManager::NeedClockTick): same.
8976 (TimeManager::AddTickCall): same.
8977 (TimeManager::SourceTick): remove the #if'ed out version with
8978 clock smoothing, and add back in the stuff to put the time manager
8979 to sleep (currently ifdef'ed out still)
8980 (TimeManager::AddClock): move the logic to delay the root clock
8981 group here out of Storyboard::Begin. This is because we also want
8982 to do this with DispatcherTimers as well. Given that there is no
8983 TimeManager::GetRootClock anymore, this is the only api to add
8986 2009-04-22 Jeffrey Stedfast <fejj@novell.com>
8988 * layout.cpp (utf8_getc): When inptr goes beyond bounds, update
8989 the 'in' ptr to inend.
8991 * utils.cpp (CanonicalizeFilename): Fixed some undefined behavior.
8993 2009-04-22 Rusty Howell <rhowell@novell.com>
8995 * building libmoonxpi for the FF plugin
8997 2009-04-21 Chris Toshok <toshok@ximian.com>
9000 (InheritedPropertyValueProvider::GetPropertyValue): gross changes,
9001 but hopefully worth the hotspot reduction. do fast checks to see
9002 if we're even dealing with a property that's inheritable first.
9003 cache the Types* pointer instead of indirectly fetching it
9004 repeatedly (thanks to calling EO::Is - call Types::IsSubclassOf
9007 2009-04-21 Jeffrey Stedfast <fejj@novell.com>
9009 * glyphs.cpp (Layout): Fixed scaling calculation.
9011 * layout.cpp (Layout): Merged LayoutWrapWithOverflow, LayoutNoWrap
9012 and LayoutWrap. The different word-wrapping behaviors are, as
9013 before, handled in different subroutines but the outer loops are
9016 2009-04-20 Jeffrey Stedfast <fejj@novell.com>
9018 * textblock.cpp (SetTextInternal): Don't break the string into
9019 multiple inlines, Silverlight shoves the entire string into a
9020 single Run no matter what.
9021 (GetTextInternal): Map LineBreaks to the Unicode LineSeparator
9022 character instead of \n to match Silverlight behavior.
9024 * layout.cpp: Fixed various loops and checks to properly handle
9025 any type of unicode line-breaking character.
9027 2009-04-21 Alan McGovern <amcgovern@novell.com>
9029 * collection.h: HitTestCollection should override
9030 RemovedFromCollection the same way it overrides
9031 AddedToCollection so that items added/removed from the
9032 collection are not reparented.
9034 2009-04-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
9036 * deepzoomimagetilesource.cpp: Fix a crash in MS DRT #545.
9038 2009-04-20 Chris Toshok <toshok@ximian.com>
9040 * clock.cpp (Clock::UpdateFromParentTime): comment the hell out of
9041 this method. Also, don't multiply to compute localTime only to
9042 turn around and divide to compute normalizedTime. normalizedTime
9043 is always the factor we multiply natural_duration_timespan by.
9045 2009-04-20 Chris Toshok <toshok@ximian.com>
9047 * provider.h|cpp (AutoCreators::CreateDefaultFontSize): move the
9048 textblock autocreator here, and stop using TextBlock vs. Control
9049 for the font size names, as both textblock and controls have the
9050 varying font size. There's also no reason to make them public
9051 anymore. if you want the font size, just call GetFontSize().
9053 * control.h: FontSize uses an autocreator now, and remove the
9056 * textbox.cpp (TextBoxBase::Initialize): use GetFontSize() instead
9057 of the #define, and while we're at it just replace the other
9058 defines with calls to the getters too.
9060 * textblock.h|.cpp: remove the autocreator (it's in provider.cpp
9061 now), and the #define for font_size.
9063 * dependencyproperty.g.cpp: regen.
9065 2009-04-20 Chris Toshok <toshok@ximian.com>
9067 * security.c (security_enable_coreclr): version the
9068 MOON_DISABLE_SECURITY variable.
9070 2009-04-20 Jeffrey Stedfast <fejj@novell.com>
9072 * textblock.cpp (TextBlock): Removed cached TextFontDescription
9073 since it's only ever used in 1 place and even then it's a corner
9076 2009-04-20 Chris Toshok <toshok@ximian.com>
9078 * timeline.cpp: fix up DispatcherTimers after I broke them by
9079 removing the clock event.
9081 2009-04-19 Chris Toshok <toshok@ximian.com>
9083 * eventargs.h|.cpp: add RenderingEventArgs type.
9085 * timemanager.cpp (TimeManager::SourceTick): the render event
9086 takes a RenderEventArgs, even though the type of the event is
9087 EventHandler. Goes a long way toward fixing DRT #394 and fixes
9090 * type.h, type-generated.cpp, value.h, cbinding.h, cbinding.cpp:
9093 2009-04-19 Chris Toshok <toshok@ximian.com>
9095 * shape.cpp|.h (Shape::CreateDefaultStretch): create the proper
9096 default for the various shapes (Fill if a rectangle or ellipse,
9097 None for all other types). Fixes part of DRT #508.
9098 (Rectangle::Rectangle): don't set the default value as a local
9100 (Ellipse::Ellipse): same.
9102 2009-04-19 Jeffrey Stedfast <fejj@novell.com>
9104 * textblock.cpp (DefaultFontSize): New function to get the default
9105 font size for a TextBlock (or Inline) based on the Silverlight
9106 context (XAP vs XAML).
9108 2009-04-19 Chris Toshok <toshok@ximian.com>
9110 * provider.cpp (InheritedPropertyValueProvider::GetPropertyValue):
9111 inlines inherit their Language from the textblock, and textblocks
9112 inherit it from frameworkelements. part of fix for drt #952.
9114 2009-04-18 Chris Toshok <toshok@ximian.com>
9116 * clock.h|.cpp: move to the holy grail of a functional clock
9117 setup. this removes Clock::Tick and related additive machinery
9118 that introduces errors into various calculations. instead we use
9119 the fact that a child's time can be expressed as a function of its
9120 parent's time. more calculation per-frame, perhaps, but less
9121 problems wrt inflection points like autoreverse/repeat points.
9122 This removes *tons* of difficult to read and impossible to
9123 understand code, and brings clocks and clockgroups a lot closer.
9124 Docs coming soon to a source file near you.
9126 * timeline.h|.cpp: various clock-related changes. 2 notables are
9127 the fact that all Timelines have a completed event now instead of
9128 just storyboards (because Clocks are also emitting completed now,
9129 not just ClockGroups), and DispatcherTimers now subclass from
9130 Timeline instead of TimelineGroup. We also use a virtual method
9131 instead of an event handler for ticking DispatcherTimers.
9133 * animation.h|.cpp: more clock fallout. Also, rewrite
9134 HookupAnimationsRecurse so that we propagate the current
9135 target/property as parameters instead of requiring a search back
9136 up the tree at ever level.
9138 * timemanager.cpp: more clock rewrite stuff. Set the surface
9139 clockgroup's duration to forever instead of automatic, and switch
9140 from ->Tick to ->UpdateFromParentTime.
9142 * multiscaleimage.cpp: track changes to storyboard api (basically
9143 i removed the non-WithError methods.. maybe i should put them
9146 * cbinding.h|.cpp, type-generated.cpp: regen.
9148 2009-04-17 Jeffrey Stedfast <fejj@novell.com>
9150 * glyphs.cpp (Layout): Pass our StyleSimulations along to
9151 GetGlyphInfo() so that we can simulate Bold or Italics as the user
9154 * font.cpp (FontFace::LoadGlyph): Now takes a StyleSimulations
9155 argument (which defaults to None). Adjust the glyph for Bold
9156 and/or Italics if requested.
9157 (TextFont::GetGlyphInfo): Now takes a StyleSimulations
9158 argument (which defaults to None). When looking up the glyph in
9159 the cache, make sure that the simulations also match. When loading
9160 a new glyph, pass along the StyleSimulations.
9162 2009-04-17 Larry Ewing <lewing@novell.com>
9164 * runtime.cpp (Surface): remove references to removed variable.
9166 2009-04-17 Chris Toshok <toshok@ximian.com>
9168 * deployment.h|.cpp (class Deployment): add IsLoadedFromXap
9169 getter/setter here, and move XapLocation from surface to here.
9171 * runtime.h|.cpp: remove SetXapLocation/GetXapLocation.
9173 * downloader.cpp: use Deployment::GetXapLocation
9175 * cbinding.h|chinding.cpp: regen.
9177 2009-04-17 Jeffrey Stedfast <fejj@novell.com>
9179 * font.h: Changed the glyph cache size to be #defined rather than
9180 hard-coded everywhere.
9182 2009-04-17 Jackson Harper <jackson@ximian.com>
9184 * xaml.cpp: When we are setting the Name property use the same
9185 trick we are using for setting the x:Name property. Grabbing the
9186 parent element and making sure we get registered in that
9187 namescope. This isn't perfect, but should fix 95% of the managed
9190 2009-04-17 Alan McGovern <amcgovern@novell.com>
9193 * type-generated.cpp: Correctly mark Popup.Child as its
9196 2009-04-17 Geoff Norton <gnorton@novell.com>
9198 * media.cpp: Ensure that we invalidate the image if the
9199 BitmapImage has already been parsed (like from a SetSource call)
9201 2009-04-17 Geoff Norton <gnorton@novell.com>
9203 * error.cpp: Image errors use the code 4001, fixes #97
9205 2009-04-16 Jeffrey Stedfast <fejj@novell.com>
9207 * glyphs.cpp (Layout): Don't bail if we have something other than
9208 StyleSimulationsNone.
9210 * enums.h (enum StyleSimulations): Added Bold, Italic, and
9213 2009-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
9215 * pipeline.cpp: IMediaDemuxer::SetStreams: ref the streams. We
9216 already unref them upon destruction.
9218 2009-04-16 Jeffrey Stedfast <fejj@novell.com>
9220 * textblock.cpp (DownloaderComplete): Only invalidate/etc if any
9221 of our inlines' fonts have changed - if they all override the font
9222 family, then there's no need to redraw.
9224 2009-04-16 Jackson Harper <jackson@ximian.com>
9226 * dependencyobject.cpp: Unregister the old name when we set an
9229 2009-04-16 Sebastien Pouliot <sebastien@ximian.com>
9231 * openfile.cpp|h: Add a dialog requester to increase isolated
9232 storage quota. Add function to recursively compute the total size
9233 of a directory, which is used to check quota in IS.
9235 2009-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
9237 * deployment.cpp: mono_gc_invoke_finalizers may cause the
9238 current appdomain to change, so restore it afterwards. Fixes
9239 a rare, random crash upon shutdown.
9241 2009-04-15 Jeffrey Stedfast <fejj@novell.com>
9243 * textbox.cpp (TextBoxBase::DownloaderComplete): Instead of
9244 invalidating the TextBoxBase, we need to emit an event to let the
9245 TextBoxView know our font has changed.
9246 (TextBoxView::OnModelChanged): Reset state on the layout when the
9247 font changes (since it has no way of knowing that the font has
9250 * textblock.cpp (Inline::UpdateFontDescription): Return true if
9251 the font has changed or false otherwise.
9252 (TextBlock::UpdateFontDescriptions): If any of the fonts changed,
9253 return true and reset the state on the TextLayout.
9255 * font.cpp (TextFontDescription::Set*): Return true if the font
9256 has changed or false otherwise.
9258 * layout.cpp (TextLayout::ResetState): New method to reset the
9259 state of a TextLayout. Normally the state only gets reset if a
9260 layout property chanegs, but sometimes it is necessary to notify
9261 the TextLayout engine of a state change in one of the
9262 TextLayoutAttributes.
9264 2009-04-15 Jeffrey Stedfast <fejj@novell.com>
9266 * textbox.cpp (TextBoxBase::SetFontResource): If the font isn't a
9267 xap resource, download it from the web.
9269 * textblock.cpp (Inline::SetFontResource): If the font isn't a xap
9270 resource, download it from the web.
9272 2009-04-15 Larry Ewing <lewing@novell.com>
9274 * dirty.cpp (UpdateLayout): a quick hack to get popups sizing
9277 2009-04-15 Jeffrey Stedfast <fejj@novell.com>
9279 * layout.cpp (layout_word_wrap): The HANGUL enums weren't added to
9280 glib until 2.10, so so guard to allow building on systems with
9281 older versions of glib. Also merged BREAK_NEXT_LINE and
9282 BREAK_UNKNOWN into the BREAK_AFTER group.
9284 2009-04-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
9286 * runtime.cpp: Don't support versions of the type "1.0..0".
9287 Fixes a test case in MS DRT #21.
9289 2009-04-15 Stephane Delcroix <sdelcroix@novell.com>
9291 * downloader.cpp (Downloader::Open): fix the argument passed to
9294 2009-04-15 Alan McGovern <amcgovern@novell.com>
9296 * utils.cpp: We need to increment the pointer otherwise we
9299 2009-04-15 Stephane Delcroix <sdelcroix@novell.com>
9301 * downloader.cpp (Downloader::Open): make the relative uris relative to
9303 (check_redirection_policy, Downloader::Write): don't use
9304 uri->originalString, but uri->ToString ()
9306 2009-04-15 Stephane Delcroix <sdelcroix@novell.com>
9308 * runtime.h|cpp (Surface): xap_location, Get() and Set()
9310 2009-04-14 Jeffrey Stedfast <fejj@novell.com>
9312 * layout.cpp (layout_word_wrap): Fixed word-break logic for
9313 ambiguous break-types. Fixes second column of text in test #208.
9315 2009-04-14 Jeffrey Stedfast <fejj@novell.com>
9317 * layout.cpp (layout_word_wrap): Fixed word-breaking around a
9318 BREAK_BEFORE_AND_AFTER. Fixes one of the test cases in test #209.
9320 2009-04-14 Stephane Delcroix <sdelcroix@novell.com>
9322 * deepzoomimagetilesource.h: expose IsDownloaded()
9323 * multiscaleimage.cpp: download the tile source for the subimage before
9324 downloading the un-shared tiles.
9326 2009-04-14 Andreia Gaita <avidigal@novell.com>
9328 * pipeline-ffmpeg.cpp: check avcodec_decode_audio2 return value: 0
9329 indicates frame could not be decoded. fixes uninitialized buffer
9330 size leading to huge memory allocation and abort. kudos to
9331 Alp Toker for spotting this.
9333 2009-04-14 Jeffrey Stedfast <fejj@novell.com>
9335 * layout.cpp (layout_word_wrap): Added support for Hangul and
9336 ideographic word breaking. Improves test #208 quite a bit.
9338 2009-04-14 Larry Ewing <lewing@novell.com>
9341 * control.cpp (InsideObject): always return fals controls don't
9342 handle the testing. Fixes MSI navigation in
9343 http://playboy.covertocover.com/
9346 * panel.cpp: remove HitTest stubs.
9348 2009-04-14 Jeffrey Stedfast <fejj@novell.com>
9350 * layout.cpp (layout_word_wrap): Added logic to for breaking after
9351 more break-types including BREAK_AFTER, BREAK_HYPHEN, and
9352 BREAK_IDEOGRAPHIC in an effort to closer match Silverlight 2.0's
9353 behavior on test #206.
9355 2009-04-14 Jeffrey Stedfast <fejj@novell.com>
9357 * layout.cpp (utf8_strlen): Removed, this has never been sued.
9358 (utf8_find_last_word): Removed. No longer needed - Silverlight 2.0
9359 no longer has this wrapping bug.
9360 (layout_word_wrap): Don't need to check if we're at the last word
9361 in the textblock because Silverlight 2.0 fixed this bug.
9362 (FindLastWord): Removed, no longer needed.
9364 2009-04-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
9367 * playlist.cpp: Don't try to open the media if an error has
9370 2009-04-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
9374 * mediaelement.cpp: Check for markers with a timeout instead
9375 of after rendering a frame, this way markers also work with
9378 2009-04-14 Jackson Harper <jackson@ximian.com>
9380 * dependencyobject.cpp|h: Add a return value for SetName with
9381 namescope, returns false if there is an error.
9382 * xaml.cpp: Check the return value of SetName
9384 2009-04-14 Stephane Delcroix <sdelcroix@novell.com>
9386 * uri.cpp (Combine): strip leading ../ as we're already cutting the
9387 filename off the base uri
9389 2009-04-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
9407 * timemanager.cpp: Added @GeneratePInvoke to all methods used
9408 in managed code. For C++ methods also generate the
9409 corresponding C method.
9412 * cbinding.cpp: Regenerated.
9414 2009-04-13 Jeffrey Stedfast <fejj@novell.com>
9416 * textblock.cpp (SetFontResource): If we cannot get the resource
9417 from within the xap, then we need to spawn a downloader to fetch
9420 2009-04-13 Geoff Norton <gnorton@novell.com>
9422 * deployment.cpp: Turn on MONO_IOMAP=case until we fix the iomapping
9425 2009-04-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
9429 2009-04-12 Jeffrey Stedfast <fejj@novell.com>
9431 * debug.cpp (hexdump_addr): New function to help toshok print a
9432 hexdump of memory from gdb.
9434 * textbox.cpp (TextBoxBase::SetFontResource): Set the font
9435 filename/guid based on the resource provided.
9436 (TextBoxBase::OnPropertyChanged): If a font resource is named in
9437 the FontFamily property, then call SetFontResource() with the
9438 provided resource name.
9439 (TextBox::ClearFontSource): Clear the FontSourceProperty.
9440 (PasswordBox::ClearFontSource): Same.
9442 2009-04-11 Chris Toshok <toshok@ximian.com>
9444 * provider.h|.cpp, dependencyobject.cpp: get rid of
9445 PropertyPrecedence_Animation and the associated provider. in SL,
9446 animations are considered local values (and a choir of angels was
9447 heard moaning as they fell on their swords).
9449 2009-04-11 Jeffrey Stedfast <fejj@novell.com>
9451 * font.cpp: Don't reuse FT_Open_Args. Changed things to pass
9452 FT_Streams and setup their own FT_Open_Args instead. This solves
9453 the crasher problems in the silverlight2 test harness.
9455 * textblock.cpp (Inline::SetFontResource): New method to update
9456 our FontFilenameProperty and FontGUIDProperties.
9457 (Inline::OnPropertyChanged): Handle FontFamilyProperty changes
9458 that reference a resource.
9459 (Inline::UpdateFontDescription): Parse out the family name from
9460 the FontFamily::Source.
9462 2009-04-11 Jeffrey Stedfast <fejj@novell.com>
9464 * textblock.cpp (TextBlock::SetFontResource): Renamed from
9465 SetFontSource() to be more accurate.
9467 * font.cpp (OpenFaceByIndex): Don't leave any FT_Faces open on
9468 fail. This is probably what was causing the crash on
9471 * glyphs.cpp (SetFontResource): Now takes a Uri argument rather
9472 than a string and returns a bool argument hinting at whether we
9474 (OnPropertyChanged): Only fall back on creating a downloader for
9475 the font if the uri is not a resource.
9477 2009-04-11 Jackson Harper <jackson@ximian.com>
9479 * xaml.cpp: If we are hydrating we don't need the extra ref.
9481 2009-04-10 Jeffrey Stedfast <fejj@novell.com>
9483 * uri.cpp (ToString): Made to accept const Uri*
9485 * textblock.cpp (SetFontSource): Parse the resource string into a
9486 Uri and pass that along to GetResourceAsPath().
9488 * glyphs.cpp (SetFontResource): Parse the resource string into a
9489 Uri and pass that along to GetResourceAsPath().
9491 * bitmapimage.cpp (UriSourceChanged): Back to passing a Uri for
9494 * application.cpp (GetResource): Oops, this really does need a Uri
9496 (GetResourceAsPath): Use a Uri here too, and convert any ';' into
9499 2009-04-10 Jackson Harper <jackson@ximian.com>
9501 * xaml.cpp: Let the XamlElementInstances cleanup their Values.
9503 2009-04-10 Chris Toshok <toshok@ximian.com>
9505 * timemanager.cpp (TimeManager::SourceTick): just for kicks
9506 completely rip out the clock smoothing code, and also emit all
9507 tick calls (don't worry about how much time we're taking in them).
9508 Lastly, emit tick calls *before* rendering. we need to do this or
9509 else the Loaded event won't be posted before we draw (when we
9510 delay the loaded event, that is.) which leads to a great many
9511 VisualTreeWalker warnings, since Panel::OnLoaded adds the dirty
9512 flag for the initial children z-sorting.
9514 * collection.cpp (VisualTreeWalker::Step): add a special case for
9515 collection::count == index == 1, which is what we end up with on
9516 uielement's with a subobject. it won't be a collection child of a
9517 panel, so it'll never be z-sorted, but since it's only 1 element
9518 it doesn't need to be anyway.
9520 * canvas.h|.cpp: move OnLoaded, ElementAdded, and ElementRemoved
9521 to Panel. Also, move the ZIndex OnCollectionItemChanged code into
9524 * panel.h|.cpp: remove a couple of unused
9525 decls (ChildAdded/ChildRemoved) and add the stuff we moved out of
9528 2009-04-10 Jeffrey Stedfast <fejj@novell.com>
9530 * font.cpp (OpenFaceByIndex): New helper function split out from
9531 FontFace::LoadFontFace() which performs the FT_Open_Face() and
9532 family name matching.
9533 (OpenFaceByFamily): If we don't have an index, this function opens
9534 all faces in the file and finds a matching font face based on
9536 (LoadFontFace): Use our new helper functions.
9538 * textblock.cpp (SetFontSource): On fail, set the font filename to
9539 NULL and call UpdateFontDescriptions() no matter what.
9541 * font.cpp (UnsetFields): Allow unsetting of the font index.
9542 (Merge): Merge the index separately.
9543 (SetIndex): Set/unset the FontMaskIndex bit.
9545 * glyphs.cpp (SetFontResource): New internal method to set a font
9547 (OnPropertyChanged): Handle non-absolute Uris as resource streams.
9549 2009-04-10 Larry Ewing <lewing@novell.com>
9551 * multiscaleimage.cpp: add a translucency check before calling
9552 cairo_paint_with_alpha.
9554 2009-04-10 Jeffrey Stedfast <fejj@novell.com>a
9556 * textblock.cpp (SetFontSource): New method for setting a font
9557 source via a resource name.
9558 (OnPropertyChanged): When the FontFamily changes, parse out the
9559 resource name (if it exists) and set that as our font source.
9561 * bitmapimage.cpp (UriSourceChanged): Updated.
9563 * xap.cpp (Unpack): Use the new ExtractAll() convenience function.
9565 * application.cpp (GetResourceAsPath): New helper method to get a
9566 specified resource as a filesystem path.
9567 (GetResource): Now takes a resource name rather than a Uri.
9569 * utils.cpp (CanonicalizeFilename): New function to canonicalize a
9571 (ExtractAll): New helper function to extract all files from a zip
9572 archive into a specified directory.
9574 2009-04-10 Jeffrey Stedfast <fejj@novell.com>
9576 * textblock.cpp (CleanupDownloader): New helper method.
9577 (SetFontSource): Use CleanupDownloader() and also clear the
9578 FontSourceProperty since this will override that source.
9579 (OnPropertyChanged): Parse the FontFamily name.
9580 (DownloaderComplete): Use SetValue() correctly.
9582 * glyphs.cpp (CleanupDownloader): Remove the CompletedEvent
9585 2009-04-10 Sebastien Pouliot <sebastien@ximian.com>
9587 * security.c: Move #if MONO_ENABLE_CORECLR_SECURITY to remove
9588 all coreclr-related code from being compiled.
9590 2009-04-09 Chris Toshok <toshok@ximian.com>
9592 * uielement.cpp (UIElement::WalkTreeForLoaded): be more
9593 descriptive with the "attempting to use a null application" thing.
9595 * xaml.cpp (xaml_is_valid_event_name): sort these, and add a bunch
9596 that were missing. we need to make this less fragile, and have it
9597 use the event strings in type-generated.cpp.
9598 (end_element_handler): add more text to the line about attempting
9599 to use a null application, so we can differentiate it from the
9602 * timeline.h (class Timeline): BeginTime has, in fact, a default
9605 * dependencyproperty.g.cpp: regen.
9607 2009-04-09 Jeffrey Stedfast <fejj@novell.com>
9609 * textblock.h, textbox.h: Added FontSourceProperty.
9611 * value.cpp|h: Added FontSource support.
9613 * fontsource.h: Added.
9615 2009-04-09 Sebastien Pouliot <sebastien@ximian.com>
9617 * cbinding.cpp|h: regenerated
9618 * openfile.cpp|h: Add save_file_dialog_show to implement
9619 SaveFileDialog (SL3) and refactor the filter code to be shared.
9620 * runtime.cpp|h: Rename can_full_screen to user_initiated_event
9621 since we need it for SaveFileDialog (and elsewhere too). Rename
9622 setter and add a getter with a c binding.
9624 2009-04-09 Jackson Harper <jackson@ximian.com>
9626 * xaml.cpp|h: We need to create Value*'s from strings/files now
9627 instead of just creating dependencyobjects, it's legal to create a
9628 managed object from xaml that isn't a DOB.
9629 - Add a couple utility methods for creating just DOBs from
9631 * cbinding.cpp: regen
9634 * runtime.cpp: Updated method names
9636 2009-04-08 Geoff Norton <gnorton@novell.com>
9638 * downloader.cpp: Ensure that when someone subscribes to NotifySize
9639 they actually will get notified of the size.
9641 2009-04-08 Geoff Norton <gnorton@novell.com>
9643 * glyphs.cpp: Ensure we dont pass an unitialized pointer to
9644 TextFontDescription::SetFilename
9646 2009-04-08 Andreia Gaita <avidigal@novell.com>
9648 * dependencyobject.cpp: enable toggleref
9649 conditionally (MOONLIGHT_ENABLE_TOGGLEREF)
9651 2009-04-08 Jeffrey Stedfast <fejj@novell.com>
9653 * font.cpp (IndexFontSubdirectory): Don't try deobfuscating if it
9654 isn't a .odttf file.
9656 2009-04-08 Geoff Norton <gnorton@novell.com>
9658 * pipeline.cpp: Ensure we dont try to decode if our stream has been
9661 2009-04-08 Jeffrey Stedfast <fejj@novell.com>
9663 * downloader.cpp (validate_policy): Don't delete source here, we
9666 * glyphs.cpp (DownloaderComplete): Only bother setting a guid if
9667 the file extension is .odttf. Also no need to stat() anymore.
9669 * textblock.cpp (DownloaderComplete): Same.
9671 2009-04-08 Jeffrey Stedfast <fejj@novell.com>
9673 * provider.cpp (InheritedPropertyValueProvider): We need to
9674 inherit FontGUIDProperty for Inlines as well.
9676 * file-downloader.cpp|h: Cleaned up a bit, no longer needs font
9677 deobfuscation features.
9679 * glyphs.cpp (DownloaderCompleted): Don't need to call
9680 downloader_deobfuscate_font() anymore. We only need to get the
9681 GUID to set on the FontDescription.
9683 * textblock.cpp (DownloaderCompleted): Same.
9685 * font.cpp: Implemented our own FT_Stream that can handle reading
9686 obfuscated fonts directly without the need to rewrite the file
9688 (TextFontDescription): Now has a GUID property for Glyphs and
9691 * downloader.cpp: Fixed to autogenerate the accessors and changed
9692 the UriProperty type to a Uri to be consistent with other classes.
9693 (GetDownloadedFilename): Work around the Mozilla 64k bug here too.
9695 2009-04-08 Geoff Norton <gnorton@novell.com>
9697 * deployment.cpp: Ensure that we restore to the current MonoDomain
9698 after creating a new deployment.
9700 2009-04-08 Stephane Delcroix <sdelcroix@novell.com>
9702 * multiscaleimage.h|cpp: Set IsDownloading property according to the
9703 status of the downloaders
9705 2009-04-08 Stephane Delcroix <sdelcroix@novell.com>
9707 * multiscaleimage.cpp (MultiScaleImage::RenderSingle,
9708 MultiScaleImage::RenderCollection): do not start any new download if
9709 AllowDownlodingProperty is false.
9711 2009-04-08 Stephane Delcroix <sdelcroix@novell.com>
9713 * multiscaleimage.h|cpp: impplement missing LogicalToElementPoint
9715 2009-04-08 Stephane Delcroix <sdelcroix@novell.com>
9717 * multiscaleimage.cpp: if downloading a tile fail, cache a NULL surface
9720 2009-04-08 Stephane Delcroix <sdelcroix@novell.com>
9722 * multiscaleimage.cpp: some additional debug info printing the state of
9725 2009-04-07 Chris Toshok <toshok@ximian.com>
9727 * provider.cpp (InheritedPropertyValueProvider::GetPropertyValue):
9728 almost had it that last time. In the case where the parent has
9729 that property, use GetValue on it instead of ReadLocalValue, which
9730 won't pick up styles.
9732 2009-04-07 Chris Toshok <toshok@ximian.com>
9734 * provider.cpp (InheritedPropertyValueProvider::GetPropertyValue):
9735 rewrite this substantially to make it work correctly and be more
9736 efficient. we no longer look up the hierarchy for properties
9737 which aren't inheritable, and we only loop up the visual tree, not
9738 the logical one (since that has issues when it comes to
9740 (get_parent): nuke, it was a broken way to deal with parents.
9742 2009-04-07 Chris Toshok <toshok@ximian.com>
9744 * uielement.h|.cpp (class UIElement): scrap that ill-advised
9745 AutoCreator crap. it's much simpler. the default is actually
9746 NULL, and the managed layer does the stupid mapping from NULL to
9747 new MatrixTransform.
9749 2009-04-07 Chris Toshok <toshok@ximian.com>
9751 * uielement.h|.cpp (class UIElement): use an AutoCreator for
9752 RenderTransformProperty.
9754 * dependencyproperty.g.cpp: regen.
9756 2009-04-07 Larry Ewing <lewing@novell.com>
9758 * grid.cpp (MeasureOverride): use the star fraction of the
9759 available size when measuring.
9761 * border.cpp: restrict the return value to available size.
9763 2009-04-07 Geoff Norton <gnorton@novell.com>
9765 * pipeline.cpp|h: Ensure that we can post ReportSeekCompleted back
9766 to the media thread from any thread. Fixes seeking on SmoothHD
9769 2009-04-07 Geoff Norton <gnorton@novell.com>
9771 * bitmapimage.cpp|h: Ensure we stop getting events from any
9772 active downloaders once we're disposed.
9773 * brush.cpp|h: Ensure we stop getting events from any
9774 active BitmapImages once we're disposed.
9776 2009-04-07 Jeffrey Stedfast <fejj@novell.com>
9778 * glyphs.cpp (CleanupDownloader): New helper method.
9779 (DownloadFont): Don't delete the uri after we're done, we do not
9781 (OnPropertyChanged): Use Uri::IsNullOrEmpty().
9783 2009-04-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
9785 * runtime.cpp: layers is an EventObject, unref instead of
9788 * collection.h: Have a protected dtor so that nobody can
9789 delete this class directly ever again.
9791 2009-04-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
9793 * runtime.cpp: Add a few null checks.
9795 2009-04-07 Stephane Delcroix <sdelcroix@novell.com>
9797 * application.cpp: uri->ToString() allocates memory, free it after
9800 2009-04-06 Chris Toshok <toshok@ximian.com>
9802 * runtime.cpp|.h (Surface::Attach): split this method effectively
9803 in half: stuff we do before the loaded events are fired, and stuff
9804 we do after. The second half is in Surface::ToplevelLoaded. This
9805 fixes playboy.covertocover.com coming up, as the alert that
9806 vertigo pops up via Surface::LoadEvent was causing a sub-mainloop
9807 to screw with our async events.
9809 2009-04-06 Chris Toshok <toshok@ximian.com>
9811 * uielement.cpp|.h (UIElement::GetTransformToUIElementWithError):
9812 flesh this method out some. I don't like the walks we have to do
9813 here. Also, rename this to *WithError so we can report the error
9814 back to managed land from here instead of doing it in C#.
9816 * cbinding.cpp|.h: regen.
9818 2009-04-06 Chris Toshok <toshok@ximian.com>
9820 * dependencyobject.cpp (DependencyObject::ProviderValueChanged):
9821 in case we didn't notify listeners, output the moon error if there
9824 2009-04-06 Chris Toshok <toshok@ximian.com>
9826 * xaml.cpp (value_from_str): quiet spew (which in this case
9827 indicates an error when there isn't one.)
9829 2009-04-06 Chris Toshok <toshok@ximian.com>
9831 * brush.h: include imagesource.h, not bitmapimage.h
9833 * brush.cpp: include bitmapimage.h here.
9835 2009-04-06 Geoff Norton <gnorton@novell.com>
9837 * bitmapimage.cpp: Stop leaking the resource here.
9839 2009-04-06 Geoff Norton <gnorton@novell.com>
9841 * codec-version.h.in: Bump
9843 2009-04-06 Geoff Norton <gnorton@novell.com>
9845 * application.cpp: We want ToString here, not just the path of the
9847 * bitmapimage.cpp|h: We need to do this async, since the events
9848 might be registered in managed code before a yield.
9850 2009-04-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
9852 * security.c: Add jtr.dll to the list of platform assemblies,
9853 it's an assembly used by managed tests which contains unsafe
9854 code and pinvoke methods.
9856 2009-04-06 Stephane Delcroix <sdelcroix@novell.com>
9858 * multiscaleimage.h: ad the 3.0 DPs and property accessors
9860 2009-04-05 Chris Toshok <toshok@ximian.com>
9862 * easing.cpp|.h: add EasingFunctionBase::SetEasingFunction so that
9863 managed subclasses can register a delegate.
9865 * cbinding.cpp|.h: regen.
9867 2009-04-04 Geoff Norton <gnorton@novell.com>
9869 * mediaplayer.cpp: Ensure that we invalidate for planar data as well.
9871 2009-04-04 Geoff Norton <gnorton@novell.com>
9873 * pipeline.cpp|h: Support YV12 from MediaStreamSource as well
9875 2009-04-04 Geoff Norton <gnorton@novell.com>
9877 * media.h: Removed unused define
9878 * mediaplayer.cpp|h: We need to support RGBA video formats now, so
9879 lets track what the decoder is giving us (pass-thru is the only decoder
9880 which will provide RGBA from MSS, we still pass around yuv and rgb
9881 internally). If the format is RGBA we have to incur a one-frame penalty
9882 to recreate our cairo surfaces.
9883 * pipeline.cpp|h: Support RGBA pixel formats. Don't support RGB from
9884 MediaStreamSource. Mark the pass-thru frames as decoded.
9886 2009-04-04 Chris Toshok <toshok@ximian.com>
9888 * animation.h|.cpp: add Easing{Color,Double,Point}KeyFrame types.
9890 * type.h, type-generated.cpp, dependencyproperty.g.cpp, value.h,
9891 cbinding.h|.cpp: regen.
9893 2009-04-03 Chris Toshok <toshok@ximian.com>
9895 * animation.h: add EasingFunctionProperty to
9896 Color/Double/PointAnimation.
9898 * animation.cpp (DoubleAnimation::GetCurrentValue): if there's an
9899 easing function, apply it to progress.
9900 (ColorAnimation::GetCurrentValue): if there's an easing function,
9901 apply it to progress.
9902 (PointAnimation::GetCurrentValue): if there's an easing function,
9903 apply it to progress.
9905 * easing.h, easing.cpp: implementations of all the easing
9906 functions. still missing are BounceEase and ElasticEase.
9908 * enums.h, enums.cpp (enum EasingMode): new enum.
9910 * Makefile.am: add easing.h/easing.cpp
9912 * type.h, type-generated.cpp, cbinding.h|.cpp,
9913 dependencyproperty.g.cpp, value.h: regen.
9915 2009-04-03 Geoff Norton <gnorton@novell.com>
9917 * multiscaleimage.cpp: Guard against 0x0 MSI's to prevent a cairo bug
9918 which renders garbage on the screen on amd64.
9920 2009-04-03 Aaron Bockover <abockover@novell.com>
9924 * dependencyproperty.g.cpp:
9925 * cbinding.cpp: Add generated binding for Surface::GetToplevel, needed
9926 by Moonlight.Gtk.XamlHost
9928 2009-04-03 Larry Ewing <lewing@novell.com>
9931 * popup.cpp: Make sure that we hide any active layers when Child
9932 changes and that we show any new ones. Fixes part of
9933 PopupExample2. Give IsOpen a default value.
9937 2009-04-03 Chris Toshok <toshok@ximian.com>
9939 * animation.h: remove a couple of ancient (and unused) method and
9940 function declarations, and re-order
9941 public/private/protected (seriously, this makes my eyes bleed.)
9942 Also move the "internal classes" to the end.
9944 2009-04-03 Chris Toshok <toshok@ximian.com>
9946 * clock.cpp (Clock::Begin): remove the COMPATABILITY_BUGS stuff,
9947 since that's for compatability with 1.0, which we no longer are.
9949 2009-04-03 Alan McGovern <amcgovern@novell.com>
9951 * textbox.h: TextBox does validation in both the getter and
9952 setter of its TextProperty, so we have to manually implement
9955 2009-04-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
9957 * security.c: Include "config.h" to get
9958 MONO_ENABLE_CORECLR_SECURITY.
9960 2009-04-02 Aaron Bockover <abockover@novell.com>
9962 Do not build code that requires Mono 2.5 or better in the case where
9963 we want Moonlight to run only in an embedded desktop app scenario; in
9964 this case, CoreCLR security and non-default app domains are not needed
9966 * security.c (security_enable_coreclr): If MONO_ENABLE_CORECLR_SECURITY
9967 is not defined, this function is now a noop
9969 * deployment.cpp: If MONO_ENABLE_APP_DOMAIN_CONTROL is not defined, do
9970 not implement app domain loading/unloading; factor out all common init
9971 code that was duplicated in both ctors into InnerConstructor
9973 * deployment.h: Define InnerConstructor
9975 2009-04-02 Larry Ewing <lewing@novell.com>
9978 * uielement.cpp: move the bulk of the paint ftb logic from surface
9979 to here since we will be using this in more places. Make some of
9980 the ftb logic protected now.
9983 * writeablebitmap.h:
9984 * writeablebitmap.cpp: Land Geoff's initial Render implementation
9989 2009-04-02 Larry Ewing <lewing@novell.com>
9993 * runtime.cpp: Treat full_screen_message as another layer. Make
9994 sure that we mark layers as loaded. Popups should render now.
9996 2009-04-02 Alan McGovern <amcgovern@novell.com>
9998 * runtime.cpp: the real toplevel element must always be at
9999 position 0 in the layers list. Fixes the situation where we
10000 open a popup before setting attaching the surface.
10002 2009-04-02 Stephane Delcroix <sdelcroix@novell.com>
10004 * multiscaleimage.h|cpp: use *AnimationUsingKeyFrames instead of
10005 linear animation, animate for 4 secs instead of .4, use steep spline
10006 to start fast finish smoothly. For botn panning and zooming.
10008 2009-04-02 Alan McGovern <amcgovern@novell.com>
10012 * dependencyproperty.g.cpp: The Child property has similar
10013 validation to a ContentControl. Fixes three tests.
10015 2009-04-02 Alan McGovern <amcgovern@novell.com>
10024 * dependencyproperty.g.cpp: Popups are treated as top level
10025 elements which are rendered on top of all other elements. To
10026 handle this a list of all toplevel elements (layers) is kept
10027 in the surface. Mouse events are captured within a toplevel
10028 element and not visible to other toplevel elements.
10030 2009-04-01 Stephane Delcroix <sdelcroix@novell.com>
10032 * multiscaleimage.cpp (ZoomAboutLogicalPoint): zoom around the point,
10033 not to the center of the control
10035 2009-04-01 Andreia Gaita <avidigal@novell.com>
10037 * window-gtk.cpp: Only connect the scroll-event signal if we're
10038 not running on the desktop (otherwise, gecko won't get the
10041 2009-04-01 Stephane Delcroix <sdelcroix@novell.com>
10043 * uri.h: no longer expose GetOriginalString(), it leads to buggy
10046 2009-04-01 Stephane Delcroix <sdelcroix@novell.com>
10048 * mediaelement.cpp:
10050 * deepzoomimagetilesource.cpp: g_free the memory allocated by
10053 2009-04-01 Chris Toshok <toshok@ximian.com>
10055 * window-gtk.cpp (MoonWindowGtk::button_press): reinstate
10056 the (desktop extension -ized) button check here. this wouldn't be
10057 necessary if the plugin could insert its signal handler before the
10058 window's, but alas, gtk...
10060 2009-04-01 Stephane Delcroix <sdelcroix@novell.com>
10062 * application.cpp (GetResource): use the uri path, not
10065 2009-04-01 Jeffrey Stedfast <fejj@novell.com>
10067 * expression.cpp|h: Removed from the build.
10068 not running on the desktop (otherwise, gecko won't get the
10071 2009-04-01 Chris Toshok <toshok@ximian.com>
10073 * runtime.cpp (Surface::HandleUIButtonRelease): if desktop
10074 extensions are turned on, allow button 3 (right mouse).
10075 (Surface::HandleUIButtonPress): same.
10077 * window-gtk.cpp (MoonWindowGtk::button_release): don't suppress
10078 non-button 1 presses here.
10080 2009-04-01 Chris Toshok <toshok@ximian.com>
10082 * eventargs.cpp (MouseWheelEventArgs::GetWheelDelta): flip the
10083 sign here so we have the same behavior that lutz's demo expects
10086 2009-04-01 Geoff Norton <gnorton@novell.com>
10088 * uri.cpp|h: Add IsNullOrEmpty
10089 * bitmapimage.cpp: Clean up this call to use Uri::IsNullOrEmpty
10091 2009-04-01 Geoff Norton <gnorton@novell.com>
10093 * bitmapimage.cpp: Ensure we deregister the events too.
10095 2009-04-01 Geoff Norton <gnorton@novell.com>
10097 * bitmapimage.cpp: If the UriSource is changed, then we should abort
10098 and clean up any existing downloaders.
10100 2009-04-01 Geoff Norton <gnorton@novell.com>
10102 * brush.cpp: ImageSource is a nullable property so we need to new
10103 one up here if we dont have one already.
10105 2009-04-01 Stephane Delcroix <sdelcroix@novell.com>
10107 * multiscaleimage.h|.cpp: reuse BitmapImage for tile downloading
10108 and creating cairo surfaces.
10110 2009-04-01 Stephane Delcroix <sdelcroix@novell.com>
10112 * bitmapimage.cpp: compare uri against its DefaultValue on UriSource
10115 2009-04-01 Chris Toshok <toshok@ximian.com>
10117 * uielement.h (class UIElement): add
10118 MouseRightButton{Down,Up}Event and MouseWheelEvent.
10120 * runtime.cpp|.h (RUNTIME_INIT_DESKTOP): enable desktop
10122 (Surface::HandleUIScroll): new method, emit a MouseWheelEvent.
10124 * eventargs.cpp|.h (class MouseWheelEventArgs): new class.
10126 * window-gtk.cpp|.h (MoonWindowGtk::scroll): new method for mouse
10128 (MoonWindowGtk::EnableEvents): connect the scroll-event.
10129 (MoonWindowGtk::InitializeCommon): if desktop extensions are
10130 enabled, add GDK_SCROLL_MASK.
10132 * xaml.cpp (xaml_is_valid_event_name): if we're running with
10133 desktop extensions, expose the right button events and mouse
10136 * value.h, cbinding.h, cbinding.cpp, type-generated.cpp: regen.
10138 2009-03-31 Jeffrey Stedfast <fejj@novell.com>
10140 * enums.h: Well what do ya know... TextWrapping enum wasn't the
10141 same as the TextWrapping.cs enum, this is likely the case of some
10142 text layout wonkyness.
10144 * textblock.cpp (TextBlock::MeasureOverride): Set the
10145 ActualWidth/Height DP values here after calling Layout(), this
10146 seems to be what Silverlight does (can't be set in FWE::Measure()
10147 because it doesn't have the actual extents, it just has the
10148 desiredSize). Also don't reset dirty back to true after laying out
10150 (TextBlock::Layout): Restructured slightly.
10152 2009-03-31 Stephane Delcroix <sdelcroix@novell.com>
10154 * bitmapimage.cpp: use Uri::ToString () instead of OriginalString, as
10155 originalstrings aren't updated on Uri::Combine ().
10157 2009-03-31 Stephane Delcroix <sdelcroix@novell.com>
10159 * bitmapimage.h: Set a DefaultValue for ProgressProperty
10161 2009-03-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
10163 * src.mdp: Updated some project files.
10165 2009-03-31 Stephane Delcroix <sdelcroix@novell.com>
10167 * multiscaleimage.cpp: Invalidate on ZIndex change, or on subimages
10170 2009-03-31 Stephane Delcroix <sdelcroix@novell.com>
10172 * multiscaleimage.h|.cpp: remove the AddTickCall workaround for
10173 the race while emitting ImageOpenSucceded. Test if the source is
10174 a deepzoom before casting (avoid g_warnings on the console). Change a
10177 2009-03-30 Chris Toshok <toshok@ximian.com>
10179 * timemanager.cpp|.h: split this out from clock.cpp|.h
10181 * animation.cpp, clock.cpp, clock.h, dependencyobject.cpp,
10182 libmoon.h, mediaplayer.cpp, runtime.cpp, textbox.cpp,
10183 timeline.cpp, uielement.cpp: track the above change.
10185 * Makefile.am: add timemanager.cpp|.h
10187 * cbinding.h, type-generated.cpp: regen
10189 2009-03-30 Geoff Norton <gnorton@novell.com>
10191 * bitmapsource.cpp: When caching a native surface ensure we dont
10192 destroy it on every GetSurface pass, but we do clean it up in
10195 2009-03-30 Chris Toshok <toshok@ximian.com>
10197 * application.h, border.h, contentcontrol.h, control.h,
10198 cornerradius.h, deployment.h, expression.h, frameworkelement.h,
10199 grid.h, multiscaleimage.h, size.h, style.h, template.h, textbox.h,
10200 transform.h, type.h, usercontrol.h: remove @SilverlightVersion
10201 metadata attributes.
10204 2009-03-30 Chris Toshok <toshok@ximian.com>
10206 * downloader.h: add pinvokes for a few of the downloader_* C
10209 * clock.h|.cpp (class TimeManager): add a CBinding/PInvoke for
10210 AddTickCall, and remove the manual implementation.
10212 * dependencyobject.h (class EventObject): add a PInvoke for
10213 event_object_get_surface.
10215 * cbinding.h, cbinding.cpp: regen
10217 2009-03-30 Sebastien Pouliot <sebastien@ximian.com>
10219 * security.c: Ensure mono_assembly_setrootdir is always called
10220 while enabled coreclr is dependent on the MOON_DISABLE_SECURITY
10221 variable and the availability of a platform directory.
10223 2009-03-30 Geoff Norton <gnorton@novell.com>
10225 * brush.h: Brush.ImageSource is stupid, and of course not consistent
10227 * bitmapimage.cpp: Nuke some debug spew.
10228 * dependencyproperty.g.cpp: Funky cold medina.
10230 2009-03-30 Larry Ewing <lewing@novell.com>
10232 * brush.cpp (OnPropertyChanged): check for the right property and
10233 fixup a harmless typo.
10235 * media.cpp (OnPropertyChanged): fixup a (harmless) logic typo
10237 2009-03-30 Jeffrey Stedfast <fejj@novell.com>
10239 * font.cpp (FontFace::GetExtents): Instead of calculating our
10240 ascent/descent and height values from 2 different ways, calculate
10241 ascent/descent the same way we calculated height. This seems to
10242 give slightly more accurate results (previous logic rounded up to
10243 the nearest whole pixel for ascent/descent).
10245 2009-03-30 Geoff Norton <gnorton@novell.com>
10247 * media.h: Hide some API that never should have been public.
10248 * media.cpp: ImageBrush no longer uses a image internally.
10249 * bitmapimage.cpp|h: Part name is a const char * since we dup
10251 * brush.cpp|h: Migrate away from using a Image internally
10252 and consume the new BitmapImage API.
10254 2009-03-30 Geoff Norton <gnorton@novell.com>
10256 * bitmapimage.cpp: Ensure we fall back to downloading if we
10257 cannot find the image as a resource.
10259 2009-03-30 Chris Toshok <toshok@ximian.com>
10261 * deployment.h|.cpp: combing the desktop and browser cases (the
10262 desktop case coming from jeff's patch) into one method, where the
10263 different root_domain behavior is determined by the boolean
10266 * runtime.cpp (runtime_init): pass an initial boolean to
10267 Deployment::Initialize to tell whether or not we should create the
10268 root domain (i.e. whether or not we should initialize mono.)
10269 (RUNTIME_INIT_BROWSER): add RUNTIME_INIT_CREATE_ROOT_DOMAIN.
10271 2009-03-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
10273 * security.c: Revert latest fix, the buildbots aren't ready
10276 2009-03-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
10278 * security.c: Always call mono_assembly_setrootdir, even if
10279 CoreCLR is disabled. This should fix buildbots where
10280 mono/mcs and moonlight are installed into different
10283 2009-03-30 Geoff Norton <gnorton@novell.com>
10285 * media.cpp: Stop leaking a cairo pattern in Image::Render
10287 2009-03-30 Stephane Delcroix <sdelcroix@novell.com>
10289 * deepzoomimagetilesource.cpp: revert latest change, don't advance
10290 twice. Fixes collections.
10292 2009-03-29 Chris Toshok <toshok@ximian.com>
10294 * provider.cpp (AutoCreatePropertyValueProvider::GetPropertyValue):
10295 add a sanity check here to make sure the autocreated value is of a
10298 * animation.h|.cpp: remove the /*Timeline*/ comments from
10299 everywhere -- stop pretending the type names are the same as WPF.
10301 2009-03-29 Geoff Norton <gnorton@novell.com>
10303 * media.cpp: Ensure that the ImageSource we get is a BitmapImage
10304 before treating it as such.
10306 2009-03-29 Geoff Norton <gnorton@novell.com>
10308 * Makefile.am, bitmapimage.cpp|h, bitmapsource.cpp|h,
10309 writeablebitmap.cpp|h, brush.cpp, enums.h, eventargs.cpp|h,
10310 imagesource.cpp|h, media.cpp|h, mediaplayer.h, pipeline.cpp:
10311 Update the image based source to have a properly implemented
10312 BitmapImage. I've also moved all this code to the SL3 API which
10313 injects a BitmapSource in between ImageSource and BitmapImage,
10314 and adds support for WriteableBitmap.
10316 Basically now all the cairo logic lives in ImageSource and
10317 BitmapSource. All the pixbuf loader logics and downloader logic
10318 is isolated in BitmapImage.
10320 * cbinding.cpp|h, dependencyproperty.g.cpp, type-generated.cpp,
10321 type.h, value.h: Regenerate
10323 2009-03-29 Chris Toshok <toshok@ximian.com>
10325 * provider.h, provider.cpp, dependencyproperty.h: change
10326 AutoCreator signature to take the DependencyObject as the first
10329 2009-03-29 Chris Toshok <toshok@ximian.com>
10331 * dependencyproperty.h|.cpp: rework the autocreate functionality.
10332 instead of a boolean flag, we pass a function pointer. We keep
10333 IsAutoCreated() around (just func != NULL) and add
10334 GetAutoCreator() so the AutoCreateProvider can call the method
10335 when it needs a value.
10337 Also, remove the empty ctor since it doesn't initialize any
10338 fields (and it also isn't called.)
10340 * provider.h (class AutoCreators): new class, containing the
10341 default autocreator which just calls type->CreateInstance().
10343 * provider.cpp (AutoCreatePropertyValueProvider::GetPropertyValue):
10344 call the property's AutoCreator function if there is one.
10345 (AutoCreators::default_autocreator): new function for the default
10346 case. basically some code that was ripped out of
10349 * dependencyproperty.g.cpp: regen.
10351 2009-03-29 Chris Toshok <toshok@ximian.com>
10353 * uielement.cpp (UIElement::OnLoaded): now that we don't walk the
10354 tree in OnLoaded, don't do anything at all if we're already
10357 2009-03-29 Chris Toshok <toshok@ximian.com>
10359 * eventargs.h: consistenfy everything, and make
10360 CollectionChangedEventArgs fields private, not public. add
10363 * dependencyobject.h (PropertyChangedEventArgs): make
10364 old_value/new_value private and add accessors.
10366 * *.cpp|.h: track the above changes.
10368 2009-03-29 Chris Toshok <toshok@ximian.com>
10370 * dependencyproperty.h|.cpp: rename AutoCreate to IsAutoCreated.
10372 * dependencyobject.cpp:, provider.cpp: track above change.
10374 2009-03-28 Sebastien Pouliot <sebastien@ximian.com>
10376 * deployment.cpp|h (Initialize): If a platform directory is
10377 specified then we initialize the CoreCLR security model.
10378 * runtime.cpp|h: Initialize the runtime using the plugin
10379 directory (when applicable, i.e. browser mode).
10380 * security.c|h: New. Handle the CoreCLR security model
10381 initialization and platform code detection.
10382 * Makefile.am: Add security.[c|h] to the build
10384 2009-03-28 Jeffrey Stedfast <fejj@novell.com>
10386 * frameworkelement.cpp (OnPropertyChanged): Instead of setting
10387 ActualWidth/Height to 0 in the non-LayoutContainer case, use
10388 ClearValue() those properties instead. Fixes some TextBlock cases.
10390 * textblock.cpp (GetSize): Check isnan() rather than 0.
10391 (Render): The dirty flag should never be set at this point, so
10392 don't bother with it. Set TextLayout's AvailableWidth to our
10394 (ArrangeOverride): Don't set dirty back to true after we've
10395 arranged, this is why dirty was true in ::Render()
10397 2009-03-27 Jeffrey Stedfast <fejj@novell.com>
10399 * textblock.cpp (Layout): Fixed the special-case logic. If no text
10400 has ever been set, then the extents should be 0,0. However, if
10401 they have ever been set but the text is currently empty, then use
10402 the font height as the ActualHeight value. Use a state variable to
10403 check if the text has ever been set rather than trying to check
10404 other things which are not reliable.
10406 2009-03-27 Jeffrey Stedfast <fejj@novell.com>
10408 * size.h (Size::GrowBy): If the width or height are infinite going
10409 in, then leave them infinite going out.
10411 * textblock.cpp (TextBlock::GetSize): New method to get the
10413 (TextBlock::Render): Use GetSize() instead of GetRenderSize().
10414 (class TextBlockDynamicPropertyValueProvider): Same.
10416 2009-03-27 Chris Toshok <toshok@ximian.com>
10418 * uielement.h (class UIElement): add LostMouseCaptureEvent.
10420 * type-generated.cpp: regen.
10422 2009-03-27 Stephane Delcroix <sdelcroix@novell.com>
10424 * multiscaleimage.h|.cpp: sort the subimages by ZIndex, Invalidate on
10425 subimage collection items changed.
10427 2009-03-27 Stephane Delcroix <sdelcroix@novell.com>
10429 * multiscalesubimage.h|.cpp:
10430 * multiscaleimage.cpp: remove the link to msi parents and don't try to
10431 Invalidate from subimage.
10433 2009-03-27 Stephane Delcroix <sdelcroix@novell.com>
10435 * collection.cpp: do not use generated cbinding in
10436 MultiScaleSubImageZIndexComparer.
10438 2009-03-27 Stephane Delcroix <sdelcroix@novell.com>
10440 * multiscalesubimage.h: set a default ZIndex value
10442 2009-03-27 Jeffrey Stedfast <fejj@novell.com>
10444 * textblock.cpp (TextBlock::UpdateLayoutAttributes): New method to
10445 update the TextLayout's text and attributes.
10446 (TextBlock::OnPropertyChanged): If the Text or Inlines properties
10447 change, immediately call UpdateLayoutAttributes().
10448 (TextBlock::Layout): No longer sets up the TextLayout's attributes
10449 as this is already done. Also no longer takes a cairo_t argument
10450 since it's never used, instead it now takes a Size constraint
10452 (TextBlock::CalcActualWidthHeight): Removed, no longer needed.
10453 (TextBlock::MeasureOverride): Rewritten / simplified.
10454 (TextBlock::ArrangeOverride): Same.
10455 (class TextBlockDynamicPropertyValueProvider): Updated.
10456 (TextBlock::OnCollectionItemChanged): Call UpdateFontDescription
10457 on the Inline that changed.
10458 (TextBlock::UpdateFontDescriptions): New method to update the font
10459 descriptions on all inlines.
10460 (TextBlock::OnPropertyChanged): Update the font descriptions on
10461 all inlines whenever a font property changes.
10462 (TextBlock::SetFontSource): Call UpdateFontDescriptions().
10463 (TextBlock::DownloaderComplete): Same.
10465 * textbox.cpp (TextBoxView::Render): Set the layout's
10466 AvailableWidth to the render size width.
10467 (TextBoxView::Layout): Don't worry about constraint.width being
10468 INFINITY anymore, TextLayout() now handles INFINITY.
10470 * layout.cpp: Instead of using -1.0 to mean 'unset' for extents
10471 and max width/height constraints, use NAN and
10472 INFINITY (respectively). This will prevent TextBox/Block from
10473 having to use hacks if their width/height constraints are
10475 (TextLayout::HorizontalAlignment): Since MaxWidth might be
10476 INFINITY, we need to base this on a new property called
10477 AvailableWidth, which is the width available for rendering (where
10478 MaxWidth is only used for wrapping).
10480 2009-03-27 Jeffrey Stedfast <fejj@novell.com>
10482 * deepzoomimagetilesource.cpp (DeepZoomImageTileSource::GetTileLayer):
10483 After finding the baseUri's filename, advance beyond the / before
10484 passing it to uri->Combine().
10486 * uri.cpp (Uri::Combine): If the uri has no path and the
10487 relative_path does not begin with a /, don't prepend one.
10489 2009-03-27 Jeffrey Stedfast <fejj@novell.com>
10491 General cleanup of the TextBoxBase abstraction.
10493 * textbox.cpp (TextBoxView::UpdateText): Get rid of special-casing
10495 (PasswordBox::SyncDisplayText): Generate a masked password string
10496 using the specified PasswordChar.
10497 (PasswordBox::SyncText): Call SyncDisplayText ().
10498 (PasswordBox::OnPropertyChanged): When the PasswordProperty
10499 changes, call SyncDisplayText().
10500 (PasswordBox::GetDisplayText): Override TextBoxBase's to return
10501 our masked password string.
10502 (PasswordBox::ctor): Initialize display text
10503 (PasswordBox::dtor): Delete display text.
10504 (TextBox::GetDisplayText): Simply return GetText ()
10506 2009-03-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
10508 * playlist.cpp: MergeWith: need to clone uris, otherwise it'll
10511 2009-03-27 Jackson Harper <jackson@ximian.com>
10513 * xaml.cpp: Despite the docs saying differently
10514 (http://msdn.microsoft.com/en-us/library/cc917841(VS.95).aspx)
10515 sys:Boolean is also legal. (I wonder what else is).
10517 2009-03-27 Jackson Harper <jackson@ximian.com>
10519 * xaml.cpp: Fix typo in LookupNamedItem so exists returns the
10521 - When we are populating the context resource dictionaries we need
10522 to include elements that are resource dictionaries not just
10523 elements have have dictionaries. This fixes elements looking up
10524 items in their top level RD (like in generic xaml).
10526 2009-03-27 Stephane Delcroix <sdelcroix@novell.com>
10528 * xaml.cpp: Source attribute of MultiScaleImage, even while starting with a
10529 '/', are relative uris.
10531 2009-03-27 Stephane Delcroix <sdelcroix@novell.com>
10533 * multiscaleimage.cpp: if a tile is already being downloaded, don't
10534 start a 2nd downloader for the same uri.
10536 2009-03-27 Stephane Delcroix <sdelcroix@novell.com>
10538 * deepzoomimagetilesource.cpp: Uris composed of a single file name
10539 are fine too. don't discriminate !
10541 2009-03-27 Stephane Delcroix <sdelcroix@novell.com>
10543 * uri.cpp: fix Combine when the original path is a single file,
10544 without a leading '/'
10546 2009-03-27 Stephane Delcroix <sdelcroix@novell.com>
10548 * multiscalesubimage.h|.cpp: fix the mess I was doing on uris in
10549 the overloaded ctor now that we have a proper Uri struct
10551 2009-03-27 Stephane Delcroix <sdelcroix@novell.com>
10553 * uri.h, uri.cpp: add Combine (const Uri*).
10555 2009-03-27 Stephane Delcroix <sdelcroix@novell.com>
10557 * multiscaleimage.h|.cpp: Emit MotionFinishedEvent
10559 2009-03-26 Chris Toshok <toshok@ximian.com>
10561 * deployment.h|.cpp: be a little more fragile (and a lot less
10562 evil) about the way we're exposing Mono types in our headers.
10563 just put a typedef for MonoDomain in deployment.h instead of
10564 including appdomain.h. Include appdomain.h from deployment.cpp.
10566 2009-03-26 Chris Toshok <toshok@ximian.com>
10568 * uielement.h|.cpp (class UIElement): add the ability to do
10569 instant and delayed emission of Loaded events.
10570 (UIElement::PostSubtreeLoad): perhaps poorly named, but the
10571 @load_list is a list of UIElement which will be walked in order in
10572 a tick call, emitting OnLoaded on all of them.
10573 (UIElement::EmitSyncLoaded): walk the same list as would be passed
10574 to PostSubtreeLoad, emitting it now.
10575 (UIElement::WalkTreeForLoaded): this does a post-order tree walk
10576 building up the list which is passed to PostSubtreeLoad or
10577 EmitSubtreeLoad. The out bool parameter tells us whether we
10578 should delay the emission or not. Currently the only thing that
10579 delays emission is a control with a style applied (even a default
10580 style.) We also set a PENDING_LOADED flag on all elements during
10582 (UIElement::OnLoaded): no longer walk the tree here. only emit
10583 Loaded on this one element. Clear the PENDING_LOADED flag while
10585 (UIElement::ElementAdded): complicate matters slightly here so
10586 that it follows the following two rules:
10588 1) if @this is loaded, walk the tree and either emit or post the
10589 load based on what the out param tells us to do.
10591 2) if @this is pending_loaded, walk the tree and always post.
10593 * frameworkelement.h (class FrameworkElement): unfortunately we
10594 need access to "default_style_applied" from UIElement.
10596 * control.h|.cpp: remove OnLoaded implementation from here.
10598 * runtime.cpp (Surface::Attach): move the Loaded handling *after*
10599 the zombie check. not sure why we were ever doing it before. but
10600 most importantly, this always Posts the loaded state, it doesn't
10601 emit it synchronously. This allows us to do the changes in
10602 Application.cs/Deployment.cs that are needed to get ncaa working.
10604 2009-03-26 Chris Toshok <toshok@ximian.com>
10606 * trigger.cpp (EventTrigger::SetTarget): fix regression, and ifdef
10607 out the code that allows other events to be used. Maybe in SL3
10610 2009-03-26 Jeffrey Stedfast <fejj@novell.com>
10612 * textbox.cpp: Reengineered TextBox and PasswordBox to inherit
10613 from a new TextBoxBase class which handles almost all of the logic
10616 2009-03-26 Stephane Delcroix <sdelcroix@novell.com>
10618 * multiscaleimage.cpp: replace the ldexp (1.0, n) by 1 << n
10620 2009-03-26 Jeffrey Stedfast <fejj@novell.com>
10622 * textbox.cpp: Reengineered TextBox and PasswordBox to inherit
10623 from a new TextBoxBase class which handles almost all of the logic
10626 2009-03-26 Jeffrey Stedfast <fejj@novell.com>
10628 * deepzoomimagetilesource.cpp (DeepZoomImageTileSource::GetTileLayer):
10629 Use the new Uri::Combine() method.
10631 * uri.cpp (Uri::Combine): New method to combine a relative path to
10634 2009-03-26 Chris Toshok <toshok@ximian.com>
10636 * animation.cpp, clock.cpp: move some class-static fields around
10637 so they make more sense.
10639 2009-03-26 Chris Toshok <toshok@ximian.com>
10641 * clock.h: move enum FillBehavior...
10643 * enums.h: ... to here.
10645 2009-03-26 Chris Toshok <toshok@ximian.com>
10647 * animation2.h: nuke, moving everything into animation.h.
10649 * clock.h|.cpp, timesource.h|.cpp, timeline.h|.cpp: split out all
10650 the timesource/timeline stuff into separate files to reduce
10651 clock.cpp's size/complexity a bit.
10653 * mediaplayer.cpp, mediaelement.cpp, media.cpp,
10654 mms-downloader.cpp: track new locations of things (that were moved
10655 out of clock.h|.cpp)
10657 * cbinding.h, cbinding.cpp, type-generate.cpp,
10658 dependencyproperty.g.cpp: regen.
10660 * Makefile.am: add/remove files.
10662 2009-03-26 Stephane Delcroix <sdelcroix@novell.com>
10664 * multiscaleimage.h|.cpp: fix optimal_layer caclulation for tiles
10665 with an aspect_ratio < 1.0 (portrait images).
10667 2009-03-26 Stephane Delcroix <sdelcroix@novell.com>
10669 * multiscaleimage.h|.cpp: replace the single downloader code by
10670 a list of downloader, speed up downloading a lot. (Set --arbitrary--
10671 to 6 dlders for now)
10673 2009-03-26 Stephane Delcroix <sdelcroix@novell.com>
10675 * multiscaleimage.h|.cpp: Download directly from Render*
10677 2009-03-26 Stephane Delcroix <sdelcroix@novell.com>
10679 * multiscaleimage.h|.cpp: DownloadUri downloads a Uri (sic). Use an Uri
10680 as cache key, use the new get_image_uri_func everywhere.
10682 2009-03-26 Stephane Delcroix <sdelcroix@novell.com>
10685 * deepzoomimagetilesource.h|.cpp: change the signature of
10686 get_image_uri_func. It returns a bool indicating success, the Uri is
10687 now a method arg, and no longer returned as a string pointer. Fixes
10688 some random crashes with managed tilesoources.
10690 2009-03-25 Chris Toshok <toshok@ximian.com>
10692 * uri.h (struct Uri): add accessor methods for all of the fields.
10693 The fields are still public for now, since a few places (e.g.,
10694 plugin-debug, playlist), make direct modifications.
10696 * multiscalesubimage.cpp, playlist.cpp, downloader.cpp,
10697 glyphs.cpp, mediaelement.cpp, application.cpp, media.cpp: use
10698 accessors when getting values.
10700 2009-03-25 Stephane Delcroix <sdelcroix@novell.com>
10702 * uri.h, uri.cpp: GetHashCode (), so Uris can be used as keys for
10705 2009-03-25 Jeffrey Stedfast <fejj@novell.com>
10707 * mediaelement.cpp (MediaElement::GetStateName): Don't pass an sl2
10708 argument to enums_int_to_str() anymore.
10710 * trigger.cpp (EventTrigger::SetTarget): Surface::IsSilverlight2()
10711 no longer exists, don't bother checking it. If the target is other
10712 than the Loaded event, we need to treat the whole thing as
10713 Silverlight2 anyway.
10715 * runtime.cpp (Surface::Surface): No longer takes a silverlight2
10716 argument or keeps such a flag.
10717 (Surface::EmitEventOnList): Don't need to care about the
10719 (Surface::HandleUIKeyPress): Same.
10720 (Surface::HandleUIKeyRelease): Here too.
10722 * enums.cpp (enums_str_to_int): No longer takes an sl2 argument.
10723 (enums_int_to_str): Same.
10725 * xaml.cpp (value_from_str_with_typename): No longer takes an sl2
10727 (value_from_str): Same.
10728 (convert_value_type): Same.
10729 (xaml_set_property_from_str): Same.
10731 2009-03-25 Geoff Norton <gnorton@novell.com>
10738 * frameworkelement.cpp:
10739 * frameworkelement.h:
10740 * type-generated.cpp:
10743 * xaml.cpp: Bindings live 100% in managed land now
10745 2009-03-25 Alan McGovern <amcgovern@novell.com>
10747 * animation.cpp: Revert the changes in r130133 as they
10748 resulted in double frees of the Value *.
10750 2009-03-25 Jeffrey Stedfast <fejj@novell.com>
10752 * value.cpp (Value::FreeValue): Don't dereference uri if it is
10755 2009-03-25 Stephane Delcroix <sdelcroix@novell.com>
10757 * multiscaleimage.cpp: emit ViewportChanged
10759 2009-03-25 Stephane Delcroix <sdelcroix@novell.com>
10761 * multiscaleimage.cpp: renders layer 0 too, drop some old debug code
10763 2009-03-25 Jackson Harper <jackson@ximian.com>
10765 * xaml.cpp: Can put this back now that bindings are convertering
10766 strings properly. Don't try to create a value object if we are
10767 just going into managed anyways.
10769 2009-03-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
10772 * runtime.cpp: Move IsVersionSupported implementation here,
10773 add GetBackgroundColor and sprinkle generator annotations.
10776 * cbinding.cpp: Regenerated.
10778 2009-03-25 Alan McGovern <amcgovern@novell.com>
10780 * uri.cpp: Scheme was being used uninitialised if the if
10781 (!*start) check succeeded.
10783 2009-03-24 Chris Toshok <toshok@ximian.com>
10785 * playlist.cpp (PlaylistParser::OnASXStartElement): use
10787 (PlaylistParser::OnSMILStartElement): use uri->IsScheme()
10789 * uri.h, uri.cpp (struct Uri): add "bool IsScheme(const char
10790 *scheme)" so we can stop twiddling internals.
10792 2009-03-24 Chris Toshok <toshok@ximian.com>
10794 * downloader.cpp: s/protocol/scheme for Uris
10796 * playlist.cpp: s/protocol/scheme for Uris
10798 * uri.h, uri.cpp: s/protocol/scheme for Uris.
10800 2009-03-24 Chris Toshok <toshok@ximian.com>
10802 * uri.cpp: do as much as we can to get isAbsolute set correctly.
10804 2009-03-25 Andreia Gaita <avidigal@novell.com>
10806 * clock.h: remove unused timeline field
10808 2009-03-25 Andreia Gaita <avidigal@novell.com>
10810 * clock.cpp: Refresh the clock's duration, it might have changed
10811 after it's creation
10813 2009-03-24 Jeffrey Stedfast <fejj@novell.com>
10815 * value.cpp (Value::Value): If the input value has a NULL uri,
10816 don't call Uri::Copy(), simply set the new uri to NULL too.
10818 * uri.cpp (Uri::Copy): If the 'from' argument is NULL, nullify the
10819 members in the 'to' argument. This should never happen anymore,
10820 but if it does, don't allow 'to' to have invalid pointers.
10822 2009-03-24 Jackson Harper <jackson@ximian.com>
10824 * xaml.cpp: Need to make this a little smarter, revert for now
10825 because it breaks hardrock.
10827 2009-03-24 Jeffrey Stedfast <fejj@novell.com>
10829 * layout.cpp (TextLayout::Layout*Wrap*): Fixed to not give 0.0
10830 actual_height extents if the text is "".
10832 * textbox.cpp (TextBoxView::UpdateText): Make sure that we never
10833 set NULL text on the layout so that we won't crash inside
10834 TextLayout::GetCursor() inside g_utf8_offset_to_pointer().
10836 2009-03-24 Jackson Harper <jackson@ximian.com>
10838 * xaml.cpp: Don't attempt to convert values if we are going to
10839 managed anyways. This prevents things that can be created easily
10840 from strings being created from expressions.
10842 2009-03-24 Jackson Harper <jackson@ximian.com>
10845 * animation.cpp: Use an OBJECT for the Value property.
10846 * dependencyproperty.g.cpp: Regen
10848 2009-03-24 Stephane Delcroix <sdelcroix@novell.com>
10850 * uri.h|uri.cpp: new Equals () methods, so we can use its generated
10851 cbinding as GCompareFunc.
10853 2009-03-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
10855 * pipeline.cpp: Fix breakage.
10857 2009-03-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
10860 * pipeline.cpp: Add a PassThroughDecoder for when the demuxer
10861 gives ready-to-present data. Make it handle pcm, rgb, rgba
10866 * type-generated.cpp: Regenerated.
10868 2009-03-23 Stephane Delcroix <sdelcroix@novell.com>
10870 * deepzoomimagetilesource.h|cpp: pass a *Uri to the ctor, related
10871 changes to keep working
10873 2009-03-23 Jeffrey Stedfast <fejj@novell.com>
10875 * uri.cpp (Uri::operator==): If all the != compares pass, return
10876 true. Don't let control reach the end of a non-void function!
10878 * textbox.cpp (TextBoxView::UpdateCursor): Emit a new cursor
10879 position changed event.
10881 2009-03-23 Chris Toshok <toshok@ximian.com>
10883 * uri.cpp (Uri::Uri): I don't like this fix, mostly because it was
10884 due to vertigo doing some weird stuff that I don't fully
10885 understand :) but in the interest of not requiring every usage to
10886 include a null check, init originalString to g_strdup("") here.
10888 2009-03-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
10890 * pipeline.cpp: FillBuffers: fix warning. NullDecoder: Chain
10893 2009-03-23 Chris Toshok <toshok@ximian.com>
10895 * uri.cpp (Uri::Copy): return immediately if @from == null.
10897 2009-03-21 Chris Toshok <toshok@ximian.com>
10899 * bitmapimage.cpp (BitmapImage::OnPropertyChanged): pass the Uri
10900 to Application:GetResource.
10902 * application.[h,cpp] (Application::GetResource): this takes a Uri
10903 instead of a string now.
10905 2009-03-21 Chris Toshok <toshok@ximian.com>
10907 * uri.[h,cpp]: a few changes:
10908 1. Add "bool isAbsolute" and "char* originalString" fields.
10909 2. Remove Clone and add a static Copy method which Value can use
10910 to copy all the internal fields.
10911 3. Add Free method.
10912 4. make it a struct so we'll only box when explicitly asked to in
10914 5. add an operator== so we can do non-reference comparisons in
10917 * dependencyobject.h,
10918 dependencyobject.cpp (DependencyObject::SetMarshalledValueWithError):
10921 * bitmapimage.[h,cpp]: UriSourceProperty is a Uri, not a string.
10923 * glyphs.[h,cpp]: FontUriProperty is a Uri, not a string.
10925 * deepzoomimagetilesource.h: UriSourceProperty is a Uri, not a
10928 * media.cpp: source->GetUriSource() returns a Uri*
10930 * mediaelement.[h,cpp]: SourceProperty is a Uri, not a string.
10932 * multiscalesubimage.[h,cpp] (MultiScaleSubImage::MultiScaleSubImage):
10935 * playlist.cpp (Playlist::MergeWith): don't Clone() the uris, as
10936 the Value ctor does that for us.
10938 * xaml.cpp (value_from_str): add Type::URI case, and rework the
10939 Type::BITMAPIMAGE case to use a Uri object.
10941 * validators.[h,cpp]: rename NonNullStringValidator to
10942 NonNullValidator. All uses before didn't depend on the
10943 "string"-ness of the value, and we can make use of it for the Uri
10946 * value.h.in, value.cpp: add Uri support, and remove
10949 * dependencyproperty.g.cpp, cbinding.cpp|.h, type-generated.cpp,
10952 * textblock.h, frameworkelement.h: track name change of NonNullStringValidator
10954 2009-03-20 Jeffrey Stedfast <fejj@novell.com>
10956 * textbox.cpp (TextBoxView::UpdateText): Split out from
10957 TextBoxView::Layout(). Sets the text on the layout engine.
10958 (TextBoxView::Layout): Moved most of the logic into UpdateText()
10959 and the rest into Render(). We now just set the MaxWidth and lay
10961 (TextBoxView::Render): If dirty, after calling Layout(), call
10962 UpdateCursor(false) and clear the dirty flag.
10963 (TextBoxView::OnModelChanged): If the text changes, update it
10964 immediately on our layout context by calling UpdateText().
10965 (TextBoxView::SetTextBox): Call UpdateText() here as well and make
10966 it more robust against a NULL textbox argument.
10968 2009-03-20 Jeffrey Stedfast <fejj@novell.com>
10970 * textbox.cpp (TextBoxView::Layout): No longer takes a cairo
10971 context argument since it never actually uses it anyway.
10972 (TextBoxView::MeasureOverride): Don't create a temporary cairo
10973 context since it never gets used.
10974 (TextBoxView::ArrangeOverride): Same.
10976 2009-03-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
10980 * pipeline-asf.cpp: Re-implement fallback to http when mms
10983 2009-03-20 Jeffrey Stedfast <fejj@novell.com>
10985 * layout.cpp (TextLayout::SetText): Handle text being NULL a bit
10988 2009-03-20 Jackson Harper <jackson@ximian.com>
10990 * xaml.cpp: Make sure we go to managed when using property element
10991 syntax for setting properties of managed kinds.
10993 2009-03-20 Jeffrey Stedfast <fejj@novell.com>
10995 * layout.cpp (TextLayout::SetMaxWidth): If the new MaxWidth is
10996 larger than the current ActualWidth (and no wrapping has been
10997 done), then no need to re-layout. This should help improve
10998 performance of many cases of TextBox/Block MeasureOverride() and
11000 (TextLayout::LayoutWrapWithOverflow): If we have to wrap a line,
11001 set is_wrapped to true.
11002 (TextLayout::LayoutWrap): Same.
11003 (TextLayout::Layout): Reset is_wrapped to false before laying out
11006 2009-03-19 Larry Ewing <lewing@novell.com>
11008 * multiscaleimage.cpp (RenderSingle): move the clipping to the
11009 outer loop here too.
11011 2009-03-19 Larry Ewing <lewing@novell.com>
11013 * multiscaleimage.cpp (RenderCollection): rework the collection
11014 rendering slightly by moving the subimages out of the loop.
11016 2009-03-18 Chris Toshok <toshok@ximian.com>
11018 * dependencyobject.cpp (unregister_depobj_names): another side of
11019 the TagProperty coin. don't unregister names from it, since we
11020 aren't registering names from it.
11021 (DependencyObject::SetParent): remove the USERCONTROL extra
11022 registration from here. it's not necessary now that jackson has
11023 fixed where we register the names.
11025 * dependencyproperty.cpp (DependencyProperty::RegisterFull): only
11026 freeze the default value if the property is not custom.
11028 2009-03-18 Jeffrey Stedfast <fejj@novell.com>
11030 Fixes a crash in the Microsoft.SilverlightControls
11031 ControlsExtended unit tests (specifically the DatePickerTest).
11033 * control.h (class Control): Set a DefaultValue for the Foreground
11036 * textblock.h (class TextBlock): Same.
11038 2009-03-18 Jackson Harper <jackson@ximian.com>
11040 * xaml.cpp: When we use x:Name to set an elements name, make sure
11041 that it gets set in the namescope of it's containing element.
11042 * dependencyobject.cpp|h: New method that allows setting objects
11043 name in a different namescope, this will also result in the name
11044 being set in the objects namescope.
11045 - Allow duplicate objects if they are the same object
11046 * namescope.cpp: Allow duplicates if they are the same object.
11048 2009-03-18 Jeffrey Stedfast <fejj@novell.com>
11050 * textbox.cpp (TextBox::Initialize): Don't bother connecting to
11051 MouseEnter/Leave, we don't care.
11052 (TextBoxView::TextBoxView): Connect to MouseLeftButtonDown/Up.
11053 (TextBoxView::OnMouseLeftButtonDown): Proxy the event to our
11054 parent TextBox control.
11055 (TextBoxView::OnMouseLeftButtonUp): Same.
11057 * runtime.cpp (Surface::FocusElement): Don't do all the checks
11058 here, they are now done in Control::Focus().
11059 (Surface::HandleMouseEvent): Don't loop to FocusElement() here, we
11060 now expect this to be done in the MouseLeftButtonDown event
11063 * control.cpp (Control::Focus): New method to focus a control.
11065 2009-03-18 Jb Evain <jbevain@novell.com>
11067 * deployment.cpp: add a MOON_PROFILER environment variable
11068 to control profiling of the embedded mono.
11070 2009-03-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
11073 * pipeline.cpp: Remove unused field.
11075 2009-03-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
11077 * pipeline-asf.cpp: Fix visitmix.
11079 2009-03-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
11083 * deployment.cpp: Add signal handlers for crash detection in
11084 libmoon instead of libshocker, this way there's not a race
11085 condition between loading mono and installing a signal
11086 handler in libshocker (the signal handler has to get
11087 installed before loading mono, otherwise we'll crash for
11088 real due to managed exceptions getting caught by the signal
11091 2009-03-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
11093 * pipeline.cpp: More asserts.
11095 2009-03-17 Jeffrey Stedfast <fejj@novell.com>
11097 * xap.cpp (Xap::Unpack): Canonicalize the extracted filename to
11100 2009-03-17 Jeffrey Stedfast <fejj@novell.com>
11102 * xap.cpp (Xap::Unpack): Don't mix & match malloc/g_free, don't
11103 shadow the fname method argument, and don't leak if
11104 finfo.external_fa has the 4th bit set.
11106 2009-03-17 Chris Toshok <toshok@ximian.com>
11108 * dependencyobject.cpp (DependencyObject::ProviderValueChanged):
11109 don't do the SetParent stuff (even when the value is a
11110 DependencyObject) if the property is UIElement::TagProperty. This
11111 fixes the cyclic tree warning in RichTextBox. Right now it's
11112 hardcoded to check for that property, but we need to move it to
11113 the DP metadata, and do an audit of other "typeof(object)" DP's to
11114 make sure we aren't setting parent where we shouldn't be.
11116 2009-03-17 Stephane Delcroix <sdelcroix@novell.com>
11118 * collection.h|cpp: allow MSISICollections to be sorted by ZIndex
11120 2009-03-16 Jackson Harper <jackson@ximian.com>
11122 * template.cpp: It doesn't really change anything because
11123 templates are never parented, but technically they should be in non
11124 temporary namescopes.
11126 2009-03-16 Jeffrey Stedfast <fejj@novell.com>
11128 * textbox.cpp (TextBox::CursorDown, TextBox::CursorUp): Fixed to
11129 go up/down 'n' lines instead of always 1 if n wouldn't overflow.
11131 2009-03-16 Stephane Delcroix <sdelcroix@novell.com>
11133 * multiscaleimage.cpp:
11134 * multiscalesubimage.h|cpp: keep a ref to the parent MSI, Invalidate
11135 it on VP origin or width changed.
11137 2009-03-13 Stephane Delcroix <sdelcroix@novell.com>
11139 * multiscaleimage.cpp: fix the clipping issue for collections
11141 2009-03-13 Chris Toshok <toshok@ximian.com>
11143 * type.h, type-generated.cpp: regen.
11145 2009-03-13 Chris Toshok <toshok@ximian.com>
11147 * xaml.cpp (value_from_str): in the int32 and int64 case, we need
11148 to parse until we get an invalid character, and return the value
11149 parsed up to that point. it's only an error if there's no valid
11152 2009-03-13 Chris Toshok <toshok@ximian.com>
11154 * textblock.h (class Inline): inlines don't permit multiple
11155 parents (Fixes RunTest.RunMultipleParents).
11157 2009-03-13 Geoff Norton <gnorton@novell.com>
11159 * xap.cpp: Zip files can contain directory entires, we shouldn't
11160 try to open them as files.
11162 2009-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
11165 * control.cpp: Added a null check to prevent crashes.
11167 2009-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
11170 * mediaelement.cpp: Attach to Deployment::ShuttingDownEvent
11171 and clean up upon shutdown.
11174 * pipeline.cpp: Remove a broken attempt to ensure that we
11175 don't leave Media threads running after having shut down.
11177 2009-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
11179 * playlist.cpp: Dispose: fix a typo - dispose the media not
11182 2009-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
11184 * playlist.cpp: DownloadProgressChangedHandler: Don't do
11185 anything if we've been disposed. Fixes a warning.
11187 2009-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
11189 * mediaelement.cpp: Dispose: We need to dispose the media
11192 2009-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
11194 * downloader.h: DownloaderResponse: Add virtual ref/unref
11197 2009-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
11199 * mediaplayer.cpp: SetTimeout: Add null-checks to prevent
11200 crashes when we can't find a time manager. Also if we can't
11201 remove a timeout, we have to leak ourselves, otherwise the
11202 timeout might get called after we're destroyed.
11204 2009-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
11208 * type-generated.cpp: Added Deployment::ShuttingDownEvent.
11209 This will be used by MediaElement to ensure that all media
11210 threads are cleaned up even if the MediaElement itself is
11213 2009-03-13 Stephane Delcroix <sdelcroix@novell.com>
11215 * multiscaleimage.cpp: no longer use precompiled table for morton
11216 layout, but use short and fast function in place.
11218 2009-03-13 Stephane Delcroix <sdelcroix@novell.com>
11220 * multiscaleimage.cpp: check for null tiles uri returned by
11223 2009-03-13 Stephane Delcroix <sdelcroix@novell.com>
11225 * multiscaleimage.cpp: compute the tie opacity on rendering, avoid
11226 having to loop over all the tiles on every tick.
11228 2009-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
11230 * runtime.cpp: Surface::Dispose: call SetSurface (NULL) on the
11231 toplevel element before disposing it, since the SetSurface
11232 will be propagated to all descendants, while Dispose will
11233 detach descendants (preventing subsequent SetSurface calls
11236 2009-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
11238 * mediaplayer.cpp: Open: when we add an event handler to the
11239 video stream's FirstFrameEnqueued event, the first frame
11240 might already be in the queue, so just call LoadVideoFrame
11241 once always. Fixes test-canvas-no-size.html.
11243 2009-03-12 Geoff Norton <gnorton@novell.com>
11245 * src/runtime.cpp: MouseLeaveEvent is a MouseEventArgs
11247 2009-03-12 Geoff Norton <gnorton@novell.com>
11249 * deepzoomimagetilesource.cpp: Ensure we dont override default values
11250 if nothing has been provided in the XML
11252 2009-03-12 Geoff Norton <gnorton@novell.com>
11255 * animation.h: Implement SkipToFill
11257 2009-03-12 Larry Ewing <lewing@novell.com>
11259 * canvas.cpp: don't chain up the FE in the overides that is very
11262 2009-03-12 Chris Toshok <toshok@ximian.com>
11264 * runtime.cpp (Surface::CreateArgsForEvent): fix crash in the rich
11265 text demo when you click on the buttons. we need to be creating
11266 RoutedEventArgs, not EventArgs.
11268 2009-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
11270 * codec-version.h.in: Bump.
11272 2009-03-12 Alan McGovern <amcgovern@novell.com>
11274 * dependencyproperty.cpp: 1) Refactor the code so that
11275 open/closing parens are parsed in a separate step to
11276 typename/property name. Then merge the codepaths for the
11277 default and '(' case.
11278 2) Attached properties can only be specified inside parens. So
11279 "Canvas.Left" is invalid but "(Canvas.Left)" is valid.
11280 3) For non-attached properties both "Rectangle.RadiusX" and
11281 "(Rectangle.RadiusX)" are acceptable.
11283 2009-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
11285 * pipeline.cpp: Add a null check.
11287 2009-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
11289 * audio.cpp: Use media's thread-safe event handling.
11292 * playlist.cpp: PlaylistRoot: keep a reference to our media
11293 player (i.e. don't use MediaElement's media player, it may
11294 change). Use the thread-safe event support in media.
11297 * mediaplayer.cpp: Use media's thread-safe event handling.
11298 Don't tick while waiting for the media to get the first
11299 frame, just attach an event handler to
11300 FirstFrameEnqueuedEvent.
11303 * pipeline.cpp: IMediaObject: Add thread-safe event support.
11304 Media: inherit from IMediaObject to get the thread-safe
11307 * pipeline-asf.cpp: ASFDemuxer::SeekAsyncInternal: don't
11308 ignore ASFReader::Seek's result, handle it correctly.
11309 EnqueueGetFrame: requeue a get frame request if we don't
11310 have enough data yet.
11312 2009-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
11314 * pipeline.h: Move IMediaObject above Media so that Media can
11315 inherit from IMediaObject.
11317 2009-03-12 Andreia Gaita <avdigal@novell.com>
11319 * clock.[h|cpp]: Fix DispatcherTimer when the timer is stopped and
11320 started during the tick event; in some cases the time between these
11321 two calls was enough to have an extra tick on the time manager, and
11322 the DispatcherTimer would be advanced again even though it was
11323 stopped, and this would happen after the Completed handler was
11324 removed and before it was added again.
11325 Fixes the RestartTimer2 test and SilverlightChess.
11327 2009-03-11 Jeffrey Stedfast <fejj@novell.com>
11329 * textbox.cpp (TextBox::OnPropertyChanged): Don't create selection
11330 brushes here anymore.
11331 (class TextBoxDynamicPropertyValueProvider): Return default
11332 selection brushes if they've been initialized (happens in
11333 TextBoxView::Render).
11334 (TextBoxView::Render): Initialize the selection brushes if they
11335 haven't already been.
11337 2009-03-11 Alan McGovern <amcgovern@novell.com>
11339 * dependencyproperty.cpp: Fix issues in resolve_property_path
11340 with some complex paths. Add two new NUnit tests which
11341 verify the correct properties are animated.
11343 2009-03-11 Jeffrey Stedfast <fejj@novell.com>
11345 * text.cpp|h: Split into textblock.cpp|h and glyphs.cpp|h
11347 * downloader.cpp (downloader_deobfuscate_font): Moved here from
11348 text.cpp and made public.
11350 2009-03-11 Jeffrey Stedfast <fejj@novell.com>
11352 * layout.cpp (TextLayoutGlyphCluster::Render): If we have nothing
11355 2009-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
11357 * brush.cpp: ImageBrush::image_failed: we need to ref the
11358 eventargs when we do emit chaining.
11360 2009-03-11 Chris Toshok <toshok@ximian.com>
11362 * border.cpp (Border::OnPropertyChanged): Border is ever the red
11363 headed stepchild. It has its own validation wrt SetLogicalParent,
11364 that behaves like the InvalidOperationException case in
11365 FrameworkElement, but throws ArgumentException instead of IOE.
11367 2009-03-11 Chris Toshok <toshok@ximian.com>
11369 * canvas.h, canvas.cpp (Canvas::OnCollectionItemChanged): move the
11370 Top/Left property changed handling from OnSubPropertyChanged to
11371 here, and remove OnSubPropertyChanged. Basically property changes
11372 on items in collections are never communicated back using
11373 OnSubPropertyChanged. That is reserved for direct children of the
11374 object (fill/stroke brushes, etc.)
11376 * grid.h, grid.cpp: same.
11378 * dependencyobject.cpp (DependencyObject::NotifyListenersOfPropertyChange):
11379 remove this use of GetParent (yay!) since we don't implicitly
11380 notify our logical parent if an attached property was changed. we
11381 just notify all listeners.
11383 * clock.h, clock.cpp, animation.cpp: in an effort to disambiguate,
11384 rename GetParent/SetParent to GetParentClock/SetParentClock.
11386 2009-03-10 Chris Toshok <toshok@ximian.com>
11388 * dependencyobject.cpp (DependencyObject::ProviderValueChanged):
11389 hook up (and unhook) the collection events if the dob is a
11390 Type::COLLECTION. Remove the stupid parent check that was
11391 breaking everything. Pass in our MoonError parameter to
11392 OnPropertyChanged so we can communicate it back.
11393 (DependencyObject::ClearValue): unhook from the collection events.
11395 * dependencyobject.h (SetLogicalParent, GetLogicalParent): remove.
11396 these methods are now in FrameworkElement.
11397 (SetParent, GetParent): their replacements. Hopefully these are
11398 not long for this world, and I'm working on getting rid of them.
11399 they are used in very few places now (basically collection.cpp and
11401 (collection_changed, collection_item_changed): two new
11402 EventHandlers so we can make collection stop calling directly into
11404 (OnPropertyChanged): add a MoonError* arg here so we can transmit
11405 errors back from the various OnPropertyChanged overrides.
11408 validators.cpp (Validators::ContentControlContentValidator): add
11409 half of the "multiple parents for .Content" checks here. This
11410 runs before the value is actually set and checks to see if the
11411 logical parent is a Panel subclass. If it is it throws an
11412 ArgumentException instead of an InvalidOperationException (don't
11415 * collection.cpp, collection.h: remove the assumption that we can
11416 just call into our parent to notify of collection/collection item
11417 changes. instead just emit an event.
11419 * eventargs.h: define CollectionItemChangedEventArgs for the new
11420 Collection::ItemChangedEvent.
11422 * contentcontrol.h,
11423 contentcontrol.cpp (ContentControl::OnPropertyChanged): call
11424 SetLogicalParent on the old/new contents if they're
11425 FrameworkElements, and if either returns an error, return
11428 * usercontro.h, usercontrol.cpp (UserControl::OnPropertyChanged):
11432 * frameworkelement.cpp, frameworkelement.h: move
11433 Set/GetLogicalParent here, and make the InvalidOperationException
11434 on multiple parents unconditional.
11436 * panel.cpp (Panel::OnCollectionChanged): if the new/old child is
11437 a FrameworkElement, set its logical parent.
11439 * animations.*, bitmapimage.*, border.*, brush.*, canvas.*,
11440 control.*, deepzoomimagetilesource.*, geometry.*, grid.*, media.*,
11441 mediaelement.*, multiscaleimage.*, popup*, shape.*, stylus.*,
11442 textbox.*, text.*, transform.*, uielement.*: change all the
11443 OnPropertyChanged signatures to include MoonError*
11445 * cbinding.*, dependencyproperty.g.cpp, type-generated.cpp,
11446 type.h, value.h: regen.
11448 * resources.cpp: s/LogicaParent/Parent.
11450 * provider.h, provider.cpp (StylePropertyValueProvider::unlink_converted_value):
11451 not really part of this larger change, but needed for the
11452 toggleref stuff. we need to call SetParent on all the
11453 DO-subclassed converted values so they never reference a trashed
11455 (get_parent): add more cases here, none of which I'm sure are
11458 2009-03-10 Jeffrey Stedfast <fejj@novell.com>
11460 * textbox.cpp (PasswordBox::OnPropertyChanged): Fixed.
11461 (TextBox::TextBox): New protected ctor that PasswordBox's ctor can
11463 (PasswordBox::PasswordBox): Chain up to the TextBox ctor we want,
11464 so that we don't register event callbacks twice. Doh.
11466 2009-03-10 Jeffrey Stedfast <fejj@novell.com>
11468 * validators.cpp (Validators::PasswordValidator):
11469 Removed. PasswordBox::PasswordProperty is internal, so we map it
11470 to TextBox::TextProperty and manually implement the
11471 getter/setter (which si where we manually throw an
11472 ArgumentNullException if set to null).
11474 * textbox.cpp (PasswordBox::OnPropertyChanged): Manually syncing
11475 Password and Text properties sucks, let's not do it. Instead,
11476 we'll map PasswordProperty to TextProperty on the managed
11477 side. Also need to Invalidate() if PasswordChar changes.
11478 (TextBoxView::Layout): Mask the text with PasswordChars if we are
11479 rendering a PasswordBox's content.
11481 2009-03-10 Jeffrey Stedfast <fejj@novell.com>
11483 * textbox.cpp (PasswordBox::OnPropertyChanged): Keep the Text and
11484 Password properties in sync. Don't emit a PasswordChanged event,
11485 that's mapped to TextChanged on the managed side.
11486 (TextBox::OnApplyTemplate): Handle Border and Panel
11487 ContentElements as well.
11489 * textbox.h (class PasswordBox): Get rid of the
11490 PasswordChangedEvent and also some of the properties that it
11491 shares with TextBox.
11493 2009-03-10 Jeffrey Stedfast <fejj@novell.com>
11495 * contentcontrol.cpp (ContentControl::ContentControl): Use the
11496 nice new ManagedTypeInfo ctor.
11498 * type.h.in (struct ManagedTypeInfo): Added a nice ctor.
11500 * textbox.cpp (TextBox::Initialize): New protected method; all of
11501 the old ctor logic was moved here so that PasswordBox could reuse
11503 (TextBox::TextBox): Call Initialize() with out type info.
11504 (PasswordBox::PasswordBox): Call Initialize() with out type info.
11505 (PasswordBox::Cursor*): Override some of TextBox's cursor
11506 navigation because we don't "see" whitespace or lines.
11508 2009-03-10 Larry Ewing <lewing@novell.com>
11510 * textbox.cpp (OnApplyTemplate): don't crash it ContentElement
11511 isn't found in the template.
11513 2009-03-10 Jackson Harper <jackson@ximian.com>
11515 * xaml.cpp: Don't use GetLogicalParent here because the parenting
11516 hasn't been setup yet. Wse the XamlElementInstance tree for
11517 figuring out who our parent is.
11519 2009-03-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
11521 * brush.cpp: ImageBrush::image_failed: propagate event args.
11523 2009-03-10 Jeffrey Stedfast <fejj@novell.com>
11525 * layout.cpp (TextLayout::Layout*Wrap*): Changed the outer while
11526 loops into do-while loops so that the line->height and
11527 line->descent get set properly. Needed to fix
11528 TextLayout::GetCursor().
11530 2009-03-10 Jackson Harper <jackson@ximian.com>
11532 * xaml.cpp: Do some basic type conversion for resources, this
11533 allows you to do things like store a font family as
11534 <clr:String>Arial</clr:String>.
11536 2009-03-10 Jackson Harper <jackson@ximian.com>
11539 * value.h.in: Consistentify method name.
11541 2009-03-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
11543 * uielement.cpp: GetTimeManager: if we don't have a surface,
11544 try to get it from the deployment.
11546 2009-03-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
11549 * pipeline-nocodec-ui.cpp: Set current deployment in
11552 2009-03-09 Larry Ewing <lewing@novell.com>
11554 * border.cpp (Render): set the fill rule after drawing the clip
11555 geometry since it will set the fill rule for itself.
11557 2009-03-09 Chris Toshok <toshok@ximian.com>
11559 * enums.cpp (cursors_map): add the missing Size* members here.
11561 http://www.adefwebserver.com/DotNetNukeHELP/Misc/Silverlight/GanttChart/Default.aspx
11562 gallery site to the point where it's displaying a UI.
11564 2009-03-09 Jeffrey Stedfast <fejj@novell.com>
11566 * textbox.cpp (TextBox::KeyPressUnichar): Fixed a logic goof that
11569 2009-03-09 Jeffrey Stedfast <fejj@novell.com>
11571 * textbox.cpp (TextBox::TextBox): Initialize have_offset to false
11572 and cursor_offset to 0.0. Silverlight doesn't use character column
11573 when moving the cursor up/down, it uses the cursor's x-offset.
11574 (TextBox::CursorDown): Implement using TextLayoutLines.
11575 (TextBox::CursorUp): Same.
11576 (TextBoxView::GetLineFromY): New convenience method.
11577 (TextBoxView::GetLineFromIndex): Another new method.
11579 * layout.cpp (TextLayoutLine::GetCursorFromX): New convenience
11581 (TextLayout::GetCursorFromXY): Moved the remaining logic into
11582 TextLayoutLine::GetCursorFromX().
11583 (TextLayout::GetLineFromY): Provide the line index to our caller,
11585 (TextLayout::GetLineFromIndex): New convenience method.
11587 2009-03-09 Jeffrey Stedfast <fejj@novell.com>
11589 * textbox.cpp (TextBoxView::UpdateCursor): We shouldn't need the
11590 cursor == 0 hack anymore.
11592 2009-03-09 Andreia Gaita <avidigal@novell.com>
11594 * dependencyobject.cpp: revert r128895 (toggleref changes) for now,
11597 2009-03-09 Andreia Gaita <avidigal@novell.com>
11599 * dependencyobject.cpp: do the toggleref callbacks so the managed
11600 side can dispose of things properly
11602 2009-03-09 Jeffrey Stedfast <fejj@novell.com>
11604 * layout.cpp (unichar_combining_class): New function to protect
11605 against using Glib's g_unichar_combining_class() if the API isn't
11608 2009-03-09 Jackson Harper <jackson@ximian.com>
11610 * xaml.cpp: Store the top element in the xaml context so we can
11611 still lookup handlers when parsing templates.
11613 2009-03-09 Stephane Delcroix <sdelcroix@novell.com>
11615 * multiscaleimage.cpp: fix the loop ending conditions for images
11616 with extreme aspect ratios.
11618 2009-03-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
11620 * deployment.cpp: Add support for setting the root directory
11623 2009-03-06 Larry Ewing <lewing@novell.com>
11625 * multiscaleimage.cpp (Render): cache the surface type as a
11626 similar surface to the rendering target to speed up rendering a
11629 2009-03-06 Larry Ewing <lewing@novell.com>
11631 * layout.cpp (SetText): handle null text here.
11633 2009-03-06 Geoff Norton <gnorton@novell.com>
11635 * codec-version.h.in: When we change the layout of
11636 dependencyobject, we need to bump the ABI
11638 2009-03-06 Alan McGovern <amcgovern@novell.com>
11644 * animation.cpp: If the PropertyPath supplied to the
11645 TargetPropertyProperty is a DependencyProperty, we need a
11646 special method to retrieve it. Normally PropertyPaths which
11647 are instantiated with a DependencyProperty are returned as
11648 'null' from native. Also add method for getting the manual
11651 2009-03-06 Alan McGovern <amcgovern@novell.com>
11658 * animation.cpp: Revert - I didn't mean to commit that yet.
11661 2009-03-06 Alan McGovern <amcgovern@novell.com>
11663 * propertypath.h: Need to null check the path before passing
11664 to strcmp - It is possible for the path to be null now.
11666 2009-03-06 Andreia Gaita <avidigal@novell.com>
11668 * dependencyobject.[h|cpp]: Add toggleref event registration
11671 * cbinding.[h|cpp]: regen
11673 2009-03-05 Jeffrey Stedfast <fejj@novell.com>
11675 * layout.cpp (FindLastWord): We need to walk backwards, not
11678 2009-03-05 Alan McGovern <amcgovern@novell.com>
11680 * propertypath.h: If we set a propertypath with a
11681 DependencyProperty, set the 'path' string to null. This
11682 avoids extra marshalling when it's not needed.
11684 2009-03-04 Geoff Norton <gnorton@novell.com>
11686 * deployment.cpp: Finalizing the domain destroys all objects
11687 immediately. Its possible that we might end up invoking more
11688 finalizers in the unref drain thta begins after dispose, so
11689 we're going to force a full gc and finalizer run of the collected
11690 objects here and allow ~Deployment to finalize the entire domain.
11692 2009-03-04 Jeffrey Stedfast <fejj@novell.com>
11694 * pipeline.cpp (Media::DisposeObjectInternal): Return
11695 MEDIA_SUCCESS so that control doesn't reach the end of a non-void
11698 * layout.cpp (TextLayout::GetCursorFromXY): Don't use
11699 g_unichar_iszerowidth().
11700 (TextLayout::GetCursor): Same.
11702 2009-03-04 Larry Ewing <lewing@novell.com>
11704 * border.cpp, border.h: clean up the path_only drawing a
11705 little. set CanFindElement more appropriately.
11707 * panel.cpp: undo the path_only logic a bit.
11709 * frameworkelement.cpp: make FindElementInHostCoordinates a little
11712 * uielement.cpp, uielement.h: Make the CanFindElement default be
11713 false, and remove the broken in_stroke check.
11715 2009-03-04 Stephane Delcroix <sdelcroix@novell.com>
11717 * multiscaleimage.h|cpp: generate PInvoke for Setters so the
11718 animations are used from managed Set() too
11720 2009-03-04 Stephane Delcroix <sdelcroix@novell.com>
11722 * multiscaleimage.h|cpp: pan and zoom animation in
11723 Viewport[Origin|Width] properties Setters
11725 2009-03-04 Jeffrey Stedfast <fejj@novell.com>
11727 * layout.cpp: Disable debug printfs unless layout debugging is
11730 2009-03-04 Jeffrey Stedfast <fejj@novell.com>
11732 Fixes the last failing case in LineBreakBasic1.htm
11734 * layout.cpp (layout_word_wrap): When checking for last_word, use
11735 <= instead of < because inptr, at this point, is at the first byte
11736 *after* the character just gobbled up.
11738 2009-03-04 Jeffrey Stedfast <fejj@novell.com>
11740 Fixes ActualWidth/Height extents for LineBreakBasic1.htm
11742 * layout.cpp (TextLayout::LayoutWrapWithOverflow): ActualWidth
11743 extents include trailing LWSP if-and-only-if that trailing LWSP is
11745 (TextLayout::LayoutNoWrap): Same.
11746 (TextLayout::LayoutWrap): Same.
11748 2009-03-03 Jeffrey Stedfast <fejj@novell.com>
11750 * layout.cpp (GenerateGlyphCluster): Don't crash if glyph->path is
11753 * font.cpp (TextFont::GetGlyphInfo): If unichar is
11754 0xFEFF (zero-width no-break space), then return a global
11755 GlyphInfo. We do this because at least some fonts won't have this
11756 glyph and we don't want to render an empty box (the default
11759 2009-03-03 Jeffrey Stedfast <fejj@novell.com>
11761 * layout.cpp (layout_word_wrap): Silverlight ignores breaking
11762 rules for glyphs that the font doesn't contain.
11764 2009-03-03 Jeffrey Stedfast <fejj@novell.com>
11766 * layout.cpp (layout_word_wrap): Oops, need to keep op.inptr and
11767 op.prev up-to-date if we combine chars.
11769 2009-03-03 Jeffrey Stedfast <fejj@novell.com>
11771 Fixes a few more cases in LineBreakClasses.htm
11773 * layout.cpp (utf8_find_last_word): If a zero-width space follows
11774 a combining mark, treat the zws as part of a word and not lwsp.
11775 (layout_word_lwsp): Do NOT ignore zero-width characters, let the
11776 font metrics do the talking.
11777 (TextLayout::LayoutNoWrap): Same.
11778 (layout_word_overflow): Same combining-mark fix as above.
11779 (layout_word_wrap): Same. Also changed the way we keep track of
11780 break opportunities. After discoverign that we need to wrap, get
11781 the break-type for the follwoing character before working
11782 backwards. Try to return false if we manage to squeeze the entire
11783 word onto the line anyway.
11785 2009-03-03 Jeffrey Stedfast <fejj@novell.com>
11787 Fixes LineBreakBasic2.htm and some parts of LineBreakClasses.htm
11789 * layout.cpp (BreakSpace): Treat tab as a BREAK_SPACE.
11790 (utf8_find_last_word): Use BreakSpace() instead of
11791 g_unichar_isspace() since that's how the rest of our breaking
11793 (FindLastWord): Same.
11794 (layout_word_lwsp): Don't canonicalize all LWSP as a SPACE, just
11796 (LayoutNoWrap): Same.
11798 2009-03-03 Jeffrey Stedfast <fejj@novell.com>
11800 * layout.cpp (TextLayout::SetTextWrapping): Default unknown values
11801 to Wrap here so that we can avoid a re-layout if the old wrapping
11804 2009-03-02 Jeffrey Stedfast <fejj@novell.com>
11806 Fixes some wrapping issues in LineBreakBasic1.htm
11808 * layout.cpp (TextLayout::LayoutWrap): Use a new 'wrapped' state
11809 variable to keep track of whether or not the layout_word_wrap()
11810 function returned. We want to keep 'linebreak' as a separate
11811 state. If we were told to wrap, but we've reached the end of the
11812 run, postpone wrapping until the next run (which might start with
11815 2009-03-02 Jeffrey Stedfast <fejj@novell.com>
11817 Fixes for AdobeFonts.htm
11819 * layout.cpp (TextLayoutGlyphCluster::Render): Give the underline
11820 its own Fill() so that if any glyphs have a tail that descends
11821 below the baseline into the underline, the fill doesn't negate
11822 itself where the paths overlap.
11823 (GenerateGlyphCluster): Use the font->Ascender() to get the
11824 baseline offset from the top. Height() + Descender() isn't quite
11825 right. Should probably fix other places that use that strategy as
11826 well, but one step at a time.
11828 2009-03-02 Jeffrey Stedfast <fejj@novell.com>
11830 * textbox.cpp (TextBoxView::TextBoxView): Init selection_changed
11832 (TextBoxView::Render): If the selection has changed, update the
11833 selection on the layout engine.
11834 (append_runs): Removed; no longer needed.
11835 (TextBoxView::Layout): Updated to use the new layout APIs.
11836 (TextBoxView::OnModelChanged): When the selection changes, don't
11837 set dirty to true. Instead, set selection_changed to true.
11838 (TextBoxView::SetTextBox): Set the default text attributes on our
11839 layout with the textbox as the source.
11841 * text.cpp (TextBlock::Layout): Updated to use the new text layout
11844 * layout.cpp: All new layout/rendering engine.
11846 2009-03-04 Geoff Norton <gnorton@novell.com>
11848 * deployment.cpp: When we dispose the domain, we force a full GC
11849 run to happen, otherwise objects could retain a ref to the deployment
11850 causing ~Deployment to never be called.
11852 2009-03-04 Jackson Harper <jackson@ximian.com>
11854 * xaml.cpp|h: Add a new method for grabbing the element_name of a
11855 xaml element instance from managed.
11857 2009-03-04 Alan McGovern <amcgovern@novell.com>
11859 * src.mdp: Add missing files to the MD solution
11861 2009-03-03 Chris Toshok <toshok@ximian.com>
11863 * collection.cpp (DependencyObjectCollection::AddedToCollection):
11864 add a check for PermitsMultipleParents here.
11866 * collection.h (UIElementCollection::AddWithError): remove.
11868 * dependencyobject.h (DependencyObject::PermitsMultipleParents):
11869 return true by default.
11871 * style.h (class Setter): setters don't permit multiple parents.
11873 * uielement.h (class UIElement): neither do uielements.
11875 * dependencyobject.cpp (DependencyObject::ProviderValueChanged):
11876 change the UIElement test to a PermitsMultipleParents test.
11878 2009-03-03 Chris Toshok <toshok@ximian.com>
11880 * cbinding.h, cbinding.cpp: regen.
11882 * collection.h, collection.cpp (DependencyObjectCollection::AddedToCollection): if
11883 the parent of the DO is a collection, throw an exception.
11884 (UIElementCollection::CanAdd): remove.
11885 (DependencyObjectCollection::CanAdd): remove.
11886 (HitTestCollection::CanAdd): remove.
11888 * dependencyobject.cpp (DependencyObject::ProviderValueChanged):
11889 reinstate the multiple parents warning, but make it a MoonError,
11890 and make it only apply to visual elements (UIElement subclasses,
11893 * dependencyobject.h (GetLogicalParentIncludingCollections): add a
11894 new getter for just the logical_parent field, which is horribly
11896 (GetLogicalParent): add a pinvoke for this.
11898 2009-03-03 Jackson Harper <jackson@ximian.com>
11900 * xaml.cpp|h: SetProperty now takes a Value instead of a
11901 DependencyObject, this allows us to set properties on things like
11904 2009-03-03 Geoff Norton <gnorton@novell.com>
11907 * pipeline-ui.cpp: Stop storing the mscodec path in the configuration
11910 2009-03-03 Alan McGovern <amcgovern@novell.com>
11913 * propertypath.h: Complete the implementation of PropertyPath.
11914 If it is constructed with a DependencyProperty in managed,
11915 propagate this to native.
11917 * dependencyproperty.cpp: If the property path instance was
11918 constructed with a DependencyProperty *, immediately return
11921 2009-03-03 Alan McGovern <amcgovern@novell.com>
11924 * animation.cpp: Implement the required exceptions for managed
11925 code when starting storyboards which are missing properties
11926 or can't find the target element/property.
11928 2009-03-03 Alan McGovern <amcgovern@novell.com>
11930 * src.mdp: Add propertypath.h to the MD solution
11932 2009-03-03 Alan McGovern <amcgovern@novell.com>
11935 * animation.cpp: Storyboards should always use the surface in
11936 the current deployment when starting. They don't have to be
11937 explicitly attached to a surface - SL2 has different
11938 semantics as compared to SL1 which caused some of the 1.0
11939 tests to flag this as a regression.
11941 2009-03-03 Alan McGovern <amcgovern@novell.com>
11945 * animation.cpp: Revert last change. I have the test failing
11948 2009-03-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
11950 * pipeline-asf.cpp: Add a null check.
11952 2009-03-03 Alan McGovern <amcgovern@novell.com>
11955 * animation.cpp: Storyboards should always use the surface in
11956 the current deployment when starting. They don't have to be
11957 explicitly attached to a surface.
11959 2009-03-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
11961 * dependencyobject.cpp: EventObject::SetSurface: only warn
11962 about wrong thread if we're actually change something.
11964 * mediaplayer.cpp: Call DisposeObject on the media to dispose
11968 * pipeline.cpp: Add Media::DisposeObject to have objects
11969 disposed on the media thread.
11971 2009-03-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
11973 * pipeline.cpp: Add a missing base call to Dispose.
11975 2009-03-02 Geoff Norton <gnorton@novell.com>
11977 * pipeline.cpp: SetSource (uri) is not required to be called before
11978 SetSource (Downloader, PartName) from the javascript API.
11980 2009-03-02 Geoff Norton <gnorton@novell.com>
11982 * deployment.cpp: Enable signal chaning
11984 2009-03-02 Jeffrey Stedfast <fejj@novell.com>
11986 * textbox.cpp (TextBox::Paste): New method to paste the
11987 contents. Since pasting text is asyncronous, we have to emit our
11988 own events and can't rely on them happening inside OnKeyDown().
11989 (TextBoxView::OnModelChanged): Don't allow 'dirty' to get set to
11990 false if updating the layout returns false.
11992 2009-03-01 Andrés G. Aragoneses <aaragoneses@novell.com>
11994 * runtime.cpp: Add an EOL at the end of a printf.
11996 2009-03-01 Jeffrey Stedfast <fejj@novell.com>
11998 * utils.h: Mark our g_ptr_array_insert*() symbols as internal, we
11999 don't want to be exporting these symbols.
12001 2009-02-27 Stephane Delcroix <sdelcroix@novell.com>
12003 * multiscaleimage.cpp: use the tiles containing the shared thumbs for
12004 the highest levels of DZ collections. Saves a lot of network traffic.
12006 2009-02-26 Sebastien Pouliot <sebastien@ximian.com>
12008 * resources.cpp: Simplify (old glib) Clear and use the "right" macro
12010 2009-02-26 Chris Toshok <toshok@ximian.com>
12012 * provider.cpp (InheritedPropertyValueProvider::GetPropertyValue):
12013 more tweaking of inheritance behavior. if the parentProperty
12014 exists, check the local value, and if it exists, return that.
12015 otherwise return return GetValue.
12017 2009-02-26 Chris Toshok <toshok@ximian.com>
12019 * border.cpp (Border::OnPropertyChanged): robustificate this a
12022 2009-02-26 Chris Toshok <toshok@ximian.com>
12024 * cbinding.h, cbinding.cpp: regen.
12026 * frameworkelement.cpp (FrameworkElement::FrameworkElement):
12027 initialize default_style_appled to false.
12028 (FrameworkElement::SetDefaultStyle): new method, so that the
12029 managed code can set the default style without going through the
12030 CLR property wrapper (and the DP system), since (stupidly, imo)
12031 the default style isn't exposed by the Style property.
12032 (FrameworkElement::Measure): I don't like doing this hear, but
12033 according to dave relyea's blog, templates are applied when
12034 Measure is called. we could add an internal measure hook so that
12035 this code could live in control.cpp, but for now this hack will
12038 * frameworkelement.h: expose SetDefaultStyle (GeneratePInvoke too)
12039 and add the default_style_applied field.
12041 * control.cpp (Control::OnLoaded): only apply the default style
12042 here if we haven't already (to handle the case where the object is
12043 created programmatically).
12045 * xaml.cpp (end_element_handler): according to the blog post in
12046 the added comment, controls defined in XAML get their default
12047 style applied when the end tag is seen.
12049 2009-02-26 Jeffrey Stedfast <fejj@novell.com>
12051 * textbox.cpp (TextBuffer::Resize): If we fail to downsize, don't
12053 (TextBuffer::Replace): Don't call Resize() if the replacement text
12054 is shorter than the old subtext because the realloc() would lose
12055 data before we had a chance to shift things into place.
12057 2009-02-26 Sebastien Pouliot <sebastien@ximian.com>
12059 * resources.cpp: Fix crash on SLED (old glib) when clearing the
12060 hashtable (somehow this did not crash before)
12062 2009-02-25 Jackson Harper <jackson@ximian.com>
12064 * xaml.cpp: Remove some old code that was preventing non-dob
12065 values from being set to native properties.
12067 2009-02-25 Jeffrey Stedfast <fejj@novell.com>
12069 * textbox.cpp (TextBuffer::Substring): New method to get a
12071 (class TextBoxUndoAction*): New classes to represent different
12072 types of Undo/Redo actions.
12073 (class TextBoxUndoStack): New Undo/Redo stack class.
12074 (TextBox::TextBox): Initialize undo/redo stacks.
12075 (TextBox): Destroy undo/redo stacks.
12076 (TextBox::KeyPressBackSpace): Record an undo action.
12077 (TextBox::KeyPressDelete): Same.
12078 (TextBox::KeyPressUnichar): Here too.
12079 (TextBox::OnKeyDown): Call Undo() and Redo() when appropriate.
12080 (TextBox::OnPropertyChanged): Record undo actions for setting
12081 SelectedText and Text properties.
12082 (TextBox::Undo): Undo the most recent action.
12083 (TextBox::Redo): Redo the most recent action.
12085 2009-02-25 Stephane Delcroix <sdelcroix@novell.com>
12087 * multiscaleimage.h|cpp: return the next tile to download
12088 in RenderSingle, RenderCollection. so the download is triggered
12089 from a single place.
12091 2009-02-25 Stephane Delcroix <sdelcroix@novell.com>
12093 * multiscaleimage.h|cpp: split Render in RenderSingle,
12096 2009-02-24 Chris Toshok <toshok@ximian.com>
12098 * dependencyobject.cpp (EventObject::FinishEmit): if handlers are
12099 added to the list during emission, we can end up doing the Finish
12100 decrements when we didn't do the Start increments, leading to a
12101 negative events->emitting count. This causes us to spin in
12102 unref_delayed on shutdown. Fixes bug #479364.
12106 2009-02-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
12108 * codec-version.h.in: Bump abi version.
12111 * mediaplayer.cpp: Handle frames with width/height set, and
12112 change our cairo surface accordingly.
12115 * pipeline.cpp: Add width/height to MediaFrame, to support
12116 frames with different sizes than the initial size specified
12119 2009-02-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
12121 * dependencyobject.cpp: Emit: Add a null check.
12123 2009-02-23 Jeffrey Stedfast <fejj@novell.com>
12125 * textbox.cpp (TextBoxView::Paint): Try to draw a crisp
12126 1-pixel-wide line for the cursor... apparently cairo has forsaken
12127 1-pixel-wide lines.
12129 2009-02-23 Jeffrey Stedfast <fejj@novell.com>
12131 * layout.cpp (TextLayout::GetCursor): Revert previous round()
12132 change, this isn't the right way to do it.
12134 * textbox.cpp (TextBoxView::BeginCursorBlink): Call
12136 (TextBox::OnPropertyChanged): Keep proper selection_anchor/cursor
12139 2009-02-23 Stephane Delcroix <sdelcroix@novell.com>
12141 * multiscaleimage.cpp: remove some debugs, clean the render loops,
12142 cleanly dispose the hashtable and its components
12144 2009-02-23 Jeffrey Stedfast <fejj@novell.com>
12146 * layout.cpp (TextLayout::GetCursor): Round the cursor's x
12147 position to the nearest whole number (makes the cursor look
12150 * textbox.cpp (TextBoxView::Paint): Always paint the cursor black.
12152 2009-02-23 Chris Toshok <toshok@ximian.com>
12154 * xaml.cpp (value_from_str): handle Type::OBJECT here by just
12155 assuming the value is a string. Fixes Tag.htm.
12157 2009-02-23 Geoff Norton <gnorton@novell.com>
12159 * debug.cpp: Don't go poking around in managed land if we don't have
12162 2009-02-23 Stephane Delcroix <sdelcroix@novell.com>
12164 * multiscaleimage.cpp: Render () in relative coordinates
12166 2009-02-23 Stephane Delcroix <sdelcroix@novell.com>
12168 * multiscaleimage.h|cpp: use filename as cache keys
12170 2009-02-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
12173 * pipeline.cpp: Only decode on the media thread.
12175 2009-02-23 Alan McGovern <amcgovern@novell.com>
12178 * dependencyproperty.g.cpp: Tag is a System.Object, not a
12181 2009-02-22 Geoff Norton <gnorton@novell.com>
12183 * pipeline.cpp|h: Add extra_data from managed for AudioStream too
12185 2009-02-22 Geoff Norton <gnorton@novell.com>
12187 * cbinding.cpp|h: Regen
12188 * pipeline.cpp|h: When constructing a new VideoStream pass the
12189 extra_data from managed.
12191 2009-02-22 Geoff Norton <gnorton@novell.com>
12193 * pipeline-asf.cpp:
12194 * pipeline.cpp|h: Add some missing codecs.
12196 2009-02-20 Jeffrey Stedfast <fejj@novell.com>
12198 * layout.cpp (TextLayout::Layout*Wrap*): Always need to update
12199 actual_width, segment->end, etc - even if all we had was
12200 whitespace. Try to keep better track of this state as well.
12201 (TextLayout::GetCursor): The cursor height is actually the same as
12204 * textbox.cpp (TextBox::TextBox): Init inkeypress state to false.
12205 (TextBox::OnKeyDown): Set inkeypress to true at the beginning and
12207 (TextBox::OnPropertyChanged): Check for inkeypress so we don't
12208 syncronize things too early (we want to do it in SyncAndEmit() at
12209 the end of OnKeyDown()). Also updated to keep proper emit state.
12210 (TextBox::ClearSelection): Only sync selected text if we aren't in
12212 (TextBox::Select): Same.
12214 2009-02-20 Jeffrey Stedfast <fejj@novell.com>
12216 * textbox.cpp (TextBuffer::Resize): Return bool - true if we were
12217 able to resize or false if we failed.
12218 (TextBuffer::*): If Resize fails, return.
12219 (TextBox::CursorPrevWord): Only nagivate back so long as i >
12220 begin. Prevents us from returning -1 when begin is 0.
12221 (TextBuffer::Cut): Fixed the logic - we don't want to memmove the
12222 total number of bytes left after cutting, we only want to memmove
12223 the bytes after the cut point.
12225 * moon-path.c (moon_path_ensure_space): New function to replace
12226 the ENSURE_SPACE() macro and moon_path_expand(). Returns bool so
12227 that callers can tell if they have enough space to add the data
12228 they want. Fixed callers to check the return value and return w/o
12229 adding curves, lines, whatever. While this will mean that
12230 Moonlight won't render the path correctly, at least we won't
12233 2009-02-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
12235 * mediaplayer.cpp: Open: Show the first frame upon opening a
12238 2009-02-19 Sebastien Pouliot <sebastien@ximian.com>
12240 * size.cpp|h: Add FromStr (copied from Point)
12241 * xaml.cpp: Parse Type::SIZE
12243 2009-02-19 Jeffrey Stedfast <fejj@novell.com>
12245 * stylus.h (class StylusPoint): In managed-land, this class is
12246 actually a struct, so until we find a better way, mark property
12247 accessors for pinvoking.
12248 (class StylusPointCollection): Add AddStylusPoints to the list of
12249 methods to create pinvoke stubs for.
12250 (class StylusInfo): Fixed to have a managed class
12251 autogenerated (internal).
12253 * brush.cpp (VideoBrush::SetSource): Implemented.
12255 2009-02-19 Sebastien Pouliot <sebastien@ximian.com>
12257 * dependencyobject.cpp|h: The parameter is not needed anymore
12258 since the xaml code was updated to work without using the
12261 2009-02-19 Jackson Harper <jackson@ximian.com>
12263 * xaml.cpp: Implement StaticResource element syntax.
12265 2009-02-18 Jeffrey Stedfast <fejj@novell.com>
12267 * geometry.h (class PathGeometry): Don't autocreate the
12268 FiguresProperty until we can figure out why it breaks the PDC
12271 2009-02-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
12273 * mediaelement.h: We always want OnPropertyChanged for
12274 PositionProperty. Fixes seeking to start/0.
12276 * dependencyproperty.g.cpp: Regenerated.
12278 2009-02-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
12280 * mediaelement.cpp: ctor: Initialize flags correctly.
12282 2009-02-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
12286 * pipeline-asf.cpp:
12287 * mediaelement.cpp: g_warn_if_failed -> g_return_if_failed to
12288 make sled (glib 2.10) happy.
12290 2009-02-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
12296 * mediaelement.cpp: Initial implementation of
12300 * cbinding.cpp: Regenerated.
12302 2009-02-18 Alan McGovern <amcgovern@novell.com>
12307 * animation.cpp: Storyboards are considered 'children' if they
12308 ever were attached as a child of another timeline. The
12309 current status doesn't appear to matter.
12310 (StoryboardTest.RemoveChildThenStart).
12312 2009-02-18 Stephane Delcroix <sdelcroix@novell.com>
12314 * multiscaleimage.h|cpp: remove GetViewPortHeight, fix the rendering
12317 2009-02-17 Chris Toshok <toshok@ximian.com>
12319 * text.cpp (TextBlock::TextBlock): remove this hack.
12321 2009-02-17 Chris Toshok <toshok@ximian.com>
12323 * textbox.cpp (TextBox::OnPropertyChanged): add the same hardening
12324 to the SelectedText case, and also don't perform the remaining
12325 operations if g_utf8_to_ucs4_fast fails.
12327 2009-02-17 Jeffrey Stedfast <fejj@novell.com>
12329 * dependencyobject.cpp: Now takes an only_changed argument; if
12330 true, then only return the properties which have been
12331 changed (plus any values which have been auto-created).
12333 * mediaelement.cpp (MediaElement::MediaElement): Set
12334 BufferingTimeProperty and PositionProperty in the ctor, we can't
12335 use DefaultValue nor AutoCreateValue for these since they need to
12336 be returned by ReadLocalValue() immediately after instantiating a
12337 new MediaElement object.
12339 * media.h (class MediaAttribute): Set managed namespaces for
12340 MediaAttribute and MediaAttributeCollection, we have internal
12341 managed implementations of these now.
12343 * text.h (class TextBlock): Changed default LineHeightProperty
12344 value from NaN to 0.0 (docs say NaN is the default, but not
12345 according to the unit tests).
12347 * textbox.h (class TextBox): Changed default TextProperty value
12348 from "" to null (docs say "" is the default, but not according to
12351 * media.cpp (Image::Image): Fix the SourceProperty to be
12354 * shape.cpp (Polygon::Polygon): Don't set a point
12355 collection. We'll make it autocreated instead.
12356 (Polyline::Polyline): Same.
12358 * geometry.h (class PathFigure): Set the default value of
12359 IsFilledProperty to true.
12360 (class PathGeometry): AutoCreate the FiguresProperty.
12361 (class PolyBezierSegment): AutoCreate the PointsProperty.
12362 (class PolyLineSegment): AutoCreate the PointsProperty.
12363 (class PolyQuadraticBezierSegment): AutoCreate the PointsProperty.
12365 * deployment.h (class AssemblyPart): Set the default value of
12366 AssemblyPart::SourceProperty to "".
12368 * mediaelement.h: Set the default value of CurrentState to Closed.
12370 * mediaelement.cpp (MediaElement::MediaElement): Don't need to set
12371 Markers or Attributes properties, these are autocreated.
12373 2009-02-17 Alan McGovern <amcgovern@novell.com>
12375 * animation.cpp: Missed out on a "!" when changing from
12376 GetIsChild to GetIsRootStoryboard
12378 2009-02-17 Alan McGovern <amcgovern@novell.com>
12381 * cbinding.cpp: Regenerated
12384 * animation.cpp: Add *WithError functions so that storyboards
12385 can throw the right exceptions when they are not the root
12388 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12390 * mediaelement.cpp: Add some null checks.
12392 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12395 * mediaelement.cpp: Move bitfields into our flags field.
12396 Remove allow_downloads and related methods, no longer used.
12398 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12401 * mediaelement.cpp: Remove GetDownloaderPolicy, not used
12404 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12410 * mediaelement.cpp: Make SetSource (Stream) work again.
12412 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12419 * pipeline-ffmpeg.h:
12420 * yuv-converter.cpp:
12421 * pipeline-ffmpeg.cpp: Update according to new pipeline api.
12431 * pipeline-asf.cpp:
12432 * mediaelement.cpp:
12433 * mms-downloader.h:
12434 * mms-downloader.cpp: Rework pipeline to be async to support
12441 * type-generated.cpp:
12442 * dependencyproperty.g.cpp: Regenerated.
12444 * codec-version.h.in: Bump codec abi.
12446 * downloader.cpp: Include uri.h.
12448 * downloader.h: Add accessor for failed_msg.
12451 * enums.cpp: Rename MediaElementState to MediaState.
12453 * mutex.h: Added, a pthread implementation of a mutex allowing
12456 * template.h: Inlcude xaml.h and add a forward declaration of
12459 * window.h: Add a forward declaration of MoonWindow.
12461 * src.mdp: Updated.
12463 * dependencyobject.h:
12464 * dependencyobject.cpp: Added EVENTHANDLER macro. Added
12465 support for emititng events from other than the main thread
12466 (by marshalling the event emission to the main thread).
12468 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12470 * deployment.cpp: Use printf instead of g_warning for a
12471 message which is always printed. Makes it less annoying to
12472 break on g_log while debugging.
12474 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12478 * type-generated.cpp: Regenerate.
12480 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12485 * mediaelement.cpp: Remove MediaErrorEventArgs.
12487 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12489 * debug.h: Added LOG_MP3.
12491 * runtime.cpp: Surface ctor: set the surface of the current
12492 deployment to the ourself.
12494 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12496 * runtime.h: Add a VERIFY_MAIN_THREAD sanity macro.
12498 * runtime.cpp: Add support for MOONLIGHT_DEBUG=all.
12500 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12503 * runtime.cpp: CreateDownloader: take an EventObject instead
12506 2009-02-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12509 * runtime.cpp: Add mp3 support to MOONLIGHT_DEBUG.
12511 2009-02-17 Atsushi Enomoto <atsushi@ximian.com>
12513 * geometry.h, geometry.cpp, dependencyproperty.g.cpp:
12514 Fixed type of ArcSegment::Size from Point to Size.
12516 2009-02-16 Jeffrey Stedfast <fejj@novell.com>
12518 * text.h: Default TextBlock font size seems to be 11px in SL2 as
12519 opposed to 14.667 in SL1.
12521 2009-02-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
12525 * mediaelement.cpp: Move image_brush_compute_pattern_matrix
12526 from media.cpp/mediaelement.cpp to brush.h to avoid having
12527 two declarations of the same method.
12529 2009-02-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
12531 * brush.cpp: Include mediaplayer.h here.
12533 2009-02-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
12535 * dependencyobject.cpp: Change our g_error into a g_warning.
12536 Reffing an object with refcount = 0 can actually happen now.
12538 2009-02-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
12540 * dependencyobject.cpp: AddTickCallInternal: if we don't have
12541 a surface, get it from the deployment.
12543 2009-02-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
12545 * dependencyobject.cpp: EventObject. unref and null out the
12546 deployment in the dtor instead of in Dispose.
12548 2009-02-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
12550 * dependencyobject.h:
12551 * dependencyobject.cpp: Add
12552 DependencyObject::RemoveAllHandlers.
12554 2009-02-16 Alan McGovern <amcgovern@novell.com>
12556 * animation.cpp: Remove the calls to ref/unref as they are
12559 2009-02-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
12561 * libmoon.h: Don't include playlist.h here. Fixes issues with
12562 the plugin when playlist.h includes expat.
12564 2009-02-16 Alan McGovern <amcgovern@novell.com>
12569 * animation.cpp: Implement the managed side of
12570 Storyboard.GetCurrentState ().
12572 2009-02-16 Alan McGovern <amcgovern@novell.com>
12575 * type.h.in: The renaming changes in r126921 break the build
12576 if the generator is run because type.h.in didn't contain the
12577 CopyProperties prototype.
12579 2009-02-16 Geoff Norton <gnorton@novell.com>
12582 * downloader.h: Downloaders created in javascript can suffer the
12583 same shared-cache firefox bug, so we need to expose the buffer
12584 to the image layer in case this is the place.
12586 2009-02-14 Jeffrey Stedfast <fejj@novell.com>
12588 * dependencyobject.cpp (DependencyObject::GetProperties): New
12589 method to get an array of all properties on the object (including
12590 currently attached properties).
12592 * type.cpp (Type::CopyProperties): Renamed from GetProperties()
12593 and changed what it does a bit. Now takes an 'inherited' argument
12594 and returns a GHashTable of properties keyed by GetHashKey().
12596 2009-02-14 Chris Toshok <toshok@ximian.com>
12598 * dependencyobject.h, dependencyobject.cpp: rename
12599 "current_values" as "local_values". current_values now means
12600 "local values + autocreated values". At this point, add
12601 GetCurrentValues which returns a new hashtable containing a union
12602 of both sets, and add FreeCurrentValues to destroy it.
12604 * provider.cpp (LocalPropertyValueProvider::GetPropertyValue): use
12605 DependencyObject::GetLocalValues instead of GetCurrentValues.
12607 2009-02-13 Chris Toshok <toshok@ximian.com>
12609 * provider.cpp (InheritedPropertyValueProvider::GetPropertyValue):
12610 fix a number of logical errors. gets inlines properly inheriting
12613 2009-02-14 Jeffrey Stedfast <fejj@novell.com>
12615 * type.cpp (Type::GetProperties): New method to get an array of
12616 DependencyProperties for a Type.
12618 2009-02-13 Geoff Norton <gnorton@novell.com>
12620 * playlist.cpp: Check these string with g_ascii_str* as well.
12621 Also these should be case-insensitive checks.
12623 2009-02-13 Jeffrey Stedfast <fejj@novell.com>
12625 * mediaelement.h (class MediaElement): NaturalVideoWidth/Height
12626 should be ints, not doubles.
12628 * text.h (class Glyphs): Set the DefaultValues for
12629 UnicodeStringProperty, IndicesProperty, and FontUriProperty to "".
12631 * bitmapimage.cpp (BitmapImage::BitmapImage): Don't call
12632 SetUriSource("") (it's already the DefaultValue).
12634 2009-02-13 Geoff Norton <gnorton@novell.com>
12636 * media.cpp|h: Ensure we're comparing magics with unsigned values, and
12637 fix a logic bug that prevented us from proplery writing progressive pixbuf
12640 2009-02-13 Jeffrey Stedfast <fejj@novell.com>
12642 * multiscaleimage.h (class MultiScaleImage): Rename the
12643 SubImageCollectionProperty to SubImagesProperty to match
12646 2009-02-13 Geoff Norton <gnorton@novell.com>
12648 * runtime.cpp|h: Add a new overload to control the gdk_pixbuf_loader
12650 * media.cpp|h: Ensure that we only load jpeg/png images like microsoft
12651 does when running in the browser profile.
12653 2009-02-13 Alan McGovern <amcgovern@novell.com>
12655 * value.cpp: Use the GPOINTER_TO_INT macro as suggested rather
12656 than casting to a 64bit then 32bit value.
12658 2009-02-13 Stephane Delcroix <sdelcroix@novell.com>
12660 * multiscaleimage.h|cpp: drop the friend here too
12662 2009-02-13 Stephane Delcroix <sdelcroix@novell.com>
12664 * tilesource.h: drop the friends
12666 2009-02-13 Stephane Delcroix <sdelcroix@novell.com>
12668 * Makefile.am: remove deepzoomimagetilesource.h from the
12669 include_headers. no one should code against it.
12671 2009-02-13 Stephane Delcroix <sdelcroix@novell.com>
12673 * multiscaleimage.cpp:
12674 * deepzoomimagetilesource.h|cpp: dzits no longer have any friends
12676 2009-02-13 Stephane Delcroix <sdelcroix@novell.com>
12678 * multiscaleimage.cpp: timing macros
12680 2009-02-13 Stephane Delcroix <sdelcroix@novell.com>
12682 * multiscaleimage.cpp: embed the rendering in push_group/pop_group then
12683 paint at once to avoid flickering.
12685 2009-02-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
12687 * downloader.cpp: Sprinkle a few SetCurrentDeployments. Fixes
12688 a crash when downloading mms streams (due to not having
12691 2009-02-12 Geoff Norton <gnorton@novell.com>
12693 * playlist.cpp: Ensure that we don't poke around in random memory
12694 if we have an invalid entry in our parser.
12696 2009-02-12 Alan McGovern <amcgovern@novell.com>
12698 * value.cpp: Add an assert in case the gchandle value is out
12701 2009-02-12 Alan McGovern <amcgovern@novell.com>
12703 * value.cpp: Fix compile error on x64 when casting a void* to
12706 2009-02-12 Alan McGovern <amcgovern@novell.com>
12708 * value.cpp: Managed objects are stored in native as
12709 GCHandles. Use the mono api to get the target of that
12710 GCHandle so that they can be compared correctly in
12711 value.cpp. Remove hack in ItemCollection.cs which worked
12714 2009-02-12 Stephane Delcroix <sdelcroix@novell.com>
12716 * multiscalesubimage.h|cpp: add id, n as ctor params, make the ctor
12717 public, drop a friend.
12718 * deepzoomimagetilesource.h|cpp: EndElement is now a class method, drop
12721 2009-02-12 Stephane Delcroix <sdelcroix@novell.com>
12723 * deepzoomtilesource.cpp: some g_ascii love
12725 2009-02-11 Chris Toshok <toshok@ximian.com>
12727 * text.h: Inline's fontsize default value is 11. looks like
12728 textblock is the only case where it differs.
12730 2009-02-11 Jeffrey Stedfast <fejj@novell.com>
12732 * eventargs.h (MouseEventArgs::GetEvent): Expose the raw GdkEvent.
12734 * textbox.cpp (TextBoxView::ConnectBlinkTimeout): Get the cursor
12735 blink timeout from the GtkSettings.
12736 (TextBox::OnKeyDown): Don't bother printing the buffer anymore,
12737 things seem to have been debugged enough now.
12738 (TextBox::CursorLineBegin): New convenience method.
12739 (TextBox::CursorLineEnd): Same.
12740 (TextBox::OnMouseLeftButtonDown): Implemented double and
12741 triple-click. Capture mouse if single-click.
12742 (TextBox::OnMouseLeftButtonUp): Release mouse capture.
12743 (TextBox::CursorPrevWord): Don't allow ourselves to go beyond the
12744 beginning of the line.
12746 2009-02-11 Alan McGovern <amcgovern@novell.com>
12763 * mediaelement.cpp:
12764 * multiscaleimage.h:
12765 * multiscaleimage.cpp: Switch FindElementsInHostCoordinates to
12766 use the ::Render codepaths instead of it's own custom
12767 codepath. Added an extra parameter to ::Render () to specify
12768 whether or not the paths appended to the cairo_t should be
12769 filled/stroked/clipped. This allows a whole bunch of NUnit
12773 * frameworkelement.cpp: Add an extra parameter to ::Render ()
12774 to specify whether or not the paths appended to the cairo_t
12775 should be filled/stroked/clipped so it can be shared with
12776 the managed hittesting.
12777 Switch FindElementsInHostCoordinates to use the ::Render
12778 codepaths instead of it's own custom codepath. This allows a
12779 whole bunch of NUnit tests to pass.
12781 2009-02-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
12812 * contentcontrol.h:
12813 * multiscaleimage.h:
12814 * frameworkelement.h:
12815 * dependencyobject.h:
12816 * multiscalesubimage.h:
12817 * dependencyproperty.g.cpp:
12818 * deepzoomimagetilesource.h: Make DP backing fields const.
12820 2009-02-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
12839 * mediaelement.cpp:
12840 * contentcontrol.cpp:
12841 * dependencyobject.h:
12842 * multiscaleimage.cpp:
12843 * dependencyobject.cpp:
12844 * frameworkelement.cpp:
12845 * deepzoomimagetilesource.cpp: PropertyChangedEventArgs: make
12846 dp and id fields private and add accessors.
12848 2009-02-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
12900 * mediaelement.cpp:
12901 * contentcontrol.h:
12902 * multiscaleimage.h:
12903 * contentcontrol.cpp:
12904 * frameworkelement.h:
12905 * dependencyobject.h:
12906 * multiscaleimage.cpp:
12907 * dependencyproperty.h:
12908 * multiscalesubimage.h:
12909 * frameworkelement.cpp:
12910 * dependencyobject.cpp:
12911 * dependencyproperty.cpp:
12912 * dependencyproperty.g.cpp:
12913 * deepzoomimagetilesource.h:
12914 * deepzoomimagetilesource.cpp: Change our static
12915 DependencyProperty backing fields to store an integer id
12916 instead of an instance to a DependencyProperty. This way we
12917 can have true per-deployment dependency properties.
12919 2009-02-11 Alan McGovern <amcgovern@novell.com>
12926 * frameworkelement.cpp: Commit some more updates to the
12927 managed hittesting.
12929 2009-02-10 Jeffrey Stedfast <fejj@novell.com>
12931 * layout.cpp (TextLayout::Layout*Wrap*): Kern between runs. Fixes
12932 xchatitis in TextBox.
12934 2009-02-10 Jeffrey Stedfast <fejj@novell.com>
12936 * fontfamily.h (struct FontFamily): Implemented != operator.
12938 * text.cpp (Inline::Equals): Fixed the fontfamily check.
12940 * provider.cpp (AutoCreatePropertyValueProvider::SetSurface): Removed.
12942 * dependencyobject.cpp (DependencyObject::Dispose): Fixed to
12943 dispose autocreated values too.
12944 (DependencyObject::RemoveAllListeners): Same here.
12945 (DependencyObject::RegisterAllNamesRootedAt): And here.
12946 (DependencyObject::UnregisterAllNamesRootedAt): Here too.
12948 2009-02-10 Jeffrey Stedfast <fejj@novell.com>
12950 * panel.cpp (Panel::GetSubtreeObject): Override UIElement's
12951 GetSubtreeObject so that we can auto-create our Children property
12952 and set it if it hasn't already been set.
12954 * dependencyobject.cpp (DependencyObject::SetValueWithErrorImpl):
12955 We need to clear the LocalProvider value as well, if there is
12956 one. Also, don't allow setting a Value* with a null
12957 DependencyObject if it is an autocreate property.
12958 (DependencyObject::ClearValue): Clear the LocalProvider value too.
12959 (DependencyObject::SetSurface): SetSurface on autocreated values too.
12961 * dependencyproperty.cpp (DependencyProperty::DependencyProperty):
12962 Now takes another bool arg to specify whether it is allowed to
12963 autocreate new DP values.
12964 (DependencyProperty::Register): Updated.
12965 (DependencyProperty::RegisterFull): Updated, now also takes an
12968 * provider.cpp (AutoCreatePropertyValueProvider): A new provider
12969 which sits below DefaultValue.
12971 * *.cpp (*::ctor): Remove calls to SetValue()
12973 * *.h: Added AutoCreateValue where appropriate.
12975 2009-02-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
12977 * color.h: fabs is in math.h.
12979 2009-02-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
12982 * list.cpp: Add a simple ArrayList implementation.
12987 * type-generated.cpp:
12988 * dependencyproperty.g.cpp: Regenerated.
12990 * dependencyproperty.h:
12991 * dependencyproperty.cpp: RegisterCustom: removed, no longer
12992 used anywhere. RegisterNull: incorporated into
12993 RegisterFull. Register[Full]: take another Types* argument
12994 so that the registration doesn't have to look it up in the
12995 deployment for every call (this way we can later register
12996 dependency properties in the Types ctor). Also move any
12997 logic from the individial Register overloads to
12998 RegisterFull, this way we don't have different logic
12999 depending on the overload.
13002 * type.h.in: Keep a list of all properties for all types on
13003 the Types* instance, and remove the custom properties (hash
13004 and list) on the Type* instance, keeping only one hash
13005 table for both native and custom properties.
13007 2009-02-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
13014 * file-downloader.h: Only use G_BEGIN/END_DECLS around c
13015 methods (and in files with no c methods remove completely).
13017 2009-02-10 Jackson Harper <jackson@ximian.com>
13019 * xaml.h|cpp: New method for getting the key of an element
13021 - Pass the element instance data for the values to set property
13022 when we have one, otherwise pass NULL.
13024 2009-02-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
13026 * dependencyproperty.g.cpp: Temporary fix for > 1 xap per
13027 process: don't check if DPs have been created before
13030 2009-02-10 Alan McGovern <amcgovern@novell.com>
13032 * border.cpp: Corner rounding is now taken into account when
13033 hittesting a Border
13035 2009-02-10 Fernando Herrera <fherrera@novell.com>
13037 * value.cpp: Fix GetIsNull call casting in the copy
13040 2009-02-09 Chris Toshok <toshok@ximian.com>
13042 * value.cpp: call SetIsNull everywhere so we can always check
13045 2009-02-09 Alan McGovern <alan.mcgovern@gmail.com>
13050 * frameworkelement.cpp: Three more of the NUnit tests are now
13051 passing for FindElementsInHostCoordinates
13053 2009-02-09 Alan McGovern <alan.mcgovern@gmail.com>
13060 * frameworkelement.cpp: Commit some more of the hittest code.
13062 2009-02-09 Jeffrey Stedfast <fejj@novell.com>
13064 * type.h.in (class Types): Added a private static field to record
13065 whether or not the static DP's have already been registered.
13067 2009-02-09 Geoff Norton <gnorton@novell.com>
13069 * deployment.cpp: Support enabling coreclr for moonlight so we
13070 can start dogfooding this.
13072 2009-02-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
13074 * deployment.cpp: Remove redundant call to SetObjectType.
13076 2009-02-08 Chris Toshok <toshok@ximian.com>
13078 * provider.cpp (InheritedPropertyValueProvider::GetPropertyValue):
13079 add inheritance of FrameworkElement::DataContextProperty.
13081 * frameworkelement.[cpp,h]: remove all the databinding stuff from
13082 here - it's all handled in managed code now.
13084 * dependencyproperty.[cpp,h]: add SetPropertyChangedCallback.
13086 * cbinding.[cpp,h]: regen.
13088 2009-02-07 Sebastien Pouliot <sebastien@ximian.com>
13090 * xaml.cpp: Adjust lookup to find StaticResources defined in
13091 a ResourceDictionary. re-fix parsing of generic.xaml for the
13092 SL toolkit (unit tests)
13094 2009-02-07 Larry Ewing <lewing@novell.com>
13096 * border.cpp (Border::ArrangeOverride):
13097 * usercontrol.cpp (UserControl::ArrangeOverride): Fix padding on
13100 * grid.cpp (Grid::MeasureOverride): distribute the allocation
13101 across auto dimensions when it makes sense.
13103 2009-02-07 Larry Ewing <lewing@novell.com>
13105 * grid.cpp (Grid::MeasureOverride): don't give our whole
13106 allocation to the first column.
13108 2009-02-07 Sebastien Pouliot <sebastien@ximian.com>
13110 * stylus.cpp: Committed a variation of Geoff patch to fix
13111 the crash when running moon-unit
13113 2009-02-07 Geoff Norton <gnorton@novell.com>
13115 * cbinding.cpp|h: Regenerate
13116 * deployment.cpp|h: API cleanup
13117 * downloader.cpp|h: Generate some code that doesn't need to be
13118 hand maintained. Clean up some API to prevent a crash when
13119 unregistering downloaders.
13121 2009-02-07 Geoff Norton <gnorton@novell.com>
13127 * size.h: Account for an epsilon when comparing these structures
13128 to avoid erroneously emitting false results.
13130 2009-02-07 Jeffrey Stedfast <fejj@novell.com>
13132 * text.cpp (TextBlock::GetTextInternal): Now takes an
13133 InlineCollection argument.
13134 (TextBlock::OnPropertyChanged): Pass args->new_value to
13135 GetTextInternal() so that we avoid unnecesary recursion in the
13136 case that we're being called as a result of a GetValue() of the
13138 (TextBlock::OnCollectionChanged): Updated.
13139 (TextBlock::OnCollectionItemChanged): Updated.
13141 2009-02-06 Larry Ewing <lewing@novell.com>
13143 * shape.cpp (Shape::ArrangeOverride): take alignment into account
13144 when Stretch == None.
13146 * media.cpp (Image::ArrangeOverride):
13147 * mediaelement.cpp (MediaElement::ArrangeOverride): take alignment
13148 into account when Stretch == None.
13150 * grid.cpp, grid.h: keep track of the automagical w/h make handle
13151 it properly when alignment is not stretch. Fixes leaf control
13152 placement on "the moment".
13154 2009-02-06 Larry Ewing <lewing@novell.com>
13158 * enums.cpp (enum_from_str): use g_ascii_strcasecmp.
13160 * deepzoomimagetilesource.cpp (start_element): use g_ascii_strtod.
13162 * xaml.cpp (value_from_str): replace use g_ascii_strcasecmp
13165 2009-02-06 Larry Ewing <lewing@novell.com>
13167 * control.cpp (Control::Control): remove bad setting of
13170 2009-02-06 Jackson Harper <jackson@ximian.com>
13172 * xaml.cpp|h: Add a new method for retrieving the control template
13173 parent of a xaml element instance (called from unmanaged).
13174 - quick hack to force binding expressions to be parsed in managed.
13176 2009-02-06 Jeffrey Stedfast <fejj@novell.com>
13178 * keyboard.cpp (Keyboard::MapKeyValToKey): Map alternative names
13179 for *+/- and . to our Key enum needed for the DLR Console app.
13181 2009-02-06 Jeffrey Stedfast <fejj@novell.com>
13183 * Reverted previous commit as I goofed the unit test on
13184 Windows. Once I fixed it, the logic I worked so hard to achieve
13187 2009-02-06 Larry Ewing <lewing@novell.com>
13189 * frameworkelement.cpp (FrameworkElement::Arrange): don't align if
13190 we are the toplevel.
13192 2009-02-06 Jeffrey Stedfast <fejj@novell.com>
13194 See InkPresenter's ClearValue unit test
13196 1. Calling SetValue() in ctors was gross.
13197 2. it was wrong because ReadLocalValue() on Silverlight got "Unset"
13198 3. it broke things if ClearValue was used and/or if the properties
13201 * dependencyobject.cpp (DependencyObject::GetDefaultValue): New
13202 method to query for a default property value as used by the
13203 PropertyValueProviders.
13204 (DependencyObject::ReadLocalValue): Read the value directly from
13207 * provider.cpp (LocalValuePropertyValueProvider::GetPropertyValue):
13208 Call DependencyObject::GetDefaultValue() to try and get a default
13209 value. If successful, set it on the current_values hash table.
13211 * *.cpp: Fixed all classes that had ctors that called SetValue()
13212 to instead override GetDefaultValue().
13214 2009-02-06 Chris Toshok <toshok@ximian.com>
13216 * uielement.cpp (UIElement::SetSurface): if we have a subtree
13217 object (which is a UIElement), set its surface too. Fixes the
13218 ContentPresenter textblocks in ItemsControl.
13220 2009-02-06 Stephane Delcroix <sdelcroix@novell.com>
13222 * deepzoomimagetilesource.cpp: set subimage width/height
13223 * multiscaleimage.cpp: do not download subimages .xml, we can work
13226 2009-02-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
13229 * cbinding.cpp: Regenerated.
13231 * dependencyobject.h:
13232 * dependencyobject.cpp:
13233 DependencyObject::ProviderValueChanged: Add a MoonError
13234 argument to be able to marshal managed exceptions through
13235 native code. ClearValue: Add a MoonError argument to match
13236 the signature of ProviderValueChanged.
13238 * dependencyproperty.h: Make NativePropertyChangedHandler
13239 take a MoonError argument to be able to marshal managed
13240 exceptions through native code.
13243 * error.cpp: Add a gchandle_ptr field to hold managed
13246 * frameworkelement.h:
13247 * frameworkelement.cpp: Update according to ClearValue
13250 * provider.cpp: Update according to ProviderValueChanged
13253 2009-02-06 Stephane Delcroix <sdelcroix@novell.com>
13255 * morton-layout-table.inc: pre-computed table for Morton Layout
13258 2009-02-06 Stephane Delcroix <sdelcroix@novell.com>
13260 * multiscaleimage.cpp: fix the most annoying rendering issue for
13263 2009-02-06 Jackson Harper <jackson@ximian.com>
13265 * xaml.cpp: Store a list of resource dictionaries on the xaml
13266 context, so control templates can use these to lookup resources.
13267 Also go back to using the XamlElementInstance's for walking up the
13268 tree, this allows us to parse before parenting items.
13270 2009-02-05 Geoff Norton <gnorton@novell.com>
13272 * deepzoomimagetilesource.cpp|h: We don't want to download all of
13273 the sub images at creation time, so allow them to defer, otherwise
13274 we might fire off hundreds of downloaders at once.
13276 2009-02-05 Jackson Harper <jackson@ximian.com>
13278 * xaml.cpp: Use the case sensitive Type::Find (fixes parsing
13281 2009-02-05 Jeffrey Stedfast <fejj@novell.com>
13283 * dependencyobject.cpp (DependencyObject::ReadLocalValue): Renamed
13284 to be more consistent with the managed API.
13286 * frameworkelement.cpp (FrameworkElement::ReadLocalValue): Same.
13288 2009-02-05 Geoff Norton <gnorton@novell.com>
13290 * multiscaleimage.cpp|h: We must emit this event on the main thread
13292 2009-02-05 Alan McGovern <alan.mcgovern@gmail.com>
13301 * frameworkelement.h:
13302 * frameworkelement.cpp: Create an unmanaged version of
13303 FindElementsInHostCoordinates
13305 2009-02-05 Geoff Norton <gnorton@novell.com>
13308 * dependencyproperty.g.cpp:
13309 * type-generated.cpp: Regenerate
13310 * collection.h: Generate bindings for the multiscalesubimage collection.
13311 * deepzoomimagetilesource.cpp: Trigger a download when we get our URI
13312 * multiscaleimage.cpp|h: Hide SubImages in a internal property until
13313 we can marshal collections as ReadOnly into managed automatically.
13314 Also emit the ImageOpenSucceeded event when we're done parsing.
13316 2009-02-05 Jackson Harper <jackson@ximian.com>
13318 * type.cpp|h|h.in: Type:Find does need to be insensitive for JS.
13319 So I've added an ignore_case flag that the parser can use.
13321 2009-02-05 Jackson Harper <jackson@ximian.com>
13323 * type.cpp: As far as I can tell, Type::Find does not need to be
13324 case sensitive. This fixes "Double" being found when we register
13327 2009-02-05 Jeffrey Stedfast <fejj@novell.com>
13329 Save some additional state for an optimization I'd like to do.
13331 * layout.cpp (TextLayout::LayoutWrapWithOverflow): Keep track of
13332 character offset for each TextLine.
13333 (TextLayout::LayoutNoWrap): Same.
13334 (TextLayout::LayoutWrap): Here too.
13336 2009-02-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
13338 * deployment.cpp: Fix typo.
13340 2009-02-05 Alan McGovern <alan.mcgovern@gmail.com>
13342 * frameworkelement.cpp: Reverting r125649 as it's incorrect.
13344 2009-02-05 Jeffrey Stedfast <fejj@novell.com>
13346 * textbox.cpp (TextBox::OnMouseLeftButtonDown): Don't use
13347 ClearSelection() because we'll be syncing the SelectedText in
13348 SyncAndEmit() anyway.
13350 * layout.cpp (TextLayout::Layout*Wrap*): Oops, fix outer loop to
13351 exit when inptr >= inend rather than when *inptr == 0.
13352 (TextLayout::GetCursorFromXY): Slightly improved.
13354 2009-02-05 Sebastien Pouliot <sebastien@ximian.com>
13356 * dependencyobject.cpp|h: Let GetLogicalParent optionally report
13357 a collection for it's parent. This is needed in some cases like
13358 a Style inside a ResourceDictionary that defines "{StaticResource..."
13359 that other Style needs (e.g. SL toolkit unit tests)
13360 * xaml.cpp: Adjust lookup to find StaticResources defined in
13361 a ResourceDictionary
13363 2009-02-05 Stephane Delcroix <sdelcroix@novell.com>
13365 * multiscaleimage.cpp: Renders subimages
13367 2009-02-05 Jeffrey Stedfast <fejj@novell.com>
13369 Memory Optimization:
13371 * textbox.cpp (append_runs): Updated. Also fixed a bug which would
13372 sometimes append empty TextRuns to the list.
13374 * text.cpp (TextBlock::Layout): Updated. No longer need to use the
13375 retarded TextRun linebreak ctor.
13377 * layout.cpp (TextRun): Changed TextRuns a bit, all members are
13378 now private but accessors have been added to get the values. Get
13379 rid of the crlf field and ctor params. We also no longer "strdup"
13380 for the ucs4 ctor since TextBox is the only consumer of that API
13381 and it is not constructed using a temp buffer.
13382 (TextSegment): Updated a bit for TextRun changes.
13383 (TextLayout): Updated for TextRun changes.
13385 2009-02-05 Sebastien Pouliot <sebastien@ximian.com>
13387 * style.cpp|h: Remove "style-hack" from SetterBaseCollection
13388 since that collection has no need to know about the style itself.
13389 Simplify the API a bit.
13390 * xaml.cpp: Introduce an hack for SetterBase tp workaround the
13391 fact that the current parser adds elements to the collections
13392 before setting their properties (and a SetterBase would seal
13393 itself when added to a collection).
13395 2009-02-05 Jb Evain <jbevain@novell.com>
13397 * propertypath.h: new type.
13398 * value.h.in, value.cpp: make Value deal with PROPERTYPATH.
13399 * xaml.cpp (value_from_str): parse Kind::PROPERTYPATH.
13400 * animation.h: change type of Storyboard.TargetPropertyProperty
13401 from string to PropertyPath.
13402 * animation.cpp: update accordingly.
13403 * dependecyproperty.h (resolve_property_path): now takes a PropertyPath.
13404 * dependecyproperty.cpp: update accordingly.
13405 * value.h, type-generated.cpp, type.h, dependecyproperty.h.cpp: regen.
13407 2009-02-05 Jackson Harper <jackson@ximian.com>
13409 * xaml.cpp|h: Use the kind for getting content property names.
13411 2009-02-04 Chris Toshok <toshok@ximian.com>
13413 * provider.cpp (InheritedPropertyValueProvider::GetPropertyValue):
13414 fix property inheritance to walk back up the tree (instead of just
13415 looking at the direct parent.) Also, we can't use the parent's
13416 kind directly, we have to use parent->Is().
13418 2009-02-04 Larry Ewing <lewing@novell.com>
13420 * grid.cpp (Grid::ArrangeOverride): make the resizing logic only
13421 apply when the final value is not equal to the measured value.
13423 2009-02-04 Jackson Harper <jackson@ximian.com>
13425 * xaml.cpp|h: When setting properties pass in the
13426 XamlElementInstance.
13427 - Function so named items can be looked up from managed.
13428 * cbinding.cpp|h: regen.
13430 2009-02-04 Aaron Bockover <abockover@novell.com>
13432 * color.cpp: Use double_garray_from_str to parse sc# color strings, fixing
13433 bug where the blue channel was dropped in sc#r,g,b
13435 2009-02-04 Sebastien Pouliot <sebastien@ximian.com>
13437 * collection.cpp|h: Override AddWithError on UIElementCollection
13438 to return an error on duplicate elements
13440 2009-02-04 Jeffrey Stedfast <fejj@novell.com>
13442 * color.cpp (read_next_double): Use g_ascii_strtod().
13443 (color_from_str): Use g_ascii_strcasecmp().
13445 * textbox.cpp (TextBox::OnKeyDown): Implemented Cut/Copy/Paste.
13447 2009-02-04 Larry Ewing <lewing@novell.com>
13449 * grid.cpp (Grid::ArrangeOverride): thanks to the listbox test
13450 case we implement star columns in a matching manor.
13452 * mediaelement.cpp (MediaElement::Render): disable mediaelement
13453 pixel snapping for now, we'll deal with this at a higher level.
13455 2009-02-04 Chris Toshok <toshok@ximian.com>
13457 * type.cpp (type_is_dependency_object): no need to c&p the entire
13458 method, just call Type::IsSubclassOf with the kinds.
13460 2009-02-04 Jeffrey Stedfast <fejj@novell.com>
13462 * textbox.cpp (TextBoxView::ConnectBlinkTimeout): Use
13463 TimeManager's timeout functions instead of calling g_timeout_add()
13466 2009-02-04 Stephane Delcroix <sdelcroix@novell.com>
13468 * multiscaleimage.cpp: prepare the rendering for subimages.
13470 2009-02-04 Stephane Delcroix <sdelcroix@novell.com>
13472 * multiscalesubimage.h|cpp: GetViewportHeight () utility method.
13474 2009-02-04 Stephane Delcroix <sdelcroix@novell.com>
13476 * deepzoomimagetilesource.cpp: set the aspect ratio for subimages on
13479 2009-02-04 Jeffrey Stedfast <fejj@novell.com>
13481 * textbox.cpp (TextBox::TextBox): Initialize our 'selecting' state
13482 to false. Get rid of maxlen state, it's not needed.
13483 (TextBox::KeyPressUnichar): Use GetMaxLength() instead of a maxlen
13484 class member variable.
13485 (TextBox::SyncAndEmit): Renamed from KeyPressThaw() since it's
13486 useful for mouse events too.
13487 (TextBox::KeyPressFreeze): Removed.
13488 (TextBox::OnMouseLeftButtonDown): Set our 'selecting' state to
13489 true, get the cursor from the x,y coordinates and update the
13490 selection to be zero-length starting at the cursor position.
13491 (TextBox::OnMouseLeftButtonUp): Set 'selecting' state to false.
13492 (TextBox::OnMouseMove): If we are in the 'selecting' state,
13493 translate current mouse coordinates into a new cursor position and
13494 update selection start/length.
13495 (TextBoxView::GetCursorFromXY): New helper method.
13496 (TextBoxView::TextBoxView): Set our cursor to be the IBeam.
13498 * layout.cpp (TextLayout::GetCursorFromXY): Implemented.
13500 2009-02-04 Jackson Harper <jackson@ximian.com>
13502 * template.cpp|h: Add a function for creating xaml template
13505 2009-02-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
13508 * audio-pulse.cpp: More SetCurrentDeployments.
13510 2009-02-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
13512 * audio.cpp: One more SetCurrentDeployment.
13514 2009-02-04 Alan McGovern <amcgovern@novell.com>
13516 * frameworkelement.cpp: Fixed hit tests which didn't do what
13517 i meant them to do and added new tests. Panels should not
13518 swallow a click when hit testing, so we should never abort
13521 2009-02-04 Stephane Delcroix <sdelcroix@novell.com>
13523 * multiscalesubimage.cpp: fix the source uri in the subimage
13524 ctor. the source for the subimage is now parsed.
13526 2009-02-04 Alan McGovern <amcgovern@novell.com>
13536 * type-generated.cpp: Hook up the managed hittesting code to
13537 the native hit testing code.
13539 2009-02-04 Stephane Delcroix <sdelcroix@novell.com>
13541 * multiscaleimage.cpp: iterate the collection and not the GList
13544 2009-02-04 Stephane Delcroix <sdelcroix@novell.com>
13546 * multiscalesubimage.h|cpp:
13547 * deepzoomimagetilesource.cpp: add a uri parameter to MSISI ctor
13548 so we can compute the UriSource based on parent's one
13550 2009-02-04 Stephane Delcroix <sdelcroix@novell.com>
13552 * collection.cpp: MultiScaleSubImageCollection ctor
13554 2009-02-03 Larry Ewing <lewing@novell.com>
13556 * dirty.cpp (Surface::UpdateLayout): hack some sizing logic into
13557 the toplevel logic.
13559 * usercontrol.cpp: fix missing modification.
13561 2009-02-03 Larry Ewing <lewing@novell.com>
13563 * frameworkelement.cpp (FrameworkElement::Arrange): shrink the
13564 clip by the margin.
13566 2009-02-03 Geoff Norton <gnorton@novell.com>
13568 * frameworkelement.cpp (Arrange): If we have a negative margin,
13569 it moves our layout slot, instead of clipping it, as such we need
13570 to adjust the clipping path accordingly in these cases to accomodate
13573 2009-02-03 Jeffrey Stedfast <fejj@novell.com>
13575 * textbox.cpp (TextBoxView::ResetCursorBlink): We don't care about
13576 ReadOnly status afterall.
13577 (TextBoxView::OnModelChanged): Same.
13578 (TextBox::OnKeyDown): If we are ReadOnly, don't allow editing of
13581 * control.h: Control's default FontSize is 11, not 14.666 like
13584 2009-02-03 Larry Ewing <lewing@novell.com>
13586 * shape.cpp (Shape::ArrangeOverride): invalidate the path cache
13587 when we arrange. Fixes the rectangle bg on pdc.
13589 2009-02-03 Jeffrey Stedfast <fejj@novell.com>
13591 * textbox.cpp (TextBox::OnPropertyChanged): Set the default
13592 SelectionBackground and SelectionForeground brushes if
13593 SelectionLength gets to be >0.
13594 (TextBox::TextBox): Don't set them here. Initialize a new state
13595 variable, cursor_column to 0.
13596 (TextBox::CursorDown): Update cursor_column and fix some
13597 inconsistencies with Microsoft's logic. Renamed and c++'ified from
13599 (TextBox::CursorUp): Same idea here.
13600 (TextBox::CursorNextWord): Renamed/c++'ified from next_word().
13601 (TextBox::CursorPrevWord): Same idea.
13602 (TextBox::KeyPress*Down): Save/Restore cursor_column state after
13603 updating SelectionStart/Length properties.
13604 (TextBox::KeyPress*Up): Same.
13605 (TextBox::KeyPressHome): We can set cursor_column to 0 here.
13606 (TextBox::OnPropertyChanged): If Text, SelectedText,
13607 SelectionStart or SelectionLength chanegs, we need to reset
13608 cursor_column to -1 (aka "unknown").
13610 2009-02-03 Larry Ewing <lewing@novell.com>
13612 * grid.cpp (Grid::ArrangeOverride): remove a bunch of the old code
13613 and apply the finalsize adjustments to the existing values.
13614 Handle the empty row/col case specially.
13616 * usercontrol.cpp: revert accicdental diabling (for now).
13618 2009-02-03 Jeffrey Stedfast <fejj@novell.com>
13620 * textbox.cpp (TextBuffer::Replace): Do the right thing if length
13621 goes beyond the end of the buffer.
13622 (TextBuffer::Cut): Same.
13624 * layout.cpp (RenderSegment): Extend the selection line
13625 Silverlight's TextBox does if the selection crosses over the CRLF
13626 sequence at the end of a line.
13628 2009-02-03 Larry Ewing <lewing@novell.com>
13632 * frameworkelement.cpp: handle the specified size case as well.
13634 2009-02-03 Jb Evain <jbevain@novell.com>
13636 * xaml.cpp (PrimitiveNamespace::FindElement): correctly retrieve
13639 2009-02-03 Jeffrey Stedfast <fejj@novell.com>
13641 * textbox.cpp: Rewrote selection logic and vastly simplified
13642 cursor movement along the way.
13644 2009-02-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
13649 * dependencyproperty.h:
13650 * dependencyproperty.cpp: Remove the need for
13651 DependencyProperty to be a friend class of Type.
13653 2009-02-03 Stephane Delcroix <sdelcroix@novell.com>
13655 * multiscalesubimage.h: DefaultValues for DPs.
13657 2009-02-03 Stephane Delcroix <sdelcroix@novell.com>
13659 * deepzoomimagetilesource.h|cpp:
13660 * multiscaleimage.h|cpp:
13661 * multiscalesubimage.h|cpp: fill the subimages on MSI
13663 2009-02-03 Sebastien Pouliot <sebastien@ximian.com>
13665 * deployment.h: Don't use 'volatile' before glib 2.10 (e.g. sled10)
13666 because that was not part of the API before then (and it breaks
13669 2009-02-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
13673 * type.h.in: Type: don't make Types a friend class of Type.
13675 2009-02-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
13678 * animation.cpp: Remove animation_init, it's empty.
13680 * audio.cpp: We need to set the current deployment on the
13681 audio thread (but without touching mono at all).
13685 * type-generated.cpp:
13686 * dependencyproperty.g.cpp: Regenerated.
13688 * dependencyobject.h:
13689 * dependencyobject.cpp: Move object accounting and delayed
13690 unref handling to Deployment.
13692 * dependencyproperty.h: Remove DependencyProperty::Shutdown,
13695 * deployment.cpp: Add a SetCurrent overload which allows us
13696 to specify whether the current appdomain should be updated
13697 too. GetCurrent: Never access mono if the current domain is
13698 NULL. Move object tracking and delayed unrefs here.
13700 * deployment.h: Add a SetCurrent overload which allows us to
13701 specify whether the current appdomain should be updated
13702 too. Move object tracking and delayed unrefs here.
13704 * runtime.cpp: Move object tracking reports to Deployment.
13705 Remove unnecessary static init and shutdown methods.
13709 * type.h.in: Completely remove all static Type
13710 initialization, we now rely on the Types* on the current
13713 2009-02-03 Sebastien Pouliot <sebastien@ximian.com>
13715 * style.cpp: Remove extra logic and comment the main "bad" hack
13716 still required not to cause regressions. Affected test cases
13717 will marked as known issues until the XAML parser issue (which
13718 is adding elements to collections before setting their properties)
13721 2009-02-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
13723 * window-gtk.cpp: Add missing Deployment::SetCurrent calls.
13725 2009-02-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
13727 * namescope.cpp: NamScope::ObjectDestroyedEvent: upon object
13728 destruction the name might not be available anymore, so
13729 loop over the entire hash tables looking for the object to
13730 remove instead of trying to lookup with a null key. Fixes a
13731 crash while running moon-unit.
13733 2009-02-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
13735 * xaml.cpp: Use property accessors on Type instead of
13736 accessing the fields.
13738 2009-02-03 Stephane Delcroix <sdelcroix@novell.com>
13741 * runtime.h|runtime.cpp: new LOG_MSI macro.
13743 2009-02-03 Fernando Herrera <fherrera@novell.com>
13746 * runtime.h: Move moonlight_flags and runtime_flags to 64bits
13747 as we reached the 32bits limit for debug.
13749 2009-02-03 Stephane Delcroix <sdelcroix@novell.com>
13751 * deepzoomimagetilesource.h|cpp: Parse Collections.
13753 2009-02-03 Stephane Delcroix <sdelcroix@novell.com>
13755 * deepzoomimagetilesource.h|cpp: data structures to parse
13756 DZ images with subimages. Move the common parts of both ctors
13759 2009-02-03 Stephane Delcroix <sdelcroix@novell.com>
13762 * deepzoomimagetilesource.h|cpp: fix some compilation warning, move
13763 some methods and fields to the private section.
13765 2009-02-03 Stephane Delcroix <sdelcroix@novell.com>
13767 * multiscalesubimage.h|cpp: re-use the tilesource to parse subimages
13769 2009-02-02 Chris Toshok <toshok@ximian.com>
13771 * popup.h, popup.cpp: this inherits from FrameworkElement, not
13774 * dependencyobject.cpp (dispose_value): this method is doing *way*
13775 too much. we can't just blindly dispose of our values. they
13776 could be shared across multiple elements. don't even unref them
13777 here, as deleting the value does that.
13779 * type-generated.cpp: regen.
13781 2009-02-02 Larry Ewing <lewing@novell.com>
13783 * mediaelement.cpp:
13784 * media.cpp (Image::UpdateSize): update horrible hacks that are
13785 used when we are part of canvas until they can be removed
13788 2009-02-02 Larry Ewing <lewing@novell.com>
13790 2009-02-02 Chris Toshok <toshok@ximian.com>
13792 * enums.cpp (keyboard_navigation_mode_map): add
13793 (initialize_enums): add TabNavigation property handling, mapping
13794 to keyboard_navigation_mode_map.
13796 2009-02-02 Geoff Norton <gnorton@novell.com>
13799 * xaml.cpp: Inject ImageSource underneath BitmapImage so that
13800 custom xaml that attaches a ImageSource can work. Every
13801 ImageSource is a BitmapImage in SL2
13802 * type-generated.cpp:
13806 2009-02-02 Larry Ewing <lewing@novell.com>
13810 * frameworkelement.cpp (FrameworkElement::ArrangeOverride): only
13811 stretch back out to finalsize in the stretch case.
13813 2009-02-02 Jeffrey Stedfast <fejj@novell.com>
13815 * layout.cpp (TextRun): 'crlf' is now a short rather than a 2-bit
13816 int because, duh, the range is -2 to 1, not 0 to 3 and so
13817 TextLine::crlf was being set to -2 instead of 2.
13818 (TextLayout::GetCursor): A minor tweak to get things to work if
13819 the cursor is right after the last char which is a \r.
13821 * textbox.cpp (TextBuffer::Cut): Fixed, this was totally broken
13823 (move_down): Need to use a loop when advancing back to the
13824 previous column so we don't go beyond EOL.
13825 (move_up): Same, but more fixes as well.
13827 2009-02-02 Jeffrey Stedfast <fejj@novell.com>
13829 * textbox.cpp: Moved all event handling back to TextBox since
13830 that's the focusable element.
13832 * runtime.cpp (Surface::HandleMouseEvent): Loop until we find the
13833 first Control subclass that we can focus.
13835 2009-02-02 Sebastien Pouliot <sebastien@ximian.com>
13837 * dependencyproperty.g.cpp:Regenerated
13838 * style.cpp|h: Use validators on Setter instead of overriding
13839 SetValueWithErrorImpl on SetterBase
13840 * validators.cpp|h: Addvalidator for checking sealed Setter
13842 2009-02-02 Larry Ewing <lewing@novell.com>
13844 * border.cpp (Border::Render): don't fill the whole are with the
13845 border brush only fill the BorderThickness.
13847 2009-02-02 Larry Ewing <lewing@novell.com>
13849 * textbox.cpp, textbox.h: first pass at implementing arrange and
13852 * text.cpp: request with padding too.
13854 2009-02-02 Chris Toshok <toshok@ximian.com>
13856 * textbox.h (class TextBox): store the contentElement as an
13857 instance field so we can update it in OnPropertyChanged.
13859 * textbox.cpp (TextBox::OnApplyTemplate): this is seriously
13860 disgusting, and *SHOULD* be handled in the textbox template, but
13861 we can't handle it in ours in case people replace it. if the
13862 ContentElement template child has DP's named
13863 VerticalScrollBarVisibility and HorizontalScrollBarVisibility, set
13864 them based on the value of ours.
13865 (TextBox::OnPropertyChanged): handle property changes on our
13866 VerticalScrollBarVisibility/HorizontalScrollBarVisibility
13867 properties by proxying them to our contentElement.
13869 2009-02-02 Alan McGovern <amcgovern@novell.com>
13872 * bitmapimage.cpp: Image.Source defaults to a BitmapImage
13873 with a uri of string.empty.
13875 2009-02-02 Chris Toshok <toshok@ximian.com>
13877 * rect.h (struct Rect): we can be Grown by a negative amount. make
13878 sure we don't drop below 0 on width/height, since everything blows
13881 2009-02-02 Alan McGovern <amcgovern@novell.com>
13884 * dependencyproperty.g.cpp: The default value for
13885 Bitmap.ImageSource is an empty string.
13887 2009-02-02 Jeffrey Stedfast <fejj@novell.com>
13889 * textbox.cpp (TextBox::OnPropertyChanged): Emit ModelChanged
13890 events when the selection or text changes. TextBoxView cannot
13891 depend on getting those events if things are changed
13893 (TextBox::KeyPressThaw): Don't ever bother with emitting
13894 ModelChanged events here, they'll be emitted in
13895 OnPropertyChanged(), now.
13896 (TextBoxView): We no longer listen to TextChanged or
13897 SelectionChanged events.
13898 (TextBoxView::ResetCursorBlink): New method to do all of the
13899 proper state checking to see if the cursor should be rendered
13900 which calls the appropriate Begin/Delay/EndCursorBlink() method.
13901 (TextBoxView::OnModelChanged): Updated to handle Text and
13902 Selection changes. Dropped CursorPosition because it is no longer
13904 (TextBoxView::OnFocusIn): Set focused to true before calling
13905 ResetCursorBlink().
13906 (append_runs): Don't forget to append the LineBreak to the Runs
13908 (TextBoxView::SetTextBox): Need to sync some additional state.
13910 2009-02-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
13912 * runtime.cpp: ~Surface: don't call DrainUnrefs, we might
13913 already be in one, and DrainUnrefs isn't recursive anymore.
13915 2009-02-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
13917 * src.mdp: Updated to use new MD features (ChangeLog and log
13920 2009-02-02 Stephane Delcroix <sdelcroix@novell.com>
13922 * deepzoomimagetilesource.h|cpp: add a parsed_callback.
13923 * multiscaleimage.cpp: re-render on parsed_cb, starting rendering
13926 2009-02-02 Stephane Delcroix <sdelcroix@novell.com>
13928 * deepzoomimagetilesource.h|cpp: parse DisplayRects, returns NULL
13929 in GetTileLayer for missing tiles.
13931 2009-02-02 Stephane Delcroix <sdelcroix@novell.com>
13933 * multiscaleimage.cpp: render lower layer if the current layer
13934 contains NULL tiles.
13936 2009-02-02 Chris Toshok <toshok@ximian.com>
13938 * frameworkelement.cpp (FrameworkElement::ArrangeOverride):
13939 correct apparent c&p error.
13941 2009-02-01 Larry Ewing <lewing@novell.com>
13943 * control.cpp, control.h:
13944 * usercontrol.cpp, usercontrol.h: move ArrangeOverride and
13945 MeasureOverride here from control where they are only used for
13948 2009-02-01 Larry Ewing <lewing@novell.com>
13950 * thickness.cpp (Thickness::FromStr):
13951 * cornerradius.cpp (CornerRadius::FromStr): don't pass a max value
13952 that will cause the rest to be filled with 0. Fixes parsing of
13953 single value entries.
13955 * frameworkelement.cpp: arrange based on the adjusted rect.
13957 2009-02-01 Chris Toshok <toshok@ximian.com>
13959 * contentcontrol.cpp (ContentControl::OnPropertyChanged): remove
13960 the ApplyTemplate gunk here, as the template doesn't change when
13961 our content does - the ContentPresenter in our control template
13962 will changed based on our content.
13964 * xaml.cpp (dependency_object_set_attributes):
13965 handle_xaml_markup_extension has three possible return states.
13966 "Need SetValue", "Don't SetValue", and "Error". the bool return
13967 value is the first two (true == need_setvalue), and p->error_args
13968 determines the last one.
13969 (handle_xaml_markup_extension): add a comment detailing the
13970 need_setvalue return value, and make the return values consistent.
13971 TemplateBindings are weird in that they don't (for now) set a
13972 value, but require that we don't continue on with the set value
13973 machinery in dependency_object_set_attributes.
13975 Also, the TemplateBinding handling in the case of
13976 Property1={TemplateBinding Property2} was attaching things such
13977 that updates to source.Property1 would update target.Property2.
13978 This is exactly backward - it should have been source.Property2 =>
13979 target.Property1. We got lucky in a vast number of instances
13980 because the property names were the same.
13982 2009-02-01 Sebastien Pouliot <sebastien@ximian.com>
13984 * style.cpp: Revert first part (always seal) of last patch due to
13987 2009-02-01 Sebastien Pouliot <sebastien@ximian.com>
13989 * style.cpp: Always seal setters when added to collection (unit
13990 tested) and unrelated to style (which may not be assigned, SIGSEGV)
13992 2009-01-31 Geoff Norton <gnorton@novell.com>
13994 * animation.cpp: Its possible for a Storyboard to have TargetName
13995 and TargetProperty set, but be unresolvable, and still use a parent
13996 manual target (See Axelerate3D).
13998 2009-01-31 Chris Toshok <toshok@ximian.com>
14000 * collection.h, collection.cpp (class UIElementCollection):
14001 UIElements can be reparented logical parent-wise, but can't have
14002 more than one *visual* parent.
14004 2009-01-31 Larry Ewing <lewing@novell.com>
14008 * frameworkelement.cpp: rather than trying to fix the rendering
14009 fix the layout_xform to handle margins automatically.
14011 2009-01-31 Larry Ewing <lewing@novell.com>
14013 * border.cpp (Border::Render): try to match the interior
14014 CornerRound behavior a littler closer.
14016 2009-01-31 Larry Ewing <lewing@novell.com>
14018 * rect.cpp (Rect::Draw): fix typo in rect drawing.
14020 2009-01-31 Larry Ewing <lewing@novell.com>
14022 * cornerradius.h: add == and != overloads.
14024 * uielement.cpp: don't include the layout clip if we are
14025 tranforming the bounds. The layout clip only applies to local
14028 * border.cpp: restore the graphics context after clipping.
14030 2009-01-31 Larry Ewing <lewing@novell.com>
14032 * rect.cpp, rect.h: move the rounded drawing here for now until
14033 there is a better place.
14035 * border.cpp: start drawing the borderbrush and using border
14038 2009-01-31 Larry Ewing <lewing@novell.com>
14040 control.cpp: fix arranged size with border thickness or padding.
14042 border.cpp: fix arranged size with border thickness or
14043 padding. fix rendering with margins.
14045 panel.cpp: fix rendering with a margin.
14047 2009-01-31 Larry Ewing <lewing@novell.com>
14049 * border.cpp (Border::Render): add corner radius rendering logic
14052 2009-01-31 Stephane Delcroix <sdelcroix@novell.com>
14054 * multiscaleimage.h|cpp: ensure there's only one downloader running,
14055 fixes the issue where wrong images were cached.
14057 2009-01-31 Sebastien Pouliot <sebastien@ximian.com>
14059 * contentcontrol.h: Add @CallInitialize so the event gets
14060 registred (in the managed side) and we can now track content
14063 2009-01-30 Geoff Norton <gnorton@novell.com>
14065 * textbox.cpp: FontFamily is now a FontFamily not a string.
14067 2009-01-30 Chris Toshok <toshok@ximian.com>
14069 * xaml.cpp: fix ResourceDictionary once and for all.
14071 2009-01-30 Geoff Norton <gnorton@novell.com>
14073 * deployment.cpp|h: Ensure that any downloaders that might
14074 call back into managed land are aborted before we throw out the
14076 * downloader.cpp|h: Add a nice interface to DownloaderRequest
14077 and DownloaderResponse to save some code duplication in deployment
14079 2009-01-30 Geoff Norton <gnorton@novell.com>
14081 * mediaelement.cpp: If we finish downloading before we can
14082 fill the buffer, we still need to emit this event.
14084 2009-01-30 Chris Toshok <toshok@ximian.com>
14086 * usercontrol.h (class UserControl): make managed access to
14087 ContentProperty protected internal, not just protected.
14089 * dependencyobject.h (class DependencyObject): generate a
14090 cbinding/pinvoke for SetLogicalParent.
14092 * cbinding.h, cbinding.cpp: regen.
14094 2009-01-30 Jeffrey Stedfast <fejj@novell.com>
14096 * textbox.cpp (TextBox::KeyPressUnichar): Fixed to update
14097 SelectionStart/Length.
14099 2009-01-30 Geoff Norton <gnorton@novell.com>
14101 * runtime.cpp: Let managed code change the fullscreen state.
14102 * cbinding.cpp|h: Regenerate
14104 2009-01-30 Chris Toshok <toshok@ximian.com>
14106 * xaml.cpp (dependency_object_set_property): remove the ugly
14107 assumption - we know if the property type is managed now.
14109 2009-01-30 Jeffrey Stedfast <fejj@novell.com>
14111 * textbox.cpp (TextBox::KeyPress<key>): Update an internal 'emit'
14112 state rather than returning a changed mask. Also modified to treat
14113 selection.start as the cursor position when selection.length is
14114 0. Otherwise refer to the cursor state to figure out which end of
14115 the selection the cursor is at (for growing/shrinking).
14116 (TextBox::KeyPressFreeze): Reset 'emit' state.
14117 (TextBox::KeyPressThaw): Sync and then emit our changed events.
14118 (TextBox::OnPropertyChanged): Updated for ClearSelection() API
14120 (TextBox::ClearSelection): Now takes a 'start' argument to set
14121 SelectionStart to (e.g. cursor position).
14122 (TextBox::Select): Now longer needs to do a freeze/thaw.
14123 (TextBoxView::OnKeyDown): Updated.
14125 2009-01-30 Chris Toshok <toshok@ximian.com>
14127 * control.h, control.cpp: same story with InsideObject.
14129 2009-01-30 Chris Toshok <toshok@ximian.com>
14131 * control.h, control.cpp: remove Control::Render. handling of the
14132 background property is left to a templatebinding in the visual
14133 tree of the applied template.
14135 2009-01-30 Chris Toshok <toshok@ximian.com>
14137 * provider.cpp (StylePropertyValueProvider::SealStyle): call
14138 ProviderValueChanged on all values in the style so the object can
14139 do things with them.
14141 * frameworkelement.cpp (FrameworkElement::OnPropertyChanged): add
14142 a comment about SealStyle calling ProviderValueChanged.
14144 2009-01-30 Chris Toshok <toshok@ximian.com>
14146 * xaml.cpp: when parsing multiple buffers (as we do when hydrating
14147 from a template), we need to keep track of the total offset from
14148 the start of all buffers, since XML_GetCurrentByteIndex returns a
14149 value with that range, it's not the byte index into the current
14150 buffer (unless there's only 1). Fixes templates stored inside of
14153 2009-01-30 Andreia Gaita <avidigal@novell.com>
14155 * clock.cpp: no use stopping if it's already stopped
14157 2009-01-30 Andreia Gaita <avidigal@novell.com>
14159 * clock.cpp: reset the state flags as well
14161 2009-01-30 Larry Ewing <lewing@novell.com>
14163 * text.cpp (TextBlock::Render): Start taking padding into account
14164 and limit the max size to actual not to the arranged value.
14166 2009-01-30 Jeffrey Stedfast <fejj@novell.com>
14168 * textbox.h (TextBox::GetCursor): Cursor position is aka
14171 * textbox.cpp (TextBox::Freeze): Renamed from PreKeyPress().
14172 (TextBox::Thaw): Decrement freeze count and emit events when we
14174 (TextBox::OnPropertyChanged): When SelectionStartProperty or
14175 SelectionLengthProperty change, call SyncSelectedText(). Fixed the
14176 selection.start/cursor positioning logic when TextProperty or
14177 SelectedTextProperty changes.
14178 (TextBoxView::OnKeyDown): Updated to sue the new Freeze()/Thaw()
14181 2009-01-30 Larry Ewing <lewing@novell.com>
14183 * grid.cpp (Grid::ArrangeOverride): fix the minimum measure size
14186 2009-01-30 Sebastien Pouliot <sebastien@ximian.com>
14188 * frameworkelement.cpp: Make sure bounds_with_children is always
14189 initialized before being used.
14191 2009-01-30 Geoff Norton <gnorton@novell.com>
14193 * mediaelement.cpp: Emit MediaOpenedEvent as soon as we've opened the
14194 media. Fixes the thumber moving on PDC player.
14196 2009-01-30 Jackson Harper <jackson@ximian.com>
14198 * xaml.cpp: Fixup logic for setting both Key and Name, I was wrong
14199 about them being legal if they are equal.
14201 2009-01-30 Larry Ewing <lewing@novell.com>
14203 * grid.cpp (Grid::ArrangeOverride): hack around spans in
14204 rebuilding the table until we understand them better.
14206 2009-01-30 Larry Ewing <lewing@novell.com>
14208 * frameworkelement.cpp:
14210 * control.cpp (Control::ArrangeOverride): use alignment properly
14211 in these places as well
14213 2009-01-30 Larry Ewing <lewing@novell.com>
14215 * frameworkelement.cpp (FrameworkElement::Arrange): don't modify
14216 the alignment here.
14218 2009-01-30 Stephane Delcroix <sdelcroix@novell.com>
14220 * multiscaleimage.cpp: load png too
14222 2009-01-30 Stephane Delcroix <sdelcroix@novell.com>
14224 * multiscaleimage.cpp: change the vporigin to relative coords
14226 2009-01-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
14228 * dependencyobject.cpp: EventObject::unref: don't try to get the
14229 typename if there's no deployment around.
14231 * pipeline.cpp: Media::Shutdown: set the current deployment before
14232 looping over each media.
14234 2009-01-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
14236 * deployment.cpp: Remove dead code.
14238 2009-01-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
14240 * downloader.cpp: Downloader::Write: update current deployment.
14242 2009-01-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
14249 * mediaelement.cpp:
14250 * pipeline-asf.cpp:
14251 * mms-downloader.cpp:
14252 * pipeline-ffmpeg.cpp: %llu => G_UINT64_FORMAT.
14254 2009-01-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
14256 * deployment.cpp: Comment out log spammer.
14258 * runtime.cpp: Add some sanity checks.
14260 * dependencyobject.cpp: Set current deployment for delayed unrefs too.
14262 2009-01-30 Stephane Delcroix <sdelcroix@novell.com>
14264 * deepzoomimagetilesource.cpp: normalize ViewportWidth
14266 2009-01-30 Sebastien Pouliot <sebastien@ximian.com>
14268 * cbinding.cpp|h: Regenerated
14269 * geometry.h: Get bindings/pinvoke on Geometry::GetBounds
14270 * rect.h: Add new ctor so the generator code can work
14272 2009-01-30 Stephane Delcroix <sdelcroix@novell.com>
14274 * tilesource.h|cpp:
14275 * deepzoomimagetilesource.h|cpp:
14276 * multiscaleimage.cpp: as we can't assume there's a managed DZITS,
14277 implement the DZ parser in native code.
14279 2009-01-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
14281 * mediaplayer.cpp: MediaPlayer: Set object type correctly.
14283 2009-01-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
14285 * deployment.cpp: Allow setting the current deployment to NULL.
14287 2009-01-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
14289 * mediaelement.cpp: Handle MediaElementStateIndividualizing and
14290 AcquiringLicense in all switch statements to fix gcc warnings.
14292 2009-01-30 Geoff Norton <gnorton@novell.com>
14294 * debug.cpp: Use the proper headers here, we need them anyways.
14295 * window.h: Store the deployment we were created in.
14296 * window-gtk.cpp: Ensure we set our deployment before starting
14297 to call into our heirarchy.
14299 2009-01-30 Jb Evain <jbevain@novell.com>
14301 * deployment.h: make Deployment::Surface DP internal.
14303 2009-01-29 Geoff Norton <gnorton@novell.com>
14305 * deployment.h: Surface is now a DP on the deployment so we
14306 can share it with managed.
14307 * dependencyproperty.g.cpp: Regen
14308 * clock.cpp: Get the surface of the Deployment we're in so that
14309 clocks from Dispatcher timer end up on the right surface.
14311 2009-01-29 Geoff Norton <gnorton@novell.com>
14313 * deployment.cpp: Trust the domain over the TLS slot since mono
14314 will switch that on us on any thread really.
14316 2009-01-29 Geoff Norton <gnorton@novell.com>
14318 * clock.cpp|h: Ensure that we set the correct deployment from the
14319 clock ticks before traversing back into our heirarchy.
14321 2009-01-29 Jackson Harper <jackson@ximian.com>
14323 * xaml.cpp: Add support for the primitive types in mscorlib. This
14324 will get properly formed strings, doubles, and int32s working for
14325 now, we don't handle the oddities of the SL parsing properly yet
14328 2009-01-29 Jackson Harper <jackson@ximian.com>
14330 * type-generated.cpp: regen
14332 2009-01-29 Larry Ewing <lewing@novell.com>
14334 * frameworkelement.cpp (FrameworkElement::Arrange): unref the clip
14337 * grid.cpp: unref the dummy columns we create here.
14339 2009-01-29 Jeffrey Stedfast <fejj@novell.com>
14341 * textbox.cpp (TextBoxView::ArrangeOverride): Removed.
14343 * textbox.h: Shuffle some internal accessors/events around.
14345 2009-01-29 Larry Ewing <lewing@novell.com>
14347 * text.cpp, text.h: implement basic layout size rules and strip
14348 the custom actual* properties. Still a hack but passable for now.
14352 2009-01-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
14355 * runtime.cpp: Surface: Implement Dispose and call Dispose on the
14356 toplevel object. PaintToDrawable: Update current deployment.
14358 2009-01-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
14360 * uielement.cpp: Dispose: add a null-check, and only walk the visual
14361 tree if we haven't been disposed already.
14363 2009-01-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
14366 * namescope.cpp: Namespace: Implement Dispose and remove all entries
14367 from our names hash table there.
14369 2009-01-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
14371 * xaml.cpp: XamlLoader::CreateFromFile: Add a ref to avoid a crash later
14372 on upon destruction.
14374 2009-01-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
14376 * dependencyobject.h:
14377 * dependencyobject.cpp: EventObject: Added SetCurrentDeployment: updates
14378 Deployment::Current. Emit DestroyedEvent in Dispose instead of the
14381 2009-01-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
14384 * mediaelement.cpp: Implement Dispose and put most of the cleanup there
14385 instead of in the dtor. media_element_advance_frame: we need to set
14386 the current deployment here.
14388 2009-01-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
14390 * collection.cpp: Collection::Dispose: Post-chain Dispose instead of
14391 pre-chain. Set array's size to 0 after deleting all the values.
14393 * pipeline.cpp: Post-chain Dispose instead of pre-chain. Since there's
14394 one media thread per Media object, there's no need to set the current
14395 deployment for each work node, just set it at thread start.
14396 MediaClosure::SetContext: fix refcounting bug.
14398 * pipeline-asf.cpp: Post-chain Dispose instead of pre-chain.
14400 2009-01-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
14403 * deployment.cpp: Deployment: Enable support managed stackframes after
14404 initializing mono. Implement Dispose, and upon destruction set
14405 current application to NULL.
14407 2009-01-29 Stephane Delcroix <sdelcroix@novell.com>
14409 * tilesource.h|cpp: image size is long
14411 2009-01-29 Stephane Delcroix <sdelcroix@novell.com>
14413 * deepzoomimagetilesource.cpp: set the callback to NULL in ctor
14415 2009-01-29 Stephane Delcroix <sdelcroix@novell.com>
14417 * multiscaleimage.cpp: ElementToLogicalPoint, ZoomAboutLogicalPoint:
14418 logical is [0,1],[0,1]
14420 2009-01-28 Larry Ewing <lewing@novell.com>
14422 * frameworkelement.cpp (FrameworkElement::MeasureOverride):
14423 it might help to actually measure things, so do that... *sigh*
14425 2009-01-28 Larry Ewing <lewing@novell.com>
14427 * shape.cpp (Shape::ComputeStretchBounds): remove the old
14428 width/height short circuiting when one or the other of
14429 width/height was not set simply use the lyaout clip when it is
14430 around. Might need a little more work but it is definitely
14433 2009-01-28 Larry Ewing <lewing@novell.com>
14435 * frameworkelement.cpp, frameworkelement.h: layout and arrange
14436 children if there are any. set IsLayoutContainer to true if we
14439 2009-01-28 Larry Ewing <lewing@novell.com>
14441 * frameworkelement.cpp (FrameworkElement::HitTest): move the
14442 majority of the hit test logic here. Now we only walk the
14443 children once and we only call InsideObject when we must.
14444 InsideObject now only checks the local object subtree is handled
14447 * panel.cpp, panel.h:
14448 * control.cpp, control.h:
14449 * border.cpp, border.h:
14450 * text.cpp, text.h: remove the old HitTest and rework InsideObject
14453 * uielement.cpp: make InsideClip potentially a little faster.
14455 2009-01-28 Larry Ewing <lewing@novell.com>
14457 * uielement.cpp (UIElement::OnPropertyChanged): invalidate measure
14462 * canvas.cpp: skip invisible elements.
14464 2009-01-28 Jeffrey Stedfast <fejj@novell.com>
14466 * textbox.cpp (TextBoxView::Layout): We need to break the text
14467 apart by lines so that the TextLayout engine can handle them
14470 * layout.cpp (TextLayout::LayoutWrapWithOverflow): Copy run->crlf
14471 over to line->crlf for each LineBreak.
14472 (TextLayout::GetCursor): Need to keep track of the line-ending
14473 character sequences as well.
14475 * layout.h (TextRun::IsLineBreak): New method to check if the run
14476 represents a LineBreak, cleaner than manually checking for text ==
14478 (TextRun::ctor): LineBreak version now takes a crlf argument to
14479 specify which line ending sequence it is.
14481 2009-01-28 Jeffrey Stedfast <fejj@novell.com>
14483 * textbox.cpp (move_down): Fixed to handle any line-ending.
14487 (TextBox::KeyPressBackSpace): Handle backspacing over any eoln
14489 (TextBox::KeyPressDelete): Same.
14490 (TextBox::KeyPressHome): Same.
14491 (TextBox::KeyPressEnd): Same.
14492 (TextBox::KeyPressRight): Same.
14493 (TextBox::KeyPressLeft): Same.
14494 (TextBoxView::OnKeyDown): Hitting Enter in a Silverlight TextBox
14495 inserts a \r character, not a \n, nor a \r\n.
14497 * text.cpp (TextBlock::Layout): Handle \r and \r\n as line-ending
14499 (TextBlock::SetTextInternal): Canonicalize line endings in our
14502 * layout.cpp (TextRun::TextRun): Don't worry about line endings...
14504 2009-01-28 Jackson Harper <jackson@ximian.com>
14506 * xaml.cpp: Fix logic for setting name and key on
14507 storyboards. Rules are:
14508 1. You can set both if you set the name before the key
14509 2. You can set both if both values are equal
14511 2009-01-28 Chris Toshok <toshok@ximian.com>
14513 * style.cpp (SetterBaseCollection::AddedToCollection): chain up to
14514 DependencyObjectCollection::AddedToCollection.
14515 (SetterBaseCollection::RemovedFromCollection): chain up to
14516 DependencyObjectCollection::RemovedFromCollection.
14518 2009-01-28 Sebastien Pouliot <sebastien@ximian.com>
14520 * dependencyproperty.g.cpp: Regenerated
14521 * enums.cpp|h: Add MediaElementState
14522 * playlist.cpp: Use new MediaElementState enum
14523 * mediaelement.cpp|h: Use new MediaElementState enum
14525 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14527 * dependencyobject.cpp: ~EventObject: only inc objects_destroyed once.
14529 2009-01-27 Larry Ewing <lewing@novell.com>
14531 * grid.cpp: limit the reduction in size to zero.
14533 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14536 * dependencyobject.cpp: Fix building with object tracking.
14538 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14540 * debug.h: Surround logging macros with #if LOGGING instead of #if
14543 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14545 * dependencyobject.cpp: Move the OBJECT_TRACK macro here from the
14546 header, it's not used anywhere but in this file.
14548 * dependencyobject.h: Remove OBJECT_TRACKING from here, it's done at
14549 configure time now.
14551 2009-01-28 Jeffrey Stedfast <fejj@novell.com>
14553 * textbox.cpp (TextBoxView::OnModelChanged): Handle updates to
14555 (TextBox::OnPropertyChanged): Emit ReadOnly model-changed event.
14557 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14559 * uielement.h: Make Dispose public.
14561 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14563 * codec-version.h.in:
14564 * dependencyobject.h:
14565 * dependencyobject.cpp: EventObject: Make the flags field an gint32
14566 field (to keep size consistent), put the flags at the upper bits and
14567 use the remaining lower bits for the object id. This requires a codec
14570 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14572 * dependencyobject.cpp: Use bitfields correctly.
14574 2009-01-28 Sebastien Pouliot <sebastien@ximian.com>
14576 * text.cpp: FontFamily can be NULL so we can't just access its
14577 source field without a check. Fix SIGSEGV when running moon-unit.
14578 * value.cpp: FontFamily is not a (managed) struct so it can have
14579 a NULL value. Fix SIGSEGV when creating a Value out of a NULL
14580 FontFamily in moon-unit.
14582 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14585 * type-generated.cpp: Regenerated.
14587 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14593 * type-generated.cpp: Regenerated.
14595 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14601 * audio-pulse.cpp: Don't register any audio threads, they may interact
14602 badly with the gc and deadlock. Audio threads shouldn't be doing
14603 anything which requires the current deployment to be set anyway.
14605 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14608 * pipeline.cpp: AudioStream: call SetObjectType.
14610 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14612 * dependencyobject.h:
14613 * dependencyobject.cpp: Add an EventObject ctor overload which takes a
14614 Type::Kind. In EventObject::ref don't warn about inexistent
14615 deployments for audio objects.
14617 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14619 * dependencyobject.cpp: EventObject::GetDeployment: Fix warning.
14621 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14627 * audio-pulse.cpp: Every AudioSource already has deployment set (since
14628 they inherit from EventObject), use that to set the current
14631 2009-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
14633 * src.mdp: Updated.
14635 2009-01-27 Chris Toshok <toshok@ximian.com>
14637 * pipeline.cpp: include codec-version.h
14639 * pipeline-ui.cpp: same.
14641 * pipeline.h: remove the MOONLIGHT_CODEC_ABI_VERSION #define from
14644 * codec-version.h.in: new file. update the
14645 MOONLIGHT_CODEC_ABI_VERSION #define here when things change.
14647 2009-01-27 Larry Ewing <lewing@novell.com>
14649 * mediaelement.cpp (MediaElement::MeasureOverride): correct
14652 2009-01-27 Larry Ewing <lewing@novell.com>
14654 * frameworkelement.cpp, frameworkelement.h: move generic
14655 bounds_with_children computation here for now. Make
14656 GetSubtreeBounds return bounds or bounds_with_children based on
14657 having children. Start setting the layout clip in arrange (it will
14658 probably move later). Rework the layout_xform logic slightly.
14660 * uielement.cpp: remove the generic render warning, it is ok not
14661 to override here if there is nothing local you need to draw. When
14662 intersecting bounds with the clip path take the layout clip into
14665 * text.cpp: update for bounds changes. Don't recompute the
14666 natural bounds every pass.
14668 * mediaelement.cpp, mediaelement.h:
14669 * media.cpp, media.h: rework arrange and measure to match shape.
14670 Remove overridden bounds logic since it is no longer needed. Only
14671 use the odd width/height setting logic when we aren're part of a
14672 layout tree. Use the layout clip when drawing.
14674 * shape.cpp: clean up the bounds logic. Use the layout clip when
14677 * control.cpp, control.h:
14678 * border.cpp, border.h: use the layout clip when rendering, remove
14679 overrides for bounds now that fe handles them.
14682 2009-01-27 Chris Toshok <toshok@ximian.com>
14684 * Makefile.am (libmoon_include_headers): add fontfamily.h
14686 * fontfamily.h: add struct.
14688 * control.h, text.h: FontFamilyProperty is of type FontFamily now.
14690 * text.cpp: FontFamilyProperty is a FontFamily struct now, not a
14693 * value.cpp: add FontFamily logic, and remove FONTFAMILY from the
14696 * value.h.in (struct Value): add FontFamily and guint32 cases.
14698 * xaml.cpp (value_from_str): add case for FONTFAMILY.
14700 * value.h, type-generated.cpp, dependencyproperty.g.cpp: regen.
14702 2009-01-27 Geoff Norton <gnorton@novell.com>
14704 * audio-pulse.cpp|h: Use the Deployment sourced from the player
14705 * dependencyobject.cpp: Fix the warning to not use triple not
14707 * deployment.cpp: If we find the deployment from the domain,
14708 put it in the tls slot to make future lookups use the fast-path.
14710 2009-01-27 Jeffrey Stedfast <fejj@novell.com>
14712 * textbox.cpp (TextBox::TextBox): Don't connect to KeyDown/Up
14713 events anymore. Instead of having a bool 'emit' flag, use
14714 something closer to gtk's freeze_count.
14715 (TextBox::OnKeyDown): Moved to TextBoxView.
14716 (TextBox::OnKeyUp): Same.
14717 (TextBox::SelectAll): Now returns bool to specify if the selection
14719 (TextBox::PreKeyPress): Freeze event emission for our state
14721 (TextBox::PostKeyPress): Thaw them and emit the events.
14722 (TextBoxView::OnKeyDown): Before processing the KeyEvent, call
14723 textbox->PreKeyPress() and after processing, call
14724 textbox->PostKeyPress().
14726 2009-01-27 Jackson Harper <jackson@ximian.com>
14728 * value.cpp: unmarshall fonts properly.
14730 2009-01-27 Geoff Norton <gnorton@novell.com>
14732 * dependencyobject.cpp|h:
14733 * mediaplayer.cpp: Remove the stupidity from my last commit.
14734 * audio.cpp: We're in the right thread and Deployment here, use
14735 Deployment::GetCurrent().
14737 2009-01-27 Geoff Norton <gnorton@novell.com>
14739 * dependencyobject.cpp|h: Add a SetDeployment() call to lazy set
14740 the deployment on a EO.
14741 * deployment.cpp: Add some more logging.
14742 * mediaplayer.cpp: Inherit our Deployment from the MediaElement
14745 2009-01-27 Geoff Norton <gnorton@novell.com>
14748 * audio-pulse.cpp: Register the worker-thread's with mono and set our
14749 deployment correctly.
14750 * audio.cpp|h: Inherit the deployment from the MediaPlayer and keep it
14751 around so that our audio-players can register the thread with mono.
14753 2009-01-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
14755 * pipeline.cpp: WorkerLoop: set the current deployment for every work
14759 * deployment.cpp: Add RegisterThread.
14761 2009-01-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
14763 * deployment.cpp: Deployment: Add some logging, fix indentation and call
14764 the DependencyObject ctor which takes a Deployment instead of the
14767 2009-01-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
14769 * dependencyobject.h:
14770 * dependencyobject.cpp: Add EventObject and DependencyObject ctors which
14771 take a Deployment*, and an Initialize method which is called by both
14772 ctors of each type.
14774 2009-01-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
14776 * deployment.h: Initialize doesn't need cbinding/pinvoke.
14778 2009-01-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
14780 * debug.h: Add LOG_DEPLOYMENT.
14783 * runtime.cpp: Add LOG_DEPLOYMENT. Call Deployment::Initialize in
14786 2009-01-27 Geoff Norton <gnorton@novell.com>
14788 * deployment.cpp|h: Lock our access to the hash. Remove a SetCurrent()
14789 instance since its just sugar and cant be bound anyways.
14791 2009-01-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
14793 * dependencyobject.h:
14794 * dependencyobject.cpp: Move ref to cpp file and add some sanity checks.
14796 2009-01-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
14798 * dependencyobject.h:
14799 * dependencyobject.cpp: Add Deployment* and flags fields on EventObject.
14801 2009-01-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
14803 * collection.cpp: Collection::Dispose: Call base class Dispose too.
14805 2009-01-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
14847 * contentcontrol.h:
14848 * multiscaleimage.h:
14849 * dependencyobject.h:
14850 * type-generated.cpp:
14851 * frameworkelement.h:
14852 * multiscalesubimage.h:
14853 * deepzoomimagetilesource.h: Include all types derived from EventObject
14854 in the type system and remove the IncludeInKinds annotations from
14857 2009-01-27 Chris Toshok <toshok@ximian.com>
14859 * xaml.cpp (XamlElementInstanceManaged::TrySetContentProperty):
14860 add the "XamlElementInstance* value" overload. part of axelerate
14862 (XamlElementInfoManaged::GetContentProperty): pass
14863 obj->AsDependencyObject() to GetContentPropertyName, instead of
14864 obj (which is a Value*).
14866 2009-01-26 Chris Toshok <toshok@ximian.com>
14868 * xaml.cpp (XNamespace::IsParentResourceDictionary, SetAttribute):
14869 some behavior with x:Key/x:Name only happens when the element is a
14870 child of a ResourceDictionary.
14872 2009-01-26 Larry Ewing <lewing@novell.com>
14874 * grid.cpp: rework proportional contribution of auto columns.
14876 * uielement.cpp: remove the slot logic from the transform here we
14877 will compute it in arrange.
14879 2009-01-26 Larry Ewing <lewing@novell.com>
14881 * grid.cpp (Grid::ArrangeOverride): fix a an error in the loop
14884 2009-01-26 Geoff Norton <gnorton@novell.com>
14886 * deployment.cpp: Cleanup our usage of hash a bit to avoid some
14887 senseless compare/branches.
14889 2009-01-26 Larry Ewing <lewing@novell.com>
14891 * shape.cpp (Shape::Clip): hack back in shape clipping until the
14892 layout clip logic fixed.
14894 2009-01-26 Geoff Norton <gnorton@novell.com>
14896 * deployment.cpp: Remove a useless null guard now that we have
14897 Deployment::Initialize. Don't rudely nuke the TLS slot we might not
14900 2009-01-26 Geoff Norton <gnorton@novell.com>
14902 * deployment.cpp|h: Deployment now does all the domain book keeping
14903 for us, so that calls to GetCurrent will return the Deployment for
14904 the appropriate context, it will also set the MonoDomain* appropriately
14907 2009-01-26 Jeffrey Stedfast <fejj@novell.com>
14909 * textbox.cpp (class TextBoxDynamicPropertyValueProvider):
14911 (TextBox::OnPropertyChanged): Guard SelectedTextProperty and
14912 TextProperty from reentrancy.
14913 (TextBox::EmitSelectionChanged): Update the value before emitting
14914 the event, this way we don't need the dynamic provider.
14915 (TextBox::EmitTextChanged): Same.
14916 (TextBox::OnKeyDown): Handle key == GDK_Return.
14918 2009-01-26 Jeffrey Stedfast <fejj@novell.com>
14920 * textbox.cpp (class TextBoxDynamicPropertyValueProvider): We need
14921 to handle the TextProperty as well.
14922 (TextBox::TextBox): Init text_changed to false.
14923 (TextBox::EmitSelectionChanged): New helper method to set
14924 selection_changed to true and then emit the event.
14925 (TextBox::EmitTextChanged): Same idea.
14926 (TextBox::OnPropertyChanged): Use the new Emit helper methods.
14927 (TextBox::ClearSelection): Same.
14928 (TextBox::Select): Same.
14930 2009-01-26 Sebastien Pouliot <sebastien@ximian.com>
14932 * animation.h: Change validators for TargetNameProperty and
14934 * dependencyproperty.g.cpp: Regenerated
14935 * validators.cpp|h: Add new IsTimelineValidator that check that
14936 the instance is derived from Timeline.
14938 2009-01-26 Larry Ewing <lewing@novell.com>
14943 * control.cpp, control.h:
14944 * frameworkelement.cpp, frameworkelement.h:
14947 * src/mediaelement.cpp:
14949 * src/uielement.cpp:
14950 * src/usercontrol.h: Fix things to match the test results. Still
14951 a few regressions in shapes.
14953 2009-01-26 Larry Ewing <lewing@novell.com>
14955 * border.cpp (Border::MeasureOverride):
14957 2009-01-26 Larry Ewing <lewing@novell.com>
14959 * grid.cpp (Grid::MeasureOverride): handle out of bounds
14960 rows/columns the way the tests indicate.
14962 2009-01-24 Larry Ewing <lewing@novell.com>
14964 * border.cpp (Border::MeasureOverride): Fix a width/height mixup.
14966 2009-01-24 Larry Ewing <lewing@novell.com>
14968 * uielement.h (class UIElement): add IsLayoutContainer () to test
14969 if a given element wants to do the layout dance. Hopefully this
14970 can be removed once the logic is more clear.
14975 * usercontrol.h: add IsLayoutContainer values.
14977 2009-01-26 Larry Ewing <lewing@novell.com>
14979 * frameworkelement.cpp: tests show some really crazy behavior in
14980 the short circuit case, try to emulate that.
14982 2009-01-26 Larry Ewing <lewing@novell.com>
14984 * frameworkelement.cpp (FrameworkElement::Measure): remove the
14987 * media.cpp: fix rendering.
14989 2009-01-26 Larry Ewing <lewing@novell.com>
14992 * border.cpp: Try to get alignment working visually.
14994 * frameworkelement.cpp: hack the needed behavior in until I
14995 understand the problem better.
14997 * mediaelement.cpp, mediaelement.h:
14998 * media.cpp: use the layout values in stretching
15000 2009-01-26 Larry Ewing <lewing@novell.com>
15002 * frameworkelement.cpp:
15005 * mediaelement.cpp, mediaelement.h: fix up the bounds to use the
15008 2009-01-26 Larry Ewing <lewing@novell.com>
15011 * media.cpp: add bounds logic.
15016 * border.cpp: start trying to deal with
15019 * frameworkelement.cpp: compute the layout_xform.
15021 * uielement.cpp, uielement.h: add layout_xform and use it.
15023 * shape.cpp: try something else in measure.
15025 * size.h: add == and != overrides.
15027 2009-01-26 Jeffrey Stedfast <fejj@novell.com>
15029 * brush.cpp (VisualBrush::SetupBrush): Updated.
15031 * uielement.cpp (UIElement::Render): Render our subtree in the
15032 Region* version of this method and get rid of the old x,y,w,h
15035 * text.cpp (TextBlock::Render): Override the Render() that takes a
15037 (Glyphs::Render): Same.
15039 * textbox.cpp (TextBoxView::Render): Same.
15041 * shape.cpp (Shape::Render): Here too.
15043 2009-01-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
15047 2009-01-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
15049 * type.cpp: Revert r124497.
15051 2009-01-26 Sebastien Pouliot <sebastien@ximian.com>
15053 * transform.cpp: Add comment about a difference between SL2/ML
15054 in caching/computing the resulting matrix value (exposed in SL2)
15055 of a TransformGroup
15057 2009-01-26 Jackson Harper <jackson@ximian.com>
15059 * xaml.cpp: Move this check into a function since it will be used
15062 2009-01-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
15064 * type.cpp: Type::Find: Check for NULL deployment to avoid crashes.
15066 2009-01-26 Chris Toshok <toshok@ximian.com>
15068 * animation2.h, animation.[cpp,h], application.[cpp,h], asf/asf.h,
15069 binding.[cpp,h], bitmapimage.[cpp,h], brush.[cpp,h],
15070 canvas.[cpp,h], clock.[cpp,h], collection.[cpp,h],
15071 contentcontrol.[cpp,h], deepzoomimagetilesource.[cpp,h],
15072 dependencyobject.[cpp,h], dependencyproperty.h,
15073 deployment.[cpp,h], downloader.[cpp,h], error.[cpp,h],
15074 eventargs.[cpp,h], expression.[cpp,h], frameworkelement.[cpp,h],
15075 geometry.[cpp,h], grid.[cpp,h], media.[cpp,h],
15076 mediaelement.[cpp,h], multiscaleimage.[cpp,h],
15077 multiscalesubimage.h, namescope.[cpp,h], pipeline.h,
15078 popup.[cpp,h], resources.[cpp,h], runtime.[cpp,h], shape.[cpp,h],
15079 size.[cpp,h], style.[cpp,h], stylus.[cpp,h], textbox.[cpp,h],
15080 text.[cpp,h], tilesource.[cpp,h], transform.[cpp,h],
15081 trigger.[cpp,h], uielement.[cpp,h], uri.h, usercontrol.cpp,
15082 usercontrol.h: move some methods (mostly ctor/dtor) to the .cpp
15083 files, and remove GetObjectType - call SetObjectType instead. Add
15084 @IncludeInKinds everywhere on types we want in the Kinds array -
15085 nothing is implicit now. Also, add @SkipValue on types that
15086 shouldn't automatically appear in the Value struct (As* method,
15089 * border.[cpp,h], control.[cpp,h], panel.[cpp,h]: same as above,
15090 but also call SetSubtreeObject at the right times (basically
15091 whenever our subtree object changes).
15093 * template.[cpp,h]: do the GetObjectType/SetObjectType switch here
15094 too. also, rework the control template application step - don't
15095 cache the tree and duplicate it. just reparse. hook up template
15096 bindings properly as well. with this change buttons are starting
15099 * type.cpp: total_event_count = my_events +
15100 parent->total_event_count, so if my_events == 0...
15102 * xaml.cpp (start_element): reverse the subclass check.
15104 * cbinding.cpp, cbinding.h, type-generated.cpp, type.h, value.h: regen
15106 * Makefile.am: add expression.cpp, and there's no need for
15107 separate file lists anymore.
15109 2009-01-25 Chris Toshok <toshok@ximian.com>
15111 * dependencyproperty.cpp (DependencyProperty::RegisterManagedProperty):
15112 this registers a custom property. Fixes moon-unit failures.
15114 2009-01-25 Chris Toshok <toshok@ximian.com>
15116 * value.cpp (Value::Value): allow ManagedTypeInfo of NULL - fixes
15119 2009-01-25 Chris Toshok <toshok@ximian.com>
15121 * xaml.cpp: mostly just remove the NULL's we were passing to the
15122 various DependencyObject methods that used to require an
15123 additional_types arg.
15124 (dependency_object_set_attributes): one important fix here - force
15125 the loader to do the SetValue if the type is URI, or if the type
15126 of the object itself is a custom type. Also, if we've converted
15127 the string to a valid value already, don't pass a string to the
15128 loader - this keeps us from passing "{Binding foo...}" to the
15129 loader to setvalue on a databound property. This does uncover a
15130 failing in our managed code, though, that there's no way to deal
15131 with the unmanaged BindingExpression from managed code.
15133 * application.cpp, application.h: instead of having a
15134 MonoDomain->Application mapping, we now have a
15135 MonoDomain->Deployment mapping, so Application::GetCurrent maps to
15136 Deployment::GetCurrent()->GetCurrentApplication().
15138 * deployment.cpp, deployment.h: flesh out Deployment, along with
15139 the MonoDomain->Deployment mapping. Also add a per-deployment
15140 Types* object, so we can look them up anywhere in the engine
15141 without having to rely on the managed layer passing
15144 * type.h.in, type.cpp: remove additional_types from all the apis.
15145 the currently registered custom types are always available from
15146 the Current deployment, which Type::Find uses. Also, add
15147 IsCustomType which lets us check if a type is one of our special
15148 built-in types, or if it's one that's been registered dynamically.
15150 * value.h.in, value.cpp: remove additional_types.
15152 * dependencyproperty.h, dependencyproperty.cpp: remove
15155 * dependencyobject.h, dependencyobject.cpp: remove
15158 * uielement.h: add cbindings/pinvokes for ElementAdded and
15161 * contentpresenter.h, contentpresenter.cpp: remove - this is 100%
15164 * Makefile.am: remove contentpresenter.{h,cpp}
15166 * type.h, type-generated.cpp, value.h, cbinding.cpp, cbinding.h:
15169 2009-01-25 Sebastien Pouliot <sebastien@ximian.com>
15171 * cbinding.cpp|h: Regenerated
15172 * transform.cpp|h: Add GetMatrix (w/bindings).
15174 2009-01-23 Geoff Norton <gnorton@novell.com>
15176 * xaml.cpp: This is case-insensitive here too.
15178 2009-01-23 Geoff Norton <gnorton@novell.com>
15180 * dependencyobject.cpp: Avoid a SIGSEGV if the parent_scope is null.
15182 2009-01-23 Jeffrey Stedfast <fejj@novell.com>
15184 * utils.cpp (managed_stream_read_func): Fixed to do as intended.
15185 (managed_stream_write_func): Same.
15187 * textbox.cpp (next_word): Implemented.
15188 (prev_word): Implemented.
15190 2009-01-23 Andreia Gaita <avidigal@novell.com>
15192 * clock.[h|cpp]: Add RemoveTickCall() to remove callbacks from the
15193 list in case the dispatcher gets destroyed before they are processed.
15195 2009-01-23 Geoff Norton <gnorton@novell.com>
15197 * utils.cpp: Remove some g_error and handle ridiculously large
15198 zip files to appease glib.
15200 2009-01-23 Sebastien Pouliot <sebastien@ximian.com>
15202 * dependencyproperty.g.cpp: regenerated
15203 * brush.h: Set default values for RadialGradientTransform points
15205 2009-01-23 Stephane Delcroix <sdelcroix@novell.com>
15207 * multiscaleimage.cpp: add a bool so render knows if it was
15208 invalidated locally or not, and should keep rendering the upper
15209 layers or restart from the bottom.
15211 2009-01-23 Geoff Norton <gnorton@novell.com>
15213 * pipeline.h: Move ManagedStreamCallbacks to utils so other things
15215 * utils.cpp|h: Implement a minizip io-style wrapper around
15216 ManagedStreamCallbacks so that we can unzip from / to managed Stream's.
15218 2009-01-23 Stephane delcroix <sdelcroix@novell.com>
15220 * multiscaleimage.cpp: no longer crash on null uri
15222 2009-01-23 Sebastien Pouliot <sebastien@ximian.com>
15224 * xaml.cpp: Fix SIGSEGV when we're parsing something that turns out
15225 to be valid (xml-wise) but not a DO (e.g. a Color).
15227 2009-01-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
15229 * src.mdp: Added new files.
15231 2009-01-22 Chris Toshok <toshok@ximian.com>
15233 * textbox.h, textbox.cpp (class PasswordBox): move the ctor to
15234 .cpp, and call SetDefaultStyleKey to get that working.
15236 2009-01-22 Chris Toshok <toshok@ximian.com>
15238 [ fixes to get http://www.life-silverlight.com/ to come up with
15241 * enums.cpp (initialize_enums): add a mapping for the property
15242 VerticaalContentAlignment using the vertical_alignment_map.
15244 * uielement.h, uielement.cpp: move SetVisualParent to the .cpp
15245 file. Also, call SetSurface in SetVisualParent, so things like
15246 controls templates get the right surface assigned to them (they
15247 have no logical parent, only a visual one.)
15249 * contentpresenter.cpp (ContentPresenter::OnLoaded): follow the
15250 other template stuff - create a temp namescope here. it won't be
15251 merged, so nothing to worry about. Also, don't call
15252 PrepareContentPresenter here. do it after we look up text and
15253 root in OnApplyTemplate.
15254 (ContentPresenter::OnApplyTemplate): prepare the content
15257 2009-01-22 Jeffrey Stedfast <fejj@novell.com>
15259 * contentpresenter.cpp (ContentPresenter::PrepareContentPresenter):
15261 (ContentPresenter::OnLoaded): Only unref the template if it isn't
15264 * contentpresenter.h (ContentPresenter::GetElementRoot):
15265 Implemented temporary binding hack.
15267 * contentpresenter.cpp (ContentPresenter::PrepareContentPresenter):
15269 (ContentPresenter::OnPropertyChanged): Call
15270 PrepareContentPresenter() instead of ApplyTemplate().
15271 (ContentPresenter::OnApplyTemplate): Implemented.
15273 2009-01-22 Chris Toshok <toshok@ximian.com>
15275 * application.h, application.cpp: make surface a per-application
15276 thing, and add GetSurface/SetSurface.
15278 * cbinding.h, cbinding.cpp: regen.
15280 2009-01-22 Jeffrey Stedfast <fejj@novell.com>
15282 * contentcontrol.cpp (ContentControl::ContentControl): I'm
15283 guessing this needs to call SetDefaultStyleKey as well.
15285 * textbox.cpp (TextBoxView): Get rid of the TextBoxProperty
15286 because that causes problems (the TextBox already has a logical
15287 parent). Instead, we'll just keep track of it internally
15289 (TextBoxView::SetTextBox): Do what OnPropertyChanged() used to do
15290 when the TextBox property changed.
15292 * contentpresenter.cpp (ContentPresenter::ContentPresenter): Set
15293 the default style key.
15294 (ContentPresenter::OnLoaded): Load the default template.
15296 * contentpresenter.cpp|h: New source files. Subclass Control even
15297 though in managed-land, we technically subclass
15298 FrameworkElement. This way we can take advantage of Control's
15301 2009-01-22 Chris Toshok <toshok@ximian.com>
15303 * xaml.cpp (dependency_object_set_attributes): commit jackson's
15304 patch (with one slight modification) so everyone can have the
15305 wonderful world of non-broken setters.
15307 2009-01-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
15309 * dependencyobject.h:
15310 * dependencyobject.cpp: Remove comment about weak refs, and #if DEBUG
15311 around object counters (we define DEBUG always anyways, and the
15312 counters are always useful).
15314 2009-01-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
15316 * dependencyobject.cpp: Protect objects_alive with a mutex.
15318 2009-01-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
15320 * dependencyobject.h:
15321 * dependencyobject.cpp: Remove the weak ref stuff, it's never been of
15324 2009-01-22 Stephane delcroix <sdelcroix@novell.com>
15327 * deepzoomimagetilesource.h|cpp: only download the deepzoomfile the
15328 first time it's needed.
15330 2009-01-21 Geoff Norton <gnorton@novell.com>
15332 * application.cpp: If we're set to NULL remove the application
15333 from the hash table.
15335 2009-01-21 Geoff Norton <gnorton@novell.com>
15337 * Makefile.am: Add bitmapimage.cpp to the build
15338 * application.cpp|h: Add a new callback into Application to
15339 return a resource stream.
15340 * bitmapimage.cpp|h: Add a local buffer backed (possibly) by
15341 a managed resource stream and make this all native.
15342 * brush.cpp|h: Brush.ImageSource is now a BitmapImage
15343 * media.cpp|h: Image.Source is now a BitmapImage
15344 * xaml.cpp: BitmapImage can be constructed from a string in xaml
15346 * dependencyproperty.g.cpp: Regenerate
15348 2009-01-21 Larry Ewing <lewing@novell.com>
15350 * grid.cpp (Grid::MeasureOverride): rework the incremental
15351 contribution logic.
15353 2009-01-21 Jeffrey Stedfast <fejj@novell.com>
15355 * contentcontrol.cpp (ContentControl::OnPropertyChanged):
15356 Implemented by calling ApplyTemplate() when ContentTemplate or
15357 Content properties change.
15358 (ContentControl::OnPropertyChanged): Emit a ContentChangedEvent
15359 when the content changes.
15361 2009-01-21 Larry Ewing <lewing@novell.com>
15363 * grid.cpp: store measurement info in the row and column
15364 definitions and don't allocate the arrays.
15366 2009-01-21 Larry Ewing <lewing@novell.com>
15368 * grid.cpp, grid.h: Hack things to handle missing row
15369 definitions and clean up some old errors.
15371 2009-01-21 Jeffrey Stedfast <fejj@novell.com>
15373 * textbox.cpp (TextBox::OnApplyTemplate): Use SetValue() directly
15374 rather than SetContent() since SetContent() has been removed.
15375 * contentcontrol.h (class ContentControl): Updated a bit, we're
15376 going to actually use this unmanaged class now.
15377 (class ContentControl): Set PropertyType for ContentProperty to
15378 'object' and get rid of the generated accessors.
15380 2009-01-21 Jackson Harper <jackson@ximian.com>
15382 * dependencyobject.cpp|h: When setting values, unmarshal values
15384 * value.h|cpp: Add unmarshal function so we can convert types
15385 coming from managed.
15388 * type-generated.cpp: Regenerated.
15390 2009-01-21 Sebastien Pouliot <sebastien@ximian.com>
15392 * dependencyproperty.g.cpp: Regenerated
15393 * text.cpp|h: Revert earlier change as it "turns black" too many
15394 things. DRT #47 will fail until I find the right fix :(
15396 2009-01-21 Larry Ewing <lewing@novell.com>
15398 * grid.cpp (Grid::ArrangeOverride): make the basic cases work
15401 2009-01-21 Alan McGovern <amcgovern@novell.com>
15403 * popup.cpp: Remove debug code from svn.
15405 2009-01-21 Alan McGovern <amcgovern@novell.com>
15412 * type-generated.cpp: Initial attempt at trying to get Popup.Child
15415 2009-01-21 Sebastien Pouliot <sebastien@ximian.com>
15417 * dependencyproperty.g.cpp: Regenerated
15418 * text.cpp|h: Move ForegroundProperty from a DefaultValue to a
15419 ctor initialized value. This means that GetLocalValue won't return
15420 null for this property, which makes it behave correctly for SL1/JS
15422 [Fix DRT#47 failing since r123884]
15424 2009-01-20 Chris Toshok <toshok@ximian.com>
15426 * application.h, application.cpp: switch from using a static
15427 Application* for "Current" to a hashtable mapping MonoDomain* to
15430 2009-01-20 Jackson Harper <jackson@ximian.com>
15432 * xaml.cpp: Lookup resources in Application.Resources if we don't
15433 find the resource in the tree.
15435 2009-01-20 Chris Toshok <toshok@ximian.com>
15437 * dependencyproperty.g.cpp, type-generated.cpp, cbinding.h,
15438 cbinding.cpp: regen.
15440 * Makefile.am (libmoon_include_headers): add application.h
15441 (libmoon_la_SOURCES): add application.cpp
15443 * frameworkelement.cpp (FrameworkElement::SetValueWithErrorImpl):
15444 if the style was set, call Application::ApplyStyle -- doesn't
15445 actually *apply* the style, it just converts the values.
15447 * style.cpp (SetterBase::SetValueWithErrorImpl): we allow setting
15448 the ConvertedValueProperty after the setter is sealed.
15450 * style.h (class Setter): add ConvertedValueProperty.
15452 * textbox.h (class TextBox): remove @CallInitialize.
15454 * textbox.cpp (TextBox::TextBox): i hate the way this is
15455 expressed (we need a ManagedTypeInfo ctor/dtor), but set
15456 DefaultStyleKey here instead of in managed land.
15458 * provider.cpp (StylePropertyValueProvider::GetPropertyValue):
15459 return the converted property value, not the original (which may
15460 have been a string.)
15461 (StylePropertyValueProvider::SealStyle): only put setters in the
15462 hash if their converted value is non-null.
15464 * control.h (class Control): generate accessors for
15467 * control.cpp (Control::OnLoaded): do the default style
15469 (Control::ApplyTemplate): output a little spew so we
15470 can tell if we're applying a template.
15472 * application.h, application.cpp: move Application here, and make
15473 it a full DO subclass. It no longer maps to the managed
15474 ApplicationInternal.
15476 * deployment.h: remove Application from here.
15478 2009-01-20 Jackson Harper <jackson@ximian.com>
15480 * xaml.cpp: When we create templates make sure we track the
15481 template ourself, we can't rely on the ControlTemplate still
15482 having a surface when it is applied.
15484 2009-01-20 Jeffrey Stedfast <fejj@novell.com>
15486 * keyboard.cpp (Keyboard::OnKeyPress): Update modifiers.
15487 (Keyboard::OnKeyRelease): Same.
15489 2009-01-20 Jackson Harper <jackson@ximian.com>
15491 * clock.h: Set namespace for Duration and RepeatBehavior
15493 2009-01-20 Sebastien Pouliot <sebastien@ximian.com>
15495 * dependencyproperty.g.cpp: Regenerated
15496 * uielement.h: Re-apply default value for RenderTransformProperty
15498 2009-01-19 Larry Ewing <lewing@novell.com>
15502 * window-gtk.cpp, window-gtk.h: clean up the set background
15503 clearing logic and make it general.
15505 2009-01-19 Larry Ewing <lewing@novell.com>
15507 * window-gtk.cpp (MoonWindowGtk::InitializeCommon): clear the
15508 window to white by default.
15510 2009-01-19 Larry Ewing <lewing@novell.com>
15512 * grid.cpp (Grid::ArrangeOverride): clean up debug spew start
15513 implementing arrangeoverride.
15515 2009-01-19 Larry Ewing <lewing@novell.com>
15517 * dirty.cpp (Surface::UpdateLayout): make sure we layout the full
15518 screen message too.
15520 2009-01-19 Jackson Harper <jackson@ximian.com>
15523 * binding.h: Get kinds generated for these guys.
15525 * type-generated.cpp: updated
15527 2009-01-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
15531 2009-01-19 Jackson Harper <jackson@ximian.com>
15533 * grid.h: GridLength lives in System.Windows.
15535 2009-01-19 Jackson Harper <jackson@ximian.com>
15537 * color.h: Colours are in System.Windows.Media.
15539 2009-01-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
15541 * pipeline.h: Instead of overriding GetTypeName for media clases
15542 override GetObjectType so that the generator puts these classes into
15543 our type system. This will fix a lot of the "event not registered"
15548 * type-generated.cpp: Regenerated.
15550 2009-01-19 Alan McGovern <amcgovern@novell.com>
15559 * type-generated.cpp:
15560 * dependencyproperty.g.cpp: Create an unmanaged peer for the Popup class
15562 2009-01-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
15564 * type-generated.cpp: When scanning headers in src/ scan src/asf/ too.
15565 Add support for 'unsigned X' types (used in src/asf/).
15567 2009-01-18 Geoff Norton <gnorton@novell.com>
15569 * xaml.cpp: Only unref the surface if it exists.
15571 2009-01-18 Geoff Norton <gnorton@novell.com>
15573 * dependencyobject.cpp: Ensure that the parent scope registration
15574 behavior is only applied to UserControl's.
15576 2009-01-18 Geoff Norton <gnorton@novell.com>
15578 * xaml.cpp: Only ref the surface if it exists.
15580 2009-01-18 Larry Ewing <lewing@novell.com>
15582 * dirty.cpp (Surface::UpdateLayout): pass the full size in always.
15584 * grid.cpp, grid.h (Grid::ArrangeOverride): hook up and empty
15585 arrange method for now.
15587 2009-01-18 Larry Ewing <lewing@novell.com>
15589 * control.cpp: update invaliate/measure to look more like border
15590 (still wrong) and remove some debug spew.
15592 2009-01-18 Sebastien Pouliot <sebastien@ximian.com>
15594 * cbinding.h|cpp, type.h, value.h: Regenerated
15595 * transform.h: Add UnmanagedMatrix (which is a DO accessible to
15596 managed code) and a new method to get the address of the matrix
15598 * type-generated.cpp: Regenerated to include UNMANAGEDMATRIX
15600 2009-01-17 Larry Ewing <lewing@novell.com>
15602 * canvas.cpp (Canvas::MeasureOverride):
15603 * frameworkelement.cpp (Frameworkelement::MeasureOverride): simplify.
15605 2009-01-17 Jackson Harper <jackson@ximian.com>
15607 * xaml.cpp: Dont create items for property elements. The element
15608 name for property elements can be an abstract type.
15610 2009-01-17 Jackson Harper <jackson@ximian.com>
15612 * xaml.cpp: Don't try to set properties that are collections,
15613 they've already had the items added in add_child.
15615 2009-01-17 Jackson Harper <jackson@ximian.com>
15617 * xaml.cpp|h: Change CreateObject to LookupObject and give it a
15618 flag for actually creating the object. This allows us to verify
15619 the type on hydrated elements without creating another instance
15620 and prevents a circular dependency when elements load themself in
15621 their LoadComponent xaml.
15623 2009-01-17 Geoff Norton <gnorton@novell.com>
15625 * dependencyobject.cpp: A custom UserControl has a local namescope
15626 but also needs to be locatable in its parent namescope.
15628 2009-01-16 Jeffrey Stedfast <fejj@novell.com>
15630 * layout.cpp (TextLayout::GetCursor): Fixed to support segments of
15631 different font size (not that TextBox really needs that since all
15632 runs will be the same exact font).
15634 * textbox.cpp (TextBoxView::UpdateCursor): New convenience method
15635 to update the cursor rect.
15636 (TextBoxView::Layout): Update the cursor after we finish laying
15638 (TextBoxView::OnModelChanged): Updated to use UpdateCursor().
15639 (TextBox::OnKeyDown): Prevent character entry if buffer->len >=
15642 2009-01-16 Jackson Harper <jackson@ximian.com>
15644 * xaml.cpp: NULL is OK if it's being explicitly set.
15646 2009-01-16 Jeffrey Stedfast <fejj@novell.com>
15648 * textbox.cpp (TextBoxView::OnModelChanged): Invalidate the old
15649 cursor region and the new cursor region.
15650 (TextBoxView::Paint): Paint the cursor as well.
15652 * layout.cpp (Layout::GetCursor): Implemented.
15654 2009-01-16 Larry Ewing <lewing@novell.com>
15656 * frameworkelement.cpp (FrameworkElement::MeasureOverride):
15659 * panel.cpp, panel.h: remove arrange override and make measure
15660 override return (0,0) always.
15662 2009-01-16 Larry Ewing <lewing@novell.com>
15664 * panel.cpp: Make ArrangeOverride and MeasureOverride do something
15665 closer to the right thing.
15667 2009-01-16 Jeffrey Stedfast <fejj@novell.com>
15669 * textbox.cpp (TextBox::ArrangeOverride): Removed.
15670 (TextBox::Background) needs to return NULL if not selected mode -
15671 we don't want to be redrawing the normal bg.
15673 2009-01-16 Geoff Norton <gnorton@novell.com>
15675 * xaml.cpp|h: Allocate a GCHandle to the ManagedXamlLoader if
15676 we're going to keep it alive to apply control templates.
15678 2009-01-16 Geoff Norton <gnorton@novell.com>
15680 * template.cpp: Add the namescope to the closure to avoid
15681 referencing random memory.
15682 * xaml.cpp: We create a new XamlLoader when applying control
15683 templates, and inherit the callbacks. Set vm_loaded to true in
15686 2009-01-16 Jeffrey Stedfast <fejj@novell.com>
15688 * textbox.cpp (TextBox::TextBox): Don't init the selection
15689 brushes, they must come from the style.
15691 2009-01-16 Larry Ewing <lewing@novell.com>
15693 * border.cpp, border.h:
15694 * uielement.cpp, uielement.h:
15695 * panel.cpp, panel.h:
15696 * canvas.cpp, canvas.h:
15697 * control.cpp, control.h: Remove GetTransformFor completely, use
15698 the layout slot x/y when computing the local transform,
15699 invalidatemeasure (for now) when updating the tranform.
15701 * dirty.cpp: hack in the intial Left/Top stuff until we can clean
15704 2009-01-16 Larry Ewing <lewing@novell.com>
15706 * frameworkelement.cpp (FrameworkElement::Arrange): don't stretch
15707 unless stretch is specified.
15709 2009-01-16 Geoff Norton <gnorton@novell.com>
15711 * mediaelement.h: The MediaElement.Source is a Uri on the managed
15714 2009-01-16 Jackson Harper <jackson@ximian.com>
15716 * xaml.cpp: FindTypeName type names dont' always have a
15717 namespace/assembly.
15718 - Special case Application and don't try to find it's name since
15719 it is renamed in the managed code. (Need to figure out a better
15721 - Pass in NULL for setting propertys and let the underlying types
15722 determine whether or not that is an error.
15724 2009-01-16 Jackson Harper <jackson@ximian.com>
15726 * xaml.cpp: Before going to managed to create an element, scan the
15727 xnamespace for the x:Class attribute and pass that in as the
15728 element name if we have one, this allows you to use abstract names
15729 for the elements as long as the x:Class is a complete type. Should
15730 also allow us to optimize out a trip into managed.
15732 2009-01-16 Jackson Harper <jackson@ximian.com>
15734 * xaml.cpp: The xaml context needs to store the callbacks so that
15735 we can properly invoke managed code in a template.
15737 2009-01-16 Jackson Harper <jackson@ximian.com>
15739 * dependencyproperty.cpp: This warning isn't really needed and now
15740 with managed DP lookup's, this scenario happens about a trillion
15741 times during parsing of generic.xaml.
15743 2009-01-16 Larry Ewing <lewing@novell.com>
15745 * uielement.h (class UIElement): remove the default value from
15746 RenderTransformProperty until the bugs it introduces are resolved.
15748 * dependencyproperty.g.cpp:Regenerated.
15750 2009-01-15 Sebastien Pouliot <sebastien@ximian.com>
15752 * dependencyproperty.g.cpp: Regenerated
15753 * grid.h: Add default values for [Column|Row]Definition Width
15755 * xaml.cpp: Fix most cases (except empty) of GridLength
15757 2009-01-15 Geoff Norton <gnorton@novell.com>
15759 * downloader.cpp|h: Add downloader_response_abort.
15761 2009-01-15 Jackson Harper <jackson@ximian.com>
15763 * xaml.cpp|h: We need to pass a pointer to the elements parent
15764 object to managed code, this is so we can look up a Setter's
15766 - Let managed handle Type::DEPEPENDENCYPROPERTY attributes.
15768 2009-01-15 Jackson Harper <jackson@ximian.com>
15770 * dependencyproperty.cpp: Patch mostly by rolf. Allows property
15771 lookup to work on custom types that subclass custom types.
15772 * template.cpp: Now that templates work pretty well, lets reduce
15775 2009-01-15 Sebastien Pouliot <sebastien@ximian.com>
15777 * dependencyproperty.g.cpp: Regenerated to include the specified
15778 type (and not the implied one from the default value)
15779 * uielement.h: RenderTransformProperty defaults to a empty (identity)
15782 2009-01-15 Jeffrey Stedfast <fejj@novell.com>
15784 * textbox.cpp: Removed default_*[fore,back]ground() functions as
15785 well as textbox_shutdown() since they are no longer needed.
15786 (TextBox::TextBox): Initialize the default SelectionBackground and
15787 SelectionForeground brushes.
15789 * layout.h (struct TextSelection): Removed brushes from
15790 TextSelection struct.
15792 2009-01-15 Jeffrey Stedfast <fejj@novell.com>
15794 * mediaelement.cpp (MediaElementPropertyValueProvider::GetPropertyValue):
15795 Cannot compare a guint64 with -1, presuming the comparison was
15796 meant to be against TimeSpan_FromPTS (position) instead.
15798 * textbox.cpp: Emit SelectionChanged events with RoutedEventArgs
15799 instead of SelectionChangedEventArgs.
15801 * eventargs.cpp (RoutedEventArgs::RoutedEventArgs): New helper
15802 ctor that takes a source.
15804 * textbox.h (class SelectionChangedEventArgs): Removed, this type
15805 of EventArgs is not actually emitted by TextBox as I had
15806 originally thought. TextBox's SelectionChanged event uses
15809 2009-01-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
15811 * type-generated.cpp:
15812 * dependencyproperty.g.cpp: Regenerated.
15815 * mediaelement.cpp: Inherit directly from FrameworkElement instead of
15816 MediaBase. This requires copying some code from MediaBase into
15817 MediaElement (which at some later stage would move into Media).
15819 2009-01-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
15822 * cbinding.cpp: Regenerated.
15827 * type-generated.cpp:
15828 * dependencyproperty.h:
15829 * dependencyproperty.cpp: Add support for looking up custom dependency
15830 properties by name.
15832 2009-01-15 Sebastien Pouliot <sebastien@ximian.com>
15834 * xaml.cpp: Free Value on error inside ManagedNamespace.FindElement.
15835 Add comment on value_from_str_with_typename to update NativeMethods.cs
15837 2009-01-15 Larry Ewing <lewing@novell.com>
15842 * frameworkelement.cpp: start taking layout slot into account when
15845 2009-01-15 Jackson Harper <jackson@ximian.com>
15847 * xaml.cpp: Storyboard are allowed to have an x:Name and an
15848 x:Key. This is for backwards compatibility because SL1 didn't have
15849 x:Key. It's also stupid.
15851 2009-01-15 Jackson Harper <jackson@ximian.com>
15853 * xaml.cpp: Add a fake element to templates with all the imported
15854 namespaces. This allows all the namespaces imported in the main
15855 source to work in the template.
15857 2009-01-14 Jeffrey Stedfast <fejj@novell.com>
15859 * textbox.cpp (TextBoxView::OnSelectionChanged): Force a
15861 (TextBoxView::Layout): Build the text runs based on the selection.
15862 (TextBoxView::Paint): Updated to no longer pass the selection
15863 state to the layout engine.
15865 * layout.h (class ITextSource): Added a Background() accessor and
15866 changed the Foreground() accessor to take a bool selected
15869 * layout.cpp (RenderSegment): Render the background if non-NULL.
15870 (TextRun::TextRun): Now takes a 'selected' state.
15871 (TextLayout::Render): No longer takes selection or cursor
15874 2009-01-14 Jackson Harper <jackson@ximian.com>
15876 * xaml.cpp: Fix x:Null handling.
15878 2009-01-14 Sebastien Pouliot <sebastien@ximian.com>
15880 * brush.h: Add default values used by some brushes
15881 * dependencyproperty.g.cpp: Regenerated
15883 2009-01-14 Larry Ewing <lewing@novell.com>
15885 * panel.cpp (Panel::GetTransformFor): override gettransformfor for
15888 2009-01-14 Jackson Harper <jackson@ximian.com>
15890 * xaml.cpp: Add the namespaces to the xaml context.
15892 2009-01-14 Jeffrey Stedfast <fejj@novell.com>
15894 * textbox.cpp (TextBox::CursorBackSpace): Implemented.
15895 (TextBox::CursorDelete): Implemented.
15897 * layout.cpp (RenderSegment): Split out from RenderLine().
15899 2009-01-14 Jackson Harper <jackson@ximian.com>
15901 * xaml.cpp: Apparently there is a new NULL on the block. Use
15902 SetIsNull instead of a NULL Value* now.
15904 2009-01-14 Jackson Harper <jackson@ximian.com>
15906 * template.cpp: initialize xaml_context. (fixes shutdown crash)
15908 2009-01-14 Jackson Harper <jackson@ximian.com>
15910 * type.h|h.in: typo. Don't ask me how, but somehow I accidently flipped
15911 these before my last patch.
15913 2009-01-14 Jackson Harper <jackson@ximian.com>
15915 * xaml.cpp: Styles use their TargetType as their
15916 ResourceDictionary key.
15917 - Handle the new type MANAGEDTYPEINFO by allowing the managed code
15919 * value.cpp|h|.h.in:
15920 * type.h|h.in: New type, ManagedTypeInfo. Contains info for
15921 loading managed types.
15924 * template.h: Use ManagedTypeInfo when we have a System.Type on
15926 * dependencyproperty.g.cpp:
15927 * typegenerated.cpp: Regen
15929 2009-01-14 Jeffrey Stedfast <fejj@novell.com>
15931 * textbox.cpp: More fixes for cursor movement & keyboard selection.
15933 2009-01-14 Sebastien Pouliot <sebastien@ximian.com>
15935 * grid.cpp (MeasureOverride): Free allocated arrays
15937 2009-01-14 Sebastien Pouliot <sebastien@ximian.com>
15939 * grid.cpp: Add a bunch of NULL checks for width and height to avoid
15940 crashes when running the SDK controls unit tests.
15942 2009-01-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
15944 * dependencyobject.cpp: Fix
15945 media/video/test-reset-media-element-source.html.
15947 2009-01-14 Alan McGovern <amcgovern@novell.com>
15949 * enums.cpp: Control.HorizontalContentAlignment should map to the
15950 HorizontalAlignment enum.
15952 2009-01-14 Stephane Delcroix <sdelcroix@novell.com>
15954 * deepzoomtilesource.h|cpp: download the source on UriSourceProperty
15957 2009-01-14 Stephane Delcroix <sdelcroix@novell.com>
15959 * deepzoomtilesource.h: mark it with CallInitialize
15961 2009-01-14 Stephane Delcroix <sdelcroix@novell.com>
15963 * tilesource.h|cpp: autogenerate the cbinding
15965 * deepzoomimagetilesource.h|cpp: define a downloaded cb to poke the
15966 managed side for xml parsing.
15968 2009-01-13 Chris Toshok <toshok@ximian.com>
15970 * xaml.cpp (XamlLoader::CreateFromFileWithError): strdup the error
15972 (XamlLoader::CreateFromStringWithError): same.
15973 (XamlLoader::HydrateFromStringWithError): same.
15974 (~XamlLoader): unref the error_args.
15975 (XamlLoader::HydrateFromString): no need to ref the object again
15976 here if it was passed in.
15978 2009-01-13 Larry Ewing <lewing@novell.com>
15980 * uielement.cpp, uielement.h (class LayoutInformation): add
15981 LayoutInformation class to hold the layout related attached
15982 properties. (will move it later).
15984 * frameworkelement.cpp: use the new layout information and use it
15987 * border.cpp: fix the arrange logic.
15989 2009-01-13 Larry Ewing <lewing@novell.com>
15991 * shape.cpp: switch over to using the computed values for stretch.
15993 * frameworkelement.cpp:
15995 * dirty.cpp, dirty.h: Try to get invalidation logic close to
15998 2009-01-13 Larry Ewing <lewing@novell.com>
16000 * shape.cpp: treat rect and ellipse like normal framework elements.
16002 2009-01-13 Larry Ewing <lewing@novell.com>
16004 * frameworkelement.cpp:
16008 * mediaelement.cpp:
16009 * panel.cpp: Use the layout values for values we used to compute
16012 2009-01-13 Larry Ewing <lewing@novell.com>
16014 * grid.cpp (Grid::MeasureOverride): make sure we stay inside the
16015 collection while iterating.
16017 2009-01-13 Larry Ewing <lewing@novell.com>
16020 * src/frameworkelement.cpp
16022 * src/panel.cpp, src/panel.h: layout updates
16024 2009-01-13 Larry Ewing <lewing@novell.com>
16026 * canvas.cpp (Canvas::ArrangeOverride): pass in the requested
16029 * media.cpp, media.h: add ArrangeOverride/MeasureOverride.
16031 2009-01-13 Larry Ewing <lewing@novell.com>
16033 * shape.cpp, shape.h: start moving cleaning up references to width
16034 and height and moving towards using the layout logic. Remove
16035 stale LargestRect stuff
16037 * runtime.c, dirty.h: stub in an update layout function.
16039 * border.cpp, canvas.cpp: try to match some more tests.
16041 2009-01-13 Jeffrey Stedfast <fejj@novell.com>
16043 * textbox.cpp (TextBox::CursorPageDown): Implemented.
16044 (TextBox::CursorPageUp): Implemented.
16045 (TextBox::CursorHome): Implemented.
16046 (TextBox::CursorEnd): Implemented.
16047 (TextBox::CursorDown): Implemented.
16048 (TextBox::CursorUp): Implemented.
16049 (TextBox::OnKeyDown): Implemented Select-All keybinding and
16050 stubbed out cut/copy/paste.
16052 2009-01-13 Sebastien Pouliot <sebastien@ximian.com>
16054 * dependencyproperty.g.cpp: Regenerated
16055 * shape.h|cpp: Remove DefaultValue for Poly[gon|line].Points and
16056 Shape.StrokeDashArray and set them in the constructors (which is
16057 bit ifferent and fix Polyhedra animation).
16059 2009-01-13 Sebastien Pouliot <sebastien@ximian.com>
16061 * dependencyproperty.g.cpp: Regenerated
16062 * shape.h: Add DefaultValue for Poly[gon|line].Points and Shape
16063 StrokeDashArray since they are not NULL in SL2
16065 2009-01-13 Alan McGovern <amcgovern@novell.com>
16067 * src.mdp: Add the provider stuff to the MD solution
16069 2009-01-13 Chris Toshok <toshok@ximian.com>
16071 * provider.cpp (StylePropertyValueProvider::SealStyle): only
16072 insert the setter into the hash if the setter's value matches the
16073 type of the setter's property. Fixes
16074 StyleTest.InvalidValueProgrammatically.
16076 2009-01-13 Jackson Harper <jackson@ximian.com>
16078 * xaml.cpp|h: Add the ability to lookup full uri's based on local
16079 prefixes. This is so managed can convert something like
16080 'local:' into 'clr-namespace=Foo;assembly=bar'
16082 2009-01-13 Jackson Harper <jackson@ximian.com>
16084 * xaml.cpp|h: Pass the ParserInfo to every callback, this will
16085 allow us to call back into unmanaged to do extra stuff.
16087 2009-01-13 Stephane Delcroix <sdelcroix@novell.com>
16089 * tilesource.h|cpp: add a callback and a method to set the callback
16090 so we can poke the managed GetTileLayers.
16092 2009-01-12 Chris Toshok <toshok@ximian.com>
16094 * style.cpp, style.h (Style::GetPropertyValue): remove this. it's
16095 been replaced by the hash lookup in the style provider.
16097 * dependencyobject.cpp (DependencyObject::ClearValue): i hate this
16098 change... apparently there's something that happens to lower
16099 precedence providers after you call ClearValue, but *only if the
16100 local value was actually cleared*. yuck.
16102 * frameworkelement.cpp (FrameworkElement::OnPropertyChanged):
16103 remove the Style sealing from SetValueWithErrorImpl, and move it
16104 here where it should have been all along. Also, do the sealing
16105 via the Style value provider, so it can make things a bit more
16108 * provider.cpp (StylePropertyValueProvider::SealStyle): new
16109 method, called by FWE::OnPropertyChanged when the style is
16110 initially set. we cache the setters (keyed by DP) in a hashtable.
16111 (StylePropertyValueProvider::RecomputePropertyValue): this is the
16112 magic method that DependencyObject::ClearValue calls, which causes
16113 the style provider to refresh its cache for the listed property.
16115 2009-01-12 Jackson Harper <jackson@ximian.com>
16117 * xaml.cpp: Fix typo, makes ControlTemplates inside of
16118 ControlTemplates work properly.
16120 2009-01-12 Jackson Harper <jackson@ximian.com>
16122 * xaml.cpp: Add MOON_NOFAIL_MISSING_PROPS, this is a temp hack so
16123 we can load some sites and see which properties are missing, right
16124 now it will only work for attributes. Intentionally not using the
16125 debug flags stuff, because i don't want this hack to stay around
16128 2009-01-12 Jackson Harper <jackson@ximian.com>
16130 * xaml.cpp: Stop trying to set attributes once we hit the first
16133 2009-01-12 Jeffrey Stedfast <fejj@novell.com>
16135 * collection.cpp (InlineCollection::Equals): New convenience
16136 method to replace text.cpp's inlines_simple_text_equal().
16138 * textbox.h (class TextBox): Now implements ITextSource.
16140 * text.cpp (Inline::UpdateFontDescription): New convenience method
16141 to populate the cached TextFontDescription since we can no longer
16142 rely on doing so from within OnPropertyChanged().
16143 (Inline::Equals): Base comparison method used by
16144 InlineCollection::Equals().
16145 (Run::Equals): Compare the Text property as well.
16146 (TextBlock::Layout): Call UpdateFontDescription() on each Inline
16147 as we iterate through them. Also updated for TextRun ctors.
16148 (TextBlock::OnCollectionItemChanged): Simplified a bit. The basic
16149 premise is that we do not want to force a layout calculation to be
16150 redone, we just need to invalidate if all that changed was a
16152 (inlines_simple_text_equal): Removed, use
16153 InlineCollection::Equals() instead.
16154 (TextBlock::SetTextInternal): Updated to use
16155 InlineCollection::Equals().
16157 * text.h (class Inline): Now implements the ITextSource
16158 interface. Moved the local TextFontDescription and autogen state
16159 into the private section and added accessors for them.
16161 * layout.cpp|h (class ITextSource): New interface sued by TextRuns
16162 and the internal Layout logic to grab a run's foreground brush and
16164 (TextRun::ctor): No longer take TextDecoration,
16165 TextFontDescription, or Brush arguments, instead takes an
16166 ITextSource that it can query for those properties when it needs
16168 (RenderLine): Updated to get the decorations and foreground brush
16169 from the ITextSource.
16171 2009-01-12 Alan McGovern <amcgovern@novell.com>
16176 * dependencyproperty.g.cpp: Add range validation to TimeSpan
16178 2009-01-12 Jackson Harper <jackson@ximian.com>
16180 * xaml.cpp: Moved nameditem lookup into the parser info so we can
16181 use the parser context data to lookup resources. This allows
16182 templates to reference StaticResources.
16184 2009-01-12 Alan McGovern <amcgovern@novell.com>
16186 * clock.cpp: Minimum FPS is clamped at 1.
16188 2009-01-12 Jackson Harper <jackson@ximian.com>
16190 * xaml.cpp|h: Create a xaml context object so we can save some
16191 state information for buffered templates.
16192 * template.h|cpp: Updated xaml methods.
16194 2009-01-12 Alan McGovern <amcgovern@novell.com>
16199 * dependencyproperty.g.cpp: Add correct validator for
16200 Storyboard.TargetName and Storyboard.TargetProperty
16202 2009-01-12 Sebastien Pouliot <sebastien@ximian.com>
16204 * grid.h: Hide RowDefinitionCollection ctor from managed code
16205 * frameworkelement.cpp, provider.cpp: Even is Is(Type::Style)
16206 returns true the Style value can still be NULL (fix two new crash
16207 in SDK control unit tests)
16209 2009-01-12 Andreia Gaita <avidigal@novell.com>
16211 * stackpanel.cpp|h: removed, stackpanel is now done in managed
16214 * cbinding.cpp|h, dependencyproperty.g.cpp,
16215 type-generated.cpp, type.h,
16218 * Makefile.am, src.mdp: update build
16220 2009-01-11 Chris Toshok <toshok@ximian.com>
16222 * layout.h, layout.cpp (RenderLine): default_fg is unnecessary
16223 now. the run fg will always be initialized.
16224 (TextRun::TextRun): the fg pointer is Brush*, not Brush**.
16225 (TextLayout::Render): no need to pass in the default foreground.
16227 * runtime.cpp (runtime_shutdown): text_shutdown is gone.
16229 * text.h, text.cpp: stop caching the foreground. and there's no
16230 need to create the default foreground brush in code. it's simply
16231 the default value of the Foreground dependency property.
16232 (inlines_simple_text_equal): this needed fixing up since the font
16233 flags really aren't used for inheritance anymore - we need (and
16234 really, always needed to) compare the actual values, not just if
16236 (text_shutdown): no need for this anymore.
16238 * textbox.cpp (TextBoxView::Paint): same. no more default_fg
16241 2009-01-11 Chris Toshok <toshok@ximian.com>
16243 * dependencyobject.h, dependencyobject.cpp: make DO's freezable.
16244 if a DO is frozen, any SetValue() call raises an
16245 UnauthorizedAccessException. We use this for default values of
16246 DependencyProperties.
16248 * dependencyproperty.cpp (DependencyProperty::DependencyProperty):
16249 freeze the default value.
16251 2009-01-11 Andreia Gaita <avidigal@novell.com>
16253 * clock.h|cpp (DispatcherTimer): Don't destroy the clock on Stop(),
16254 it could be called in the middle of a tick. Instead, just reset and
16255 reuse the clock on every tick. Track if the timer is stopped during
16256 a tick so the clock is not relaunched. Set a default duration so
16257 it's never automatic.
16259 2009-01-11 Chris Toshok <toshok@ximian.com>
16261 * text.h, text.cpp (class Inline): generate accessors for
16262 FontFamily, FontSize, and TextDecoration.
16263 (class Inline, class TextBlock): add an internal DP for the font
16265 (Inline::OnPropertyChanged): the only case that's needed at the
16266 moment is foreground, but that's slated for the axe as well.
16268 * dependencyproperty.g.cpp: regen.
16270 * provider.cpp (InheritedPropertyValueProvider::GetPropertyValue):
16271 make sure we inherit properly across the logical tree if the node
16272 doesn't have a visual parent (this fixes inheritance for non
16273 UIElement's, like Runs). Also, add the FontFilename property to
16274 the list of things that inherit.
16276 * dependencyobject.h,
16277 dependencyobject.cpp (DependencyObject::ProviderValueChanged): new
16278 method. Providers can call this whenever the value at their
16279 precedence level has changed. It contains all the smarts to
16280 correctly generate OnPropertyChanged method calls in the face of
16281 all the provider levels.
16283 2009-01-10 Jeffrey Stedfast <fejj@novell.com>
16285 * textbox.cpp (TextBox::OnKeyDown): Changed a bit. We need to emit
16286 TextChangedEvent and SelectionChangedEvent. Don't combine those
16287 into the ModelChangedEvent that is only meant for TextBoxView.
16288 (TextBox::OnPropertyChanged): Emit TextChangedEvent and
16289 SelectionChangedEvent appropriately.
16290 (TextBoxView::OnSelectionChanged): New event callback handler.
16291 (TextBoxView::OnTextChanged): Same.
16292 (TextBoxView::OnModelChanged): Don't handle text/selection change
16293 notification here anymore, because those 'change' enum types have
16295 (TextBoxView::OnPropertyChanged): Need to listen to more events.
16297 2009-01-10 Jeffrey Stedfast <fejj@novell.com>
16299 * value.cpp (Value::Value): the const char* ctor now takes a bool
16300 argument specifying whether to take ownership of the string
16303 * textbox.cpp (class TextBoxDynamicPropertyValueProvider): We
16304 don't need to keep a char* selection, we only need it temporarily
16305 while creating the Value*.
16306 (TextBox::OnKeyDown): Check for AcceptsReturn when Enter is
16308 (TextBox::ClearSelection): Don't set the TextProperty value
16309 anymore. Also don't bother with the setvalue state variable
16311 (TextBox::OnPropertyChanged): Don't worry about setvalue state
16313 (TextBox::TextBox): Get rid of 'setvalue' state.
16315 2009-01-10 Geoff Norton <gnorton@novell.com>
16317 * media.cpp: surface->filename might be NULL, so we need to guard
16318 against this in our cleanup accordingly.
16320 2009-01-09 Chris Toshok <toshok@ximian.com>
16322 * frameworkelement.cpp (FrameworkElement::SetValueWithErrorImpl):
16323 oops. we still need to seal the style if that's the thing we're
16326 2009-01-09 Chris Toshok <toshok@ximian.com>
16328 * Makefile.am (libmoon_include_headers): add provider.h
16329 (libmoon_la_SOURCES): add provider.cpp
16331 * provider.h, provider.cpp: clean up this some. the only provider
16332 really not being used right now is the Animation value provider,
16333 since the animation code assumes it can just set local values.
16335 * shape.cpp (Shape::OnPropertyChanged): no need to look up the
16336 default value - GetValue will return it now.
16338 * textbox.h, textbox.cpp (class
16339 TextBoxDynamicPropertyValueProvider): new custom provider class to
16340 replace the ::GetValue override. Install it in the ctor.
16342 * text.h, text.cpp (class TextBlockDynamicPropertyValueProvider):
16343 new custom provider class to replace the ::GetValue override.
16344 Install it in the ctor.
16345 (GetBoundingWidth, GetBoundingHeight): don't use
16347 (SetActualHeight, SetActualWidth): no longer needed.
16348 (textblock_property): no longer needed.
16349 (Inline::GetDefaultValue): no longer needed. the inherited
16350 property provider handles it.
16351 (TextBlock::OnPropertyChanged): no need to deal with
16352 Actual{Height,Width}Property here anymore.
16354 * frameworkelement.cpp (FrameworkElement::FrameworkElement):
16355 remove styles initialization.
16356 (FrameworkElement): remove styles destruction.
16357 (FrameworkElement::ClearValue): this doesn't need any styles stuff
16358 anymore - just clear the binding if we have one, and otherwise
16360 (FrameworkElement::GetLocalValue): I'm not sure why this was
16361 looking things up via a style, as styles are a lower priority than
16362 local values. if there's a binding return that, otherwise chain
16364 (FrameworkElement::SetValueWithErrorImpl): remove the styles stuff
16366 (FrameworkElement::UpdateFromStyle): remove. the style lookup is
16367 done in the style provider.
16370 * style.h, style.cpp (SetterBaseCollection::SetStyle): remove the
16371 public Style* field and use SetStyle to set it.
16372 (Style::GetPropertyValue): new method. this should probably be a
16373 hash lookup instead of the linear lookup, but for now this will
16375 (SetterBaseCollection::ValidateSetter): make this a static method
16376 on the class instead of just a C function.
16378 * dependencyobject.h: add a couple more GetValue overrides to deal
16379 with precedence levels. Remove GetDefaultValue, as it's no longer
16380 needed - we can finally use DependencyProperty::GetDefaultValue as
16381 it's meant to be used.
16383 * dependencyobject.cpp (DependencyObject::GetLocalValue): change
16384 this to just call the LocalValue provider.
16385 (DependencyObject::GetValue (DependencyProperty* property)): call
16386 the overload that lets us specify a starting precedence (start at
16387 the highest precedence level).
16388 (DependencyObject::GetValue (DependencyProperty *property,
16389 PropertyPrecedence startingAtPrecedence)): new method. loop over
16390 the providers until one of them gives us a value.
16391 (DependencyObject::GetValueSkippingPrecedence): we need this for
16392 looking up the value of FrameworkElement::StyleProperty from
16393 inside the style provider.
16394 (DependencyObject::GetValueNoDefault): reimplement this for the
16395 time being using the providers.
16396 (DependencyObject::DependencyObject): register all the default
16397 providers. we leave a DynamicValue slot open for subclasses who
16398 want to implement "computed" properties.
16399 (DependencyObject): free all the providers.
16401 * dependencyproperty.g.cpp: regen
16403 2009-01-09 Geoff Norton <gnorton@novell.com>
16405 * media.cpp: Remove a unnecessary synthesized PropertyChangedEvent
16407 2009-01-09 Geoff Norton <gnorton@novell.com>
16409 * media.cpp: Ensure that we actually do change the value of the
16410 Source property when we call MediaBase::SetSource (char*)
16412 2009-01-09 Jeffrey Stedfast <fejj@novell.com>
16414 * text.cpp (TextBlock::OnPropertyChanged): Update our TextLayout
16415 with layout-hint changes (including TextWrapping hints).
16416 (TextBlock::Layout): Don't pass 'hints' to layout->Layout()
16417 anymore. Also no need to set the wrapping mode here anymore as it
16418 is set in OnProeprtyChanged() now.
16420 * layout.cpp (TextLayout): Move TextLayoutHints into TextLayout,
16421 it doesn't make sense to have them separate.
16423 * textbox.cpp (class TextBox): Get rid of TextLayoutHints state,
16424 we'll pass changes directly to the View as they get updated.
16425 (TextBox::OnPropertyChanged): If the layout hints change, set
16426 changed to the appropriate TextBoxModelChanged hint enum. Also
16427 pass the PropertyChangedEventArgs to the ModelChangedEventArgs
16428 ctor so that TextBoxView can grab the new value to update its
16430 (TextBoxView::OnModelChanged): Handle the new enums.
16431 (TextBoxView::OnPropertyChanged): Sync our layout-hints state when
16432 a new TextBox gets set.
16434 2009-01-09 Alan McGovern <amcgovern@novell.com>
16436 * dependencyproperty.cpp: 'validator' should never be null - it should
16437 be default_validator instead. Regression caused by previous change to
16440 2009-01-09 Alan McGovern <amcgovern@novell.com>
16442 * validators.cpp: Validator only converts -1 to null. All other values
16443 appear to be left the same
16445 2009-01-09 Alan McGovern <amcgovern@novell.com>
16449 * validators.cpp: Add a validator to AudioStreamIndex. This converts
16450 negative values to null, as the unit tests show.
16452 2009-01-09 Alan McGovern <amcgovern@novell.com>
16454 * dependencyproperty.h:
16455 * dependencyproperty.cpp:
16456 * dependencyproperty.g.cpp: Make it possible to use validators with
16457 Nullable properties.
16459 2009-01-08 Jeffrey Stedfast <fejj@novell.com>
16461 * text.cpp (Glyphs::SetFill): Removed, autogenerated now.
16462 (Glyphs::GetFill): Same.
16464 * text.h (class Glyphs): GenerateAccessors for FillProperty too.
16466 * textbox.cpp (TextBox::CursorRight): Implemented.
16467 (TextBox::CursorLeft): Implemented.
16468 (TextBox::GetValue): New override to set the SelectedText property
16469 if the selection has been changed since the last request.
16471 * eventargs.cpp (KeyEventArgs::IsModifier): Work around gtk < 2.10.
16473 * text.cpp (TextBlock::Layout): Fix bug #435798 in a slightly
16474 different way so that we don't have to use GetValueNoDefault().
16476 2009-01-08 Larry Ewing <lewing@novell.com>
16478 * text.cpp (TextBlock::Layout): use nan logic for FE:Width here.
16480 * geometry.h, geometry.cpp (class RectangleGeometry): remove
16481 GetRadius logic everything is handled property by the properties
16484 2009-01-08 Jeffrey Stedfast <fejj@novell.com>
16486 * textbox.cpp (TextBox::OnKeyDown): Updated a bit to use the new
16489 * keyboard.cpp (Keyboard::KeyIsChar): Removed.
16490 (Keyboard::KeyToChar): Removed.
16491 (Keyboard::KeyIsMovement): Removed.
16493 * eventargs.cpp (KeyEventArgs::GetModifiers): Renamed from
16494 GetState() to make the purpose clearer.
16495 (KeyEventArgs::IsModifier): New helper method.
16496 (KeyEventArgs::GetKeyVal): New helper method.
16497 (KeyEventArgs::GetUnicode): New helper method.
16499 * textbox.cpp (TextBox::OnPropertyChanged): Get rid of the 'dirty'
16500 state, all places that set dirty=true are now handled by
16501 TextBoxView instead. Only call Invalidate() when appropriate. For
16502 selection state changes, check setvalue state to see if we need to
16504 (TextBox::ClearSelection): New helper method to clear the
16506 (TextBox::OnKeyDown): Properly clear the selection using
16507 ClearSelection() so that the DP values get updated.
16509 2009-01-08 Larry Ewing <lewing@novell.com>
16511 * shape.cpp, shape.h: remove all the GetValueNoDefault logic,
16512 replace it with proper NAN state. Remove MixedWidthAndHeight for
16513 c&p checks that will be removed in the layou code.
16515 * frameworkelement.cpp: more nan cleanup.
16518 * control.cpp: handle nan.
16520 2009-01-08 Alan McGovern <amcgovern@novell.com>
16525 * frameworkelement.cpp:
16526 * dependencyproperty.g.cpp: Add the ability to map a DependencyProperty
16527 to/from native. This removes a hack in Style where DP's used to be
16528 looked up by name, which couldn't be done with properties registered
16529 through C#. Fixes 2 NUnit tests.
16531 2009-01-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
16534 * validators.cpp: Added DoubleGreaterThanZeroValidator.
16536 * mediaelement.h: Use double validator instead of int validator for
16539 * dependencyproperty.g.cpp: Regenerated.
16541 2009-01-08 Alan McGovern <amcgovern@novell.com>
16543 * dependencyobject.cpp: *Warning - Changing default values* When
16544 DO.ClearValue is called, we always return 'NULL' as the new value.
16545 This is incorrect as the pattern: do.ClearValue (property),
16546 do.GetValue (property) will actually return do.GetDefaultValue
16547 (DependencyProperty*). This change fixes a failing assertion in
16548 StyleTest.cs - ModifyAfterBinding.
16550 2009-01-08 Sebastien Pouliot <sebastien@ximian.com>
16552 * cbinding.h|cpp, collection.h, type.h, type-generated.cpp, value.h:
16553 Regenerated for ITEM_COLLECTION
16555 2009-01-08 Alan McGovern <amcgovern@novell.com>
16558 * dependencyobject.h:
16559 * dependencyobject.cpp: Reinstate GetDefaultValue as it was actually
16560 overridden by Inlines
16562 2009-01-07 Larry Ewing <lewing@novell.com>
16564 * frameworkelement.cpp, frameworkelement.h:
16565 move all the various duplicate versions GetTransformOrigin here.
16567 * mediaelement.cpp: fix GetTransformOrigin for new default values.
16569 * shape.cpp, shape.h:
16570 * canvas.cpp, canvas.h:
16571 * media.cpp, media.h:
16572 * shape.cpp, shape.h:
16573 * stackpanel.cpp, stackpanel.h: remove c&p code from all over.
16577 2009-01-07 Geoff Norton <gnorton@novell.com>
16579 * collection.cpp: Ensure that we call any AddWithError overrides
16580 that might exist in a subclass (like TimelineMarkerCollection) as
16581 it could affect the integer returned.
16583 2009-01-07 Geoff Norton <gnorton@novell.com>
16585 * xaml.cpp, file-downloader.cpp: TextStream::Open has been renamed
16586 to TextStream::OpenFile
16587 * utils.h|cpp: Refactor TextStream to read in-memory and file buffers
16588 * downloader.cpp: GetResponseText needs to ensure it returns data in
16589 UTF-8, and doesn't handle zip files.
16591 2009-01-07 Jeffrey Stedfast <fejj@novell.com>
16593 * textbox.cpp (TextBox::OnKeyDown): Added support for keyboard
16594 input a bit. Cutting a lot of corners for now, but oh well.
16595 (TextBoxView::TextBoxView): Hooked up some cursor blinking
16596 action. We don't actually render the cursor yet tho.
16598 * keyboard.cpp (Keyboard): Moved into it's own source file from
16599 eventargs.cpp. I have a sneaking suspicion that this logic will
16600 get large and complicated someday soon.
16602 2009-01-07 Sebastien Pouliot <sebastien@ximian.com>
16604 * dependencyobject.cpp (set_surface): Add null check since the
16605 hashtable can contain Value with a NULL DependencyObject
16607 2009-01-07 Larry Ewing <lewing@novell.com>
16610 * frameworkelement.cpp:
16611 * shape.cpp: Quick hacks to get test 0 passing after the default
16614 2009-01-07 Chris Toshok <toshok@ximian.com>
16616 * textbox.h (class TextBox): add @CallInitialize so we can set the
16619 * control.cpp (Control::OnLoaded): move FrameworkElement::OnLoaded
16620 call to before ApplyTemplate(), as the template isn't applied
16621 until after the Loaded event is fired.
16623 2009-01-07 Geoff Norton <gnorton@novell.com>
16625 * downloader.h|cpp: Work around mozilla bug #444160 by keeping an in
16626 memory cache of all downloads <= 64KB that are streamed in 1 shot.
16628 2009-01-07 Sebastien Pouliot <sebastien@ximian.com>
16630 * contentcontrol.h|cpp: Remove properties that are not in SL2 final
16631 * dependencyproperty.g.cpp: Regenerated.
16633 2009-01-07 Alan McGovern <amcgovern@novell.com>
16638 * dependencyproperty.g.cpp: If C# passes a null cursor to C++, convert
16639 it to the default cursor instead.
16641 2009-01-06 Larry Ewing <lewing@novell.com>
16643 * uielement.h (class UIElement): add a default value to
16644 UIElement::CusorProperty, fixes a crossing event crash.
16646 * uielement.cpp (UIElement::ElementRemoved): remove the element
16647 from the dirty list since it is an orphan now.
16649 * runtime.cpp (Surface::PaintToDrawable): add some logging.
16651 2009-01-06 Jeffrey Stedfast <fejj@novell.com>
16653 * textbox.cpp (TextBox::OnKeyDown): Added some keyboard keypress
16654 callbacks so that we can eventually make TextBox receive keyboard
16655 input. Currently the events never seem to fire, tho.
16657 2009-01-06 Sebastien Pouliot <sebastien@ximian.com>
16659 * enums.h: Add enums values for MouseCursorSize[NS|WE]
16660 * window-gtk.cpp: Display MouseCursorSize[NS|WE] cursors
16662 2009-01-06 Alan McGovern <amcgovern@novell.com>
16664 * frameworkelement.cpp:
16665 * dependencyobject.cpp: Fixes so that StyleTests.NullLocalValue passes
16666 again after my previous commit changing the handling of
16667 GetValue/GetLocalValue.
16669 2009-01-06 Alan McGovern <amcgovern@novell.com>
16673 * dependencyobject.h:
16674 * dependencyobject.cpp: Nuke DO.GetDefaultValue as it just wraps the
16675 DP.GetDefaultValue function. Fixed the implementation of 'null'
16676 Value*. Now a Value* with GetIsNull () == true will be returned as
16677 'NULL' for calls to GetValue or GetValueNoDefault. This makes
16678 Value.GetIsNull opaque to native code so existing null checks will
16679 work as they should. The only function which is aware of GetIsNull is
16680 GetLocalValue, and this correctly handles this case.
16682 2009-01-06 Alan McGovern <amcgovern@novell.com>
16687 * dependencyproperty.g.cpp: Ensure correct exception is thrown when a
16688 null string is passed to PasswordBox.Password. Use correct range
16689 validation for MaxLength.
16691 2009-01-06 Alan McGovern <amcgovern@novell.com>
16693 * frameworkelement.h:
16694 * frameworkelement.cpp:
16695 * dependencyproperty.g.cpp: Default value for FE.Height and FE.Width is
16698 2009-01-06 Alan McGovern <amcgovern@novell.com>
16702 * frameworkelement.cpp: Implement proper validation of Setters and also
16703 correctly implement behaviour of sealed/unsealed styles. They are now
16704 passing all the NUnit tests except for one.
16706 2009-01-05 Chris Toshok <toshok@ximian.com>
16708 * frameworkelement.h, frameworkelement.cpp: remove all reference
16709 to template_namescope.
16711 * template.cpp (ControlTemplate::Apply): remove call to
16712 FrameworkElement::SetTemplateNameScope - just set it as the
16713 namescope on the root of the applied template. This way name
16714 references within the template resolve correctly.
16716 * control.cpp (Control::GetTemplateChild): with the above change,
16717 this just becomes template_root->FindName ()
16719 2009-01-05 Sebastien Pouliot <sebastien@ximian.com>
16721 * runtime.cpp: Add a null check in Surface::FocusElement since both
16722 the C bindings and the MouseLeftButtonDown event can call it with a
16723 NULL value causing a SIGSEGV.
16725 2009-01-05 Jeffrey Stedfast <fejj@novell.com>
16727 * textbox.cpp (TextBox::OnApplyTemplate): Override. Insert a
16728 TextBoxView in the appropriate place.
16730 * control.cpp (Control::GetTemplateChild): Now takes a const
16733 2009-01-05 Alan McGovern <amcgovern@novell.com>
16735 * uielement.h: Cursor shouldn't have a default value in SL2.
16738 * dependencyobject.h:
16739 * dependencyobject.cpp:
16740 * dependencyproperty.g.cpp: DO.Name defaults to String.Empty. Modify
16741 code calling NameScope::[Un]RegisterName to ignore empty names just
16742 like it ignores null names.
16744 2009-01-05 Alan McGovern <amcgovern@novell.com>
16748 * frameworkelement.h:
16749 * frameworkelement.cpp:
16750 * dependencyproperty.h:
16751 * dependencyproperty.cpp:
16752 * dependencyproperty.g.cpp: We need a reference to the current
16753 DependencyProperty so that write-once properties can be properly
16754 validated. Moved validation of StyleProperty from
16755 FrameworkElement.SetValue into the new StyleValidator.
16757 2009-01-05 Alan McGovern <amcgovern@novell.com>
16761 * dependencyobject.cpp:
16762 * dependencyproperty.h:
16763 * dependencyproperty.cpp: When validating the Value we need a reference
16764 to the current DependencyObject as some properties are
16765 write-once/read-only
16767 2009-01-02 Jeffrey Stedfast <fejj@novell.com>
16769 * textbox.cpp (TextBox): No longer maintains a TextLayout nor a
16770 dirty flag. TextBox is basically just a model now. Also added a
16771 ModelChanged event.
16772 (TextBox::Render): Removed.
16773 (TextBox::GetValue): Removed, dunno why it was ever overridden.
16774 (TextBox::OnPropertyChanged): Emit a ModelChangedEvent when the
16775 view needs to be updated.
16776 (TextBoxView): New class that renders the contents of a TextBox
16779 * value.cpp (Value::GetIsNull): Fixed compiler warning.
16781 * pipeline.h (class MediaMarker): dtor needs to be virtual.
16783 2009-01-02 Sebastien Pouliot <sebastien@ximian.com>
16785 * validators.cpp: Remove the printf calls (that won't compile under
16786 SLED10 without changing includes).
16788 2008-12-22 Alan McGovern <amcgovern@novell.com>
16793 * dependencyproperty.g.cpp: Add validators for the Border class
16797 * value.h.in: unused_padding is now used as a bitfield. Currently used
16798 to indicate whether an object is null or not
16800 * frameworkelement.cpp: the styles hashtable only indicates if the
16801 current value comes from a style. It does not show if a dp has been
16802 bound to a style. If the current value is cleared, we need to update
16803 from the style to repopulate the styles hashtable and correctly set
16804 the style value. This can be optimised by passing the current dp to
16807 * dependencyobject.cpp: When do.SetValue (dp, null) is called, correctly
16808 set the null value as opposed to calling do.ClearValue(dp).
16810 2008-12-22 Andreia Gaita <avidigal@novell.com>
16812 * cbinding.h|cpp, type-generated.cpp, type.h, value.h:
16813 Regenerated for DispatcherTimer
16815 * animation.h: Move Completed events to the timeline
16817 * clock.h|cpp: Add DispatcherTimer class, a timeline to drive a
16818 clock whose duration is the timer Interval property. The timeline's
16819 completed event is a tick of the timer, and the clock gets restarted
16821 Save the current time when a clock starts so that clocks that are
16822 set to be started on the next tick with BeginOnTick include the time
16823 between the BeginOnTick call and the actual Begin in their elapsed
16824 time. Also, clocks beneath the time manager root clock now track time
16825 since they were started, and not since the time manager started.
16827 2008-12-20 Larry Ewing <lewing@novell.com>
16829 * mediaelement.cpp (MediaElement::UpdateProgress):
16830 * media.cpp (Image::UpdateProgress): Change the delta from 0.0005
16831 to 0.05 which appears to be what the docs actually say.
16833 2008-12-19 Sebastien Pouliot <sebastien@ximian.com>
16835 * cbinding.cpp|h: Regenerated for read-only DP.
16836 * dependencyproperty.h: Expose IsReadOnly. Add read_only parameter
16837 to RegisterManagedProperty.
16839 2008-12-19 Alan McGovern <amcgovern@novell.com>
16843 * dependencyproperty.g.cpp: Add validation + tests for
16844 Storyboard.TargetNameProperty and TargetPropertyProperty
16846 2008-12-18 Chris Toshok <toshok@ximian.com>
16848 * control.h, text.h, frameworkelement.h, grid.h, mediaelement.h,
16849 textbox.h: decorate properties with @Validator attributes which
16850 the generator uses to generate the proper call to
16851 DependencyProperty::RegisterFull.
16853 * control.h, text.h, frameworkelement.h, grid.h, mediaelement.h,
16854 textbox.cpp: Remove the calls to
16855 DependencyProperty::SetValueValidator. They're generated by the
16856 generator now from our metadata.
16858 * dependencyproperty.cpp, dependencyproperty.h: add new parameter
16859 to RegisterFull prototypes so we can supply a validator at
16862 * dependencyproperty.g.cpp: regen.
16864 2008-12-18 Chris Toshok <toshok@ximian.com>
16866 * validators.cpp, validators.h: move these into a class instead of
16867 static C methods, and don't include C methods into every file. we
16868 were getting warnings every time they went unused, and namespacing
16869 with C++ is better than #including them all over the place.
16871 * grid.cpp, control.cpp, text.cpp, mediaelement.cpp, textbox.cpp,
16872 dependencyproperty.cpp, frameworkelement.cpp: track change above.
16874 2008-12-18 Chris Toshok <toshok@ximian.com>
16876 * xaml.cpp (class XamlElementInstanceManaged): this instance can
16877 be a DependencyObject sometimes. we need an instance field to
16879 (XamlElementInstanceManaged::XamlElementInstanceManaged): when
16880 @obj, set is_dependency_object to true. This fixes setting x:
16881 namescope properties on managed DependencyObject subclasses, as in
16882 '<Button x:Name="foo" />'.
16883 (dependency_object_add_child): remove the template case from here.
16884 it'll be handled differently (being parsed at application time,
16887 2008-12-18 Alan McGovern <amcgovern@novell.com>
16892 * mediaelement.cpp:
16893 * multiscaleimage.h:
16894 * multiscaleimage.cpp:
16895 * frameworkelement.cpp: Add validation to DPs
16897 2008-12-18 Alan McGovern <amcgovern@novell.com>
16899 * mediaelement.cpp: Add validation for NaturalVideoHeight and
16902 2008-12-18 Alan McGovern <amcgovern@novell.com>
16909 * dependencyobject.h:
16910 * frameworkelement.h:
16911 * frameworkelement.cpp:
16912 * dependencyproperty.cpp: Move parameter validation for DP's to use the
16913 new ValueValidator callback.
16915 * validators.h: All validators are defined in this header file so they
16916 can be easily reused for different DPs.
16918 2008-12-18 Alan McGovern <amcgovern@novell.com>
16920 * grid.cpp: Correctly set the validators - forgot to revert changes
16923 2008-12-18 Alan McGovern <amcgovern@novell.com>
16926 * dependencyobject.cpp:
16927 * dependencyproperty.h:
16928 * dependencyproperty.cpp: Add the ability to validate the value for a
16929 DependencyProperty before setting it.
16931 2008-12-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
16933 * text.h, text.cpp: Remove some useless code.
16935 2008-12-16 Alan McGovern <amcgovern@novell.com>
16939 * dependencyproperty.h: If a default value has been set in native code,
16940 propagate that to managed code.
16942 2008-12-15 Chris Toshok <toshok@ximian.com>
16944 * template.cpp (ControlTemplate::Apply): make sure we clear the
16945 toplevel namescope from the template tree. instead we keep a
16946 different namescope around (full of the duplicated elements) which
16947 is populated during DuplicateObject.
16949 2008-12-15 Jeffrey Stedfast <fejj@novell.com>
16951 * xaml.cpp: Macroize the static tables.
16952 (create_binding_expression_from_markup): Got rid of
16953 BindingExtension::path.
16954 (xaml_markup_parse_binding): Update the markup pointer before a
16957 2008-12-15 Jackson Harper <jackson@ximian.com>
16959 * xaml.cpp: fix typo.
16960 - remove sneaky debug
16962 2008-12-15 Jackson Harper <jackson@ximian.com>
16964 * xaml.cpp: Always check if we are in buffering mode. (Otherwise
16965 we'll get cdata content at the end of a template or a namespace
16966 handler during a template).
16968 2008-12-15 Alan McGovern <amcgovern@novell.com>
16971 * dependencyproperty.g.cpp: ShowGridLines is true by default.
16973 2008-12-15 Alan McGovern <amcgovern@novell.com>
16975 * control.cpp: Default foreground brush is black
16977 2008-12-12 Jackson Harper <jackson@ximian.com>
16979 * xaml.cpp: Remove some old code.
16981 2008-12-12 Jackson Harper <jackson@ximian.com>
16983 * xaml.cpp: Still need to call setproperty on non managed
16984 attributes, they could be events.
16986 2008-12-12 Jackson Harper <jackson@ximian.com>
16988 * xaml.cpp: A little cleanup so that we only try setting non-dp
16989 attributes on managed objects. (previously we would try but fail,
16990 so the results are basically the same, just less waste).
16992 2008-12-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
16994 * runtime.h: Make DetachDownloaders public so that the plugin can call
16997 2008-12-12 Alan McGovern <amcgovern@novell.com>
16999 * textbox.cpp: Add bounds checking to SelectionStartProperty too
17001 2008-12-12 Alan McGovern <amcgovern@novell.com>
17004 * textbox.cpp: Add range checking for MaxLengthProperty and
17005 SelectionLengthProperty
17007 2008-12-11 Sebastien Pouliot <sebastien@ximian.com>
17009 * dependencyobject.h: Name setter is public in SL2 final.
17011 2008-12-11 Chris Toshok <toshok@ximian.com>
17013 * control.h, control.cpp: hook up TemplateApplied event.
17015 * type-generated.cpp: regen.
17017 2008-12-11 Chris Toshok <toshok@ximian.com>
17019 * control.h (class Control): generate cbinding/pinvoke for
17022 * cbinding.h, cbinding.cpp: regen.
17024 2008-12-11 Alan McGovern <amcgovern@novell.com>
17026 * textbox.cpp: Unbreak the build.
17028 2008-12-11 Alan McGovern <amcgovern@novell.com>
17030 * textbox.cpp: It should not be possible to set a null value as the
17033 2008-12-11 Alan McGovern <amcgovern@novell.com>
17036 * dependencyproperty.g.cpp: Fix several issues with default values for
17037 TextBox and PasswordBox
17039 2008-12-11 Andreia Gaita <shana@jitted.com>
17041 * cbinding.h|cpp, clock.h: Framerate accessors
17043 2008-12-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
17045 * audio.cpp: Enqueue: don't enqueue anything if we've reached EOF. Also
17046 remove some stale code.
17048 2008-12-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
17050 * mediaplayer.cpp, mediaplayer.h: Added locking to accesses to the
17051 audio field. Added comments/explicit verification in every method
17052 describing which methods must be thread-safe and which aren't.
17054 2008-12-10 Jeffrey Stedfast <fejj@novell.com>
17056 * xaml.cpp (parser_error): Now takes varargs to simplify
17057 things. Fixed all callers to not strdup/g_strdup_printf (and leak)
17058 the message argument.
17059 (create_binding_expression_from_markup): Check that the source is
17060 a DO before casting.
17062 2008-12-10 Alan McGovern <amcgovern@novell.com>
17066 * type-generated.cpp:
17067 * dependencyproperty.g.cpp: PasswordCharProperty should be a char. This
17068 is represented by an int32 in unmanaged code.
17070 2008-12-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
17072 * audio-pulse.cpp: Fix int->enum conversion.
17074 2008-12-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
17076 * audio-pulse.h, audio-pulse.cpp: PulsePlayer: Use enum instead of
17077 random constants for the connected variable.
17079 2008-12-10 Jackson Harper <jackson@ximian.com>
17081 * xaml.cpp: Add a buffering mode to the parser, this mode is used
17082 for templates and simply buffers all the text without doing
17083 any real parsing. So everything between a
17084 <DataTemplate>..</DataTemplate> block is turned into a string.
17086 2008-12-10 Alan McGovern <amcgovern@novell.com>
17089 * textbox.cpp: Implement the SelectAll function and raise an event when
17090 the Password changes
17096 * type-generated.cpp:
17097 * dependencyproperty.g.cpp: Commit the files from the generator.
17099 2008-12-10 Alan McGovern <amcgovern@novell.com>
17101 * textbox.h: Partial implementation of the PasswordBox control
17103 2008-12-09 Chris Toshok <toshok@ximian.com>
17105 * template.h, template.cpp: add DataTemplates.
17107 * cbinding.h, cbinding.cpp, value.h, type.h, type-generated.cpp:
17110 2008-12-09 Jeffrey Stedfast <fejj@novell.com>
17112 * xaml.cpp (create_binding_expression_from_markup): Converter can
17113 also take a StaticResource.
17115 * playlist.cpp: Don't use ctype is*() with a char argument, these
17116 functions are meant to take unsigned char values cast to an
17117 int. Use the g_ascii_is*() functions instead.
17119 * xaml.cpp (create_binding_expression_from_markup):
17120 ConverterParameter can either be a string or a StaticResource. If
17121 it is a StaticResource, lookup the resource object.
17123 * binding.cpp (BindingExpressionBase::SetConverterParameter): Now
17124 takes a Value* since we need to handle either string or
17127 2008-12-09 Jackson Harper <jackson@ximian.com>
17129 * xaml.cpp: Don't use the cpp initializers.
17130 - More consistent naming.
17132 2008-12-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
17134 * audio-pulse.cpp, audio-pulse.h: Improve locking while waiting for
17135 pulseaudio to initialize - keep waiting if we get spurious wakeups.
17137 2008-12-09 Jeffrey Stedfast <fejj@novell.com>
17139 * xaml.cpp (create_binding_expression_from_markup): Lookup the
17140 StaticResource property for Source.
17142 * binding.cpp (BindingExpressionBase::SetSourceName): Removed. No
17144 (BindingExpressionBase::*): No longer do dynamic lookup of the
17147 2008-12-09 Sebastien Pouliot <sebastien@ximian.com>
17149 * usercontrol.cpp|h: Remove @CallInitialize and set IsTabStop to
17150 false in C++ constructor.
17152 2008-12-09 Jeffrey Stedfast <fejj@novell.com>
17154 * xaml.cpp (handle_xaml_markup_extension): Lots more refactoring
17156 (xaml_markup_parse_binding): Fixed to handle
17157 "Source={StaticResource ...}" syntax.
17159 2008-12-08 Sebastien Pouliot <sebastien@ximian.com>
17161 * usercontrol.h: Tag with @CallInitialize since IsTabStop is false
17162 for UserControl while it's true for Control
17164 2008-12-08 Jeffrey Stedfast <fejj@novell.com>
17166 * xaml.cpp: A bit of refactoring...
17168 * binding.cpp (BindingExpressionBase::SetConverterParameter):
17170 (BindingExpressionBase::SetConverterCulture): Same.
17171 (BindingExpressionBase::SetConverter): Same.
17172 (BindingExpressionBase::SetSourceName): Same.
17173 (BindingExpressionBase::AttachListener): Lookup the source by name
17174 if we don't already have it.
17175 (BindingExpressionBase::GetValue): Same.
17176 (BindingExpressionBase::UpdateSource): Same.
17178 * xaml.cpp (binding_expression_from_str): Finished implementing.
17180 2008-12-07 Jeffrey Stedfast <fejj@novell.com>
17184 Patches by Argiris Kirtzidis
17186 * dependencyobject.h: Fix forward declarations of classes declared
17189 * multiscaleimage.cpp (MultiScaleImage::RenderLayer): Use floating
17190 point constant to make sure we get the correct overload in MSVC.
17192 * playlist.cpp (duration_from_asx_str): Same.
17194 * value.cpp (Value::FreeValue): Free corner radius.
17196 2008-12-05 Geoff Norton <gnorton@novell.com>
17198 * audio-pulse.cpp: PulseAudio sometimes gives us errors sync,
17199 and sometimes async. Lets ensure we can actually connect before
17202 2008-12-05 Jeffrey Stedfast <fejj@novell.com>
17204 * runtime.cpp (Surface::FocusElement): Removed #if SL_2_0 check.
17206 * dependencyobject.cpp (DependencyObject::IsValueValid): Removed
17209 * binding.h (class Binding): Added more bool members.
17211 * xaml.cpp (binding_expression_from_str): New method to
17212 parse {Binding} markup syntax into a BindingExpression.
17213 (handle_xaml_markup_extension): Parse Binding markup extensions.
17215 2008-12-05 Chris Toshok <toshok@ximian.com>
17217 * deepzoomimagetilesource.h (class DeepZoomImageTileSource): fix
17218 the GenerateAccessors thing the right way.
17220 * dependencyproperty.g.cpp: regen.
17222 2008-12-05 Jackson Harper <jackson@ximian.com>
17224 * xaml.cpp: Move the markup extension handler out of
17225 set_attributes, ideally each markup extension will get it's own
17226 function eventually.
17228 2008-12-05 Jeffrey Stedfast <fejj@novell.com>
17230 * binding.cpp (Binding::SetPropertyPath): Fixed to take a const
17233 * xaml.cpp: Conditionally define DEBUG, which I guess is a
17234 temporary thing, in a way which will not spew gcc warnings.
17236 2008-12-05 Jackson Harper <jackson@ximian.com>
17238 * xaml.cpp: Let managed code own it's Value pointers.
17240 2008-12-04 Jackson Harper <jackson@ximian.com>
17242 * xaml.cpp: We can store the Value* in the base element instance
17243 now, since they all use a Value.
17245 2008-12-05 Fernando Herrera <fherrera@novell.com>
17248 * playlist.h: Don't check duration at playlist level but let MediaPlayer
17249 handle it. Don't do a delayed element->Play() for repeats because that
17250 can broke js doing "e.Play();e.Stop()"
17252 2008-12-04 Fernando Herrera <fherrera@novell.com>
17254 * playlist.cpp (Playlist::Open): Check duration properly.
17256 2008-12-04 Jeffrey Stedfast <fejj@novell.com>
17258 * binding.cpp: Get rid of excessive use of 'this' keyword.
17260 2008-12-04 Geoff Norton <gnorton@novell.com>
17262 * playlist.cpp: 100ms not 10s should be when we start playing the
17265 2008-12-04 Larry Ewing <lewing@novell.com>
17267 * layout.cpp (RenderLine): do all the filling in one pass rather
17268 than adding a stroke at the end. Tidy up the path creation and
17269 modification logic.
17271 2008-12-04 Jeffrey Stedfast <fejj@novell.com>
17273 We only support vector fonts, so get rid of the TextFont::Render()
17274 API that is only useful as an abstraction over rendering as bitmap
17275 vs pathing. Leave the *Path() APIs which are the only ones
17278 * layout.cpp (RenderLine): Don't bother checking IsScalable(), all
17279 fonts are scalable for now.
17281 * font.cpp (TextFont::RenderGlyphPath): Removed.
17282 (TextFont::Render): Same.
17284 2008-12-04 Sebastien Pouliot <sebastien@ximian.com>
17286 * control.h: Changed my mind and moved DefaultStyleKeyProperty and
17287 IsEnabledProperty to the managed world
17288 * dependencyproperty.g.cpp: regenerated
17290 2008-12-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
17292 * pipeline.cpp: IMediaDemuxer::GetBufferedSize: Only calculate buffered
17293 size using video and audio streams. Fixes #456154.
17295 2008-12-04 Jackson Harper <jackson@ximian.com>
17297 * xaml.cpp: The element instance now has ownership of the Value
17300 2008-12-03 Jackson Harper <jackson@ximian.com>
17302 * xaml.cpp: Cleanup managed namespaces when we shutdown.
17303 - Reduce the number of Value's we are creating. These still aren't
17304 being freed properly, but at least there isn't as many of them.
17306 2008-12-03 Geoff Norton <gnorton at novell.com>
17308 * media.cpp: Ensure we null our reference to the image loader in
17309 all the failure cases to avoid a possible double free/unref.
17311 2008-12-03 Alan McGovern <amcgovern@novell.com>
17314 * frameworkelement.h:
17315 * frameworkelement.cpp: If a Binding has bound to a datacontext, refresh
17316 the binding when the context is altered.
17318 2008-12-03 Alan McGovern <amcgovern@novell.com>
17320 * frameworkelement.h:
17321 * dependencyproperty.g.cpp: DataContext should take 'object'
17323 2008-12-03 Jackson Harper <jackson@ximian.com>
17325 * xaml.cpp: Call setproperty for all the children in the property
17326 block, this is needed because we aren't doing as much magic
17327 collection handling in addchild anymore.
17329 2008-12-02 Sebastien Pouliot <sebastien@ximian.com>
17331 * control.h: Add DefaultStyleKeyProperty and IsEnabledProperty
17332 * dependencyproperty.g.cpp: regenerated
17334 2008-12-02 Jackson Harper <jackson@ximian.com>
17336 * xaml.cpp: Map in enumerations in 2.0. So you can do something
17337 like <Visibility>Collapsed</Visibility>
17338 * enums.h|cpp: Expose a function so we can check if a certain enum
17341 2008-12-02 Jackson Harper <jackson@ximian.com>
17343 * xaml.cpp: We can map in non-DO managed elements now, so check to
17344 make sure it's actually a dependency object.
17345 - Pass NULL for the property name if we weren't able to query for
17346 a content property name. The managed backing might be able to
17347 find a name some other way.
17349 2008-12-02 Jackson Harper <jackson@ximian.com>
17351 * xaml.cpp: Return false if the base content property setter didnt
17354 2008-12-02 Alan McGovern <amcgovern@novell.com>
17358 * dependencyproperty.h:
17359 * dependencyproperty.cpp: Ensure the default value of a CustomDP is
17360 propagated to the unmanaged
17362 2008-12-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
17364 * dependencyobject.cpp: We need to raise changed events when clearing
17366 * cbinding.cpp, cbinding.h: Regenerated.
17368 2008-12-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
17370 * dependencyproperty.h: Added a IsNullable setter (instead of adding
17371 yet another parameter to the Register methods).
17373 2008-12-02 Andreia Gaita <shana@jitted.com>
17375 * Makefile.am, stackpanel.cpp|h: Add StackPanel implementation
17377 2008-12-02 Andreia Gaita <shana@jitted.com>
17379 * panel.cpp: Fix debugging messages
17381 2008-12-01 Larry Ewing <lewing@novell.com>
17383 * brush.cpp, brush.h: add Fill and Stroke methods to brush so that
17384 we can handle image and video brush opacity properly.
17390 * src/text.cpp: use the new Fill and Stroke methods when using
17391 brushes. Fixes test-imagebrush-opacity* when the masters are
17394 2008-12-01 Chris Toshok <toshok@ximian.com>
17396 * frameworkelement.h: add decl for ClearBindingExpression.
17398 * frameworkelement.cpp (FrameworkElement::ClearBindingExpression):
17399 factor out the 2 operations (Detach + hash_remove) here since
17400 we'll be calling it in a couple places.
17401 (binding_destroy): this should delete value, not call ValueFree.
17402 (FrameworkElement::SetBindingExpression): call
17403 ClearBindingExpression if there's a current one, and don't ref the
17404 expression. Value will hold one.
17405 (FrameworkElement::ClearValue): a couple of changes.
17407 1. Call ClearBindingExpression instead of just removing the
17408 binding from the hash (and not detaching it...)
17410 2. don't remove the style value from the style has.
17412 3. instead of looping over all the setters in the style just set
17413 the value back to the value in the styles hash.
17415 4. if we're going to be resetting the value to the style, don't
17416 notify listeners in UIElement::ClearValue. it'll happen in
17419 2008-12-01 Geoff Norton <gnorton@novell.com>
17421 * audio.cpp: Fix a logic error that prevented falling back to alsa when
17422 built with both pulse and alsa support.
17426 2008-12-01 Chris Toshok <toshok@ximian.com>
17428 * template.cpp, template.h: when copying the tree over, register
17429 the template element names to their instantiated counterparts.
17430 and build up a NameScope object as we go.
17432 * frameworkelement.cpp: add a "template_namescope" which maps
17433 names that were registered in the template itself to elements in
17434 the instantiated visual tree.
17436 * control.cpp (Control::GetTemplateChild): look the child up in
17437 the template namescope, not against the visual tree.
17439 2008-12-01 Jackson Harper <jackson@ximian.com>
17441 * xaml.cpp: Value types can not have properties set on them.
17443 2008-12-01 Fernando Herrera <fherrera@novell.com>
17445 * mediaelement.cpp:
17449 * playlist.h: Implement Server side playlists. Still missing duration based
17452 2008-12-01 Alan McGovern <amcgovern@novell.com>
17454 * border.h: ChildProperty should not be exposed
17456 2008-12-01 Alan McGovern <amcgovern@novell.com>
17458 * frameworkelement.cpp: If a null value is being set to a DP when using
17459 databinding, clear the value instead. Makes test pass. (left this out
17460 of the last commit)
17462 2008-11-28 Alan McGovern <amcgovern@novell.com>
17468 * frameworkelement.cpp: DataBinding now works for one-way, one-time and
17469 two-way bindings with managed objects.
17471 2008-11-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
17473 * audio.cpp: Remove a print_stack_trace.
17475 2008-11-27 Andreia Gaita <shana@jitted.com>
17477 * runtime.cpp: enable debug #if that was disabling the D key.
17479 2008-11-27 Alan McGovern <amcgovern@novell.com>
17481 * frameworkelement.cpp: Fix some build breakage under the SL1 profile.
17483 2008-11-27 Alan McGovern <amcgovern@novell.com>
17489 * frameworkelement.cpp: Allow the Binding class to be mapped between
17490 managed and unmanaged code.
17492 2008-11-26 Larry Ewing <lewing@novell.com>
17494 * shape.cpp (Shape::IsCandidateForCaching): add more logic to
17495 avoid the cache in special cases.
17497 2008-11-26 Jackson Harper <jackson@ximian.com>
17499 * xaml.cpp|h: clean up the managed/plugin interface, use Values
17500 for most things instead of expected DependencyObjects.
17501 * deepzoomimagetilesource.h|cpp: Add the uri property and a public
17502 constructor so we can parse these from attributes.
17504 * dependencyproperty.g.cpp: regen
17506 2008-11-26 Alan McGovern <amcgovern@novell.com>
17508 * frameworkelement.cpp: Store a Value * rather than
17509 BindingExpressionBase in the bindings hashtable to allow
17510 GetLocalValue to work.
17512 2008-11-26 Alan McGovern <amcgovern@novell.com>
17514 * frameworkelement.h:
17515 * dependencyobject.h:
17516 * frameworkelement.cpp: Styles are now used/ignored correctly when local
17517 values are set/unset. Added tests for this.
17519 * dependencyobject.cpp: GetLocalValueWithError should call GetLocalValue
17521 * shape.cpp: args->new_value will be null if DO.ClearValue has been
17522 called. In this case use DP.DefaultValue
17524 2008-11-26 Alan McGovern <amcgovern@novell.com>
17530 * frameworkelement.h:
17531 * dependencyobject.h:
17532 * frameworkelement.cpp:
17533 * dependencyobject.cpp: Implement a basic ReadLocalValue equivalent for
17534 unmanaged code. Only handles databindings.
17536 2008-11-26 Alan McGovern <amcgovern@novell.com>
17542 * frameworkelement.cpp: Rename the members of BidningExpressionBase to
17543 better reflect their actual usage.
17545 2008-11-26 Alan McGovern <amcgovern@novell.com>
17550 * collection.cpp: InsertWithError should return a bool to match Insert
17553 * media.cpp: Fix regression introduced in r119963 when changing which
17554 collection functions were virtual
17556 2008-11-25 Larry Ewing <lewing@novell.com>
17558 * uielement.cpp (UIElement::FrontToBack): enable ftb on 90 degress
17561 * media.cpp (Image::GetCoverageBounds): be slightly smarter about
17562 computing coverage.
17564 2008-11-25 Geoff Norton <gnorton@novell.com>
17566 * cbinding.(cpp|h): Regenerate
17567 * downloader.h: Expose the status code and status text to the
17568 DownloaderResponse object.
17570 2008-11-25 Alan McGovern <amcgovern@novell.com>
17578 * dependencyproperty.g.cpp: Added full support for sealing styles.
17580 2008-11-25 Stephane Delcroix <sdelcroix@novell.com>
17582 * multiscaleimage.h: element_to_logical_point
17584 2008-11-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
17586 * cbinding.cpp, cbinding.h: Regenerated.
17588 2008-11-24 Larry Ewing <lewing@novell.com>
17590 * media.cpp (MediaBase::SetSource): only queue a tick if we need
17591 to, fixes regression on mediaelement downloaders.
17595 2008-11-24 Larry Ewing <lewing@novell.com>
17597 * mediaelement.cpp (MediaElement::GetCoverageBounds): be more
17598 precise about the coverage bounds. Use the coveragebounds when
17599 invalidating based on position so that we don't invalidate a lot
17600 more area than we need to. Only use CAIRO_FILTER_FAST when
17601 playing use the default when in other states.
17603 2008-11-24 Geoff Norton <gnorton@novell.com>
17605 * media.cpp: If we do a SetSource on a image element with a
17606 completed downloader, short circuit the async call, as the downloader
17607 theoretically can be immediately reused in javascript after the call.
17608 Also remove the internal completed event after its been fired, for the
17609 same reason (downloader reuse). Fixes halo3
17613 2008-11-24 Larry Ewing <lewing@novell.com>
17615 * media.cpp, media.h: hide USE_OPT_RGB24 inside MOON_FORMAT_* use
17616 them where appropriate.
17618 * mediaplayer.cpp: use MOON_FORMAT_RGB.
17620 2008-11-24 Larry Ewing <lewing@novell.com>
17622 * brush.cpp, brush.h: add IsAnimating member to indicate if the
17623 brush is expected to change each render tick.
17625 * shape.cpp: don't cache animating brushes.
17627 2008-11-22 Jeffrey Stedfast <fejj@novell.com>
17629 * frameworkelement.cpp (FrameworkElement::SetBindingExpression):
17630 Set the destination element and property on the binding expression
17631 so that we can easily get at them in the callback when the source
17632 property changes. Instead of passing 'this' as the user_data
17633 argument to the property change handler, pass the expression.
17634 (FrameworkElement::BoundPropertyChanged): No longer need to
17635 iterate thru the hash table, we now are able to get all the info
17636 we need from the binding expression.
17637 (FrameworkElement::bound_property_changed): Updated.
17639 2008-11-21 Jeffrey Stedfast <fejj@novell.com>
17641 * frameworkelement.cpp (FrameworkElement::BoundPropertyChanged):
17642 Implemented properly (I think/hope).
17644 2008-11-21 Jeffrey Stedfast <fejj@novell.com>
17646 * binding.cpp (BindingExpressionBase::AttachListener): Now takes a
17647 callback and user data.
17648 (BindingExpressionBase::DetachListener): Now takes a callback.
17650 * frameworkelement.cpp (FrameworkElement::BoundPropertyChanged):
17651 Moved here from binding.cpp.
17652 (FrameworkElement::SetBindingExpression): Made protected instead
17654 (FrameworkElement::GetBindingExpression): Same.
17656 2008-11-21 Jeffrey Stedfast <fejj@novell.com>
17658 * frameworkelement.cpp: Fixed to build w/o SL2 support.
17660 2008-11-21 Larry Ewing <lewing@novell.com>
17662 * brush.cpp (VideoBrush::SetupBrush): make sure we use the fast
17663 filter in videobrush when scaling.
17667 2008-11-21 Jeffrey Stedfast <fejj@novell.com>
17669 * binding.cpp (changed_cb): Implemented... but it's
17670 wrong. Committing anyay with a big FIXME explaining why it's
17673 * frameworkelement.cpp (FrameworkElement::SetBindingExpression):
17674 New method to set a binding expression for a property.
17675 (FrameworkElement::GetBindingExpression): Get the binding
17676 expression for a property.
17677 (FrameworkElement::SetValueWithErrorImpl): Cleaned up the binding
17678 stuff to make the logic a bit clearer.
17680 2008-11-21 Jeffrey Stedfast <fejj@novell.com>
17682 * binding.cpp (BindingExpressionBase::AttachListener): We want to
17683 use AddPropertyChangeHandler(), not AddPropertyChangeListener() -
17684 we want to provide our own callback, not re-use
17685 OnSubPropertyChanged() for a purpose it wasn't meant for.
17687 * frameworkelement.cpp (FrameworkElement::OnSubPropertyChanged):
17688 #if 0'd out, we might not need this afterall.
17690 * panel.cpp (Panel::OnSubPropertyChanged): Reverted back to only
17691 chaining up if the property change wasn't handled.
17693 * text.cpp (Inline::OnSubPropertyChanged): Same.
17694 (TextBlock::OnSubPropertyChanged): Same.
17695 (Glyphs::OnSubPropertyChanged): Same.
17697 2008-11-21 Larry Ewing <lewing@novell.com>
17699 * shape.cpp: disable custom layout code as it seems to have
17700 changed in 2.0 final.
17702 2008-11-21 Alan McGovern <amcgovern@novell.com>
17704 * frameworkelement.cpp: If a style is already set, you cannot set it
17707 2008-11-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
17709 * value.cpp, value.h, value.h.in: Added a npobj field and Value ctor to
17710 create such a Value.
17712 2008-11-21 Alan McGovern <amcgovern@novell.com>
17714 * frameworkelement.cpp: Implement initial support for using a Style when
17717 2008-11-20 Jeffrey Stedfast <fejj@novell.com>
17719 * text.cpp (Inline::OnSubPropertyChanged): Always chain up.
17720 (TextBlock::OnSubPropertyChanged): Always chain up.
17721 (Glyphs::OnSubPropertyChanged): Always chain up.
17723 * geometry.cpp (Geometry::OnSubPropertyChanged): Always chain up.
17725 * brush.cpp (Brush::OnSubPropertyChanged): Always chain up.
17727 * panel.cpp (Panel::OnSubPropertyChanged): Always chain up.
17729 * binding.cpp (BindingExpressionBase::GetValue): Implemented, but
17730 might not be correct.
17732 * frameworkelement.cpp (FrameworkElement::OnSubPropertyChanged):
17735 2008-11-20 Jeffrey Stedfast <fejj@novell.com>
17737 * binding.cpp (BindingExpressionBase::AttachListener): Now takes
17738 an FE argument as the listener.
17739 (BindingExpressionBase::DetachListener): Same.
17741 * frameworkelement.cpp (FrameworkElement::SetValueWithErrorImpl):
17744 2008-11-20 Alan McGovern <amcgovern@novell.com>
17749 * frameworkelement.cpp: Add more support code for databinding.
17751 2008-11-19 Geoff Norton <gnorton@novell.com>
17753 * audio.cpp: If we fail to initialize pulseaudio, lets try alsa before
17754 giving up on media entirely.
17758 2008-11-19 Jeffrey Stedfast <fejj@novell.com>
17760 Note: the way this is abstracted will probably go thru several
17761 iterations of change.
17763 * frameworkelement.cpp (FrameworkElement::SetValueWithErrorImpl):
17764 Do special handling if setting a binding expression or if the
17765 value is replacing a binding expression.
17767 * dependencyobject.cpp (DependencyObject::IsValueValid): Made
17768 protected, no reason for this to be public.
17769 (DependencyObject::SetValueWithErrorImpl): New virtual method, has
17770 all the code logic of the old SetValueWithError().
17771 (DependencyObject::SetValueWithError): Call IsValueValid() and
17772 then SetValueWithErrorImpl().
17774 2008-11-19 Jeffrey Stedfast <fejj@novell.com>
17776 * frameworkelement.cpp (FrameworkElement::IsValueValid):
17777 Overridden so that we can check if the Value is a
17778 BindingExpression. All DependencyProperties of FrameworkElements
17781 2008-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
17783 * mediaplayer.h, mediaplayer.cpp: Make MediaPlayer use MediaElement's
17784 Rendered/DroppedFramesPerSecond DP.
17785 * pipeline.cpp: Fix warning.
17787 2008-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
17789 * dependencyproperty.g.cpp: Regenerated.
17790 * grid.h: ColumnDefinitionCollection doesn't have a public ctor.
17791 * mediaelement.h: Add RenderedFramesPerSecond, DownloadProgressOffset
17792 and DroppedFramesPerSecond.
17794 2008-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
17796 * cbinding.cpp, cbinding.h, dependencyproperty.g.cpp, text.h, type.h,
17797 type-generated.cpp, value.h: Added InputMethod.
17799 2008-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
17801 * geometry.cpp: Fix breakage in r119300.
17803 2008-11-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
17805 * dependencyproperty.g.cpp, transform.h: Corcompare.
17806 * geometry.h: Move FillRule from Geometry to
17807 PathGeometry/GeometryGroup.
17809 2008-11-18 Jeffrey Stedfast <fejj@novell.com>
17811 * expression.h, binding.cpp|h: added to the build
17813 2008-11-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
17815 * animation2.h, dependencyproperty.g.cpp: Corcompare fixes.
17817 2008-11-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
17819 * uielement.h: Define UseLayoutRounding accessors to unbreak build.
17821 2008-11-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
17823 * dependencyproperty.g.cpp, frameworkelement.h, style.h, trigger.h,
17824 uielement.h: More corcompare work.
17826 2008-11-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
17828 * cbinding.cpp, cbinding.h, trigger.h, type.h, type-generated.cpp,
17829 value.h: Add TriggerBase, make EventTrigger inherit from it and
17832 2008-11-17 Jeffrey Stedfast <fejj@novell.com>
17834 * enums.cpp (initialize_enums): Map BindingMode in unmanaged land.
17836 2008-11-17 Michael Dominic K. <mdk@mdk.am>
17838 * clock.cpp: Fixing seek-test-multiple-repeat.html (a problem with multiple
17839 repeats when seeking anims with RepeatBehavior >= 2.0).
17841 2008-11-17 Michael Dominic K. <mdk@mdk.am>
17843 * clock.cpp: When running without idle hint (runtime init) do not apply it
17844 here. Makes the idle hint switch actually do something and makes debugging
17847 2008-11-14 Michael Dominic K. <mdk@mdk.am>
17850 * animation.h: The KeySpline quadratics used to generate interpolation
17851 values are generated dynamically = faster and less mem.
17853 2008-11-14 Michael Dominic K. <mdk@mdk.am>
17856 * animation.h: Slightly more nice value caching.
17858 2008-11-14 Geoff Norton <gnorton@novell.com>
17861 * codec-url.h: Update to the final URLs for beta 1
17865 2008-11-14 Geoff Norton <gnorton@novell.com>
17867 * pipeline-ui.(cpp|h): Rework the pipeline for codec installation to
17868 handle the pango markup we're using.
17872 2008-11-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
17874 * mediaelement.cpp: SetMedia: when getting the playlist for an
17875 asxdemuxer, set the media for it. Fixes a memory leak (the media
17876 should get disposed with the playlist gets disposed).
17877 * pipeline.cpp, pipeline.h: Implement ASXDemuxer::Dispose.
17878 * playlist.cpp, playlist.h: Implement Playlist[Entry]::GetTypeName, and
17879 add a parameter to PlaylistEntry::SetMedia to specify whether the
17880 entry should start playing the media or not.
17882 2008-11-13 Sebastien Pouliot <sebastien@ximian.com>
17884 * runtime.cpp (running_on_nvidia): Fix leak of Display
17887 2008-11-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
17889 * mediaelement.cpp: MediaElement::Play: we want to queue a PlayNow
17890 request even if we're currently playing, there might be a PauseNow
17891 request already queued.
17893 2008-11-11 Sebastien Pouliot <sebastien@ximian.com>
17895 * pipeline-asp.cpp: Fix case where get_audio_data returns NULL
17898 2008-11-11 Geoff Norton <gnorton@novell.com>
17900 * Makefile.am: Only build the appropriate pipeline-ui based on wether
17901 we're building on a os/arch combo that supports the SMP.
17902 * codec-url.h: Set the appropriate CODEC_URL for our target platform
17903 * pipline-nocodec-ui.(cpp|h): New UI for unsupported OS/Arch targets
17904 of the codec install pipeline.
17906 2008-11-11 Geoff Norton <gnorton@novell.com>
17908 * debug.h: Its unlikely that debug flags will be set.
17912 2008-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
17914 * pipeline.cpp: IMediaStream::Dispose: delete our queue of frames.
17915 Plugs a memory leak.
17917 2008-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
17919 * playlist.cpp: Playlist::Dispose: dispose all the items in our entries
17922 2008-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
17924 * pipeline.cpp, pipeline.h: Plug a memory leak.
17926 2008-11-10 Geoff Norton <gnorton@novell.com>
17928 * runtime.cpp: Do not enable debug features by default, and remove a
17929 superflous warning.
17932 2008-11-10 Geoff Norton <gnorton@novell.com>
17934 * runtime.cpp: Force NVIDIA binary driver to go to the image backend
17935 to work around serious performance problems when we use accelerated
17939 2008-11-10 Chris Toshok <toshok@ximian.com>
17941 * runtime.cpp (copy_input_list_from_node): rename
17942 copy_input_list_with_visibility_check to this method. the
17943 caller (HandleMouseEvent) already walks over the list to determine
17944 if an element has total render or hittest visibility == false. By
17945 definition, everything before that in the input list (the input
17946 list is ordered from most deeply nested to the root) also has
17947 those == false, so we can short circuit things by traversing from
17948 the tail of the list, and then only copying the nodes we've seen
17949 before (but which come after) the offending one.
17951 2008-11-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
17953 * mediaplayer.cpp, mediaelement.cpp, playlist.cpp, playlist.h,
17954 pipeline.cpp: Instead of calling Media::Dispose in MediaElement,
17955 move that to Playlist(Entry) and Dispose of the playlist instead.
17956 This makes re-playing already played content in playlists work
17959 2008-11-10 Michael Dominic K. <mdk@mdk.am>
17962 * animation.h: Cache some vals internally in *Animation for better
17963 performance in loop-called routines.
17965 2008-11-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
17967 * audio.cpp, audio.h, mediaelement.cpp, mediaplayer.cpp, mediaplayer.h:
17968 Implement MediaElement.AudioStreamIndex.
17970 2008-11-07 Michael Dominic K. <mdk@mdk.am>
17972 * clock.cpp: Fixing one broken block in the AnimationMatrix2 test.
17973 It was broken but diff was too small to be picked by the test runner.
17975 2008-11-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
17977 * pipeline-ffmpeg.cpp: FfmpegDecoder::DecodeFrame: for audio packets we
17978 need to keep decoding until the entire input has been consumed.
17980 2008-11-06 Geoff Norton <gnorton@novell.com>
17982 * pipline(-ui).cpp: Move the codec location on more time.
17985 2008-11-05 Michael Dominic K. <mdk@mdk.am>
17988 * animation.h: Fixing one more mem-leak case. Fixes #436068.
17990 2008-11-06 Stephane Delcroix <sdelcroix@novell.com>
17992 * downloader.h: change the signature of downloaderRequestFinishedHandler
17993 to pass the resulting uri.
17995 * downloader.cpp: validate the returned uri against redirection policies
17999 2008-11-05 Jeffrey Stedfast <fejj@novell.com>
18001 Patches by Argiris Kirtzidis to fix bug #441687
18003 * audio.cpp: Use g_alloca() to create dynamically sized arrays on
18004 the stack rather than relying on g++ features.
18006 * clock.cpp: Applied MSVC portability patch which implements
18009 2008-11-04 Fernando Herrera <fherrera@novell.com>
18011 * mediaplayer.cpp: Add logging information about selected streams
18014 2008-11-03 Jeffrey Stedfast <fejj@novell.com>
18016 See tests/xaml/test-textblock-actualheight.html and
18017 test-textblock-hittest.html as compared with Microsoft
18020 * layout.cpp (TextLayout::Layout*): trailing LineBreak elements
18021 actually do count toward ActualHeight metrics.
18023 2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
18025 * audio-pulse.cpp: OnContextStateChanged: always print an error message
18026 if we fail to connect to pa daemon.
18028 2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
18030 * mediaelement.h, mediaelement.cpp: Add a MissingCodecs flag and don't
18031 invalidate when that flag is set.
18033 2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
18035 * runtime.cpp: get_flags: take the default flags as an argument, this
18036 way the environment variables can disable flags which are enabled
18039 2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
18041 * pipeline-ui.cpp, runtime.h, runtime.cpp, pipeline.cpp: Only enable ms
18042 codecs by default for browsers.
18044 2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
18046 * mediaplayer.cpp: FrameCallback: If the frame couldn't be retrieved
18047 because of a buffer underflow and we're waiting for the initial
18048 frame, enqueue a request for another frame. Fixes #440317.
18050 2008-11-03 Larry Ewing <lewing@novell.com>
18052 * rect.h (struct Rect): clamp the intersection w/h to 0 fixes some
18053 extreme exposure issues in popfly.
18055 2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
18057 * runtime.h: Remove #include <config.h> from headers
18059 2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
18061 * mp3.h, mp3.cpp: Mp3FrameReader::TryReadFrame: if we don't succeed in
18062 reading a header, try to sync to one. FindMpegHeader: Return proper
18063 error code (MEDIA_NO_MORE_DATA) if we can't read more data. Fixes
18064 #426440 (slideshow doesn't go beyond the first slide).
18066 2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
18068 * mediaelement.h, mediaelement.cpp: When a AutoPlay=False media is
18069 opened, the final state is Stopped, not Paused. When media finish,
18070 the final state is Paused, not Stopped. Fixes #365827.
18072 2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
18074 * audio-alsa.cpp: Add another dlopened symbol, fixes an unresolved
18075 external reference.
18077 2008-11-03 Fernando Herrera <fherrera@novell.com>
18085 * dependencyobject.cpp:
18088 * http-streaming.cpp:
18091 * mediaelement.cpp:
18093 * mms-downloader.cpp:
18094 * pipeline-asf.cpp:
18095 * pipeline-ffmpeg.cpp:
18104 * yuv-converter.cpp: Change debug macros to runtime conditionals based
18105 on MOONLIGHT_DEBUG env variable of compile time. Checks are only
18106 enabled if configured with --with-debug=yes option.
18108 2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
18110 * debug.cpp: Don't dlopen mono, just link with it if -with-debug is
18113 2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
18115 * pipeline-ffmpeg.cpp: Revert r117547 and related.
18117 2008-11-02 Chris Toshok <toshok@ximian.com>
18119 * text.cpp (TextBlock::InsideObject): textblocks are hit only in
18120 their ActualWidth/ActualHeight, not in the full bounding
18121 rectangle. Fixes bug #434258.
18123 2008-10-31 Chris Toshok <toshok@ximian.com>
18125 * runtime.h, runtime.cpp: remove transparency from properties of
18127 (Surface::PaintToDrawable): add a @transparent argument to this
18130 * window-gtk.cpp (MoonWindowGtk::expose_event): pass the window's
18131 transparency to Surface::PaintToDrawable.
18133 * window.h: move the idea of transparency here from Surface.
18135 2008-10-31 Jeffrey Stedfast <fejj@novell.com>
18137 Portability patch by Argiris Kirtzidis.
18139 * *.cpp: s/#if false/#if 0/g and s/#if true/#if 1/g
18141 * xaml.cpp (start_element): strchr() returns const.
18142 (repeat_behavior_from_str): Same.
18144 2008-10-31 Larry Ewing <lewing@novell.com>
18146 * runtime.cpp (Surface::PaintToDrawable): instead of the content
18147 type check if active_window is fullscreen. This is uglier but the
18148 mozilla hands us rgb drawables not rgba drawables so until we have
18149 a better plan this will solve the problem.
18151 2008-10-31 Larry Ewing <lewing@novell.com>
18153 * runtime.cpp (Surface::PaintToDrawable): only follow the
18154 transparent path if our target supports it.
18156 2008-10-31 Sebastien Pouliot <sebastien@ximian.com>
18158 * pipeline-asp.cpp (ASFDemuxer::ReadHeader): Fix logic when skipping
18159 a bad stream so we dont include NULL holes streams[]
18161 2008-10-31 Michael Dominic K. <mdk@mdk.am>
18163 * runtime.cpp: Reverting for now the recent crossing events
18164 changes -- causes issues with Ink Journal.
18166 2008-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
18168 * pipeline.h, pipeline.cpp: Added IMediaStream::GetMediaTypeName.
18169 * mediaplayer.cpp: Use IMediaStream::GetMediaTypeName instead of
18170 complex ifs on the GetType return value.
18172 2008-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
18174 * debug.cpp: dlopen libmono too for our stack walking methods.
18176 2008-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
18178 * pipeline-ffmpeg.cpp: Don't use ffmpeg version defines which aren't
18179 present in older ffmpeg version (r10885).
18181 2008-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
18183 * pipeline-ffmpeg.cpp: DecodeFrame: free the frame after error
18186 2008-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
18188 * pipeline-ffmpeg.cpp: dlopen ffmpeg.
18190 2008-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
18192 * pipeline.cpp: Fix warning (variable might be used uninitialized).
18194 2008-10-30 Jeffrey Stedfast <fejj@novell.com>
18196 Fix for bug #435815.
18198 * stylus.cpp (StrokeCollection::AddedToCollection): Override so
18199 that we can avoid aborting if a stroke already has a logical
18200 parent (not an error for strokes).
18202 * error.h (MoonError::Clear): New convenience method.
18204 2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
18206 * libmoon.h: Fix build.
18208 2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
18210 * audio.cpp, brush.cpp, cbinding.h, dependencyproperty.g.cpp,
18211 Makefile.am, media.cpp, media.h, mediaelement.cpp, mediaelement.h,
18212 mediaplayer.cpp, mediaplayer.h, pipeline.cpp, type-generated.cpp,
18213 src.mdp, playlist.cpp: Split MediaElement out from media.[cpp|h]
18214 into its own mediaelement.[cpp|h].
18216 2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
18218 * type-generated.cpp, Makefile.am, media.h, mediaplayer.cpp,
18219 mediaplayer.h, mplayer.cpp, mplayer.h, src.mdp: Rename
18220 mplayer.[cpp|h] -> mediaplayer.[cpp|h].
18222 2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
18224 * cbinding.cpp, cbinding.h: Regenerated.
18226 2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
18228 * audio.cpp, audio-pulse.cpp, media.cpp, mms-downloader.h, mp3.cpp,
18229 mplayer.h, pipeline.cpp, pipeline.h, pipeline-asf.cpp,
18230 pipeline-asf.h, src.mdp, xaml.cpp: Move asf related bits from
18231 pipeline.[h|cpp] to pipeline-asf.[h|cpp].
18233 2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
18235 * pipeline.h: IMediaDemuxer: Add Source getter.
18236 * pipeline.cpp: IMediaDemuxer::GetLastAvailablePts: don't take into
18237 account streams which aren't selected. IMediaStream::AppendFrame:
18238 update last available pts with the frame's pts.
18239 * media.cpp: MediaElement::CalculateBufferingProgress: never use last
18240 available pts to calculate buffering progress for streams which can
18241 seek to directly to the requested pts. Fix math to check for
18242 negative values to avoid weird results.
18244 2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
18246 * media.cpp, media.h: MediaElement: fix buffering progress after
18247 seeking regression - don't only use the buffer level in the
18248 pipeline to report buffering progress, but take into accout the
18249 point from where we seek.
18250 * mp3.h, mp3.cpp: Store the AudioStream in the frame reader and update
18251 the stream's LatestAvailablePts field whenever we read a frame.
18252 Also rename the previous 'stream' (IMediaSource*) field to 'source'
18253 to avoid confusion with AudioStream.
18254 * pipeline.cpp, pipeline.h: Add a last_available_pts field to
18255 IMediaStream and the corresponding GetLastAvailablePts to
18256 IMediaDemuxer, enabling the calculation of correct buffering
18257 progress after a seek. This also requires a codec abi version bump.
18259 2008-10-29 Sebastien Pouliot <sebastien@ximian.com>
18261 * clock.h: Change MilliSeconds_[From|To]Pts to use the new
18262 PTS_PER_MILLISECOND define.
18263 * mplayer.cpp: Rework fix on GetTimeoutInterval to avoid a division
18264 resulting in zero (and the endless loop of #439631).
18266 2008-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
18268 * mplayer.cpp: GetTimeoutInterval: Calculate timeout correctly. Fixes
18271 2008-10-28 Jeffrey Stedfast <fejj@novell.com>
18273 * downloader.cpp (scheme_is): Check protocol non-null.
18274 (same_scheme): Same.
18276 * uri.cpp (Uri::Parse): If no protocol is found, init to NULL
18277 instead of file. Also make sure to parse the path in all valid
18280 2008-10-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
18282 * mplayer.cpp: LoadVideoFrame: if target_pts is invalid, set 0 as
18284 * media.cpp: AdvanceFrame: handle cases where position = -1 and don't
18287 2008-10-27 Jeffrey Stedfast <fejj@novell.com>
18289 * uri.cpp (Uri::Parse): Do a bit better than just strchr() for ':'
18290 to parse out the uri scheme.
18292 2008-10-27 Jeffrey Stedfast <fejj@novell.com>
18294 Performance optimization patch for bug #409793
18296 * stylus.cpp (Stroke::AddStylusPointToBounds): Modified to take a
18297 Rect bounds argument so that we can update a bounds of our
18299 (Stroke::ComputeBounds): Updated.
18300 (Stroke::OnCollectionChanged): Update our new 'dirty' bounds.
18301 (Stroke::OnCollectionItemChanged): Same.
18302 (InkPresenter::PostRender): Reset stroke dirty regions.
18303 (InkPresenter::OnCollectionItemChanged): Invalidate only the
18304 stroke's dirty region.
18306 2008-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
18308 * media.cpp: TryOpen: Don't try to open anything if downloaded_file is
18311 2008-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
18313 * mplayer.cpp: LoadVideoFrame: Don't check if buflen = 0, makes things
18315 * pipeline-ffmpeg.cpp, pipeline-ffmpeg.h: CleanState: Properly clean
18316 up/reset codec. DecodeFrame: ffmpeg might delay output one frame,
18317 i.e. the decoder output is the input of the previous time we called
18318 avcodec_decode_video, so keep track of pts from previous frame and
18319 properly set pts of the decoded frame.
18321 2008-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
18323 * mplayer.cpp: LoadVideoFrame: show the frame if the end pts of the
18324 frame is above the target pts (previously we only showed the frame
18325 if the start pts was above the target pts, causing us to show one
18326 frame too late). Fixes test-asf-demuxer-shuffled-payloads.html.
18328 2008-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
18330 * media.cpp: MediaElement::Play: Call Play when in Opening state too.
18332 2008-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
18334 * mplayer.cpp: AdvanceFrame/GetCurrentPts: if the audio isn't playing
18335 we should just work as if there's no audio at all. The video might
18336 play after the audio has stopped if the a/v streams have different
18339 2008-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
18341 * pipeline.cpp: Media::ClearQueue: delete the list nodes with the
18342 queue_mutex unlocked, since the node dtor may cause unrefs, causing
18343 other dtors to be called, and it may all end up in Media::Dispose
18344 which will then try to lock the mutex again (and deadlock).
18346 2008-10-24 Jeffrey Stedfast <fejj@novell.com>
18348 * font.cpp (style_info_parse): Tokenize the style string so that
18349 the individual sub-parsers can be a bit smarter than than
18351 (style_width_parse): Made smarter - now handles lwsp between
18352 multi-word width specifiers (or no lwsp at all).
18353 (style_weight_parse): Same.
18355 2008-10-23 Larry Ewing <lewing@novell.com>
18357 * media.cpp: remove compute bounds since it mirrors
18358 FrameworkElement now.
18360 2008-10-23 Larry Ewing <lewing@novell.com>
18362 * shape.cpp, shape.h: remove origin fixup GetOriginPoint and
18365 2008-10-23 Jeffrey Stedfast <fejj@novell.com>
18367 * textbox.cpp (TextBox::Paint): Updated.
18369 * text.cpp (TextBlock::Paint): Updated.
18371 * layout.cpp (TextLayout::Render): Swapped origin & offset
18372 arguments which feels more natural to me.
18374 2008-10-23 Sebastien Pouliot <sebastien@ximian.com>
18376 * pipeline.cpp: (ASFDemuxer::ReadHeader): Don't allow video height or
18377 width over 2048 pixels since this is likely to be corrupted values.
18378 * pipeline.h: Define MAX_VIDEO_[HEIGHT|WIDTH] to 2048 (I'm sure that
18379 someday people will laugh at me for proposing such a small value)
18381 2008-10-23 Larry Ewing <lewing@novell.com>
18383 * layout.cpp, layout.h: Change the Render api to drop the uielement argument.
18386 * text.cpp: call layout with the new arguments.
18388 2008-10-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
18390 * mplayer.cpp: Pause: Don't set the SeekSynched flag. This would cause
18391 fast-forwarding video when seeking to a position which hadn't been
18392 downloaded (since we automatically pause the video then). Fixes
18395 2008-10-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
18397 * mplayer.h, mplayer.cpp: Implement RenderedFramesPerSecond and
18398 DroppedFramesPerSecond. Only in SL 2.0, but very useful for
18401 2008-10-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
18403 * pipeline.h, pipeline.cpp: Increase codec ABI version (IMediaStream
18404 changed size). IMediaStream: Remove msec_per_frame, it's already in
18405 VideoStream. VideoStream: make msec_per_frame be pts_per_frame to
18406 loose less precision.
18407 * mplayer.cpp: Calculate advance frame timeout based on video fps.
18409 2008-10-22 Chris Toshok <toshok@ximian.com>
18411 * runtime.cpp (Surface::HandleUICrossing): disable the crossing
18412 check from r116528 in the case of a windowless plugin (where
18413 event->window == NULL). Also, active_window->GetGdkWindow should
18414 never be trusted to return the actual window - it's use is
18415 strictly to find the screen/monitor for full-screening. In the
18416 windowless case it returns the toplevel netscape window.
18418 2008-10-22 Larry Ewing <lewing@novell.com>
18420 * brush.cpp, brush.h: remove the uielement references from the api
18421 pass the required information as a rect to SetupBrush instead.
18423 * shape.cpp, shape.h:
18429 * broder.cpp: update SetupBrush callers for the new signature.
18431 2008-10-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
18433 * audio.h, audio.cpp: AudioSource: Initialize last_write_pts and
18434 last_current_pts to their max value, to detect when they haven't
18435 been set yet. Properly reinitialize these variables (to their max
18436 values) in Stop, and make GetCurrentPts return G_MAXUINT64 for this
18438 * mplayer.cpp: AdvanceFrame: the audio might return G_MAXUINT64 for
18439 current pts, handle this. Fixes fast-forwarding issue in #435908.
18441 2008-10-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
18443 * mp3.cpp: Mp3Demuxer::SeekInternal: Initialize result so that we don't
18444 use random memory if we don't have a reader.
18446 2008-10-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
18448 * mms-downloader.cpp: Add logging methods.
18450 2008-10-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
18452 * media.cpp: Sprinkle Dispose calls to plug leaks.
18454 2008-10-20 Chris Toshok <toshok@ximian.com>
18456 * pipeline.cpp (Media::RegisterMSCodecs): free libmscodecs_path
18457 before reassigning (and reallocating memory for) it.
18459 * dependencyobject.h, dependencyobject.cpp: add an optional
18460 argument to all the EventObject::AddHandler* overloads, called
18461 data_dtor, which is invoked just before the EventClosure is
18462 destroyed so that the data can be freed.
18464 2008-10-20 Chris Toshok <toshok@ximian.com>
18466 * window-gtk.h, window-gtk.cpp: move the Surface conversion from
18467 MouseCursor -> GtkCursor here.
18469 * runtime.h, runtime.cpp: surface only deals with MouseCursors
18470 anymore. the gtk support is in window-gtk now.
18472 * window.h: remove SetCursor (GdkCursor) and add
18473 SetCursor (MouseCursor), so subclasses of MoonWindow can do their
18476 2008-10-20 Jeffrey Stedfast <fejj@novell.com>
18478 * media.cpp (MediaElement::MediaOpened): If the stream decoder is
18479 null, use null for the decoder_name. Fixes a segfault.
18481 2008-10-20 Sebastien Pouliot <sebastien@ximian.com>
18483 * pipeline.cpp (ASFDemuxer::ReadHeader): Don't count invalid streams
18484 since a lot of loops don't handle NULL values.
18486 2008-10-20 Michael Dominic K. <mdk@mdk.am>
18488 * runtime.cpp: More fixes to crossing events: when entering fullscreen
18489 ignore the crossing events coming from previous window. Otherwise we get
18490 double enter/leave pair.
18492 2008-10-20 Michael Dominic K. <mdk@mdk.am>
18494 * window-gtk.cpp: GetGdkWindow () - handle the fullscreen window case
18495 correctly (no parent window).
18497 2008-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
18499 * debug.h, pipeline.cpp, audio.cpp: #define print_stack_trace to
18500 nothing if not DEBUG is set, removing the need for surrounding all
18501 print_stack_trace calls with #if DEBUG.
18503 2008-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
18505 * pipeline.cpp: Remove debugging code.
18507 2008-10-17 Michael Dominic K. <mdk@mdk.am>
18511 * applier.h: Fixing one more osbcure case of Storyboard transitions where
18512 stopping a prev sboard makes the next one starting from bad base value.
18514 2008-10-17 Michael Dominic K. <mdk@mdk.am>
18516 * runtime.cpp: Make sure we get the new pointer motion notify when
18517 entering/leaving fullscreen. This fixes the fullscreen-enter-leave test
18518 but interestingly doesn't fix the original problem of #434267.
18520 2008-10-17 Sebastien Pouliot <sebastien@ximian.com>
18522 * runtime.cpp (Surface::PaintToDrawable): Don't leak cairo context
18523 when using "backend=image".
18525 2008-10-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
18527 * pipeline.cpp: NullDecoder::OpenVideo: Fix comment (logo is centered
18528 now, not tiled), and fix inner loop, we were including one pixel
18529 too many for width and height.
18531 2008-10-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
18533 * pipeline.cpp: RegisterMSCodecs: if there's no codec in
18534 ~/.mozilla/plugins, use just the filename of the codec library and
18535 make dlopen search for it. This makes it easier to run parallell
18536 tests from different revisions without having the codecs from each
18537 revision overwrite eachother in user's home.
18539 2008-10-16 Geoff Norton <gnorton@novell.com>
18541 * pipeline.cpp: Dont tile our logo, it looks like ass. Lets
18542 center it in the available window instead.
18544 2008-10-16 Geoff Norton <gnorton@novell.com>
18546 * pipeline-ui.cpp: Avoid a resize when realizing which causes an
18547 annoying flicker in the codec window.
18549 2008-10-16 Geoff Norton <gnorton@novell.com>
18551 * pipeline.cpp: Unbreak the world.
18553 2008-10-16 Geoff Norton <gnorton@novell.com>
18555 * pipeline(-ui).cpp: Use the updated mscodec name and location.
18557 2008-10-16 Fernando Herrera <fherrera@novell.com>
18559 * playlist.cpp: Fix a segfault parsing ASX3 malformed files.
18561 2008-10-16 Sebastien Pouliot <sebastien@ximian.com>
18563 * text.cpp (TextBlock::Layout): Delay allocation of List so that we
18564 don't leak when TextBlock::TextProperty is NULL.
18566 2008-10-16 Sebastien Pouliot <sebastien@ximian.com>
18568 * runtime.cpp (Surface::SetCursor): Unref cursors once they are set
18569 on the window. Fix one more leak.
18571 2008-10-16 Jb Evain <jbevain@novell.com>
18573 * collection.cpp: TriggerCollection, UIElementCollection, InlineCollection:
18574 mark managed constructor internal.
18576 2008-10-16 Jb Evain <jbevain@novell.com>
18578 * collection.cpp (RemoveAtWithError): throw an ArgumentOutOfRangeException
18579 instead of an ArgumentException when providing an out of range index.
18581 2008-10-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
18583 * window-gtk.cpp, window.h: Add file header and fix copy-paste error.
18585 2008-10-15 Chris Toshok <toshok@ximian.com>
18587 * runtime.cpp (Surface::HandleUIKeyPress): check to see if the key
18588 is already down, and if so, don't emit another event. (really?
18589 there's a test for this? ugh.). also, let Keyboard know the key
18591 (Surface::HandleUIKeyRelease): let Keyboard know the key is up.
18593 * eventargs.h, eventargs.cpp (class Keyboard): augment Keyboard
18594 quite a bit -- it might soon deserve its own file. It now
18595 maintains a static hashtable of keys that are pressed/released
18596 inside the moonlight plugin, and has logic to map a gdk keyval to
18597 Key, and query if a particular key is pressed.
18599 2008-10-15 Larry Ewing <lewing@novell.com>
18601 * uielement.cpp: fix the transform ordering.
18603 * canvas.cpp, canvas.h: handle the toplevel canvas correctly.
18605 2008-10-15 Larry Ewing <lewing@novell.com>
18607 * uielement.cpp, uielement.h: remove UpdatePosition and
18608 ComputePosition, all transform changes are handled in
18609 ComputeTransform now.
18611 * shape.cpp, shape.h: update for the new transform api.
18613 * dirty.cpp, dirty.h: remove DirtyPostion is it no longer needed.
18615 * canvas.cpp: Use UpdateTransform.
18617 * point.h: add a (lame) == operator.
18619 2008-10-15 Larry Ewing <lewing@novell.com>
18621 * geometry.cpp, geometry.h: add shape bounds caching to all
18622 geometry classes apply the transform when retrieving the bounds.
18623 Make GetBounds the public bounds interface and make the
18624 computation interface protected.
18626 * shape.cpp, uielement.cpp: call use GetBounds not ComputeBounds.
18628 2008-10-14 Larry Ewing <lewing@novell.com>
18630 * geometry.cpp, geometry.h: remove unused arguments to
18631 ComputeBounds remove caching from PathGeometry.
18633 * uielement.cpp, shape.cpp: call with correct arguments.
18635 2008-10-14 Larry Ewing <lewing@novell.com>
18637 * uielement.cpp, uielement.h: make ComputeTransform virtual and
18638 have it return a bool.
18640 * shape.cpp, shape.h: override ComputeTransform and optimize the
18641 bounds computations. Use a general ComputeShapeBounds for actual
18642 drawn bounds compuations for now.
18644 * dirty.cpp (Surface::ProcessDownDirtyElements): add a short
18645 circuit path to DirtyTransform for elements that can recompute
18646 without updating bounds.
18648 2008-10-13 Larry Ewing <lewing@novell.com>
18650 * geometry.cpp, geometry.h: remove unused arguments from function
18653 * uielement.cpp, shape.cpp: update calls.
18655 2008-10-15 Jeffrey Stedfast <fejj@novell.com>
18657 Fix for bug #435798
18659 * text.cpp (TextBlock::TextBlock): Let OnPropertyChanged() know
18660 that we are setting the default brush/inlines.
18661 (TextBlock::Layout): If no Text value has yet been set, use 0.0 as
18664 2008-10-14 Chris Toshok <toshok@ximian.com>
18666 * window-gtk.h, window-gtk.cpp (MoonWindowGtk::GetGdkWindow): ref
18668 (MoonWindowGtk::InitializeFullScreen): unref the return value of
18671 * cbinding.h, cbinding.cpp: regen so we don't have to use void*
18672 for the parent parameter to MoonWindowGtk.
18674 2008-10-14 Sebastien Pouliot <sebastien@ximian.com>
18676 * applier.cpp|h: Add a readonly flag to ensure nothing gets added in
18677 the hashtable while we're flushing it on shutdown. Add a few more
18678 checks and avoid re-creating the hashtable on flush.
18680 2008-10-14 Geoff Norton <gnorton@novell.com>
18682 * pipeline-ffmpeg.cpp: FFMpeg changed the API with version #52, no
18683 longer requiring the bits_per_pixel.
18685 2008-10-14 Stephane Delcroix <sdelcroix@novell.com>
18687 * window.h: GetGdkWindow () method
18689 * window-gtk.h|.cpp: implement GetGdkWindow, new ctor signature
18690 taking the parent window reference. Only go fullscreen on the monitor
18691 moonlight is running on.
18693 * runtime.cpp: call the new MoonWindowGtk ctor
18695 2008-10-14 Fernando Herrera <fherrera@novell.com>
18697 * pipeline-ui.cpp: Override codecs download URL with
18698 MOONLIGHT_CODEC_URL env variable if present.
18700 2008-10-13 Jeffrey Stedfast <fejj@novell.com>
18702 * xaml.cpp (XamlLoader::CreateFromFile): Since we use the nread
18703 variable expecting it to be the value returned from read(), don't
18704 modify it inside the loop, use another variable for that. Before
18705 eating leading whitespace, make sure we have data.
18707 2008-10-13 Fernando Herrera <fherrera@novell.com>
18709 * audio.cpp: Fix AudioSources::GetNext iteration for next playing
18710 source logic. Fixes bug #433267
18712 2008-10-13 Jeffrey Stedfast <fejj@novell.com>
18714 * media.cpp (MediaElement::Play): Don't add a TickCall to start
18715 playing if we haven't even opened the media yet. Fixes bug
18718 2008-10-13 Michael Dominic K. <mdk@mdk.am>
18720 * dependencyproperty.cpp: Fixing a mem leak.
18722 2008-10-13 Michael Dominic K. <mdk@mdk.am>
18724 * animation.cpp: Reverting the whole attaching-to-prev storage in Begin.
18725 This fixes some recent problems in PopFly.
18727 2008-10-10 Jeffrey Stedfast <fejj@novell.com>
18729 * downloader.cpp (validate_policy): Made static so we don't export
18732 2008-10-10 Sebastien Pouliot <sebastien@ximian.com>
18734 * dependencyproperty.cpp (detach_target_func): Fix bad function
18735 signature for GHFunc.
18736 * dependencyobject.cpp (unref_object): Fix bad function signature
18739 2008-10-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
18741 * pipeline.h, pipeline.cpp: Media: Add a BufferingEnabled flag, don't
18742 start buffering until this is set to true (starts out as false).
18743 * media.cpp: Only enable buffering on the media after reading the
18744 markers, otherwise we may loose markers in the beginning of the
18745 media. Fixes test-asf-demuxer-big-markers.html. Also don't add a
18746 tick call to notify the MediaElement that a marker has been added,
18747 always check in AdvanceFrame.
18748 * mplayer.cpp: Add a null check in a printf.
18750 2008-10-10 Larry Ewing <lewing@novell.com>
18752 * media.cpp (Image::DownloaderComplete): handle the case where the
18753 sureface uri and the new uri are the same.
18755 2008-10-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
18757 * pipeline-logo.cpp: New logo.
18759 2008-10-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
18761 * media.cpp: MediaElement::Reinitialize: Dispose the media to break
18763 * mplayer.cpp: AdvanceFrame: don't decode here anymore, we shouldn't
18764 get non-decoded frames anymore. Open: Handle null demuxers,
18765 shouldn't happen, but at least we won't crash if it happens.
18766 * pipeline.cpp, pipeline.h: Media::~Media: move cleanup to Dispose.
18767 Media::Open: unref the decoder after giving it to the stream, the
18768 stream now take a ref on the decoder. Media::EnqueueWork:
18769 queued_requests might be nothing if we're disposed. IMediaStream:
18770 move cleanup to dispose and take a ref on the decoder. Add decoder
18771 getter/setters, and update code to use them.
18773 2008-10-10 Sebastien Pouliot <sebastien@ximian.com>
18775 * applier.cpp: Fix another bad function signatures for GFunc.
18777 2008-10-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
18779 * audio.cpp, pipeline-ffmpeg.cpp, pipeline.h, mplayer.cpp: Remove
18780 FRAME_COPY_DECODED_DATA and always copy decoded data. Fixes video
18781 stuttering when using ffmpeg.
18783 2008-10-09 Jackson Harper <jackson@ximian.com>
18785 * runtime.cpp: The resize event is only emitted when switching
18786 from fullscreen to non fullscreen.
18788 2008-10-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
18790 * pipeline.cpp, pipeline.h: Properly ref/unref MediaMarkers instead of
18793 2008-10-09 Jackson Harper <jackson@ximian.com>
18795 * runtime.cpp: When we change to/from fullscreen there should be a
18798 2008-10-09 Sebastien Pouliot <sebastien@ximian.com>
18800 * media.cpp (Image::CreateSurface): Protect against a NULL
18801 filename (valid value). This will avoid crash like bug #433810
18802 even if, in this case, the problem lies elsewhere (bad downloader
18803 which looks related to #433814).
18805 2008-10-09 Jeffrey Stedfast <fejj@novell.com>
18807 * font.cpp (FontFace::LoadDefaultFace): Pass the families to
18808 LoadDefaultFont() for font name comparison, we need to match the
18809 font names exactly or fall back to the next font.
18811 2008-10-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
18813 * audio.cpp: Add a nullcheck.
18815 2008-10-08 Sebastien Pouliot <sebastien@ximian.com>
18817 * media.cpp (Image::IsSurfaceCached): Don't leak (actually
18820 2008-10-08 Jeffrey Stedfast <fejj@novell.com>
18822 * font.cpp: Add fallback for Liberation fonts.
18824 * pipeline.cpp (Media::Warning): Replacement for both
18825 Media::AddMessage() methods.
18827 2008-10-08 Sebastien Pouliot <sebastien@ximian.com>
18829 * applier.cpp: Fix function signatures for GFunc and GHFunc.
18830 Fix random crash when closing silverlight world #433461
18832 2008-10-08 Larry Ewing <lewing@novell.com>
18833 * window-gtk.cpp (MoonWindowGtk::realized): make sure we remove
18834 any existing render_cb attachments before adding new ones in case
18835 our realize wordering is out of sync.
18837 Fixes the rest of b.n.c #432975
18839 2008-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
18841 * mp3.cpp: Fix boolean->MediaResult logic.
18843 2008-10-08 Jackson Harper <jackson@ximian.com>
18845 * playlist.cpp|h: When we encounter invalid characters in an
18846 attribute try to patch them and reparse the document.
18848 2008-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
18850 * mp3.h, mp3.cpp: Fix mpeg_frame_duration to use the static array of
18851 block sizes instead of hard-coded almost-matching values. Make
18852 mpeg_frame_length return a floating point value, and in ReadHeader
18853 calculate total duration using floating point. Fixes
18854 test-mp3-media-properties.html
18856 2008-10-08 Stephane Delcroix <stephane@delcroix.org>
18858 * runtime.cpp: CAIRO_VERSION_XXX symbols no longer available in cairo
18859 1.8.0, changing the error msg.
18861 2008-10-08 Sebastien Pouliot <sebastien@ximian.com>
18863 * xaml.cpp (XamlElementInstanceNative::SetProperty): Avoid SIGSEGV
18864 on bad XAML input when no (NULL) dependecy property is returned.
18866 2008-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
18868 * pipeline.h, pipeline.cpp: Add a marker field to MediaFrame and make
18869 MediaMarker refcounted. Fix a couple of crashing leakfixes, and
18870 simplify cleanup code a tiny bit.
18872 2008-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
18874 * audio-pulse.h: Remove unused method definition.
18876 2008-10-07 Jeffrey Stedfast <fejj@novell.com>
18878 * animation.cpp (AnimationStorage::AttachToPrevStorage): Delete
18879 the old baseValue before allocating a new one.
18881 * mms-downloader.cpp (MmsDownloader::ProcessHeaderPacket): Need to
18882 delete dx_info when we're done with it. Also get rid of the
18883 unneeded parser pointer since we're just using this->parser
18886 2008-10-07 Sebastien Pouliot <sebastien@ximian.com>
18888 * runtime.cpp (Surface::SetCursor): Don't create the GdkPixmap and
18889 GdkColor unless we need them. Unref the pixmap after the call to
18890 gdk_cursor_new_from_pixmap.
18892 2008-10-06 Jeffrey Stedfast <fejj@novell.com>
18894 * pipeline.h (IMediaStream::dtor): Delete the frame. This prevents
18895 a MediaFrame leak-per-node whenever the queue is cleared.
18897 * pipeline.cpp (ASFMarkerDecoder::DecodeFrame): Free the
18898 frame->bufefr before updating it to point to a new malloc'd
18900 (ASFDemuxer::TryReadFrame): Delete the frame on error.
18901 (IMediaStream::PopFrame): After getting the node's frame, set the
18902 node->frame to NULL.
18904 2008-10-06 Larry Ewing <lewing@novell.com>
18906 * media.cpp, media.h: rework image code to skip using a downloader
18907 when a cached image surface is available. Fix a crash where
18908 multiple loading errors occur for a single image. Rewrite
18909 existing SetSourceAsync ticks when the source changes again before
18910 the initial tick was processed.
18912 The goal here is to greatly reduce the work we do in cases where
18913 existing sources are moved between images. Future work should
18914 consist of moving things to the ImageSource model internally.
18916 2008-10-06 Sebastien Pouliot <sebastien@ximian.com>
18918 * text.cpp (Glyphs::Layout): Handle NULL values coming from
18919 GetGlyphInfo. Avoid crash in DRT #177 (not sure why it did
18920 not come up before today or why it now fails anyway).
18922 2008-10-06 Jeffrey Stedfast <fejj@novell.com>
18924 * brush.cpp (ImageBrush::TargetLoaded): Don't bother with g_atomic
18925 stuff, it's too expensive for what we need.
18926 (ImageBrush::TargetUnloaded): Same.
18928 2008-10-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
18930 * dependencyobject.h, dependencyobject.cpp: Fix SLED10.
18932 2008-10-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
18934 * pipeline.cpp: Reorganize some code.
18936 2008-10-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
18938 * audio.cpp, audio.h: Access the Media directly to enqueue frames,
18939 avoiding the need for a tick call on the main thread. If audio
18940 underflowed and we don't have more data available, set buffer
18941 underflow flag on the media player.
18942 * playlist.cpp, playlist.h: Playlist::Parse: until the source has all
18943 the data available, return MEDIA_NOT_ENOUGH_DATA.
18944 * downloader.cpp, downloader.h: Remove RequestPosition methods, no
18946 * mms-downloader.h, mms-downloader.cpp: Added Set|GetRequestedPts, and
18947 use that value to determine if we should seek or not.
18948 * mplayer.cpp, mplayer.h: Add a BufferUnderflow flag, set when
18949 audio/video needs more data, but the buffer is empty.
18950 * pipeline.cpp, pipeline.h: Media: Change how buffering works: we now
18951 have an in-memory buffer of demuxed frames (one queue for frames
18952 for each stream), and calculate buffer size from that.
18953 ProgressiveSource: open an additional file descriptor for writing,
18954 makes locking unnecessary. Change al io to return failure if there
18955 is not enough data, this allows us to remove all the
18956 blocking/waiting logic. MemoryQueueSource: push seeks to
18957 MmsDownloader, instead of waiting for MmsDownloader to check for
18958 pending seeks. FileSource: don't reinvent the wheel and use stdio
18959 to get buffered io instead of having buffering logic ourselves.
18960 * mp3.h, mp3.cpp: Implemented non-blocking reading to support buffer
18961 underruns correctly.
18962 * media.cpp: MediaElement: Retrieve buffer size from the demuxer
18963 instead of calculating it. Handle MEDIA_NOT_ENOUGH_DATA errors when
18964 trying to open media and retry later on.
18966 2008-10-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
18968 * src.mdp: Updated.
18970 2008-10-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
18972 * dependencyobject.cpp: Use atomic operations with
18973 objects_created|destroyed.
18975 2008-10-02 Chris Toshok <toshok@ximian.com>
18977 * resources.cpp (glib_is_stupid): we need to cast value in order
18980 2008-10-02 Geoff Norton <gnorton@novell.com>
18982 * media.cpp,pipeline-ffmpeg.cpp,yuv-converter.cpp,mplayer.cpp:
18983 Add some headers needed to compile when #undef DEBUG
18985 2008-10-02 Sebastien Pouliot <sebastien@ximian.com>
18987 * xaml.cpp: Fix mixup between delete and g_free
18989 2008-10-02 Sebastien Pouliot <sebastien@ximian.com>
18991 * value.cpp: Fix == for KeyTime (padding too). Add comments and
18992 indent method correctly.
18994 2008-10-02 Jeffrey Stedfast <fejj@novell.com>
18996 * xaml.cpp: Move the definition of XamlElementInfo to the top so
18997 that g++ doesn't complain about deleting an incomplete type inside
18998 the XamlElementInstance dtor. Also gets rid of other g++ compiler
19001 * list.cpp (List::InsertAfter): New convenience function to sort
19002 of balance the API.
19004 * font.cpp (FontFace::Load): Don't ref the default face, it is
19005 returned to us with a ref already.
19007 2008-10-02 Jackson Harper <jackson@ximian.com>
19009 * xaml.cpp: Now that Info's aren't shared, Instance's can free
19010 them. Also properties need to free their name.
19012 2008-10-02 Larry Ewing <lewing@novell.com>
19014 * geometry.cpp (Geometry::OnSubPropertyChanged): move
19015 OnSubPropertChanged to Geometry to pick up transform changes until
19016 a better solution is devised. Fixes updated
19017 test-clip-invalid-update.htm.
19019 2008-10-02 Sebastien Pouliot <sebastien@ximian.com>
19021 * value.cpp: Fix == for Duration and RepeatBehavior. We can't
19022 use memcmp to compare them since they include (unassigned)
19023 padding. Both structs overrides their == operator so we use that.
19025 2008-10-02 Sebastien Pouliot <sebastien@ximian.com>
19027 * resources.cpp: Free the values (not only their content) when
19028 the hash table is destroyed. Correctly (delete) free the value
19029 when compiled against glib < 2.12 (e.g. SLED10).
19031 2008-10-02 Sebastien Pouliot <sebastien@ximian.com>
19033 * geometry.cpp: Remove last patch to GeometryGroup::Draw as this
19034 mess clipping. Add similar fill rule setting code in Geometry::Draw
19035 because Shape::Fill is not called for clipping (but the fill rule
19036 still applies). Comment both so I don't mess with them again :)
19038 2008-10-01 Jeffrey Stedfast <fejj@novell.com>
19040 * font.cpp (FontFace::LoadGlyph): We need to force the font size
19041 if we don't own it, since we don't know what the current size is
19043 (FontFace::Kerning): Same.
19044 (FontFace::GetExtents): Here too.
19046 2008-10-01 Jeffrey Stedfast <fejj@novell.com>
19048 Attempt #2 at fixing bug #430766.
19050 * font.cpp (FontFace::LoadFontFace): Don't load non-scalable fonts
19051 - this helps us do better fallback for bug #430766.
19052 (FontFace::LoadDefaultFace): Do manual fallback of fonts. First
19053 try to use the Microsoft Lucida Sans font if available. If not,
19054 fall back to GNOME's Bitstream Vera Sans font. Then fallback to
19055 DejaVu Sans and finally to X.Org's Luxi Sans font (which doesn't
19056 render many of the glyphs in bug #430766, hence why it is last
19057 choice). If the user doesn't have the X.Org fonts, he's SOL.
19059 2008-10-01 Sebastien Pouliot <sebastien@ximian.com>
19061 * value.h[.in],value.cpp: Fix operator == to work for non-DO and
19062 non-string values. This fix the issue of removing stuff from a
19063 ResourceDictionary (while a copy still exists in the underlying
19066 2008-10-01 Jeffrey Stedfast <fejj@novell.com>
19068 Attempt #1 at fixing bug #430766.
19070 * font.cpp (FontFace::LoadDefaultFace): Pass NULL as the families
19071 argument to LoadFontFace() so that we don't fail when matching the
19072 loaded family name.
19074 2008-10-01 Jeffrey Stedfast <fejj@novell.com>
19076 * font.cpp (FontFace::OpenFontDirectory): Now a static class
19078 (FontFace::LoadFontFace): New static method which tries to load an
19079 FT_Face given an FcPattern and a list of families.
19080 (FontFace::FontFace): No longer tries to load an FT_Face, instead
19081 we have it passed to us as an argument.
19082 (FontFace::LoadDefaultFace): New static method to load a global
19083 FT_Face representing the default system font.
19084 (FontFace::GetDefault): Instantiates a new FontFace using the
19085 global system default FT_Face.
19086 (FontFace::Load): Now takes only a TextFontDescription (much
19087 cleaner/simpler). If we are loading the default system font or if
19088 loading the requested font fails, simply return a new FontFace
19089 based on the global system default FT_Face.
19090 (TextFont::TextFont): Now takes fewer arguments (cleaner API,
19092 (TextFont::Load): Now only takes a TextFontDescription argument to
19093 make the API simpler/cleaner.
19094 (TextFontDescription::CreatePattern): Now public and takes a
19095 'sized' argument specifying whether or not the created pattern
19096 should include the size field. This is needed because TextFont
19097 caches based on all attributes while FontFace caches on everything
19098 but size. Also, don't include weight, width, or slant if our font
19099 family is the default (Portable User Interface is not allowed to
19100 have any of those attributes).
19101 (TextFontDescription::IsDefault): New method to decide if our
19102 family is the default or not.
19103 (TextFontDescription::GetFamilies): New convenience method to
19104 strsplit the family string into an array.
19105 (TextFontDescription::SetFamily): If the value "Portable User
19106 Interface" is set, set our family to NULL instead.
19108 2008-10-01 Sebastien Pouliot <sebastien@ximian.com>
19110 * geometry.cpp (GeometryGroup::Draw): Make sure the original
19111 fill rule is still in effect at the end of drawing the group.
19113 2008-10-01 Chris Toshok <toshok@ximian.com>
19115 * geometry.cpp (GeometryGroup::Draw): reinstate the call to
19116 cairo_set_fill_rule removed in r105643. This fixes
19117 http://mapul.com/Tutorials.html.
19119 2008-10-01 Sebastien Pouliot <sebastien@ximian.com>
19121 * shape.cpp: (Shape::InsideObject) Move cairo_save after the
19122 extents.PointInside check since there was no cairo_restore
19123 if false was returned. Looks likely that false was not much
19124 returned (if ever).
19126 2008-09-30 Chris Toshok <toshok@ximian.com>
19128 * stylus.cpp (Stroke::OnCollectionItemChanged): we need to
19129 recompute our bounds when an item (can only be a stylus point)
19130 changes its properties. Fixes stroke bounds in the face of
19131 dragging text in inkjournal.
19133 2008-10-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
19135 * audio-pulse.cpp, audio-pulse.h: Don't use callbacks with
19136 pa_stream_[cork|trigger|flush|drain] since the audio source might
19137 have gotten deleted by the time the callback is called.
19139 2008-09-30 Chris Toshok <toshok@ximian.com>
19141 * dirty.cpp (Surface::ProcessDownDirtyElements): use
19142 AddDirtyElement instead of |= to set flags, since it might require
19143 dirty list manipulation.
19145 2008-09-30 Sebastien Pouliot <sebastien@ximian.com>
19147 * xaml.cpp: Fix (again) the leaks in dependency_object_add_child,
19148 this time with new/delete to make it work with non-DO.
19150 2008-09-30 Sebastien Pouliot <sebastien@ximian.com>
19152 * xaml.cpp: Better fix for the leaks in dependency_object_add_child.
19154 2008-09-30 Sebastien Pouliot <sebastien@ximian.com>
19156 * xaml.cpp: Fix leak in dependency_object_add_child when AddWithError
19159 2008-09-30 Stephane Delcroix <sdelcroix@novell.com>
19161 * downloader.cpp: fix the leak in validate_policy.
19163 2008-09-30 Sebastien Pouliot <sebastien@ximian.com>
19165 * debug.cpp: Make sure allocated 'binary' is freed in every case
19166 inside addr2line_offset.
19168 2008-09-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
19170 * audio-alsa.cpp: Close the pcm in the dtor, not in Close. Refcounting
19171 ensures that the dtor won't be called while playing or that we'll
19172 be playing destructed sources, but Close might be called at any
19175 2008-09-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
19177 * pipeline.cpp: NullDecoder::DecodeAudioFrame: protected against int
19178 underflows and /0 errors.
19180 2008-09-29 Chris Toshok <toshok@ximian.com>
19182 * dependencyobject.cpp (DependencyObject::RegisterAllNamesRootedAt):
19183 if during the course of traversing the tree, we come across a temp
19184 namescope, merge that up instead of recursing down even further.
19185 (DependencyObject::SetLogicalParent): only clear the namescope if
19186 we're merging ourselves into a parent namescope.
19188 * canvas.cpp (Canvas::Canvas): remove the temp namescope creation
19189 here. the parser does it for us if we're parsing an element, and
19190 programmatically created objects don't seem to have them.
19192 2008-09-29 Jeffrey Stedfast <fejj@novell.com>
19194 * media.cpp (MediaBase::GetDownloaderPolicy): New virtual method
19195 to get the download policy based on the uri. By default, returns
19197 (MediaElement::GetDownloaderPolicy): Return StreamingPolicy if
19199 (MediaBase::SetAllowDownloads): Use GetDownloaderPolicy() instead
19200 of hardcoding mms:// check.
19201 (MediaBase::OnPropertyChanged): Same.
19203 * brush.cpp (ImageBrush::SetSurface): Remove previous hack.
19204 (ImageBrush::TargetLoaded): Call SetAllowDOwnloads(true) on our
19205 image once we have at least 1 target which is loaded in the visual
19207 (ImageBrush::TargetUnloaded): Disallow image downloads once our
19208 loaded_count falls back to 0.
19209 (ImageBrush::AddTarget): Listen to the target's Loaded/Unloaded
19211 (ImageBrush::RemoveTarget): Remove our listeners for the Loaded
19212 and Unloaded events placed on the target object.
19214 * uielement.cpp (UIElement::ClearLoaded): Emit an UnloadedEvent.
19216 * dependencyobject.cpp (DependencyObject::SetValueWithError): Call
19217 AddTarget()/RemoveTarget() on DO property values as they are
19219 (DependencyObject::AddTarget): New virtual method which gets
19220 called on DependencyObject property values when they are set on a
19222 (DependencyObject::RemoveTarget): Same but when unset.
19224 * media.cpp (MediaBase::SetAllowDownloads): New method to handle a
19225 state-change of allowing new downloads vs not.
19226 (MediaBase::OnLoaded): Call SetAllowDownloads(true).
19228 2008-09-29 Jeffrey Stedfast <fejj@novell.com>
19230 * brush.cpp (ImageBrush::SetSurface): Update the image's Loaded
19231 state. Fixes some regressions introduced by moving the async
19232 downloading logic from MediaBase::SetSurface() into
19233 ImageBase::OnLoaded().
19235 2008-09-29 Sebastien Pouliot <sebastien@ximian.com>
19237 * pipeline-ffmpeg.cpp: Free extradata, if allocated, on failure.
19239 2008-09-28 Chris Toshok <toshok@ximian.com>
19241 * xaml.cpp (XNamespace::SetAttribute): don't both RegisterName and
19242 SetValue (NameProperty) - just set the NameProperty, it'll update
19243 the proper namescope automatically.
19244 (get_parent): remove.
19245 (set_parent): remove. we no longer need to maintain a temporary
19246 chain while parsing. there's also no need for set_parent(NULL)
19248 (XamlElementInstance::TrySetContentProperty): if there was an
19249 error in DependencyObject::SetValueWithError or
19250 Collection::AddWithError, raise a parser error.
19251 (dependency_object_add_child): call
19252 Collection/ResourceDictionary::AddWithError, and raise a
19253 parser_error if it fails. also, remove set_parent (NULL) calls.
19255 * dependencyobject.h,
19256 dependencyobject.cpp (DependencyObject::MergeNameScopes): remove.
19257 (DependencyObject::RegisterAllNamesRootedAt): this now takes a
19258 MoonError argument so we can signal when there's been a conflict.
19259 (DependencyObject::SetLogicalParent): this also now takes a
19260 MoonError argument, and this is where ALL the namescope merging
19261 code lives. It's been removed from everywhere else. Also, this
19262 change means we can no longer be setting/clearing the parent in
19263 xaml.cpp, as it destroys temp namescopes.
19265 * namescope.h, namescope.cpp (NameScope::MergeTemporaryScope): add
19266 a MoonError parameter, so we can communicate back an
19267 error (conflicting names) properly.
19268 (NameScope::Dump): new method.
19270 * collection.h, collection.cpp (Collection::AddWithError): new
19271 method, generate a binding for this instead of Add. This allows
19272 us to check for name conflicts when a DOCollection is updated.
19273 (Collection::InsertWithError): same. Also, this method has
19274 something quirky about it - it calls AddedToCollection *before*
19275 the collection is modified. suck, but the logic in that code
19276 needs to be run before the change occurs.
19277 (Collection::AddedToCollection): add a MoonError arg so we can
19278 properly pass errors back up.
19279 (DependencyObjectCollection::RegisterAllNamesRootedAt): add the
19281 (DependencyObjectCollection::AddedToCollection,
19282 DependencyObjectCollection::RemovedFromCollection): remove
19283 namescope handling from here.
19286 animation.cpp (KeyFrameCollection::AddedToCollection): track api
19287 change to Collection::AddedToCollection.
19289 * resources.h, resources.cpp: track changes to AddedToCollection,
19290 RegisterAllNamesRootedAt, and AddWithError. Also, remove
19291 namescope handling code from here.
19293 * cbinding.cpp, cbinding.h, type-generated.cpp: regen.
19295 2008-09-28 Chris Toshok <toshok@ximian.com>
19297 * geometry.cpp (Geometry::OnPropertyChanged): this method was
19298 never chaining up to DependencObject::OnPropertyChanged, which it
19299 must do for properties whose ownerType != Geometry.
19301 2008-09-28 Chris Toshok <toshok@ximian.com>
19303 * media.cpp (TimelineMarkerCollection::Add): no need to check the
19304 element type of the value, by the time it makes it here it should
19305 already be the right type.
19307 2008-09-26 Jeffrey Stedfast <fejj@novell.com>
19309 * media.cpp (MediaBase::OnLoaded): Logic moved here from
19311 (MediaBase::OnPropertyChanged): Check IsLoaded() to see if we
19312 should start the downloader yet.
19314 * xaml.cpp: Revert the hydrating check for SetSurface() from the
19315 previous commit. This is causing a bunch of failures :(
19317 2008-09-26 Jeffrey Stedfast <fejj@novell.com>
19319 * xaml.cpp (XamlLoader::HydrateFromString): Properly initialize
19320 parser_info->hydrating and parser_info->hydrate_expecting based on
19321 whether or not we are really doing a HydrateFromString() vs
19322 CreateFromString().
19323 (create_element_info_from_imported_managed_type): Only
19324 SetSurface() if we are hydrating.
19325 (XamlElementInstanceNative::CreateItem): Same.
19326 (XamlElementInfoManaged::CreateElementInstance): Here too.
19327 (XamlElementInfoManaged::CreateWrappedElementInstance): And here.
19328 (XamlElementInfoManaged::CreatePropertyElementInstance): And here...
19329 (XamlElementInfoImportedManaged::CreateElementInstance): Same.
19330 (XamlElementInfoImportedManaged::CreateWrappedElementInstance): And here.
19331 (XamlElementInfoImportedManaged::CreatePropertyElementInstance): Here too.
19333 2008-09-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
19335 * dependencyobject.cpp, dependencyobject.h: Make objects_created and
19336 objects_destroyed thread-safe. Added MOONLIGHT_OBJECT_TRACK_TYPE to
19337 track a specific type, might be useful when the id varies from run
19338 to run. Make Dispose public.
19339 * media.cpp: Reinitialize: Dispose the downloaded_file if we're being
19341 * pipeline.cpp, pipeline.h: Implement MemoryQueueSource::Dispose, and
19342 cleanup properly there instead of in the dtor. This breaks a
19343 circular reference between ASFPacket/ASFDemuxer/MemoryQueueSource.
19345 2008-09-26 Stephane Delcroix <sdelcroix@novell.com>
19347 * downloader.cpp: use StreamingPolicy for streaming
19349 2008-09-25 Jeffrey Stedfast <fejj@novell.com>
19351 * runtime.cpp (Surface::ShowFullScreenMessage): Don't use
19352 g_str_has_prefix() on NULL strings.
19354 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19356 * pipeline.cpp: RegisterMSCodecs: Don't duplicate that much code, and
19357 only print messages to stdout if MOONLIGHT_OVERRIDES=codecs=debug.
19359 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19361 * downloader.cpp: validate_policy: Fix boolean logic according to
19362 comment, fixes crash.
19364 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19366 * media.cpp: Plug one more leak.
19368 2008-09-25 Stephane Delcroix <sdelcroix@novell.com>
19370 * downloader.cpp: neforce security policies on Open ()
19372 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19374 * pipeline.cpp, pipeline.h: Added Media::IsMSCodecsInstalled, and look
19375 for the mp3 codecs in libmscodecs.so, libmscodecs-mp3.so doesn't
19378 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19380 * pipeline-ui.cpp: AdaptToParentWindow: free the toplevels list.
19382 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19384 * downloader.cpp: Fix a potential leak.
19386 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19388 * dependencyobject.cpp: DependencyObject::RemoveListener: We need to
19389 delete the listener link, not only remove it. Plugs a leak.
19391 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19393 * audio-pulse.h, clock.h, layout.h, pipeline.h, template.h,
19394 yuv-converter.h: Sprinkle virtual on some destructors.
19396 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19398 * internal-downloader.h, file-downloader.h, mms-downloader.h: Fix
19401 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19403 * audio-pulse.cpp: Another leak plugged.
19405 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19407 * debug.cpp: Fix stack traces.
19409 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19411 * audio-pulse.cpp: Add a missing unref.
19413 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19415 * pipeline-ui.cpp: Store libmscodecs.so in ~/.mozilla/plugins.
19417 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19419 * pipeline-ui.cpp: Hush.
19421 2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
19423 * pipeline.cpp, pipeline.h: Added an abi_version to codec registration
19426 2008-09-24 Aaron Bockover <abockover@novell.com>
19429 * pipeline-ui.h: Redesigned the dialog to conform to the GNOME HIG
19430 in regards to header messages, detail messages, spacing, padding, and
19431 button layout; use a GtkDialog instead of a GtkWindow, and take all
19432 input through the dialog's response signal; require the user to explicitly
19433 tell us that they never want to see the installer again instead of
19434 assuming on cancel; fix crash when cancelling while downloading
19436 2008-09-24 Jeffrey Stedfast <fejj@novell.com>
19438 * dependencyproperty.cpp (resolve_property_path): Fixicated.
19440 2008-09-24 Sebastien Pouliot <sebastien@ximian.com>
19442 * pipeline.cpp: Fix a valgrind complaint when a NULL parameter is
19443 given to g_file_test
19445 2008-09-24 Jeffrey Stedfast <fejj@novell.com>
19447 * dependencyproperty.cpp (resolve_property_path): Cleaned up the
19448 code, robustified, and fixed bug #429396.
19450 2008-09-24 Sebastien Pouliot <sebastien@ximian.com>
19452 * dependencyproperty.cpp: Fix SIGSEGV when parsing something that
19456 2008-09-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
19458 * pipeline-ui.cpp, pipeline-ui.h: UI to download and install codecs.
19459 * pipeline-logo.cpp, pipeline-logo.inc: Renamed pipeline-logo.inc to
19460 pipeline-logo.cpp and made it an extern variable to avoid
19461 duplicating the entire image in the binary for every time we want
19463 * pipeline.cpp, pipeline.h: RegisterMSCodecs: Read the path to ms
19464 codecs from our configuration, and always register ms codecs first
19465 in the list. NullDecoder: fix a buffer overrun and update according
19466 to pipeline-logo changes.
19467 * moonlightconfiguration.cpp, moonlightconfiguration.h: Added: a class
19468 to store our configuration.
19469 * media.cpp: MediaElement::MediaOpened: if any of the streams is
19470 handled by a nulldecoder, it means we don't have ms codecs
19471 installed. If so, show the codec downloader UI.
19472 * Makefile.am, src.mdp: Updated.
19474 2008-09-23 Chris Toshok <toshok@ximian.com>
19476 * dependencyobject.cpp (DependencyObject::MergeTemporaryNameScopes):
19477 back out (#if false) this change for now.
19479 2008-09-23 Stephane Delcroix <sdelcroix@novell.com>
19481 * runtime.h|cpp: Surface::GetSourceLocation()
19483 2008-09-23 Sebastien Pouliot <sebastien@ximian.com>
19485 * uielement.cpp: Delete the temporary region before returning on an
19486 invisible element (common in defiwind).
19488 2008-09-22 Chris Toshok <toshok@ximian.com>
19490 * dependencyobject.cpp (DependencyObject::MergeTemporaryNameScopes):
19491 another case we hadn't addressed - if the object we're merging
19492 *from* doesn't have a namescope, we iterate over the entire tree,
19493 registering names into our (possibly temporary, if it didn't exist
19494 before) namescope. Fixes firstfloorsoftware.com (bug #425268).
19496 * xaml.cpp (XamlElementInstanceNative::CreateItem): fix memory
19499 2008-09-22 Jeffrey Stedfast <fejj@novell.com>
19501 * dependencyobject.cpp (merge_namescope): Return the parent_ns so
19502 that our caller doesn't have to call FindNameScope() in case it
19504 (DependencyObject::MergeTemporaryNameScopes): Adjust for above API
19507 2008-09-22 Larry Ewing <lewing@novell.com>
19509 * geometry.cpp (Geometry::Draw): fix the transform brokeness that
19510 crept in. Fixes test-geometry-transform.xaml
19512 2008-09-22 Michael Dominic K. <mdk@mdk.am>
19516 * clock.h: 0-time animations are valid (as in: passing the timeline
19517 validation test) but do nothing. Fixes the clock11 test.
19519 2008-09-22 Michael Dominic K. <mdk@mdk.am>
19522 * animation.h: Attach storage only once. Fixes a crash in clock21.html.
19524 2008-09-19 Jeffrey Stedfast <fejj@novell.com>
19526 Fix for bug #427560
19528 * dependencyobject.cpp (DependencyObject::MergeTemporaryNameScopes):
19529 Use FindNameScope() to get the scope to merge into, and only call
19530 this once - don't re-get it ever loop.
19532 2008-09-19 Jeffrey Stedfast <fejj@novell.com>
19534 * dependencyobject.cpp (EventObject::AddXamlHandler): New method
19535 to add a handler from XAML so that we can force the listener token
19536 to be 0, like Silverlight does.
19538 2008-09-19 Michael Dominic K. <mdk@mdk.am>
19541 * animation.h: Attach the storage to the prev storage on the
19542 partuclar AnimationClock/Storage Begin, not when the parent
19543 storyboard begins. That fixes: #412074 .
19545 2008-09-19 Stephane Delcroix <sdelcroix@novell.com>
19547 * src/downloader.cpp:
19548 * src/downloader.h: DownloadAccessPolicy enum, used as dl.Open
19549 argument. Drop downloder_open method.
19551 * src/playlist.cpp:
19552 * src/deepzoomimagetilesource.cpp:
19553 * src/text.cpp: use the new Open with the corresponding policy.
19555 2008-09-19 Sebastien Pouliot <sebastien@ximian.com>
19557 * media.cpp: Reduce the pixbuffer leaks on popfly.com. The biggest
19558 offenders are gone now but it's still leaking in a few cases.
19560 2008-09-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
19562 * pipeline.cpp: MediaFrame::~MediaFrame: Free the buffer before calling
19563 any custom Cleanup methods (allowing the Cleanup method to free
19564 buffer if g_free isn't the way to do it).
19566 2008-09-18 Jeffrey Stedfast <fejj@novell.com>
19570 * dependencyobject.cpp (class EventLists): Init current_token to
19571 1. Popfly uses a token of 0 to mean no-listener (sorta like gtk
19572 apps use 0 to mean that a g_signal is not connected).
19574 2008-09-18 Geoff Norton <gnorton@novell.com>
19576 * media.cpp: Stop leaking pixbuf loaders.
19578 2008-09-18 Sebastien Pouliot <sebastien@ximian.com>
19580 * mp3.cpp: Need to g_strdup the "mp3" string or we could crash when
19581 g_free-ing it later.
19583 2008-09-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
19585 * pipeline.cpp: Check for register_mswmv in libmscodecs.so, and honor
19586 RUNTIME_INIT_CODECS_DEBUG.
19587 * runtime.h, runtime.cpp: Add a runtime init flag to print codec debug
19590 2008-09-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
19592 * src.mdp: Updated.
19593 * pipeline.cpp, pipeline.h: Add a generic null decoder, shows a
19594 moonlight logo for video and plays silence for audio.
19595 * mp3.cpp, mp3.h: Remove NullMp3Decoder, no longer needed.
19596 * mplayer.cpp: RenderFrame: take stride into account when blitting rgb
19598 * pipeline-logo.inc: Added.
19600 2008-09-17 Larry Ewing <lewing@novell.com>
19605 * frameworkelement.cpp: start filling in InvalidateArrange and
19606 InvalidateMeasure calls.
19611 * canvas.cpp (Canvas::OnCollectionItemChanged): move the ZIndex
19612 change handling here from panel since it is a Canvas property.
19614 2008-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
19616 * pipeline.h: Remove some dead code.
19618 2008-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
19620 * runtime.h, runtime.cpp: Instead of having a flag to enable ms codecs,
19621 add flags to disable both ffmpeg and ms codecs and include them by
19623 * pipeline.cpp: register_mscodecs: look for libmscodecsmp3.so too
19624 (until it gets integrated in libmscodecs.so), and register the mp3
19625 codec. Media::Initialize: Update according to runtime init flag
19626 changes, and always register null encoders.
19628 2008-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
19630 * pipeline.cpp, runtime.cpp, runtime.h: Add a runtime override to not
19631 delete downloaded media files.
19633 2008-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
19635 * dependencyobject.cpp: Add TODO.
19637 2008-09-17 Jackson Harper <jackson@ximian.com>
19639 * xaml.cpp: Don't try setting the content prop in managed if there
19640 is no cdata content (we're just dealing with spaces).
19642 2008-09-17 Larry Ewing <lewing@novell.com>
19644 * grid.cpp (Grid::MeasureOverride): fix the span accumulators to
19645 use the right index value.
19647 2008-09-17 Sebastien Pouliot <sebastien@ximian.com>
19649 * frameworkelement.cpp: Fix moon-unit SIGSEGV when unreferencing
19650 SizeChangedEventArgs.
19652 2008-09-17 Michael Dominic K. <mdk@mdk.am>
19655 * clock.h: Separate raising events from raising completed events.
19656 In certain clock hierarchies this would cause us to emit completed event
19657 before raising animation setter events.
19659 * applier.cpp: Enabling the applier again.
19660 * applier.h: Animation resets don't have INSTANT precedence. The just
19661 have higher precedence than normal animation setters.
19663 2008-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
19665 * audio-pulse.cpp: Remove stray characters.
19667 2008-09-16 Chris Toshok <toshok@ximian.com>
19669 * dirty.h, dirty.cpp: add DirtyMeasure/DirtyArrange.
19671 * frameworkelement.h, frameworkelement.cpp
19672 (FrameworkElement::UpdateLayout): override
19673 UIElement::UpdateLayout, and if that base class method returns
19674 true, emit LayoutUpdatedEvent.
19676 * uielement.h, uielement.cpp (UIElement::InvalidateMeasure): add
19678 (UIElement::InvalidateArrange): add DirtyArrange.
19679 (UIElement::DoMeasure): this should drive the measure process -
19680 needs filling in, though.
19681 (UIElement::DoArrange): this should drive the arrange
19683 (UIElement::UpdateLayout): change return type to bool. call
19684 DoMeasure and DoArrange synchronously, and return true if we
19687 * runtime.cpp (Surface::Attach): call InvalidateMeasure on the new
19690 * cbinding.h, cbinding.cpp: regen.
19692 2008-09-16 Larry Ewing <lewing@novell.com>
19694 * clock.cpp: make AddTimeout take a priority. Make the render
19695 timeout slightly lower than default so that we process gdk events
19698 * media.cpp: raise the priority of the media timeout so that it
19699 doesn't drop below default or the render tick.
19701 2008-09-16 Chris Toshok <toshok@ximian.com>
19703 * dirty.h, dirty.cpp: add a priority queue-like setup for the
19704 dirty lists, where priority == level in the visual hierarchy.
19705 Processing the down dirty list proceeds from lower "priority" to
19706 higher, and the up dirty list proceeds from higher to lower.
19707 * runtime.h, runtime.cpp: use the new dirty lists.
19709 * uielement.h, uielement.cpp: add a visual_level field, which is
19710 updated when the element is added to the
19711 hierarchy (this->visual_level = parent->visual_level + 1).
19713 2008-09-16 Jackson Harper <jackson@ximian.com>
19715 * xaml.cpp: keys should be a property of the instance.
19717 2008-09-16 Fernando Herrera <fherrera@novell.com>
19719 * pipeline.cpp: Register MS codecs if MOONLIGHT_OVERRIDES
19720 has codecs=microsoft.
19721 * runtime.h: Do not default to RUNTIME_INIT_MICROSOFT_CODECS
19722 in RUNTIME_INIT_BROWSER.
19724 2008-09-16 Jackson Harper <jackson@ximian.com>
19726 * xaml.cpp: Move cdata handling code into the content property
19727 setters, allow managed content property setters to set values from
19730 2008-09-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
19732 * audio-pulse.cpp: dlsym another method previously forgotten.
19734 2008-09-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
19736 * multiscaleimage.h, textbox.h: Use quotes to include our headers.
19738 2008-09-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
19740 * audio-alsa.cpp: Use dlopen/dlsym to access all alsa methods, and
19741 don't link with alsa anymore
19743 2008-09-16 Jb Evain <jbevain@novell.com>
19745 * template.h (TemplateBinding): decorate with a SLVersion=2.
19747 2008-09-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
19749 * audio-pulse.cpp: Use dlopen/dlsym to access all pa methods, and don't
19750 link with pulseaudio anymore. Hopefully fixes #425560.
19752 2008-09-16 Fernando Herrera <fherrera@novell.com>
19754 * asf/asf-structures.h:
19758 * pipeline.h: Don't use relative paths in #includes.
19759 * Makefile.am: Add -Iasf
19761 2008-09-15 Michael Dominic K. <mdk@mdk.am>
19763 * src/applier.cpp: Disabling the applier for now, it seems there are still
19764 some tiny 'issues' with it.
19766 2008-09-15 Chris Toshok <toshok@ximian.com>
19768 * dependencyobject.h, dependencyobject.cpp: add real
19769 PropertyChange callbacks (so we can implement listeners without
19770 the listener being a dependencyobject - which is nice for
19771 TemplateBindings, which don't need all that overhead.)
19773 * template.h, template.cpp: switch over to using this new listener
19776 2008-09-15 Chris Toshok <toshok@ximian.com>
19778 * xaml.cpp (dependency_object_set_attributes): add the
19779 TemplateBinding to the item, not the containing template.
19781 2008-09-15 Larry Ewing <lewing@novell.com>
19783 * applier.h: really disable the applier to make changes instant,
19784 fixes page turn and the test regressions.
19786 * applier.cpp: ref and unref the object to avoid crashes on
19789 2008-09-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
19791 * src.mdp: Updated with new files.
19793 2008-09-12 Larry Ewing <lewing@novell.com>
19795 * grid.cpp (Grid::Measure): accumulate colspan width and pass
19796 pixel size restrictions on to the children.
19798 2008-09-11 Michael Dominic K. <mdk@mdk.am>
19802 * applier.h: Adding some defines for applier precedences + a way
19803 to instant apply with precedence == 0.
19805 2008-09-10 Michael Dominic K. <mdk@mdk.am>
19807 * clock.cpp: Properly emit the Completed event after the properties have
19810 2008-09-09 Michael Dominic K. <mdk@mdk.am>
19813 * applier.cpp: Removing debug messages, adding proper free code.
19815 2008-09-08 Michael Dominic K. <mdk@mdk.am>
19819 * applier.cpp: Do not set the values, instead move them to applier.
19821 2008-09-08 Michael Dominic K. <mdk@mdk.am>
19827 * runtime.h: Moving the Applier instance to TimeManager.
19829 2008-09-08 Michael Dominic K. <mdk@mdk.am>
19832 * runtime.h: Adding Applier to Surface.
19834 2008-09-08 Michael Dominic K. <mdk@mdk.am>
19837 * applier.h: Adding a basic Flush method, totally bad for now.
19839 2008-09-08 Michael Dominic K. <mdk@mdk.am>
19842 * applier.h: Adding basic Apply function that applies all the changes
19845 2008-09-08 Michael Dominic K. <mdk@mdk.am>
19848 * applier.h: Adding basic method to add property to apply on object.
19850 2008-09-08 Michael Dominic K. <mdk@mdk.am>
19854 * applier.h: Introducing the applier helper class. Will be used
19855 to apply property changes in order.
19857 2008-09-11 Jackson Harper <jackson@ximian.com>
19859 * xaml.cpp: Move some of the content property setting logic into
19860 the XamlElementInstance's.
19862 2008-09-11 Stephane Delcroix <sdelcroix@novell.com>
19864 * multiscaleimage.cpp: draw a pattern that should look like
19865 a MSI (currently still wrong)
19867 2008-09-10 Jeffrey Stedfast <fejj@novell.com>
19869 * text.h (class Run): Apparently Run's TextProperty is internal in
19872 2008-09-10 Larry Ewing <lewing@novell.com>
19875 * frameworkelement.cpp:
19876 * shape.cpp, shape.h:
19877 * canvas.cpp: update to pass the new more extensive tests.
19879 2008-09-10 Larry Ewing <lewing@novell.com>
19881 * size.h: Tweak to match updated tests.
19883 2008-09-09 Chris Toshok <toshok@ximian.com>
19885 * style.h (class Setter): make ValueProperty's PropertyType
19886 'object' instead of 'Managed'.
19888 * template.cpp (FrameworkTemplate::AddXamlBinding): make this a
19889 little more bulletproof.
19890 (ControlTemplate::DuplicateObject): XamlTemplateBinding can return
19891 NULL, don't create a TemplateBindingNode (and add it to the list)
19894 * type.h.in (class Type): remove OBJECT - it gets autogenerated
19897 * xaml.cpp (start_element): we need to set inst->parent before
19898 setting the attributes, as the attributes might include a
19899 StaticResource (or TemplateBinding) that requires us to walk back
19901 (XamlElementInfoNative::CreateElementInstance): create a
19902 XamlElementInstanceTemplate if the type is a subclass of
19904 (dependency_object_set_attributes): return out of this after
19905 adding the templatebinding (so we don't end up in the managed xaml
19906 loader code trying to set properties to "{TemplateBinding ...}"
19907 Also, if the property type is OBJECT, call into the loader (like
19908 we do with MANAGED), and fix the logic check on
19909 p->loader->SetAttribute in that case.
19911 * type.h, type-generated.cpp: regen.
19913 2008-09-09 Sebastien Pouliot <sebastien@ximian.com>
19915 * xaml.cpp: Don't unref NULL collections. Fix regression when
19916 parsing invalid points (or doubles).
19918 2008-09-08 Chris Toshok <toshok@ximian.com>
19920 * xaml.h, xaml.cpp: stopgap before jackson gets the completely
19921 managed approach to managed object parsing going. a few key
19924 1) xaml_load_managed_object takes an out bool
19925 parameter (is_dependency_object) so the managed code can create
19926 non-DO subclasses, and then the parser will pass that GCHandle
19927 back to managed code in set_attribute.
19929 2) added an add_child callback to the loader so that managed DO
19930 subclasses (and non-subclasses) can deal with collection
19931 properties. theres no ContentProperty handled in managed code,
19934 2008-09-08 Geoff Norton <gnorton@novell.com>
19936 * audio-*.(cpp|h): The Alsa code requires us to join the play
19937 thread before we remove the audio sources otherwise we can
19938 end up in a race accessing closed pcm's when shutting down.
19940 2008-09-08 Geoff Norton <gnorton@novell.com>
19942 * audio.cpp: Ensure that we dont enter an infinite loop before
19943 we actually start playing a source.
19945 2008-09-08 Larry Ewing <lewing@novell.com>
19947 * frameworkelement.cpp: make things 1.0 safe.
19949 2008-09-08 Larry Ewing <lewing@novell.com>
19951 * frameworkelement.cpp (FrameworkElement::Arrange): rework to
19952 match some of the Measure logic
19955 * canvas.cpp, canvas.h:
19956 * control.cpp, control.h: rework arrange implementation to match
19957 the measure logic and the current thinking on arrange.
19959 * uielement.cpp, uielement.h: expose render_size accessor.
19961 2009-09-08 Stephane Delcroix <sdelcroix@novell.com>
19963 * tilesource.h|cpp: keep the source and tiles info on the c++ side
19965 * multiscaleimage.cpp: draw a cairo pattern instead of nothing
19967 2008-09-08 Larry Ewing <lewing@novell.com>
19969 * grid.cpp: Chain collection changed up properly.
19971 2008-09-07 Larry Ewing <lewing@novell.com>
19973 * thickness.h (struct Thickness): add +/-/- to thickness to clean
19974 up some of the other code.
19976 * rect.h: remove ShrinkBy now that we can negate thickness
19978 * size.h: clean things and make GrowBy stop at 0 now that we can
19979 deal with thickness addition outside of things.
19982 * frameworkelement.cpp:
19984 * border.cpp: subtract the padding and border thickness from
19985 available size before passing it to children. Handle some corner
19986 cases in measure with ugly hacks.
19988 2008-09-07 Larry Ewing <lewing@novell.com>
19990 * canvas.cpp, canvas.h:
19991 * control.cpp, control.h:
19994 * panel.cpp, panel.h: refactor MeasureOverride to return the size of the
19997 * frameworkelement.cpp: Make measure pre and post condition the
19998 output rather than doing it in the overrides themselves.
20000 * size.h: make sure min/max will never set a known size to NAN.
20002 2008-09-07 Chris Toshok <toshok@ximian.com>
20004 * type.h.in: add OBJECT kind.
20006 * type.h, cbinding.h, cbinding.cpp, type-generated.cpp: regen.
20008 2008-09-06 Chris Toshok <toshok@ximian.com>
20010 * value.cpp (Value::CreateUnref): don't use 'Foo foo = Foo(args);'
20011 - instead use 'Foo foo(args)'. the former creates 2 objects to
20014 * media.cpp (MediaElement::GetValue): same.
20016 * uielement.cpp: same.
20018 * error.h, error.cpp (class MoonError): make this a class instead
20019 of a struct, add a default ctor, remove Dispose and use ~MoonError
20020 instead, add FillIn methods that take a "code" as well as an
20021 ErrorType to support the parser.
20023 * dependencyobject.h, dependencyobject.cpp: some api cleanup - get
20024 rid of GError and use MonoError exclusively, move the internal
20025 EventLists/EventList types to the .cpp file. Also, remove a few
20026 redundant methods on DependencyObject. The hit at call sites is
20027 negligable (one additional line, perhaps), and the call sites are
20028 few and far between.
20030 * xaml.cpp (dependency_object_set_attributes)
20031 (dependency_object_set_property): call
20032 DependencyObject::SetValueWithError.
20034 * animation.cpp (KeyFrameCollection::GetKeyFrameForTime): look up
20035 the property here. the DO api is gone.
20037 2008-09-06 Chris Toshok <toshok@ximian.com>
20039 * grid.h, grid.cpp: flesh out some of the
20040 OnPropertyChanged/OnSubPropertyChanged/OnCollectionChanged stuff.
20041 Also add in a completely broken and unfinished MeasureOverride
20042 implementation. It passes some of the tests, but not for the
20043 right reasons :) Lastly, move the GridUnitType enum to enums.h
20045 * enums.h: move GridUnitType here, and rename its elements to have
20046 a "GridUnitType" prefix.
20048 * xaml.cpp: track GridUnitType enum references.
20050 * dependencyproperty.g.cpp: fix up attached properties getters to
20051 return default values if there is one.
20053 2008-09-05 Jeffrey Stedfast <fejj@novell.com>
20055 * text.cpp (TextBlock::OnPropertyChanged): TextAlignment doesn't
20056 actually change the lauout, so no need to set the dirty flag when
20058 (TextBlock::Layout): Updated to handle Silverlight 2.0 TextBlock's
20060 (TextBlock::Paint): Same.
20062 2008-09-05 Larry Ewing <lewing@novell.com>
20064 * uielement.cpp: use render bounds rather than bounds to determine
20065 if we have something to draw.
20067 * stylus.h, stylus.cpp: remove the EmptyBackground method.
20069 Fixes the annotation regression in page turn (again).
20071 2008-09-04 Larry Ewing <lewing@novell.com>
20073 * uielement.h (class UIElement): generate managed accessors for
20076 2008-09-04 Chris Toshok <toshok@ximian.com>
20078 * xaml.cpp (dependency_object_add_child): add code here for
20079 FrameworkTemplate, call SetVisualTree with the child.
20081 * control.cpp (Control::Control): init bindings.
20082 (Control::~Control): unref applied_template and delete bindings.
20083 (Control::ApplyTemplate): make sure we return false here from a
20084 few error places (NULL template, a template with a NULL
20087 * template.cpp (FrameworkTemplate::FrameworkTemplate): init
20088 visual_tree to NULL.
20089 (FrameworkTemplate::~FrameworkTemplate): unref visual_tree.
20090 (FrameworkTemplate::SetVisualTree): new method, set visual_tree
20092 (ControlTemplate::DuplicateObject): we need to special case a
20093 couple of classes (collections, templates) in order to traverse
20095 (ControlTemplate::Apply): if the visual_tree is null, don't try to
20098 * template.h (class FrameworkTemplate): add SetVisualTree method
20101 2008-09-04 Larry Ewing <lewing@novell.com>
20103 * uielement.cpp, uielement.h: new methods GetSubtreeObject and
20104 ElementAdded ElementRemoved.
20106 * dependencyobject.h: remove ContentAdded, ContentRemoved.
20108 * collection.cpp, collection.h: rename ContentWalker to
20109 VisualTreeWalker use GetSubtreeObject () rather than content for walking.
20111 * template.cpp, template.h: make Apply return the newly created
20114 * panel.cpp, panel.h:
20115 * control.cpp, control.h: add template_root child that isn't
20116 hooked into the normal tree. Start implementing ApplyTemplate and
20119 * usercontrol.cpp: mess around with Content a little in making it
20120 use the ElementAdded ElementRemoved logic since UserControl
20121 doesn't really support template changes.
20123 * border.h: implement GetSubtreeObject.
20127 * frameworkelement.cpp:
20128 * canvas.cpp, canvas.h: update for new treewalker.
20130 2008-09-04 Jeffrey Stedfast <fejj@novell.com>
20132 * layout.cpp (TextLayout::Render): Added some new arguments which
20133 aren't actually used yet but will be eventually (assuming I
20134 continue with this approach).
20136 * textbox.cpp (TextBox::Paint): Don't bother painting the
20137 background, control does this for us.
20139 2008-09-04 Stephane Delcroix <sdelcroix@novell.com>
20141 * tilesource.h, deepzoomimagetilesource.h|.cpp: move the dzits in its
20142 own file, implement the downloader.
20144 2008-09-03 Chris Toshok <toshok@ximian.com>
20146 * dependencyobject.h: as much as i hate this, add
20147 GetCurrentValues() for the template stuff.
20149 * xaml.cpp: add XamlElementInstanceTemplate and initial support
20150 for TemplateBindings.
20152 * template.h, template.cpp: add a bunch of stuff for templates.
20154 * control.h, control.cpp: add OnLoaded and OnPropertyChanged to
20155 watch for template property changes, and apply the template in
20156 OnLoaded (or if we're already loaded). Also, add accessors for
20159 * dependencyproperty.g.cpp: regen.
20161 2008-09-03 Larry Ewing <lewing@novell.com>
20163 * frameworkelement.cpp (FrameworkElement::MeasureOverride): use
20164 the new Size methods.
20166 * border.cpp, border.h: add some initial (broken) rendering
20167 support, rework measure to use some of the new rect and size
20170 2008-09-03 Jeffrey Stedfast <fejj@novell.com>
20172 * textbox.cpp (TextBox::OnPropertyChanged): When the AcceptsReturn
20173 property chanegs, no need to re-layout or invalidate - according
20174 to my little test program, Silverlight 2 Beta 2 does not change
20175 the rendered text when this property changes - any newlines in the
20176 input text stay there.
20178 2008-09-03 Sebastien Pouliot <sebastien@ximian.com>
20180 * resources.cpp: (ContainsKey) Don't crash if a null key is
20181 supplied. (Remove) same. (Add) same.
20183 2008-09-03 Jeffrey Stedfast <fejj@novell.com>
20185 * enums.cpp (initialize_enums): Map Horizontal and
20186 VerticalScrollBarVisibility properly.
20188 * textbox.cpp (TextBox::CalcActualWidthHeight): Removed, I don't
20189 think we need this for TextBox controls since their
20190 ActualWidth/Height aren't based on the text extents afaik.
20191 (TextBox::Paint): Implemented, sorta.
20193 2008-09-03 Chris Toshok <toshok@ximian.com>
20195 * resources.cpp (ResourceDictionary::Clear): add pre-glib 2.12
20198 2008-09-03 Larry Ewing <lewing@novell.com>
20200 * uielement.cpp, uielement.h:
20201 (UIElement::FrontToBack): Make FrontToBack non-virtual and move
20202 the generic logic here.
20204 * control.cpp, control.h:
20205 * panel.cpp, panel.h: Remove ftb logic, everything is handled in
20208 2008-09-03 Larry Ewing <lewing@novell.com>
20210 * uielement.cpp, uielement.h:
20211 * media.cpp, media.h:
20212 * panel.cpp, panel.h:
20213 * shape.cpp, shape.h: Add GetCoverageBounds virtual method
20214 to let elements compute their own opaque coverage.
20216 2008-09-03 Stephane Delcroix <sdelcroix@novell.com>
20218 * multiscaleimage.h|.cpp: new MultiScaleImage type
20220 2008-09-02 Chris Toshok <toshok@ximian.com>
20222 * resources.h, resources.cpp: constify this.
20223 (ResourceDictionary::Remove): fix g_hash_table_lookup_extended
20226 * xaml.cpp (XamlElementInstance::LookupNamedResource): implement
20228 (dependency_object_set_attributes): add support for StaticResource
20229 lookups. going to refactor all this to add support for
20232 2008-09-02 Jeffrey Stedfast <fejj@novell.com>
20234 * eventargs.h (class CollectionChangedEventArgs): Implemented
20235 accessor methods to get/set the event arg values.
20237 * trigger.cpp (EventTrigger::SetTarget): Fixed to not need to
20238 strdup the event_name string and also updated to use an accessor
20239 method to prevent a possible NULL dereference.
20241 2008-09-02 Michael Dominic K. <mdk@mdk.am>
20244 * animation2.h: Reworking the animation hookup storage fix. Checking for
20245 subclass is plain dumb. Just make an exception for ObjectAnimation.
20247 2008-09-02 Michael Dominic K. <mdk@mdk.am>
20249 * animation.cpp: Fixing a problem in animation hookup
20250 storage -- the type/kind that the animation generates has to be the subclass
20251 of the type/kind the target property is ready to accept.
20253 2008-09-01 Stephane Delcroix <sdelcroix@novell.com>
20255 * multiscalesubimage.h: fixing code generation decorators
20257 2008-09-01 Stephane Delcroix <sdelcroix@novell.com>
20259 * multiscalesubimage.h: new type
20261 2008-08-29 Jeffrey Stedfast <fejj@novell.com>
20263 * layout.cpp (TextLayout::LayoutWrap): Keep track of when 'words'
20264 end so that we can fall back to that position as the line
20265 width (we don't want to include trailing spaces unless
20267 (TextLayout::Render): If the line width is greater than the
20268 allowable width, keep the line left-aligned like Silverlight does.
20270 2008-08-29 Chris Toshok <toshok@ximian.com>
20272 * resources.cpp (ResourceDictionary::Clear): call
20273 Collection::Clear after we've cleared the hash so the hash will be
20274 empty in event handlers.
20276 2008-08-29 Jeffrey Stedfast <fejj@novell.com>
20278 * layout.cpp (TextLayout::Layout): Do a slightly better job of
20279 keeping track of line->width - still not 100% correct.
20281 2008-08-28 Chris Toshok <toshok@ximian.com>
20283 * Makefile.am: add resources.h and resources.cpp
20285 * xaml.cpp (class XamlElementInfo): add x:Key field (since this
20286 can't set a field on the object -- it might be a value type).
20287 (class XamlElementInstanceValueType): remove the empty
20288 implementation of SetAttributes. we'll define it later.
20289 (XNamespace::SetAttribute): handle name/key behavior here. Only
20290 allow one of them to be set on an object. Also, only attempt to
20291 set DependencyObject::NameProperty on an item if it's not a value
20293 (start_element): don't add value type children to their parent in
20294 start_element (as we haven't read the data that will allow us to
20295 create the value typed object.) we need to push this off to the
20296 end_element handler. also return early if there are problems
20297 setting attributes.
20298 (end_element_handler): if we're creating a value typed ELEMENT,
20299 add the child to the parent here.
20300 (dependency_object_add_child): add some ResourceDictionary
20301 validation here (if there's no key, etc), and actually call
20302 dict->Add(key, child).
20303 (XamlElementInstanceNative::CreateItem): don't crash if we failed
20304 to create an item. (fixes one of the crashes caused by the
20305 ResourceDictionaryTests - ParseDouble)
20306 (XamlElementInstanceValueType::SetAttributes): call
20307 value_type_set_attributes.
20308 (value_type_set_attributes): stripped down version of
20309 dependency_object_set_attributes, as there are only a handful (is
20310 it really only x:Name and x:Key?) attributes we handle on value
20312 (globally): always call set_parent as opposed to
20313 ->SetLogicalParent. we might not be dealing with a DO-subclass.
20315 * xaml.h (class XamlLoader): remove the explicit C api calls
20316 xaml_create_from_file, xaml_create_from_str, and
20317 xaml_hydrate_from_str. Replace them with instance methods on
20318 XamlLoader (CreateFromFile, CreateFromString, and
20319 HydrateFromString, respectively) Add WithError variants of the
20320 these, and have the generator generate bindings for them so we can
20321 throw parse exceptions into managed code.
20323 * error.h (struct MoonError): add XAML_PARSE_EXCEPTION.
20325 * value.h.in (struct Value): add Is overload with
20328 * uielement.h: include resources.h.
20330 * collection.h, collection.cpp: change the api in a few ways to
20331 make ResourceDictionary easier to write - make Count virtual,
20332 remove all the type checks for element type from methods, and add
20333 that check to Collection::CanAdd. ResourceDictionary overrides
20334 that and always returns true. Make Clear return a bool.
20336 * animation.h, animation.cpp: track collection changes.
20338 * stylus.h, stylus.cpp: track Collection::CanAdd change, and move
20339 implementations to the .cpp file.
20341 * resources.h, resources.cpp: split out the code for
20342 ResourceDictionary here. ResourceDictionary is an odd fish. In
20343 1.0 land, it provides the same api as a collection, and things can
20344 be looked up by name via findName. In 2.0 land, items in
20345 ResourceDictionaries have to have either an x:Key or x:Name
20346 attribute. If both are lacking it's an error. If the former is
20347 specified you can only get at it through Resources["name"]. If
20348 the latter is specified, you can use both Resources["name"] or
20351 * dependencyobject.cpp, dependencyobject.h: add Is and GetType
20352 overloads that take additional_types. Make IsValueValid take an
20353 additional_types parameter too. Expose ClearValue to managed code
20354 so we can actually clear the Value* to null without using
20355 the (unsupported from the generator) old method of passing
20356 IntPtr.Zero (Value* now maps to "ref Value" in generated
20357 pinvokes.) Lastly add a SetValueWithError method so we can throw
20358 exceptions in managed code.
20360 * border.h: add defaults for Padding and BorderThickness.
20362 * border.cpp: simplify things a bit since we don't have to worry
20363 about padding/border thickness being NULL.
20365 * depenencyproperty.g.cpp, value.h, type-generated.cpp: regen.
20367 2008-08-28 Jeffrey Stedfast <fejj@novell.com>
20369 * layout.cpp (TextLayout::Render): Respect TextAlignment.
20371 2008-08-26 Chris Toshok <toshok@ximian.com>
20373 * dependencyobject.cpp (DependencyObject::SetLogicalParent): get
20374 rid of this g_assert, it's crashing the moon-unit tests. just
20376 (DependencyObject::SetSurface): don't do anything if the surface
20377 is already set to the same value.
20379 * animation.cpp (Storyboard::SetSurface): don't do anything if
20380 GetSurface() == surface.
20382 * text.cpp (Glyphs::SetSurface): same.
20384 * uielement.cpp (UIElement::SetSurface): same.
20386 * brush.cpp (ImageBrush::SetSurface): same.
20390 * collection.cpp (DependencyObjectCollection::SetSurface): same.
20391 (Collection::RemoveAtWithError): this (against logic) raises
20392 ArgumentException, not ArgumentOutOfRangeException.
20394 2008-08-25 Chris Toshok <toshok@ximian.com>
20396 * rect.h, rect.cpp: rename the w/h fields to width/height, since
20397 every other instance of similar fields are named that.
20399 * value.cpp, border.cpp, window-gtk.cpp, control.cpp, runtime.cpp,
20400 uielement.cpp, geometry.cpp, shape.cpp, frameworkelement.cpp,
20401 brush.cpp: track rect change.
20403 2008-08-25 Chris Toshok <toshok@ximian.com>
20405 * border.h, border.cpp: implement ArrangeOverride, and fix up some
20406 test failures in MeasureOverride.
20408 * frameworkelement.cpp (FrameworkElement::Arrange): it seems we
20409 also set the desired size here (to the final size we get from
20412 2008-08-25 Michael Dominic K. <mdk@mdk.am>
20414 * animation2.h: Advertise self (ObjectAnimationUsingKeyFrames) as providing
20415 proper kinds of values (TYPE::DEPENDENCY_OBJECT).
20417 2008-08-25 Michael Dominic K. <mdk@mdk.am>
20420 * animation2.h: Properly guard 2.0 stuff with if SL_2_0 .
20421 Also adding validation methods.
20423 2008-08-25 Michael Dominic K. <mdk@mdk.am>
20426 * animation2.h: Base work for ObjectAnimationUsingKeyFrames
20429 2008-08-24 Geoff Norton <gnorton@novell.com>
20431 * media.h: Add a new overload to set the SourceProperty from managed land.
20432 * media.cpp: Support async source changing downloader creation for ImageSource
20433 * cbinding.(cpp|h): Regen
20435 2008-08-23 Geoff Norton <gnorton@novell.com>
20437 * mplayer.cpp: Only ref the audio if we have it as well.
20439 2008-08-23 Geoff Norton <gnorton@novell.com>
20441 * bitmapimage.h: Add to the build
20443 2008-08-23 Geoff Norton <gnorton@novell.com>
20445 * cbinding.cpp|h, dependencyproperty.g.cpp, type-generated.cpp,
20446 type.h, value.h: Regenerated
20447 * downloader.cpp|h: Return failure state for downloader->GetResponse
20448 * runtime.h: Generate C bindings for IsMainThread.
20450 2008-08-23 Larry Ewing <lewing@novell.com>
20452 * animation.cpp, animation.h: make ControlPoint1 and ControlPoint2
20453 properties. Move the quadratic generation into
20454 GenerateQuadratics.
20456 Regenrate and remove the managed wrappers.
20458 2008-08-23 Larry Ewing <lewing@novell.com>
20460 * xaml.cpp (value_from_str): fixed crossed commits with Auto
20463 * collection.cpp (ContentWalker::Step): add some debug logic to
20464 protect against an error case for now.
20466 2008-08-23 Chris Toshok <toshok@ximian.com>
20468 * Makefile.am (libmoon_la_SOURCES): add cornerradius.cpp
20470 * thickness.h, thickness.cpp: rename thickness_from_str to
20471 Thickness::FromStr, and make it return a bool instead of a
20472 pointer, as Point and Rect do.
20474 * cornerradius.h, cornerradius.cpp: add CornerRadius::FromStr.
20476 * xaml.cpp (value_from_str): use the CornerRadius parsing method,
20477 and track the change to the Thickness one.
20479 2008-08-23 Larry Ewing <lewing@novell.com>
20481 * xaml.cpp (value_from_str): quick auto hack so we can test
20484 * runtime.cpp (RenderNode::Render): fix typo in merge
20486 2008-08-23 Larry Ewing <lewing@novell.com>
20488 * uielement.cpp, uielement.h: move basic ftb logic here from
20489 panel. Start storing extents allong with bounds.
20491 * panel.cpp, panel.h: move most ftb logic to uielement.cpp. Use
20494 * stylus.cpp, stylus.h: rework the PostRender hack by chaining up
20495 to uielement in front_to_back mode unconditionaly.
20497 * runtime.cpp, runtime.h: make RenderNode members private and move
20498 the ftb override logic here and out of the PostRender call.
20500 * shape.cpp|h, frameworkelement.cpp|h, media.cpp, text.cpp: store
20503 * control.cpp, control.h: implement basic functionality.
20505 2008-08-22 Chris Toshok <toshok@ximian.com>
20507 * color.h, rect.h, point.h: remove the copy ctors. we don't need
20508 them, and they were causing crashes (!)
20510 2008-08-22 Chris Toshok <toshok@ximian.com>
20512 * frameworkelement.cpp (FrameworkElement::MeasureOverride): always
20513 take the margins into account, even when we're childless.
20515 * panel.h, panel.cpp: add MeasureOverride which always returns
20518 * border.h (class Border): add property accessors for everything.
20520 * border.cpp (Border::MeasureOverride): new implementation.
20522 * value.h.in, value.cpp: add CornerRadius support, and remove the
20523 unnecessary casts (and in the Rect/Point cases, calls to the copy
20526 * value.h, dependencyproperty.g.cpp: regenerate.
20528 2008-08-22 Jeffrey Stedfast <fejj@novell.com>
20530 * textbox.h (class SelectionChangedEventArgs): Added
20531 Text/SelectionChangedEventArgs.
20533 2008-08-22 Chris Toshok <toshok@ximian.com>
20535 * frameworkelement.cpp (FrameworkElement::Measure): instead of
20536 always calling MeasureOverride here, we call the registered manage
20537 callback if there is one. So, we proxy into managed code here,
20538 invoke the virtual method FWE.MeasureOverride, and if there's no
20539 subclass override (or if it chains up for some reason), we end up
20540 in MeasureOverride by virtue of the pinvoke in
20541 FrameworkElement.cs.
20542 (FrameworkElement::MeasureOverride): move all the logic for the
20543 default MeasureOverride implementation here. it's pretty
20544 braindead - takes margins into account, measures our child, makes
20545 sure our size is between Min/Max. That's about it.
20546 (FrameworkElement::Arrange): same drill as ::Measure.
20547 (FrameworkElement::ArrangeOverride): still (incorrectly) return
20550 2008-08-22 Jeffrey Stedfast <fejj@novell.com>
20552 * textbox.h: Made ArrangeOverride() virtual and added
20553 SelectionChangedEvent.
20555 2008-08-22 Chris Toshok <toshok@ximian.com>
20557 * dependencyobject.cpp (DependencyObject::GetContent): guard
20558 against the value being NULL.
20560 2008-08-22 Larry Ewing <lewing@novell.com>
20562 * collection.cpp (ContentWalker::ContentWalker): make
20563 ContentWalker understand directions (Logical, ZForward, ZReverse).
20565 2008-08-22 Larry Ewing <lewing@novell.com>
20567 * runtime.cpp (Surface::PaintToDrawable): restore the x/y offsets
20568 when drawing in the image backend.
20570 2008-08-22 Chris Toshok <toshok@ximian.com>
20572 * frameworkelement.h, frameworkelement.cpp: add in the layout foo
20573 - provide implementations of Measure and Arrange that just call
20574 MeasureOverride and ArrangeOverride. These are virtual and meant
20575 to be overridden either in unmanaged code (by simply overriding
20576 them), or in managed code (RegisterManagedOverrides is called in
20577 FWE.Initialize.) Decorate the class with @CallInitialize so the
20578 managed ctor calls it.
20580 * uielement.h, uielement.cpp: remove the PInvoke/CBinding for the
20581 ctor, and add the layout methods. Measure and Arrange are pure
20584 * cbinding.h, cbinding.cpp, type-generated.cpp: regen.
20586 2008-08-22 Jeffrey Stedfast <fejj@novell.com>
20588 * textbox.cpp (TextBox::Layout): Implemented rough layout.
20590 * layout.cpp (TextRun::TextRun): New ctor for use with TextBox.
20592 2008-08-22 Jeffrey Stedfast <fejj@novell.com>
20594 * textbox.cpp (TextBox::ArrangeOverride): Added.
20596 * frameworkelement.h (class FrameworkElement): Changed default
20597 Width/Height values to NAN.
20599 * textbox.cpp: Initial implementation of TextBox, Layout and
20600 Rendering logic still missing.
20602 2008-08-22 Larry Ewing <lewing@novell.com>
20604 * usercontrol.cpp (UserControl::OnPropertyChanged): make sure the
20607 2008-08-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
20609 * audio-alsa.cpp: Call Underflowed () when we run out of data.
20611 2008-08-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
20613 * mplayer.h, mplayer.cpp: Remove the Eof state and add two separate
20614 VideoEnded and AudioEnded states. Implement handling of VideoEnded
20615 state, and call MediaElement::MediaEnded when both states have been
20617 * media.h, media.cpp: Rename AudioFinished to MediaFinished and handle
20618 all media finished (both video and audio) logic there.
20620 2008-08-21 Larry Ewing <lewing@novell.com>
20622 * uielement.cpp (UIElement::ComputeLocalTransform): clean up
20623 accumulated transform logic. Keep the parent TransformFor out of
20624 the local_transform.
20626 2008-08-21 Larry Ewing <lewing@novell.com>
20628 * uielement.cpp (UIElement::Dispose): add logic removed from
20631 * dirty.cpp (Surface::PropagateDirtyFlagToChildren): use
20634 2008-08-21 Chris Toshok <toshok@ximian.com>
20636 [ fixes annotations not showing up in pageturn due to a NULL
20637 background on the ink presenter ]
20639 * stylus.h, stylus.cpp (class InkPresenter): add an override of
20640 EmptyBackground(). If we have a non-empty stroke bounding
20641 rectangle, return false. Otherwise fall back to
20642 Panel::EmptyBackground.
20644 * panel.h, panel.cpp (class Panel): add EmptyBackground() virtual
20645 method. the panel implementation returns true if GetBackground()
20646 returns NULL. Use this virtual method instead of an explicit
20647 GetBackground() call in Panel::FrontToBack.
20649 2008-08-21 Jeffrey Stedfast <fejj@novell.com>
20651 * enums.cpp: Added ScrollBarVisibility enum
20653 * text.cpp (TextBlock::OnPropertyChanged): Er... we need to
20654 invalidate if the TextWrappingProperty changes too.
20656 2008-08-21 Chris Toshok <toshok@ximian.com>
20658 * border.h, border.cpp, cornerradius.h: add new
20661 * Makefile.am: add border/cornerradius to the file list.
20663 * type.h, value.h, cbinding.cpp, cbinding.h, type-generated.cpp,
20664 dependencyproperty.g.cpp: regen.
20666 2008-08-21 Jeffrey Stedfast <fejj@novell.com>
20668 * textbox.h (class TextBox): The TextBox namespace should be
20669 System.Windows.Controls
20671 * stackpanel.h (class StackPanel): #include panel.h
20673 2008-08-21 Jeffrey Stedfast <fejj@novell.com>
20675 * textbox.h: Initial implementation of the TextBox class (just
20678 * value.h.in (struct Value): Don't use int32_t or uint64_t,
20679 etc. Be consistent and use the glib types.
20681 * layout.cpp (TextLayout::Layout): Fixed
20682 LineStackingStrategy/LineHeight issues. If we are using
20683 BlockLineHeight & the specified LineHeight is not Auto, then we
20684 need to use 0.0 as the descender.
20686 2008-08-21 Chris Toshok <toshok@ximian.com>
20688 * animation.h: make KeyFrame::Get/SetKeyTime pure virtual, and add
20689 accessors to all the subclasses. They're autogenerated from the
20690 respective class's DP's.
20692 * animation2.h: same.
20694 * animation.cpp: remove KeyFrame::Get/SetKeyTime implementations.
20696 * control.h (class Control): add some more GenerateAccessors.
20698 * control.cpp: and remove the manual implementations here.
20700 * dependencyproperty.g.cpp: regen.
20702 2008-08-21 Larry Ewing <lewing@novell.com>
20704 * animation.cpp (KeyFrameCollection::OnSubPropertyChanged): remove
20707 * xaml.cpp (value_from_str): unref the collections we create after
20710 2008-08-21 Jackson Harper <jackson@ximian.com>
20712 * xaml.cpp: Can't rely on the type for getting a managed element's
20713 name, we have to pull it from the element name provided to the
20716 2008-08-21 Chris Toshok <toshok@ximian.com>
20718 * dependencyobject.cpp (DependencyObject::HasProperty): pass
20719 additional_types to IsSubclassOf.
20721 * type.h, type.cpp: add IsSubclassOf variants that take
20722 additional_types. Fixes lookup problems of non-custom DP's on
20723 managed subclasses.
20725 2008-08-21 Chris Toshok <toshok@ximian.com>
20727 * value.h.in (struct Value): make all single arg primitive value
20728 typed ctors "explicit" so c++ won't do any magic implicit
20729 conversion from value type to Value.
20733 * runtime.cpp (Surface::ShowFullScreenMessage): need to create the
20734 Value()'s explicitly.
20736 * collection.cpp (DoubleCollection::FromStr): same.
20738 2008-08-20 Larry Ewing <lewing@novell.com>
20740 * dependencyobject.cpp (create_temp_namescope): don't leak the
20741 temporary namescope we create. Also don't create it over and over
20744 2008-08-20 Larry Ewing <lewing@novell.com>
20746 * dependencyobject.cpp|h: Add ContenAdded and ContentRemoved
20747 virtual methods so that we can begin to simplify content rules.
20749 * dirty.cpp (Surface::PropagateDirtyFlagToChildren): use
20750 GetContent to handle the children in a generic way.
20752 * uielement.cpp|h: start moving generic uielement content logic
20753 here. Implement OnLoaded and deal with content directly.
20755 * canvas.cpp|h: remove obsolete methods. Move most of zindex
20756 property logic from panel to here.
20758 * panel.cpp|h: move ZIndex logic to canvas and move OnLoaded logic
20761 * control.cpp|h: generate accessors, start remove OnLoaded and
20764 * dependencyproperty.g.cpp: regen.
20766 2008-08-20 Chris Toshok <toshok@ximian.com>
20768 * text.cpp, text.h: generate accessors for Glyph properties.
20770 * geometry.cpp, grid.cpp, media.cpp, panel.cpp, runtime.cpp,
20771 shape.cpp, stylus.cpp, transform.cpp, trigger.cpp, uielement.cpp,
20772 xaml.cpp: make another pass through files switching to C++
20773 accessors from GetValue(FooClass::FooProperty)->AsFoo().
20775 * dependencyproperty.g.cpp: regen.
20777 2008-08-20 Chris Toshok <toshok@ximian.com>
20779 * animation.cpp, animation.h, brush.cpp, brush.h, canvas.cpp,
20780 canvas.h, clock.cpp, clock.h, collection.cpp, collection.h,
20781 frameworkelement.cpp, frameworkelement.h, geometry.cpp,
20782 geometry.h, grid.h, media.cpp, media.h, namescope.cpp,
20783 namescope.h, panel.cpp, panel.h, playlist.cpp, shape.cpp,
20784 shape.h, stackpanel.h, style.h, stylus.cpp, stylus.h, text.cpp,
20785 text.h, transform.cpp, transform.h, trigger.h, uielement.cpp,
20786 uielement.h, xap.cpp, xap.h:
20788 mostly, decorate almost all DependencyProperties with
20789 @GenerateAccessors, add in lots of new ones that weren't present
20790 before (to the .h), and remove all those implementations from
20793 Also, don't use #if SL_2_0 in the headers. we can't depend on
20794 that being defined (especially once we install). Any
20795 2.0-specific behavior needs to be done in the .cpp files. There
20796 are still a few things that are wrong wrt
20797 this (dependencyproperty.g.cpp needs to define the DP's
20798 regardless of version, they can just be NULL in the 1.0 case for
20799 2.0 properties, for instance.)
20801 * cbinding.cpp, cbinding.h, dependencyproperty.g.cpp: regen
20803 2008-08-20 Chris Toshok <toshok@ximian.com>
20805 * uielement.h (ClearLoaded): use &=, not |=, here. fixes tests.
20807 2008-08-20 Jeffrey Stedfast <fejj@novell.com>
20809 * layout.cpp (TextLayout::Layout): Updated to take a
20810 TextLayoutHints argument for providing hints like text alignment
20811 and line stacking/height.
20813 * text.cpp (class TextBlock): Updated a bit for Silverlight
20814 2.0. All of the properties added in 2.0 are now there, although
20815 only 2 of them are respected at the moment (line stacking strategy
20818 * enums.cpp|h: Added LineStackingStrategy and TextAlignment enums.
20820 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20822 * audio.cpp: NULL out the player instance after deleting it.
20824 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20826 * audio-pulse.cpp, audio-pulse.h: Close: Detect if Close has been
20827 called and if so, do nothing.
20829 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20831 * audio.cpp: We only support 1 or 2 channels for the moment.
20833 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20835 * media.cpp, media.h: Fix buffering progress to take into account that
20836 the first pts isn't necessarily 0 (happens for live media).
20838 2008-08-20 Chris Toshok <toshok@ximian.com>
20840 * runtime.cpp (Surface::HandleMouseEvent): make sure not to emit
20841 Focus events on click in a 1.0 context.
20843 2008-08-20 Jackson Harper <jackson@ximian.com>
20845 * xaml.cpp|h: Setting properties requires the xaml namespace so it
20846 can lookup managed types. TODO: It also needs the default
20847 assembly, but I am thinking of moving that to the loader.
20849 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20851 * mplayer.cpp: Properly ref/unref the AudioSource.
20853 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20855 * media.h: Remove G_BEGIN/END_DECLS and two unnecessary #includes.
20857 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20859 * media.cpp, media.h, runtime.cpp: Remove media_init, just make
20860 runtime_init call Media::Initialize directly.
20862 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20864 * media.h, media.cpp: Remove media_element_advance_frame from header,
20865 no need to make it public.
20867 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20869 * mplayer.cpp: AdvanceFrame: only return true if we actually processed
20870 any frames. SeekCallback: clear the queue of audio frames as well.
20871 * media.h, media.cpp: Removed SetPreviousPosition, no longer needed.
20872 Don't change previous_position while we're seeking, and don't make
20874 * audio.cpp, audio.h: Added AudioSource::ClearFrames.
20876 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20878 * runtime.cpp: Fix 1.0 build. No idea if the fix is correct.
20880 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20882 * cbinding.cpp, cbinding.h, xap.h: Mark Xap as 2.0 only for the
20885 2008-08-20 Stephane Delcroix <sdelcroix@novell.com>
20887 * canvas.h, canvas.cpp:
20888 * uielement.h, uielement.cpp: move the ZIndexProperty and Get/Set-ers
20889 from uielement to Canvas. Drop the non-static Get/Set-Top/Left ()
20891 * panel.cpp, collection.cpp: related changes.
20893 2008-08-20 Stephane Delcroix <sdelcroix@novell.com>
20895 * uielement.h: change the generator instructions so the
20896 NameProperty is generated in FrameworkElement.
20898 2008-08-19 Chris Toshok <toshok@ximian.com>
20900 * dependencyobject.h,
20901 dependencyobject.cpp (DependencyObject::GetContent): ripped this
20902 out of a hack, should prove useful for the work coming up.
20904 2008-08-19 Chris Toshok <toshok@ximian.com>
20906 * runtime.cpp (Surface::FocusElement): fix the IsTabStop check.
20908 2008-08-19 Chris Toshok <toshok@ximian.com>
20910 * control.h, control.cpp (class Control): generate a binding for
20911 Control::InitializeFromXaml and drop the 2 manual C bindings.
20913 * cbinding.h, cbinding.cpp: regen.
20915 2008-08-19 Chris Toshok <toshok@ximian.com>
20917 * xap.h, xap.cpp (class Xap): rename xap_unpack to Xap::Unpack.
20918 autogenerate our binding for it.
20920 * cbinding.h, cbinding.cpp: regen.
20922 2008-08-19 Chris Toshok <toshok@ximian.com>
20924 * eventargs.h, eventargs.cpp (class Keyboard): make this more of a
20925 real class, and remove the implementation of
20926 keyboard_get_modifiers. instead, provide a c++ method (both a
20927 getter and setter) and annotate the Getter with
20928 GenerateCBinding/GeneratePInvoke.
20930 * collection.h, collection.cpp: reorder the class decls (why do
20931 people put private first?) and make CollectionIterator a real
20932 class, with annotated methods. Also, move
20933 double_collection_from_str and point_collection_from_str to
20934 DoubleCollection::FromStr and PointCollection::FromStr
20935 respectively. move double_garray_from_str out of here (to
20938 * utils.h, utils.cpp: new (hopefully last) home for
20939 double_garray_from_str.
20941 * point.h, point.cpp (struct Point): rename point_from_str to
20942 Point::FromStr. no reason to have a C method for that.
20944 * rect.h, rect.cpp (struct Rect): same thing with Rect::FromStr.
20946 * window-gtk.h (class MoonWindowGtk): mark the ctor and
20947 GetWidget() with GenerateCBinding/GeneratePInvoke.
20949 * window-gtk.cpp: and remove their implementations.
20951 * xaml.cpp: convert over to all the new ::FromStr methods.
20953 * thickness.cpp: track new home of double_garray_from_str.
20955 * cbinding.h, cbinding.cpp: regen.
20957 2008-08-19 Chris Toshok <toshok@ximian.com>
20959 * uielement.h, uielement.cpp: make almost all data
20960 private/protected. Add a couple of methods to aid in
20961 this (IsLoaded, ClearLoaded, TransformPoint). Get rid of the
20962 cbinding for transform_point - it's never used. Also, re-order
20963 the header to put public things first, then protected then
20966 * runtime.cpp: use IsLoaded.
20968 * panel.cpp: use ClearLoaded.
20970 * text.cpp, shape.cpp, eventargs.cpp, frameworkelement.cpp: use
20973 2008-08-19 Chris Toshok <toshok@ximian.com>
20975 * runtime.cpp (Surface::HandleMouseEvent): don't compare the input
20976 lists, as we will almost always have identical lists. compare the
20977 head of the new list to focused_element to determine if focus
20980 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20982 * pipeline.cpp: Beautify error messages.
20984 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20986 * media.cpp: test-inexistent-media(s) were failing due to ISP's
20987 tendency to return search pages for failed dns lookups. Fixed tests
20988 after testing with sane DNS settings and did the appropiate change
20989 in code (raise correct error message/number).
20991 2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
20993 * runtime.h: Make RUNTIME_INIT values sequential.
20995 2008-08-19 Chris Toshok <toshok@ximian.com>
20997 * xaml.cpp (xaml_hydrate_from_str): make sure to set the surface
20998 of the object before parsing so that objects don't switch from the
20999 loader's surface to NULL as they're added to the hierarchy while
21002 2008-08-19 Larry Ewing <lewing@novell.com>
21004 * shape.cpp (Shape::InsideObject): check the extents first, then
21005 reorder the stroke/fill tests to test for the most likely first.
21007 Helps speed up sliverlight.net/world a bit.
21009 2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
21011 * mplayer.h, pipeline.h: No need to surround GetTypeName with
21012 OBJECT_TRACKING anymore.
21014 2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
21016 * audio.cpp, audio.h, audio-alsa.cpp, audio-alsa.h, audio-pulse.cpp,
21017 audio-pulse.h: Added, our new audio abstraction/implementation.
21018 * Makefile.am, src.mdp, type-generated.cpp: Updated.
21019 * mplayer.cpp, mplayer.h: Moved audio code into its own file(s).
21020 * runtime.cpp, runtime.h: Add runtime overrides for audio.
21022 2008-08-19 Jeffrey Stedfast <fejj@novell.com>
21024 * xap.cpp (xap_unpack): Fixed compiler warning.
21026 2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
21028 * media.cpp: Include headers mplayer.h doesn't include anymore.
21029 MediaElement::SetMedia: only set audio data on the MediaPlayer if
21030 the media has audio. TImelineMarkerCollection::Add: don't call the
21031 base class' Add, call base's Insert instead. Fixes a stack overflow
21032 since base class' Add calls Insert, which TimelineMarkerCollection
21033 overrides to call Add.
21035 2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
21037 * enums.cpp: Wrap 2.0-only code in SL_2_0.
21039 2008-08-19 Jeffrey Stedfast <fejj@novell.com>
21041 * zip/unzip.c: Get rid of unused variable.
21043 * value.cpp (Value::ToString): Get rid of unused variable.
21045 2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
21047 * dependencyobject.h: EventObject::ref: print a stack trace before the
21048 abort if we can, and fix typo in the abort message.
21050 2008-08-19 Geoff Norton <gnorton@novell.com>
21052 * xap.cpp: Ensure we can actually enter the directory we're creating.
21054 2008-08-19 Jeffrey Stedfast <fejj@novell.com>
21056 * mplayer.cpp: Silence the compile warning.
21058 * color.cpp (color_from_str): Got rid of unused variable.
21060 * xaml.cpp (dependency_object_set_attributes): Don't need to use
21061 strlen(str) == 0 to figure out if the string is empty, just check
21063 (wrap_type): Removed. Doesn't seem to be used any longer.
21064 (get_type_for_property_name): Same.
21065 (panel_add_child): Same.
21066 (dependency_object_set_property): Made static.
21067 (dependency_object_set_attributes): Same.
21068 (dependency_object_hookup_event): Same.
21069 (dependency_object_missed_property): Same.
21071 * dependencyproperty.cpp (resolve_property_path): Use proper
21072 integer types and avoid calling strlen if all we care to know is
21073 if the string is empty.
21075 * runtime.cpp (Surface::Paint): Get rid of an annoying debug
21077 (Surface::HandleMouseEvent): Removed unused variable.
21079 2008-08-19 Chris Toshok <toshok@ximian.com>
21081 * trigger.cpp (EventTrigger::SetTarget): make the 2.0 case more
21082 robust - handle Type.Event notation, making sure that the type is
21083 valid for the target.
21085 2008-08-19 Larry Ewing <lewing@novell.com>
21087 * runtime.cpp|h: add override to use sofware fallbacks for
21090 2008-08-19 Chris Toshok <toshok@ximian.com>
21092 * trigger.cpp (EventTrigger::SetTarget): do the AddHandler in both
21093 1.0 and 2.0 cases. big oops.
21095 2008-08-19 Jeffrey Stedfast <fejj@novell.com>
21097 * dependencyobject.cpp (DependencyObject::GetObjectType): Get rid
21098 of a warning that is no longer valid.
21100 2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
21102 * downloader.h, downloader.cpp: Add a request field to
21103 DownloaderResponse, and a response field to DownloaderRequest. When
21104 a request is aborted, also abort the response. This fixes a crash
21105 when we aborted the request before receiving a response, the
21106 response had no idea the request had been aborted (since the
21107 request didn't store the response after creating it, it couldn't
21108 notify the response of the abort), and happily accessed deleted
21111 2008-08-18 Chris Toshok <toshok@ximian.com>
21113 * runtime.cpp (Surface::CreateArgsForEvent): new method, create
21114 the right kind of args for a given event. we should probably
21116 (Surface::EmitEventOnList): use CreateArgsForEvent. Only create
21117 one instance of the event args that we use to bubble along the
21118 element list. If it's a RoutedEventArgs subclass, set the source
21119 to be the first element in the list, and check the "Handled"
21120 attribute after every emit to see if we should finish early (this
21121 provides for 2.0 semantics).
21122 (Surface::FocusElement): unfortunately the event generation is
21123 async, so add a tick call if we need to. if we already have a
21124 tick call (meaning >= 1 focus change has happened already in this
21125 tick), we drop the intervening change(s). This is likely wrong.
21126 (Surface::GenerateFocusChangeEvents): emit GotFocus/LostFocus on
21127 the proper element lists.
21128 (Surface::HandleUIKeyPress, Surface::HandleUIKeyRelease): if we're
21129 silverlight2 (and we have a focused element), emit the event on
21130 the list of elements from the focused element back up to the root.
21131 Otherwise just emit it on the toplevel.
21133 * runtime.h (class Surface): add GetFocusedElement/FocusElement
21134 methods, which are used to implement
21135 FocusManager.GetFocusElement() and Control.Focus().
21137 * uielement.h, uielement.cpp (class UIElement): remove a bunch of
21138 Emit$Event() methods that were never used.
21140 * trigger.cpp: in 2.0, you can put other events in RoutedEvent,
21141 not just "Loaded". there are parsing rules that we can't make use
21142 of here, so more work will likely have to happen in the parser.
21144 * trigger.h (class EventTrigger): add registered_event_id.
21146 * cbinding.h, cbinding.cpp: regenerate.
21148 2008-08-18 Geoff Norton <gnorton@novell.com>
21150 * type-generated.cpp, cbinding.cpp|h: Rengerated
21151 * dependencyobject.h: Bind DependencyObject .ctor
21153 2008-08-18 Geoff Norton <gnorton@novell.com>
21155 * deployment.h: Move CrossDomainAccess to
21156 * enums.h|cpp: Register CrossDomainAccess so that AppMainfest
21157 can specify values from the enum.
21159 2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
21161 * cbinding.cpp, cbinding.h, uielement.h: Mark
21162 UIElement::GetTransformToUIElement as 2.0, fixes 1.0 build.
21164 2008-08-18 Larry Ewing <lewing@novell.com>
21166 * panel.cpp|h: remove SetSurface override, the
21167 DependencyObjectCollection::SetSurface does the work already.
21169 2008-08-18 Jeffrey Stedfast <fejj@novell.com>
21171 * uielement.cpp: Autogenerate more of the bindings, make
21172 desired_size private, etc.
21174 2008-08-18 Geoff Norton <gnorton@novell.com>
21176 * eventargs.cpp|h: Change the return type to int, fix the build.
21178 2008-08-18 Jeffrey Stedfast <fejj@novell.com>
21180 * uielement.cpp (uielement_get_surface): Removed.
21181 (uielement_invalidate): Removed.
21182 (uielement_set_transform_origin): Removed.
21184 * transform.cpp: Removed manual c-bindings.
21186 * text.cpp: Removed manual c-bindings for property accessors.
21188 2008-08-18 Geoff Norton <gnorton@novell.com>
21190 * type-generated.cpp, cbinding.cpp|h: Rengerated
21191 * uielement.cpp|h, type.h, value.h: Keyboard->Key
21192 * runtime.cpp|h: Move key translation to eventargs, and pass the
21193 raw GdkEventKey to KeyEventArgs.
21194 * eventargs.cpp|h: Implement KeyEventArgs bound to the managed stuff
21195 and remove the old KeyboardEventArgs.
21197 2008-08-18 Jeffrey Stedfast <fejj@novell.com>
21199 * stylus.h: Moved required manual c-bindings into G_*_DECLS block.
21201 * size.cpp: Removed manual ctor c-binding.
21203 * shape.cpp: Removed manual c-bindings for property accessors.
21205 2008-08-18 Geoff Norton <gnorton@novell.com>
21207 * media.cpp|h, cbinding.cpp|h: Implement support for generating Image's
21208 from managed Streams.
21210 2008-08-18 Jeffrey Stedfast <fejj@novell.com>
21212 * runtime.cpp: Removed manual c-bindings for Surface and renamed
21213 Get/SetTrans() to Get/SetTransparent().
21215 * panel.cpp: Removed manual c-bindings for property accessors.
21217 * media.cpp: Removed manual c-bindings for property accessors and
21218 other methods that are now autogenerated.
21220 2008-08-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
21222 * dependencyobject.h: Make the generator happy.
21224 2008-08-18 Jeffrey Stedfast <fejj@novell.com>
21226 * geometry.cpp: Removed manual c-bindings for property accessors.
21228 2008-08-18 Michael Dominic K. <mdk@mdk.am>
21230 * runtime.h: Caller is "in main thread" also when the main_thread
21231 pointer equals NULL (no surface has been created).
21233 2008-08-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
21235 * debug.cpp: Fix a leak found by valgrind.
21237 2008-08-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
21239 * dependencyobject.h: Make GetTypeName virtual if we're tracking
21240 objects, enables better output of lost objects.
21242 2008-08-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
21244 * dependencyobject.cpp: DrainUnrefs: since unreffing objects may cause
21245 more objects to be enqueued for unref, loop until there are none
21248 2008-08-17 Geoff Norton <gnorton@novell.com>
21250 * downloader.cpp|h: Add a method for DownloaderResponse to
21251 support a Header Visitor.
21253 2008-08-17 Geoff Norton <gnorton@novell.com>
21255 * uielement.h: Expose desired_size as public to fix the build.
21257 2008-08-17 Chris Toshok <toshok@ximian.com>
21259 * uielement.h, frameworkelement.h: can't use SL_2_0 in headers.
21261 2008-08-17 Chris Toshok <toshok@ximian.com>
21263 * Makefile.am (libmoon_include_HEADERS): INCLUDE_MONO_RUNTIME ->
21264 INCLUDE_MANAGED_CODE.
21266 2008-08-15 Larry Ewing <lewing@novell.com>
21268 * clock.cpp|h: add methods Jeff removed back.
21270 2008-08-15 Chris Toshok <toshok@ximian.com>
21272 * stylus.h (class DrawingAttributes): all managed DP fields are
21274 (class Stroke): DrawingAttributesProperty and StylusPointsProperty
21275 are private in managed-land.
21277 2008-08-15 Jeffrey Stedfast <fejj@novell.com>
21279 * grid.h: Autogenerate bindings for GetActualWidth/Height
21281 * grid.cpp: Removed manual c-bindings.
21283 * frameworkelement.cpp: Removed manual c-bindings.
21285 2008-08-15 Chris Toshok <toshok@ximian.com>
21287 * eventargs.h (enum CollectionChangedAction): change Reset to
21288 Cleared, and add Clearing to handle the old functionality in
21289 DependencyObject::OnCollectionClear.
21291 * dependencyobject.h (class DependencyObject): remove
21292 OnCollectionClear. we handle that case in OnCollectionChanged
21295 * panel.h, panel.cpp (Panel::OnCollectionChanged): move
21296 OnCollectionClear code to here.
21298 * uielement.cpp (UIElement::OnCollectionChanged): add
21299 ActionClearing code here.
21301 * stylus.cpp, text.cpp: track CollectionChangedAction enum change.
21303 * collection.cpp (Collection::Clear): use
21304 EmitChanged (CollectionChangedActionClearing,...) instead of
21307 2008-08-15 Jeffrey Stedfast <fejj@novell.com>
21309 * eventargs.cpp|h: Same.
21311 * control.cpp: Same.
21313 * contentcontrol.cpp: Removed manual property accessor c-bindings.
21315 * clock.cpp: Removed manual c-bindings for things that can be
21318 * brush.cpp|h: Removed manual c-bindings for property accessors.
21320 * animation.cpp|h: Added some convenience c++ property accessors and
21321 got rid of all of the manual c-bindings. Fixed them to be
21324 * stylus.cpp: Added c++ property accessors and updated the code to
21325 use them (cleans up some code) and also got rid of the c binding
21326 accessors. We'll autogenerate these.
21328 2008-08-15 Sebastien Pouliot <sebastien@ximian.com>
21330 * layout.cpp: Don't add kerning before a dot (.). This match SL
21331 behavior (i.e. it's not a "sliding dot" algorithm like I expected)
21332 and the effect is visible in a few DRT (like #184).
21334 2008-08-15 Jeffrey Stedfast <fejj@novell.com>
21336 * uielement.cpp (UIElement::GetTriggers): Added for convenience.
21337 (UIElement::Dispose): Use the new convenience method.
21339 2008-08-15 Chris Toshok <toshok@ximian.com>
21341 * panel.cpp (Panel::ChildRemoved): queue a ZIndex re-sort here.
21342 (Panel::ChildAdded): call item->OnLoaded if we're loaded, and
21344 (Panel::OnCollectionChanged): simplify this since the code moved
21345 to ChildAdded/ChildRemoved.
21347 * panel.h, panel.cpp (Panel::Dispose): loop over our children
21348 setting their visual parent to NULL.
21350 * uielement.h, uielement.cpp (UIElement::Dispose): loop over the
21351 trigger collection removing ourselves as the target.
21352 (UIElement::OnPropertyChanged): handle TriggersProperty here -
21353 remove target from the old triggers and set target on the new
21355 (UIElement::OnCollectionChanged): new method, handle
21356 TriggersCollection.
21358 * dependencyobject.cpp: be consistent in our treatment of
21359 LogicalParent - clear it in every place we're removing a DO. Warn
21360 if we're setting it again on the same DO.
21362 * collection.h, collection.cpp: remove triggercollection's
21363 added/removedfromcollection, adn remove uielementcollection's
21364 removedfromcollection. Also, stop using a separate closure. The
21365 collection's LogicalParent always has the same value - use that.
21367 2008-08-15 Jeffrey Stedfast <fejj@novell.com>
21369 * clock.cpp (TimeManager::SourceTick): Instead of always using up
21370 to 1/30 of a second for flushing the async queue, use only the
21371 time remaining in our render pass to flush it.
21373 2008-08-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
21375 * animation.h: KeyTimeProperty isn't nullable in managed code.
21377 2008-08-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
21379 * cbinding.cpp, cbinding.h: Regenerated.
21380 * media.cpp, media.h: Add a MediaElement::SetStreamSource, and hack it
21381 to at least open the source.
21382 * pipeline.cpp, pipeline.h: Added ManagedStreamSource.
21384 2008-08-15 Jackson Harper <jackson@ximian.com>
21386 * xaml.cpp: Need to advance after F.
21388 2008-08-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
21390 * animation.h, dependencyproperty.g.cpp: KeyTime is nullable. Fixes MS
21393 2008-08-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
21395 * dependencyproperty.g.cpp: Regenerated.
21397 2008-08-14 Larry Ewing <lewing@novell.com>
21399 * animation.h (class KeyFrame): remove the KeyTime DP and make
21400 the ctor private this is an abstract class.
21402 * animation.cpp: retrieve the property via name.
21404 2008-08-14 Jeffrey Stedfast <fejj@novell.com>
21406 * clock.cpp (TimeManager::SourceTick): Call InvokeTickCall() as
21407 many times as we can in 1/30th of a second. Major visual
21408 performance improvement for bug #395160.
21410 2008-08-14 Jackson Harper <jackson@ximian.com>
21412 * xaml.cpp|h: We need to pass a pointer to the top level control
21413 when hooking up a managed event, the managed code uses this to
21414 find the method to invoke.
21416 2008-08-14 Jeffrey Stedfast <fejj@novell.com>
21418 * uielement.cpp: Implemented property accessors for ZIndex
21420 * collection.cpp (UIElementZIndexComparer): Use
21421 UIElement::GetZIndex(). If, in the future, we make GetZIndex()
21422 return a cached value, now we'll automagically benefit from it.
21424 2008-08-14 Jeffrey Stedfast <fejj@novell.com>
21426 ZIndex sorting optimization for bug #395160
21428 * panel.cpp (Panel::UpdateTotalHitTestVisibility): Don't iterate
21429 over the z_sorted list, it might not yet be
21430 populated (e.g. ResortZIndex() may not have been called yet).
21431 (Panel::OnPropertyChanged): Set a DirtyChildrenZIndices bit if the
21432 new collection is non-null.
21433 (Panel::OnCollectionChanged): Queue ZIndex resorts as appropriate.
21434 (Panel::OnLoaded): Queue a resort here too.
21436 * collection.cpp (UIElementCollection::AddedToCollection):
21437 Removed. We don't want to do the zindex sortign here anymore. Too
21438 slow. Instead, we'll have Panel::OnCollectionChanged() set the
21439 DirtyChildrenZIndices dirty flag so that the renderer forces a
21441 (UIElementCollection::Insert): Removed, no need to override
21442 anymore since we won't be resorting by zindex here anymore.
21443 (UIElementCollection::ResortByZIndex): Now that z_sorted isn't
21444 maintained as items are added/inserted, we need to always init the
21445 z_sorted array here even if we only have 1 item.
21447 2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
21449 * xaml.cpp, pipeline.cpp: Don't use base_unref, call unref on the
21451 * playlist.cpp: Use DependencyObject::SetName instead of the C method.
21452 * dependencyobject.h, dependencyobject.cpp: Generate all c methods, as
21453 well as Name accessors.
21454 * cbinding.h, dependencyproperty.g.cpp, cbinding.cpp: Regenerated.
21455 * runtime.cpp: Updated according to new method names.
21457 2008-08-14 Jackson Harper <jackson@ximian.com>
21459 * xaml.cpp: We now create property instances from the property's
21460 type info not the property's parent type. This will allow us to
21461 have a managed attached property on a native object.
21463 2008-08-14 Chris Toshok <toshok@ximian.com>
21465 * Makefile.am (libmoon_la_SOURCES): add thickness.cpp
21467 * thickness.h, thickness.cpp: add thickness_from_str.
21469 * xaml.cpp: add thickness parsing.
21471 2008-08-14 Jackson Harper <jackson@ximian.com>
21473 * xaml.cpp: Need to lookup property element name's in their
21474 namespace so that managed attached properties can be set.
21476 2008-08-14 Jackson Harper <jackson@ximian.com>
21478 * xaml.cpp: If there is a dot in the element name we can assume
21479 it's a property (or at least not an element). This should prevent
21480 some extra calls into managed code to try to create types from
21483 2008-08-13 Geoff Norton <gnorton@novell.com>
21485 * runtime.cpp|h, clock.cpp|h: Move the g_idle_idd and g_timeout
21486 calls into the time manager.
21488 2008-08-13 Geoff Norton <gnorton@novell.com>
21490 * runtime.cpp|h: Add a binding for g_idle_add.
21492 2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
21494 * cbinding.cpp, cbinding.h, eventargs.cpp, eventargs.h: Generate two
21495 MouseEventArgs methods.
21497 2008-08-14 Jackson Harper <jackson@ximian.com>
21499 * type-generated.cpp: Value types.
21501 2008-08-13 Jackson Harper <jackson@ximian.com>
21503 * xaml.cpp: Make sure we set content properties.
21505 2008-08-13 Jackson Harper <jackson@ximian.com>
21507 * xaml.cpp: Add support for parsing value types.
21509 2008-08-13 Chris Toshok <toshok@ximian.com>
21511 * panel.cpp (Panel::OnCollectionChanged): we only need to call
21512 OnLoaded on the new child.
21514 2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
21516 * stylus.h: StylusInfo doesn't have a managed equivalent.
21518 2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
21520 * dependencyproperty.h: Generate CBinding and PInvoke for IsAttached.
21521 * cbinding.cpp, cbinding.h: Regenerated.
21523 2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
21525 * type.cpp: Remove spew.
21526 * dependencyobject.cpp: GetValue*WithError: Fix error messages to say
21527 we're trying to get values, not set them.
21529 2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
21531 * dependencyproperty.g.cpp: Regenerated.
21532 * geometry.h: Added IsFilled property.
21534 2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
21536 * brush.h: Set correct managed DP access and property types.
21538 2008-08-13 Jeffrey Stedfast <fejj@novell.com>
21540 * *.h: Added GeneratePInvoke attribute to each ctor
21542 2008-08-13 Jeffrey Stedfast <fejj@novell.com>
21544 * text.cpp: s/Inlines/InlineCollection/g
21546 * xaml.cpp: s/Inlines/InlineCollection/g
21548 * collection.h (class InlineCollection): Renamed from Inlines.
21550 * trigger.h (class TriggerAction): Generate C Binding for ::Fire()
21551 and also the ctor. Needed to prevent a crash in test-props.html
21553 2008-08-13 Geoff Norton <gnorton@novell.com>
21555 * runtime.cpp|h: Reuse the old html_timer infrastructure for the
21556 intial DispatcherTimer implementation.
21558 2008-08-13 Jeffrey Stedfast <fejj@novell.com>
21560 * media.h (class MediaElement): Make MarkersProperty internal for
21563 * grid.h (class Grid): Make Column/RowDefinitionsProperties
21564 internal for managed-side.
21566 * text.h (class TextBlock): Make InlinesProperty internal for
21569 * panel.h (class Panel): Update ChildrenProperty managed property
21572 Also added newlines to the end of some files to silence compile
21575 2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
21577 * dependencyproperty.g.cpp, type.h, type-generated.cpp, value.h,
21578 cbinding.cpp, cbinding.h: Regenerated.
21579 * geometry.h: Annotation fix.
21580 * Makefile.am, src.mdp: Added tilesource.h
21581 * tilesource.h: Added.
21583 2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
21585 * src.mdp, Makefile.am: Added animation2.h
21586 * type.h, type-generated.cpp, value.h, cbinding.cpp, cbinding.h,
21587 dependencyproperty.g.cpp: Regenerated.
21588 * animation.h: Added missing 2.0 DPs and more annotations.
21589 * animation2.h: Added, contains 2.0 animation classes.
21590 * clock.h: There are no managed equivalent of TimelineGroup and
21591 ParallelTimeline, remove their Namespace annotation.
21593 2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
21595 * shape.h: Fix warning.
21597 2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
21599 * shape.h: The managed Shape class must be constructable, so make all
21600 pure virtual methods from the native Shape class just virtual.
21601 * cbinding.cpp, cbinding.h, type-generated.cpp: Regenerated.
21603 2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
21605 * animation.h, brush.h, cbinding.cpp, cbinding.h, clock.h,
21606 dependencyproperty.g.cpp, frameworkelement.h, geometry.h, panel.h,
21607 text.h, transform.h, type-generated.cpp, usercontrol.h: Added more
21608 annotations to make gui-compare happier.
21610 2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
21612 * control.h, dependencyobject.h, deployment.h, frameworkelement.h,
21613 style.h, template.h, trigger.h, uielement.h: Gui-compare annotation
21616 2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
21618 * stackpanel.h, src.mdp, Makefile.am, cbinding.cpp, cbinding.h,
21619 dependencyproperty.g.cpp, enums.cpp, enums.h, type.h,
21620 type-generated.cpp, value.h: Added a native StackPanel class and
21621 generate the managed StackPanel.
21623 2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
21625 * brush.h, contentcontrol.h, deployment.h, downloader.h, media.h,
21626 namescope.h, stylus.h, transform.h: Tweak some annotations.
21628 2008-08-12 Chris Toshok <toshok@ximian.com>
21630 * style.h (class Style): make the "Setters DP" field private.
21632 * template.h (class ControlTemplate): add TargetType DP
21634 * dependencyproperty.g.cpp: regen.
21636 2008-08-12 Chris Toshok <toshok@ximian.com>
21638 * style.h (class Setter): hack for the DependencyProperty valued
21639 property. we need to parse a string DP name in a context where we
21640 don't know the type to apply to it, so we need to have a string
21643 * dependencyproperty.g.cpp: regen.
21645 2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
21647 * collection.h: Annotate Collection.
21649 2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
21651 * animation.h, clock.h, collection.h, error.h, eventargs.h, media.h,
21652 size.h, style.h, template.h, trigger.h: Add @Namespace annotations.
21654 2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
21656 * src.mdp: Updated.
21658 2008-08-12 Chris Toshok <toshok@ximian.com>
21660 * collection.cpp (Collection::Clear): make a temporary copy of the
21661 array so we can zero out the ptrarray before calling
21662 RemovedFromCollection.
21664 2008-08-12 Jackson Harper <jackson@ximian.com>
21667 * xaml.cpp: Hydrate now passes in the default assembly name and
21668 path (we can probably do away with path's I think that's just a
21669 holdover from 1.1). If no assembly name is specified in the
21670 custom xmlns, the default's are used.
21672 2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
21674 * trigger.h, control.h, deployment.h, text.h, dependencyproperty.g.cpp,
21675 style.h, uielement.h, grid.h, media.h: Tweaked annotations to
21676 support managed DP accessor generation.
21678 2008-08-12 Jeffrey Stedfast <fejj@novell.com>
21680 * collection.cpp (Collection::SetCount): Convenience function.
21681 (Collection::Clear): Use SetCount().
21682 (Collection::Insert): Same.
21683 (Collection::RemoveAt): Same.
21685 * media.cpp (TimelineMarkerCollection::Add): Chain up to direct
21686 parent class rather than base class - while the
21687 DependencyObjectCollection might not currently override Add/Insert
21688 methods, if at some later point overrides are added, then we need
21689 to do no work here.
21691 * collection.cpp (DependencyObjectCollection::SetValueAt):
21692 Removed (not used anywhere).
21693 (Collection::SetValueAtWithError): This needs to call
21694 SetValueAt(), not GetValueAt().
21695 (Collection::SetValueAt): Delete the removed Value after emitting
21696 the event so we don't leak it.
21698 2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
21700 * animation.h, brush.h, clock.h, control.h, dependencyobject.h,
21701 deployment.h, downloader.h, frameworkelement.h, media.h, text.h,
21702 trigger.h, uielement.h: Use string instead of char* as
21705 2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
21707 * animation.h, brush.h, canvas.h, clock.h, collection.h,
21708 contentcontrol.h, control.h, dependencyobject.h, deployment.h,
21709 downloader.h, frameworkelement.h, geometry.h, grid.h, media.h,
21710 namescope.h, panel.h, shape.h, style.h, stylus.h, text.h,
21711 transform.h, trigger.h, uielement.h, usercontrol.h: Added
21712 @Namespace annotations, and changed @PropertyType which were
21713 declared as gint32 (and are enums) to use the actual enum type.
21714 * dependencyproperty.g.cpp: Updated.
21716 2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
21718 * src.mdp: Updated.
21720 2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
21722 * dependencyproperty.h, type.h, type-generated.cpp, value.h: Added
21723 DependencyProperty to the Kind enum.
21725 2008-08-11 Chris Toshok <toshok@ximian.com>
21727 * deployment.h (class Application): add ResourceProperty.
21729 * style.h: add ValueProperty.
21731 * cbinding.h, cbinding.cpp: hm, looks like I forgot to regen these
21732 after adding the Version=2.0 stuff to the collection api.
21734 * dependencyproperty.g.cpp: regen.
21736 2008-08-11 Chris Toshok <toshok@ximian.com>
21738 * error.h, error.cpp: add an enum to MoonError that lets us
21739 specify which exception to raise.
21741 * collection.h, collection.cpp: a few changes:
21743 1. make most methods take Value* now instead of Value, to ease the
21744 autogenerated bindings. Leave in Add/Remove taking (Value v) so
21745 we can let c++ do some implicit conversion lifting for us. Leave
21746 the (Value) variants as non-virtual, and make the Value* ones
21749 2. Make ::Add call ::Insert, instead of duplicating all the code.
21751 3. Move all calls of AddedToCollection and RemovedFromCollection
21752 to *after* the work has been done (they're past-tense, so do what
21753 their name implies.) This means subclasses can assume the item is
21754 already in the array (or removed from it) when those methods are
21755 called. The one holdout to this utopian ideal is Clear(). we
21758 4. Switch from overriding GetValue to handle CountProperty (and
21759 leaking a Value* every time we get it) to setting the
21760 CountProperty whenever we need to (in Insert/RemoveAt).
21762 5. Add special GetValueAtWithError, SetValueAtWithError, and
21763 RemoveAtWithError methods, that allow us to effectively raise
21764 exceptions from the unmanaged code. Use the new
21765 MoonError::ErrorKind enum to specify which exception.
21767 6. remove a bunch of C api, which is now autogenerated.
21769 * dependencyproperty.g.cpp (dependency_property_g_init): regen to
21770 pick up Collection::CountProperty's default value.
21772 * cbinding.h, cbinding.cpp: autogen'ed collection api.
21774 * stylus.h, media.h, media.cpp: track collection changes.
21776 * dependencyobject.cpp: track MoonError enum change.
21778 2008-08-11 Chris Toshok <toshok@ximian.com>
21780 * dependencyproperty.g.cpp: regen.
21782 * control.h (class Control): add StyleProperty.
21784 2008-08-11 Sebastien Pouliot <sebastien@ximian.com>
21786 * layout.cpp: Compute line's height with more precision. This
21787 removes the cumulative difference (over multiple lines) with
21788 Silverlight implementation. Fix DRT#209 (enough to PASS) and
21789 improve several other ones (already passing but imperfect).
21791 2008-08-11 Chris Toshok <toshok@ximian.com>
21793 * style.h: comment out 2 problematic DP's for now.
21795 * dependencyproperty.g.cpp: regen
21797 2008-08-11 Chris Toshok <toshok@ximian.com>
21799 * style.h, style.cpp: add Style, SetterBase, Setter, and
21800 SetterBaseCollection unmanaged types.
21802 * Makefile.am: add them to the 2.0 build.
21804 * type.h, type-generated.cpp, value.h, cbinding.h, cbinding.cpp,
21805 dependencyproperty.g.cpp: regenerate from style.h/style.cpp.
21807 2008-08-11 Jeffrey Stedfast <fejj@novell.com>
21809 * shape.cpp (Polyline::OnCollectionChanged): Invalidate the path
21811 (Polygon::OnCollectionChanged): Same.
21813 * text.cpp (TextBlock::OnPropertyChanged): Set dirty to true when
21814 the TextDecorationsProperty changes too. Fixes the "underline
21815 hyperlinks" portion of bug #412986.
21817 2008-08-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
21819 * xaml.cpp: Remove debug spew.
21821 2008-08-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
21823 * array.cpp, array.h: Removed, no longer needed.
21824 * collection.cpp, collection.h: Moved double_garray_from_str to
21826 * geometry.cpp, libmoon.h, Makefile.am, point.cpp, point.h, rect.cpp,
21827 shape.cpp, src.mdp, type.h, value.cpp, value.h, value.h.in,
21828 xaml.cpp: Remove the double and point arrays, no longer needed.
21829 * type-generated.cpp: Remove the double and point arrays, no longer
21830 needed. Implement support for 2.0 events.
21832 2008-08-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
21834 * runtime.cpp: Fix a crash (xaml parser tries to access the NULL loader
21837 2008-08-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
21839 * dependencyproperty.g.cpp: Surround 2.0 DP declarations in #if SL_2_0.
21841 2008-08-09 Jeffrey Stedfast <fejj@novell.com>
21843 * *.h: Removed *_new() prototypes which are autogenerated in
21846 2008-08-08 Chris Toshok <toshok@ximian.com>
21848 * template.h, template.cpp: new file, stub implementations for
21849 FrameworkTemplate and ControlTemplate.
21851 * Makefile.am: add template.h/cpp.
21853 * control.h: add Template property.
21855 * frameworkelement.h: add some 2.0 events.
21857 * cbinding.h, cbinding.cpp, type.h, dependencyproperty.g.cpp,
21858 value.h, type-generated.cpp: regenerate.
21860 2008-08-08 Chris Toshok <toshok@ximian.com>
21862 * xaml.h, xaml.cpp: we need to propagate the 2.0-ness of the
21863 parser around in various methods (starting from the public
21864 xaml_set_property_from_str and value_from_str*) in order to get it
21865 down to where it's needed for the enum_* calls.
21867 * enums.h, enums.cpp: add a "sl2" argument so we can resolve
21868 sl1/sl2 specific enum values, and add the 2.0 specific
21869 Horizontal/VerticalAlignment mappings.
21871 2008-08-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
21873 * runtime.cpp: Remove comments to self :)
21875 2008-08-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
21877 * panel.cpp, stylus.cpp, trigger.h, usercontrol.cpp, canvas.h,
21878 control.h, deployment.h, text.h, trigger.cpp, dependencyobject.h,
21879 canvas.cpp, transform.h, downloader.cpp, transform.cpp,
21880 animation.h, grid.cpp, shape.h, animation.cpp, deployment.cpp,
21881 control.cpp, runtime.cpp, text.cpp, clock.h, contentcontrol.h,
21882 clock.cpp, uielement.h, collection.h, geometry.h,
21883 contentcontrol.cpp, frameworkelement.h, uielement.cpp, grid.h,
21884 collection.cpp, geometry.cpp, shape.cpp, dependencyobject.cpp,
21885 frameworkelement.cpp, namescope.cpp, brush.h, panel.h, stylus.h,
21886 namescope.h, media.cpp, brush.cpp, usercontrol.h: Remove DP
21887 registration from *_init methods, and remove *_init methods which
21888 turned out to be empty after that.
21890 2008-08-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
21892 * panel.cpp, stylus.cpp, trigger.h, usercontrol.cpp, canvas.h,
21893 control.h, deployment.h, text.h, trigger.cpp, dependencyobject.h,
21894 canvas.cpp, transform.h, downloader.cpp, transform.cpp,
21895 animation.h, grid.cpp, downloader.h, shape.h,
21896 dependencyproperty.g.cpp, animation.cpp, deployment.cpp,
21897 control.cpp, runtime.cpp, text.cpp, dependencyproperty.h,
21898 Makefile.am, clock.h, contentcontrol.h, dependencyproperty.cpp,
21899 clock.cpp, uielement.h, collection.h, geometry.h,
21900 contentcontrol.cpp, frameworkelement.h, src.mdp, uielement.cpp,
21901 grid.h, collection.cpp, geometry.cpp, shape.cpp,
21902 dependencyobject.cpp, frameworkelement.cpp, namescope.cpp, media.h,
21903 brush.h, panel.h, stylus.h, namescope.h, media.cpp, brush.cpp,
21904 usercontrol.h: Generate dependency property registration.
21906 2008-08-07 Chris Toshok <toshok@ximian.com>
21908 * collection.h, collection.cpp (double_collection_from_str): new
21910 (point_collection_from_str): new method.
21912 * xaml.cpp (value_from_str): add support for
21913 DoubleCollection/PointCollection properties. leave
21914 DoubleArray/PointArray in for now, although nothing should use it.
21916 * shape.h, shape.cpp, geometry.h, geometry.cpp: switch all
21917 PointArray/DoubleArray properties to using
21918 PointCollection/DoubleCollection. This is unfortunately a
21919 necessity due to the 2.0 changes, but it should be transparent for
21922 2008-08-07 Larry Ewing <lewing@novell.com>
21924 * shape.cpp (Shape::ShiftPosition): add an unfortunate restriction
21925 on ShiftPosition interaction with the shape cache to fix the
21926 droppings we were seeing in AnimationMatrix and
21927 StoryBoard_ModifyProperty.htm.
21929 2008-08-07 Geoff Norton <gnorton@novell.com>
21931 * media.cpp: When the MediaElement source changes set the
21932 BufferingProgress back to 0 otherwise we may never emit a
21933 BufferingProgressChangedEvent for the new source.
21935 2008-08-07 Sebastien Pouliot <sebastien@ximian.com>
21937 * layout.cpp: Handle negative horiBearingX correctly. This gives
21938 better visual results in DRT #47 (same width value, up to 2
21939 decimal) and #209 (not enough to make it PASS but I doubt the
21940 master is ok, since I can't duplicate its output).
21942 2008-08-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
21944 * dependencyobject.cpp: HasProperty: accept attached properties for
21947 2008-08-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
21949 * panel.cpp, stylus.cpp, trigger.h, usercontrol.cpp, canvas.h,
21950 control.h, deployment.h, text.h, thickness.h, trigger.cpp,
21951 canvas.cpp, transform.h, color.h, downloader.cpp, eventargs.cpp,
21952 transform.cpp, animation.h, grid.cpp, downloader.h, eventargs.h,
21953 shape.h, animation.cpp, size.h, deployment.cpp, control.cpp,
21954 text.cpp, clock.h, contentcontrol.h, clock.cpp, uielement.h,
21955 point.h, collection.h, geometry.h, contentcontrol.cpp,
21956 frameworkelement.h, uielement.cpp, grid.h, collection.cpp,
21957 geometry.cpp, shape.cpp, frameworkelement.cpp, media.h, brush.h,
21958 rect.h, panel.h, stylus.h, media.cpp, brush.cpp, usercontrol.h: Add
21959 instructions to generate c constructors in headers and remove *_new
21960 implementations from cpp files.
21961 * dependencyobject.h: Typedef function pointer to avoid making the
21962 generator understand function pointer syntax. Update comments to
21964 * cbinding.h, value.h, src.mdp, cbinding.cpp: Updated.
21965 * type.h, type.h.in: Updated comments to new syntax.
21966 * mms-downloader.h: Use C++ syntax.
21967 * dependencyproperty.h, dependencyproperty.cpp: Make
21968 dependency_property_register_managed_property a method on the type
21969 and update comments to new syntax.
21970 * type-generated.cpp: Updated by new generator, which did actually
21971 catch a few errors.
21973 2008-08-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
21975 * dependencyproperty.cpp: DP: Comment out the duplicate DP warning
21978 2008-08-06 Geoff Norton <gnorton@novell.com>
21980 * dependencyproperty.cpp: When registering a clashing DP
21981 return the original so that the code can act on it as it
21982 expects. Fixes about 18 DRT regressions.
21984 2008-08-06 Chris Toshok <toshok@ximian.com>
21986 * uielement.h, uielement.cpp: add GetTransformToUIElement, the
21987 unmanaged equivalent to the managed UIElement.TransformToVisual.
21989 Also change the signature of HitTest to take a Point, not two
21990 doubles. Add a HitTest overload that takes a Rect in
21991 preparation for 2.0.
21993 * panel.h, panel.cpp: track HitTest signature change.
21995 * control.h, control.cpp: track HitTest signature change.
21997 2008-08-06 Chris Toshok <toshok@ximian.com>
21999 * transform.h, transform.cpp: add a convenience ctor for Matrix
22000 that takes a cairo_matrix_t*.
22002 2008-08-06 Chris Toshok <toshok@ximian.com>
22004 * type-generated.cpp (type_infos): fix ctors for UIElement and
22005 UIElementCollection.
22007 2008-08-06 Chris Toshok <toshok@ximian.com>
22009 * frameworkelement.h, frameworkelement.cpp: add
22010 DataContextProperty.
22012 2008-08-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
22014 * type.cpp: Fix for old glib in sled.
22016 2008-08-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
22018 * dependencyproperty.cpp, type.cpp, type.h, type.h.in,
22019 type-generated.cpp: Add custom properties to a GSList instead of
22020 the hash table given that several custom properties can be
22021 registered on the same type with the same name.
22023 2008-08-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
22025 * src.mdp: Make src and plugin projects build.
22027 2008-08-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
22029 * src.mdp: Updated.
22031 2008-08-05 Chris Toshok <toshok@ximian.com>
22033 * transform.h, transform.cpp, brush.cpp: Add GeneralTransform as a
22034 superclass of Transform, and move all the current Transform stuff
22037 * type.h, type-generated.cpp, value.h: resync
22039 2008-08-05 Chris Toshok <toshok@ximian.com>
22041 * uielement.h, uielement.cpp, frameworkelement.h,
22042 frameworkelement.cpp: move the UIElement DPs back - the move to
22043 FrameworkElement breaks tests.
22045 * collection.cpp (TriggerCollection::AddedToCollection): quiet
22047 (TriggerCollection::RemovedFromCollection): same.
22049 2008-08-05 Chris Toshok <toshok@ximian.com>
22051 * frameworkelement.h, frameworkelement.cpp: add in the 2.0-only
22052 DependencyProperties. we need a way to limit access to these to
22055 * uielement.h, uielement.cpp: CursorProperty, ResourcesProperty,
22056 TagProperty, TriggersProperty are moved to
22057 frameworkelement.h/.cpp.
22059 * runtime.cpp (Surface::UpdateCursorFromInputList): CursorProperty
22060 moved from UIElement to FrameworkElement.
22062 * size.h, size.cpp: add SizeChangedEventArgs.
22064 * thickness.h: move this type here
22066 * control.h: #include thickness.h
22068 * type.h, value.h, type-generated.cpp: regenerate for
22069 SIZECHANGEDEVENTARGS.
22071 2008-08-05 Chris Toshok <toshok@ximian.com>
22073 * Makefile.am (libmoon_la_SOURCES): enums.c => enums.cpp
22075 * enums.h: add comment about keeping MouseCursors enum in sync
22078 * enums.cpp: make all the mappings use symbols instead of integer
22079 constants. Also, rename enums.c to enums.cpp so it can include
22080 the .h files for enums not in enums.h.
22082 2008-08-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
22084 * src.mdp: Remove visual.cpp|h from here too.
22086 2008-08-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
22088 * brush.cpp, brush.h, dirty.cpp, panel.cpp, panel.h, type.h,
22089 type-generated.cpp, uielement.cpp, uielement.h, value.h,
22090 visual.cpp, visual.h, collection.h, collection.cpp, Makefile.am,
22091 libmoon.h: Deleted Visual (moved content into UIElement), and
22092 renamed VisualCollection to UIElementCollection.
22094 2008-08-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
22096 * cbinding.cpp, cbinding.h, dependencyobject.cpp, dependencyobject.h:
22097 GetValueWithError: Add a parameter to specify the exact type
22098 (including managed subclassing) of the object. HasProperty: use
22099 that parameter to determine if the type has the specified property
22101 * dependencyproperty.cpp, dependencyproperty.h: DependencyProperty: Add
22102 a is_custom field to determine if the property is our own or not.
22104 2008-08-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
22106 * cbinding.cpp, cbinding.h: Updated.
22107 * dependencyobject.h, dependencyobject.cpp, dependencyproperty.cpp,
22108 dependencyproperty.h, runtime.cpp, runtime.h, type.cpp, type.h,
22109 type.h.in, type-generated.cpp: Create a Types class which may
22110 contain additional types. Change the DP/DO/Type overloads
22111 containing a Surface to take a Types argument instead.
22113 2008-08-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
22115 * dependencyobject.cpp: Implement Get[No[Default]]ValueWithError.
22117 2008-08-04 Michael Dominic K. <mdk@mdk.am>
22121 * clock.h: Adding method to store a manual target (instead of a named target)
22122 for a timeline. This will be used to bind a Storyboard.SetTarget 2.0 method.
22124 2008-08-04 Michael Dominic K. <mdk@mdk.am>
22127 * animation.h: A little bit of C API for KeySpline.
22129 2008-08-04 Michael Dominic K. <mdk@mdk.am>
22131 * runtime.cpp: _get_surface can only be called from the main thread.
22133 2008-08-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
22135 * src.mdp, cbinding.h, cbinding.cpp: Updated.
22136 * Makefile.am: Include error.cpp.
22137 * error.h, error.cpp: Added MoonError.
22138 * dependencyproperty.h: Make RegisterFull 2.0 only.
22139 * dependencyobject.h, dependencyobject.cpp: Added and implemented
22140 Get[[No]Default]ValueWithError and a HasProperty method which takes
22141 into account properties registered on a surface.
22143 2008-08-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
22145 * canvas.cpp, grid.cpp: Use C++ binding instead of C binding.
22146 * media.cpp: Use property accessors instead of GetValue.
22148 2008-08-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
22150 * cbinding.cpp, cbinding.h: Update.
22151 * dependencyproperty.cpp: RegisterFull: Only wrap method code in
22152 SL_2_0, fixed 1.0 build.
22154 2008-08-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
22156 * dependencyproperty.h: Make GetName return a const char*, and rename
22157 parameters from readonly to read_only (to not conflict with C#
22160 2008-08-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
22162 * src.mdp: Updated.
22163 * dependencyproperty.cpp, dependencyproperty.h, Makefile.am: Generate
22164 DependencyProperty's C methods.
22165 * cbinding.cpp, cbinding.h: Added.
22166 * typegen, typegen/typegen.cs, typegen/typegen.sh: Moved typegen to
22167 moon/generators, and add methodgen to generate pinvokes, and cgen
22168 to generate c bindings.
22170 2008-08-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
22172 * dependencyobject.cpp, dependencyproperty.cpp, dependencyproperty.h:
22173 Implement property changed callbacks.
22175 2008-08-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
22177 * contentcontrol.h, control.h: Fix includes.
22179 2008-08-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
22181 * pipeline-ffmpeg.cpp: Fix warning.
22183 2008-08-01 Jeffrey Stedfast <fejj@novell.com>
22185 * dependencyobject.cpp (EventObject::Dispose): Call
22187 (EventObject::unref): Don't call SetSurface() here anymore.
22189 2008-08-01 Michael Dominic K. <mdk@mdk.am>
22191 * runtime.cpp|h: Adding few utility functions to modify the flags
22192 at runtime -- provided that there are no surfaces currently
22193 present. Would be nice to be able to somehow do it before calling
22196 2008-08-01 Michael Dominic K. <mdk@mdk.am>
22198 * runtime.cpp|h: Adding an expose handoff custom
22199 function that can be set on surface. It's called just after
22200 render_cb when something has been updated on the screen.
22202 2008-08-01 Michael Dominic K. <mdk@mdk.am>
22204 * runtime.cpp|h: Adding a global surface list and an
22205 ability to access it. I have a bad feeling we need some locking
22206 in the _get_surface_list function.
22208 2008-08-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
22210 * src.mdp: Updated.
22212 2008-07-31 Jeffrey Stedfast <fejj@novell.com>
22214 This is the proper fix for bug #412443
22216 * visual.cpp (VisualCollection::Dispose): Implement Dispose()
22218 (VisualCollection::RemovedFromCollection): Now that we know we are
22219 disposing, we can unset VisualParent here instead of in our
22220 dtor/Dispose() method, saving us from having to interate over our
22223 * collection.cpp (Collection::Dispose): Implement a Dispose()
22224 method which does what the dtor used to do.
22226 * dependencyobject.cpp (EventObject::unref): Call Dispose() just
22227 before deleting the object.
22229 2008-07-31 Jeffrey Stedfast <fejj@novell.com>
22231 * dependencyobject.cpp (struct Listener): Comment out the listener
22232 reffing from previous commit. I don't think this is correct.
22234 * visual.cpp (VisualCollection): Set z_sorted to NULL after
22235 freeing it so that parent class dtor calling
22236 RemovedFromCollection() will not poke at free'd memory.
22238 2008-07-31 Geoff Norton <gnorton@novell.com>
22240 * Makefile.am: Undo part of the recent Makefile changes as they broke
22243 2008-07-31 Jeffrey Stedfast <fejj@novell.com>
22247 * dependencyobject.cpp (DependencyObject::AddPropertyChangeListener):
22249 (DependencyObject::RemovePropertyChangeListener): Unref the listener.
22251 2008-07-31 Jeffrey Stedfast <fejj@novell.com>
22253 * animation.cpp (KeyFrameCollection::RemovedFromCollection): Oops,
22254 this needs to chain up to
22255 DependencyObjectCollection::RemovedFromCollection() rather than
22256 AddedToCollection(). Duh.
22258 2008-07-30 Jeffrey Stedfast <fejj@novell.com>
22260 * contentcontrol.cpp|h: Added.
22262 * enums.h: Moved some font/text enums here from font.h
22264 2008-07-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
22266 * dependencyproperty.cpp: Fix build.
22268 2008-07-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
22270 * runtime.cpp: Fix 1.0 build.
22272 2008-07-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
22274 * dependencyproperty.cpp, dependencyproperty.h, runtime.cpp, runtime.h,
22275 type.cpp, type.h, type.h.in, typegen/typegen.cs,
22276 type-generated.cpp: Store DependencyProperties in the Type* instead
22277 of a hashtable keyed on the kind.
22279 2008-07-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
22281 * dependencyobject.cpp: IsValueValid: treat all MANAGED types as valid,
22282 given that since we might not have access to the surface where the
22283 type was registered, it's not possible to do any type checking
22284 * dependencyproperty.cpp, dependencyproperty.h, runtime.cpp, runtime.h:
22285 Implement registration of managed properties on a surface.
22286 * type.cpp, type.h, type.h.in: Implement a Type::Find which can look in
22287 types registered on a surface, added a Type::MANAGED enum value.
22288 * typegen/typegen.cs, type-generated.cpp, value.h, value.h.in: Add a
22291 2008-07-29 Jeffrey Stedfast <fejj@novell.com>
22293 * text.cpp (inline_new): Added.
22295 2008-07-29 Jackson Harper <jackson@ximian.com>
22297 * xaml.cpp: Add a set_parent call, I need to do some fanagling
22298 there so collection items don't have their parents set.
22299 - Managed items that are being hydrated or created using x:Class
22300 need to get content properties from the managed world.
22302 2008-07-28 Chris Toshok <toshok@ximian.com>
22304 * value.cpp, value.h.in, value.h, type.h, typegen/typegen.cs,
22305 type-generated.cpp: Add Size foo.
22307 2008-07-28 Jeffrey Stedfast <fejj@novell.com>
22309 * value.cpp (Value::FreeValue): Oops, free Thickness.
22311 2008-07-28 Chris Toshok <toshok@ximian.com>
22313 * control.h (struct Thickness): reorder fields to match managed
22316 2008-07-28 Jeffrey Stedfast <fejj@novell.com>
22318 * typegen/typegen.cs: Added Thickness.
22320 * value.h.in, type.h.in: Added Thickness.
22322 * value.cpp: Implemented Thickness value ctor/etc.
22324 * enums.h: Added more 2.0-specific enums.
22326 * control.cpp|h: Implemented property accessors/bindings and
22329 2008-07-28 Michael Dominic K. <mdk@mdk.am>
22331 * animation.cpp: When starting an SB that has been started already make sure to
22332 remove the Completed handler before the teardown. Fixes #405518.
22334 2008-07-28 Chris Toshok <toshok@ximian.com>
22336 * collection.cpp (collection_iterator_next): move the check for
22337 index-in-range to after the increment of it. that way managed
22338 code doesn't step off the end of the list.
22340 2008-07-26 Chris Toshok <toshok@ximian.com>
22342 * eventargs.h, eventargs.cpp: some 2.0 event stuff. Make the
22343 MouseEventArgs and KeyboardEventArgs classes subclasses of a new
22344 class - RoutedEventArgs. Also, add a "Handled" field to both
22345 MouseEventArgs and KeyboardEventArgs. Lastly add a "Keyboard"
22346 class to map to the 2.0 static Keyboard class. it exposes nothing
22347 but a Modifiers property, which isn't updated at present, but will
22348 be by the Surface code (in the key event handler).
22350 * type.h, value.h, type-generated.cpp: sync - new ROUTEDEVENTARGS
22353 2008-07-26 Chris Toshok <toshok@ximian.com>
22355 * enums.h (enum ModifierKey): 2.0 specific enum for use by the
22358 2008-07-26 Jackson Harper <jackson@ximian.com>
22360 * xaml.cpp: If there isn't a managed content property, try looking
22361 for an unmanaged one.
22363 2008-07-26 Jackson Harper <jackson@ximian.com>
22365 * xaml.h|cpp: Create elements for imported managed namespaces.
22367 2008-07-25 Chris Toshok <toshok@ximian.com>
22369 * runtime.h, runtime.cpp: reformat the class decl to put public:
22370 stuff first. add "bool silverlight2" to the surface ctor so we
22371 can start to use it for behavioral differences (routed event
22372 handlers, key events, focus, etc).
22374 2008-07-25 Jeffrey Stedfast <fejj@novell.com>
22376 * stylus.h (StrokeCollection::CanAdd): Strokes can exist in
22377 multiple StrokeCollections at a time but they cannot be added to
22378 the same collection multiple times. Do not default to
22379 DependencyObjectCollection::CanAdd()'s behavior because it checks
22380 that the logical parent is unset (which will not be accurate for
22382 (StylusPointCollection): Same as StrokeCollection.
22384 * xaml.cpp (dependency_object_add_child): Set the logical parent
22385 of items to NULL before adding them to a collection.
22387 * collection.h (class Collection): Removed 'unique' field, it's
22388 not necessary afterall.
22389 (Collection::CanAdd): New virtual method to check if the value can
22390 be added to the collection (by default always returns true).
22391 (DependencyObjectCollection::CanAdd): Override CanAdd() by
22392 checking if the object being added has a logical parent. If it
22393 already has a parent, it cannot be added (this is how Silverlight
22396 * collection.cpp (Collection::Add): There's no such thing as
22397 'unique' anymore. Don't check if the value is already contained
22398 within our collection like the old code used to do, instead call
22399 our new virtual method CanAdd() to see if we can add it.
22400 (Collection::Insert): Check CanAdd().
22401 (Collection::SetValueAt): Check CanAdd().
22403 2008-07-24 Jeffrey Stedfast <fejj@novell.com>
22405 * collection.cpp (collection_add): Fixed.
22407 * collection.h: Get rid of convenience wrappers that aren't even
22408 used. Also removes the need for previous commit.
22410 2008-07-24 Jeffrey Stedfast <fejj@novell.com>
22412 * collection.h (class DependencyObjectCollection): Add virtual
22413 Add(), Clear() and Insert(). This makes it possible for subclasses
22414 to chain up if they need to override any of these.
22415 (class DoubleCollection): Same.
22416 (class PointCollection): Here too.
22418 * visual.cpp (VisualCollection::Clear): Chain up to
22419 DependencyObjectCollection::Clear() rather than
22420 Collection::Clear().
22421 (VisualCollection::Insert): Don't bother resizing the z_sorted
22422 array here, it will be done inside ResortByZIndex() anyway.
22423 (VisualCollection::Insert): Chain up to
22424 DependencyObjectCollection::Insert() rather than
22425 Collection::Insert()
22427 2008-07-24 Geoff Norton <gnorton@novell.com>
22429 * downloader.cpp: When a downloader is reused reset the completed
22430 state when we get the new Open call.
22432 2008-07-24 Jeffrey Stedfast <fejj@novell.com>
22434 * text.cpp (inlines_simple_text_equal): Fixed a stupid typo.
22436 * collection.cpp (DependencyObjectCollection::RemovedFromCollection):
22437 Unregister the NameScope the same way the old Collection::Remove()
22438 way did it. This way seems the most correct (RemoveAt() was
22439 totally broken and SetVal() doesn't seem right afterall).
22441 2008-07-24 Jeffrey Stedfast <fejj@novell.com>
22443 * collection.cpp: Added c-wrappers for creating new
22444 collections. Also changed the c-bindings for
22445 setting/adding/inserting/etc items to the collection to take
22446 Value* instead of Value. Should make it simpler for the managed
22449 2008-07-24 Jeffrey Stedfast <fejj@novell.com>
22451 * collection.cpp (DependencyObjectCollection::RemovedFromCollection):
22452 Unregister the NameScope the same way it was done in the more
22453 common case in the old code (why were there different ways?).
22455 * text.cpp (TextBlock::OnCollectionChanged): Chain up.
22456 (TextBlock::OnCollectionItemChanged): Same.
22458 * brush.cpp (GradientBrush::OnCollectionChanged): Chain up.
22459 (GradientBrush::OnCollectionItemChanged): Chain up and notify
22462 * geometry.cpp (GeometryGroup::OnCollectionChanged): Chain up.
22463 (GeometryGroup::OnCollectionItemChanged): Chain up and notify
22465 (PathGeometry::OnCollectionChanged): Chain up.
22466 (PathGeometry::OnCollectionItemChanged): Chain up and notify
22468 (PathFigure::OnCollectionChanged): Chain up.
22469 (PathFigure::OnCollectionItemChanged): Chain up and notify
22472 * shape.cpp (Polygon::OnCollectionChanged): Chain up.
22473 (Polygon::OnCollectionItemChanged): Same.
22474 (Polyline::OnCollectionChanged): Same.
22475 (Polyline::OnCollectionItemChanged): Same.
22477 * stylus.cpp (Stroke::OnCollectionItemChanged): Need to
22478 call NotifyListersOfPropertyChange().
22480 * transform.cpp (TransformGroup::OnCollectionItemChanged): Need to
22481 call NotifyListersOfPropertyChange().
22483 2008-07-24 Jeffrey Stedfast <fejj@novell.com>
22485 * collection.cp|h: Reworked Collections a lot. Collection is now a
22486 generic collection of Values. Added 3 new collections:
22487 DependencyObjectCollection (which holds DO's like the old
22488 Collection class did), DoubleCollection and PointCollection.
22490 * dependencyobject.h (DependencyObject::OnCollectionChanged):
22491 Changed the way this works to reflect the managed API.
22493 *.cpp|h: Updated to reflect above changes.
22495 2008-07-24 Jeffrey Stedfast <fejj@novell.com>
22497 * utils.cpp (g_ptr_array_insert): New utility function.
22498 (g_ptr_array_insert_sorted): Call g_ptr_array_insert() once we
22499 find the index where we want to add the item.
22501 2008-07-23 Chris Toshok <toshok@ximian.com>
22503 * panel.cpp, xaml.cpp, stylus.cpp, usercontrol.cpp, canvas.cpp,
22504 transform.cpp, grid.cpp, animation.cpp, text.cpp,
22505 dependencyproperty.h, dependencyproperty.cpp, uielement.cpp,
22506 geometry.cpp, shape.cpp, dependencyobject.cpp,
22507 frameworkelement.cpp, media.cpp, brush.cpp: a couple of
22508 DependencyPropertyChanges:
22510 1. switch to the Silverlight/WPF naming of the two Types.
22511 type/value_type change to owner_type/property_type.
22513 2. go all gtk-3.0, and make things private with accessors.
22515 2008-07-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
22517 * animation.cpp, brush.cpp, canvas.cpp, clock.cpp, collection.cpp,
22518 dependencyobject.cpp, dependencyobject.h, dependencyproperty.cpp,
22519 dependencyproperty.h, deployment.cpp, downloader.cpp,
22520 frameworkelement.cpp, geometry.cpp, grid.cpp, media.cpp,
22521 namescope.cpp, panel.cpp, runtime.cpp, shape.cpp, stylus.cpp,
22522 text.cpp, transform.cpp, trigger.cpp, uielement.cpp,
22523 usercontrol.cpp, xaml.cpp: Move Register(Full|Nullable) and
22524 GetDependencyObject from DependencyObject to DependencyProperty.
22526 2008-07-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
22528 * dependencyobject.h, dependencyproperty.h, Makefile.am,
22529 dependencyproperty.cpp, src.mdp, dependencyobject.cpp: Move
22530 DependencyProperty to its own file before it grows bigger.
22532 2008-07-21 Jackson Harper <jackson@ximian.com>
22534 * xaml.cpp: Add back in the ability to create elements from
22535 managed elements using the x:Class syntax.
22537 2008-07-21 Jackson Harper <jackson@ximian.com>
22540 * type-generated.cpp: The UserControl's Content Property name is
22541 Content not ContentProperty.
22543 2008-07-21 Jeffrey Stedfast <fejj@novell.com>
22545 * collection.cpp (collection_add): Fixed to return int.
22547 2008-07-21 Jackson Harper <jackson@ximian.com>
22549 * xaml.cpp: Add support for parsing GridLength attribute values.
22551 2008-07-19 Geoff Norton <gnorton@novell.com>
22553 * mms-downloader.(cpp|h): Ensure that we always stream-select a marker
22554 stream when there is one available. Fixes drt #2.
22555 Refactor some code duplication into a utility method.
22557 2008-07-19 Jackson Harper <jackson@ximian.com>
22559 * xaml.cpp: We can't blindly assume an object has a content
22562 2008-07-19 Jackson Harper <jackson@ximian.com>
22564 * type-generated.cpp: UserControl has a content property.
22565 * value.h|.h.in|.cpp: Add GridLength to Value.
22567 2008-07-18 Geoff Norton <gnorton@novell.com>
22569 * media.cpp: Revert InitialBuffer work around as it has some unexpected
22572 2008-07-18 Geoff Norton <gnorton@novell.com>
22574 * media.cpp: Clear the InitialBuffer state when we seek as well, as that will
22575 get a new burst from the mms server with AccelBW.
22577 2008-07-18 Geoff Norton <gnorton@novell.com>
22579 * media.cpp: If we're using a mms source we can attempt to start playing the
22580 first time before the entire 5s buffer is full due to AccelBW/AccelDuration.
22581 Fixes c9 stream start lag.
22583 2008-07-18 Geoff Norton <gnorton@novell.com>
22585 * mms-downloader.cpp: Set LinkBW, AccelBW and AccelDuration so we can fill
22586 our initial buffer quickly.
22588 2008-07-18 Geoff Norton <gnorton@novell.com>
22590 * pipeline.(cpp|h), mp3.(cpp|h): Break mp3 out into its own files.
22591 * Makefile.am: Add mp3.(cpp|h) to the build.
22592 * pipeline-ffmpeg.cpp: MP3 streamed over asf will bunch multiple frames
22593 together, so we need to split them up and pass them to avcodec_decode_audio2
22594 one at a time. Its also possible that we could get a partial frame, so we need
22595 to buffer that data. Fixes mms+mp3.
22597 2008-07-18 Jeffrey Stedfast <fejj@novell.com>
22599 Fix for bug #410206
22601 * text.h (TextBlock::GetBoundingHeight): Return the larger of the
22603 (TextBlock::GetBoundingWidth): Same.
22605 2008-07-18 Chris Toshok <toshok@ximian.com>
22607 * Makefile.am (libmoon_include_HEADERS): add window.h and
22609 (libmoon_la_SOURCES): add window-gtk.cpp
22611 * window.h: abstract class for windows, that surface will use to
22612 deal with window/widget level operations.
22614 * window-gtk.h, window-gtk.cpp: MoonWindow implementation using
22617 * runtime.h, runtime.cpp: factor out all the widget stuff from
22618 this file, along with all "width" and "height" fields. now
22619 Surface knows nothing about widgets or windowless. It speaks to
22620 MoonWindow implementations instead. Add several public methods
22621 that the window implementations can call (anything HandleUI*) to
22622 communicate events back to the surface.
22624 * canvas.cpp: surface->Get{Width,Height} ==>
22625 surface->GetWindow()->Get{Width,Height}.
22627 2008-07-18 Michael Dominic K. <mdk@mdk.am>
22630 * media.cpp: Reverting prev change, different solution: process the tick calls
22631 before processing the render.
22633 2008-07-18 Michael Dominic K. <mdk@mdk.am>
22635 * media.cpp: If the downloader is already completed, don't do an extra async
22636 call when setting source. Fixes the downloader-set-source... testcase.
22638 2008-07-18 Michael Dominic K. <mdk@mdk.am>
22640 * media.cpp: Fixing a crasher in case bad parameters passed from js.
22642 2008-07-18 Jackson Harper <jackson@ximian.com>
22644 * xaml.h: New delegates and functions for the loader. We need to
22645 call back into managed code when we import a xaml namespace so
22646 that it knows which objects are available and we need a new
22647 function for creating those objects.
22649 2008-07-18 Jackson Harper <jackson@ximian.com>
22651 * usercontrol.cpp|h: Add C functions for accessing the Content
22654 2008-07-17 Jackson Harper <jackson@ximian.com>
22658 * type-generated.cpp:
22659 * deployment.cpp|h: Add an Application type. This doesnt directly
22660 map to the managed Application because it inherits from
22661 DependencyObject, but it allows us to parse Application XAML files
22662 and then we can pull the values we need.
22664 2008-07-17 Jackson Harper <jackson@ximian.com>
22666 * libmoon.h: Add usercontrol.h, I want access to this in the
22669 2008-07-17 Jackson Harper <jackson@ximian.com>
22671 * xaml.cpp: Had a backwards IsSubclassOf here causing
22672 UserControl's content property to not get set (and I imagine many
22673 other content properties).
22674 * usercontrol.h: Add the ContentProperty metadata.
22676 2008-07-17 Stephane Delcroix <sdelcroix@novell.com>
22678 * downloader.h|cpp: provide hooks for DownloadeRequest
22680 2008-07-17 Jeffrey Stedfast <fejj@novell.com>
22682 * pipeline.cpp (FileSource::ReadInternal): EOF isn't an error.
22684 * runtime.cpp (surface_create_downloader): We need to actually
22685 return the downloader here or our caller will just get garbage ;-)
22687 2008-07-17 Michael Dominic K. <mdk@mdk.am>
22689 * clock.cpp: When _USE_IDLE_HINT is not sent, don't do idle hinting.
22691 * runtime.h: On desktop and browser by default use idle hinting.
22693 2008-07-17 Michael Dominic K. <mdk@mdk.am>
22695 * runtime.cpp: Adding "idlehint" to moonlight overrides that will
22696 control the use of idle hint in the clocks.
22698 2008-07-17 Stephane Delcroix <sdelcroix@novell.com>
22700 * runtime.h|cpp: add surface_get_downloader
22702 2008-07-16 Larry Ewing <lewing@novell.com>
22704 * runtime.cpp: try to get the resize logic correct for all cases,
22705 including popfly, ControlState.htm and fullscreen tests.
22707 Fixes the (non)rendering issues in the popfly game creator.
22709 2008-07-16 Geoff Norton <gnorton@novell.com>
22711 * mplayer.cpp: Its possible that extremely small audio files will
22712 never fill the sound buffer enough causing us to never call snd_pcm_open.
22713 Ensure that we open the buffer to play the sound before shutting down
22716 2008-07-16 Geoff Norton <gnorton@novell.com>
22718 * pipeline.cpp: Update to be able to build with LOG_PIPELINE still
22720 2008-07-16 Sebastien Pouliot <sebastien@ximian.com>
22722 * layout.cpp: (TextLayout::LayoutWrap) Don't let actualWidth be
22723 greater than Width. Fix MS DRT#184 and #208. ALso makes #206
22724 looks better (but it already passed)
22726 2008-07-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
22728 * pipeline.cpp, pipeline.h: ProgressiveSource: clean up a bit, this
22729 class doesn't do anything live/mms anymore. LiveSource: removed
22730 completely, never used. Added MemoryNestedSource to wrap another
22731 MemorySource without messing with its current position pointer.
22732 MemoryQueueSource: store already parsed packets instead of
22733 MemorySources in the queue, saves a memory allocation and prevents
22734 parsing each packet twice when buffering (once for the code which
22735 determines the last available pts, and again for the normal
22736 demuxing code path).
22737 * mms-downloader.cpp: Updated to not delete asf parser, unref it
22739 * mplayer.cpp: Enqueue 3 audio frames instead of 10, makes the pipeline
22740 wait a bit longer before ending up waiting for more data (which
22741 causes the MediaElement to go into buffering mode).
22742 * media.cpp: ProgressiveSource ctor doesn't take any bool arguments
22745 2008-07-15 Larry Ewing <lewing@novell.com>
22747 * dirty.cpp (Surface::AddDirtyElement): quick patch from toshok to
22748 fix a regression in the fullscreen message code.
22750 2008-07-15 Jb Evain <jbevain@novell.com>
22752 * deployment.cpp|h: start updating Deployment to sl2b2.
22754 2008-07-15 Jb Evain <jbevain@novell.com>
22756 * deployment.h: remove SupportedCulture and SupportedCultureCollection
22757 as they no longer exist.
22758 * value.h, type.h, type-generated.cpp: regenerate.
22760 2008-07-15 Jb Evain <jbevain@novell.com>
22762 * deployment.cpp|h: rename RuntimeVersion DP to RuntimeVersionProperty.
22764 2008-07-15 Jb Evain <jbevain@novell.com>
22766 * list.cpp: set pointers to NULL instead of 0.
22768 2008-07-14 Geoff Norton <gnorton@novell.com>
22770 * mplayer.cpp: If we've already reached the EOF in the audio stream
22771 don't keep processing GetNextBuffer. This was causing us to emit
22772 MediaEnded more than once, causing failures in the test suite.
22774 2008-07-14 Geoff Norton <gnorton@novell.com>
22776 * downloader.cpp: Change completed to check a bool instead of
22777 filename, as filename can now be set before the downloader is in fact
22780 2008-07-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
22782 * media.cpp: Initialize Media with our downloader.
22783 * pipeline.cpp: Media::Open: Check if the source has ended while
22784 waiting for an asfparser. Remove print_stack_traces.
22786 2008-07-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
22788 * internal-downloader.h: Add InternalDownloader::GetType to allow the
22789 derived internal downloader to tell what kind of internal
22791 * file-downloader.h: Implement InternalDownloader::GetType.
22792 * downloader.h: Make the internal downloader publicly accessible. Add a
22793 Downloader::IsAborted method.
22794 * mms-downloader.h, mms-downloader.cpp: Implement
22795 InternalDownloader::GetType. Store the ASFParser we create in the
22796 class instance, so that the pipeline can get it. No need to write
22797 the header packet to the stream anymore.
22798 * media.cpp: Don't unref in AddTickCall callbacks anymore. Fix
22799 calculation of buffering progress to take into account that the
22800 currently available pts might be before the last played pts.
22801 * mplayer.cpp, mplayer.h, downloader.cpp: Don't unref in AddTickCall
22803 * pipeline.cpp, pipeline.h: Make the Media ctor take a Downloader
22804 argument and access the internal mms downloader on that Downloader
22805 to get the asf parser. Remove Read/Seek support from
22806 MemoryQueueSource, and just add a Pop method which returns a
22807 MemorySource for the next packet in the queue. Also add support to
22808 return all the packets in the queue as an array so that the
22809 ASFParser can easily determine the last pts available.
22810 * clock.cpp, clock.h: Use our own thread-safe Queue instead of GList +
22811 g_mutex. Also make TickCall take a ref to the data parameter until
22812 the tick call has been made. This also ensures that the data
22813 parameter gets unreffed correctly when the tick call is never made
22814 (such as when we skip calls due to the TimeManager getting shut
22816 * dependencyobject.cpp: Don't ref in AddTickCall anymore.
22818 2008-07-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
22820 * playlist.cpp: Fix warning.
22822 2008-07-11 Sebastien Pouliot <sebastien@ximian.com>
22824 * font.cpp: (FontFace::LoadGlyph) Use linearHoriAdvance instead
22825 of horiAdvance since the later is rounded to an integer. FixMS
22826 DRT#45 and get better results (less differences) on many font
22829 2008-07-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
22831 * http-streaming.cpp, playlist.cpp: Add missing #include <config.h>
22833 2008-07-11 Sebastien Pouliot <sebastien@ximian.com>
22835 * font.cpp: (font_conic_to) Directly use moon_quad_curve_to
22836 instead of doing it's own second to third order calculation.
22838 2008-07-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
22840 * mplayer.cpp: Don't store target pts from audio thread if we're paused
22841 (audio thread might not have gotten the pause request yet).
22843 2008-07-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
22845 * pipeline.cpp: Don't Signal more than once. I have no idea why the
22846 waiting thread doesn't wake up though.
22847 * mplayer.cpp: Comment out a printf, and always break the play loop
22848 when we're doing rw access.
22850 2008-07-10 Sebastien Pouliot <sebastien@ximian.com>
22852 * geometry.cpp|h: Remove useless code for computing bounds on
22853 PathFigure (now all handled at PathGeometry level).
22855 2008-07-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
22857 * mplayer.cpp: Fix a couple of leaks.
22859 2008-07-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
22861 * pipeline.cpp: There's no need to call AudioPlayer::Initialize
22863 * runtime.cpp, runtime.h: Added
22864 RUNTIME_INIT_AUDIO_NO_MMAP/audio=mmap|rw to runtime flags.
22865 * mplayer.cpp, mplayer.h: Implement support for using RW access mode in
22866 addition to the already supported MMAP access mode for alsa. This
22867 also required a major refactoring to only call alsa on the audio
22868 thread due to buggy pulseaudio hanging us (and the rest of the
22869 machine) otherwise.
22871 2008-07-10 Sebastien Pouliot <sebastien@ximian.com>
22873 * shape.cpp|h: (ComputeStretchBounds) Move shape-specific code
22874 inside each type (and out of the general case).
22876 2008-07-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
22878 * dependencyobject.cpp: Fix leak.
22880 2008-07-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
22882 * debug.cpp: Make valgrind happy.
22884 2008-07-09 Geoff Norton <gnorton@novell.com>
22886 * media.cpp: Ensure that we clear our old loader when we set
22889 2008-07-09 Fernando Herrera <fherrera@novell.com>
22891 * pipeline.cpp: Always set MemoryQueueSource element's size
22892 based to offset+n even for live sources.
22894 2008-07-09 Jeffrey Stedfast <fejj@novell.com>
22896 Fixes for bug #406934
22898 * text.cpp (Glyphs::SetSurface): Override so that we can start
22899 downloading the font as soon as the element gets (re)attached.
22900 (Glyphs::OnPropertyChanged): If we aren't attached, set
22901 uri_changed to true so that when we are (re)attached, we can start
22904 * media.cpp (MediaBase::MediaBase): Init new state variable
22905 'source_changed' to false.
22906 (MediaBase::SetSurface): If source_changed and we are being
22907 attached to a surface, initiate a download.
22908 (MediaBase::SetSource): Set source_changed to false.
22909 (MediaBase::OnPropertyChanged): Handle SourceProperty changes for
22911 (MediaElement::OnPropertyChanged): Don't handle SourceProperty
22912 changes anymore, let MediaBase do that for us.
22913 (Image::OnPropertyChanged): Same.
22915 2008-07-09 Geoff Norton <gnorton@novell.com>
22917 * mms-downloader.cpp: Remove the guard we had against copying
22918 random memory and provide the correct amount of data to the
22919 pipeline from each packet.
22921 2008-07-09 Geoff Norton <gnorton@novell.com>
22923 * downloader.(cpp|h): NotifyFinished is now the finished
22924 event. The filename will be set (if available) in SetFilename.
22925 * media.(cpp|h): Change to progressivly loading the image
22926 where available (fixes popfly). We still fallback to file loading
22927 for the JS downloader case for now.
22929 2008-07-09 Larry Ewing <lewing@novell.com>
22931 * runtime.cpp (Surface::motion_notify_callback): don't call
22932 get_pointer when in windowless mode, I don't think we can trust
22935 * runtime.h (class Surface): make widget public so that we can
22936 peek at it in windowless mode.
22938 2008-07-08 Sebastien Pouliot <sebastien@ximian.com>
22940 * xaml.cpp: Always do a move after closing a path. Fix DRT test
22941 #138 (even if it was passing too!) for a bad (extra) arc.
22943 2008-07-08 Larry Ewing <lewing@novell.com>
22945 * runtime.cpp, runtime.h: remove a bunch of code rot relating to
22946 temporary cairo surfaces that is no longer used.
22948 2008-07-08 Sebastien Pouliot <sebastien@ximian.com>
22950 * shape.cpp: Consider PenLineCap when computing bounds using
22951 cairo. Fix (even if it was passing) some corners in DRT test #7
22953 2008-07-08 Jeffrey Stedfast <fejj@novell.com>
22955 * xaml.h: Reorganized a bit.
22957 2008-07-07 Chris Toshok <toshok@ximian.com>
22959 * dirty.cpp (Surface::AddDirtyElement): don't add elements to the
22960 list if they lack a visual parent (and aren't the toplevel.)
22963 2008-07-07 Larry Ewing <lewing@novell.com>
22965 * shape.cpp (Rectangle::BuildPath): handle some special case
22966 degenerates slightly differently.
22968 Fixes most of test-shape-rectangle-matrix.xaml.
22970 2008-07-07 Larry Ewing <lewing@novell.com>
22972 * shape.cpp (Ellipse::BuildPath): a thickness equal to a width
22973 degenerates in drawing, use the workaround there too.
22975 Fixes shape #5 in test/xaml/assorted/stroke-thickness-test.html
22977 2008-07-03 Larry Ewing <lewing@novell.com>
22979 * geometry.cpp (RectangleGeometry::ComputeBounds): simplify the
22980 rectangle geometry computation. It matches in the sl
22981 implementation now.
22983 * shape.cpp: simplify rectangle and ellipse drawing and bounds so
22984 that they match the sl implementation and deal with degenerate
22985 cases better. Try to avoid setting up a clip rectangle when it
22988 2008-07-07 Chris Toshok <toshok@ximian.com>
22990 [ fixes the media element not showing up in flowers-for-you, bug
22992 * media.h, media.cpp: move Image::use_img_{width,height} and
22993 Image::updating into MediaBase and rename then
22994 use_media_{width,height} and updating_size_from_media.
22995 (MediaElement::OnPropertyChanged) duplicate the
22996 WidthProperty/HeightProperty stuff here (c&p from
22997 Image::OnPropertyChanged - this should probably just be refactored
22998 to MediaBase. will do this later).
22999 (MediaBase::ComputeBounds): we don't need the subclass
23000 ComputeBounds methods. Just put it here, as they share the same
23002 (MediaElement::SetMedia): remove the call to ComputeBounds here,
23003 since the new block of use_media_{width,height} checks will call
23004 UpdateBounds if they need to.
23006 2008-07-07 Fernando Herrera <fherrera@novell.com>
23010 * pipeline.h: Implement MemoryQueueSource::NotifyFinished so
23011 we don't wait for new packets when the downloader has finished.
23012 Also calculate size based on offset + n for mms streams, so the
23013 ASFReader can check Eof based on positions.
23015 2008-07-05 Chris Toshok <toshok@ximian.com>
23017 * dirty.cpp: remove the down_dirty_node_succ and
23018 up_dirty_node_pred code from here. it arguably helped speed up
23019 insertions into the dirty lists, but at the cost of lots of
23020 dangling pointers. we always walk up the tree looking for a
23021 down/up node. works, and is much simpler. and fixes bug #362561.
23023 * uielement.h, uielement.cpp: remove the down_dirty_node_succ and
23024 up_dirty_node_pred code.
23026 2008-07-04 Sebastien Pouliot <sebastien@ximian.com>
23028 * xaml.cpp: Avoid a SIGSEGV in dependency_object_set_attributes
23029 when the atchname is invalid.
23031 2008-07-04 Chris Toshok <toshok@ximian.com>
23033 * runtime.cpp (Surface::EmitEventOnList): don't leak the event
23036 2008-07-03 Chris Toshok <toshok@ximian.com>
23038 * animation.h, animation.cpp: the *KeyFrame KeySplineProperty
23039 values need to be initialized in the ctors, not in animation_init.
23041 2008-07-03 Sebastien Pouliot <sebastien@ximian.com>
23043 * shape.cpp: Add back the cairo_[save|restore] in ::Draw methods
23044 since they are needed for stretching.
23046 2008-07-03 Jeffrey Stedfast <fejj@novell.com>
23048 * text.cpp (TextBlock::Render): Check to see if we need to
23049 calculate layout before painting.
23051 2008-07-03 Sebastien Pouliot <sebastien@ximian.com>
23053 * moon-path.c|h: Draw ellipse clockwise to match Silverlight.
23054 Also remove the closing point since it's not needed (but that was
23055 not the problem, just a small memory saving).
23056 [Re-fix bug #391684]
23058 2008-07-02 Jeffrey Stedfast <fejj@novell.com>
23060 * text.h (TextBlock::GetBoundingWidth/Height): Use
23061 GetValueNoDefault() so we don't get 0.0 for the width/height if
23064 Fixes for bug #404858
23066 * runtime.cpp: Added SHOW_TEXTBOXES bit flag.
23068 * layout.cpp: Don't keep track of bbox_width and height anymore,
23069 it was never actually set to anything other than
23070 actual_width/height anyway.
23072 * text.cpp (TextBlock::Paint): If SHOW_TEXTBOXES, render a green
23073 bounding box around the text (this is to aid in debugging text
23074 which may have a transform applied to it).
23076 * text.h (class TextBlock): Removed bbox_width and
23077 bbox_height. These were never anything other than
23078 actual_width/height respectively anyway.
23079 (TextBlock::GetBoundingWidth): Return the FrameworkElement::Width
23080 if set, else the ActualWidth.
23081 (TextBlock::GetBoundingHeight): Same.
23083 2008-07-02 Sebastien Pouliot <sebastien@ximian.com>
23085 * shape.cpp: Remove cairo_save|restore from [Shape|Path]::Draw
23086 since their callers already do this. Simplify a bit Shape::
23087 InsideObject to check ret only if a Clip is present (instead of
23088 always checking it).
23090 2008-07-02 Chris Toshok <toshok@ximian.com>
23092 * runtime.h, runtime.cpp: get rid of the cursor_func,
23093 invalidate_func, render_func stuff. Instead use 3 virtual
23094 methods: SetCursor(GdkCursor*), Invalidate(Rect), and
23095 ProcessUpdates(). That way the plugin can instantiate a
23096 WindowlessSurface which overrides those methods instead of having
23097 the stupid callback mechanism we had.
23099 2008-07-02 Chris Toshok <toshok@ximian.com>
23101 * runtime.h, runtime.cpp: virtualize SetCursor so the plugin can
23102 override the behavior.
23104 2008-07-02 Sebastien Pouliot <sebastien@ximian.com>
23106 * moon-path.c: Revert ordering change I made in r105586 to fix
23107 a clipping issue (fillrule bug) as this breaks stroke dash (which
23108 confirm the original behaviour was the correct one).
23109 [Fix most of #404858]
23111 2008-07-01 Jeffrey Stedfast <fejj@novell.com>
23113 Fixes for bug #405514.
23115 * text.cpp (TextBlock::Layout): If the Text property is empty,
23116 default the actualHeight to the font's height.
23117 (TextBlock::OnPropertyChanged): If the FrameworkElement::Width
23118 property changes, we need to set dirty to true (in most cases) so
23119 that the actual width/height values are recalculated.
23121 2008-06-30 Sebastien Pouliot <sebastien@ximian.com>
23123 * shape.cpp|h: Use Cairo by default to ComputeBounds. In effect
23124 this change Polyline and Polygon to use Cairo instead of (faster
23125 but less acurate) custom code. In reality PathGeometry (PML) is
23126 much more used than those Poly[line|gon] and (upcoming) caching
23127 negate much of the impact.
23128 * geometry.cpp: Use the more precise (and surviving)
23129 calc_line_bounds function that accept PenLineCap.
23131 2008-06-30 Jeffrey Stedfast <fejj@novell.com>
23133 * shape.cpp (Shape::OnPropertyChanged): If the Stroke property
23134 chanegs between null and an actual brush (in either direction),
23135 invalidate the cached path because the shape may need to
23136 recalculate the stroke offsets.
23138 2008-06-30 Sebastien Pouliot <sebastien@ximian.com>
23140 * xaml.cpp: Move reading the first point of C|Q beziers into the
23141 loop. Fix quite a few misrendering for http://xmldocs.net/ball
23142 [Partial fix for #404858]
23144 2008-06-30 Chris Toshok <toshok@ximian.com>
23146 * dirty.cpp: add all the ordering smarts to keep the two dirty
23147 lists partially sorted. hopefully this won't be a huge
23150 * uielement.h, uielement.cpp: add 2 new dirty pointers. a "succ"
23151 pointer for the down dirty list, and a "pred" for the up dirty
23154 2008-06-30 Jeffrey Stedfast <fejj@novell.com>
23156 * list.cpp (List::InsertBefore): Handle a NULL @before.
23158 2008-06-30 Geoff Norton <gnorton@novell.com>
23160 * mms-downloader.cpp: Rework Fernando's incomplete packet guard to be a little
23161 more sane while we determine how to fix this properly.
23163 2008-06-30 Jeffrey Stedfast <fejj@novell.com>
23165 * shape.cpp (Shape::ComputeShapeBounds): Reverted my previous fix,
23167 (Ellipse::ComputeShapeBounds): Same.
23169 2008-06-30 Michael Dominic K. <mdk@mdk.am>
23171 * animation.cpp: Make sure our default KeySplines parameters are correct
23172 to generate a linear dynamics curve as Silverlight. Fixes #404850.
23174 2008-06-30 Fernando Herrera <fherrera@novell.com>
23176 * pipeline.cpp: don't use g_queue_clear as is present only in glib >= 2.14
23178 2008-06-30 Fernando Herrera <fherrera@novell.com>
23181 * pipeline.cpp: Implement the packet writer MemoryQueueSource.
23185 * media.cpp: Use MemoryQueueSource for all mms streams
23186 * mms-downloader.cpp: Don't try to parse/write incomplete data packets.
23188 2008-06-29 Chris Toshok <toshok@ximian.com>
23190 * panel.cpp (Panel::OnCollectionChanged): when the ZIndex of a
23191 child changes, invalidate them here.
23193 * dirty.cpp (Surface::ProcessDownDirtyElements): and remove the
23194 subtree invalidate from the zindex processing here.
23196 2008-06-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
23198 * pipeline-ffmpeg.cpp: Add debug spew.
23199 * media.cpp: Remove debug spew.
23201 2008-06-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
23203 * media.cpp, media.h: Add streamed markers to the media element on the
23206 2008-06-28 Geoff Norton <gnorton@novell.com>
23208 * downloader.h: The finished event raises a success condition now
23209 so that we can notify failure on unsuccessful downloads.
23211 2008-06-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
23213 * mplayer.h: Add AudioPlayer::Drain to drain whatever data the audio
23214 has stored, now called by the MediaPlayer when seeking. Execute the
23215 'seeking complete' logic on the main thread (marshalling
23216 SeekCallback to the main thread). Always use the thread-safe
23217 AddTickCallSafe instead of AddTickCall, and override
23218 EventSurface::SetSurface to lock/unlock the required locks.
23219 * mplayer.cpp: Add AudioPlayer::Drain to drain whatever data the audio
23220 has stored, now called by the MediaPlayer when seeking. Execute the
23221 'seeking complete' logic on the main thread (marshalling
23222 SeekCallback to the main thread), and set the previous_position on
23223 the MediaElement to the seeked-to position when the seek is
23224 finished. Always use the thread-safe AddTickCallSafe instead of
23225 AddTickCall, and override EventSurface::SetSurface to lock/unlock
23226 the required locks.
23227 * dependencyobject.cpp, dependencyobject.h: Split AddTickCall into a
23228 thread-safe version (AddTickCallSafe) and don't do any locking in
23229 AddTickCall. Add SetSurfaceLock/Unlock so that types overriding
23230 SetSurface can do the proper locking.
23231 * media.cpp, media.h: CheckMarkers: Don't try to detect seeking by
23232 comparing to/from pts, MediaPlayer will now set previous_position
23233 correctly when seeking. AdvanceFrame: only check markers if we
23234 advanced or if we're not seeking. SetSurface: add proper locking,
23235 and use AddTickCallSafe where appropiate.
23237 2008-06-27 Larry Ewing <lewing@novell.com>
23239 * uielement.cpp (UIElement::OnPropertyChanged): opcacity mask
23240 affects the subtree as well.
23242 2008-06-27 Larry Ewing <lewing@novell.com>
23244 * uielement.cpp (UIElement::OnPropertyChanged): on things that can
23245 potentially be trapped by the Invalidate visibility check we need
23246 to invalidate the whole subtree before we start processing the
23247 dirty lists to avoid ordering issues.
23249 Fixes test/xaml/assorted/rendering-glitches2.html.
23251 2008-06-27 Chris Toshok <toshok@ximian.com>
23253 * panel.cpp (Panel::FrontToBack): add a special case for
23254 non-translucent (but NULL background) panels - we don't render
23257 2008-06-27 Larry Ewing <lewing@novell.com>
23259 * panel.cpp (Panel::FrontToBack): treat opacity specially for
23260 panel since we need the right subtree render region in PreRender.
23262 2008-06-27 Jeffrey Stedfast <fejj@novell.com>
23264 * downloader.cpp (dummy_downloader_create_web_request): Return
23265 NULL to fix a compile warning about control reaching the end of a
23268 2008-06-27 Stephane Delcroix <sdelcroix@novell.com>
23270 * downloader.[h|cpp]: move browserrequest/response from the plugin
23271 as downloaderrequest/response.
23273 2008-06-26 Chris Toshok <toshok@ximian.com>
23275 * runtime.h (RUNTIME_INIT_DESKTOP, RUNTIME_INIT_BROWSER): enable
23278 * shape.h, shape.cpp (Shape::IsCandidateForCaching): remove the
23279 condition that was keeping small surfaces from being cached, so
23280 bubblemark gets a win from this (from ~38 to 70+ fps on my
23282 (Shape::ShiftPosition): if we have a cached surface, set the
23283 device offset to mirror the new bounds x/y.
23285 2008-06-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
23287 * clock.h, clock.cpp, dependencyobject.h, downloader.cpp,
23288 dependencyobject.cpp, mplayer.h, media.h, mplayer.cpp, media.cpp:
23289 Change AddTickCall to take a TickCallHandler (EventObject*)
23290 function pointer and a EventObject * tick_data instead of untyped
23291 function pointer/tick_data.
23293 2008-06-26 Chris Toshok <toshok@ximian.com>
23295 * dependencyobject.h,
23296 dependencyobject.cpp (DependencyProperty::DependencyProperty):
23297 convert the name to downcase prior to registering and prior to
23298 calling g_hash_table_lookup to remove the casecmp overhead from
23299 our key comparisons. store the converted name in DP::hash_key.
23301 * runtime.h, runtime.cpp: remove strcase_equal (use g_strcasecmp)
23304 * type.cpp: strcase_equal -> g_strcasecmp.
23306 * playlist.cpp (PlaylistParser::OnStartElement): same.
23308 2008-06-26 Jeffrey Stedfast <fejj@novell.com>
23310 * pipeline.cpp (ASXDemuxerInfo::Supports): Fix broken boolean
23311 logic/compiler warning and at the same time simplified.
23313 * shape.cpp (Shape::ComputeShapeBounds): Need to take stroke
23314 thickness into consideration. Fixes bug #400657.
23315 (Ellipse::ComputeShapeBounds): Same.
23317 2008-06-26 Chris Toshok <toshok@ximian.com>
23319 * dirty.cpp (Surface::ProcessDownDirtyElements): add code to
23320 re-sort the children by zindex.
23322 * dirty.h (enum DirtyType): add DirtyChildrenZIndices.
23324 * panel.cpp (Panel::OnCollectionChanged): don't resort-by-zindex
23325 here. just add it to the dirty list.
23327 * transform.h, transform.cpp: move the OnSubPropertyChanged method
23328 to MatrixTransform, so we can notify our listeners with the right
23331 2008-06-26 Chris Toshok <toshok@ximian.com>
23333 * transform.h, transform.cpp (Transform::OnSubPropertyChanged): we
23334 need this to deal with sub-dependencyobjects of transforms (in
23335 this case, MatrixTransform's Matrix object.) when you set
23336 properties on these subobjects, we need to update the transform.
23338 2008-06-26 Chris Toshok <toshok@ximian.com>
23340 * brush.h, brush.cpp (Brush::OnSubPropertyChanged): add this (i
23341 think it used to be there and was removed by me in a flurry of
23342 propertychanged event fixing way back) to take care of brushes
23343 properly causing the uielement to invalidate when the Brush's
23344 transform/relativetransform changes.
23346 2008-06-26 Sebastien Pouliot <sebastien@ximian.com>
23348 * geometry.h: #ifdef out GeometryFlags until we start using it.
23349 * shape.cpp: Remove unused global variable.
23351 2008-06-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
23353 * mplayer.cpp: AudioFinished: Check if we still have audio when the
23354 callback is reached. Fixes test-double-stop.html.
23356 2008-06-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
23358 * mplayer.cpp: When calculating start_time take into account current
23359 position. Fixes test-video-only-seek.html (and fox seeking without
23362 2008-06-25 Jeffrey Stedfast <fejj@novell.com>
23364 * mms-downloader.cpp: Got rid of overuse of this-> and some int vs
23367 2008-06-25 Sebastien Pouliot <sebastien@ximian.com>
23369 * geometry.cpp: Cache bounds, both logical and "physical" for
23370 PathFigure. This reduce the number of time we need to call
23371 cairo_[path|stroke|fill]_extents functions and speed up many
23373 * geometry.h: Add stuff needed for geometry.cpp changes.
23374 * xaml.cpp: Change geometry_from_str to directly create a
23375 moon_path and avoid the PathFigure[Collection] DO. This match
23376 how Silverlight handle Path Markup Language (PML) and reduce
23377 memory requirements when huge PML are used.
23379 2008-06-24 Chris Toshok <toshok@ximian.com>
23381 * shape.cpp (calc_offsets): we don't want to divide by the sin,
23382 because as angle approaches either 0, PI, or PI/2, the sin will
23383 approach 0, and therefore the deltas will grow very, very large.
23384 Turns out multiplying is what we want.
23386 2008-06-24 Larry Ewing <lewing@novell.com>
23388 * runtime.cpp (Surface::Resize): set the width and height properly
23389 in the windowless case, let the widget resize logic handle it
23391 (Surface:render_cb): don't process dirty elements if we are in a
23392 zombie state, just clear the dirty lists and move on. Fixes a
23393 crash we were seeing when calling ForceRender on a zombie plugin.
23395 2008-06-24 Chris Toshok <toshok@ximian.com>
23397 * runtime.cpp: in the switch from function pointer to integer in
23398 the HandleMouseEvent stuff, I didn't catch that C++ apparently
23399 doesn't flag NULL as different from 0. This was causing the
23400 "HandleMouseEvent (NULL" to become effectively become
23401 "HandleMouseEvent (UIElement::DestroyedEvent" which of course
23402 breaks all sorts of things. In bug 401884 it was causing the
23403 namescope to drop the named item from its hashtable, causing the
23404 tattoo needle to not move vertically.
23406 2008-06-23 Chris Toshok <toshok@ximian.com>
23408 * uielement.cpp (UIElement::PreRender): comment from the code is
23411 we need this check because ::PreRender can (and will) be called
23412 for elements with empty regions.
23414 The region passed in here is the redraw region intersected with
23415 the render bounds of a given element. For Panels with no
23416 width/height specified in the xaml, this region will be
23417 empty. (check panel.cpp::FrontToBack - we insert the ::PreRender
23418 calling node if either the panel background or any of the children
23419 intersect the redraw region.) We can't clip to the empty region,
23420 obviously, as it will keep all descendents from drawing to the
23423 2008-06-23 Chris Toshok <toshok@ximian.com>
23425 * uielement.h, uielement.cpp (UIElement::ShiftPosition): virtualize
23426 the "bounds.x = p.x; bounds.y = p.y" code, since subclasses have
23427 other, more specialized bounds that also need updating.
23429 * panel.h, panel.cpp (Panel::ShiftPosition): new method, chain up
23430 to UIElement::ShiftPosition and also update bounds_with_children.
23432 * stylus.h, stylus.cpp (InkPresenter::ShiftPosition): new method,
23433 chain up to Canvas::ShiftPosition, and also update render_bounds.
23435 2008-06-23 Chris Toshok <toshok@ximian.com>
23437 * canvas.cpp (Canvas::OnSubPropertyChanged): allow switching
23438 between UpdatePosition and UpdateTransform according to the
23439 updatepos=yes/no override.
23441 * runtime.h, runtime.cpp: add updatepos=yes/no override.
23443 2008-06-23 Michael Dominic K. <mdk@mdk.am>
23445 * clock.cpp: Fixing a problem with repeating animations. Fixes #401983.
23447 2008-06-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
23449 * media.cpp: Don't check markers if from > to, no markers will ever be
23450 found in that interval. Also detect forward seeks by checking the
23451 difference between from and to, if difference > 1s, behave as a
23452 seek (and don't emit markers in that interval).
23453 * pipeline-ffmpeg.cpp: Give more missing information to ffmpeg.
23455 2008-06-20 Jeffrey Stedfast <fejj@novell.com>
23457 * animation.h: Added "Property Accessor" comments and grouped the
23458 property accessors, etc.
23460 * dependencyobject.cpp (EventObject::SetSurface): Reworded debug
23462 (EventObject::AddTickCall): Same.
23464 * dependencyobject.h (EventObject::GetSurface): Don't amke this
23465 virtual, nothing overrides it currently.
23467 2008-06-20 Michael Dominic K. <mdk@mdk.am>
23472 * clock.h: When detaching/reattaching to Surface execute a special
23473 handler on clocks that (in case of animation clocks) removes the update
23474 property handler. This fixes the (regressed some time ago)
23475 StoryboardEnterLeave semantics test.
23477 2008-06-19 Jackson Harper <jackson@ximian.com>
23480 * type-generated.cpp: Make sure the content property is set.
23482 2008-06-19 Larry Ewing <lewing@novell.com>
23484 * uielement.cpp (UIElement::PreRender): work around what appears
23485 to be a bug in the ftb logic by not clipping to the render region.
23487 * clock.cpp (SystemTimeSource::Start): make the timer priority
23488 DEFAULT again since otherwise we can get into starvation
23491 * uielement.cpp (UIElement::PreRender): don't save/restore around
23492 the clip changes, they restrict the group bounds and speed up
23493 opacity related masking substantially. (See bubblemark).
23495 2008-06-19 Jeffrey Stedfast <fejj@novell.com>
23497 * font.cpp (FontFace::GetExtents): Only set face pixel size if the
23498 requested size is not what we already have set.
23499 (FontFace::LoadGlyph): Same.
23500 (FontFace::Kerning): Need to set pixel sizes here or our kerning
23503 2008-06-19 Chris Toshok <toshok@ximian.com>
23505 * canvas.cpp (Canvas::OnSubPropertyChanged): call
23506 ui->UpdatePosition instead of UpdateTransform. Since
23507 UpdateTransform calls UpdateBounds, this should save us a
23508 sometimes costly (in the case of Shape's) trip through
23511 * uielement.h, uielement.cpp: Add UpdatePosition (adds the dirty
23512 node) and ComputePosition (called from ProcessDownDirtyElements.)
23513 (UIElement::ComputePosition): Apply the inverse absolute transform
23514 to the bounds x/y, compute the new transform, then reapply it to
23515 the bounds x/y to compute our new position.
23516 (UIElement::UpdateTransform): clear the DirtyPosition flag.
23517 (UIElement::UpdatePosition): only add the DirtyPosition flag if
23518 the Dirty*Transform flags aren't already set.
23521 * dirty.cpp (Surface::ProcessDownDirtyElements): add blocks for
23522 Clip, LocalClip, and Position (only Position is implemented).
23524 * dirty.h: clean up the enum some, and add 3 new passes (only one
23525 of which, DirtyPosition, is implemented).
23527 2008-06-19 Jeffrey Stedfast <fejj@novell.com>
23529 * transform.cpp: Started adding property accessor methods.
23531 * canvas.cpp (Canvas::[G,S]etLeft): Implemented.
23532 (Canvas::[G,S]etTop): Same.
23534 * uielement.cpp (UIElement::[G,S]etLeft): Moved to Canvas.
23535 (UIElement::[G,S]etTop): Same.
23537 2008-06-19 Chris Toshok <toshok@ximian.com>
23539 * rect.h: add Get{Top,Bottom}{Left,Right} methods.
23541 * point.h, point.cpp: add Transform method.
23543 2008-06-19 Michael Dominic K. <mdk@mdk.am>
23545 * animation.cpp: In a *AnimationUsingKeyFrames if we don't have any
23546 keyframes specified the duration is 0, not Automatic. This fixes the
23547 http://www.etonline.com/silverlight/grammys50/ website.
23549 2008-06-18 Sebastien Pouliot <sebastien@ximian.com>
23551 * geometry.cpp: Use the new moon-path functions for ArcSegment
23552 and QuadraticBezierSegment
23553 * moon-path.c: Change some validation to use g_return_if_fail
23555 2008-06-18 Jeffrey Stedfast <fejj@novell.com>
23557 * runtime.cpp (Surface::ShowFullScreenMessage): Simplified to use
23560 * control.cpp (Control::GetTransformFor): Simplified.
23562 * uielement.cpp (UIElement::SetLeft): Added for setting
23563 Canvas.Left property.
23564 (UIElement::GetLeft): Same.
23565 (UIElement::SetTop): Same.
23566 (UIElement::GetTop): Same.
23568 * canvas.cpp (Canvas::GetTransformFor): Simplified.
23570 2008-06-18 Sebastien Pouliot <sebastien@ximian.com>
23572 * shape.cpp: When possible (i.e. if we won't change the bounds
23573 anyway) avoid the second pass inside Shape::ComputeStretchBounds.
23574 This reduce (but does not eliminate) a BIG bottleneck for SL
23575 applications with many path using stretch (e.g. SL world).
23577 2008-06-18 Geoff Norton <gnorton@novell.com>
23579 * media.cpp: The state when Seeking should not be changed to Stopped.
23580 Fixes another test.
23582 2008-06-17 Jeffrey Stedfast <fejj@novell.com>
23584 Partial fix for bug #400657.
23586 * dependencyobject.cpp (DependencyObject::IsValueValid): If the
23587 value is a null dependency object, don't check that the types
23588 match - it doesn't matter.
23590 * color.cpp (color_to_string): New convenience utility function to
23591 aid in debugging. Returns a pointer to a static string buffer, so
23594 2008-06-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
23596 * playlist.cpp, playlist.h: Only unref/null out the media in
23597 PlaylistEntry::Stop if we're a playlist and not if we're a single
23600 2008-06-17 Sebastien Pouliot <sebastien@ximian.com>
23602 * moon-path.c|h: Add moon_quad_curve_to and moon_arc_to so they
23603 can be reused without a PathFigure-derived instance. Refactor
23604 code to expand/realloc paths to reduce duplication.
23606 2008-06-16 Chris Toshok <toshok@ximian.com>
23608 * uielement.cpp (UIElement::OnPropertyChanged): call
23609 Invalidate(GetSubtreeBounds()) and UpdateBounds() directly instead
23611 (UIElement::OnSubPropertyChanged): same.
23613 2008-06-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
23615 * playlist.cpp: When Merging items only merge duration if the source
23617 * media.cpp: MediaElement::MediaOpened: when setting the media on the
23618 current item in the playlist, make sure we set the media on a
23619 PlaylistEntry, not on a (nested) Playlist.
23621 2008-06-16 Jeffrey Stedfast <fejj@novell.com>
23623 * yuv-converter.cpp (YUVConverter::YUVConverter): Replace
23624 g_error() with g_warning(). There's really nothing else we can do
23626 (YUVConverter::Convert): Check if rgb_uv is NULL, if it is try
23627 allocating it again? Maybe some resources have been released since
23628 the ctor was called?
23630 * pipeline-ffmpeg.cpp (FfmpegDecoder::DecodeFrame): Replace
23631 g_error() with a g_warning() and return MEDIA_OUT_OF_MEMORY error.
23633 * mplayer.cpp (MediaPlayer::Open): Change g_error() into a
23634 g_warning() and return fail.
23636 2008-06-16 Michael Dominic K. <mdk@mdk.am>
23638 * clock.cpp: Don't do the ExtraRepeat action when seeking.
23640 2008-06-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
23642 * media.cpp, media.h: Move Play/Pause due to AutoPlay logic into one
23644 * playlist.cpp: When we stop, clear out our media. This fixes an issue
23645 where we didn't correctly download a file if it was stopped after
23646 it was opened, but before fully downloaded, and then restarted.
23648 2008-06-13 Jeffrey Stedfast <fejj@novell.com>
23650 * dependencyobject.cpp (include): stdlib.h for strtol()
23652 Fix for jumping to the last page in PageTurn.
23654 * uielement.cpp (UIElement::OnSubPropertyChanged): Need to call
23655 UpdateTotalRenderVisibility() when the clip changes.
23657 2008-06-13 Michael Dominic K. <mdk@mdk.am>
23661 * moon-curves.h: Cleaning up the KeySpline curve implementation a bit.
23663 2008-06-13 Michael Dominic K. <mdk@mdk.am>
23669 * moon-curves.h: First version of the new algho for calculating the "y
23670 at x" for KeySplines, now with 200% more accuracy guaranteed! Fixes the
23671 AnimationMatrix2 test.
23673 2008-06-12 Jackson Harper <jackson@ximian.com>
23675 * xaml.cpp: Remove some cruft.
23676 - Rename Custom to Managed
23677 - We don't need element maps for the namespaces anymore
23678 - Deploy can go into the default list of namespaces.
23680 2008-06-12 Fernando Herrera <fherrera@novell.com>
23682 * playlist.cpp: Parse ASX2 files using GKeyFile API to have sane NULL
23683 terminated strings. Also keep any uri paramson the mms Ref.
23685 2008-06-12 Jackson Harper <jackson@ximian.com>
23687 * xaml.cpp: Use the new stuff for creating wrapped types.
23688 - make XamlElementInstance pure virtual.
23690 2008-06-12 Jackson Harper <jackson@ximian.com>
23692 * xaml.cpp: Clean up API for creating wrapped dependency objects.
23694 2008-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
23696 * type.cpp: Fix type verification to not check 2.0 types for 1.0
23699 2008-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
23701 * media.cpp, media.h: Don't AutoPlay playlists which have already been
23702 autoplayed. Make Play/Pause/Stop/Seek async.
23703 * playlist.cpp, playlist.h: Add a AutoPlayed field to Playlist.
23705 2008-06-12 Chris Toshok <toshok@ximian.com>
23707 * control.cpp, control.h, deployment.h, frameworkelement.h,
23708 grid.h, runtime.cpp, size.h, type-generated.cpp, type.h,
23709 uielement.h, value.h, xaml.cpp: I was a little too aggressive. we
23710 can't use SL_2_0 in most places in headers (or rather, shouldn't).
23711 It might be a good idea to remove all references to it, but this
23712 at least gets the ms-tests running and passing again --with-mono.
23713 Switch to using SL_2_0 around the #includes in the .cpp files, and
23714 in value.h/type.h just include the 2.0 types.
23716 * usercontrol.h, usercontrol.cpp: split out the code from
23717 control.h, control.cpp here.
23719 * Makefile.am: add usercontrol.[h,cpp]
23721 * typegen/typegen.cs: fix up the header emission.
23723 2008-06-12 Sebastien Pouliot <sebastien@ximian.com>
23725 * geometry.cpp|h: Refactor work between PathGeometry and PathFigure
23726 ComputeBounds to avoid creating/destroying a new cairo context for
23727 each figure (it's now shared). Refactor PathFigure::Build not to scan
23728 the path list twice and rely on moon-path automatic size increase.
23729 Also avoid cairo_fill_extents if the path can't be filled or no fill
23732 2008-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
23734 * runtime.cpp: CreateDownloader: don't allow creating downloaders if we
23735 can't get a surface, nor if the surface is a zombie.
23736 * text.cpp, playlist.cpp, media.cpp: Surface::CreateDownloader may
23737 return NULL now, add a null check.
23739 2008-06-11 Jackson Harper <jackson@ximian.com>
23741 * xaml.cpp: Move GetKind to the info. Doesn't make sense for
23742 Instances to have a kind (they can access their kind from their
23745 2008-06-11 Sebastien Pouliot <sebastien@ximian.com>
23747 * geometry.cpp: Remove unneeded cairo_save|restore inside Draw
23748 methods (since Shape::Draw already does it) and remove
23749 cairo_set_fill_rule (since Shape::Fill does it).
23751 2008-06-11 Jackson Harper <jackson@ximian.com>
23753 * xaml.cpp: Clean up the namespace map when destroying the parser.
23755 2008-06-11 Sebastien Pouliot <sebastien@ximian.com>
23757 * geometry.h: Fix GeometryGround::ComputeBounds so it does
23758 not always returns 0,0,0,0 (from Geometry).
23760 2008-06-11 Geoff Norton <gnorton@novell.com>
23762 * downloader.cpp: Only Abort if we have a surface.
23763 * runtime.cpp: Detach the downloaders when we zombify.
23765 2008-06-11 Sebastien Pouliot <sebastien@ximian.com>
23767 * moon-path.c: Reorder ellipse points so the fill rule can be
23768 applied correcly (e.g. filling or clipping).
23770 2008-06-11 Michael Dominic K. <mdk@mdk.am>
23772 * clock.cpp: Fixing seeking on nested storyboards. Fixes
23773 seek-test-nested-storyboard.xaml in assorted and one more
23774 AnimationMatrix2 block. Now only one left to fix...
23776 2008-06-10 Geoff Norton <gnorton@novell.com>
23778 * mms-downloader.cpp: Reset our internal state after seeking so
23779 we can resume the stream in the right place.
23781 2008-06-10 Geoff Norton <gnorton@novell.com>
23783 * mms-downlodaer.cpp: Remove some improperly commited debug code
23785 2008-06-10 Chris Toshok <toshok@ximian.com>
23787 * control.h, control.cpp, deployment.h, uielement.h,
23788 uielement.cpp, frameworkelement.h, value.h, grid.h, size.h, xap.h,
23789 runtime.cpp: wrap everything SL2.0 with INCLUDE_MONO_RUNTIME (for
23790 now. I'll be changing that ifdef soon.) Also, mark all 2.0
23791 specific types with the following typegen pragma: /*
23792 @SilverlightVersion="2" */ so that the generated files contain the
23793 proper ifdefs as well.
23795 * type-generated.cpp, type.h, value.h: resync with new ifdefs.
23797 2008-06-10 Jackson Harper <jackson@ximian.com>
23799 * dependencyobject.cpp: Add todo for Name validation.
23801 2008-06-11 Fernando Herrera <fherrera@novell.com>
23803 * xaml.cpp: Accept numbers and strings representing numbers as
23804 values for BOOL properties. Also accept "true" and "false" case
23806 * playlist.cpp: ASX2 files can use ?MSWMExt=.asf and &MSWMExt=.asf
23807 ending uris, so just check for "MSWMExt=.asf".
23808 Fixes hsn.tv, bug #362328.
23810 2008-06-10 Jackson Harper <jackson@ximian.com>
23812 * xaml.cpp: ContentProperty should be on the ElementInfo not the
23813 ElementInstance, since you can only have one content property per
23816 2008-06-10 Geoff Norton <gnorton@novell.com>
23818 * mms-downloader.cpp: Fix some looping logic when seeking (partially
23819 fixed). Fix a typo when enumerating the streams array to not exceed
23822 2008-06-10 Jackson Harper <jackson@ximian.com>
23824 * xaml.cpp: Remove default prefix override check. This must have
23825 only been in one of the early versions of SL because I can't get
23826 SL to do it anymore. This helps fix video page turn.
23828 2008-06-10 Jackson Harper <jackson@ximian.com>
23830 * xaml.cpp: Remove x:Code since this isn't used in SL 2.0.
23832 2008-06-10 Chris Toshok <toshok@ximian.com>
23834 * dependencyobject.h, dependencyobject.cpp: split the Emit()
23835 machinery up into 3 methods. StartEmit, DoEmit, and FinishEmit.
23836 StartEmit returns a context object passed to the other two
23839 * runtime.h, runtime.cpp: use the new
23840 EventObject::{Start,Do,Finish}Emit methods to make event bubbling
23841 more transactional - any changes made to the listener list for the
23842 event we're bubbling up, for any element in our input list, are
23843 delayed until after the event has propagated. Fixes our test id
23844 191 (test-bubbling.html) as well as bug #351568.
23846 2008-06-10 Sebastien Pouliot <sebastien@ximian.com>
23848 * shape.cpp|h: Don't call ComputeShapeBounds(true) unless we need
23849 its value (i.e. Stretch != None). Make Shape::ComputeShapeBounds
23850 reuse it's physical bounds for logical instead of computing it
23853 2008-06-10 Michael Dominic K. <mdk@mdk.am>
23858 * clock.h: Replacing CreateClock with AllocateClock implementation and
23859 making sure the latter is called for Storyboards. That fixes the nested
23860 storyboards inside other storyboards...
23861 test-animation-nested-storyboard.xaml and one step more for
23864 2008-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
23866 * dependencyobject.h: Another greppable comment.
23868 2008-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
23870 * dependencyobject.cpp: Add comment to assert which shows up while
23873 2008-06-06 Geoff Norton <gnorton@novell.com>
23875 * file-downloader.h: Fix a bug between argument sending and class
23876 variables that was causing us to free and strdup the free'd pointer.
23878 2008-06-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
23880 * mms-downloader.cpp: Return NULL from GetDownloadedFilename and
23883 2008-06-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
23885 * src.mdp: Updated.
23887 2008-06-06 Jeffrey Stedfast <fejj@novell.com>
23889 * xaml.cpp: Don't use the c++ ctor initializer stuff, it breaks if
23890 members change order (like it did recently).
23891 (wrap_dependency_object): Get rid of unused variables.
23893 * media.cpp (Image): Made bools share a single int.
23895 2008-06-06 Jackson Harper <jackson@ximian.com>
23897 * xaml.cpp: Use the Type system for looking up elements, make
23898 things a little more OOP so we can easily add some of the 2.0
23899 features. Note: This is going to break x:Code and deployment
23902 2008-06-05 Geoff Norton <gnorton@novell.com>
23904 * downloader.cpp, downloader.h: More refactoring to hide the zip related
23905 details in the FileDownloader. NOTE: The exposure of the file downloader
23906 to the Text side is ugly and should be cleaned up.
23907 * text.cpp: Access obfuscated font details thru the FileDownloader API.
23908 * file-downloader.cpp, mms-downloader.cpp, internal-downloader.h: Expose
23909 the filename thru the downlodaer api.
23910 * downloader.cpp: No longer leak InternalDownloaders.
23912 2008-06-05 Geoff Norton <gnorton@novell.com>
23914 * mms-downloader.cpp, mms-downloade.h: Implement time measuring of
23915 the $P packet pair, and implement and initial algorithm to do proper
23916 bandwidth stream selection.
23918 2008-06-05 Geoff Norton <gnorton@novell.com>
23920 * downloader.cpp: Remove some left over unused variables, and the
23921 is_valid_mms_type inline.
23923 2008-06-05 Geoff Norton <gnorton@novell.com>
23925 * Makefile.am: Add file-downloader and mms-downloader to the build.
23926 * file-downloader.(cpp|h): This class is a implementation of the new
23927 InternalDownloader class utilized by the downloader to differentiate
23928 between MMS and regular requests. We should move the zip logic here.
23929 * mms-downloader.(cpp|h): This class is the MMS implementation of the
23930 InternalDownloader class.
23931 * internal-downloader.h: Route callbacks from the plugin thru this class
23932 to their appropriate file (NPStream) / MMS based implementations.
23933 * downloader.cpp: Update the API to call the InternalDownloader based
23934 representation instead of large if (mms) branches.
23936 2008-06-05 Geoff Norton <gnorton@novell.com>
23938 * downloader.cpp, downloader.h: Initial implementation of MMS inside
23939 libmoon. The API has been extended to register two additional callbacks
23940 to set HTTP headers, and the HTTP body.
23942 2008-06-05 Michael Dominic K. <mdk@mdk.am>
23944 * xaml.cpp: Removing the "broken parsing" of RepeatBehavior in
23945 --with-compatibility-bugs mode. It looks like the parsing is fine. The
23946 bug is now "implemented" in clock.cpp.
23948 2008-06-05 Michael Dominic K. <mdk@mdk.am>
23950 * clock.cpp: In ComputeNewTime when we're going over our duration time
23951 and we're AutoReversed, check actually how big the diff is cause it
23952 might be that we need to "wrap around self" and switch to forward time
23953 direction anyways (such is the case with seeking).
23955 In other words, allow to seek into particular interation of
23956 RepeatBehavior="XXXx", not only the first one. Fixes one more
23957 AnimationMatrix2 block and seek-test-multiple-repeat.xaml in assorted.
23959 This prolly needs a littlbe bit more work still, similiar mechanism
23960 needs to be present in DoRepeat etc.
23962 2008-06-05 Stephane Delcroix <sdelcroix@novell.com>
23964 * stylus.cpp: fixing a bug. stupid me.
23966 2008-06-05 Stephane Delcroix <sdelcroix@novell.com>
23968 * rect.h: new Rect (Point, Point) ctor, new ExtendTo (point) and
23969 ExtendTo (double, double) methods.
23971 * stylus.h|cpp: new StylusPointCollection::GetBounds (), check for
23972 intersection of bounds and StylusPointCollection::GetBounds in HitTest
23973 to avoid checking for stroke intersection in most of the cases. Speed
23974 up erasing in inkJournal.
23976 2008-06-04 Michael Dominic K. <mdk@mdk.am>
23978 * clock.cpp: Interesting -- looks like in SL the timespan-based
23979 RepeatBehavior is scaled by the SpeedRatio. Ie. 00:00:10 with SpeedRatio
23980 0.5 becomes 00:00:05. I wonder if it's a bug or intended feature?
23981 Anyways, implementing this and fixing two more blocks in
23984 2008-06-04 Michael Dominic K. <mdk@mdk.am>
23986 * clock.cpp: Slightly reworking the seek offsett calculations to include
23987 the SpeeRatio multiplier but do not apply it to BeginTime. Fixes one
23988 more block in AnimationMatrix2 and the test-seek-spee-ratio-begin.xaml
23991 2008-06-04 Michael Dominic K. <mdk@mdk.am>
23993 * clock.cpp: When seeking include the SpeedRatio calculations. Fixes the
23994 test-seeking-speed-ratio.xaml from assorted tests and one more block in
23995 the AnimationMatrix2 test.
23997 2008-06-03 Jeffrey Stedfast <fejj@novell.com>
23999 * control.cpp (user_control_new): %p does what %x was trying to do
24000 in this case, but without compile warnings :)
24002 2008-06-03 Jeffrey Stedfast <fejj@novell.com>
24004 Glyphs rendering optimization.
24006 * text.cpp (Glyphs::Layout): Accumulate the glyph paths here
24007 instead of re-looping this logic again in Glyphs::Render().
24008 (Glyphs::Render): Just blit the path.
24010 2008-06-03 Chris Toshok <toshok@ximian.com>
24012 * dependencyobject.cpp (DependencyObject::SetValue): Simplify this
24013 a bunch and remove all the redundant checks.
24015 (DependencyObject::MergeTemporaryNameScopes): merge both DO and
24016 Collection versions into the same method to reduce code
24019 * dependencyobject.h: no need to provide multiple overloads for
24020 MergeTemporaryNameScopes.
24022 2008-06-03 Jeffrey Stedfast <fejj@novell.com>
24024 Text rendering optimization via reduction of font loading.
24026 * font.cpp (FontFace): A new abstraction for FT_Face which is
24027 meant to prevent Moonlight from ahving to load the same font face
24028 multiple times just because the FontSize attributes don't match.
24029 (TextFont): Greatly simplified this class by using FontFace.
24031 2008-06-02 Jackson Harper <jackson@ximian.com>
24033 * xaml.cpp: Make sure we don't try to look up Content Properties
24034 on anything but elments. Property elements are given the
24035 XamlElementInfo of their parent so GetContentProperty on a
24036 PROPERTY element will return the parent's content property.
24038 2008-06-02 Michael Dominic K. <mdk@mdk.am>
24040 * clock.cpp: If we have duration-based RepeatBehavior set the
24041 repeat_count to 1 in bug-mode (--with-compatibility-bugs).
24043 2008-06-02 Michael Dominic K. <mdk@mdk.am>
24045 * xaml.cpp: SL seems to correctly parse 0:0:0 TimeSpans in "bug-mode"
24048 * clock.cpp: Remove the RepeatBehavior=1.0 forcing in Validate when
24049 RepeatBehavior=0:0:0.
24051 2008-06-02 Michael Dominic K. <mdk@mdk.am>
24053 * clock.cpp: Even more timeline validation rules.
24055 2008-06-02 Sebastien Pouliot <sebastien@ximian.com>
24057 * font.cpp: Use the existing DOUBLE_FROM_26_6 instead of dividing
24058 by 64.0 since this makes it clear why we're doing it.
24060 2008-05-30 Michael Dominic K. <mdk@mdk.am>
24062 * clock.cpp: Don't validate animations that have Duration of "00:00:00"
24063 and RepeatBehavior="Stop". That is what SL does. Fixes the clock41.xaml
24066 2008-05-30 Michael Dominic K. <mdk@mdk.am>
24068 * xaml.cpp: Adding a compatibility option
24069 (--with-compatibility-bugs=yes) that introduces a Silverlight 1.0
24070 RepeatBehavior bug.
24072 2008-05-30 Michael Dominic K. <mdk@mdk.am>
24074 * clock.cpp: Ceil the delta and ret_time. This is a very poor-man's
24075 protection against the desync's coming from integers (TimeSpan) being
24076 multiplied by floating values (SpeedRatio). Better to be non-precise
24077 forward than backward.
24079 2008-05-30 Michael Dominic K. <mdk@mdk.am>
24081 * clock.cpp: The initial ticking difference needs to be multiplied by
24082 the SpeedRatio as well. This fixes few timing desyncs. Fixes
24083 clock40.xaml, test-animation-hold-stop-speed.xaml and the RoyalBlue
24084 block from the AnimationMatrix2.
24086 2008-05-29 Jeffrey Stedfast <fejj@novell.com>
24088 * media.cpp (Image::OnPropertyChanged): Just like MediaElement, if
24089 you set an Image's Source property to an empty string (or null),
24090 it stops rendering the image.
24092 2008-05-29 Stephane Delcroix <sdelcroix@novell.com>
24094 * stylus.cpp: fix intersect_line_2d to fix the inkJournal thing.
24096 2008-05-29 Jeffrey Stedfast <fejj@novell.com>
24098 * layout.cpp|h (TextRun::IsUnderlined): Replacement for
24099 TextLayout::IsUnderline().
24100 (TextLayout::IsUnderline): Removed.
24102 * font.h (enum TextDecorations): Add a comment explaining that
24103 this is meant to be used as bit flags and not a normal
24106 2008-05-29 Sebastien Pouliot <sebastien@ximian.com>
24108 * font.h: Revert TextWrapping change as it regress DRT tests
24109 (it's possible that the value were right, but did not match
24110 the managed value used by Silverlight 1.1).
24112 2008-05-29 Jackson Harper <jackson@ximian.com>
24114 * type.cpp: INVALID types don't have content properties.
24115 * dependencyobject.h: Content properties are stored on the Type so
24116 we don't need to store them here.
24117 * xaml.cpp: Get content properties from the Type system instead of
24118 the parser's internal type map.
24119 - We don't need to do any special handling in the start_element
24120 handler for content properties anymore.
24121 * control.cpp|h: We don't need to expose the content property
24123 - Mark the content property for controls.
24125 2008-05-29 Sebastien Pouliot <sebastien@ximian.com>
24127 * font.h: Fix enum values for TextWrapping
24128 * layout.cpp: Fix regression (in earlier commit) for wrapping.
24130 2008-05-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
24132 * debug.cpp: Fix an invalid read issue found with valgrind.
24134 2008-05-29 Sebastien Pouliot <sebastien@ximian.com>
24136 * layout.h|cpp: Handle invalid values for TextDecorations and
24137 TextWrapping like Silverlight does.
24139 2008-05-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
24141 * runtime.cpp: When setting the background color delete any previoys
24144 2008-05-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
24146 * uielement.cpp: Fix minor leak.
24148 2008-05-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
24150 * src.mdp: Updated.
24152 2008-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
24154 * http-streaming.cpp: Handle quoted feature strings.
24156 2008-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
24158 * downloader.cpp: Null out request_position in the ctor.
24160 2008-05-28 Michael Dominic K. <mdk@mdk.am>
24162 * clock.cpp: Reverting the change that invalidates the timelines which
24163 have 00:00:00 duration. It is actually supported by SL.
24165 2008-05-28 Michael Dominic K. <mdk@mdk.am>
24167 * clock.cpp: In Clock::ComputeNewTime all those checks are useless.
24168 Multiply always instead of recursing down into properties.
24170 2008-05-28 Michael Dominic K. <mdk@mdk.am>
24172 * animation.cpp: If "To" and "By" are not specified use the
24173 defaultOriginValue always instead of "start" (which might be "From").
24174 Fixes the test-animation-only-from.xaml and the green block in
24177 2008-05-28 Michael Dominic K. <mdk@mdk.am>
24179 * clock.cpp: When Validating the timeline, if RepeatBehavior is
24180 incorrect make it 1.0 instead of marking the timeline as invalid.
24182 2008-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
24184 * downloader.cpp: Fix typo.
24186 2008-05-28 Sebastien Pouliot <sebastien@ximian.com>
24188 * enums.c: Fix None value in style_simulations_map and remove
24189 unneeded one (they exists only in WPF but SL parser does not like
24191 * font.cpp|h: Fix FontStyle and FontWeigth properties when the
24192 supplied value are invalid. Add new constants specific to SL.
24193 * text.h: Add simulation_none. Share an integer between all bool
24195 * text.cpp: Invalid values for StyleSimulation does not render
24197 * runtime.cpp: Invalid MouseCursor values hides the cursor.
24199 2008-05-27 Jeffrey Stedfast <fejj@novell.com>
24201 Fixes the Legend (Space Invaders) demo without breaking
24202 storyboard_EnterLeaveSemantics.htm.
24204 * clock.cpp|h (Clock::Completed): New virtual method which gets
24205 called when a clock completes.
24206 (Clock::ComputeNewTime): If a clock completes (has no more
24207 repeats, etc) then call ::Complete().
24208 (ClockGroup::ClockGroup): Changed the name of emitted_complete to
24209 emit_completed which has also changed the meaning a bit.
24210 (ClockGroup::Begin): Updated.
24211 (ClockGroup::RaiseAccumulatedEvents): If emit_completed is true,
24212 then emit the Completed event and reset emit_completed back to
24213 false so we don't re-emit.
24214 (ClockGroup::Completed): Set emit_completed to true.
24216 2008-05-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
24218 * media.cpp: MediaElement: Fix refcounting for our 'media' field. In
24219 DownloaderComplete only emit DownloadProgressChangedEvent if we
24222 2008-05-27 Michael Dominic K. <mdk@mdk.am>
24224 * xaml.cpp: Adding a comment/explanation about the RepeatBehavior and
24225 Silverlight 1.0/2.0 situation.
24227 2008-05-26 Michael Dominic K. <mdk@mdk.am>
24229 * clock.cpp: Don't validate timelines that have specified duration of
24230 00:00:00. Fixes the test-animation-zero-duration test.xaml.
24232 2008-05-26 Michael Dominic K. <mdk@mdk.am>
24235 * clock.h: When Validating the Timeline also make sure that the
24236 RepeatBehavior is correct, otherwise don't start the anim. Fixes the
24237 test-animation-zero-repeat-behavior test and brings us closer with
24238 AnimationMatrix2 test.
24240 2008-05-26 Michael Dominic K. <mdk@mdk.am>
24242 * clock.cpp: When Validating TimelineGroup don't forget to call parent's
24243 base validation method.
24245 2008-05-26 Michael Dominic K. <mdk@mdk.am>
24247 * xaml.cpp: Reverting spouliot's commit from 2008-05-08. It looks like
24248 SL supports the RepeatBehavior="XX:XX:XX" just fine. This fixes the
24249 test-aniamtion-repeat-behavior.xaml test.
24251 2008-05-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
24253 * src.mdp: Updated.
24255 2008-05-23 Sebastien Pouliot <sebastien@ximian.com>
24257 * text.cpp: (Glyphs::InsideObject) Avoid expensive, and unneeded,
24258 cairo_save/cairo_restore since we don't use the context.
24260 2008-05-23 Stephane Delcroix <sdelcroix@novell.com>
24262 * dependencyobject.[h|cpp]: merge namescopes on SetValue.
24264 2008-05-23 Jeffrey Stedfast <fejj@novell.com>
24266 * font.cpp (TextFont::PixelsPerEM): Removed, the logic was broken.
24268 * text.cpp (Glyphs::Layout): Reverted previous commit and go back
24270 (Glyphs::Render): Same.
24272 2008-05-22 Chris Toshok <toshok@ximian.com>
24274 * stylus.h, stylus.cpp (Stroke::HitTest): correct our width/height
24275 code. Only include the +2 to each side if the outline color is
24277 (Stroke::AddStylusPointToBounds): same.
24278 (Stroke::OnPropertyChanged): new method. we need to recompute the
24279 bounds if our DrawingAttributes change.
24280 (Stroke::OnSubPropertyChanged): same, if width/height/online-color
24281 of the drawing attributes change.
24283 2008-05-22 Sebastien Pouliot <sebastien@ximian.com>
24285 * brush.cpp: Fix defaults when wrong values are being used for
24286 enumerations from Javascript.
24287 [Fix part of #340799]
24289 2008-05-22 Jackson Harper <jackson@ximian.com>
24291 * dependencyobject.cpp: Only merge temp namescopes.
24293 2008-05-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
24295 * dependencyobject.cpp, dependencyobject.h: EventObject: instead of
24296 surrounding event emission with ref/unref, set a flag specifying
24297 that we're doing event emission, and catch unrefs which would cause
24298 object destruction replacing them with a delayed unref.
24300 2008-05-21 Chris Toshok <toshok@ximian.com>
24302 * collection.cpp (Collection::Add): remove the check for AddToList
24303 returning -1. It never will. Also, call SetSurface() on the new
24304 child *before* we create the Collection::Node for it, so we can
24305 tell (in SetSurface) if it's being added individually to the
24306 surface, or as part of a subtree. This is required to fix
24307 storyboard_EnterLeaveSemantics.
24309 * animation.cpp (Storyboard::SetSurface): resume the clock when
24310 we're reattached to the surface, but *only* if we're being added
24311 as part of a subtree (that is, we already have a logical parent
24312 when we hit this method.)
24314 * clock.cpp (Clock::Begin): revert the previous
24315 change (has_started needs to be initialized to false). Required
24316 to fix storyboard_EnterLeaveSemantics.htm. We'll need to figure
24317 out another way to fix the site (or a better way that fixes one
24318 without breaking the other.)
24320 2008-05-21 Jeffrey Stedfast <fejj@novell.com>
24322 * text.cpp (Glyphs::Layout): Use PixelsPerEM() instead of
24323 hard-coding the EM units ourselves.
24324 (Glyphs::Render): Same.
24326 * font.cpp (TextFont::PixelsPerEM): New convenience function.
24328 * clock.cpp (Clock::Begin): Init has_started to true. Fixes
24329 http://www.tek.co.jp/Legend
24331 * animation.cpp (Storyboard::storyboard_completed): Merged
24332 teardown_clockgroup() and invoke_completed() into a single
24333 callback. Also makes it so that we don't have to remove 2
24334 CompletedEvent handlers (which we were not doing properly afaict
24335 in Storyboard::Stop).
24336 (Storyboard::Stop): After unregistering the CompletedEvent handler
24337 and stopping the root_clock, tear down the clock group.
24339 2008-05-21 Larry Ewing <lewing@novell.com>
24341 * shape.cpp (Ellipse::BuildPath): try to shape our degenerate
24342 ellipses a little better.
24343 (Shape::ComputeStretchBounds): modify the needs_clip logic a
24344 little to catch the degenerate ellipse cases we were running into.
24346 Fixes test-shape-ellipse-stroke*.xaml.
24348 2008-05-21 Michael Dominic K. <mdk@mdk.am>
24350 * clock.cpp: Include the offsett coming from the BeginTime in the
24351 seek_time calculations. Fixes seek-test-begin-time and
24352 seek-test-wrapping-set tests. Brings us closer with AnimationMatrix2.
24354 2008-05-21 Michael Dominic K. <mdk@mdk.am>
24356 * clock.cpp: Actually do set the seek_time before using it.
24358 2008-05-21 Michael Dominic K. <mdk@mdk.am>
24360 * clock.cpp: When seeking ClockGroup, don't seek children as weel
24361 (results in cumulative behavior).
24363 2008-05-21 Sebastien Pouliot <sebastien@ximian.com>
24365 * font.cpp: (TextFont::Path) Avoid expensive save of cairo
24366 context since only the transform is changed (current point
24367 location is not part of the context).
24369 2008-05-20 Larry Ewing <lewing@novell.com>
24371 * runtime.cpp (Surface::motion_notify_callback): always return
24372 true in the windowed motion handler otherwise we something steals
24373 mouse events from us.
24375 Fixes most of MouseInput.htm
24377 2008-05-20 Michael Dominic K. <mdk@mdk.am>
24379 * clock.cpp: Fixing a problem where timeline with BeginTime set do not
24380 respond at all to Seek. Brings us closer with AnimationMatrix2.
24382 2008-05-19 Jackson Harper <jackson@ximian.com>
24384 * xaml.cpp: Only do the type wrapping if we are dealing with
24385 collection types, otherwise we just ignore the property decl.
24387 2008-05-19 Jackson Harper <jackson@ximian.com>
24389 * xaml.cpp: When we wrap a property we need to ignore the property
24390 element so that the children get added to the wrapped object
24392 * dependencyobject.cpp: We also need to merge the collection's
24393 namescope because collections can be created with their own temp
24394 namescope using createFromXaml.
24396 2008-05-19 Michael Dominic K. <mdk@mdk.am>
24401 * clock.h: Changing ExtraRepeatHandler to ExtraRepeatAction to avoid
24404 2008-05-19 Michael Dominic K. <mdk@mdk.am>
24407 * animation.h: Adding an implementation for ExtraRepeatHandler to
24408 AnimationClock that fetches target value and sets it on
24409 AnimationStorage. Fixes clock37.xaml test.
24411 2008-05-19 Michael Dominic K. <mdk@mdk.am>
24414 * animation.h: Adding helper methods to get target value out of the
24415 given AnimationTimeline. We're still missing implementations for
24416 keyframe-based anims. Coming soon.
24418 2008-05-19 Michael Dominic K. <mdk@mdk.am>
24421 * animation.h: Adding two helper methods to AnimationStorage:
24422 GetStopValue (get's current base or (if set) stop value) and
24423 UpdatePropertyWithValue to manually force prop to a given state.
24425 2008-05-19 Michael Dominic K. <mdk@mdk.am>
24428 * clock.h: Addin a virtual ExtraRepeatHandler to Clock class fired on
24429 repeat. By default does nothing.
24431 2008-05-19 Jackson Harper <jackson@ximian.com>
24433 * xaml.cpp: When createFromXaml ('<some property>...</property>')
24434 is called, we need to create and return an object that represents
24435 that property. ie createFromXaml ('<Canvas.Triggers>...); should
24436 return a ResourceDictionary object.
24438 2008-05-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
24440 * downloader.cpp: Fix warnings.
24442 2008-05-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
24444 * clock.cpp: Added comment.
24446 2008-05-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
24448 * runtime.cpp: Destroy EventObject::objects_alive upon runtime
24451 2008-05-16 Miguel de Icaza <miguel@novell.com>
24453 * dependencyobject.h (DependencyObject::GetContentProperty):
24454 returns a DependencyProperty that is the target for the content of
24455 a XAML content assignment.
24457 * xaml.cpp (XNamespace::SetAttribute): while hydrating, ignore the
24458 Class attribute as the object has already been created.
24460 (start_element): Add support for the ContentPropertyAttribute on
24461 DependencyObjects to the XAML parser. This is very primitive
24462 support at this point, and does not support collections, or type
24463 conversions as specified on the docs.
24465 * control.cpp (Control::SetContent): Refactor setting the
24466 real_object into its own routine. Currently takes a Surface
24467 parameter, not clear that this is even needed, but kept for
24468 compatibility with the old code.
24470 (UserControl::OnPropertyChanged): Hook up setting the Content
24473 * runtime.cpp (Surface::Attach): Let the widget be UIElement.
24475 2008-05-16 Larry Ewing <lewing@novell.com>
24477 * shape.cpp: draw ellipses with no width/height specified as the
24480 Fixes StretchAndShapes.xaml.
24482 2008-05-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
24484 * media.cpp: Abort the downloader when we emit MediaFailed, and always
24485 emit a DownloadProgressChangedEvent with 1.0 when we're finished
24486 downloading (we won't get any writes if the file has already been
24487 downloaded and mozilla just gives us the filename).
24489 2008-05-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
24491 * src.mdp: Updated.
24493 2008-05-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
24495 * downloader.cpp: Don't emit any events if we don't have a surface. Add
24496 warnings to Send(Internal) when we have no surface (the plugin is
24497 already checking for it, so if the warning is printed we're doing
24498 something else wrong).
24499 * runtime.h, runtime.cpp: Surface: keep a list of the downloaders we
24500 create, and when the toplevel canvas changes or the surface is
24501 destroyed clear the downloader's surface pointer.
24503 2008-05-16 Jeffrey Stedfast <fejj@novell.com>
24505 * downloader.cpp (Downloader::Abort): Set download progress to 0.
24507 2008-05-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
24509 * downloader.cpp: Don't emit nor set DownloadProgress(ChangedEvent) in
24510 NotifySize, mozilla calls NotifySize for every write.
24512 2008-05-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
24514 * type.cpp, type.h, type.h.in: Added Type::LookupEventName.
24516 2008-05-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
24518 * playlist.cpp: If we're stopping a playlist, reopen the first entry.
24519 * media.h: MediaElement: Make EmitMediaOpened and Reinitialize public
24520 so that Playlist can call them.
24522 2008-05-15 Larry Ewing <lewing@novell.com>
24524 * runtime.cpp (Surface::button_press_callback): stop firefox from
24525 stealing our focus in the widget case by always returning true on
24526 button press events. There may be a better way to handle this by
24527 only returning true if the press lands on and element but this at
24528 least improves the situation.
24530 Fixes FullScreenKey.htm.
24532 2008-05-15 Michael Dominic K. <mdk@mdk.am>
24534 * clock.cpp: Also apply the idle_hint when the ClockGroup itself goes to
24535 Filling state, this makes the idle optimization cover all the cases. Big
24536 perf boost expected.
24538 2008-05-14 Jeffrey Stedfast <fejj@novell.com>
24540 Fix for tests/xaml/test-directory-in-zip.html
24542 * media.cpp (Image::Image): Initialize some new state variables to
24543 keep track of whether or not the FrameworkElement::Width and
24544 Height values are ever manually set.
24545 (Image::DownloaderComplete): Properly set the Width/Height
24546 property values based on whether a particular Width/Height have
24547 been requested. Use the image's native width/height if not.
24548 (Image::OnPropertyChanged): Listen for changes to Width/Height
24551 2008-05-14 Larry Ewing <lewing@novell.com>
24553 * src/uielement.cpp (UIElement::PostRender): clear any existing
24554 paths when rendering the bounds rectangle.
24556 2008-05-14 Jeffrey Stedfast <fejj@novell.com>
24558 * media.cpp (MediaElement::MediaOpened): Use GetAutoPlay() instead
24559 of the more complex GetValue API.
24561 * pipeline.cpp (IMediaSource::ReadSome): Don't return false on
24562 error, return -1 (since this is an int32 return value, not bool).
24564 2008-05-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
24566 * media.cpp, media.h: Added MediaElement::IsLive, and move
24567 initialization of this field to before our MediaPlayer is opened.
24568 * mplayer.cpp, mplayer.h: For live sources the first frame might not
24569 come with pts = 0, so store that pts so that later we can correctly
24570 calculate how much we've actually played.
24572 2008-05-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
24574 * mplayer.cpp, mplayer.h: Add support for Duration tags in ASX files.
24575 * playlist.h, playlist.cpp: Added a PlaylistEntry::HasDuration method,
24576 and skip entries with zero duration.
24578 2008-05-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
24580 * dependencyobject.cpp: EventObject::AddTickCall: make sure we release
24581 the read lock if don't have a surface or timemanager.
24583 2008-05-14 Michael Dominic K. <mdk@mdk.am>
24585 * clock.cpp: No need to SoftStop the ClockGroup itself (unlike the
24586 children) on DoRepeat (). Fixes a small regression in clock21.xaml
24587 introduced with last commit.
24589 2008-05-14 Michael Dominic K. <mdk@mdk.am>
24592 * clock.h: Fixing a case for Clock when the clock has RepeatBehavior but
24593 it doesn't start from 00:00:00. Fixes #388745 (clock22.xaml test).
24595 2008-05-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
24597 * runtime.cpp: Don't call Attach (NULL) in Surface::Zombify, it causes
24598 crashes when javascript removes the plugin in an eventhandler.
24600 2008-05-13 Jeffrey Stedfast <fejj@novell.com>
24602 * media.cpp (MediaElement::DownloaderFailed): Make this more
24605 2008-05-13 Fernando Herrera <fherrera@novell.com>
24607 * media.cpp: Fix mms:// and rtsp:// fallback uri rewrite.
24609 2008-05-13 Jeffrey Stedfast <fejj@novell.com>
24611 * media.cpp (MediaBase::SetSourceAsyncCallback): Prevent memory
24612 corruption of the source.* variables by creating local references
24613 to them and setting source.* to NULL before calling
24614 SetSourceInternal().
24616 2008-05-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
24618 * clock.cpp, clock.h: Remove InvokeOnMainThread.
24619 * dependencyobject.cpp, dependencyobject.h: EventObject: added
24620 AddTickCall. Requred when adding ticks from other than the
24622 * downloader.cpp: Send: use a TimeManager to add the timeout.
24623 * media.cpp, media.h, mplayer.h, mplayer.cpp: Don't use
24624 TimeManager::InvokeOnMainThread anymore, add the timeouts using a
24625 TimeManager instance.
24627 2008-05-12 Jeffrey Stedfast <fejj@novell.com>
24629 * list.cpp (List::List): Init length to 0.
24630 (List::Clear): Reset length to 0.
24631 (List::Append): length++
24632 (List::Prepend): length++
24633 (List::Insert): length++
24634 (List::InsertBefore): length++
24635 (List::Unlink): length--
24636 (List::Length): Fixed to be O(0) instead of O(n)
24638 * stylus.cpp (StrokeCollection::HitTest): Use List::IsEmpty()
24639 instead of comparing List::Length() to 0.
24640 (Stroke::HitTest): Same.
24642 2008-05-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
24644 * media.cpp: Set the MediaOpenedEmitted flag before emitting the event,
24645 prevents us from emitting the event again as a consequence of what
24646 any of the event handlers do.
24648 2008-05-12 Michael Dominic K. <mdk@mdk.am>
24651 * dependencyobject.cpp: Fix a crash due to bad destroy recursion.
24653 2008-05-12 Michael Dominic K. <mdk@mdk.am>
24657 * dependencyobject.cpp:
24658 * dependencyobject.h: Float the AnimationStorage only when it's the
24661 2008-05-12 Michael Dominic K. <mdk@mdk.am>
24664 * animation.h: Introduce floating state for animation storage that has
24665 it's clock destroyed but it hasn't been stopped before. We need to keep the
24666 animation storage (reffed from the DependencyProperty hash) around to be
24667 able to get proper value for the next (continous) Storyboard on same
24668 property. Fixes #383879 and #375275.
24670 2008-05-09 Geoff Norton <gnorton@novell.com>
24672 * mplayer.cpp, pipeline.cpp, pipeline.h: When iterating streams
24673 ensure that we select the stream with the highest available bit
24674 rate, opposed to the first stream that we come across.
24676 2008-05-09 Jeffrey Stedfast <fejj@novell.com>
24678 * dependencyobject.cpp (DependencyObject::FindName): Don't need
24681 * namescope.cpp (NameScope::FindName): Simplify.
24683 2008-05-08 Larry Ewing <lewing@novell.com>
24685 * shape.cpp: silence some warnings.
24687 2008-05-08 Larry Ewing <lewing@novell.com>
24689 * shape.h: remove ClipOnWidthAndHeight method, replace with
24690 needs_clip variable.
24692 * shape.cpp (Shape::ComputeStretchBounds): set needs_clip based on
24693 the actual size of the object before and after the stretch and the
24696 Speeds up Sprawl and a lot of other applications that use stretch
24699 2008-05-08 Larry Ewing <lewing@novell.com>
24701 * runtime.cpp (Surface::expose_to_drawable): fill the background
24702 instead of painting and don't create the clip until the rendering
24704 2008-05-08 Miguel de Icaza <miguel@novell.com>
24706 * xaml.cpp (xaml_hydrate_from_str): New method to hydrate an
24707 existing DependencyObject with the contents of a XAML string.
24709 Needed for Silverlight 2.0 support, for the new model:
24710 create object then do LoadComponent on it.
24712 2008-05-08 Sebastien Pouliot <sebastien@ximian.com>
24714 * xaml.cpp: RepeatBehavior does not use the (documented) 0:0:0
24717 2008-05-07 Jeffrey Stedfast <fejj@novell.com>
24719 * font.cpp: Removed old layout code.
24720 (TextFont::GetGlyphInfo): Updated to use some handy Fixed->Double
24721 conversion macros to make understanding the code easier. Also,
24722 added FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH bit flag to fix layout
24723 of broken fixed-width CJK fonts.
24725 * clock.cpp (TimeManager::Stop): Added for convenience.
24726 (SystemTimeSource::SystemTimeSource): Init frequency to -1 so we
24727 can make sure it is init'd properly via SetTimerFrequency() before
24730 * runtime.cpp (Surface::Attach): Call our time_manager's Start(),
24731 not it's source's Start(). We need things like frequency to be
24732 setup and other values to be initialized properly.
24733 (Surface::Attach): After calling canvas->OnLoaded(), check that we
24734 are not zombied - if we are, return.
24736 2008-05-07 Larry Ewing <lewing@novell.com>
24738 * runtime.cpp (Surface::Zombify): call Attach (NULL) to notify the
24739 objects that the surface is undead.
24741 2008-05-06 Jeffrey Stedfast <fejj@novell.com>
24743 * animation.cpp (animation_shutdown): Renamed from
24744 animation_destroy().
24746 * text.cpp (text_shutdown): Renamed from text_destroy().
24748 * clock.cpp: Don't include gtk.h for just gtk_timeout_add(),
24749 include glib.h and use g_timeout_add() instead.
24750 (SystemTimeSource::SystemTimeSource): Init the timeout_id to 0,
24751 not -1 (the timeout ids are uint, not int).
24752 (SystemTimeSource::SetTimerFrequency): Updated.
24753 (SystemTimeSource::Start): Updated.
24754 (SystemTimeSource::Stop): Updated.
24756 * list.cpp (List::Remove): Don't need to search for the node, we
24757 already have a pointer to it.
24759 2008-05-07 Larry Ewing <lewing@novell.com>
24761 * runtime.cpp (Surface::Resize): handle a resize in windowless mode
24764 Fixes part of windowless resizing.
24766 2008-05-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
24768 * media.cpp: Handle the rtsp protocol too.
24769 * playlist.cpp, playlist.h: Store base and source_name as Uris.
24770 Implement GetFullSourceName better, and do some uri validation.
24771 * uri.h, uri.cpp: Added a allow_trailing_sep flag to Uri::Parse,
24772 disables canonicalization of trailing directory separators since
24773 asx playlists may treat urls differently depending on the presence
24774 or absence of any trailing directory separators. Added Clone ().
24776 2008-05-06 Michael Dominic K. <mdk@mdk.am>
24779 * animation.h: When attaching new animation storage and previous storage
24780 exist, flag it as non-resetable (meaning that the storage will never
24781 reset animated property to base/stop value). This fixes the
24782 storyboard-stopping-two.html test.
24784 2008-05-06 Michael Dominic K. <mdk@mdk.am>
24786 * dependencyobject.cpp:
24787 * dependencyobject.h: DependencyProperty::AttachAnimationStorage now
24788 returns the previously attached AnimationStorage.
24791 * animation.h: When attaching new animation storage try to inherit the
24792 resetValue from the previously attached storage. Reset value is the
24793 value that we reset to when storyboard is stopped (originally it always
24794 used to be the base value of the current AnimationStorage).
24796 This replicates the bahavior of SL where starting a new (second)
24797 storyboard on a property renders the prev storyboard useless
24798 (non updating the prop) but keeps it's "starting value" for storyboard
24799 reset. In other words we can say that starting a new storyboard on a
24800 prop makes this new storyboard a "continuation" of the prev storyboard.
24802 2008-05-05 Larry Ewing <lewing@novell.com>
24804 * runtime.cpp (Surface::render_cb): only call ForceRender if we
24807 2008-05-05 Larry Ewing <lewing@novell.com>
24809 * runtime.cpp: update the (almost unused) frame count where it can
24810 get hit in windowless. Clear existing paths before rendering the
24813 Minor cleanups to help with debugging the expose regions.
24815 2008-05-05 Jeffrey Stedfast <fejj@novell.com>
24817 * clock.cpp (TimeManager::Shutdown): Renamed from
24818 TimeManager::Stop() and also updated to remove all registered
24821 * runtime.cpp (Surface): We no longer keep track of signal ids, we
24822 simply remove all signals on the widgets with 'this' as the user
24825 * clock.cpp (TimeManager::Stop): Added. New method to stop the
24828 * runtime.cpp (Surface::Zombify): Stop the time manager, prevents
24829 emission of timeout events.
24831 2008-05-05 Michael Dominic K. <mdk@mdk.am>
24833 * src/shape.cpp: Reverting sde's stretch thing for now, breaks a lot of
24836 2008-05-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
24838 * media.cpp, media.h, playlist.cpp, playlist.h: MediaElement: when
24839 playing playlists, we only emit MediaEnded if we're playing the
24840 last entry in the playlist. Call Playlist::OnEntryEnded manually
24841 instead of letting the playlist rely on the MediaEnded event, since
24842 the MediaEnded event isn't raised for all entries. Playlist: Added
24843 IsCurrentEntryLastEntry.
24845 2008-05-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
24847 * media.cpp: MediaElement::UpdateProgress: Don't call BufferingComplete
24848 until the pipeline got all the data it was waiting for.
24850 2008-05-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
24852 * media.cpp, media.h: Add an EmitMediaOpened method and emit
24853 MediaOpened somewhat more aggressively, but only once.
24855 2008-05-05 Jeffrey Stedfast <fejj@novell.com>
24857 * text.cpp (Glyphs::GetSizeForBrush): Use this->width and
24858 this->height for the brush size - fixes TextTransforms.xaml once
24861 2008-05-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
24863 * media.cpp: Don't emit any BufferingProgressChanged events in
24866 2008-05-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
24868 * pipeline-ffmpeg.cpp: Give more information to ffmpeg, otherwise
24869 ffmpeg won't decode any wma audio.
24871 2008-05-05 Stephane Delcroix <sdelcroix@novell.com>
24873 * shape.cpp: draw the line caps with the stretch_transform matrix.
24874 Finetune the stretch computation again.
24876 2008-05-05 Miguel de Icaza <miguel@novell.com>
24878 * src/control.cpp: Add a skeleton UserControl, to get a bit
24879 further on the loading of a Silverlight 2 application.
24881 See the TODO, there are still many limitations.
24883 2008-05-04 Larry Ewing <lewing@novell.com>
24885 * runtime.cpp: restrict invalidations to the active windowless
24888 Fixes massive drawing issues on http://my.liveatedu.com/ where
24889 were creating invalidations with a negative coords.
24891 2008-05-04 Miguel de Icaza <miguel@novell.com>
24893 * xap.cpp: Expose xap_unpack, include when Mono runtime is
24896 * deployment.cpp: Small fixups.
24898 * xaml.cpp (deploy_namespace): New namespace used to parse
24899 AppManifest.xaml files that start with a <Deployment> tag on the
24900 http://schemas.microsoft.com/client/2007/deployment namespace.
24902 (xaml_init): Register the deployment classes.
24904 * type.cpp (type_is_dependency_object): Add new helper method
24905 to determine if a Kind is a DEPENDENCYOBJECT, the list is no
24906 longer separated in value-types and DependencyObjects, so its not
24907 possible to do a fast lookup from managed code.
24909 2008-05-04 Chris Toshok <toshok@ximian.com>
24911 [ fixes #361906, while simultaneously keeping halo3,
24912 ControlLife.htm, and ControlState.htm happy ]
24914 * runtime.h, runtime.cpp, type-generated.cpp: move back to the
24915 LoadEvent instead of the broken Attaching event, reverting
24918 * panel.h, panel.cpp: add a "emitting_loaded" guard around the
24919 body of OnLoaded so we don't end up re-entering this method.
24920 Also, revert r102196 as the ordering of parent-to-child was
24921 correct originally, there were just other ordering constraints we
24924 * control.h, control.cpp: same.
24926 * dependencyobject.h, dependencyobject.cpp: add a count field to
24927 EventClosure so we can support the "only_unemitted" arg in
24928 EventObject::Emit. The idea is that the Loaded event seems to
24929 only be emitted on those events that haven't yet been emitted.
24930 This may also be implemented just by making Loaded event handlers
24931 one-shot (removing themselves after they fire), but this is easy
24932 enough and works. The only event with this odd behavior (that I
24933 know of) is Loaded.
24935 * uielement.cpp (UIElement::OnLoaded): set the IS_LOADED
24936 flag (which may actually be useless now, given the Emit change)
24937 but don't emit Loaded only when the flag is unset.
24939 * collection.cpp: remove the last bit of closure access from
24940 VisualCollection. The OnLoaded call now happens in
24941 Panel::OnCollectionChanged, in 1 spot as opposed to 3 different
24942 spots in VisualCollection.
24944 2008-05-02 Sebastien Pouliot <sebastien@ximian.com>
24946 * text.cpp|h: Adjust Glyphs::InsideObject with bounds changes.
24947 [Complete the fix for #383870]
24949 2008-05-02 Jeffrey Stedfast <fejj@novell.com>
24951 * text.cpp (Glyphs::Layout): Take negative vOffset attr's for
24952 glyphs into account when calculating extents. Fix usage of OriginX
24953 and OriginY as far as extents goes.
24954 (Glyphs::GetOriginPoint): Don't leak the TextFont.
24955 (Glyphs::GetTransformOrigin): Always use 0.0,0.0 as the
24956 RenderTransformOrigin, Microsoft's implementation for Glyphs
24957 doesn't seem to take into account the width/height of the bounding
24959 (Glyphs::Layout): Use OriginX,OriginY as the bounding box origin
24960 rather than MIN (OriginX, 0), Min (OriginY, 0)
24962 2008-05-02 Sebastien Pouliot <sebastien@ximian.com>
24964 * text.cpp|h: Add Glyphs::InsideObject so Mouse events will work.
24965 [Partial fix for #383870, bounds are not always correct]
24967 2008-05-02 Jeffrey Stedfast <fejj@novell.com>
24969 * text.cpp (Glyphs::Render): Cache the glyph string in a moon-path
24970 rather than copying it from the cairo context for the same reason
24971 we did this for TextBlock segment path caching.
24973 2008-05-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
24975 * playlist.h, playlist.cpp: Implemented ClientSkip.
24976 * media.cpp: Handle playlists entry with ClientSkip set correctly.
24978 2008-05-02 Michael Dominic K. <mdk@mdk.am>
24981 * animation.h: For the KeySpline: getting rid of the ugly lookup-table
24982 with x -> y values and instead using a two-way curve approximation
24983 methodology for calculating the Spline progress. This is not 100% accurate
24984 (same as original bezier) for fine-grained values but removes all the
24985 precision problems and greatly improves the quality for long KeySpline
24986 animations (no more jags).
24988 2008-05-01 Larry Ewing <lewing@novell.com>
24990 * uielement.cpp (UIElement::OnPropertyChanged): go ahead and
24991 invalidate here as changes in the upstream opacity could make us
24992 unable to invalidate later.
24994 Fixes invalidation of last hex in a sprawl run.
24996 2008-05-01 Larry Ewing <lewing@novell.com>
24998 * runtime.cpp: Fix a bunch of rendering bugs in windowless mode.
24999 Previously there were no time manager handlers listening to events
25000 in windowless mode so we were missing expose events. Make all
25001 invalidations go throw Invalidate so that they get picked up in
25002 windowless. Take into account that exposes go to a full size
25003 window in windowless mode so we don't need to subtract the device
25006 Fixes most of the issues with
25007 http://silverlight.r2musings.com/weatherwidget/default.aspx and
25008 fixes the harness failure on ZIndex.htm.
25010 2008-05-01 Chris Toshok <toshok@ximian.com>
25012 * runtime.h, runtime.cpp: remove the LoadEvent and instead add an
25013 AttachingEvent, which is emitted after the toplevel control is set
25014 on the surface, but before UIElement::LoadedEvent is emitted on
25015 it. Used by the plugin for hooking up the plugin onLoad handler.
25017 2008-05-01 Jeffrey Stedfast <fejj@novell.com>
25019 * layout.cpp (RenderLine): Instead of grabbing the cairo_path_t
25020 from the cairo_t after pathing out all of the glyphs for a segment
25021 of text, keep our own moon_path for caching. Apparently the path
25022 gotten from cairo_copy_path() has whatever transforms are on the
25023 context pre-applied which is the cause for the breakage in bug
25026 * font.cpp (TextFont::AppendPath): New method to append a glyph's
25027 path to a moon_path for caching purposes.
25029 2008-04-30 Fernando Herrera <fherrera@novell.com>
25031 * media.cpp: at MediaElement::DownloaderFailed if the uri was a mms://
25032 stream, fallback to http:// uri
25034 2008-04-30 Michael Dominic K. <mdk@mdk.am>
25037 * panel.h: Adding the panel_add_child helper method used by the ancient
25038 demo. It actually makes sense.
25040 2008-04-30 Michael Dominic K. <mdk@mdk.am>
25045 * xaml.cpp: Include the utils.h locally in .cpp file and remove it from
25046 the install. This way we don't need to bundle the zip includes.
25048 2008-04-30 Stephane Delcroix <sdelcroix@novell.com>
25050 * shape.cpp: calc_line_bounds: compute the start|end caps in the
25053 2008-04-30 Sebastien Pouliot <sebastien@ximian.com>
25055 * panel.cpp: Emit Loaded on Canvas before it's child.
25056 [Fix part #361906 - i.e. back to original issue]
25058 2008-04-30 Fernando Herrera <fherrera@novell.com>
25061 * downloader.h: export downloader_get_downloaded_file without the
25064 2008-04-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
25066 * pipeline.cpp: Mp3FrameReader/Demuxer: Calculate frame duration
25067 correctly, and calculate file duration as MS seems to be doing it.
25068 SkipFrame: when seeking don't take into account the size of the
25069 mpeg header, since we only peaked it.
25071 2008-04-29 Michael Dominic K. <mdk@mdk.am>
25073 * shape.cpp: Clipping is not taken into account with cairo_in_*
25074 functions therefore do the hit-test in two steps -- first check if
25075 within clipping bounds and then check if within shape bounds. Fixes
25076 #383894 and test-shape-cursor-clipping.xaml test.
25078 2008-04-28 Chris Toshok <toshok@ximian.com>
25080 * runtime.cpp (Surface::Attach): emit the canvas's Loaded event
25081 before we emit our own Load event (and trigger the plugin's onLoad
25084 2008-04-28 Chris Toshok <toshok@ximian.com>
25086 * runtime.cpp (Surface::Attach): always emit Resize on Attach.
25087 fixes ControlState.htm.
25089 2008-04-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
25091 * typegen/typegen.cs: Minor fix to support C constructors immediately
25093 * type-generated.cpp: Regenerated (includes a lot more C constructors
25096 2008-04-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
25098 * geometry.h: Include glib.h before using glib macros.
25100 2008-04-28 Michael Dominic K. <mdk@mdk.am>
25102 * xaml.cpp: Silently skip the attributes that are empty instead of
25103 throwing an error. Fixes the test-parser-empty-property.xaml and
25106 2008-04-28 Michael Dominic K. <mdk@mdk.am>
25108 * brush.cpp: Make sure to use proper width for image stretching params.
25109 Fixes the image-brush-stretch-set.html and bug #383938.
25111 2008-04-25 Jeffrey Stedfast <fejj@novell.com>
25113 * shape.cpp: Added property accessors.
25115 2008-04-25 Chris Toshok <toshok@ximian.com>
25117 * type-generated.cpp: add the Surface Loaded event.
25119 * runtime.cpp (Surface::widget_destroyed): null out s->widget if
25120 it matches too. no more dangling pointers.
25122 * runtime.h, runtime.cpp: give the Surface class a Load
25123 event (used to run the JS OnLoad event in the plugin) and an
25126 * xaml.cpp (dependency_object_hookup_event): raise a parser error
25127 if an event is specified with a javascript: prefix.
25129 2008-04-25 Larry Ewing <lewing@novell.com>
25131 * stylus.cpp (InkPresenter::OnCollectionChanged): wrap the stroke
25132 changed logic inside a type check.
25134 2008-04-25 Jeffrey Stedfast <fejj@novell.com>
25136 * xaml.cpp (geometry_from_str): Use the new gemoetry property
25139 * geometry.cpp: Added property accessor methods
25141 2008-04-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
25143 * media.cpp: Always emit DownloadProgressEvents, even if we're
25146 2008-04-25 Stephane Delcroix <sdelcroix@novell.com>
25148 * stylus.cpp: InkPresenter::OnCollectionChanged: call the parent
25149 method, so the Canvas.Top, Canvas.Left properties are read. Fixes
25152 2008-04-25 Geoff Norton <gnorton@novell.com>
25154 * pipeline-ffmpeg.cpp, pipeline-ffmpeg.h: Support using ffmpeg's
25155 new libavcodec/avcodec.h
25157 2008-04-25 Jeffrey Stedfast <fejj@novell.com>
25159 * runtime.cpp (runtime_init): No longer need to call
25160 assembly_part_init().
25162 * deployment.cpp (assembly_part_init): Moved into
25165 * deployment.h: Added missing virtual dtors.
25167 * collection.cpp (Collection::GetCount): Added.
25169 2008-04-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
25171 * media.cpp: Set DownloadProgress to 0 when media fails to load.
25173 2008-04-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
25175 * media.cpp: MediaElement::CheckMarkers: if the marker is from a live
25176 stream, emit it even if we missed it by up to 0.1 s. Refactored
25177 parts of UpdateProgress into GetBufferedSize. Emit MediaOpened only
25178 after we've either started playing or finished buffering. Emit
25179 MediaFailed/InvalidFileFormat if we failed to initialize the media.
25180 Reinitialize the media synchronously in SetSource.
25183 2008-04-25 Michael Dominic K. <mdk@mdk.am>
25187 * uielement.h: Also include the IsHitTestVisible status when checking
25188 our input_list after handling the mouse event. This fixes the
25189 mouse-enter-leave-hit-test-visibility.html test.
25191 2008-04-25 Stephane Delcroix <sdelcroix@novell.com>
25193 * runtime.cpp: move the hotspot for the eraser, Fixes bnc 375213.
25195 2008-04-24 Jeffrey Stedfast <fejj@novell.com>
25197 * clock.cpp: Added property accessor methods for TimelineMarker
25198 and added c-bindings.
25200 * downloader.cpp: Same.
25202 * media.cpp: Added property accessors so that it isn't
25203 necessary to use long-winded c-function names to get property
25204 values. Also made all c-wrappers call the c++ property accessor
25207 2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
25209 * mplayer.cpp: When a video-only media reaches its end, set target_pts
25210 to the last rendered pts, since that's what is reported as our
25213 2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
25215 * mplayer.cpp: When a video-only media reaches its end, set target_pts
25216 to the last rendered pts, since that's what is reported as our
25219 2008-04-24 Michael Dominic K. <mdk@mdk.am>
25223 * uielement.h: Renaming UIElement::GetActualRenderVisibility to
25224 UIElement::GetActualTotalRenderVisibility for better name matching.
25226 2008-04-24 Michael Dominic K. <mdk@mdk.am>
25228 * runtime.cpp: Another perf fix for the fix -- make it a corner case
25229 when the new_input_list needs to be copied. In most cases we can just
25232 2008-04-24 Michael Dominic K. <mdk@mdk.am>
25236 * uielement.h: Ooops, so my prev fix was correct but *totally* dumb from
25237 the perf/sanity point of view. Here goes a better refactor.
25239 Adding UIElement::GetActualRenderVisibility which returns the visibility
25240 (like UIElement::ComputeTotalRenderVisibility) without setting the
25243 2008-04-24 Michael Dominic K. <mdk@mdk.am>
25245 * runtime.cpp: After emitting the events make sure to update our
25246 input_list since it can be changed -- as a result of somebody ie.
25247 changing element's visibility in the enter/leave callback. Fixes the
25248 #375220 (Microsoft downloads index chars).
25250 2008-04-24 Michael Dominic K. <mdk@mdk.am>
25252 * animation.cpp: Do a slightly more precise generation of key-spline
25253 tables. Improves smoothness ie. in test-animation-slow-keyspline.xaml.
25255 2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
25257 * media.cpp, media.h: MediaElement: add a handler for DownloaderFailed
25258 and raise MediaFailed.
25260 2008-04-24 Stephane Delcroix <sdelcroix@novell.com>
25265 * shape.h: override some Compute[Shape]Bounds method to pass a matrix
25266 argument. Allows measuration of transformed Pathes and a 2nd pass to
25267 refines the guesses we're doing for Stretches.
25269 2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
25271 * src.mdp: Updated.
25273 2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
25275 * media.cpp, pipeline.cpp, pipeline.h: Addded
25276 ProgressiveSource::NotifyFinished to notify that the download has
25277 finished. This is required for streaming downloads which download 0
25278 bytes, otherwise the pipeline will hang waiting for data.
25280 2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
25282 * collection.cpp, collection.h: TimelineMarkerCollection needs to be
25283 sorted at all times, added a virtual Collection::AddToList method
25284 which appends the item to the list (and overriden by
25285 TimelineMarkerCollection to add it in the correct position to keep
25286 the collection ordered).
25288 2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
25290 * clock.cpp, clock.h: Added property accessors to TimelineMarker.
25292 2008-04-23 Jeffrey Stedfast <fejj@novell.com>
25294 * panel.cpp: Add property accessors and added c-bindings.
25296 2008-04-23 Geoff Norton <gnorton@novell.com>
25298 * Makefile.am: Fix make dist when building with ffmpeg.
25300 2008-04-23 Jeffrey Stedfast <fejj@novell.com>
25302 * frameworkelement.cpp: Added property accessors so that it isn't
25303 necessary to use long-winded c-function names to get property
25304 values. Also made all c-wrappers call the c++ property accessor
25307 * text.cpp: Added property accessors to all text classes so that
25308 it isn't necessary to use long-winded c-function names to get
25309 property values. Also made all c-wrappers call the c++ property
25311 (TextBlock::LayoutSilverlight): Removed, logic moved into
25314 * animation.h: Make sure all c-API _new() functions take void as
25317 * uielement.cpp: Added some property accessors.
25319 * text.cpp: Use the new SolidColorBrush ctor.
25321 * brush.cpp: Added property accessors to all brush classes so that
25322 it isn't encessary to use long-winded c-function names to get
25323 property values. Also made all c-wrappers call the c++ property
25325 (SolidColorBrush::SolidColorBrush): New .ctor to make life
25328 2008-04-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
25330 * mplayer.cpp: AudioPlayer: prevent calling SetTargetPts on the
25331 MediaPlayer with a negative pts.
25333 2008-04-23 Geoff Norton <gnorton@novell.com>
25335 * libmoon.h: Drop mango.h
25337 2008-04-23 Geoff Norton <gnorton@novell.com>
25339 * runtime.cpp: Remove pango support.
25341 2008-04-23 Geoff Norton <gnorton@novell.com>
25343 * Makefile.h, text.cpp, text.h, mango.cpp, mango.h: Remove pango
25346 2008-04-23 Geoff Norton <gnorton@novell.com>
25348 * swscale-converter.cpp, pipeline-ffmpeg.cpp, Makefile.am: Only
25349 include swscale and ffmpeg cpp files in the build if their configure
25352 2008-04-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
25354 * type.cpp: When looking for types use case-insensitive type
25355 comparison. Fixes #375230 and #375231.
25357 2008-04-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
25359 * pipeline.cpp, pipeline.h: MediaClosure: add SetContextUnsafe which
25360 don't take a ref to the context, and add a context_refcounted field
25361 to keep track of refcounting. This is required for long-living
25362 closures which would otherwise cause circular references. Add and
25363 implemetn a ASFMarkerDecoderInfo class, and implement notification
25364 of found markers back to listeners.
25365 * src.mdp: Updated.
25366 * downloader.cpp, downloader.h: Downloader: Add a streaming_features
25367 field, so that the plugin can return information about mms streams.
25368 * http-streaming.cpp, http-streaming.h: Added
25369 parse_http_streaming_features.
25370 * mplayer.h: Add property accessors for CanSeek and CanPause, and
25371 implement them. Select any marker streams.
25372 * media.h, media.cpp: MediaElement: store the marker closure in the
25373 instance, so that we can delete it upon destruction. Read the
25374 streaming features from the downloader in order to set
25375 CanSeek/CanPause properly. TryOpen: if we don't have a filename,
25376 but we do have a downloaded file, use the downloaded file as the
25377 source (might happen if streaming stops before TryOpen is called).
25378 * mplayer.cpp: Add property accessors for CanSeek and CanPause, and
25379 implement them. Select any marker streams. Don't check if we can
25380 pause in Pause (), since MediaElement implements Buffering calling
25381 Pause on us. MediaElement is already checking if media can be
25383 * Makefile.am: Added http-streaming.h|cpp.
25385 2008-04-22 Stephane Delcroix <sdelcroix@novell.com>
25387 * rect.h: overrides for Union and IsEmpty to take a logical bool,
25388 allowing logical bounds computation.
25389 * geometry.cpp: use the overrided Union () in Computebounds
25390 * shape.cpp: This is the stretches' Holy Grail !
25392 2008-04-22 Jeffrey Stedfast <fejj@novell.com>
25394 * eventargs.cpp (MouseEventArgs::GetStylusPoints): Make sure
25395 event->device non-NULL.
25397 2008-04-22 Larry Ewing <lewing@novell.com>
25399 * playlist.h: remove expat references from public symbols.
25400 * playlist.cpp: Wrap XML_Parser in simple class to hide the symbol
25401 from the plublic headers.
25403 Start cleaning things up for ff3.
25405 2008-04-22 Chris Toshok <toshok@ximian.com>
25407 * runtime.h, runtime.cpp: add Zombify() which sets the zombie
25408 flag. basically this allows us to unwind gracefully from an event
25409 that has caused the surface to be destroyed. when the flag is
25410 set, we basically stop emitting UI events that we're in the
25411 process of emitting.
25412 (Surface::widget_destroyed) simplify this, and zero out the
25413 widgets here so we don't destroy them again in ~Surface().
25415 * dependencyobject.h, dependencyobject.cpp: make unref_delayed
25416 public again, and don't warn about calling it on the main thread.
25417 we need it in the plugin.
25419 2008-04-22 Jeffrey Stedfast <fejj@novell.com>
25421 * shape.cpp (Shape::DoDraw): Cast extents to int for
25422 AddToCacheSizeCounter().
25423 (Shape::IsCandidateForCaching): Same for
25424 VerifyWithCacheSizeCounter().
25426 2008-04-22 Michael Dominic K. <mdk@mdk.am>
25428 * animation.cpp: Safely allow now the KeyTime property to be nullable.
25429 Fixes the Animation_NegativeTst.htm test.
25431 2008-04-22 Michael Dominic K. <mdk@mdk.am>
25434 * animation.h: Making the Storyboard::Begin return bool (true if
25435 storyboard started correctly, false otherwise).
25437 2008-04-22 Michael Dominic K. <mdk@mdk.am>
25442 * clock.h: Adding a 'bool Validate ()' virtual to Timeline which is used
25443 to validate the Timeline before starting it. Timelines are always valid
25444 by default except for KeyFrame-based animations where we perform a
25445 check on the keyframes.
25447 Storyboard doesn't start if any of it's timelines are not valid. This
25448 fixes the test-animation-invalid-keyframe-keytime.xaml test.
25450 2008-04-22 Michael Dominic K. <mdk@mdk.am>
25452 * animation.cpp: Don't initialize the KeyTime for KeyFrame to a default
25453 value, make it be NULL by default. This currently causes a segfault in
25454 the just-added test-animation-invalid-keyframe-keytime.xaml which is
25457 2008-04-22 Fernando Herrera <fherrera@novell.com>
25460 * pipeline.cpp: set the new read position after Seeking to pts.
25461 Added ProgressiveSource::SeekInternal that refuses to Seek to a
25462 non-filled position.
25464 2008-04-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
25466 * dependencyobject.cpp, dependencyobject.h: Added another SetValue
25467 overload, to enable calling all SetValues with stack objects.
25468 * xaml.cpp: Fix a Value leak.
25470 2008-04-21 Jeffrey Stedfast <fejj@novell.com>
25472 Fixes a double-destroy bug in FullScreen.htm
25474 * runtime.cpp (Surface::Surface): Initialize normal_widget - never
25475 let it be NULL unless we are in windowless mode.
25476 (Surface::.dtor): Don't call DestroyWidget on 'widget', call it on
25477 'widget_normal' instead, this way we can't accidently destroy the
25478 fullscreen widget twice (e.g. if we are in fullscreen mode).
25479 (Surface::ConnectEvents): Record the unrealize signal id so that
25480 we can later disconnect from it.
25481 (Surface::DestroyWidget): Now takes a SignalIds argument so that
25482 we can disconnect from unrealize/destroy signals which may fire in
25483 response to destroying the widget.
25484 (Surface::InitializeWidget): Now takes a SignalIds argument so
25485 that we can save the destroy signal id.
25487 2008-04-21 Geoff Norton <gnorton@novell.com>
25489 * runtime.cpp: Guard against freeing a list in a sub-event
25490 loop when crossings are invoked. Fixes bug#378902
25492 2008-04-20 Miguel de Icaza <miguel@roxanne.site>
25494 * deployment.cpp: new dependency property objects for the
25497 * xap.cpp: XAP loader, unpacks and instantiates deployment, but
25498 does not load assemblies in VM. Not sure if this should be done
25499 here (and add a VM dependency) or in the plugin and later as well
25502 * runtime.cpp: Deployment initialization.
25504 * downloader.cpp Moved some code from here into utils.cpp: Expose
25505 CreateTempDir instead of MakeTempDir that takes care of creating
25506 the directory with a unique signature.
25508 2008-04-21 Geoff Norton <gnorton@novell.com>
25510 * yuv-converter.cpp: Emit a warning on unaliged memory and fall back
25511 to the C implementation.
25513 2008-04-18 Larry Ewing <lewing@novell.com>
25515 * dirty.cpp (Surface::ProcessDownDirtyElements): When visibility
25516 changes invalidate our parents bounds to notify them that their
25517 subtree may have changed.
25519 Fixes the status boxes on MouseInput.htm
25521 2008-04-18 Jeffrey Stedfast <fejj@novell.com>
25523 * runtime.cpp (Surface::ConnectEvents): Connect to focus-in-event
25524 and focus-out-event.
25525 (Surface::focus_in_callback): If we have a toplevel canvas, emit a
25526 GotFocus event on it.
25527 (Surface::focus_out_callback): If we have a toplevel canvas, emit
25528 a LostFocus event on it.
25529 (Surface::Attach): If our widget has focus, emit GotFocus event on
25530 our canvas right after we emit the Loaded event.
25532 * uielement.cpp (UIElement::EmitGotFocus): New method.
25533 (UIElement::EmitLostFocus): New method.
25535 2008-04-18 Geoff Norton <gnorton@novell.com>
25537 * yuv-converter.cpp: It seems that ffmpeg will occasionally
25538 over-pad the YUV buffers with a SIMD aligned amount (see
25541 2008-04-18 Michael Dominic K. <mdk@mdk.am>
25543 * animation.cpp: Make sure we always return targetValue when
25544 progress >= 1.0 for Spline*KeyFrame's.
25546 This fixes the clock36.xaml test and PopFly bug of "line dirt
25547 leftovers" when collapsing block list or tutorial list.
25549 2008-04-17 Larry Ewing <lewing@novell.com>
25551 * xaml.cpp (xaml_init): register MouseEventArgs as a dependency object.
25553 2008-04-17 Larry Ewing <lewing@novell.com>
25555 * src/eventargs.cpp:
25557 * src/type-generated.cpp:
25558 * src/value.h: add a default ctor for MouseEventArgs.
25560 2008-04-17 Larry Ewing <lewing@novell.com>
25562 * typegen/typegen.cs: don't require an svn repo for proper
25563 functioning, try to make the error messages functional still.
25565 2008-04-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
25567 * media.cpp: MediaElement::MediaOpened: Advance state to Buffering
25568 before trying to play/pause, otherwise nothing will happen (if
25569 coming from the Opening state). Fix printf.
25571 2008-04-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
25573 * dependencyobject.cpp, dependencyobject.h: Add an always_change flag
25574 for DependencyProperty, if a property has this flag, it will always
25575 be changed, even if the new value is the same as the old value.
25576 DependencyObject::SetValue: honor the new always_change flag.
25577 * media.cpp: Set the always_change flag to true for
25578 MediaBase::SourceProperty.
25580 2008-04-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
25582 * media.cpp: MediaElement: Move the Play/Pause/AutoPlay logic to
25583 MediaOpened, so that it also happens when TryLoadFinished opens the
25584 media. Fixes media not starting to play when the media was
25585 downloaded between the moment we tried to open it and it was
25586 successfully opened.
25588 2008-04-17 Jeffrey Stedfast <fejj@novell.com>
25590 * color.cpp (color_from_str): Handle uint32 color values that are
25593 2008-04-17 Larry Ewing <lewing@novell.com>
25595 * dependencyobject.cpp (DependencyProperty::DependencyProperty):
25596 initialize is_nullable.
25598 Fixes random failure of ParserErrors.htm.
25600 2008-04-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
25602 * media.cpp: MediaElement::TryOpen: always unref the FileSource we
25603 create when we're done with it.
25605 2008-04-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
25607 * dependencyobject.cpp, dependencyobject.h: EventObject: we need to
25608 remember how many events the current type has, since in our
25609 destructor we can't get that information anymore. Add a new
25610 EventLists class which does the book-keeping.
25612 2008-04-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
25614 * media.cpp: MediaElement::Reinitialize: don't call SetValue if we're
25615 in the destructor. MediaElement::SetMedia: call ComputeBounds at
25616 the end. Fixes xaml/test-canvas-no-size.html
25618 2008-04-17 Michael Dominic K. <mdk@mdk.am>
25620 * animation.cpp: It turns out that KeyFrames doesn't have default Value
25621 of NULL but rather 0/Black/etc.
25623 This fixes the the test-animation-null-defaults-*.xaml tests and the bug
25624 in PopFly where clicking the block list collapser wouldn't do anything
25625 (it collapses now properly like the tutorial right pane).
25627 2008-04-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
25629 * src.mdp: Updated.
25631 2008-04-16 Larry Ewing <lewing@novell.com>
25633 * type.cpp: avoid an infinite recursion in LookupEvent.
25635 Fixes a crash in RuntimeErrors.htm.
25637 2008-04-16 Larry Ewing <lewing@novell.com>
25639 * shape.cpp (Shape::ComputeStretchBounds): get another test working.
25641 2008-04-16 Larry Ewing <lewing@novell.com>
25643 * shape.cpp (Shape::ComputeStretchBounds): an incomplete fix to
25644 try to resolve the regression in stretch that had crept in. Still
25645 working on a more complete patch.
25647 2008-04-16 Larry Ewing <lewing@novell.com>
25649 * geometry.cpp (RectangleGeometry::ComputeBounds): rectangles have
25652 2008-04-16 Jeffrey Stedfast <fejj@novell.com>
25654 * dependencyobject.cpp (free_value): value argument may be NULL.
25656 2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
25658 * dependencyobject.cpp: DependencyObject: Emit DestroyedEvent before
25659 decreasing refcount, so that ref in event emission doesn't abort.
25660 Reenable ref/unref in event emission.
25662 2008-04-16 Jeffrey Stedfast <fejj@novell.com>
25664 * dependencyobject.cpp (set_surface): value argument can be NULL.
25665 (DependencyObject::IsValueValid): Fixed compile warnings.
25667 * downloader.cpp: Properly set/reset Status and StatusText
25669 (Downloader::Open): Properly reinitialize all state.
25670 (Downloader::Write): Clamp progress to 1.0 (altho it should never
25671 go above, especially not that I've fixed resetting 'total' state).
25673 * enums.c (initialize_enums): Don't cast arrays using
25674 GINT_TO_POINTER(), doesn't make any sense.
25676 2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
25678 * collection.cpp: Collection::EmitChanged: don't create a
25679 ChangeEventArgs if we don't need one, and unref it when we're
25682 2008-04-16 Michael Dominic K. <mdk@mdk.am>
25684 * clock.cpp: Add protection against division by 0.
25686 2008-04-16 Michael Dominic K. <mdk@mdk.am>
25689 * animation.h: Don't detach the ClockGroup from parent on the Completed
25690 event. This is now finally no longer needed. While keeping the
25691 clockgroup means little perf difference it makes the whole thing much
25692 more simple to read (there is just one place that explains why Filling
25693 groups are no longer processed after Completed).
25695 2008-04-16 Larry Ewing <lewing@novell.com>
25697 * shape.cpp: tweak the origin tweak again. This should pass
25698 test-shape-path-stretch[34].xaml.
25700 2008-04-16 Jeffrey Stedfast <fejj@novell.com>
25702 Fix for OMPackagingSource.htm
25704 * media.cpp (MediaElement::OnPropertyChanged): If the new source
25705 is empty, Invalidate().
25706 (MediaElement::Render): Render nothing if our downloader is NULL.
25708 2008-04-16 Larry Ewing <lewing@novell.com>
25710 * shape.cpp: don't adjust the origin unless we are adjusting that
25713 2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
25715 * playlist.cpp: Simplify printf.
25717 2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
25719 * src.mdp: Updated to (mostly) compile.
25721 2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
25723 * src.mdp: Updated.
25725 2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
25727 * typegen/typegen.sh: Updated to work correctly independently of
25728 the current directory when executed.
25730 2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
25732 * animation.cpp, animation.h, brush.cpp, brush.h, clock.cpp, clock.h,
25733 collection.cpp, collection.h, dependencyobject.h, downloader.cpp,
25734 downloader.h, Makefile.am, media.cpp, media.h, runtime.cpp, runtime.h,
25735 type.cpp, type.h, type.h.in, typegen/typegen.cs, type-generated.cpp,
25736 uielement.cpp, uielement.h: Initialize our type system statically.
25737 * dependencyobject.cpp: Initialize our type system statically. Comparing a
25738 Kind value to another to determine type hierarchy isn't supported
25739 anymore, use Value::Is or Type::IsSubclassOf, which are doing the right
25741 * src.mdp: Updated.
25742 * type.cpp.in: Removed, no longer required.
25743 * value.cpp, value.h, value.h.in: Comparing a Kind value to another to
25744 determine type hierarchy isn't supported anymore, use Value::Is or
25745 Type::IsSubclassOf, which are doing the right thing.
25747 2008-04-16 Larry Ewing <lewing@novell.com>
25749 * shape.cpp (Shape::ComputeStretchBounds): fix typo.
25751 2008-04-16 Larry Ewing <lewing@novell.com>
25753 * shape.cpp (Shape::ComputeStretchBounds): fix the centering logic
25754 that got accidentally lost when fixing other bits.
25756 Fixes regression in StretchAndShapes.xaml.
25758 2008-04-16 Jackson Harper <jackson@ximian.com>
25760 * xaml.cpp: {x:Null} evaluates to NULL, if we encounter this value
25761 we need to check if the property is Nullable and raise an error if
25764 2008-04-16 Jackson Harper <jackson@ximian.com>
25766 * dependencyobject.h|cpp: SetValue now validates values and
25767 returns false with a GError when invalid values are used.
25768 Subclasses can (and should) override IsValidValue to do their own
25770 * xaml.cpp: Use new SetValue that returns errors.
25772 2008-04-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
25774 * media.cpp: MediaBase::SetSourceAsyncCallback: don't do anything if we
25775 don't have a surface anymore. We're probably executing after the surface
25776 has been destroyed.
25778 2008-04-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
25780 * src.mdp: Updated to include typegen/*.
25781 * type.cpp, type.cpp.in, type.h, type.h.in: Added type_get_name, and fix
25782 Behaviour/Behavior inconsistency.
25784 2008-04-15 Jeffrey Stedfast <fejj@novell.com>
25786 * media.cpp (MediaElement::OnPropertyChanged): Moved the
25787 PositionProperty seek logic into here so we could get rid of
25788 MediaElement::SetValue() overload.
25790 * dependencyobject.h (class DependencyObject): SetValue() is no
25791 longer a virtual method.
25793 2008-04-15 Michael Dominic K. <mdk@mdk.am>
25795 * clock.cpp: ret_time is 0 when reaching repeat_count == 0. Fixes the
25798 2008-04-15 Michael Dominic K. <mdk@mdk.am>
25800 * clock.cpp: Clock::ComputeNewTime - make sure to take the speed ratio
25801 into account also when moving back in time.
25803 Fixes the clock34.xaml test.
25805 2008-04-15 Michael Dominic K. <mdk@mdk.am>
25807 * animation.cpp: Make sure to clamp the progress to 0.0 - 1.0 when we're
25808 calculating it ourselves (instead of using the CalcProgress). Otherwise
25809 we're bypassing the clamping and extending animations/values beyond
25812 This is a real fix for the Popfly #378390 (cannot configure the box in
25813 Popfly). Also fixes the clock34.xaml test-case.
25815 2008-04-15 Michael Dominic K. <mdk@mdk.am>
25817 * clock.cpp: Since we're at it, small fix in Clock::Tick -- Clamp time
25818 when previous OR current state is Clock::Active.
25820 2008-04-15 Michael Dominic K. <mdk@mdk.am>
25822 * clock.cpp: Reverting the change that was supposed to fix popfly. It's
25823 actually totally bad. I knew I was too fast with this one.
25825 2008-04-15 Michael Dominic K. <mdk@mdk.am>
25827 * clock.cpp: The time needs to be clamped always. Fixes #378390 (cannot
25828 configure the box in Popfly). Whoah, that was a nasty one.
25830 2008-04-14 Chris Toshok <toshok@ximian.com>
25832 * runtime.cpp (Surface::Attach): don't clear the up/down dirty
25833 lists here. Calling toplevel->SetSurface(NULL) ensures that all
25834 elements from the previous tree have their dirty elements removed,
25835 so what's left will correspond to 1) things that are about replace
25836 the current hierarchy, or 2) things that haven't actually been
25837 added to the hierarchy yet, but need to be associated with a
25840 * collection.cpp (Collection::Clear): emit
25841 CollectionChangeTypeChanging event before we do the actual change
25842 so the owner can do something with the children if it needs to.
25843 (VisualCollection::VisualAdded, VisualCollection::VisualRemoved):
25845 (VisualCollection::Add): remove call to VisualAdded. that
25846 behavior will be handled by Panel in its OnCollectionChanged
25848 (VisualCollection::SetVal): same.
25849 (VisualCollection::Insert): same.
25850 (VisualCollection::Remove): same, but with VisualRemoved.
25851 (VisualCollection::RemoveAt): same.
25852 (VisualCollection::Clear): remove the loop calling VisualRemoved.
25853 this will be handled by the additional
25854 CollectionChangeTypeChanging handling in panel.cpp.
25856 * enums.h (enum CollectionChangeType): add
25857 CollectionChangeTypeChanging.
25859 * panel.h, panel.cpp (Panel::OnPropertyChanged): handle the case
25860 where the ChildrenProperty is changed, by calling ChildRemoved on
25861 all the old children, and ChildAdded on all the new ones.
25862 (Panel::ChildAdded): new home for VisualCollection::VisualAdded.
25863 (Panel::ChildRemoved): new home for
25864 VisualCollection::VisualRemoved.
25865 (Panel::OnCollectionChanged): add support for
25866 CollectionChangeTypeChanging, so we can remove all children. this
25867 change type is generated by Collection::Clear.
25869 * stylus.cpp (Stroke::OnCollectionChanged): add empty handler for
25870 CollectionChangeTypeChanging.
25871 (InkPresenter::OnCollectionChanged): same.
25873 2008-04-14 Jeffrey Stedfast <fejj@novell.com>
25875 * media.cpp (Image::CreateSurface): Robustification of image
25878 2008-04-14 Michael Dominic K. <mdk@mdk.am>
25881 * clock.h: When calculating the new time in DoRepeat use modulo on new
25882 value. Otherwise we're 'losing' a little bit of time on every repeat and
25883 end time doesn't match with parent. This fixes a few more "jags" on
25884 animations ie. clock13.xaml.
25886 2008-04-11 Larry Ewing <lewing@novell.com>
25888 * xaml.cpp (value_from_str): make sure we propogate the error if
25889 color_from_string returns NULL.
25891 * color.cpp (color_from_str): return NULL on invalid color values
25892 rather than simply returning black.
25894 Add an error condition to color_from_string so that we pass the
25895 color tests in ParserErrors test.
25897 2008-04-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
25899 * dependencyobject.cpp: Surround event emission with ref/unref of ourselves.
25901 2008-04-11 Jeffrey Stedfast <fejj@novell.com>
25903 * playlist.cpp: Disable debugging spew unless DEBUG_PLAYLISTS is
25906 * downloader.cpp (Downloader::Send): Use
25907 TimeManager::InvokeOnMainThread() here like Rolf did in
25908 MediaBase. Simplifies things by not needing a surface.
25910 * text.cpp (TextBlock::SetFontSource): Now takes a Downloader
25911 object as opposed to a DependencyObject.
25913 2008-04-11 Michael Dominic K. <mdk@mdk.am>
25915 * clock.cpp: in Clock, make sure we CalcProgress on the last tick before
25916 we go Filling/Stopped. Without this we never "finish off" our animations
25917 and depending on the framerate we get "jags". Fixes the clock32.xaml
25920 2008-04-11 Jeffrey Stedfast <fejj@novell.com>
25922 * runtime.cpp: Make the dot and eraser cursors const to avoid
25925 2008-04-11 Michael Dominic K. <mdk@mdk.am>
25927 * enums.c: Removing bolox comment and behavior. Always return -1 on
25930 * xaml.cpp: Push a g_warning when we're hitting bad enums on bad props.
25931 Should make it a little bit easier to spot problems.
25933 2008-04-11 Michael Dominic K. <mdk@mdk.am>
25935 * dependencyobject.cpp: When calling RegisterAllNamesRootedAt be
25936 actually recursive (I'm not sure why this was commented out? Toshok?).
25937 Fixes the sprawl end-game animation, #378748.
25939 2008-04-11 Stephane Delcroix <sdelcroix@novell.com>
25941 * runtime.cpp: create the stylus and eraser cursors from xpm. Fixes
25942 bnc #375213. Implemented the MouseCursorNone too.
25944 2008-04-10 Larry Ewing <lewing@novell.com>
25946 * xaml.cpp (start_element): throw an error if there is an xml
25947 attribute on a dependency property.
25949 2008-04-10 Larry Ewing <lewing@novell.com>
25951 * enums.c (enum_from_str): return -1 on an invalid enum string so
25952 that we can catch it as a ParserError fixes
25953 Parser_Invalid_Enum.xaml.
25955 2008-04-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
25957 * media.cpp: MediaBase::SetSource: no need to get a
25958 Surface/TimeManager instance to do an asynchronous call, just
25959 call TimeManager::InvokeOnMainThread.
25961 2008-04-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
25963 * mplayer.h, mplayer.cpp: Added MediaPlayer::AudioFinished, called
25964 by the audio thread when the audio finishes.
25966 * media.h, media.cpp: Added MediaElement::AudioFinished, called by
25967 the media player when the audio finishes. Enables us to raise
25968 MediaEnded for audio-only media.
25970 2008-04-10 Jeffrey Stedfast <fejj@novell.com>
25972 * brush.cpp|media.cpp: All SetSource() entry points now take
25973 Downloader objects rather than DependencyObject arguments - the
25974 same as MSDN defines.
25976 * media.cpp (SetSourceInternal): More cleanup /
25977 simplification. Since *::SetSource() already takes steps to be
25978 async, no need to use Downloader::Send() which would introduce
25979 another delay in downloading. It should be plenty safe to call
25980 Downloader::SendNow() in all ::SetSourceInternal()
25981 implementations. Also, we now need to handle NULL downloader which
25982 we get called with if the original SetSource() was passed a NULL
25984 (Image::SetSource): Don't cleanup the surface here, do that in
25985 SetSourceInternal() so that we delay until appropriate.
25986 (Image::SetSourceInternal): If there is a downloader, delay
25987 CleanupSurface() even longer until the new image has been
25989 (Image::DownloaderComplete): Call CleanupSurface() here.
25991 2008-04-10 Jeffrey Stedfast <fejj@novell.com>
25993 * media.cpp: Consolidated Image and MediaElement downloader bits
25994 by putting them into MediaBase.
25996 2008-04-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
25998 * dependencyobject.cpp: Guard against calling closures which have
25999 been removed during emission of previous events in the same
26000 event list: when we're emitting and a closure is removed, mark
26001 the closure as pending removal, don't call it anymore, and only
26002 remove it when we're finished emitting.
26004 * dependencyobject.h: Guard against calling closures which have
26005 been removed during emission of previous events in the same
26008 2008-04-10 Michael Dominic K. <mdk@mdk.am>
26012 * media.cpp: A straight-forward fix for "gray flashes" in comic and
26013 slideshow (#375275). It's circumventing a change to make downloaders
26014 async for Image. Jeff, maybe you can figure more?
26016 (The commit that broke the the slideshow was r99065, Jeff from
26019 2008-04-10 Michael Dominic K. <mdk@mdk.am>
26021 * shape.cpp: Little fix for new stretching algho by Stephane. Fixes the
26022 Showcase and test-shape-path-stretch2.xaml.
26024 2008-04-09 Chris Toshok <toshok@ximian.com>
26026 * stylus.cpp (Stroke::HitTestEndcapSegment): don't fail if root_1
26027 is invalid, as root_2 might be.
26029 2008-04-09 Chris Toshok <toshok@ximian.com>
26031 [ Fixes some odd behavior in
26032 http://www.thedatafarm.com/silverink/, and also fixes bug
26035 * panel.cpp (Panel::FrontToBack): Kind of a screwy change - we
26036 intersect the expose region with our RenderBounds, not our normal
26037 Bounds. This forces us to add the ink presenter to the render
26038 list even when the exposed area is just going to redraw a stroke,
26039 not the actual canvas rectangle. When we go to subtract, however,
26040 we still only subtract the canvas rectangle.
26042 * stylus.cpp (InkPresenter::OnPropertyChanged): invalidate the old
26043 stroke collection's bounds as well as the new stroke collection's
26045 (InkPresenter::OnCollectionChanged): when the collection has
26046 changed, we can't just use Invalidate() since that only
26047 invalidates the canvas bounds. We need to invalidate our render
26048 bounds to get rid of strokes that are outside the canvas bounds.
26049 Also, make sure to also invalidate the new bounds of the stroke
26050 collection (it will usually be empty, but do it anyway).
26051 (InkPresenter::ComputeBounds): add logic to compute the
26052 render_bounds here.
26053 (InkPresenter::GetRenderBounds): new method.
26055 * stylus.h (class InkPresenter): add GetRenderBounds, and also add
26056 an OnPropertyChanged method so we can deal with the stroke
26057 collection being assigned to something else.
26059 * uielement.h (class UIElement): as much as I hate to do this, add
26060 yet another type of bounds (RenderBounds). this is only here for
26061 the special case of the inkpresenter, which has the normal canvas
26062 bounds (the rectangle), the subtree bounds (which unions the
26063 canvas bounds with the bounds of strokes and children) and render
26064 bounds (which unions canvas bounds and stroke bounds.)
26066 2008-04-09 Jeffrey Stedfast <fejj@novell.com>
26068 * dependencyobject.cpp (resolve_property_path): Alias TextElement
26069 to TextBlock to work around some buggy beta versions of Blend.
26071 2008-04-09 Stephane Delcroix <sdelcroix@novell.com>
26073 * shape.cpp: Shape::ComputeStretchBounds: compute the stretch assuming
26074 the logical/shape bounds diff stays the same. It's IMHO as close as we
26075 can go without drawing and recalculating.
26077 2008-04-08 Jeffrey Stedfast <fejj@novell.com>
26079 * xaml.cpp: Cleaned up some of the debugging printf's and and
26080 wrapped them in d() to declutter console spewage when unneeded.
26081 (xaml_create_from_str): ctype functions take int arguments, where
26082 normal char values are in the range 0-255 - in order to work with
26083 non-GNU, need to cast from char to unsigned char.
26085 * error.h (class ParserErrorEventArgs): Avoid using the c++ ctor
26086 initializer stuff to be consistent with other classes.
26088 2008-04-08 Sebastien Pouliot <sebastien@ximian.com>
26090 * xaml.cpp: Fix (yesterday's fix) on parsing properties. Thanks
26093 2008-04-08 Michael Dominic K. <mdk@mdk.am>
26096 * clock.h: SkipToFill the automatic duration clock groups except if
26097 this is the root of all roots clock (the TimeManager's clock). Due to
26098 the idle_hint optimization, we don't process those clocks anyways.
26100 2008-04-08 Michael Dominic K. <mdk@mdk.am>
26105 * dependencyobject.cpp:
26106 * dependencyobject.h: Making sure that each property is animated only by
26107 a single animation at a time (the last one started).
26108 From Silverlight forums:
26110 "Keep in mind Silverlight only supports a single animation on a
26111 property at a time, so if you begin multiple animations on the same
26112 property, the last one will prevail."
26114 This prevents us from overriding Filling/HoldEnd animations by sb's
26117 The implementation is: for each prop we create a hash table (when
26118 needed) which stores objects (keys) + last AnimationStorage attached
26119 (values). When new AnimationStorage is attached to a prop, the last one
26120 is notified to stop updating the target (we don't touch the clock
26121 structure). And then there is some magic to handle destroy's etc.
26123 This fixes PopFly mouse enter/leave problems in the toolbox and the
26124 http://www.designwithsilverlight.com/tutorials/photoGallery/gallery.html
26125 problems. Fixes #375231, #362363.
26127 2008-04-07 Jeffrey Stedfast <fejj@novell.com>
26129 Fixes needed for Zombomatic
26131 * downloader.cpp (Downloader::GetDownloadedFilePart): When
26132 creating the full pathname for parts we are extracting, convert
26133 everything to lowercase since we need to treat archived filenames
26134 case-insensitively.
26135 (Downloader::GetUnzippedPath): Convert filenames from the zip
26136 archive to lowercase so that it is easier for us to find them
26137 case-insensitively on the filesystem once they are extracted.
26139 2008-04-07 Sebastien Pouliot <sebastien@ximian.com>
26141 * xaml.cpp: Fix parsing properties by ensure they start with the
26142 element name (and not something else). Fix crasher.
26144 2008-04-07 Michael Dominic K. <mdk@mdk.am>
26147 * src/shape.h: Compute the origin point as a separate step after
26148 computing the shape bounds and the stretch bounds. This fixes the
26149 recently broken sprawl.
26151 I think it also fixes other things. Before, given the way code was,
26152 the stretch_bounds would affect the origin *only* in the case of Path,
26153 in other cases (Line, Polygon, Polyline...) they would be ignored.
26155 2008-04-04 Chris Toshok <toshok@ximian.com>
26157 * stylus.cpp (Stroke::HitTestEndcapSegment): fix this method. it
26158 was missing a bunch of tests (basically it was intersecting
26159 infinite lines with ellipses, not segments), and some of the math
26162 2008-04-04 Jeffrey Stedfast <fejj@novell.com>
26164 Intended to fix bug #373462, but something else is preventing that
26165 site from working now...
26167 * media.cpp (MediaElement::SetSourceInternal): PartName is no
26168 longer a const char * argument, which means we take ownership of
26169 the PartName string.
26170 (MediaElement::SetSourceAsyncCallback): New method which is the
26171 async callback for SetSource().
26172 (MediaElement::SetSource): Reinitialize() right away.
26173 (MediaElement::SetSource): Clear out any pending SetSource async
26174 data, replacing it with the new downloader/part name info.
26175 (MediaElement::SetSource): Allow a NULL downloader object but make
26176 sure we don't crash in that case either.
26178 2008-04-04 Sebastien Pouliot <sebastien@ximian.com>
26180 * dependencyobject.cpp (resolve_property_path): Avoid crash on
26181 invalid syntax and leaks in other error cases. Fix #377039 (more
26182 test cases coming soon).
26184 2008-04-04 Jeffrey Stedfast <fejj@novell.com>
26186 * animation.cpp (KeyFrameCollection::GetKeyFrameForTime): Return
26187 immediately if the array len is 0, prevents a crash accessing
26188 sorted_list->pdata[0] when working backwards in the second
26189 for-loop. Fixes one of the crashes I found while investigating bug
26192 2008-04-04 Sebastien Pouliot <sebastien@ximian.com>
26194 * runtime.cpp: Don't crash in strcase_hash if the hashtable
26195 contains NULL values.
26197 2008-04-03 Chris Toshok <toshok@ximian.com>
26199 * runtime.cpp (Surface::InitializeWidget): disable the
26200 GDK_POINTER_MOTION_HINT_MASK stuff for now. we're not passing
26201 tests with it enabled.
26202 (Surface::motion_notify_callback): force the emission of a motion
26205 2008-04-03 Jeffrey Stedfast <fejj@novell.com>
26207 * runtime.cpp (Surface::SetCursor): Stylus cursor should map to
26208 the pencil cursor. Also updated Hand (which should be a
26209 left-pointing hand, not right-pointing) and also Eraser (we need
26210 to make our own icon for this, but I suck at art so I'll pass for
26213 2008-04-03 Michael Dominic K. <mdk@mdk.am>
26216 * shape.h: Calculate the logical extents when computing the shape bounds
26217 and pass them to the ComputeStretchBounds. They're currently not used in
26220 2008-04-03 Michael Dominic K. <mdk@mdk.am>
26222 * shape.cpp: Don't init the stretch matrix to identity on each
26223 Shape::ComputeShapeBounds. We want to be able to call it freely.
26225 2008-04-02 Michael Dominic K. <mdk@mdk.am>
26227 * geometry.cpp: Use the cairo_path_extents to calculate the logical
26228 bounds instead of faking small stroke.
26230 2008-04-02 Michael Dominic K. <mdk@mdk.am>
26233 * shape.h: Adding new parameter (bool logical) to all the
26234 Shape::ComputeShapeBounds functions and overrides. See prev commit for
26235 explanation of what is logical bounds.
26237 Currently all clients use logical == false. Just adding this
26240 2008-04-02 Michael Dominic K. <mdk@mdk.am>
26245 * uielement.cpp: Adding new parameter (bool logical) to all the
26246 Geometry::ComputeBounds functions and overrides. Calculating logical
26247 bounds means calculating bounds without stroke included. Ie. a line
26248 (0,0) - (100, 0) has logical bounds of width=100, height=0, no matter
26249 what the stroke is.
26251 Not used right now, will be used in just a few commits (all current
26252 ComputeBounds clients call it will logical == false).
26254 2008-04-02 Michael Dominic K. <mdk@mdk.am>
26256 * shape.cpp: Don't automatically compute the stretch bounds when
26257 computing shape bounds. Instead, compute it as a separate step in
26258 Shape::ComputeBounds.
26260 2008-04-03 Chris Toshok <toshok@ximian.com>
26262 * uielement.cpp (UIElement::EmitMouseLeave): turns out that,
26263 contrary to msdn2, MS *is* indeed emitting this event with
26264 non-null eventargs. it's just an EventArgs object, not a
26267 2008-04-03 Jeffrey Stedfast <fejj@novell.com>
26269 * dependencyobject.cpp (EventObject::Emit): Unref the calldata
26270 even in the "no such event" exception case.
26272 2008-04-03 Larry Ewing <lewing@novell.com>
26274 * xaml.cpp: (expat_parser_error): translate XML_ERROR_NO_ELEMENTS
26275 into appropriate error code.
26277 2008-04-03 Larry Ewing <lewing@novell.com>
26279 * xaml.cpp: Generate errors when trying to set readonly properties.
26281 2008-04-03 Larry Ewing <lewing@novell.com>
26283 * xaml.cpp: make sure we set an error if the property name isn't
26286 * runtime.cpp: make it legal to attach to a NULL toplevel, hook up
26289 2008-04-03 Larry Ewing <lewing@novell.com>
26291 * runtime.cpp (Surface::expose_to_drawable): make sure we take
26292 allocation.x and allocation.y into account when deciding not to
26293 draw. Should fix the disappearing gtksilver widget reported on irc.
26295 2008-04-02 Larry Ewing <lewing@novell.com>
26297 * xaml.cpp: flush character data at the end of property elements
26300 2008-04-02 Jackson Harper <jackson@ximian.com>
26302 * xaml.cpp: Add the element name for this error.
26304 2008-04-02 Chris Toshok <toshok@ximian.com>
26306 * stylus.cpp (Stroke::HitTestEndcapSegment): fix up some math.
26307 (Stroke::HitTestEndcapPoint): same.
26308 (point_gte_line): new method.
26309 (point_lte_line): new method.
26310 (Stroke::HitTestSegmentPoint): use point_gte_line and
26311 point_lte_line to determine if the point is inside the segment.
26312 (global): wrap all spew in DEBUG_HITTEST.
26314 2008-04-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
26316 * pipeline.cpp, mplayer.cpp, pipeline.h: Remove SeekToStart completely, it's
26319 2008-04-02 Jeffrey Stedfast <fejj@novell.com>
26321 * media.cpp (MediaElement::UpdatePlayerPosition): Cast to same
26322 integer type when comparing.
26324 * playlist.cpp (Playlist::OnMediaEnded): Prevent a segfault in the
26325 debugging printfs. Fixes bug #375273.
26327 2008-04-01 Chris Toshok <toshok@ximian.com>
26329 * xaml.cpp: back out the SetSurface call removal.
26331 * dependencyobject.cpp (EventObject::unref): instead,
26332 SetSurface(NULL) here before we delete the object.
26334 2008-04-01 Chris Toshok <toshok@ximian.com>
26336 * control.cpp (Control::InitializeFromXaml): make sure to call
26337 SetSurface(NULL) on the old real_object since we're detaching it
26338 from the tree. Call SetSurface on ourselves (really, should just
26339 be the real_object, right?) before calling the real_object methods
26340 that would cause dirty stuff to happen.
26342 * xaml.cpp (create_custom_element): don't call SetSurface here, it
26343 will cause problems if there's a parser error (since elements
26344 can/will be on the surface's dirty list after they're destroyed.)
26345 (default_create_element_instance): same.
26347 2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
26349 * playlist.cpp, playlist.h: A lot of fixes according to the tests.
26350 * mplayer.h, mplayer.cpp: Initialize the rgb buffer. Add a start_pts to
26351 specify where in the stream we start and (playlists can specify a
26352 starting point which isn't in the beginning), and set the duration from
26353 the playlist (if the playlist has it).
26354 * media.cpp: MediaElement::SetMedia: Handle the case if mplayer returns
26355 false from MediaPlayer::Open. MediaElement::MediaOpened: Handle the case
26356 if the recursive playlist couldn't be replaced.
26358 2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
26360 * media.h: Added MediaElement::GetPlaylist.
26362 2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
26364 * type.cpp, type.cpp.in, type.h, type.h.in, value.cpp, value.h, value.h.in:
26365 Remove Type::NPOBJ, it's not needed.
26367 2008-04-01 Michael Dominic K. <mdk@mdk.am>
26369 * animation.cpp: Since now the clocks are synced we don't need to
26370 recursively check the states in the teardown on completed.
26372 2008-04-01 Michael Dominic K. <mdk@mdk.am>
26375 * clock.h: Getting rid of the nasty clock desyncing (setting ClockGroup
26376 manually to Stopped but not touching the state of children).
26378 We do this by introducing a new idle_hint on ClockGroup. If idle_hint is
26379 set, we don't tick the ClockGroup no matter what the state is. Idle_hint
26380 is set when all children of ClockGroup have state != Active (ie. are
26381 filling). This can be seen as "optimization" -- not to dumbly process
26382 filling clocks which keep setting same value all the time (it creates
26383 insane recursion ie. in Showcase making it unusable). Silverlight seems
26384 to do something very similiar.
26386 Before this commit a same effect was achieved by the said "desyncing" --
26387 forcing the ClockGroup to Stopped. This approach however is a bit more
26390 2008-04-01 Michael Dominic K. <mdk@mdk.am>
26392 * animation.cpp: Chain to parent's Clock::Stop in AnimationClock::Stop.
26394 2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
26396 * pipeline.cpp: Use base_unref, base_unref_delayed doesn't exist anymore.
26398 2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
26400 * value.cpp: Remove a few warnings which might give false positives now.
26402 2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
26404 * dependencyobject.h, dependencyobject.cpp: EventObject::unref: check if
26405 we're being unreffed on the main thread, if not, call unref_delayed.
26407 2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
26409 * runtime.cpp, runtime.h: Added a Surface::InMainThread.
26411 2008-04-01 Fernando Herrera <fherrera@novell.com>
26413 * media.cpp: Remove the request position function when aborting the
26416 2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
26418 * media.cpp, media.h, mplayer.cpp, mplayer.h: Add a dtor parameter to
26419 MediaElement::Reinitialize and MediaPlayer::Close to specify if we're
26420 being called from the destructor, and if so, null out the element field
26421 of the MediaPlayer, so that we don't access a destructed media element.
26422 Add an async version of MediaPlayer::EnqueueFrames, so that the audio
26423 threads can request more data in a thread-safe manner.
26425 2008-04-01 Fernando Herrera <fherrera@novell.com>
26428 * pipeline.h: Support for live mms streams, that have packet_count as
26429 0 and return false for CanSeekToPts.
26431 2008-03-31 Chris Toshok <toshok@ximian.com>
26433 * namescope.h, namescope.cpp: make no semblance of having a
26434 superior namescope implementation (where they get transported
26435 around with the subtree they're attached to when it's
26436 removed/re-added to the hierarchy.) Instead follow MS's broken
26437 implementation where temporary namescopes are completely removed
26438 when merged into another one.
26440 * collection.h, collection.cpp (Collection::MergeNames): factor
26441 out some common code from Add, Insert, and SetVal. Also, deal with
26442 the fact that merging namescopes now really adds all the names to
26443 the parent namescope, so clear the old namescope.
26444 (Collection::SetVal): don't just unregister the old toplevel name,
26445 but all the names in the subtree.
26446 (Collection::Remove): same.
26447 (Collection::Clear): same.
26448 (Collection::UnregisterAllNamesRootedAt): override DO's method,
26449 recursing into all our children.
26450 (Collection::RegisterAllNamesRootedAt): same.
26451 (VisualCollection::VisualRemoved): clear the IS_LOADED flag so
26452 UIElement::OnLoaded is called again, and <BeginStoryboard>
26453 elements restart when the subtree is added to the hierarchy again.
26455 * control.h, control.cpp (Control::UnregisterAllNamesRootedAt):
26456 override and forward onto real_object.
26457 (Control::RegisterAllNamesRootedAt): same.
26459 * dependencyobject.cpp (DependencyObject::ClearValue): add a
26460 parameter to allow us to specify *not* to notify listeners of the
26461 property change. we do this with the NameScope property, which
26462 noone should be listening too. It was causing a tremendous
26463 performance hit when merging a lot of namescopes (as we do in
26464 inkStylusPointCount.htm)
26465 (DependencyObject::UnregisterAllNamesRootedAt): used when a DO is
26466 removed from the hierarchy, we need to unregister all the names
26468 (DependencyObject::RegisterAllNamesRootedAt): used when a DO is
26469 added to the hierarchy, if it doesn't have a temporary
26470 namescope (in which case we just merge it).
26472 2008-03-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
26474 * pipeline.cpp, pipeline.h: MemorySource: Add a value specifying if the
26475 MemorySource owns the memory or not (if it will be freed upon
26476 destruction or not).
26478 2008-03-31 Jeffrey Stedfast <fejj@novell.com>
26480 * stylus.cpp (Stroke::HitTestEndcap): Fixed a bug where the
26481 for-loop would only use every other point as a starting point for
26482 a segment. E.g. if you had points a, b, c, d and e - the code only
26483 checked segments ab, cd, and e when it should have been checking
26484 ab, bc, cd, and de.
26486 2008-03-31 Fernando Herrera <fherrera@novell.com>
26488 * downloader.cpp: Check if aborted before cheking for requested
26491 2008-03-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
26493 * pipeline.cpp, pipeline.h: Moved locking down to IMediaSource from
26495 * playlist.cpp: Updated according to pipeline changes.
26496 * mplayer.h: Fix SetState to not overwrite current bits, only current state.
26497 * media.h, media.cpp: Rework buffering progress to use the available time of
26498 media available (pts) instead of doing some funny math on file
26500 * mplayer.cpp: Don't allow SetTargetPts if we're waiting for a seek.
26502 2008-03-31 Michael Dominic K. <mdk@mdk.am>
26504 * animation.cpp: Don't Stop the Storyboard root_clock before begining
26505 the Storyboard again, just silently tear it down.
26507 Calling Stop resets the property values to base which is something we
26508 don't want. When Begin () is called on Sb in SL, the last animated
26511 2008-03-31 Michael Dominic K. <mdk@mdk.am>
26514 * animation.h: Adding Storyboard::DetachClockGroupFromParent () that
26515 works similar to Teardown but doesn't destroy the clock/animation
26516 hierarchy. We need this hierarchy to ie. reset prop values to base when
26517 Storyboard::Stop is called manually.
26519 When Storyboard is completed, call DetachClockGroupFromParent (if not
26520 Teardown). Otherwise the Storyboard will ghostly change state with parent
26523 2008-03-31 Michael Dominic K. <mdk@mdk.am>
26525 * animation.cpp: Slightly reworking the clock_is_fully_stopped_recursive
26526 to check for NULL and report stopped == true when both ClockGroup state
26527 is Stopped and all children are Stopped.
26529 To be honest, this never currently reports Stopped == true as we do
26530 intentional state desync when storyboard reaches end -- setting the
26531 ClockGroup state to Stopped but keeping the children in Active/Filling.
26532 This *has* to go away.
26534 2008-03-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
26536 * src.mdp: Updated.
26538 2008-03-28 Jeffrey Stedfast <fejj@novell.com>
26540 * utils.cpp (TextStream::Read): Better handling of iconv() failure
26543 2008-03-28 Chris Toshok <toshok@ximian.com>
26545 * animation.cpp, animation.h: remove Storyboard::FindSurface -
26546 EventObject::GetSurface() always returns the right thing.
26547 Override SetSurface to check whether we're being detached from or
26548 attached to a surface, and pause or resume the clock in response.
26549 This fixes some issues in storyboard_EnterLeaveSemantics.
26551 2008-03-28 Chris Toshok <toshok@ximian.com>
26553 * dependencyobject.h,
26554 dependencyobject.cpp (DependencyObject::SetSurface): new method,
26555 set the surface for all our DependencyObject subclassed property
26558 * collection.h, collection.cpp (Collection::Add): SetSurface work.
26559 (Collection::Insert): same.
26560 (Collection::SetVal): same.
26561 (Collection::Remove): same.
26562 (Collection::RemoveAt): same.
26563 (Collection::Clear): same.
26564 (Collection::SetSurface): new method, iterate over all children
26565 setting the surface.
26566 (VisualCollection): remove surface logic here.
26567 (VisualCollection::VisualAdded): same.
26568 (VisualCollection::VisualRemoved): same.
26570 2008-03-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
26572 * mplayer.cpp: Clear all queues after a seek has completed.
26574 2008-03-28 Jeffrey Stedfast <fejj@novell.com>
26576 * text.cpp (deobfuscate_font): Updated for CopyFileTo() rename.
26578 * downloader.cpp (Downloader::CleanupUnzipDir): Updated for
26579 RemoveDir() rename.
26580 (create_unzipdir): Updated for MakeTempDir() rename.
26582 * utils.cpp (MakeTempDir): Renamed from make_tmpdir() to try and
26583 be more consistent with moonlight API naming convensions.
26584 (RemoveDir): Renamed from moon_rmdir().
26585 (CopyFileTo): Renamed from moon_copy_file()
26587 2008-03-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
26589 * debug.cpp: Fix warning.
26591 2008-03-28 Michael Dominic K. <mdk@mdk.am>
26593 * clock.cpp: Fixing the clock repeat for duration-based
26596 Fixes the clock14.xaml and clock31.xaml tests. All 31 clock tests are
26597 passing now (same behavior as in SL).
26599 2008-03-28 Michael Dominic K. <mdk@mdk.am>
26601 * clock.cpp: In ComputeNewTime: when we're moving backward and hitting
26602 the bound decrease the repeat_count no matter what (if auto-reversed or
26603 not). This makes the auto-reversed storyboard work.
26605 Fixes the clock7.xaml and clock30.xaml. The only clock test broken now
26608 2008-03-28 Michael Dominic K. <mdk@mdk.am>
26610 * animation.cpp: Teardown the storyboard in Completed only if the root
26611 clock is stopped AND all the children are stopped too. After teardown we
26612 loose the ability to reset-back the values and Completed is
26613 fired always, even if the clock is filling (a filling clock should reset
26616 This ie. fixes http://www.idcorporate.com.ar/ and other sites that use
26617 the popular methodology of beginning a filling Storyboard on MouseEnter
26618 and stopping it on MouseLeave.
26620 2008-03-27 Michael Dominic K. <mdk@mdk.am>
26622 * runtime.cpp: Ignore the enter/leave crossing events coming as a
26623 result of grab/press started/finished.
26625 2008-03-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
26627 * uielement.cpp, pipeline.h, media.cpp, brush.cpp: Update according to
26628 MediaPlayer changes.
26629 * mplayer.cpp, mplayer.h: Major cleanup in MediaPlayer: make all fields
26630 private, and add public accessors when required. Remove all boolean
26631 fields and add a single bit/state field with its corresponding enum and
26632 public accessors. Removed IncTargetPts, StopThreads and PauseInternal,
26633 no longer used. Removed unused defines. Made video and audio structures
26634 nested inside MediaPlayer instead of pointers (and queue inside
26635 video/audio), avoids pointer accesses and additional malloc/frees, since
26636 they were always created anyways. Don't seek to anywhere in Stop if
26637 we're stopping because we're closing, since it may cause crashes if
26638 we're closing because the MediaElement is being destructed (it may cause
26639 the MediaElement to be resurrected). Made public methods private
26642 2008-03-28 Fernando Herrera <fherrera@novell.com>
26644 * asf/asf.cpp: Use the pts == 0 optimization before trying to
26648 * downloader.h: Add functions to allow request a remote postition.
26653 * pipeline.h: Implement SeekToPts for mms:// sources.
26655 2008-03-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
26657 * dependencyobject.h: Detect an unrecoverable error condition with
26658 refcounting (reffing an object with refcount of 0), and abort instead of
26659 crashing randomly and insecurely later on.
26661 2008-03-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
26663 * mplayer.h, mplayer.cpp: Remove more unused fields in MediaPlayer.
26665 2008-03-27 Jeffrey Stedfast <fejj@novell.com>
26667 * downloader.cpp (Downloader::GetResponseText): Use the new
26670 * utils.cpp (TextStream::Open): Fixed the BOM checking, had LE/BE
26673 * xaml.cpp (xaml_create_from_file): Oops, if we read 0 bytes, make
26674 sure to exit the loop ;-)
26676 2008-03-27 Jeffrey Stedfast <fejj@novell.com>
26678 * xaml.cpp (xaml_create_from_file): Use the new TextStream class
26679 instead of doing things the hard way. Might be more performant,
26680 definitely won't malloc/free nearly as much. Also fixed a bug
26681 where leading lwsp might be larger than our read buffer.
26683 * utils.cpp (TextStream): New class for reading text input
26684 streams, converting them to UTF-8 as they are read.
26686 * downloader.cpp (Downloader::Send): Handle the case where the
26687 attached surface is NULL.
26688 (Downloader::GetResponseText): Handle zero-length files. Also,
26689 nul-terminate the returned buffer (which is now a char* rather
26690 than a void*) since it is clear that the javascript expects to be
26691 able to use this value as a string buffer.
26693 2008-03-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
26695 * mplayer.h, mplayer.cpp: Don't create any audio threads until we're
26696 requested to play audio. Don't hold the lock when polling.
26698 2008-03-26 Jeffrey Stedfast <fejj@novell.com>
26700 * downloader.cpp (Downloader::SendInternal): New method that is
26701 basically the same as the old ::Send().
26702 (Downloader::Send): Queue the SendInternal() call via
26703 TimeManager's TickCall API.
26705 2008-03-26 Chris Toshok <toshok@ximian.com>
26707 * dependencyobject.h, dependencyobject.cpp (class EventObject):
26708 add RemoveMatchingHandlers variants that let you pass in a
26709 predicate to test event handlers with.
26711 2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
26713 * pipeline.cpp, pipeline.h: ASFDemuxer: updated according to asf
26714 changes. Added a MemoryStream.
26716 * media.cpp: Updated according to API changes.
26718 2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
26720 * mplayer.cpp, mplayer.h: Add a new state to the audio:
26721 WaitingForData, in which case we don't poll on that audio
26722 node (since the hardware will just tell us it's ready to recieve
26723 data). Fixes audio using 100% cpu after when it runs out of
26724 data (either because of network hiccup or the stream finished).
26726 2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
26728 * pipeline.cpp, mplayer.cpp, pipeline.h: Made
26729 IMediaStream::selected private and add accessors.
26731 2008-03-26 Stephane Delcroix <sdelcroix@novell.com>
26734 * shape.cpp: set the dash caps for all the shapes, draw start/end caps
26735 on line and polylines.
26737 2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
26739 * mplayer.cpp: Remove unused fields.
26741 2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
26743 * debug.cpp: Correctly compute base addresses of libraries, and use a
26744 thread-safe version of strtok.
26746 2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
26748 * runtime.h, runtime.cpp, pipeline.cpp: Reverse the meaning of our YUV flag
26749 - it's now necessary to explicitly disable it in order to get rid of it
26750 instead of relying on a default flag to have the right value in order to
26751 get it. Makes video work with mopen again.
26753 2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
26755 * pipeline.cpp: Fix a crash.
26757 2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
26759 * mplayer.cpp: Remove Instance (), it's redundant.
26760 * mplayer.h: AudioPlayer: Remove Instance (), it's redundant. Synchronize
26761 everything in the audio player with one semaphore, it simplifies things
26762 and removes a couple of problems helgrind found.
26763 * pipeline.cpp: ~Media: Add a nullcheck. Media::Initialize: Initialize the
26764 audio player as well. Use delayed unreffing in destructors which may be
26765 called on worker threads.
26767 2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
26769 * runtime.cpp, runtime.h: Remove the pending unref stuff from Surface.
26770 * dependencyobject.cpp: Remove the surface-based delayed unloading, it's not
26771 thread-safe and making it thread-safe isn't worth it. Also use a pthread
26772 mutex instead of a glib mutex, since helgrind reports a lot of false
26773 positives for glib mutexes. Hold the mutex for the smallest amount of
26774 time possible, making it unnecessary to use a recursive mutex.
26776 2008-03-26 Michael Dominic K. <mdk@mdk.am>
26778 * shape.cpp: Reverting the clip changes, it was bolox.
26780 2008-03-25 Jeffrey Stedfast <fejj@novell.com>
26782 * pipeline.cpp (Mp3FrameReader::EstimatePtsPosition): Get rid of
26783 the assert - it was only needed during implementation to make sure
26784 the bsearch worked correctly.
26785 (Mp3FrameReader::Seek): Same.
26787 2008-03-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
26789 * media.cpp: Don't access any TimeManager instance from another thread, just
26790 call the static TimeManager::InvokeOnMainThread.
26792 2008-03-25 Michael Dominic K. <mdk@mdk.am>
26794 * src/shape.cpp: Shape is empty always when it's bounds are <= 0.0, even
26795 if Width/Height was specified. Fixes a bogus warning about infinity
26798 2008-03-25 Michael Dominic K. <mdk@mdk.am>
26800 * src/shape.cpp: When setting the clipping for the shape also include
26801 the transformations coming from stretching. This fixes
26802 test-shape-line-stretch3 test and the missing stripes on Silverlight
26805 2008-03-24 Chris Toshok <toshok@ximian.com>
26807 * runtime.h (class Surface): add
26808 Surface::PropagateDirtyFlagToChildren.
26810 * dirty.cpp (Surface::PropagateDirtyFlagToChildren): factor this
26811 duplicated code out of ProcessDownDirtyElements.
26813 2008-03-24 Chris Toshok <toshok@ximian.com>
26815 * panel.cpp (Panel::FrontToBack): remove the tree walking
26816 code (where we walked up the hierarchy looking for cases where we
26817 shouldn't subtract.) Instead, we always subtract if the local
26818 state says we can. Instead of forcing all leaf elements to walk
26819 up to their parent panel, we assume they'll operate on local state
26820 as well, and give them a copy of the region to subtract their
26821 bounds from, instead of the real region. We are sneaky.
26823 * uielement.cpp (UIElement::FrontToBack): Operate on our local
26824 state only, no walking up the tree.
26826 2008-03-24 Jeffrey Stedfast <fejj@novell.com>
26828 * pipeline.cpp (mpeg_parse_header): Fix the MPEG layer parsing, it
26829 was seemingly getting layer 1 and layer 2 backwards.
26830 (mpeg_frame_length): Seems like we are never supposed to add 2
26831 bytes for 16bit crc?
26833 * layout.cpp (TextLayout::LayoutWrap): If the glyph advance is 0,
26834 then don't bother applying kerning. Fixes 2 cases in
26835 LineBreakClasses.htm
26836 (TextLayout::LayoutWrap): Disable breaking after a
26837 G_UNICODE_BREAK_AFTER if we can break before the word as this
26838 seems to fix the last test case in LineBreakBasic1.htm
26839 (TextLayout::LayoutWrap): Reverted a fix that introduced a
26840 regression but didn't fix any known test cases.
26842 2008-03-21 Michael Dominic K. <mdk@mdk.am>
26844 * src/runtime.cpp: When calling gdk_window_get_pointer in
26845 motion_notify_ to pop more hints actually use the results as they're
26846 more valid than x,y in the event passed. Without doing so, we're not
26847 getting the last mouse coords.
26849 Fixes the nasty problem that MouseEnter/Leave is not called once in a
26852 2008-03-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
26854 * brush.cpp, media.cpp, mplayer.cpp, mplayer.h: Refcount MediaPlayer. Rename
26855 MediaPlayer::GetSurface to GetCairoSurface so that it doesn't conflict
26856 with EventObject::GetSurface.
26858 2008-03-20 Jeffrey Stedfast <fejj@novell.com>
26860 * font.cpp (TextFont::GetGlyphInfo): Comment out the fixed-width
26863 * text.cpp (deobfuscate_font): New helper function used by
26864 TextBlock and Glyphs.
26865 (TextBlock::DownloaderComplete): Check for obfuscated fonts.
26866 (Glyphs::DownloaderComplete): Same.
26868 * font.cpp (DecodeObfuscatedFontGUID): New function to decode the
26869 GUID from a string.
26870 (DeobfuscateFontFileWithGUID): Deobfuscate a font file in-place.
26871 (TextFont::OpenFontDirectory): Renamed from OpenZipArchiveFont()
26872 since we no longer get passed zip files. Instead of extracting
26873 fonts from a zip archive, we now index the fonts in the
26874 directory (if they haven't already been indexed) and then try to
26875 find the best matching font from the indexed fonts.
26876 (IndexFontDirectory): New function to index all fonts in a
26877 directory (and all subdirs).
26878 (TextFont::TextFont): Changed for other API changes.
26880 2008-03-20 Jeffrey Stedfast <fejj@novell.com>
26882 * downloader.cpp (Downloader::IsDeobfuscated)
26883 (Downloader::SetDeobfuscated, Downloader::SetDeobfuscatedFile):
26884 Some new methods for replacing the original downloaded file with
26885 another tmp file that will need to be unlinked when the downloader
26886 is destroyed or a new file is requested.
26888 * utils.cpp (moon_copy_file): New convenience function.
26890 2008-03-20 Jeffrey Stedfast <fejj@novell.com>
26892 * downloader.cpp (Downloader::Downloader): Initialize the unzipdir
26893 and unzipped state variables. Get rid of part_hash, no longer
26895 (Downloader::CleanupUnzipDir): New method to cleanup the files
26896 extracted from any zip files we downloaded.
26897 (Downloader): Call CleanupUnzipDir ().
26898 (Downloader::GetDownloadedFile): New method that gets the original
26899 untouched downloaded file path.
26900 (Downloader::DownloadedFileIsZipped): New method to check to see
26901 if the downloaded file is a zip archive.
26902 (Downloader::GetDownloadedFilePart): A new method that replaces
26903 the old GetResponseFile() API, behaves the same as the old API.
26904 (Downloader::GetUnzippedPath): New method to get the unzip
26905 directory path (and unzip the downloaded file if it hasn't already
26907 (Downloader::Open): Cleanup any extracted zip files.
26909 * utils.cpp (moon_rmdir): New convenience function.
26911 2008-03-20 Larry Ewing <lewing@novell.com>
26913 * runtime.cpp (Surface::ShowFullScreenMessage): make sure we set
26914 the surface first so that the changes to the properties cause
26917 2008-03-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
26919 * src.mdp: Added new files.
26921 2008-03-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
26923 * pipeline.h: Added CanSeekToPts and SeekToPts to IMediaStream.
26925 2008-03-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
26927 * pipeline.h: Added two more error conditions.
26929 2008-03-19 Jeffrey Stedfast <fejj@novell.com>
26931 * font.cpp (TextFont::GetGlyphInfo): Use a different approach to
26932 caching glyphs. Try to take full advantage of the pre-allocated
26933 glyphs array before clobbering previously loaded glyphs.
26935 2008-03-19 Michael Dominic K. <mdk@mdk.am>
26937 * src/dependencyobject.cpp: Making the prop resolving a bit more
26938 gracefull (smart) in case of common mistakes.
26940 Solves test-crash-gracefull-prop-resolving.xaml.
26942 2008-03-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
26944 * pipeline.cpp: We need to unlock the mutex before joining the
26945 thread. Fixes a dead-lock.
26947 2008-03-19 Geoff Norton <gnorton@novell.com>
26949 * yuv-converter.cpp: Use xmm0 to store a load value to avoid a
26952 2008-03-19 Geoff Norton <gnorton@novell.com>
26954 * yuv-converter.cpp: More 64-bit fixes
26956 2008-03-19 Geoff Norton <gnorton@novell.com>
26958 * yuv-converter.cpp: Fix the test/cmp on x86-64
26960 2008-03-18 Geoff Norton <gnorton@novell.com>
26962 * yuv-converter.cpp: Fold RESTORE_COLOR_MODIFIERS into
26963 CALC_COLOR_MODIFIERS and prepare our own branches rather than trusting
26964 gcc. The aligned load/store version of CALC_COLOR_MODIFIERS was
26965 clobbering (x)mm3 (green coefficient) when processing the high order
26966 pels. I've reordered the method to remove some useless load/calc
26967 patterns that were there simply for readability and fixed the
26970 2008-03-18 Jeffrey Stedfast <fejj@novell.com>
26972 * font.cpp (TextFontDescription::CreatePattern): Always return the
26974 (TextFont::Load): No longer takes a fromFile argument.
26975 (TextFont::TextFont): Cache using the original pattern (which is
26976 what we really wanted to do originally, but were caching the
26977 "closest-match" pattern before which was wrong).
26978 (TextFont::GetGlyphInfo): Use FT_Get_Char_Index() rather than
26979 FcFreeTypeCharIndex(). Doesn't fix any bugs, just avoids use of
26980 wrapper API that is unnecessary.
26981 (TextFont::GetGlyphInfo): Added a gross hack for *Che fonts.
26983 2008-03-18 Geoff Norton <gnorton@novell.com>
26985 * yuv-converter.cpp: 768bits != 768bytes. Implement prefetching the
26986 cache lines for the Y plane.
26988 2008-03-18 Andrew Jorgensen <ajorgensen@novell.com>
26990 * plugin-ffmpeg.cpp: Remove avformat dependency (not needed anymore)
26991 * plugin-ffmpeg.h: Fix conditional swscale inclusion
26993 2008-03-18 Michael Dominic K. <mdk@mdk.am>
26996 * animation.h: Adding a new virtual method GetValueKind to Animation
26997 that returns the kind/type of values that given animation generates
26998 (doubles, points, etc.).
27000 Modyfying the HookupStorage to check if the animation type matches the
27001 type that the animated property expects. If it doesn't, bail out with a
27002 helpfull warning in the style of:
27004 "Ellipse.Fill property value type is 'Brush' but animation type is
27007 This fixes a crash in test-crash-color-anim-on-solid.xaml and all
27008 crashes where we try to animate ie. a color property using doubles.
27010 2008-03-18 Michael Dominic K. <mdk@mdk.am>
27012 * animation.cpp: Even more smoothing for KeySpline.
27014 2008-03-18 Michael Dominic K. <mdk@mdk.am>
27016 * dependencyobject.cpp: Enabling back the inheritance test for property
27017 resolving but only when dealing with non-attached properties.
27019 2008-03-17 Geoff Norton <gnorton@novell.com>
27022 * pipeline-ffmpeg.cpp:
27023 * pipeline-ffmpeg.h:
27024 * swscale-converter.cpp:
27025 * swscale-converter.h: Refactor the swscale based yuv2rgb converter
27026 out to a seperate file so it can be included optionally in the build.
27028 2008-03-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
27030 * mplayer.cpp: Show error message, not only error number, upon thread
27033 2008-03-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
27035 * playlist.cpp, playlist.h: Add a way to determine if the playlist was
27036 created to play a single file, or if it was created from an asx file
27039 2008-03-17 Chris Toshok <toshok@ximian.com>
27041 * dependencyobject.cpp (EventObject::EventObject): reorder things
27044 2008-03-17 Geoff Norton <gnorton@novell.com>
27046 * yuv-converter.cpp: __attribute ((aligned ())) can be ignored
27047 for locals. Use posix_memalign and share the instance for the
27048 lifespan of the converter.
27050 2008-03-17 Jeffrey Stedfast <fejj@novell.com>
27052 * font.cpp (FontPackFileFace::FontPackFileFace): Now takes an
27053 index argument, apparently FreeType2 always set face->face_index
27054 to 0 for these type fonts, so don't rely on it being accurate.
27055 (FontPack::CacheFileInfo): Pass the index value as an argument to
27056 FontPackFileFace's ctor.
27057 (TextFont::TextFont): Do hash lookups based on the matched
27058 pattern, not the original pattern passed in.
27060 2008-03-17 Jeffrey Stedfast <fejj@novell.com>
27062 * text.h: Added #include "layout.h"
27064 * font.cpp: Removed font.cpp's layout logic which has been
27065 rewritten in layout.cpp.
27066 (TextFont::HasGlyph): It seems that Silverlight may wrap text
27067 differently depending on whether the glyph is in the font?
27069 * layout.cpp (TextLayout::LayoutWrap): More tweaking action...
27071 2008-03-17 Geoff Norton <gnorton@novell.com>
27073 * yuv-converter.cpp: Ensure that our pointer alignment checks are
27076 2008-03-17 Michael Dominic K. <mdk@mdk.am>
27078 * animation.cpp: Interpolate linearly between keyspline values. This
27079 fixes the jags in test-animation-slow-keyspline.xaml.
27081 2008-03-17 Michael Dominic K. <mdk@mdk.am>
27083 * animation.cpp: Fixes to the way we generate the KeySpline values to be
27084 more smooth an precise.
27086 2008-03-17 Larry Ewing <lewing@novell.com>
27088 * runtime.cpp: go ahead and invalidate the toplevel before
27089 cleaning everything up. remove the disconnect call in
27090 DestroyWidget, all the handlers should be ok with getting called
27091 on fullscreen or the normal widget.
27093 2008-03-14 Jeffrey Stedfast <fejj@novell.com>
27095 * layout.cpp (TextLayout::LayoutWrap): Added some improved unicode
27096 line breaking logic.
27098 2008-03-14 Geoff Norton <gnorton@novell.com>
27100 * yuv-converter.cpp: Remove some dead code.
27102 2008-03-14 Geoff Norton <gnorton@novell.com>
27104 * mplayer.cpp: We actually need to align % 64 bytes on a 16 byte
27105 bounary. Each pel will expand to 4 bytes. Since we process 16
27106 pels at a time in SSE2 we need 64 output bytes per iteration.
27108 * yuv-converter.cpp: Remove the rest of the unaligned move/stores
27110 2008-03-14 Sebastien Pouliot <sebastien@ximian.com>
27112 * xaml.cpp: (flush_char_data) free data inside GString since the
27113 Value constructed around it creates it's own copy.
27115 2008-03-14 Geoff Norton <gnorton@novell.com>
27117 * pipeline-ffmpeg.cpp: Use posix_memalign for the YUV data buffers
27118 to get a 16byte alignment for SSE2.
27119 * yuv-converter.cpp: Remove most of our unaligned load/stores.
27121 2008-03-14 Larry Ewing <lewing@novell.com>
27125 * eventargs.h, enventargs.cpp:
27126 * type.h, type.cpp: make EventArgs a subclass of DependencyObject
27127 and all that entails. Still need to look over the properties.
27129 * runtime.cpp, runtime.h: expose EmitError for now.
27131 2008-03-14 Larry Ewing <lewing@novell.com>
27133 * mplayer.cpp (MediaPlayer::Open): use posix_memalign to allocate
27134 with a a 16bit alignment for the yuv converter.
27136 2008-03-14 Sebastien Pouliot <sebastien@ximian.com>
27138 * xaml.cpp: (expat_parser_error) ParserErrorEventArgs free it's
27139 own copy of the message.
27141 2008-03-14 Jeffrey Stedfast <fejj@novell.com>
27143 * font.cpp (TextRun::TextRun): Can't drop non-printable chars
27144 because soft-hyphen is apparently non-printable.
27146 2008-03-14 Jeffrey Stedfast <fejj@novell.com>
27148 * text.cpp (Glyphs::Layout): Check for NULL glyphs (which can
27149 happen now if the glyph does not exist in the font).
27150 (Glyphs::Render): Same.
27152 * font.cpp (TextFont::GetGlyphInfo): Added a new GetGlyphInfo
27153 which takes a unichar and index. This is now the main
27154 implementation that the other GetGlyphInfo() and
27155 GetGlyphInfoByIndex() use. The glyph table is now indexed by index
27156 rather than unichar.
27158 2008-03-14 Jeffrey Stedfast <fejj@novell.com>
27160 * text.cpp (Glyphs::Layout): Don't error out on (1:1) clusters
27161 without a specified index, these are ok.
27163 2008-03-14 Michael Dominic K. <mdk@mdk.am>
27165 * brush.cpp: In ImageBrush, if the image has not been downloaded
27166 yet, draw nothing like SL does -- instead of the grayish shadow.
27168 2008-03-14 Michael Dominic K. <mdk@mdk.am>
27170 * dependencyobject.cpp: Check the types of objects when
27171 resolving_property_paths and some more verbosity to the error
27172 reporting. Now test-crash-non-existing-animation-target-prop3
27173 fails with the proper warning.
27175 Also, terminate first on first error found.
27177 2008-03-14 Michael Dominic K. <mdk@mdk.am>
27179 * dependencyobject.cpp: Even more verbose error reporting in the
27180 resolve_property_path ().
27182 2008-03-14 Michael Dominic K. <mdk@mdk.am>
27184 * animation.cpp: Making the warning report proper error when can't
27185 resolve property on object. Now we're getting:
27188 (UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)
27189 on object ball, which has type Ellipse!"
27191 2008-03-14 Michael Dominic K. <mdk@mdk.am>
27193 * animation.cpp: Check correctly if we have object and property
27194 before trying to hookup storage.
27196 Fixes the crash in test-crash-non-existing-animation-target-prop.xaml
27197 but the warning message is still incorrect:
27199 "No object named ball!"
27201 The object named "ball" exists but it doesn't have the requested
27204 2008-03-14 Michael Dominic K. <mdk@mdk.am>
27206 * animation.cpp: Changing few printf's to g_warnings.
27208 2008-03-14 Stephane Delcroix <sdelcroix@novell.com>
27210 * shape.cpp: Deal with different [start|end|dash] caps for lines
27213 2008-03-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
27215 * mplayer.cpp: Comment out printf.
27217 2008-03-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
27219 * mplayer.cpp: AudioNode::Play: property calculate the delay between the
27220 play position in the hardware and the pts we just sent to alsa, and
27221 subtract it from that pts.
27223 Thu Mar 13 23:25:41 CET 2008 Paolo Molaro <lupus@ximian.com>
27225 * clock.cpp: use a monotonic clock if available to avoid issues with
27226 the system time changing.
27228 2008-03-13 Jeffrey Stedfast <fejj@novell.com>
27230 * layout.cpp (TextRun::TextRun): Don't drop non-printable
27231 chars... somehow soft-hyphen (0xAD) is non-printable according to
27232 glib and so breaks the LineBreakBasic1.htm test.
27233 (TextLayout::LayoutNoWrap): Keep appending words to the line until
27234 a line ends beyond max_width, we don't care where it begins (it
27235 could begin way beyond max_width for all we care).
27237 2008-03-13 Chris Toshok <toshok@ximian.com>
27239 * text.cpp (~Glyphs): don't unref the fill, since we don't take a
27242 2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
27244 * mplayer.cpp: Make this build on SLED until I find a proper workaround.
27246 2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
27248 * media.cpp: Update according to MediaPlayer changes.
27250 2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
27252 * mplayer.cpp, mplayer.h, pipeline.cpp: Play audio on a single
27253 thread. Fixes #326902.
27255 2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
27257 * Makefile.am: Set our G_LOG_DOMAIN.
27259 2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
27261 * xaml.cpp: default_create_element_instance: Set the surface as soon as
27264 2008-03-13 Michael Dominic K. <mdk@mdk.am>
27266 * animation.cpp: Modyfying the KeyFrameCollection::GetKeyFrameForTime
27267 behavior. When getting the keyframe for time additionally crawl back (if
27268 needed) to find the last non-null keyframe and non-null previous
27269 keyframe. By doing so we silently ignore the frames without values set
27270 and don't crash on nullable types.
27272 Fixes the crash in AnimationMatrix2.html/xaml and in the
27273 test-animation-null-keyframe.xaml test.
27275 Remving the XXX warnings about nullabled types from file since they
27276 don't apply anymore.
27278 2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
27280 * visual.h, uielement.cpp, visual.cpp: Remove the 'surface' field from
27281 Visual, we're already storing the surface in the EventObject.
27282 * dependencyobject.cpp: EventObject::unref_delayed: remove the #if false,
27283 and comment out the warning, since with the current code it's entirely
27284 possible to unref a dependecyobject with no surface.
27286 2008-03-13 Stephane Delcroix <sdelcroix@novell.com>
27288 * brush.cpp: compute relative transform as it's done in SL. We used to
27289 derelativize transform to match the absolute ones. Now we map the brush
27290 to a 1x1 square, apply the transform, and unmap back. It simplify the
27291 computation a lot too. Fixes bnc #354892 and a bad gradient in
27294 2008-03-12 Chris Toshok <toshok@ximian.com>
27296 * media.cpp (expand_rgb_to_argb): use a different codepath if the
27297 rowstride isn't padded out to be divisible by 4 (or else we read
27298 off the end by a byte).
27300 2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
27302 * pipeline.cpp: ASFDemuxer: Only seek in the selected streams.
27304 2008-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
27306 * pipeline.cpp, pipeline.h: Break all media threads upon media shutdown.
27307 * pipeline-ffmpeg.cpp: Don't check if we've been registered before, the
27308 pipeline correctly removes registered infos upon shutdown, so if we're
27309 initialized again we should also register again.
27310 * runtime.cpp: Call Media::Shutdown do shut down the media threads before
27311 doing anything else.
27313 2008-03-12 Jeffrey Stedfast <fejj@novell.com>
27315 * font.cpp (TextRun::TextRun): Fixed canonicalization logic.
27317 * text.cpp (TextBlock::LayoutSilverlight): When creating a list of
27318 TextRun's, if the Run contains \n's, break the text into
27319 non-linebreak and linebreak TextRun elements. Allows the
27320 TextLayout::Layout() logic to be simplified considerably.
27322 2008-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
27324 * dependencyobject.cpp: DependencyObject: Initialize our surface field to
27327 2008-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
27329 * pipeline.h, pipeline.cpp: Add logging macros. Use ErrorEventArgs for error
27330 reporting so that the errors can easily be bubbled up the pipeline. Add
27331 a 'selected' field to IMediaStream, whether the media player is using
27332 that stream or not.
27333 * error.h: Add a MediaErrorEventArgs class.
27335 2008-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
27337 * pipeline.cpp: Propagate the surface from the media element to the media.
27339 2008-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
27341 * mplayer.cpp, pipeline.cpp, pipeline.h: Add a 'selected' field to the
27342 IMediaStream, indicates whether the stream is being played or not.
27344 2008-03-12 Sebastien Pouliot <sebastien@ximian.com>
27346 * dependencyobject.cpp: Add NULL check in method
27347 RemovePropertyChangeListener since a bad XAML input can cause a
27348 NULL entry in the list.
27350 2008-03-12 Michael Dominic K. <mdk@mdk.am>
27354 * shape.cpp: Properly calculate the shape cache depending on our bpp etc.
27356 2008-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
27358 * xaml.cpp: xaml_create_from_file: if there was some error loading the file,
27359 don't crash, print an error message. Dup all strings put into
27360 namespace_map, and free them all upon its destruction.
27362 2008-03-11 Larry Ewing <lewing@novell.com>
27364 * collection.cpp (VisualCollection::VisualAdded): make sure we set
27365 the surface as the first step, dirty processing depends on it.
27366 Fixes OM_RemoveClearRemoveAt.htm regression.
27368 2008-03-11 Larry Ewing <lewing@novell.com>
27371 * canvas.cpp (Canvas::OnPropertyChanged): listen to changes on Top
27372 and Left when we are toplevel so that we can recompute our
27375 * uielement.cpp: if we don't have a parent call GetTransformFor on
27376 ourself so that Top and Left are taken into account on toplevel
27377 canvases. Fixes test-canvas-toplevel.xaml
27379 2008-03-11 Chris Toshok <toshok@ximian.com>
27381 * clock.h, clock.cpp: a few changes, the most important
27382 being (ifdefed for now) code to put the timemanager to sleep when
27383 it's not needed for animations, rendering, or tick calls. To do
27384 this we need a couple of changes to the clock code. 1) propagate
27385 the time_manager out to all clocks, so we can force it to tick the
27386 clock hierarchy the first time whenever a storyboard is started.
27387 2) make Clock/ClockGroup::Tick return a bool, which means "i'll be
27388 in need of another tick." Do the same for the tick call stuff,
27389 where the bool return value means "we have more tick calls
27390 pending." Also, add a couple of methods to the
27391 TimeManager (NeedRedraw, NeedClockTick) which will start up the
27392 timemanager if it's asleep, and set the proper flag so it'll do
27393 the right work on the next tick.
27396 * uielement.cpp: notify the timemanager that we have a redraw to
27399 * runtime.cpp (Surface::realized_callback): tell the time manager
27400 to redraw us to get the process moving.
27402 2008-03-11 Sebastien Pouliot <sebastien@ximian.com>
27404 * xaml.cpp: Work around the fact that it's not always safe to
27405 call some expat functions, like XML_GetCurrentLineNumber, if the
27406 parsing failed early.
27408 2008-03-11 Chris Toshok <toshok@ximian.com>
27410 * namescope.h, namescope.cpp: switch from reffing the objects to
27411 using the DestroyedEvent. Otherwise our toplevel canvas has a ref
27412 cycle with its namescope. Also, short circuit out if we're
27413 registering the same object twice. keeps us from having too many
27414 DestroyedEvents (since RemoveHandler only removes one).
27416 * dependencyobject.h, dependencyobject.cpp: move
27417 GetSurface/SetSurface to EventObject, and add unref_delayed as a
27418 method. If the event object has a surface associated with it, add
27419 it to the surface's pending list of unrefs. otherwise warn us and
27420 add it to the global list. The warnings should be fixed as the
27421 global list really should go away.
27423 Also, before we free a value, make sure to remove our handler and
27426 Also, get rid of OBJECT_TRACK_ID. use an environment variable for
27427 this. So if you compile with OBJECT_TRACKING on, nothing new
27428 happens unless you set the "MOONLIGHT_OBJECT_TRACK_ID" environment
27429 variable to the id of the object you want to track. Makes the
27430 turnaround time a little quicker.
27432 shift some things around in the header file while I'm making this
27435 * runtime.h, runtime.cpp: move some more methods to the .cpp from
27436 the .h, and also add the per-surface pending unrefs list. This is
27437 basically a c&p of the global list from dependency.cpp.
27439 * downloader.h, downloader.cpp: remove Get/Set Surface in favor of
27440 using EventObject's.
27442 2008-03-11 Sebastien Pouliot <sebastien@ximian.com>
27444 * xaml.cpp: Add NULL check in dependency_object_add_child since
27445 parent->parent->item may be NULL in malformed XAML files.
27447 2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
27449 * pipeline.h, media.cpp, pipeline.cpp: Rename GetPositionOfPts to
27450 EstimatePtsPosition and remove the estimate parameter, it's never used.
27452 2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
27454 * runtime.cpp: No need to scream in printfs.
27456 2008-03-11 Jeffrey Stedfast <fejj@novell.com>
27458 * font.cpp (TextLayout::Layout): More fixes, this is getting
27461 2008-03-11 Sebastien Pouliot <sebastien@ximian.com>
27463 * xaml.cpp: Avoid crashing if the PML does not start with a
27464 M(ove) instruction.
27466 2008-03-11 Michael Dominic K. <mdk@mdk.am>
27468 * src/: Moving implementations from .h to .cpp, leaving only
27469 setters/getters + simple constructors in .h.
27471 2008-03-11 Larry Ewing <lewing@novell.com>
27473 * xaml.cpp (dependency_object_set_property): throw an error if we
27474 get here without a DependencyObject. Fixes
27475 test-property-parsing.xaml
27477 2008-03-10 Larry Ewing <lewing@novell.com>
27480 * uielement.cpp: add more checks to the parent tree.
27482 2008-03-10 Chris Toshok <toshok@ximian.com>
27484 * dependencyobject.cpp (~DependencyObject): use
27485 g_hash_table_foreach_remove, so the dtor of one value can't access
27486 an already destroyed DO from another value.
27488 2008-03-10 Chris Toshok <toshok@ximian.com>
27490 * namescope.cpp: don't explicitly unref the object when removing
27491 it. instead use base_unref as the value-dtor for the GHashTable.
27492 This will cause unrefs when the hash table is destroyed in the
27493 dtor (a case we were missing before.)
27495 * collection.h, collection.cpp (class Collection): factor out the
27496 body of Collection::Clear into a non-virtual method that we can
27497 call from the dtor.
27499 2008-03-10 Larry Ewing <lewing@novell.com>
27502 * panel.cpp: make sure we don't subtract the region unless non of
27503 our anscestors have a slip mask. This should be implemented in a
27504 more efficient way.
27506 2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
27508 * playlist.cpp, playlist.h: Move PlaylistContent info PlaylistEntry.
27510 2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
27512 * dependencyobject.h, dependencyobject.cpp: Enable object counting when
27514 * runtime.cpp: Show a message if we leak objects and DEBUG is defined.
27515 * pipeline.cpp: Remove printfs.
27517 2008-03-10 Larry Ewing <lewing@novell.com>
27520 * geometry.cpp: make IsBuilt check for actual path data as well
27521 then use it everywhere we need it. Invalidate the path if the
27522 figures change. Fixes test-transform-clip.htm.
27524 2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
27526 * playlist.cpp: Playlist::AddEntry: unref the entry after adding it.
27528 2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
27530 * mplayer.cpp: When stopping, we need to seek to the beginning again. Fixes
27533 2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
27535 * media.cpp: Update according to pipeline changes. TryOpen: our
27536 downloaded_file field may change when we call MediaOpened, so save a
27537 local copy before calling MediaOpened. Unref our playlist upon
27539 * mplayer.cpp: Update according to changes in the pipeline.
27540 * pipeline.cpp, pipeline.h: Delete all but one of GetNextFrameAsync, the
27541 rest aren't used. Make the remaining method take the stream as a
27542 parameter, and the resulting frame will be put in the closure. Also
27543 handle the case when the codec returns MEDIA_CODEC_DELAYED, in which
27544 case just try again with the next frame. Make MediaWork ref/unref the
27545 fields that can be ref counted.
27547 2008-03-10 Chris Toshok <toshok@ximian.com>
27549 [ Fixes bug #368460 ]
27550 * collection.cpp (Collection::SetVal): make sure to unregister the
27551 name of the object(s) we remove from the collection.
27552 (Collection::Remove): same.
27553 (Collection::RemoveAt): same.
27554 (Collection::Clear): same.
27556 * namescope.cpp (NameScope::RegisterName): ref the object.
27557 (NameScope::UnregisterName): unref the object.
27559 2008-03-10 Jeffrey Stedfast <fejj@novell.com>
27561 * font.cpp (TextLayout::Layout): More line-wrap fixes - implement
27562 Silverlights TextWrapping="Wrap" bug where it doesn't ever break
27565 2008-03-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
27567 * src.mdp: Updated.
27569 2008-03-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
27571 * dependencyobject.h: Make the OBJECT_TRACKING stuff public.
27572 * runtime.cpp: Use GetRefCount, not refcount.
27574 2008-03-10 Chris Toshok <toshok@ximian.com>
27576 * runtime.h, runtime.cpp: add surface_get_time_manager.
27578 * downloader.h, downloader.cpp: add downloader_get_surface.
27580 2008-03-10 Michael Dominic K. <mdk@mdk.am>
27584 * shape.cpp: Making the shape-caching a runtime parameter
27585 (shapecache=yes). Turned off right now.
27587 2008-03-10 Michael Dominic K. <mdk@mdk.am>
27589 * shape.cpp: Tiny refactoring to the surface-size calculation code.
27591 2008-03-10 Michael Dominic K. <mdk@mdk.am>
27594 * shape.cpp: Adding functionality to limit the amount of caching
27595 happening on one surface. Currently set to ~6mb.
27597 2008-03-09 Larry Ewing <lewing@novell.com>
27599 * mplayer.cpp: fix another place that used the wrong stride.
27601 2008-03-09 Geoff Norton <gnorton@novell.com>
27603 * yuv-converter.cpp: Make sure we emms after finishing sse/mmx
27606 2008-03-09 Geoff Norton <gnorton@novell.com>
27608 * yuv-converter.cpp: Detect the CPU features at runtime. We
27609 should now be able to distribute a 32-bit SSE2/MMX build to
27610 non SSE2/MMX machines
27612 2008-03-09 Geoff Norton <gnorton@novell.com>
27614 * yuv-converter.cpp: Implement runtime fallbacks in the Convert
27615 function (TODO: Still need to runtime detect SSE2/MMX)
27617 2008-03-09 Larry Ewing <lewing@novell.com>
27619 * mplayer.cpp (MediaPlayer::Open): make the stride % 16 for now.
27621 2008-03-09 Larry Ewing <lewing@novell.com>
27623 * mplayer.cpp (MediaPlayer::Open): use the proper stride
27624 calculation functions.
27626 2008-03-08 Geoff Norton <gnorton@novell.com>
27628 * yuv-converter.cpp: Implement a SSE2 version of the YUV2RGB
27629 codepath along with some code cleanup. Still some more cleanup
27630 to do for runtime detection of CPU features.
27632 2008-03-08 Geoff Norton <gnorton@novell.com>
27634 * yuv-converter.cpp: Fix some erroneous math. U' != U.
27635 These coefficients are far more sane now and our lum change is
27636 reflected properly.
27638 2008-03-08 Chris Toshok <toshok@ximian.com>
27640 * clock.cpp (TimeManager::SourceTick): larry gets credit for
27641 spotting this problem and suggesting the fix. remove the
27642 hysteresis code, and *always* set a new timeout, based on what our
27643 idea of the timeout and the amount of time we spent rendering the
27644 previous frame. This smooths things out immensely, removes (for
27645 me) the animation stutters induced by audio in sprawl, and results
27646 in fewer dropped frames.
27648 2008-03-08 Geoff Norton <gnorton@novell.com>
27650 * yuv-converter.cpp: Fix the luminance problem (Y needs shift;
27651 and b was pulling the wrong l/h value.
27653 2008-03-08 Chris Toshok <toshok@ximian.com>
27655 * value.cpp (Value::CreateUnrefPtr): use GetRefCount() instead of
27656 accessing dob->refcount.
27657 (Value::CreateUnref): same.
27659 * dependencyobject.h, dependency.cpp (class EventObject): reorder
27660 this class definition so that we don't have multiple
27661 public/protected/private areas. confusing as hell :) Also, move
27662 the implementations of the non-performance critical things into
27663 the .cpp file, as they were making the .h rather cluttered (ctor,
27664 dtor, weak ref/unref.) Lastly, make almost everything private
27665 instead of public (most importantly the refcount.)
27667 * debug.h, debug.cpp: random code cleanup. we don't need to be
27668 concerned with adding some additional stack methods to the plugin
27669 in the DEBUG case, so go ahead and just use DEBUG here instead of
27672 2008-03-08 Chris Toshok <toshok@ximian.com>
27674 * uielement.cpp, text.cpp, clock.cpp, mplayer.cpp: remove the
27675 extern guint32 moonlight_flags.
27677 * pipeline.cpp: if RUNTIME_INIT_CONVERTER_YUV, use the yuv
27678 converter, otherwise use ffmpeg.
27680 * runtime.h: add RUNTIME_INIT_CONVERTER_YUV to the list of init
27681 flags, and (my god) put the extern moonlight_flags here.
27683 * runtime.cpp: add yuv converter options. use
27684 MOONLIGHT_OVERRIDES=converter=yuv to enable it. default is
27685 "converter=ffmpeg".
27687 2008-03-08 Geoff Norton <gnorton@novell.com>
27689 * yuv-converter.cpp: Clear the mmx state when we're done
27690 processing. Fixes most problems on x86_32.
27692 2008-03-08 Geoff Norton <gnorton@novell.com>
27694 * pipeline.cpp: Disable YUV converter, its crashing on x86_32
27697 2008-03-08 Geoff Norton <gnorton@novell.com>
27699 * pipeline-ffmpeg.cpp: Dont register YUV converter here.
27700 * pipeline.cpp: Register YUV converter here.
27702 2008-03-08 Geoff Norton <gnorton@novell.com>
27704 * yuv-converter.cpp: Remove some code duplication and refactor
27705 to support register starved implementations.
27707 2008-03-08 Geoff Norton <gnorton@novell.com>
27709 * Makefile.am: Add yuv-converter.cpp to the build
27710 * yuv-conveter.*: Our YUV2RGB 420P converter. Replaces
27712 * pipeline-ffmpeg.cpp: Use YUVConverter instead of libswscale.
27714 2008-03-08 Chris Toshok <toshok@ximian.com>
27716 * clock.h, clock.cpp, animation.cpp: a few clock related changes.
27718 1. Revert the change that uses "forward" to tell if we're moving
27719 forward or not. This isn't the only indicator, as a parent clock
27720 might be ticking backward, so we really do need to use "our_delta"
27722 2. Also, we need to not clamp the time of the clock (on either
27723 end) when we're filling, as if the parent's duration is longer
27724 than ours and they autoreverse, there needs to be some padding in
27725 the reverse direction before we start again.
27727 3. Only call ComputeBeginTime() on a newly created clock if the
27728 timeline has a begin time specified. Otherwise, use
27729 BeginOnTick/GetBeginOnTick to make it begin on the next tick.
27730 This fixes the chess animation breakage. The problem was caused
27731 by us computing the begin time immediately in Storyboard::Begin,
27732 which would calculate the clock's begin time relative to the
27733 *previous* tick. on the next tick, the clock was almost always at
27734 1.0 progress, which caused the animations to skip directly to the
27737 2008-03-08 Chris Toshok <toshok@ximian.com>
27739 * value.cpp, type.cpp, type.cpp.in, trigger.cpp, runtime.cpp,
27740 dirty.cpp, dependencyobject.cpp: more assert removal. we can't
27741 assert in a plugin (even if people are running a debug build it's
27742 not exactly nice to bring down their browser.)
27744 2008-03-07 Chris Toshok <toshok@ximian.com>
27746 * value.cpp (Value::CreateUnrefPtr): don't assert here.
27747 (Value::CreateUnref): same.
27749 2008-03-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
27751 * type.cpp.in, typegen.cs, type.cpp: If the type system is accessed when
27752 it's not initialized, print a warning and re-initialize it.
27754 2008-03-08 Fernando Herrera <fherrera@novell.com>
27758 * playlist.h: Add support for ASX2 playlist files returned by
27759 mediaservers when requesting a mmsh file over plain http. Fixes
27760 http://channel9.msdn.com.
27762 2008-03-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
27764 * pipeline.cpp: Add a couple of null checks in ~Media. Detect ASX files
27765 case-insensitively.
27767 2008-03-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
27769 * pipeline.h, pipeline.cpp: Refcount IMediaObject, and make dtors in all
27770 derived classes protected.
27771 * media.cpp: Update according to pipeline changes. TryOpen: our
27772 downloaded_file field may change when we call MediaOpened, so save a
27773 local copy before calling MediaOpened.
27775 2008-03-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
27777 * clock.cpp, clock.h: Added TimeManager::InvokeOnMainThread.
27778 * mplayer.cpp: Use TimeManager::InvokeOnMainThread instead of finding a
27779 TimeManager instance to add the timeout to.
27781 2008-03-07 Sebastien Pouliot <sebastien@ximian.com>
27783 * downloader.cpp: Fix access to Status from JScript.
27785 2008-03-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
27787 * mplayer.cpp: LoadVideoFrame: if we got the last frame, don't request any
27790 2008-03-07 Sebastien Pouliot <sebastien@ximian.com>
27792 * brush.cpp: Fix default value for ColorInterpolationMode (js
27794 * parsertest.cpp: Adapt to API change.
27795 * xaml.cpp|h: Change value_from_str[_with_typename] to return a
27796 bool since NULL can be a valid Value in some cases (e.g. empty
27797 stuff that should not reset the DO default values).
27799 2008-03-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
27801 * mplayer.cpp: Add a null check before accessing any time managers.
27803 2008-03-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
27805 * brush.cpp, uielement.cpp: Use MediaElement::GetMediaPlayer instead of
27806 accessing the field.
27807 * media.cpp, media.h: Use MediaElement::GetMediaPlayer instead of accessing
27808 the field. Update according to pipeline changes.
27809 * mplayer.cpp, mplayer.h: Update according to pipeline changes.
27810 * pipeline.cpp, pipeline.h: Make Media inherit from EventObject so that it
27811 can be ref counted. Make MediaClosure more intelligent by ref/unreffing
27812 the context and media fields. All variations of MediaWork has a closure,
27813 so move the closure field out of the union. This simplifies
27814 Media::WorkerLoop a bit. Add a Media::SeekToStart, which is required to
27815 not cause any reads/seeks which may block. Remove SetQueueCallback, the
27816 request takes a closure now. Implement an ASXDemuxer to read ASX files.
27817 * sizes.cpp: Updated.
27818 * playlist.h, playlist.cpp: First part of the new playlist support.
27820 2008-03-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
27822 * dependencyobject.cpp: Make the output in EventObject::Track print
27823 atomically. Really avoids a lot of confusion if several threads are
27824 printfing at the same time.
27826 2008-03-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
27828 * debug.cpp: Add a couple of null checks.
27830 2008-03-06 Jeffrey Stedfast <fejj@novell.com>
27832 * font.cpp (TextLayout::Layout): Don't wrap on a space char, ever.
27833 (TextLayout::Layout): Don't include trailing lwsp in the line
27834 width calculation unless it is the last line.
27835 (TextLayout::Layout): Don't include trailing empty lines in the
27836 height calculation.
27838 2008-03-06 Chris Toshok <toshok@ximian.com>
27840 * clock.h, clock.cpp: some changes to make TimeManager a
27841 per-surface item, instead of a singleton/global. The time manager
27842 creates a root clock group, just like Surface used to, which is
27843 the parent of all storyboards for a surface.
27845 * dirty.h, dirty.cpp: remove the method prototypes and globals -
27846 switch everything to be Surface:: methods.
27848 * runtime.h, runtime.cpp: get rid of our ClockGroup and Timeline
27849 for the root clock, and create a TimeManager instead. Also, add
27850 the dirty methods/fields to Surface, even though the
27851 implementation still lives in dirty.cpp. Also, call
27852 toplevel->SetSurface(NULL) early in our dtor so that elements can
27853 react before, e.g., the time manager has been destroyed.
27855 * media.h, media.cpp: use the surface's TimeManager instead of a
27856 global one. Also override SetSurface so we can tell if we're
27857 losing access to it, and remove our timeout accordingly.
27859 * mplayer.cpp: use the media element's TimeManager.
27861 * visual.h, visual.cpp: add GetTimeManager() method, which just
27862 does GetSurface()->GetTimeManager().
27864 * dependencyobject.cpp (base_unref_delayed): as much as I hate to
27865 do this, use a g_idle instead of a tick call here, since we have
27866 no access to the surface.
27868 * animation.cpp (Storyboard::Begin): the surface no longer has the
27869 root clock group, the surface's TimeManager does.
27871 * panel.h, panel.cpp (SetSurface): recursively call SetSurface on
27874 * uielement.h, uielement.cpp: translate global dirty calls into
27875 surface calls, and override SetSurface to remove ourselves from
27876 the dirty list if we're losing our surface.
27878 * eventargs.cpp: translate global dirty calls into surface calls.
27880 2008-03-06 Michael Dominic K. <mdk@mdk.am>
27882 * src/clock.cpp: In ClockGroup Clamp the time *before* ticking on
27883 child clocks. Othewise children always get a small delta and keep
27884 going beyond the parent Duration bounds. Fixes the contrained
27885 storyboard examples.
27887 Also making the forward/backward ComputeNewTime behavior depend on
27888 'forward' instead of out_delta (which can be 0 if hitting bounds).
27890 2008-03-06 Sebastien Pouliot <sebastien@ximian.com>
27892 * transform.cpp: Fix Matrix default values to match identity
27893 matrix (and fix one js unit test).
27895 2008-03-05 Larry Ewing <lewing@novell.com>
27897 * shape.cpp: drop the code that checks stretch when building the
27898 paths for polyline and polygon. Fix the condition for translation.
27900 2008-03-05 Larry Ewing <lewing@novell.com>
27903 * shape.cpp: refactor the stretch code slightly and fix the
27904 original stretch tests (that passed the harness but are clearly
27907 2008-03-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
27909 * media.h: Made destructors in objects deriving from EventObject protected,
27910 preventing 'delete obj' and stack-allocation for these objects.
27912 * playlist.cpp: Can't delete downloaders anymore, unref it.
27914 2008-03-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
27916 * animation.h, brush.h, canvas.h, clock.h, collection.h, control.h,
27917 dependencyobject.h, downloader.h, frameworkelement.h, geometry.h,
27918 namescope.h, panel.h, runtime.h, shape.h, stylus.h, text.h, transform.h,
27919 trigger.h, uielement.h, visual.h: Made destructors in objects deriving
27920 from EventObject protected, preventing 'delete obj' and stack-allocation
27922 * demo.cpp, runtime.cpp: Can't delete a surface anymore, unref it.
27923 * dirty.h: Added header.
27925 2008-03-05 Chris Toshok <toshok@ximian.com>
27927 * runtime.h (RUNTIME_INIT_DESKTOP, RUNTIME_INIT_BROWSER): make
27928 front-to-back rendering the default.
27930 2008-03-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
27932 * clock.h, playlist.h, trigger.h, text.h, clock.cpp, playlist.cpp,
27933 trigger.cpp, dependencyobject.h, downloader.cpp, dependencyobject.cpp,
27934 media.h, animation.h, brush.h, runtime.h, media.cpp, animation.cpp,
27935 runtime.cpp, text.cpp: Updated event handling to take an EventArgs*
27936 calldata instead of a gpointer.
27937 * error.h: Added EventArgs, a base class for all *EventArgs.
27938 * collection.h: Make ChangeEventArgs inherit from EventArgs.
27939 * uielement.cpp: Create all *EventArgs on the heap and simply the code a
27941 * collection.cpp: Don't allocate Collection::ChangeEventArgs on the stack.
27942 * eventargs.cpp, eventargs.h: Added EventArgs, a base class for all
27943 *EventArgs. Added MarkerReachedEventArgs.
27944 * brush.cpp: Updated event handling to take an EventArgs* calldata instead
27945 of a gpointer. ~ImageBrush: don't delete, unref.
27947 2008-03-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
27949 * value.cpp: Fix warning.
27951 2008-03-05 Larry Ewing <lewing@novell.com>
27953 * shape.cpp: Fix line, polyline and polygon to apply stretches
27954 properly (modulo pesimistic shape bounds bugs). Mostly fixes
27955 test-shape-line-stretch2.xaml, test-shape-polyline-stretch2.xaml
27956 and test-shape-polygon-stretch2.xaml.
27958 * shape.h: move stretch transform out of Path and into Shape.
27961 * stylus.cpp: include the strokes in the subtree bounds so that we
27962 will get invalidations and update bounds when the collection
27963 changes. There are still potential bounds issues point changes,
27964 those are being looked into. Fixes invalidation issues in
27965 test-inkpresenter-position and test-inkpresenter-scale.
27967 2008-03-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
27969 * xaml.cpp: Add a null at the end of the namespace array.
27971 2008-03-05 Jeffrey Stedfast <fejj@novell.com>
27973 * font.cpp (TextRun::TextRun): Drop \r's and convert non-new-line
27974 white space into a simple space.
27975 (TextLayout::Layout): Treat embedded \n's as LineBreaks
27976 (TextLayout::Layout): When calculating the width of a line that
27977 ends in a space, don't include the width of the space char -
27978 Silverlight doesn't seem to.
27979 (TextLayout::Layout): Don't pad the height. Don't pad the width
27980 either, altho it seems like a padding of +2.0 is about right but
27981 ONLY if the text is in a canvas? See OMTextInline.htm's
27982 actualWidth/Height measurements as well as the out-of-tree
27985 * xaml.cpp (char_data_handler): Always create the GString cdata,
27986 we need to note leading lwsp which the old implementation didn't.
27987 (flush_char_data): Try to emulate Silverlight's chug/chomp
27988 behavior more closely.
27990 2008-03-05 Chris Toshok <toshok@ximian.com>
27992 * canvas.cpp (Canvas::OnSubPropertyChanged): make sure to chain up
27993 to panel's OnSubPropertyChanged if we don't handle it.
27995 * dependencyobject.cpp (DependencyObject::NotifyListenersOfPropertyChange):
27996 make sure we don't call this method with NULL args. Also, remove
27997 larry's g_warning (which wasn't the case, i tested with sprawl!),
27998 and also remove the check for matching property/parent type for
27999 attached properties. this will break controls.
28001 * transform.h, transform.cpp: it used to be that logical parents
28002 of children could rely on OnSubPropertyChanged being invoked for
28003 any property change. This is no longer the case - the only
28004 instance where it still happens is if there's an attached property
28005 involved. All other cases have to use OnCollectionChanged. So,
28006 switch OnSubPropertyChanged to OnCollectionChanged here.
28008 2008-03-05 Jeffrey Stedfast <fejj@novell.com>
28010 * text.cpp (TextBlock::OnCollectionChanged): We need to update
28011 bounds/text even if element_args is NULL (because adding/removing
28012 an item still changes our text).
28013 (Inline::OnPropertyChanged): Use args->new_value.
28015 2008-03-05 Chris Toshok <toshok@ximian.com>
28017 * transform.h, transform.cpp: remove
28018 TransformCollection::OnSubPropertyChanged. it was gumming up the
28021 2008-03-05 Larry Ewing <lewing@novell.com>
28023 * shape.cpp: disable the shape caching code for now unless
28024 USE_OPT_SHAPE_SURFACE_CACHING=1.
28026 2008-03-05 Michael Dominic K. <mdk@mdk.am>
28031 * xaml.cpp: Taking out all the enum->str (and vice versa) code from
28032 xaml.cpp and putting it into a new file -> enum.c + some utilities.
28034 The enum<->str code is not specific to xaml and is usefull from plugin as
28037 2008-03-05 Stephane Delcroix <sdelcroix@novell.com>
28039 * media.cpp: close the pixbuf_loader to load the small images too.
28041 2008-03-04 Chris Toshok <toshok@ximian.com>
28043 * runtime.cpp (Surface::expose_to_drawable): re-enable the
28044 clearing of the cairo surface, but only if we have a
28045 widget (i.e. not in the windowless plugin case.) Should fix
28046 translucent desklets without breaking the plugin.
28048 2008-03-04 Chris Toshok <toshok@ximian.com>
28050 [ rather large change, reworking much of the property change event
28051 system to be a little smaller api surface-wise, and also cleaning
28052 up uses of it to remove some of the accumulated cruft that we'd
28053 developed over the past 10 months.]
28055 * dependencyobject.h, dependencyobject.cpp: A few key changes:
28057 1. Attach -> AddPropertyChangeListener
28058 Detach -> RemovePropertyChangeListener
28059 NotifyAttachersOfPropertyChange -> NotifyListenersOfPropertyChange
28061 This was done to remove the confusion between "attached"
28062 properties and our use of the word "attach" to mean "listen for
28063 property changes". Attached properties are those which
28064 implicitly notify the parent when they're changed.
28066 OnChildPropertyChanged is gone. Canvas (the only user of it)
28067 now uses OnSubPropertyChanged to deal with child property
28070 2. *PropertyChanged methods take a
28071 structure (PropertyChangedEventArgs) that contains the
28072 DependencyProperty, as well as the old and new values of it.
28073 This was to remove the need for almost every
28074 OnPropertyChangedMethod to immediately call GetValue on the
28075 property. Passing the old value requires changing the
28076 current_values hash to not have a value destructor, so we have
28077 to manually delete values again.
28079 3. Reordered the args for
28080 AddPropertyChangeListener/RemovePropertyChangeListener so that
28081 the listener comes first and the second arg defaults to NULL.
28082 Cleans up a bit of the use of this method globally.
28084 * animation.h, animation.cpp: track OnSubPropertyChanged changes.
28086 * brush.h, brush.cpp (SolidColorBrush::OnPropertyChanged,
28087 LinearGradientBrush::OnPropertyChanged,
28088 RadialGradientBrush::OnPropertyChanged): remove, unnecessary.
28090 also lots of changes to use args->new_value instead of calling
28091 GetValue(property).
28093 Clear up confusion regarding the meaning of the property passed to
28094 AddPropertyChangeListener.
28096 * canvas.h, canvas.cpp: switch OnChildPropertyChanged to
28097 OnSubPropertyChanged.
28099 * collection.h, collection.cpp (Node::Node): don't add parent as a
28100 listener for every property change here. We handle this
28101 specifically (and automatically) in
28102 DependencyObject::NotifyListenersOfPropertyChange, but only for
28103 attached properties.
28104 (Node::~Node): don't remove the listener here either.
28106 lots of tracking the DO api changes here too.
28108 * control.h, control.cpp: track On*PropertyChanged changes.
28110 * font.cpp: fix some warnings
28112 * frameworkelement.h, frameworkelement.cpp: track
28113 On*PropertyChanged changes.
28115 * geometry.h, geometry.cpp: track On*PropertyChanged changes.
28117 * media.h, media.cpp (MediaElement::OnPropertyChanged): remove a
28118 lot of the empty blocks here - there's nothing to do for these
28119 properties, so we might as well not bloat the code. Also, use
28120 new_value when we can.
28121 (Image::DownloaderComplete): add a (I hope) suitably nasty comment
28122 about calling brush->OnPropertyChanged directly. code shouldn't
28123 do this, we should figure out if we can just set the property, and
28124 if so, do that. otherwise something else is broken.
28125 (Image::OnPropertyChanged): use new_value where we can.
28127 * panel.h, panel.cpp: remove the cached background field. It
28128 wasn't used except to Attach/ref + Detach/unref it, and that's
28129 handled automatically by the DependencyProperty machinery.
28130 Otherwise just track the On*PropertyChanged api changes.
28132 * shape.h, shape.cpp: similarly, we don't need to ref/attach our
28133 cached stroke and fill fields. They're populated for us (and
28134 ref'ed/unref'ed as needed), so we don't need anything additional
28135 here. Use new_value instead of GetValue in OnPropertyChanged.
28136 Also, factor out some redundant code from all the subclass
28137 OnPropertyChanged methods that was nearly the same as the
28138 Shape::OnPropertyChanged code for it.
28140 * stylus.h, stylus.cpp: On*PropertyChanged api changes.
28142 * text.h, text.cpp: mostly On*PropertyChanged api changes, and
28143 lots of using new_value instead of GetValue, but also get rid of
28144 the cached TextBlock foreground instance field. It's easy enough
28145 to fetch when we need it in the ::Paint method, and the
28146 dependencyobject stuff already refs and attaches to it.
28148 * transform.h, transform.cpp: lots of On*PropertyChanged api
28149 changes, and using new_value instead of GetValue.
28151 * uielement.h, uielement.cpp: remove the cached opacityMask
28152 field (it wasn't used except for attach/detach, which is handled
28153 for us.) The usual On*PropertyChanged changes as well as using
28154 new_value instead of GetValue.
28156 2008-03-04 Jeffrey Stedfast <fejj@novell.com>
28158 * xaml.cpp (style_simulations_map): There's only one
28159 StyleSimulation value, and that is None.
28161 * font.cpp (TextLayout::Layout): In Wrap mode, if we overflow the
28162 width and the text is not part of the first run on a line, break
28163 at the beginning of the Run. This seems to be what Silverlight
28164 does in OMTextInline.htm.
28166 2008-03-04 Larry Ewing <lewing@novell.com>
28168 * eventargs.cpp: update the dirty list before trying calculating
28169 relative locations.
28171 * runtime.cpp (Surface::HandleMouseEvent): process dirty elements
28172 here so that our hit testing has up to date bounds.
28175 * dirty.h: remove the prototypes for up/down since it isn't safe
28176 to split the up/down passes.
28178 * src/uielement.cpp: remove dirty processing.
28180 2008-03-04 Stephane Delcroix <sdelcroix@novell.com>
28182 * media.cpp: use a pixbuf_loader instead of the pixbuf_new_from_file to
28183 create the pixbuf from a file, allowing partial rendering of broken
28184 imagefiles, like in Image.htm
28186 2008-03-04 Jeffrey Stedfast <fejj@novell.com>
28188 * text.cpp (Inline::GetDefaultValue): Implemented.
28190 2008-03-04 Michael Dominic K. <mdk@mdk.am>
28192 * src/uielement.cpp: When calling uielement_transform_point, make sure our
28193 transforms are up-to-date (not dirty).
28195 Since we're updating the transform matrices only in the expose (dirty)
28196 callback it can happen that two ie. mouse events arrive before we get to
28197 the expose. If the first mouse event invalidated the transform and the
28198 second one relies on the transform (ie. tries to obtain relative mouse
28199 position) it'd get bogus values since the transform has not been
28202 Fixes the drag & drop behaviour in SL ink journal (the selection tool).
28205 2008-03-04 Michael Dominic K. <mdk@mdk.am>
28208 * src/dirty.h: Splitting the process_dirty_elements () into two individual
28209 chunks -- process_down_dirty_elements () and process_up_dirty_elements ().
28210 process_dirty_elements () now calls both.
28212 The point here is that we need to process down dirty elements (call
28213 process_down_dirty_elements ()) from other contextes as well.
28215 2008-03-03 Larry Ewing <lewing@novell.com>
28217 * uielement.cpp: Call FullInvalidate when clip changes so that
28218 our subtree bounds are updated and invalidated. Make sure we
28219 don't reset the forced invalidate flag.
28221 * dirty.cpp: invalidate subtree bounds on forced invalidations.
28222 Fixes test-clip-invalid-update.htm.
28224 2008-03-03 Jeffrey Stedfast <fejj@novell.com>
28226 * text.cpp (TextBlock::GetText): New method to generate a string
28227 representing the Text property from the inlines.
28228 (TextBlock::SetText): New method (split out from the old
28229 ::SetValue code) to parse the newly set text string into a list of
28230 Inlines and update out InlinesProperty if changed. Returns whether
28231 or not the inlines property changed.
28232 (TextBlock::OnPropertyChanged): Call SetText() to update out
28233 Inlines if the TextProperty value was changed by an outside
28234 source. If the InlinesProperty was changed by an outside source,
28235 update our TextProperty.
28236 (TextBlock::OnCollectionChanged): Update our TextProperty if an
28237 Inline was added or removed or if a Run element had its
28238 TextProperty changed.
28240 2008-03-03 Chris Toshok <toshok@ximian.com>
28242 * animation.cpp: plug a memory leak in the 3
28243 UsingKeyFrames::GetCurrentValue methods.
28245 2008-03-03 Chris Toshok <toshok@ximian.com>
28247 * transform.h, transform.cpp: Make Matrix::GetUnderlyingMatrix
28248 return a cairo_matrix_t instead of a pointer to the
28249 internal (mutable) field, and update its only use.
28251 2008-03-03 Jeffrey Stedfast <fejj@novell.com>
28253 * media.cpp (media_element_get_audio_stream_index): Fixed to
28254 handle nullable value.
28255 (media_element_set_audio_stream_index): Same.
28256 (media_init): Register the AudioStreamIndex property as being
28258 (MediaElement::Reinitialize): Set the CurrentStateProperty to
28261 2008-03-03 Jeffrey Stedfast <fejj@novell.com>
28263 * media.cpp (media_init): Register AudioStreamCount,
28264 BufferingProgress, CanPause, CanSeek, CurrentState,
28265 NaturalDuration, NaturalVideoWidth, NaturalVideoHeight properties
28266 as being read-only.
28268 * text.cpp (text_init): Register ActualWidth and ActualHeight
28269 properties as ReadOnly.
28271 * transform.cpp (Matrix::GetValue): Removed.
28272 (Matrix::SetValue): Removed.
28273 (Matrix::OnPropertyChanged): Implemented.
28275 2008-03-01 Larry Ewing <lewing@novell.com>
28277 * shape.cpp (Shape::DoDraw): refactor slightly.
28279 * geometry.cpp: fix extents calculation when there is only a fill
28280 on the shape. Fixes test-path-stretch-fill-extents.xaml.
28282 * shape.cpp (Shape::ComputeShapeBounds): make sure shapes with
28283 negative widths or heights have no bounds.
28284 (Shape::DoDraw): Silence warning.
28286 2008-02-29 Larry Ewing <lewing@novell.com>
28288 * shape.cpp (Shape::ComputeShapeBounds): tweak shape bounds to
28289 match StretchAndShapes.xaml.
28291 * collection.cpp (VisualCollection::Remove): don't fire
28292 VisualRemoved unless we are going to actually remove the item.
28293 Fixes OM_RemoveClearRemoveAt.htm.
28295 2008-02-29 Jeffrey Stedfast <fejj@novell.com>
28297 * collection.cpp (VisualCollection::ResortByZIndex): Reinitialize
28298 the z_sorted array before sorting so that we can be sure the end
28299 result will be a stable sort.
28300 (VisualCollection::Insert): Don't use g_ptr_array_insert_sorted()
28301 because we need to take index into account. Instead, grow our
28302 array and call ResortByZIndex().
28304 2008-02-29 Jeffrey Stedfast <fejj@novell.com>
28306 * text.cpp (TextBlock::GetValue): Revert memleak fix, it created
28307 an even more fun memory corruption bug.
28309 2008-02-29 Larry Ewing <lewing@novell.com>
28312 src/frameworkelement.cpp:
28319 src/uielement.cpp: Fix Rect::Transform, replace all occurances of
28320 bounding_rect_for_transformed_rect with Rect::Transform.
28322 2008-02-29 Larry Ewing <lewing@novell.com>
28324 * geometry.cpp: apply transform to all bounds calculations. Fixes
28325 test-geometry-bounds.xaml.
28327 2008-02-29 Larry Ewing <lewing@novell.com>
28329 * geometry.cpp: Make sure geometry groups draw their children
28330 rather than just copying the paths so that local transforms are
28333 2008-02-29 Jeffrey Stedfast <fejj@novell.com>
28335 * text.cpp (TextBlock::GetValue): Fixed memory leak.
28337 * media.cpp (MediaElement::GetValue): Fixed compile warning.
28339 * text.cpp (Inline::OnPropertyChanged): Use GetValueNoDefault()
28340 rather than calling inline_get_*() which use GetValue().
28342 * font.cpp (TextFont::TextFont): Don't let the underline thickness
28345 * dependencyobject.cpp (DependencyObject::GetValueNoDefault):
28347 (DependencyObject::GetValue): Simplified.
28348 (DependencyObject::GetDefaultValue): New method to get the default
28349 value for a property (now used by GetValue()).
28351 2008-02-29 Larry Ewing <lewing@novell.com>
28353 * geometry.cpp (PathGeometry::ComputeBounds): take the geometry
28354 transform into account when computing bounds. Fixes
28355 CGeometry_AddToRenderList.xaml
28357 2008-02-29 Larry Ewing <lewing@novell.com>
28360 * shape.cpp: export calc_line_bounds.
28362 * geometry.cpp: use calc_line_bounds from shape.h. Fixes bounds
28363 problems on Animation_TargetingAndHandoff.xaml.
28365 2008-02-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
28367 * pipeline.cpp: Add a missing const modifier.
28369 2008-02-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
28371 * mplayer.cpp: Use the first streams found in the media, not the last.
28373 2008-02-28 Stephane Delcroix <sdelcroix@novell.com>
28375 * stylus.cpp: if there's an outline, draw a line of at least 2px.
28377 2008-02-28 Stephane Delcroix <sdelcroix@novell.com>
28379 * brush.cpp: No longer ignore out-of-bounds offest in
28380 SetupGradient. Add the bounds stop with linearinterpolation
28381 between the nearest stop and the outofbounds one. Handle the
28382 degenerated case with only outofbounds stops.
28384 2008-02-28 Michael Dominic K. <mdk@mdk.am>
28386 * shape.cpp: Commenting a left-over debug g_warning.
28388 Additionally adding a protection against NULL in cache-size reporting (as
28389 experienced by rolf). However, if GetSurface () returns NULL in the Render
28390 callback... I guess we're screwed anyways.
28392 2008-02-28 Michael Dominic K. <mdk@mdk.am>
28395 * xaml.h: Adding convert_property_value_to_enum_str function to
28396 check/convert if the value for the given property can be represented by an
28399 It would be nicer to mover all the enums tables/resolving to a separate
28400 place in future instead of gluing it to xaml.cpp.
28402 2008-02-28 Stephane Delcroix <sdelcroix@novell.com>
28404 * shape.h|cpp: override GetSizeForBrush for Rectangle to honor the
28407 2008-02-27 Jeffrey Stedfast <fejj@novell.com>
28409 * text.cpp (Glyphs::Render): Use horiBearingX for the first char
28410 in the Glyphs string just like we do for TextBlock rendering.
28412 2008-02-27 Jeffrey Stedfast <fejj@novell.com>
28414 Fixes the last remaining issue in the TextRegressions.htm test.
28416 * xaml.cpp (flush_char_data): Only preserve LWSP in CDATA between
28417 non-autogenerated <Run>'s.
28419 * text.cpp (TextBlock::SetValue): Mark the Inlines auto-generated
28420 from the TextBlock's Text property as being auto-generated.
28422 2008-02-27 Larry Ewing <lewing@novell.com>
28424 * shape.cpp: change the shape surface cache to cache in device
28425 coordinates and rework the candidate restrictions to reject
28426 huge shapes and allow scaled caches.
28428 2008-02-27 Larry Ewing <lewing@novell.com>
28430 * shape.cpp: center the filled image within the new bounds.
28432 2008-02-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
28434 * media.h, media.cpp: When a media is opened, seek to the current
28437 * value.cpp: ToString: Return 'NULL' if we're null.
28439 2008-02-27 Michael Dominic K. <mdk@mdk.am>
28441 * src/animation.cpp: When storyboard is completed, Teardown the clocks
28442 only if we're realling stopping (not holding). Fixes the
28443 StoryBoard_ModifyProperty test.
28445 2008-02-27 Michael Dominic K. <mdk@mdk.am>
28447 * clock.cpp: Make sure we actually hit the our_delta < 0 code
28448 path. Fixes the AutoReversed/Repeated animations.
28450 2008-02-27 Michael Dominic K. <mdk@mdk.am>
28452 * shape.cpp: More cases to invalidate (free mem) of the surface cache.
28454 2008-02-26 Jeffrey Stedfast <fejj@novell.com>
28456 * font.cpp (TextFont::TextFont): Precalculate underline position
28457 and thickness. Also, we need to adjust the position based on 1/2
28458 the underline thickness.
28459 (TextLayout::Layout): Only adjust by the horiBearingX if < 0.
28460 (TextLayout::RenderLine): Same.
28462 2008-02-26 Chris Toshok <toshok@ximian.com>
28464 * runtime.cpp (runtime_cairo_create): take the visual too, so the
28465 plugin can send ours in - we can't rely on the pixmap having a
28466 visual associated with it, because it's initialized with the
28467 _foreign api which doesn't fill in the colormap. yay.
28468 (Surface::Surface): if we're windowless don't create the widget.
28469 also, init render/render_data and invalidate/invalidate_data to
28471 (Surface::ConnectEvents): exit early if we're windowless.
28472 (Surface::Invalidate): call through the invalidate function if
28473 there is one. otherwise, default behavior (if we have a widget).
28474 (Surface::Paint): exit early if no toplevel.
28475 (Surface::render_cb): call through the render function if there is
28477 (Surface::expose_to_drawable): this is most of the guts of
28478 expose_callback, changed to handle the case where we're already
28479 drawing to the backbuffer (in the windowless case) and therefore
28480 don't need the temporary pixmap. Also, commented out some code
28481 that clears the contents - do we actually need this? The comment
28482 for it is enormous...
28483 (Surface::expose_event_callback): just call expose_to_drawable
28484 with the widget's window.
28486 * runtime.h (class Surface): we need to make the gtk callbacks
28487 public since the plugin will be invoking them directly. Also,
28488 switch the event methods to returning bools, and add a new method
28489 called expose_to_drawable, so the plugin can direct rendering to a
28490 pixmap in the windowless case.
28492 * uielement.h, uielement.cpp: change all the Emit* methods to
28495 * dependencyobject.h, dependency.cpp: make EventObject::Emit
28496 return true if there were handlers for the event, and false
28499 2008-02-26 Jeffrey Stedfast <fejj@novell.com>
28501 * text.cpp (TextBlock::TextBlock): Removed the useless
28502 text_block_set_text() call. This was just a broken hack meant to
28503 do what MDK's previous commit fixed the right way.
28505 * font.cpp (TextFont::UnderlinePosition): Fixed to take font
28506 y_scale metrics into consideration.
28507 (TextFont::UnderlineThickness): Same.
28509 2008-02-26 Michael Dominic K. <mdk@mdk.am>
28511 * src/text.cpp: TextBlock when constructed by default has an empty
28512 Inlines collection instead of NULL. Along with all the previous
28513 commits fixes the OM_CreateAddInsert.htm test.
28515 2008-02-26 Michael Dominic K. <mdk@mdk.am>
28517 * src/collection.cpp: Don't allow collection insert at negative
28520 2008-02-26 Michael Dominic K. <mdk@mdk.am>
28522 * src/collection.cpp: Don't add the object to the collection if it
28523 already contains the object (return -1 instead).
28525 2008-02-26 Michael Dominic K. <mdk@mdk.am>
28527 * src/animation.cpp:
28529 * src/collection.cpp:
28530 * src/collection.h: The "Add" method of collections returns int (index of
28531 the element added), not bool. As explained in:
28533 http://msdn2.microsoft.com/en-us/library/system.windows.media.visualcollection.add.aspx
28535 2008-02-25 Jeffrey Stedfast <fejj@novell.com>
28537 * font.cpp (TextFont::OpenZipArchiveFont): Since we aren't going
28538 through FontConfig, we need to parse the font's family name to
28539 extract styleistic info so we can do proper font name matching and
28540 style matching (e.g. "Myriad Pro Cond Black Italic" should match
28541 "Myriad Pro, Condensed Black Italic").
28543 2008-02-25 Chris Toshok <toshok@ximian.com>
28545 * runtime.h, runtime.cpp: s/drawing_area/widget and
28546 s/DrawingArea/Widget
28550 2008-02-25 Michael Dominic K. <mdk@mdk.am>
28552 * src/uielement.h: Adding a virtual CacheInvalidateHint () function that
28553 can be called on the element to give it a hint that it should free it's
28554 cache for the time being.
28556 * src/collection.cpp:
28558 * src/panel.h: Forward CacheInvalidateHint to all children.
28561 * src/shape.h: Destroy the surface and path cache when hinted.
28563 In total improves our memory usage with surface/path caching, ie. in the
28566 2008-02-22 Michael Dominic K. <mdk@mdk.am>
28571 * src/shape.h: Adding functionality to report the cache size usage. By
28572 default it's turned off. MOONLIGHT_OVERRIDES="cache=show" to turn it on.
28574 2008-02-22 Michael Dominic K. <mdk@mdk.am>
28576 * src/shape.cpp: RoundOut to pixels the extents of the shapes. Causes us
28577 to expose a few more pixels but helps with surface caching.
28579 2008-02-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
28581 * downloader.cpp: downloader_get_response_file: remove any directory
28582 components from the part name, otherwise the creation of the tmp file
28583 fails. If we're aborted, don't call any callbacks.
28584 * media.cpp: If we have a downloader and SetSource is called with a new
28585 downloader, abort the previous download, not only unref it, otherwise
28586 our callbacks and events may still get called from the old downloader.
28588 2008-02-21 Jeffrey Stedfast <fejj@novell.com>
28590 * font.cpp (TextFont::TextFont): Simplified the fallback code.
28592 2008-02-21 Jeffrey Stedfast <fejj@novell.com>
28596 * text.cpp (Glyphs::SetIndices): Fixed to properly parse glyph
28598 (Glyphs::Layout): Properly handle glyph clusters.
28599 (Glyphs::Render): Same.
28601 2008-02-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
28603 * media.cpp: When aborting a downloader, null out the write
28606 2008-02-21 Michael Dominic K. <mdk@mdk.am>
28608 * src/clock.cpp: Emit the Completed event when Filling as
28609 well. Together with prev commit fixes: #359024 and #324935.
28611 2008-02-21 Michael Dominic K. <mdk@mdk.am>
28613 * src/animation.cpp:
28614 * src/animation.h: Detach the AnimationStorage update handler from the
28615 clock when the clock is stopped -- prevents us from overriding the (just
28616 reset) base value with another update.
28618 2008-02-21 Michael Dominic K. <mdk@mdk.am>
28620 * src/value.cpp: Implementing ToString () for DOUBLE.
28622 2008-02-21 Michael Dominic K. <mdk@mdk.am>
28624 * src/color.cpp: A slightly more relaxed/tolerant way of parsing
28625 the colors... it's the web and it's broken by default. Fixes:
28626 #362287 (the US candidates website).
28628 2008-02-21 Stephane Delcroix <sdelcroix@novell.com>
28630 * text.h|cpp: compute GetOriginPoint and fix GetSizeForBrush
28632 2008-02-20 Jeffrey Stedfast <fejj@novell.com>
28634 Fixes the TextBlockFontDownloads.htm test.
28636 * font.cpp (TextFontDescription::Set*): If the new value is not
28637 the same as the old, invalidate the loaded TextFont.
28638 (TextFont::TextFont): Always compare family names unless we're
28639 requesting the "Sans" (e.g. last) fallback font.
28640 (TextFont::TextFont): If the requested family name does not match
28641 the specified font file, fall back to a system font of the same
28642 name (we were doing this for zip archievs before, but not for
28643 specified ttf font files).
28645 * text.cpp (TextBlock::SetFontSource): If the downloader is null,
28646 set the font filename to null and invalidate the textblock.
28648 2008-02-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
28650 * media.cpp: Add a printf to inform when we're trying to load an
28651 mms stream. Helps a lot when trying to identify sites depending
28652 on mms/streaming support.
28654 * runtime.cpp: Unref debug_selected_element upon
28655 destruction. Fixes a leak.
28657 2008-02-20 Michael Dominic K. <mdk@mdk.am>
28659 * src/shape.cpp: Fixing the shape caching to work also with
28660 Path/Geometry. Fixes: #362021.
28662 2008-02-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
28664 * media.cpp: MediaElement/Image: Remove event handlers when we abort the
28665 downloader, otherwise the handlers might be called after we're
28668 2008-02-19 Jeffrey Stedfast <fejj@novell.com>
28670 * uri.cpp (Uri::ToString): Now takes a 'flags' argument to let us
28671 know which, if any, parts of the URI to hide.
28672 (Uri::Parse): If we don't have a protocol, don't simply assume
28673 that the entire string is the filename. We might have a fragment
28674 attached, for example.
28676 * text.cpp (Glyphs::OnPropertyChanged): Decode the URI here and
28677 get the font index (if a fragment is set). Also, use the parsed
28678 Uri's ::ToString() method to hide the fragment so that requesting
28679 the file actually works.
28680 (Glyphs::DownloaderComplete): Don't need to parse the URI here
28681 anymore, we've already got the index from OnPropertyChanged().
28683 2008-02-19 Jackson Harper <jackson@ximian.com>
28685 * xaml.cpp: Parser error if we can't find the owner type or
28686 property name when setting properties.
28688 2008-02-19 Sebastien Pouliot <sebastien@ximian.com>
28690 * geometry.cpp|h: #if out GetOriginPoint which calls moon_get_origin
28692 2008-02-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
28694 * pipeline-ffmpeg.cpp: Comment out error message which just shows ffmpeg's
28696 * media.cpp: Remove printf.
28698 2008-02-19 Sebastien Pouliot <sebastien@ximian.com>
28700 * moon-path.c: #if out moon_get_origin since it's not used
28701 anymore. Change cairo_path_display output to be easier to read
28702 with negative numbers.
28704 2008-02-18 Michael Dominic K. <mdk@mdk.am>
28707 * src/media.h: Load images slightly faster by skipping one pixbuf blit and
28708 doing the expansion + conversion in one step.
28710 Also fixing an ugly memory leak where all RGBA images loaded were leaked
28711 (two times in memory).
28713 2008-02-15 Michael Dominic K. <mdk@mdk.am>
28715 * src/clock.cpp: Before processing dirty enter/leave gdk threads. We're
28716 being called from a timeout (unprotected) and we're potentially calling
28717 gdk_ invalidation functions. I think it only matters (in this case)
28718 on non-X backends though.
28720 2008-02-15 Michael Dominic K. <mdk@mdk.am>
28722 * src/uielement.cpp: Moving the debug timers for rendering slightly and
28723 uncommenting them so that they work when TIMERS is enabled.
28725 2008-02-15 Michael Dominic K. <mdk@mdk.am>
28728 * src/runtime.h: Adding an extra DEBUG_MARKER_KEY define (disabled by
28729 default) that changes your 'd' key into a special debug key. When pressed,
28730 a message is printed to the console (region start). When pressed again,
28731 another message is printed (region end). This is usefull to see what
28732 happens in a particular part of the program timeline (ie. after click).
28734 Makes sense obviously only with timers debugging on and stuff.
28736 2008-02-14 Michael Dominic K. <mdk@mdk.am>
28738 * src/clock.cpp: Changing max/default FPS to 50. Empirical experience
28739 shows that SL runs by default at something around that. Also, with the
28740 recent fixes some sites are suffering from 24 (can run/look much better
28743 2008-02-14 Michael Dominic K. <mdk@mdk.am>
28746 * src/shape.h: Adding surface caching for shapes. The strategy
28747 is to cache big surfaces that have little transformations (such as
28748 ie. backgrounds, fade overlays, etc.). Improves performance greatly
28749 for many sites (ie. Showcase).
28751 2008-02-14 Michael Dominic K. <mdk@mdk.am>
28753 * src/uielement.cpp: Commenting out the timer in post-pre render as it's
28754 broken and blocks the compilation with timers on.
28756 2008-02-12 Michael Dominic K. <mdk@mdk.am>
28758 * src/animation.cpp:
28759 * src/animation.h: Massive fix for our KeySpline animation calculation
28760 routines (which were broken and giving wrong values). According to:
28762 http://msdn2.microsoft.com/en-us/library/ms533119(VS.85).aspx
28764 "...think of the horizontal axis as the pace with which the interpolation
28765 proceeds along the timing interval. The vertical axis is the resulting
28766 value for the animation's progress, yielded by the function that underlies
28767 the keySplines property. Another way of describing this is that the
28768 horizontal axis is the input unit time for the interval, and the vertical
28769 axis is the output unit time."
28771 Therfore, we need to perform an "Y for X" bezier lookup. The current fix is
28772 a little bit ugly -- we waste 256 bytes per KeySpline to store
28773 pre-calculated values in a lookup table. But maybe it's not soo bad, since
28774 balf function (from prev implementation) was coming up top in the
28777 The only other way I can (currently) think of would be to solve a cubic
28778 equation each time we poll the KeySpline for a value. That would be,
28779 however, a *massive* performance hit.
28781 Hence the lookup solution for now (note: the generation of the table is
28782 very fast, no cubics involved).
28784 2008-02-11 Michael Dominic K. <mdk@mdk.am>
28786 * src/runtime.h: Fixing our debug-timing routine. It reported 10x as much
28787 as it should... yes, our redraws are slow, but not *that* slow ;)
28789 2008-02-09 Michael Dominic K. <mdk@mdk.am>
28791 * src/mplayer.cpp: If we have no audio devices present in the system,
28792 launch a special audio loop variant to still read/fetch audio (and discard
28793 it) so that the video playback is not blocked. Fixes: #341835.
28795 2008-02-08 Jeffrey Stedfast <fejj@novell.com>
28797 * font.cpp (TextFont::TextFont): If the loaded font's family_name
28798 doesn't match the requested family name, fall back to the default
28799 font (it means the requested font doesn't exist on the system).
28800 (TextLayout::Layout): Added a 'first_char' state variable that can
28801 be used to figure out if if the current char is the first char on
28802 a line. This is needed for the wrapping logic.
28804 2008-02-08 Jeffrey Stedfast <fejj@novell.com>
28806 Fixes some text layout bugs in TextBlockFontFamilies.xaml
28808 * xaml.cpp (flush_char_data): Now takes a string 'next_element'
28809 argument rather than a bool 'start' argument so that we can make
28810 sure that the previous and next element types are <Run>'s because
28811 lwsp between a <LineBreak/> and a <Run> or a </Run> and a
28812 <LineBreak/> should be ignored. Also, never g_strchomp() this
28814 (start_element_handler): Pass the name of the next element to
28816 (end_element_handler): Pass NULL to flush_char_data() as the
28817 next_element argument.
28819 2008-02-08 Chris Toshok <toshok@ximian.com>
28821 * media.cpp (MediaElement::Render): reorder things so that we're
28822 calculating the brush pattern matrix with the snapped pixels.
28824 2008-02-08 Stephane Delcroix <sdelcroix@novell.com>
28826 * brush.cpp: fix Image|Video|VisualBrushes for Shapes.
28828 2008-02-07 Chris Toshok <toshok@ximian.com>
28830 * media.cpp (MediaElement::Render): snap to the pixel grid if
28831 we're not rotated/skewed.
28833 2008-02-07 Sebastien Pouliot <sebastien@ximian.com>
28835 * shape.cpp: Add comment about (missing) Path::ComputeLargestRectangle
28837 2008-02-07 Larry Ewing <lewing@novell.com>
28839 * brush.cpp (GradientBrush::SetupGradient): treat stops > 1.0 the
28840 same as out of bounds stops.
28842 * shape.cpp: cache the results of CompouteShapeBounds in
28843 extents rect, use that value in GetSizeForBrush.
28845 2008-02-07 Jeffrey Stedfast <fejj@novell.com>
28847 Fixes a rendering glitch for xaml similar to:
28850 <Run FontStyle="Italic">This </Run>is Dodger Blue
28853 * xaml.cpp (flush_char_data): Don't g_strchomp() the cdata when
28854 setting the value of a content_property (e.g. a Run).
28856 2008-02-07 Michael Dominic K. <mdk@mdk.am>
28858 * src/color.cpp: Added support to parse scRGB-style color specificators
28859 (sc#), see #345931. The scRGB -> sRGB conversion is a bit simplified but
28860 should produce accurate-enough colors for most uses.
28862 http://silverlight.net/quickstarts/silverlight10/controls.aspx now works.
28864 2008-02-07 Sebastien Pouliot <sebastien@ximian.com>
28866 * shape.cpp|h: Split ComputeBounds to avoid calling functions
28867 bounding_rect_for_transformed_rect and IntersectBoundsWithClipPath
28868 inside each shape. This will enable us to reuse the non-transformed
28869 value elsewhere too. This also fix (for me) the origin point that
28870 caused problems for some brushes. Started implementing methods
28871 ComputeLargestRectangle[Bounds] to optimize drawing.
28873 2008-02-06 Chris Toshok <toshok@ximian.com>
28875 * frameworkelement.cpp (FrameworkElement::GetSizeForBrush): we
28876 want the untransformed size of the element. otherwise we end up
28877 with a pattern matrix that scales things too large given that
28878 we're also scaling the element. Fixes fullscreen mode in halo3
28879 and /fox video players (bug #335845).
28881 2008-02-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
28883 * mplayer.cpp: AdvanceFrame: Create a target_pts range, if we're within the
28884 range, draw the current frame. If we're ahead of the range, do nothing
28885 (fixes some video/audio sync problems), and if we're behind drop frames.
28886 The range makes sure that we paint every frame even when the audio loop
28887 doesn't update the target pts as often as we're drawing video.
28889 2008-02-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
28891 * panel.cpp, runtime.cpp: Fix warnings.
28893 2008-02-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
28895 * mplayer.cpp: Simplify our advance frame loop: don't lock the queue during
28896 the entire loop, only when fetching packets. This allows packets to
28897 arrive from the pipeline while in the loop (especially noticable when
28898 decoding the video inside the loop).
28900 2008-02-06 Chris Toshok <toshok@ximian.com>
28902 * uielement.cpp (UIElement::FrontToBack): use the media state
28903 accessors, and don't exclude Buffering state - we could be
28904 buffering with a frame rendered.
28906 2008-02-06 Sebastien Pouliot <sebastien@ximian.com>
28908 * shape.cpp|h: Keep track if a rectangle has radii or not.
28909 * uielement.h: Add a flag for radii
28911 2008-02-06 Chris Toshok <toshok@ximian.com>
28913 * uielement.cpp (UIElement::FrontToBack): make sure
28914 media_element_get_current_state != NULL before we strcmp it.
28916 2008-02-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
28918 * src.mdp: Updated.
28920 2008-02-06 Stephane Delcroix <sdelcroix@novell.com>
28922 * brush.cpp: fix the radialgradientbrush setup.
28924 2008-02-05 Chris Toshok <toshok@ximian.com>
28926 * collection.cpp (Collection::EmitChanged): new method. Emit the
28927 Changed event and then call closure->OnCollectionChanged. Also
28928 replace all references to closure->OnCollectionChanged to
28931 * collection.h (class Collection): add ChangeEventArgs struct, and
28932 an EmitChanged method declaration.
28934 * type.h.in, type.cpp.in (Type::~Type): no need to free all the
28936 (Type::HideEvent): remove the event name from the hash so it's
28937 inaccessible from javascript.
28938 (Type::RegisterEvent): use g_hash_table_new_full so we can specify
28939 a destroy function for keys instead of doing the _foreach in the
28941 (types_init_manually): add the #if 0 here instead of type.cpp.
28943 (types_init_register_events): register a Changed event for
28946 2008-02-05 Jeffrey Stedfast <fejj@novell.com>
28948 * downloader.cpp (Downloader::ll_downloader_get_response_file):
28949 Simplified by using the new ExtractFile utility function from
28952 * font.cpp: Moved ExtractFile() and make_tmpdir() into utils.cpp
28954 * utils.cpp: New collection of utility functions.
28956 2008-02-05 Jeffrey Stedfast <fejj@novell.com>
28958 * font.cpp: If a font is requested from a zip archive, extract the
28959 contents and try to figure out which font is the closest match to
28960 the one requested. Fixes bug #356044.
28962 2008-02-05 Chris Toshok <toshok@ximian.com>
28964 * uielement.cpp (UIElement::FrontToBack): enable the rectangle
28965 code, and make sure to round in the bounds we're subtracting.
28966 this was causing the flashing white border on silverlight.net/fox.
28968 2008-02-05 Sebastien Pouliot <sebastien@ximian.com>
28970 * shape.cpp: Use existing MIN macro. Use local variables when
28973 2008-02-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
28975 * fullscreen.cs, fullscreen.sh: Tool to generate fullscreen.h
28977 2008-02-05 Chris Toshok <toshok@ximian.com>
28979 * runtime.h, runtime.cpp: add support for a "selected" element
28980 when in debug mode. Also, make use of the Region methods instead
28981 of using region->gdkregion, which is private now.
28983 2008-02-05 Chris Toshok <toshok@ximian.com>
28985 * region.h, region.cpp (class Region): add Offset().
28987 2008-02-05 Sebastien Pouliot <sebastien@ximian.com>
28989 * geometry.cpp|h: PathGeometry does a Build (not a Draw) to
28990 populate it's moon_path (like others) so the data can always be
28992 * moon-path.c|h: Add moon_get_origin to get the minimal X and Y
28993 from a moon_path (Stephane) and moon_merge to merge a subpath into
28996 2008-02-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
28998 * pipeline-ffmpeg.cpp: Remove another printf.
29000 2008-02-02 Jeffrey Stedfast <fejj@novell.com>
29002 * pipeline.cpp (FileSource::Peek): Only memmove() if we have data
29004 (FileSource::Peek): Slightly better fix.
29006 2008-02-01 Jeffrey Stedfast <fejj@novell.com>
29008 * pipeline.cpp (Mp3Demuxer::GetPositionOfPts): Reimplemented to
29009 estimate the stream position if not known rather than reading data
29010 to find out as we don't have to return an exact stream position.
29012 2008-02-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
29014 * pipeline.h: Update comment.
29016 2008-02-01 Stephane Delcroix <sdelcroix@novell.com>
29020 * shape.cpp: rename GetOringin into GetOriginPoint
29022 * brush.cpp: implement a bad origin computation (based on bounds)
29025 2008-02-01 Jeffrey Stedfast <fejj@novell.com>
29027 * pipeline.cpp (Mp3Demuxer::GetPositionOfPts): Implemented.
29028 (FileSource::Peek): As before, only read as much as we need - but
29029 don't clobber what we had prebuffered, only clobber as much as w
29030 need to in order to make room for the new data - this way we make
29031 it more efficient to seek backward later (if need be).
29033 2008-02-01 Stephane Delcroix <sdelcroix@novell.com>
29036 * shape.cpp: define GettOrigin at the Shape level, compute GetOrigin
29037 from the path data instead of from bounds.
29039 * brush.cpp: translate the brushes with a translation matrix.
29041 2008-02-01 Larry Ewing <lewing@novell.com>
29043 * brush.cpp: Make sure we use the brush opacity when computing the
29046 2008-02-01 Jeffrey Stedfast <fejj@novell.com>
29048 * pipeline.cpp (FindMpegHeader): Now checks for Xing and
29049 Fraunhofer VBRI headers.
29051 2008-01-31 Chris Toshok <toshok@ximian.com>
29053 * uielement.h: include region.h
29055 * point.h: don't assume the right headers have been included
29056 before this file - include glib.h to make sure
29057 G_BEGIN_DECLS/G_END_DECLS is there.
29059 * region.h, region.cpp: split out the region code from
29062 * rect.h, rect.cpp: remove region code.
29064 * Makefile.am: add region.h/region.cpp
29066 2008-01-31 Chris Toshok <toshok@ximian.com>
29068 * runtime.h, runtime.cpp: remove runtime_cairo_region (we can just
29069 use Region::Draw instead).
29071 * panel.cpp: remove references to runtime_cairo_region, and switch
29072 to the new Region* copy ctor. also, use Region::IsEmpty instead
29073 of gdk_region_empty.
29075 * uielement.cpp: more region cleanup, removing references to
29076 GdkRegion in favor of our Region class. Also, commit (ifdef'ed
29077 out until the rendering glitch is fixed) the rectangle back to
29078 front special case code.
29080 2008-01-31 Chris Toshok <toshok@ximian.com>
29082 * rect.cpp (Region::Region): new overload which takes a Region*,
29083 so we don't have to access ->gdkregion everywhere when we copy a
29086 * rect.h (struct Rect): add a GrowBy method that takes both x and
29087 y deltas, and have the 1 parameter version call it.
29088 (class Region): add a copy ctor that takes a Region*.
29090 2008-01-31 Chris Toshok <toshok@ximian.com>
29092 * panel.h, panel.cpp: rename use_back_to_front to UseBackToFront
29093 and add it to the class, protected so subclasses can get at it.
29095 * stylus.cpp (InkPresenter::PostRender): given the ordering
29096 required, we have to c&p some of Panel::PostRender here to render
29097 the children. Chaining up to Canvas::PostRender at the start of
29098 the method would have caused the translucency/opacity mask code in
29099 UIElement::PostRender to be executed *before* we rendered our
29102 2008-01-31 Chris Toshok <toshok@ximian.com>
29104 * stylus.h, stylus.cpp (InkPresenter::PostRender): rename
29105 RenderChildren to this, and chain up to Canvas::PostRender here,
29106 which will do the RenderChildren call if it needs to.
29108 2008-01-31 Chris Toshok <toshok@ximian.com>
29110 * panel.cpp (Panel::FrontToBack): simplify this a bunch with
29113 * brush.h (class Brush): remove GetTotalOpacity() which wasn't
29114 being used anywhere, and add IsOpaque() so that we can use it from
29115 the new front-to-back stuff (instead of duplicating code in Panel
29116 and Shape handling parts).
29118 2008-01-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
29120 * media.cpp: Update.
29122 2008-01-31 Chris Toshok <toshok@ximian.com>
29124 * media.cpp (MediaElement::MediaElement): fix build.
29125 (Image::Image): fix initialization order to quiet g++.
29127 2008-01-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
29129 * mplayer.cpp, mplayer.h: Render: removed, not used. LoadVideoFrame:
29130 implemented again. Added an ugly caught_up_with_seek value, used to
29131 determine if video is late due to a seek, in which case it shouldn't
29132 show any frames (fixes #356053).
29133 * pipeline.cpp, pipeline.h: Added IMediaDecoder::CleanState and
29135 * pipeline-ffmpeg.cpp: Implemented FfmpegDecoder::CleanState and
29136 HasDelayedFrame. Use a mutex to serialize access to avcodec_open.
29137 * pipeline-ffmpeg.h: Implemented FfmpegDecoder::CleanState and
29140 2008-01-31 Jeffrey Stedfast <fejj@novell.com>
29142 * pipeline.cpp (mpeg_parse_samplerate): Doh, need to bitshift the
29144 (FindMpegHeader): Now takes an MpegFrameHeader argument, no sense
29145 having our caller re-parse the header.
29146 (Mp3Demuxer::ReadHeader): Updated.
29148 2008-01-31 Stephane Delcroix <sdelcroix@novell.com>
29150 * brush.cpp: apply the correct offset to RadialGradientBrushes too.
29152 2008-01-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
29154 * clock.h: Added macros to convert between pts, milliseconds and timespans.
29155 * media.cpp, media.h: MediaElement: Updated to normalized pts (starting at
29156 0). Use the new macros when converting between time formats. Remove the
29157 AdvanceFrame timeout upon reinitialization. Implement a better buffering
29158 algorithm (and honor the BufferingTime property).
29159 * mplayer.cpp, mplayer.h: Remove initial_pts, everything coming from the
29160 pipeline is now normalized to start at 0. Use the new macros when
29161 converting between time formats.
29162 * pipeline.cpp, pipeline.h: Normalize all pts to start at 0, and remove
29163 start_time/initial_pts handling. Added Demuxer::GetPositionOfPts to
29164 estimate the position of a pts. ProgressiveSource::CancelWait: only
29165 cancel if we're waiting, and then wait until actually cancelled.
29167 2008-01-31 Stephane Delcroix <sdelcroix@novell.com>
29170 * shape.h: GetOrigin for Polyline and Polygon
29172 2008-01-31 Stephane Delcroix <sdelcroix@novell.com>
29174 * uielement.h: add a GetOrigin ()
29177 * shape.h: implement GetOrigin for Path
29179 * brush.cpp: use GetOrigin as offset, fix the Crystal test.
29181 2008-01-30 Chris Toshok <toshok@ximian.com>
29183 * mplayer.h (class MediaPlayer): add rendered_frame.
29185 * mplayer.cpp (MediaPlayer::MediaPlayer): init rendered_frame to
29187 (MediaPlayer::Close): reset rendered_frame.
29188 (render_frame): set rendered_frame to true if we've successfully
29189 copied data into the video surface.
29191 * media.cpp (Image::CreateSurface): set CachedSurface::has_alpha
29192 to the pixbuf's has_alpha if USE_OPT_RGB24.
29194 * media.h (class Image): make the CachedSurface type and the
29195 instance field "surface" public, so the front to back stuff can
29196 get at it. Also, add "has_alpha" to it, since once the xlib
29197 surface has been created, we lose that information.
29199 * control.cpp (Control::FrontToBack): nothing to do but call
29200 FrontToBack on real_object.
29202 * control.h (class Control): add override for FrontToBack.
29204 * panel.cpp (Panel::FindStartingElement): get rid of this crap.
29205 it was broken and the wrong way to implement it.
29206 (Panel::Render): remove the RenderChildren call here, we do it in
29207 PostRender (and only if we're not rendering front to back)
29208 (Panel::PostRender): if we aren't rendering front to back, call
29210 (Panel::RenderChildren): remove references to FindStartingElement.
29211 (Panel::FrontToBack): this method is a little more complicated
29212 than UIElement::FrontToBack owing to the fact that we're
29213 flattening things to a list. We need to prepend a "cleanup node"
29214 first, before calling FrontToBack on our children, to do the
29215 Panel::PostRender stuff after our children have been rendered. We
29216 remove this cleanup node if none of the children have added
29217 themselves to the list, and our bounds (without the children)
29218 don't intersect the expose region. We apply the same logic to
29219 removing our rectangular bounds as the UIElement code does, but
29220 also have to take into account our background brush. We punt if
29221 any part of it is transparent, and only handle SolidColorBrush and
29222 GradientBrush subclasses.
29224 * panel.h (class Panel): override UIElement:: FrontToBack,
29225 PreRender, and PostRender.
29227 * uielement.cpp (UIElement::DoRender): factor out most of the guts
29228 of this method so it can be used in either front-to-back or
29229 back-to-front. Make sure to pass "false" as the front-to-back arg
29230 for PreRender and PostRender.
29231 (UIElement::FrontToBack): calculate the intersection of the expose
29232 region and our bounds. Add this region to the front of the render
29233 list, and then do some calculating to decide if we should remove
29234 it from consideration by elements lower than us in the display.
29235 Things like "are we opaque", "have we been rotated or skewed, such
29236 that our rectangular shape no longer fills the bounds entirely",
29237 stuff like that. We further limit subtracting in element type
29238 specific ways - right now just for MediaElement and Image with
29239 certain constraints (images can't have alpha, media elements must
29240 have a frame rendered, both types must fill their rectangle, etc).
29241 If everything passes, we remove our bounds from the expose region.
29242 (UIElement::PreRender): new method, do the things that DoRender
29243 used to do before calling Render.
29244 (UIElement::PostRender): new method, do the things that DoRender
29245 used to do after calling Render.
29247 * uielement.h: move the IS_TRANSLUCENT/IS_INVISIBLE #defines here
29248 so they can be used in panel.cpp. Also, add 3 new virtual
29249 methods (FrontToBack, PreRender, PostRender) as well as two
29250 callback methods to invoke the 2 latter ones.
29252 * runtime.cpp (overrides): add "render=ftb" and "render=btf"
29253 overrides (with btf the default) corresponding to
29254 RUNTIME_INIT_RENDER_FRONT_TO_BACK.
29255 (Surface::Paint): add support for front-to-back rendering. If
29256 it's enabled, make a FrontToBack pass on the fullscreen message
29257 and the toplevel element. This populates the render list with a
29258 back to front ordered list of elements to paint, along with the
29259 regions they need repainted. If the render list is empty for some
29260 reason (or if the user didn't select ftb rendering), we fall back
29261 to back to back-to-front rendering at the toplevel.
29262 (RenderNode::RenderNode): add ctor/dtor for RenderNode.
29264 * runtime.h: add the RenderNode class, used by the front to back
29267 * rect.h, rect.cpp: add IsEmpty() and two overloads of Subtract()
29270 2008-01-30 Jackson Harper <jackson@ximian.com>
29272 * xaml.cpp: Strip leading whitespace from xaml files.
29274 2008-01-30 Jackson Harper <jackson@ximian.com>
29276 * xaml.cpp: Handle more names for the default namespace.
29278 2008-01-30 Jackson Harper <jackson@ximian.com>
29280 * xaml.cpp: Add support for ucs4.
29282 2008-01-29 Jackson Harper <jackson@ximian.com>
29284 * xaml.cpp: pull in unistd.h
29286 2008-01-29 Jackson Harper <jackson@ximian.com>
29288 * xaml.cpp: Properly handle utf-16, converting it to utf-8 so
29289 expat doesn't choke.
29291 2008-01-28 Chris Toshok <toshok@ximian.com>
29293 * brush.cpp (VisualBrush::SetupBrush): RoundOut doesn't update
29294 inplace, it returns the new rect.
29296 * uielement.cpp (UIElement::DoRender): same change.
29298 2008-01-28 Jeffrey Stedfast <fejj@novell.com>
29300 * pipeline.cpp (FindMpegHeader): Validate that the sequence is
29301 actually an mpeg frame header by parsing it and calculating its'
29302 length and checking that another frame header starts where we
29304 (Mp3DemuxerInfo::Supports): We need to use FindMpegHeader() here
29307 2008-01-28 Jeffrey Stedfast <fejj@novell.com>
29309 * pipeline.cpp (FindMpegHeader): Scan over binary garbage and find
29310 an MPEG sync header.
29311 (Mp3Demuxer::ReadHeader): Use FindMpegHeader() and also use
29312 IMediaSource's new GetSize() method to help calculate media
29313 duration as opposed to seeking to the end.
29315 2008-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
29317 * media.cpp, media.h: Open the media async.
29318 * pipeline.cpp, pipeline.h: Add and implement OpenAsync.
29320 2008-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
29322 * media.cpp: MediaElement::AdvanceFrame: Only stop if the media player
29323 reached eof and couldn't advance.
29324 * mplayer.cpp, mplayer.h: Add a seeking flag, allows us to skip frames we
29325 get while we're waiting for a seek to happen. Implement a better pause
29326 algorithm, the previous one was flawed and dead-locked once in a while.
29327 * pipeline.cpp, pipeline.h: Media: Add a callback to async seek. ASFDemuxer:
29328 Create one frame reader for each stream.
29330 2008-01-27 Jeffrey Stedfast <fejj@novell.com>
29332 * media.cpp (MediaElement::UpdateProgress): Check (pos +
29333 buffering_size) > size, not < size. Duh.
29335 * pipeline.cpp: IMediaDemuxer ctors now take an IMediaSource
29336 argument to use in place of media->GetSource().
29337 (Media::Open): Don't set this->source unless we successfully open
29340 2008-01-26 Jeffrey Stedfast <fejj@novell.com>
29342 * media.cpp (MediaElement::TryOpen): In the DownloadComplete case,
29343 set the state to Buffering so that calling Play() will actually
29344 start playing the media (if the file was local, then we'll be in
29345 the Opening state which means that calling Play() will only note
29346 that a Play action was requested, but won't actually play the
29348 (MediaElement::SetState): Don't check for downloaded_file == NULL,
29349 it might fail in the above case.
29351 2008-01-26 Jackson Harper <jackson@ximian.com>
29353 * xaml.cpp: Set the encoding when we are reading files also.
29355 2008-01-25 Jeffrey Stedfast <fejj@novell.com>
29357 * pipeline.cpp (WaitForPosition): Only update wait_pos if it is
29358 greater than the current wait_pos.
29360 * media.cpp (UpdateProgress): Use the buffering_start position
29361 rather than the current write position to calculate buffer_size.
29363 2008-01-25 Jeffrey Stedfast <fejj@novell.com>
29365 * media.cpp (TryOpen): When download is complete and we
29366 successfully open the media, don't set the state to Paused - this
29367 breaks Halo3 if the video is cached.
29369 * media.cpp|h: Consolidated all of the bool state variables into a
29372 2008-01-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
29374 * pipeline.h, pipeline.cpp: ProgressiveSource: Make the position we're
29375 waiting for publicly available.
29376 * media.cpp: UpdateProgress: use the position the file is waiting for to
29377 calculate the buffer size (if it would exceed the default buffer size).
29379 2008-01-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
29381 * media.h: Add some descriptive comments.
29383 2008-01-25 Sebastien Pouliot <sebastien@ximian.com>
29385 * shape.cpp: Merge UIElement::InsideClip inside Shape::InsideObject
29386 instead of calling it since it can reduce some heavy cairo calls
29387 (cairo_in_*), if there's a clip, otherwise it won't affect
29390 2008-01-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
29392 * media.cpp: Initialize play_pending, and when buffering is
29393 finished, only play if autoplay or play_pending is true.
29395 2008-01-25 Jeffrey Stedfast <fejj@novell.com>
29397 * mplayer.cpp: Get rid of some unused variables and cleaned up
29400 2008-01-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
29402 * pipeline.cpp, media.cpp: More printfs removed.
29404 2008-01-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
29406 * src.mdp: Updated.
29408 * pipeline-ffmpeg.cpp: Commented out printf.
29410 * pipeline.h, pipeline.cpp: Removed some dead code. Made all
29411 interfaces inherit from IMediaObject, and put the media field
29412 there. Commented out printfs.
29414 * mplayer.h, mplayer.cpp: Unified Mute and UnMute into SetMuted to
29415 simplify code a bit. Encapsulated target_pts handling into
29418 * media.h, media.cpp: Create one and only one MediaPlayer for the
29419 life-time of the MediaElement. If not AutoPlay is set, then pause
29422 2008-01-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
29424 * pipeline.cpp, pipeline.h: Media: Don't create the worker thread upon first
29425 usage, but on construction, and finish it upon destruction. Fixes race
29426 between creating and destructing the thread.
29428 2008-01-24 Chris Toshok <toshok@ximian.com>
29430 * stylus.cpp (Stroke::HitTestEndcapSegment): implement.
29431 (calc_perpendicular_intersection_points): new method.
29432 (Stroke::HitTestSegmentSegment): use
29433 calc_perpendicular_intersection_points to give us the end points
29434 of the outer line segments, and use those for hit testing.
29436 2008-01-24 Jeffrey Stedfast <fejj@novell.com>
29438 * media.cpp (UpdateProgress): When switching to Buffering mode,
29439 save the position where we're currently at in the file so that we
29440 can use that as a reference point when calculating progress. Also,
29441 pause the MPlayer so that audio won't continue to play while we're
29442 waiting for buffering to complete. Fixes bug #356051.
29444 2008-01-24 Sebastien Pouliot <sebastien@ximian.com>
29446 * shape.cpp: Avoid calls to cairo_in_[stroke|fill] if no stroke
29447 (or fill) are present for the shape.
29449 2008-01-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
29451 * pipeline.cpp, pipeline.h: Create a more general worker thread,
29452 and use unions to save some space in WorkItem. In the ASFDemuxer,
29453 when seeking, we need to seek to the audio stream, since that's
29454 what we're using to sync against (if we have audio).
29456 * list.cpp, list.h: Added List::InsertBefore.
29458 2008-01-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
29460 * media.cpp: MediaElement::SetSource: only trigger the download
29461 after we've attached to the CompletedEvent.
29463 2008-01-23 Chris Toshok <toshok@ximian.com>
29465 * runtime.cpp (Surface::HandleMouseEvent): don't crash when we
29466 re-enter HandleMouseEvent, which can happen when that stupid JS
29467 timeout dialog pops up.
29469 2008-01-23 Chris Toshok <toshok@ximian.com>
29471 * runtime.cpp (Surface::SetMouseCapture): this fails not only if
29472 there's an existing capture, but also if there's a pending
29473 capture (so if both a parent and child capture on the same event,
29474 the child gets it.) Fixes dragging things around in ink journal.
29476 2008-01-23 Chris Toshok <toshok@ximian.com>
29478 * stylus.cpp, stylus.h: initial hit testing stuff. right now the
29479 only tests that are implemented are endcap (ellipse) vs. point,
29480 and segment vs. segment (although this one isn't the full test, as
29481 we're using the stroke line, as opposed to the exterior lines
29482 created by the ellipse pen tracing that line).
29484 * rect.h: add PointInside (Point p).
29486 2008-01-23 Jeffrey Stedfast <fejj@novell.com>
29488 * pipeline-ffmpeg.cpp: Don't #include "asf/asf-ffmpeg.h" anymore,
29489 it's no longer part of the build.
29491 2008-01-23 Sebastien Pouliot <sebastien@ximian.com>
29493 * shape.cpp|h: Add support for different PenLineCap on Line (part
29494 of #345888). Fix Polyline when a single segment is used (removed
29495 TODO). Avoid extra work when a start/end PenLineCap is Flat (default)
29497 2008-01-23 Jeffrey Stedfast <fejj@novell.com>
29499 * media.cpp (SetSource): Initialize the ProgressiveSource.
29501 * pipeline.cpp (ProgressiveSource::Seek): Simplified by calling
29502 parent class's implementation.
29504 2008-01-23 Jeffrey Stedfast <fejj@novell.com>
29506 * pipeline.cpp|h: ProgressiveSource now inherits from FileSource.
29508 2008-01-23 Jeffrey Stedfast <fejj@novell.com>
29510 * pipeline.cpp (FileSource::Read): Optimized a bit more for cases
29511 where the caller is trying to read a block larger than our
29513 (FileSource::Seek): Fixed 'n' to be an int64_t rather than a
29514 uint64_t (which is needed in the case of seeking backwards).
29516 2008-01-22 Larry Ewing <lewing@novell.com>
29518 * shape.cpp, shape.h: Move the stretch logic out of geometry.cpp
29519 and into Path.cpp as a transform not by modifying the data.
29521 * geometry.cpp, geometry.h: remove stretch logic.
29523 2008-01-22 Jeffrey Stedfast <fejj@novell.com>
29525 * pipeline.cpp (FileSource::Seek): Also optimize seeking backwards
29526 if within our pre-buffered bounds.
29527 (ProgressiveSource::Write): When restoring position state, use the
29528 proper offset (e.g. the offset of the end of our pre-buffered
29531 2008-01-22 Chris Toshok <toshok@ximian.com>
29533 * collection.cpp (UIElementZIndexComparer): the magnitude of the
29534 return value doesn't matter, only the sign.
29536 2008-01-22 Chris Toshok <toshok@ximian.com>
29538 * media.cpp (Image::InsideObject): if we have no surface (the
29539 image hasn't been loaded), we aren't HitTestVisible.
29541 * media.h (class Image): add InsideObject override.
29543 2008-01-22 Chris Toshok <toshok@ximian.com>
29545 * panel.cpp (Panel::OnCollectionChanged): remove the fix for
29546 #353954 as its redundant after the previous commit.
29548 2008-01-22 Chris Toshok <toshok@ximian.com>
29550 * garray-ext.cpp (bsearch): fix this so the g_array_insert_sorted
29553 2008-01-22 Jeffrey Stedfast <fejj@novell.com>
29555 * media.cpp (TryOpen): Don't leak Media objects. Also make sure to
29556 call Initialize() on the file source.
29558 * pipeline.cpp (IMediaSource): Read() now returns the number of
29559 bytes read rather than true/false and does nto guarantee that all
29560 of the data was read. Added a ReadAll() method which does what the
29561 old Read() method did.
29562 (FileSource): Rewritten to do our own buffering which allows for
29563 nice optimizations for Peek() and Seek().
29564 (ProgressiveSource): Also rewritten.
29566 * asf/asf.cpp: Updated to use IMediaSource::ReadAll()
29568 * asf/asf-guids.h: Moved all of the guids into asf-guids.cpp and
29569 just made them extern in the ehader, this way we don't duplicate
29570 those values in each source file that includes this header.
29572 2008-01-22 Sebastien Pouliot <sebastien@ximian.com>
29574 * shape.cpp|h: First part of DoDraw refactoring. Pass all
29575 regression tests from harness (moon versus moon) but it's possible
29576 that some degenerated cases (without test cases) regress.
29578 2008-01-22 Larry Ewing <lewing@novell.com>
29580 * clock.cpp: initalize the smoothing to max framerate, the first
29581 frame is quite likely the slowest frame we'll ever draw. Bump
29582 error delta back up to 1/50th.
29584 2008-01-22 Chris Toshok <toshok@ximian.com>
29586 * media.cpp (MediaElement::Render): a little cairo cleanup, and
29587 remove the USE_OPT_REGION_CLIP block.
29589 2008-01-22 Andrew Jorgensen <ajorgensen@novell.com>
29591 * pipeline.cpp: include unistd.h, fixes a build error introduced in
29592 r93311 when building without-ffmpeg
29594 2008-01-22 Larry Ewing <lewing@novell.com>
29596 * clock.cpp: reduce delta to 1/100 of a second and fix a bug in
29599 2008-01-22 Larry Ewing <lewing@novell.com>
29601 * clock.cpp: Tweak clock timing and smoothing. Increase timer
29602 priority so that ticks get deliver when we want them this doesn't
29603 change the smoothing calculation but it can raise the actual fps
29604 by assuring all our clocks are delivered. Change smoothing alpha
29605 from 0.3 to 0.03 to improve noise immunity. Don't reset the timer
29606 unless our new calculated timeout differs from our old by at least
29607 1/50 of a second. Resetting the clock on every tick had the
29608 effect adding the drawing time to the tick time for every tick
29609 since the timeout starts over at zero.
29611 2008-01-21 Jeffrey Stedfast <fejj@novell.com>
29613 * pipeline.cpp (Mp3FrameReader::ReadFrame): If the bitrate was
29614 unspecified, encode the bitrate back into the header so that if we
29615 are using the NullMp3Decoder, it will know how to handle
29616 it. Probably also needed for any actual Mp3 decoders as well since
29617 it won't reliably be able to keep track of variable-bitrate
29618 streams otherwise since it wouldn't know if/when we seek.
29619 (NullMp3Decoder::DecodeFrame): Implemented.
29621 2008-01-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
29623 * pipeline.cpp: Remove printf.
29625 2008-01-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
29627 * src.mdp: Remove mplayer2.cpp from here too.
29629 2008-01-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
29631 * mplayer.cpp, mplayer2.cpp, Makefile.am: Deleted mplayer.cpp and moved
29632 mplayer2.cpp to mplayer.cpp.
29634 2008-01-21 Jeffrey Stedfast <fejj@novell.com>
29636 * downloader.cpp (ll_downloader_get_response_file): Fixed to use
29637 mkstemp() rather than tmpnam_r() and also simplified.
29639 * pipeline.cpp: Fixed various things about the progressive stream.
29641 2008-01-19 Jeffrey Stedfast <fejj@novell.com>
29643 * mplayer2.cpp (audio_play): Get rid of the 'play' argument. Also
29644 don't memmove() data unless we don't have enough to play a single
29645 frame. Instead, what we'll do is keep progressing audio->outbuf as
29648 2008-01-19 Chris Toshok <toshok@ximian.com>
29650 * uielement.cpp (UIElement::OnPropertyChanged): remove the
29651 handling of TriggersProperty and ResourcesProperty's closure.
29653 * trigger.cpp, trigger.h: remove EventTrigger's OnPropertyChanged
29656 * transform.cpp (TransformGroup::OnPropertyChanged): remove
29657 handling of ChildrenProperty's closure.
29659 * text.cpp, text.h: remove Run::OnPropertyChanged, and also remove
29660 the handling of Inlines->closure from TextBlock.
29662 * stylus.cpp, stylus.h: remove a couple of OnPropertyChanged
29663 methods (InkPresenter and Stroke).
29665 * panel.cpp (Panel::OnPropertyChanged): remove handling of the
29666 ChildProperty's closure here.
29668 * media.cpp, media.h: remove the unnecessary
29669 MediaBase::OnPropertyChanged.
29671 * geometry.cpp, geometry.h: remove a few OnPropertyChanged
29672 methods (GeometryGroup, PathGeometry, and PathSegment.)
29674 * clock.cpp, clock.h: remove TimelineGroup::OnPropertyChanged.
29676 * brush.cpp, brush.h: remove the unnecessary
29677 Brush::OnPropertyChanged and GradientBrush::OnPropertyChanged.
29679 * animation.cpp, animation.h: remove all the
29680 *AnimationUsingKeyFrames::OnPropertyChanged methods, since all
29681 they did was deal with collection closures.
29683 * dependencyobject.cpp (DependencyObject::SetValue): factor out
29684 the "collection->closure" setting code from all the
29685 OnPropertyChanged methods sprinkled around and put it here. Also,
29686 set collection->closure to NULL on the old value (something the
29687 old code didn't do).
29689 2008-01-19 Chris Toshok <toshok@ximian.com>
29691 * animation.cpp: the remaining macros (SET_NULLABLE_FUNC and
29692 NULLABLE_{PRIM_}GETSET_IMPL) are moved here, right before their
29695 * animation.h: clean this file up by removing all those disgusting
29696 macros. for the DECL macros, just expand them here, as having the
29697 methods listed in the class declaration is a good thing.
29699 * collection.cpp (collection_new): remove the switch statement
29700 from here and use Type::CreateInstance instead. this largely
29701 removes the need to be including extra headers (like animation.h).
29703 2008-01-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
29705 * media.cpp, mplayer.cpp, mplayer2.cpp, Makefile.am, pipeline.h: Remove all
29706 MOON_MEDIA ifdefs and completely disable the old mplayer.cpp
29707 * src.mdp: Updated.
29709 2008-01-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
29711 * media.h, media.cpp: MediaElement: make this a state machine to follow the
29712 behaviour specified in MSDN. Implement buffering of media files.
29713 MediaSource (and derived): take a IMediaSource instead of a filename.
29714 * mplayer.h, mplayer2.cpp: Make Open take a Media instead of a filename.
29715 Remove all MOON_MEDIA ifdefs, too many changes to support both versions
29716 now. Make seeking async.
29717 * pipeline.cpp, pipeline.h: Changed the FrameReaderLoop into a more general
29718 worker thread, seeking can now be done there too. Implement
29720 * playlist.cpp: Change IsPlaylistFile to peek the file instead of checking
29721 the file extension. MediaSource (and derived): take a IMediaSource
29722 instead of a filename.
29723 * playlist.h: MediaSource (and derived): take a IMediaSource instead of a
29726 2008-01-18 Larry Ewing <lewing@novell.com>
29728 * uielement.cpp: compute total_opacity for invalidation logic but
29729 use local_opacity for drawing. This fixes monotones grid.xaml and
29730 some hit test regressions.
29732 2008-01-18 Jackson Harper <jackson@ximian.com>
29734 * xaml.cpp: KeyFrameCollections can be specified in the xaml if
29735 they are in a property element.
29736 - When searching for collections, use is subclass instead of
29737 making them be the same type, so derivied collections can be used.
29739 2008-01-17 Chris Toshok <toshok@ximian.com>
29741 * pipeline.h (class IMediaDemuxer): initializer streams and
29742 stream_count so we don't crash on ltbennett.com.
29744 2008-01-17 Jeffrey Stedfast <fejj@novell.com>
29746 * pipeline.cpp (Mp3FrameReader::ReadFrame): If we fail to read an
29747 MPEG header, set MediaFrame->event to EOF. Same if we can't read
29749 (Media::GetNextFrame): Don't try to decode the frame if it is an
29751 (ASFDemuxer::ReadFrame): If we reach EOF, set MediaFrame->event to
29754 * mplayer2.cpp (media_player_callback): pts is allowed to be 0.
29755 (AdvanceFrame): Handle EOF frame events.
29756 (audio_loop): Handle EOF frame events.
29758 2008-01-17 Chris Toshok <toshok@ximian.com>
29760 * stylus.cpp (InkPresenter::OnCollectionChanged): we need to
29761 invalidate the old bounds of the stroke for ItemRemoved as well as
29764 2008-01-17 Chris Toshok <toshok@ximian.com>
29766 * rect.h (Rect::Transform): new method, allows for transforming a
29767 rectangle by a cairo_matrix_t, used with transforming the stroke
29768 bounds back to screen space using the InkPresenter's
29771 * stylus.cpp, stylus.h: deal with collection changed notifications
29772 on Stroke::StylusPointsProperty and on
29773 InkPresenter::StrokesProperty, and correctly invalidate a stroke's
29774 bounds. The bounds of a stroke needs to be looked at - right now
29775 it's in the coordinate space of the InkPresenter, and so it needs
29776 to be transformed back to screen space before invalidating. Need
29777 to check if MS uses screen space for a stroke's bounds (seems
29778 likely they do, but this was easier to code.)
29780 2008-01-17 Jeffrey Stedfast <fejj@novell.com>
29782 * mplayer2.cpp: Updated for MediaFrame changes.
29784 * pipeline-ffmpeg.cc: Updated for MediaFrame changes.
29786 * pipeline.cpp: Instead of having a compressed_data and
29787 uncompressed_data field, simply have a 'buffer' field that gets
29788 reused by both the demuxer and the decoder. The decoder will set
29789 the buffer to the compressed data and the decoder will, once
29790 finished decoding, free the buffer and then update it to point to
29791 the decoded data. This reduces memory overhead.
29793 2008-01-17 Chris Toshok <toshok@ximian.com>
29795 * uielement.cpp (UIElement::InsideClip): use
29796 uielement_transform_point instead of duplicating it.
29798 * shape.cpp (Shape::InsideObject): use uielement_transform_point
29799 instead of duplicating it.
29801 * text.cpp (TextBlock::InsideObject): use
29802 uielement_transform_point instead of duplicating it.
29804 2008-01-17 Larry Ewing <lewing@novell.com>
29806 * shape.cpp (Rectangle::BuildPath): fix the origin calculation for
29807 unstroked rectangles (see test-rectangle-aliasing.xaml). Suggest
29808 more rectangle testing after this.
29810 2008-01-17 Jackson Harper <jackson@ximian.com>
29812 * xaml.cpp: After setting a property stop walking up the element
29815 2008-01-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
29817 * pipeline-ffmpeg.cpp: Comment out a couple of confusing printfs.
29819 2008-01-17 Jeffrey Stedfast <fejj@novell.com>
29821 * mplayer2.cpp (audio_decode): Removed as it is no longer really
29823 (audio_loop): We can't assume that an entire decoded audio packet
29824 will fit into the audio output buffer in a single shot, break it
29827 2008-01-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
29829 * mplayer2.cpp: Max out video frame rate at 60fps.
29831 2008-01-17 Fernando Herrera <fherrera@novell.com>
29833 * panel.cpp: Reorder based on ZIndex when a new item is added.
29836 2008-01-17 Larry Ewing <lewing@novell.com>
29838 * runtime.cpp (Surface::InitializeDrawingArea): disable extended
29839 input devices until the remaining issues can be resolved.
29841 2008-01-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
29843 * mplayer2.cpp, pipeline-ffmpeg.cpp: Plug a leak.
29845 2008-01-16 Larry Ewing <lewing@novell.com>
29847 * uielement.cpp, uielement.h:
29848 * panel.cpp, panel.h:
29849 * collection.cpp, control.cpp: remove Compute/UpdateTotalOpacity.
29850 Combine the opacity visibility check into the total render
29851 visibility. Make sure we compute/invalidate in all the same
29854 * dirty.cpp, dirty.h: remove all references to DirtyOpacity.
29856 * uielement.cpp (UIElement::DoRender): make sure we don't reset
29857 the coordinate system when setting up the clip calls in the
29858 opacity and opacity mask cases. Go back to using the brush
29859 directly when rendering masks. Should speed things up a little
29860 and fixes http://mycomix.wintellect.com/Spotlight.aspx?Item=1041
29862 2008-01-16 Chris Toshok <toshok@ximian.com>
29864 * stylus.h, stylus.cpp: a few changes. Move the
29865 StylusPointCollection and StrokeCollection classes here from
29866 collection.h/collection.cpp. I didn't like the addition of
29867 stylus.cpp logic in two places. Convert Stroke::GetBounds use use
29868 the new DrawingAttributes::ComputeBounds{WithoutDrawingAttributes}
29869 methods, and build up the bounds for the StrokeCollection by
29870 unioning all the Stroke bounds (these should be cached, but aren't
29871 yet.) StrokeCollection::HitTest has been implemented, just
29872 looping over the strokes. Stroke::HitTest is missing its guts at
29873 the moment, since hit testing is going to be a little bit of a
29876 * collection.h, collection.cpp: remove StylusPointCollection and
29879 2008-01-16 Larry Ewing <lewing@novell.com>
29881 * uielement.cpp, uielement.h: Rework the way we handle opacity to
29882 operate like the reference platform by removing the concept of
29883 TotalOpacity and instead using push/pop group and paint_with
29884 alpha. See test-sibling-opacity.xaml for an example. Handle
29885 clipping in DoRender rather than in every subclass because we want
29886 the clip path active before calling push/pop so that the temporary
29887 surface is bounded.
29888 * brush.cpp, panel.cpp: remove GetTotalOpacity references.
29889 * media.cpp, media.h: cleanup the complicated render logic now
29890 that things are handled in uielement.
29891 * shape.cpp, text.cpp: remove RenderClipPath calls.
29893 * rect.cpp, rect.h: add draw methods.
29895 2008-01-16 Jeffrey Stedfast <fejj@novell.com>
29897 * pipeline.cpp: Implemented mpeg seeking support for
29898 Mp3FrameReader and, thusly, Mp3Demuxer.
29899 (Mp3Demuxer::ReadHeader): Calculate the duration of the stream.
29901 2008-01-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
29903 * mplayer2.cpp: Remove a superfluous variable from Audio.
29905 2008-01-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
29907 * mplayer2.cpp: Remove superfluous variables from Video.
29909 2008-01-16 Sebastien Pouliot <sebastien@ximian.com>
29911 * moon-path.c: Fix typo (but was same value).
29913 2008-01-15 Jeffrey Stedfast <fejj@novell.com>
29915 * pipeline.cpp: Implemented mp3 demuxer.
29917 2008-01-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
29919 * mplayer2.cpp: Don't crash if Seek is called before Open.
29921 2008-01-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
29923 * mplayer2.cpp: Remove dead code and variables, and only request
29924 audio/video frames if we have audio/video.
29926 2008-01-15 Jeffrey Stedfast <fejj@novell.com>
29928 * mplayer2.cpp: Get rid of extra member variables in Packet.
29930 2008-01-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
29932 * mplayer2.cpp: Implement audio decoding on the main thread as well.
29934 2008-01-14 Jeffrey Stedfast <fejj@novell.com>
29936 * pipeline.cpp: Partially implemented an mp3 demuxer.
29938 2008-01-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
29940 * media.cpp, media.h, mplayer2.cpp, pipeline.cpp, pipeline.h: Make markers
29941 work again with the new pipeline.
29943 2008-01-14 Sebastien Pouliot <sebastien@ximian.com>
29945 * shape.cpp|h: It looks like we stopped needing consider_fill a
29948 2008-01-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
29950 * mplayer.h: We don't need io_tread anymore, so remove it.
29951 * mplayer2.cpp: We don't need io_tread anymore, so remove it. Add support
29952 for doing the decoding on the main thread with easy (in-code) switch.
29953 Comment out printfs, and remove dead/old/commented-out code.
29954 * pipeline.cpp, pipeline.h, pipeline-ffmpeg.cpp: Add support for doing the
29955 decoding on the main thread with easy (in-code) switch.
29956 * runtime.cpp: Don't print entire object tracking output if nothing leaked.
29958 2008-01-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
29960 * xaml.cpp: Unref a matrix object when we are done with it.
29961 * mplayer2.cpp: Remove printf.
29963 2008-01-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
29965 * mplayer2.cpp: Remove printfs.
29966 * pipeline.cpp, pipeline.h: Remove printfs and only print messages if they
29968 * pipeline-ffmpeg.cpp: Free context->extradata upon destruction.
29970 2008-01-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
29972 * pipeline.cpp: Fix crash with several web-sites (when seeking before
29975 2008-01-11 Chris Toshok <toshok@ximian.com>
29977 * clock.h (class Clock): add an instance
29978 field (calculated_natural_duration).
29980 * clock.cpp (Clock::ComputeBeginTime): don't include the parent's
29981 current time here. this was inflating animation begin time's in
29982 some cases to be either very close to the parent's calculated
29983 duration (or even after it).
29984 (ClockGroup::ComputeBeginTime): don't chain up to
29985 Clock::ComputeBeginTime. clock groups in our system need to
29986 include their parent time in their begin time. There are only two
29987 levels of clockgroups - storyboards, and the clockgroup we have
29988 associated with a given surface (Which will be the parent of all
29989 the storyboards running on that surface.)
29990 (output_clock): print out the BeginTime of the clock.
29991 (TimeManager::AddChild): I don't really like this, but we need to
29992 force the calculation of the natural duration of the clock when
29993 it's added to the hierarchy.
29994 (ClockGroup::AddChild): same here.
29995 (Clock::Clock): don't calculate the natural duration of the clock
29996 here - when we instantiated a ClockGroup it was calculating the
29997 duration before the child clocks were added.
29999 2008-01-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
30001 * pipeline.cpp: Seek on the frame reader, not on the source.
30002 * mplayer2.cpp, mplayer.h: Change all use of audio/video->stream != NULL to
30003 HasAudio/Video (). Fix seeking to actually work.
30005 2008-01-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
30007 * mplayer2.cpp, mplayer.h: Move the media variable from audio/video into
30008 mplayer.h where it belongs.
30009 * pipeline.cpp, pipeline.h: Implement seeking.
30010 * pipeline-ffmpeg.cpp: Copy decompressed data instead of using ffmpeg's data
30011 directly, since ffmpeg uses one single memory location for all decoded
30012 frames, causing us to always show the last decoded frame.
30014 2008-01-11 Sebastien Pouliot <sebastien@ximian.com>
30016 * shape.cpp: Add support for PenLineCapTriangle with a patched cairo.
30017 See bug #345892 for the required cairo patch.
30019 2008-01-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
30021 * media.cpp: Initialize Media too upon initialization.
30022 * pipeline.cpp, pipeline.h, pipeline-ffmpeg.cpp, pipeline-ffmpeg.h,
30023 mplayer2.cpp, mplayer.cpp: Implement registration of components, making
30024 it possible to completely remove ffmpeg.
30026 2008-01-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
30028 * pipeline.cpp: Remove stray character.
30030 2008-01-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
30032 * mplayer2.cpp, pipeline.cpp, pipeline.h, pipeline-ffmpeg.cpp,
30033 pipeline-ffmpeg.h: Code-cleanup.
30035 2008-01-10 Larry Ewing <lewing@novell.com>
30037 * runtime.cpp (Surface::InitializeDrawingArea): realize the widget
30038 before setting the extension events (lame api) and disable the
30041 2008-01-10 Chris Toshok <toshok@ximian.com>
30043 * runtime.cpp (Surface::InitializeDrawingArea): activate all
30044 devices that have a cursor associated with them.
30046 2008-10-10 Andrew Jorgensen <ajorgensen@novell.com>
30048 * pipeline.cpp: include config.h (fixes an ffmpeg-related build error)
30050 2008-01-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
30052 * mplayer.cpp: Surround with ifdef to conditionally include the new
30053 MediaPlayer or not.
30054 * Makefile.am: Added pipeline* and mplayer2.cpp.
30055 * pipeline-ffmpeg.h, pipeline-ffmpeg.cpp: Added, support for using ffmpeg in
30057 * pipeline.cpp, pipeline.h: Added.
30058 * mplayer2.cpp: Added, a MediaPlayer that uses the new pipeline.
30060 2008-01-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
30062 * panel.cpp: Delete leaked region.
30064 2008-01-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
30068 2008-01-09 Chris Toshok <toshok@ximian.com>
30070 * stylus.h, stylus.cpp, collection.h, collection.cpp: fix
30073 2008-01-09 Chris Toshok <toshok@ximian.com>
30075 * collection.h, collection.cpp: add C wrappers for
30076 StrokeCollection::GetBounds and ::HitTest.
30078 * stylus.h, stylus.cpp: same deal for Stroke::
30080 2008-01-09 Chris Toshok <toshok@ximian.com>
30082 * collection.h, collection.cpp: add empty implementations of
30083 StrokeCollection::GetBounds and StrokeCollection::HitTest.
30085 * stylus.h, stylus.cpp: add empty implementations of
30086 Stroke::GetBounds and Stroke::HitTest.
30088 2008-01-09 Chris Toshok <toshok@ximian.com>
30090 * uielement.h, uielement.cpp: change all the Emit* methods that
30091 deal with mouse events to take a GdkEvent instead of state/x/y,
30092 and also change their calldata to a heap allocated MouseEventArgs,
30093 which we unref after the emit. This is because the pointer itself
30094 is wrapped by the managed MouseEventArgs, and will be unref'ed in
30095 ~MouseEventArgs at some later time.
30097 * runtime.h, runtime.cpp: change all the mouse events to pass
30098 around the actual GdkEvent instead of the state/x/y. This is due
30099 to the fact that our MouseEventArgs class now wraps the GdkEvent,
30100 so we can get at all the stylus/extension event stuff.
30102 * stylus.h, stylus.cpp: remove stylus_get_current, as it's no
30103 longer required. We correctly create a StylusInfo instance from
30104 the MouseEventArgs.
30106 * Makefile.am (libmoon_la_SOURCES): add eventargs.cpp
30107 (libmooninclude_headers): add eventargs.h
30109 * libmoon.h: add eventargs.h.
30111 * eventargs.h, eventargs.cpp: new files, splitting out the
30112 KeyboardEventArgs and MouseEventArgs from uielement.h, and flesh
30113 out MouseEventArgs, making it a refcounted object with enough
30114 smarts to handle both the managed case and plugin case. Include
30115 all the stylus related code as well, so this *should* make all the
30116 stylus requiring demos work.
30118 2008-01-09 Jeffrey Stedfast <fejj@novell.com>
30120 * geometry.cpp (path_get_bounds): My fix the other day wasn't
30121 quite ideal. Instead of using a 0.1 line thickness when the
30122 shape's StrokeThickness is 0, continue using that 0 thickness but
30123 use cairo_fill_extents() instead. Also, when shape is null, ise a
30124 0.0 thickness & cairo_fill_extents() as well.
30126 * shape.cpp (DoDraw): Removed the if (thickness == 0) optimization
30127 that breaks Paths with a StrokeThickness of 0. Fixes bug #352188.
30129 * runtime.cpp (EmitEventOnList): Changed to take double x,y
30130 coordinate arguments rather than int.
30131 (HandleMouseEvent): Same.
30133 2008-01-09 Jeffrey Stedfast <fejj@novell.com>
30135 * list.cpp (List::~List): Added a dtor that deletes all nodes
30136 currently in the list. This is doable now that List::Nodes are
30137 classes where the node dtors can be overloaded.
30139 2008-01-09 Jackson Harper <jackson@ximian.com>
30141 * xaml.cpp: If a property is a collection, don't assume that the
30142 collection is already initialized (they used to always be), and
30143 initialize the collection if needed. This fixes BNC 350893.
30145 2008-01-09 Stephane Delcroix <sdelcroix@novell.com>
30147 * brush.cpp: fix (useless) derelativization for MappingmodeAbsolute
30148 on LinearGradientBrush. Fixes bnc 346308 and lineargrad.xml.
30150 2008-01-08 Chris Toshok <toshok@ximian.com>
30152 * animation.cpp (Storyboard::Begin): simple change to fix a nasty
30153 bug. we need to add the teardown handler before the completed
30154 handler. otherwise cases where people were using a storyboard as
30155 a timer would break - the completed handler would fire, the JS
30156 would restart the storyboard, then the teardown handler would free
30157 the new clock hierarchy. Fixes the page animation in pageturn,
30158 and gets the bubbles moving again in the SilverlightCLRBalls demo.
30160 2008-01-07 Jeffrey Stedfast <fejj@novell.com>
30162 * geometry.cpp (path_get_bounds): Cairo seems to break if the line
30163 thickness is 0.0, so if the shape's thickness is set to 0.0, use
30164 0.1 like we do if shape is null. Fixes bug #351575.
30166 2008-01-07 Sebastien Pouliot <sebastien@ximian.com>
30168 * shape.cpp|h: Add NeedsLineCaps and NeedsLineJoin so some shapes,
30169 that ignore those properties, can avoid setting them on the cairo
30172 2008-01-04 Chris Toshok <toshok@ximian.com>
30174 * runtime.cpp: mostly switch all emit_* calls to take doubles, and
30175 pass doubles around for button x/y.
30176 (Surface::motion_notify_callback): if we're gtk > 2.12, use
30177 gdk_event_request_motions (falling back to gdk_window_get_pointer
30178 if not). also, we can use the mouse_event_x/y from the event,
30179 even when it's a hint.
30181 * runtime.h: switch back to using doubles for everything mouse
30182 event related. Change MoonlightEventEmitFunc to take doubles.
30184 2008-01-04 Jeffrey Stedfast <fejj@novell.com>
30186 * runtime.cpp|h: Make mouse_event_x/y ints rather than doubles
30187 since the events that use them want them as ints anyway.
30188 (button_release_callback): Cast the button->x/y doubles to int.
30189 (button_press_callback): Same.
30190 (motion_notify_callback): Cast event->x/y to int.
30191 (crossing_notify_callback): Same.
30193 * dependencyobject.cpp: EventObjects now use a List class for
30194 event_lists rather than GSList which is far more costly for
30196 (Emit): Reduce the number of linked-list iterations from 5 to 2.
30198 2008-01-04 Chris Toshok <toshok@ximian.com>
30200 * runtime.h, runtime.cpp: completely overhaul the way we handle
30201 mouse events. Instead of doing both hit testing and event
30202 dispatch in one recursive tree traversal, we build up a list of
30203 all elements that will bubble the event, and then use that list
30204 along with the previous one to generate Enter/Leave events for the
30205 elements that require it. Also fix the way capture is done (it's
30206 not handled until the end) and fix the Enter event dispatch when
30207 you release mouse capture.
30209 * uielement.h, uielement.cpp: rename the mouse events to match the
30210 names used in C# and JS, as it's been singularly annoying to
30211 remember that ButtonPressEvent -> MouseLeftButtonDown, etc. Also
30212 rename all the Handle* event methods to Emit*, as that's all they
30213 do. Make them nonvirtual, as the traversal and emission of the
30214 events now happens in runtime.cpp. Add a new virtual
30215 method (HitTest), that is overridden by the container elements,
30216 which appends elements that are going to bubble the event to the
30219 * panel.h, panel.cpp: remove all the Handle* methods, implement
30222 * control.h, control.cpp: remove all the Handle* methods,
30225 2008-01-04 Jeffrey Stedfast <fejj@novell.com>
30227 * media.cpp (UpdateProgress): Don't SetValue() unless the delta
30228 was large enough - otherwise we could get into a situation where
30229 we never emit a progress changed event in a case where the data
30230 trickles in at < 0.05%.
30232 2008-01-04 Chris Toshok <toshok@ximian.com>
30234 * animation.cpp (Storyboard::HookupAnimationsRecurse): look back
30235 up the clock hierarchy for the target property like we do with the
30238 2008-01-04 Chris Toshok <toshok@ximian.com>
30240 * media.h: add Image::DownloaderFailed.
30242 * media.cpp (Image::UpdateProgress): make sure to qualify the
30243 DownloadProgressProperty we lookup on the Downloader, since
30244 without the Downloader:: it'll try to get
30245 Image::DownloadProgressProperty, which will always return 0.0.
30246 (Image::SetSource): use the static qualifier for
30247 events (Downloader:: instead of downloader->).
30248 (Image::DownloaderFailed): new method, emit our ImageFailedEvent.
30250 * brush.cpp (ImageBrush::image_progress_changed): make sure to set
30251 our ImageBrush::DownloadProgressProperty before emitting the
30253 (brush_init): lookup the ImageBrush::ImageFailedEvent.
30255 2008-01-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
30257 * runtime.cpp: Free background_color upon surface
30258 destruction. Fixes a minor leak.
30260 * clock.cpp|h: Free the tick_call_mutex upon destruction.
30262 2008-01-03 Jeffrey Stedfast <fejj@novell.com>
30264 Fix for bug #350962
30266 * media.cpp (MediaBase::OnPropertyChanged): Don't emit
30267 DownloaderProgressChanged events anymore, leave that up to Image
30268 and MediaElement classes so that we don't emit events when an
30269 outside source changes the value.
30270 (MediaElement::UpdateProgress): Emit the DownloaderProgressChanged
30271 event if the proper download delta has occured.
30272 (Image::UpdateProgress): Same.
30274 2008-01-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
30276 * dependencyobject.h: Remove warning.
30278 2007-12-31 Jeffrey Stedfast <fejj@novell.com>
30280 * runtime.h (CreateDownloader): Simplified.
30282 2007-12-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
30284 * collection.cpp: Upon destruction on VisualCollection, remove the visual
30285 parent of all items.
30286 * dependencyobject.h: Add weak_ref/unref and a comment explaining when and
30288 * dirty.cpp: Don't take a ref in DirtyNode.
30290 2007-12-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
30292 * media.cpp: Add const modifier
30294 2007-12-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
30296 * downloader.cpp: Null-initialize a field.
30297 * dirty.cpp: Make DirtyNode keep a reference to the element it wraps.
30299 2007-12-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
30301 * pipeline.h: Added, the start of the new media pipeline.
30303 2007-12-20 Sebastien Pouliot <sebastien@ximian.com>
30305 * collection.cpp|h: Add missing method AddStylusPoints for
30306 StylusPointCollection
30308 2007-12-20 Sebastien Pouliot <sebastien@ximian.com>
30310 * geometry.h: Remove hack for PathGeometry::FiguresProperty
30311 * xaml.cpp: If a collection is null by default then we must call
30312 parent->SetValue(dp, collection) or the collection, and it's
30313 contents, won't be available. Fix (correctly) Chess.
30315 2007-12-19 Sebastien Pouliot <sebastien@ximian.com>
30317 * geometry.cpp: Fix Draw and ComputeBound to deal with the fact that
30318 there's no default Figure collection. Fix Chess crasher.
30319 * xaml.cpp: Fix unit test were empty string are parsed as 0.0,
30320 foir doubles, and as an "empty" (but not NULL) Value for
30323 2007-12-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
30325 * media.cpp, media.h: Implement support for markers as a separate stream
30326 (the demuxer will call a callback when it encounters any streamed
30329 2007-12-19 Sebastien Pouliot <sebastien@ximian.com>
30331 * xaml.cpp: Add create_item_func for PathFigureCollection. This is
30332 now needed since it defaults to null and not an empty collection.
30334 2007-12-19 Stephane Delcroix <sdelcroix@novell.com>
30336 * uielement.[h|cpp]: set a default value (0,0) for RenderTransformOrigin.
30338 2007-12-18 Sebastien Pouliot <sebastien@ximian.com>
30340 * color.cpp: Handle empty string correctly in color_from_str. Unit
30341 tests shows this return 0 (and not transparent).
30343 2007-12-18 Stephane Delcroix <sdelcroix@novell.com>
30345 * xaml.cpp: fix for bnc 348581.
30347 2007-12-18 Sebastien Pouliot <sebastien@ximian.com>
30349 * brush.cpp: Fix default color values for SolidColorBrush::Color and
30350 GradientStop::Color properties (see js unit tests).
30351 * geometry.cpp|h: Remove default collection from PathGeometry. Fix
30352 testPathGeometry unit test.
30354 2007-12-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
30356 * media.cpp: ReadASFMarkers: Read markers as well as script commands.
30357 Subtract the preroll value from the pts before adding the marker. Unref
30358 the created collection and markers when finished with them.
30359 AdvanceFrame: Always call CheckMarkers, even if we couldn't advance the
30360 frame (might be necessary if the last frame has a marker).
30362 2007-12-17 Jb Evain <jbevain@novell.com>
30364 * xaml.cpp: fix testMatrixWithZeroItem test case.
30366 2007-12-17 Jb Evain <jbevain@novell.com>
30368 * type.cpp|h(.in), value.cpp|h(.in): remove the Matrix
30369 value type, has SL exposes it as a DependencyObject.
30371 * transform.cpp|h: define and implement the
30372 Matrix DependencyObject type.
30374 * xaml.cpp: create a Matrix DO on a Matrix xaml element.
30375 Also create such an object with the <MatrixTransform Matrix='...'>
30378 2007-12-17 Sebastien Pouliot <sebastien@ximian.com>
30380 * xaml.cpp: Return an "empty" Value (not NULL) if no POINT_ARRAY
30381 is provided. Fix testAllowEmptyPointsOnPoly[gon|line] JS tests.
30383 2007-12-14 Jeffrey Stedfast <fejj@novell.com>
30385 * runtime.cpp (fps_report_default): Default printf FPS report
30387 (Surface::render_cb): Use instance-local variables for keeping
30388 track of FPS and use the report func if RUNTIME_INIT_SHOW_FPS bit
30391 * runtime.h: Added a RUNTIME_INIT_SHOW_FPS flag
30392 (class Surface): New method to set the FPS report callback for a
30395 2007-12-14 Chris Toshok <toshok@ximian.com>
30397 * type.cpp.in, type.cpp (types_init_register_events): need to
30398 register DownloadProgressChanged and ImageFailed events on
30401 * brush.h, brush.cpp: same, and hook up the events from
30402 ImageBrush's embedded image so that we can re-emit the events.
30404 2007-12-14 Jeffrey Stedfast <fejj@novell.com>
30406 * downloader.cpp (Downloader::Abort): Don't abort if we've already
30407 been aborted or been notified that we've failed (needed protection
30408 for the Plugin downloader).
30409 (Downloader::Send): Set aborted = false.
30410 (Downloader::NotifyFailed): Don't do anything if we've already
30411 been notified of failure for this download request.
30413 * downloader.h (class Downloader): Keep track of aborted state as
30416 2007-12-14 Stephane Delcroix <sdelcroix@novell.com>
30418 * brush.cpp: Fix for bnc 346204: Set both Width and Height for Image if
30419 only one (Width XOR Height) is provided.
30421 2007-12-14 Sebastien Pouliot <sebastien@ximian.com>
30423 * shape.cpp: Fix Path::GetBrushSize to ensure the geometry has
30424 been built before calling cairo_stroke_extents. This fix sample
30425 http://designwithsilverlight.com/tutorials/photoGalleryWall/default.html
30427 2007-12-13 Sebastien Pouliot <sebastien@ximian.com>
30429 * shape.cpp|h: Shortcut path bounds calculation when both Width
30430 and Height are specified. Add same clipping rules to Line,
30431 Polyline and Polygon classes.
30433 2007-12-13 Sebastien Pouliot <sebastien@ximian.com>
30435 * geometry.cpp: Resume using cairo_stroke_extents in some cases
30436 because we need very precise bounds for Fill to work properly.
30437 This fix Sprawl's cowboy hat ribbon :-)
30439 2007-12-12 Stephane Delcroix <sdelcroix@novll.com>
30441 * brush.cpp: Fix RelativeTransform for RadialGradientBrush'es too.
30443 2007-12-11 Jeffrey Stedfast <fejj@novell.com>
30445 * downloader.cpp|h: Made the ::Write() method take the same
30446 int-type args as the NPP_Write() function (which means int32 for
30447 both offset and nbytes).
30449 2007-12-11 Sebastien Pouliot <sebastien@ximian.com>
30451 * stylus.cpp: Fix JS unit tests for Stroke properties by having
30452 a default DrawingAttributes inside the Stroke.
30454 2007-12-10 Chris Toshok <toshok@ximian.com>
30456 * dependencyobject.h, dependencyobject.cpp: more event changes.
30457 events keep a integer "token" per event, that starts at 0, that is
30458 returned from the plugin's addEventListener method, and can be can
30459 be passed to the plugin's removeEventListener method.
30461 2007-12-10 Sebastien Pouliot <sebastien@ximian.com>
30463 * shape.cpp: Fix Shape::GetSizeForBrush to adjust to the Stretch
30464 property of the Shape. Fix bug #346018
30466 2007-12-10 Jeffrey Stedfast <fejj@novell.com>
30468 * runtime.cpp (InitializeDrawingArea): Removed the call to
30469 gtk_widget_set_size_request() - we now call it elsewhere (since
30470 going fullscreen requiers us to call set_size_request() /before/
30471 calling gtk_window_fullscreen(). When going to fullscreen mode,
30472 this was causing the FullScreenMessage item to appear in the
30473 upper-left corner rather than centered like it should have been.
30474 (Surface): Make the call to gtk_widget_set_size_request() here now
30475 that it no longer is called inside InitializeDrawingArea().
30477 2007-12-07 Sebastien Pouliot <sebastien@ximian.com>
30479 * geometry.cpp: Set SHAPE_EMPTY if only Height or Width is specified.
30480 * shape.cpp|h: Add Shape and Path NeedsClipping methods. Adjust the
30481 bounds calculation on paths when Height *and* Width are present.
30483 2007-12-07 Sebastien Pouliot <sebastien@ximian.com>
30485 * shape.cpp: In Shape::ComputeBounds don't compute half thickness
30486 unless the value is needed.
30488 2007-12-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
30490 * xaml.cpp: Plug more leaks.
30492 2007-12-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
30494 * animation.cpp, geometry.cpp: Fix a couple of memory leaks,
30495 detected by the javascript tests.
30497 2007-12-06 Jeffrey Stedfast <fejj@novell.com>
30499 * media.cpp (media_element_get_attributes): Added.
30500 (media_element_set_attributes): Added.
30501 (MediaElement): Set an empty list of attributes as per the spec.
30503 2007-12-06 Stephane Delcroix <sdelcroix@novell.com>
30506 * brush.cpp: implement RelativeTransform for image brushes and
30507 LinearGradientBrush. RadialGradientBrush still missing.
30509 2007-12-06 Chris Toshok <toshok@ximian.com>
30511 * dependencyobject.h, dependencyobject.cpp: make
30512 EventObject::AddHandler return the id (when using the event_name
30515 2007-12-06 Chris Toshok <toshok@ximian.com>
30517 * xaml.cpp (xaml_init): register the right constructors for
30518 PathSegmentCollection, GeometryCollection, and
30519 TransformCollection.
30521 2007-12-05 Chris Toshok <toshok@ximian.com>
30523 * animation.cpp, animation.h: a couple of fixes. Move away from
30524 watching the clock state in AnimationStorage and resetting the
30525 property value there. instead, just override Clock::Stop in
30526 AnimationClock and call ResetPropertyValue on the storage.
30528 Also, when a storyboard's clock group is stopped, free it and
30529 remove it from the parent clock's list of children. This should
30530 keep us from growing the number of clocks over time for
30531 storyboards which don't have Begin() called again (the only
30532 circumstance under which we destroy the clock).
30534 * clock.cpp, clock.h: handle the case where a clock can be started
30535 and then stopped before the next clock tick. This happens when
30536 you move the mouse very quickly over the thumbnails in pageturn.
30538 2007-12-05 Sebastien Pouliot <sebastien@ximian.com>
30540 * geometry.cpp: Fix crash when EllipseGeometry is used for clipping
30541 (no path provided). Fix Build/ComputeBounds when no center point
30544 2007-12-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
30546 * uielement.h, visual.h, uielement.cpp, collection.cpp, control.cpp,
30547 dirty.cpp: Move UIElement::parent to Visual, rename it to visual_parent,
30548 and make it a real property with accessors.
30550 2007-12-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
30552 * xaml.cpp, dependencyobject.h, collection.cpp, dependencyobject.cpp,
30553 animation.cpp: Rename DependencyObject::parent/SetParent/GetParent to
30554 logical_parent/SetLogicalParent/GetLogicalParent.
30556 2007-12-04 Larry Ewing <lewing@novell.com>
30558 * media.cpp (Image::Render): fix the conditions for the opacity
30561 2007-12-03 Larry Ewing <lewing@novell.com>
30563 * src/media.cpp (Image::Render): use paint_with_alpha if opacity
30564 is changing, use the old buffered alpha if it is not.
30566 2007-12-04 Jb Evain <jbevain@novell.com>
30568 * stylus.cpp|h: add stylus_info_get_current function.
30569 Right now, it's an hack which always return a StylusInfo
30570 of type Mouse, not inverted.
30572 2007-12-03 Chris Toshok <toshok@ximian.com>
30574 * clock.h, clock.cpp: rename ClampTimeToDuration to ClampTime, as
30575 it now clamps to [0,duration_timespan]. This fixes the Simon
30576 "button flying off the screen" bug.
30578 2007-12-03 Jeffrey Stedfast <fejj@novell.com>
30580 * clock.cpp (RaiseEnqueuedEvents): Optimized a bit by not
30581 iterating thru the list 6 times :)
30582 (ClockGroup::RaiseAccumulatedEvents): Make a copy of the
30583 child_clocks list here too, or we end up corrupting memory.
30585 2007-12-03 Larry Ewing <lewing@novell.com>
30587 * media.cpp (Image::Render): wrap the region clipping in a #define
30590 2007-12-03 Larry Ewing <lewing@novell.com>
30592 * media.cpp (Image::Render): remove accumulated drawing cruft.
30594 2007-12-03 Chris Toshok <toshok@ximian.com>
30596 * animation.cpp: put back in the calls to ComputeBeginTime that I
30597 accidentally committed a few days ago (and lewing reverted to fix
30598 the build). they're needed with the new clock changes.
30600 2007-12-03 Chris Toshok <toshok@ximian.com>
30602 * clock.cpp, clock.h: rework the clock code a bunch. There are a
30603 couple of large changes.
30605 Get rid of the stupid new_ and current_ fields. Just update the
30606 field immediately. This cuts down on logic in if checks, and also
30607 makes subclocks update much faster in relation to their parent
30608 clock (we used to have to wait 1 tick per level in the tree for
30609 state to propagate).
30611 Abstract out all the QueueEvent calls into setters in clock.h.
30613 Break up Clock::Tick some, so more of the code is reusable from
30614 ClockGroup::Tick without having to call Clock::Tick and then work
30617 2007-12-03 Sebastien Pouliot <sebastien@ximian.com>
30619 * brush.cpp: Fix breakage introduced in r90549 (the matrix is
30620 already set on the pattern).
30622 2007-12-03 Jeffrey Stedfast <fejj@novell.com>
30624 * dependencyobject.cpp (RemoveHandler): Simplified a little.
30626 * animation.cpp (Stop): Remove the CompletedEvent root_clock
30627 handler. Fixes Simon's GAME OVER! textblock storyboard.
30629 2007-12-03 Jeffrey Stedfast <fejj@novell.com>
30631 * runtime.cpp: Added clipping/bounding-box override values.
30633 * uielement.cpp (DoRender): Changed optional bounding-box/clipping
30634 debugging drawing based on runtime settable bitflags.
30636 2007-12-03 Larry Ewing <lewing@novell.com>
30638 * uielement.cpp: Clean up the debug rendering code for bounding
30639 boxes and clip regions.
30641 2007-12-03 Jeffrey Stedfast <fejj@novell.com>
30643 Fixes a bug pointed out by Larry when rendering lines beginning
30644 with a 'J', where the tail escapes the bounding box.
30646 * font.cpp (Layout): Use the horiBearingX font metric.
30647 (RenderLine): Same.
30649 2007-12-03 Larry Ewing <lewing@novell.com>
30651 * brush.cpp (RadialGradientBrush::SetupBrush): add debug spew
30652 if we can't invert the matrix but still draw someting.
30654 2007-11-29 Larry Ewing <lewing@novell.com>
30656 * panel.cpp (Panel::ComputeBounds): clip the clip the subpath
30657 bounds to the clip region as well.
30659 * control.cpp (Control::ComputeBounds): differenciate between our
30660 bounds and our subpath bounds.
30662 * control.h: add bounds_with_children and GetSubpathBounds ().
30664 2007-11-29 Jeffrey Stedfast <fejj@novell.com>
30666 * font.cpp (TextFont::GetGlyphInfoByIndex): If we reach the end of
30667 the font face charmap, use unichar = 0 rather than returning NULL.
30669 2007-11-28 Chris Toshok <toshok@ximian.com>
30671 * runtime.cpp (Realloc): when we Realloc(), we need to tell the
30672 toplevel canvas to update its bounds. This *may* be wrong, but it
30673 definitely fixes matrix.
30674 (UpdateFullScreen): we need to stop the timesource when emitting
30675 the fullscreenchangeevent. otherwise we can end up stuck in a
30676 nested glib mainloop and never return from the emit (actually we
30677 never even invoke the JS callback in matrix. the nested loop
30678 happens somewhere deep in the bowels of NPN_Invoke).
30680 2007-11-28 Jeffrey Stedfast <fejj@novell.com>
30682 * media.cpp (MediaElement::UpdateProgress): Got rid of a hardcoded
30683 hack that forced the assumption of a streaming (vs progressive)
30684 media download. Also fixed to emit a DownloadProgressChanged event
30685 at progress == 1.0 (which is what th Silverlight book says we're
30688 2007-11-28 Larry Ewing <lewing@novell.com>
30690 * src/uielement.cpp (UIElement::DoRender): make sure we don't
30691 leave a path on the cairo context when clipping.
30693 2007-11-28 Chris Toshok <toshok@ximian.com>
30695 * uielement.cpp (UIElement::UIElement): compute the initial total
30696 hit test visibility.
30698 * dirty.cpp (process_dirty_elements): don't invalidate/update
30699 bounds when the hit test visibility changes.
30701 * frameworkelement.(h,cpp): calculate the bounds here using
30704 * panel.cpp: chain up to frameworkelement.
30706 2007-11-27 Jeffrey Stedfast <fejj@novell.com>
30708 * text.cpp (TextBlock::SetValue): Check the resulting Inlines
30709 collection formed from the Text property being set against the old
30710 Inlines - if no change, don't set the new Inlines collection,
30711 simply keep using the old. The idea is to prevent unnecessary
30712 layout re-calculations and invalidates.
30714 2007-11-27 Chris Toshok <toshok@ximian.com>
30716 * dirty.[cpp,h] panel.[cpp,h], control.[cpp,h], uielement.[cpp,h],
30717 canvas.cpp, collection.cpp, shape.cpp:
30719 rather large change - don't use a large rectangular bounding box
30720 encompassing both the panel's frameworkelement bounds as well as
30721 the bounds of all its children. Instead, only worry about the
30722 frameworkelement bounds, and let the children invalidate
30723 themselves. but do all this in a way that we still use the
30724 subtree's bounding box to prune rendering and hit testing.
30726 since we won't be invalidating the entire box surrounding all
30727 children, we need to propagate visibility information down the
30728 tree as we do opacity.
30730 This should really speed up most animations (such as those in
30731 sprawl and airlines) since we'll be invalidating far smaller
30734 (this code was stupidly hard for lewing and me to get right. yay
30737 2007-11-23 Larry Ewing <lewing@novell.com>
30739 * runtime.cpp: add show=expose to toggle expose display.
30741 2007-11-22 Jb Evain <jbevain@novell.com>
30743 * xaml.cpp (XamlElementInstantce::ClearSetProperties): avoid
30744 a glib warning if set_properties is NULL.
30746 2007-11-21 Chris Toshok <toshok@ximian.com>
30748 * media.cpp (MediaElement::UpdateProgress): only set 1 of
30749 DownloadProgressProperty and BufferingProgressProperty. The
30750 former is used if we're playing progressively, the latter if we're
30751 buffering before playing. This fixes the buffering animation on
30754 2007-11-21 Chris Toshok <toshok@ximian.com>
30756 * runtime.cpp (Surface::Invalidate): add the int case around the
30757 complete expression to quiet gcc.
30759 2007-11-20 Larry Ewing <lewing@novell.com>
30761 * runtime.cpp (Surface::expose_event_callback): take allocation
30762 offsets into account when invalidating and drawing. Fixes
30765 2007-11-20 Chris Toshok <toshok@ximian.com>
30767 * xaml.cpp (XamlElementInstance::ClearSetProperties): in glib <
30768 2.12, destroy the hash table and set it to NULL so we'll recreate
30771 2007-11-20 Chris Toshok <toshok@ximian.com>
30773 * collection.cpp (VisualRemoved): switch from using
30774 item->parent->ChildInvalidated(UIElement), use
30775 item->parent->Invalidate (item->GetBounds()).
30777 * uielement.h, uielement.cpp: change ChildInvalidated(Region *) to
30778 Invalidate (Region*) and update calls to it. Remove
30779 ChildInvalidated(UIElement*). Also, remove all references to the
30780 children_dirty_region field. everything goes through dirty_region
30783 * dirty.cpp: switch to using item->parent->Invalidate instead of
30784 item->parent->ChildInvalidated, and remove references to
30785 children_dirty_region.
30787 2007-11-20 Chris Toshok <toshok@ximian.com>
30789 * dependencyobject.cpp: add a ctor for EventClosure, and do a deep
30790 copy before emitting an event.
30792 2007-11-20 Jeffrey Stedfast <fejj@novell.com>
30794 * runtime.cpp (surface_get_toplevel): Removed.
30796 * uielement.cpp (uielement_get_isloaded): Removed.
30798 2007-11-20 Jb Evain <jbevain@novell.com>
30800 * downloader.h (Downloader): override SetSurface and GetSurface
30801 to work on a custom surface field.
30802 * downloader.cpp (Downloader::Downloader): initialize
30804 * runtime.h (Surface::CreateDownloader): initialize the surface
30806 * collection.cpp: when removing an UIElement from an UIElementCollection,
30807 clear out its surface to NULL.
30808 * visual.cpp: remove null check preventing to set the surface to NULL.
30809 * dependencyobject.cpp: (DependencyObject::FindName): if the
30810 current DO has no parent, fallback to its surface to try
30811 FindName on its top level element (needed to call FindName
30812 on a downloader for instance). Fixes #335018.
30814 2007-11-20 Jackson Harper <jackson@ximian.com>
30816 * xaml.cpp: If we need to reparse the attributes for an element
30817 (because we loaded a class and the props need to be set on the new
30818 class) we have to clear out the hash of properties that are marked
30819 as already set. Otherwise we get a property already set error.
30821 2007-11-20 Jackson Harper <jackson@ximian.com>
30823 * xaml.cpp: Add new function to create a value from a string
30824 without having the Kind available (you still need to have the type
30826 - SetAttribute now ensures that the attribute was set properly
30827 - If the object we are trying to set an attribute on is a managed
30828 object and there is no DependencyProperty for the attribute, we
30829 try setting the attribute on the object.
30831 2007-11-20 Sebastien Pouliot <sebastien@ximian.com>
30833 * uielement.cpp: Ensure the default value for VisibilityProperty
30834 is VisibilityCollapsed even if the value is invalid (for Javascript
30835 compatibility, since 1.1 should throw an exception). See #340799
30837 2007-11-20 Stephane Delcroix <sdelcroix@novell.com>
30839 * uielement.cpp: FullInvalidate on setting Viibility to Visible.
30842 2007-11-19 Larry Ewing <lewing@novell.com>
30844 * uielement.cpp: setup the clip before push/pop group so that
30845 we reduce the temp surface size.
30847 2007-11-16 Sebastien Pouliot <sebastien@ximian.com>
30849 * transform.cpp: Use cairo_matrix_init_translate instead of
30850 cairo_matrix_init + cairo_matrix_translate where possible (which
30851 avoid the multiplication with the identity matrix).
30853 2007-11-16 Jeffrey Stedfast <fejj@novell.com>
30855 * runtime.cpp (surface_get_toplevel): New function needed by the
30856 managed land to implement a bit of a hack for the Resize
30857 event (when someone connects to the Resize event, if the toplevel
30858 canvas is already loaded, we want to immediately call the
30861 * uielement.cpp (uielement_get_isloaded): Same.
30863 2007-11-15 Jackson Harper <jackson@ximian.com>
30866 * parsertest.cpp: Some tests I use for checking the parsing
30869 2007-11-15 Jackson Harper <jackson@ximian.com>
30871 * color.h: Add equality operators.
30873 2007-11-15 Jackson Harper <jackson@ximian.com>
30875 * xaml.cpp: use isalpha for determining whether or not an int32 is
30876 an enum. This allows things like -1 to work.
30878 2007-11-15 Jackson Harper <jackson@ximian.com>
30880 * xaml.cpp: Make sure the entire string is validate ie no 25.0XXXX
30883 2007-11-15 Jackson Harper <jackson@ximian.com>
30886 * rect.h|cpp: Update signatures to allow for error checking when
30887 creating types from strings.
30888 * xaml.h|cpp: Consolidate code to create values from strings, add
30889 some error checking. Update most of the parsing methods so it is
30890 possible to return errors when parsing.
30891 * playlist.cpp: Sig update.
30893 2007-11-15 Jackson Harper <jackson@ximian.com>
30895 * stylus.h|cpp: Initialize these collections so we don't get NULLs
30896 for GetValue on them.
30898 2007-11-14 Chris Toshok <toshok@ximian.com>
30900 * runtime.cpp (strcase_hash): swap this out for mono's eglib
30901 implementation, augmented with g_ascii_tolower, to remove the
30902 malloc/free and 2 passes over the string.
30904 2007-11-14 Chris Toshok <toshok@ximian.com>
30906 * dependencyobject.cpp: move the strcase_hash/equals functions...
30908 * runtime.cpp: here.
30910 * runtime.h: and make them public.
30912 * type.cpp.in, type.cpp (RegisterEvent): and use them here
30913 (RegisterType): and here.
30915 2007-11-14 Jb Evain <jbevain@novell.com>
30917 * media.cpp|h: remove specific Image and MediaElement
30918 accessors for progress property now that the code
30919 moved to MediaBase.
30921 2007-11-14 Jb Evain <jbevain@novell.com>
30923 * type.cpp.in, type.cpp, media.h, media.cpp: Move
30924 DownloadProgressProperty and DownloadProgressChangedEvent
30925 to MediaBase so it gets shared for both Image and MediaElement.
30928 2007-11-14 Jb Evain <jbevain@novell.com>
30930 * value.h.in: update code template to match current value.h.
30932 2007-11-14 Sebastien Pouliot <sebastien@ximian.com>
30934 * openfile.cpp: Added support for Filter and FilterIndex.
30936 2007-11-14 Sebastien Pouliot <sebastien@ximian.com>
30938 * animation.cpp: Replaced g_assert_not_reached with g_warning.
30939 At least until #340799 (enum validation) is fixed. Part of #335413
30940 * shape.cpp: Add g_warning to replace the g_assert_not_reached
30941 removed earlier. At least until #340799 (enum validation) is fixed.
30942 * uielement.cpp: Replaced g_assert_not_reached with g_warning.
30943 At least until #340799 (enum validation) is fixed. Part of #335413
30945 2007-11-13 Miguel de Icaza <miguel@novell.com>
30947 * value.cpp (Value::ToString): Add method to help debug some
30950 2007-11-13 Jeffrey Stedfast <fejj@novell.com>
30952 * text.cpp (SetValue): Get rid of \r's and treat \n's as LineBreak
30955 2007-11-13 Sebastien Pouliot <sebastien@ximian.com>
30957 * brush.cpp|h: Do not compute brush bounds for a SolidColorBrush
30958 as this is unrequired (API wise) and can be expensive (it was enough
30959 to add custom bound calculation code to shapes and geometries).
30961 2007-11-12 Sebastien Pouliot <sebastien@ximian.com>
30963 * shape.cpp: Removed g_assert_not_reached and, if any bad value is
30964 supplied (should be catched well before that, #340799), use the
30965 default value. Fix part of #335413
30967 2007-11-09 Chris Toshok <toshok@ximian.com>
30969 * dirty.cpp, uielement.h, uielement.cpp: glib was hurting my head.
30970 convert this over to using our List class. Also fix a bug where
30971 elements with down dirty flags weren't being inserted propertly
30972 into the up dirty list.
30974 2007-11-09 Sebastien Pouliot <sebastien@ximian.com>
30976 * animation.cpp: Fix crash on empty BeginStoryboard (#340384)
30978 2007-11-09 Miguel de Icaza <miguel@novell.com>
30980 * value.h (struct Value): Cope with NULL strings.
30982 2007-11-09 Jackson Harper <jackson@ximian.com>
30984 * xaml.cpp: Closepath needs to draw a line to the path's starting
30985 point and needs to create a new path figure element at the
30988 2007-11-09 Jackson Harper <jackson@ximian.com>
30990 * type.cpp|h.in: Add an accesor for the ContentProperty name.
30992 2007-11-09 Jackson Harper <jackson@ximian.com>
30994 * xaml.cpp: Rework to allow unparented properties. createFromXaml
30995 ("<Canvas.Background><SolidColorBrush></Canvas.Background") will
30996 basically ignore the property and will return the SolidColorBrush
30997 as the top element. This fixes 335865.
30999 2007-11-08 Chris Toshok <toshok@ximian.com>
31001 [ may go a long way toward fixing #337714, if it doesn't fix it
31004 * uielement.h, uielement.cpp: add an overload of ChildInvalidated
31005 that takes a UIElement* instead of a region. The implementation
31006 just invalidates the entire bounds of the child in the parent.
31008 * collection.h, collection.cpp: we weren't breaking the
31009 item->parent link when removing visuals from a VisualCollection.
31010 Add VisualRemoved, which invalidates the child's region (and stop
31011 using child->Invalidate, since that won't work once the link to
31012 the parent is broken) and breaks the parent link. Call
31013 VisualRemoved from everywhere we remove/replace a visual in our
31014 collection. Also, rename VisualUpdated to VisualAdded, since
31015 that's more indicative of why the method is being called.
31017 2007-11-08 Jeffrey Stedfast <fejj@novell.com>
31019 * runtime.cpp (Attach): Emit the Resize event.
31020 (drawing_area_size_allocate): Emit the Resize event.
31022 2007-11-07 Chris Toshok <toshok@ximian.com>
31024 * clock.cpp (Clock::Begin): guard against division by zero.
31026 2007-11-07 Chris Toshok <toshok@ximian.com>
31028 * runtime.cpp, runtime.h: make GetWidth()/GetHeight() return the
31029 width the canvas tells the surface to be (if it does). this fixes
31030 issues uncovered by larry's improved bounds checking code. Also,
31031 remove the instance fields for screen_height/width. they're only
31032 used in one place, so make them local to that function.
31034 2007-11-07 Chris Toshok <toshok@ximian.com>
31036 * brush.h, brush.cpp: add some c++ setters/getters to make some
31037 code a little smaller.
31039 2007-11-06 Larry Ewing <lewing@novell.com>
31041 * src/frameworkelement.cpp: Force a full invalidate if the width
31042 or height property because panels include their children in the
31043 bounds compution and will pass the dirty check.
31045 * media.cpp: Implement the Region based rendering for MediaElement
31048 * panel.cpp: Unconditionally pass the region to the Children.
31050 * panel.cpp: when rendering children treat panels and other
31051 objects differently. For containers pass the clipped region
31052 directly, for elements subdivide the region and paint each block.
31053 Renable FindStartingElement with a slightly less expensive
31056 * rect.cpp: don't collapse complicated regions the drawing code is
31059 2007-11-06 Jeffrey Stedfast <fejj@novell.com>
31061 * font.cpp (TextFont): Fixed to not exit() even when no font could
31062 be loaded from FreeType.
31064 2007-11-06 Chris Toshok <toshok@ximian.com>
31066 * dependencyobject.cpp (GetObjectType): make this g_critical, and
31067 also print out a stack trace if STACK_DEBUG is enabled.
31069 * dependencyobject.h: stop Emitting the DestroyedEvent from the
31070 dtor. instead do it from unref before we delete the object.
31072 2007-11-05 Chris Toshok <toshok@ximian.com>
31074 * rect.h (ToGdkRectangle): quiet countless warnings.
31076 2007-11-05 Larry Ewing <lewing@novell.com>
31078 Merge most of dirty region branch. This makes the dirty logic and
31079 rendering code use the new region class to track more complicated
31080 shapes than bounding boxes when processing changed areas.
31082 * media.cpp: switch back to indirect rendering for drawing media
31083 elements until a solution to the boundry clipping can be found.
31085 * panel.cpp: disable FindStartingElement (the buggy) until a more
31086 optimal method can be found.
31088 * dirty.cpp: Use dirty regions. Process DirtyOpacity first (still
31089 needs to be fixed to order dirty children.
31091 2007-11-03 Chris Toshok <toshok@ximian.com>
31093 * clock.cpp (ClockGroup::Tick): instead of calling Clock::Stop,
31094 call SkipToFill if we have no active child clocks.
31095 (ClockGroup::Stop): simplify this.
31096 (ClockGroup::Seek): make this look a little more like ::Stop.
31098 2007-11-03 Chris Toshok <toshok@ximian.com>
31100 * xaml.cpp (repeat_behavior_from_str): add support for the
31101 "ff.ffx" format for repeat behaviors.
31103 * clock.cpp, clock.h: the first sizeable amount of work done in a
31104 while to correct the multitude of tiny bugs in clock handling.
31105 this gets AnimationMatrix.xaml maybe 40% working. Clean up and
31106 comment Clock::Tick a lot, and remove a bunch of the old
31107 CLOCK_DEBUG spew which was making the code that much more
31108 difficult to look at.
31110 2007-11-02 Jeffrey Stedfast <fejj@novell.com>
31112 * font.cpp (TextFontDescription::SetScale): Removed, this hack
31113 wasn't working as well as I'd hoped.
31114 (TextFontDescription::GetScale): Same.
31115 (TextFontDescription::CreatePattern): If the requested font size
31116 is < 41.0 (seems to be the magic number where scaling loses impact
31117 on metrics), use FontSize=41.0 and do proper scaling to get the
31118 actual size we want. My worry was that asking for small font sizes
31119 (smaller than 16.0?) would look ugly with this hack, but that is
31120 surprisingly not true. By always requesting a font size that will
31121 yield the generic font metrics (e.g. not some hacked font size),
31122 we will always be able to wrap identically no matter what FontSize
31123 is requested (so long as the width gets scaled appropriately).
31125 * text.cpp (TextBlock::ComputeTransform): Removed.
31127 2007-11-02 Jeffrey Stedfast <fejj@novell.com>
31129 * font.cpp (RenderLine): Render glyphs with index 0 too, so that
31130 we render an empty box for glyphs not in the font (just like
31133 * text.cpp (ComputeTransform): Fixed to use the correct matrix for
31134 getting the scale values.
31136 2007-11-01 Jackson Harper <jackson@ximian.com>
31144 * panel.h: Add ContentProperty 'attributes'.
31146 * type.cpp|h: Add content property information to types. This
31147 will be used by the parser and will allow the parser to drop it's
31148 special type system.
31150 2007-11-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
31152 * animation.cpp: AnimationStorage: unregister from registered events on
31155 2007-11-01 Jeffrey Stedfast <fejj@novell.com>
31157 * text.cpp (TextBlock::SetValue): Oops - if we are setting an
31158 empty string on the Text property, then we need to clear out
31159 whatever was there before (if anything).
31161 2007-10-31 Jeffrey Stedfast <fejj@novell.com>
31163 Fixes for handling lwsp cdata between <Run> elements.
31165 * xaml.cpp (flush_char_data): Reworked a bit. Now takes a 'start'
31166 arg suggesting that we are being called in response to a new
31167 element starting vs an element ending.
31168 (start_element_handler): Pass true as the start arg to
31170 (end_element_handler): Pass false as the start arg to
31173 * text.cpp (SetValue): Only add a run if the string is non-empty.
31175 2007-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
31177 * dependencyobject.cpp: Guard against calling NULL.
31179 2007-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
31181 * media.cpp: Redo ASFParser::Malloc to avoid warnings, and make sure the
31182 return value is always checked.
31184 2007-10-31 Chris Toshok <toshok@ximian.com>
31186 * trigger.cpp (EventTrigger::SetTarget,
31187 EventTrigger::RemoveTarget): use UIElement::LoadedEvent instead of
31190 2007-10-31 Jackson Harper <jackson@ximian.com>
31192 * dependencyobject.h|cpp: Give DependencyProperties the ability to
31195 * animation.cpp: Signature updates
31197 2007-10-30 Jackson Harper <jackson@ximian.com>
31199 * xaml.h: Add the error args to the loader.
31200 * xaml.cpp: Make most of our parsing errors match Silverlight.
31202 2007-10-30 Jeffrey Stedfast <fejj@novell.com>
31204 * font.cpp (Path): Check the path data != NULL before we make any
31205 cairo calls, no sense wasting cycles if we will no-op in the end.
31207 2007-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
31209 * media.cpp, media.h: Fix signedness mismatch warning.
31211 2007-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
31213 * mplayer.h: Added asf_player field.
31215 2007-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
31217 * Makefile.am: Add files in asf/.
31218 * media.cpp, media.h: Read ASF markers from the file. Save the position when
31219 advancing frames. Use the difference between the last position and the
31220 current position to determine if any MarkerReached events are supposed
31222 * mplayer.cpp: Add some error checking/reporting when opening streams.
31223 Register our own demuxer with ffmpeg (defining MOON_DEMUXER is required
31224 to actually use it).
31226 2007-10-26 Jeffrey Stedfast <fejj@novell.com>
31228 * font.cpp (RenderLine): Split out from TextLayout::Render() and
31229 made to reset the brush at each segment to match Silverlight's
31232 2007-10-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
31234 * debug.cpp: Added print_gdb_trace with an explaining comment.
31235 * debug.h: Make print_stack_trace compile (to nothing) when STACK_DEBUG
31238 2007-10-25 Jeffrey Stedfast <fejj@novell.com>
31240 * font.cpp (TextLayout::Render): Set y1 before creating/appending
31241 the path instead of in the segment loop.
31242 (TextLayout::Render): Make underline pos relative to y1 (aka the
31243 baseline) that we calculated above. Makes this easier to
31246 2007-10-25 Jeffrey Stedfast <fejj@novell.com>
31248 * font.cpp (TextLayout::Layout): Always calculate segment->width
31250 (TextLayout::Render): Not here.
31252 * text.cpp (Glyphs::GetTransformOrigin): Implemented.
31254 2007-10-25 Jackson Harper <jackson@ximian.com>
31257 * runtime.h|cpp: Add the Error event to the surface. Raising this
31258 event will cause the plugins onError handler to be invoked, the
31259 default onError handler notifies the user of the error with a
31262 2007-10-25 Sebastien Pouliot <sebastien@ximian.com>
31264 * stylus.cpp|h: Keep the semi-working code as a fast path to
31265 render strokes (if no outline color is used and when width ==
31266 height). Added a hack to support OutlineColor.
31268 2007-10-25 Jeffrey Stedfast <fejj@novell.com>
31270 * brush.cpp (Brush::SetupBrush): Now takes width and height
31271 arguments. Updated all brushes.
31273 * text.cpp (Glyphs::Render): We want to check this->width and
31274 this->height, not the width/height arguments.
31276 * brush.cpp (ImageBrush::SetupBrush): If the image isn't loaded
31277 yet (surface = NULL), return.
31278 (LinearGradientBrush::SetupBrush): Get rid of some of the valgrind
31281 2007-10-24 Jeffrey Stedfast <fejj@novell.com>
31283 * text.cpp (Glyphs::GetSizeForBrush): Implemented.
31285 * font.cpp (TextLayout::Layout): Slight fix for Wrap mode.
31287 2007-10-24 Jackson Harper <jackson@ximian.com>
31289 * type.cpp.in/h.in: Add some c-style functions for creating
31292 2007-10-24 Jackson Harper <jackson@ximian.com>
31295 * type.cpp.in/h.in: Add a create instance call to types. This
31296 will allow the parser to use our Type object instead of creating
31299 2007-10-24 Chris Toshok <toshok@ximian.com>
31301 * clock.cpp (ManualTimeSource::SetCurrentTime): pass FALSE to
31302 g_main_context_iteration so we don't block if there isn't anything
31303 to do. also, emit 3 TickEvents to make sure the tick is
31304 propagated down into the animations.
31306 2007-10-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
31308 * xaml.cpp: No need to check if the created object is an UIElement before
31309 calling SetSurface anymore.
31310 * visual.h: Update SetSurface to virtual.
31311 * brush.cpp, brush.h: Override SetSurface so that we can forward the call to
31313 * dependencyobject.h: Add virtual Set/GetSurface to DependencyObject (here
31314 the methods do nothing, the surface is still stored in Visual, but this
31315 allows classes that do not inherit from Visual to correctly set the
31316 surface on their members which do inherit from Visual).
31318 2007-10-24 Jeffrey Stedfast <fejj@novell.com>
31320 * uri.cpp (Uri::Parse): Treat uri's w/o a protocol as file uri's.
31322 2007-10-23 Jeffrey Stedfast <fejj@novell.com>
31324 * text.cpp (TextBlock::ComputeTransform): If the scale has
31325 changed, set dirty = true so that we recalculate the layout.
31327 * mplayer.cpp (audio_play): Instead of using the SET_VOLUME()
31328 macro, just do it w/o so that we hush the compiler warning.
31330 2007-10-23 Chris Toshok <toshok@ximian.com>
31332 * clock.cpp (Clock::GetBeginTime): stop treating the BeginTime of
31333 a clock in absolute terms. instead, offset it from the current
31334 time of the parent clock (or time manager).
31335 (Clock::Begin): clamp progress to 1.0
31336 (SMOOTHING_ALPHA): switch this to 0.30 to see if that helps things
31337 by making it less sensitive to immediate changes.
31339 2007-10-23 Chris Toshok <toshok@ximian.com>
31341 * mplayer.cpp (Open): if RUNTIME_INIT_AUDIO_DISABLE, don't use
31342 audio (so we sync to the clock).
31344 * runtime.h: add RUNTIME_INIT_AUDIO_DISABLE.
31346 2007-10-23 Chris Toshok <toshok@ximian.com>
31348 * clock.cpp (ManualTimeSource::SetCurrentTime): call
31349 g_main_context_iteration as a stopgap to make video elements show
31351 (TimeManager::TimeManager): remove spew.
31352 (TimeManager::Tick): re-enable the clock throttling. oops.
31354 2007-10-23 Larry Ewing <lewing@novell.com>
31356 * src/runtime.cpp: clear the background in more cases.
31358 2007-10-23 Larry Ewing <lewing@novell.com>
31360 * src/runtime.cpp: make the eventbox windowless and remove the
31361 stale event code. Let gtk do the clearing.
31363 2007-10-23 Jeffrey Stedfast <fejj@novell.com>
31365 * mplayer.cpp (MediaPlayer::Open): Re-enable audio :)
31366 (MediaPlayer::LoadVideoFrame): Keep decoding video until we find
31367 the correct frame rather than just rendering the first frame we
31370 2007-10-23 Chris Toshok <toshok@ximian.com>
31372 * mplayer.cpp: replace all occurences of av_gettime with
31373 TimeManager::Instance()->GetCurrentTimeUsec().
31375 * runtime.cpp (overrides): add the "timesource=manual" OVERRIDE
31377 (render_cb): re-enable the fps on the console. oops.
31379 * runtime.h (RuntimeInitFlags): add
31380 RUNTIME_INIT_TIMESOURCE_MANUAL.
31382 * type.h.in, type.cpp.in: remove BASE (should have happened on my
31383 last commit), and add in the TIMESOURCE's, and TIMESOURCE's "Tick"
31386 * type.h, type.cpp: sync to the .in files.
31388 * clock.h, clock.cpp: add the idea of a TimeSource to the
31389 TimeManager. Two are written - SystemTimeSource, which uses the
31390 gtk timeout, and ManualTimeSource, which allows code to set what
31391 the global time should be. Also, add GetCurrentTimeUsec() for use
31392 by mplayer, so we can switch it away from av_gettime and make it
31393 possible for video to sync to the ManualTimeSource.
31395 2007-10-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
31397 * runtime.cpp: Base -> EventObject changes when OBJECT_TRACKING is defined.
31399 2007-10-23 Larry Ewing <lewing@novell.com>
31401 * runtime.cpp: make sure we unref the surface.
31403 2007-10-23 Larry Ewing <lewing@novell.com>
31405 * runtime.cpp: avoid making gdk calls that pull in the platform
31408 2007-10-22 Jeffrey Stedfast <fejj@novell.com>
31410 * text.cpp: Don't allow Pango rendering if disabled at
31412 (TextBlock::ComputeTransform): Moved the scale logic here from
31413 OnPropertyChanged() so that we catch all transform changes.
31415 * uielement.h: Made ComputeTransform() virtual.
31417 2007-10-22 Chris Toshok <toshok@ximian.com>
31419 * clock.cpp (TimeManager::Shutdown): don't cast to Base anymore..
31420 we can just cast to Clock here.
31422 * dependencyobject.h, dependencyobject.cpp: remove the Base class,
31423 and make roll EventObject and Base into one class (still called
31426 2007-10-20 Sebastien Pouliot <sebastien@ximian.com>
31428 * runtime.h: Add gtk.h (since it depended on stylus.h to get it)
31429 * stylus.cpp|h: Add some missing functions. Rendering changes
31430 (not active, work in progress).
31432 2007-10-18 Chris Toshok <toshok@ximian.com>
31434 * dependencyobject.h: fix comment.
31436 * animation.h, animation.cpp: use the
31437 Clock::CurrentStateInvalidated event to reset the property value
31438 to baseValue instead of overriding the Clock::Stop method. This
31439 fixes clocks with FillBehavior="Stop" instead of storyboard with
31440 FillBehavior="Fill".
31442 * clock.cpp (Clock::Tick): remove a stupid block of code that was
31443 causing clocks which were Filling to spontaneously end up in their
31444 Active state again.
31446 2007-10-18 Sebastien Pouliot <sebastien@ximian.com>
31448 * geometry.cpp: New code to handle arc segments. No known issues
31449 (except the handling of near zero values which doesn't seems to
31451 * libmoon.h, Makefile.am: Remove reference to rsvg.h
31452 * rsvg.cpp|h: Remove from SVN.
31454 2007-10-17 Andrew Jorgensen <ajorgensen@novell.com>
31456 * cairo-embed.h, pixman-embed.h: Added symbol renaming headers
31457 based on the ones from libgdiplus.
31459 2007-10-17 Chris Toshok <toshok@ximian.com>
31461 * xaml.cpp (XNamespace::SetAttribute): make sure to add the newly
31462 created managed dob to the created_elements list so it gets
31464 (XamlLoader::XamlLoader): use ->ref() instead of base_ref().
31465 (XamlLoader::~XamlLoader): use ->unref() instead of base_unref().
31467 2007-10-17 Chris Toshok <toshok@ximian.com>
31469 * Makefile.am (demo_LDADD): add MOON_PROG_LIBS.
31470 (sizes_LDADD): same.
31472 2007-10-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
31474 * dependencyobject.h: Add a GET_OBJ_ID macro that resolves to -1 if
31475 OBJECT_TRACKING isn't defined.
31476 * runtime.h: Enable the contextual downloader warning again.
31477 * dependencyobject.cpp: Fix build when DEBUG is defined.
31479 2007-10-16 Jeffrey Stedfast <fejj@gnome.org>
31481 * text.cpp (OnPropertyChanged): When intercepting non-TextBlock
31482 properties changing value, don't fall thru to the rest of the
31483 checks (as then we'd re-emit it to sublisteners which isn't what
31484 we want I don't think). Also, don't change the font scale unless
31485 it's >= 1.0 (e.g. don't down-scale). Fixes an infinite loop.
31487 2007-10-16 Jeffrey Stedfast <fejj@novell.com>
31489 * text.cpp (OnPropertyChanged): Listen for RenderTransformProperty
31490 changes and apply the y-scale to the font so that we can more
31491 accurately path the font glyphs at the scale we intend to render
31494 * font.cpp (TextFont): Cache the scale here.
31495 (Kerning): Apply the scale.
31496 (Descender): Here too.
31497 (Ascender): And here.
31499 (GetGlyphInfo): Create and apply the scale/invert matrix. Also
31500 scale the glyph metrics.
31501 (UnderlinePosition): Apply the scale.
31502 (UnderlineThickness): Same here.
31503 (TextFontDescription): Added a scale, default to 1.0
31504 (CreatePattern): Set the scale on the pattern.
31505 (UnsetFields): When unsetting values, restore them to their
31507 (Merge): Merge the scale.
31508 (GetScale): New method.
31509 (SetScale): New method.
31511 2007-10-16 Chris Toshok <toshok@ximian.com>
31513 * dependencyobject.cpp (detach_depobj_values): call
31514 obj->SetParent(NULL) here as well, so we don't reference a
31517 * runtime.cpp (Surface::Surface): use Surface::timeline instead of
31519 (Surface::~Surface): make sure to remove the surface's clock_group
31520 from the time manager. Also, unref the timeline we create in the
31522 (runtime_shutdown): reimplement the oldest 10 alive object
31523 printing stuff in the face of using a hashtable.
31525 * runtime.h: add Surface::timeline, so we can clean it up in
31528 * dependencyobject.h (Base::) use a hash table to track alive
31529 objects instead of a list. this speeds up things immensely.
31531 * clock.cpp (ClockGroup::~ClockGroup): call SetParent(NULL) on our
31532 children so any further GetParent() calls won't return a destroyed
31535 * animation.cpp (Storyboard::~Storyboard): guard against a crash
31536 when a parent clock is freed before the child clock.
31538 * text.cpp (TextBlock::TextBlock): plug a couple memory leaks.
31540 2007-10-15 Chris Toshok <toshok@ximian.com>
31542 * animation.[h,cpp]: remove the strong reference from
31543 AnimationStorage to its target object, and instead use the
31544 EventObject::DestroyEvent to implement a weak reference. See the
31545 TODO for a blurb about generalizing this.
31547 * typegen.cs (GenerateTypeCpp): remove the special case code that
31548 makes INVALID the parent of DEPENDENCY_OBJECT - we need it to have
31549 EVENTOBJECT as the parent for the DestroyedEvent to line up
31550 properly in the event tables.
31552 * type.cpp.in, type.cpp (types_init_register_events): register the
31555 * dependencyobject.[h,cpp]: add EventObject::DestroyedEvent,
31556 emitted just before we clean up the EventObject's event list.
31558 2007-10-15 Jeffrey Stedfast <fejj@novell.com>
31560 * text.cpp (Layout): I think I finally figured out the scaling to
31561 apply to the units provided in the Indices property and also
31562 discovered that the Advance is not applied at the uOffset, it is
31563 applied independently of the uOffset.
31564 (Render): Same fixes as in Layout().
31566 2007-10-13 Chris Toshok <toshok@ximian.com>
31568 * animation.cpp (balf): fix bug 325175 by not taking the square
31569 root of a negative number (fixes the flashing in the credits for
31570 Monotone.) Also clean up this code so that we're not using
31571 globals to communicate parameters (through Simpson) between balf
31572 and BezierArcLength, and lower the tolerance (I doubt we need
31573 *that* much precision).
31575 2007-10-12 Chris Toshok <toshok@ximian.com>
31577 * control.[h,cpp], brush.[h,cpp], text.[h,cpp], geometry.[h,cpp],
31578 dependencyobject.[h,cpp], shape.[h,cpp], animation.[h,cpp],
31579 transform.[h,cpp]: add an extra parameter to OnSubPropertyChanged,
31580 which gives the actual object whose property changed. Also, in a
31581 few instances fix the NotifyAttachersOnPropertyChanged call that
31582 some classes used to not use the subprop, but the prop. The
31583 subprop doesn't refer to "this" in those instances, but to @obj.
31584 @prop refers to "this".
31586 * collection.[h,cpp]: use the above change to correctly support
31587 the DependencyObject parameter of OnCollectionChanged (when the
31588 change type is ItemChanged).
31590 * uielement.[h,cpp], panel.[h,cpp]: use the above two changes to
31591 move the ZIndex property support from UIElement to Panel, which
31592 makes more logical sense (and is likely the reason MS removed the
31593 property from UIElement in 1.1) -- ZIndex is about what happens to
31594 this UIElement in relation to its siblings.
31596 2007-10-12 Sebastien Pouliot <sebastien@ximian.com>
31598 * shape.cpp: Only set miter limit if line join is set to miter.
31600 2007-10-12 Chris Toshok <toshok@ximian.com>
31602 * collection.cpp: move the panel logic away from VisualCollection.
31603 It belongs in Panel::OnCollectionChanged.
31605 * panel.cpp: flesh out Panel::OnCollectionChanged, making it do
31606 everything the VisualCollection code used to do on its behalf.
31608 * uielement.h, uielement.cpp: introduce a new field for use with
31609 the dirty code - force_redraw_of_new_bounds. Basically, we set
31610 the field according to the parameter passed to UpdateBounds.
31612 * dirty.cpp (UpdateBounds): force an invalidate if
31613 el->force_redraw_of_new_bounds is set.
31615 2007-10-12 Chris Toshok <toshok@ximian.com>
31617 * clock.h, clock.cpp: add some Timeout functions (AddTimeout,
31618 RemoveTimeout) which wrap the glib timeout calls we were making.
31619 This lets us keep track of active timeout ids and remove them all
31620 when the TimeManager shuts down. So, if we leak MediaElements
31621 (which seems to be happening in TopBanana), we don't crash.
31623 * mplayer.cpp: use the new TimeManager timeout call instead of the
31624 glib mainloop directly.
31628 2007-10-12 Jeffrey Stedfast <fejj@novell.com>
31630 * downloader.cpp (downloader_init): Default the DownloadProgress
31633 2007-10-12 Jackson Harper <jackson@ximian.com>
31635 * downloader.h: Add an access to the downloader state. I need
31636 this in the plugin.
31638 2007-10-12 Jb Evain <jbevain@novell.com>
31640 * brush.cpp|h: add image_brush_set_source.
31642 2007-10-11 Jeffrey Stedfast <fejj@novell.com>
31644 * mplayer.cpp (convert_to_rgb): Worked around an swscaler crash
31645 where it doesn't handle J-Type picture frames.
31647 2007-10-11 Sebastien Pouliot <sebastien@ximian.com>
31649 * panel.cpp|h: Split Render into Render and RenderChildren, so
31650 the later can be overriden in InkPresenter.
31651 * stylus.cpp|h: A quick (see FIXME) implementation to render
31652 ink found in some xaml files.
31654 2007-10-11 Jeffrey Stedfast <fejj@novell.com>
31656 * mplayer.cpp: Updated to use the new Queue class.
31657 (AdvanceFrame): Accessing the queue directly as a linked list
31658 allows us to simplify the loop a little so that we don't have to
31659 keep a reference to the previous packet's decoded frame.
31661 * list.cpp: Added a new Queue class which will replace GAsyncQueue
31664 2007-10-11 Jeffrey Stedfast <fejj@novell.com>
31666 * mplayer.cpp: Added ctors/dtors for Audio and Video structs.
31667 (AdvanceFrame): Keep a reference to the previous frame in case we
31668 reach the end of the queue.
31670 2007-10-11 Jb Evain <jbevain@novell.com>
31672 * dependencyobject.cpp|h: add dependency_object_set_name.
31674 * media.cpp|h: add media_attribute_get_value and
31675 media_attribute_set_value
31677 * playlist.cpp|h: populate MediaAttributeCollection when
31678 a playlist entry is opened.
31680 2007-10-11 Larry Ewing <lewing@novell.com>
31682 * dirty.cpp, uielement.cpp|h: Use gdk_regions to tract dirty
31683 areas... have more fun in general.
31685 * src/rect.h: replace Floor function with RoundOut function.
31686 * panel.cpp, dirty.cpp: use RoundOut where appropriate. Fixes
31687 clipping issue in sprawl.
31689 2007-10-11 Sebastien Pouliot <sebastien@ximian.com>
31691 * xaml.cpp: Let InkPresenter handle childs like a Canvas (from
31694 2007-10-11 Jb Evain <jbevain@novell.com>
31696 * playlist.cpp: replace C++ casts to plain casts.
31698 2007-10-11 Jb Evain <jbevain@novell.com>
31700 * collection.cpp: replace dynamic_casts with plain casts
31701 as per Miguel suggestion.
31703 2007-10-11 Jb Evain <jbevain@novell.com>
31705 * collection.cpp|h: add, implement and expose the
31706 MediaAttributeCollection::GetItemByName method.
31708 2007-10-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
31710 * downloader.cpp, downloader.h: Fix some const char/char mismatch warnings.
31712 2007-10-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
31714 * text.h, animation.h, text.cpp: Fix some const char/char mismatch warnings.
31715 * dependencyobject.h, dependencyobject.cpp, animation.cpp: Remove some const
31716 char/char mismatch warnings.
31717 * visual.cpp: Fix no newline warning.
31718 * runtime.cpp: Fix a initialization warning.
31719 * demo.cpp: Remove unused variable.
31721 2007-10-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
31723 * dependencyobject.cpp: base_unref_delayed: do nothing if base is NULL,
31724 matches base_unref behaviour.
31725 * dependencyobject.h: Use g_atomic_int* to make ref counting atomic
31728 2007-10-10 Chris Toshok <toshok@ximian.com>
31730 * runtime.cpp (runtime_shutdown): explicitly drain all remaining
31731 pending managed unrefs.
31733 * dependencyobject.cpp: remove the Base::ref/unref implementations
31734 from here. Add the threadsafe base_unref_delayed code, as well as
31735 code to manage a tick call to free up the instances on the next
31736 clock tick. Also provide an external api (drain_unrefs -- bad
31737 name, fix me plz k thx) so that runtime.cpp can explicitly unref
31738 everything when we shutdown (if they haven't already been dealt
31741 * dependencyobject.h: clean up the OBJECT_TRACKING ifdefs so that
31742 we don't have 2 implementations of all these methods. Instead,
31743 just ifdef the relevant portions of the methods, and keep them in
31744 dependencyobject.h. Also, add prototypes for drain_unrefs and
31745 base_unref_delayed, which is called from managed code.
31747 * collection.h, collection.cpp: make Clear take an optional
31748 "emit_event" argument (default = true.) Call Clear instead of
31749 list->Clear(true) in our dtor so we clean up the namespaces and
31752 * debug.cpp: use an extern "C" block. looks nicer.
31754 2007-10-10 Sebastien Pouliot <sebastien@ximian.com>
31756 * brush.cpp: Handle GradientStop with negative offset like
31757 Silverlight (seems to) do.
31759 2007-10-10 Chris Toshok <toshok@ximian.com>
31761 * panel.cpp (Panel::~Panel): no need to clear our Children
31762 collection. the normal dtor stuff will do that for us.
31764 2007-10-10 Larry Ewing <lewing@novell.com>
31766 * media.cpp: Fill with the element extents don't just paint the
31767 surface because if the stretch is specified we may end up painting
31768 outside the proper area.
31770 2007-10-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
31772 * media.cpp: When updating the MediaElement's progress, get the Downloader's
31773 DownloadProgressProperty.
31775 2007-10-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
31777 * visual.cpp, visual.h: Added visual_set_surface, and guard against
31778 overwriting a set surface with null.
31780 2007-10-10 Jackson Harper <jackson@ximian.com>
31782 * collection.cpp: Set the surface when adding a visual element.
31784 2007-10-10 Jackson Harper <jackson@ximian.com>
31786 * shape.cpp: We need to do something when line properties are
31787 changed. Fixes test-animation-line.xaml
31789 2007-10-10 Jackson Harper <jackson@ximian.com>
31791 * xaml.cpp: Don't allow the same property to be set twice.
31793 2007-10-09 Jackson Harper <jackson@ximian.com>
31795 * xaml.cpp: When we create custom elements we also need to set the
31796 surface on them and mark them for cleanup.
31798 2007-10-09 Jackson Harper <jackson@ximian.com>
31800 * xaml.cpp: When we are creating objects from a string, set the
31801 encoding to utf8 so that expat doesn't try to determine the
31802 encoding from the ?xml declaration (which will be incorrect
31803 because the string is in utf8).
31805 2007-10-09 Chris Toshok <toshok@ximian.com>
31807 * clock.cpp (ClockGroup::Stop): If the clock group has children we
31808 depend on stopping them first. But if the clock group is without
31809 children, chain up to Clock::Stop here.
31811 2007-10-09 Jb Evain <jbevain@novell.com>
31813 * uielement.h: define new methods RenderClipPath and
31814 IntersectBoundsWithClipPath.
31815 * uielement.cpp: implement them.
31816 * panel.cpp, shape.cpp, media.cpp: use them.
31818 2007-10-09 Chris Toshok <toshok@ximian.com>
31820 * clock.cpp, trigger.cpp, uielement.cpp, geometry.cpp, shape.cpp,
31821 frameworkelement.cpp, transform.cpp, media.cpp, animation.cpp,
31822 brush.cpp, text.cpp: s/Attachee/Attacher.
31824 * dependencyobject.h: couple of Detach changes: 1) Add a DetachAll
31825 call that is used at dtor time to call Detach on all
31826 DependencyObject-subclassed Values, and 2) make NULL available in
31827 detach as a wildcard - passing NULL for the property detaches all
31828 properties that the current object might be watching on.
31830 Also, correct a longstanding problem in terminology/api. if A's
31831 code calls B->Attach (..., this), then A is the Attacher, not the
31832 Attachee. Basically s/Attachee/Attacher in all places,
31835 * dependencyobject.cpp: same changes as above. Also, change the
31836 current_values hash table to key off the DependencyProperty, not
31837 off the DependencyProperty name. This allows us to use a direct
31838 hash, as opposed to a string hash.
31840 * collection.cpp (dtor): make sure sure to detach from all the
31841 list elements before we clear the list.
31843 2007-10-09 Jeffrey Stedfast <fejj@novell.com>
31845 * font.cpp (Layout): Only break words on ASCII lwsp, we should not
31846 break on nbsp's for example.
31848 2007-10-09 Jackson Harper <jackson@ximian.com>
31850 * xaml.cpp: Make sure the Surface gets set on custom created
31851 UIElements. Also add them to the created list, so they get freed.
31853 2007-10-09 Jackson Harper <jackson@ximian.com>
31855 * control.cpp: Since controls are UIElements we need to make sure
31856 their surface is set when we create them from XAML.
31858 2007-10-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
31860 * dependencyobject.cpp: resolve_property_path: Add a nullcheck.
31862 2007-10-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
31864 * debug.cpp, debug.h: Conditionally compile support for managed stack
31867 * runtime.cpp: add more debug code.
31869 2007-10-08 Jeffrey Stedfast <fejj@novell.com>
31871 * text.cpp (OnPropertyChanged): We may need to relayout even if
31872 the wrapping is set to NoWrap.
31874 2007-10-08 Zoltan Varga <vargaz@gmail.com>
31876 * text.cpp (OnPropertyChanged): Do a relayout if the Width property
31877 changes and text wrapping is enabled.
31879 2007-10-08 Jeffrey Stedfast <fejj@novell.com>
31881 * mplayer.cpp (Open): If the media has video, load the first video
31884 (AdvanceFrame): Fixed to "end" properly.
31886 * media.cpp: Don't manually call DisplayFrame() anymore.
31888 2007-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
31890 * xaml.cpp: Set the surface of newly created objects (where applicable).
31891 * canvas.h, uielement.h, canvas.cpp: Move the surface field to Visual.
31892 * playlist.cpp, media.cpp, text.cpp: Create the downloader using Surface'
31893 brand new CreateDownloader method.
31894 * visual.h: Added a surface field, complete with setters and getters.
31895 * downloader.cpp, downloader.h: Add a context field.
31896 * runtime.h: Add a downloader_context field, and CreateDownloader methods.
31897 * runtime.cpp: Add a downloader_context field.
31899 2007-10-09 Larry Ewing <lewing@novell.com>
31901 * media.cpp: add clipping to shape::DoDraw and to the bounds
31904 2007-10-08 Larry Ewing <lewing@novell.com>
31907 * panel.cpp: intersect the bounds with the clip path to
31908 optimize the invalidated region.
31910 * shape.cpp: return 0.0 when shape_get_stroke_thickness is called
31913 2007-10-08 Larry Ewing <lewing@novell.com>
31916 * panel.cpp: intersect the bounds with the clip path to
31917 optimize the invalidated region.
31919 * shape.cpp: return 0.0 when shape_get_stroke_thickness is called
31922 2007-10-08 Larry Ewing <lewing@novell.com>
31925 * panel.cpp: intersect the bounds with the clip path to
31926 optimize the invalidated region.
31928 * shape.cpp: return 0.0 when shape_get_stroke_thickness is called
31931 2007-10-08 Larry Ewing <lewing@novell.com>
31934 * panel.cpp: intersect the bounds with the clip path to
31935 optimize the invalidated region.
31937 * shape.cpp: return 0.0 when shape_get_stroke_thickness is called
31940 2007-10-08 Larry Ewing <lewing@novell.com>
31943 * panel.cpp: intersect the bounds with the clip path to
31944 optimize the invalidated region.
31946 * shape.cpp: return 0.0 when shape_get_stroke_thickness is called
31949 2007-10-08 Larry Ewing <lewing@novell.com>
31951 * runtime.cpp: change previous logic to drop the alpha
31952 completely here until more testing can be done.
31954 2007-10-08 Larry Ewing <lewing@novell.com>
31956 * runtime.cpp: draw the background color blended over white.
31958 2007-10-08 Larry Ewing <lewing@novell.com>
31960 * media.cpp: render clip paths on media elements.
31962 2007-10-07 Larry Ewing <lewing@novell.com>
31967 * array.cpp: use g_utf8_next_char in some places to start making
31968 the parsers more utf8 safe. Make rect/point_from_str more robust
31969 against separator characters
31971 2007-10-07 Chris Toshok <toshok@ximian.com>
31973 * clock.cpp (Clock::Tick): make sure we're reversed before
31974 switching to Fill if the clock is at 0 (and make sure we're not
31975 reversed before switching to Fill on the other end of the
31976 timespan). Some animations were skipping directly to fill without
31978 (ClockGroup::Tick): don't Tick a child clock if it's about to
31979 Stop. the new tick might cause it to fill.. this needs work
31982 2007-10-06 Jb Evain <jbevain@novell.com>
31984 * media.cpp (Image::Render): Deal with clipping.
31986 2007-10-05 Chris Toshok <toshok@ximian.com>
31988 * animation.cpp (KeyFrameComparer): fix airlines (and probably a
31989 host of other keyframe usage besides). The problem was that this
31990 function was treating its args as keyframe*'s, when in actuality
31991 they were keyframe**'s. that explains the intermittent nature of
31992 the bug, as well as the faulty sorting I was experiencing earlier.
31994 * clock.cpp (TimeManager::Tick): reinstate the throttling, yay.
31996 2007-10-05 Chris Toshok <toshok@ximian.com>
31998 * clock.cpp (TimeManager::Tick): I have no idea how this is
31999 possible, but the throttle code is *completely* screwing up the
32000 Airlines demo animations.
32002 2007-10-05 Jackson Harper <jackson@ximian.com>
32004 * control.cpp: need to pass this down. Fixes dragging controls in
32007 2007-10-05 Jeffrey Stedfast <fejj@gnome.org>
32009 * media.cpp (DownloaderComplete): Call mplayer->DisplayFrame() in
32012 (SetValue): And here too after a Seek() (altho it won't work if
32013 the media is paused).
32015 * mplayer.cpp (AdvanceFrame): Introduced a new bool variable,
32016 update, which is true if any avcodec_decode_video() sets redraw to
32018 (DisplayFrame): New method largely based on JB's work to load the
32019 current video frame into the mplayer surface.
32021 2007-10-05 Jb Evain <jbevain@novell.com>
32023 * media.cpp|h, playlist.cpp|h: Don't open the first entry
32024 when a playlist entry has been stopped before switching to
32027 2007-10-04 Chris Toshok <toshok@ximian.com>
32029 * clock.cpp: fix a couple of compilation warnings, and tighten up
32030 the list_clocks output.
32032 2007-10-04 Jeffrey Stedfast <fejj@gnome.org>
32034 * text.cpp (SetIndices): Use g_ascii_strtod() instead of strtod()
32035 since it is not locale dependant.
32037 * rect.cpp (rect_from_str): Same.
32039 * point.cpp (point_from_str): Same.
32041 * xaml.cpp (get_point): Fixed to update *in properly on success.
32043 2007-10-05 Jb Evain <jbevain@novell.com>
32045 * media.cpp: correctly advertise 'Opening' state of MediaElement.
32047 2007-10-04 Jeffrey Stedfast <fejj@novell.com>
32049 * xaml.cpp: (more_points_available): Simplified by looping while
32050 isspace. Also, update our input pointer if we have to scan over
32052 (get_point): Now returns bool based on whether it manages to
32053 extract a point or not.
32054 (geometry_from_str): Updated.
32056 2007-10-04 Jackson Harper <jackson@ximian.com>
32058 * xaml.cpp: Points after the initial two line points should
32059 actually create new line segments, not a polyline, this fixes
32060 relative points on multiple lines.
32062 2007-10-04 Jeffrey Stedfast <fejj@novell.com>
32064 * text.cpp (TextBlock): Can't use GetValue() here yet as stuff
32065 hasn't completely been initialized.
32066 (Glyphs::SetIndices): Do not do scaling here, this seems to be
32067 font size dependant.
32069 * shape.cpp (DoDraw): Use 'delete []' to free dmul.
32071 2007-10-04 Jackson Harper <jackson@ximian.com>
32073 * xaml.cpp: Handle repeated bezier segments properly.
32075 2007-10-04 Chris Toshok <toshok@ximian.com>
32077 * clock.cpp: lots of little changes. fixes clock16.xaml, and
32078 therefor the score animation in dr.popper goes away properly.
32079 also fixes a few other issues with FillBehavior (checked by our
32082 2007-10-04 Jeffrey Stedfast <fejj@gnome.org>
32084 * text.cpp (Glyphs::.ctor): We no longer have a TextFont member
32086 (Layout): Use a local TextFont variable.
32088 (text_init): Always call font_init() as Glyphs use it even when
32089 text=pango is specified.
32091 2007-10-04 Sebastien Pouliot <sebastien@ximian.com>
32093 * shape.cpp|h: Shapes that uses their Width and Height must use
32094 them for brush size. Fix brush rendering when used with
32095 UIElement.RenderTransform property.
32097 2007-10-03 Chris Toshok <toshok@ximian.com>
32099 * text.cpp: make Glyphs usable even when text=pango. "usable"
32100 means "don't crash" :)
32102 2007-10-03 Chris Toshok <toshok@ximian.com>
32104 * uielement.h: rename UseAA() to EnableAntiAlias(). it's
32105 arguably a better name, and more importantly it's the name that
32106 media.cpp/h changed it too, which broke the AA hack used in
32109 * dirty.cpp (process_dirty_elements): rename UseAA() to
32112 2007-10-03 Sebastien Pouliot <sebastien@ximian.com>
32114 * array.cpp: Move double array allocations back to new/delete.
32116 2007-10-03 Jeffrey Stedfast <fejj@novell.com>
32118 * font.cpp (EmSize): Removed, not needed.
32119 (GetGlyphInfo): Commented out vertical glyph metrics, saves a fair
32120 bit of memory that we aren't using.
32122 * text.cpp (TextBlock::SetFontSource): Implemented.
32123 (text_init): Default StyleSimulations to None.
32125 2007-10-03 Sebastien Pouliot <sebastien@ximian.com>
32127 * brush.cpp|h: SL and Cairo defaults to different values (end
32128 color versus start color) when a gradiant is restricted to a
32129 single color (e.g. if the start and end points of a linear
32130 gradient are identical).
32132 2007-10-03 Jeffrey Stedfast <fejj@novell.com>
32134 * text.cpp: Implemented the Glyphs element.
32136 * font.cpp: Made GlyphMetrics and GlyphInfo structs public for use
32137 with the the Glyphs element implemented in text.cpp.
32138 (GetGlyphInfo): Fixes to allow loading of the index=0 glyph.
32139 (GetGlyphInfoByIndex): New method.
32140 (CreatePattern): If the filename is specified, don't call
32141 FcFontMatch(), simply return the constructed pattern.
32143 2007-10-02 Chris Toshok <toshok@ximian.com>
32145 * clock.h, clock.cpp: remove TimeManager::current_fps, it's
32148 2007-10-02 Chris Toshok <toshok@ximian.com>
32150 * runtime.cpp (Surface::UpdateFullScreen): just call
32151 gtk_window_fullscreen instead of setting decorations/above
32152 manually. this puts us on top of the panel.
32154 2007-10-02 Chris Toshok <toshok@ximian.com>
32156 * clock.h, clock.cpp: rip out the old stupid throttling code and
32157 replace it with an exponential moving average of the delays.
32159 2007-10-02 Chris Toshok <toshok@ximian.com>
32161 * clock.h, clock.cpp: add Timeline::Get/SetSpeedRatio methods, and
32162 use them to make test/xaml/clock8.xaml work.
32164 2007-10-02 Larry Ewing <lewing@novell.com>
32166 * shape.cpp (Path::ComputeBounds): use the specified width/height
32167 if stretch is != StretchNone. Fixes rendering issues with halo
32168 and several other sites.
32170 2007-10-02 Chris Toshok <toshok@ximian.com>
32172 * animation.h, animation.cpp: override Stop() on AnimationClocks
32173 so we can reset the property value to the baseValue stored in our
32176 * clock.h, clock.cpp: fix the starting of stopped clockgroups when
32177 there are active children (fixes the storyboards running for 1
32178 tick then stopping). Add more convoluted code in order to get the
32179 expected behavior when FillBehavior=Stop on a storyboard.
32181 2007-10-02 Chris Toshok <toshok@ximian.com>
32183 * clock.h, clock.cpp: a few changes. quit with all the delay
32184 computation in the throttling code, and just deal with fps until
32185 we're ready to switch to delays. it simplifies everything a
32186 bunch. Also, narrow the type for Clock::Get/SetParent to
32187 ClockGroup. Add some rudimentary code for printing out the state
32188 of all clocks (use TimeManager::Instance()->ListClocks() or
32189 time_manager_list_clocks()). Also, remove the TimeManager::Tick
32190 code which started clocks. This commit changes the way
32191 storyboards are registered, so the only things in the
32192 TimeManager's list should be the per-surface ClockGroups, which
32193 are started in Storyboard::Begin (if they aren't already running.)
32195 * collection.cpp (VisualCollection::Add): this is a bug waiting to
32196 happen. Call VisualUpdate (thereby setting the child's parent and
32197 initializing the transforms/opacity) before emitting Loaded on the
32200 * animation.h, animation.cpp: Storyboards now add their clocks to
32201 the per-surface ClockGroup. This involves some groveling to find
32202 the surface, but it's nothing we haven't seen before. There's no
32203 direct TimeManager calls here now - stopping the surface's
32204 ClockGroup will stop all animations running on it.
32206 * runtime.h, runtime.cpp: add the per-surface ClockGroup. all
32207 storyboards attach to this, and this attaches to the TimeManager.
32209 2007-10-02 Jackson Harper <jackson@ximian.com>
32211 * media.cpp: Some default values to avoid nullref exceptions.
32213 2007-10-02 Sebastien Pouliot <sebastien@ximian.com>
32215 * xaml.cpp: Add support for 'F' in the PML parser to enable setting
32216 the FillMode of Geometry objects. Removed default value set as it is
32217 identical to the default property value.
32219 2007-10-02 Jb Evain <jbevain@novell.com>
32221 * playlist.cpp|h: implemented start time for playlist entries.
32223 2007-10-02 Jb Evain <jbevain@novell.com>
32225 * playlist.cpp|h, media.cpp|h: rename MediaSource::OpenSource to OpenInternal.
32227 2007-10-02 Larry Ewing <lewing@novell.com>
32229 * uielement.cpp (UIElement::Invalidate): Only invalidate if
32231 * dirty.cpp (process_dirty_elements): be sure to invalidate before
32232 and after the opacity change.
32234 2007-10-02 Jb Evain <jbevain@novell.com>
32236 * playlist.cpp: deal with non lowercase file exts.
32238 2007-10-01 Jeffrey Stedfast <fejj@novell.com>
32240 * font.cpp: Reduced Glyph table memory usage.
32242 2007-10-01 Chris Toshok <toshok@ximian.com>
32244 * dirty.cpp (process_dirty_elements): remove the special if checks
32245 which kept the ComputeBounds/Invalidate code from running on the
32246 toplevel surface. Canvas::ComputeBounds() does the right thing
32247 for the toplevel surface, so we just trust it. fixes invalidation
32250 * panel.cpp (OnPropertyChanged): remove the ComputeBounds call.
32251 (OnSubPropertyChanged): same.
32253 2007-10-01 Sebastien Pouliot <sebastien@ximian.com>
32255 * brush.cpp|h: Change SetupBrush and SetupGradient signatures to
32256 void (instead of the, now, unused bool);
32258 2007-10-01 Jeffrey Stedfast <fejj@novell.com>
32260 * font.cpp (Layout): Made WrapWithOverflow closer to Silverlight's.
32262 2007-10-01 Sebastien Pouliot <sebastien@ximian.com>
32264 * shape.cpp|h: Remove Path::IsFilled since the property
32265 PathFigure::IsFilledProperty doesn't exists anymore.
32267 2007-10-01 Jeffrey Stedfast <fejj@novell.com>
32269 * text.cpp (LayoutPango): Fixed Wrap vs WrapWithOverflow text
32272 * font.cpp (Layout): Fixed the TextWrapping="Wrap" case.
32274 2007-10-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
32276 * runtime.cpp: Only show the server as the url in the fullscreen
32279 2007-10-01 Sebastien Pouliot <sebastien@ximian.com>
32281 * panel.cpp: Call ComputeBounds before invalidating on Background
32282 changes. Fix parts of #327691 (like BubbleMark-CLR and Monotone).
32284 2007-10-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
32286 * fullscreen.h, fullscreen.xaml: Added.
32287 * text.h: Make GetActualHeight and GetActualWidth public.
32288 * runtime.h, runtime.cpp: Added IsTopLevel (since there can be two toplevel
32289 objects now: the fullscreen message and the toplevle canvas),
32290 SetSourceLocation and Show/HideFullScreenMessage.
32291 * dirty.cpp: Use Surface::IsTopLevel instead of comparing directly agains
32292 Surface::GetTopLevel.
32294 2007-09-30 Zoltan Varga <vargaz@gmail.com>
32296 * xaml.cpp (CreateManagedObject): Move the call to GetMapping ()
32299 * text.cpp (text_destroy): Avoid crash if default_foreground_brush
32302 2007-09-28 Chris Toshok <toshok@ximian.com>
32304 * Makefile.am: remove the XRANDR conditional here. it's #defined
32307 2007-09-28 Jeffrey Stedfast <fejj@novell.com>
32309 * font.cpp (CreatePattern): If a filename has been specified for
32310 loading a font, don't set family values. Also, call
32311 FcDefaultSubstitute() on the pattern before trying to find a
32314 2007-09-28 Jeffrey Stedfast <fejj@novell.com>
32316 Optimization hack that saves time by not recalculating the layout
32317 when the foreground brush changes (since we'd have exactly the
32320 * font.cpp (TextRun): Now takes the address of the brush than the
32321 brush itself, so that when brushes change on the Inline, we get
32322 the brush change for free.
32324 * text.cpp (LayoutSilverlight): Pass the addresses of the
32325 foreground brushes to TextRun ctor and don't bother with the
32326 default foreground brush here, save that for ::Paint-time.
32327 (LayoutPango): Same idea as LayoutSilverlight().
32328 (Paint): Get the default foreground and pass that off to the
32329 pango/silverlight text renderers.
32330 (OnPropertyChanged): Don't force a re-layout if the property that
32331 changed was the TextBlock::ForegroundProperty.
32332 (OnCollectionChanged): Same (but for Inline::ForegroundProperty).
32334 * mango.cpp (mango_renderer_show_layout): Now takes a default_fg
32335 argument so that we don't have to specify it in the creation of
32336 our layout attributes (this saving us a re-layout when a brush
32338 (mango_attr_foreground_new): Now takes the address of the brush
32339 rather than the brush itself, so that when brushes change on the
32340 Inline, we get the brush change for free.
32342 2007-09-28 Jeffrey Stedfast <fejj@novell.com>
32344 * text.cpp (TextBlock): We cannot re-use the
32345 default_foreground_brush here because we cannot allow it to be
32346 altered in any way.
32348 2007-09-28 Jeffrey Stedfast <fejj@novell.com>
32350 * font.cpp (TextFont::IsScalable): New method.
32351 (TextFont::Path): Paths a glyph but does not stroke or fill. Only
32352 available if the font is scalable.
32353 (TextLayout::Render): Cache each segment's cairo_path_t so that
32354 future renders do not have to do it on a glyph-by-glyph basis
32355 (avoids possible glyph cache misses). May also save time by doing
32356 a single fill rather than a fill per glyph.
32358 2007-09-28 Jeffrey Stedfast <fejj@novell.com>
32360 * font.cpp (RenderGlyphBitmap): No longer takes a TextDecorations
32362 (RenderGlyphPath): Same.
32363 (UnderlinePosition): New method.
32364 (UnderlineThickness): New method.
32365 (TextLayout::Render): Draw our underline here in 1 stroke (haha, I
32368 2007-09-28 Jeffrey Stedfast <fejj@novell.com>
32370 * text.cpp (LayoutSilverlight): LineBreaks don't really care about
32371 TextDecorations or Foreground properties.
32373 * font.cpp (TextRun::~TextRun): unref the font.
32374 (TextSegment): now references the original TextRun instead of
32375 copying pointers/values.
32376 (TextLayout::Render): Updated for above change.
32378 2007-09-28 Zoltan Varga <vargaz@gmail.com>
32380 * xaml.cpp (SetNameAttribute): New callback to enable managed code to process
32382 (LoadCode): Change return type to bool to indicate a loading error.
32384 2007-09-28 Jeffrey Stedfast <fejj@gnome.org>
32386 * media.cpp (SingleMedia::~SingleMedia): Close the media stream.
32387 (MediaElement::AdvanceFrame): If mplayer->AdvanceFrame() returns
32388 false, then it signifies MediaEnded, no need to explicitly check.
32389 (MediaElement::SetSource): Delete the current source here.
32390 (MediaElement::~MediaElement): C++ `delete' operator doesn't
32391 handle freeing NULL pointers.
32392 (MediaElement::DownloaderComplete): No need to delete the source
32393 here, done in SetSource() instead.
32395 * font.cpp: Created my own GlyphMetrics struct which uses doubles
32396 instead of ints for more accurate layout/rendering calculations.
32397 (Layout): When comparing to max_width, add 1.0 to account for
32398 rounding errors/hinting. Add 1.0 to the Actual/BoundingBox
32399 width/height values for the same reason.
32401 2007-09-28 Sebastien Pouliot <sebastien@ximian.com>
32403 * xaml.cpp: Free locally allocated Points inside get_point_array.
32405 2007-09-28 Jeffrey Stedfast <fejj@gnome.org>
32407 * font.cpp (GetGlyphInfo): Don't cache the bitmap if we're caching
32410 2007-09-28 Sebastien Pouliot <sebastien@ximian.com>
32412 * shape.cpp: ComputeBoundsSlow is no more so we can re-enable the
32413 thickness == 0 optimization.
32415 2007-09-27 Jeffrey Stedfast <fejj@novell.com>
32417 * xaml.cpp (flush_char_data): g_strchomp() the cdata (as
32420 * text.cpp: Merged with custom text layout code - layout algorithm
32421 is chosen at runtime_init() via flags or environment variable.
32423 2007-09-27 Jeffrey Stedfast <fejj@novell.com>
32425 * runtime.cpp (runtime_init): Don't check pango version info,
32426 we're just gonna statically link in pango (and/or do
32427 configure-time checks if the user decides to link to a system
32428 pango). Implemented some preliminary environment variable parsing
32429 action to decide if the user wnts to use ffmpeg vs ms codecs,
32430 pango vs my "silverlight" text layout engine, etc.
32432 2007-09-27 Jeffrey Stedfast <fejj@novell.com>
32434 * runtime.cpp (runtime_init): Now takes a flags argument for
32435 enabling/disabling features. If RUNTIME_INIT_BROWSER is not set,
32436 then make sure pango is recent enough (if not, print a warning
32437 akin to the cairo warning).
32439 2007-09-27 Sebastien Pouliot <sebastien@ximian.com>
32441 * array.cpp: Fix issues on double parsing, including bug #328915 and
32442 test cases in /moon/test/xaml/points-torture.xaml
32444 2007-09-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
32446 * animation.cpp: Add a few null checks.
32448 2007-09-27 Larry Ewing <lewing@novell.com>
32450 * media.cpp: Don't mark our download progress as 100% until we've
32451 been notified by the downloader that it is complete. Some
32452 programs check download progress to decide when they can safely
32453 poke at the media element properties.
32454 * downloader.cpp: set the final downloader progress to 1.0 not 100.
32456 2007-09-27 Sebastien Pouliot <sebastien@ximian.com>
32458 * xaml.cpp: Don't freak out if <?xml ... ?> isn't on the first
32459 line. Fix bug #328907.
32461 2007-09-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
32463 * control.h, control.cpp: Added control_initialize_from_xaml_callbacks, and
32464 change InitializeFromXaml to take a XamlLoader argument.
32466 2007-09-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
32468 * xaml.cpp: More unrefs.
32470 2007-09-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
32472 * text.cpp: Unref a few newly created objects.
32473 * control.cpp: Remove an unnecessary ref.
32475 2007-09-26 Zoltan Varga <vargaz@gmail.com>
32477 * text.cpp (SetValue): Implement proper handling of the Text property.
32479 (OnPropertyChanged): Force a relayout when the foreground property changes.
32480 (Layout): Remove the laying out of the contents of the Text property, since the
32481 text is now contained in the first inline.
32483 2007-09-26 Jeffrey Stedfast <fejj@novell.com>
32485 * font.cpp (Layout): Include the space char on the line before
32486 wrapping, this is noticable when TextDecorations="Underline" is
32488 (TextLayout::RenderGlyphBitmap): Moved to TextFont class.
32489 (TextLayout::RenderGlyphPath): Same. Also implemented underlining.
32490 (TextFont::Render): Implemented.
32492 2007-09-26 Sebastien Pouliot <sebastien@ximian.com>
32494 * geometry.h: PathFigure::IsFilledProperty doesn't exist anymore
32495 (and was removed elsewhere, except here);
32497 2007-09-26 Chris Toshok <toshok@ximian.com>
32499 * clock.cpp (TimeManager::Tick): a few changes. first and
32500 foremost, fix the signs on the FPS_ADJUSTMENTS. oops. also, add
32501 a buffer of 50ms on either side of the timeout before we consider
32502 the Tick either slow or fast. Increase the number of out-of-line
32503 ticks we need and decrease the fps adjustment.
32505 2007-09-26 Jeffrey Stedfast <fejj@novell.com>
32507 * text.cpp (OnCollectionChanged): Needs to call Invalidate().
32509 2007-09-26 Chris Toshok <toshok@ximian.com>
32511 * clock.cpp: initialize the min_timeout based on a good default
32512 max fps (60 in our case). Also, calculate the fps adjustments in
32515 * runtime.cpp: remove the non-xrandr SetMaximumRefreshRate call -
32516 it's handled by TimeManager's default.
32518 2007-09-26 Jeffrey Stedfast <fejj@novell.com>
32520 * font.cpp: A bunch of fixes/changes to mimic Microsoft's
32521 Silverlight TextBlock layout logic.
32523 2007-09-26 Andrew Jorgensen <ajorgensen@novell.com>
32525 * Makefile.am: Added missing files for dist tarball
32527 2007-09-26 Chris Toshok <toshok@ximian.com>
32529 * clock.h, clock.cpp: add some very naive, rather lame fps tuning.
32530 we just adjust fps by a fixed amount (4fps) either up or down, if
32531 a certain number (5, by default) of ticks in a row take either
32532 less or more time to complete (respectively), than the current
32535 2007-09-26 Sebastien Pouliot <sebastien@ximian.com>
32537 * moon-path.c: Fix typos.
32538 * shape.h: Remove old ComputeBounds[Slow|Fast] from header.
32540 2007-09-26 Sebastien Pouliot <sebastien@ximian.com>
32542 * shape.h|cpp: Remove Line (direct path manipulation) hack.
32544 2007-09-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
32546 * xaml.cpp: Unref collections and matrix transforms we create.
32548 2007-09-25 Sebastien Pouliot <sebastien@ximian.com>
32550 * geometry.h|cpp, shape.cpp: Implement GetBounds without a cairo
32553 2007-09-26 Zoltan Varga <vargaz@gmail.com>
32555 * text.cpp (TextBlock): Set an empty string as a default Text property.
32556 (InsideObject): Implement this for text blocks.
32558 2007-09-25 Sebastien Pouliot <sebastien@ximian.com>
32560 * font.cpp: Fix warning.
32562 2007-09-25 Larry Ewing <lewing@novell.com>
32564 * brush.cpp|h: add image_brush_create_similar to simplify creating
32565 similar surfaces. Use it where appropriate.
32567 * media.ccp: use image_brush_create_similar where possible. In
32568 MediaElement::Render draw with opacity directly rather than
32569 creating a temporary surface for every frame. Rework image opacity
32570 cache so that we don't have to recreate the surface every time.
32572 2007-09-25 Jb Evain <jbevain@novell.com>
32574 * media.cpp|h: let the MediaElement be the only one to trigger
32575 its own events, terminate its friendship with MediaBase.
32577 2007-09-25 Jb Evain <jbevain@novell.com>
32579 * playlist.cpp|h: trigger a parsing error when no href attribute
32580 is found for base and ref elements.
32582 2007-09-25 Jb Evain <jbevain@novell.com>
32584 * playlist.cpp|h, media.cpp: Auto play for playlists.
32586 2007-09-24 Jeffrey Stedfast <fejj@novell.com>
32588 * font.cpp (Render): Fixed some y1 offset logic that didn't amke
32589 any sense (and was wrong afaict anyway). We now render exactly
32590 like Microsoft Silverlight.
32592 2007-09-24 Jb Evain <jbevain@novell.com>
32594 * playlist.cpp: close the previous source before playing
32597 2007-09-24 Jb Evain <jbevain@novell.com>
32599 * mplayer.cpp: on Close, reset height and width to zero.
32601 2007-09-24 Jeffrey Stedfast <fejj@novell.com>
32603 * media.cpp (OnPropertyChanged): Set recalculate_matrix to true if
32604 either the NaturalWidth or NaturalHeight changes.
32606 2007-09-24 Jb Evain <jbevain@novell.com>
32608 * media.cpp|h, playlist.cpp|h: refactor MediaSource so that
32609 only a SingleMedia deals with the MediaPlay directly. A playlist
32610 being a collection of either other playlist or singlemedias,
32611 playing one at a time.
32613 2007-09-24 Jb Evain <jbevain@novell.com>
32615 * media.cpp, playlist.cpp: let the Media Sources change
32616 the state of the MediaElement (Playing/Paused/Stopped).
32618 2007-09-24 Jb Evain <jbevain@novell.com>
32620 * media.h: let the media source change the properties
32621 of the media element. Make MediaSource friend of MediaElement
32623 * playlist.h, playlist.cpp: adjus to the changes in MediaSource.
32625 2007-09-24 Jeffrey Stedfast <fejj@novell.com>
32627 * font.cpp: Added kerning.
32629 * mplayer.cpp: Added mutex locking for the target_pts variable.
32631 2007-09-24 Jb Evain <jbevain@novell.com>
32633 * playlist.cpp: Playlist::IsPlaylistFile: return false
32636 2007-09-23 Jb Evain <jbevain@novell.com>
32638 * playlist.cpp: A base element stores the base in
32639 a href attribute, not in its body.
32641 2007-09-22 Chris Toshok <toshok@ximian.com>
32643 * Makefile.am (USE_XRANDR): define USE_XRANDR.
32645 * runtime.cpp (Surface::realized_callback): get the RANDR screen
32646 config info, and set the TimeManager's max refresh to match the
32649 * clock.h, clock.cpp (TimeManager::SetMaximumRefreshRate): new
32652 2007-09-22 Zoltan Varga <vargaz@gmail.com>
32654 * xaml.h xaml.cpp: Add support for parsing x:Code elements and
32655 passing them to managed code.
32657 2007-09-21 Jeffrey Stedfast <fejj@gnome.org>
32659 * mplayer.cpp (audio_play): Slightly optimized the volume
32662 * font.cpp (Layout): Keep track of the line ascend and pad our
32663 extents with an extra pixel on all sides to account for hinting.
32664 (Render): Starts rendering glyphs 1 pixel in. Also modified the
32665 logic such that we didn't have to treat path/bitmap glyphs
32668 2007-09-21 Jeffrey Stedfast <fejj@novell.com>
32670 * font.cpp: Now handles scalable fonts by rendering their outline
32671 paths rather than rendering bitmaps.
32673 * moon-path.c (moon_path_move_to): Resize the path auto-magically
32674 if we don't have enough room. Same for all of the other
32675 line_to/curve_to/etc.
32677 2007-09-21 Jeffrey Stedfast <fejj@gnome.org>
32679 * font.cpp (SetMaxWidth): Oops, set max_width = max (rather than
32680 the old width extents).
32681 (Layout): When breaking a long line, the new line height should
32682 not be set to 0 (duh), it should be set to the font height.
32684 2007-09-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
32686 * xaml.cpp, xaml.h: Added a XamlLoaderCalbacks structure that contains all
32687 the callbacks XamlLoader needs. Added xaml_loader_set_callbacks for
32688 managed code to set them. Keep track of mappings in native code, call
32689 into managed code only if a mapping is not found here. Keep a list of
32690 missing assemblies, allows managed code to request downloading of
32691 several assemblies before trying to parse xaml again. Added
32692 XamlLoader::CreateManagedObject, tries to parse xmlns/name, if
32693 successful (and only then), requests a vm to be loaded, before calling
32694 into managed code to actually create the managed object.
32696 2007-09-20 Chris Toshok <toshok@ximian.com>
32698 * type.cpp, type.cpp.in (types_init_register_events): register the
32699 LostFocus/GotFocus events.
32701 * uielement.h: add LostFocusEvent/GotFocusEvent.
32703 * uielement.cpp (uielement_init): lookup LostFocus/GotFocus events.
32705 2007-09-20 Jeffrey Stedfast <fejj@gnome.org>
32707 * text.cpp (InsideObject): Removed.
32709 * font.cpp (Layout): Add the horiBearingX value of the last glyph
32710 in each line to the width of said line.
32711 (RenderGlyphBitmap): Cache the surface and use it as a mask when
32712 filling so that the true source pattern shows thru.
32714 2007-09-20 Jeffrey Stedfast <fejj@novell.com>
32716 * mango.cpp (mango_renderer_draw_glyphs): Cache the paths that we
32718 (mango_renderer_show_layout): Instead of having pango render the
32719 text, do it ourselves using our cached paths from the previous
32720 call to mango_renderer_layout_path().
32721 (mango_renderer_layout_path): Clear our cache paths.
32723 2007-09-20 Jeffrey Stedfast <fejj@novell.com>
32725 * text.cpp (OnPropertyChanged): Don't dirty actual width/height on
32726 foreground changes.
32727 (OnSubPropertyChanged): Same.
32729 * font.cpp (GetFont): No longer need to pass the size to
32731 (TextFont::Load): No longer needs the size argument.
32732 (TextFont::.ctor): We just get the size from the pattern now.
32733 (TextFontDescription::CreatePattern): Call FcFontMatch() on our
32734 generated font pattern here instead of having our lower-level
32735 TextFont::.ctor do it.
32736 (TextFont::Ascender): Use the size metrics so that this always
32737 works properly (at least it seems to).
32738 (TextFont::Height): Same.
32739 (TextLayout::Layout): Changed line-height logic a bit for
32742 2007-09-20 Chris Toshok <toshok@ximian.com>
32744 * type.cpp.in, type.cpp (LookupEvent): fix this to check in parent
32745 type event hashes as well if we don't find it in ours.
32747 2007-09-20 Sebastien Pouliot <sebastien@ximian.com>
32749 * brush.cpp: Implemented MappingMode for LinearGradientBrush.
32750 Buttons from Dr Popper are now rendered correctly.
32752 2007-09-20 Chris Toshok <toshok@ximian.com>
32754 * typegen.cs (GenerateTypeCpp): add a call to
32755 types_init_register_events.
32757 * type.h.in, type.cpp.in: add Type::RegisterEvent,
32758 Type::LookupEvent, Type::GetEventCount, and Type::GetEventBase.
32760 * type.cpp.in: add types_init_register_events, which registers all
32761 the events we care about for all the types. we do it here to
32762 guarantee that events have been registered by the time any
32763 instance code is run for any type.
32765 * dependencyobject.h, dependencyobject.cpp: remove the event
32766 registration from EventObject, it's moving to Type. so the Type
32767 will contain the name to id hash, and the EventObject will only
32768 contain an array of GSLists, where the index into that array is
32771 * clock.cpp (clock_init): lookup the static events here.
32773 * runtime.cpp (runtime_init): same.
32775 * animation.cpp (animation_init): same.
32777 * downloader.cpp (downloader_init): same.
32779 * uielement.cpp (uielement_init): same.
32781 * src/clock.h, src/uielement.h, src/media.h, src/animation.h,
32782 src/type.h, src/runtime.h, src/downloader.h: events are static to
32783 the classes now, instead of being per-instance.
32785 * src/types.h src/types.cpp: regen.
32787 2007-09-20 Sebastien Pouliot <sebastien@ximian.com>
32789 * geometry.cpp: Avoid re-allocating path memory when possible.
32790 * moon-path.c|h: Added documentation and new moon_path_renew and
32791 moon_path_clear functions to reduce memory re-allocations.
32792 * shape.cpp|h: Avoid re-allocating path memory when possible.
32794 2007-09-20 Sebastien Pouliot <sebastien@ximian.com>
32796 * brush.cpp|h: Implemented MappingMode for RadialGradientBrush.
32797 Bubbles from bubblemark.com are now rendered correctly.
32799 2007-09-19 Sebastien Pouliot <sebastien@ximian.com>
32801 * shape.cpp|h: Remove dead code.
32803 2007-09-19 Jeffrey Stedfast <fejj@novell.com>
32805 * font.cpp: More fixes to make stuff build/work (more or less).
32807 * text.patch: Patch to make text layout/rendering use my new code
32810 2007-09-19 Chris Toshok <toshok@ximian.com>
32812 * text.cpp (TextBlock::Layout): don't insert multiple fg_attrs.
32814 2007-09-19 Sebastien Pouliot <sebastien@ximian.com>
32816 * moon-path.c|h: New. Create simple or complex paths without a
32817 (expensive) cairo_context_t using an API similar to cairo.
32818 * geometry.cpp|h: Use moon_path functions. Added (still inactive)
32819 code to compute bounds for paths.
32820 * shape.cpp|h: Use moon_path functions. Avoid Cairo extents API
32821 for Polylines and Polygons. Still not perfect for large thickness
32822 and steep angles but 8-10x faster and better (no artifact left)
32823 than previous code, see new xaml animation tests).
32824 * rsvg.cpp|h: Adapt to use moon-path functions.
32825 * Makefile.am: Add moon-path.c and moon-path.h to the build.
32827 2007-09-19 Jeffrey Stedfast <fejj@gnome.org>
32829 * font.cpp: More hackery.
32831 2007-09-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
32833 * panel.cpp: Add a null check.
32834 * xaml.cpp: Created a list that contains most created elements in order to
32835 unref them once parsing is finished (we need to unref all created
32836 elements except the top one, but the parser callback functions don't
32837 know which is the top one, so we delay the unrefing until the end). If
32838 parsing is done manually (*_from_str, etc), just use unref.
32839 * text.h, text.cpp: Add text_destroy to properly destroy the default
32840 foreground brush on shutdown.
32841 * clock.cpp: When we allocate a clock, unref it after adding it to the
32843 * collection.h: Store the parent in the Node, since we can't call
32844 obj->GetParent () in a destructor (it will walk up the hierarchy using
32845 the type system, but since the parent can be in the destructor, the type
32846 system isn't reliable anymore).
32847 * mango.h, mango.cpp: MangoAttrForeground: hold a reference to the
32848 foreground brush, not to the element. Add a mango_renderer_get_type_safe
32849 that can reinitialize static variables (after a libmoon reload) from
32851 * geometry.cpp, transform.cpp, brush.cpp: Use Value::CreateUnref for default
32853 * collection.cpp: Store the parent in the Node, since we can't call
32854 obj->GetParent () in a destructor (it will walk up the hierarchy using
32855 the type system, but since the parent can be in the destructor itself,
32856 the type system isn't reliable anymore).
32857 * dependencyobject.cpp: Attachee: don't hold a ref to the container anymore.
32858 * media.cpp: Sprinkle a few unrefs here and there.
32859 * animation.cpp: Don't ref root_clock, CreateClock already gives us a ref.
32860 Add a null check in the Storyboard destructor. Use Value::CreateUnref
32861 for default values.
32862 * runtime.cpp: Attach: Don't attach a null element. Call text_destroy on
32865 2007-09-18 Jeffrey Stedfast <fejj@gnome.org>
32867 Continued fixes to go along with Rolf's other TextBlock leak
32870 * mango.cpp (mango_attr_foreground_new): Don't ref the fg.
32871 (mango_attr_foreground_destroy): Don't unref the fg.
32873 * text.cpp (default_foreground): Make return a static reference.
32874 (Layout): Don't ref the fg.
32876 2007-09-17 Jeffrey Stedfast <fejj@gnome.org>
32878 * font.cpp: more progress on text layout.
32880 2007-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
32882 * xaml.cpp, xaml.h: Move callbacks from PluginXamlLoader back to XamlLoader.
32884 2007-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
32886 * xaml.cpp: Fix warning.
32888 2007-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
32890 [Removed mono dependency for 1.0 moonlight applications.
32891 We now have a native [Plugin]XamlLoader that is the native counterpart of the
32892 managed Loader object, the native loader handles xaml loading when the
32893 mono runtime isn't loaded.]
32895 * xaml.cpp, xaml.h: Added a XamlLoader class that replaces the callbacks.
32896 Changed xaml_create_from* to take a loader (XamlLoader*) argument. This
32897 was necessary because the callback handler isn't given enough
32898 information (it needs to know the plugin, but this information is not
32899 passed on), and it now also avoids the potential problem of overwriting
32900 static callbacks when several plugins are created simultanously.
32901 * control.cpp, demo.cpp: Update according to API change.
32903 2007-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
32905 * panel.cpp, dependencyobject.cpp, dirty.cpp: Add some null checks.
32907 2007-09-14 Jeffrey Stedfast <fejj@novell.com>
32909 * font.cpp|h: New font/text rendering engine (e.g. replacement for
32910 pango). Nowhere near complete yet.
32912 2007-09-14 Miguel de Icaza <miguel@novell.com>
32914 * media.cpp (Stop, Pause): Do not dereference source if it is not
32915 yet set (TopBanana does this).
32917 2007-09-13 Jb Evain <jbevain@novell.com>
32919 * media.cpp|h, playlist.cpp|h: Work on playlist integration.
32921 2007-09-10 Jeffrey Stedfast <fejj@novell.com>
32923 * mplayer.cpp (StopThreads): When resetting current_pts and
32924 target_pts, use the audio (or video) initial_pts value rather than
32925 0 since they are meant to be absolute pts values, not
32926 relative. This fixes a bug in the halo3 site where pressing Stop
32927 would cause the current time string to become "59:55" when it
32928 should have been "00:00".
32930 * media.cpp (OnPropertyChanged): Only Invalidate() on
32931 PositionProperty changes if we have video content to render. Fixes
32934 * mplayer.cpp (HasVideo): New method that returns true if the
32935 media source has video content.
32937 2007-09-10 Jeffrey Stedfast <fejj@gnome.org>
32939 * mplayer.cpp (Duration): Only use audio duration as the defacto
32940 duration if we've got a valid pcm handle.
32942 2007-09-10 Chris Toshok <toshok@ximian.com>
32944 * animation.cpp (HookupAnimationsRecurse): make the message
32945 involving failure to hookup a property more verbose. Looks like
32946 MS is treating a TranslateTransform as a ScaleTransform in popfly
32947 - that is, they're trying to animate ScaleX on a
32948 TranslateTransform (which is oddly enough named "scale".)
32950 * media.cpp: Emit ImageFailedEvent if we failed to load the image.
32951 Remove that damn TODO printf.
32953 * media.h: add ImageFailedEvent to Image, and change signature of
32954 CreateSurface so we can return false if there's an error.
32956 * xaml.cpp (parser_error): use the new ParserErrorEventArgs ctor.
32958 * error.h: make these classes instead of structs, and also make
32959 them copy/free the type specific strings. it'll result in more
32960 allocations but it cleans up the code using them.
32962 2007-09-07 Sebastien Pouliot <sebastien@ximian.com>
32964 * shape.cpp: Fixed Polygon "special" case when it only has to draw
32965 a line. Fixed Line::ComputeBound (Shape::ComputeBoundFast wasn't
32966 working) which is now 10x faster than calling ComputeBoundSlow (the
32967 working alternative). Started to reuse the same concept for Polyline
32968 and Polygon but the (#def-out) code doesn't yet handle line joins
32969 correctly (so it still use the correct ComputeBoundSlow);
32971 2007-09-06 Chris Toshok <toshok@ximian.com>
32973 * dirty.cpp (process_dirty_elements): some guards against unioning
32974 an empty rectangle.
32976 2007-09-06 Chris Toshok <toshok@ximian.com>
32978 * runtime.cpp (Surface::Invalidate): only invalidate the actual
32979 rectangle. The +1/-2 stuff is done in dirty.cpp, if it needs to
32982 * rect.h (Rect::Floor): drop fractional part of all values.
32984 * media.h,media.cpp: we cheat and turn off AA on MediaElements
32985 when they aren't rotated or skewed.
32987 * uielement.h, uielement.cpp: we need to keep track of 2
32988 dirty_rects. one for the element itself, which is GrowBy(1)'ed in
32989 dirty.cpp if the child uses AA, and one for children who have
32990 passed their invalidation rect up the tree (we don't grow this
32991 one). Also, add the default UseAA method, which returns true, and
32992 the ChildInvalidated method, which mirrors Invalidate(Rect r) but
32993 uses the children_dirt_rect.
32995 * panel.h, panel.cpp (Panel::~Panel): clear our children
32997 (Panel::FindStartingElement): the meat of the optimization hack -
32998 we determine if we can skip parts of the tree if the expose
32999 rectangle exists completely within the bounds of an opaque
33000 element, unrotated, unskewed element.
33002 * dirty.cpp (process_dirty_elements): handle
33003 item->children_dirty_rect as well as item->dirty_rect. Also, Grow
33004 the item's dirty_rect by 1 before combining them, if the item uses
33007 2007-09-05 Jb Evain <jbevain@novell.com>
33009 * playlist.cpp: the asx format is case insensitive, parse it
33012 2007-09-05 Sebastien Pouliot <sebastien@ximian.com>
33014 * animation.h: Make KeySpline::GetObjectType virtual.
33016 2007-09-05 Jb Evain <jbevain@novell.com>
33018 * playlist.cpp, playlist.h: work on playlist parsing.
33020 2007-09-05 Jb Evain <jbevain@novell.com>
33022 * xaml.h: export timespan_from_str.
33024 2007-09-05 Jb Evain <jbevain@novell.com>
33026 * list.h, list.cpp: add Remove(Node) and RemoveAt(int) method.
33028 2007-09-04 Chris Toshok <toshok@ximian.com>
33030 * media.cpp (Image::Render): unref the backing pixbuf as soon as
33032 (Image::CleanupSurface): guard against double unreffing the
33035 2007-09-04 Chris Toshok <toshok@ximian.com>
33037 * xaml.cpp (xaml_set_property_from_str): delete the color.
33038 (dependency_object_set_attributes): same.
33040 2007-09-04 Chris Toshok <toshok@ximian.com>
33042 * media.cpp (Image::CreateSurface): if we need to create a new
33043 surface, make sure to unref the old one.
33045 * geometry.cpp (PathGeometry::PathGeomtry): use
33046 Value::CreateUnrefPtr (bad name, imo, but eh)
33047 (PathFigure::PathFigure): same.
33049 2007-09-04 Jb Evain <jbevain@novell.com>
33051 * playlist.h, playlist.cpp: Work on the overall design.
33053 2007-09-04 Jeffrey Stedfast <fejj@novell.com>
33055 * brush.cpp (image_brush_create_pattern): Revert previous patch as
33056 it broke test suite.
33058 2007-09-04 Jb Evain <jbevain@novell.com>
33060 * list.h, list.cpp: add a List::ForEach method.
33062 2007-09-04 Jeffrey Stedfast <fejj@novell.com>
33064 * brush.cpp (image_brush_create_pattern): Set CAIRO_FILTER_FAST
33065 (based on lewings performance patch).
33067 2007-09-04 Sebastien Pouliot <sebastien@ximian.com>
33069 * text.h|cpp: TextBlock actual_[height|width] are already cached
33070 because they're expansive to calculate. Make sure we don't compute
33071 them until they're really required (e.g. when a lot of properties
33072 changes when loading an XAML file).
33074 2007-09-04 Chris Toshok <toshok@ximian.com>
33076 * animation.cpp (KeyFrameAnimation_ResolveKeyFrames): add the
33077 keyframes in reverse order so the sort works.
33079 2007-09-04 Jeffrey Stedfast <fejj@novell.com>
33081 * list.cpp (Insert): Fixed.
33083 * runtime.cpp (render_cb): Added some "FPS" debug spew.
33085 * media.cpp (AdvanceFrame): On MediaEnded, don't remove the source
33086 timeout id, by returning false, it is removed for us.
33088 Tue Sep 4 17:50:24 CEST 2007 Paolo Molaro <lupus@ximian.com>
33090 * media.cpp: fix memory leaks and crashes when a download gets
33093 2007-09-04 Jeffrey Stedfast <fejj@novell.com>
33095 * mplayer.cpp: Changed all pts variables to int64_t from uint64_t
33096 as that seems to be what ffmpeg uses internally. Also added a new
33097 'eof' state so that we can easily tell if we've reached the end of
33098 the media stream (eof is true and no packets queued).
33100 2007-09-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
33102 * media.h, media.cpp: If we get a play request before the media is loaded,
33103 save the request and start playing when the media is loaded. Hopefully
33104 this is what MS is doing.
33106 2007-09-04 Jeffrey Stedfast <fejj@gnome.org>
33108 * collection.cpp (Clear): Use list->IsEmpty () as it is cheaper
33109 than comparing the Length() to 0.
33111 * list.cpp: Added more tests.
33113 2007-09-03 Sebastien Pouliot <sebastien@ximian.com>
33115 * rect.cpp: Safer IsEmpty (handles negative values)
33116 * shape.cpp: In Shape::ComputeBoundsSlow make empty shape returns
33117 empty bounds. In Shape::DoDraw avoid call to cairo_set_matrix if
33120 2007-09-03 Sebastien Pouliot <sebastien@ximian.com>
33122 * media.cpp: Fix premul and remove confusing macro.
33124 2007-09-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
33126 * clock.cpp, uielement.cpp, trigger.cpp, panel.cpp, animation.cpp,
33127 canvas.cpp, namescope.cpp: Plug some leaks.
33128 * value.h.in, value.h, value.cpp: Added CreateUnrefRef and CreateUnref.
33129 * dependencyobject.cpp: free_attachee: unref the contained dob. Use
33130 base_unref () instead of accessing the pointer in a few places to allow
33132 * debug.cpp: get_stack_trace is now able to get meaningful data for managed
33133 parts of the stack trace as well.
33135 2007-09-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
33137 * list.cpp: List::Unlink: Link my neighbours to eachother.
33139 2007-09-01 Sebastien Pouliot <sebastien@ximian.com>
33141 * rect.cpp: Fix union with empty rectangles (so x and y are not
33142 assigned to 0 resulting in large bounds). Fix IsEmpty.
33143 * shape.cpp: Fix possible division by 0, resulting in infinite
33144 values (and much too large bounds)
33146 2007-08-31 Jeffrey Stedfast <fejj@novell.com>
33148 *.cpp: Updated for the slightly different List API (list nodes no
33149 longer have Next() or Prev() methods, just access the pointers
33152 * animation.cpp: Made sorted_list a GPtrArray and updated to use
33153 g_ptr_array_insert_sorted(). Also, a lot of the 'list' (not
33154 sorted_list) accesses assumed nodes were of type KeyFrameNode,
33155 which they were not. Fixed.
33157 * xaml.cpp: Made XamlElementInstance.dtor virtual.
33159 * collection.h: Made the Collection::Node.dtor virtual.
33161 * list.cpp: Rewritten, if we add a virtual .dtor to List::Node, we
33162 can no longer guarantee that List::Node->next will have the same
33163 address as the List::Node object and so the list implementation
33164 broke. This rewrite is a bit less fancy, but doesn't rely on that
33167 2007-08-31 Sebastien Pouliot <sebastien@ximian.com>
33169 * media.cpp, panel.cpp, shape.cpp, text.cpp: Calling GrowBy
33170 doesn't change the current rectangle (but returns a new one).
33171 However everything seems to work, so they are probably not needed.
33173 2007-08-31 Jeffrey Stedfast <fejj@novell.com>
33175 * text.cpp (OnPropertyChanged): Need to Invalidate() too.
33177 2007-08-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
33179 * runtime.h, runtime.cpp: Implement fullscreen support, drawing_area does
33180 now reference either the fullscreen drawing area or the normal drawing
33181 area. Refactored drawing area initialization and destruction into
33182 seperate methods. Modified ConnectEvent to be able to specify whether
33183 the drawing area should attach to realize/unrealize events (fullscreen
33184 drawing area shouldn't). Only emit ResizeEvent if we're not in
33185 fullscreen mode. Added normal_height/width, contains the size of the
33186 surface when not in fullscreen (as opposed to screen_height/width for
33187 fullscreen mode). Height/width now contains the actual size of the area
33188 where we draw, whether in fullscreen mode or not.
33190 2007-08-31 Sebastien Pouliot <sebastien@ximian.com>
33192 * shape.cpp: #ifdef out an optimization that doesn't work with
33193 ComputeBoundsSlow (a specified stroke brush, with a thickness of 0,
33194 wouldn't render at all with it's fill brush). Added same shortcut
33195 (as before) for Shape::ComputeBoundsSlow.
33197 2007-08-31 Sebastien Pouliot <sebastien@ximian.com>
33199 * shape.cpp: Added a shortcut in Shape::ComputeBoundsFast when shapes
33200 are known to be empty (UIElement::SHAPE_EMPTY).
33202 2007-08-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
33204 * shape.h, shape.cpp: Revert to the old CanFill method for shapes,
33205 apparently a point is inside a shape unregarding to whether it's filled
33206 or not, unlike geometries.
33208 2007-08-30 Sebastien Pouliot <sebastien@ximian.com>
33210 * shape.cpp: Better degenerate handling for round-rectangles and
33213 2007-08-30 Chris Toshok <toshok@ximian.com>
33215 * collection.h, collection.cpp: change the prototype of
33216 Collection::Add, ::Insert, and ::SetVal to return bool. Make the
33217 subclasses check the return value before doing their type specific
33218 handling of the child. Fixes the crash from invalid xaml in
33221 * animation.h, animation.cpp: track collection api change.
33223 2007-08-30 Chris Toshok <toshok@ximian.com>
33225 * collection.cpp (Collection::Add): make the warning a lot more
33226 useful if the child isn't of the right type.
33228 2007-08-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
33230 * xaml.cpp: Unref the namescope.
33231 * debug.h, debug.cpp: Added. Implemented get_stack_trace and
33233 * clock.cpp: Unref the _instance.
33234 * dependencyobject.h, dependencyobject.cpp: Implement object tracking for
33235 debug purposes. It's able to log to console object creation,
33236 destruction, ref/unrefs with a stacktrace with C++ unmangled function
33237 names, file and line number. Keep a count of created and destroyed
33238 objects, and a list of objects still alive. Ref and unref attached
33239 objects, and free the attachees when we're deleted.
33240 * animation.h, animation.cpp: Add animation_destroy, and destroy the default
33241 dependency property for a few properties.
33242 * type.cpp, type.cpp.in: Initialize Type::types to NULL.
33243 * runtime.cpp: Add a g_type_inited to avoid initializing g_types several
33244 types. Call animation_destroy on shutdown, and add some object tracking
33245 output to runtime_init and runtime_shutdown.
33246 * Makefile.am: Added debug.*.
33248 2007-08-30 Sebastien Pouliot <sebastien@ximian.com>
33250 * shape.cpp: In some degenerate cases Radius[X|Y] can be ignored
33253 2007-08-30 Jeffrey Stedfast <fejj@novell.com>
33255 * mplayer.cpp (AdvanceFrame): If there is no video stream, return
33256 based on audio state. Also, if current_pts >= target_pts already,
33257 return true rather than false to pretend we advanced a frame (it's
33258 really not that important to our caller, all the value is used for
33259 is updating position).
33261 2007-08-30 Sebastien Pouliot <sebastien@ximian.com>
33263 * shape.cpp: Handle negative values for Height and Width (not
33264 drawn) and for Radius[X|Y] (absolute values).
33266 2007-08-30 Jb Evain <jbevain@novell.com>
33268 * media.h, media.cpp: introduce a new MediaSource class that a
33269 MediaElement uses, so we can have either a SingleMedia or a Playlist
33271 * playlist.cpp, playlist.h: added
33272 * Makefile.am: add the previous files.
33274 2007-08-30 Sebastien Pouliot <sebastien@ximian.com>
33276 * shape.cpp: Fix small rectangle fills when no stroke brush is
33279 2007-08-29 Jeffrey Stedfast <fejj@novell.com>
33281 * text.cpp (OnPropertyChanged): Don't recalculate width/height nor
33282 bounds on TextProperty change explicitly, it should already be
33283 recalculated later in the function in the same place it gets
33284 reclauclated for other property changes.
33285 (ComputeBounds): Updated to work the same as the rest of the
33288 2007-08-29 Sebastien Pouliot <sebastien@ximian.com>
33290 * shape.cpp: Fix ComputeBoundsFast to consider the stroke
33293 2007-08-29 Sebastien Pouliot <sebastien@ximian.com>
33295 * shape.cpp: Fix Path::BuildPath cairo_path_t caching as we modify
33296 the path after we get a copy of it. Remove the now unrequired
33297 clipping inside the *::BuildPath for StretchUniformToFill.
33299 2007-08-29 Jeffrey Stedfast <fejj@novell.com>
33301 * media.cpp (Render): Cache the pattern matrix.
33302 (DownloaderComplete): Remove the assert and simply handle that
33303 case by returning (which defers the call until OnLoaded).
33305 2007-08-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
33307 * runtime.cpp: Initialize the FullScreen variables. Helps a lot in
33308 making things consistent.
33310 2007-08-29 Chris Toshok <toshok@ximian.com>
33312 * merged delayed-rendering-branch branch to head. ChangeLog is:
33314 2007-08-28 Chris Toshok <toshok@ximian.com>
33316 * control.cpp (GetTransformFor): change this to act as
33317 Canvas::GetTransformFor does - we only put in the transform from
33318 parent to child here - don't include the parent's transform as
33319 well. Fixes the airlines demo.
33321 2007-08-28 Chris Toshok <toshok@ximian.com>
33323 * dirty.cpp (process_dirty_elements): use a different method for
33324 checking if against the toplevel canvas, and also use
33325 UIElement::parent instead of DependencyObject::GetParent() to get
33326 controls working a little better than before.
33328 * control.h, control.cpp: remove UpdateTransform. this is handled
33329 by the dirty.cpp code now.
33331 * dependencyobject.h, dependencyobject.cpp: copy over the
33332 event_object_{add,remove}_event_handler change from the trunk so
33333 we can continue to work with HEAD olive.
33335 2007-08-22 Chris Toshok <toshok@ximian.com>
33337 * uielement.cpp (Invalidate): don't actually invalidate the
33338 element unless it's visible.
33339 (OnPropertyChanged): the above change requires us to invalidate
33340 the element before setting the flags (in the case where we're
33341 hiding an element).
33343 2007-08-21 Jeffrey Stedfast <fejj@novell.com>
33345 * media.cpp (ComputeBounds): Use the FrameworkElement width/height
33346 unless unspecified, only then should we use video width/height.
33348 2007-08-21 Chris Toshok <toshok@ximian.com>
33350 * uielement.cpp (DoRender): short-circuit rendering of uielements
33351 when their opacity is 0.
33353 * dirty.cpp (process_dirty_elements): handle controls.
33355 2007-08-21 Chris Toshok <toshok@ximian.com>
33357 * shape.h: add Shape::ComputeBoundsSlow, which uses the slow
33358 (cairo_*_extents) codepath for computing bounds. Use this path
33359 for polygons, polylines, and paths. Implement a Line-specific
33360 fast ComputeBounds.
33362 2007-08-20 Chris Toshok <toshok@ximian.com>
33364 * media.cpp (MediaElement::ComputeBounds): GrowBy(1).
33365 (Image::ComputeBounds): use bounding_rect_for_transformed_rect.
33367 2007-08-20 Chris Toshok <toshok@ximian.com>
33369 * rect.h, rect.cpp: add bounding_rect_from_transformed_rect.
33371 * panel.cpp (Panel::ComputeBounds): use the bounding_rect
33372 call, and Rect::GrowBy
33374 * media.cpp (MediaElement::ComputeBounds): use the bounding_rect
33377 2007-08-20 Chris Toshok <toshok@ximian.com>
33379 * shape.h, shape.cpp: move the ellipse bound computing to shape
33382 2007-08-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
33384 * clock.h: Implement TimeManager::GetObjectType.
33385 * dependencyobject.h, dependencyobject.cpp: Move all type management down to
33386 Base (GetObjectType, Is, GetType, GetTypeName), and implement
33387 GetObjectType in the classes that don't do it already. Remove
33388 BASE_FLOATS, simplifying ref counting.
33389 * type.cpp.in, type.h, type.cpp, type.h.in: Added Base and inherited classes
33390 that don't already inherit from DependencyObject.
33391 * runtime.h, runtime.cpp: Add the Fullscreen API (not implemented yet, only
33392 raises events), and implement GetObjectType.
33394 2007-08-28 Sebastien Pouliot <sebastien@ximian.com>
33396 * shape.cpp: Fix StretchUniformToFill
33398 2007-08-28 Sebastien Pouliot <sebastien@ximian.com>
33400 * shape.cpp: Fix StrokeDashArray and StrokeDashOffset as they now
33401 (new since refresh?) need to be multiplied with the stroke's
33404 2007-08-28 Jeffrey Stedfast <fejj@novell.com>
33406 * text.cpp (Render): Fixed the "no text to render" optimization:
33407 don't check TextBlock::TextProperty to see if we have any text to
33408 render, instead check TextBlock::layout (which will have any text
33409 from inlines as well).
33410 (OnPropertyChanged): If the TextProperty changes, recalculate the
33413 2007-08-28 Sebastien Pouliot <sebastien@ximian.com>
33415 * geometry.h: Add a Path* parameter to Draw as we need to know some
33416 stuff (e.g. stroke thickness) in order to detect degenerate cases.
33417 * geometry.cpp: Handle degenerate case for RectangleGeometry.
33418 * panel.cpp, uielementy.cpp: Adjust Draw calls for optional Path
33419 element (NULL in the case of clipping).
33420 * shape.cpp|h: Move cairo_path_t caching logic from Path to Shape
33421 class. Add GetFillRule method. Handle most cases where a large stroke
33422 thickness change the SL drawing behaviour (wrt Cairo behaviour)
33423 * uielement.h: Add flags for empty/normal/degenerate shapes
33425 2007-08-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
33427 * panel.cpp: InsideObject: The point is only inside us if we have a
33428 background, otherwise we act like if we were transparent (which is what
33429 we are if we aren't painting anything inside us).
33430 * geometry.h, uielement.cpp, shape.h: Rename CanFill to IsFilled so that
33431 it's closer to what it actually does.
33432 * shape.cpp: Changed implementation of Shape::CanFill to return true only if
33433 we're actually filled, and rename CanFill to IsFilled so that it's
33434 closer to what it actually does.
33436 2007-08-27 Jackson Harper <jackson@ximian.com>
33438 * dependencyobject.cpp|h: Don't return Collections when getting
33441 2007-08-27 Jeffrey Stedfast <fejj@novell.com>
33443 * mplayer.cpp (Play): Always add a timeout, even for audio-only
33444 media, so that the callback can check if the media has ended and
33445 emit the MediaEnded event.
33447 * media.cpp (AdvanceFrame): Emit the MediaEndedEvent.
33449 * mplayer.cpp (MediaEnded): New convenience function.
33451 2007-08-27 Sebastien Pouliot <sebastien@ximian.com>
33453 * shape.cpp: Remove cairo_new_path call in moon_rounded_rectangle
33454 as this clear any path data in the context (see
33455 test-path-group.xaml)
33457 2007-08-27 Jeffrey Stedfast <fejj@novell.com>
33459 * mplayer.cpp (audio_play): Implement software balance/volume here
33460 rather than using the system's mixer (as that changes the
33461 balance/volume for all applications which is a bad thing). Fixes
33464 2007-08-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
33466 * panel.cpp: InsideObject: only skip checking the children if the
33467 point is not in the clipped area.
33469 * uielement.h, uielement.cpp: Added InsideClip, and moved the
33470 corresponding code from InsideObject to InsideClip.
33472 2007-08-27 Sebastien Pouliot <sebastien@ximian.com>
33474 * xaml.cpp: Fix calculation for smooth quadatric bezier (T) as seen in
33475 tests/xaml/test-path-smoothquadraticbezier.xaml
33477 2007-08-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
33479 * uielement.h, uielement.cpp: Implement InsideObject here too, the same
33480 implementation as Shape has (for our Clip property).
33481 * frameworkelement.cpp: InsideObject: call new base implementation as well.
33482 * panel.cpp: InsideObject: don't check our children, the mouse may be over
33483 them, but they're not visible for some reason (the parent object might
33486 2007-08-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
33488 * panel.cpp: Panel::HandleMotion, if we're the captured element, handle the
33489 motion event even though the mouse isn't over us.
33490 * runtime.h: Add a public Surface::GetCapturedElement.
33492 2007-08-24 Jeffrey Stedfast <fejj@novell.com>
33494 * mplayer.cpp (StopThreads): Need to reset current_pts to 0 so the
33495 video frames will update if we seek backwards.
33497 * uielement.cpp (DoRender): Shortcut out if total_opacity == 0.0
33499 * media.cpp (UpdateProgress): Use the downloader progress value as
33500 the buffering progress value as well (since we don't yet stream).
33501 (DownloaderComplete): Call UpdateProgres() here so that we can
33502 flush the 100% progress value.
33504 * downloader.cpp (Write): Update the progress first, so that the
33505 writer callback can query the actual progress (all data read up to
33506 and /including/ this point in time).
33507 (NotifyFinished): Set progress to 100% and emit an event.
33509 2007-08-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
33511 * value.h[.in]: Added AsNPObj.
33512 * type.cpp[.in]: Initialize Type::NPOBJ correctly.
33514 2007-08-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
33516 * media.cpp: (DownloaderCompleted): The initial state of media
33517 elements that aren't autoplayed is 'Paused'.
33519 2007-08-23 Jeffrey Stedfast <fejj@novell.com>
33521 * media.cpp (MediaElement): Initialize 'loaded' to false.
33522 (SetSource): Don't call DownloaderComplete() if we haven't been
33524 (GetValue): Convert to position from ms to TimeSpan ticks.
33525 (OnLoaded): Set loaded to true and, if we have a downloader which
33526 has completed the download, call DownloaderComplete() which will
33527 then open the media file and autoplay if appropriate.
33528 (OnPropertyChanged): Protect against creating a downloader for an
33531 2007-08-23 Jeffrey Stedfast <fejj@novell.com>
33533 * media.cpp (DownloaderComplete): If we fail to open, emit the
33534 MediaFailedEvent and set some default values.
33535 (OnPropertyChanged): Don't StopLoader() here, do that all in
33536 SetSource (since SetSource needs to do it anyway).
33537 (SetSource): Call StopLoader() here and close the MediaPlayer,
33540 2007-08-23 Jackson Harper <jackson@ximian.com>
33542 * runtime.cpp|h: Make Resize use our event system (so the plugin
33544 * dependencyobject.cpp|h: Rename the add/remove handler functions
33545 to not require dependencyobjects.
33547 2007-08-23 Jeffrey Stedfast <fejj@novell.com>
33549 * media.cpp (OnPropertyChanged): Don't autoplay here.
33550 (advance_frame): Do ms->TimeSpan conversion here, too.
33551 (DownloaderComplete): Instead of calling ::Pause(), just set the
33552 pause state since the MediaPlayer already starts out in paused
33555 2007-08-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
33557 * clock.h: Add defines and methods to convert between timespans and
33559 * media.cpp: Create a default (empty) Markers collection. When setting
33560 MediaPlayer time values, convert between ticks (in TimeSpans) and
33561 milliseconds (which is what MediaPlayer expects). Emit MediaOpened
33562 when we're finished downloading a media, and if we're not autoplaying
33563 it, we're pausing it. Update uses of Value (gint64) constructors.
33564 * value.cpp|h|h.in: Remove the Value (gint64) constructor and add a
33565 Value (gint64, Type::Kind) constructor to avoid mixups between
33566 INT64 and TIMESPAN values. Check for null before unref'ing a
33568 * xaml.cpp: Update uses of Value (gint64) constructors.
33570 2007-08-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
33572 * type.[cpp|h].in: Add const's here that were only added manually
33573 to the generated files.
33575 2007-08-23 Jeffrey Stedfast <fejj@novell.com>
33577 * mplayer.cpp: Implemented volume/balance
33579 2007-08-23 Sebastien Pouliot <sebastien@ximian.com>
33581 * shape.cpp: Remove unneeded (cairo_close_path) and dead (break)
33582 code in Polygon::Draw.
33584 2007-08-22 Chris Toshok <toshok@ximian.com>
33586 * clock.cpp (Tick): guard against division by zero. gets
33587 "monotone" displaying.
33589 2007-08-22 Sebastien Pouliot <sebastien@ximian.com>
33591 * shape.cpp|h: Provide GetTransformOrigin on Shape and remove them
33592 from Rectangle and Ellipse. Monotone requires that on Path and I can't
33593 recall the reason I made this (while all the test cases I made still
33596 2007-08-22 Jeffrey Stedfast <fejj@novell.com>
33598 * mplayer.cpp (MediaPlayer): Init mixer variables.
33600 2007-08-22 Jeffrey Stedfast <fejj@novell.com>
33602 * media.cpp (advance_frame): Don't bother invalidating here, we'll
33603 do that in OnPropertyChanged() for the PositionProperty.
33604 (OnPropertyChanged): Invalidate if Position has changed and
33605 opacity > 0.0f (and we actually have video).
33606 (ComputeBounds): Use the FrameworkElement width/height if set.
33607 (GetTransformOrigin): Same.
33609 2007-08-21 Jeffrey Stedfast <fejj@novell.com>
33611 * mplayer.cpp (Open): Merged both Open() implementations into a
33612 single one. We no longer use Open() without passing a uri (since
33613 Stop() has been implemented in a better way).
33614 (AdvanceFrame): Keep track of our current pts so that we won't get
33615 ahead of the audio if called too often.
33617 2007-08-20 Chris Toshok <toshok@ximian.com>
33619 * rect.cpp (bounding_rect_for_transformed_rect): oops, got
33620 MAX2/MIN2 mixed up.
33622 2007-08-20 Chris Toshok <toshok@ximian.com>
33624 * rect.h, rect.cpp (bounding_rect_for_transformed_rect): horrible
33625 name, I know, but we need this functionality. it's not enough to
33626 use UL and LR corners of the rectangle when computing the bounding
33627 rect for a transformed rectangle. we have to test all 4 points.
33629 * panel.cpp (ComputeBounds): use
33630 bounding_rect_for_transformed_rect.
33632 2007-08-17 Chris Toshok <toshok@ximian.com>
33634 * dependencyobject.cpp (strcase_equal, strcase_hash): new case
33635 insensitive hash functions.
33636 (RegisterFull): the property hash tables (per type, used for
33637 GetDependencyProperty) need to be case insensitive.
33639 2007-08-17 Chris Toshok <toshok@ximian.com>
33641 * xaml.cpp: remove Hidden from the visibility_map.
33642 (enum_from_str): if we don't see a name we recognize, try to parse
33643 it as a number. This could maybe be someplace else.
33645 * enums.h: remove VisibilityHidden
33647 * uielement.h, uielement.cpp: remove
33648 VisibilityHidden/LAYOUT_VISIBLE
33650 * control.h: remove GetLayoutVisible.
33652 * panel.cpp (ComputeBounds): switch from item->GetLayoutVisible to
33653 item->GetVisible, since there's no need to distinguish between the
33656 2007-08-17 Jackson Harper <jackson@ximian.com>
33658 * clock.h: Add ToSeconds utility functions.
33660 2007-08-16 Jeffrey Stedfast <fejj@novell.com>
33662 * list.cpp (InsertSorted): For the stable evrsion, work backwards
33663 instead of forwards (improves performance in the typical case,
33664 altho we aren't gonna sue this feature anymore - z-sorted lists
33665 will now be GPtrArrays).
33667 * garray-ext.cpp|h: New src file containing an extension to
33668 GPtrArray for inserting an item into a presorted array.
33670 * collection.cpp (VisualCollection): z_sorted is now a GPtrArray,
33671 updated all usages of it.
33673 * panel.cpp (Render): Updated now that z_sorted is an array
33674 instead of a linked list.
33676 2007-08-16 Jackson Harper <jackson@ximian.com>
33678 * xaml.cpp: Transforms can be set as attributes, they are just a
33679 matrix in string form, that become a MatrixTransform on the
33681 - Made the debug a little nicer
33683 2007-08-15 Jackson Harper <jackson@ximian.com>
33685 * xaml.cpp: Since the callback setting is now a once per a domain
33686 thing, we don't want to check if they are already set. The 'are
33687 they already set' check only worked when we were setting them at
33688 the beginning of each parsing attempt. With our current setup it
33689 was causing everything to get loaded in the same domain.
33691 2007-08-13 Jeffrey Stedfast <fejj@novell.com>
33693 * mplayer.cpp (AdvanceFrame): Init frame to NULL so we don't
33694 segfault if there are no packets in the queue.
33696 2007-08-13 Chris Toshok <toshok@ximian.com>
33698 * animation.cpp (*KeyFrame::InterpolateValue): for all the
33699 keyframes, if we don't have a Value defined, don't bother
33700 interpolating anything, just return baseValue.
33702 2007-08-13 Chris Toshok <toshok@ximian.com>
33704 * collection.cpp: fix merging/unmerging of child namescopes.
33706 * namescope.h, namescope.cpp: add a flag (merged) and a list of
33707 child merged namescopes which are searched any time this namescope
33708 is searched. Reimplement merge as list->Append, and unmerge as
33711 * dependencyobject.h: add ClearValue, and make GetParent
33714 * dependencyobject.cpp: add impl for ClearValue, and remove
33715 GetParent. Also, when finding a name we only check non-merged
33716 namescopes. The merged ones in the hieararchy will be checked as
33717 the children of the non-merged ones. Given that the set of names
33718 in merged scopes can't overlap, I'm not strictly sure this is
33719 necessary, except to reproduce Silverlight's faulty lookups after
33722 2007-08-10 Jeffrey Stedfast <fejj@novell.com>
33724 * collection.cpp (Clear): Unregister the object names.
33726 * dependencyobject.h (GetName): uhh... just return the value, lets
33727 not go returning "(null)" in string form.
33729 2007-08-10 Chris Toshok <toshok@ximian.com>
33731 * runtime.h, runtime.cpp (key_press_callback): map the gdk keyval
33732 to the silverlight Key and call s->toplevel->HandleKeyDown.
33733 (key_release_callback): same.
33734 (gdk_keyval_to_key): new function, to map between gdk and
33737 * uielement.h, uielement.cpp: add HandleKeyDown/HandleKeyUp, which
33738 just package up the args into a structure and Emit the event.
33740 * enums.h: add the Key enum from the silverlight docs.
33742 2007-08-10 Jeffrey Stedfast <fejj@novell.com>
33744 * dependencyobject.cpp (resolve_property_path): Keep track of the
33745 last '.' so that when we go to get the DependencyProperty, we can
33746 pass the property name component rather than the full path of the
33747 property name. Fixes the color fades in Monotone.
33749 2007-08-09 Chris Toshok <toshok@ximian.com>
33751 * animation.h, animation.cpp: if any keyframe's keytime changes,
33752 we need to re-resolve the collection.
33754 2007-08-09 Jeffrey Stedfast <fejj@novell.com>
33756 * mplayer.cpp (Play): Only start up the io/audio threads if we
33757 aren't simply paused (e.g. if they are already alive).
33758 (IsPlaying): Return true only if playing && !paused.
33759 (audio_loop): Changed the locking logic to lock outside of the
33760 loop rather than inside. We now only release the lock inside the
33761 loop if/when the paused state changes.
33763 2007-08-08 Chris Toshok <toshok@ximian.com>
33765 * animation.h: sprinkle Resolve() methods and resolved flags
33768 * animation.cpp (Storyboard::HookupAnimationsRecurse): call
33769 Resolve() on the animation as we recurse.
33770 (KeyFrameNodeComparer): compare using the keyframe's resolved
33772 (KeyFrameNodeFinder): nuke.
33773 (KeyFrameCollection::Add): just mark the collection as needing to
33774 be resolved. don't muck with the sorted list here.
33775 (KeyFrameCollection::Insert): same.
33776 (KeyFrameCollection::Remove): same.
33777 (KeyFrameCollection::Clear): also mark the collection as
33779 (KeyFrameCollection::GetKeyFrameForTime): use resolved keytime.
33780 (KeyFrameAnimation_ResolveKeyFrames): implement most of the
33781 algorithm posted at
33782 http://msdn2.microsoft.com/en-us/library/ms742524.aspx to resolve
33783 keytimes of different types. this is all untested, unfortunately,
33784 as I can't get non-TimeSpan keytimes to work on SL.
33785 (*AnimationUsingKeyFrames::GetCurrentValue): use resolved
33787 (*AnimationUsingKeyFrames::GetNaturalDurationCore): resolve
33788 the key frames before using sorted_list.
33789 (*AnimationUsingKeyFrames::Resolve): override the empty
33790 default, and call KeyFrameAnimation_ResolveKeyFrames.
33792 2007-08-08 Chris Toshok <toshok@ximian.com>
33794 * clock.cpp (Begin): make sure we handle clocks that seek in the
33797 2007-08-08 Chris Toshok <toshok@ximian.com>
33799 * canvas.cpp (Canvas::Canvas): create a temporary namescope
33800 whenever we create a canvas. We need this for animations that are
33801 started before the canvas is attached to the tree, or in any case
33802 where FindName is called on code associated with a subtree before
33803 it's added to the surface.
33805 * animation.cpp (Storyboard::HookupAnimationsRecurse): turns out
33806 Storyboard.TargetName can be assigned to the parent storyboard as
33807 well as the animation. Loop up the clock hierarchy when looking
33808 for the targetname.
33810 2007-08-07 Chris Toshok <toshok@ximian.com>
33812 * animation.cpp, animation.h
33813 (*AnimationUsingKeyFrames::GetNaturalDurationCore): no need to
33814 iterate over all the keyframes looking for the last one - just
33815 look at the last one in the sorted list.
33817 2007-08-07 Jeffrey Stedfast <fejj@novell.com>
33819 * media.cpp (SetValue): Only crop position values if we're not
33820 updating state from the media player (we're allowed to set values
33821 outside of the duration range from the media player). Also, do our
33823 (OnPropertyChanged): Don't do our seeking here because we can't
33824 get the actual seek position as GetValue()'s override will
33825 re-query the media player for its actual position.
33827 * mplayer.cpp (Open): Don't create the threads here anymore,
33828 create them in Play() instead. Also calculate ahead of time the
33829 new audio->pts_per_frame value which allows the video to keep even
33830 better sync with the audio (we used to base this on actual time
33831 spent playing the audio frame rather which could sometimes be off
33833 (AdvanceFrame): If seek_pts is non-zero, then we need to base
33834 target_pts on it rather than video->initial_pts (assuming we have
33835 no audio to sync to).
33836 (Play): Set playing = true and create the audio/io threads.
33837 (Close): A lot of the logic has been moved into a new method,
33839 (StopThreads): Stop the threads and reset minimal state.
33840 (Stop): Call StopThreads() and seek back to the beginning of the
33842 (Seek): Implemented.
33843 (Position): Back to subtracting the initial_pts so that we always
33844 have a range of 0:duration. If seek_pts is set and >target_pts,
33845 use that rather than target_pts so even if we are in a stopped
33846 state, querying the position will return expected results.
33847 (audio_play): Return audio->pts_per_frame rather than the actual
33850 2007-08-06 Jackson Harper <jackson@ximian.com>
33852 * xaml.cpp: add VisualCollections.
33854 2007-08-06 Chris Toshok <toshok@ximian.com>
33856 * clock.cpp, clock.h: this might be completely wrong and break
33857 other demos... but childless clockgroups Stop when they hit their
33858 duration, they don't SkipToFill. fixes the silverlightclr balls
33861 2007-08-06 Larry Ewing <lewing@novell.com>
33863 * dependencyobject.h:
33864 * dependencyobject.cpp:
33867 * type.cpp: add const to the various string apis.
33869 2007-08-06 Jeffrey Stedfast <fejj@novell.com>
33871 * mplayer.cpp: Fixes to make it work with media files w/ no audio
33872 (or where we are unable to play the audio).
33874 2007-08-04 Chris Toshok <toshok@ximian.com>
33876 * brush.h, brush.cpp: add VisualBrush.
33878 * xaml.cpp (xaml_init): hookup VisualBrush parsing.
33880 * value.h, type.h, type.cpp: sync up the VisualBrush stuff.
33882 2007-08-04 Chris Toshok <toshok@ximian.com>
33884 * panel.cpp (Panel::ChildInvalidated): for the Invalidated stuff
33885 to work properly, panel needs to call
33886 FrameworkElement::Invalidate, not parent->ChildInvalidated
33889 * uielement.h, uielement.cpp: add an Invalidated event for use by
33892 2007-08-03 Chris Toshok <toshok@ximian.com>
33894 * collection.cpp (Collection::Add, Collection::Insert): reinstate
33895 jackson's merging code, but only do it if @data's namescope is
33898 * namescope.h, namescope.cpp: Add {Set,Get}Temporary.
33900 * xaml.cpp (xaml_create_from_str): set the namescope to be
33901 temporary if create_namescope is false.
33902 (xaml_create_from_file): same.
33904 2007-08-03 Chris Toshok <toshok@ximian.com>
33906 * panel.h, panel.cpp: add an optimization for the 2 updates that
33907 travel down the tree (UpdateTotalOpacity and UpdateTransform).
33908 Since we're already invalidating the panel's bounds (in fact we do
33909 it before traversing), we can ignore the invalidates which come
33910 back up the tree from the children.
33912 * media.cpp, media.h: make NaturalDuration a Duration. this gets
33913 the last of roeder's demos sorta working.
33915 2007-08-03 Jeffrey Stedfast <fejj@novell.com>
33917 * mplayer.cpp: Whenever we change the 'paused' state, signal to
33918 the other thread(s) that it has changed so that they can go on
33919 with their lives immediately rather than waiting for the kernel to
33922 2007-08-02 Chris Toshok <toshok@ximian.com>
33924 * control.cpp (GetTransformFor, OnSubPropertyChanged): now, before
33925 you get your panties in a twist, check this out. If you have a
33926 control and set both its Canvas.LeftProperty and that of its root
33927 object (the return value of InitializeFromXaml), the effects are
33928 *additive*, yet GetValue on each object returns exactly what you'd
33929 expect - the value you set on it. The only reasonable explanation
33930 for this is that Control has Canvas's layout algorithm c&p'ed into
33933 2007-08-02 Chris Toshok <toshok@ximian.com>
33935 * xaml.h, xaml.cpp: switch the xaml_create_from_{file,str}
33936 functions to returning DependencyObjects instead of UIElements.
33937 in javascript you can create arbitrary xaml hierarchies (transform
33938 groups, brushes, etc).
33940 * control.cpp: need a cast here due to the above change.
33942 2007-08-02 Chris Toshok <toshok@ximian.com>
33944 * runtime.h, runtime.cpp (Surface::Invalidate): add this call, and
33945 stuff the gtk_widget_queue_draw_area call there.
33947 * uielement.h, uielement.cpp, canvas.h, canvas.cpp, panel.h,
33948 panel.cpp, control.h, control.cpp: change the way
33949 UIElement::Invalidate works. It used to call GetSurface() which
33950 would recurse up the tree to the root, and return the Surface*
33951 back down. It would then call gtk_widget_queue_draw_area there.
33952 This left little room for optimization. Switch everything over to
33953 using a new method implemented by all container classes,
33954 ChildInvalidated. Basically Invalidate's recurse up to the root
33955 as before, but the actual gtk call happens at the root (well, 1
33956 level above it. at the Surface itself). In the future we can
33957 freeze Invalidates in container elements when they do things like
33958 update their transform so we'll just send 1 Invalidate up the
33959 tree, not N Invalidates for N children.
33961 2007-08-02 Jeffrey Stedfast <fejj@novell.com>
33963 * media.cpp (DownloaderComplete): Set the CanPause and CanSeek
33966 * mplayer.cpp (~MediaPlayer): Destroy the pause_mutex
33967 (IsPaused): New method.
33969 * media.cpp (MediaElement::GetValue): If the Position is being
33970 requested, query the MediaPlayer.
33971 (MediaElement::SetValue): Make sure the PositionProperty value is
33972 within bounds and force it to be if not.
33973 (MediaElement::Stop): Do nothing if we aren't playing/paused.
33974 (MediaElement::OnPropertyChanged): Call mplayer->Seek() if the
33977 2007-08-02 Chris Toshok <toshok@ximian.com>
33979 * uielement.h, uielement.cpp: propagate opacity changes the way we
33980 do transform changes. Store the total opacity of an item in the
33981 item, as we do with absolute_xform. This keeps us from doing a
33982 walk up to the root of the hierarchy every time we have to draw an
33983 element (which we we were doing before in
33984 UIElement::GetTotalOpacity.)
33986 * panel.cpp, panel.h: when we update our total opacity, loop over
33987 the children telling them to update as well.
33989 * collection.cpp: propagate the panel's total opacity downward
33990 into the newly added subtree.
33992 2007-08-02 Chris Toshok <toshok@ximian.com>
33994 * uielement.h, uielement.cpp, canvas.h, canvas.cpp: inline
33995 GetSurface/SetSurface.
33997 2007-08-02 Chris Toshok <toshok@ximian.com>
33999 * canvas.cpp (Canvas::OnChildPropertyChanged): return true if we
34000 handle the property changing.
34002 * control.h, control.cpp: rip out all the proxying behavior.
34003 Control now works as a very specialized container. Imagine if
34004 Panel had only 1 child, and no generalized way of manipulating it
34005 (other than initializing it from a xaml fragment), and you have
34008 2007-08-01 Larry Ewing <lewing@novell.com>
34010 * xaml.cpp: don't ever make the previous point relative.
34012 2007-08-01 Jeffrey Stedfast <fejj@novell.com>
34014 * text.h: Removed deprecated enum values for FontWeights
34016 * media.cpp, mplayer.cpp: Updated to add features newly added with
34017 the July 2007 release of Silverlight 1.1
34019 2007-07-31 Chris Toshok <toshok@ximian.com>
34021 * runtime.cpp (Attach): attach a namescope to the toplevel canvas
34022 if there isn't one when it's attached.
34024 2007-07-31 Jeffrey Stedfast <fejj@novell.com>
34026 * media.cpp: NaturalDuration is actually a TimeSpan, not a
34029 2007-07-31 Chris Toshok <toshok@ximian.com>
34031 * media.h, media.cpp: move the MediaBase events to MediaElement.
34033 2007-07-31 Jeffrey Stedfast <fejj@novell.com>
34035 * text.h: Added StyleSimulations enum values.
34037 * xaml.cpp: Updated the StyleSimulations enum mapping.
34039 2007-07-31 Chris Toshok <toshok@ximian.com>
34041 * text.h, text.cpp: Glyph.StyleSimulations changed from a char* to
34042 enum StyleSimulations.
34044 * xaml.cpp: add stylesimulations enum map.
34046 2007-07-30 Chris Toshok <toshok@ximian.com>
34048 * uielement.cpp, uielement.h: add the Tag property.
34050 2007-07-30 Chris Toshok <toshok@ximian.com>
34052 * animation.h, animation.cpp: add the three KeyFrameCollection
34053 subclass types, and switch all references to "KeyFrameCollection"
34054 to the more specific types.
34056 * xaml.cpp (xaml_init): make KeyFrameCollection a ghost element
34057 with Color/Double/PointKeyFrameCollections as subclasses.
34059 * value.h, type.h, type.cpp: sync up with the KeyFrameCollection
34062 2007-07-30 Larry Ewing <lewing@novell.com>
34064 * color.cpp: make sure that we size expand 3 digit color
34065 specifications properly.
34067 2007-07-30 Chris Toshok <toshok@ximian.com>
34069 * uielement.h, uielement.cpp: remove InsideObject from here, and
34070 move its warning to Visual::InsideObject instead.
34072 * visual.h, visual.cpp: add visual.cpp, and move implementation of
34073 InsideObject there.
34075 * Makefile.am (libmoon_la_SOURCES): add visual.cpp
34077 2007-07-30 Larry Ewing <lewing@novell.com>
34079 * xaml.cpp: correct smooth path segments to use the correct value for
34080 cp1 and don't try to make it relative because all the sources are
34081 absolute. Test case at http://intertwingly.net/stories/2007/05/06/?icon=caution
34083 2007-07-30 Chris Toshok <toshok@ximian.com>
34085 * clock.h, clock.cpp: add very naive, probably broken first pass
34088 2007-07-30 Chris Toshok <toshok@ximian.com>
34090 * geometry.h, geometry.cpp: PathFigure.IsFilled is gone in RC1.
34092 2007-07-30 Chris Toshok <toshok@ximian.com>
34094 * brush.h, brush.cpp: track breaking change of the
34095 Brush.Transform/RelativeTransform properties - they're speced to
34096 be Transforms, not TransformGroups.
34098 2007-07-29 Chris Toshok <toshok@ximian.com>
34100 * collection.h, collection.cpp: change "ResourceCollection" to
34101 "ResourceDictionary".
34103 * uielement.cpp: same.
34105 * type.cpp, type.h, value.cpp, value.h: same.
34109 2007-07-27 Chris Toshok <toshok@ximian.com>
34111 * xaml.cpp (xaml_set_property_from_str): look up the enum map from
34112 the property name, not the value.
34114 2007-07-27 Chris Toshok <toshok@ximian.com>
34116 * transform.h, transform.cpp: cache the transformation matrix once
34117 we recompute it. This gives us the responsiveness of delayed
34118 updating without the cost of calculating the matrix once per
34119 object associated with it. a property change just sets the
34120 "need_update" flag, which causes a recompute on the next
34123 2007-07-27 Larry Ewing <lewing@novell.com>
34125 * uielement.cpp: implement initial support for OpacityMask.
34127 2007-07-26 Miguel de Icaza <miguel@novell.com>
34129 This implements support for relative MediaElement sources and
34130 makes all of them go through the downloader, like we do for
34133 * media.cpp (MediaElement): Do an implementation of SetSource
34134 similar to the one in Image. Although there is some code that
34135 could be shared, the problem is that some parameters get in the
34138 (MediaElement::DownloaderComplete): Move the playback here.
34140 (StopLoader): Utility routine, factor this out also on the Image
34141 case, and hook this up to the destructor of Image and
34145 2007-07-25 Chris Toshok <toshok@ximian.com>
34147 * media.h, media.cpp: add the MediaElement events,and emit
34148 DownloadProgressChanged and CurrentStateChanged.
34150 2007-07-25 Chris Toshok <toshok@ximian.com>
34152 * media.h, media.cpp: register the 3 MediaBase events. now we
34153 need to figure out where to emit them.
34155 2007-07-25 Jackson Harper <jackson@ximian.com>
34157 * value.cpp: Assign the kind for NPOBJs.
34159 2007-07-25 Miguel de Icaza <miguel@novell.com>
34161 * openfile.cpp (open_file_dialog_show): Change this method to
34162 return an array with all the selected files.
34164 2007-07-24 Chris Toshok <toshok@ximian.com>
34166 * runtime.h, runtime.cpp: permit setting of the the surface's
34167 background color, which is used to fill the widget before we
34168 render the toplevel canvas. only do this, though, if the canvas
34169 is not transparent.
34171 2007-07-24 Chris Toshok <toshok@ximian.com>
34173 * runtime.cpp (Surface::Attach): call Canvas::SetSurface instead
34174 of making the assignment.
34176 * canvas.h, canvas.cpp: make surface private, and add SetSurface
34177 for runtime.cpp to use.
34179 2007-07-24 Chris Toshok <toshok@ximian.com>
34181 * brush.h, brush.cpp: make ImageBrush::SetSource take a const
34184 2007-07-24 Jackson Harper <jackson@ximian.com>
34186 * type.h.in: Add the NPOBJ type.
34187 * value.h.in: Add the npobj value, it's just stored as a pointer
34188 so that we don't become dependent on mozilla.
34189 * value.cpp|h,type.h: sync.
34191 2007-07-24 Jackson Harper <jackson@ximian.com>
34193 * typegen.cs: Kind.cs lives in agmono now.
34196 2007-07-24 Chris Toshok <toshok@ximian.com>
34198 * media.h, media.cpp: const-ify the PartName argument of the
34199 SetSource methods. also, ref the new downloader before unreffing
34200 the old one in Image::SetSource. they could be the same object.
34202 2007-07-24 Chris Toshok <toshok@ximian.com>
34204 * geometry.cpp (RectangleGeometry::Draw): if the geometry's rect
34205 is NULL, return early.
34207 2007-07-23 Chris Toshok <toshok@ximian.com>
34209 * Makefile.am (libmooninclude_headers): add some missing headers.
34211 * error.h: split out the error classes here.
34213 * libmoon.h: include error.h
34215 * xaml.h: remove the error classes from here.
34217 * xaml.cpp: include error.h
34219 2007-07-23 Miguel de Icaza <miguel@novell.com>
34221 * runtime.cpp: Removed the timer code from here, move to plugin.
34223 2007-07-20 Chris Toshok <toshok@ximian.com>
34225 * xaml.cpp (custom_add_child): this method is what's called when
34226 we add a child to an element of a custom namespace. Trouble is,
34227 it might be a panel subclass. If it is, and the child is a
34228 UIElement subclass, go ahead and add the child using
34229 panel_child_add. This gets the Loaded events working properly in
34230 the chess demo (the trouble was that the custom children weren't
34231 even added to the tree, so their OnLoaded methods weren't being
34234 2007-07-20 Miguel de Icaza <miguel@novell.com>
34236 * collection.cpp: Add support for RemoveAt.
34238 * runtime.cpp (html_timer_timeout_add): Added helper routine to
34239 setup Html timeouts.
34241 2007-07-20 Chris Toshok <toshok@ximian.com>
34243 * canvas.cpp, canvas.h, panel.cpp, panel.h: move much of the guts
34244 from Canvas to Panel. I consider this cleaning up the source, as
34245 it's entirely possible to write Panel subclasses that aren't
34246 Canvas subclasses, but if you did that you'd have no
34247 rendering/event handling.
34249 Now pretty much all logic that involves iterating over the list of
34250 children is in Panel. This also greatly simplifies Canvas. It is
34251 now just a Panel with 2 interesting things about it: 1) it
34252 provides 2 attached properties to lay out its children, and 2) it
34253 allows the surface to dictate its bounds if it's the toplevel
34256 2007-07-20 Chris Toshok <toshok@ximian.com>
34258 * downloader.cpp (Open): set the uri of the downloader.
34260 2007-07-20 Chris Toshok <toshok@ximian.com>
34262 * dependencyobject.cpp: allocate the event hash/ptrarray lazily,
34263 so the potentially large number of objects which don't register
34264 events don't allocate them.
34266 2007-07-20 Chris Toshok <toshok@ximian.com>
34268 * clock.h, clock.cpp: lock around access to the tick_call list, so
34269 tick calls can be added from other threads.
34271 2007-07-16 Miguel de Icaza <miguel@novell.com>
34273 * media.cpp (SetSource): Also handle Completed.
34275 * downloader.cpp (Send): If a send operation is performed on an
34276 object that has completed its operation, immediately emit the
34277 finished event or error event.
34279 (Open): During open invalidate the state, to
34280 ensure that new downloads are properly triggered.
34282 2007-07-16 Chris Toshok <toshok@ximian.com>
34284 * frameworkelement.h, frameworkelement.cpp: we need
34285 framework_element_new so managed subclasses of FrameworkElement
34288 * uielement.h, uielement.cpp: same for this type.
34290 2007-07-13 Chris Toshok <toshok@ximian.com>
34292 * frameworkelement.cpp (FrameworkElement::OnPropertyChanged):
34293 normally we'd only update the bounds of this element on a
34294 width/height change, but if the render transform is someplace
34295 other than (0,0), the transform needs to be updated as well.
34297 2007-07-12 Chris Toshok <toshok@ximian.com>
34299 * runtime.h, runtime.cpp, uielement.cpp, uielement.h: Add mouse
34300 capturing. This should be on Visual and not UIElement, but we
34301 don't dispatch events that way.
34303 2007-07-12 Chris Toshok <toshok@ximian.com>
34305 * downloader.h, downloader.cpp: make the Downloader object a bit
34306 more C++ friendly, and make all the private data private.
34308 Also, take this opportunity to switch to using RegisterEvent/Emit
34309 to generate events, instead of the custom listeners. This will
34310 let JS hook up to the events.
34312 * media.h, media.cpp: track the downloader changes.
34314 2007-07-11 Jackson Harper <jackson@ximian.com>
34316 * collection.cpp: Comment out the namescope merging stuff for now,
34317 it causes some regressions.
34319 2007-07-12 Jackson Harper <jackson@ximian.com>
34321 * xaml.cpp: Restart the whole attribute parsing loop when the
34322 reparse flag is set, otherwise the first attribute will be
34325 2007-07-11 Chris Toshok <toshok@ximian.com>
34327 * uielement.cpp (UIElement::UIElement): the event names need to
34328 match those used by microsoft. makes it easier to handle the
34329 event hooking up in the plugin, where the event names are used.
34331 2007-07-11 Chris Toshok <toshok@ximian.com>
34333 * xaml.cpp (xaml_set_property_from_str): the plugin does its own
34334 resolution of properties now, so it doesn't need to pass the
34335 property name. Change this to take the DependencyProperty*
34338 * xaml.h: change prototype for xaml_set_property_from_str.
34340 2007-07-11 Jackson Harper <jackson@ximian.com>
34342 * collection.cpp: When new objects are added to a collection, try
34343 to merge them into the containers namescope.
34345 2007-07-11 Jackson Harper <jackson@ximian.com>
34347 * xaml.cpp: We need to stop parsing if there is an error while
34348 resolving a custom namespace type.
34350 2007-07-10 Chris Toshok <toshok@ximian.com>
34352 * dependencyobject.cpp (resolve_property_path): we need to reset
34353 "expression_found" when we hit a '.' so that we'll lookup what
34356 2007-07-10 Chris Toshok <toshok@ximian.com>
34358 * dependencyobject.cpp (resolve_property_path): we need to be able
34359 to handle more than just single digit indexers. use strtol and
34360 recompute 'i' afterward.
34362 * canvas.cpp (Canvas::InsideObject): revert the change that helped
34363 dr.popper because it breaks lunareclipse.
34365 2007-07-09 Chris Toshok <toshok@ximian.com>
34367 * demo.cpp: don't pass the parser callbacks to the individual xaml
34370 * control.h, control.cpp: don't pass the parser callbacks to
34371 initialize_from_xaml.
34373 * xaml.h, xaml.cpp: remove the parser callbacks from the
34374 individual parsing methods, and add xaml_set_parser_callbacks.
34376 2007-07-09 Jeffrey Stedfast <fejj@novell.com>
34378 * mplayer.cpp (audio_loop): If we break out of the loop because
34379 the media player was stopped, don't forget to unlock the pause
34381 (Close): Don't free the uri here.
34382 (~MediaPlayer): Free it ehre, though.
34384 2007-07-09 Chris Toshok <toshok@ximian.com>
34386 * uielement.h, uielement.cpp: we need to register the
34387 KeyUp/KeyDown events (even if we aren't emitting them) to keep
34388 from getting a warning when running aglayoutdemo.
34390 * xaml.cpp (timespan_from_str): port our System.TimeSpan.Parse
34391 method (and remove all error handling, which should likely go back
34392 in) and replace the previous implementation. It was failing to
34393 parse timespans like this: 0:0:0.20000000 because it was treating
34394 it as if I wanted "20000000" tenths of a second, instead of 2.
34395 This makes the 'pop' animation in dr.popper actually show up.
34397 2007-07-09 Chris Toshok <toshok@ximian.com>
34399 * animation.cpp: fix some missing NotifyAttacheesOfPropertyChange
34401 (Storyboard::Begin): This is a dubious change. Remove the check
34402 to see if we weren't already Active. This fixes the calendar view
34403 in airlines, since there's a window where the start animation is
34404 startable when we enter a day, but the end animation isn't (since
34405 it's still active) when we leave. So we're left with a selected
34408 * clock.cpp: instead of Stopping clocks that come to the end of
34409 their active period, move to the Filling state. ClockGroups with
34410 automatic duration and no Active children still stop correctly.
34412 2007-07-08 Chris Toshok <toshok@ximian.com>
34414 * many-files (again!): another, smaller change to the event stuff.
34415 stop using strings for everything that we can. Register events at
34416 object construction time, and use those id's for everything else.
34417 The string interface is still around because of
34418 EventTrigger::Set/RemoveTarget, as well as the managed code.
34420 One further change that's needed - the id's are per-instance now,
34421 which is stupid. they should be static.
34423 This further cuts down the work (in terms of hash functions) that
34424 needs to be performed in order to dispatch an event.
34426 2007-07-08 Chris Toshok <toshok@ximian.com>
34428 * many-files: fairly big change. Stick the EventObject class
34429 between Base and DependencyObject in the hierarchy, and get rid of
34430 DependencyObject's "events" field. Get rid of all the registered
34431 events on surface, and emit them directly from the elements where
34432 they occur. This allows us to remove the Surface* parameter to
34433 all the event methods. Also, change the EventHandler signature to
34434 include the sender of the event as well as a "calldata" pointer,
34435 which is where we stuff the unmanaged MouseEventArgs (and later
34436 will the KeyboardEventArgs).
34438 Next step is to add RegisterEvent in EventObject and use that
34439 integer id everywhere instead of the string name when we Emit
34442 2007-07-07 Chris Toshok <toshok@ximian.com>
34444 * dependencyobject.h: add GetName() instance method.
34446 * dependencyobject.cpp (dependency_object_get_name): and call it
34449 * shape.h, shape.cpp (Shape::GetSizeForBrush): we need this
34450 implementation here since FrameworkElement just goes by
34453 * canvas.cpp (Canvas::FindMouseOver): remove the "still over the
34454 same element" optimization. it's stupid and doesn't work. what
34456 (Canvas::ComputeBounds): simplify this by using
34457 item->GetLayoutVisible instead of item->GetValue.
34458 (Canvas::Render): enable the rendering optimization where we only
34459 bother rendering elements whose bounds intersect those of the
34460 rectangle we're repainting. This seriously speeds up airlines.
34462 * uielement.cpp, uielement.h: add GetLayoutVisible() method, and
34463 another flag. now the three VisibilityProperty states are
34464 represented by two flags.
34466 Also, remove the implementation of GetSizeForBrush (not all
34467 UIElements are stroked) and warn callers.
34469 * control.cpp: Attach to the real object, and report back its
34470 property changes to our parents. Also, control_initialize_from_xaml
34471 should call Control::InitializeFromXaml.
34473 * control.h: override the 3 Get*Visible methods from UIElement,
34474 and return our real_object's state.
34478 2007-07-07 Jeffrey Stedfast <fejj@gnome.org>
34480 * demo.cpp (FileDownloadState::Send): Only notify complete if uri
34481 != NULL (if uri is NULL, then it means it couldn't be opened).
34482 (FileDownloadState::Open): notify error if we can't open the file.
34484 * mplayer.cpp: Fix to make sure we have
34485 AVCODEC_MAX_AUDIO_FRAME_SIZE bytes left in our output buffer
34486 before calling decode to prevent an ffmpeg warning.
34488 2007-07-07 Chris Toshok <toshok@ximian.com>
34490 * brush.cpp: make sure to use GetSizeForBrush for everything
34491 instead of cairo_stroke_extents, which won't work for non-stroked
34492 elements like canvases. Also, notify changes to the
34493 GradientStopCollection up the hierarchy properly.
34495 * frameworkelement.h, frameworkelement.cpp: add a GetSizeForBrush
34496 implementation for FrameworkElement so Canvases (and other
34497 uielement subclasses) can have brushes assigned to them (canvas
34498 uses it for its background.)
34500 * canvas.cpp (Canvas::Render): remove the unused label.
34502 2007-07-06 Miguel de Icaza <miguel@novell.com>
34504 * media.cpp: Do not pass the filename as the result now on the
34505 calls. Code must use the downloader_get_response_text or
34506 downloader_get_response_file to get the contents from the download
34507 (as the request will include the part name).
34509 * downloader.cpp: Add a cache for zip file parts.
34511 * media.h (Image): track the part name that was requested on the
34514 2007-07-06 Chris Toshok <toshok@ximian.com>
34516 * canvas.cpp (Canvas::ComputeBounds): if the width/height
34517 framework element properties haven't been set (their default is
34518 0.0), then don't union it with the rest of our bounds.
34520 2007-07-06 Chris Toshok <toshok@ximian.com>
34522 * runtime.h, runtime.cpp: continue the marginalization of
34523 Surface-as-general-data-dumping-ground by passing the cairo
34524 context to all the event handlers that need it (all but Leave, but
34525 should we make this distinction?).
34527 Make tons of stuff private that doesn't need exposing. Add
34528 accessors for the easier things, and leave the callbacks public
34529 for now. Also clean up the partially C/partially c++
34530 implementation in runtime.cpp. Now the C api is a thin wrapper
34531 around instance method calls, and all the gtk/clock event
34532 callbacks are static methods so they can still access the private
34535 * canvas.h, canvas.cpp, control.h, control.cpp, uielement.h,
34536 uielement.cpp: fallout from the event signature changes - add
34537 cairo_t* to a lot of places, basically.
34539 * demo.cpp: no need to use the C api for Surface here. just use
34542 2007-07-06 Jeffrey Stedfast <fejj@novell.com>
34544 * media.cpp (OnPropertyChanged): Oops, be consistant with other
34545 implementations - only chain up if it wasn't a property owned by
34548 * text.cpp: We don't use TextBlock::Inlines anymore, so remove it
34549 to save object size.
34551 * media.cpp (OnPropertyChanged): Fixed to always notify property
34552 listeners and chain up to our parent impl.
34554 2007-07-06 Miguel de Icaza <miguel@novell.com>
34556 * downloader.cpp: Implement the zip file support for the
34557 downloader using miniZip, from:
34559 http://www.winimage.com/zLibDll/minizip.html
34561 The implementation is in C++, so there are no needs to delegate
34562 this to the managed side as previously planned.
34564 There are two APIs: one returns a filename, the other returns the
34565 file loaded into memory, with the size of the memory blob.
34567 2007-07-06 Chris Toshok <toshok@ximian.com>
34569 * uielement.h, uielement.cpp (UIElement::OnPropertyChanged): keep
34570 track of the visibility (boolean, not three-state) and hit test
34571 visibility state in our flags. implement GetVisible() and
34572 GetHitTestVisible() using the flags.
34574 * canvas.cpp (Canvas::CheckOver): use GetVisible and
34575 GetHitTestVisible to avoid property lookups when dispatching
34578 2007-07-06 Chris Toshok <toshok@ximian.com>
34580 * runtime.cpp (measuring_context_create): we keep a singleton
34581 measuring context now.
34582 (measuring_context_destroy): do nothing here. it's freed in
34584 (runtime_shutdown): free up our measuring context.
34586 * canvas.cpp, canvas.h, control.cpp, control.h,
34587 frameworkelement.cpp, frameworkelement.h, shape.cpp, shape.h,
34588 text.cpp, text.h, uielement.cpp, uielement.h, visual.h: change
34589 InsideObject to take the cairo_t* instead of the Surface.
34591 2007-07-06 Chris Toshok <toshok@ximian.com>
34593 * runtime.cpp (Surface::SetCursor): new method, used in the event
34594 code to update the cursor as we enter/leave elements.
34596 * runtime.h: add method, cursor_instance field, and move the body
34597 of the Surface ctor (and initializations) to the .cpp file.
34599 * xaml.cpp: fix name of Cursor property enum mapping.
34601 * canvas.h, canvas.cpp, uielement.h, uielement.cpp, control.h,
34602 control.cpp: add MouseCursor* arg to HandleMotion so we can report
34603 back cursor changes on elements.
34605 Also, in canvas.cpp, implement IsHitTestVisible checking in
34608 * enums.h: add the MouseCursor enum.
34610 2007-07-05 Chris Toshok <toshok@ximian.com>
34612 * Makefile.am (libmooninclude_headers): remove cutil.h
34613 (libmoon_la_SOURCES): remove cutil.cpp
34615 * cutil.h, cutil.cpp: remove. no longer necessary.
34617 * text.cpp (TextBlock::ComputeBounds): load the identity matrix
34618 before stroke/fill_extents to work around a cairo bug that was
34619 giving us enormous bounds on rotated elements. also, -1 from x/y
34620 and +2 to width/height of our bounds.
34622 * media.cpp (MediaElement::ComputeBounds): load the identity
34623 matrix before stroke/fill_extents to work around a cairo bug that
34624 was giving us enormous bounds on rotated elements. also, -1 from
34625 x/y and +2 to width/height of our bounds.
34626 (Image::ComputeBounds): same.
34628 * shape.cpp (Shape::DoDraw): only call cairo_new_path if there's
34629 no stroke, we drew it, and do_op was true.
34630 (Shape::ComputeBounds): load the identity matrix before
34631 stroke/fill_extents to work around a cairo bug that was giving us
34632 enormous bounds on rotated elements. also, -1 from x/y and +2 to
34633 width/height of our bounds.
34635 * uielement.cpp (OnSubPropertyChanged): we don't need to watch for
34636 subproperty changes on RenderTransformOrigin, since it's a point
34637 and not a dependency object.
34639 2007-07-05 Chris Toshok <toshok@ximian.com>
34641 * runtime.cpp, runtime.h: store the last mouse position of events
34642 so that we can continue to update after the clock tick (and
34643 provide motion/enter/leave events to elements that might have
34644 moved under the pointer).
34646 The "update-input" event isn't presently emitted (see clock.cpp)
34647 because it results in this code calling HandleMotion on every
34648 tick, which ends up emitting the C# event (which is wrong).
34650 * clock.h, clock.cpp: add a (presently unused) phase to the clock
34651 tick to update the current mouse over after we've updated our
34652 clocks (and therefore possibly updated the transforms on
34655 2007-07-05 Chris Toshok <toshok@ximian.com>
34657 * dependencyobject.cpp (dependency_object_get_name): change this
34658 to return the x:Name value if there is one (and "(null)" if not).
34659 (dependency_object_get_type_name): and make this function do the
34660 job originally done by _get_name.
34662 * dependencyobject.h: add dependency_object_get_type_name
34665 2007-07-05 Chris Toshok <toshok@ximian.com>
34667 * uielement.h, uielement.cpp, canvas.h, canvas.cpp: refactor the
34668 mouse event code so that the Handle* calls return void, like the
34669 Enter/Leave calls do. Also, all checks for "inside"-ness happen
34670 in the canvas/parent object. Also factored out the loop over
34671 children to "FindMouseOver", with the checks happening in
34674 This needs more testing to make sure that we're still emitting
34675 events in the right order/amount as silverlight.
34677 In uielement.cpp, also add support for showing the bounding
34680 * control.h, control.cpp: track event refactoring.
34682 * frameworkelement.cpp (FrameworkElement::InsideObject): remove
34683 the bounding rect check. that's handled in the parent object now.
34685 2007-07-04 Chris Toshok <toshok@ximian.com>
34687 * media.cpp, media.h: rework our caching for images. we now
34688 properly refcount things, don't leak the filename (or the
34689 surface), share 1 xlib surface amongst all Image's, and don't
34690 crash. improvements all around!
34692 2007-07-04 Miguel de Icaza <miguel@novell.com>
34694 * value.cpp (Value): Add a couple of extra cases I had missed
34695 where we should be using g_new instead of new as FreeValue always
34698 2007-07-03 Jackson Harper <jackson@ximian.com>
34700 * xaml.cpp: Add the stylus types and some missing collections,
34701 this brings us up to sync with everything implemented in
34704 2007-07-03 Chris Toshok <toshok@ximian.com>
34706 * shape.cpp (Shape::DoDraw): if we aren't going to stroke (but we
34707 filled), we need to call cairo_new_path.
34709 2007-07-03 Jackson Harper <jackson@ximian.com>
34711 * xaml.cpp: Some post parsing memory cleanup and a little extra
34714 2007-07-03 Chris Toshok <toshok@ximian.com>
34716 * text.h: add prototype for text_block_set_font_source.
34718 2007-07-03 Chris Toshok <toshok@ximian.com>
34720 * shape.cpp, shape.h: add Shape::OnSubPropertyChanged to deal with
34721 brush property changes. Property chain up to
34722 Shape::OnSubPropertyChanged from Path::OnSubPropertyChanged.
34723 (Shape::ComputeBounds): we need to do the fill, so pass true as
34724 consider_fill to DoDraw. otherwise a stroke-less filled shape
34725 gets bounds with w == h == 0.0.
34727 2007-07-03 Chris Toshok <toshok@ximian.com>
34729 * collection.cpp (VisualCollection::Clear): force the invalidate
34730 when we update our bounds. Also, don't do anything if the length
34731 of the collection is 0.
34733 2007-07-03 Chris Toshok <toshok@ximian.com>
34735 * canvas.cpp (Canvas::ComputeBounds): we need to always include
34736 our FrameworkElement::Width/Height in our bounds computation,
34737 instead of only consulting them if we have no children.
34739 2007-07-03 Chris Toshok <toshok@ximian.com>
34741 * media.cpp, media.h: add an image surface cache. we don't cache
34742 the xlib surface unfortunately, so there's still a slowdown from
34743 generating 1 per Image for shared pixbufs.
34745 2007-07-03 Miguel de Icaza <miguel@novell.com>
34747 * collection.cpp: Add support for reporting errors if the iterator
34748 gets out of sync with the collection.
34750 * demo.cpp: Updated to the new downloader interface.
34752 * downloader.cpp: Eliminates the in-memory buffer during
34755 We still do the progressive updates as those are necessary for the
34756 progress indicators, and if we ever need to hook up during
34757 progressive downloads again.
34759 But now downloads on completion must notify the downloader of the
34760 local file where the download contents have been placed (necesary
34761 for implementing the Zip-file support).
34763 (Downloader): eliminate our in-memory buffer byte_array_contents
34765 (downloader_notify): takes a new extra argument, overloaded
34766 depended on the operation.
34768 (get_response_text): currently not implemented, it needs to be
34769 implemented by a callback into managed code so we can use ZipLib
34770 (unless we can find a suitable unmanaged version).
34772 * media.cpp: Remove the stale code for progressive image
34774 2007-07-02 Miguel de Icaza <miguel@novell.com>
34776 * media.cpp (SetSource): If we had a previous downloader, unref
34779 2007-07-02 Chris Toshok <toshok@ximian.com>
34781 * collection.cpp (VisualCollection::Remove): punt on the optimized
34782 behavior for now. invalidating just the item should work if the
34783 item's bounds are correct, but for some reason the map path
34784 segments in the airline demo aren't redrawing properly. So, for
34785 now we just invalidate the parent container when an item is
34788 * control.h, control.cpp: override GetValue to report back values
34789 from our real_object if there is one, from us otherwise. and
34790 override SetValue to set values both on us and the real_object if
34793 Also, do nothing in our ComputeBounds call. Our GetBounds always
34794 returns the right thing (the bounds of the real_object), so
34795 there's no need to do any computation.
34797 lastly, remove the OnChildPropertyChanged. This is only invoked
34798 for attached properties, so we shouldn't ever be called.
34800 2007-07-02 Chris Toshok <toshok@ximian.com>
34802 * canvas.cpp (Canvas::OnChildPropertyChanged): we don't need to
34803 updatebounds/invalidate here. UpdateTransform will take care of
34806 2007-07-02 Chris Toshok <toshok@ximian.com>
34808 * shape.cpp (Shape::OnPropertyChanged): turns out we need to
34809 update our bounds on the FillProperty changing as well, for shapes
34810 that aren't stroked.
34812 2007-07-02 Miguel de Icaza <miguel@ximian.com>
34814 * collection.cpp: Guard for cases where we are not attached to
34815 anything (closure is set to NULL).
34817 2007-07-02 Chris Toshok <toshok@ximian.com>
34819 * collection.cpp (collection_iterator_move_next): rework the logic
34820 here so we don't do the "current = next" assignment if
34821 iterator->first is true.
34822 (VisualCollection::Add): fix g++ warning.
34823 (TriggerCollection::SetVal): return the old element.
34825 2007-07-02 Jackson Harper <jackson@ximian.com>
34827 * xaml.cpp: Convert char data into Runs and set them on
34828 TextBlocks, also flush the char data when starting elements, so
34829 things like: <TextBlock>line one<LineBreak />line two</TextBlock>
34830 work properly. <TextBlock><TextBlock.Inlines>text... is illegal
34833 2007-07-02 Miguel de Icaza <miguel@novell.com>
34835 * value.cpp: Use g_malloc/g_free as the managed code is not able
34836 to use C++ new operator, so we have a potential error when we
34837 mismatch g_new with new and g_free with delete.
34839 Reported by Valgrind.
34841 * uielement.cpp: Add new helper method needed by Alan.
34843 2007-07-01 Chris Toshok <toshok@ximian.com>
34845 * frameworkelement.cpp (FrameworkElement::OnPropertyChanged):
34846 notify attachees here.
34848 * text.cpp (TextBlock::OnPropertyChanged): need to notify on
34849 Actual Width/Height property changes, even if we don't recalc
34852 2007-07-01 Chris Toshok <toshok@ximian.com>
34854 * panel.cpp (Panel::OnSubPropertyChanged): oops, didn't follow the
34855 guidelines here. need to chain up to FrameworkElement. fixes
34858 2007-07-01 Chris Toshok <toshok@ximian.com>
34860 * shape.cpp (Line::OnPropertyChanged): use recommended pattern.
34861 (Polygon::OnPropertyChanged): same.
34862 (Path::OnPropertyChanged): same.
34863 (Shape::OnPropertyChanged): same.
34864 (Rectangle::OnPropertyChanged): same.
34866 * geometry.cpp (GeometryGroup::OnPropertyChanged): use recommended
34868 (PathGeometry::OnPropertyChanged): same.
34869 (PathFigure::OnPropertyChanged): same.
34871 * brush.cpp (Brush::OnPropertyChanged): use the recommended
34873 (SolidColorBrush::OnPropertyChanged): same.
34874 (GradientBrush::OnPropertyChanged): same.
34875 (LinearGradientBrush::OnPropertyChanged): same.
34876 (RadialGradientBrush::OnPropertyChanged): new method.
34879 * brush.h: add RadialGradientBrush::OnPropertyChanged.
34881 * animation.cpp (animation_init): mark the storyboard TargetName
34882 and TargetProperty properties as attached.
34884 * text.cpp (Inline::OnPropertyChanged): follow recommended pattern
34886 (Run::OnPropertyChanged): same.
34887 (Inline::OnSubPropertyChanged): add to handle the inline's
34888 foreground brush changing.
34890 * text.h: add Inline::OnSubPropertyChanged.
34892 * panel.h, panel.cpp: add OnSubPropertyChanged for the panel's
34893 background brush, and invalidate whenever it changes.
34895 2007-06-30 Chris Toshok <toshok@ximian.com>
34897 * shape.cpp (Shape::OnPropertyChanged): when need to update our
34898 bounding rectangle when a number of the stroke properties change.
34899 Also update them when the stroke itself is changed.
34901 2007-06-29 Chris Toshok <toshok@ximian.com>
34903 * text.cpp, text.h: Add back in TextBlock::OnSubPropertyChanged -
34904 we need it for the foreground property. Make this explicit.
34905 also, add an OnSubPropertyChanged method for Glyphs, to handle the
34908 2007-06-29 Chris Toshok <toshok@ximian.com>
34910 * uielement.cpp (UIElement::UpdateBounds): oops. really only do
34911 that invalidate if the flag is true.
34913 2007-06-29 Chris Toshok <toshok@ximian.com>
34915 * text.cpp: Do CalcActualWidtHeight on any property that might
34916 cause a change. This is going to be a performance hit, but we
34917 need to take this step backward to get things working with the new
34918 ComputeBounds stuff. we'll need to reoptimize this so that it
34919 still works. Make sure to listen to OnCollectionChanged so we'll
34920 update our bounds (and recompute our actual width/height) on
34921 Inlines collection changes.
34923 * text.h: remove OnSubPropertyChanged (since it's not used.) Add
34924 OnCollectionChanged.
34926 2007-06-29 Chris Toshok <toshok@ximian.com>
34928 * uielement.cpp (UIElement::OnPropertyChanged): reformat this so I
34929 can actually read it, and notify attachees of our property
34930 changes. this makes ZIndex setting resort the parent panels list.
34932 * uielement.h: add an arg to UpdateBounds (a bool that defaults to
34933 false) to force an invalidation of the new bounds.
34935 2007-06-29 Chris Toshok <toshok@ximian.com>
34937 * panel.h, panel.cpp: okay, i'm stupid. it's not
34938 OnChildPropertyChanged either. it's OnCollectionChanged. we
34939 seriously need to clean this stuff up.
34941 2007-06-29 Chris Toshok <toshok@ximian.com>
34943 * panel.h, panel.cpp: child ZIndex property changes are reflected
34944 via OnChildPropertyChanged, not OnSubPropertyChanged.
34946 2007-06-28 Chris Toshok <toshok@ximian.com>
34948 * canvas.cpp (Canvas::ComputeBounds): fix the debug printf's.
34950 * collection.cpp (VisualCollectoin::Clear): update the panel's
34951 bounds after the clear so we redraw everything.
34953 2007-06-27 Chris Toshok <toshok@ximian.com>
34955 * uielement.h: stop using x1,y1,x2,y2 for bounds, use a Rect
34956 instead. Also, rename getbounds to ComputeBounds(), and add a new
34957 GetBounds which returns the bounding rectangle.
34959 * canvas.cpp (Canvas::ComputeBounds): rename GetBounds to this.
34960 Simplify it a bit by using Rect's instead of the 4 doubles. Note
34961 that the calls to item->GetBounds do *not* cause item's bounds to
34963 (Canvas::OnChildPropertyChanged): just call UpdateTransform on the
34964 child when its Left/Top properties change.
34965 (Canvas::HandleMotion): use Rect.PointInside to clean up the
34967 (Canvas::HandleButton): same.
34968 (Canvas::Render): remove the local "item_rect" and just use the
34971 * uielement.cpp (UIElement::UpdateBounds): remember the old
34972 bounds, compute the new bounds, and (if they're different)
34973 invalidate both and chain up to the parent's UpdateBounds method.
34974 (UIElement::UIElement): init the bounds.
34975 (UIElement::OnPropertyChanged): when switch away from a lot of the
34976 FullInvalidate calls. If the clip or OpacityMask is changed, just
34977 Invalidate. If the RenderTransform or RenderTransformOrigin is
34978 changed, called UpdateTransform.
34979 (UIElement::UpdateTransform): all UpdateBounds, since it's
34980 uncommon that our transform will change without our bounds
34982 (UIElement::OnSubPropertyChanged): These shouldn't be necessary,
34983 but again switch away from FullInvalidate to other more targeted
34984 methods. If the transform properties change, call
34985 UpdateTransform, for clip and OpacityMask just call Invalidate.
34986 (UIElement::Invalidate): add a Rect taking one that just
34987 invalidates the rect, and make the default variety call it with
34989 (UIElement::ComputeBounds): rename GetBounds().
34991 * shape.cpp (ComputeBounds): don't use GetSurface. use a
34992 measuring cairo context.
34993 (Shape::OnPropertyChanged): if the Stretch property changed,
34994 UpdateBounds. also, change from FullInvalidate to just Invalidate
34995 for everything. Remove the UpdateTransform call as that gets
34996 handled by UIElement::OnPropetyChanged.
34997 (Rectangle::OnPropertyChanged): we only need to invalidate on a
34999 (Polygon::OnPropertyChanged): if the Points property changes we
35000 need to UpdateBounds and force an Invalidate. otherwise, just
35001 Invalidate. no need for FullInvalidate always.
35002 (Polygon::OnCollectionChanged): new method.
35003 UpdateBounds+Invalidate to catch changes to the points collection.
35004 (Polyline::OnPropertyChanged): analogous changes as were made to
35005 Polygon::OnPropertyChanged.
35006 (Polyline::OnCollectionChanged): same as
35007 Polygon::OnCollectionChanged.
35009 * text.cpp (TextBlock::TextBlock): move the SetValue call to the
35010 end, past all the initialization of things that might be needed in
35011 ComputeBounds, which gets called.
35012 (TextBlock::ComputeBounds): don't use GetSurface. use a measuring
35014 (TextBlock::CalcActualWidthHeight): use a measuring context here.
35015 (TextBlock::OnPropertyChanged): remove unnecessary call to
35016 FrameworkElement::OnPropertyChanged from the end of the method.
35017 (Glyphs::ComputeBounds): return Rect (0,0,0,0).
35019 * media.cpp (MediaElement::ComputeBounds): don't use GetSurface.
35020 use a measuring context.
35021 (Image::ComputeBounds): same.
35022 (OnPropertyChanged): just Invalidate here, no need for
35024 (DownloaderEvent): just Invalidate here, not FullInvalidate.
35026 * frameworkelement.cpp (FrameworkElement::InsideObject): use
35029 * control.cpp (Control::GetBounds): use a Rect here.
35030 (Control::ComputeBounds): forward on to the real_object.
35032 * collection.cpp (VisualCollection::VisualUpdate): when adding an
35033 element, we need to force its invalidation, but not the parent's.
35034 we just update the parent's bounds and UpdateBounds will do the
35035 invalidating if it needs to.
35037 * runtime.cpp (surface_attach): we don't need to do a full
35038 invalidate. just update the bounds of the toplevel (which sets
35039 the width and height to the widget's) and force an invalidate
35040 (just in case the user set the width/height to exactly the same
35041 thing before attaching).
35042 (surface_size_allocate): same thing here - no need for
35043 FullInvalidate. Just update the bounds.
35044 (measuring_context_create): create a tiny surface and a cairo_t
35045 for use in measuring things.
35046 (measuring_context_destroy): destroy the surface and cairo_t.
35048 * control.h, text.h, canvas.h, media.h, shape.h: GetBounds ->
35051 2007-06-28 Miguel de Icaza <miguel@novell.com>
35053 * runtime.cpp (expose_event_callback): Introduce a new
35054 "transparent" field in the Surface. If set, we clear the
35055 region with a transparent region.
35057 2007-06-27 Miguel de Icaza <miguel@novell.com>
35059 * runtime.cpp: Event handlers will work with or without GdkWindows
35060 on the GtkWindows in preparation to support Larry later.
35062 Paint the surface with alpha transparency for now, this breaks the
35063 F-Spot embedding but will be fixed later when we can paint at an
35064 offset, wonder if this will affect performance for now.
35066 Call gtk_event_box_set_visible_window () with TRUE, so that we
35067 have a window, for now we require this to get the events working
35070 * canvas.cpp: Drop the translate transform on the topmost canvas
35071 as that was breaking all the code that depended on the inverse
35072 matrix transform to work for doing coordinate mapping based on the
35075 Instead we need to draw the cairo context at the given offset
35076 in the repaint routine. This is left as an excercise for Larry.
35078 Tests to validate that the mouse input is working:
35080 * test/demo.exe: enter/leave
35082 * silverlight airlines
35083 * LunarEclipse designer.
35085 * value.cpp (FreeValue): New method that does the actual releasing
35086 of the value. We do this here so the managed code can release
35087 things in the same way.
35089 (value_free_value): helper method.
35091 2007-06-27 Chris Toshok <toshok@ximian.com>
35093 * clock.cpp (RaiseEnqueuedEvents): ref/unref the clocks around the
35094 calls to RaiseAccumulatedEvents.
35096 2007-06-27 Chris Toshok <toshok@ximian.com>
35098 * clock.cpp (get_now): turns out we really do want this extra *10
35099 in there, so that it matches up with mono's TimeSpan.Tick values.
35101 2007-06-27 Chris Toshok <toshok@ximian.com>
35103 * canvas.cpp (Canvas::GetBounds): Collapsed elements shouldn't
35104 take part in bounds computation.
35105 (Canvas::HandleButton): !Visible elements don't take part in hit
35107 (Canvas::HandleMotion): same here.
35109 2007-06-27 Jackson Harper <jackson@ximian.com>
35111 * xaml.cpp: Use Type to lookup the property owner, because it
35112 might be a "ghost" type that the xaml parser can't lookup.
35114 2007-06-27 Miguel de Icaza <miguel@novell.com>
35116 * control.cpp: When handling events, we also need to pass the
35117 event notification to the control, not only to the "real_object"
35118 that we are proxying for. This is what cause the calendar to
35121 * canvas.cpp (GetBounds): Do not use 0, 0, 0, 0 for the bounds of
35122 the canvas, instead use the point at (0,0) and the width, height
35123 with its absolute transformation.
35125 Otherwise canvases with children would end up with
35126 (0,0,0,0) and when compounded would extend the bounding box of
35127 containing ones to include this region even when not needed.
35129 2007-06-26 Chris Toshok <toshok@ximian.com>
35131 * uielement.h: add virtual GetSurface() method.
35133 * uielement.cpp: implement UIElement::GetSurface to just chain up
35134 to the parent element if we have one, and return NULL otherwise.
35135 Also, make item_get_surface call this method. removes the
35136 dependency on canvas.h from this file.
35138 * canvas.h: we override UIElement::GetSurface ()
35140 * canvas.cpp (Canvas::GetSurface): if we're the toplevel canvas,
35141 return our surface. otherwise call our base class's GetSurface.
35143 * media.h: rename Image::GetSurface here to GetCairoSurface to
35144 avoid name collision.
35146 * brush.cpp, media.cpp: track media.h change.
35148 2007-06-26 Miguel de Icaza <miguel@novell.com>
35150 * collection.h: Change of course. The actual public interface
35151 implements IList<T> and ICollection<T> not IList nor ICollection
35152 which means that Add does not need to return an index, and Remove
35153 must return whether it actually removed the object.
35155 * collection.h (Add): Make this method return the index of the
35156 object just created, so we can implement int IList.Add(...).
35158 Removed all the empty Add/Remove methods from collections that
35159 were not doing anything interesting with them, the remaining
35160 chunks of old hacks.
35162 * (SetVal): This method is used to replace a value at a given
35163 index with another one. For the C# IList.this [int] indexer.
35165 2007-06-26 Chris Toshok <toshok@ximian.com>
35167 * clock.cpp: make a copy of the child clocks lists before
35168 traversing them calling callbacks that could result in the lists
35171 2007-06-26 Chris Toshok <toshok@ximian.com>
35173 * dependencyobject.h: add OnCollectionChanged to allow
35174 propertychange notifications from elements in collections to
35175 bubble up to their parent.
35177 * collection.h: make the closure a DependencyObject*, just to be
35178 explicit. also, add OnSubPropertyChanged to Collection so we can
35179 generate OnCollectionChanged notifications.
35181 * collection.cpp: hook things up on elements in collections, and
35182 generate proper notifications from the collection to its closure.
35184 * enums.h: add CollectionChangeType for use in
35185 OnCollectionChanged.
35187 * geometry.h, geometry.cpp, shape.h, shape.cpp: use the new
35188 collection notification stuff to bubble changes up the hierarchy.
35190 2007-06-26 Jeffrey Stedfast <fejj@novell.com>
35192 * list.cpp (Replace): Added.
35194 * dependencyobject.cpp (dependency_object_get_value_no_default):
35195 New binding function.
35196 (dependency_object_get_object_type): Renamed from get_kind() which
35197 didn't mirror the native API at all.
35199 2007-06-26 Sebastien Pouliot <sebastien@ximian.com>
35201 * geometry.cpp|h: Add missing PathSegment::OnPropertyChanged
35202 * shape.cpp: Remove debugging output.
35204 2007-06-26 Chris Toshok <toshok@ximian.com>
35206 * uielement.h: change render/dorender to take a cairo_t* instead
35209 * canvas.h, control.h, text.h, geometry.h, canvas.cpp,
35210 uielement.cpp, geometry.cpp, shape.cpp, media.h, shape.h,
35211 media.cpp, control.cpp, runtime.cpp, text.cpp: fallout from the
35214 2007-06-25 Jeffrey Stedfast <fejj@gnome.org>
35216 * brush.cpp (LinearGradientBrush::SetupBrush): Use
35217 uielement->get_size_for_brush() because the framework width/height
35220 * text.cpp: Implement text wrapping and clipping to Width/Height
35221 bounds if specified.
35223 2007-06-25 Miguel de Icaza <miguel@novell.com>
35225 * runtime.cpp: Cope with the fact that we are now windowless and
35226 we will be sharing the parent's window. Fixes mouse events.
35228 * collection.cpp (collection_get_value_at, collection_count): Add
35231 2007-06-25 Jeffrey Stedfast <fejj@novell.com>
35235 * text.cpp: Rewritten to use the new MangoRenderer and
35236 MangoAttrForeground classes.
35238 * mango.cpp: New source file implementing a PangoRenderer and
35239 providing a new PangoAttribute for brushes.
35241 2007-06-25 Chris Toshok <toshok@ximian.com>
35243 * runtime.h: add decl for Panel::OnSubPropertyChanged.
35245 * runtime.cpp (UIElement::OnPropertyChanged): handle changes to
35246 zIndex by invalidating the item's rectangle.
35247 (UIElement::OnSubPropertyChanged): add braces around all the if
35248 blocks for consistency.
35249 (Panel::OnSubPropertyChanged): if a child changes its z index we
35250 need to resort our visual collection.
35251 (Canvas::render): loop over the z sorted list of children instead
35252 of the default collection list.
35253 (item_init): just to be anal, cast the Zindex default value to
35256 x2007-06-25 Chris Toshok <toshok@ximian.com>
35258 * collection.cpp: keep a z-sorted list in VisualCollection,
35259 adding/removing elements from it when needed, and clearing it when
35260 the collection is cleared.
35262 * collection.h: add a virtual clear method so VisualCollection can
35263 override it. Also, add a z_sorted_list member to
35264 VisualCollection, so we can deal with the ZIndices of children.
35266 2007-06-24 Alan McGovern <amcgovern@novell.com>
35268 * runtime.(cpp|h): Implemented UIElement.ZIndexPropery
35270 2007-06-24 Larry Ewing <lewing@novell.com>
35272 * runtime.cpp: rework size allocation and make toplevel Canvas
35273 items read the allocation->x and allocation->y offsets from the
35274 surface widget when computing their position.
35276 2007-06-24 Chris Toshok <toshok@ximian.com>
35278 * Makefile.am (libmooninclude_HEADERS): add collection.h
35279 (libmoon_la_SOURCES): add collection.cpp
35281 * collection.h, collection.cpp: new files. split out Collection
35282 and all the collection-related code from runtime.h/runtime.cpp.
35283 arguably the collections specific to certain elements should exist
35284 completely in those .cpp/.h files, instead of here.
35286 * runtime.h, runtime.cpp: remove collection stuff.
35288 * clock.h, animation.h, transform.h: #include collection.h
35290 * value.h, value.h.in: #include <string.h> here so we can stop
35291 requiring it for everyone else. really, though we should be using
35292 g_strcmp or something that's already pulled in from glib.
35294 2007-06-24 Chris Toshok <toshok@ximian.com>
35296 * Makefile.am (libmoon_la_SOURCES): add array.cpp
35297 (libmooninclude_HEADERS): add array.h
35299 * xaml.cpp, value.cpp, shape.cpp, geometry.cpp: include array.h
35301 * array.h, array.cpp: new files, split them out from
35304 2007-06-24 Chris Toshok <toshok@ximian.com>
35306 * Makefile.am (libmooninclude_HEADERS): add xaml.h
35308 * xaml.h: split this out from...
35310 * runtime.h: ... here.
35312 * xaml.cpp, runtime.cpp, control.h, demo.cpp: #include xaml.h
35314 2007-06-24 Chris Toshok <toshok@ximian.com>
35316 * Makefile.am (libmooninclude_HEADERS): add control.h
35318 * control.h: split out class Control stuff...
35320 * runtime.h: .. from here.
35322 * runtime.cpp: #include control.h
35324 * control.cpp: same.
35326 2007-06-24 Chris Toshok <toshok@ximian.com>
35328 * runtime.h: add OnLoaded methods to UIElement, Panel, and
35331 * runtime.cpp (UIElement::OnLoaded): emit the Loaded event if we
35333 (VisualCollection::Add): only invoke OnLoaded on the item if the
35334 closure (the parent of the collection) has been loaded.
35335 (VisualCollection::Insert): same.
35336 (Panel::OnLoaded): call OnLoaded on all our children, then chain
35338 (surface_attach): call canvas->OnLoaded instead of
35339 emit_loaded_events(canvas). also, don't use a special IS_CANVAS
35340 flag - just use the type system.
35341 (item_get_surface): get rid of the IS_CANVAS flag and just use the
35344 * control.cpp (Control::OnLoaded): new method, invoke OnLoaded on
35345 the real object before chaining up.
35347 2007-06-24 Larry Ewing <lewing@novell.com>
35349 * runtime.cpp: disable transparent surfaces while fixing the
35350 drawing offset problem.
35352 2007-06-24 Larry Ewing <lewing@novell.com>
35354 * brush.cpp: use cairo_create_similar rather than using an image
35357 2007-06-24 Chris Toshok <toshok@ximian.com>
35359 * runtime.cpp (VisualCollection::Add): only emit Loaded if the
35360 tree we're adding it to has already been loaded.
35362 2007-06-24 Larry Ewing <lewing@novell.com>
35364 * demo.cpp: add -trans flag to demo to make the toplevel transparent.
35366 2007-06-24 Larry Ewing <lewing@novell.com>
35368 * runtime.cpp: add comments to the new gtk functions.
35370 * runtime.h: expose surface_paint.
35372 2007-06-23 Miguel de Icaza <miguel@novell.com>
35374 * runtime.cpp: Since unrealize does not seem to be called when our
35375 widget is destroyed by Mozilla, we need to cleanup on destroy the
35376 tick event. This takes care of one of the plugin crashers.
35378 There are still others that I have to find out, I added some
35379 debugging prints for now.
35381 2007-06-24 Larry Ewing <lewing@novell.com>
35383 * runtime.cpp: derive from EventBox not drawing area so that we
35384 can use it as a quick method of switching back and forth between
35385 transparent and not. Add a method to let external code paint to a
35388 2007-06-23 Jeffrey Stedfast <fejj@gnome.org>
35390 * text.cpp (SetValue): Overridden to enforce Text strings not
35391 preserving any leading nor trailing whitespace (as defined in the
35394 2007-06-22 Jeffrey Stedfast <fejj@novell.com>
35396 * xaml.cpp (matrix_value_from_str): use delete[] to free the array
35397 of doubles instead of g_free() as it was allocated with new, not
35400 * text.cpp (Layout): D'oh, make sure to always init text/block
35401 width/height values. This fixes VideoBrush again.
35403 2007-06-22 Jeffrey Stedfast <fejj@novell.com>
35405 * mplayer.cpp: Initialize 'opened' state variable.
35407 * text.cpp (GetValue): Override DependencyObject::GetValue() so
35408 that we can special-case getting TextBlock::Actual[Width,Height]
35409 properties (this allows us to prolong re-calculating these values
35410 until after the user has set the values he's going to set -
35411 re-calculating on ever property change is too expensive.
35413 * runtime.h: Make DependencyObject::GetValue() virtual.
35415 2007-06-22 Jeffrey Stedfast <fejj@gnome.org>
35417 * text.cpp: Stubbed out the required virtual methods for Glyphs
35418 and attempted to make ActualWidth and ActualHeight calculated
35419 immediately in an attempt to get DrPopper working better.
35421 2007-06-22 Sebastien Pouliot <sebastien@ximian.com>
35423 * shape.cpp: Small hack to avoid calling Draw 2 times during render.
35425 2007-06-22 Chris Toshok <toshok@ximian.com>
35427 * xaml.cpp (key_spline_from_str): free up the point arrays from
35428 point_array_from_str after we use them.
35429 (xaml_set_property_from_str): same.
35431 2007-06-22 Chris Toshok <toshok@ximian.com>
35433 * value.cpp (Value): the copy ctor is definitely corrupting memory
35434 in the MATRIX case - we need to allocate the destination matrix.
35436 2007-06-21 Chris Toshok <toshok@ximian.com>
35438 * Makefile.am: not that anyone should be installing this yet,
35439 install the headers to $(includedir)/libmoon.
35441 2007-06-21 Jeffrey Stedfast <fejj@novell.com>
35443 * text.cpp: Reworked text layout/rendering logic - we now cache
35444 width/height info for each text string as well as the overall
35445 block width/height. This info is then used to align text strings
35446 on each line along the bottom edge (rather than along the top
35447 edge) of the line of text.
35449 * xaml.cpp (char_data_handler): Ignore insignificant lwsp CDATA
35451 2007-06-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
35453 * stylus.h|cpp: Add InkPresenter.
35454 * media.h|cpp: Add C methods to stop, pause and play a MediaElement.
35455 * value.h, type.h|cpp: Updated.
35457 2007-06-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
35459 * animation.cpp: Register *KeyFrame::Value properties as nullable.
35460 * clock.cpp: Register TimelineMarker properties.
35462 2007-06-21 Jackson Harper <jackson@ximian.com>
35464 * xaml.cpp: When setting the x:Name also set the name property.
35466 2007-06-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
35468 * stylus.cpp|h: Added Stroke and DrawingAttributes.
35469 * runtime.h: All collections can now implement GetElementType.
35470 * value.h, type.h, type.cpp: Updated.
35472 2007-06-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
35474 * stylus.cpp|h: Added.
35475 * runtime.cpp|h: Define and call stylus_init.
35476 * Makefile.am: Add stylus.cpp|h.
35477 * value.h, type.h, type.cpp: Updated.
35479 2007-06-21 Jackson Harper <jackson@ximian.com>
35481 * xaml.cpp: Add a global set of callbacks, so that all of the
35482 custom callbacks for a given parsing instance use the same
35483 methods. This needs to be encapsulated properly, but for now is
35486 2007-06-20 Chris Toshok <toshok@ximian.com>
35488 * animation.cpp, animation.h: KeyFrameCollection overrides
35489 Collection::Clear to clear its sorted list.
35491 * runtime.cpp, runtime.h: add overrideable Collection::Clear
35492 method, and move collection_clear's body into it.
35494 2007-06-21 Jackson Harper <jackson@ximian.com>
35496 * runtime.cpp|h: Don't return false on single element collections
35499 2007-06-21 Jeffrey Stedfast <fejj@gnome.org>
35501 * text.cpp: Use absolute font sizes, makes the fonts not so huge.
35503 2007-06-20 Jackson Harper <jackson@ximian.com>
35505 * xaml.cpp: Set namecopes earlier, and make sure to copy the
35506 namescope when we recreate a class using x:Class.
35507 - When we use x:Class reparse the element's attributes, so it can
35508 hook up to events and set properties.
35509 * runtime.cpp|h: When the Name property is set, register it with
35510 the proper NameScope.
35512 2007-06-20 Chris Toshok <toshok@ximian.com>
35514 * runtime.cpp, runtime.h: add rudimentary Visibility support. we
35515 only support Visible/Hidden really, and treat Collapsed as Hidden.
35517 * xaml.cpp (enum_from_str): use g_strcasecmp here.
35519 2007-06-20 Sebastien Pouliot <sebastien@ximian.com>
35521 * shape.cpp|h: Implement caching of Path (this could be extended to
35523 * geometry.cpp|h: Notify on changes.
35525 2007-06-20 Sebastien Pouliot <sebastien@ximian.com>
35527 * xaml.cpp: Don't allocate (and free) a copy of the PML before
35528 calling geometry_from_str.
35530 2007-06-20 Sebastien Pouliot <sebastien@ximian.com>
35532 * shape.cpp: Fix some Stretch modes for paths. This can get very
35533 expansive, next step is to cache the cairo_path_t* in the Path and
35534 recompute it only on changes.
35536 2007-06-20 Chris Toshok <toshok@ximian.com>
35538 * xaml.cpp (is_valid_event_name): new function.
35539 (dependency_object_hookup_event): only allow valid events to be
35542 2007-06-20 Jackson Harper <jackson@ximian.com>
35544 * runtime.cpp|h: New method for finding an objects namescope.
35545 - Call an objects loaded event when it is added to a Collection
35546 - Some bits of namescope merging, these functions aren't called
35549 2007-06-20 Chris Toshok <toshok@ximian.com>
35551 * xaml.cpp (dependency_object_hookup_event): we need more than
35552 just the Loaded event.
35554 2007-06-20 Jeffrey Stedfast <fejj@novell.com>
35556 * text.cpp (Run): Don't set default font values here... we need
35557 them to be unset if they aren't explicitly set by the user so that
35558 we can inherit font properties from our parent TextBlock.
35559 (Draw): Fixed to make Runs inherit unset font properties from the
35560 TextBlock at render-time. Also fixed to make sure we have a
35561 foreground brush to draw with... if unset, use the default brush.
35563 2007-06-20 Chris Toshok <toshok@ximian.com>
35565 * runtime.cpp (UIElement::render): make this print the classname
35566 like UIElement::getbounds() does.
35568 * runtime.h, runtime.cpp: make control_initialize_from_xaml take
35569 the xaml parser custom element callbacks.
35571 2007-06-20 Chris Toshok <toshok@ximian.com>
35573 * runtime.cpp (runtime_shutdown): set inited to false, since we
35574 want people to be able to call runtime_init again after this.
35576 * type.cpp.in (Type::RegisterType): allocate types if we need to.
35577 (Type::Shutdown): free types.
35579 * type.h.in (private): make the types array dynamically allocated.
35581 * type.h, type.cpp: sync
35583 2007-06-20 Jeffrey Stedfast <fejj@novell.com>
35585 * text.cpp (TextBlock): Need to actually set ActualWidth and
35586 ActualHeight values.
35588 2007-06-20 Chris Toshok <toshok@ximian.com>
35590 * clock.cpp (Clock::Tick): if we hit our natural duration but our
35591 duration is Automatic, go to Fill mode, since we may have child
35592 clocks that started after us and need a chance to run their last
35595 2007-06-20 Jeffrey Stedfast <fejj@novell.com>
35597 * runtime.cpp (collection_iterator_move_next): If we can't iterate
35598 to the next item, don't set current = NULL.
35599 (dependency_object_get_name): New function needed for the binding.
35601 2007-06-20 Larry Ewing <lewing@novell.com>
35603 * runtime.cpp: use gdk_cairo helper functions and clip to the
35604 expose event region.
35606 * runtime.h: remove unused members.
35608 * media.cpp: use cairo_get_target rather than keeping track of
35611 2007-06-20 Jackson Harper <jackson@ximian.com>
35613 * xaml.cpp/runtime.h: Add one more callback, this one will hookup
35614 events to methods. So things like Loaded=CanvasLoaded will work.
35618 2007-06-20 Jackson Harper <jackson@ximian.com>
35620 * xaml.cpp: More verbose debug output with namespace lookup
35622 - Map in the default namespaces if we are unable to lookup the
35623 proper namespace name.
35625 2007-06-20 Sebastien Pouliot <sebastien@ximian.com>
35627 * shape.cpp: Call cairo_[stroke|fill]_extents inside Shape::getbounds
35628 or the mouse moving won't work.
35630 2007-06-20 Sebastien Pouliot <sebastien@ximian.com>
35632 * shape.cpp: Fix Shape::getbounds to work even if no stroke brush is
35633 assigned, in that case we get the extents of the fill.
35635 2007-06-20 Chris Toshok <toshok@ximian.com>
35637 * animation.cpp: um.. "oops".
35639 * xaml.cpp (xaml_init): enable the parsing of the color/point
35642 2007-06-20 Chris Toshok <toshok@ximian.com>
35644 * animation.cpp: guard against division by zero in the double
35645 keyframe GetCurrentValue method. I'll fix this method up some
35646 more and then report it to the other animation types.
35648 Also, add the Spline(Color,Point)KeyFrames.
35650 * clock.cpp, clock.h: fixes to get all this working again while
35651 still supporting the needed things from the last patch (like
35654 * transform.cpp (GetTransform): i hate like hell to have to do
35655 this, but if we scale by 0.0 cairo can't invert the matrix and
35656 then everything goes belly up. 0.00002 is the smallest number I
35657 found (0.00001 doesn't work, for instance) where cairo doesn't
35658 complain about the inverse stuff.
35660 * media.cpp (media_element_set_buffering_time): we have to use the
35661 hacky Value ctor here.
35662 (media_element_set_position): and here.
35664 * runtime.cpp (emit_loaded_events): new function to walk the tree
35665 and emit loaded events.
35666 (surface_attach): call emit_loaded_events here - the docs specify
35667 that Loaded is emitted after it's associated with the host but
35668 before it's rendered.
35669 (Canvas::render): don't emit Loaded here.
35670 (runtime_init): output a nice message here if you run cairo
35671 against a verion of cairo that you shouldn't be using.
35673 * type.h, type.cpp, value.h: resync.
35675 2007-06-20 Jackson Harper <jackson@ximian.com>
35677 * xaml.cpp: Improve the way we handle x:Class attributes failing
35680 2007-06-20 Jackson Harper <jackson@ximian.com>
35682 * xaml.cpp: Hookup attached properties in the property_from_str
35685 2007-06-19 Chris Toshok <toshok@ximian.com>
35687 * media.cpp (media_element_get_buffering_time): use AsTimeSpan().
35688 (media_element_get_position): same.
35689 (media_init): mark BufferingTime and Position as TimeSpan's.
35691 2007-06-19 Chris Toshok <toshok@ximian.com>
35693 * clock.cpp, clock.h: bad time for a a rearchitecting, perhaps,
35694 but this was necessary to get BeginTime's to be supported. It
35695 reintroduces the "popping" in the surface demo, though, and
35696 honestly I'm unsure how we can ever guarantee that enough ticks
35697 will have occured to be sure we won't see the initial state of the
35700 * animation.cpp: track clock api changes.
35702 * runtime.h: decl for FramworkElement::OnPropertyChanged.
35704 * runtime.cpp (EventObject::Emit): make a copy of the list before
35705 we start emitting, to keep us crashing if the list is modified
35706 while we're traversing it.
35707 (FramworkElement::OnPropertyChanged): invalidate on width/height
35710 * xaml.cpp: when parsing a TIMESPAN property, use
35711 timespan_from_str. This fixes the parsing of BeginTime
35714 * type.cpp.in: register TIMESPAN.
35716 * value.h.in: add a AsTimeSpan method, and special hacky
35717 constructor so the parser can construct a value of type TIMESPAN
35718 (which is problematic since it's typedef'ed to gint64.) Move the
35719 TimeSpan typedef here.
35721 * value.cpp: add the impl for that hacky ctor.
35723 * type.h.in: add a TIMESPAN kind.
35725 * type.h, value.h, type.cpp: sync.
35727 2007-06-19 Jackson Harper <jackson@ximian.com>
35729 * xaml.cpp: we need to new the points.
35731 2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
35733 * geometry.cpp: Add safety to ensure the number of points are
35734 valid before iterating on them.
35736 2007-06-19 Jackson Harper <jackson@ximian.com>
35738 * xaml.cpp: make sure to get all the points.
35739 - sneak peek at the exciting new attached property setting code.
35740 - improve error message
35741 - dont step off the end of the string when the trailing characters
35744 2007-06-19 Jeffrey Stedfast <fejj@gnome.org>
35746 * *.cpp: Updated to use the new List type.
35748 * runtime.cpp|h (Collection): Modified to use List instead of
35749 GList which made some code simpler, we get to take advantage of
35752 * demo.cpp (main): Removed surface_destroy() and
35753 runtime_shutdown() out of the delete_event callback (gtk timeouts
35754 could still fire after the gtk_main_quit() call it seems).
35756 2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
35758 * runtime.cpp: Enforce UIElement::ClipProperty when rendering
35761 2007-06-19 Jackson Harper <jackson@ximian.com>
35763 * xaml.cpp: Content properties can be inherited.
35765 2007-06-19 Jackson Harper <jackson@ximian.com>
35767 * xaml.cpp: Make sure that we have a previous figure.
35769 2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
35771 * geometry.cpp|h: Revert previous changes. That didn't work well
35772 with groups/collections.
35773 * shape.cpp: Path::Draw now process the path (find and susbtract
35774 origin) when Stretch requires it.
35776 2007-06-19 Jackson Harper <jackson@ximian.com>
35778 * xaml.cpp: Set the namescope right away, so FindName will work in
35779 element constructors.
35781 2007-06-19 Jeffrey Stedfast <fejj@gnome.org>
35783 * animation.cpp: Switched to use List instead of GList.
35785 2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
35787 * geometry.cpp|h: Change API so the Strech value is propagated from
35788 the shape to all the geometry figures. Fixed Stretch for LineGeometry,
35789 EllipseGeometry and RectangleGeometry.
35790 * shape.cpp: Path::Draw now supply the Stretch property value to
35791 all Geometry objects drawing methods.
35793 2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
35795 * shape.cpp: Don't call cairo_new_path inside moon_ellipse. It's
35796 the caller responsbility to do so, if required (e.g. it isn't for
35799 2007-06-19 Jackson Harper <jackson@ximian.com>
35801 * xaml.cpp: Implement all the optional points on path markup.
35803 2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
35805 * shape.cpp: Fix Stretch for Polyline and Polygon.
35807 2007-06-19 Jeffrey Stedfast <fejj@novell.com>
35809 * xaml.cpp: Updated to use a real linked list implementation.. for
35810 added uberness. Also reduces memory leakage.
35812 * mplayer.cpp: Stubbed out a few more things and can now return
35813 the video duration.
35815 2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
35817 * shape.cpp|h: Set Shape::Stretch default to None and set Stretch
35818 property to fill inside Rectangle and Ellipse ctors.
35820 2007-06-19 Jeffrey Stedfast <fejj@novell.com>
35822 * runtime.cpp (Insert): Make this use SharedAdd too, which I
35823 presume was the whole point.
35825 2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
35827 * shape.cpp: Fix Strech support for Rectangle (it behave more like
35828 Ellipse but that shows only with non squares).
35830 2007-06-19 Jeffrey Stedfast <fejj@novell.com>
35832 * mplayer.cpp (audio_loop): Fixed muting to advance the correct
35833 number of pts and not hang forever in a g_usleep() (gah, the timer
35834 was a huge negative value).
35836 2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
35838 * clock.h: Added TimelineMarker.
35839 * type.h, type.cpp, value.h: Updated.
35841 2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
35843 * shape.h: Fix filling for Polyline. MS supports filling polylines,
35844 even unclosed ones.
35846 2007-06-19 Chris Toshok <toshok@ximian.com>
35848 * runtime.cpp (surface_realloc): make sure to reassign s->cairo to
35849 s->cairo_xlib after recreating the xlib stuff. avoids a crash
35850 when resizing surfaces.
35852 2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
35854 * shape.cpp: Add Strech support for Ellipse.
35856 2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
35858 * shape.cpp: Add Strech support for Rectangle (only None is different).
35859 Add comments to Line as Stretch doesn't apply for this Shape.
35861 2007-06-19 Miguel de Icaza <miguel@novell.com>
35863 * runtime.cpp (Collection): Add new Insert method, and update all
35864 the callers that overwrote it. We probably need to cleanup
35865 everything that is doing virtual overrides and is a no-op
35867 2007-06-19 Chris Toshok <toshok@ximian.com>
35869 * runtime.cpp (clear_drawing_area): this method doesn't need to
35870 clean up the xlib cairo context/surface and the pixmap.
35872 There are two possibilities:
35874 1) the drawing area has been realized, which means we have xlib
35875 surface/context + pixmap. We're guaranteed to hit
35876 unrealized_callback before this method is called, so they will
35877 have already been freed.
35879 2) the drawing area has not been realized, which means we have no
35880 xlib surface/context + pixmap, and this method doesn't need to do
35883 2007-06-19 Jackson Harper <jackson@ximian.com>
35885 * runtime.h/shape.cpp: Fix typo.
35887 2007-06-19 Jeffrey Stedfast <fejj@novell.com>
35889 * text.cpp (Run::OnPropertyChanged): Always chain up to our parent
35890 implementation and if one of our properties changed, notify our
35892 (Inline::OnPropertyChanged): Same.
35893 (TextBlock::OnPropertyChanged): Keep track of Inlines changes.
35894 (TextBlock::Draw): Use our foreground brush directly and the same
35895 for run's foreground brush.
35897 2007-06-19 Miguel de Icaza <miguel@novell.com>
35899 * runtime.cpp: Implement collection iterators.
35901 2007-06-19 Chris Toshok <toshok@ximian.com>
35903 * xaml.cpp (timespan_from_str): don't walk off the end of the
35906 2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
35908 * animation.h|cpp: Remove pureness from KeyFrame::InterpolateValue.
35910 2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
35912 * animation.h|cpp: Add *_key_frame_new.
35914 2007-06-19 Jackson Harper <jackson@ximian.com>
35916 * xaml.cpp\runtime.h: Add a public function for setting
35917 properties, from strings. Basically a copy and paste of my
35918 set_attributes code. Eventually I should be able to merge the
35919 two, but they use different name lookup mechanisms right now.
35921 2007-06-19 Jeffrey Stedfast <fejj@gnome.org>
35923 * animation.cpp (Remove): Remove the KeyFrame from the sorted list
35924 before removing it from the collection (since it may be freed by
35925 Collection::Remove).
35927 2007-06-19 Miguel de Icaza <miguel@novell.com>
35929 * runtime.cpp: Add support for notifying the consumer that the
35930 surface has resized.
35932 Add support for resizing objects.
35934 2007-06-19 Jeffrey Stedfast <fejj@gnome.org>
35936 * brush.cpp (~VideoBrush): We want to detach from the media
35937 element, not ourselves. Doh.
35939 2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
35941 * shape.h: Update comments about which shapes needs, or not, to
35942 provide a getxformorigin method.
35944 2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
35946 * media.h|cpp: Add media_base_new.
35948 2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
35950 * value.cpp|h|in: Inline the non-DependencyObject
35951 As* functions as well.
35953 2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
35955 * typegen.cs: Removed some dead code.
35956 * value.cpp.in: Deleted, not needed anymore.
35957 * runtime.cpp, value.cpp, type.cpp.in: Moved
35958 implementation of Value and Type into their own files.
35959 * type.cpp: Updated.
35961 2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
35963 * type.h, type.h.in: Created, moved declaration of Type here.
35964 * *.h|cpp|in: Move Value:Kind to Type::Kind and update all
35965 references. Move the Value::As* into the header.
35966 * typegen.cs: Updated to cope with Kind changes.
35968 2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
35970 * runtime.cpp|h, value.h.in: Remove current nullable code,
35971 it's easier to store an is_nullable flag in the registered
35972 property, and store NULL values in the objects hashtable.
35973 * xaml.cpp: Revert unnecessary fixes.
35974 * value.h: Updated.
35976 2007-06-19 Chris Toshok <toshok@ximian.com>
35978 * runtime.h: get rid of the specialized surface callbacks for
35979 mouse events. we can dispatch them directly to the UIElements.
35980 Change the EventObject signatures to permit an event/call data as
35981 well as the closure. add the sender object for kicks while we're
35984 * runtime.cpp: dispatch element events through the
35985 DependencyObject's events object.
35987 * animation.h, animation.cpp: update signatures for event
35990 * control.cpp (handle_button): track signature change.
35994 2007-06-18 Chris Toshok <toshok@ximian.com>
35996 * clock.cpp (TimeManager::Tick): add a lot of timing foo.
35997 (ClockGroup::RaiseAccumulatedEvents): raise the Completed event if
35998 we switching to the stopped state and our progress is 1.0 (that
35999 is, if we've finished).
36001 * animation.h, animation.cpp (Storyboard::Begin): rather heavy
36002 handed (but bulletproof) approach to making Begin work on a
36003 storyboard that has run its course - destroy the clock hierarchy
36004 and recreate it. Also, add a handler for the ClockGroup's
36005 "Completed" event so we can reflect that back to managed land.
36007 * runtime.h: add C functions to add/remove handlers from the
36008 EventObject inside a dep object.
36010 2007-06-18 Jackson Harper <jackson@ximian.com>
36012 * xaml.cpp: Set text context properties from char data. This
36013 allows you to do things like <Run>Hi I am some text</Run>. As far
36014 as I can tell, Run is the only element that allows this.
36016 2007-06-18 Sebastien Pouliot <sebastien@ximian.com>
36018 * shape.cpp|h: Fix Line and Ellipse getxformorigin.
36020 2007-06-18 Jackson Harper <jackson@ximian.com>
36022 * xaml.cpp: Now implement the smooth beziers correctly, much
36023 thanks to spouliot for figuring out the formula to reflect control
36026 2007-06-18 Chris Toshok <toshok@ximian.com>
36028 * clock.h, clock.cpp: ifdef some debug spew, add a bitmask for
36029 what the timemanager should do on a given tick, and add some
36030 #defines/logic to calculate the gtk delay from the desired
36031 framerate. Set the desired framerate to 20fps.
36033 2007-06-18 Jeffrey Stedfast <fejj@novell.com>
36035 Instead of attaching to Brush::ChangedProperty, connect to NULL.
36037 * media.cpp (render): If the width/height are 0.0, then use the
36038 video's natural width/height.
36039 (OnPropertyChanged): chain up.
36041 * shape.cpp (OnPropertyChanged): Always chain up to our parent.
36043 2007-06-18 Chris Toshok <toshok@ximian.com>
36045 * xaml.cpp (dependency_object_set_attributes): suggestion by rolf.
36046 fixes setting of nullable property values.
36048 2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
36050 * runtime.cpp: Store NULL again in the property hashtable,
36051 but use the lookup_extended function to detect this and return
36052 a correct NULL value instead of the default value.
36054 2007-06-18 Chris Toshok <toshok@ximian.com>
36056 * runtime.cpp (RemoveHandler): more cleanups.
36058 2007-06-18 Chris Toshok <toshok@ximian.com>
36060 * runtime.cpp (RemoveHandler): g_free'ing a new'ed c++ object =
36063 2007-06-18 Jackson Harper <jackson@ximian.com>
36065 * xaml.cpp: Implement path closing and ArcSegments.
36067 2007-06-18 Miguel de Icaza <miguel@novell.com>
36069 * runtime.cpp (SetValue): This looks painful, now
36070 DependencyObjects are stored inside the hash but they might
36071 contain a NULL. This seems bad.
36073 (Value): Do not delete null dependency objects.
36075 Remove this patch, and try demo.exe, enter/leave/enter, this
36076 crashes now, because the leave sets the fill to "null" and the
36077 enter then tries to access it
36079 2007-06-18 Jeffrey Stedfast <fejj@novell.com>
36081 * brush.cpp: Do proper OnPropertyChanged proagation.
36082 (ImageBrush::OnPropertyChanged): Notify using the generic
36083 Brush::ChangedProperty.
36084 (VideoBrush::OnPropertyChanged): Same.
36085 (VideoBrush::OnSubPropertyChanged): Same.
36087 * shape.cpp (Shape): Need to keep track of our stroke/fill brushes
36088 so we can listen for change notification.
36090 * runtime.cpp (UIElement): Same.
36093 * text.cpp (TextBlock): Same here (need to do it for Inlines too
36096 * media.cpp (media_base_new): Removed, you can't instantiate a
36098 (advance_frame): Optimization hack: don't invalidate if our
36100 (MediaElement::render): Respect opacity and stretch properties.
36102 2007-06-18 Jackson Harper <jackson@ximian.com>
36104 * xaml.cpp: We need to create new figures if we get a Move
36107 2007-06-18 Chris Toshok <toshok@ximian.com>
36109 * demo.cpp: use TimeManager::AddTickCall for the async file
36110 loading. This makes the image visible immediately for me, instead
36111 of requiring the animations be paused to see it.
36113 * clock.cpp, clock.h: add a one-shot "tick call" idle handler of
36114 sorts to TimeManager. This way we can better control when the
36115 cross thread downloader calls happen, and keep them from affecting
36116 the frame rate, and also keep them from being starved by an
36117 overzealous demo.cpp.
36119 2007-06-18 Chris Toshok <toshok@ximian.com>
36121 * runtime.cpp (unrealized_callback): remove the render handler.
36122 (realized_callback): attach the render handler.
36123 (render_surface): a very simple render handler. We just force gtk
36124 to process all pending updates.
36126 * clock.cpp (TimeManager::Tick): as a temporary hack, have
36127 TimeManager emit the "render" event after every animation tick.
36128 We should add tuning to this method to achieve usable framerates
36129 without killing the cpu.
36131 * clock.h: make TimeManager subclass from EventObject so we can
36132 hook up to events on it.
36134 2007-06-18 Sebastien Pouliot <sebastien@ximian.com>
36136 * shape.cpp: getbounds gets bad results if stroke (or fill) isn't
36137 called. We create a new path so the bounds, for an invisible object,
36140 2007-06-18 Chris Toshok <toshok@ximian.com>
36142 * clock.cpp (Clock::TimeUpdated): return immediately if we're stopped.
36144 2007-06-18 Jackson Harper <jackson@ximian.com>
36146 * xaml.cpp: Fix smooth quadratic bezier's.
36148 2007-06-18 Chris Toshok <toshok@ximian.com>
36150 * media.cpp, media.h (Image::render): on our first rendering,
36151 convert to using an xlib surface to speed up future redraws.
36153 2007-06-18 Chris Toshok <toshok@ximian.com>
36155 * runtime.cpp (UIElement::dorender): add this, and make everything
36156 that calls ->render call ->dorender.
36158 * control.cpp (render): call dorender on the realobject.
36160 * runtime.h: add STARTTIMER/ENDTIMER macros, and add
36161 UIElement::dorender which can be used to wrap render calls with
36162 debug info (in this case timer info.)
36164 * clock.h: add prototype for get_now().
36166 * clock.cpp (get_now): make this public, so we can use it for
36169 2007-06-18 Jackson Harper <jackson@ximian.com>
36171 * xaml.cpp: Implement Path Geometry parsing.
36173 2007-06-18 Jeffrey Stedfast <fejj@novell.com>
36175 * brush.cpp (VideoBrush::SetupBrush): Get a reference to the
36176 MediaElement if we don't already have one.
36177 (VideoBrush::OnPropertyChanged): SourceName does not refer to a
36178 uri, instead SourceName refers to a MediaElement.
36180 * media.cpp: Implemented some more helper "setters", defaulted
36181 some more MediaElement property values to correct values, and
36182 implemented updating of both the CurrentState property and the
36185 * mplayer.cpp (Position): Implemented.
36187 2007-06-18 Sebastien Pouliot <sebastien@ximian.com>
36189 * media.cpp: Close the path after rendering the image.
36190 * shape.cpp: Avoid the filling operation in calls to getbounds. Also
36191 open and close a path before drawing normal (square) rectangles.
36193 2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
36195 * runtime.h|cpp: Add DependencyObject::RegisterNullable. Add a few
36196 C-style methods to access Type and DependencyProperty fields.
36197 In Type::IsSubclassOf don't take into account nullability.
36198 * animation.cpp, clock.cpp: Register nullable properties as such.
36200 2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
36202 * media.h|cpp: Add media_base_new.
36204 2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
36206 * value.h.in: Make checked_get_subclass handle null values. Include the
36207 Kind::*Null* values in the C# Kind.cs, and change their values to fit
36209 * value.h: Updated.
36211 2007-06-18 Miguel de Icaza <miguel@novell.com>
36213 * media.cpp (DownloaderEvent): If the Width/Height have not been
36214 set explicitly, provide them from the images (demo works, but it
36215 takes a while, due to the idle handler being too busy to be
36218 * runtime.cpp (Canvas::render): Cope with rounding from floats to
36219 ints, add 2, fixes the droppings in the surface.
36221 Include some of my debugging helpers (you sprinkle
36222 draw_grid in key places to see whats going on, useful to debug the
36223 bounding boxes and visually inspect if things are right.
36225 * media.cpp (getbounds): use the framework width/height not the
36226 pixbuf image size, this shrinks the size of the bounding box.
36227 (getxformorigin): Use it here too.
36229 2007-06-18 Sebastien Pouliot <sebastien@ximian.com>
36231 * brush.cpp|h: SetupBrush and SetupGradient now returns a boolean that
36232 indicates if their use would be visible or not (e.g. opacity > 0.0).
36233 * shape.cpp: Don't setup brush for getting bounds (do_op == FALSE).
36234 Don't Fill or Stroke if the brush is invisible (opacity == 0).
36236 2007-06-18 Marek Habersack <grendello@gmail.com>
36238 * mplayer.cpp (ALIGN): make sure the ALIGN macro is correct on 64
36241 * ffvideo.cpp (ALIGN): as above.
36243 2007-06-18 Chris Toshok <toshok@ximian.com>
36245 * clock.cpp: simplify pausing and stopping a clock that has
36246 children by keeping track of the new state (the one the clock will
36247 take at the end of this tick). This is necessary because the
36248 parent clock doesn't actually stop until the end of the tick, so
36249 we still need to update child clocks after we've determined the
36250 parent clock should stop.
36252 Mon Jun 18 19:35:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
36254 * runtime.cpp: properly remove items from the doubly-linked list.
36256 2007-06-18 Chris Toshok <toshok@ximian.com>
36258 * animation.cpp (AnimationStorage::~AnimationStorage): delete the
36260 (Storyboard::Begin): force a TimeManager tick after we've hooked
36261 up the clock, so that all the animations have proper values before
36262 the next render. Fixes the "popping" in the surface demo.
36264 2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
36266 * runtime.cpp: Changed DependencyObject::SetValue to never store
36267 a null value in the hashtable.
36269 2007-06-18 Sebastien Pouliot <sebastien@ximian.com>
36271 * brush.cpp: Refactor the pattern creation to allow caching.
36272 * media.cpp|h: Add caching of cairo_pattern_t to Image.
36274 Mon Jun 18 17:53:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
36276 * runtime.cpp: use motion hints for smoother motion event handling.
36278 2007-06-18 Jeffrey Stedfast <fejj@gnome.org>
36280 * text.cpp|h: Runs now cache their own PangoFontDescription and
36281 PangoLayouts as an optimzation (seems to be very slight for simple
36282 us-ascii text, but might help enormously for more complex
36283 languages). Also added some FIXME thoughts.
36285 2007-06-18 Everaldo Canuto <ecanuto@novell.com>
36287 * downloader.cpp: Add missing downloader_notify_finished.
36289 2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
36291 * downloader.cpp: Only set dummy downloader functions if they
36292 aren't already set.
36294 2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
36296 * runtime.cpp: Add a few null checks.
36297 * downloader.cpp: Add initial dummy downloader functions to get
36298 meaningful messages if the downloader functions aren't initialized.
36300 2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
36302 * typegen.cs: Special case a few things for DependencyObject,
36303 and make a few messages more informative.
36304 * runtime.h|cpp: Add a value_type field to Type, and a constructor
36305 to specify the value. Add a constructor to DependencyProperty that
36306 can specify default value and type (in the case the default value
36307 doesn't have the same type as the property). Changed
36308 DependencyObject::SetValue to never store a null value in the
36309 hashtable. In Value destructor check for null pointers in a few
36310 cases. Update all uses of Value.k to Value.GetKind.
36311 * type.cpp.in: Update to specify value_type information.
36312 * value.h.in: Implement nullable type handling in Value.
36313 * value.cpp, type.cpp, value.h: Updated.
36315 2007-06-18 Jeffrey Stedfast <fejj@gnome.org>
36317 * text.cpp (get_size_for_brush): Calculate width/height if they
36319 (Draw): Don't use the brush if we aren't going to render (this is
36320 needed so that we don't get into a recursive loop since we have to
36321 manually calculate width/height).
36323 2007-06-18 Jeffrey Stedfast <fejj@gnome.org>
36325 * text.cpp (get_size_for_brush): Implemented (since
36326 cairo_stroke_extents() won't work for us).
36328 * brush.cpp (VideoBrush::SetupBrush): Use get_size_for_brush().
36329 (ImageBrush::SetupBrush): Same.
36331 * runtime.cpp (UIElement::get_size_for_brush): New method to get
36332 width/height needed by Brushes for scaling.
36334 2007-06-17 Jeffrey Stedfast <fejj@gnome.org>
36336 * runtime.cpp (UIElement::OnPropertyChanged): Chain up to our
36339 2007-06-17 Atsushi Enomoto <atsushi@ximian.com>
36341 * text.cpp : added text_block_set_font_source().
36343 2007-06-17 Miguel de Icaza <miguel@novell.com>
36345 * brush.cpp (brush_init): Create a BRUSH property called
36346 "FrameChange", it is internal and the sole use of it is so that
36347 upper layers that care about brush changes act on it by updating
36350 * runtime.cpp (UIElement::OnSubPropertyChanged): Changes on
36351 brushes only trigger an invalidate, there is no need to recompute
36354 2007-06-17 Jeffrey Stedfast <fejj@gnome.org>
36356 * xaml.cpp: c++ isn't smart enough to invoke the correct .dtor on
36357 delete for a void pointer, it can only delete known class types.
36359 2007-06-17 Jackson Harper <jackson@ximian.com>
36361 * xaml.cpp: Implement x:Class, we can now load the Surface demo's
36362 XAML file, and it's custom Canvas class (things still don't work
36363 though because the custom canvas uses a downloader.)
36365 2007-06-17 Miguel de Icaza <miguel@novell.com>
36367 The surface rotate and translate controls should both work, and
36368 the enter/leave events are now correct.
36370 * runtime.cpp (UIElement::handle_motion, handle_button): Change
36371 the semantics to better match Silverlight. Now these methods
36372 should check if the mouse is inside their region before calling
36375 This is necessary because children of the canvas (and panel) are
36376 within the confines of the bounding box, but the canvas can be
36377 smaller than that. The canvas is a container whose boundaries
36378 are only used for paiting, children might be outside of these
36381 It is necessary in these cases to pass the events to all the
36382 children within the canvas bounding box and for each child to
36383 determine if the event was within its range.
36385 (inside_object): replaced the default implementation for
36386 FrameworkElements with a more performing version: instead of
36387 mapping the point and using cairo_in_stroke and in_fill operations
36388 on a rectangle with mapped coordinates, we map the coordinates and
36389 check against the rectangle.
36391 (Canvas::getbounds): if we are the topmost canvas, the boundaries
36392 are those from the Surface, not the ones that include the maximum
36393 extent from the children. Used to do precise mouse enter/leave.
36395 2007-06-17 Jeffrey Stedfast <fejj@gnome.org>
36397 * media.cpp (MediaElement::OnPropertyChanged): Chain to parent
36398 when its not our property.
36400 * brush.cpp: Implemented VideoBrush (tho it's not yet debugged).
36402 * mplayer.cpp (GetSurface): Added.
36404 * text.cpp (text_init): Fixed to use RegisterFull for Froeground
36405 so we can specify Value::BRUSH as the default value type instead
36406 of it using SolidColorBrush as the type.
36408 2007-06-17 Chris Toshok <toshok@ximian.com>
36410 * xaml.cpp (timespan_from_str): fix parsing of timespans shorter
36413 2007-06-17 Chris Toshok <toshok@ximian.com>
36415 * clock.cpp (Clock::TimeUpdated): remove a special case for the
36416 clock's duration being Automatic. Fixes infinite animation in
36419 * runtime.cpp (crossing_notify_callback): return type is gboolean,
36420 and make sure we always return something.
36422 2007-06-17 Miguel de Icaza <miguel@novell.com>
36424 Propagate changes from children of the transform up to our
36425 containers, this is done in several steps:
36427 * runtime.cpp (DependencyObject::Attach, Detach): New methods that
36428 are used to attach an object to a container and detach it. They
36429 were previously inlined inside SetValue.
36431 (Collection::Add, Remove): Attach and detach objects when they are
36434 * transform.cpp (Transform::OnPropertyChanged): if any class
36435 derived from Transform has one of its properties changed, it
36436 has a visual effect, propage this to the attacchees.
36438 (TransformGroup::OnSubPropertyChanged): Escalate here as well,
36439 this will catch the messages coming from anyone in the collection
36442 (TransformCollection::OnSubPropertyChanged): Buble the event up
36445 * runtime.cpp (handle_motion): Change the order in which we send
36446 the events to the UIElement, we should start at the topmost
36447 element, and have the toplevel canvas be last.
36449 2007-06-17 Sebastien Pouliot <sebastien@ximian.com>
36451 * brush.cpp: Refactor ImageBrush::SetupBrush to reuse parts of it
36452 inside Image::render.
36453 * media.cpp: Use code from ImageBrush to render image with it's
36454 properties (e.g. Stretch)
36455 * transform.cpp: Update (commented) debug output.
36457 2007-06-17 Miguel de Icaza <miguel@novell.com>
36459 * runtime.cpp (GetValueNoDefault): This is necessary so we can
36460 distinguish a value that has been explicitly set from one that has
36464 * media.cpp (Image): use Framework::Width,Height for the image
36465 dimensions instead of the pixbuf width/height, used in extents and
36466 rotation computation.
36468 * runtime.cpp (Canvas::render): Set the clipping path on the
36469 identity matrix so we do not miss-clip.
36471 Render the canvas from 0, 0, fwidht, fheight, not the expose
36474 2007-06-16 Miguel de Icaza <miguel@novell.com>
36476 * runtime.cpp (Cairo::render): The canvas also needs to set the
36477 matrix and clear its background.
36479 (surface_resize): convenience entry point to resize a surface.
36480 Notice that this will resize the surface, but not the toplevel
36483 2007-06-16 Jackson Harper <jackson@ximian.com>
36488 * xaml.cpp: Use a callback for setting custom attributes in
36491 2007-06-16 Jeffrey Stedfast <fejj@gnome.org>
36493 * media.cpp: Implemented all the needed virtual methods for
36494 MediaElement to work, using my new MediaPlayer class.
36496 * mplayer.cpp|h: New class for playing media sources.
36498 * ffvideo.cpp: Removed from the build.
36500 2007-06-16 Miguel de Icaza <miguel@novell.com>
36502 Observation: either it is the surface, or something else is very
36503 slow, but entering the surface is quite slow right now to show the
36504 handles. Not sure what it could be.
36506 * runtime.cpp (OnPropertyChanged): We probably should catch the
36507 property changes here, and not in the Sub* variant of this thing,
36508 this will update the canvas properly now.
36510 (dump_hierarchy): useful bit to debug what is going wrong.
36512 (Canvas::get_xform_for): Do not apply extra
36513 transformations to the child other than the absolute_xform.
36515 (surface_attach): On attach we need to do a full invalidate, so
36516 the transformations are computed, otherwise it uses the defaults
36517 for the toplevel (zero), this fixes the atom.xaml issue.
36519 * control.cpp (get_xform_for): This is not proxied to the real
36520 object, this is proxied to the parent.
36521 (control_initialize_from_xaml): Set the parent link here.
36523 2007-06-16 Chris Toshok <toshok@ximian.com>
36525 * transform.cpp, transform.h, runtime.cpp, runtime.h,
36526 geometry.cpp, geometry.h, animation.cpp: Another pass (the last)
36527 at removing all cached instance collections and using GetValue
36530 2007-06-16 Chris Toshok <toshok@ximian.com>
36532 * media.cpp (Image::SetSource): we want events even if we attach a
36533 downloader that's been started.
36535 2007-06-16 Sebastien Pouliot <sebastien@ximian.com>
36537 * shape.cpp: If StrokeThickness == 0 then don't stroke, otherwise it
36538 will mess with the earlier filling.
36540 2007-06-16 Chris Toshok <toshok@ximian.com>
36542 * runtime.h, runtime.cpp: remove the instance cached
36543 Panel::children, use accessor to get it when we need it.
36545 * brush.h, brush.cpp: same for the GradientBrush::children
36548 2007-06-16 Chris Toshok <toshok@ximian.com>
36550 * runtime.h: make these const Rect&'s.
36552 2007-06-16 Sebastien Pouliot <sebastien@ximian.com>
36554 * control.cpp|runtime.h: control_initialize_from_xaml needs to return
36555 the Value::Kind of the object that was created so the managed side do
36558 2007-06-16 Sebastien Pouliot <sebastien@ximian.com>
36560 * control.cpp|runtime.h: control_initialize_from_xaml needs to return
36561 the element as the managed side needs (and defines) it.
36563 2007-06-16 Miguel de Icaza <miguel@novell.com>
36565 * control.cpp: Implement Control.
36567 * downloader.cpp: Implement a system to send various notifications
36568 as Chris wants his notifications and managed world wants the
36569 notifications as well.
36571 Should they ahve been separate? For now I just added a list of
36572 them. This code is turning uglier every minute.
36574 2007-06-16 Jackson Harper <jackson@ximian.com>
36576 * xaml.cpp: Kill top_kind, I have no idea how this guy crept back
36578 - Handle expat errors a little better.
36580 2007-06-16 Sebastien Pouliot <sebastien@ximian.com>
36582 * runtime.h: Implement missing IntersectsWith and Intersection to fix
36585 2007-06-15 Chris Toshok <toshok@ximian.com>
36587 * runtime.cpp (Canvas::render): small optimization. only call the
36588 item's render method if its bounds actually intersects with the
36589 rectangle we're rendering. Also, clip to the bounding rectangle
36592 2007-06-16 Chris Toshok <toshok@ximian.com>
36594 * clock.cpp, clock.h: don't use a constant for the timeout in
36595 gtk_timeout_add, and add methods to add/remove the timeout.
36597 (ClockGroup::TimeUpdated): if we're paused or stopped,
36598 don't call child clock TimeUpdated methods at all. they always
36599 generate CurrentTimeInvalidated even when the time hasn't changed,
36600 which triggers redraws that don't need to happen.
36602 2007-06-16 Jackson Harper <jackson@ximian.com>
36604 * runtime.cpp|h: We still need C style base_ref/unref.
36606 * xaml.cpp: Takle a callback for the from_file method also.
36608 2007-06-16 Jeffrey Stedfast <fejj@gnome.org>
36610 * ffvideo.cpp (Stop): Implemented.
36611 (.ctor): init paused to false (maybe this is why video
36612 didn'talways work?).
36613 (.dtor): Stop() the video and unhook the timeout.
36615 * runtime.cpp: Implement Base::ref and Base::unref instead of
36616 doing it the c way.
36618 * *.cpp: Updated for above change.
36620 * shape.cpp (shape_set_stroke): Don't unref the old stroke.
36621 (shape_set_fill): Same.
36623 * text.cpp (text_init): Use a separate brush for TextBlocks and
36625 (text_block_set_foreground): Don't unref the old brush.
36626 (inline_set_foreground): Same.
36628 2007-06-15 Chris Toshok <toshok@ximian.com>
36630 * xaml.cpp: little leak fixes here and there.
36632 2007-06-15 Chris Toshok <toshok@ximian.com>
36634 * demo.cpp (delete_event): destroy the surface and shutdown the
36635 runtime before we quit, just to make finding leaks a little
36638 * ffvideo.cpp (MediaElementFfmpeg): re-order the
36639 close/g_io_channel_close calls to quiet down glib.
36641 * media.cpp: don't close the loader in DownloaderEvents. do it in
36642 the dtor for now, to keep from getting that stupid gdk warning.
36643 this is wrong, but at least it's quiet.
36645 * text.cpp: delete the color we initialize the solid color brush
36648 * animation.cpp, animation.h: remove the cached key_frames
36651 * runtime.h, runtime.cpp: clean up our cleanup a lot.
36653 in the copy constructor we actually need to make a copy (or
36654 ref in cases where we can) everything we store as a pointer in
36655 our union. This is to facilitate us destroying it in the
36658 in surface_destroy just delete the surface. move all the destroy
36659 code to the destructor. Also, in the destructor unhook from the
36660 gtk events, since we get an unrealize event as part of widget
36661 destruction, apparently.
36663 Add DependencyObject::Shutdown which destroys our properties
36664 hashtable. Create all the hashtables with _new_full so we can
36665 give free functions for keys/values. actually make use of them,
36666 and clean up the relevant destructors.
36668 Add a destructor for Type, and have the Type ctor take its
36669 arguments. free the name in the dtor. Same deal with _new_full
36670 for hashtable creation, and also add Type::Shutdown.
36672 (runtime_shutdown): call TimeManager::Shutdown, Type::Shutdown,
36673 and DependencyObject::Shutdown to free all our stuff.
36675 * clock.h, clock.cpp: add TimeManager::Shutdown.
36677 2007-06-15 Jeffrey Stedfast <fejj@gnome.org>
36679 * demo.cpp (gettime): Improved fps reporting.
36681 2007-06-15 Miguel de Icaza <miguel@novell.com>
36683 * media.cpp (SetSource): Make it so we use the data from a
36684 downloader that might have already finished.
36686 2007-06-15 Chris Toshok <toshok@ximian.com>
36688 * runtime.cpp: simplify refcounting a little more. we now have 3
36691 1. Value() holds a ref to its contained dependency object.
36692 This means we don't have to do anything special for
36693 anything stored in a DP.
36695 2. Collections hold a ref to their constituents.
36697 3. If you *must* cache an DO pointer in an instance field, you
36698 must ref/unref it properly. But really, you shouldn't need
36699 to cache it, and I'll likely go through and remove all the
36702 * media.cpp (media_element_set_markers): remove the ref/unref
36705 * animation.cpp: comment out some spew, and follow a safer pattern
36706 in OnPropertyChanged.
36708 * brush.cpp (OnPropertyChanged): safer pattern.
36710 * geometry.cpp (OnPropertyChanged): safer pattern.
36712 * runtime.h: make all these dtors virtual.
36714 * clock.cpp, clock.h: remove the cached child_timelines instance
36715 field to clean up some of the ref counting problems.
36717 2007-06-15 Miguel de Icaza <miguel@novell.com>
36719 * media.cpp (SetSource): Make it so we use the data from a
36720 downloader that might have already finished.
36722 We now accumulated data as we go.
36724 * downloader.cpp (downloader_get_response_text): Return
36727 2007-06-15 Jackson Harper <jackson@ximian.com>
36731 * xaml.cpp: Callback into managed code to create custom element
36734 2007-06-15 Jeffrey Stedfast <fejj@novell.com>
36736 * media.cpp (media_base_new): Removed, not instantiable.
36737 (Image::getbounds): Need to set the absolute_xform matrix :)
36739 2007-06-15 Miguel de Icaza <miguel@novell.com>
36741 * media.cpp (Image::getxformorigin): Implement getxformorigin, so
36742 rotations are correct.
36744 (Image::getbounds): Implement getbounds correctly, the coordinates
36745 should be in device coordinates with the transform applied.
36747 2007-06-15 Jeffrey Stedfast <fejj@novell.com>
36749 * demo.cpp (main): Add some Inlines to the TextBlock to test
36750 bounding box calculations.
36752 * text.cpp (OnPropertyChanged): If the property that changed is
36753 the Actual width/height, then don't invalidate anything - simply
36754 return (these are just cache values that only we can set
36756 (Draw): Keep track of the pixel width/height of the entire
36757 rendered TextBlock+Inlines.
36758 (getbounds): Use the cached width/height of the TextBlock+Inlines
36759 and draw a rectangle instead to improve performance.
36761 2007-06-15 Sebastien Pouliot <sebastien@ximian.com>
36763 * media.cpp|h: Add media_base_new.
36765 2007-06-15 Miguel de Icaza <miguel@novell.com>
36767 * Add destructors to classes that are caching DO collections and
36768 keeping refs to those, thanks to Chris Toshok for the pattern to
36771 2007-06-15 Chris Toshok <toshok@ximian.com>
36773 * media.cpp (Image::render): use the uielement's opacity when
36774 painting. Fixes the DrPopperSilverlight Bubble.xaml file.
36776 2007-06-15 Miguel de Icaza <miguel@novell.com>
36778 * runtime.cpp (UIElement): The problem was that:
36780 The ~UIElement destructor was setting the collection
36781 properties to NULL in an attempt to unref stuff (these
36782 are now automatically unrefed).
36784 This caused the hash table destructor to unref the values
36785 that were held in the collection.
36787 At a later point, since "triggers" was cached and
36788 OnPropertyNotify was called, we attempted to unref the
36789 value, but that cached value pointed to an object that had
36790 already been released.
36792 * Everywhere: remove duplicated code that got copy/pasted
36793 everywhere for tracking collections and caching values.
36795 This should help fixing the crashing problem, but I still need to
36796 review the rules for reference counting and keeping a cache of
36797 variables in instance fields.
36799 2007-06-15 Jeffrey Stedfast <fejj@novell.com>
36801 * text.cpp (Draw): Now renders inlines.
36803 2007-06-15 Chris Toshok <toshok@ximian.com>
36805 * Makefile.am (EXTRA_DIST): add alpha-premul-table.inc from
36808 * demo.cpp: notify the downloader of the image file size so that
36809 it'll generate a COMPLETED event for the Image.
36811 * media.h, media.cpp: make image downloading non-progressive (we
36812 only create the surface when the downloader notifies the download
36813 is complete), but gain something in return: images with alpha
36816 * downloader.h, downloader.cpp: add closure to event_notify, and
36817 expose the Event kind.
36819 2007-06-15 Miguel de Icaza <miguel@novell.com>
36821 * runtime.cpp (UIElement, Canvas): send events to the objects as
36822 well. My original test on orcas was buggy.
36824 2007-06-15 Sebastien Pouliot <sebastien@ximian.com>
36826 * runtime.cpp|h, type.cpp, value.cpp|h: Add Control.
36828 2007-06-15 Jeffrey Stedfast <fejj@novell.com>
36830 * xaml.cpp (dependency_object_add_child): If the col_v collection
36831 value is NULL, create a new collection and add it to the
36834 * runtime.cpp: Added a generic collection_new() function which
36835 takes a Value::Kind to specificy which collection-type it should
36838 2007-06-15 Miguel de Icaza <miguel@novell.com>
36840 * downloader.cpp: Implement DownloadProgress property and event
36843 * runtime.h (DependencyObject::Is): new method, similar to C# is.
36845 * runtime.cpp (surface_repaint): We clear the background here
36846 again, to allow canvases to have transparent brushes.
36848 2007-06-15 Sebastien Pouliot <sebastien@ximian.com>
36850 * runtime.cpp: Panel.Background is NULL by default, which means it's
36851 transparent. This fixes Canvas inside Canvas.
36853 2007-06-15 Jackson Harper <jackson@ximian.com>
36855 * runtime.cpp|h: Implement some Inlines stuff that the parser will
36857 * xaml.cpp: Add some of the pieces for creating textblock inlines.
36858 - Added some TODO areas for creating late bound collections (maybe
36859 this should just be illegal??).
36861 2007-06-15 Jeffrey Stedfast <fejj@novell.com>
36863 * text.cpp: Have inlines cache their PangoFontDescription and
36864 added logic to render textblock inlines.
36866 2007-06-15 Alan McGovern <amcgovern@novell.com>
36868 * runtime.cpp|h: Added DependencyProperty.NameProperty
36870 2007-06-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
36872 * transform.cpp|h: Add Transform C constructor.
36873 * runtime.cpp: Better warning message.
36875 2007-06-15 Miguel de Icaza <miguel@novell.com>
36877 * runtime.cpp (surface_attach): Only hook up the events when we
36878 get a toplevel attached.
36880 * downloader.h: Drop the C++ API with a C proxy API, switch to a
36881 pure C API as we need this from the managed side anyways.
36883 * downloader.h: Move downloader defs into .h file
36885 Add a notification system for reporting the size of a stream, so
36886 we can do progress indication.
36888 * downloader.cpp: Move downloader to its own file.
36890 2007-06-15 Sebastien Pouliot <sebastien@ximian.com>
36892 * brush.cpp: Implement ImageBrush.Opacity like MS does it in 1.1 alpha
36893 (i.e. Brush.Opacity isn't considered, only UIElement.Opacity is)
36894 * geometry.cpp: PathFigure::IsFilledProperty is ignored in Mix and
36895 will be removed in 1.0.
36896 * media.cpp|h: Make Image aware of ImageBrush (so we can update too)
36897 * runtime.cpp|h: Move calculation of "total" opacity of UIElement at
36900 2007-06-15 Jeffrey Stedfast <fejj@gnome.org>
36902 * text.cpp (text_init): Set more default values.
36904 * runtime.cpp (Panel::OnPropertyChanged): Free children->list (as
36905 we iterate thru them) and set the resulting list to NULL (in case
36906 we don't hold the last ref) before unreffing the children object
36907 (in case we do own the last ref).
36908 (EventTrigger::OnPropertyChanged): Same.
36909 (UIElement::OnPropertyChanged): Same.
36911 * transform.cpp (OnPropertyChanged): Same.
36913 * geometry.cpp (GeometryGroup::OnPropertyChanged): Same.
36914 (PathGeometry::OnPropertyChanged): Same
36915 (PathFigure::OnPropertyChanged): Same.
36917 * clock.cpp (TimelineGroup::OnPropertyChanged): Same.
36920 (DoubleAnimationUsingKeyFrames::OnPropertyChanged): Same.
36921 (ColorAnimationUsingKeyFrames::OnPropertyChanged): Same.
36922 (PointAnimationUsingKeyFrames::OnPropertyChanged): Same.
36924 2007-06-15 Sebastien Pouliot <sebastien@ximian.com>
36926 * brush.cpp: Complete ImageBrush.Transform
36927 * shape.cpp: Please at least one side of the lines.
36929 2007-06-15 Jeffrey Stedfast <fejj@gnome.org>
36931 * text.cpp (text_init): No longer should ref the foreground brush
36934 * xaml.cpp: Added support for Runs/LineBreaks
36936 * text.cpp: Implemented Run/LineBreak classes.
36937 (inline_new): Removed (can't instantiate this class).
36939 2007-06-15 Miguel de Icaza <miguel@novell.com>
36941 * runtime.cpp (~DependencyObject, free_value): unref all the
36942 values that are stored in the object on destruction
36944 * runtime.cpp: Add support for enter/leave events.
36946 2007-06-14 Jeffrey Stedfast <fejj@gnome.org>
36948 * text.cpp (getbounds): Set the actual width/height values to keep
36951 2007-06-14 Jeffrey Stedfast <fejj@gnome.org>
36953 * text.cpp (getbounds): Revert prior change.
36954 (getxformorigin): Same.
36956 * shape.cpp (getbounds): Revert prior change.
36958 * ffvideo.cpp (getbounds): Revert prior change.
36960 * runtime.cpp (update_xform): Revert my last change.
36961 (item_update_bounds): Same.
36963 2007-06-14 Jackson Harper <jackson@ximian.com>
36965 * xaml.cpp: Set content properties when adding child elements. We
36966 now no longer need to special case any elements except panel.
36968 2007-06-14 Jackson Harper <jackson@ximian.com>
36970 * xaml.cpp: I must have been very tired when I wrote that.
36972 2007-06-14 Sebastien Pouliot <sebastien@ximian.com>
36974 * media.h: Expose Image's Height and Width (required for ImageBrush)
36975 * brush.cpp: Implement all Strech and Alignment[X|Y] options. Nothing
36976 (yet) force an update of the drawing once the image is available.
36978 2007-06-14 Jeffrey Stedfast <fejj@gnome.org>
36980 * demo.cpp: Updated s/textblock/text_block/g
36982 * xaml.cpp: Don't register TextBlock twice.
36984 * ffvideo.cpp (getbounds): Can now depend on surface being set.
36986 * text.cpp: s/textblock/text_block/g
36987 (getbounds): Can now depend on surface being set.
36988 (getxformorigin): Same.
36990 * shape.cpp (getbounds): Can now depend on surface being set.
36992 * runtime.cpp (item_update_bounds): Don't update bounds if the
36993 surface hasn't been set yet.
36994 (update_xform): Same.
36996 2007-06-14 Jackson Harper <jackson@ximian.com>
36998 * xaml.cpp: Add keyspline parsing.
37000 2007-06-14 Jackson Harper <jackson@ximian.com>
37002 * value.h: This guy doesn't exist anymore, he is a
37003 DependencyObject now.
37005 2007-06-14 Jackson Harper <jackson@ximian.com>
37008 * runtime.cpp|h: We also need to update the DependencyObject when
37009 resolving PropertyPaths.
37011 2007-06-14 Jackson Harper <jackson@ximian.com>
37013 * runtime.cpp|h: New function that follows PropertyPath's to
37014 DependencyProperties.
37015 * animation.cpp: Use new function to resolve animation target
37018 2007-06-14 Jackson Harper <jackson@ximian.com>
37020 * runtime.cpp (GetDependencyProperty): If there is no table for a
37021 property, we still need to lookup the property in the parent
37022 chain (assumming inherit is true).
37023 - Fix some typos with types_by_name
37025 2007-06-14 Jeffrey Stedfast <fejj@novell.com>
37027 * demo.cpp (main): Rotate our demo text inside a filled rectangle
37028 around the center of the text.
37030 * text.cpp (TextBlock.ctor): Initialise a cached
37031 PangoFontDescription that we will update when properties change.
37032 (TextBlock.dtor): Free our font/layout.
37033 (getbounds): Implemented correctly.
37034 (getxformorigin): Implemented.
37035 (Draw): Simplified since we don't need to create our layout/font
37036 anymore (just use the cached ones).
37037 (OnPropertyChanged): Implemented.
37039 2007-06-14 Miguel de Icaza <miguel@novell.com>
37041 * brush.cpp (Brush, SolidColorBrush, LinearGradientBrush,
37042 RadialGradientBrush): Notify owners when changes happen in the
37045 This makes the demo test-color-animation.xaml work without fps.
37047 * runtime.cpp: Make Canvas use the Background property to render
37050 2007-06-14 Chris Toshok <toshok@ximian.com>
37052 * demo.cpp (main): create a namescope to attach to the canvas, and
37053 also make sure to add the storyboard to the tree someplace so that
37054 it can find the names of things.
37056 * xaml.cpp: create a namescope to attach to the top_element.
37058 * runtime.cpp (FindName): rework this to walk up the tree. Drop
37059 the global namescope.
37061 2007-06-14 Sebastien Pouliot <sebastien@ximian.com>
37063 * brush.cpp|h: Add ImageBrush functions, which delegates most of its
37064 work to Image (downloader).
37065 * media.cpp|h: Expose the cairo_surface_t that contains the image.
37067 2007-06-14 Chris Toshok <toshok@ximian.com>
37069 * demo.cpp (FileDownloadState::AsyncFillBuffer): increase buffer
37070 size from 1024 to 8192 (and make it an instance instead of stack
37071 variable). Also, add a return statement that will cause the idle
37072 handler to no longer be called when we get a write of 0 length.
37073 This might be wrong in the long term.
37075 * media.cpp, media.h: add cleanup methods for the Image class, and
37076 add a dtor as well.
37078 2007-06-14 Chris Toshok <toshok@ximian.com>
37080 * media.cpp (LoaderSizePrepared): fill in the initial state of the
37081 image to gray with black border.
37082 (LoaderAreaUpdated): invalidate the item.
37084 * media.h: fix the progressive image loading.
37086 2007-06-14 Chris Toshok <toshok@ximian.com>
37088 * demo.cpp: use the MediaBase::SourceProperty to set the image's
37091 * media.h, media.cpp: add Image::OnPropertyChanged so we can watch
37092 for changes in MediaBase::SourceProperty and kick off the download
37093 and stop the currently running one.
37095 2007-06-14 Chris Toshok <toshok@ximian.com>
37097 * demo.cpp: track downloader api change.
37099 * media.cpp: track downloader api change.
37101 * runtime.h, runtime.cpp: the downloader's write function needs an
37102 offset as well as a length to work with mozilla's streaming api.
37104 2007-06-14 Jeffrey Stedfast <fejj@novell.com>
37106 * demo.cpp (main): Draw some text
37108 * text.cpp (text_init): Set a default solid black brush for
37109 foreground properties on Inline/TextBlock objects.
37110 (Draw): Setup the Brush stuff before drawing.
37112 2007-06-14 Jackson Harper <jackson@ximian.com>
37114 * xaml.cpp: Add support for loading all implemented (and semi
37115 implemented) dependency object types.
37116 * text.cpp|h: C style constructors.
37118 2007-06-14 Chris Toshok <toshok@ximian.com>
37120 * animation.cpp (KeySpline): default should be 1,1 for
37123 2007-06-14 Sebastien Pouliot <sebastien@ximian.com>
37125 * xaml.cpp: Add support for Matrix (non-DO) type.
37127 2007-06-14 Chris Toshok <toshok@ximian.com>
37129 * runtime.cpp (downloader_write): add C-style downloader_write
37130 method so we can call into it from the binding.
37132 2007-06-14 Chris Toshok <toshok@ximian.com>
37134 * value.cpp, animation.h, type.cpp, value.h, runtime.cpp,
37135 type.cpp.in, value.h.in: make KeySpline subclass from
37136 DependencyObject like it should, and fix resulting fallout.
37138 2007-06-14 Miguel de Icaza <miguel@novell.com>
37140 * runtime.cpp (Canvas): Implement OnChildPropertyChanged so we can
37141 catch cases of Top/Left being set on a child, this makes changes
37142 to the object after it has been created (adding/removing the
37145 2007-06-14 Sebastien Pouliot <sebastien@ximian.com>
37147 * brush.cpp|h: Much closer results for RadialGradients (but I still
37148 have a test case that fails). Also added Transform support for
37151 2007-06-14 Jackson Harper <jackson@ximian.com>
37153 * animation.h: C style constructors.
37154 * clock.cpp|h: C style constructors.
37155 * runtime.cpp|h: Follow proper naming convention for
37156 TimelineMarker C style constructors.
37158 2007-06-14 Chris Toshok <toshok@ximian.com>
37160 * runtime.h, runtime.cpp: remove the hack UnmanagedDownloader from
37161 here, and made Downloader pluggable with a set of functions.
37163 * demo.cpp: use the pluggable nature of Downloader to put
37164 UnmanagedDownloader here (and call it FileDownloadState).
37166 * value.cpp, value.h, type.cpp: resync.
37168 2007-06-14 Jeffrey Stedfast <fejj@novell.com>
37170 * text.cpp: Fixed Brush accessors for the NULL case.
37172 * media.cpp: Fixed accessors that could return NULL
37173 (media_init): init MediaBase and MediaElement items.
37175 2007-06-14 Jackson Harper <jackson@ximian.com>
37177 * animation.cpp: C style constructor.
37178 * media.cpp|h: Add some C style constructors.
37179 * xaml.cpp: Add parsing hooks for new components.
37181 2007-06-14 Chris Toshok <toshok@ximian.com>
37183 * demo.cpp: make one of the videos an image instead.
37185 2007-06-14 Jeffrey Stedfast <fejj@novell.com>
37187 * xaml.cpp: Fixed the font_widths and font_stretches maps to
37188 reflect the numeric enum values defined in text.h (and msdn docs).
37190 * text.h: Sync enum values to documented numeric values.
37192 2007-06-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
37194 * transform.cpp|h, media.cpp|h, brush.cpp|h, runtime.cpp|h:
37195 Make all classes that inherit from DO constructable, and add
37196 missing C-style constructors.
37198 2007-06-14 Jackson Harper <jackson@ximian.com>
37200 * runtime.cpp|h: Hookup the resource collection.
37201 * xaml.cpp: Parse resource collections.
37203 2007-06-14 Chris Toshok <toshok@ximian.com>
37205 * type.cpp, value.h, type.h: resync these.
37207 * media.h, media.cpp: add naive Image class.
37209 * runtime.h, runtime.cpp: add some Downloader methods, and
37210 subclass Downloader with a *very* hackish UnmanagedDownloader
37211 class that just loads from files. Also add a "write_func"
37212 callback that the downloader can call when it has new data to hand
37215 2007-06-14 Chris Toshok <toshok@ximian.com>
37217 * animation.cpp: import an arc length calculator I found on the
37218 net (at http://steve.hollasch.net/cgindex/curves/cbezarclen.html)
37219 and use that for KeySpline::GetSplineProgress. The results don't
37220 match MS's exactly, though.
37222 2007-06-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
37224 * geometry.cpp, geometry.h: Add collection constructors.
37225 * brush.cpp, brush.h: Add ImageBrush and VideoBrush DPs.
37226 * runtime.cpp|runtime.h: Implement collection add/remove methods.
37227 Add Downloader DPs.
37228 * media.cpp: Add MediaAttribute DP.
37230 2007-06-14 Sebastien Pouliot <sebastien@ximian.com>
37232 * brush.cpp|h: Refactor Opacity to make it reusable to other brushes
37233 (as it cannot be globally applied). Added DP, and related functions,
37236 2007-06-14 Miguel de Icaza <miguel@novell.com>
37238 * Improve the destruction scenario to release the resources that
37239 we have acquired, we are now up to the point of stopping clocks
37240 properly, but more work is going to be needed in the long term to
37241 properly track refs and objects.
37243 Ensured that all virtual GetObjectType are flagged with virtual.
37245 * Makefile.am: Put runtime.cpp at the top, to improve
37246 compile/test cycle.
37248 2007-06-14 Sebastien Pouliot <sebastien@ximian.com>
37250 * brush.cpp|h: One step closer for RadialGradientBrush
37251 * geometry.cpp: Fix ArcSegment sweep direction. All chess pieces now
37252 render (shape-wise) correctly.
37253 * shape.cpp: Draw before setting the brush. This allows the brush
37254 setting code to ask for the extents to stroke/fill.
37256 2007-06-13 Chris Toshok <toshok@ximian.com>
37258 * animation.cpp (KeySpline::GetSplineProgress): reimplement this
37259 to return a percentage of the arc length of the bezier that is
37260 traversed when t = linearProgress, taking the algorithm from
37261 http://steve.hollasch.net/cgindex/curves/cbezarclen.html
37263 2007-06-13 Chris Toshok <toshok@ximian.com>
37265 * brush.h, geometry.h, animation.h, clock.h: add GetElementType
37266 collection overloads.
37268 * type.cpp: resync to track UIElement : Visual relationship.
37270 * runtime.h: add Collection::GetElementType, and add overloads
37271 (some commented out) for the collections listed. Also, fix
37272 UIElement's superclass to be Visual.
37274 * runtime.cpp (Add): make sure we're only adding subclasses of our
37277 2007-06-13 Chris Toshok <toshok@ximian.com>
37279 * clock.cpp (AddChild): just pass the child, unwrapped.
37281 * runtime.h: remove the Value* overloads for Collection::Add and
37282 Collection::Remove.
37284 * xaml.cpp (dependency_object_add_child): just pass the dependency
37287 2007-06-13 Jeffrey Stedfast <fejj@novell.com>
37289 * text.cpp: Implemented a ton of stuff...
37290 (text_init): Added.
37292 * runtime.cpp (runtime_init): Call text_init().
37294 2007-06-13 Miguel de Icaza <miguel@novell.com>
37296 * runtime.h (Collection): Since it seems that everything we have
37297 so far are collections of dependency objects, the code is now
37298 simplified and will also take refs and remove refs on destruction.
37300 The only reason to implement the Add/Remove methods is if you must
37301 do something as a hook during add/remove
37303 * runtime.cpp (SetValue): Enable NULLs to be set on Dependency
37306 (OnPropertyChanged): Allow the value to be NULL, cope with that,
37307 we use this to clear all of our objects.
37309 2007-06-13 Chris Toshok <toshok@ximian.com>
37311 * xaml.cpp (xaml_create_from_str): make the from_str a little
37312 closer to from_file. fixes hooking up names when loading from
37315 2007-06-13 Chris Toshok <toshok@ximian.com>
37317 * runtime.cpp (runtime_init): start the time manager here.
37319 * demo.cpp (main): instead of here.
37321 2007-06-13 Jackson Harper <jackson@ximian.com>
37323 * xaml.cpp: Gracefull handling of error conditions. Being
37324 intentionally non strict about some things while we are
37325 developing (like unknown elements, and attributes, and missing
37328 2007-06-13 Sebastien Pouliot <sebastien@ximian.com>
37330 * brush.cpp: Better, but still imperfect, RadialGradientBrush
37332 2007-06-13 Jackson Harper <jackson@ximian.com>
37334 * runtime.h: Add some of the error event handler args, so i can
37335 use these in the parser.
37337 2007-06-13 Jeffrey Stedfast <fejj@novell.com>
37339 * brush.cpp (OnPropertyChanged): Free list nodes as we iterate
37340 (soptimsation, woot).
37342 * text.cpp: Implemented c wrappers for Inline
37344 2007-06-13 Sebastien Pouliot <sebastien@ximian.com>
37346 * brush.cpp: Implemented LinearGradientBrush::SetupBrush
37347 * xaml.cpp: Handle GradientStops correctly (at GradientBrush) and add
37348 support for LinearGradientBrush.
37350 2007-06-13 Jeffrey Stedfast <fejj@novell.com>
37352 * text.cpp: Stubbed out TextBlock and Glyphs
37354 2007-06-13 Jackson Harper <jackson@ximian.com>
37356 * xaml.cpp: GradientBrush is a Brush.
37358 2007-06-13 Miguel de Icaza <miguel@novell.com>
37360 * runtime.cpp (dependency_object_find_name): Add new wrapper
37362 2007-06-13 Chris Toshok <toshok@ximian.com>
37364 * animation.cpp, animation.h: add public storyboard methods for
37365 begin/pause/resume/seek/stop. also start in on the spline
37366 keyframe/KeySpline stuff.
37368 * type.cpp: resync.
37370 * value.cpp: resync.
37374 * value.h.in: add keyspline stuff.
37376 * type.cpp.in: add keyspline stuff.
37378 2007-06-13 Chris Toshok <toshok@ximian.com>
37380 * demo.cpp: a few changes - none of the animations run forever
37381 now. also, add some gtk events (button press/release/motion). we
37382 pause animations on press, resume them on release.
37384 * clock.cpp: keep track of the offset caused by pausing/resuming
37385 the clock from our parent's time.
37387 * animation.cpp: split out all the logic for finding the current
37388 (and previous) keyframes into
37389 KeyFrameCollection::GetKeyFrameForTime. Also, make the key frame
37390 collection maintain a separate sorted list of keyframes.
37392 2007-06-13 Jeffrey Stedfast <fejj@novell.com>
37394 * media.cpp (media_base_get_source): Implemented; use char*
37395 instead of Uri - we'll make the binding convert between the types.
37396 (media_base_set_source): Same.
37398 2007-06-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
37400 * runtime.cpp: Xlib and we are both defining Visual,
37401 so implement a workaround.
37403 2007-06-13 Sebastien Pouliot <sebastien@ximian.com>
37405 * brush.cpp|h: Added code for LinearGradientBrush and partial setup
37406 for all gradient-related brushes (needs testing). Add all color
37407 definitions supported by XAML.
37408 * mkcolor.cs: Tool to generate colors from System.Drawing (as they
37411 2007-06-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
37413 * runtime.h: Add Visual.
37414 * value.cpp, value.h, type.cpp: Updated.
37416 2007-06-13 Jeffrey Stedfast <fejj@gnome.org>
37418 * ffvideo.cpp: Back to using ALSA, but this time I got it right ;)
37420 2007-06-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
37422 * media.h: Added MediaAttribute.
37423 * runtime.h: Added Downloader.
37424 * value.cpp, value.h, type.cpp: Updated.
37425 * typegen.cs: Copy Kind.cs to the correct directory.
37427 2007-06-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
37429 * brush.cpp, brush.h, geometry.cpp: Fix property registration
37432 2007-06-13 Sebastien Pouliot <sebastien@ximian.com>
37434 * brush.cpp|h: Fix Brush::RelativeTransformProperty and
37435 Brush::RelativeTransformProperty types.
37437 2007-06-13 Sebastien Pouliot <sebastien@ximian.com>
37439 * brush.cpp|h: Complete DependencyProperties for GradientBrush and
37440 add GradientStopCollection.
37441 * runtime.cpp|h: Remove code for GradientStopCollection.
37442 * xaml.cpp: Register new brush classes.
37444 2007-06-13 Miguel de Icaza <miguel@novell.com>
37446 * runtime.cpp: Various new events are now sent.
37448 2007-06-13 Jackson Harper <jackson@ximian.com>
37450 * xaml.cpp: When using the xaml_create_from_str we automatically
37451 add the default and x: namespaces.
37453 2007-06-12 Jeffrey Stedfast <fejj@gnome.org>
37455 * ffvideo.cpp: Fixed to subclass the new MediaElement class.
37457 * video.cpp: Removed.
37459 2007-06-12 Sebastien Pouliot <sebastien@ximian.com>
37461 * brush.cpp|h: Added DependencyProperty for GradientBrush and
37462 GradiantStop. Added new brush-related enums. Add [g|s]etter functions
37463 for RadialGradient and BrushGradiantStop.
37465 2007-06-12 Jackson Harper <jackson@ximian.com>
37467 * xaml.cpp: Repsect namespaces.
37468 - Clean up code a little
37470 2007-06-12 Sebastien Pouliot <sebastien@ximian.com>
37472 * brush.h: New. Brush related stuff.
37473 * brush.cpp: DependencyProperty for RadialGradientBrush
37474 * runtime.h: [Re]move brush stuff.
37475 * shape.h: Add include for brush.h
37476 * type.cpp, value.h, value.h: Add RadialGradientBrush type.
37477 * Makefile.am: Add brush.h to the build.
37479 2007-06-12 Jeffrey Stedfast <fejj@gnome.org>
37481 * media.cpp|h: Added to the build
37483 2007-06-12 Sebastien Pouliot <sebastien@ximian.com>
37485 * transform.cpp|h: Complete MatrixTransform.
37486 * value.h, value.h.in, runtime.cpp, type.cpp, type.cpp.in: Introduce
37489 2007-06-12 Miguel de Icaza <miguel@novell.com>
37491 * runtime.h (UIElement::inside_object): new routine that should
37492 return true if the given absolute x, y is inside the given object
37495 (UIElement::handle_motion): new routine that is called when a
37496 motion event happens, it should determine if it can handle the
37497 given event at x, y.
37499 (Surface): new callbacks, these are callbacks that will pass the
37500 notification of the event to managed code.
37502 * runtime.cpp (FrameworkElement): provide a default implementation
37503 for inside object that works for "squares" (things with widths and
37506 2007-06-12 Jeffrey Stedfast <fejj@novell.com>
37508 * ffvideo.cpp: Instead of aborting when SDL_OpenAudio() fails,
37509 simply disable audio for that video. Temporary hack.
37511 2007-06-12 Sebastien Pouliot <sebastien@ximian.com>
37513 * transform.cpp: Fix SkewTransform with translations (Center[X|Y])
37515 2007-06-12 Jackson Harper <jackson@ximian.com>
37517 * xaml.cpp: Implement enums. This implementation is very naive,
37518 but works with the current Silverlight object model. Basically,
37519 we just index property names to enum maps. So a property name
37520 maps to a single enum type regardless of the type the enum is
37521 declared in. This works fine with the current silverlight object
37522 model, but in the future might need to be changed, if we get
37523 conflicting property names.
37525 2007-06-12 Jeffrey Stedfast <fejj@novell.com>
37527 * ffvideo.cpp: Fixed sound playback to not get that nasty
37528 reverb-like effect. Also switched to using SDL for audio.
37530 2007-06-12 Sebastien Pouliot <sebastien@ximian.com>
37532 * transform.cpp|h: Implement SkewTransform.
37533 * type.cpp: Register new type SkewTransform.
37534 * value.cpp|h: Add SkewTransform.
37535 * xaml.cpp: Register DO for SkewTransform.
37537 2007-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
37539 * runtime.cpp, runtime.h: Make DependencyObject::ParentProperty
37542 2007-06-12 Jackson Harper <jackson@ximian.com>
37544 * xaml.cpp: Don't try to add properties to the panel.
37546 2007-06-12 Sebastien Pouliot <sebastien@ximian.com>
37548 * geometry.cpp: Implemented ArcSegment::Draw using librsvg code
37549 * rsvg.cpp|h: New. Code from LGPL librsvg to implement arc_to
37550 * Makefile.am: Add rsvg.cpp|h to the build.
37552 2007-06-12 Jackson Harper <jackson@ximian.com>
37554 * xaml.cpp: Add parser for KeyTime structures.
37556 2007-06-12 Chris Toshok <toshok@ximian.com>
37559 (ColorAnimationUsingKeyFrames::GetNaturalDurationCore): implement.
37560 (PointAnimationUsingKeyFrames::GetNaturalDurationCore): implement.
37561 (animation_init): make sure to initialize
37562 ColorKeyFrame::ValueProperty.
37564 * clock.cpp (Timeline::GetNaturalDuration): comment out some spew.
37566 2007-06-12 Jackson Harper <jackson@ximian.com>
37568 * animation.cpp|h: C style constructor for KeyFrameCollection.
37569 * xaml.cpp: Implement the KeyFrame types
37570 - Make the base types ghosts, despite what the docs say, they
37573 2007-06-12 Miguel de Icaza <miguel@novell.com>
37575 * runtime.cpp (NotifyParentOfPropertyChange): Stop propagating
37576 when we have reached someone that handles that property in the way
37579 2007-06-12 Jackson Harper <jackson@ximian.com>
37581 * xaml.cpp: Register the TriggerCollection so that
37582 TriggerCollections can be created using the explicit syntax.
37584 2007-06-12 Jackson Harper <jackson@ximian.com>
37586 * xaml.cpp: No longer need to special case EventTriggers. Remove
37587 some dead code (yippie!)
37588 * runtime.cpp: Unregister the target when removing from the
37591 2007-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
37593 * runtime.h: Implement Inlines.
37594 * value.cpp, value.h, type.cpp: Updated.
37596 2007-06-12 Jackson Harper <jackson@ximian.com>
37598 * runtime.cpp|h: Hook up the UIElement::Triggers and
37599 EventTrigger::Actions/RoutedEvent properly.
37600 * xaml.cpp: Remove some of the special casing for event triggers
37601 now that they are proper DependencyProperties.
37603 2007-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
37605 * typegen.cs: Now checks if classes that inherits DependencyObject
37606 implement GetObjectType.
37607 * animation.h, runtime.h, text.h, geometry.h, shape.h: Implement
37608 missing GetObjectTypes and fix a few that were returning the wrong
37611 2007-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
37614 - (DependencyObject::SetValue): Allow assigning an object of a
37615 more derived type than the defined property type. Change the
37616 attached_list code to handle NULL dependency_objects.
37617 - Delete types_init, it's generated now.
37618 - Delete Value:As[DependencyObjects], its generated now.
37619 * runtime.h: Added definitions for a few missing collection classes.
37620 * types.cpp[.in], value.cpp[.in], value.h.in: Added.
37622 * Makefile.am: Add types.cpp and value.cpp
37623 * typegen.cs, typegen.cs: Added, generates types.cpp, value.cpp,
37624 value.h and Kind.cs from the headers.
37626 2007-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
37628 * runtime.cpp, runtime.h: (DO/DP) Make all char*'s const.
37630 2007-06-12 Chris Toshok <toshok@ximian.com>
37632 * clock.h, clock.cpp, runtime.cpp, value.h: use a
37633 TimelineCollection to store child collections in TimelineGroup.
37635 2007-06-12 Chris Toshok <toshok@ximian.com>
37637 * animation.h, animation.cpp (animation_init): remove the
37638 clock.cpp property registration.
37639 (DoubleAnimationUsingKeyFrames::GetNaturalDurationCore): initial
37640 attempt, calculate our timespan from our key frames.
37641 (Animation::GetNaturalDurationCore): return a 1 second duration,
37643 (UpdatePropertyValue): plug leak.
37645 * runtime.cpp (runtime_init): call clock_init.
37647 * clock.h, clock.cpp: largish pass at implementing support for
37648 Duration::Automatic in ClockGroups (where they query their child
37649 timelines to see how long they should make themselves). Also, add
37652 * xaml.cpp (timespan_from_str): correct math.
37654 2007-06-12 Jackson Harper <jackson@ximian.com>
37656 * xaml.cpp: Add a couple more of the animation elements.
37658 2007-06-12 Jackson Harper <jackson@ximian.com>
37660 * runtime.cpp|h: There is no public Triggers property.
37662 2007-06-12 Miguel de Icaza <miguel@novell.com>
37664 * runtime.cpp (DependencyObject::RegisterFull): Allow for
37665 properties to be flagged as attached, and only propagate the child
37666 notification to those those that care about it.
37668 2007-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
37670 * Implement a mechanism to keep track of parents and notify
37671 parents of changes in attached properties.
37673 2007-06-11 Jackson Harper <jackson@ximian.com>
37675 * xaml.cpp: Add content properties, and handle collections that
37676 are content properties, by implicitly adding items to the
37679 2007-06-11 Sebastien Pouliot <sebastien@ximian.com>
37681 * runtime.cpp: Remove matrix initialization (to avoid double-inits in
37683 * transform.cpp: Add matrix initialization in TransformGroup::
37684 GetTransform. Makes the API safer :)
37686 2007-06-11 Sebastien Pouliot <sebastien@ximian.com>
37688 * geometry.cpp: Implemented [Ploy]QuadraticBezierSegment::Draw.
37690 2007-06-11 Sebastien Pouliot <sebastien@ximian.com>
37692 * geometry.cpp|h: Add drawing of [Poly]LinesSegment and
37693 [Poly]BezierSegment. More than half of Sam Ruby's samples can work
37696 2007-06-11 Jeffrey Stedfast <fejj@novell.com>
37698 * ffvideo.cpp: Attempt to get video to be in sync with audio by
37699 using the audio pts as the target_pts.
37701 2007-06-11 Jackson Harper <jackson@ximian.com>
37703 * runtime.cpp: Register the collection types as derived from
37706 2007-06-11 Chris Toshok <toshok@ximian.com>
37708 * xaml.cpp (timespan_from_str): fix reading off the end of digits
37711 2007-06-11 Jackson Harper <jackson@ximian.com>
37713 * xaml.cpp: Implement some more collection loading. A lot of
37714 duplicate code here, so I should probably refactor things a bit,
37715 but will wait until I've seen how more collections are laid out.
37717 2007-06-11 Chris Toshok <toshok@ximian.com>
37719 * animation.h, animation.cpp: use KeyFrameCollection's for the
37720 *AnimationUsingKeyFrames key frame stuff, instead of GLists.
37722 * value.h, runtime.cpp: add Value::AsKeyFrameCollection.
37724 2007-06-11 Jackson Harper <jackson@ximian.com>
37726 * xaml.cpp: Make the parents of collections the Collection ghost
37727 element. This is a first step in cleaning up collection creation
37730 2007-06-11 Sebastien Pouliot <sebastien@ximian.com>
37732 * transform.cpp: remove dead code.
37733 * xaml.cpp: Partial collection support for geometry.
37735 2007-06-11 Sebastien Pouliot <sebastien@ximian.com>
37737 * transform.cpp: Multiply each matrix in a TransformGroup (fix the
37738 open-clipart sample, at least the correct parts of the sample).
37739 * runtime.cpp: Always initialize the matrix in item_get_render_affine
37740 otherwise we'll end up with bad random results.
37742 2007-06-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
37744 * runtime.h, runtime.cpp: (DependencyObject) Add SetValue/GetValue
37745 overloads that takes strings as well as DP, GetDependencyProperty where
37746 it's possible to specify whether the parent type is searched for the
37747 property or not, and a HasProperty method
37749 2007-06-10 Sebastien Pouliot <sebastien@ximian.com>
37751 * geometry.cpp|h: Fix function names wrt type.
37752 * shape.cpp: Detect RenderTransform and RenderTransformOrigin changes
37753 and call update_xform. This fix the "atom" sample :)
37754 * transform.cpp: Fix Rotate and Scale around a center point.
37756 2007-06-10 Sebastien Pouliot <sebastien@ximian.com>
37758 * geometry.cpp: Add more precision to types.
37759 * runtime.cpp: Apply Canvas' RenderTransform and RenderTransformOrigin
37761 2007-06-10 Sebastien Pouliot <sebastien@ximian.com>
37763 * brush.cpp: Implement Opacity for SolidColorBrush.
37764 * runtime.cpp|h: Add an UIElement parameter to SetupBrush so we can
37765 access it's properties (e.g. Opacity in this case). Add uielement_
37766 [g|s]et_opacity functions.
37767 * shape.cpp: Supply the UIElement when setting up brushes.
37769 2007-06-10 Sebastien Pouliot <sebastien@ximian.com>
37771 * shape.cpp: Fix rounded rectangle when radius_[x|y] are larger than
37772 half the width|height.
37774 2007-06-10 Miguel de Icaza <miguel@novell.com>
37776 * shape.cpp (OnPropertyChanged): Implement this property for most
37777 shapes: if the property is set, we need to invalidate and
37780 * runtime.h (FullInvalidate): A method to perform a queue to
37781 redraw the underlying region, update the bounds and queue an
37782 update for the new region.
37784 * runtime.h (Base): make destructor virtual so that base_unref can
37785 call delete (Base *) p. Exposed by the managed code when the
37786 first base_unref ran for the first time :-)
37790 * runtime.cpp (surface_attach): invalidate the areas before and
37791 after, compute the bounds using item_update_bounds, not the
37792 getbounds method directly.
37794 2007-06-10 Sebastien Pouliot <sebastien@ximian.com>
37796 * xaml.cpp: Add PathFigure[Collection]/Segments support.
37798 2007-06-10 Sebastien Pouliot <sebastien@ximian.com>
37800 * brush.cpp: Fix Green definition, like GDI+ MS use a dark (0x80)
37801 green unlike other basic colors (red/blue at 0xFF).
37802 * xaml.cpp: Don't assert on an empty collection.
37804 2007-06-10 Miguel de Icaza <miguel@novell.com>
37806 * runtime.cpp, runtime.h (BasicArray): New base struct for
37807 PointArray and double array, puts the count field at the beginning
37808 and avoids an extra block to be allocated (count and values are
37809 now on a single contiguous block).
37811 Introduce a refcount for the arrays, so that we can release those
37812 properly. Due to the nature of how we copied values before we
37813 had to leak the values, when the leak was plugged, we crashed.
37815 The refcount is there just because it was easy, we could clone if
37816 we wanted, but also I would like to keep the refcount there to
37817 ensure that the array of doubles is aligned on an 8 byte
37820 (double_array_new, point_array_new): New methods to create the
37823 (Value): Now free the arrays.
37826 2007-06-09 Sebastien Pouliot <sebastien@ximian.com>
37828 * geometry.cpp|h: Add/complete PathFigureCollection and
37829 PathSegmentCollection. Doesn't parse from xaml.
37830 * runtime.cpp, value.h: Add support for new classes.
37832 2007-06-09 Sebastien Pouliot <sebastien@ximian.com>
37834 * geometry.cpp|h: Complete GeometryGroup with GeometryCollection.
37835 But color rending is not yet correct in demo files.
37836 * runtime.cpp, value.h: Add support for GeometryCollection
37837 * xaml.cpp: Add support for GeometryGroup
37839 2007-06-09 Chris Toshok <toshok@ximian.com>
37841 * animation.h, animation.cpp, value.h, runtime.cpp: add
37842 ColorKeyFrame and it's linear/discrete subclasses, as well as
37843 ColorAnimationUsingKeyFrames.
37845 2007-06-09 Chris Toshok <toshok@ximian.com>
37847 * animation.h, animation.cpp, value.h, runtime.cpp: add the
37848 Discrete keyframes for point and double.
37850 2007-06-09 Chris Toshok <toshok@ximian.com>
37852 * genkindcs.sh: new file, a script to generate
37853 olive/class/agclr/Mono/Kind.cs.
37855 * value.h: add marker comments so that genkindcs.sh works. Also,
37856 remove the explicit value assignments to enum elements <
37857 DEPENDENCY_OBJECT. there's no need for it.
37859 2007-06-09 Chris Toshok <toshok@ximian.com>
37861 * demo.cpp (main): add in another animation, this one using
37862 keyframes, that moves a square around in a square, while animating
37863 its background color the same way as the other rectangles.
37865 * value.h, runtime.cpp: add in the keyframe types.
37867 * runtime.cpp (DependencyObject::DependenceyObject): fix a
37868 valgrind error - we shouldn't be "free"ing Values, since they're
37869 "new"ed. Add free_value and use that for the hash table value
37870 dtor, and delete them correctly.
37872 * animation.h, animation.cpp: add a lot of the keyframe animation
37873 stuff. DoubleAnimationUsingKeyFrames + LinearDoubleKeyFrame is
37874 the only tested configuration, though.
37876 * clock.cpp (everywhere): guint64->TimeSpan fixing.
37877 (TimeUpdated): turns out that not only does the progress go from
37878 1.0 to 0.0 when reversed, but current_time actually goes backward
37879 as well. this has the nice effect of actually simplifying this
37880 method substantially, since we can always compute progress as
37883 * clock.h: typedef TimeSpan to gint64 (switching from guint64
37884 everywhere), and update the api to use this.
37886 2007-06-09 Miguel de Icaza <miguel@novell.com>
37888 * runtime.h (value_color_from_argb): Temporary hack until we
37889 figure out how to marshal Colors properly, we are using the uint32
37890 constructor, we should figure out if this is what we want, or if
37891 we should go down the route of using doubles (C++ stores thinks as
37892 Doubles our managed API as bytes).
37894 2007-06-10 Jackson Harper <jackson@ximian.com>
37896 * xaml.cpp: Handle the TransformGroup default collection.
37897 - Add Value's to the collection
37899 2007-06-09 Jackson Harper <jackson@ximian.com>
37901 * transform.cpp|h: C style constructor for TransformGroup
37902 * xaml.cpp: Implement loading transform groups and transform
37905 2007-06-09 Jackson Harper <jackson@ximian.com>
37909 * transform.cpp|h: Impplement transform groups and transform
37912 2007-06-09 Jackson Harper <jackson@ximian.com>
37915 * runtime.cpp|h: Use the new collection classes for triggers and
37916 actions. These are unsettable, so don't register them as
37917 DependencyProperties.
37919 2007-06-08 Everaldo Canuto <ecanuto@novell.com>
37921 * runtime.cpp: In surface_destroy check for toplevel before unref
37924 2007-06-08 Chris Toshok <toshok@ximian.com>
37926 * animation.h: remove the huge whitespace gap after KeyTime, and
37927 remove the ifdef'ed out Nullable<T> template.
37929 * animation.cpp: remove the unused point_animation C api, and use
37930 the overloaded + operator on Color and Point when initializing
37931 "end" in GetCurrentValue for those animations. They're looking
37932 more and more similar.
37934 2007-06-08 Chris Toshok <toshok@ximian.com>
37936 * globally: move away from all uses of Value::u union. switch
37937 everything to using Value::As* methods, which do typechecking and
37940 * value.h: make the union private to catch anyone accessing it
37943 * runtime.cpp (IsSubclassOf): return true if type == super. Not
37944 strictly "subclass", but it makes this method a little more
37945 useful/efficient. Add As* methods for string, point arrays, and
37946 double arrays, and add nullable As* methods for the types which
37947 don't return pointers already.
37949 2007-06-09 Jackson Harper <jackson@ximian.com>
37951 * xaml.cpp: Parse time spans correctly.
37953 2007-06-08 Miguel de Icaza <miguel@novell.com>
37955 * runtime.h (UIElement): Remove user_xform_origin as a field, now
37956 we pull this from the DependencyObject as it should be.
37958 * runtime.cpp (UIElement::OnSubPropertyChanged): Catch a bunch of
37959 other properties that would trigger an invalidate/bounds
37962 (item_init): initialize the other properties that the managed code
37965 * shape.cpp, ffvideo.cpp: updated to use the
37966 RenderTransformOriginProperty in the computation of the center for
37967 the transformation.
37969 2007-06-08 Chris Toshok <toshok@ximian.com>
37971 * Makefile.am (libmoon_la_SOURCES): add value.h
37973 * runtime.h, value.h: move the Value structure to value.h, since
37974 it (and its required forward decls) have grown huge.
37976 * runtime.cpp: add all the Value::As* methods, yay for CPP.
37978 2007-06-08 Jeffrey Stedfast <fejj@novell.com>
37980 * ffvideo.cpp (queue_data): Replaced the sound code with my newest
37981 implementation, seems to play sound correctly now.
37983 2007-06-08 Chris Toshok <toshok@ximian.com>
37985 * clock.h, clock.cpp: move all the TimeManager/Clock/Timeline
37986 stuff here, to help relieve some of the pressure building up in
37987 animation.h/animation.cpp.
37989 2007-06-08 Chris Toshok <toshok@ximian.com>
37991 * animation.cpp: add some skeleton code for point keyframe
37992 animations, and reduce all the Double/Point/Color Animation
37993 GetCurrentValue() methods to much the same, using LERP and the
37994 operators defined in runtime.h.
37996 * runtime.cpp (types_init): register the new keyframe types.
37998 * runtime.h: add some new animation types to Value, and add
37999 operators for +, -, and * (scalar) for Color and Point to make the
38000 animation code a little more concise.
38002 * animation.h: add some new classes/structs for use in keyframe
38005 2007-06-08 Miguel de Icaza <miguel@novell.com>
38007 * runtime.cpp, runtime.h (Collection): Rework the collection to
38008 use abstract methods (gulp),
38010 (VisualCollection): New collection, derives from Collection, does
38011 the collection thing.
38013 (Panel.OnPropertyChanged): If our children collection is updated,
38014 take care of it here.
38016 (DependencyObject): use free instead of g_free as we are
38017 allocating strings with strdup.
38019 (Value): drop constructor that specified type, type is not part of
38022 * xaml.cpp, shape.cpp: Remove use of the old destructors now that we keep
38023 track of types correctly.
38025 2007-06-08 Sebastien Pouliot <sebastien@ximian.com>
38027 * brush.cpp: Fix color formats argb and rgb (too dark).
38029 2007-06-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
38031 * runtime.h, runtime.cpp: Change Value::Kind to not have any holes
38032 in the integer ranges, and change Type's type hashtable to an array
38033 of types, indexed by Value::Kind. Also add Value::COLLECTION and
38034 update Collection to use it.
38036 2007-06-08 Sebastien Pouliot <sebastien@ximian.com>
38038 * shape.cpp|h: Add Path::CanFill as it depends on the Geometry
38039 object(s) being used.
38040 * geometry.cpp|h: Implemented Poly[Line|Bezier|QuadraticBezier]Segment
38041 Points properties and some basic draw stuff too.
38043 2007-06-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
38045 * runtime.h, runtime.cpp, shape.cpp, xaml.cpp:
38046 Remove the Value (DependencyObject, Kind) constructor,
38047 the type of the DependencyObject can be obtained directly
38048 from the DependencyObject itself now, and update all uses
38049 to the Value (DependencyObject) constructor.
38051 2007-06-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
38053 * *.h, *.cpp: Remove objectType and SetObjectType from
38054 DependencyObject, make DependencyObject::GetObjectType virtual,
38055 and update all inheritors of DependencyObject to not use
38056 SetObjectType, but override GetObjectType.
38058 2007-06-08 Jackson Harper <jackson@ximian.com>
38060 * xaml.cpp: Add some type checks to ensure we are setting child
38061 properties to legal types.
38062 - explicitly set properties value types, Value now requires this.
38065 2007-06-08 Jackson Harper <jackson@ximian.com>
38067 * runtime.cpp: Initialize the surface to NULL
38068 - use UIElement as the type for flags
38070 2007-06-08 Sebastien Pouliot <sebastien@ximian.com>
38072 * shape.h: Don't waste time trying to fill lines.
38073 * shape.cpp: Fix dashes support. First reset between shapes and,
38074 second, handle cairo dislike of a single dash value of 0.0.
38076 2007-06-08 Sebastien Pouliot <sebastien@ximian.com>
38078 * shape.cpp|h: Some shapes, like polylines, don't supports Fill.
38080 2007-06-08 Sebastien Pouliot <sebastien@ximian.com>
38082 * shape.cpp|h: Implement Polygon::Points aad Polyline:Points
38083 properties as DependencyProperty. Adjust their Draw methods.
38084 * runtime.cpp: Implement point_array_from_str.
38086 2007-06-08 Sebastien Pouliot <sebastien@ximian.com>
38088 * shape.cpp|h: Add DP support for StrokeDashArray (double*).
38089 * runtime.cpp|h: Add double* and Point* (array) support to Value.
38090 * xaml.cpp: Add DOUBLE_ARRAY and POINT_ARRAY support. Supply value
38091 kind for brushes to avoid runtime warnings.
38093 2007-06-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
38095 * runtime.cpp, runtime.h: Implemented a type system that tracks
38096 types' name and parent type.
38098 2007-06-08 Miguel de Icaza <miguel@novell.com>
38100 * runtime.cpp (Panel): Make children a property of the panel so we
38101 can access it from the managed world.
38103 (Value): Add new constructor that takes a full type, need to
38104 discuss this with the team.
38106 2007-06-08 Jackson Harper <jackson@ximian.com>
38108 * animation.cpp|h: Implement BeginStoryboard
38109 * runtime.cpp|h: Implement event triggers
38110 - Fire a loaded event when we first render an element
38111 * xaml.cpp: Implement parsing and loading storyboard and begin
38112 storyboard as well as event triggers and some of the property
38113 types that go with these guys.
38115 2007-06-08 Miguel de Icaza <miguel@novell.com>
38117 * runtime.cpp (runtime_init): Add panel_init
38119 (panel_init): Register Children property (must still create the
38120 collections, that will be a new fight).
38122 2007-06-07 Miguel de Icaza <miguel@novell.com>
38124 * xaml.cpp (start_element_handler): For the top element, track the
38125 type that we loaded, so we can return this to our caller (needed
38126 for the managed interface).
38128 (XamlParserInfo): track also the Value::Kind of the top_element.
38130 (xaml_create_from_file, xaml_create_from_str): Both now can
38131 optionally return the type of the toplevel element.
38133 * runtime.cpp (Value): Switch Value to strdup/free.
38135 Use inited to prevent multiple initializations.
38137 2007-06-07 Chris Toshok <toshok@ximian.com>
38139 * demo.cpp (main): track more of the api axing.
38141 * animation.h, animation.cpp (Storyboard::Begin): return
38142 immediately if we've already got a root clock.
38143 (globally) continue axing unused C api.
38145 2007-06-07 Chris Toshok <toshok@ximian.com>
38147 * demo.cpp: track all the animation changes away from the C api,
38148 and also test out the from/by animation combination by making the
38149 X scaling only go From 1.0 By -0.5 (so it animates in the range of
38152 * animation.h, animation.cpp: lots of changes - get rid of many of
38153 the animation/timeline C api calls, since they're unnecessary for
38154 the binding. Implement the nullable property getter/setters as
38155 #defines since I didn't want to c&p all of them and make the
38156 obvious mistakes. While I'm at it, implement the thing I needed
38157 nullable typed values for - "by" animation support. Now you can
38158 specify any of the following combinations and get a usable
38159 animation: From+By, From+To, By, To. You can actually just put
38160 From as well, but it won't animate (since both start end end will
38161 be the same). The To property overrides the By property, if both
38164 * runtime.h, runtime.cpp: add an overload of
38165 DependencyProperty::SetValue which takes a Value*, to enable
38166 nullable types to be set. the existing SetValue method calls the
38167 new one with &value.
38169 2007-06-07 Sebastien Pouliot <sebastien@ximian.com>
38171 * brush.cpp: Fix comment.
38172 * shape.cpp: Reduce duplication.
38174 2007-06-07 Miguel de Icaza <miguel@novell.com>
38176 * runtime.h: Store Value.BOOL in an int32, simplifies my life.
38178 * runtime.cpp (dependency_object_set_value,
38179 dependency_object_get_value): Add C# callable method calls to
38180 control the properties.
38182 (dependency_property_lookup): Add a way of find dependency
38185 2007-06-07 Chris Toshok <toshok@ximian.com>
38187 * animation.cpp (TimeUpdated): comment out some spew.
38189 * runtime.cpp (SetValue): use the copy ctor, and fix != check for
38190 current_value and value.
38191 (Value::Value): add a copy ctor, which takes care of the g_strdup
38194 * runtime.h: add copy ctor for Value.
38196 2007-06-07 Sebastien Pouliot <sebastien@ximian.com>
38198 * brush.cpp, geometry.cpp, shape.cpp: Protect against NULL properties.
38200 2007-06-07 Sebastien Pouliot <sebastien@ximian.com>
38202 * geometry.cpp: #if-out transforms, it crash the xaml samples
38203 * runtime.h: Fix hierarchy. Panel inherits from FrameworkElement.
38205 2007-06-07 Chris Toshok <toshok@ximian.com>
38207 * animation.cpp: switch all the various linear interpolation
38208 expressions to using the LERP macro, and add the PointAnimation
38211 * animation.h: add PointAnimation.
38213 * runtime.h: add Value::POINTANIMATION.
38215 2007-06-07 Chris Toshok <toshok@ximian.com>
38217 * runtime.h (Value): add COLORANIMATION to the list of types.
38218 Also, add a Kind constructor so we can use that for nullable type
38219 default values in the ::RegisterProperty calls. That is,
38220 initializing the default to Value(Value::COLOR) gives you a null
38221 default value with the COLOR type.
38223 * runtime.cpp (Value): new Kind ctor.
38225 * animation.cpp/.h: add ColorAnimation.
38227 * demo.cpp (main): add a color animation that interpolates between
38228 Red and Blue for the SolidColorBrush.
38230 2007-06-07 Sebastien Pouliot <sebastien@ximian.com>
38232 * runtime.cpp: Restore alpha support. Don't call cairo_set_operator
38233 without a cairo_save|restore pair (or without resetting it's original
38234 value). Anyway right now it works without any of that :)
38236 2007-06-07 Jackson Harper <jackson@ximian.com>
38238 * runtime.cpp|h: add event triggers.
38239 * xaml.cpp: parse event triggers.
38241 2007-06-07 Chris Toshok <toshok@ximian.com>
38243 * animation.cpp/.h (Clock): initialize duration here.
38244 (TimeUpdated): instead of getting it every time through this
38247 2007-06-07 Chris Toshok <toshok@ximian.com>
38249 * animation.h: make Duration::FromSeconds return numbers of the
38250 same magnitude as get_now().
38252 * animation.cpp (Clock): fix UMR.
38254 2007-06-07 Jackson Harper <jackson@ximian.com>
38256 * xamp.cpp: Oops, not sure how that happened. Set the property
38257 name correctly, not to the type name.
38259 2007-06-07 Sebastien Pouliot <sebastien@ximian.com>
38261 * geometry.cpp|h: Apply transform. Fix default values.
38263 2007-06-07 Miguel de Icaza <miguel@novell.com>
38265 * animation.cpp (get_now): The time computation was wrong, there
38266 was an extra "10" in there that made all computations go astray
38267 and in particular cause the large values for ScaleY, which made
38268 getboundingbox ridiculously slow.
38270 For debugging purposes: ScaleY was being set to
38271 131472940552.95215, which came from
38272 DoubleAnimation:GetCurrentValue which was computing this value
38273 from a busted clock.
38275 2007-06-07 Sebastien Pouliot <sebastien@ximian.com>
38277 * geometry.cpp|h: Add drawing for [Ellipse|Line|Rectangle] geometry.
38278 Add basic code for the other geometry types.
38279 * runtime.cpp|h: Add basic implementation for point_from_str and
38281 * shape.h: Export some cairo helpers.
38282 * shape.cpp: Refactor drawing to reuse the code from geometry.
38283 * xaml.cpp: Add Point and Rect parsing.
38285 2007-06-07 Chris Toshok <toshok@ximian.com>
38287 * demo.cpp: make all the animation stuff work declaratively, and
38288 test some of the different repeatbehavior and autoreverse
38291 * animation.cpp: huge block of nasty code to determine our
38292 progress given the combinations of autoreverse and repeatbehavior.
38294 * animation.h: Add Duration stucture, add a few C api calls for
38295 getting/setting timeline properties.
38297 * runtime.h, runtime.cpp: add DURATION support to Value.
38299 2007-06-07 Jackson Harper <jackson@ximian.com>
38301 * runtime.cpp|h: Some pieces of the triggers framework.
38303 2007-06-07 Jackson Harper <jackson@ximian.com>
38305 * xaml.cpp: Handle repeat behaviors, lookup attached properties.
38307 2007-06-06 Chris Toshok <toshok@ximian.com>
38309 * animation.cpp, animation.h: add timeline_set_autoreverse.
38311 2007-06-06 Chris Toshok <toshok@ximian.com>
38313 * animation.h: add prototype for timeline_set_repeat_behavior.
38315 * animation.cpp (animation_init): register the RepeatBehavior
38317 (timeline_set_repeat_behavior): new function.
38319 * runtime.h: a better solution to enforcing types in the Value
38320 ctors - make Value (void*) private. this gives compilation errors
38321 at all usage points where you're passing an unrecognized pointer
38322 type. Also, add RepeatBehavior support to Value.
38324 * runtime.cpp: add repeatbehavior support to Value.
38326 * geometry.cpp: change all Value(pointer-to-struct) calls to
38327 Value(struct) calls.
38329 * transform.h: we need do define TransformGroup as a subclass of
38330 Transform, or the functions that SetValue a transformgroup fail to
38331 compile (since it's not a descendent of DependencyObject.)
38333 2007-06-07 Jackson Harper <jackson@ximian.com>
38335 * xaml.cpp: Get object element property setting working.
38337 2007-06-06 Chris Toshok <toshok@ximian.com>
38339 * runtime.h, runtime.cpp: add a special void* ctor to value so
38340 pointers aren't silently converted to bool (bad c++, bad!), and
38341 have that ctor output a warning message to the console, along with
38344 * brush.cpp: need to deref the Color* in the Value ctor.
38346 2007-06-06 Chris Toshok <toshok@ximian.com>
38348 * animation.cpp: new dump of the animation stuff. this is much
38349 closer in spirit and implementation to that of WPF's
38350 timing/animation system. it's not perfect yet, but it's much,
38353 2007-06-06 Chris Toshok <toshok@ximian.com>
38355 * runtime.h: make the point/color/rect copy constructors take a
38356 ref, not a pointer. also, make the value contructors for struct
38359 * runtime.cpp: make the value constructors for struct types
38362 * brush.cpp (brush_init): pass the Color by value.
38364 2007-06-06 Chris Toshok <toshok@ximian.com>
38366 * runtime.h, runtime.cpp: move the Value implementation (for
38367 everything but the operators) to the .cpp file.
38369 2007-06-06 Miguel de Icaza <miguel@novell.com>
38371 * runtime.h, runtime.cpp: Surface is no longer derived from
38372 Canvas, it now instead hosts a canvas, should avoid having two
38373 nested canvases for loading XAML files.
38377 Correct computation of the bounding box for shapes and videos.
38379 * shape.cpp: Do not pop the cairo state after draw and then call
38380 extents as the computation on extents is done with the current
38381 cairo context, not the cairo context that drew the data before
38382 popping (this would show up with thick brushes).
38384 * runtime.cpp: Add 2 instead of 1, as double to integer rounding
38385 can take two values (negative and positive).
38387 * cutil.cpp: Cut and paste cairo code here, it computes the proper
38388 bounding box from the extents using the current absolute matrix.
38390 * ffvideo.cpp (queue_data): Memory leak gone.
38392 2007-06-06 Jackson Harper <jackson@ximian.com>
38394 * xaml.cpp: Set brush attributes.
38396 2007-06-06 Jackson Harper <jackson@ximian.com>
38399 * transform.h: Need to register this base DependencyObject for the
38401 * geometry.cpp: use correct value kind for registering properties
38402 * runtime.cpp: Don't be strict about the type with properties that
38403 derive from DependencyObject, we can't be too strict here, because
38404 of inheritance the registered type BRUSH could be set to
38406 - register some properties with the correct type
38408 2007-06-06 Jackson Harper <jackson@ximian.com>
38411 * runtime.h: Staring to add triggers
38412 * shape.cpp: Use brush as our property kind
38414 2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
38416 * runtime.h: Add new types and SweepDirection enum.
38417 * geometry.cpp|h: Add PathFigure, ArcSegment, BezierSegment and
38418 LineSegment classes and [g|s]etter functions.
38420 2007-06-06 Miguel de Icaza <miguel@novell.com>
38422 * runtime.h: Move all the types into the Value::Kind enumeration
38423 so that we can have a shared type system.
38425 * demo.cpp (main): Allow loading a XAML file from the command
38426 line, for your testing pleasure.
38428 * ffvideo.cpp (convert_to_rgb): We no longer need the loop to swap
38431 Move to cairo to render to the screen the contents
38432 of the buffer. ffmpeg and cairo do have the same RGBA format, it
38433 was actually the copy from this format to the screen using
38434 gdk_draw_pixbuf that failed: pixbuf expected the data in another
38435 format and there is no way to configure it.
38437 * runtime.cpp (surface_clear): use the cairo api as the surface is
38438 no longer living on the client buffer.
38440 (surface_destroy): update
38442 (create_xlib, realized_callback, unrealized_callback): When the
38443 widget is realized, create a cairo context
38445 2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
38447 * runtime.h: Add Value support for Point and Rect
38448 * geometry.cpp: Implement [g|s]etters for Point and Rect properties
38450 2007-06-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
38452 * runtime.cpp, runtime.h: Added DependencyObject::GetObjectType.
38454 2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
38456 * shape.cpp|h, runtime.cpp|h: Remove the (now) useless
38457 set_prop_from_str methods since everything they handled is now
38458 moved into DependencyProperty.
38460 2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
38462 * shape.cpp|h: Use DependencyProperty for Shape Fill and Stroke
38463 brushes. Add getter functions for fill and stroke.
38465 2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
38467 * runtime.h: Call SetObjectType on Brush and SolidColorBrush
38469 2007-06-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
38471 * runtime.cpp, runtime.h: Remove the default_values hashtable
38472 from DependencyObject, it's redundant since the default value
38473 is stored inside the DependencyProperty anyway.
38475 2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
38477 * demo.cpp: Adapted to API changes.
38478 * brush.cpp: Add [g|s]etters for Brush and SolidColorBrush using
38479 DependencyProperty. Add brush initialization code.
38480 * runtime.cpp|h: Change Brush to inherit from DependencyObject.
38481 Add Color support to Value. Call brush initialization.
38482 * shape.cpp: Add miter, pen join|cap and fill rule drawing support.
38483 * xaml.cpp: Adapted to API changes since SolidColorBrush now inherits
38484 from DependencyObject.
38486 2007-06-06 Jeffrey Stedfast <fejj@gnome.org>
38488 * ffvideo.cpp (convert_to_rgb): Make sure the frame->data is
38489 non-NULL before trying to scale.
38491 2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
38493 * brush.cpp: Fix compiler warning.
38495 2007-06-06 Jackson Harper <jackson@ximian.com>
38497 * runtime.cpp/h: initialize xaml
38498 - Add canvas C style constructor
38499 - Make SolidColorBrush's Color public
38500 * shape.cpp: Comment out the set_prop... stuff, this code won't be
38501 used anymore, now that the xaml parser is using dependency objects
38504 * transform.cpp|h: Add some C style constructors
38505 * brush.cpp: Create colors from a string instead of solid brushes
38506 * xaml.cpp: Add in a known element tree, and move property setting
38507 into the xaml code, also added code for setting properties with
38508 property element syntax
38510 2007-06-05 Miguel de Icaza <miguel@novell.com>
38512 Add type checking on SetValue, RegisterProperty to avoid
38515 * runtime.cpp (SetValue): Add simple type checking
38516 (Register): Ensure that no empty values are passed.
38518 * runtime.h (DependencyObject): events, remove unused field.
38520 2007-06-05 Chris Toshok <toshok@ximian.com>
38522 * runtime.cpp: we need to maintain another hash table for
38523 DependencyProperties so we can return the actual property, not the
38524 default value, which is what GetDependencyProperty needs to do.
38525 (DependencyObject::FindName): implement this by either trying to
38526 use the namescope on this object or the global_NameScope (rather
38527 suboptimal, it's supposed to 'walk the logical tree' according to
38530 partially implement NameScope.
38532 * runtime.h: add NameScope, and add a uint64 Value. Also add
38533 FindName on DependencyObject.
38535 2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
38537 * shape.cpp|h: Add Shape's thickness and some dash support. Add more
38538 [g|s]etters for Shape using DependencyProperty.
38539 * demo.cpp: Add thickness and dashes to the rectangles.
38541 2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
38543 * shape.cpp|h: Move FrameworkElement stuff into runtime.cpp|h. Use
38544 functions to retrieve the height and width of shapes (values defined
38545 in FrameworkElement).
38546 * runtime.cpp|h: Use DependencyProperty for FrameworkElement Height
38547 and Width properties.
38548 * demo.cpp: Adjust to API changes.
38550 2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
38552 * shape.cpp: Remove (now) useless properties in Line.
38554 2007-06-05 Miguel de Icaza <miguel@novell.com>
38556 * shape.cpp, ffvideo.cpp, video.cpp: Do not use x, y anymore, we
38557 now have an absolute affine set for us beforehand.
38559 * runtim.cpp: on update_xform call the parent ::get_xform_for to
38560 obtain the base affine transform to use.
38562 2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
38564 * geometry.cpp|h: Use DependencyProperty for properties.
38565 * transform.h: Protect.
38567 2007-06-05 Chris Toshok <toshok@ximian.com>
38569 * runtime.h: call SetObjectType where we need it.
38573 * geometry.h: same.
38575 2007-06-05 Miguel de Icaza <miguel@novell.com>
38577 * ffvideo.cpp (VideoFfmpeg): Initialize audio_frames_size, caught
38580 * runtime.cpp (item_set_transform): This routine was doing nothing
38581 but doing an invalidate of the region, updating the transform,
38582 updating the bounding box and re-invalidating the new area. Move
38583 that logic elsewhere (it was also ignoring the affine parameter
38586 Unify user_xform with the RenderTransform dependency property, now
38587 we always have a static absolute transformation in the UIElement.
38589 2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
38591 * shape.cpp|h: Update shape_init with correct values and implement
38594 2007-06-05 Chris Toshok <toshok@ximian.com>
38596 * animation.cpp (ClockTimeChanged): use the instance variety of
38597 GetDependencyProperty.
38599 * runtime.cpp (GetDependencyProperty): just call the static
38600 variety with our objectType.
38601 (SetObjectType): method to enable subclasses to set the object
38604 * runtime.h: add DependencyObject::SetObjectType, as well as the
38605 instance version of DependencyObject::GetDependencyProperty.
38607 * transform.h: call SetObjectType to identify this object.
38609 2007-06-05 Chris Toshok <toshok@ximian.com>
38611 * runtime.cpp (AddHandler): oops, g_list_append requires an assignment.
38613 2007-06-05 Chris Toshok <toshok@ximian.com>
38615 * runtime.h (Canvas): declare our dependencyproperties here.
38617 * runtime.cpp (canvas_init): actually assign the properties.
38619 2007-06-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
38621 * runtime.cpp, runtime.h: Implement a DependencyProperty::
38622 GetDependencyProperty.
38624 2007-06-05 Chris Toshok <toshok@ximian.com>
38626 * runtime.cpp (OnSubPropertyChanged): remove the event handler for
38627 the render transform and use OnSubPropertyChange instead.
38628 (item_set_render_transform): clean this up substantially - the
38629 property system handles all the "event" stuff now.
38630 (item_get_render_transform): we need a getter now that this uses
38632 (NotifyAttacheesOfPropertyChange): new method, call
38633 OnSubPropertyChanged with both the attachee's property (the thing
38634 storing 'this') and the subproperty that changed.
38635 (SetValue): complicate the attachee stuff a bit, since we need to
38636 store both the object and the property it's storing the value in.
38637 (item_init): initialize RenderTransformProperty.
38639 * runtime.h: make UIElement subclass from DependencyObject. This
38640 flattens the hierarchy some from SL (which has Visual in between,
38641 but we have no Visual.)
38643 * transform.cpp (OnPropertyChanged): call
38644 NotifyAttacheesOfPropertyChange. Also, reindent some stuff.
38646 2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
38648 * demo.cpp: Updated to use rectangle_set_radius_[x|y]
38649 * shape.cpp|h: Add [get|set]ter functions for Line and Rectangle
38650 * xaml.cpp: Updated for API change.
38652 2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
38654 * runtime.h: Add new ctor for Color(uint). Change UIElement to inherit
38655 from DependencyObject.
38656 * brush.cpp: Complete named colors (wrt System.Windows.Media.Colors)
38658 2007-06-05 Jeffrey Stedfast <fejj@gnome.org>
38660 * ffvideo.cpp (queue_data): If we fail to get an audio codec, then
38661 we simply cannot play sound (or maybe there is no sound), either
38662 way, don't try to dereference the audio_codec pointer if it is
38663 NULL. Also wrapped audio setup in an #ifdef
38665 2007-06-05 Miguel de Icaza <miguel@novell.com>
38667 Implement the OnPropertySet stuff, builds on Toshok's first pass.
38669 Next stage: discuss with Toshok the migration to this awesome
38670 framework from Events ;-)
38672 * runtime.cpp (SetValue): when adding dependencyobjects track on
38673 the attached object the ownership.
38675 Notify all containers of a property change.
38677 * brush.cpp (Brush): Remove AddListener, RemoveListener, we can
38678 use the property notification system for these.
38680 * runtime.h (DependencyObject): Add a "attached_list" gslist to
38681 keep track of all the objects where this particular
38682 DependencyObject has been attached to, to provide OnPropertyChange
38683 notifications (not hooked up yet).
38685 (Value): Introduce DependencyObject constructor.
38687 2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
38689 * shape.cpp|h: Started moving properties to DependencyObject. Added
38691 * geometry.cpp|h: New. System.Windows.Media.Geometry related classes
38692 * runtime.cpp: Added calls to shape_init and geometry_init
38693 * runtime.h: Added Rect structure and new DependencyObject types for
38694 shapes and geometry.
38695 * Makefile.am: Added geometry.cpp|h to source files.
38697 2007-06-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
38699 * runtime.h: initialize Value to zero on construction.
38701 2007-06-05 Chris Toshok <toshok@ximian.com>
38703 * demo.cpp: abstract the cairo transformations away by using
38704 RotateTransforms.. and this is probably going to annoy some
38705 people, but make the normally stationary elements bounce between
38706 smaller and larger.
38708 * animation.h: make Clock subclass from DependencyObject.
38710 * animation.cpp (animation_init): assign the properties, don't
38711 just call Register.
38713 also, track the EventObject method name change.
38715 * runtime.cpp (item_set_render_transform): new method. unhook the
38716 old transform and hook up the new one. also, explicit set our
38717 transformation here.
38718 (SetValue): make this only do the work (and more importantly only
38719 call OnPropertyChanged) if the value is different.
38721 * runtime.h: shorten the names of the EventObject methods. Add
38722 operator== and operator!= to Value. Add an EventObject to
38723 DependencyObject to give us rudimentary event handlers. Add the
38724 render_transform "higher-level" transform into to UIElement.
38726 * transform.h: add the OnPropertyChanged override and rename
38727 transform_get_value to transform_get_transform.
38729 * transform.cpp (transform_init): oops. we need to actually
38730 assign the properties.
38731 (transform_get_transform): indent.
38732 (OnPropertyChanged): override this method to emit
38733 "TransformChanged".
38735 2007-06-04 Chris Toshok <toshok@ximian.com>
38737 * Makefile.am (libmoon_la_SOURCES): add animation and transform to
38740 * runtime.h: flesh out Value some, adding BOOL (has to be C++
38741 bool, not gboolean, or else it conflicts with int32), INT32,
38742 INT64, and STRING (char*).
38744 * runtime.cpp (runtime_init): call animation_init and
38747 * animation.cpp, animation.h, transform.h, transform.cpp: get
38748 these using the new dependency object/value foo, and get them
38751 2007-06-04 Miguel de Icaza <miguel@novell.com>
38753 * runtime.h: Make the "Base" refcounting class the base for
38756 * ffvideo.cpp: Set audio initialization to zero for now, so we can
38757 continue debugging.
38759 * runtime.cpp (Canvas): override render, in preparation for using
38760 attached properties. I get the feeling am going to regret not
38761 keeping the top/left attached properties somewhere else.
38763 (Value): introduce the discriminating union for values as
38766 (DependencyObject): use lower case name for properties.
38767 Take Value * instead of void *, this is so we can represent NULL
38768 values (is this a good idea Chris, or do we want to have a
38769 Value.Type.NULL enumeration value?
38771 Update hash table creation to g_free the result on hash table
38772 update and removal.
38774 (Event): Update indentation to be Linux-like instead of GNU like.
38776 2007-06-04 Sebastien Pouliot <sebastien@ximian.com>
38778 * shape.cpp|h: Add Poly[line|gon] drawing code and C helper functions
38779 to create them. Replace the "old" C1 constant in Ellipse::Draw with
38780 ARC_TO_BEZIER (now that I know where it comes from ;-)
38782 2007-06-04 Jeffrey Stedfast <fejj@novell.com>
38784 * ffvideo.cpp (queue_data): Got sound kinda sorta working...
38786 2007-06-04 Jackson Harper <jackson@ximian.com>
38788 * xaml.cpp: Give elements a type
38790 2007-06-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
38792 * runtime.cpp, runtime.h: implemented DependencyProperty and DependencyObject.
38794 2007-06-04 Chris Toshok <toshok@ximian.com>
38796 * animation.h, animation.cpp: initial pass at some of the
38797 animation stuff. doesn't build yet.
38799 2007-06-04 Chris Toshok <toshok@ximian.com>
38801 * runtime.cpp, runtime.h: add EventObject, a c++ only base class
38802 for managing events.
38804 2007-06-04 Sebastien Pouliot <sebastien@ximian.com>
38806 * shape.h: Remove Ellipse::set_prop_from_str, it's "virtually" empty
38807 and added Draw methods to Polygon and Polyline.
38808 * shape.cpp: Added round-corner rectangle support (RadiusX, RadiusY)
38809 and match changes in header file.
38811 2007-06-04 Jackson Harper <jackson@ximian.com>
38813 * shape.cpp/h: width and height are properties of the
38816 2007-06-04 Jackson Harper <jackson@ximian.com>
38818 * shape.cpp/h: add ellipse_new
38819 - set width/height on ellipses (ellipsi ?) and draw them.
38820 * xaml.cpp: create ellipses, get zorder correct
38822 2007-06-04 Jackson Harper <jackson@ximian.com>
38824 * xaml.cpp: put in character data functionality, eventually we
38825 will need to add FrameworkElement methods for setting the default
38826 content element. See
38827 http://msdn2.microsoft.com/en-us/library/ms752059.aspx#contentmodels
38828 for more info on content properties.
38830 2007-06-04 Sebastien Pouliot <sebastien@ximian.com>
38832 * demo.cpp: Include shape.h and use a rounded-rectangle
38833 * runtime.h: Added FillRule and moved out Shapes.
38834 * shape.h: New. Moved all shapes from runtime.h and added new ones.
38835 * shape.cpp: Added Polygon and Polyline.
38836 * xaml.cpp: Include shape.h
38837 * Makefile.am: Add shape.h
38839 2007-06-04 Chris Toshok <toshok@ximian.com>
38841 * transform.cpp, transform.h: initial code for the transform
38842 objects. doesn't compile yet.
38844 2007-06-04 Jackson Harper <jackson@ximian.com>
38846 * demo.cpp: fix typo
38848 2007-06-04 Sebastien Pouliot <sebastien@ximian.com>
38850 * demo.cpp: Fix for API changes.
38851 * runtime.h: Add FrameworkElement, other Shape properties and move
38852 around some properties to match the managed definitions.
38853 * shape.cpp: Add setters for new Shape properties and move properties
38854 parsing to match managed definitions.
38855 * xaml.cpp: Fix for API changes.
38857 2007-06-04 Sebastien Pouliot <sebastien@ximian.com>
38859 * shape.cpp: Don't typecast doubles into ints.
38861 2007-06-04 Jackson Harper <jackson@ximian.com>
38864 * xaml.cpp: Implement function that allows you to load xaml from a
38866 * demo.cpp: add a very small xaml demo
38868 2007-06-04 Jackson Harper <jackson@ximian.com>
38870 * xaml.cpp: remove old no longer used function.
38871 - track whether or not we are adding to a panel instead of surface
38872 * shape.cpp: Fix typo, need to set line_* not x1, x2, etc.
38874 2007-06-04 Jackson Harper <jackson@ximian.com>
38876 * shape.cpp: Add new methods to allow shapes to have their
38877 properties filled in from text values.
38879 * brush.cpp: Start work on allowing solid color brushes to be
38880 created from strings.
38882 * runtime.cpp: stub in methods for setting properties on canvas
38883 and UIElements (these had some meat but I am removing it now that
38884 some of the names are updated, will put back later).
38886 * runtime.h: add some methods and functions for XAML parsing.
38888 * xaml.cpp: Initial implementation of the XAML parser.
38890 2007-06-03 Miguel de Icaza <miguel@novell.com>
38892 * runtime.cpp (Collection, Panel): The beginning of an API to
38893 encapsulate collections that we will expose to the unmanaged
38896 This should be the backend for the base collection class in agclr
38897 for the strongly typed types.
38899 The idea is to have the MS.Internal.Collection<T> be a proxy that
38900 contains an IntPtr pointer to the C++ Collection instance and map
38901 the various add/remove methods to it.
38903 The immediate goal is to be able to do from C#:
38905 Rectangle r = new Rectangle ();
38906 r.Brush = new SolidColorBrush (new Color (1, 0, 0));
38907 Canvas.Children.Add (r);
38909 2007-06-02 Miguel de Icaza <miguel@novell.com>
38911 Implement support for the render origin.
38913 * runtime.cpp (item_invalidate): add one to cope with the rouding
38914 from floats to ints (fixes some trailing junk).
38916 Item: redo the affine transformation setup to support both the
38917 render_transform_origin property and avoid recomputing all of this
38918 on each repaint request.
38920 * ffvideo.cpp: Changed the code to do the actual video decoding on
38921 the main thread so we can put all the video and audio in the
38922 queues before we start rendering.
38924 Failed attempts at getting audio to work.
38926 * Everywhere: renamed Item to UIElement to better match the actual
38927 class hierarchy that we will be exposing.
38929 2007-06-01 Jackson Harper <jackson@ximian.com>
38931 * shape.cpp: Fix typo.
38933 2007-06-01 Miguel de Icaza <miguel@novell.com>
38935 * ffvideo.cpp: No longer use CMD_INITED, instead use g_idle_add to
38936 notify a special function (callback_video_inited). Makes me
38937 wonder if I should do the same for the new-frame call
38939 Initialize the cairo surface on the callback_video_inited routine
38940 instead of doing this on the decoder thread (that was a mistake).
38942 This solves the misterious case of the video that randomly did not
38945 2007-05-29 Miguel de Icaza <miguel@novell.com>
38947 * video.cpp (load_next_frame): reimplement the video play back
38948 logic so that it will now properly paint the proper frame on the
38951 Add logic to skip frames if video is playing back too slowly, and
38952 to resume playback when new frames are ready.
38954 Currently its computing the delay using the n_frame_rate field
38955 (which no sample uses, but I could not find any other way of
38956 estimating the frame rate other than this.
38958 It works at least with some sample streams that I have with 30 fps
38961 * runtime.cpp: Move the GtkDrawingArea widget into the Surface,
38962 and handle exposes in the runtime, not in the demo. Show the
38963 widget (thats why I was not getting the expose events on the
38966 2007-05-26 Miguel de Icaza <miguel@novell.com>
38968 * runtime.cpp (Brush, SolidBrush): Introduce brushes.
38970 (Shape): introduce reusable drawing framework for shapes, not
38973 (Line): introduce second user besides rectangles.
38975 Remove agg test code.
38977 (Group::getbounds): implement.