1
2009-01-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
4
* media.cpp: MediaElement/MediaBase: when SetSource (dl) is called, we
5
need to set the source to the dl's uri. Fixes #464723
9
2009-01-07 Geoff Norton <gnorton at novell.com>
11
* xaml.cpp, file-downloader.cpp: TextStream::Open has been renamed
12
to TextStream::OpenFile
13
* utils.h|cpp: Refactor TextStream to read in-memory and file buffers
14
* downloader.cpp: GetResponseText needs to ensure it returns data in
15
UTF-8, and doesn't handle zip files.
19
2009-01-07 Geoff Norton <gnorton@novell.com>
21
* downloader.h|cpp: Work around mozilla bug #444160 by keeping an in
22
memory cache of all downloads <= 64KB that are streamed in 1 shot.
26
2008-12-24 Aaron Bockover <abockover@novell.com>
28
* downloader.cpp (validate_policy): Allow full rights to download if the
29
target (XAML) URI protocol is chrome; chrome sources (e.g. extensions)
30
are fully trusted in the browser
34
2008-12-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
36
[Backports of r121143, 121228 and 121230]
38
* audio-pulse.cpp, audio-pulse.h: Improve locking while waiting for
39
pulseaudio to initialize - keep waiting if we get spurious wakeups.
43
2008-12-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
45
* pipeline.cpp: IMediaDemuxer::GetBufferedSize: Only calculate buffered
46
size using video and audio streams. Fixes #456154.
51
2008-12-05 Geoff Norton <gnorton@novell.com>
53
* audio-pulse.cpp: PulseAudio sometimes gives us errors sync,
54
and sometimes async. Lets ensure we can actually connect before
59
2008-12-03 Geoff Norton <gnorton@novell.com>
61
* media.cpp: Ensure we null our reference to the image loader in
62
all the failure cases to avoid a possible double free/unref.
66
2008-12-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
67
* pipeline.cpp: IMediaStream::Dispose: delete our queue of frames.
68
Plugs a memory leak. [Backport of r118496]
69
* pipeline.cpp, pipeline.h: Plug a memory leak. [Backport of r118491].
73
2008-12-01 Geoff Norton <gnorton@novell.com>
75
* runtime.cpp: Remove a comment around a debug guard that should
76
have never been here in the first place. Fixes #449524
80
2008-12-01 Geoff Norton <gnorton@novell.com>
82
* audio.cpp: Fix a logic bug making it impossible to use Alsa
87
2008-11-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
89
* audio.cpp: Remove a print_stack_trace. Backport of r120211.
93
2008-11-24 Larry Ewing <lewing@novell.com>
95
* media.cpp (MediaBase::SetSource): only queue a tick if we need
96
to, fixes regression on mediaelement downloaders.
100
2008-11-24 Geoff Norton <gnorton at novell.com>
102
* media.cpp: If we do a SetSource on a image element with a
103
completed downloader, short circuit the async call, as the downloader
104
theoretically can be immediately reused in javascript after the call.
105
Also remove the internal completed event after its been fired, for the
106
same reason (downloader reuse). Fixes halo3
110
2008-11-21 Larry Ewing <lewing@novell.com>
112
* brush.cpp (VideoBrush::SetupBrush): make sure we use the fast
113
filter in videobrush when scaling.
117
2008-11-19 Geoff Norton <gnorton@novell.com>
119
* audio.cpp: If we fail to initialize pulseaudio, lets try alsa before
120
giving up on media entirely.
124
2008-11-14 Geoff Norton <gnorton@novell.com>
127
* codec-url.h: Update to the final URLs for beta 1
131
2008-11-14 Geoff Norton <gnorton@novell.com>
133
* pipeline-ui.(cpp|h): Rework the pipeline for codec installation to
134
handle the pango markup we're using.
138
2008-11-13 Sebastien Pouliot <sebastien@ximian.com>
140
* runtime.cpp (running_on_nvidia): Fix leak of Display
143
2008-11-11 Sebastien Pouliot <sebastien@ximian.com>
145
* pipeline-asp.cpp: Fix case where get_audio_data returns NULL
148
2008-11-11 Geoff Norton <gnorton@novell.com>
150
* Makefile.am: Only build the appropriate pipeline-ui based on wether
151
we're building on a os/arch combo that supports the SMP.
152
* codec-url.h: Set the appropriate CODEC_URL for our target platform
153
* pipline-nocodec-ui.(cpp|h): New UI for unsupported OS/Arch targets
154
of the codec install pipeline.
156
2008-11-11 Geoff Norton <gnorton@novell.com>
158
* debug.h: Its unlikely that debug flags will be set.
162
2008-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
164
* mediaelement.cpp, mediaplayer.cpp, pipeline.cpp, playlist.cpp,
165
playlist.h: Instead of calling Media::Dispose in MediaElement, move
166
that to Playlist(Entry) and Dispose of the playlist instead. This
167
makes re-playing already played content in playlists work again.
168
Backport of r118391 and r118493.
172
2008-11-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
174
* audio.cpp, mediaplayer.cpp, audio.h, mediaelement.cpp, mediaplayer.h:
175
Implement MediaElement.AudioStreamIndex. Backport of r118367.
179
2008-11-10 Chris Toshok <toshok@ximian.com>
181
* runtime.cpp (get_flags): output the flags env var (both name and
182
value) if it's set. r: kangaroo.
184
2008-11-10 Geoff Norton <gnorton@novell.com>
186
* runtime.cpp: Do not enable debug features by default, and remove a
190
2008-11-10 Geoff Norton <gnorton@novell.com>
192
* runtime.cpp: Force NVIDIA binary driver to go to the image backend
193
to work around serious performance problems when we use accelerated
197
2008-11-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
199
* pipeline-ffmpeg.cpp: FfmpegDecoder::DecodeFrame: for audio packets we
200
need to keep decoding until the entire input has been consumed.
204
2008-11-06 Stephane Delcroix <sdelcroix@novell.com>
206
* downloader.h: change the signature of downloaderRequestFinishedHandler
207
to pass the resulting uri.
209
* downloader.cpp: validate the returned uri against redirection policies
213
2008-11-06 Geoff Norton <gnorton@novell.com>
215
* pipline(-ui).cpp: Move the codec location on more time.
218
2008-11-05 Jeffrey Stedfast <fejj@novell.com>
220
Patches by Argiris Kirtzidis to fix bug #441687
222
* audio.cpp: Use g_alloca() to create dynamically sized arrays on
223
the stack rather than relying on g++ features.
225
* clock.cpp: Applied MSVC portability patch which implements
228
2008-11-03 Jeffrey Stedfast <fejj@novell.com>
230
See tests/xaml/test-textblock-actualheight.html and
231
test-textblock-hittest.html as compared with Microsoft
234
* layout.cpp (TextLayout::Layout*): trailing LineBreak elements
235
actually do count toward ActualHeight metrics.
237
2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
239
* audio-pulse.cpp: OnContextStateChanged: always print an error message
240
if we fail to connect to pa daemon.
242
2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
244
* mediaelement.h, mediaelement.cpp: Add a MissingCodecs flag and don't
245
invalidate when that flag is set.
247
2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
249
* runtime.cpp: get_flags: take the default flags as an argument, this
250
way the environment variables can disable flags which are enabled
253
2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
255
* pipeline-ui.cpp, runtime.h, runtime.cpp, pipeline.cpp: Only enable ms
256
codecs by default for browsers.
258
2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
260
* mediaplayer.cpp: FrameCallback: If the frame couldn't be retrieved
261
because of a buffer underflow and we're waiting for the initial
262
frame, enqueue a request for another frame. Fixes #440317.
264
2008-11-03 Larry Ewing <lewing@novell.com>
266
* rect.h (struct Rect): clamp the intersection w/h to 0 fixes some
267
extreme exposure issues in popfly.
269
2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
271
* runtime.h: Remove #include <config.h> from headers
273
2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
275
* mp3.h, mp3.cpp: Mp3FrameReader::TryReadFrame: if we don't succeed in
276
reading a header, try to sync to one. FindMpegHeader: Return proper
277
error code (MEDIA_NO_MORE_DATA) if we can't read more data. Fixes
278
#426440 (slideshow doesn't go beyond the first slide).
280
2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
282
* mediaelement.h, mediaelement.cpp: When a AutoPlay=False media is
283
opened, the final state is Stopped, not Paused. When media finish,
284
the final state is Paused, not Stopped. Fixes #365827.
286
2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
288
* audio-alsa.cpp: Add another dlopened symbol, fixes an unresolved
291
2008-11-03 Fernando Herrera <fherrera@novell.com>
299
* dependencyobject.cpp:
302
* http-streaming.cpp:
307
* mms-downloader.cpp:
309
* pipeline-ffmpeg.cpp:
318
* yuv-converter.cpp: Change debug macros to runtime conditionals based
319
on MOONLIGHT_DEBUG env variable of compile time. Checks are only
320
enabled if configured with --with-debug=yes option.
322
2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
324
* debug.cpp: Don't dlopen mono, just link with it if -with-debug is
327
2008-11-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
329
* pipeline-ffmpeg.cpp: Revert r117547 and related.
331
2008-11-02 Chris Toshok <toshok@ximian.com>
333
* text.cpp (TextBlock::InsideObject): textblocks are hit only in
334
their ActualWidth/ActualHeight, not in the full bounding
335
rectangle. Fixes bug #434258.
337
2008-10-31 Chris Toshok <toshok@ximian.com>
339
* runtime.h, runtime.cpp: remove transparency from properties of
341
(Surface::PaintToDrawable): add a @transparent argument to this
344
* window-gtk.cpp (MoonWindowGtk::expose_event): pass the window's
345
transparency to Surface::PaintToDrawable.
347
* window.h: move the idea of transparency here from Surface.
349
2008-10-31 Jeffrey Stedfast <fejj@novell.com>
351
Portability patch by Argiris Kirtzidis.
353
* *.cpp: s/#if false/#if 0/g and s/#if true/#if 1/g
355
* xaml.cpp (start_element): strchr() returns const.
356
(repeat_behavior_from_str): Same.
358
2008-10-31 Larry Ewing <lewing@novell.com>
360
* runtime.cpp (Surface::PaintToDrawable): instead of the content
361
type check if active_window is fullscreen. This is uglier but the
362
mozilla hands us rgb drawables not rgba drawables so until we have
363
a better plan this will solve the problem.
365
2008-10-31 Larry Ewing <lewing@novell.com>
367
* runtime.cpp (Surface::PaintToDrawable): only follow the
368
transparent path if our target supports it.
370
2008-10-31 Sebastien Pouliot <sebastien@ximian.com>
372
* pipeline-asp.cpp (ASFDemuxer::ReadHeader): Fix logic when skipping
373
a bad stream so we dont include NULL holes streams[]
375
2008-10-31 Michael Dominic K. <mdk@mdk.am>
377
* runtime.cpp: Reverting for now the recent crossing events
378
changes -- causes issues with Ink Journal.
380
2008-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
382
* pipeline.h, pipeline.cpp: Added IMediaStream::GetMediaTypeName.
383
* mediaplayer.cpp: Use IMediaStream::GetMediaTypeName instead of
384
complex ifs on the GetType return value.
386
2008-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
388
* debug.cpp: dlopen libmono too for our stack walking methods.
390
2008-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
392
* pipeline-ffmpeg.cpp: Don't use ffmpeg version defines which aren't
393
present in older ffmpeg version (r10885).
395
2008-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
397
* pipeline-ffmpeg.cpp: DecodeFrame: free the frame after error
400
2008-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
402
* pipeline-ffmpeg.cpp: dlopen ffmpeg.
404
2008-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
406
* pipeline.cpp: Fix warning (variable might be used uninitialized).
408
2008-10-30 Jeffrey Stedfast <fejj@novell.com>
412
* stylus.cpp (StrokeCollection::AddedToCollection): Override so
413
that we can avoid aborting if a stroke already has a logical
414
parent (not an error for strokes).
416
* error.h (MoonError::Clear): New convenience method.
418
2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
420
* libmoon.h: Fix build.
422
2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
424
* audio.cpp, brush.cpp, cbinding.h, dependencyproperty.g.cpp,
425
Makefile.am, media.cpp, media.h, mediaelement.cpp, mediaelement.h,
426
mediaplayer.cpp, mediaplayer.h, pipeline.cpp, type-generated.cpp,
427
src.mdp, playlist.cpp: Split MediaElement out from media.[cpp|h]
428
into its own mediaelement.[cpp|h].
430
2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
432
* type-generated.cpp, Makefile.am, media.h, mediaplayer.cpp,
433
mediaplayer.h, mplayer.cpp, mplayer.h, src.mdp: Rename
434
mplayer.[cpp|h] -> mediaplayer.[cpp|h].
436
2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
438
* cbinding.cpp, cbinding.h: Regenerated.
440
2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
442
* audio.cpp, audio-pulse.cpp, media.cpp, mms-downloader.h, mp3.cpp,
443
mplayer.h, pipeline.cpp, pipeline.h, pipeline-asf.cpp,
444
pipeline-asf.h, src.mdp, xaml.cpp: Move asf related bits from
445
pipeline.[h|cpp] to pipeline-asf.[h|cpp].
447
2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
449
* pipeline.h: IMediaDemuxer: Add Source getter.
450
* pipeline.cpp: IMediaDemuxer::GetLastAvailablePts: don't take into
451
account streams which aren't selected. IMediaStream::AppendFrame:
452
update last available pts with the frame's pts.
453
* media.cpp: MediaElement::CalculateBufferingProgress: never use last
454
available pts to calculate buffering progress for streams which can
455
seek to directly to the requested pts. Fix math to check for
456
negative values to avoid weird results.
458
2008-10-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
460
* media.cpp, media.h: MediaElement: fix buffering progress after
461
seeking regression - don't only use the buffer level in the
462
pipeline to report buffering progress, but take into accout the
463
point from where we seek.
464
* mp3.h, mp3.cpp: Store the AudioStream in the frame reader and update
465
the stream's LatestAvailablePts field whenever we read a frame.
466
Also rename the previous 'stream' (IMediaSource*) field to 'source'
467
to avoid confusion with AudioStream.
468
* pipeline.cpp, pipeline.h: Add a last_available_pts field to
469
IMediaStream and the corresponding GetLastAvailablePts to
470
IMediaDemuxer, enabling the calculation of correct buffering
471
progress after a seek. This also requires a codec abi version bump.
473
2008-10-29 Sebastien Pouliot <sebastien@ximian.com>
475
* clock.h: Change MilliSeconds_[From|To]Pts to use the new
476
PTS_PER_MILLISECOND define.
477
* mplayer.cpp: Rework fix on GetTimeoutInterval to avoid a division
478
resulting in zero (and the endless loop of #439631).
480
2008-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
482
* mplayer.cpp: GetTimeoutInterval: Calculate timeout correctly. Fixes
485
2008-10-28 Jeffrey Stedfast <fejj@novell.com>
487
* downloader.cpp (scheme_is): Check protocol non-null.
490
* uri.cpp (Uri::Parse): If no protocol is found, init to NULL
491
instead of file. Also make sure to parse the path in all valid
494
2008-10-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
496
* mplayer.cpp: LoadVideoFrame: if target_pts is invalid, set 0 as
498
* media.cpp: AdvanceFrame: handle cases where position = -1 and don't
501
2008-10-27 Jeffrey Stedfast <fejj@novell.com>
503
* uri.cpp (Uri::Parse): Do a bit better than just strchr() for ':'
504
to parse out the uri scheme.
506
2008-10-27 Jeffrey Stedfast <fejj@novell.com>
508
Performance optimization patch for bug #409793
510
* stylus.cpp (Stroke::AddStylusPointToBounds): Modified to take a
511
Rect bounds argument so that we can update a bounds of our
513
(Stroke::ComputeBounds): Updated.
514
(Stroke::OnCollectionChanged): Update our new 'dirty' bounds.
515
(Stroke::OnCollectionItemChanged): Same.
516
(InkPresenter::PostRender): Reset stroke dirty regions.
517
(InkPresenter::OnCollectionItemChanged): Invalidate only the
518
stroke's dirty region.
520
2008-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
522
* media.cpp: TryOpen: Don't try to open anything if downloaded_file is
525
2008-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
527
* mplayer.cpp: LoadVideoFrame: Don't check if buflen = 0, makes things
529
* pipeline-ffmpeg.cpp, pipeline-ffmpeg.h: CleanState: Properly clean
530
up/reset codec. DecodeFrame: ffmpeg might delay output one frame,
531
i.e. the decoder output is the input of the previous time we called
532
avcodec_decode_video, so keep track of pts from previous frame and
533
properly set pts of the decoded frame.
535
2008-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
537
* mplayer.cpp: LoadVideoFrame: show the frame if the end pts of the
538
frame is above the target pts (previously we only showed the frame
539
if the start pts was above the target pts, causing us to show one
540
frame too late). Fixes test-asf-demuxer-shuffled-payloads.html.
542
2008-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
544
* media.cpp: MediaElement::Play: Call Play when in Opening state too.
546
2008-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
548
* mplayer.cpp: AdvanceFrame/GetCurrentPts: if the audio isn't playing
549
we should just work as if there's no audio at all. The video might
550
play after the audio has stopped if the a/v streams have different
553
2008-10-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
555
* pipeline.cpp: Media::ClearQueue: delete the list nodes with the
556
queue_mutex unlocked, since the node dtor may cause unrefs, causing
557
other dtors to be called, and it may all end up in Media::Dispose
558
which will then try to lock the mutex again (and deadlock).
560
2008-10-24 Jeffrey Stedfast <fejj@novell.com>
562
* font.cpp (style_info_parse): Tokenize the style string so that
563
the individual sub-parsers can be a bit smarter than than
565
(style_width_parse): Made smarter - now handles lwsp between
566
multi-word width specifiers (or no lwsp at all).
567
(style_weight_parse): Same.
569
2008-10-23 Larry Ewing <lewing@novell.com>
571
* media.cpp: remove compute bounds since it mirrors
572
FrameworkElement now.
574
2008-10-23 Larry Ewing <lewing@novell.com>
576
* shape.cpp, shape.h: remove origin fixup GetOriginPoint and
579
2008-10-23 Jeffrey Stedfast <fejj@novell.com>
581
* textbox.cpp (TextBox::Paint): Updated.
583
* text.cpp (TextBlock::Paint): Updated.
585
* layout.cpp (TextLayout::Render): Swapped origin & offset
586
arguments which feels more natural to me.
588
2008-10-23 Sebastien Pouliot <sebastien@ximian.com>
590
* pipeline.cpp: (ASFDemuxer::ReadHeader): Don't allow video height or
591
width over 2048 pixels since this is likely to be corrupted values.
592
* pipeline.h: Define MAX_VIDEO_[HEIGHT|WIDTH] to 2048 (I'm sure that
593
someday people will laugh at me for proposing such a small value)
595
2008-10-23 Larry Ewing <lewing@novell.com>
597
* layout.cpp, layout.h: Change the Render api to drop the uielement argument.
600
* text.cpp: call layout with the new arguments.
602
2008-10-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
604
* mplayer.cpp: Pause: Don't set the SeekSynched flag. This would cause
605
fast-forwarding video when seeking to a position which hadn't been
606
downloaded (since we automatically pause the video then). Fixes
609
2008-10-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
611
* mplayer.h, mplayer.cpp: Implement RenderedFramesPerSecond and
612
DroppedFramesPerSecond. Only in SL 2.0, but very useful for
615
2008-10-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
617
* pipeline.h, pipeline.cpp: Increase codec ABI version (IMediaStream
618
changed size). IMediaStream: Remove msec_per_frame, it's already in
619
VideoStream. VideoStream: make msec_per_frame be pts_per_frame to
620
loose less precision.
621
* mplayer.cpp: Calculate advance frame timeout based on video fps.
623
2008-10-22 Chris Toshok <toshok@ximian.com>
625
* runtime.cpp (Surface::HandleUICrossing): disable the crossing
626
check from r116528 in the case of a windowless plugin (where
627
event->window == NULL). Also, active_window->GetGdkWindow should
628
never be trusted to return the actual window - it's use is
629
strictly to find the screen/monitor for full-screening. In the
630
windowless case it returns the toplevel netscape window.
632
2008-10-22 Larry Ewing <lewing@novell.com>
634
* brush.cpp, brush.h: remove the uielement references from the api
635
pass the required information as a rect to SetupBrush instead.
637
* shape.cpp, shape.h:
643
* broder.cpp: update SetupBrush callers for the new signature.
645
2008-10-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
647
* audio.h, audio.cpp: AudioSource: Initialize last_write_pts and
648
last_current_pts to their max value, to detect when they haven't
649
been set yet. Properly reinitialize these variables (to their max
650
values) in Stop, and make GetCurrentPts return G_MAXUINT64 for this
652
* mplayer.cpp: AdvanceFrame: the audio might return G_MAXUINT64 for
653
current pts, handle this. Fixes fast-forwarding issue in #435908.
655
2008-10-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
657
* mp3.cpp: Mp3Demuxer::SeekInternal: Initialize result so that we don't
658
use random memory if we don't have a reader.
660
2008-10-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
662
* mms-downloader.cpp: Add logging methods.
664
2008-10-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
666
* media.cpp: Sprinkle Dispose calls to plug leaks.
668
2008-10-20 Chris Toshok <toshok@ximian.com>
670
* pipeline.cpp (Media::RegisterMSCodecs): free libmscodecs_path
671
before reassigning (and reallocating memory for) it.
673
* dependencyobject.h, dependencyobject.cpp: add an optional
674
argument to all the EventObject::AddHandler* overloads, called
675
data_dtor, which is invoked just before the EventClosure is
676
destroyed so that the data can be freed.
678
2008-10-20 Chris Toshok <toshok@ximian.com>
680
* window-gtk.h, window-gtk.cpp: move the Surface conversion from
681
MouseCursor -> GtkCursor here.
683
* runtime.h, runtime.cpp: surface only deals with MouseCursors
684
anymore. the gtk support is in window-gtk now.
686
* window.h: remove SetCursor (GdkCursor) and add
687
SetCursor (MouseCursor), so subclasses of MoonWindow can do their
690
2008-10-20 Jeffrey Stedfast <fejj@novell.com>
692
* media.cpp (MediaElement::MediaOpened): If the stream decoder is
693
null, use null for the decoder_name. Fixes a segfault.
695
2008-10-20 Sebastien Pouliot <sebastien@ximian.com>
697
* pipeline.cpp (ASFDemuxer::ReadHeader): Don't count invalid streams
698
since a lot of loops don't handle NULL values.
700
2008-10-20 Michael Dominic K. <mdk@mdk.am>
702
* runtime.cpp: More fixes to crossing events: when entering fullscreen
703
ignore the crossing events coming from previous window. Otherwise we get
704
double enter/leave pair.
706
2008-10-20 Michael Dominic K. <mdk@mdk.am>
708
* window-gtk.cpp: GetGdkWindow () - handle the fullscreen window case
709
correctly (no parent window).
711
2008-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
713
* debug.h, pipeline.cpp, audio.cpp: #define print_stack_trace to
714
nothing if not DEBUG is set, removing the need for surrounding all
715
print_stack_trace calls with #if DEBUG.
717
2008-10-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
719
* pipeline.cpp: Remove debugging code.
721
2008-10-17 Michael Dominic K. <mdk@mdk.am>
725
* applier.h: Fixing one more osbcure case of Storyboard transitions where
726
stopping a prev sboard makes the next one starting from bad base value.
728
2008-10-17 Michael Dominic K. <mdk@mdk.am>
730
* runtime.cpp: Make sure we get the new pointer motion notify when
731
entering/leaving fullscreen. This fixes the fullscreen-enter-leave test
732
but interestingly doesn't fix the original problem of #434267.
734
2008-10-17 Sebastien Pouliot <sebastien@ximian.com>
736
* runtime.cpp (Surface::PaintToDrawable): Don't leak cairo context
737
when using "backend=image".
739
2008-10-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
741
* pipeline.cpp: NullDecoder::OpenVideo: Fix comment (logo is centered
742
now, not tiled), and fix inner loop, we were including one pixel
743
too many for width and height.
745
2008-10-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
747
* pipeline.cpp: RegisterMSCodecs: if there's no codec in
748
~/.mozilla/plugins, use just the filename of the codec library and
749
make dlopen search for it. This makes it easier to run parallell
750
tests from different revisions without having the codecs from each
751
revision overwrite eachother in user's home.
753
2008-10-16 Geoff Norton <gnorton@novell.com>
755
* pipeline.cpp: Dont tile our logo, it looks like ass. Lets
756
center it in the available window instead.
758
2008-10-16 Geoff Norton <gnorton@novell.com>
760
* pipeline-ui.cpp: Avoid a resize when realizing which causes an
761
annoying flicker in the codec window.
763
2008-10-16 Geoff Norton <gnorton@novell.com>
765
* pipeline.cpp: Unbreak the world.
767
2008-10-16 Geoff Norton <gnorton@novell.com>
769
* pipeline(-ui).cpp: Use the updated mscodec name and location.
771
2008-10-16 Fernando Herrera <fherrera@novell.com>
773
* playlist.cpp: Fix a segfault parsing ASX3 malformed files.
775
2008-10-16 Sebastien Pouliot <sebastien@ximian.com>
777
* text.cpp (TextBlock::Layout): Delay allocation of List so that we
778
don't leak when TextBlock::TextProperty is NULL.
780
2008-10-16 Sebastien Pouliot <sebastien@ximian.com>
782
* runtime.cpp (Surface::SetCursor): Unref cursors once they are set
783
on the window. Fix one more leak.
785
2008-10-16 Jb Evain <jbevain@novell.com>
787
* collection.cpp: TriggerCollection, UIElementCollection, InlineCollection:
788
mark managed constructor internal.
790
2008-10-16 Jb Evain <jbevain@novell.com>
792
* collection.cpp (RemoveAtWithError): throw an ArgumentOutOfRangeException
793
instead of an ArgumentException when providing an out of range index.
795
2008-10-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
797
* window-gtk.cpp, window.h: Add file header and fix copy-paste error.
799
2008-10-15 Chris Toshok <toshok@ximian.com>
801
* runtime.cpp (Surface::HandleUIKeyPress): check to see if the key
802
is already down, and if so, don't emit another event. (really?
803
there's a test for this? ugh.). also, let Keyboard know the key
805
(Surface::HandleUIKeyRelease): let Keyboard know the key is up.
807
* eventargs.h, eventargs.cpp (class Keyboard): augment Keyboard
808
quite a bit -- it might soon deserve its own file. It now
809
maintains a static hashtable of keys that are pressed/released
810
inside the moonlight plugin, and has logic to map a gdk keyval to
811
Key, and query if a particular key is pressed.
813
2008-10-15 Larry Ewing <lewing@novell.com>
815
* uielement.cpp: fix the transform ordering.
817
* canvas.cpp, canvas.h: handle the toplevel canvas correctly.
819
2008-10-15 Larry Ewing <lewing@novell.com>
821
* uielement.cpp, uielement.h: remove UpdatePosition and
822
ComputePosition, all transform changes are handled in
823
ComputeTransform now.
825
* shape.cpp, shape.h: update for the new transform api.
827
* dirty.cpp, dirty.h: remove DirtyPostion is it no longer needed.
829
* canvas.cpp: Use UpdateTransform.
831
* point.h: add a (lame) == operator.
833
2008-10-15 Larry Ewing <lewing@novell.com>
835
* geometry.cpp, geometry.h: add shape bounds caching to all
836
geometry classes apply the transform when retrieving the bounds.
837
Make GetBounds the public bounds interface and make the
838
computation interface protected.
840
* shape.cpp, uielement.cpp: call use GetBounds not ComputeBounds.
842
2008-10-14 Larry Ewing <lewing@novell.com>
844
* geometry.cpp, geometry.h: remove unused arguments to
845
ComputeBounds remove caching from PathGeometry.
847
* uielement.cpp, shape.cpp: call with correct arguments.
849
2008-10-14 Larry Ewing <lewing@novell.com>
851
* uielement.cpp, uielement.h: make ComputeTransform virtual and
852
have it return a bool.
854
* shape.cpp, shape.h: override ComputeTransform and optimize the
855
bounds computations. Use a general ComputeShapeBounds for actual
856
drawn bounds compuations for now.
858
* dirty.cpp (Surface::ProcessDownDirtyElements): add a short
859
circuit path to DirtyTransform for elements that can recompute
860
without updating bounds.
862
2008-10-13 Larry Ewing <lewing@novell.com>
864
* geometry.cpp, geometry.h: remove unused arguments from function
867
* uielement.cpp, shape.cpp: update calls.
869
2008-10-15 Jeffrey Stedfast <fejj@novell.com>
873
* text.cpp (TextBlock::TextBlock): Let OnPropertyChanged() know
874
that we are setting the default brush/inlines.
875
(TextBlock::Layout): If no Text value has yet been set, use 0.0 as
878
2008-10-14 Chris Toshok <toshok@ximian.com>
880
* window-gtk.h, window-gtk.cpp (MoonWindowGtk::GetGdkWindow): ref
882
(MoonWindowGtk::InitializeFullScreen): unref the return value of
885
* cbinding.h, cbinding.cpp: regen so we don't have to use void*
886
for the parent parameter to MoonWindowGtk.
888
2008-10-14 Sebastien Pouliot <sebastien@ximian.com>
890
* applier.cpp|h: Add a readonly flag to ensure nothing gets added in
891
the hashtable while we're flushing it on shutdown. Add a few more
892
checks and avoid re-creating the hashtable on flush.
894
2008-10-14 Geoff Norton <gnorton@novell.com>
896
* pipeline-ffmpeg.cpp: FFMpeg changed the API with version #52, no
897
longer requiring the bits_per_pixel.
899
2008-10-14 Stephane Delcroix <sdelcroix@novell.com>
901
* window.h: GetGdkWindow () method
903
* window-gtk.h|.cpp: implement GetGdkWindow, new ctor signature
904
taking the parent window reference. Only go fullscreen on the monitor
905
moonlight is running on.
907
* runtime.cpp: call the new MoonWindowGtk ctor
909
2008-10-14 Fernando Herrera <fherrera@novell.com>
911
* pipeline-ui.cpp: Override codecs download URL with
912
MOONLIGHT_CODEC_URL env variable if present.
914
2008-10-13 Jeffrey Stedfast <fejj@novell.com>
916
* xaml.cpp (XamlLoader::CreateFromFile): Since we use the nread
917
variable expecting it to be the value returned from read(), don't
918
modify it inside the loop, use another variable for that. Before
919
eating leading whitespace, make sure we have data.
921
2008-10-13 Fernando Herrera <fherrera@novell.com>
923
* audio.cpp: Fix AudioSources::GetNext iteration for next playing
924
source logic. Fixes bug #433267
926
2008-10-13 Jeffrey Stedfast <fejj@novell.com>
928
* media.cpp (MediaElement::Play): Don't add a TickCall to start
929
playing if we haven't even opened the media yet. Fixes bug
932
2008-10-13 Michael Dominic K. <mdk@mdk.am>
934
* dependencyproperty.cpp: Fixing a mem leak.
936
2008-10-13 Michael Dominic K. <mdk@mdk.am>
938
* animation.cpp: Reverting the whole attaching-to-prev storage in Begin.
939
This fixes some recent problems in PopFly.
941
2008-10-10 Jeffrey Stedfast <fejj@novell.com>
943
* downloader.cpp (validate_policy): Made static so we don't export
946
2008-10-10 Sebastien Pouliot <sebastien@ximian.com>
948
* dependencyproperty.cpp (detach_target_func): Fix bad function
949
signature for GHFunc.
950
* dependencyobject.cpp (unref_object): Fix bad function signature
953
2008-10-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
955
* pipeline.h, pipeline.cpp: Media: Add a BufferingEnabled flag, don't
956
start buffering until this is set to true (starts out as false).
957
* media.cpp: Only enable buffering on the media after reading the
958
markers, otherwise we may loose markers in the beginning of the
959
media. Fixes test-asf-demuxer-big-markers.html. Also don't add a
960
tick call to notify the MediaElement that a marker has been added,
961
always check in AdvanceFrame.
962
* mplayer.cpp: Add a null check in a printf.
964
2008-10-10 Larry Ewing <lewing@novell.com>
966
* media.cpp (Image::DownloaderComplete): handle the case where the
967
sureface uri and the new uri are the same.
969
2008-10-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
971
* pipeline-logo.cpp: New logo.
973
2008-10-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
975
* media.cpp: MediaElement::Reinitialize: Dispose the media to break
977
* mplayer.cpp: AdvanceFrame: don't decode here anymore, we shouldn't
978
get non-decoded frames anymore. Open: Handle null demuxers,
979
shouldn't happen, but at least we won't crash if it happens.
980
* pipeline.cpp, pipeline.h: Media::~Media: move cleanup to Dispose.
981
Media::Open: unref the decoder after giving it to the stream, the
982
stream now take a ref on the decoder. Media::EnqueueWork:
983
queued_requests might be nothing if we're disposed. IMediaStream:
984
move cleanup to dispose and take a ref on the decoder. Add decoder
985
getter/setters, and update code to use them.
987
2008-10-10 Sebastien Pouliot <sebastien@ximian.com>
989
* applier.cpp: Fix another bad function signatures for GFunc.
991
2008-10-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
993
* audio.cpp, pipeline-ffmpeg.cpp, pipeline.h, mplayer.cpp: Remove
994
FRAME_COPY_DECODED_DATA and always copy decoded data. Fixes video
995
stuttering when using ffmpeg.
997
2008-10-09 Jackson Harper <jackson@ximian.com>
999
* runtime.cpp: The resize event is only emitted when switching
1000
from fullscreen to non fullscreen.
1002
2008-10-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
1004
* pipeline.cpp, pipeline.h: Properly ref/unref MediaMarkers instead of
1007
2008-10-09 Jackson Harper <jackson@ximian.com>
1009
* runtime.cpp: When we change to/from fullscreen there should be a
1012
2008-10-09 Sebastien Pouliot <sebastien@ximian.com>
1014
* media.cpp (Image::CreateSurface): Protect against a NULL
1015
filename (valid value). This will avoid crash like bug #433810
1016
even if, in this case, the problem lies elsewhere (bad downloader
1017
which looks related to #433814).
1019
2008-10-09 Jeffrey Stedfast <fejj@novell.com>
1021
* font.cpp (FontFace::LoadDefaultFace): Pass the families to
1022
LoadDefaultFont() for font name comparison, we need to match the
1023
font names exactly or fall back to the next font.
1025
2008-10-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
1027
* audio.cpp: Add a nullcheck.
1029
2008-10-08 Sebastien Pouliot <sebastien@ximian.com>
1031
* media.cpp (Image::IsSurfaceCached): Don't leak (actually
1034
2008-10-08 Jeffrey Stedfast <fejj@novell.com>
1036
* font.cpp: Add fallback for Liberation fonts.
1038
* pipeline.cpp (Media::Warning): Replacement for both
1039
Media::AddMessage() methods.
1041
2008-10-08 Sebastien Pouliot <sebastien@ximian.com>
1043
* applier.cpp: Fix function signatures for GFunc and GHFunc.
1044
Fix random crash when closing silverlight world #433461
1046
2008-10-08 Larry Ewing <lewing@novell.com>
1047
* window-gtk.cpp (MoonWindowGtk::realized): make sure we remove
1048
any existing render_cb attachments before adding new ones in case
1049
our realize wordering is out of sync.
1051
Fixes the rest of b.n.c #432975
1053
2008-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
1055
* mp3.cpp: Fix boolean->MediaResult logic.
1057
2008-10-08 Jackson Harper <jackson@ximian.com>
1059
* playlist.cpp|h: When we encounter invalid characters in an
1060
attribute try to patch them and reparse the document.
1062
2008-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
1064
* mp3.h, mp3.cpp: Fix mpeg_frame_duration to use the static array of
1065
block sizes instead of hard-coded almost-matching values. Make
1066
mpeg_frame_length return a floating point value, and in ReadHeader
1067
calculate total duration using floating point. Fixes
1068
test-mp3-media-properties.html
1070
2008-10-08 Stephane Delcroix <stephane@delcroix.org>
1072
* runtime.cpp: CAIRO_VERSION_XXX symbols no longer available in cairo
1073
1.8.0, changing the error msg.
1075
2008-10-08 Sebastien Pouliot <sebastien@ximian.com>
1077
* xaml.cpp (XamlElementInstanceNative::SetProperty): Avoid SIGSEGV
1078
on bad XAML input when no (NULL) dependecy property is returned.
1080
2008-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
1082
* pipeline.h, pipeline.cpp: Add a marker field to MediaFrame and make
1083
MediaMarker refcounted. Fix a couple of crashing leakfixes, and
1084
simplify cleanup code a tiny bit.
1086
2008-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
1088
* audio-pulse.h: Remove unused method definition.
1090
2008-10-07 Jeffrey Stedfast <fejj@novell.com>
1092
* animation.cpp (AnimationStorage::AttachToPrevStorage): Delete
1093
the old baseValue before allocating a new one.
1095
* mms-downloader.cpp (MmsDownloader::ProcessHeaderPacket): Need to
1096
delete dx_info when we're done with it. Also get rid of the
1097
unneeded parser pointer since we're just using this->parser
1100
2008-10-07 Sebastien Pouliot <sebastien@ximian.com>
1102
* runtime.cpp (Surface::SetCursor): Don't create the GdkPixmap and
1103
GdkColor unless we need them. Unref the pixmap after the call to
1104
gdk_cursor_new_from_pixmap.
1106
2008-10-06 Jeffrey Stedfast <fejj@novell.com>
1108
* pipeline.h (IMediaStream::dtor): Delete the frame. This prevents
1109
a MediaFrame leak-per-node whenever the queue is cleared.
1111
* pipeline.cpp (ASFMarkerDecoder::DecodeFrame): Free the
1112
frame->bufefr before updating it to point to a new malloc'd
1114
(ASFDemuxer::TryReadFrame): Delete the frame on error.
1115
(IMediaStream::PopFrame): After getting the node's frame, set the
1116
node->frame to NULL.
1118
2008-10-06 Larry Ewing <lewing@novell.com>
1120
* media.cpp, media.h: rework image code to skip using a downloader
1121
when a cached image surface is available. Fix a crash where
1122
multiple loading errors occur for a single image. Rewrite
1123
existing SetSourceAsync ticks when the source changes again before
1124
the initial tick was processed.
1126
The goal here is to greatly reduce the work we do in cases where
1127
existing sources are moved between images. Future work should
1128
consist of moving things to the ImageSource model internally.
1130
2008-10-06 Sebastien Pouliot <sebastien@ximian.com>
1132
* text.cpp (Glyphs::Layout): Handle NULL values coming from
1133
GetGlyphInfo. Avoid crash in DRT #177 (not sure why it did
1134
not come up before today or why it now fails anyway).
1136
2008-10-06 Jeffrey Stedfast <fejj@novell.com>
1138
* brush.cpp (ImageBrush::TargetLoaded): Don't bother with g_atomic
1139
stuff, it's too expensive for what we need.
1140
(ImageBrush::TargetUnloaded): Same.
1142
2008-10-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
1144
* dependencyobject.h, dependencyobject.cpp: Fix SLED10.
1146
2008-10-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
1148
* pipeline.cpp: Reorganize some code.
1150
2008-10-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
1152
* audio.cpp, audio.h: Access the Media directly to enqueue frames,
1153
avoiding the need for a tick call on the main thread. If audio
1154
underflowed and we don't have more data available, set buffer
1155
underflow flag on the media player.
1156
* playlist.cpp, playlist.h: Playlist::Parse: until the source has all
1157
the data available, return MEDIA_NOT_ENOUGH_DATA.
1158
* downloader.cpp, downloader.h: Remove RequestPosition methods, no
1160
* mms-downloader.h, mms-downloader.cpp: Added Set|GetRequestedPts, and
1161
use that value to determine if we should seek or not.
1162
* mplayer.cpp, mplayer.h: Add a BufferUnderflow flag, set when
1163
audio/video needs more data, but the buffer is empty.
1164
* pipeline.cpp, pipeline.h: Media: Change how buffering works: we now
1165
have an in-memory buffer of demuxed frames (one queue for frames
1166
for each stream), and calculate buffer size from that.
1167
ProgressiveSource: open an additional file descriptor for writing,
1168
makes locking unnecessary. Change al io to return failure if there
1169
is not enough data, this allows us to remove all the
1170
blocking/waiting logic. MemoryQueueSource: push seeks to
1171
MmsDownloader, instead of waiting for MmsDownloader to check for
1172
pending seeks. FileSource: don't reinvent the wheel and use stdio
1173
to get buffered io instead of having buffering logic ourselves.
1174
* mp3.h, mp3.cpp: Implemented non-blocking reading to support buffer
1175
underruns correctly.
1176
* media.cpp: MediaElement: Retrieve buffer size from the demuxer
1177
instead of calculating it. Handle MEDIA_NOT_ENOUGH_DATA errors when
1178
trying to open media and retry later on.
1180
2008-10-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
1184
2008-10-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
1186
* dependencyobject.cpp: Use atomic operations with
1187
objects_created|destroyed.
1189
2008-10-02 Chris Toshok <toshok@ximian.com>
1191
* resources.cpp (glib_is_stupid): we need to cast value in order
1194
2008-10-02 Geoff Norton <gnorton@novell.com>
1196
* media.cpp,pipeline-ffmpeg.cpp,yuv-converter.cpp,mplayer.cpp:
1197
Add some headers needed to compile when #undef DEBUG
1199
2008-10-02 Sebastien Pouliot <sebastien@ximian.com>
1201
* xaml.cpp: Fix mixup between delete and g_free
1203
2008-10-02 Sebastien Pouliot <sebastien@ximian.com>
1205
* value.cpp: Fix == for KeyTime (padding too). Add comments and
1206
indent method correctly.
1208
2008-10-02 Jeffrey Stedfast <fejj@novell.com>
1210
* xaml.cpp: Move the definition of XamlElementInfo to the top so
1211
that g++ doesn't complain about deleting an incomplete type inside
1212
the XamlElementInstance dtor. Also gets rid of other g++ compiler
1215
* list.cpp (List::InsertAfter): New convenience function to sort
1218
* font.cpp (FontFace::Load): Don't ref the default face, it is
1219
returned to us with a ref already.
1221
2008-10-02 Jackson Harper <jackson@ximian.com>
1223
* xaml.cpp: Now that Info's aren't shared, Instance's can free
1224
them. Also properties need to free their name.
1226
2008-10-02 Larry Ewing <lewing@novell.com>
1228
* geometry.cpp (Geometry::OnSubPropertyChanged): move
1229
OnSubPropertChanged to Geometry to pick up transform changes until
1230
a better solution is devised. Fixes updated
1231
test-clip-invalid-update.htm.
1233
2008-10-02 Sebastien Pouliot <sebastien@ximian.com>
1235
* value.cpp: Fix == for Duration and RepeatBehavior. We can't
1236
use memcmp to compare them since they include (unassigned)
1237
padding. Both structs overrides their == operator so we use that.
1239
2008-10-02 Sebastien Pouliot <sebastien@ximian.com>
1241
* resources.cpp: Free the values (not only their content) when
1242
the hash table is destroyed. Correctly (delete) free the value
1243
when compiled against glib < 2.12 (e.g. SLED10).
1245
2008-10-02 Sebastien Pouliot <sebastien@ximian.com>
1247
* geometry.cpp: Remove last patch to GeometryGroup::Draw as this
1248
mess clipping. Add similar fill rule setting code in Geometry::Draw
1249
because Shape::Fill is not called for clipping (but the fill rule
1250
still applies). Comment both so I don't mess with them again :)
1252
2008-10-01 Jeffrey Stedfast <fejj@novell.com>
1254
* font.cpp (FontFace::LoadGlyph): We need to force the font size
1255
if we don't own it, since we don't know what the current size is
1257
(FontFace::Kerning): Same.
1258
(FontFace::GetExtents): Here too.
1260
2008-10-01 Jeffrey Stedfast <fejj@novell.com>
1262
Attempt #2 at fixing bug #430766.
1264
* font.cpp (FontFace::LoadFontFace): Don't load non-scalable fonts
1265
- this helps us do better fallback for bug #430766.
1266
(FontFace::LoadDefaultFace): Do manual fallback of fonts. First
1267
try to use the Microsoft Lucida Sans font if available. If not,
1268
fall back to GNOME's Bitstream Vera Sans font. Then fallback to
1269
DejaVu Sans and finally to X.Org's Luxi Sans font (which doesn't
1270
render many of the glyphs in bug #430766, hence why it is last
1271
choice). If the user doesn't have the X.Org fonts, he's SOL.
1273
2008-10-01 Sebastien Pouliot <sebastien@ximian.com>
1275
* value.h[.in],value.cpp: Fix operator == to work for non-DO and
1276
non-string values. This fix the issue of removing stuff from a
1277
ResourceDictionary (while a copy still exists in the underlying
1280
2008-10-01 Jeffrey Stedfast <fejj@novell.com>
1282
Attempt #1 at fixing bug #430766.
1284
* font.cpp (FontFace::LoadDefaultFace): Pass NULL as the families
1285
argument to LoadFontFace() so that we don't fail when matching the
1288
2008-10-01 Jeffrey Stedfast <fejj@novell.com>
1290
* font.cpp (FontFace::OpenFontDirectory): Now a static class
1292
(FontFace::LoadFontFace): New static method which tries to load an
1293
FT_Face given an FcPattern and a list of families.
1294
(FontFace::FontFace): No longer tries to load an FT_Face, instead
1295
we have it passed to us as an argument.
1296
(FontFace::LoadDefaultFace): New static method to load a global
1297
FT_Face representing the default system font.
1298
(FontFace::GetDefault): Instantiates a new FontFace using the
1299
global system default FT_Face.
1300
(FontFace::Load): Now takes only a TextFontDescription (much
1301
cleaner/simpler). If we are loading the default system font or if
1302
loading the requested font fails, simply return a new FontFace
1303
based on the global system default FT_Face.
1304
(TextFont::TextFont): Now takes fewer arguments (cleaner API,
1306
(TextFont::Load): Now only takes a TextFontDescription argument to
1307
make the API simpler/cleaner.
1308
(TextFontDescription::CreatePattern): Now public and takes a
1309
'sized' argument specifying whether or not the created pattern
1310
should include the size field. This is needed because TextFont
1311
caches based on all attributes while FontFace caches on everything
1312
but size. Also, don't include weight, width, or slant if our font
1313
family is the default (Portable User Interface is not allowed to
1314
have any of those attributes).
1315
(TextFontDescription::IsDefault): New method to decide if our
1316
family is the default or not.
1317
(TextFontDescription::GetFamilies): New convenience method to
1318
strsplit the family string into an array.
1319
(TextFontDescription::SetFamily): If the value "Portable User
1320
Interface" is set, set our family to NULL instead.
1322
2008-10-01 Sebastien Pouliot <sebastien@ximian.com>
1324
* geometry.cpp (GeometryGroup::Draw): Make sure the original
1325
fill rule is still in effect at the end of drawing the group.
1327
2008-10-01 Chris Toshok <toshok@ximian.com>
1329
* geometry.cpp (GeometryGroup::Draw): reinstate the call to
1330
cairo_set_fill_rule removed in r105643. This fixes
1331
http://mapul.com/Tutorials.html.
1333
2008-10-01 Sebastien Pouliot <sebastien@ximian.com>
1335
* shape.cpp: (Shape::InsideObject) Move cairo_save after the
1336
extents.PointInside check since there was no cairo_restore
1337
if false was returned. Looks likely that false was not much
1340
2008-09-30 Chris Toshok <toshok@ximian.com>
1342
* stylus.cpp (Stroke::OnCollectionItemChanged): we need to
1343
recompute our bounds when an item (can only be a stylus point)
1344
changes its properties. Fixes stroke bounds in the face of
1345
dragging text in inkjournal.
1347
2008-10-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
1349
* audio-pulse.cpp, audio-pulse.h: Don't use callbacks with
1350
pa_stream_[cork|trigger|flush|drain] since the audio source might
1351
have gotten deleted by the time the callback is called.
1353
2008-09-30 Chris Toshok <toshok@ximian.com>
1355
* dirty.cpp (Surface::ProcessDownDirtyElements): use
1356
AddDirtyElement instead of |= to set flags, since it might require
1357
dirty list manipulation.
1359
2008-09-30 Sebastien Pouliot <sebastien@ximian.com>
1361
* xaml.cpp: Fix (again) the leaks in dependency_object_add_child,
1362
this time with new/delete to make it work with non-DO.
1364
2008-09-30 Sebastien Pouliot <sebastien@ximian.com>
1366
* xaml.cpp: Better fix for the leaks in dependency_object_add_child.
1368
2008-09-30 Sebastien Pouliot <sebastien@ximian.com>
1370
* xaml.cpp: Fix leak in dependency_object_add_child when AddWithError
1373
2008-09-30 Stephane Delcroix <sdelcroix@novell.com>
1375
* downloader.cpp: fix the leak in validate_policy.
1377
2008-09-30 Sebastien Pouliot <sebastien@ximian.com>
1379
* debug.cpp: Make sure allocated 'binary' is freed in every case
1380
inside addr2line_offset.
1382
2008-09-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
1384
* audio-alsa.cpp: Close the pcm in the dtor, not in Close. Refcounting
1385
ensures that the dtor won't be called while playing or that we'll
1386
be playing destructed sources, but Close might be called at any
1389
2008-09-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
1391
* pipeline.cpp: NullDecoder::DecodeAudioFrame: protected against int
1392
underflows and /0 errors.
1394
2008-09-29 Chris Toshok <toshok@ximian.com>
1396
* dependencyobject.cpp (DependencyObject::RegisterAllNamesRootedAt):
1397
if during the course of traversing the tree, we come across a temp
1398
namescope, merge that up instead of recursing down even further.
1399
(DependencyObject::SetLogicalParent): only clear the namescope if
1400
we're merging ourselves into a parent namescope.
1402
* canvas.cpp (Canvas::Canvas): remove the temp namescope creation
1403
here. the parser does it for us if we're parsing an element, and
1404
programmatically created objects don't seem to have them.
1406
2008-09-29 Jeffrey Stedfast <fejj@novell.com>
1408
* media.cpp (MediaBase::GetDownloaderPolicy): New virtual method
1409
to get the download policy based on the uri. By default, returns
1411
(MediaElement::GetDownloaderPolicy): Return StreamingPolicy if
1413
(MediaBase::SetAllowDownloads): Use GetDownloaderPolicy() instead
1414
of hardcoding mms:// check.
1415
(MediaBase::OnPropertyChanged): Same.
1417
* brush.cpp (ImageBrush::SetSurface): Remove previous hack.
1418
(ImageBrush::TargetLoaded): Call SetAllowDOwnloads(true) on our
1419
image once we have at least 1 target which is loaded in the visual
1421
(ImageBrush::TargetUnloaded): Disallow image downloads once our
1422
loaded_count falls back to 0.
1423
(ImageBrush::AddTarget): Listen to the target's Loaded/Unloaded
1425
(ImageBrush::RemoveTarget): Remove our listeners for the Loaded
1426
and Unloaded events placed on the target object.
1428
* uielement.cpp (UIElement::ClearLoaded): Emit an UnloadedEvent.
1430
* dependencyobject.cpp (DependencyObject::SetValueWithError): Call
1431
AddTarget()/RemoveTarget() on DO property values as they are
1433
(DependencyObject::AddTarget): New virtual method which gets
1434
called on DependencyObject property values when they are set on a
1436
(DependencyObject::RemoveTarget): Same but when unset.
1438
* media.cpp (MediaBase::SetAllowDownloads): New method to handle a
1439
state-change of allowing new downloads vs not.
1440
(MediaBase::OnLoaded): Call SetAllowDownloads(true).
1442
2008-09-29 Jeffrey Stedfast <fejj@novell.com>
1444
* brush.cpp (ImageBrush::SetSurface): Update the image's Loaded
1445
state. Fixes some regressions introduced by moving the async
1446
downloading logic from MediaBase::SetSurface() into
1447
ImageBase::OnLoaded().
1449
2008-09-29 Sebastien Pouliot <sebastien@ximian.com>
1451
* pipeline-ffmpeg.cpp: Free extradata, if allocated, on failure.
1453
2008-09-28 Chris Toshok <toshok@ximian.com>
1455
* xaml.cpp (XNamespace::SetAttribute): don't both RegisterName and
1456
SetValue (NameProperty) - just set the NameProperty, it'll update
1457
the proper namescope automatically.
1458
(get_parent): remove.
1459
(set_parent): remove. we no longer need to maintain a temporary
1460
chain while parsing. there's also no need for set_parent(NULL)
1462
(XamlElementInstance::TrySetContentProperty): if there was an
1463
error in DependencyObject::SetValueWithError or
1464
Collection::AddWithError, raise a parser error.
1465
(dependency_object_add_child): call
1466
Collection/ResourceDictionary::AddWithError, and raise a
1467
parser_error if it fails. also, remove set_parent (NULL) calls.
1469
* dependencyobject.h,
1470
dependencyobject.cpp (DependencyObject::MergeNameScopes): remove.
1471
(DependencyObject::RegisterAllNamesRootedAt): this now takes a
1472
MoonError argument so we can signal when there's been a conflict.
1473
(DependencyObject::SetLogicalParent): this also now takes a
1474
MoonError argument, and this is where ALL the namescope merging
1475
code lives. It's been removed from everywhere else. Also, this
1476
change means we can no longer be setting/clearing the parent in
1477
xaml.cpp, as it destroys temp namescopes.
1479
* namescope.h, namescope.cpp (NameScope::MergeTemporaryScope): add
1480
a MoonError parameter, so we can communicate back an
1481
error (conflicting names) properly.
1482
(NameScope::Dump): new method.
1484
* collection.h, collection.cpp (Collection::AddWithError): new
1485
method, generate a binding for this instead of Add. This allows
1486
us to check for name conflicts when a DOCollection is updated.
1487
(Collection::InsertWithError): same. Also, this method has
1488
something quirky about it - it calls AddedToCollection *before*
1489
the collection is modified. suck, but the logic in that code
1490
needs to be run before the change occurs.
1491
(Collection::AddedToCollection): add a MoonError arg so we can
1492
properly pass errors back up.
1493
(DependencyObjectCollection::RegisterAllNamesRootedAt): add the
1495
(DependencyObjectCollection::AddedToCollection,
1496
DependencyObjectCollection::RemovedFromCollection): remove
1497
namescope handling from here.
1500
animation.cpp (KeyFrameCollection::AddedToCollection): track api
1501
change to Collection::AddedToCollection.
1503
* resources.h, resources.cpp: track changes to AddedToCollection,
1504
RegisterAllNamesRootedAt, and AddWithError. Also, remove
1505
namescope handling code from here.
1507
* cbinding.cpp, cbinding.h, type-generated.cpp: regen.
1509
2008-09-28 Chris Toshok <toshok@ximian.com>
1511
* geometry.cpp (Geometry::OnPropertyChanged): this method was
1512
never chaining up to DependencObject::OnPropertyChanged, which it
1513
must do for properties whose ownerType != Geometry.
1515
2008-09-28 Chris Toshok <toshok@ximian.com>
1517
* media.cpp (TimelineMarkerCollection::Add): no need to check the
1518
element type of the value, by the time it makes it here it should
1519
already be the right type.
1521
2008-09-26 Jeffrey Stedfast <fejj@novell.com>
1523
* media.cpp (MediaBase::OnLoaded): Logic moved here from
1525
(MediaBase::OnPropertyChanged): Check IsLoaded() to see if we
1526
should start the downloader yet.
1528
* xaml.cpp: Revert the hydrating check for SetSurface() from the
1529
previous commit. This is causing a bunch of failures :(
1531
2008-09-26 Jeffrey Stedfast <fejj@novell.com>
1533
* xaml.cpp (XamlLoader::HydrateFromString): Properly initialize
1534
parser_info->hydrating and parser_info->hydrate_expecting based on
1535
whether or not we are really doing a HydrateFromString() vs
1537
(create_element_info_from_imported_managed_type): Only
1538
SetSurface() if we are hydrating.
1539
(XamlElementInstanceNative::CreateItem): Same.
1540
(XamlElementInfoManaged::CreateElementInstance): Here too.
1541
(XamlElementInfoManaged::CreateWrappedElementInstance): And here.
1542
(XamlElementInfoManaged::CreatePropertyElementInstance): And here...
1543
(XamlElementInfoImportedManaged::CreateElementInstance): Same.
1544
(XamlElementInfoImportedManaged::CreateWrappedElementInstance): And here.
1545
(XamlElementInfoImportedManaged::CreatePropertyElementInstance): Here too.
1547
2008-09-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
1549
* dependencyobject.cpp, dependencyobject.h: Make objects_created and
1550
objects_destroyed thread-safe. Added MOONLIGHT_OBJECT_TRACK_TYPE to
1551
track a specific type, might be useful when the id varies from run
1552
to run. Make Dispose public.
1553
* media.cpp: Reinitialize: Dispose the downloaded_file if we're being
1555
* pipeline.cpp, pipeline.h: Implement MemoryQueueSource::Dispose, and
1556
cleanup properly there instead of in the dtor. This breaks a
1557
circular reference between ASFPacket/ASFDemuxer/MemoryQueueSource.
1559
2008-09-26 Stephane Delcroix <sdelcroix@novell.com>
1561
* downloader.cpp: use StreamingPolicy for streaming
1563
2008-09-25 Jeffrey Stedfast <fejj@novell.com>
1565
* runtime.cpp (Surface::ShowFullScreenMessage): Don't use
1566
g_str_has_prefix() on NULL strings.
1568
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1570
* pipeline.cpp: RegisterMSCodecs: Don't duplicate that much code, and
1571
only print messages to stdout if MOONLIGHT_OVERRIDES=codecs=debug.
1573
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1575
* downloader.cpp: validate_policy: Fix boolean logic according to
1576
comment, fixes crash.
1578
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1580
* media.cpp: Plug one more leak.
1582
2008-09-25 Stephane Delcroix <sdelcroix@novell.com>
1584
* downloader.cpp: neforce security policies on Open ()
1586
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1588
* pipeline.cpp, pipeline.h: Added Media::IsMSCodecsInstalled, and look
1589
for the mp3 codecs in libmscodecs.so, libmscodecs-mp3.so doesn't
1592
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1594
* pipeline-ui.cpp: AdaptToParentWindow: free the toplevels list.
1596
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1598
* downloader.cpp: Fix a potential leak.
1600
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1602
* dependencyobject.cpp: DependencyObject::RemoveListener: We need to
1603
delete the listener link, not only remove it. Plugs a leak.
1605
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1607
* audio-pulse.h, clock.h, layout.h, pipeline.h, template.h,
1608
yuv-converter.h: Sprinkle virtual on some destructors.
1610
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1612
* internal-downloader.h, file-downloader.h, mms-downloader.h: Fix
1615
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1617
* audio-pulse.cpp: Another leak plugged.
1619
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1621
* debug.cpp: Fix stack traces.
1623
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1625
* audio-pulse.cpp: Add a missing unref.
1627
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1629
* pipeline-ui.cpp: Store libmscodecs.so in ~/.mozilla/plugins.
1631
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1633
* pipeline-ui.cpp: Hush.
1635
2008-09-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
1637
* pipeline.cpp, pipeline.h: Added an abi_version to codec registration
1640
2008-09-24 Aaron Bockover <abockover@novell.com>
1643
* pipeline-ui.h: Redesigned the dialog to conform to the GNOME HIG
1644
in regards to header messages, detail messages, spacing, padding, and
1645
button layout; use a GtkDialog instead of a GtkWindow, and take all
1646
input through the dialog's response signal; require the user to explicitly
1647
tell us that they never want to see the installer again instead of
1648
assuming on cancel; fix crash when cancelling while downloading
1650
2008-09-24 Jeffrey Stedfast <fejj@novell.com>
1652
* dependencyproperty.cpp (resolve_property_path): Fixicated.
1654
2008-09-24 Sebastien Pouliot <sebastien@ximian.com>
1656
* pipeline.cpp: Fix a valgrind complaint when a NULL parameter is
1657
given to g_file_test
1659
2008-09-24 Jeffrey Stedfast <fejj@novell.com>
1661
* dependencyproperty.cpp (resolve_property_path): Cleaned up the
1662
code, robustified, and fixed bug #429396.
1664
2008-09-24 Sebastien Pouliot <sebastien@ximian.com>
1666
* dependencyproperty.cpp: Fix SIGSEGV when parsing something that
1670
2008-09-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
1672
* pipeline-ui.cpp, pipeline-ui.h: UI to download and install codecs.
1673
* pipeline-logo.cpp, pipeline-logo.inc: Renamed pipeline-logo.inc to
1674
pipeline-logo.cpp and made it an extern variable to avoid
1675
duplicating the entire image in the binary for every time we want
1677
* pipeline.cpp, pipeline.h: RegisterMSCodecs: Read the path to ms
1678
codecs from our configuration, and always register ms codecs first
1679
in the list. NullDecoder: fix a buffer overrun and update according
1680
to pipeline-logo changes.
1681
* moonlightconfiguration.cpp, moonlightconfiguration.h: Added: a class
1682
to store our configuration.
1683
* media.cpp: MediaElement::MediaOpened: if any of the streams is
1684
handled by a nulldecoder, it means we don't have ms codecs
1685
installed. If so, show the codec downloader UI.
1686
* Makefile.am, src.mdp: Updated.
1688
2008-09-23 Chris Toshok <toshok@ximian.com>
1690
* dependencyobject.cpp (DependencyObject::MergeTemporaryNameScopes):
1691
back out (#if false) this change for now.
1693
2008-09-23 Stephane Delcroix <sdelcroix@novell.com>
1695
* runtime.h|cpp: Surface::GetSourceLocation()
1697
2008-09-23 Sebastien Pouliot <sebastien@ximian.com>
1699
* uielement.cpp: Delete the temporary region before returning on an
1700
invisible element (common in defiwind).
1702
2008-09-22 Chris Toshok <toshok@ximian.com>
1704
* dependencyobject.cpp (DependencyObject::MergeTemporaryNameScopes):
1705
another case we hadn't addressed - if the object we're merging
1706
*from* doesn't have a namescope, we iterate over the entire tree,
1707
registering names into our (possibly temporary, if it didn't exist
1708
before) namescope. Fixes firstfloorsoftware.com (bug #425268).
1710
* xaml.cpp (XamlElementInstanceNative::CreateItem): fix memory
1713
2008-09-22 Jeffrey Stedfast <fejj@novell.com>
1715
* dependencyobject.cpp (merge_namescope): Return the parent_ns so
1716
that our caller doesn't have to call FindNameScope() in case it
1718
(DependencyObject::MergeTemporaryNameScopes): Adjust for above API
1721
2008-09-22 Larry Ewing <lewing@novell.com>
1723
* geometry.cpp (Geometry::Draw): fix the transform brokeness that
1724
crept in. Fixes test-geometry-transform.xaml
1726
2008-09-22 Michael Dominic K. <mdk@mdk.am>
1730
* clock.h: 0-time animations are valid (as in: passing the timeline
1731
validation test) but do nothing. Fixes the clock11 test.
1733
2008-09-22 Michael Dominic K. <mdk@mdk.am>
1736
* animation.h: Attach storage only once. Fixes a crash in clock21.html.
1738
2008-09-19 Jeffrey Stedfast <fejj@novell.com>
1742
* dependencyobject.cpp (DependencyObject::MergeTemporaryNameScopes):
1743
Use FindNameScope() to get the scope to merge into, and only call
1744
this once - don't re-get it ever loop.
1746
2008-09-19 Jeffrey Stedfast <fejj@novell.com>
1748
* dependencyobject.cpp (EventObject::AddXamlHandler): New method
1749
to add a handler from XAML so that we can force the listener token
1750
to be 0, like Silverlight does.
1752
2008-09-19 Michael Dominic K. <mdk@mdk.am>
1755
* animation.h: Attach the storage to the prev storage on the
1756
partuclar AnimationClock/Storage Begin, not when the parent
1757
storyboard begins. That fixes: #412074 .
1759
2008-09-19 Stephane Delcroix <sdelcroix@novell.com>
1761
* src/downloader.cpp:
1762
* src/downloader.h: DownloadAccessPolicy enum, used as dl.Open
1763
argument. Drop downloder_open method.
1766
* src/deepzoomimagetilesource.cpp:
1767
* src/text.cpp: use the new Open with the corresponding policy.
1769
2008-09-19 Sebastien Pouliot <sebastien@ximian.com>
1771
* media.cpp: Reduce the pixbuffer leaks on popfly.com. The biggest
1772
offenders are gone now but it's still leaking in a few cases.
1774
2008-09-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
1776
* pipeline.cpp: MediaFrame::~MediaFrame: Free the buffer before calling
1777
any custom Cleanup methods (allowing the Cleanup method to free
1778
buffer if g_free isn't the way to do it).
1780
2008-09-18 Jeffrey Stedfast <fejj@novell.com>
1784
* dependencyobject.cpp (class EventLists): Init current_token to
1785
1. Popfly uses a token of 0 to mean no-listener (sorta like gtk
1786
apps use 0 to mean that a g_signal is not connected).
1788
2008-09-18 Geoff Norton <gnorton@novell.com>
1790
* media.cpp: Stop leaking pixbuf loaders.
1792
2008-09-18 Sebastien Pouliot <sebastien@ximian.com>
1794
* mp3.cpp: Need to g_strdup the "mp3" string or we could crash when
1795
g_free-ing it later.
1797
2008-09-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
1799
* pipeline.cpp: Check for register_mswmv in libmscodecs.so, and honor
1800
RUNTIME_INIT_CODECS_DEBUG.
1801
* runtime.h, runtime.cpp: Add a runtime init flag to print codec debug
1804
2008-09-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
1807
* pipeline.cpp, pipeline.h: Add a generic null decoder, shows a
1808
moonlight logo for video and plays silence for audio.
1809
* mp3.cpp, mp3.h: Remove NullMp3Decoder, no longer needed.
1810
* mplayer.cpp: RenderFrame: take stride into account when blitting rgb
1812
* pipeline-logo.inc: Added.
1814
2008-09-17 Larry Ewing <lewing@novell.com>
1819
* frameworkelement.cpp: start filling in InvalidateArrange and
1820
InvalidateMeasure calls.
1825
* canvas.cpp (Canvas::OnCollectionItemChanged): move the ZIndex
1826
change handling here from panel since it is a Canvas property.
1828
2008-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
1830
* pipeline.h: Remove some dead code.
1832
2008-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
1834
* runtime.h, runtime.cpp: Instead of having a flag to enable ms codecs,
1835
add flags to disable both ffmpeg and ms codecs and include them by
1837
* pipeline.cpp: register_mscodecs: look for libmscodecsmp3.so too
1838
(until it gets integrated in libmscodecs.so), and register the mp3
1839
codec. Media::Initialize: Update according to runtime init flag
1840
changes, and always register null encoders.
1842
2008-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
1844
* pipeline.cpp, runtime.cpp, runtime.h: Add a runtime override to not
1845
delete downloaded media files.
1847
2008-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
1849
* dependencyobject.cpp: Add TODO.
1851
2008-09-17 Jackson Harper <jackson@ximian.com>
1853
* xaml.cpp: Don't try setting the content prop in managed if there
1854
is no cdata content (we're just dealing with spaces).
1856
2008-09-17 Larry Ewing <lewing@novell.com>
1858
* grid.cpp (Grid::MeasureOverride): fix the span accumulators to
1859
use the right index value.
1861
2008-09-17 Sebastien Pouliot <sebastien@ximian.com>
1863
* frameworkelement.cpp: Fix moon-unit SIGSEGV when unreferencing
1864
SizeChangedEventArgs.
1866
2008-09-17 Michael Dominic K. <mdk@mdk.am>
1869
* clock.h: Separate raising events from raising completed events.
1870
In certain clock hierarchies this would cause us to emit completed event
1871
before raising animation setter events.
1873
* applier.cpp: Enabling the applier again.
1874
* applier.h: Animation resets don't have INSTANT precedence. The just
1875
have higher precedence than normal animation setters.
1877
2008-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
1879
* audio-pulse.cpp: Remove stray characters.
1881
2008-09-16 Chris Toshok <toshok@ximian.com>
1883
* dirty.h, dirty.cpp: add DirtyMeasure/DirtyArrange.
1885
* frameworkelement.h, frameworkelement.cpp
1886
(FrameworkElement::UpdateLayout): override
1887
UIElement::UpdateLayout, and if that base class method returns
1888
true, emit LayoutUpdatedEvent.
1890
* uielement.h, uielement.cpp (UIElement::InvalidateMeasure): add
1892
(UIElement::InvalidateArrange): add DirtyArrange.
1893
(UIElement::DoMeasure): this should drive the measure process -
1894
needs filling in, though.
1895
(UIElement::DoArrange): this should drive the arrange
1897
(UIElement::UpdateLayout): change return type to bool. call
1898
DoMeasure and DoArrange synchronously, and return true if we
1901
* runtime.cpp (Surface::Attach): call InvalidateMeasure on the new
1904
* cbinding.h, cbinding.cpp: regen.
1906
2008-09-16 Larry Ewing <lewing@novell.com>
1908
* clock.cpp: make AddTimeout take a priority. Make the render
1909
timeout slightly lower than default so that we process gdk events
1912
* media.cpp: raise the priority of the media timeout so that it
1913
doesn't drop below default or the render tick.
1915
2008-09-16 Chris Toshok <toshok@ximian.com>
1917
* dirty.h, dirty.cpp: add a priority queue-like setup for the
1918
dirty lists, where priority == level in the visual hierarchy.
1919
Processing the down dirty list proceeds from lower "priority" to
1920
higher, and the up dirty list proceeds from higher to lower.
1921
* runtime.h, runtime.cpp: use the new dirty lists.
1923
* uielement.h, uielement.cpp: add a visual_level field, which is
1924
updated when the element is added to the
1925
hierarchy (this->visual_level = parent->visual_level + 1).
1927
2008-09-16 Jackson Harper <jackson@ximian.com>
1929
* xaml.cpp: keys should be a property of the instance.
1931
2008-09-16 Fernando Herrera <fherrera@novell.com>
1933
* pipeline.cpp: Register MS codecs if MOONLIGHT_OVERRIDES
1934
has codecs=microsoft.
1935
* runtime.h: Do not default to RUNTIME_INIT_MICROSOFT_CODECS
1936
in RUNTIME_INIT_BROWSER.
1938
2008-09-16 Jackson Harper <jackson@ximian.com>
1940
* xaml.cpp: Move cdata handling code into the content property
1941
setters, allow managed content property setters to set values from
1944
2008-09-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
1946
* audio-pulse.cpp: dlsym another method previously forgotten.
1948
2008-09-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
1950
* multiscaleimage.h, textbox.h: Use quotes to include our headers.
1952
2008-09-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
1954
* audio-alsa.cpp: Use dlopen/dlsym to access all alsa methods, and
1955
don't link with alsa anymore
1957
2008-09-16 Jb Evain <jbevain@novell.com>
1959
* template.h (TemplateBinding): decorate with a SLVersion=2.
1961
2008-09-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
1963
* audio-pulse.cpp: Use dlopen/dlsym to access all pa methods, and don't
1964
link with pulseaudio anymore. Hopefully fixes #425560.
1966
2008-09-16 Fernando Herrera <fherrera@novell.com>
1968
* asf/asf-structures.h:
1972
* pipeline.h: Don't use relative paths in #includes.
1973
* Makefile.am: Add -Iasf
1975
2008-09-15 Michael Dominic K. <mdk@mdk.am>
1977
* src/applier.cpp: Disabling the applier for now, it seems there are still
1978
some tiny 'issues' with it.
1980
2008-09-15 Chris Toshok <toshok@ximian.com>
1982
* dependencyobject.h, dependencyobject.cpp: add real
1983
PropertyChange callbacks (so we can implement listeners without
1984
the listener being a dependencyobject - which is nice for
1985
TemplateBindings, which don't need all that overhead.)
1987
* template.h, template.cpp: switch over to using this new listener
1990
2008-09-15 Chris Toshok <toshok@ximian.com>
1992
* xaml.cpp (dependency_object_set_attributes): add the
1993
TemplateBinding to the item, not the containing template.
1995
2008-09-15 Larry Ewing <lewing@novell.com>
1997
* applier.h: really disable the applier to make changes instant,
1998
fixes page turn and the test regressions.
2000
* applier.cpp: ref and unref the object to avoid crashes on
2003
2008-09-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
2005
* src.mdp: Updated with new files.
2007
2008-09-12 Larry Ewing <lewing@novell.com>
2009
* grid.cpp (Grid::Measure): accumulate colspan width and pass
2010
pixel size restrictions on to the children.
2012
2008-09-11 Michael Dominic K. <mdk@mdk.am>
2016
* applier.h: Adding some defines for applier precedences + a way
2017
to instant apply with precedence == 0.
2019
2008-09-10 Michael Dominic K. <mdk@mdk.am>
2021
* clock.cpp: Properly emit the Completed event after the properties have
2024
2008-09-09 Michael Dominic K. <mdk@mdk.am>
2027
* applier.cpp: Removing debug messages, adding proper free code.
2029
2008-09-08 Michael Dominic K. <mdk@mdk.am>
2033
* applier.cpp: Do not set the values, instead move them to applier.
2035
2008-09-08 Michael Dominic K. <mdk@mdk.am>
2041
* runtime.h: Moving the Applier instance to TimeManager.
2043
2008-09-08 Michael Dominic K. <mdk@mdk.am>
2046
* runtime.h: Adding Applier to Surface.
2048
2008-09-08 Michael Dominic K. <mdk@mdk.am>
2051
* applier.h: Adding a basic Flush method, totally bad for now.
2053
2008-09-08 Michael Dominic K. <mdk@mdk.am>
2056
* applier.h: Adding basic Apply function that applies all the changes
2059
2008-09-08 Michael Dominic K. <mdk@mdk.am>
2062
* applier.h: Adding basic method to add property to apply on object.
2064
2008-09-08 Michael Dominic K. <mdk@mdk.am>
2068
* applier.h: Introducing the applier helper class. Will be used
2069
to apply property changes in order.
2071
2008-09-11 Jackson Harper <jackson@ximian.com>
2073
* xaml.cpp: Move some of the content property setting logic into
2074
the XamlElementInstance's.
2076
2008-09-11 Stephane Delcroix <sdelcroix@novell.com>
2078
* multiscaleimage.cpp: draw a pattern that should look like
2079
a MSI (currently still wrong)
2081
2008-09-10 Jeffrey Stedfast <fejj@novell.com>
2083
* text.h (class Run): Apparently Run's TextProperty is internal in
2086
2008-09-10 Larry Ewing <lewing@novell.com>
2089
* frameworkelement.cpp:
2090
* shape.cpp, shape.h:
2091
* canvas.cpp: update to pass the new more extensive tests.
2093
2008-09-10 Larry Ewing <lewing@novell.com>
2095
* size.h: Tweak to match updated tests.
2097
2008-09-09 Chris Toshok <toshok@ximian.com>
2099
* style.h (class Setter): make ValueProperty's PropertyType
2100
'object' instead of 'Managed'.
2102
* template.cpp (FrameworkTemplate::AddXamlBinding): make this a
2103
little more bulletproof.
2104
(ControlTemplate::DuplicateObject): XamlTemplateBinding can return
2105
NULL, don't create a TemplateBindingNode (and add it to the list)
2108
* type.h.in (class Type): remove OBJECT - it gets autogenerated
2111
* xaml.cpp (start_element): we need to set inst->parent before
2112
setting the attributes, as the attributes might include a
2113
StaticResource (or TemplateBinding) that requires us to walk back
2115
(XamlElementInfoNative::CreateElementInstance): create a
2116
XamlElementInstanceTemplate if the type is a subclass of
2118
(dependency_object_set_attributes): return out of this after
2119
adding the templatebinding (so we don't end up in the managed xaml
2120
loader code trying to set properties to "{TemplateBinding ...}"
2121
Also, if the property type is OBJECT, call into the loader (like
2122
we do with MANAGED), and fix the logic check on
2123
p->loader->SetAttribute in that case.
2125
* type.h, type-generated.cpp: regen.
2127
2008-09-09 Sebastien Pouliot <sebastien@ximian.com>
2129
* xaml.cpp: Don't unref NULL collections. Fix regression when
2130
parsing invalid points (or doubles).
2132
2008-09-08 Chris Toshok <toshok@ximian.com>
2134
* xaml.h, xaml.cpp: stopgap before jackson gets the completely
2135
managed approach to managed object parsing going. a few key
2138
1) xaml_load_managed_object takes an out bool
2139
parameter (is_dependency_object) so the managed code can create
2140
non-DO subclasses, and then the parser will pass that GCHandle
2141
back to managed code in set_attribute.
2143
2) added an add_child callback to the loader so that managed DO
2144
subclasses (and non-subclasses) can deal with collection
2145
properties. theres no ContentProperty handled in managed code,
2148
2008-09-08 Geoff Norton <gnorton@novell.com>
2150
* audio-*.(cpp|h): The Alsa code requires us to join the play
2151
thread before we remove the audio sources otherwise we can
2152
end up in a race accessing closed pcm's when shutting down.
2154
2008-09-08 Geoff Norton <gnorton@novell.com>
2156
* audio.cpp: Ensure that we dont enter an infinite loop before
2157
we actually start playing a source.
2159
2008-09-08 Larry Ewing <lewing@novell.com>
2161
* frameworkelement.cpp: make things 1.0 safe.
2163
2008-09-08 Larry Ewing <lewing@novell.com>
2165
* frameworkelement.cpp (FrameworkElement::Arrange): rework to
2166
match some of the Measure logic
2169
* canvas.cpp, canvas.h:
2170
* control.cpp, control.h: rework arrange implementation to match
2171
the measure logic and the current thinking on arrange.
2173
* uielement.cpp, uielement.h: expose render_size accessor.
2175
2009-09-08 Stephane Delcroix <sdelcroix@novell.com>
2177
* tilesource.h|cpp: keep the source and tiles info on the c++ side
2179
* multiscaleimage.cpp: draw a cairo pattern instead of nothing
2181
2008-09-08 Larry Ewing <lewing@novell.com>
2183
* grid.cpp: Chain collection changed up properly.
2185
2008-09-07 Larry Ewing <lewing@novell.com>
2187
* thickness.h (struct Thickness): add +/-/- to thickness to clean
2188
up some of the other code.
2190
* rect.h: remove ShrinkBy now that we can negate thickness
2192
* size.h: clean things and make GrowBy stop at 0 now that we can
2193
deal with thickness addition outside of things.
2196
* frameworkelement.cpp:
2198
* border.cpp: subtract the padding and border thickness from
2199
available size before passing it to children. Handle some corner
2200
cases in measure with ugly hacks.
2202
2008-09-07 Larry Ewing <lewing@novell.com>
2204
* canvas.cpp, canvas.h:
2205
* control.cpp, control.h:
2208
* panel.cpp, panel.h: refactor MeasureOverride to return the size of the
2211
* frameworkelement.cpp: Make measure pre and post condition the
2212
output rather than doing it in the overrides themselves.
2214
* size.h: make sure min/max will never set a known size to NAN.
2216
2008-09-07 Chris Toshok <toshok@ximian.com>
2218
* type.h.in: add OBJECT kind.
2220
* type.h, cbinding.h, cbinding.cpp, type-generated.cpp: regen.
2222
2008-09-06 Chris Toshok <toshok@ximian.com>
2224
* value.cpp (Value::CreateUnref): don't use 'Foo foo = Foo(args);'
2225
- instead use 'Foo foo(args)'. the former creates 2 objects to
2228
* media.cpp (MediaElement::GetValue): same.
2230
* uielement.cpp: same.
2232
* error.h, error.cpp (class MoonError): make this a class instead
2233
of a struct, add a default ctor, remove Dispose and use ~MoonError
2234
instead, add FillIn methods that take a "code" as well as an
2235
ErrorType to support the parser.
2237
* dependencyobject.h, dependencyobject.cpp: some api cleanup - get
2238
rid of GError and use MonoError exclusively, move the internal
2239
EventLists/EventList types to the .cpp file. Also, remove a few
2240
redundant methods on DependencyObject. The hit at call sites is
2241
negligable (one additional line, perhaps), and the call sites are
2242
few and far between.
2244
* xaml.cpp (dependency_object_set_attributes)
2245
(dependency_object_set_property): call
2246
DependencyObject::SetValueWithError.
2248
* animation.cpp (KeyFrameCollection::GetKeyFrameForTime): look up
2249
the property here. the DO api is gone.
2251
2008-09-06 Chris Toshok <toshok@ximian.com>
2253
* grid.h, grid.cpp: flesh out some of the
2254
OnPropertyChanged/OnSubPropertyChanged/OnCollectionChanged stuff.
2255
Also add in a completely broken and unfinished MeasureOverride
2256
implementation. It passes some of the tests, but not for the
2257
right reasons :) Lastly, move the GridUnitType enum to enums.h
2259
* enums.h: move GridUnitType here, and rename its elements to have
2260
a "GridUnitType" prefix.
2262
* xaml.cpp: track GridUnitType enum references.
2264
* dependencyproperty.g.cpp: fix up attached properties getters to
2265
return default values if there is one.
2267
2008-09-05 Jeffrey Stedfast <fejj@novell.com>
2269
* text.cpp (TextBlock::OnPropertyChanged): TextAlignment doesn't
2270
actually change the lauout, so no need to set the dirty flag when
2272
(TextBlock::Layout): Updated to handle Silverlight 2.0 TextBlock's
2274
(TextBlock::Paint): Same.
2276
2008-09-05 Larry Ewing <lewing@novell.com>
2278
* uielement.cpp: use render bounds rather than bounds to determine
2279
if we have something to draw.
2281
* stylus.h, stylus.cpp: remove the EmptyBackground method.
2283
Fixes the annotation regression in page turn (again).
2285
2008-09-04 Larry Ewing <lewing@novell.com>
2287
* uielement.h (class UIElement): generate managed accessors for
2290
2008-09-04 Chris Toshok <toshok@ximian.com>
2292
* xaml.cpp (dependency_object_add_child): add code here for
2293
FrameworkTemplate, call SetVisualTree with the child.
2295
* control.cpp (Control::Control): init bindings.
2296
(Control::~Control): unref applied_template and delete bindings.
2297
(Control::ApplyTemplate): make sure we return false here from a
2298
few error places (NULL template, a template with a NULL
2301
* template.cpp (FrameworkTemplate::FrameworkTemplate): init
2302
visual_tree to NULL.
2303
(FrameworkTemplate::~FrameworkTemplate): unref visual_tree.
2304
(FrameworkTemplate::SetVisualTree): new method, set visual_tree
2306
(ControlTemplate::DuplicateObject): we need to special case a
2307
couple of classes (collections, templates) in order to traverse
2309
(ControlTemplate::Apply): if the visual_tree is null, don't try to
2312
* template.h (class FrameworkTemplate): add SetVisualTree method
2315
2008-09-04 Larry Ewing <lewing@novell.com>
2317
* uielement.cpp, uielement.h: new methods GetSubtreeObject and
2318
ElementAdded ElementRemoved.
2320
* dependencyobject.h: remove ContentAdded, ContentRemoved.
2322
* collection.cpp, collection.h: rename ContentWalker to
2323
VisualTreeWalker use GetSubtreeObject () rather than content for walking.
2325
* template.cpp, template.h: make Apply return the newly created
2328
* panel.cpp, panel.h:
2329
* control.cpp, control.h: add template_root child that isn't
2330
hooked into the normal tree. Start implementing ApplyTemplate and
2333
* usercontrol.cpp: mess around with Content a little in making it
2334
use the ElementAdded ElementRemoved logic since UserControl
2335
doesn't really support template changes.
2337
* border.h: implement GetSubtreeObject.
2341
* frameworkelement.cpp:
2342
* canvas.cpp, canvas.h: update for new treewalker.
2344
2008-09-04 Jeffrey Stedfast <fejj@novell.com>
2346
* layout.cpp (TextLayout::Render): Added some new arguments which
2347
aren't actually used yet but will be eventually (assuming I
2348
continue with this approach).
2350
* textbox.cpp (TextBox::Paint): Don't bother painting the
2351
background, control does this for us.
2353
2008-09-04 Stephane Delcroix <sdelcroix@novell.com>
2355
* tilesource.h, deepzoomimagetilesource.h|.cpp: move the dzits in its
2356
own file, implement the downloader.
2358
2008-09-03 Chris Toshok <toshok@ximian.com>
2360
* dependencyobject.h: as much as i hate this, add
2361
GetCurrentValues() for the template stuff.
2363
* xaml.cpp: add XamlElementInstanceTemplate and initial support
2364
for TemplateBindings.
2366
* template.h, template.cpp: add a bunch of stuff for templates.
2368
* control.h, control.cpp: add OnLoaded and OnPropertyChanged to
2369
watch for template property changes, and apply the template in
2370
OnLoaded (or if we're already loaded). Also, add accessors for
2373
* dependencyproperty.g.cpp: regen.
2375
2008-09-03 Larry Ewing <lewing@novell.com>
2377
* frameworkelement.cpp (FrameworkElement::MeasureOverride): use
2378
the new Size methods.
2380
* border.cpp, border.h: add some initial (broken) rendering
2381
support, rework measure to use some of the new rect and size
2384
2008-09-03 Jeffrey Stedfast <fejj@novell.com>
2386
* textbox.cpp (TextBox::OnPropertyChanged): When the AcceptsReturn
2387
property chanegs, no need to re-layout or invalidate - according
2388
to my little test program, Silverlight 2 Beta 2 does not change
2389
the rendered text when this property changes - any newlines in the
2390
input text stay there.
2392
2008-09-03 Sebastien Pouliot <sebastien@ximian.com>
2394
* resources.cpp: (ContainsKey) Don't crash if a null key is
2395
supplied. (Remove) same. (Add) same.
2397
2008-09-03 Jeffrey Stedfast <fejj@novell.com>
2399
* enums.cpp (initialize_enums): Map Horizontal and
2400
VerticalScrollBarVisibility properly.
2402
* textbox.cpp (TextBox::CalcActualWidthHeight): Removed, I don't
2403
think we need this for TextBox controls since their
2404
ActualWidth/Height aren't based on the text extents afaik.
2405
(TextBox::Paint): Implemented, sorta.
2407
2008-09-03 Chris Toshok <toshok@ximian.com>
2409
* resources.cpp (ResourceDictionary::Clear): add pre-glib 2.12
2412
2008-09-03 Larry Ewing <lewing@novell.com>
2414
* uielement.cpp, uielement.h:
2415
(UIElement::FrontToBack): Make FrontToBack non-virtual and move
2416
the generic logic here.
2418
* control.cpp, control.h:
2419
* panel.cpp, panel.h: Remove ftb logic, everything is handled in
2422
2008-09-03 Larry Ewing <lewing@novell.com>
2424
* uielement.cpp, uielement.h:
2425
* media.cpp, media.h:
2426
* panel.cpp, panel.h:
2427
* shape.cpp, shape.h: Add GetCoverageBounds virtual method
2428
to let elements compute their own opaque coverage.
2430
2008-09-03 Stephane Delcroix <sdelcroix@novell.com>
2432
* multiscaleimage.h|.cpp: new MultiScaleImage type
2434
2008-09-02 Chris Toshok <toshok@ximian.com>
2436
* resources.h, resources.cpp: constify this.
2437
(ResourceDictionary::Remove): fix g_hash_table_lookup_extended
2440
* xaml.cpp (XamlElementInstance::LookupNamedResource): implement
2442
(dependency_object_set_attributes): add support for StaticResource
2443
lookups. going to refactor all this to add support for
2446
2008-09-02 Jeffrey Stedfast <fejj@novell.com>
2448
* eventargs.h (class CollectionChangedEventArgs): Implemented
2449
accessor methods to get/set the event arg values.
2451
* trigger.cpp (EventTrigger::SetTarget): Fixed to not need to
2452
strdup the event_name string and also updated to use an accessor
2453
method to prevent a possible NULL dereference.
2455
2008-09-02 Michael Dominic K. <mdk@mdk.am>
2458
* animation2.h: Reworking the animation hookup storage fix. Checking for
2459
subclass is plain dumb. Just make an exception for ObjectAnimation.
2461
2008-09-02 Michael Dominic K. <mdk@mdk.am>
2463
* animation.cpp: Fixing a problem in animation hookup
2464
storage -- the type/kind that the animation generates has to be the subclass
2465
of the type/kind the target property is ready to accept.
2467
2008-09-01 Stephane Delcroix <sdelcroix@novell.com>
2469
* multiscalesubimage.h: fixing code generation decorators
2471
2008-09-01 Stephane Delcroix <sdelcroix@novell.com>
2473
* multiscalesubimage.h: new type
2475
2008-08-29 Jeffrey Stedfast <fejj@novell.com>
2477
* layout.cpp (TextLayout::LayoutWrap): Keep track of when 'words'
2478
end so that we can fall back to that position as the line
2479
width (we don't want to include trailing spaces unless
2481
(TextLayout::Render): If the line width is greater than the
2482
allowable width, keep the line left-aligned like Silverlight does.
2484
2008-08-29 Chris Toshok <toshok@ximian.com>
2486
* resources.cpp (ResourceDictionary::Clear): call
2487
Collection::Clear after we've cleared the hash so the hash will be
2488
empty in event handlers.
2490
2008-08-29 Jeffrey Stedfast <fejj@novell.com>
2492
* layout.cpp (TextLayout::Layout): Do a slightly better job of
2493
keeping track of line->width - still not 100% correct.
2495
2008-08-28 Chris Toshok <toshok@ximian.com>
2497
* Makefile.am: add resources.h and resources.cpp
2499
* xaml.cpp (class XamlElementInfo): add x:Key field (since this
2500
can't set a field on the object -- it might be a value type).
2501
(class XamlElementInstanceValueType): remove the empty
2502
implementation of SetAttributes. we'll define it later.
2503
(XNamespace::SetAttribute): handle name/key behavior here. Only
2504
allow one of them to be set on an object. Also, only attempt to
2505
set DependencyObject::NameProperty on an item if it's not a value
2507
(start_element): don't add value type children to their parent in
2508
start_element (as we haven't read the data that will allow us to
2509
create the value typed object.) we need to push this off to the
2510
end_element handler. also return early if there are problems
2512
(end_element_handler): if we're creating a value typed ELEMENT,
2513
add the child to the parent here.
2514
(dependency_object_add_child): add some ResourceDictionary
2515
validation here (if there's no key, etc), and actually call
2516
dict->Add(key, child).
2517
(XamlElementInstanceNative::CreateItem): don't crash if we failed
2518
to create an item. (fixes one of the crashes caused by the
2519
ResourceDictionaryTests - ParseDouble)
2520
(XamlElementInstanceValueType::SetAttributes): call
2521
value_type_set_attributes.
2522
(value_type_set_attributes): stripped down version of
2523
dependency_object_set_attributes, as there are only a handful (is
2524
it really only x:Name and x:Key?) attributes we handle on value
2526
(globally): always call set_parent as opposed to
2527
->SetLogicalParent. we might not be dealing with a DO-subclass.
2529
* xaml.h (class XamlLoader): remove the explicit C api calls
2530
xaml_create_from_file, xaml_create_from_str, and
2531
xaml_hydrate_from_str. Replace them with instance methods on
2532
XamlLoader (CreateFromFile, CreateFromString, and
2533
HydrateFromString, respectively) Add WithError variants of the
2534
these, and have the generator generate bindings for them so we can
2535
throw parse exceptions into managed code.
2537
* error.h (struct MoonError): add XAML_PARSE_EXCEPTION.
2539
* value.h.in (struct Value): add Is overload with
2542
* uielement.h: include resources.h.
2544
* collection.h, collection.cpp: change the api in a few ways to
2545
make ResourceDictionary easier to write - make Count virtual,
2546
remove all the type checks for element type from methods, and add
2547
that check to Collection::CanAdd. ResourceDictionary overrides
2548
that and always returns true. Make Clear return a bool.
2550
* animation.h, animation.cpp: track collection changes.
2552
* stylus.h, stylus.cpp: track Collection::CanAdd change, and move
2553
implementations to the .cpp file.
2555
* resources.h, resources.cpp: split out the code for
2556
ResourceDictionary here. ResourceDictionary is an odd fish. In
2557
1.0 land, it provides the same api as a collection, and things can
2558
be looked up by name via findName. In 2.0 land, items in
2559
ResourceDictionaries have to have either an x:Key or x:Name
2560
attribute. If both are lacking it's an error. If the former is
2561
specified you can only get at it through Resources["name"]. If
2562
the latter is specified, you can use both Resources["name"] or
2565
* dependencyobject.cpp, dependencyobject.h: add Is and GetType
2566
overloads that take additional_types. Make IsValueValid take an
2567
additional_types parameter too. Expose ClearValue to managed code
2568
so we can actually clear the Value* to null without using
2569
the (unsupported from the generator) old method of passing
2570
IntPtr.Zero (Value* now maps to "ref Value" in generated
2571
pinvokes.) Lastly add a SetValueWithError method so we can throw
2572
exceptions in managed code.
2574
* border.h: add defaults for Padding and BorderThickness.
2576
* border.cpp: simplify things a bit since we don't have to worry
2577
about padding/border thickness being NULL.
2579
* depenencyproperty.g.cpp, value.h, type-generated.cpp: regen.
2581
2008-08-28 Jeffrey Stedfast <fejj@novell.com>
2583
* layout.cpp (TextLayout::Render): Respect TextAlignment.
2585
2008-08-26 Chris Toshok <toshok@ximian.com>
2587
* dependencyobject.cpp (DependencyObject::SetLogicalParent): get
2588
rid of this g_assert, it's crashing the moon-unit tests. just
2590
(DependencyObject::SetSurface): don't do anything if the surface
2591
is already set to the same value.
2593
* animation.cpp (Storyboard::SetSurface): don't do anything if
2594
GetSurface() == surface.
2596
* text.cpp (Glyphs::SetSurface): same.
2598
* uielement.cpp (UIElement::SetSurface): same.
2600
* brush.cpp (ImageBrush::SetSurface): same.
2604
* collection.cpp (DependencyObjectCollection::SetSurface): same.
2605
(Collection::RemoveAtWithError): this (against logic) raises
2606
ArgumentException, not ArgumentOutOfRangeException.
2608
2008-08-25 Chris Toshok <toshok@ximian.com>
2610
* rect.h, rect.cpp: rename the w/h fields to width/height, since
2611
every other instance of similar fields are named that.
2613
* value.cpp, border.cpp, window-gtk.cpp, control.cpp, runtime.cpp,
2614
uielement.cpp, geometry.cpp, shape.cpp, frameworkelement.cpp,
2615
brush.cpp: track rect change.
2617
2008-08-25 Chris Toshok <toshok@ximian.com>
2619
* border.h, border.cpp: implement ArrangeOverride, and fix up some
2620
test failures in MeasureOverride.
2622
* frameworkelement.cpp (FrameworkElement::Arrange): it seems we
2623
also set the desired size here (to the final size we get from
2626
2008-08-25 Michael Dominic K. <mdk@mdk.am>
2628
* animation2.h: Advertise self (ObjectAnimationUsingKeyFrames) as providing
2629
proper kinds of values (TYPE::DEPENDENCY_OBJECT).
2631
2008-08-25 Michael Dominic K. <mdk@mdk.am>
2634
* animation2.h: Properly guard 2.0 stuff with if SL_2_0 .
2635
Also adding validation methods.
2637
2008-08-25 Michael Dominic K. <mdk@mdk.am>
2640
* animation2.h: Base work for ObjectAnimationUsingKeyFrames
2643
2008-08-24 Geoff Norton <gnorton@novell.com>
2645
* media.h: Add a new overload to set the SourceProperty from managed land.
2646
* media.cpp: Support async source changing downloader creation for ImageSource
2647
* cbinding.(cpp|h): Regen
2649
2008-08-23 Geoff Norton <gnorton@novell.com>
2651
* mplayer.cpp: Only ref the audio if we have it as well.
2653
2008-08-23 Geoff Norton <gnorton@novell.com>
2655
* bitmapimage.h: Add to the build
2657
2008-08-23 Geoff Norton <gnorton@novell.com>
2659
* cbinding.cpp|h, dependencyproperty.g.cpp, type-generated.cpp,
2660
type.h, value.h: Regenerated
2661
* downloader.cpp|h: Return failure state for downloader->GetResponse
2662
* runtime.h: Generate C bindings for IsMainThread.
2664
2008-08-23 Larry Ewing <lewing@novell.com>
2666
* animation.cpp, animation.h: make ControlPoint1 and ControlPoint2
2667
properties. Move the quadratic generation into
2670
Regenrate and remove the managed wrappers.
2672
2008-08-23 Larry Ewing <lewing@novell.com>
2674
* xaml.cpp (value_from_str): fixed crossed commits with Auto
2677
* collection.cpp (ContentWalker::Step): add some debug logic to
2678
protect against an error case for now.
2680
2008-08-23 Chris Toshok <toshok@ximian.com>
2682
* Makefile.am (libmoon_la_SOURCES): add cornerradius.cpp
2684
* thickness.h, thickness.cpp: rename thickness_from_str to
2685
Thickness::FromStr, and make it return a bool instead of a
2686
pointer, as Point and Rect do.
2688
* cornerradius.h, cornerradius.cpp: add CornerRadius::FromStr.
2690
* xaml.cpp (value_from_str): use the CornerRadius parsing method,
2691
and track the change to the Thickness one.
2693
2008-08-23 Larry Ewing <lewing@novell.com>
2695
* xaml.cpp (value_from_str): quick auto hack so we can test
2698
* runtime.cpp (RenderNode::Render): fix typo in merge
2700
2008-08-23 Larry Ewing <lewing@novell.com>
2702
* uielement.cpp, uielement.h: move basic ftb logic here from
2703
panel. Start storing extents allong with bounds.
2705
* panel.cpp, panel.h: move most ftb logic to uielement.cpp. Use
2708
* stylus.cpp, stylus.h: rework the PostRender hack by chaining up
2709
to uielement in front_to_back mode unconditionaly.
2711
* runtime.cpp, runtime.h: make RenderNode members private and move
2712
the ftb override logic here and out of the PostRender call.
2714
* shape.cpp|h, frameworkelement.cpp|h, media.cpp, text.cpp: store
2717
* control.cpp, control.h: implement basic functionality.
2719
2008-08-22 Chris Toshok <toshok@ximian.com>
2721
* color.h, rect.h, point.h: remove the copy ctors. we don't need
2722
them, and they were causing crashes (!)
2724
2008-08-22 Chris Toshok <toshok@ximian.com>
2726
* frameworkelement.cpp (FrameworkElement::MeasureOverride): always
2727
take the margins into account, even when we're childless.
2729
* panel.h, panel.cpp: add MeasureOverride which always returns
2732
* border.h (class Border): add property accessors for everything.
2734
* border.cpp (Border::MeasureOverride): new implementation.
2736
* value.h.in, value.cpp: add CornerRadius support, and remove the
2737
unnecessary casts (and in the Rect/Point cases, calls to the copy
2740
* value.h, dependencyproperty.g.cpp: regenerate.
2742
2008-08-22 Jeffrey Stedfast <fejj@novell.com>
2744
* textbox.h (class SelectionChangedEventArgs): Added
2745
Text/SelectionChangedEventArgs.
2747
2008-08-22 Chris Toshok <toshok@ximian.com>
2749
* frameworkelement.cpp (FrameworkElement::Measure): instead of
2750
always calling MeasureOverride here, we call the registered manage
2751
callback if there is one. So, we proxy into managed code here,
2752
invoke the virtual method FWE.MeasureOverride, and if there's no
2753
subclass override (or if it chains up for some reason), we end up
2754
in MeasureOverride by virtue of the pinvoke in
2755
FrameworkElement.cs.
2756
(FrameworkElement::MeasureOverride): move all the logic for the
2757
default MeasureOverride implementation here. it's pretty
2758
braindead - takes margins into account, measures our child, makes
2759
sure our size is between Min/Max. That's about it.
2760
(FrameworkElement::Arrange): same drill as ::Measure.
2761
(FrameworkElement::ArrangeOverride): still (incorrectly) return
2764
2008-08-22 Jeffrey Stedfast <fejj@novell.com>
2766
* textbox.h: Made ArrangeOverride() virtual and added
2767
SelectionChangedEvent.
2769
2008-08-22 Chris Toshok <toshok@ximian.com>
2771
* dependencyobject.cpp (DependencyObject::GetContent): guard
2772
against the value being NULL.
2774
2008-08-22 Larry Ewing <lewing@novell.com>
2776
* collection.cpp (ContentWalker::ContentWalker): make
2777
ContentWalker understand directions (Logical, ZForward, ZReverse).
2779
2008-08-22 Larry Ewing <lewing@novell.com>
2781
* runtime.cpp (Surface::PaintToDrawable): restore the x/y offsets
2782
when drawing in the image backend.
2784
2008-08-22 Chris Toshok <toshok@ximian.com>
2786
* frameworkelement.h, frameworkelement.cpp: add in the layout foo
2787
- provide implementations of Measure and Arrange that just call
2788
MeasureOverride and ArrangeOverride. These are virtual and meant
2789
to be overridden either in unmanaged code (by simply overriding
2790
them), or in managed code (RegisterManagedOverrides is called in
2791
FWE.Initialize.) Decorate the class with @CallInitialize so the
2792
managed ctor calls it.
2794
* uielement.h, uielement.cpp: remove the PInvoke/CBinding for the
2795
ctor, and add the layout methods. Measure and Arrange are pure
2798
* cbinding.h, cbinding.cpp, type-generated.cpp: regen.
2800
2008-08-22 Jeffrey Stedfast <fejj@novell.com>
2802
* textbox.cpp (TextBox::Layout): Implemented rough layout.
2804
* layout.cpp (TextRun::TextRun): New ctor for use with TextBox.
2806
2008-08-22 Jeffrey Stedfast <fejj@novell.com>
2808
* textbox.cpp (TextBox::ArrangeOverride): Added.
2810
* frameworkelement.h (class FrameworkElement): Changed default
2811
Width/Height values to NAN.
2813
* textbox.cpp: Initial implementation of TextBox, Layout and
2814
Rendering logic still missing.
2816
2008-08-22 Larry Ewing <lewing@novell.com>
2818
* usercontrol.cpp (UserControl::OnPropertyChanged): make sure the
2821
2008-08-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
2823
* audio-alsa.cpp: Call Underflowed () when we run out of data.
2825
2008-08-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
2827
* mplayer.h, mplayer.cpp: Remove the Eof state and add two separate
2828
VideoEnded and AudioEnded states. Implement handling of VideoEnded
2829
state, and call MediaElement::MediaEnded when both states have been
2831
* media.h, media.cpp: Rename AudioFinished to MediaFinished and handle
2832
all media finished (both video and audio) logic there.
2834
2008-08-21 Larry Ewing <lewing@novell.com>
2836
* uielement.cpp (UIElement::ComputeLocalTransform): clean up
2837
accumulated transform logic. Keep the parent TransformFor out of
2838
the local_transform.
2840
2008-08-21 Larry Ewing <lewing@novell.com>
2842
* uielement.cpp (UIElement::Dispose): add logic removed from
2845
* dirty.cpp (Surface::PropagateDirtyFlagToChildren): use
2848
2008-08-21 Chris Toshok <toshok@ximian.com>
2850
[ fixes annotations not showing up in pageturn due to a NULL
2851
background on the ink presenter ]
2853
* stylus.h, stylus.cpp (class InkPresenter): add an override of
2854
EmptyBackground(). If we have a non-empty stroke bounding
2855
rectangle, return false. Otherwise fall back to
2856
Panel::EmptyBackground.
2858
* panel.h, panel.cpp (class Panel): add EmptyBackground() virtual
2859
method. the panel implementation returns true if GetBackground()
2860
returns NULL. Use this virtual method instead of an explicit
2861
GetBackground() call in Panel::FrontToBack.
2863
2008-08-21 Jeffrey Stedfast <fejj@novell.com>
2865
* enums.cpp: Added ScrollBarVisibility enum
2867
* text.cpp (TextBlock::OnPropertyChanged): Er... we need to
2868
invalidate if the TextWrappingProperty changes too.
2870
2008-08-21 Chris Toshok <toshok@ximian.com>
2872
* border.h, border.cpp, cornerradius.h: add new
2875
* Makefile.am: add border/cornerradius to the file list.
2877
* type.h, value.h, cbinding.cpp, cbinding.h, type-generated.cpp,
2878
dependencyproperty.g.cpp: regen.
2880
2008-08-21 Jeffrey Stedfast <fejj@novell.com>
2882
* textbox.h (class TextBox): The TextBox namespace should be
2883
System.Windows.Controls
2885
* stackpanel.h (class StackPanel): #include panel.h
2887
2008-08-21 Jeffrey Stedfast <fejj@novell.com>
2889
* textbox.h: Initial implementation of the TextBox class (just
2892
* value.h.in (struct Value): Don't use int32_t or uint64_t,
2893
etc. Be consistent and use the glib types.
2895
* layout.cpp (TextLayout::Layout): Fixed
2896
LineStackingStrategy/LineHeight issues. If we are using
2897
BlockLineHeight & the specified LineHeight is not Auto, then we
2898
need to use 0.0 as the descender.
2900
2008-08-21 Chris Toshok <toshok@ximian.com>
2902
* animation.h: make KeyFrame::Get/SetKeyTime pure virtual, and add
2903
accessors to all the subclasses. They're autogenerated from the
2904
respective class's DP's.
2906
* animation2.h: same.
2908
* animation.cpp: remove KeyFrame::Get/SetKeyTime implementations.
2910
* control.h (class Control): add some more GenerateAccessors.
2912
* control.cpp: and remove the manual implementations here.
2914
* dependencyproperty.g.cpp: regen.
2916
2008-08-21 Larry Ewing <lewing@novell.com>
2918
* animation.cpp (KeyFrameCollection::OnSubPropertyChanged): remove
2921
* xaml.cpp (value_from_str): unref the collections we create after
2924
2008-08-21 Jackson Harper <jackson@ximian.com>
2926
* xaml.cpp: Can't rely on the type for getting a managed element's
2927
name, we have to pull it from the element name provided to the
2930
2008-08-21 Chris Toshok <toshok@ximian.com>
2932
* dependencyobject.cpp (DependencyObject::HasProperty): pass
2933
additional_types to IsSubclassOf.
2935
* type.h, type.cpp: add IsSubclassOf variants that take
2936
additional_types. Fixes lookup problems of non-custom DP's on
2939
2008-08-21 Chris Toshok <toshok@ximian.com>
2941
* value.h.in (struct Value): make all single arg primitive value
2942
typed ctors "explicit" so c++ won't do any magic implicit
2943
conversion from value type to Value.
2947
* runtime.cpp (Surface::ShowFullScreenMessage): need to create the
2948
Value()'s explicitly.
2950
* collection.cpp (DoubleCollection::FromStr): same.
2952
2008-08-20 Larry Ewing <lewing@novell.com>
2954
* dependencyobject.cpp (create_temp_namescope): don't leak the
2955
temporary namescope we create. Also don't create it over and over
2958
2008-08-20 Larry Ewing <lewing@novell.com>
2960
* dependencyobject.cpp|h: Add ContenAdded and ContentRemoved
2961
virtual methods so that we can begin to simplify content rules.
2963
* dirty.cpp (Surface::PropagateDirtyFlagToChildren): use
2964
GetContent to handle the children in a generic way.
2966
* uielement.cpp|h: start moving generic uielement content logic
2967
here. Implement OnLoaded and deal with content directly.
2969
* canvas.cpp|h: remove obsolete methods. Move most of zindex
2970
property logic from panel to here.
2972
* panel.cpp|h: move ZIndex logic to canvas and move OnLoaded logic
2975
* control.cpp|h: generate accessors, start remove OnLoaded and
2978
* dependencyproperty.g.cpp: regen.
2980
2008-08-20 Chris Toshok <toshok@ximian.com>
2982
* text.cpp, text.h: generate accessors for Glyph properties.
2984
* geometry.cpp, grid.cpp, media.cpp, panel.cpp, runtime.cpp,
2985
shape.cpp, stylus.cpp, transform.cpp, trigger.cpp, uielement.cpp,
2986
xaml.cpp: make another pass through files switching to C++
2987
accessors from GetValue(FooClass::FooProperty)->AsFoo().
2989
* dependencyproperty.g.cpp: regen.
2991
2008-08-20 Chris Toshok <toshok@ximian.com>
2993
* animation.cpp, animation.h, brush.cpp, brush.h, canvas.cpp,
2994
canvas.h, clock.cpp, clock.h, collection.cpp, collection.h,
2995
frameworkelement.cpp, frameworkelement.h, geometry.cpp,
2996
geometry.h, grid.h, media.cpp, media.h, namescope.cpp,
2997
namescope.h, panel.cpp, panel.h, playlist.cpp, shape.cpp,
2998
shape.h, stackpanel.h, style.h, stylus.cpp, stylus.h, text.cpp,
2999
text.h, transform.cpp, transform.h, trigger.h, uielement.cpp,
3000
uielement.h, xap.cpp, xap.h:
3002
mostly, decorate almost all DependencyProperties with
3003
@GenerateAccessors, add in lots of new ones that weren't present
3004
before (to the .h), and remove all those implementations from
3007
Also, don't use #if SL_2_0 in the headers. we can't depend on
3008
that being defined (especially once we install). Any
3009
2.0-specific behavior needs to be done in the .cpp files. There
3010
are still a few things that are wrong wrt
3011
this (dependencyproperty.g.cpp needs to define the DP's
3012
regardless of version, they can just be NULL in the 1.0 case for
3013
2.0 properties, for instance.)
3015
* cbinding.cpp, cbinding.h, dependencyproperty.g.cpp: regen
3017
2008-08-20 Chris Toshok <toshok@ximian.com>
3019
* uielement.h (ClearLoaded): use &=, not |=, here. fixes tests.
3021
2008-08-20 Jeffrey Stedfast <fejj@novell.com>
3023
* layout.cpp (TextLayout::Layout): Updated to take a
3024
TextLayoutHints argument for providing hints like text alignment
3025
and line stacking/height.
3027
* text.cpp (class TextBlock): Updated a bit for Silverlight
3028
2.0. All of the properties added in 2.0 are now there, although
3029
only 2 of them are respected at the moment (line stacking strategy
3032
* enums.cpp|h: Added LineStackingStrategy and TextAlignment enums.
3034
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3036
* audio.cpp: NULL out the player instance after deleting it.
3038
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3040
* audio-pulse.cpp, audio-pulse.h: Close: Detect if Close has been
3041
called and if so, do nothing.
3043
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3045
* audio.cpp: We only support 1 or 2 channels for the moment.
3047
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3049
* media.cpp, media.h: Fix buffering progress to take into account that
3050
the first pts isn't necessarily 0 (happens for live media).
3052
2008-08-20 Chris Toshok <toshok@ximian.com>
3054
* runtime.cpp (Surface::HandleMouseEvent): make sure not to emit
3055
Focus events on click in a 1.0 context.
3057
2008-08-20 Jackson Harper <jackson@ximian.com>
3059
* xaml.cpp|h: Setting properties requires the xaml namespace so it
3060
can lookup managed types. TODO: It also needs the default
3061
assembly, but I am thinking of moving that to the loader.
3063
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3065
* mplayer.cpp: Properly ref/unref the AudioSource.
3067
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3069
* media.h: Remove G_BEGIN/END_DECLS and two unnecessary #includes.
3071
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3073
* media.cpp, media.h, runtime.cpp: Remove media_init, just make
3074
runtime_init call Media::Initialize directly.
3076
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3078
* media.h, media.cpp: Remove media_element_advance_frame from header,
3079
no need to make it public.
3081
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3083
* mplayer.cpp: AdvanceFrame: only return true if we actually processed
3084
any frames. SeekCallback: clear the queue of audio frames as well.
3085
* media.h, media.cpp: Removed SetPreviousPosition, no longer needed.
3086
Don't change previous_position while we're seeking, and don't make
3088
* audio.cpp, audio.h: Added AudioSource::ClearFrames.
3090
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3092
* runtime.cpp: Fix 1.0 build. No idea if the fix is correct.
3094
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3096
* cbinding.cpp, cbinding.h, xap.h: Mark Xap as 2.0 only for the
3099
2008-08-20 Stephane Delcroix <sdelcroix@novell.com>
3101
* canvas.h, canvas.cpp:
3102
* uielement.h, uielement.cpp: move the ZIndexProperty and Get/Set-ers
3103
from uielement to Canvas. Drop the non-static Get/Set-Top/Left ()
3105
* panel.cpp, collection.cpp: related changes.
3107
2008-08-20 Stephane Delcroix <sdelcroix@novell.com>
3109
* uielement.h: change the generator instructions so the
3110
NameProperty is generated in FrameworkElement.
3112
2008-08-19 Chris Toshok <toshok@ximian.com>
3114
* dependencyobject.h,
3115
dependencyobject.cpp (DependencyObject::GetContent): ripped this
3116
out of a hack, should prove useful for the work coming up.
3118
2008-08-19 Chris Toshok <toshok@ximian.com>
3120
* runtime.cpp (Surface::FocusElement): fix the IsTabStop check.
3122
2008-08-19 Chris Toshok <toshok@ximian.com>
3124
* control.h, control.cpp (class Control): generate a binding for
3125
Control::InitializeFromXaml and drop the 2 manual C bindings.
3127
* cbinding.h, cbinding.cpp: regen.
3129
2008-08-19 Chris Toshok <toshok@ximian.com>
3131
* xap.h, xap.cpp (class Xap): rename xap_unpack to Xap::Unpack.
3132
autogenerate our binding for it.
3134
* cbinding.h, cbinding.cpp: regen.
3136
2008-08-19 Chris Toshok <toshok@ximian.com>
3138
* eventargs.h, eventargs.cpp (class Keyboard): make this more of a
3139
real class, and remove the implementation of
3140
keyboard_get_modifiers. instead, provide a c++ method (both a
3141
getter and setter) and annotate the Getter with
3142
GenerateCBinding/GeneratePInvoke.
3144
* collection.h, collection.cpp: reorder the class decls (why do
3145
people put private first?) and make CollectionIterator a real
3146
class, with annotated methods. Also, move
3147
double_collection_from_str and point_collection_from_str to
3148
DoubleCollection::FromStr and PointCollection::FromStr
3149
respectively. move double_garray_from_str out of here (to
3152
* utils.h, utils.cpp: new (hopefully last) home for
3153
double_garray_from_str.
3155
* point.h, point.cpp (struct Point): rename point_from_str to
3156
Point::FromStr. no reason to have a C method for that.
3158
* rect.h, rect.cpp (struct Rect): same thing with Rect::FromStr.
3160
* window-gtk.h (class MoonWindowGtk): mark the ctor and
3161
GetWidget() with GenerateCBinding/GeneratePInvoke.
3163
* window-gtk.cpp: and remove their implementations.
3165
* xaml.cpp: convert over to all the new ::FromStr methods.
3167
* thickness.cpp: track new home of double_garray_from_str.
3169
* cbinding.h, cbinding.cpp: regen.
3171
2008-08-19 Chris Toshok <toshok@ximian.com>
3173
* uielement.h, uielement.cpp: make almost all data
3174
private/protected. Add a couple of methods to aid in
3175
this (IsLoaded, ClearLoaded, TransformPoint). Get rid of the
3176
cbinding for transform_point - it's never used. Also, re-order
3177
the header to put public things first, then protected then
3180
* runtime.cpp: use IsLoaded.
3182
* panel.cpp: use ClearLoaded.
3184
* text.cpp, shape.cpp, eventargs.cpp, frameworkelement.cpp: use
3187
2008-08-19 Chris Toshok <toshok@ximian.com>
3189
* runtime.cpp (Surface::HandleMouseEvent): don't compare the input
3190
lists, as we will almost always have identical lists. compare the
3191
head of the new list to focused_element to determine if focus
3194
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3196
* pipeline.cpp: Beautify error messages.
3198
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3200
* media.cpp: test-inexistent-media(s) were failing due to ISP's
3201
tendency to return search pages for failed dns lookups. Fixed tests
3202
after testing with sane DNS settings and did the appropiate change
3203
in code (raise correct error message/number).
3205
2008-08-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
3207
* runtime.h: Make RUNTIME_INIT values sequential.
3209
2008-08-19 Chris Toshok <toshok@ximian.com>
3211
* xaml.cpp (xaml_hydrate_from_str): make sure to set the surface
3212
of the object before parsing so that objects don't switch from the
3213
loader's surface to NULL as they're added to the hierarchy while
3216
2008-08-19 Larry Ewing <lewing@novell.com>
3218
* shape.cpp (Shape::InsideObject): check the extents first, then
3219
reorder the stroke/fill tests to test for the most likely first.
3221
Helps speed up sliverlight.net/world a bit.
3223
2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
3225
* mplayer.h, pipeline.h: No need to surround GetTypeName with
3226
OBJECT_TRACKING anymore.
3228
2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
3230
* audio.cpp, audio.h, audio-alsa.cpp, audio-alsa.h, audio-pulse.cpp,
3231
audio-pulse.h: Added, our new audio abstraction/implementation.
3232
* Makefile.am, src.mdp, type-generated.cpp: Updated.
3233
* mplayer.cpp, mplayer.h: Moved audio code into its own file(s).
3234
* runtime.cpp, runtime.h: Add runtime overrides for audio.
3236
2008-08-19 Jeffrey Stedfast <fejj@novell.com>
3238
* xap.cpp (xap_unpack): Fixed compiler warning.
3240
2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
3242
* media.cpp: Include headers mplayer.h doesn't include anymore.
3243
MediaElement::SetMedia: only set audio data on the MediaPlayer if
3244
the media has audio. TImelineMarkerCollection::Add: don't call the
3245
base class' Add, call base's Insert instead. Fixes a stack overflow
3246
since base class' Add calls Insert, which TimelineMarkerCollection
3247
overrides to call Add.
3249
2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
3251
* enums.cpp: Wrap 2.0-only code in SL_2_0.
3253
2008-08-19 Jeffrey Stedfast <fejj@novell.com>
3255
* zip/unzip.c: Get rid of unused variable.
3257
* value.cpp (Value::ToString): Get rid of unused variable.
3259
2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
3261
* dependencyobject.h: EventObject::ref: print a stack trace before the
3262
abort if we can, and fix typo in the abort message.
3264
2008-08-19 Geoff Norton <gnorton@novell.com>
3266
* xap.cpp: Ensure we can actually enter the directory we're creating.
3268
2008-08-19 Jeffrey Stedfast <fejj@novell.com>
3270
* mplayer.cpp: Silence the compile warning.
3272
* color.cpp (color_from_str): Got rid of unused variable.
3274
* xaml.cpp (dependency_object_set_attributes): Don't need to use
3275
strlen(str) == 0 to figure out if the string is empty, just check
3277
(wrap_type): Removed. Doesn't seem to be used any longer.
3278
(get_type_for_property_name): Same.
3279
(panel_add_child): Same.
3280
(dependency_object_set_property): Made static.
3281
(dependency_object_set_attributes): Same.
3282
(dependency_object_hookup_event): Same.
3283
(dependency_object_missed_property): Same.
3285
* dependencyproperty.cpp (resolve_property_path): Use proper
3286
integer types and avoid calling strlen if all we care to know is
3287
if the string is empty.
3289
* runtime.cpp (Surface::Paint): Get rid of an annoying debug
3291
(Surface::HandleMouseEvent): Removed unused variable.
3293
2008-08-19 Chris Toshok <toshok@ximian.com>
3295
* trigger.cpp (EventTrigger::SetTarget): make the 2.0 case more
3296
robust - handle Type.Event notation, making sure that the type is
3297
valid for the target.
3299
2008-08-19 Larry Ewing <lewing@novell.com>
3301
* runtime.cpp|h: add override to use sofware fallbacks for
3304
2008-08-19 Chris Toshok <toshok@ximian.com>
3306
* trigger.cpp (EventTrigger::SetTarget): do the AddHandler in both
3307
1.0 and 2.0 cases. big oops.
3309
2008-08-19 Jeffrey Stedfast <fejj@novell.com>
3311
* dependencyobject.cpp (DependencyObject::GetObjectType): Get rid
3312
of a warning that is no longer valid.
3314
2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
3316
* downloader.h, downloader.cpp: Add a request field to
3317
DownloaderResponse, and a response field to DownloaderRequest. When
3318
a request is aborted, also abort the response. This fixes a crash
3319
when we aborted the request before receiving a response, the
3320
response had no idea the request had been aborted (since the
3321
request didn't store the response after creating it, it couldn't
3322
notify the response of the abort), and happily accessed deleted
3325
2008-08-18 Chris Toshok <toshok@ximian.com>
3327
* runtime.cpp (Surface::CreateArgsForEvent): new method, create
3328
the right kind of args for a given event. we should probably
3330
(Surface::EmitEventOnList): use CreateArgsForEvent. Only create
3331
one instance of the event args that we use to bubble along the
3332
element list. If it's a RoutedEventArgs subclass, set the source
3333
to be the first element in the list, and check the "Handled"
3334
attribute after every emit to see if we should finish early (this
3335
provides for 2.0 semantics).
3336
(Surface::FocusElement): unfortunately the event generation is
3337
async, so add a tick call if we need to. if we already have a
3338
tick call (meaning >= 1 focus change has happened already in this
3339
tick), we drop the intervening change(s). This is likely wrong.
3340
(Surface::GenerateFocusChangeEvents): emit GotFocus/LostFocus on
3341
the proper element lists.
3342
(Surface::HandleUIKeyPress, Surface::HandleUIKeyRelease): if we're
3343
silverlight2 (and we have a focused element), emit the event on
3344
the list of elements from the focused element back up to the root.
3345
Otherwise just emit it on the toplevel.
3347
* runtime.h (class Surface): add GetFocusedElement/FocusElement
3348
methods, which are used to implement
3349
FocusManager.GetFocusElement() and Control.Focus().
3351
* uielement.h, uielement.cpp (class UIElement): remove a bunch of
3352
Emit$Event() methods that were never used.
3354
* trigger.cpp: in 2.0, you can put other events in RoutedEvent,
3355
not just "Loaded". there are parsing rules that we can't make use
3356
of here, so more work will likely have to happen in the parser.
3358
* trigger.h (class EventTrigger): add registered_event_id.
3360
* cbinding.h, cbinding.cpp: regenerate.
3362
2008-08-18 Geoff Norton <gnorton@novell.com>
3364
* type-generated.cpp, cbinding.cpp|h: Rengerated
3365
* dependencyobject.h: Bind DependencyObject .ctor
3367
2008-08-18 Geoff Norton <gnorton@novell.com>
3369
* deployment.h: Move CrossDomainAccess to
3370
* enums.h|cpp: Register CrossDomainAccess so that AppMainfest
3371
can specify values from the enum.
3373
2008-08-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
3375
* cbinding.cpp, cbinding.h, uielement.h: Mark
3376
UIElement::GetTransformToUIElement as 2.0, fixes 1.0 build.
3378
2008-08-18 Larry Ewing <lewing@novell.com>
3380
* panel.cpp|h: remove SetSurface override, the
3381
DependencyObjectCollection::SetSurface does the work already.
3383
2008-08-18 Jeffrey Stedfast <fejj@novell.com>
3385
* uielement.cpp: Autogenerate more of the bindings, make
3386
desired_size private, etc.
3388
2008-08-18 Geoff Norton <gnorton@novell.com>
3390
* eventargs.cpp|h: Change the return type to int, fix the build.
3392
2008-08-18 Jeffrey Stedfast <fejj@novell.com>
3394
* uielement.cpp (uielement_get_surface): Removed.
3395
(uielement_invalidate): Removed.
3396
(uielement_set_transform_origin): Removed.
3398
* transform.cpp: Removed manual c-bindings.
3400
* text.cpp: Removed manual c-bindings for property accessors.
3402
2008-08-18 Geoff Norton <gnorton@novell.com>
3404
* type-generated.cpp, cbinding.cpp|h: Rengerated
3405
* uielement.cpp|h, type.h, value.h: Keyboard->Key
3406
* runtime.cpp|h: Move key translation to eventargs, and pass the
3407
raw GdkEventKey to KeyEventArgs.
3408
* eventargs.cpp|h: Implement KeyEventArgs bound to the managed stuff
3409
and remove the old KeyboardEventArgs.
3411
2008-08-18 Jeffrey Stedfast <fejj@novell.com>
3413
* stylus.h: Moved required manual c-bindings into G_*_DECLS block.
3415
* size.cpp: Removed manual ctor c-binding.
3417
* shape.cpp: Removed manual c-bindings for property accessors.
3419
2008-08-18 Geoff Norton <gnorton@novell.com>
3421
* media.cpp|h, cbinding.cpp|h: Implement support for generating Image's
3422
from managed Streams.
3424
2008-08-18 Jeffrey Stedfast <fejj@novell.com>
3426
* runtime.cpp: Removed manual c-bindings for Surface and renamed
3427
Get/SetTrans() to Get/SetTransparent().
3429
* panel.cpp: Removed manual c-bindings for property accessors.
3431
* media.cpp: Removed manual c-bindings for property accessors and
3432
other methods that are now autogenerated.
3434
2008-08-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
3436
* dependencyobject.h: Make the generator happy.
3438
2008-08-18 Jeffrey Stedfast <fejj@novell.com>
3440
* geometry.cpp: Removed manual c-bindings for property accessors.
3442
2008-08-18 Michael Dominic K. <mdk@mdk.am>
3444
* runtime.h: Caller is "in main thread" also when the main_thread
3445
pointer equals NULL (no surface has been created).
3447
2008-08-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
3449
* debug.cpp: Fix a leak found by valgrind.
3451
2008-08-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
3453
* dependencyobject.h: Make GetTypeName virtual if we're tracking
3454
objects, enables better output of lost objects.
3456
2008-08-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
3458
* dependencyobject.cpp: DrainUnrefs: since unreffing objects may cause
3459
more objects to be enqueued for unref, loop until there are none
3462
2008-08-17 Geoff Norton <gnorton@novell.com>
3464
* downloader.cpp|h: Add a method for DownloaderResponse to
3465
support a Header Visitor.
3467
2008-08-17 Geoff Norton <gnorton@novell.com>
3469
* uielement.h: Expose desired_size as public to fix the build.
3471
2008-08-17 Chris Toshok <toshok@ximian.com>
3473
* uielement.h, frameworkelement.h: can't use SL_2_0 in headers.
3475
2008-08-17 Chris Toshok <toshok@ximian.com>
3477
* Makefile.am (libmoon_include_HEADERS): INCLUDE_MONO_RUNTIME ->
3478
INCLUDE_MANAGED_CODE.
3480
2008-08-15 Larry Ewing <lewing@novell.com>
3482
* clock.cpp|h: add methods Jeff removed back.
3484
2008-08-15 Chris Toshok <toshok@ximian.com>
3486
* stylus.h (class DrawingAttributes): all managed DP fields are
3488
(class Stroke): DrawingAttributesProperty and StylusPointsProperty
3489
are private in managed-land.
3491
2008-08-15 Jeffrey Stedfast <fejj@novell.com>
3493
* grid.h: Autogenerate bindings for GetActualWidth/Height
3495
* grid.cpp: Removed manual c-bindings.
3497
* frameworkelement.cpp: Removed manual c-bindings.
3499
2008-08-15 Chris Toshok <toshok@ximian.com>
3501
* eventargs.h (enum CollectionChangedAction): change Reset to
3502
Cleared, and add Clearing to handle the old functionality in
3503
DependencyObject::OnCollectionClear.
3505
* dependencyobject.h (class DependencyObject): remove
3506
OnCollectionClear. we handle that case in OnCollectionChanged
3509
* panel.h, panel.cpp (Panel::OnCollectionChanged): move
3510
OnCollectionClear code to here.
3512
* uielement.cpp (UIElement::OnCollectionChanged): add
3513
ActionClearing code here.
3515
* stylus.cpp, text.cpp: track CollectionChangedAction enum change.
3517
* collection.cpp (Collection::Clear): use
3518
EmitChanged (CollectionChangedActionClearing,...) instead of
3521
2008-08-15 Jeffrey Stedfast <fejj@novell.com>
3523
* eventargs.cpp|h: Same.
3525
* control.cpp: Same.
3527
* contentcontrol.cpp: Removed manual property accessor c-bindings.
3529
* clock.cpp: Removed manual c-bindings for things that can be
3532
* brush.cpp|h: Removed manual c-bindings for property accessors.
3534
* animation.cpp|h: Added some convenience c++ property accessors and
3535
got rid of all of the manual c-bindings. Fixed them to be
3538
* stylus.cpp: Added c++ property accessors and updated the code to
3539
use them (cleans up some code) and also got rid of the c binding
3540
accessors. We'll autogenerate these.
3542
2008-08-15 Sebastien Pouliot <sebastien@ximian.com>
3544
* layout.cpp: Don't add kerning before a dot (.). This match SL
3545
behavior (i.e. it's not a "sliding dot" algorithm like I expected)
3546
and the effect is visible in a few DRT (like #184).
3548
2008-08-15 Jeffrey Stedfast <fejj@novell.com>
3550
* uielement.cpp (UIElement::GetTriggers): Added for convenience.
3551
(UIElement::Dispose): Use the new convenience method.
3553
2008-08-15 Chris Toshok <toshok@ximian.com>
3555
* panel.cpp (Panel::ChildRemoved): queue a ZIndex re-sort here.
3556
(Panel::ChildAdded): call item->OnLoaded if we're loaded, and
3558
(Panel::OnCollectionChanged): simplify this since the code moved
3559
to ChildAdded/ChildRemoved.
3561
* panel.h, panel.cpp (Panel::Dispose): loop over our children
3562
setting their visual parent to NULL.
3564
* uielement.h, uielement.cpp (UIElement::Dispose): loop over the
3565
trigger collection removing ourselves as the target.
3566
(UIElement::OnPropertyChanged): handle TriggersProperty here -
3567
remove target from the old triggers and set target on the new
3569
(UIElement::OnCollectionChanged): new method, handle
3572
* dependencyobject.cpp: be consistent in our treatment of
3573
LogicalParent - clear it in every place we're removing a DO. Warn
3574
if we're setting it again on the same DO.
3576
* collection.h, collection.cpp: remove triggercollection's
3577
added/removedfromcollection, adn remove uielementcollection's
3578
removedfromcollection. Also, stop using a separate closure. The
3579
collection's LogicalParent always has the same value - use that.
3581
2008-08-15 Jeffrey Stedfast <fejj@novell.com>
3583
* clock.cpp (TimeManager::SourceTick): Instead of always using up
3584
to 1/30 of a second for flushing the async queue, use only the
3585
time remaining in our render pass to flush it.
3587
2008-08-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
3589
* animation.h: KeyTimeProperty isn't nullable in managed code.
3591
2008-08-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
3593
* cbinding.cpp, cbinding.h: Regenerated.
3594
* media.cpp, media.h: Add a MediaElement::SetStreamSource, and hack it
3595
to at least open the source.
3596
* pipeline.cpp, pipeline.h: Added ManagedStreamSource.
3598
2008-08-15 Jackson Harper <jackson@ximian.com>
3600
* xaml.cpp: Need to advance after F.
3602
2008-08-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
3604
* animation.h, dependencyproperty.g.cpp: KeyTime is nullable. Fixes MS
3607
2008-08-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
3609
* dependencyproperty.g.cpp: Regenerated.
3611
2008-08-14 Larry Ewing <lewing@novell.com>
3613
* animation.h (class KeyFrame): remove the KeyTime DP and make
3614
the ctor private this is an abstract class.
3616
* animation.cpp: retrieve the property via name.
3618
2008-08-14 Jeffrey Stedfast <fejj@novell.com>
3620
* clock.cpp (TimeManager::SourceTick): Call InvokeTickCall() as
3621
many times as we can in 1/30th of a second. Major visual
3622
performance improvement for bug #395160.
3624
2008-08-14 Jackson Harper <jackson@ximian.com>
3626
* xaml.cpp|h: We need to pass a pointer to the top level control
3627
when hooking up a managed event, the managed code uses this to
3628
find the method to invoke.
3630
2008-08-14 Jeffrey Stedfast <fejj@novell.com>
3632
* uielement.cpp: Implemented property accessors for ZIndex
3634
* collection.cpp (UIElementZIndexComparer): Use
3635
UIElement::GetZIndex(). If, in the future, we make GetZIndex()
3636
return a cached value, now we'll automagically benefit from it.
3638
2008-08-14 Jeffrey Stedfast <fejj@novell.com>
3640
ZIndex sorting optimization for bug #395160
3642
* panel.cpp (Panel::UpdateTotalHitTestVisibility): Don't iterate
3643
over the z_sorted list, it might not yet be
3644
populated (e.g. ResortZIndex() may not have been called yet).
3645
(Panel::OnPropertyChanged): Set a DirtyChildrenZIndices bit if the
3646
new collection is non-null.
3647
(Panel::OnCollectionChanged): Queue ZIndex resorts as appropriate.
3648
(Panel::OnLoaded): Queue a resort here too.
3650
* collection.cpp (UIElementCollection::AddedToCollection):
3651
Removed. We don't want to do the zindex sortign here anymore. Too
3652
slow. Instead, we'll have Panel::OnCollectionChanged() set the
3653
DirtyChildrenZIndices dirty flag so that the renderer forces a
3655
(UIElementCollection::Insert): Removed, no need to override
3656
anymore since we won't be resorting by zindex here anymore.
3657
(UIElementCollection::ResortByZIndex): Now that z_sorted isn't
3658
maintained as items are added/inserted, we need to always init the
3659
z_sorted array here even if we only have 1 item.
3661
2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3663
* xaml.cpp, pipeline.cpp: Don't use base_unref, call unref on the
3665
* playlist.cpp: Use DependencyObject::SetName instead of the C method.
3666
* dependencyobject.h, dependencyobject.cpp: Generate all c methods, as
3667
well as Name accessors.
3668
* cbinding.h, dependencyproperty.g.cpp, cbinding.cpp: Regenerated.
3669
* runtime.cpp: Updated according to new method names.
3671
2008-08-14 Jackson Harper <jackson@ximian.com>
3673
* xaml.cpp: We now create property instances from the property's
3674
type info not the property's parent type. This will allow us to
3675
have a managed attached property on a native object.
3677
2008-08-14 Chris Toshok <toshok@ximian.com>
3679
* Makefile.am (libmoon_la_SOURCES): add thickness.cpp
3681
* thickness.h, thickness.cpp: add thickness_from_str.
3683
* xaml.cpp: add thickness parsing.
3685
2008-08-14 Jackson Harper <jackson@ximian.com>
3687
* xaml.cpp: Need to lookup property element name's in their
3688
namespace so that managed attached properties can be set.
3690
2008-08-14 Jackson Harper <jackson@ximian.com>
3692
* xaml.cpp: If there is a dot in the element name we can assume
3693
it's a property (or at least not an element). This should prevent
3694
some extra calls into managed code to try to create types from
3697
2008-08-13 Geoff Norton <gnorton@novell.com>
3699
* runtime.cpp|h, clock.cpp|h: Move the g_idle_idd and g_timeout
3700
calls into the time manager.
3702
2008-08-13 Geoff Norton <gnorton@novell.com>
3704
* runtime.cpp|h: Add a binding for g_idle_add.
3706
2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3708
* cbinding.cpp, cbinding.h, eventargs.cpp, eventargs.h: Generate two
3709
MouseEventArgs methods.
3711
2008-08-14 Jackson Harper <jackson@ximian.com>
3713
* type-generated.cpp: Value types.
3715
2008-08-13 Jackson Harper <jackson@ximian.com>
3717
* xaml.cpp: Make sure we set content properties.
3719
2008-08-13 Jackson Harper <jackson@ximian.com>
3721
* xaml.cpp: Add support for parsing value types.
3723
2008-08-13 Chris Toshok <toshok@ximian.com>
3725
* panel.cpp (Panel::OnCollectionChanged): we only need to call
3726
OnLoaded on the new child.
3728
2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3730
* stylus.h: StylusInfo doesn't have a managed equivalent.
3732
2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3734
* dependencyproperty.h: Generate CBinding and PInvoke for IsAttached.
3735
* cbinding.cpp, cbinding.h: Regenerated.
3737
2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3739
* type.cpp: Remove spew.
3740
* dependencyobject.cpp: GetValue*WithError: Fix error messages to say
3741
we're trying to get values, not set them.
3743
2008-08-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
3745
* dependencyproperty.g.cpp: Regenerated.
3746
* geometry.h: Added IsFilled property.
3748
2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
3750
* brush.h: Set correct managed DP access and property types.
3752
2008-08-13 Jeffrey Stedfast <fejj@novell.com>
3754
* *.h: Added GeneratePInvoke attribute to each ctor
3756
2008-08-13 Jeffrey Stedfast <fejj@novell.com>
3758
* text.cpp: s/Inlines/InlineCollection/g
3760
* xaml.cpp: s/Inlines/InlineCollection/g
3762
* collection.h (class InlineCollection): Renamed from Inlines.
3764
* trigger.h (class TriggerAction): Generate C Binding for ::Fire()
3765
and also the ctor. Needed to prevent a crash in test-props.html
3767
2008-08-13 Geoff Norton <gnorton@novell.com>
3769
* runtime.cpp|h: Reuse the old html_timer infrastructure for the
3770
intial DispatcherTimer implementation.
3772
2008-08-13 Jeffrey Stedfast <fejj@novell.com>
3774
* media.h (class MediaElement): Make MarkersProperty internal for
3777
* grid.h (class Grid): Make Column/RowDefinitionsProperties
3778
internal for managed-side.
3780
* text.h (class TextBlock): Make InlinesProperty internal for
3783
* panel.h (class Panel): Update ChildrenProperty managed property
3786
Also added newlines to the end of some files to silence compile
3789
2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
3791
* dependencyproperty.g.cpp, type.h, type-generated.cpp, value.h,
3792
cbinding.cpp, cbinding.h: Regenerated.
3793
* geometry.h: Annotation fix.
3794
* Makefile.am, src.mdp: Added tilesource.h
3795
* tilesource.h: Added.
3797
2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
3799
* src.mdp, Makefile.am: Added animation2.h
3800
* type.h, type-generated.cpp, value.h, cbinding.cpp, cbinding.h,
3801
dependencyproperty.g.cpp: Regenerated.
3802
* animation.h: Added missing 2.0 DPs and more annotations.
3803
* animation2.h: Added, contains 2.0 animation classes.
3804
* clock.h: There are no managed equivalent of TimelineGroup and
3805
ParallelTimeline, remove their Namespace annotation.
3807
2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
3809
* shape.h: Fix warning.
3811
2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
3813
* shape.h: The managed Shape class must be constructable, so make all
3814
pure virtual methods from the native Shape class just virtual.
3815
* cbinding.cpp, cbinding.h, type-generated.cpp: Regenerated.
3817
2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
3819
* animation.h, brush.h, cbinding.cpp, cbinding.h, clock.h,
3820
dependencyproperty.g.cpp, frameworkelement.h, geometry.h, panel.h,
3821
text.h, transform.h, type-generated.cpp, usercontrol.h: Added more
3822
annotations to make gui-compare happier.
3824
2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
3826
* control.h, dependencyobject.h, deployment.h, frameworkelement.h,
3827
style.h, template.h, trigger.h, uielement.h: Gui-compare annotation
3830
2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
3832
* stackpanel.h, src.mdp, Makefile.am, cbinding.cpp, cbinding.h,
3833
dependencyproperty.g.cpp, enums.cpp, enums.h, type.h,
3834
type-generated.cpp, value.h: Added a native StackPanel class and
3835
generate the managed StackPanel.
3837
2008-08-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
3839
* brush.h, contentcontrol.h, deployment.h, downloader.h, media.h,
3840
namescope.h, stylus.h, transform.h: Tweak some annotations.
3842
2008-08-12 Chris Toshok <toshok@ximian.com>
3844
* style.h (class Style): make the "Setters DP" field private.
3846
* template.h (class ControlTemplate): add TargetType DP
3848
* dependencyproperty.g.cpp: regen.
3850
2008-08-12 Chris Toshok <toshok@ximian.com>
3852
* style.h (class Setter): hack for the DependencyProperty valued
3853
property. we need to parse a string DP name in a context where we
3854
don't know the type to apply to it, so we need to have a string
3857
* dependencyproperty.g.cpp: regen.
3859
2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
3861
* collection.h: Annotate Collection.
3863
2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
3865
* animation.h, clock.h, collection.h, error.h, eventargs.h, media.h,
3866
size.h, style.h, template.h, trigger.h: Add @Namespace annotations.
3868
2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
3872
2008-08-12 Chris Toshok <toshok@ximian.com>
3874
* collection.cpp (Collection::Clear): make a temporary copy of the
3875
array so we can zero out the ptrarray before calling
3876
RemovedFromCollection.
3878
2008-08-12 Jackson Harper <jackson@ximian.com>
3881
* xaml.cpp: Hydrate now passes in the default assembly name and
3882
path (we can probably do away with path's I think that's just a
3883
holdover from 1.1). If no assembly name is specified in the
3884
custom xmlns, the default's are used.
3886
2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
3888
* trigger.h, control.h, deployment.h, text.h, dependencyproperty.g.cpp,
3889
style.h, uielement.h, grid.h, media.h: Tweaked annotations to
3890
support managed DP accessor generation.
3892
2008-08-12 Jeffrey Stedfast <fejj@novell.com>
3894
* collection.cpp (Collection::SetCount): Convenience function.
3895
(Collection::Clear): Use SetCount().
3896
(Collection::Insert): Same.
3897
(Collection::RemoveAt): Same.
3899
* media.cpp (TimelineMarkerCollection::Add): Chain up to direct
3900
parent class rather than base class - while the
3901
DependencyObjectCollection might not currently override Add/Insert
3902
methods, if at some later point overrides are added, then we need
3905
* collection.cpp (DependencyObjectCollection::SetValueAt):
3906
Removed (not used anywhere).
3907
(Collection::SetValueAtWithError): This needs to call
3908
SetValueAt(), not GetValueAt().
3909
(Collection::SetValueAt): Delete the removed Value after emitting
3910
the event so we don't leak it.
3912
2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
3914
* animation.h, brush.h, clock.h, control.h, dependencyobject.h,
3915
deployment.h, downloader.h, frameworkelement.h, media.h, text.h,
3916
trigger.h, uielement.h: Use string instead of char* as
3919
2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
3921
* animation.h, brush.h, canvas.h, clock.h, collection.h,
3922
contentcontrol.h, control.h, dependencyobject.h, deployment.h,
3923
downloader.h, frameworkelement.h, geometry.h, grid.h, media.h,
3924
namescope.h, panel.h, shape.h, style.h, stylus.h, text.h,
3925
transform.h, trigger.h, uielement.h, usercontrol.h: Added
3926
@Namespace annotations, and changed @PropertyType which were
3927
declared as gint32 (and are enums) to use the actual enum type.
3928
* dependencyproperty.g.cpp: Updated.
3930
2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
3934
2008-08-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
3936
* dependencyproperty.h, type.h, type-generated.cpp, value.h: Added
3937
DependencyProperty to the Kind enum.
3939
2008-08-11 Chris Toshok <toshok@ximian.com>
3941
* deployment.h (class Application): add ResourceProperty.
3943
* style.h: add ValueProperty.
3945
* cbinding.h, cbinding.cpp: hm, looks like I forgot to regen these
3946
after adding the Version=2.0 stuff to the collection api.
3948
* dependencyproperty.g.cpp: regen.
3950
2008-08-11 Chris Toshok <toshok@ximian.com>
3952
* error.h, error.cpp: add an enum to MoonError that lets us
3953
specify which exception to raise.
3955
* collection.h, collection.cpp: a few changes:
3957
1. make most methods take Value* now instead of Value, to ease the
3958
autogenerated bindings. Leave in Add/Remove taking (Value v) so
3959
we can let c++ do some implicit conversion lifting for us. Leave
3960
the (Value) variants as non-virtual, and make the Value* ones
3963
2. Make ::Add call ::Insert, instead of duplicating all the code.
3965
3. Move all calls of AddedToCollection and RemovedFromCollection
3966
to *after* the work has been done (they're past-tense, so do what
3967
their name implies.) This means subclasses can assume the item is
3968
already in the array (or removed from it) when those methods are
3969
called. The one holdout to this utopian ideal is Clear(). we
3972
4. Switch from overriding GetValue to handle CountProperty (and
3973
leaking a Value* every time we get it) to setting the
3974
CountProperty whenever we need to (in Insert/RemoveAt).
3976
5. Add special GetValueAtWithError, SetValueAtWithError, and
3977
RemoveAtWithError methods, that allow us to effectively raise
3978
exceptions from the unmanaged code. Use the new
3979
MoonError::ErrorKind enum to specify which exception.
3981
6. remove a bunch of C api, which is now autogenerated.
3983
* dependencyproperty.g.cpp (dependency_property_g_init): regen to
3984
pick up Collection::CountProperty's default value.
3986
* cbinding.h, cbinding.cpp: autogen'ed collection api.
3988
* stylus.h, media.h, media.cpp: track collection changes.
3990
* dependencyobject.cpp: track MoonError enum change.
3992
2008-08-11 Chris Toshok <toshok@ximian.com>
3994
* dependencyproperty.g.cpp: regen.
3996
* control.h (class Control): add StyleProperty.
3998
2008-08-11 Sebastien Pouliot <sebastien@ximian.com>
4000
* layout.cpp: Compute line's height with more precision. This
4001
removes the cumulative difference (over multiple lines) with
4002
Silverlight implementation. Fix DRT#209 (enough to PASS) and
4003
improve several other ones (already passing but imperfect).
4005
2008-08-11 Chris Toshok <toshok@ximian.com>
4007
* style.h: comment out 2 problematic DP's for now.
4009
* dependencyproperty.g.cpp: regen
4011
2008-08-11 Chris Toshok <toshok@ximian.com>
4013
* style.h, style.cpp: add Style, SetterBase, Setter, and
4014
SetterBaseCollection unmanaged types.
4016
* Makefile.am: add them to the 2.0 build.
4018
* type.h, type-generated.cpp, value.h, cbinding.h, cbinding.cpp,
4019
dependencyproperty.g.cpp: regenerate from style.h/style.cpp.
4021
2008-08-11 Jeffrey Stedfast <fejj@novell.com>
4023
* shape.cpp (Polyline::OnCollectionChanged): Invalidate the path
4025
(Polygon::OnCollectionChanged): Same.
4027
* text.cpp (TextBlock::OnPropertyChanged): Set dirty to true when
4028
the TextDecorationsProperty changes too. Fixes the "underline
4029
hyperlinks" portion of bug #412986.
4031
2008-08-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
4033
* xaml.cpp: Remove debug spew.
4035
2008-08-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
4037
* array.cpp, array.h: Removed, no longer needed.
4038
* collection.cpp, collection.h: Moved double_garray_from_str to
4040
* geometry.cpp, libmoon.h, Makefile.am, point.cpp, point.h, rect.cpp,
4041
shape.cpp, src.mdp, type.h, value.cpp, value.h, value.h.in,
4042
xaml.cpp: Remove the double and point arrays, no longer needed.
4043
* type-generated.cpp: Remove the double and point arrays, no longer
4044
needed. Implement support for 2.0 events.
4046
2008-08-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
4048
* runtime.cpp: Fix a crash (xaml parser tries to access the NULL loader
4051
2008-08-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
4053
* dependencyproperty.g.cpp: Surround 2.0 DP declarations in #if SL_2_0.
4055
2008-08-09 Jeffrey Stedfast <fejj@novell.com>
4057
* *.h: Removed *_new() prototypes which are autogenerated in
4060
2008-08-08 Chris Toshok <toshok@ximian.com>
4062
* template.h, template.cpp: new file, stub implementations for
4063
FrameworkTemplate and ControlTemplate.
4065
* Makefile.am: add template.h/cpp.
4067
* control.h: add Template property.
4069
* frameworkelement.h: add some 2.0 events.
4071
* cbinding.h, cbinding.cpp, type.h, dependencyproperty.g.cpp,
4072
value.h, type-generated.cpp: regenerate.
4074
2008-08-08 Chris Toshok <toshok@ximian.com>
4076
* xaml.h, xaml.cpp: we need to propagate the 2.0-ness of the
4077
parser around in various methods (starting from the public
4078
xaml_set_property_from_str and value_from_str*) in order to get it
4079
down to where it's needed for the enum_* calls.
4081
* enums.h, enums.cpp: add a "sl2" argument so we can resolve
4082
sl1/sl2 specific enum values, and add the 2.0 specific
4083
Horizontal/VerticalAlignment mappings.
4085
2008-08-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
4087
* runtime.cpp: Remove comments to self :)
4089
2008-08-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
4091
* panel.cpp, stylus.cpp, trigger.h, usercontrol.cpp, canvas.h,
4092
control.h, deployment.h, text.h, trigger.cpp, dependencyobject.h,
4093
canvas.cpp, transform.h, downloader.cpp, transform.cpp,
4094
animation.h, grid.cpp, shape.h, animation.cpp, deployment.cpp,
4095
control.cpp, runtime.cpp, text.cpp, clock.h, contentcontrol.h,
4096
clock.cpp, uielement.h, collection.h, geometry.h,
4097
contentcontrol.cpp, frameworkelement.h, uielement.cpp, grid.h,
4098
collection.cpp, geometry.cpp, shape.cpp, dependencyobject.cpp,
4099
frameworkelement.cpp, namescope.cpp, brush.h, panel.h, stylus.h,
4100
namescope.h, media.cpp, brush.cpp, usercontrol.h: Remove DP
4101
registration from *_init methods, and remove *_init methods which
4102
turned out to be empty after that.
4104
2008-08-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
4106
* panel.cpp, stylus.cpp, trigger.h, usercontrol.cpp, canvas.h,
4107
control.h, deployment.h, text.h, trigger.cpp, dependencyobject.h,
4108
canvas.cpp, transform.h, downloader.cpp, transform.cpp,
4109
animation.h, grid.cpp, downloader.h, shape.h,
4110
dependencyproperty.g.cpp, animation.cpp, deployment.cpp,
4111
control.cpp, runtime.cpp, text.cpp, dependencyproperty.h,
4112
Makefile.am, clock.h, contentcontrol.h, dependencyproperty.cpp,
4113
clock.cpp, uielement.h, collection.h, geometry.h,
4114
contentcontrol.cpp, frameworkelement.h, src.mdp, uielement.cpp,
4115
grid.h, collection.cpp, geometry.cpp, shape.cpp,
4116
dependencyobject.cpp, frameworkelement.cpp, namescope.cpp, media.h,
4117
brush.h, panel.h, stylus.h, namescope.h, media.cpp, brush.cpp,
4118
usercontrol.h: Generate dependency property registration.
4120
2008-08-07 Chris Toshok <toshok@ximian.com>
4122
* collection.h, collection.cpp (double_collection_from_str): new
4124
(point_collection_from_str): new method.
4126
* xaml.cpp (value_from_str): add support for
4127
DoubleCollection/PointCollection properties. leave
4128
DoubleArray/PointArray in for now, although nothing should use it.
4130
* shape.h, shape.cpp, geometry.h, geometry.cpp: switch all
4131
PointArray/DoubleArray properties to using
4132
PointCollection/DoubleCollection. This is unfortunately a
4133
necessity due to the 2.0 changes, but it should be transparent for
4136
2008-08-07 Larry Ewing <lewing@novell.com>
4138
* shape.cpp (Shape::ShiftPosition): add an unfortunate restriction
4139
on ShiftPosition interaction with the shape cache to fix the
4140
droppings we were seeing in AnimationMatrix and
4141
StoryBoard_ModifyProperty.htm.
4143
2008-08-07 Geoff Norton <gnorton@novell.com>
4145
* media.cpp: When the MediaElement source changes set the
4146
BufferingProgress back to 0 otherwise we may never emit a
4147
BufferingProgressChangedEvent for the new source.
4149
2008-08-07 Sebastien Pouliot <sebastien@ximian.com>
4151
* layout.cpp: Handle negative horiBearingX correctly. This gives
4152
better visual results in DRT #47 (same width value, up to 2
4153
decimal) and #209 (not enough to make it PASS but I doubt the
4154
master is ok, since I can't duplicate its output).
4156
2008-08-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
4158
* dependencyobject.cpp: HasProperty: accept attached properties for
4161
2008-08-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
4163
* panel.cpp, stylus.cpp, trigger.h, usercontrol.cpp, canvas.h,
4164
control.h, deployment.h, text.h, thickness.h, trigger.cpp,
4165
canvas.cpp, transform.h, color.h, downloader.cpp, eventargs.cpp,
4166
transform.cpp, animation.h, grid.cpp, downloader.h, eventargs.h,
4167
shape.h, animation.cpp, size.h, deployment.cpp, control.cpp,
4168
text.cpp, clock.h, contentcontrol.h, clock.cpp, uielement.h,
4169
point.h, collection.h, geometry.h, contentcontrol.cpp,
4170
frameworkelement.h, uielement.cpp, grid.h, collection.cpp,
4171
geometry.cpp, shape.cpp, frameworkelement.cpp, media.h, brush.h,
4172
rect.h, panel.h, stylus.h, media.cpp, brush.cpp, usercontrol.h: Add
4173
instructions to generate c constructors in headers and remove *_new
4174
implementations from cpp files.
4175
* dependencyobject.h: Typedef function pointer to avoid making the
4176
generator understand function pointer syntax. Update comments to
4178
* cbinding.h, value.h, src.mdp, cbinding.cpp: Updated.
4179
* type.h, type.h.in: Updated comments to new syntax.
4180
* mms-downloader.h: Use C++ syntax.
4181
* dependencyproperty.h, dependencyproperty.cpp: Make
4182
dependency_property_register_managed_property a method on the type
4183
and update comments to new syntax.
4184
* type-generated.cpp: Updated by new generator, which did actually
4187
2008-08-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
4189
* dependencyproperty.cpp: DP: Comment out the duplicate DP warning
4192
2008-08-06 Geoff Norton <gnorton@novell.com>
4194
* dependencyproperty.cpp: When registering a clashing DP
4195
return the original so that the code can act on it as it
4196
expects. Fixes about 18 DRT regressions.
4198
2008-08-06 Chris Toshok <toshok@ximian.com>
4200
* uielement.h, uielement.cpp: add GetTransformToUIElement, the
4201
unmanaged equivalent to the managed UIElement.TransformToVisual.
4203
Also change the signature of HitTest to take a Point, not two
4204
doubles. Add a HitTest overload that takes a Rect in
4205
preparation for 2.0.
4207
* panel.h, panel.cpp: track HitTest signature change.
4209
* control.h, control.cpp: track HitTest signature change.
4211
2008-08-06 Chris Toshok <toshok@ximian.com>
4213
* transform.h, transform.cpp: add a convenience ctor for Matrix
4214
that takes a cairo_matrix_t*.
4216
2008-08-06 Chris Toshok <toshok@ximian.com>
4218
* type-generated.cpp (type_infos): fix ctors for UIElement and
4219
UIElementCollection.
4221
2008-08-06 Chris Toshok <toshok@ximian.com>
4223
* frameworkelement.h, frameworkelement.cpp: add
4224
DataContextProperty.
4226
2008-08-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
4228
* type.cpp: Fix for old glib in sled.
4230
2008-08-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
4232
* dependencyproperty.cpp, type.cpp, type.h, type.h.in,
4233
type-generated.cpp: Add custom properties to a GSList instead of
4234
the hash table given that several custom properties can be
4235
registered on the same type with the same name.
4237
2008-08-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
4239
* src.mdp: Make src and plugin projects build.
4241
2008-08-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
4245
2008-08-05 Chris Toshok <toshok@ximian.com>
4247
* transform.h, transform.cpp, brush.cpp: Add GeneralTransform as a
4248
superclass of Transform, and move all the current Transform stuff
4251
* type.h, type-generated.cpp, value.h: resync
4253
2008-08-05 Chris Toshok <toshok@ximian.com>
4255
* uielement.h, uielement.cpp, frameworkelement.h,
4256
frameworkelement.cpp: move the UIElement DPs back - the move to
4257
FrameworkElement breaks tests.
4259
* collection.cpp (TriggerCollection::AddedToCollection): quiet
4261
(TriggerCollection::RemovedFromCollection): same.
4263
2008-08-05 Chris Toshok <toshok@ximian.com>
4265
* frameworkelement.h, frameworkelement.cpp: add in the 2.0-only
4266
DependencyProperties. we need a way to limit access to these to
4269
* uielement.h, uielement.cpp: CursorProperty, ResourcesProperty,
4270
TagProperty, TriggersProperty are moved to
4271
frameworkelement.h/.cpp.
4273
* runtime.cpp (Surface::UpdateCursorFromInputList): CursorProperty
4274
moved from UIElement to FrameworkElement.
4276
* size.h, size.cpp: add SizeChangedEventArgs.
4278
* thickness.h: move this type here
4280
* control.h: #include thickness.h
4282
* type.h, value.h, type-generated.cpp: regenerate for
4283
SIZECHANGEDEVENTARGS.
4285
2008-08-05 Chris Toshok <toshok@ximian.com>
4287
* Makefile.am (libmoon_la_SOURCES): enums.c => enums.cpp
4289
* enums.h: add comment about keeping MouseCursors enum in sync
4292
* enums.cpp: make all the mappings use symbols instead of integer
4293
constants. Also, rename enums.c to enums.cpp so it can include
4294
the .h files for enums not in enums.h.
4296
2008-08-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
4298
* src.mdp: Remove visual.cpp|h from here too.
4300
2008-08-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
4302
* brush.cpp, brush.h, dirty.cpp, panel.cpp, panel.h, type.h,
4303
type-generated.cpp, uielement.cpp, uielement.h, value.h,
4304
visual.cpp, visual.h, collection.h, collection.cpp, Makefile.am,
4305
libmoon.h: Deleted Visual (moved content into UIElement), and
4306
renamed VisualCollection to UIElementCollection.
4308
2008-08-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
4310
* cbinding.cpp, cbinding.h, dependencyobject.cpp, dependencyobject.h:
4311
GetValueWithError: Add a parameter to specify the exact type
4312
(including managed subclassing) of the object. HasProperty: use
4313
that parameter to determine if the type has the specified property
4315
* dependencyproperty.cpp, dependencyproperty.h: DependencyProperty: Add
4316
a is_custom field to determine if the property is our own or not.
4318
2008-08-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
4320
* cbinding.cpp, cbinding.h: Updated.
4321
* dependencyobject.h, dependencyobject.cpp, dependencyproperty.cpp,
4322
dependencyproperty.h, runtime.cpp, runtime.h, type.cpp, type.h,
4323
type.h.in, type-generated.cpp: Create a Types class which may
4324
contain additional types. Change the DP/DO/Type overloads
4325
containing a Surface to take a Types argument instead.
4327
2008-08-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
4329
* dependencyobject.cpp: Implement Get[No[Default]]ValueWithError.
4331
2008-08-04 Michael Dominic K. <mdk@mdk.am>
4335
* clock.h: Adding method to store a manual target (instead of a named target)
4336
for a timeline. This will be used to bind a Storyboard.SetTarget 2.0 method.
4338
2008-08-04 Michael Dominic K. <mdk@mdk.am>
4341
* animation.h: A little bit of C API for KeySpline.
4343
2008-08-04 Michael Dominic K. <mdk@mdk.am>
4345
* runtime.cpp: _get_surface can only be called from the main thread.
4347
2008-08-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
4349
* src.mdp, cbinding.h, cbinding.cpp: Updated.
4350
* Makefile.am: Include error.cpp.
4351
* error.h, error.cpp: Added MoonError.
4352
* dependencyproperty.h: Make RegisterFull 2.0 only.
4353
* dependencyobject.h, dependencyobject.cpp: Added and implemented
4354
Get[[No]Default]ValueWithError and a HasProperty method which takes
4355
into account properties registered on a surface.
4357
2008-08-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
4359
* canvas.cpp, grid.cpp: Use C++ binding instead of C binding.
4360
* media.cpp: Use property accessors instead of GetValue.
4362
2008-08-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
4364
* cbinding.cpp, cbinding.h: Update.
4365
* dependencyproperty.cpp: RegisterFull: Only wrap method code in
4366
SL_2_0, fixed 1.0 build.
4368
2008-08-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
4370
* dependencyproperty.h: Make GetName return a const char*, and rename
4371
parameters from readonly to read_only (to not conflict with C#
4374
2008-08-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
4377
* dependencyproperty.cpp, dependencyproperty.h, Makefile.am: Generate
4378
DependencyProperty's C methods.
4379
* cbinding.cpp, cbinding.h: Added.
4380
* typegen, typegen/typegen.cs, typegen/typegen.sh: Moved typegen to
4381
moon/generators, and add methodgen to generate pinvokes, and cgen
4382
to generate c bindings.
4384
2008-08-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
4386
* dependencyobject.cpp, dependencyproperty.cpp, dependencyproperty.h:
4387
Implement property changed callbacks.
4389
2008-08-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
4391
* contentcontrol.h, control.h: Fix includes.
4393
2008-08-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
4395
* pipeline-ffmpeg.cpp: Fix warning.
4397
2008-08-01 Jeffrey Stedfast <fejj@novell.com>
4399
* dependencyobject.cpp (EventObject::Dispose): Call
4401
(EventObject::unref): Don't call SetSurface() here anymore.
4403
2008-08-01 Michael Dominic K. <mdk@mdk.am>
4405
* runtime.cpp|h: Adding few utility functions to modify the flags
4406
at runtime -- provided that there are no surfaces currently
4407
present. Would be nice to be able to somehow do it before calling
4410
2008-08-01 Michael Dominic K. <mdk@mdk.am>
4412
* runtime.cpp|h: Adding an expose handoff custom
4413
function that can be set on surface. It's called just after
4414
render_cb when something has been updated on the screen.
4416
2008-08-01 Michael Dominic K. <mdk@mdk.am>
4418
* runtime.cpp|h: Adding a global surface list and an
4419
ability to access it. I have a bad feeling we need some locking
4420
in the _get_surface_list function.
4422
2008-08-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
4426
2008-07-31 Jeffrey Stedfast <fejj@novell.com>
4428
This is the proper fix for bug #412443
4430
* visual.cpp (VisualCollection::Dispose): Implement Dispose()
4432
(VisualCollection::RemovedFromCollection): Now that we know we are
4433
disposing, we can unset VisualParent here instead of in our
4434
dtor/Dispose() method, saving us from having to interate over our
4437
* collection.cpp (Collection::Dispose): Implement a Dispose()
4438
method which does what the dtor used to do.
4440
* dependencyobject.cpp (EventObject::unref): Call Dispose() just
4441
before deleting the object.
4443
2008-07-31 Jeffrey Stedfast <fejj@novell.com>
4445
* dependencyobject.cpp (struct Listener): Comment out the listener
4446
reffing from previous commit. I don't think this is correct.
4448
* visual.cpp (VisualCollection): Set z_sorted to NULL after
4449
freeing it so that parent class dtor calling
4450
RemovedFromCollection() will not poke at free'd memory.
4452
2008-07-31 Geoff Norton <gnorton@novell.com>
4454
* Makefile.am: Undo part of the recent Makefile changes as they broke
4457
2008-07-31 Jeffrey Stedfast <fejj@novell.com>
4461
* dependencyobject.cpp (DependencyObject::AddPropertyChangeListener):
4463
(DependencyObject::RemovePropertyChangeListener): Unref the listener.
4465
2008-07-31 Jeffrey Stedfast <fejj@novell.com>
4467
* animation.cpp (KeyFrameCollection::RemovedFromCollection): Oops,
4468
this needs to chain up to
4469
DependencyObjectCollection::RemovedFromCollection() rather than
4470
AddedToCollection(). Duh.
4472
2008-07-30 Jeffrey Stedfast <fejj@novell.com>
4474
* contentcontrol.cpp|h: Added.
4476
* enums.h: Moved some font/text enums here from font.h
4478
2008-07-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
4480
* dependencyproperty.cpp: Fix build.
4482
2008-07-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
4484
* runtime.cpp: Fix 1.0 build.
4486
2008-07-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
4488
* dependencyproperty.cpp, dependencyproperty.h, runtime.cpp, runtime.h,
4489
type.cpp, type.h, type.h.in, typegen/typegen.cs,
4490
type-generated.cpp: Store DependencyProperties in the Type* instead
4491
of a hashtable keyed on the kind.
4493
2008-07-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
4495
* dependencyobject.cpp: IsValueValid: treat all MANAGED types as valid,
4496
given that since we might not have access to the surface where the
4497
type was registered, it's not possible to do any type checking
4498
* dependencyproperty.cpp, dependencyproperty.h, runtime.cpp, runtime.h:
4499
Implement registration of managed properties on a surface.
4500
* type.cpp, type.h, type.h.in: Implement a Type::Find which can look in
4501
types registered on a surface, added a Type::MANAGED enum value.
4502
* typegen/typegen.cs, type-generated.cpp, value.h, value.h.in: Add a
4505
2008-07-29 Jeffrey Stedfast <fejj@novell.com>
4507
* text.cpp (inline_new): Added.
4509
2008-07-29 Jackson Harper <jackson@ximian.com>
4511
* xaml.cpp: Add a set_parent call, I need to do some fanagling
4512
there so collection items don't have their parents set.
4513
- Managed items that are being hydrated or created using x:Class
4514
need to get content properties from the managed world.
4516
2008-07-28 Chris Toshok <toshok@ximian.com>
4518
* value.cpp, value.h.in, value.h, type.h, typegen/typegen.cs,
4519
type-generated.cpp: Add Size foo.
4521
2008-07-28 Jeffrey Stedfast <fejj@novell.com>
4523
* value.cpp (Value::FreeValue): Oops, free Thickness.
4525
2008-07-28 Chris Toshok <toshok@ximian.com>
4527
* control.h (struct Thickness): reorder fields to match managed
4530
2008-07-28 Jeffrey Stedfast <fejj@novell.com>
4532
* typegen/typegen.cs: Added Thickness.
4534
* value.h.in, type.h.in: Added Thickness.
4536
* value.cpp: Implemented Thickness value ctor/etc.
4538
* enums.h: Added more 2.0-specific enums.
4540
* control.cpp|h: Implemented property accessors/bindings and
4543
2008-07-28 Michael Dominic K. <mdk@mdk.am>
4545
* animation.cpp: When starting an SB that has been started already make sure to
4546
remove the Completed handler before the teardown. Fixes #405518.
4548
2008-07-28 Chris Toshok <toshok@ximian.com>
4550
* collection.cpp (collection_iterator_next): move the check for
4551
index-in-range to after the increment of it. that way managed
4552
code doesn't step off the end of the list.
4554
2008-07-26 Chris Toshok <toshok@ximian.com>
4556
* eventargs.h, eventargs.cpp: some 2.0 event stuff. Make the
4557
MouseEventArgs and KeyboardEventArgs classes subclasses of a new
4558
class - RoutedEventArgs. Also, add a "Handled" field to both
4559
MouseEventArgs and KeyboardEventArgs. Lastly add a "Keyboard"
4560
class to map to the 2.0 static Keyboard class. it exposes nothing
4561
but a Modifiers property, which isn't updated at present, but will
4562
be by the Surface code (in the key event handler).
4564
* type.h, value.h, type-generated.cpp: sync - new ROUTEDEVENTARGS
4567
2008-07-26 Chris Toshok <toshok@ximian.com>
4569
* enums.h (enum ModifierKey): 2.0 specific enum for use by the
4572
2008-07-26 Jackson Harper <jackson@ximian.com>
4574
* xaml.cpp: If there isn't a managed content property, try looking
4575
for an unmanaged one.
4577
2008-07-26 Jackson Harper <jackson@ximian.com>
4579
* xaml.h|cpp: Create elements for imported managed namespaces.
4581
2008-07-25 Chris Toshok <toshok@ximian.com>
4583
* runtime.h, runtime.cpp: reformat the class decl to put public:
4584
stuff first. add "bool silverlight2" to the surface ctor so we
4585
can start to use it for behavioral differences (routed event
4586
handlers, key events, focus, etc).
4588
2008-07-25 Jeffrey Stedfast <fejj@novell.com>
4590
* stylus.h (StrokeCollection::CanAdd): Strokes can exist in
4591
multiple StrokeCollections at a time but they cannot be added to
4592
the same collection multiple times. Do not default to
4593
DependencyObjectCollection::CanAdd()'s behavior because it checks
4594
that the logical parent is unset (which will not be accurate for
4596
(StylusPointCollection): Same as StrokeCollection.
4598
* xaml.cpp (dependency_object_add_child): Set the logical parent
4599
of items to NULL before adding them to a collection.
4601
* collection.h (class Collection): Removed 'unique' field, it's
4602
not necessary afterall.
4603
(Collection::CanAdd): New virtual method to check if the value can
4604
be added to the collection (by default always returns true).
4605
(DependencyObjectCollection::CanAdd): Override CanAdd() by
4606
checking if the object being added has a logical parent. If it
4607
already has a parent, it cannot be added (this is how Silverlight
4610
* collection.cpp (Collection::Add): There's no such thing as
4611
'unique' anymore. Don't check if the value is already contained
4612
within our collection like the old code used to do, instead call
4613
our new virtual method CanAdd() to see if we can add it.
4614
(Collection::Insert): Check CanAdd().
4615
(Collection::SetValueAt): Check CanAdd().
4617
2008-07-24 Jeffrey Stedfast <fejj@novell.com>
4619
* collection.cpp (collection_add): Fixed.
4621
* collection.h: Get rid of convenience wrappers that aren't even
4622
used. Also removes the need for previous commit.
4624
2008-07-24 Jeffrey Stedfast <fejj@novell.com>
4626
* collection.h (class DependencyObjectCollection): Add virtual
4627
Add(), Clear() and Insert(). This makes it possible for subclasses
4628
to chain up if they need to override any of these.
4629
(class DoubleCollection): Same.
4630
(class PointCollection): Here too.
4632
* visual.cpp (VisualCollection::Clear): Chain up to
4633
DependencyObjectCollection::Clear() rather than
4634
Collection::Clear().
4635
(VisualCollection::Insert): Don't bother resizing the z_sorted
4636
array here, it will be done inside ResortByZIndex() anyway.
4637
(VisualCollection::Insert): Chain up to
4638
DependencyObjectCollection::Insert() rather than
4639
Collection::Insert()
4641
2008-07-24 Geoff Norton <gnorton@novell.com>
4643
* downloader.cpp: When a downloader is reused reset the completed
4644
state when we get the new Open call.
4646
2008-07-24 Jeffrey Stedfast <fejj@novell.com>
4648
* text.cpp (inlines_simple_text_equal): Fixed a stupid typo.
4650
* collection.cpp (DependencyObjectCollection::RemovedFromCollection):
4651
Unregister the NameScope the same way the old Collection::Remove()
4652
way did it. This way seems the most correct (RemoveAt() was
4653
totally broken and SetVal() doesn't seem right afterall).
4655
2008-07-24 Jeffrey Stedfast <fejj@novell.com>
4657
* collection.cpp: Added c-wrappers for creating new
4658
collections. Also changed the c-bindings for
4659
setting/adding/inserting/etc items to the collection to take
4660
Value* instead of Value. Should make it simpler for the managed
4663
2008-07-24 Jeffrey Stedfast <fejj@novell.com>
4665
* collection.cpp (DependencyObjectCollection::RemovedFromCollection):
4666
Unregister the NameScope the same way it was done in the more
4667
common case in the old code (why were there different ways?).
4669
* text.cpp (TextBlock::OnCollectionChanged): Chain up.
4670
(TextBlock::OnCollectionItemChanged): Same.
4672
* brush.cpp (GradientBrush::OnCollectionChanged): Chain up.
4673
(GradientBrush::OnCollectionItemChanged): Chain up and notify
4676
* geometry.cpp (GeometryGroup::OnCollectionChanged): Chain up.
4677
(GeometryGroup::OnCollectionItemChanged): Chain up and notify
4679
(PathGeometry::OnCollectionChanged): Chain up.
4680
(PathGeometry::OnCollectionItemChanged): Chain up and notify
4682
(PathFigure::OnCollectionChanged): Chain up.
4683
(PathFigure::OnCollectionItemChanged): Chain up and notify
4686
* shape.cpp (Polygon::OnCollectionChanged): Chain up.
4687
(Polygon::OnCollectionItemChanged): Same.
4688
(Polyline::OnCollectionChanged): Same.
4689
(Polyline::OnCollectionItemChanged): Same.
4691
* stylus.cpp (Stroke::OnCollectionItemChanged): Need to
4692
call NotifyListersOfPropertyChange().
4694
* transform.cpp (TransformGroup::OnCollectionItemChanged): Need to
4695
call NotifyListersOfPropertyChange().
4697
2008-07-24 Jeffrey Stedfast <fejj@novell.com>
4699
* collection.cp|h: Reworked Collections a lot. Collection is now a
4700
generic collection of Values. Added 3 new collections:
4701
DependencyObjectCollection (which holds DO's like the old
4702
Collection class did), DoubleCollection and PointCollection.
4704
* dependencyobject.h (DependencyObject::OnCollectionChanged):
4705
Changed the way this works to reflect the managed API.
4707
*.cpp|h: Updated to reflect above changes.
4709
2008-07-24 Jeffrey Stedfast <fejj@novell.com>
4711
* utils.cpp (g_ptr_array_insert): New utility function.
4712
(g_ptr_array_insert_sorted): Call g_ptr_array_insert() once we
4713
find the index where we want to add the item.
4715
2008-07-23 Chris Toshok <toshok@ximian.com>
4717
* panel.cpp, xaml.cpp, stylus.cpp, usercontrol.cpp, canvas.cpp,
4718
transform.cpp, grid.cpp, animation.cpp, text.cpp,
4719
dependencyproperty.h, dependencyproperty.cpp, uielement.cpp,
4720
geometry.cpp, shape.cpp, dependencyobject.cpp,
4721
frameworkelement.cpp, media.cpp, brush.cpp: a couple of
4722
DependencyPropertyChanges:
4724
1. switch to the Silverlight/WPF naming of the two Types.
4725
type/value_type change to owner_type/property_type.
4727
2. go all gtk-3.0, and make things private with accessors.
4729
2008-07-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
4731
* animation.cpp, brush.cpp, canvas.cpp, clock.cpp, collection.cpp,
4732
dependencyobject.cpp, dependencyobject.h, dependencyproperty.cpp,
4733
dependencyproperty.h, deployment.cpp, downloader.cpp,
4734
frameworkelement.cpp, geometry.cpp, grid.cpp, media.cpp,
4735
namescope.cpp, panel.cpp, runtime.cpp, shape.cpp, stylus.cpp,
4736
text.cpp, transform.cpp, trigger.cpp, uielement.cpp,
4737
usercontrol.cpp, xaml.cpp: Move Register(Full|Nullable) and
4738
GetDependencyObject from DependencyObject to DependencyProperty.
4740
2008-07-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
4742
* dependencyobject.h, dependencyproperty.h, Makefile.am,
4743
dependencyproperty.cpp, src.mdp, dependencyobject.cpp: Move
4744
DependencyProperty to its own file before it grows bigger.
4746
2008-07-21 Jackson Harper <jackson@ximian.com>
4748
* xaml.cpp: Add back in the ability to create elements from
4749
managed elements using the x:Class syntax.
4751
2008-07-21 Jackson Harper <jackson@ximian.com>
4754
* type-generated.cpp: The UserControl's Content Property name is
4755
Content not ContentProperty.
4757
2008-07-21 Jeffrey Stedfast <fejj@novell.com>
4759
* collection.cpp (collection_add): Fixed to return int.
4761
2008-07-21 Jackson Harper <jackson@ximian.com>
4763
* xaml.cpp: Add support for parsing GridLength attribute values.
4765
2008-07-19 Geoff Norton <gnorton@novell.com>
4767
* mms-downloader.(cpp|h): Ensure that we always stream-select a marker
4768
stream when there is one available. Fixes drt #2.
4769
Refactor some code duplication into a utility method.
4771
2008-07-19 Jackson Harper <jackson@ximian.com>
4773
* xaml.cpp: We can't blindly assume an object has a content
4776
2008-07-19 Jackson Harper <jackson@ximian.com>
4778
* type-generated.cpp: UserControl has a content property.
4779
* value.h|.h.in|.cpp: Add GridLength to Value.
4781
2008-07-18 Geoff Norton <gnorton@novell.com>
4783
* media.cpp: Revert InitialBuffer work around as it has some unexpected
4786
2008-07-18 Geoff Norton <gnorton@novell.com>
4788
* media.cpp: Clear the InitialBuffer state when we seek as well, as that will
4789
get a new burst from the mms server with AccelBW.
4791
2008-07-18 Geoff Norton <gnorton@novell.com>
4793
* media.cpp: If we're using a mms source we can attempt to start playing the
4794
first time before the entire 5s buffer is full due to AccelBW/AccelDuration.
4795
Fixes c9 stream start lag.
4797
2008-07-18 Geoff Norton <gnorton@novell.com>
4799
* mms-downloader.cpp: Set LinkBW, AccelBW and AccelDuration so we can fill
4800
our initial buffer quickly.
4802
2008-07-18 Geoff Norton <gnorton@novell.com>
4804
* pipeline.(cpp|h), mp3.(cpp|h): Break mp3 out into its own files.
4805
* Makefile.am: Add mp3.(cpp|h) to the build.
4806
* pipeline-ffmpeg.cpp: MP3 streamed over asf will bunch multiple frames
4807
together, so we need to split them up and pass them to avcodec_decode_audio2
4808
one at a time. Its also possible that we could get a partial frame, so we need
4809
to buffer that data. Fixes mms+mp3.
4811
2008-07-18 Jeffrey Stedfast <fejj@novell.com>
4815
* text.h (TextBlock::GetBoundingHeight): Return the larger of the
4817
(TextBlock::GetBoundingWidth): Same.
4819
2008-07-18 Chris Toshok <toshok@ximian.com>
4821
* Makefile.am (libmoon_include_HEADERS): add window.h and
4823
(libmoon_la_SOURCES): add window-gtk.cpp
4825
* window.h: abstract class for windows, that surface will use to
4826
deal with window/widget level operations.
4828
* window-gtk.h, window-gtk.cpp: MoonWindow implementation using
4831
* runtime.h, runtime.cpp: factor out all the widget stuff from
4832
this file, along with all "width" and "height" fields. now
4833
Surface knows nothing about widgets or windowless. It speaks to
4834
MoonWindow implementations instead. Add several public methods
4835
that the window implementations can call (anything HandleUI*) to
4836
communicate events back to the surface.
4838
* canvas.cpp: surface->Get{Width,Height} ==>
4839
surface->GetWindow()->Get{Width,Height}.
4841
2008-07-18 Michael Dominic K. <mdk@mdk.am>
4844
* media.cpp: Reverting prev change, different solution: process the tick calls
4845
before processing the render.
4847
2008-07-18 Michael Dominic K. <mdk@mdk.am>
4849
* media.cpp: If the downloader is already completed, don't do an extra async
4850
call when setting source. Fixes the downloader-set-source... testcase.
4852
2008-07-18 Michael Dominic K. <mdk@mdk.am>
4854
* media.cpp: Fixing a crasher in case bad parameters passed from js.
4856
2008-07-18 Jackson Harper <jackson@ximian.com>
4858
* xaml.h: New delegates and functions for the loader. We need to
4859
call back into managed code when we import a xaml namespace so
4860
that it knows which objects are available and we need a new
4861
function for creating those objects.
4863
2008-07-18 Jackson Harper <jackson@ximian.com>
4865
* usercontrol.cpp|h: Add C functions for accessing the Content
4868
2008-07-17 Jackson Harper <jackson@ximian.com>
4872
* type-generated.cpp:
4873
* deployment.cpp|h: Add an Application type. This doesnt directly
4874
map to the managed Application because it inherits from
4875
DependencyObject, but it allows us to parse Application XAML files
4876
and then we can pull the values we need.
4878
2008-07-17 Jackson Harper <jackson@ximian.com>
4880
* libmoon.h: Add usercontrol.h, I want access to this in the
4883
2008-07-17 Jackson Harper <jackson@ximian.com>
4885
* xaml.cpp: Had a backwards IsSubclassOf here causing
4886
UserControl's content property to not get set (and I imagine many
4887
other content properties).
4888
* usercontrol.h: Add the ContentProperty metadata.
4890
2008-07-17 Stephane Delcroix <sdelcroix@novell.com>
4892
* downloader.h|cpp: provide hooks for DownloadeRequest
4894
2008-07-17 Jeffrey Stedfast <fejj@novell.com>
4896
* pipeline.cpp (FileSource::ReadInternal): EOF isn't an error.
4898
* runtime.cpp (surface_create_downloader): We need to actually
4899
return the downloader here or our caller will just get garbage ;-)
4901
2008-07-17 Michael Dominic K. <mdk@mdk.am>
4903
* clock.cpp: When _USE_IDLE_HINT is not sent, don't do idle hinting.
4905
* runtime.h: On desktop and browser by default use idle hinting.
4907
2008-07-17 Michael Dominic K. <mdk@mdk.am>
4909
* runtime.cpp: Adding "idlehint" to moonlight overrides that will
4910
control the use of idle hint in the clocks.
4912
2008-07-17 Stephane Delcroix <sdelcroix@novell.com>
4914
* runtime.h|cpp: add surface_get_downloader
4916
2008-07-16 Larry Ewing <lewing@novell.com>
4918
* runtime.cpp: try to get the resize logic correct for all cases,
4919
including popfly, ControlState.htm and fullscreen tests.
4921
Fixes the (non)rendering issues in the popfly game creator.
4923
2008-07-16 Geoff Norton <gnorton@novell.com>
4925
* mplayer.cpp: Its possible that extremely small audio files will
4926
never fill the sound buffer enough causing us to never call snd_pcm_open.
4927
Ensure that we open the buffer to play the sound before shutting down
4930
2008-07-16 Geoff Norton <gnorton@novell.com>
4932
* pipeline.cpp: Update to be able to build with LOG_PIPELINE still
4934
2008-07-16 Sebastien Pouliot <sebastien@ximian.com>
4936
* layout.cpp: (TextLayout::LayoutWrap) Don't let actualWidth be
4937
greater than Width. Fix MS DRT#184 and #208. ALso makes #206
4938
looks better (but it already passed)
4940
2008-07-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
4942
* pipeline.cpp, pipeline.h: ProgressiveSource: clean up a bit, this
4943
class doesn't do anything live/mms anymore. LiveSource: removed
4944
completely, never used. Added MemoryNestedSource to wrap another
4945
MemorySource without messing with its current position pointer.
4946
MemoryQueueSource: store already parsed packets instead of
4947
MemorySources in the queue, saves a memory allocation and prevents
4948
parsing each packet twice when buffering (once for the code which
4949
determines the last available pts, and again for the normal
4950
demuxing code path).
4951
* mms-downloader.cpp: Updated to not delete asf parser, unref it
4953
* mplayer.cpp: Enqueue 3 audio frames instead of 10, makes the pipeline
4954
wait a bit longer before ending up waiting for more data (which
4955
causes the MediaElement to go into buffering mode).
4956
* media.cpp: ProgressiveSource ctor doesn't take any bool arguments
4959
2008-07-15 Larry Ewing <lewing@novell.com>
4961
* dirty.cpp (Surface::AddDirtyElement): quick patch from toshok to
4962
fix a regression in the fullscreen message code.
4964
2008-07-15 Jb Evain <jbevain@novell.com>
4966
* deployment.cpp|h: start updating Deployment to sl2b2.
4968
2008-07-15 Jb Evain <jbevain@novell.com>
4970
* deployment.h: remove SupportedCulture and SupportedCultureCollection
4971
as they no longer exist.
4972
* value.h, type.h, type-generated.cpp: regenerate.
4974
2008-07-15 Jb Evain <jbevain@novell.com>
4976
* deployment.cpp|h: rename RuntimeVersion DP to RuntimeVersionProperty.
4978
2008-07-15 Jb Evain <jbevain@novell.com>
4980
* list.cpp: set pointers to NULL instead of 0.
4982
2008-07-14 Geoff Norton <gnorton@novell.com>
4984
* mplayer.cpp: If we've already reached the EOF in the audio stream
4985
don't keep processing GetNextBuffer. This was causing us to emit
4986
MediaEnded more than once, causing failures in the test suite.
4988
2008-07-14 Geoff Norton <gnorton@novell.com>
4990
* downloader.cpp: Change completed to check a bool instead of
4991
filename, as filename can now be set before the downloader is in fact
4994
2008-07-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
4996
* media.cpp: Initialize Media with our downloader.
4997
* pipeline.cpp: Media::Open: Check if the source has ended while
4998
waiting for an asfparser. Remove print_stack_traces.
5000
2008-07-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
5002
* internal-downloader.h: Add InternalDownloader::GetType to allow the
5003
derived internal downloader to tell what kind of internal
5005
* file-downloader.h: Implement InternalDownloader::GetType.
5006
* downloader.h: Make the internal downloader publicly accessible. Add a
5007
Downloader::IsAborted method.
5008
* mms-downloader.h, mms-downloader.cpp: Implement
5009
InternalDownloader::GetType. Store the ASFParser we create in the
5010
class instance, so that the pipeline can get it. No need to write
5011
the header packet to the stream anymore.
5012
* media.cpp: Don't unref in AddTickCall callbacks anymore. Fix
5013
calculation of buffering progress to take into account that the
5014
currently available pts might be before the last played pts.
5015
* mplayer.cpp, mplayer.h, downloader.cpp: Don't unref in AddTickCall
5017
* pipeline.cpp, pipeline.h: Make the Media ctor take a Downloader
5018
argument and access the internal mms downloader on that Downloader
5019
to get the asf parser. Remove Read/Seek support from
5020
MemoryQueueSource, and just add a Pop method which returns a
5021
MemorySource for the next packet in the queue. Also add support to
5022
return all the packets in the queue as an array so that the
5023
ASFParser can easily determine the last pts available.
5024
* clock.cpp, clock.h: Use our own thread-safe Queue instead of GList +
5025
g_mutex. Also make TickCall take a ref to the data parameter until
5026
the tick call has been made. This also ensures that the data
5027
parameter gets unreffed correctly when the tick call is never made
5028
(such as when we skip calls due to the TimeManager getting shut
5030
* dependencyobject.cpp: Don't ref in AddTickCall anymore.
5032
2008-07-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
5034
* playlist.cpp: Fix warning.
5036
2008-07-11 Sebastien Pouliot <sebastien@ximian.com>
5038
* font.cpp: (FontFace::LoadGlyph) Use linearHoriAdvance instead
5039
of horiAdvance since the later is rounded to an integer. FixMS
5040
DRT#45 and get better results (less differences) on many font
5043
2008-07-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
5045
* http-streaming.cpp, playlist.cpp: Add missing #include <config.h>
5047
2008-07-11 Sebastien Pouliot <sebastien@ximian.com>
5049
* font.cpp: (font_conic_to) Directly use moon_quad_curve_to
5050
instead of doing it's own second to third order calculation.
5052
2008-07-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
5054
* mplayer.cpp: Don't store target pts from audio thread if we're paused
5055
(audio thread might not have gotten the pause request yet).
5057
2008-07-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
5059
* pipeline.cpp: Don't Signal more than once. I have no idea why the
5060
waiting thread doesn't wake up though.
5061
* mplayer.cpp: Comment out a printf, and always break the play loop
5062
when we're doing rw access.
5064
2008-07-10 Sebastien Pouliot <sebastien@ximian.com>
5066
* geometry.cpp|h: Remove useless code for computing bounds on
5067
PathFigure (now all handled at PathGeometry level).
5069
2008-07-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
5071
* mplayer.cpp: Fix a couple of leaks.
5073
2008-07-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
5075
* pipeline.cpp: There's no need to call AudioPlayer::Initialize
5077
* runtime.cpp, runtime.h: Added
5078
RUNTIME_INIT_AUDIO_NO_MMAP/audio=mmap|rw to runtime flags.
5079
* mplayer.cpp, mplayer.h: Implement support for using RW access mode in
5080
addition to the already supported MMAP access mode for alsa. This
5081
also required a major refactoring to only call alsa on the audio
5082
thread due to buggy pulseaudio hanging us (and the rest of the
5085
2008-07-10 Sebastien Pouliot <sebastien@ximian.com>
5087
* shape.cpp|h: (ComputeStretchBounds) Move shape-specific code
5088
inside each type (and out of the general case).
5090
2008-07-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
5092
* dependencyobject.cpp: Fix leak.
5094
2008-07-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
5096
* debug.cpp: Make valgrind happy.
5098
2008-07-09 Geoff Norton <gnorton@novell.com>
5100
* media.cpp: Ensure that we clear our old loader when we set
5103
2008-07-09 Fernando Herrera <fherrera@novell.com>
5105
* pipeline.cpp: Always set MemoryQueueSource element's size
5106
based to offset+n even for live sources.
5108
2008-07-09 Jeffrey Stedfast <fejj@novell.com>
5110
Fixes for bug #406934
5112
* text.cpp (Glyphs::SetSurface): Override so that we can start
5113
downloading the font as soon as the element gets (re)attached.
5114
(Glyphs::OnPropertyChanged): If we aren't attached, set
5115
uri_changed to true so that when we are (re)attached, we can start
5118
* media.cpp (MediaBase::MediaBase): Init new state variable
5119
'source_changed' to false.
5120
(MediaBase::SetSurface): If source_changed and we are being
5121
attached to a surface, initiate a download.
5122
(MediaBase::SetSource): Set source_changed to false.
5123
(MediaBase::OnPropertyChanged): Handle SourceProperty changes for
5125
(MediaElement::OnPropertyChanged): Don't handle SourceProperty
5126
changes anymore, let MediaBase do that for us.
5127
(Image::OnPropertyChanged): Same.
5129
2008-07-09 Geoff Norton <gnorton@novell.com>
5131
* mms-downloader.cpp: Remove the guard we had against copying
5132
random memory and provide the correct amount of data to the
5133
pipeline from each packet.
5135
2008-07-09 Geoff Norton <gnorton@novell.com>
5137
* downloader.(cpp|h): NotifyFinished is now the finished
5138
event. The filename will be set (if available) in SetFilename.
5139
* media.(cpp|h): Change to progressivly loading the image
5140
where available (fixes popfly). We still fallback to file loading
5141
for the JS downloader case for now.
5143
2008-07-09 Larry Ewing <lewing@novell.com>
5145
* runtime.cpp (Surface::motion_notify_callback): don't call
5146
get_pointer when in windowless mode, I don't think we can trust
5149
* runtime.h (class Surface): make widget public so that we can
5150
peek at it in windowless mode.
5152
2008-07-08 Sebastien Pouliot <sebastien@ximian.com>
5154
* xaml.cpp: Always do a move after closing a path. Fix DRT test
5155
#138 (even if it was passing too!) for a bad (extra) arc.
5157
2008-07-08 Larry Ewing <lewing@novell.com>
5159
* runtime.cpp, runtime.h: remove a bunch of code rot relating to
5160
temporary cairo surfaces that is no longer used.
5162
2008-07-08 Sebastien Pouliot <sebastien@ximian.com>
5164
* shape.cpp: Consider PenLineCap when computing bounds using
5165
cairo. Fix (even if it was passing) some corners in DRT test #7
5167
2008-07-08 Jeffrey Stedfast <fejj@novell.com>
5169
* xaml.h: Reorganized a bit.
5171
2008-07-07 Chris Toshok <toshok@ximian.com>
5173
* dirty.cpp (Surface::AddDirtyElement): don't add elements to the
5174
list if they lack a visual parent (and aren't the toplevel.)
5177
2008-07-07 Larry Ewing <lewing@novell.com>
5179
* shape.cpp (Rectangle::BuildPath): handle some special case
5180
degenerates slightly differently.
5182
Fixes most of test-shape-rectangle-matrix.xaml.
5184
2008-07-07 Larry Ewing <lewing@novell.com>
5186
* shape.cpp (Ellipse::BuildPath): a thickness equal to a width
5187
degenerates in drawing, use the workaround there too.
5189
Fixes shape #5 in test/xaml/assorted/stroke-thickness-test.html
5191
2008-07-03 Larry Ewing <lewing@novell.com>
5193
* geometry.cpp (RectangleGeometry::ComputeBounds): simplify the
5194
rectangle geometry computation. It matches in the sl
5197
* shape.cpp: simplify rectangle and ellipse drawing and bounds so
5198
that they match the sl implementation and deal with degenerate
5199
cases better. Try to avoid setting up a clip rectangle when it
5202
2008-07-07 Chris Toshok <toshok@ximian.com>
5204
[ fixes the media element not showing up in flowers-for-you, bug
5206
* media.h, media.cpp: move Image::use_img_{width,height} and
5207
Image::updating into MediaBase and rename then
5208
use_media_{width,height} and updating_size_from_media.
5209
(MediaElement::OnPropertyChanged) duplicate the
5210
WidthProperty/HeightProperty stuff here (c&p from
5211
Image::OnPropertyChanged - this should probably just be refactored
5212
to MediaBase. will do this later).
5213
(MediaBase::ComputeBounds): we don't need the subclass
5214
ComputeBounds methods. Just put it here, as they share the same
5216
(MediaElement::SetMedia): remove the call to ComputeBounds here,
5217
since the new block of use_media_{width,height} checks will call
5218
UpdateBounds if they need to.
5220
2008-07-07 Fernando Herrera <fherrera@novell.com>
5224
* pipeline.h: Implement MemoryQueueSource::NotifyFinished so
5225
we don't wait for new packets when the downloader has finished.
5226
Also calculate size based on offset + n for mms streams, so the
5227
ASFReader can check Eof based on positions.
5229
2008-07-05 Chris Toshok <toshok@ximian.com>
5231
* dirty.cpp: remove the down_dirty_node_succ and
5232
up_dirty_node_pred code from here. it arguably helped speed up
5233
insertions into the dirty lists, but at the cost of lots of
5234
dangling pointers. we always walk up the tree looking for a
5235
down/up node. works, and is much simpler. and fixes bug #362561.
5237
* uielement.h, uielement.cpp: remove the down_dirty_node_succ and
5238
up_dirty_node_pred code.
5240
2008-07-04 Sebastien Pouliot <sebastien@ximian.com>
5242
* xaml.cpp: Avoid a SIGSEGV in dependency_object_set_attributes
5243
when the atchname is invalid.
5245
2008-07-04 Chris Toshok <toshok@ximian.com>
5247
* runtime.cpp (Surface::EmitEventOnList): don't leak the event
5250
2008-07-03 Chris Toshok <toshok@ximian.com>
5252
* animation.h, animation.cpp: the *KeyFrame KeySplineProperty
5253
values need to be initialized in the ctors, not in animation_init.
5255
2008-07-03 Sebastien Pouliot <sebastien@ximian.com>
5257
* shape.cpp: Add back the cairo_[save|restore] in ::Draw methods
5258
since they are needed for stretching.
5260
2008-07-03 Jeffrey Stedfast <fejj@novell.com>
5262
* text.cpp (TextBlock::Render): Check to see if we need to
5263
calculate layout before painting.
5265
2008-07-03 Sebastien Pouliot <sebastien@ximian.com>
5267
* moon-path.c|h: Draw ellipse clockwise to match Silverlight.
5268
Also remove the closing point since it's not needed (but that was
5269
not the problem, just a small memory saving).
5270
[Re-fix bug #391684]
5272
2008-07-02 Jeffrey Stedfast <fejj@novell.com>
5274
* text.h (TextBlock::GetBoundingWidth/Height): Use
5275
GetValueNoDefault() so we don't get 0.0 for the width/height if
5278
Fixes for bug #404858
5280
* runtime.cpp: Added SHOW_TEXTBOXES bit flag.
5282
* layout.cpp: Don't keep track of bbox_width and height anymore,
5283
it was never actually set to anything other than
5284
actual_width/height anyway.
5286
* text.cpp (TextBlock::Paint): If SHOW_TEXTBOXES, render a green
5287
bounding box around the text (this is to aid in debugging text
5288
which may have a transform applied to it).
5290
* text.h (class TextBlock): Removed bbox_width and
5291
bbox_height. These were never anything other than
5292
actual_width/height respectively anyway.
5293
(TextBlock::GetBoundingWidth): Return the FrameworkElement::Width
5294
if set, else the ActualWidth.
5295
(TextBlock::GetBoundingHeight): Same.
5297
2008-07-02 Sebastien Pouliot <sebastien@ximian.com>
5299
* shape.cpp: Remove cairo_save|restore from [Shape|Path]::Draw
5300
since their callers already do this. Simplify a bit Shape::
5301
InsideObject to check ret only if a Clip is present (instead of
5302
always checking it).
5304
2008-07-02 Chris Toshok <toshok@ximian.com>
5306
* runtime.h, runtime.cpp: get rid of the cursor_func,
5307
invalidate_func, render_func stuff. Instead use 3 virtual
5308
methods: SetCursor(GdkCursor*), Invalidate(Rect), and
5309
ProcessUpdates(). That way the plugin can instantiate a
5310
WindowlessSurface which overrides those methods instead of having
5311
the stupid callback mechanism we had.
5313
2008-07-02 Chris Toshok <toshok@ximian.com>
5315
* runtime.h, runtime.cpp: virtualize SetCursor so the plugin can
5316
override the behavior.
5318
2008-07-02 Sebastien Pouliot <sebastien@ximian.com>
5320
* moon-path.c: Revert ordering change I made in r105586 to fix
5321
a clipping issue (fillrule bug) as this breaks stroke dash (which
5322
confirm the original behaviour was the correct one).
5323
[Fix most of #404858]
5325
2008-07-01 Jeffrey Stedfast <fejj@novell.com>
5327
Fixes for bug #405514.
5329
* text.cpp (TextBlock::Layout): If the Text property is empty,
5330
default the actualHeight to the font's height.
5331
(TextBlock::OnPropertyChanged): If the FrameworkElement::Width
5332
property changes, we need to set dirty to true (in most cases) so
5333
that the actual width/height values are recalculated.
5335
2008-06-30 Sebastien Pouliot <sebastien@ximian.com>
5337
* shape.cpp|h: Use Cairo by default to ComputeBounds. In effect
5338
this change Polyline and Polygon to use Cairo instead of (faster
5339
but less acurate) custom code. In reality PathGeometry (PML) is
5340
much more used than those Poly[line|gon] and (upcoming) caching
5341
negate much of the impact.
5342
* geometry.cpp: Use the more precise (and surviving)
5343
calc_line_bounds function that accept PenLineCap.
5345
2008-06-30 Jeffrey Stedfast <fejj@novell.com>
5347
* shape.cpp (Shape::OnPropertyChanged): If the Stroke property
5348
chanegs between null and an actual brush (in either direction),
5349
invalidate the cached path because the shape may need to
5350
recalculate the stroke offsets.
5352
2008-06-30 Sebastien Pouliot <sebastien@ximian.com>
5354
* xaml.cpp: Move reading the first point of C|Q beziers into the
5355
loop. Fix quite a few misrendering for http://xmldocs.net/ball
5356
[Partial fix for #404858]
5358
2008-06-30 Chris Toshok <toshok@ximian.com>
5360
* dirty.cpp: add all the ordering smarts to keep the two dirty
5361
lists partially sorted. hopefully this won't be a huge
5364
* uielement.h, uielement.cpp: add 2 new dirty pointers. a "succ"
5365
pointer for the down dirty list, and a "pred" for the up dirty
5368
2008-06-30 Jeffrey Stedfast <fejj@novell.com>
5370
* list.cpp (List::InsertBefore): Handle a NULL @before.
5372
2008-06-30 Geoff Norton <gnorton@novell.com>
5374
* mms-downloader.cpp: Rework Fernando's incomplete packet guard to be a little
5375
more sane while we determine how to fix this properly.
5377
2008-06-30 Jeffrey Stedfast <fejj@novell.com>
5379
* shape.cpp (Shape::ComputeShapeBounds): Reverted my previous fix,
5381
(Ellipse::ComputeShapeBounds): Same.
5383
2008-06-30 Michael Dominic K. <mdk@mdk.am>
5385
* animation.cpp: Make sure our default KeySplines parameters are correct
5386
to generate a linear dynamics curve as Silverlight. Fixes #404850.
5388
2008-06-30 Fernando Herrera <fherrera@novell.com>
5390
* pipeline.cpp: don't use g_queue_clear as is present only in glib >= 2.14
5392
2008-06-30 Fernando Herrera <fherrera@novell.com>
5395
* pipeline.cpp: Implement the packet writer MemoryQueueSource.
5399
* media.cpp: Use MemoryQueueSource for all mms streams
5400
* mms-downloader.cpp: Don't try to parse/write incomplete data packets.
5402
2008-06-29 Chris Toshok <toshok@ximian.com>
5404
* panel.cpp (Panel::OnCollectionChanged): when the ZIndex of a
5405
child changes, invalidate them here.
5407
* dirty.cpp (Surface::ProcessDownDirtyElements): and remove the
5408
subtree invalidate from the zindex processing here.
5410
2008-06-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
5412
* pipeline-ffmpeg.cpp: Add debug spew.
5413
* media.cpp: Remove debug spew.
5415
2008-06-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
5417
* media.cpp, media.h: Add streamed markers to the media element on the
5420
2008-06-28 Geoff Norton <gnorton@novell.com>
5422
* downloader.h: The finished event raises a success condition now
5423
so that we can notify failure on unsuccessful downloads.
5425
2008-06-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
5427
* mplayer.h: Add AudioPlayer::Drain to drain whatever data the audio
5428
has stored, now called by the MediaPlayer when seeking. Execute the
5429
'seeking complete' logic on the main thread (marshalling
5430
SeekCallback to the main thread). Always use the thread-safe
5431
AddTickCallSafe instead of AddTickCall, and override
5432
EventSurface::SetSurface to lock/unlock the required locks.
5433
* mplayer.cpp: Add AudioPlayer::Drain to drain whatever data the audio
5434
has stored, now called by the MediaPlayer when seeking. Execute the
5435
'seeking complete' logic on the main thread (marshalling
5436
SeekCallback to the main thread), and set the previous_position on
5437
the MediaElement to the seeked-to position when the seek is
5438
finished. Always use the thread-safe AddTickCallSafe instead of
5439
AddTickCall, and override EventSurface::SetSurface to lock/unlock
5441
* dependencyobject.cpp, dependencyobject.h: Split AddTickCall into a
5442
thread-safe version (AddTickCallSafe) and don't do any locking in
5443
AddTickCall. Add SetSurfaceLock/Unlock so that types overriding
5444
SetSurface can do the proper locking.
5445
* media.cpp, media.h: CheckMarkers: Don't try to detect seeking by
5446
comparing to/from pts, MediaPlayer will now set previous_position
5447
correctly when seeking. AdvanceFrame: only check markers if we
5448
advanced or if we're not seeking. SetSurface: add proper locking,
5449
and use AddTickCallSafe where appropiate.
5451
2008-06-27 Larry Ewing <lewing@novell.com>
5453
* uielement.cpp (UIElement::OnPropertyChanged): opcacity mask
5454
affects the subtree as well.
5456
2008-06-27 Larry Ewing <lewing@novell.com>
5458
* uielement.cpp (UIElement::OnPropertyChanged): on things that can
5459
potentially be trapped by the Invalidate visibility check we need
5460
to invalidate the whole subtree before we start processing the
5461
dirty lists to avoid ordering issues.
5463
Fixes test/xaml/assorted/rendering-glitches2.html.
5465
2008-06-27 Chris Toshok <toshok@ximian.com>
5467
* panel.cpp (Panel::FrontToBack): add a special case for
5468
non-translucent (but NULL background) panels - we don't render
5471
2008-06-27 Larry Ewing <lewing@novell.com>
5473
* panel.cpp (Panel::FrontToBack): treat opacity specially for
5474
panel since we need the right subtree render region in PreRender.
5476
2008-06-27 Jeffrey Stedfast <fejj@novell.com>
5478
* downloader.cpp (dummy_downloader_create_web_request): Return
5479
NULL to fix a compile warning about control reaching the end of a
5482
2008-06-27 Stephane Delcroix <sdelcroix@novell.com>
5484
* downloader.[h|cpp]: move browserrequest/response from the plugin
5485
as downloaderrequest/response.
5487
2008-06-26 Chris Toshok <toshok@ximian.com>
5489
* runtime.h (RUNTIME_INIT_DESKTOP, RUNTIME_INIT_BROWSER): enable
5492
* shape.h, shape.cpp (Shape::IsCandidateForCaching): remove the
5493
condition that was keeping small surfaces from being cached, so
5494
bubblemark gets a win from this (from ~38 to 70+ fps on my
5496
(Shape::ShiftPosition): if we have a cached surface, set the
5497
device offset to mirror the new bounds x/y.
5499
2008-06-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
5501
* clock.h, clock.cpp, dependencyobject.h, downloader.cpp,
5502
dependencyobject.cpp, mplayer.h, media.h, mplayer.cpp, media.cpp:
5503
Change AddTickCall to take a TickCallHandler (EventObject*)
5504
function pointer and a EventObject * tick_data instead of untyped
5505
function pointer/tick_data.
5507
2008-06-26 Chris Toshok <toshok@ximian.com>
5509
* dependencyobject.h,
5510
dependencyobject.cpp (DependencyProperty::DependencyProperty):
5511
convert the name to downcase prior to registering and prior to
5512
calling g_hash_table_lookup to remove the casecmp overhead from
5513
our key comparisons. store the converted name in DP::hash_key.
5515
* runtime.h, runtime.cpp: remove strcase_equal (use g_strcasecmp)
5518
* type.cpp: strcase_equal -> g_strcasecmp.
5520
* playlist.cpp (PlaylistParser::OnStartElement): same.
5522
2008-06-26 Jeffrey Stedfast <fejj@novell.com>
5524
* pipeline.cpp (ASXDemuxerInfo::Supports): Fix broken boolean
5525
logic/compiler warning and at the same time simplified.
5527
* shape.cpp (Shape::ComputeShapeBounds): Need to take stroke
5528
thickness into consideration. Fixes bug #400657.
5529
(Ellipse::ComputeShapeBounds): Same.
5531
2008-06-26 Chris Toshok <toshok@ximian.com>
5533
* dirty.cpp (Surface::ProcessDownDirtyElements): add code to
5534
re-sort the children by zindex.
5536
* dirty.h (enum DirtyType): add DirtyChildrenZIndices.
5538
* panel.cpp (Panel::OnCollectionChanged): don't resort-by-zindex
5539
here. just add it to the dirty list.
5541
* transform.h, transform.cpp: move the OnSubPropertyChanged method
5542
to MatrixTransform, so we can notify our listeners with the right
5545
2008-06-26 Chris Toshok <toshok@ximian.com>
5547
* transform.h, transform.cpp (Transform::OnSubPropertyChanged): we
5548
need this to deal with sub-dependencyobjects of transforms (in
5549
this case, MatrixTransform's Matrix object.) when you set
5550
properties on these subobjects, we need to update the transform.
5552
2008-06-26 Chris Toshok <toshok@ximian.com>
5554
* brush.h, brush.cpp (Brush::OnSubPropertyChanged): add this (i
5555
think it used to be there and was removed by me in a flurry of
5556
propertychanged event fixing way back) to take care of brushes
5557
properly causing the uielement to invalidate when the Brush's
5558
transform/relativetransform changes.
5560
2008-06-26 Sebastien Pouliot <sebastien@ximian.com>
5562
* geometry.h: #ifdef out GeometryFlags until we start using it.
5563
* shape.cpp: Remove unused global variable.
5565
2008-06-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
5567
* mplayer.cpp: AudioFinished: Check if we still have audio when the
5568
callback is reached. Fixes test-double-stop.html.
5570
2008-06-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
5572
* mplayer.cpp: When calculating start_time take into account current
5573
position. Fixes test-video-only-seek.html (and fox seeking without
5576
2008-06-25 Jeffrey Stedfast <fejj@novell.com>
5578
* mms-downloader.cpp: Got rid of overuse of this-> and some int vs
5581
2008-06-25 Sebastien Pouliot <sebastien@ximian.com>
5583
* geometry.cpp: Cache bounds, both logical and "physical" for
5584
PathFigure. This reduce the number of time we need to call
5585
cairo_[path|stroke|fill]_extents functions and speed up many
5587
* geometry.h: Add stuff needed for geometry.cpp changes.
5588
* xaml.cpp: Change geometry_from_str to directly create a
5589
moon_path and avoid the PathFigure[Collection] DO. This match
5590
how Silverlight handle Path Markup Language (PML) and reduce
5591
memory requirements when huge PML are used.
5593
2008-06-24 Chris Toshok <toshok@ximian.com>
5595
* shape.cpp (calc_offsets): we don't want to divide by the sin,
5596
because as angle approaches either 0, PI, or PI/2, the sin will
5597
approach 0, and therefore the deltas will grow very, very large.
5598
Turns out multiplying is what we want.
5600
2008-06-24 Larry Ewing <lewing@novell.com>
5602
* runtime.cpp (Surface::Resize): set the width and height properly
5603
in the windowless case, let the widget resize logic handle it
5605
(Surface:render_cb): don't process dirty elements if we are in a
5606
zombie state, just clear the dirty lists and move on. Fixes a
5607
crash we were seeing when calling ForceRender on a zombie plugin.
5609
2008-06-24 Chris Toshok <toshok@ximian.com>
5611
* runtime.cpp: in the switch from function pointer to integer in
5612
the HandleMouseEvent stuff, I didn't catch that C++ apparently
5613
doesn't flag NULL as different from 0. This was causing the
5614
"HandleMouseEvent (NULL" to become effectively become
5615
"HandleMouseEvent (UIElement::DestroyedEvent" which of course
5616
breaks all sorts of things. In bug 401884 it was causing the
5617
namescope to drop the named item from its hashtable, causing the
5618
tattoo needle to not move vertically.
5620
2008-06-23 Chris Toshok <toshok@ximian.com>
5622
* uielement.cpp (UIElement::PreRender): comment from the code is
5625
we need this check because ::PreRender can (and will) be called
5626
for elements with empty regions.
5628
The region passed in here is the redraw region intersected with
5629
the render bounds of a given element. For Panels with no
5630
width/height specified in the xaml, this region will be
5631
empty. (check panel.cpp::FrontToBack - we insert the ::PreRender
5632
calling node if either the panel background or any of the children
5633
intersect the redraw region.) We can't clip to the empty region,
5634
obviously, as it will keep all descendents from drawing to the
5637
2008-06-23 Chris Toshok <toshok@ximian.com>
5639
* uielement.h, uielement.cpp (UIElement::ShiftPosition): virtualize
5640
the "bounds.x = p.x; bounds.y = p.y" code, since subclasses have
5641
other, more specialized bounds that also need updating.
5643
* panel.h, panel.cpp (Panel::ShiftPosition): new method, chain up
5644
to UIElement::ShiftPosition and also update bounds_with_children.
5646
* stylus.h, stylus.cpp (InkPresenter::ShiftPosition): new method,
5647
chain up to Canvas::ShiftPosition, and also update render_bounds.
5649
2008-06-23 Chris Toshok <toshok@ximian.com>
5651
* canvas.cpp (Canvas::OnSubPropertyChanged): allow switching
5652
between UpdatePosition and UpdateTransform according to the
5653
updatepos=yes/no override.
5655
* runtime.h, runtime.cpp: add updatepos=yes/no override.
5657
2008-06-23 Michael Dominic K. <mdk@mdk.am>
5659
* clock.cpp: Fixing a problem with repeating animations. Fixes #401983.
5661
2008-06-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
5663
* media.cpp: Don't check markers if from > to, no markers will ever be
5664
found in that interval. Also detect forward seeks by checking the
5665
difference between from and to, if difference > 1s, behave as a
5666
seek (and don't emit markers in that interval).
5667
* pipeline-ffmpeg.cpp: Give more missing information to ffmpeg.
5669
2008-06-20 Jeffrey Stedfast <fejj@novell.com>
5671
* animation.h: Added "Property Accessor" comments and grouped the
5672
property accessors, etc.
5674
* dependencyobject.cpp (EventObject::SetSurface): Reworded debug
5676
(EventObject::AddTickCall): Same.
5678
* dependencyobject.h (EventObject::GetSurface): Don't amke this
5679
virtual, nothing overrides it currently.
5681
2008-06-20 Michael Dominic K. <mdk@mdk.am>
5686
* clock.h: When detaching/reattaching to Surface execute a special
5687
handler on clocks that (in case of animation clocks) removes the update
5688
property handler. This fixes the (regressed some time ago)
5689
StoryboardEnterLeave semantics test.
5691
2008-06-19 Jackson Harper <jackson@ximian.com>
5694
* type-generated.cpp: Make sure the content property is set.
5696
2008-06-19 Larry Ewing <lewing@novell.com>
5698
* uielement.cpp (UIElement::PreRender): work around what appears
5699
to be a bug in the ftb logic by not clipping to the render region.
5701
* clock.cpp (SystemTimeSource::Start): make the timer priority
5702
DEFAULT again since otherwise we can get into starvation
5705
* uielement.cpp (UIElement::PreRender): don't save/restore around
5706
the clip changes, they restrict the group bounds and speed up
5707
opacity related masking substantially. (See bubblemark).
5709
2008-06-19 Jeffrey Stedfast <fejj@novell.com>
5711
* font.cpp (FontFace::GetExtents): Only set face pixel size if the
5712
requested size is not what we already have set.
5713
(FontFace::LoadGlyph): Same.
5714
(FontFace::Kerning): Need to set pixel sizes here or our kerning
5717
2008-06-19 Chris Toshok <toshok@ximian.com>
5719
* canvas.cpp (Canvas::OnSubPropertyChanged): call
5720
ui->UpdatePosition instead of UpdateTransform. Since
5721
UpdateTransform calls UpdateBounds, this should save us a
5722
sometimes costly (in the case of Shape's) trip through
5725
* uielement.h, uielement.cpp: Add UpdatePosition (adds the dirty
5726
node) and ComputePosition (called from ProcessDownDirtyElements.)
5727
(UIElement::ComputePosition): Apply the inverse absolute transform
5728
to the bounds x/y, compute the new transform, then reapply it to
5729
the bounds x/y to compute our new position.
5730
(UIElement::UpdateTransform): clear the DirtyPosition flag.
5731
(UIElement::UpdatePosition): only add the DirtyPosition flag if
5732
the Dirty*Transform flags aren't already set.
5735
* dirty.cpp (Surface::ProcessDownDirtyElements): add blocks for
5736
Clip, LocalClip, and Position (only Position is implemented).
5738
* dirty.h: clean up the enum some, and add 3 new passes (only one
5739
of which, DirtyPosition, is implemented).
5741
2008-06-19 Jeffrey Stedfast <fejj@novell.com>
5743
* transform.cpp: Started adding property accessor methods.
5745
* canvas.cpp (Canvas::[G,S]etLeft): Implemented.
5746
(Canvas::[G,S]etTop): Same.
5748
* uielement.cpp (UIElement::[G,S]etLeft): Moved to Canvas.
5749
(UIElement::[G,S]etTop): Same.
5751
2008-06-19 Chris Toshok <toshok@ximian.com>
5753
* rect.h: add Get{Top,Bottom}{Left,Right} methods.
5755
* point.h, point.cpp: add Transform method.
5757
2008-06-19 Michael Dominic K. <mdk@mdk.am>
5759
* animation.cpp: In a *AnimationUsingKeyFrames if we don't have any
5760
keyframes specified the duration is 0, not Automatic. This fixes the
5761
http://www.etonline.com/silverlight/grammys50/ website.
5763
2008-06-18 Sebastien Pouliot <sebastien@ximian.com>
5765
* geometry.cpp: Use the new moon-path functions for ArcSegment
5766
and QuadraticBezierSegment
5767
* moon-path.c: Change some validation to use g_return_if_fail
5769
2008-06-18 Jeffrey Stedfast <fejj@novell.com>
5771
* runtime.cpp (Surface::ShowFullScreenMessage): Simplified to use
5774
* control.cpp (Control::GetTransformFor): Simplified.
5776
* uielement.cpp (UIElement::SetLeft): Added for setting
5777
Canvas.Left property.
5778
(UIElement::GetLeft): Same.
5779
(UIElement::SetTop): Same.
5780
(UIElement::GetTop): Same.
5782
* canvas.cpp (Canvas::GetTransformFor): Simplified.
5784
2008-06-18 Sebastien Pouliot <sebastien@ximian.com>
5786
* shape.cpp: When possible (i.e. if we won't change the bounds
5787
anyway) avoid the second pass inside Shape::ComputeStretchBounds.
5788
This reduce (but does not eliminate) a BIG bottleneck for SL
5789
applications with many path using stretch (e.g. SL world).
5791
2008-06-18 Geoff Norton <gnorton@novell.com>
5793
* media.cpp: The state when Seeking should not be changed to Stopped.
5796
2008-06-17 Jeffrey Stedfast <fejj@novell.com>
5798
Partial fix for bug #400657.
5800
* dependencyobject.cpp (DependencyObject::IsValueValid): If the
5801
value is a null dependency object, don't check that the types
5802
match - it doesn't matter.
5804
* color.cpp (color_to_string): New convenience utility function to
5805
aid in debugging. Returns a pointer to a static string buffer, so
5808
2008-06-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5810
* playlist.cpp, playlist.h: Only unref/null out the media in
5811
PlaylistEntry::Stop if we're a playlist and not if we're a single
5814
2008-06-17 Sebastien Pouliot <sebastien@ximian.com>
5816
* moon-path.c|h: Add moon_quad_curve_to and moon_arc_to so they
5817
can be reused without a PathFigure-derived instance. Refactor
5818
code to expand/realloc paths to reduce duplication.
5820
2008-06-16 Chris Toshok <toshok@ximian.com>
5822
* uielement.cpp (UIElement::OnPropertyChanged): call
5823
Invalidate(GetSubtreeBounds()) and UpdateBounds() directly instead
5825
(UIElement::OnSubPropertyChanged): same.
5827
2008-06-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
5829
* playlist.cpp: When Merging items only merge duration if the source
5831
* media.cpp: MediaElement::MediaOpened: when setting the media on the
5832
current item in the playlist, make sure we set the media on a
5833
PlaylistEntry, not on a (nested) Playlist.
5835
2008-06-16 Jeffrey Stedfast <fejj@novell.com>
5837
* yuv-converter.cpp (YUVConverter::YUVConverter): Replace
5838
g_error() with g_warning(). There's really nothing else we can do
5840
(YUVConverter::Convert): Check if rgb_uv is NULL, if it is try
5841
allocating it again? Maybe some resources have been released since
5842
the ctor was called?
5844
* pipeline-ffmpeg.cpp (FfmpegDecoder::DecodeFrame): Replace
5845
g_error() with a g_warning() and return MEDIA_OUT_OF_MEMORY error.
5847
* mplayer.cpp (MediaPlayer::Open): Change g_error() into a
5848
g_warning() and return fail.
5850
2008-06-16 Michael Dominic K. <mdk@mdk.am>
5852
* clock.cpp: Don't do the ExtraRepeat action when seeking.
5854
2008-06-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
5856
* media.cpp, media.h: Move Play/Pause due to AutoPlay logic into one
5858
* playlist.cpp: When we stop, clear out our media. This fixes an issue
5859
where we didn't correctly download a file if it was stopped after
5860
it was opened, but before fully downloaded, and then restarted.
5862
2008-06-13 Jeffrey Stedfast <fejj@novell.com>
5864
* dependencyobject.cpp (include): stdlib.h for strtol()
5866
Fix for jumping to the last page in PageTurn.
5868
* uielement.cpp (UIElement::OnSubPropertyChanged): Need to call
5869
UpdateTotalRenderVisibility() when the clip changes.
5871
2008-06-13 Michael Dominic K. <mdk@mdk.am>
5875
* moon-curves.h: Cleaning up the KeySpline curve implementation a bit.
5877
2008-06-13 Michael Dominic K. <mdk@mdk.am>
5883
* moon-curves.h: First version of the new algho for calculating the "y
5884
at x" for KeySplines, now with 200% more accuracy guaranteed! Fixes the
5885
AnimationMatrix2 test.
5887
2008-06-12 Jackson Harper <jackson@ximian.com>
5889
* xaml.cpp: Remove some cruft.
5890
- Rename Custom to Managed
5891
- We don't need element maps for the namespaces anymore
5892
- Deploy can go into the default list of namespaces.
5894
2008-06-12 Fernando Herrera <fherrera@novell.com>
5896
* playlist.cpp: Parse ASX2 files using GKeyFile API to have sane NULL
5897
terminated strings. Also keep any uri paramson the mms Ref.
5899
2008-06-12 Jackson Harper <jackson@ximian.com>
5901
* xaml.cpp: Use the new stuff for creating wrapped types.
5902
- make XamlElementInstance pure virtual.
5904
2008-06-12 Jackson Harper <jackson@ximian.com>
5906
* xaml.cpp: Clean up API for creating wrapped dependency objects.
5908
2008-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
5910
* type.cpp: Fix type verification to not check 2.0 types for 1.0
5913
2008-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
5915
* media.cpp, media.h: Don't AutoPlay playlists which have already been
5916
autoplayed. Make Play/Pause/Stop/Seek async.
5917
* playlist.cpp, playlist.h: Add a AutoPlayed field to Playlist.
5919
2008-06-12 Chris Toshok <toshok@ximian.com>
5921
* control.cpp, control.h, deployment.h, frameworkelement.h,
5922
grid.h, runtime.cpp, size.h, type-generated.cpp, type.h,
5923
uielement.h, value.h, xaml.cpp: I was a little too aggressive. we
5924
can't use SL_2_0 in most places in headers (or rather, shouldn't).
5925
It might be a good idea to remove all references to it, but this
5926
at least gets the ms-tests running and passing again --with-mono.
5927
Switch to using SL_2_0 around the #includes in the .cpp files, and
5928
in value.h/type.h just include the 2.0 types.
5930
* usercontrol.h, usercontrol.cpp: split out the code from
5931
control.h, control.cpp here.
5933
* Makefile.am: add usercontrol.[h,cpp]
5935
* typegen/typegen.cs: fix up the header emission.
5937
2008-06-12 Sebastien Pouliot <sebastien@ximian.com>
5939
* geometry.cpp|h: Refactor work between PathGeometry and PathFigure
5940
ComputeBounds to avoid creating/destroying a new cairo context for
5941
each figure (it's now shared). Refactor PathFigure::Build not to scan
5942
the path list twice and rely on moon-path automatic size increase.
5943
Also avoid cairo_fill_extents if the path can't be filled or no fill
5946
2008-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
5948
* runtime.cpp: CreateDownloader: don't allow creating downloaders if we
5949
can't get a surface, nor if the surface is a zombie.
5950
* text.cpp, playlist.cpp, media.cpp: Surface::CreateDownloader may
5951
return NULL now, add a null check.
5953
2008-06-11 Jackson Harper <jackson@ximian.com>
5955
* xaml.cpp: Move GetKind to the info. Doesn't make sense for
5956
Instances to have a kind (they can access their kind from their
5959
2008-06-11 Sebastien Pouliot <sebastien@ximian.com>
5961
* geometry.cpp: Remove unneeded cairo_save|restore inside Draw
5962
methods (since Shape::Draw already does it) and remove
5963
cairo_set_fill_rule (since Shape::Fill does it).
5965
2008-06-11 Jackson Harper <jackson@ximian.com>
5967
* xaml.cpp: Clean up the namespace map when destroying the parser.
5969
2008-06-11 Sebastien Pouliot <sebastien@ximian.com>
5971
* geometry.h: Fix GeometryGround::ComputeBounds so it does
5972
not always returns 0,0,0,0 (from Geometry).
5974
2008-06-11 Geoff Norton <gnorton@novell.com>
5976
* downloader.cpp: Only Abort if we have a surface.
5977
* runtime.cpp: Detach the downloaders when we zombify.
5979
2008-06-11 Sebastien Pouliot <sebastien@ximian.com>
5981
* moon-path.c: Reorder ellipse points so the fill rule can be
5982
applied correcly (e.g. filling or clipping).
5984
2008-06-11 Michael Dominic K. <mdk@mdk.am>
5986
* clock.cpp: Fixing seeking on nested storyboards. Fixes
5987
seek-test-nested-storyboard.xaml in assorted and one more
5988
AnimationMatrix2 block. Now only one left to fix...
5990
2008-06-10 Geoff Norton <gnorton@novell.com>
5992
* mms-downloader.cpp: Reset our internal state after seeking so
5993
we can resume the stream in the right place.
5995
2008-06-10 Geoff Norton <gnorton@novell.com>
5997
* mms-downlodaer.cpp: Remove some improperly commited debug code
5999
2008-06-10 Chris Toshok <toshok@ximian.com>
6001
* control.h, control.cpp, deployment.h, uielement.h,
6002
uielement.cpp, frameworkelement.h, value.h, grid.h, size.h, xap.h,
6003
runtime.cpp: wrap everything SL2.0 with INCLUDE_MONO_RUNTIME (for
6004
now. I'll be changing that ifdef soon.) Also, mark all 2.0
6005
specific types with the following typegen pragma: /*
6006
@SilverlightVersion="2" */ so that the generated files contain the
6007
proper ifdefs as well.
6009
* type-generated.cpp, type.h, value.h: resync with new ifdefs.
6011
2008-06-10 Jackson Harper <jackson@ximian.com>
6013
* dependencyobject.cpp: Add todo for Name validation.
6015
2008-06-11 Fernando Herrera <fherrera@novell.com>
6017
* xaml.cpp: Accept numbers and strings representing numbers as
6018
values for BOOL properties. Also accept "true" and "false" case
6020
* playlist.cpp: ASX2 files can use ?MSWMExt=.asf and &MSWMExt=.asf
6021
ending uris, so just check for "MSWMExt=.asf".
6022
Fixes hsn.tv, bug #362328.
6024
2008-06-10 Jackson Harper <jackson@ximian.com>
6026
* xaml.cpp: ContentProperty should be on the ElementInfo not the
6027
ElementInstance, since you can only have one content property per
6030
2008-06-10 Geoff Norton <gnorton@novell.com>
6032
* mms-downloader.cpp: Fix some looping logic when seeking (partially
6033
fixed). Fix a typo when enumerating the streams array to not exceed
6036
2008-06-10 Jackson Harper <jackson@ximian.com>
6038
* xaml.cpp: Remove default prefix override check. This must have
6039
only been in one of the early versions of SL because I can't get
6040
SL to do it anymore. This helps fix video page turn.
6042
2008-06-10 Jackson Harper <jackson@ximian.com>
6044
* xaml.cpp: Remove x:Code since this isn't used in SL 2.0.
6046
2008-06-10 Chris Toshok <toshok@ximian.com>
6048
* dependencyobject.h, dependencyobject.cpp: split the Emit()
6049
machinery up into 3 methods. StartEmit, DoEmit, and FinishEmit.
6050
StartEmit returns a context object passed to the other two
6053
* runtime.h, runtime.cpp: use the new
6054
EventObject::{Start,Do,Finish}Emit methods to make event bubbling
6055
more transactional - any changes made to the listener list for the
6056
event we're bubbling up, for any element in our input list, are
6057
delayed until after the event has propagated. Fixes our test id
6058
191 (test-bubbling.html) as well as bug #351568.
6060
2008-06-10 Sebastien Pouliot <sebastien@ximian.com>
6062
* shape.cpp|h: Don't call ComputeShapeBounds(true) unless we need
6063
its value (i.e. Stretch != None). Make Shape::ComputeShapeBounds
6064
reuse it's physical bounds for logical instead of computing it
6067
2008-06-10 Michael Dominic K. <mdk@mdk.am>
6072
* clock.h: Replacing CreateClock with AllocateClock implementation and
6073
making sure the latter is called for Storyboards. That fixes the nested
6074
storyboards inside other storyboards...
6075
test-animation-nested-storyboard.xaml and one step more for
6078
2008-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
6080
* dependencyobject.h: Another greppable comment.
6082
2008-06-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
6084
* dependencyobject.cpp: Add comment to assert which shows up while
6087
2008-06-06 Geoff Norton <gnorton@novell.com>
6089
* file-downloader.h: Fix a bug between argument sending and class
6090
variables that was causing us to free and strdup the free'd pointer.
6092
2008-06-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
6094
* mms-downloader.cpp: Return NULL from GetDownloadedFilename and
6097
2008-06-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
6101
2008-06-06 Jeffrey Stedfast <fejj@novell.com>
6103
* xaml.cpp: Don't use the c++ ctor initializer stuff, it breaks if
6104
members change order (like it did recently).
6105
(wrap_dependency_object): Get rid of unused variables.
6107
* media.cpp (Image): Made bools share a single int.
6109
2008-06-06 Jackson Harper <jackson@ximian.com>
6111
* xaml.cpp: Use the Type system for looking up elements, make
6112
things a little more OOP so we can easily add some of the 2.0
6113
features. Note: This is going to break x:Code and deployment
6116
2008-06-05 Geoff Norton <gnorton@novell.com>
6118
* downloader.cpp, downloader.h: More refactoring to hide the zip related
6119
details in the FileDownloader. NOTE: The exposure of the file downloader
6120
to the Text side is ugly and should be cleaned up.
6121
* text.cpp: Access obfuscated font details thru the FileDownloader API.
6122
* file-downloader.cpp, mms-downloader.cpp, internal-downloader.h: Expose
6123
the filename thru the downlodaer api.
6124
* downloader.cpp: No longer leak InternalDownloaders.
6126
2008-06-05 Geoff Norton <gnorton@novell.com>
6128
* mms-downloader.cpp, mms-downloade.h: Implement time measuring of
6129
the $P packet pair, and implement and initial algorithm to do proper
6130
bandwidth stream selection.
6132
2008-06-05 Geoff Norton <gnorton@novell.com>
6134
* downloader.cpp: Remove some left over unused variables, and the
6135
is_valid_mms_type inline.
6137
2008-06-05 Geoff Norton <gnorton@novell.com>
6139
* Makefile.am: Add file-downloader and mms-downloader to the build.
6140
* file-downloader.(cpp|h): This class is a implementation of the new
6141
InternalDownloader class utilized by the downloader to differentiate
6142
between MMS and regular requests. We should move the zip logic here.
6143
* mms-downloader.(cpp|h): This class is the MMS implementation of the
6144
InternalDownloader class.
6145
* internal-downloader.h: Route callbacks from the plugin thru this class
6146
to their appropriate file (NPStream) / MMS based implementations.
6147
* downloader.cpp: Update the API to call the InternalDownloader based
6148
representation instead of large if (mms) branches.
6150
2008-06-05 Geoff Norton <gnorton@novell.com>
6152
* downloader.cpp, downloader.h: Initial implementation of MMS inside
6153
libmoon. The API has been extended to register two additional callbacks
6154
to set HTTP headers, and the HTTP body.
6156
2008-06-05 Michael Dominic K. <mdk@mdk.am>
6158
* xaml.cpp: Removing the "broken parsing" of RepeatBehavior in
6159
--with-compatibility-bugs mode. It looks like the parsing is fine. The
6160
bug is now "implemented" in clock.cpp.
6162
2008-06-05 Michael Dominic K. <mdk@mdk.am>
6164
* clock.cpp: In ComputeNewTime when we're going over our duration time
6165
and we're AutoReversed, check actually how big the diff is cause it
6166
might be that we need to "wrap around self" and switch to forward time
6167
direction anyways (such is the case with seeking).
6169
In other words, allow to seek into particular interation of
6170
RepeatBehavior="XXXx", not only the first one. Fixes one more
6171
AnimationMatrix2 block and seek-test-multiple-repeat.xaml in assorted.
6173
This prolly needs a littlbe bit more work still, similiar mechanism
6174
needs to be present in DoRepeat etc.
6176
2008-06-05 Stephane Delcroix <sdelcroix@novell.com>
6178
* stylus.cpp: fixing a bug. stupid me.
6180
2008-06-05 Stephane Delcroix <sdelcroix@novell.com>
6182
* rect.h: new Rect (Point, Point) ctor, new ExtendTo (point) and
6183
ExtendTo (double, double) methods.
6185
* stylus.h|cpp: new StylusPointCollection::GetBounds (), check for
6186
intersection of bounds and StylusPointCollection::GetBounds in HitTest
6187
to avoid checking for stroke intersection in most of the cases. Speed
6188
up erasing in inkJournal.
6190
2008-06-04 Michael Dominic K. <mdk@mdk.am>
6192
* clock.cpp: Interesting -- looks like in SL the timespan-based
6193
RepeatBehavior is scaled by the SpeedRatio. Ie. 00:00:10 with SpeedRatio
6194
0.5 becomes 00:00:05. I wonder if it's a bug or intended feature?
6195
Anyways, implementing this and fixing two more blocks in
6198
2008-06-04 Michael Dominic K. <mdk@mdk.am>
6200
* clock.cpp: Slightly reworking the seek offsett calculations to include
6201
the SpeeRatio multiplier but do not apply it to BeginTime. Fixes one
6202
more block in AnimationMatrix2 and the test-seek-spee-ratio-begin.xaml
6205
2008-06-04 Michael Dominic K. <mdk@mdk.am>
6207
* clock.cpp: When seeking include the SpeedRatio calculations. Fixes the
6208
test-seeking-speed-ratio.xaml from assorted tests and one more block in
6209
the AnimationMatrix2 test.
6211
2008-06-03 Jeffrey Stedfast <fejj@novell.com>
6213
* control.cpp (user_control_new): %p does what %x was trying to do
6214
in this case, but without compile warnings :)
6216
2008-06-03 Jeffrey Stedfast <fejj@novell.com>
6218
Glyphs rendering optimization.
6220
* text.cpp (Glyphs::Layout): Accumulate the glyph paths here
6221
instead of re-looping this logic again in Glyphs::Render().
6222
(Glyphs::Render): Just blit the path.
6224
2008-06-03 Chris Toshok <toshok@ximian.com>
6226
* dependencyobject.cpp (DependencyObject::SetValue): Simplify this
6227
a bunch and remove all the redundant checks.
6229
(DependencyObject::MergeTemporaryNameScopes): merge both DO and
6230
Collection versions into the same method to reduce code
6233
* dependencyobject.h: no need to provide multiple overloads for
6234
MergeTemporaryNameScopes.
6236
2008-06-03 Jeffrey Stedfast <fejj@novell.com>
6238
Text rendering optimization via reduction of font loading.
6240
* font.cpp (FontFace): A new abstraction for FT_Face which is
6241
meant to prevent Moonlight from ahving to load the same font face
6242
multiple times just because the FontSize attributes don't match.
6243
(TextFont): Greatly simplified this class by using FontFace.
6245
2008-06-02 Jackson Harper <jackson@ximian.com>
6247
* xaml.cpp: Make sure we don't try to look up Content Properties
6248
on anything but elments. Property elements are given the
6249
XamlElementInfo of their parent so GetContentProperty on a
6250
PROPERTY element will return the parent's content property.
6252
2008-06-02 Michael Dominic K. <mdk@mdk.am>
6254
* clock.cpp: If we have duration-based RepeatBehavior set the
6255
repeat_count to 1 in bug-mode (--with-compatibility-bugs).
6257
2008-06-02 Michael Dominic K. <mdk@mdk.am>
6259
* xaml.cpp: SL seems to correctly parse 0:0:0 TimeSpans in "bug-mode"
6262
* clock.cpp: Remove the RepeatBehavior=1.0 forcing in Validate when
6263
RepeatBehavior=0:0:0.
6265
2008-06-02 Michael Dominic K. <mdk@mdk.am>
6267
* clock.cpp: Even more timeline validation rules.
6269
2008-06-02 Sebastien Pouliot <sebastien@ximian.com>
6271
* font.cpp: Use the existing DOUBLE_FROM_26_6 instead of dividing
6272
by 64.0 since this makes it clear why we're doing it.
6274
2008-05-30 Michael Dominic K. <mdk@mdk.am>
6276
* clock.cpp: Don't validate animations that have Duration of "00:00:00"
6277
and RepeatBehavior="Stop". That is what SL does. Fixes the clock41.xaml
6280
2008-05-30 Michael Dominic K. <mdk@mdk.am>
6282
* xaml.cpp: Adding a compatibility option
6283
(--with-compatibility-bugs=yes) that introduces a Silverlight 1.0
6286
2008-05-30 Michael Dominic K. <mdk@mdk.am>
6288
* clock.cpp: Ceil the delta and ret_time. This is a very poor-man's
6289
protection against the desync's coming from integers (TimeSpan) being
6290
multiplied by floating values (SpeedRatio). Better to be non-precise
6291
forward than backward.
6293
2008-05-30 Michael Dominic K. <mdk@mdk.am>
6295
* clock.cpp: The initial ticking difference needs to be multiplied by
6296
the SpeedRatio as well. This fixes few timing desyncs. Fixes
6297
clock40.xaml, test-animation-hold-stop-speed.xaml and the RoyalBlue
6298
block from the AnimationMatrix2.
6300
2008-05-29 Jeffrey Stedfast <fejj@novell.com>
6302
* media.cpp (Image::OnPropertyChanged): Just like MediaElement, if
6303
you set an Image's Source property to an empty string (or null),
6304
it stops rendering the image.
6306
2008-05-29 Stephane Delcroix <sdelcroix@novell.com>
6308
* stylus.cpp: fix intersect_line_2d to fix the inkJournal thing.
6310
2008-05-29 Jeffrey Stedfast <fejj@novell.com>
6312
* layout.cpp|h (TextRun::IsUnderlined): Replacement for
6313
TextLayout::IsUnderline().
6314
(TextLayout::IsUnderline): Removed.
6316
* font.h (enum TextDecorations): Add a comment explaining that
6317
this is meant to be used as bit flags and not a normal
6320
2008-05-29 Sebastien Pouliot <sebastien@ximian.com>
6322
* font.h: Revert TextWrapping change as it regress DRT tests
6323
(it's possible that the value were right, but did not match
6324
the managed value used by Silverlight 1.1).
6326
2008-05-29 Jackson Harper <jackson@ximian.com>
6328
* type.cpp: INVALID types don't have content properties.
6329
* dependencyobject.h: Content properties are stored on the Type so
6330
we don't need to store them here.
6331
* xaml.cpp: Get content properties from the Type system instead of
6332
the parser's internal type map.
6333
- We don't need to do any special handling in the start_element
6334
handler for content properties anymore.
6335
* control.cpp|h: We don't need to expose the content property
6337
- Mark the content property for controls.
6339
2008-05-29 Sebastien Pouliot <sebastien@ximian.com>
6341
* font.h: Fix enum values for TextWrapping
6342
* layout.cpp: Fix regression (in earlier commit) for wrapping.
6344
2008-05-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
6346
* debug.cpp: Fix an invalid read issue found with valgrind.
6348
2008-05-29 Sebastien Pouliot <sebastien@ximian.com>
6350
* layout.h|cpp: Handle invalid values for TextDecorations and
6351
TextWrapping like Silverlight does.
6353
2008-05-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
6355
* runtime.cpp: When setting the background color delete any previoys
6358
2008-05-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
6360
* uielement.cpp: Fix minor leak.
6362
2008-05-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
6366
2008-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
6368
* http-streaming.cpp: Handle quoted feature strings.
6370
2008-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
6372
* downloader.cpp: Null out request_position in the ctor.
6374
2008-05-28 Michael Dominic K. <mdk@mdk.am>
6376
* clock.cpp: Reverting the change that invalidates the timelines which
6377
have 00:00:00 duration. It is actually supported by SL.
6379
2008-05-28 Michael Dominic K. <mdk@mdk.am>
6381
* clock.cpp: In Clock::ComputeNewTime all those checks are useless.
6382
Multiply always instead of recursing down into properties.
6384
2008-05-28 Michael Dominic K. <mdk@mdk.am>
6386
* animation.cpp: If "To" and "By" are not specified use the
6387
defaultOriginValue always instead of "start" (which might be "From").
6388
Fixes the test-animation-only-from.xaml and the green block in
6391
2008-05-28 Michael Dominic K. <mdk@mdk.am>
6393
* clock.cpp: When Validating the timeline, if RepeatBehavior is
6394
incorrect make it 1.0 instead of marking the timeline as invalid.
6396
2008-05-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
6398
* downloader.cpp: Fix typo.
6400
2008-05-28 Sebastien Pouliot <sebastien@ximian.com>
6402
* enums.c: Fix None value in style_simulations_map and remove
6403
unneeded one (they exists only in WPF but SL parser does not like
6405
* font.cpp|h: Fix FontStyle and FontWeigth properties when the
6406
supplied value are invalid. Add new constants specific to SL.
6407
* text.h: Add simulation_none. Share an integer between all bool
6409
* text.cpp: Invalid values for StyleSimulation does not render
6411
* runtime.cpp: Invalid MouseCursor values hides the cursor.
6413
2008-05-27 Jeffrey Stedfast <fejj@novell.com>
6415
Fixes the Legend (Space Invaders) demo without breaking
6416
storyboard_EnterLeaveSemantics.htm.
6418
* clock.cpp|h (Clock::Completed): New virtual method which gets
6419
called when a clock completes.
6420
(Clock::ComputeNewTime): If a clock completes (has no more
6421
repeats, etc) then call ::Complete().
6422
(ClockGroup::ClockGroup): Changed the name of emitted_complete to
6423
emit_completed which has also changed the meaning a bit.
6424
(ClockGroup::Begin): Updated.
6425
(ClockGroup::RaiseAccumulatedEvents): If emit_completed is true,
6426
then emit the Completed event and reset emit_completed back to
6427
false so we don't re-emit.
6428
(ClockGroup::Completed): Set emit_completed to true.
6430
2008-05-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
6432
* media.cpp: MediaElement: Fix refcounting for our 'media' field. In
6433
DownloaderComplete only emit DownloadProgressChangedEvent if we
6436
2008-05-27 Michael Dominic K. <mdk@mdk.am>
6438
* xaml.cpp: Adding a comment/explanation about the RepeatBehavior and
6439
Silverlight 1.0/2.0 situation.
6441
2008-05-26 Michael Dominic K. <mdk@mdk.am>
6443
* clock.cpp: Don't validate timelines that have specified duration of
6444
00:00:00. Fixes the test-animation-zero-duration test.xaml.
6446
2008-05-26 Michael Dominic K. <mdk@mdk.am>
6449
* clock.h: When Validating the Timeline also make sure that the
6450
RepeatBehavior is correct, otherwise don't start the anim. Fixes the
6451
test-animation-zero-repeat-behavior test and brings us closer with
6452
AnimationMatrix2 test.
6454
2008-05-26 Michael Dominic K. <mdk@mdk.am>
6456
* clock.cpp: When Validating TimelineGroup don't forget to call parent's
6457
base validation method.
6459
2008-05-26 Michael Dominic K. <mdk@mdk.am>
6461
* xaml.cpp: Reverting spouliot's commit from 2008-05-08. It looks like
6462
SL supports the RepeatBehavior="XX:XX:XX" just fine. This fixes the
6463
test-aniamtion-repeat-behavior.xaml test.
6465
2008-05-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
6469
2008-05-23 Sebastien Pouliot <sebastien@ximian.com>
6471
* text.cpp: (Glyphs::InsideObject) Avoid expensive, and unneeded,
6472
cairo_save/cairo_restore since we don't use the context.
6474
2008-05-23 Stephane Delcroix <sdelcroix@novell.com>
6476
* dependencyobject.[h|cpp]: merge namescopes on SetValue.
6478
2008-05-23 Jeffrey Stedfast <fejj@novell.com>
6480
* font.cpp (TextFont::PixelsPerEM): Removed, the logic was broken.
6482
* text.cpp (Glyphs::Layout): Reverted previous commit and go back
6484
(Glyphs::Render): Same.
6486
2008-05-22 Chris Toshok <toshok@ximian.com>
6488
* stylus.h, stylus.cpp (Stroke::HitTest): correct our width/height
6489
code. Only include the +2 to each side if the outline color is
6491
(Stroke::AddStylusPointToBounds): same.
6492
(Stroke::OnPropertyChanged): new method. we need to recompute the
6493
bounds if our DrawingAttributes change.
6494
(Stroke::OnSubPropertyChanged): same, if width/height/online-color
6495
of the drawing attributes change.
6497
2008-05-22 Sebastien Pouliot <sebastien@ximian.com>
6499
* brush.cpp: Fix defaults when wrong values are being used for
6500
enumerations from Javascript.
6501
[Fix part of #340799]
6503
2008-05-22 Jackson Harper <jackson@ximian.com>
6505
* dependencyobject.cpp: Only merge temp namescopes.
6507
2008-05-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
6509
* dependencyobject.cpp, dependencyobject.h: EventObject: instead of
6510
surrounding event emission with ref/unref, set a flag specifying
6511
that we're doing event emission, and catch unrefs which would cause
6512
object destruction replacing them with a delayed unref.
6514
2008-05-21 Chris Toshok <toshok@ximian.com>
6516
* collection.cpp (Collection::Add): remove the check for AddToList
6517
returning -1. It never will. Also, call SetSurface() on the new
6518
child *before* we create the Collection::Node for it, so we can
6519
tell (in SetSurface) if it's being added individually to the
6520
surface, or as part of a subtree. This is required to fix
6521
storyboard_EnterLeaveSemantics.
6523
* animation.cpp (Storyboard::SetSurface): resume the clock when
6524
we're reattached to the surface, but *only* if we're being added
6525
as part of a subtree (that is, we already have a logical parent
6526
when we hit this method.)
6528
* clock.cpp (Clock::Begin): revert the previous
6529
change (has_started needs to be initialized to false). Required
6530
to fix storyboard_EnterLeaveSemantics.htm. We'll need to figure
6531
out another way to fix the site (or a better way that fixes one
6532
without breaking the other.)
6534
2008-05-21 Jeffrey Stedfast <fejj@novell.com>
6536
* text.cpp (Glyphs::Layout): Use PixelsPerEM() instead of
6537
hard-coding the EM units ourselves.
6538
(Glyphs::Render): Same.
6540
* font.cpp (TextFont::PixelsPerEM): New convenience function.
6542
* clock.cpp (Clock::Begin): Init has_started to true. Fixes
6543
http://www.tek.co.jp/Legend
6545
* animation.cpp (Storyboard::storyboard_completed): Merged
6546
teardown_clockgroup() and invoke_completed() into a single
6547
callback. Also makes it so that we don't have to remove 2
6548
CompletedEvent handlers (which we were not doing properly afaict
6549
in Storyboard::Stop).
6550
(Storyboard::Stop): After unregistering the CompletedEvent handler
6551
and stopping the root_clock, tear down the clock group.
6553
2008-05-21 Larry Ewing <lewing@novell.com>
6555
* shape.cpp (Ellipse::BuildPath): try to shape our degenerate
6556
ellipses a little better.
6557
(Shape::ComputeStretchBounds): modify the needs_clip logic a
6558
little to catch the degenerate ellipse cases we were running into.
6560
Fixes test-shape-ellipse-stroke*.xaml.
6562
2008-05-21 Michael Dominic K. <mdk@mdk.am>
6564
* clock.cpp: Include the offsett coming from the BeginTime in the
6565
seek_time calculations. Fixes seek-test-begin-time and
6566
seek-test-wrapping-set tests. Brings us closer with AnimationMatrix2.
6568
2008-05-21 Michael Dominic K. <mdk@mdk.am>
6570
* clock.cpp: Actually do set the seek_time before using it.
6572
2008-05-21 Michael Dominic K. <mdk@mdk.am>
6574
* clock.cpp: When seeking ClockGroup, don't seek children as weel
6575
(results in cumulative behavior).
6577
2008-05-21 Sebastien Pouliot <sebastien@ximian.com>
6579
* font.cpp: (TextFont::Path) Avoid expensive save of cairo
6580
context since only the transform is changed (current point
6581
location is not part of the context).
6583
2008-05-20 Larry Ewing <lewing@novell.com>
6585
* runtime.cpp (Surface::motion_notify_callback): always return
6586
true in the windowed motion handler otherwise we something steals
6587
mouse events from us.
6589
Fixes most of MouseInput.htm
6591
2008-05-20 Michael Dominic K. <mdk@mdk.am>
6593
* clock.cpp: Fixing a problem where timeline with BeginTime set do not
6594
respond at all to Seek. Brings us closer with AnimationMatrix2.
6596
2008-05-19 Jackson Harper <jackson@ximian.com>
6598
* xaml.cpp: Only do the type wrapping if we are dealing with
6599
collection types, otherwise we just ignore the property decl.
6601
2008-05-19 Jackson Harper <jackson@ximian.com>
6603
* xaml.cpp: When we wrap a property we need to ignore the property
6604
element so that the children get added to the wrapped object
6606
* dependencyobject.cpp: We also need to merge the collection's
6607
namescope because collections can be created with their own temp
6608
namescope using createFromXaml.
6610
2008-05-19 Michael Dominic K. <mdk@mdk.am>
6615
* clock.h: Changing ExtraRepeatHandler to ExtraRepeatAction to avoid
6618
2008-05-19 Michael Dominic K. <mdk@mdk.am>
6621
* animation.h: Adding an implementation for ExtraRepeatHandler to
6622
AnimationClock that fetches target value and sets it on
6623
AnimationStorage. Fixes clock37.xaml test.
6625
2008-05-19 Michael Dominic K. <mdk@mdk.am>
6628
* animation.h: Adding helper methods to get target value out of the
6629
given AnimationTimeline. We're still missing implementations for
6630
keyframe-based anims. Coming soon.
6632
2008-05-19 Michael Dominic K. <mdk@mdk.am>
6635
* animation.h: Adding two helper methods to AnimationStorage:
6636
GetStopValue (get's current base or (if set) stop value) and
6637
UpdatePropertyWithValue to manually force prop to a given state.
6639
2008-05-19 Michael Dominic K. <mdk@mdk.am>
6642
* clock.h: Addin a virtual ExtraRepeatHandler to Clock class fired on
6643
repeat. By default does nothing.
6645
2008-05-19 Jackson Harper <jackson@ximian.com>
6647
* xaml.cpp: When createFromXaml ('<some property>...</property>')
6648
is called, we need to create and return an object that represents
6649
that property. ie createFromXaml ('<Canvas.Triggers>...); should
6650
return a ResourceDictionary object.
6652
2008-05-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
6654
* downloader.cpp: Fix warnings.
6656
2008-05-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
6658
* clock.cpp: Added comment.
6660
2008-05-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
6662
* runtime.cpp: Destroy EventObject::objects_alive upon runtime
6665
2008-05-16 Miguel de Icaza <miguel@novell.com>
6667
* dependencyobject.h (DependencyObject::GetContentProperty):
6668
returns a DependencyProperty that is the target for the content of
6669
a XAML content assignment.
6671
* xaml.cpp (XNamespace::SetAttribute): while hydrating, ignore the
6672
Class attribute as the object has already been created.
6674
(start_element): Add support for the ContentPropertyAttribute on
6675
DependencyObjects to the XAML parser. This is very primitive
6676
support at this point, and does not support collections, or type
6677
conversions as specified on the docs.
6679
* control.cpp (Control::SetContent): Refactor setting the
6680
real_object into its own routine. Currently takes a Surface
6681
parameter, not clear that this is even needed, but kept for
6682
compatibility with the old code.
6684
(UserControl::OnPropertyChanged): Hook up setting the Content
6687
* runtime.cpp (Surface::Attach): Let the widget be UIElement.
6689
2008-05-16 Larry Ewing <lewing@novell.com>
6691
* shape.cpp: draw ellipses with no width/height specified as the
6694
Fixes StretchAndShapes.xaml.
6696
2008-05-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
6698
* media.cpp: Abort the downloader when we emit MediaFailed, and always
6699
emit a DownloadProgressChangedEvent with 1.0 when we're finished
6700
downloading (we won't get any writes if the file has already been
6701
downloaded and mozilla just gives us the filename).
6703
2008-05-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
6707
2008-05-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
6709
* downloader.cpp: Don't emit any events if we don't have a surface. Add
6710
warnings to Send(Internal) when we have no surface (the plugin is
6711
already checking for it, so if the warning is printed we're doing
6712
something else wrong).
6713
* runtime.h, runtime.cpp: Surface: keep a list of the downloaders we
6714
create, and when the toplevel canvas changes or the surface is
6715
destroyed clear the downloader's surface pointer.
6717
2008-05-16 Jeffrey Stedfast <fejj@novell.com>
6719
* downloader.cpp (Downloader::Abort): Set download progress to 0.
6721
2008-05-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
6723
* downloader.cpp: Don't emit nor set DownloadProgress(ChangedEvent) in
6724
NotifySize, mozilla calls NotifySize for every write.
6726
2008-05-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
6728
* type.cpp, type.h, type.h.in: Added Type::LookupEventName.
6730
2008-05-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
6732
* playlist.cpp: If we're stopping a playlist, reopen the first entry.
6733
* media.h: MediaElement: Make EmitMediaOpened and Reinitialize public
6734
so that Playlist can call them.
6736
2008-05-15 Larry Ewing <lewing@novell.com>
6738
* runtime.cpp (Surface::button_press_callback): stop firefox from
6739
stealing our focus in the widget case by always returning true on
6740
button press events. There may be a better way to handle this by
6741
only returning true if the press lands on and element but this at
6742
least improves the situation.
6744
Fixes FullScreenKey.htm.
6746
2008-05-15 Michael Dominic K. <mdk@mdk.am>
6748
* clock.cpp: Also apply the idle_hint when the ClockGroup itself goes to
6749
Filling state, this makes the idle optimization cover all the cases. Big
6750
perf boost expected.
6752
2008-05-14 Jeffrey Stedfast <fejj@novell.com>
6754
Fix for tests/xaml/test-directory-in-zip.html
6756
* media.cpp (Image::Image): Initialize some new state variables to
6757
keep track of whether or not the FrameworkElement::Width and
6758
Height values are ever manually set.
6759
(Image::DownloaderComplete): Properly set the Width/Height
6760
property values based on whether a particular Width/Height have
6761
been requested. Use the image's native width/height if not.
6762
(Image::OnPropertyChanged): Listen for changes to Width/Height
6765
2008-05-14 Larry Ewing <lewing@novell.com>
6767
* src/uielement.cpp (UIElement::PostRender): clear any existing
6768
paths when rendering the bounds rectangle.
6770
2008-05-14 Jeffrey Stedfast <fejj@novell.com>
6772
* media.cpp (MediaElement::MediaOpened): Use GetAutoPlay() instead
6773
of the more complex GetValue API.
6775
* pipeline.cpp (IMediaSource::ReadSome): Don't return false on
6776
error, return -1 (since this is an int32 return value, not bool).
6778
2008-05-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
6780
* media.cpp, media.h: Added MediaElement::IsLive, and move
6781
initialization of this field to before our MediaPlayer is opened.
6782
* mplayer.cpp, mplayer.h: For live sources the first frame might not
6783
come with pts = 0, so store that pts so that later we can correctly
6784
calculate how much we've actually played.
6786
2008-05-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
6788
* mplayer.cpp, mplayer.h: Add support for Duration tags in ASX files.
6789
* playlist.h, playlist.cpp: Added a PlaylistEntry::HasDuration method,
6790
and skip entries with zero duration.
6792
2008-05-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
6794
* dependencyobject.cpp: EventObject::AddTickCall: make sure we release
6795
the read lock if don't have a surface or timemanager.
6797
2008-05-14 Michael Dominic K. <mdk@mdk.am>
6799
* clock.cpp: No need to SoftStop the ClockGroup itself (unlike the
6800
children) on DoRepeat (). Fixes a small regression in clock21.xaml
6801
introduced with last commit.
6803
2008-05-14 Michael Dominic K. <mdk@mdk.am>
6806
* clock.h: Fixing a case for Clock when the clock has RepeatBehavior but
6807
it doesn't start from 00:00:00. Fixes #388745 (clock22.xaml test).
6809
2008-05-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
6811
* runtime.cpp: Don't call Attach (NULL) in Surface::Zombify, it causes
6812
crashes when javascript removes the plugin in an eventhandler.
6814
2008-05-13 Jeffrey Stedfast <fejj@novell.com>
6816
* media.cpp (MediaElement::DownloaderFailed): Make this more
6819
2008-05-13 Fernando Herrera <fherrera@novell.com>
6821
* media.cpp: Fix mms:// and rtsp:// fallback uri rewrite.
6823
2008-05-13 Jeffrey Stedfast <fejj@novell.com>
6825
* media.cpp (MediaBase::SetSourceAsyncCallback): Prevent memory
6826
corruption of the source.* variables by creating local references
6827
to them and setting source.* to NULL before calling
6828
SetSourceInternal().
6830
2008-05-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
6832
* clock.cpp, clock.h: Remove InvokeOnMainThread.
6833
* dependencyobject.cpp, dependencyobject.h: EventObject: added
6834
AddTickCall. Requred when adding ticks from other than the
6836
* downloader.cpp: Send: use a TimeManager to add the timeout.
6837
* media.cpp, media.h, mplayer.h, mplayer.cpp: Don't use
6838
TimeManager::InvokeOnMainThread anymore, add the timeouts using a
6839
TimeManager instance.
6841
2008-05-12 Jeffrey Stedfast <fejj@novell.com>
6843
* list.cpp (List::List): Init length to 0.
6844
(List::Clear): Reset length to 0.
6845
(List::Append): length++
6846
(List::Prepend): length++
6847
(List::Insert): length++
6848
(List::InsertBefore): length++
6849
(List::Unlink): length--
6850
(List::Length): Fixed to be O(0) instead of O(n)
6852
* stylus.cpp (StrokeCollection::HitTest): Use List::IsEmpty()
6853
instead of comparing List::Length() to 0.
6854
(Stroke::HitTest): Same.
6856
2008-05-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
6858
* media.cpp: Set the MediaOpenedEmitted flag before emitting the event,
6859
prevents us from emitting the event again as a consequence of what
6860
any of the event handlers do.
6862
2008-05-12 Michael Dominic K. <mdk@mdk.am>
6865
* dependencyobject.cpp: Fix a crash due to bad destroy recursion.
6867
2008-05-12 Michael Dominic K. <mdk@mdk.am>
6871
* dependencyobject.cpp:
6872
* dependencyobject.h: Float the AnimationStorage only when it's the
6875
2008-05-12 Michael Dominic K. <mdk@mdk.am>
6878
* animation.h: Introduce floating state for animation storage that has
6879
it's clock destroyed but it hasn't been stopped before. We need to keep the
6880
animation storage (reffed from the DependencyProperty hash) around to be
6881
able to get proper value for the next (continous) Storyboard on same
6882
property. Fixes #383879 and #375275.
6884
2008-05-09 Geoff Norton <gnorton@novell.com>
6886
* mplayer.cpp, pipeline.cpp, pipeline.h: When iterating streams
6887
ensure that we select the stream with the highest available bit
6888
rate, opposed to the first stream that we come across.
6890
2008-05-09 Jeffrey Stedfast <fejj@novell.com>
6892
* dependencyobject.cpp (DependencyObject::FindName): Don't need
6895
* namescope.cpp (NameScope::FindName): Simplify.
6897
2008-05-08 Larry Ewing <lewing@novell.com>
6899
* shape.cpp: silence some warnings.
6901
2008-05-08 Larry Ewing <lewing@novell.com>
6903
* shape.h: remove ClipOnWidthAndHeight method, replace with
6904
needs_clip variable.
6906
* shape.cpp (Shape::ComputeStretchBounds): set needs_clip based on
6907
the actual size of the object before and after the stretch and the
6910
Speeds up Sprawl and a lot of other applications that use stretch
6913
2008-05-08 Larry Ewing <lewing@novell.com>
6915
* runtime.cpp (Surface::expose_to_drawable): fill the background
6916
instead of painting and don't create the clip until the rendering
6918
2008-05-08 Miguel de Icaza <miguel@novell.com>
6920
* xaml.cpp (xaml_hydrate_from_str): New method to hydrate an
6921
existing DependencyObject with the contents of a XAML string.
6923
Needed for Silverlight 2.0 support, for the new model:
6924
create object then do LoadComponent on it.
6926
2008-05-08 Sebastien Pouliot <sebastien@ximian.com>
6928
* xaml.cpp: RepeatBehavior does not use the (documented) 0:0:0
6931
2008-05-07 Jeffrey Stedfast <fejj@novell.com>
6933
* font.cpp: Removed old layout code.
6934
(TextFont::GetGlyphInfo): Updated to use some handy Fixed->Double
6935
conversion macros to make understanding the code easier. Also,
6936
added FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH bit flag to fix layout
6937
of broken fixed-width CJK fonts.
6939
* clock.cpp (TimeManager::Stop): Added for convenience.
6940
(SystemTimeSource::SystemTimeSource): Init frequency to -1 so we
6941
can make sure it is init'd properly via SetTimerFrequency() before
6944
* runtime.cpp (Surface::Attach): Call our time_manager's Start(),
6945
not it's source's Start(). We need things like frequency to be
6946
setup and other values to be initialized properly.
6947
(Surface::Attach): After calling canvas->OnLoaded(), check that we
6948
are not zombied - if we are, return.
6950
2008-05-07 Larry Ewing <lewing@novell.com>
6952
* runtime.cpp (Surface::Zombify): call Attach (NULL) to notify the
6953
objects that the surface is undead.
6955
2008-05-06 Jeffrey Stedfast <fejj@novell.com>
6957
* animation.cpp (animation_shutdown): Renamed from
6958
animation_destroy().
6960
* text.cpp (text_shutdown): Renamed from text_destroy().
6962
* clock.cpp: Don't include gtk.h for just gtk_timeout_add(),
6963
include glib.h and use g_timeout_add() instead.
6964
(SystemTimeSource::SystemTimeSource): Init the timeout_id to 0,
6965
not -1 (the timeout ids are uint, not int).
6966
(SystemTimeSource::SetTimerFrequency): Updated.
6967
(SystemTimeSource::Start): Updated.
6968
(SystemTimeSource::Stop): Updated.
6970
* list.cpp (List::Remove): Don't need to search for the node, we
6971
already have a pointer to it.
6973
2008-05-07 Larry Ewing <lewing@novell.com>
6975
* runtime.cpp (Surface::Resize): handle a resize in windowless mode
6978
Fixes part of windowless resizing.
6980
2008-05-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
6982
* media.cpp: Handle the rtsp protocol too.
6983
* playlist.cpp, playlist.h: Store base and source_name as Uris.
6984
Implement GetFullSourceName better, and do some uri validation.
6985
* uri.h, uri.cpp: Added a allow_trailing_sep flag to Uri::Parse,
6986
disables canonicalization of trailing directory separators since
6987
asx playlists may treat urls differently depending on the presence
6988
or absence of any trailing directory separators. Added Clone ().
6990
2008-05-06 Michael Dominic K. <mdk@mdk.am>
6993
* animation.h: When attaching new animation storage and previous storage
6994
exist, flag it as non-resetable (meaning that the storage will never
6995
reset animated property to base/stop value). This fixes the
6996
storyboard-stopping-two.html test.
6998
2008-05-06 Michael Dominic K. <mdk@mdk.am>
7000
* dependencyobject.cpp:
7001
* dependencyobject.h: DependencyProperty::AttachAnimationStorage now
7002
returns the previously attached AnimationStorage.
7005
* animation.h: When attaching new animation storage try to inherit the
7006
resetValue from the previously attached storage. Reset value is the
7007
value that we reset to when storyboard is stopped (originally it always
7008
used to be the base value of the current AnimationStorage).
7010
This replicates the bahavior of SL where starting a new (second)
7011
storyboard on a property renders the prev storyboard useless
7012
(non updating the prop) but keeps it's "starting value" for storyboard
7013
reset. In other words we can say that starting a new storyboard on a
7014
prop makes this new storyboard a "continuation" of the prev storyboard.
7016
2008-05-05 Larry Ewing <lewing@novell.com>
7018
* runtime.cpp (Surface::render_cb): only call ForceRender if we
7021
2008-05-05 Larry Ewing <lewing@novell.com>
7023
* runtime.cpp: update the (almost unused) frame count where it can
7024
get hit in windowless. Clear existing paths before rendering the
7027
Minor cleanups to help with debugging the expose regions.
7029
2008-05-05 Jeffrey Stedfast <fejj@novell.com>
7031
* clock.cpp (TimeManager::Shutdown): Renamed from
7032
TimeManager::Stop() and also updated to remove all registered
7035
* runtime.cpp (Surface): We no longer keep track of signal ids, we
7036
simply remove all signals on the widgets with 'this' as the user
7039
* clock.cpp (TimeManager::Stop): Added. New method to stop the
7042
* runtime.cpp (Surface::Zombify): Stop the time manager, prevents
7043
emission of timeout events.
7045
2008-05-05 Michael Dominic K. <mdk@mdk.am>
7047
* src/shape.cpp: Reverting sde's stretch thing for now, breaks a lot of
7050
2008-05-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
7052
* media.cpp, media.h, playlist.cpp, playlist.h: MediaElement: when
7053
playing playlists, we only emit MediaEnded if we're playing the
7054
last entry in the playlist. Call Playlist::OnEntryEnded manually
7055
instead of letting the playlist rely on the MediaEnded event, since
7056
the MediaEnded event isn't raised for all entries. Playlist: Added
7057
IsCurrentEntryLastEntry.
7059
2008-05-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
7061
* media.cpp: MediaElement::UpdateProgress: Don't call BufferingComplete
7062
until the pipeline got all the data it was waiting for.
7064
2008-05-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
7066
* media.cpp, media.h: Add an EmitMediaOpened method and emit
7067
MediaOpened somewhat more aggressively, but only once.
7069
2008-05-05 Jeffrey Stedfast <fejj@novell.com>
7071
* text.cpp (Glyphs::GetSizeForBrush): Use this->width and
7072
this->height for the brush size - fixes TextTransforms.xaml once
7075
2008-05-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
7077
* media.cpp: Don't emit any BufferingProgressChanged events in
7080
2008-05-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
7082
* pipeline-ffmpeg.cpp: Give more information to ffmpeg, otherwise
7083
ffmpeg won't decode any wma audio.
7085
2008-05-05 Stephane Delcroix <sdelcroix@novell.com>
7087
* shape.cpp: draw the line caps with the stretch_transform matrix.
7088
Finetune the stretch computation again.
7090
2008-05-05 Miguel de Icaza <miguel@novell.com>
7092
* src/control.cpp: Add a skeleton UserControl, to get a bit
7093
further on the loading of a Silverlight 2 application.
7095
See the TODO, there are still many limitations.
7097
2008-05-04 Larry Ewing <lewing@novell.com>
7099
* runtime.cpp: restrict invalidations to the active windowless
7102
Fixes massive drawing issues on http://my.liveatedu.com/ where
7103
were creating invalidations with a negative coords.
7105
2008-05-04 Miguel de Icaza <miguel@novell.com>
7107
* xap.cpp: Expose xap_unpack, include when Mono runtime is
7110
* deployment.cpp: Small fixups.
7112
* xaml.cpp (deploy_namespace): New namespace used to parse
7113
AppManifest.xaml files that start with a <Deployment> tag on the
7114
http://schemas.microsoft.com/client/2007/deployment namespace.
7116
(xaml_init): Register the deployment classes.
7118
* type.cpp (type_is_dependency_object): Add new helper method
7119
to determine if a Kind is a DEPENDENCYOBJECT, the list is no
7120
longer separated in value-types and DependencyObjects, so its not
7121
possible to do a fast lookup from managed code.
7123
2008-05-04 Chris Toshok <toshok@ximian.com>
7125
[ fixes #361906, while simultaneously keeping halo3,
7126
ControlLife.htm, and ControlState.htm happy ]
7128
* runtime.h, runtime.cpp, type-generated.cpp: move back to the
7129
LoadEvent instead of the broken Attaching event, reverting
7132
* panel.h, panel.cpp: add a "emitting_loaded" guard around the
7133
body of OnLoaded so we don't end up re-entering this method.
7134
Also, revert r102196 as the ordering of parent-to-child was
7135
correct originally, there were just other ordering constraints we
7138
* control.h, control.cpp: same.
7140
* dependencyobject.h, dependencyobject.cpp: add a count field to
7141
EventClosure so we can support the "only_unemitted" arg in
7142
EventObject::Emit. The idea is that the Loaded event seems to
7143
only be emitted on those events that haven't yet been emitted.
7144
This may also be implemented just by making Loaded event handlers
7145
one-shot (removing themselves after they fire), but this is easy
7146
enough and works. The only event with this odd behavior (that I
7149
* uielement.cpp (UIElement::OnLoaded): set the IS_LOADED
7150
flag (which may actually be useless now, given the Emit change)
7151
but don't emit Loaded only when the flag is unset.
7153
* collection.cpp: remove the last bit of closure access from
7154
VisualCollection. The OnLoaded call now happens in
7155
Panel::OnCollectionChanged, in 1 spot as opposed to 3 different
7156
spots in VisualCollection.
7158
2008-05-02 Sebastien Pouliot <sebastien@ximian.com>
7160
* text.cpp|h: Adjust Glyphs::InsideObject with bounds changes.
7161
[Complete the fix for #383870]
7163
2008-05-02 Jeffrey Stedfast <fejj@novell.com>
7165
* text.cpp (Glyphs::Layout): Take negative vOffset attr's for
7166
glyphs into account when calculating extents. Fix usage of OriginX
7167
and OriginY as far as extents goes.
7168
(Glyphs::GetOriginPoint): Don't leak the TextFont.
7169
(Glyphs::GetTransformOrigin): Always use 0.0,0.0 as the
7170
RenderTransformOrigin, Microsoft's implementation for Glyphs
7171
doesn't seem to take into account the width/height of the bounding
7173
(Glyphs::Layout): Use OriginX,OriginY as the bounding box origin
7174
rather than MIN (OriginX, 0), Min (OriginY, 0)
7176
2008-05-02 Sebastien Pouliot <sebastien@ximian.com>
7178
* text.cpp|h: Add Glyphs::InsideObject so Mouse events will work.
7179
[Partial fix for #383870, bounds are not always correct]
7181
2008-05-02 Jeffrey Stedfast <fejj@novell.com>
7183
* text.cpp (Glyphs::Render): Cache the glyph string in a moon-path
7184
rather than copying it from the cairo context for the same reason
7185
we did this for TextBlock segment path caching.
7187
2008-05-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
7189
* playlist.h, playlist.cpp: Implemented ClientSkip.
7190
* media.cpp: Handle playlists entry with ClientSkip set correctly.
7192
2008-05-02 Michael Dominic K. <mdk@mdk.am>
7195
* animation.h: For the KeySpline: getting rid of the ugly lookup-table
7196
with x -> y values and instead using a two-way curve approximation
7197
methodology for calculating the Spline progress. This is not 100% accurate
7198
(same as original bezier) for fine-grained values but removes all the
7199
precision problems and greatly improves the quality for long KeySpline
7200
animations (no more jags).
7202
2008-05-01 Larry Ewing <lewing@novell.com>
7204
* uielement.cpp (UIElement::OnPropertyChanged): go ahead and
7205
invalidate here as changes in the upstream opacity could make us
7206
unable to invalidate later.
7208
Fixes invalidation of last hex in a sprawl run.
7210
2008-05-01 Larry Ewing <lewing@novell.com>
7212
* runtime.cpp: Fix a bunch of rendering bugs in windowless mode.
7213
Previously there were no time manager handlers listening to events
7214
in windowless mode so we were missing expose events. Make all
7215
invalidations go throw Invalidate so that they get picked up in
7216
windowless. Take into account that exposes go to a full size
7217
window in windowless mode so we don't need to subtract the device
7220
Fixes most of the issues with
7221
http://silverlight.r2musings.com/weatherwidget/default.aspx and
7222
fixes the harness failure on ZIndex.htm.
7224
2008-05-01 Chris Toshok <toshok@ximian.com>
7226
* runtime.h, runtime.cpp: remove the LoadEvent and instead add an
7227
AttachingEvent, which is emitted after the toplevel control is set
7228
on the surface, but before UIElement::LoadedEvent is emitted on
7229
it. Used by the plugin for hooking up the plugin onLoad handler.
7231
2008-05-01 Jeffrey Stedfast <fejj@novell.com>
7233
* layout.cpp (RenderLine): Instead of grabbing the cairo_path_t
7234
from the cairo_t after pathing out all of the glyphs for a segment
7235
of text, keep our own moon_path for caching. Apparently the path
7236
gotten from cairo_copy_path() has whatever transforms are on the
7237
context pre-applied which is the cause for the breakage in bug
7240
* font.cpp (TextFont::AppendPath): New method to append a glyph's
7241
path to a moon_path for caching purposes.
7243
2008-04-30 Fernando Herrera <fherrera@novell.com>
7245
* media.cpp: at MediaElement::DownloaderFailed if the uri was a mms://
7246
stream, fallback to http:// uri
7248
2008-04-30 Michael Dominic K. <mdk@mdk.am>
7251
* panel.h: Adding the panel_add_child helper method used by the ancient
7252
demo. It actually makes sense.
7254
2008-04-30 Michael Dominic K. <mdk@mdk.am>
7259
* xaml.cpp: Include the utils.h locally in .cpp file and remove it from
7260
the install. This way we don't need to bundle the zip includes.
7262
2008-04-30 Stephane Delcroix <sdelcroix@novell.com>
7264
* shape.cpp: calc_line_bounds: compute the start|end caps in the
7267
2008-04-30 Sebastien Pouliot <sebastien@ximian.com>
7269
* panel.cpp: Emit Loaded on Canvas before it's child.
7270
[Fix part #361906 - i.e. back to original issue]
7272
2008-04-30 Fernando Herrera <fherrera@novell.com>
7275
* downloader.h: export downloader_get_downloaded_file without the
7278
2008-04-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
7280
* pipeline.cpp: Mp3FrameReader/Demuxer: Calculate frame duration
7281
correctly, and calculate file duration as MS seems to be doing it.
7282
SkipFrame: when seeking don't take into account the size of the
7283
mpeg header, since we only peaked it.
7285
2008-04-29 Michael Dominic K. <mdk@mdk.am>
7287
* shape.cpp: Clipping is not taken into account with cairo_in_*
7288
functions therefore do the hit-test in two steps -- first check if
7289
within clipping bounds and then check if within shape bounds. Fixes
7290
#383894 and test-shape-cursor-clipping.xaml test.
7292
2008-04-28 Chris Toshok <toshok@ximian.com>
7294
* runtime.cpp (Surface::Attach): emit the canvas's Loaded event
7295
before we emit our own Load event (and trigger the plugin's onLoad
7298
2008-04-28 Chris Toshok <toshok@ximian.com>
7300
* runtime.cpp (Surface::Attach): always emit Resize on Attach.
7301
fixes ControlState.htm.
7303
2008-04-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
7305
* typegen/typegen.cs: Minor fix to support C constructors immediately
7307
* type-generated.cpp: Regenerated (includes a lot more C constructors
7310
2008-04-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
7312
* geometry.h: Include glib.h before using glib macros.
7314
2008-04-28 Michael Dominic K. <mdk@mdk.am>
7316
* xaml.cpp: Silently skip the attributes that are empty instead of
7317
throwing an error. Fixes the test-parser-empty-property.xaml and
7320
2008-04-28 Michael Dominic K. <mdk@mdk.am>
7322
* brush.cpp: Make sure to use proper width for image stretching params.
7323
Fixes the image-brush-stretch-set.html and bug #383938.
7325
2008-04-25 Jeffrey Stedfast <fejj@novell.com>
7327
* shape.cpp: Added property accessors.
7329
2008-04-25 Chris Toshok <toshok@ximian.com>
7331
* type-generated.cpp: add the Surface Loaded event.
7333
* runtime.cpp (Surface::widget_destroyed): null out s->widget if
7334
it matches too. no more dangling pointers.
7336
* runtime.h, runtime.cpp: give the Surface class a Load
7337
event (used to run the JS OnLoad event in the plugin) and an
7340
* xaml.cpp (dependency_object_hookup_event): raise a parser error
7341
if an event is specified with a javascript: prefix.
7343
2008-04-25 Larry Ewing <lewing@novell.com>
7345
* stylus.cpp (InkPresenter::OnCollectionChanged): wrap the stroke
7346
changed logic inside a type check.
7348
2008-04-25 Jeffrey Stedfast <fejj@novell.com>
7350
* xaml.cpp (geometry_from_str): Use the new gemoetry property
7353
* geometry.cpp: Added property accessor methods
7355
2008-04-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
7357
* media.cpp: Always emit DownloadProgressEvents, even if we're
7360
2008-04-25 Stephane Delcroix <sdelcroix@novell.com>
7362
* stylus.cpp: InkPresenter::OnCollectionChanged: call the parent
7363
method, so the Canvas.Top, Canvas.Left properties are read. Fixes
7366
2008-04-25 Geoff Norton <gnorton@novell.com>
7368
* pipeline-ffmpeg.cpp, pipeline-ffmpeg.h: Support using ffmpeg's
7369
new libavcodec/avcodec.h
7371
2008-04-25 Jeffrey Stedfast <fejj@novell.com>
7373
* runtime.cpp (runtime_init): No longer need to call
7374
assembly_part_init().
7376
* deployment.cpp (assembly_part_init): Moved into
7379
* deployment.h: Added missing virtual dtors.
7381
* collection.cpp (Collection::GetCount): Added.
7383
2008-04-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
7385
* media.cpp: Set DownloadProgress to 0 when media fails to load.
7387
2008-04-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
7389
* media.cpp: MediaElement::CheckMarkers: if the marker is from a live
7390
stream, emit it even if we missed it by up to 0.1 s. Refactored
7391
parts of UpdateProgress into GetBufferedSize. Emit MediaOpened only
7392
after we've either started playing or finished buffering. Emit
7393
MediaFailed/InvalidFileFormat if we failed to initialize the media.
7394
Reinitialize the media synchronously in SetSource.
7397
2008-04-25 Michael Dominic K. <mdk@mdk.am>
7401
* uielement.h: Also include the IsHitTestVisible status when checking
7402
our input_list after handling the mouse event. This fixes the
7403
mouse-enter-leave-hit-test-visibility.html test.
7405
2008-04-25 Stephane Delcroix <sdelcroix@novell.com>
7407
* runtime.cpp: move the hotspot for the eraser, Fixes bnc 375213.
7409
2008-04-24 Jeffrey Stedfast <fejj@novell.com>
7411
* clock.cpp: Added property accessor methods for TimelineMarker
7412
and added c-bindings.
7414
* downloader.cpp: Same.
7416
* media.cpp: Added property accessors so that it isn't
7417
necessary to use long-winded c-function names to get property
7418
values. Also made all c-wrappers call the c++ property accessor
7421
2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
7423
* mplayer.cpp: When a video-only media reaches its end, set target_pts
7424
to the last rendered pts, since that's what is reported as our
7427
2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
7429
* mplayer.cpp: When a video-only media reaches its end, set target_pts
7430
to the last rendered pts, since that's what is reported as our
7433
2008-04-24 Michael Dominic K. <mdk@mdk.am>
7437
* uielement.h: Renaming UIElement::GetActualRenderVisibility to
7438
UIElement::GetActualTotalRenderVisibility for better name matching.
7440
2008-04-24 Michael Dominic K. <mdk@mdk.am>
7442
* runtime.cpp: Another perf fix for the fix -- make it a corner case
7443
when the new_input_list needs to be copied. In most cases we can just
7446
2008-04-24 Michael Dominic K. <mdk@mdk.am>
7450
* uielement.h: Ooops, so my prev fix was correct but *totally* dumb from
7451
the perf/sanity point of view. Here goes a better refactor.
7453
Adding UIElement::GetActualRenderVisibility which returns the visibility
7454
(like UIElement::ComputeTotalRenderVisibility) without setting the
7457
2008-04-24 Michael Dominic K. <mdk@mdk.am>
7459
* runtime.cpp: After emitting the events make sure to update our
7460
input_list since it can be changed -- as a result of somebody ie.
7461
changing element's visibility in the enter/leave callback. Fixes the
7462
#375220 (Microsoft downloads index chars).
7464
2008-04-24 Michael Dominic K. <mdk@mdk.am>
7466
* animation.cpp: Do a slightly more precise generation of key-spline
7467
tables. Improves smoothness ie. in test-animation-slow-keyspline.xaml.
7469
2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
7471
* media.cpp, media.h: MediaElement: add a handler for DownloaderFailed
7472
and raise MediaFailed.
7474
2008-04-24 Stephane Delcroix <sdelcroix@novell.com>
7479
* shape.h: override some Compute[Shape]Bounds method to pass a matrix
7480
argument. Allows measuration of transformed Pathes and a 2nd pass to
7481
refines the guesses we're doing for Stretches.
7483
2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
7487
2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
7489
* media.cpp, pipeline.cpp, pipeline.h: Addded
7490
ProgressiveSource::NotifyFinished to notify that the download has
7491
finished. This is required for streaming downloads which download 0
7492
bytes, otherwise the pipeline will hang waiting for data.
7494
2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
7496
* collection.cpp, collection.h: TimelineMarkerCollection needs to be
7497
sorted at all times, added a virtual Collection::AddToList method
7498
which appends the item to the list (and overriden by
7499
TimelineMarkerCollection to add it in the correct position to keep
7500
the collection ordered).
7502
2008-04-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
7504
* clock.cpp, clock.h: Added property accessors to TimelineMarker.
7506
2008-04-23 Jeffrey Stedfast <fejj@novell.com>
7508
* panel.cpp: Add property accessors and added c-bindings.
7510
2008-04-23 Geoff Norton <gnorton@novell.com>
7512
* Makefile.am: Fix make dist when building with ffmpeg.
7514
2008-04-23 Jeffrey Stedfast <fejj@novell.com>
7516
* frameworkelement.cpp: Added property accessors so that it isn't
7517
necessary to use long-winded c-function names to get property
7518
values. Also made all c-wrappers call the c++ property accessor
7521
* text.cpp: Added property accessors to all text classes so that
7522
it isn't necessary to use long-winded c-function names to get
7523
property values. Also made all c-wrappers call the c++ property
7525
(TextBlock::LayoutSilverlight): Removed, logic moved into
7528
* animation.h: Make sure all c-API _new() functions take void as
7531
* uielement.cpp: Added some property accessors.
7533
* text.cpp: Use the new SolidColorBrush ctor.
7535
* brush.cpp: Added property accessors to all brush classes so that
7536
it isn't encessary to use long-winded c-function names to get
7537
property values. Also made all c-wrappers call the c++ property
7539
(SolidColorBrush::SolidColorBrush): New .ctor to make life
7542
2008-04-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
7544
* mplayer.cpp: AudioPlayer: prevent calling SetTargetPts on the
7545
MediaPlayer with a negative pts.
7547
2008-04-23 Geoff Norton <gnorton@novell.com>
7549
* libmoon.h: Drop mango.h
7551
2008-04-23 Geoff Norton <gnorton@novell.com>
7553
* runtime.cpp: Remove pango support.
7555
2008-04-23 Geoff Norton <gnorton@novell.com>
7557
* Makefile.h, text.cpp, text.h, mango.cpp, mango.h: Remove pango
7560
2008-04-23 Geoff Norton <gnorton@novell.com>
7562
* swscale-converter.cpp, pipeline-ffmpeg.cpp, Makefile.am: Only
7563
include swscale and ffmpeg cpp files in the build if their configure
7566
2008-04-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
7568
* type.cpp: When looking for types use case-insensitive type
7569
comparison. Fixes #375230 and #375231.
7571
2008-04-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
7573
* pipeline.cpp, pipeline.h: MediaClosure: add SetContextUnsafe which
7574
don't take a ref to the context, and add a context_refcounted field
7575
to keep track of refcounting. This is required for long-living
7576
closures which would otherwise cause circular references. Add and
7577
implemetn a ASFMarkerDecoderInfo class, and implement notification
7578
of found markers back to listeners.
7580
* downloader.cpp, downloader.h: Downloader: Add a streaming_features
7581
field, so that the plugin can return information about mms streams.
7582
* http-streaming.cpp, http-streaming.h: Added
7583
parse_http_streaming_features.
7584
* mplayer.h: Add property accessors for CanSeek and CanPause, and
7585
implement them. Select any marker streams.
7586
* media.h, media.cpp: MediaElement: store the marker closure in the
7587
instance, so that we can delete it upon destruction. Read the
7588
streaming features from the downloader in order to set
7589
CanSeek/CanPause properly. TryOpen: if we don't have a filename,
7590
but we do have a downloaded file, use the downloaded file as the
7591
source (might happen if streaming stops before TryOpen is called).
7592
* mplayer.cpp: Add property accessors for CanSeek and CanPause, and
7593
implement them. Select any marker streams. Don't check if we can
7594
pause in Pause (), since MediaElement implements Buffering calling
7595
Pause on us. MediaElement is already checking if media can be
7597
* Makefile.am: Added http-streaming.h|cpp.
7599
2008-04-22 Stephane Delcroix <sdelcroix@novell.com>
7601
* rect.h: overrides for Union and IsEmpty to take a logical bool,
7602
allowing logical bounds computation.
7603
* geometry.cpp: use the overrided Union () in Computebounds
7604
* shape.cpp: This is the stretches' Holy Grail !
7606
2008-04-22 Jeffrey Stedfast <fejj@novell.com>
7608
* eventargs.cpp (MouseEventArgs::GetStylusPoints): Make sure
7609
event->device non-NULL.
7611
2008-04-22 Larry Ewing <lewing@novell.com>
7613
* playlist.h: remove expat references from public symbols.
7614
* playlist.cpp: Wrap XML_Parser in simple class to hide the symbol
7615
from the plublic headers.
7617
Start cleaning things up for ff3.
7619
2008-04-22 Chris Toshok <toshok@ximian.com>
7621
* runtime.h, runtime.cpp: add Zombify() which sets the zombie
7622
flag. basically this allows us to unwind gracefully from an event
7623
that has caused the surface to be destroyed. when the flag is
7624
set, we basically stop emitting UI events that we're in the
7625
process of emitting.
7626
(Surface::widget_destroyed) simplify this, and zero out the
7627
widgets here so we don't destroy them again in ~Surface().
7629
* dependencyobject.h, dependencyobject.cpp: make unref_delayed
7630
public again, and don't warn about calling it on the main thread.
7631
we need it in the plugin.
7633
2008-04-22 Jeffrey Stedfast <fejj@novell.com>
7635
* shape.cpp (Shape::DoDraw): Cast extents to int for
7636
AddToCacheSizeCounter().
7637
(Shape::IsCandidateForCaching): Same for
7638
VerifyWithCacheSizeCounter().
7640
2008-04-22 Michael Dominic K. <mdk@mdk.am>
7642
* animation.cpp: Safely allow now the KeyTime property to be nullable.
7643
Fixes the Animation_NegativeTst.htm test.
7645
2008-04-22 Michael Dominic K. <mdk@mdk.am>
7648
* animation.h: Making the Storyboard::Begin return bool (true if
7649
storyboard started correctly, false otherwise).
7651
2008-04-22 Michael Dominic K. <mdk@mdk.am>
7656
* clock.h: Adding a 'bool Validate ()' virtual to Timeline which is used
7657
to validate the Timeline before starting it. Timelines are always valid
7658
by default except for KeyFrame-based animations where we perform a
7659
check on the keyframes.
7661
Storyboard doesn't start if any of it's timelines are not valid. This
7662
fixes the test-animation-invalid-keyframe-keytime.xaml test.
7664
2008-04-22 Michael Dominic K. <mdk@mdk.am>
7666
* animation.cpp: Don't initialize the KeyTime for KeyFrame to a default
7667
value, make it be NULL by default. This currently causes a segfault in
7668
the just-added test-animation-invalid-keyframe-keytime.xaml which is
7671
2008-04-22 Fernando Herrera <fherrera@novell.com>
7674
* pipeline.cpp: set the new read position after Seeking to pts.
7675
Added ProgressiveSource::SeekInternal that refuses to Seek to a
7676
non-filled position.
7678
2008-04-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
7680
* dependencyobject.cpp, dependencyobject.h: Added another SetValue
7681
overload, to enable calling all SetValues with stack objects.
7682
* xaml.cpp: Fix a Value leak.
7684
2008-04-21 Jeffrey Stedfast <fejj@novell.com>
7686
Fixes a double-destroy bug in FullScreen.htm
7688
* runtime.cpp (Surface::Surface): Initialize normal_widget - never
7689
let it be NULL unless we are in windowless mode.
7690
(Surface::.dtor): Don't call DestroyWidget on 'widget', call it on
7691
'widget_normal' instead, this way we can't accidently destroy the
7692
fullscreen widget twice (e.g. if we are in fullscreen mode).
7693
(Surface::ConnectEvents): Record the unrealize signal id so that
7694
we can later disconnect from it.
7695
(Surface::DestroyWidget): Now takes a SignalIds argument so that
7696
we can disconnect from unrealize/destroy signals which may fire in
7697
response to destroying the widget.
7698
(Surface::InitializeWidget): Now takes a SignalIds argument so
7699
that we can save the destroy signal id.
7701
2008-04-21 Geoff Norton <gnorton@novell.com>
7703
* runtime.cpp: Guard against freeing a list in a sub-event
7704
loop when crossings are invoked. Fixes bug#378902
7706
2008-04-20 Miguel de Icaza <miguel@roxanne.site>
7708
* deployment.cpp: new dependency property objects for the
7711
* xap.cpp: XAP loader, unpacks and instantiates deployment, but
7712
does not load assemblies in VM. Not sure if this should be done
7713
here (and add a VM dependency) or in the plugin and later as well
7716
* runtime.cpp: Deployment initialization.
7718
* downloader.cpp Moved some code from here into utils.cpp: Expose
7719
CreateTempDir instead of MakeTempDir that takes care of creating
7720
the directory with a unique signature.
7722
2008-04-21 Geoff Norton <gnorton@novell.com>
7724
* yuv-converter.cpp: Emit a warning on unaliged memory and fall back
7725
to the C implementation.
7727
2008-04-18 Larry Ewing <lewing@novell.com>
7729
* dirty.cpp (Surface::ProcessDownDirtyElements): When visibility
7730
changes invalidate our parents bounds to notify them that their
7731
subtree may have changed.
7733
Fixes the status boxes on MouseInput.htm
7735
2008-04-18 Jeffrey Stedfast <fejj@novell.com>
7737
* runtime.cpp (Surface::ConnectEvents): Connect to focus-in-event
7738
and focus-out-event.
7739
(Surface::focus_in_callback): If we have a toplevel canvas, emit a
7740
GotFocus event on it.
7741
(Surface::focus_out_callback): If we have a toplevel canvas, emit
7742
a LostFocus event on it.
7743
(Surface::Attach): If our widget has focus, emit GotFocus event on
7744
our canvas right after we emit the Loaded event.
7746
* uielement.cpp (UIElement::EmitGotFocus): New method.
7747
(UIElement::EmitLostFocus): New method.
7749
2008-04-18 Geoff Norton <gnorton@novell.com>
7751
* yuv-converter.cpp: It seems that ffmpeg will occasionally
7752
over-pad the YUV buffers with a SIMD aligned amount (see
7755
2008-04-18 Michael Dominic K. <mdk@mdk.am>
7757
* animation.cpp: Make sure we always return targetValue when
7758
progress >= 1.0 for Spline*KeyFrame's.
7760
This fixes the clock36.xaml test and PopFly bug of "line dirt
7761
leftovers" when collapsing block list or tutorial list.
7763
2008-04-17 Larry Ewing <lewing@novell.com>
7765
* xaml.cpp (xaml_init): register MouseEventArgs as a dependency object.
7767
2008-04-17 Larry Ewing <lewing@novell.com>
7769
* src/eventargs.cpp:
7771
* src/type-generated.cpp:
7772
* src/value.h: add a default ctor for MouseEventArgs.
7774
2008-04-17 Larry Ewing <lewing@novell.com>
7776
* typegen/typegen.cs: don't require an svn repo for proper
7777
functioning, try to make the error messages functional still.
7779
2008-04-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
7781
* media.cpp: MediaElement::MediaOpened: Advance state to Buffering
7782
before trying to play/pause, otherwise nothing will happen (if
7783
coming from the Opening state). Fix printf.
7785
2008-04-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
7787
* dependencyobject.cpp, dependencyobject.h: Add an always_change flag
7788
for DependencyProperty, if a property has this flag, it will always
7789
be changed, even if the new value is the same as the old value.
7790
DependencyObject::SetValue: honor the new always_change flag.
7791
* media.cpp: Set the always_change flag to true for
7792
MediaBase::SourceProperty.
7794
2008-04-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
7796
* media.cpp: MediaElement: Move the Play/Pause/AutoPlay logic to
7797
MediaOpened, so that it also happens when TryLoadFinished opens the
7798
media. Fixes media not starting to play when the media was
7799
downloaded between the moment we tried to open it and it was
7800
successfully opened.
7802
2008-04-17 Jeffrey Stedfast <fejj@novell.com>
7804
* color.cpp (color_from_str): Handle uint32 color values that are
7807
2008-04-17 Larry Ewing <lewing@novell.com>
7809
* dependencyobject.cpp (DependencyProperty::DependencyProperty):
7810
initialize is_nullable.
7812
Fixes random failure of ParserErrors.htm.
7814
2008-04-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
7816
* media.cpp: MediaElement::TryOpen: always unref the FileSource we
7817
create when we're done with it.
7819
2008-04-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
7821
* dependencyobject.cpp, dependencyobject.h: EventObject: we need to
7822
remember how many events the current type has, since in our
7823
destructor we can't get that information anymore. Add a new
7824
EventLists class which does the book-keeping.
7826
2008-04-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
7828
* media.cpp: MediaElement::Reinitialize: don't call SetValue if we're
7829
in the destructor. MediaElement::SetMedia: call ComputeBounds at
7830
the end. Fixes xaml/test-canvas-no-size.html
7832
2008-04-17 Michael Dominic K. <mdk@mdk.am>
7834
* animation.cpp: It turns out that KeyFrames doesn't have default Value
7835
of NULL but rather 0/Black/etc.
7837
This fixes the the test-animation-null-defaults-*.xaml tests and the bug
7838
in PopFly where clicking the block list collapser wouldn't do anything
7839
(it collapses now properly like the tutorial right pane).
7841
2008-04-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
7845
2008-04-16 Larry Ewing <lewing@novell.com>
7847
* type.cpp: avoid an infinite recursion in LookupEvent.
7849
Fixes a crash in RuntimeErrors.htm.
7851
2008-04-16 Larry Ewing <lewing@novell.com>
7853
* shape.cpp (Shape::ComputeStretchBounds): get another test working.
7855
2008-04-16 Larry Ewing <lewing@novell.com>
7857
* shape.cpp (Shape::ComputeStretchBounds): an incomplete fix to
7858
try to resolve the regression in stretch that had crept in. Still
7859
working on a more complete patch.
7861
2008-04-16 Larry Ewing <lewing@novell.com>
7863
* geometry.cpp (RectangleGeometry::ComputeBounds): rectangles have
7866
2008-04-16 Jeffrey Stedfast <fejj@novell.com>
7868
* dependencyobject.cpp (free_value): value argument may be NULL.
7870
2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
7872
* dependencyobject.cpp: DependencyObject: Emit DestroyedEvent before
7873
decreasing refcount, so that ref in event emission doesn't abort.
7874
Reenable ref/unref in event emission.
7876
2008-04-16 Jeffrey Stedfast <fejj@novell.com>
7878
* dependencyobject.cpp (set_surface): value argument can be NULL.
7879
(DependencyObject::IsValueValid): Fixed compile warnings.
7881
* downloader.cpp: Properly set/reset Status and StatusText
7883
(Downloader::Open): Properly reinitialize all state.
7884
(Downloader::Write): Clamp progress to 1.0 (altho it should never
7885
go above, especially not that I've fixed resetting 'total' state).
7887
* enums.c (initialize_enums): Don't cast arrays using
7888
GINT_TO_POINTER(), doesn't make any sense.
7890
2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
7892
* collection.cpp: Collection::EmitChanged: don't create a
7893
ChangeEventArgs if we don't need one, and unref it when we're
7896
2008-04-16 Michael Dominic K. <mdk@mdk.am>
7898
* clock.cpp: Add protection against division by 0.
7900
2008-04-16 Michael Dominic K. <mdk@mdk.am>
7903
* animation.h: Don't detach the ClockGroup from parent on the Completed
7904
event. This is now finally no longer needed. While keeping the
7905
clockgroup means little perf difference it makes the whole thing much
7906
more simple to read (there is just one place that explains why Filling
7907
groups are no longer processed after Completed).
7909
2008-04-16 Larry Ewing <lewing@novell.com>
7911
* shape.cpp: tweak the origin tweak again. This should pass
7912
test-shape-path-stretch[34].xaml.
7914
2008-04-16 Jeffrey Stedfast <fejj@novell.com>
7916
Fix for OMPackagingSource.htm
7918
* media.cpp (MediaElement::OnPropertyChanged): If the new source
7919
is empty, Invalidate().
7920
(MediaElement::Render): Render nothing if our downloader is NULL.
7922
2008-04-16 Larry Ewing <lewing@novell.com>
7924
* shape.cpp: don't adjust the origin unless we are adjusting that
7927
2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
7929
* playlist.cpp: Simplify printf.
7931
2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
7933
* src.mdp: Updated to (mostly) compile.
7935
2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
7939
2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
7941
* typegen/typegen.sh: Updated to work correctly independently of
7942
the current directory when executed.
7944
2008-04-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
7946
* animation.cpp, animation.h, brush.cpp, brush.h, clock.cpp, clock.h,
7947
collection.cpp, collection.h, dependencyobject.h, downloader.cpp,
7948
downloader.h, Makefile.am, media.cpp, media.h, runtime.cpp, runtime.h,
7949
type.cpp, type.h, type.h.in, typegen/typegen.cs, type-generated.cpp,
7950
uielement.cpp, uielement.h: Initialize our type system statically.
7951
* dependencyobject.cpp: Initialize our type system statically. Comparing a
7952
Kind value to another to determine type hierarchy isn't supported
7953
anymore, use Value::Is or Type::IsSubclassOf, which are doing the right
7956
* type.cpp.in: Removed, no longer required.
7957
* value.cpp, value.h, value.h.in: Comparing a Kind value to another to
7958
determine type hierarchy isn't supported anymore, use Value::Is or
7959
Type::IsSubclassOf, which are doing the right thing.
7961
2008-04-16 Larry Ewing <lewing@novell.com>
7963
* shape.cpp (Shape::ComputeStretchBounds): fix typo.
7965
2008-04-16 Larry Ewing <lewing@novell.com>
7967
* shape.cpp (Shape::ComputeStretchBounds): fix the centering logic
7968
that got accidentally lost when fixing other bits.
7970
Fixes regression in StretchAndShapes.xaml.
7972
2008-04-16 Jackson Harper <jackson@ximian.com>
7974
* xaml.cpp: {x:Null} evaluates to NULL, if we encounter this value
7975
we need to check if the property is Nullable and raise an error if
7978
2008-04-16 Jackson Harper <jackson@ximian.com>
7980
* dependencyobject.h|cpp: SetValue now validates values and
7981
returns false with a GError when invalid values are used.
7982
Subclasses can (and should) override IsValidValue to do their own
7984
* xaml.cpp: Use new SetValue that returns errors.
7986
2008-04-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
7988
* media.cpp: MediaBase::SetSourceAsyncCallback: don't do anything if we
7989
don't have a surface anymore. We're probably executing after the surface
7992
2008-04-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
7994
* src.mdp: Updated to include typegen/*.
7995
* type.cpp, type.cpp.in, type.h, type.h.in: Added type_get_name, and fix
7996
Behaviour/Behavior inconsistency.
7998
2008-04-15 Jeffrey Stedfast <fejj@novell.com>
8000
* media.cpp (MediaElement::OnPropertyChanged): Moved the
8001
PositionProperty seek logic into here so we could get rid of
8002
MediaElement::SetValue() overload.
8004
* dependencyobject.h (class DependencyObject): SetValue() is no
8005
longer a virtual method.
8007
2008-04-15 Michael Dominic K. <mdk@mdk.am>
8009
* clock.cpp: ret_time is 0 when reaching repeat_count == 0. Fixes the
8012
2008-04-15 Michael Dominic K. <mdk@mdk.am>
8014
* clock.cpp: Clock::ComputeNewTime - make sure to take the speed ratio
8015
into account also when moving back in time.
8017
Fixes the clock34.xaml test.
8019
2008-04-15 Michael Dominic K. <mdk@mdk.am>
8021
* animation.cpp: Make sure to clamp the progress to 0.0 - 1.0 when we're
8022
calculating it ourselves (instead of using the CalcProgress). Otherwise
8023
we're bypassing the clamping and extending animations/values beyond
8026
This is a real fix for the Popfly #378390 (cannot configure the box in
8027
Popfly). Also fixes the clock34.xaml test-case.
8029
2008-04-15 Michael Dominic K. <mdk@mdk.am>
8031
* clock.cpp: Since we're at it, small fix in Clock::Tick -- Clamp time
8032
when previous OR current state is Clock::Active.
8034
2008-04-15 Michael Dominic K. <mdk@mdk.am>
8036
* clock.cpp: Reverting the change that was supposed to fix popfly. It's
8037
actually totally bad. I knew I was too fast with this one.
8039
2008-04-15 Michael Dominic K. <mdk@mdk.am>
8041
* clock.cpp: The time needs to be clamped always. Fixes #378390 (cannot
8042
configure the box in Popfly). Whoah, that was a nasty one.
8044
2008-04-14 Chris Toshok <toshok@ximian.com>
8046
* runtime.cpp (Surface::Attach): don't clear the up/down dirty
8047
lists here. Calling toplevel->SetSurface(NULL) ensures that all
8048
elements from the previous tree have their dirty elements removed,
8049
so what's left will correspond to 1) things that are about replace
8050
the current hierarchy, or 2) things that haven't actually been
8051
added to the hierarchy yet, but need to be associated with a
8054
* collection.cpp (Collection::Clear): emit
8055
CollectionChangeTypeChanging event before we do the actual change
8056
so the owner can do something with the children if it needs to.
8057
(VisualCollection::VisualAdded, VisualCollection::VisualRemoved):
8059
(VisualCollection::Add): remove call to VisualAdded. that
8060
behavior will be handled by Panel in its OnCollectionChanged
8062
(VisualCollection::SetVal): same.
8063
(VisualCollection::Insert): same.
8064
(VisualCollection::Remove): same, but with VisualRemoved.
8065
(VisualCollection::RemoveAt): same.
8066
(VisualCollection::Clear): remove the loop calling VisualRemoved.
8067
this will be handled by the additional
8068
CollectionChangeTypeChanging handling in panel.cpp.
8070
* enums.h (enum CollectionChangeType): add
8071
CollectionChangeTypeChanging.
8073
* panel.h, panel.cpp (Panel::OnPropertyChanged): handle the case
8074
where the ChildrenProperty is changed, by calling ChildRemoved on
8075
all the old children, and ChildAdded on all the new ones.
8076
(Panel::ChildAdded): new home for VisualCollection::VisualAdded.
8077
(Panel::ChildRemoved): new home for
8078
VisualCollection::VisualRemoved.
8079
(Panel::OnCollectionChanged): add support for
8080
CollectionChangeTypeChanging, so we can remove all children. this
8081
change type is generated by Collection::Clear.
8083
* stylus.cpp (Stroke::OnCollectionChanged): add empty handler for
8084
CollectionChangeTypeChanging.
8085
(InkPresenter::OnCollectionChanged): same.
8087
2008-04-14 Jeffrey Stedfast <fejj@novell.com>
8089
* media.cpp (Image::CreateSurface): Robustification of image
8092
2008-04-14 Michael Dominic K. <mdk@mdk.am>
8095
* clock.h: When calculating the new time in DoRepeat use modulo on new
8096
value. Otherwise we're 'losing' a little bit of time on every repeat and
8097
end time doesn't match with parent. This fixes a few more "jags" on
8098
animations ie. clock13.xaml.
8100
2008-04-11 Larry Ewing <lewing@novell.com>
8102
* xaml.cpp (value_from_str): make sure we propogate the error if
8103
color_from_string returns NULL.
8105
* color.cpp (color_from_str): return NULL on invalid color values
8106
rather than simply returning black.
8108
Add an error condition to color_from_string so that we pass the
8109
color tests in ParserErrors test.
8111
2008-04-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
8113
* dependencyobject.cpp: Surround event emission with ref/unref of ourselves.
8115
2008-04-11 Jeffrey Stedfast <fejj@novell.com>
8117
* playlist.cpp: Disable debugging spew unless DEBUG_PLAYLISTS is
8120
* downloader.cpp (Downloader::Send): Use
8121
TimeManager::InvokeOnMainThread() here like Rolf did in
8122
MediaBase. Simplifies things by not needing a surface.
8124
* text.cpp (TextBlock::SetFontSource): Now takes a Downloader
8125
object as opposed to a DependencyObject.
8127
2008-04-11 Michael Dominic K. <mdk@mdk.am>
8129
* clock.cpp: in Clock, make sure we CalcProgress on the last tick before
8130
we go Filling/Stopped. Without this we never "finish off" our animations
8131
and depending on the framerate we get "jags". Fixes the clock32.xaml
8134
2008-04-11 Jeffrey Stedfast <fejj@novell.com>
8136
* runtime.cpp: Make the dot and eraser cursors const to avoid
8139
2008-04-11 Michael Dominic K. <mdk@mdk.am>
8141
* enums.c: Removing bolox comment and behavior. Always return -1 on
8144
* xaml.cpp: Push a g_warning when we're hitting bad enums on bad props.
8145
Should make it a little bit easier to spot problems.
8147
2008-04-11 Michael Dominic K. <mdk@mdk.am>
8149
* dependencyobject.cpp: When calling RegisterAllNamesRootedAt be
8150
actually recursive (I'm not sure why this was commented out? Toshok?).
8151
Fixes the sprawl end-game animation, #378748.
8153
2008-04-11 Stephane Delcroix <sdelcroix@novell.com>
8155
* runtime.cpp: create the stylus and eraser cursors from xpm. Fixes
8156
bnc #375213. Implemented the MouseCursorNone too.
8158
2008-04-10 Larry Ewing <lewing@novell.com>
8160
* xaml.cpp (start_element): throw an error if there is an xml
8161
attribute on a dependency property.
8163
2008-04-10 Larry Ewing <lewing@novell.com>
8165
* enums.c (enum_from_str): return -1 on an invalid enum string so
8166
that we can catch it as a ParserError fixes
8167
Parser_Invalid_Enum.xaml.
8169
2008-04-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
8171
* media.cpp: MediaBase::SetSource: no need to get a
8172
Surface/TimeManager instance to do an asynchronous call, just
8173
call TimeManager::InvokeOnMainThread.
8175
2008-04-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
8177
* mplayer.h, mplayer.cpp: Added MediaPlayer::AudioFinished, called
8178
by the audio thread when the audio finishes.
8180
* media.h, media.cpp: Added MediaElement::AudioFinished, called by
8181
the media player when the audio finishes. Enables us to raise
8182
MediaEnded for audio-only media.
8184
2008-04-10 Jeffrey Stedfast <fejj@novell.com>
8186
* brush.cpp|media.cpp: All SetSource() entry points now take
8187
Downloader objects rather than DependencyObject arguments - the
8188
same as MSDN defines.
8190
* media.cpp (SetSourceInternal): More cleanup /
8191
simplification. Since *::SetSource() already takes steps to be
8192
async, no need to use Downloader::Send() which would introduce
8193
another delay in downloading. It should be plenty safe to call
8194
Downloader::SendNow() in all ::SetSourceInternal()
8195
implementations. Also, we now need to handle NULL downloader which
8196
we get called with if the original SetSource() was passed a NULL
8198
(Image::SetSource): Don't cleanup the surface here, do that in
8199
SetSourceInternal() so that we delay until appropriate.
8200
(Image::SetSourceInternal): If there is a downloader, delay
8201
CleanupSurface() even longer until the new image has been
8203
(Image::DownloaderComplete): Call CleanupSurface() here.
8205
2008-04-10 Jeffrey Stedfast <fejj@novell.com>
8207
* media.cpp: Consolidated Image and MediaElement downloader bits
8208
by putting them into MediaBase.
8210
2008-04-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
8212
* dependencyobject.cpp: Guard against calling closures which have
8213
been removed during emission of previous events in the same
8214
event list: when we're emitting and a closure is removed, mark
8215
the closure as pending removal, don't call it anymore, and only
8216
remove it when we're finished emitting.
8218
* dependencyobject.h: Guard against calling closures which have
8219
been removed during emission of previous events in the same
8222
2008-04-10 Michael Dominic K. <mdk@mdk.am>
8226
* media.cpp: A straight-forward fix for "gray flashes" in comic and
8227
slideshow (#375275). It's circumventing a change to make downloaders
8228
async for Image. Jeff, maybe you can figure more?
8230
(The commit that broke the the slideshow was r99065, Jeff from
8233
2008-04-10 Michael Dominic K. <mdk@mdk.am>
8235
* shape.cpp: Little fix for new stretching algho by Stephane. Fixes the
8236
Showcase and test-shape-path-stretch2.xaml.
8238
2008-04-09 Chris Toshok <toshok@ximian.com>
8240
* stylus.cpp (Stroke::HitTestEndcapSegment): don't fail if root_1
8241
is invalid, as root_2 might be.
8243
2008-04-09 Chris Toshok <toshok@ximian.com>
8245
[ Fixes some odd behavior in
8246
http://www.thedatafarm.com/silverink/, and also fixes bug
8249
* panel.cpp (Panel::FrontToBack): Kind of a screwy change - we
8250
intersect the expose region with our RenderBounds, not our normal
8251
Bounds. This forces us to add the ink presenter to the render
8252
list even when the exposed area is just going to redraw a stroke,
8253
not the actual canvas rectangle. When we go to subtract, however,
8254
we still only subtract the canvas rectangle.
8256
* stylus.cpp (InkPresenter::OnPropertyChanged): invalidate the old
8257
stroke collection's bounds as well as the new stroke collection's
8259
(InkPresenter::OnCollectionChanged): when the collection has
8260
changed, we can't just use Invalidate() since that only
8261
invalidates the canvas bounds. We need to invalidate our render
8262
bounds to get rid of strokes that are outside the canvas bounds.
8263
Also, make sure to also invalidate the new bounds of the stroke
8264
collection (it will usually be empty, but do it anyway).
8265
(InkPresenter::ComputeBounds): add logic to compute the
8267
(InkPresenter::GetRenderBounds): new method.
8269
* stylus.h (class InkPresenter): add GetRenderBounds, and also add
8270
an OnPropertyChanged method so we can deal with the stroke
8271
collection being assigned to something else.
8273
* uielement.h (class UIElement): as much as I hate to do this, add
8274
yet another type of bounds (RenderBounds). this is only here for
8275
the special case of the inkpresenter, which has the normal canvas
8276
bounds (the rectangle), the subtree bounds (which unions the
8277
canvas bounds with the bounds of strokes and children) and render
8278
bounds (which unions canvas bounds and stroke bounds.)
8280
2008-04-09 Jeffrey Stedfast <fejj@novell.com>
8282
* dependencyobject.cpp (resolve_property_path): Alias TextElement
8283
to TextBlock to work around some buggy beta versions of Blend.
8285
2008-04-09 Stephane Delcroix <sdelcroix@novell.com>
8287
* shape.cpp: Shape::ComputeStretchBounds: compute the stretch assuming
8288
the logical/shape bounds diff stays the same. It's IMHO as close as we
8289
can go without drawing and recalculating.
8291
2008-04-08 Jeffrey Stedfast <fejj@novell.com>
8293
* xaml.cpp: Cleaned up some of the debugging printf's and and
8294
wrapped them in d() to declutter console spewage when unneeded.
8295
(xaml_create_from_str): ctype functions take int arguments, where
8296
normal char values are in the range 0-255 - in order to work with
8297
non-GNU, need to cast from char to unsigned char.
8299
* error.h (class ParserErrorEventArgs): Avoid using the c++ ctor
8300
initializer stuff to be consistent with other classes.
8302
2008-04-08 Sebastien Pouliot <sebastien@ximian.com>
8304
* xaml.cpp: Fix (yesterday's fix) on parsing properties. Thanks
8307
2008-04-08 Michael Dominic K. <mdk@mdk.am>
8310
* clock.h: SkipToFill the automatic duration clock groups except if
8311
this is the root of all roots clock (the TimeManager's clock). Due to
8312
the idle_hint optimization, we don't process those clocks anyways.
8314
2008-04-08 Michael Dominic K. <mdk@mdk.am>
8319
* dependencyobject.cpp:
8320
* dependencyobject.h: Making sure that each property is animated only by
8321
a single animation at a time (the last one started).
8322
From Silverlight forums:
8324
"Keep in mind Silverlight only supports a single animation on a
8325
property at a time, so if you begin multiple animations on the same
8326
property, the last one will prevail."
8328
This prevents us from overriding Filling/HoldEnd animations by sb's
8331
The implementation is: for each prop we create a hash table (when
8332
needed) which stores objects (keys) + last AnimationStorage attached
8333
(values). When new AnimationStorage is attached to a prop, the last one
8334
is notified to stop updating the target (we don't touch the clock
8335
structure). And then there is some magic to handle destroy's etc.
8337
This fixes PopFly mouse enter/leave problems in the toolbox and the
8338
http://www.designwithsilverlight.com/tutorials/photoGallery/gallery.html
8339
problems. Fixes #375231, #362363.
8341
2008-04-07 Jeffrey Stedfast <fejj@novell.com>
8343
Fixes needed for Zombomatic
8345
* downloader.cpp (Downloader::GetDownloadedFilePart): When
8346
creating the full pathname for parts we are extracting, convert
8347
everything to lowercase since we need to treat archived filenames
8349
(Downloader::GetUnzippedPath): Convert filenames from the zip
8350
archive to lowercase so that it is easier for us to find them
8351
case-insensitively on the filesystem once they are extracted.
8353
2008-04-07 Sebastien Pouliot <sebastien@ximian.com>
8355
* xaml.cpp: Fix parsing properties by ensure they start with the
8356
element name (and not something else). Fix crasher.
8358
2008-04-07 Michael Dominic K. <mdk@mdk.am>
8361
* src/shape.h: Compute the origin point as a separate step after
8362
computing the shape bounds and the stretch bounds. This fixes the
8363
recently broken sprawl.
8365
I think it also fixes other things. Before, given the way code was,
8366
the stretch_bounds would affect the origin *only* in the case of Path,
8367
in other cases (Line, Polygon, Polyline...) they would be ignored.
8369
2008-04-04 Chris Toshok <toshok@ximian.com>
8371
* stylus.cpp (Stroke::HitTestEndcapSegment): fix this method. it
8372
was missing a bunch of tests (basically it was intersecting
8373
infinite lines with ellipses, not segments), and some of the math
8376
2008-04-04 Jeffrey Stedfast <fejj@novell.com>
8378
Intended to fix bug #373462, but something else is preventing that
8379
site from working now...
8381
* media.cpp (MediaElement::SetSourceInternal): PartName is no
8382
longer a const char * argument, which means we take ownership of
8383
the PartName string.
8384
(MediaElement::SetSourceAsyncCallback): New method which is the
8385
async callback for SetSource().
8386
(MediaElement::SetSource): Reinitialize() right away.
8387
(MediaElement::SetSource): Clear out any pending SetSource async
8388
data, replacing it with the new downloader/part name info.
8389
(MediaElement::SetSource): Allow a NULL downloader object but make
8390
sure we don't crash in that case either.
8392
2008-04-04 Sebastien Pouliot <sebastien@ximian.com>
8394
* dependencyobject.cpp (resolve_property_path): Avoid crash on
8395
invalid syntax and leaks in other error cases. Fix #377039 (more
8396
test cases coming soon).
8398
2008-04-04 Jeffrey Stedfast <fejj@novell.com>
8400
* animation.cpp (KeyFrameCollection::GetKeyFrameForTime): Return
8401
immediately if the array len is 0, prevents a crash accessing
8402
sorted_list->pdata[0] when working backwards in the second
8403
for-loop. Fixes one of the crashes I found while investigating bug
8406
2008-04-04 Sebastien Pouliot <sebastien@ximian.com>
8408
* runtime.cpp: Don't crash in strcase_hash if the hashtable
8409
contains NULL values.
8411
2008-04-03 Chris Toshok <toshok@ximian.com>
8413
* runtime.cpp (Surface::InitializeWidget): disable the
8414
GDK_POINTER_MOTION_HINT_MASK stuff for now. we're not passing
8415
tests with it enabled.
8416
(Surface::motion_notify_callback): force the emission of a motion
8419
2008-04-03 Jeffrey Stedfast <fejj@novell.com>
8421
* runtime.cpp (Surface::SetCursor): Stylus cursor should map to
8422
the pencil cursor. Also updated Hand (which should be a
8423
left-pointing hand, not right-pointing) and also Eraser (we need
8424
to make our own icon for this, but I suck at art so I'll pass for
8427
2008-04-03 Michael Dominic K. <mdk@mdk.am>
8430
* shape.h: Calculate the logical extents when computing the shape bounds
8431
and pass them to the ComputeStretchBounds. They're currently not used in
8434
2008-04-03 Michael Dominic K. <mdk@mdk.am>
8436
* shape.cpp: Don't init the stretch matrix to identity on each
8437
Shape::ComputeShapeBounds. We want to be able to call it freely.
8439
2008-04-02 Michael Dominic K. <mdk@mdk.am>
8441
* geometry.cpp: Use the cairo_path_extents to calculate the logical
8442
bounds instead of faking small stroke.
8444
2008-04-02 Michael Dominic K. <mdk@mdk.am>
8447
* shape.h: Adding new parameter (bool logical) to all the
8448
Shape::ComputeShapeBounds functions and overrides. See prev commit for
8449
explanation of what is logical bounds.
8451
Currently all clients use logical == false. Just adding this
8454
2008-04-02 Michael Dominic K. <mdk@mdk.am>
8459
* uielement.cpp: Adding new parameter (bool logical) to all the
8460
Geometry::ComputeBounds functions and overrides. Calculating logical
8461
bounds means calculating bounds without stroke included. Ie. a line
8462
(0,0) - (100, 0) has logical bounds of width=100, height=0, no matter
8465
Not used right now, will be used in just a few commits (all current
8466
ComputeBounds clients call it will logical == false).
8468
2008-04-02 Michael Dominic K. <mdk@mdk.am>
8470
* shape.cpp: Don't automatically compute the stretch bounds when
8471
computing shape bounds. Instead, compute it as a separate step in
8472
Shape::ComputeBounds.
8474
2008-04-03 Chris Toshok <toshok@ximian.com>
8476
* uielement.cpp (UIElement::EmitMouseLeave): turns out that,
8477
contrary to msdn2, MS *is* indeed emitting this event with
8478
non-null eventargs. it's just an EventArgs object, not a
8481
2008-04-03 Jeffrey Stedfast <fejj@novell.com>
8483
* dependencyobject.cpp (EventObject::Emit): Unref the calldata
8484
even in the "no such event" exception case.
8486
2008-04-03 Larry Ewing <lewing@novell.com>
8488
* xaml.cpp: (expat_parser_error): translate XML_ERROR_NO_ELEMENTS
8489
into appropriate error code.
8491
2008-04-03 Larry Ewing <lewing@novell.com>
8493
* xaml.cpp: Generate errors when trying to set readonly properties.
8495
2008-04-03 Larry Ewing <lewing@novell.com>
8497
* xaml.cpp: make sure we set an error if the property name isn't
8500
* runtime.cpp: make it legal to attach to a NULL toplevel, hook up
8503
2008-04-03 Larry Ewing <lewing@novell.com>
8505
* runtime.cpp (Surface::expose_to_drawable): make sure we take
8506
allocation.x and allocation.y into account when deciding not to
8507
draw. Should fix the disappearing gtksilver widget reported on irc.
8509
2008-04-02 Larry Ewing <lewing@novell.com>
8511
* xaml.cpp: flush character data at the end of property elements
8514
2008-04-02 Jackson Harper <jackson@ximian.com>
8516
* xaml.cpp: Add the element name for this error.
8518
2008-04-02 Chris Toshok <toshok@ximian.com>
8520
* stylus.cpp (Stroke::HitTestEndcapSegment): fix up some math.
8521
(Stroke::HitTestEndcapPoint): same.
8522
(point_gte_line): new method.
8523
(point_lte_line): new method.
8524
(Stroke::HitTestSegmentPoint): use point_gte_line and
8525
point_lte_line to determine if the point is inside the segment.
8526
(global): wrap all spew in DEBUG_HITTEST.
8528
2008-04-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
8530
* pipeline.cpp, mplayer.cpp, pipeline.h: Remove SeekToStart completely, it's
8533
2008-04-02 Jeffrey Stedfast <fejj@novell.com>
8535
* media.cpp (MediaElement::UpdatePlayerPosition): Cast to same
8536
integer type when comparing.
8538
* playlist.cpp (Playlist::OnMediaEnded): Prevent a segfault in the
8539
debugging printfs. Fixes bug #375273.
8541
2008-04-01 Chris Toshok <toshok@ximian.com>
8543
* xaml.cpp: back out the SetSurface call removal.
8545
* dependencyobject.cpp (EventObject::unref): instead,
8546
SetSurface(NULL) here before we delete the object.
8548
2008-04-01 Chris Toshok <toshok@ximian.com>
8550
* control.cpp (Control::InitializeFromXaml): make sure to call
8551
SetSurface(NULL) on the old real_object since we're detaching it
8552
from the tree. Call SetSurface on ourselves (really, should just
8553
be the real_object, right?) before calling the real_object methods
8554
that would cause dirty stuff to happen.
8556
* xaml.cpp (create_custom_element): don't call SetSurface here, it
8557
will cause problems if there's a parser error (since elements
8558
can/will be on the surface's dirty list after they're destroyed.)
8559
(default_create_element_instance): same.
8561
2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
8563
* playlist.cpp, playlist.h: A lot of fixes according to the tests.
8564
* mplayer.h, mplayer.cpp: Initialize the rgb buffer. Add a start_pts to
8565
specify where in the stream we start and (playlists can specify a
8566
starting point which isn't in the beginning), and set the duration from
8567
the playlist (if the playlist has it).
8568
* media.cpp: MediaElement::SetMedia: Handle the case if mplayer returns
8569
false from MediaPlayer::Open. MediaElement::MediaOpened: Handle the case
8570
if the recursive playlist couldn't be replaced.
8572
2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
8574
* media.h: Added MediaElement::GetPlaylist.
8576
2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
8578
* type.cpp, type.cpp.in, type.h, type.h.in, value.cpp, value.h, value.h.in:
8579
Remove Type::NPOBJ, it's not needed.
8581
2008-04-01 Michael Dominic K. <mdk@mdk.am>
8583
* animation.cpp: Since now the clocks are synced we don't need to
8584
recursively check the states in the teardown on completed.
8586
2008-04-01 Michael Dominic K. <mdk@mdk.am>
8589
* clock.h: Getting rid of the nasty clock desyncing (setting ClockGroup
8590
manually to Stopped but not touching the state of children).
8592
We do this by introducing a new idle_hint on ClockGroup. If idle_hint is
8593
set, we don't tick the ClockGroup no matter what the state is. Idle_hint
8594
is set when all children of ClockGroup have state != Active (ie. are
8595
filling). This can be seen as "optimization" -- not to dumbly process
8596
filling clocks which keep setting same value all the time (it creates
8597
insane recursion ie. in Showcase making it unusable). Silverlight seems
8598
to do something very similiar.
8600
Before this commit a same effect was achieved by the said "desyncing" --
8601
forcing the ClockGroup to Stopped. This approach however is a bit more
8604
2008-04-01 Michael Dominic K. <mdk@mdk.am>
8606
* animation.cpp: Chain to parent's Clock::Stop in AnimationClock::Stop.
8608
2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
8610
* pipeline.cpp: Use base_unref, base_unref_delayed doesn't exist anymore.
8612
2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
8614
* value.cpp: Remove a few warnings which might give false positives now.
8616
2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
8618
* dependencyobject.h, dependencyobject.cpp: EventObject::unref: check if
8619
we're being unreffed on the main thread, if not, call unref_delayed.
8621
2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
8623
* runtime.cpp, runtime.h: Added a Surface::InMainThread.
8625
2008-04-01 Fernando Herrera <fherrera@novell.com>
8627
* media.cpp: Remove the request position function when aborting the
8630
2008-04-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
8632
* media.cpp, media.h, mplayer.cpp, mplayer.h: Add a dtor parameter to
8633
MediaElement::Reinitialize and MediaPlayer::Close to specify if we're
8634
being called from the destructor, and if so, null out the element field
8635
of the MediaPlayer, so that we don't access a destructed media element.
8636
Add an async version of MediaPlayer::EnqueueFrames, so that the audio
8637
threads can request more data in a thread-safe manner.
8639
2008-04-01 Fernando Herrera <fherrera@novell.com>
8642
* pipeline.h: Support for live mms streams, that have packet_count as
8643
0 and return false for CanSeekToPts.
8645
2008-03-31 Chris Toshok <toshok@ximian.com>
8647
* namescope.h, namescope.cpp: make no semblance of having a
8648
superior namescope implementation (where they get transported
8649
around with the subtree they're attached to when it's
8650
removed/re-added to the hierarchy.) Instead follow MS's broken
8651
implementation where temporary namescopes are completely removed
8652
when merged into another one.
8654
* collection.h, collection.cpp (Collection::MergeNames): factor
8655
out some common code from Add, Insert, and SetVal. Also, deal with
8656
the fact that merging namescopes now really adds all the names to
8657
the parent namescope, so clear the old namescope.
8658
(Collection::SetVal): don't just unregister the old toplevel name,
8659
but all the names in the subtree.
8660
(Collection::Remove): same.
8661
(Collection::Clear): same.
8662
(Collection::UnregisterAllNamesRootedAt): override DO's method,
8663
recursing into all our children.
8664
(Collection::RegisterAllNamesRootedAt): same.
8665
(VisualCollection::VisualRemoved): clear the IS_LOADED flag so
8666
UIElement::OnLoaded is called again, and <BeginStoryboard>
8667
elements restart when the subtree is added to the hierarchy again.
8669
* control.h, control.cpp (Control::UnregisterAllNamesRootedAt):
8670
override and forward onto real_object.
8671
(Control::RegisterAllNamesRootedAt): same.
8673
* dependencyobject.cpp (DependencyObject::ClearValue): add a
8674
parameter to allow us to specify *not* to notify listeners of the
8675
property change. we do this with the NameScope property, which
8676
noone should be listening too. It was causing a tremendous
8677
performance hit when merging a lot of namescopes (as we do in
8678
inkStylusPointCount.htm)
8679
(DependencyObject::UnregisterAllNamesRootedAt): used when a DO is
8680
removed from the hierarchy, we need to unregister all the names
8682
(DependencyObject::RegisterAllNamesRootedAt): used when a DO is
8683
added to the hierarchy, if it doesn't have a temporary
8684
namescope (in which case we just merge it).
8686
2008-03-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
8688
* pipeline.cpp, pipeline.h: MemorySource: Add a value specifying if the
8689
MemorySource owns the memory or not (if it will be freed upon
8690
destruction or not).
8692
2008-03-31 Jeffrey Stedfast <fejj@novell.com>
8694
* stylus.cpp (Stroke::HitTestEndcap): Fixed a bug where the
8695
for-loop would only use every other point as a starting point for
8696
a segment. E.g. if you had points a, b, c, d and e - the code only
8697
checked segments ab, cd, and e when it should have been checking
8700
2008-03-31 Fernando Herrera <fherrera@novell.com>
8702
* downloader.cpp: Check if aborted before cheking for requested
8705
2008-03-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
8707
* pipeline.cpp, pipeline.h: Moved locking down to IMediaSource from
8709
* playlist.cpp: Updated according to pipeline changes.
8710
* mplayer.h: Fix SetState to not overwrite current bits, only current state.
8711
* media.h, media.cpp: Rework buffering progress to use the available time of
8712
media available (pts) instead of doing some funny math on file
8714
* mplayer.cpp: Don't allow SetTargetPts if we're waiting for a seek.
8716
2008-03-31 Michael Dominic K. <mdk@mdk.am>
8718
* animation.cpp: Don't Stop the Storyboard root_clock before begining
8719
the Storyboard again, just silently tear it down.
8721
Calling Stop resets the property values to base which is something we
8722
don't want. When Begin () is called on Sb in SL, the last animated
8725
2008-03-31 Michael Dominic K. <mdk@mdk.am>
8728
* animation.h: Adding Storyboard::DetachClockGroupFromParent () that
8729
works similar to Teardown but doesn't destroy the clock/animation
8730
hierarchy. We need this hierarchy to ie. reset prop values to base when
8731
Storyboard::Stop is called manually.
8733
When Storyboard is completed, call DetachClockGroupFromParent (if not
8734
Teardown). Otherwise the Storyboard will ghostly change state with parent
8737
2008-03-31 Michael Dominic K. <mdk@mdk.am>
8739
* animation.cpp: Slightly reworking the clock_is_fully_stopped_recursive
8740
to check for NULL and report stopped == true when both ClockGroup state
8741
is Stopped and all children are Stopped.
8743
To be honest, this never currently reports Stopped == true as we do
8744
intentional state desync when storyboard reaches end -- setting the
8745
ClockGroup state to Stopped but keeping the children in Active/Filling.
8746
This *has* to go away.
8748
2008-03-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
8752
2008-03-28 Jeffrey Stedfast <fejj@novell.com>
8754
* utils.cpp (TextStream::Read): Better handling of iconv() failure
8757
2008-03-28 Chris Toshok <toshok@ximian.com>
8759
* animation.cpp, animation.h: remove Storyboard::FindSurface -
8760
EventObject::GetSurface() always returns the right thing.
8761
Override SetSurface to check whether we're being detached from or
8762
attached to a surface, and pause or resume the clock in response.
8763
This fixes some issues in storyboard_EnterLeaveSemantics.
8765
2008-03-28 Chris Toshok <toshok@ximian.com>
8767
* dependencyobject.h,
8768
dependencyobject.cpp (DependencyObject::SetSurface): new method,
8769
set the surface for all our DependencyObject subclassed property
8772
* collection.h, collection.cpp (Collection::Add): SetSurface work.
8773
(Collection::Insert): same.
8774
(Collection::SetVal): same.
8775
(Collection::Remove): same.
8776
(Collection::RemoveAt): same.
8777
(Collection::Clear): same.
8778
(Collection::SetSurface): new method, iterate over all children
8779
setting the surface.
8780
(VisualCollection): remove surface logic here.
8781
(VisualCollection::VisualAdded): same.
8782
(VisualCollection::VisualRemoved): same.
8784
2008-03-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
8786
* mplayer.cpp: Clear all queues after a seek has completed.
8788
2008-03-28 Jeffrey Stedfast <fejj@novell.com>
8790
* text.cpp (deobfuscate_font): Updated for CopyFileTo() rename.
8792
* downloader.cpp (Downloader::CleanupUnzipDir): Updated for
8794
(create_unzipdir): Updated for MakeTempDir() rename.
8796
* utils.cpp (MakeTempDir): Renamed from make_tmpdir() to try and
8797
be more consistent with moonlight API naming convensions.
8798
(RemoveDir): Renamed from moon_rmdir().
8799
(CopyFileTo): Renamed from moon_copy_file()
8801
2008-03-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
8803
* debug.cpp: Fix warning.
8805
2008-03-28 Michael Dominic K. <mdk@mdk.am>
8807
* clock.cpp: Fixing the clock repeat for duration-based
8810
Fixes the clock14.xaml and clock31.xaml tests. All 31 clock tests are
8811
passing now (same behavior as in SL).
8813
2008-03-28 Michael Dominic K. <mdk@mdk.am>
8815
* clock.cpp: In ComputeNewTime: when we're moving backward and hitting
8816
the bound decrease the repeat_count no matter what (if auto-reversed or
8817
not). This makes the auto-reversed storyboard work.
8819
Fixes the clock7.xaml and clock30.xaml. The only clock test broken now
8822
2008-03-28 Michael Dominic K. <mdk@mdk.am>
8824
* animation.cpp: Teardown the storyboard in Completed only if the root
8825
clock is stopped AND all the children are stopped too. After teardown we
8826
loose the ability to reset-back the values and Completed is
8827
fired always, even if the clock is filling (a filling clock should reset
8830
This ie. fixes http://www.idcorporate.com.ar/ and other sites that use
8831
the popular methodology of beginning a filling Storyboard on MouseEnter
8832
and stopping it on MouseLeave.
8834
2008-03-27 Michael Dominic K. <mdk@mdk.am>
8836
* runtime.cpp: Ignore the enter/leave crossing events coming as a
8837
result of grab/press started/finished.
8839
2008-03-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
8841
* uielement.cpp, pipeline.h, media.cpp, brush.cpp: Update according to
8842
MediaPlayer changes.
8843
* mplayer.cpp, mplayer.h: Major cleanup in MediaPlayer: make all fields
8844
private, and add public accessors when required. Remove all boolean
8845
fields and add a single bit/state field with its corresponding enum and
8846
public accessors. Removed IncTargetPts, StopThreads and PauseInternal,
8847
no longer used. Removed unused defines. Made video and audio structures
8848
nested inside MediaPlayer instead of pointers (and queue inside
8849
video/audio), avoids pointer accesses and additional malloc/frees, since
8850
they were always created anyways. Don't seek to anywhere in Stop if
8851
we're stopping because we're closing, since it may cause crashes if
8852
we're closing because the MediaElement is being destructed (it may cause
8853
the MediaElement to be resurrected). Made public methods private
8856
2008-03-28 Fernando Herrera <fherrera@novell.com>
8858
* asf/asf.cpp: Use the pts == 0 optimization before trying to
8862
* downloader.h: Add functions to allow request a remote postition.
8867
* pipeline.h: Implement SeekToPts for mms:// sources.
8869
2008-03-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
8871
* dependencyobject.h: Detect an unrecoverable error condition with
8872
refcounting (reffing an object with refcount of 0), and abort instead of
8873
crashing randomly and insecurely later on.
8875
2008-03-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
8877
* mplayer.h, mplayer.cpp: Remove more unused fields in MediaPlayer.
8879
2008-03-27 Jeffrey Stedfast <fejj@novell.com>
8881
* downloader.cpp (Downloader::GetResponseText): Use the new
8884
* utils.cpp (TextStream::Open): Fixed the BOM checking, had LE/BE
8887
* xaml.cpp (xaml_create_from_file): Oops, if we read 0 bytes, make
8888
sure to exit the loop ;-)
8890
2008-03-27 Jeffrey Stedfast <fejj@novell.com>
8892
* xaml.cpp (xaml_create_from_file): Use the new TextStream class
8893
instead of doing things the hard way. Might be more performant,
8894
definitely won't malloc/free nearly as much. Also fixed a bug
8895
where leading lwsp might be larger than our read buffer.
8897
* utils.cpp (TextStream): New class for reading text input
8898
streams, converting them to UTF-8 as they are read.
8900
* downloader.cpp (Downloader::Send): Handle the case where the
8901
attached surface is NULL.
8902
(Downloader::GetResponseText): Handle zero-length files. Also,
8903
nul-terminate the returned buffer (which is now a char* rather
8904
than a void*) since it is clear that the javascript expects to be
8905
able to use this value as a string buffer.
8907
2008-03-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
8909
* mplayer.h, mplayer.cpp: Don't create any audio threads until we're
8910
requested to play audio. Don't hold the lock when polling.
8912
2008-03-26 Jeffrey Stedfast <fejj@novell.com>
8914
* downloader.cpp (Downloader::SendInternal): New method that is
8915
basically the same as the old ::Send().
8916
(Downloader::Send): Queue the SendInternal() call via
8917
TimeManager's TickCall API.
8919
2008-03-26 Chris Toshok <toshok@ximian.com>
8921
* dependencyobject.h, dependencyobject.cpp (class EventObject):
8922
add RemoveMatchingHandlers variants that let you pass in a
8923
predicate to test event handlers with.
8925
2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
8927
* pipeline.cpp, pipeline.h: ASFDemuxer: updated according to asf
8928
changes. Added a MemoryStream.
8930
* media.cpp: Updated according to API changes.
8932
2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
8934
* mplayer.cpp, mplayer.h: Add a new state to the audio:
8935
WaitingForData, in which case we don't poll on that audio
8936
node (since the hardware will just tell us it's ready to recieve
8937
data). Fixes audio using 100% cpu after when it runs out of
8938
data (either because of network hiccup or the stream finished).
8940
2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
8942
* pipeline.cpp, mplayer.cpp, pipeline.h: Made
8943
IMediaStream::selected private and add accessors.
8945
2008-03-26 Stephane Delcroix <sdelcroix@novell.com>
8948
* shape.cpp: set the dash caps for all the shapes, draw start/end caps
8949
on line and polylines.
8951
2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
8953
* mplayer.cpp: Remove unused fields.
8955
2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
8957
* debug.cpp: Correctly compute base addresses of libraries, and use a
8958
thread-safe version of strtok.
8960
2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
8962
* runtime.h, runtime.cpp, pipeline.cpp: Reverse the meaning of our YUV flag
8963
- it's now necessary to explicitly disable it in order to get rid of it
8964
instead of relying on a default flag to have the right value in order to
8965
get it. Makes video work with mopen again.
8967
2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
8969
* pipeline.cpp: Fix a crash.
8971
2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
8973
* mplayer.cpp: Remove Instance (), it's redundant.
8974
* mplayer.h: AudioPlayer: Remove Instance (), it's redundant. Synchronize
8975
everything in the audio player with one semaphore, it simplifies things
8976
and removes a couple of problems helgrind found.
8977
* pipeline.cpp: ~Media: Add a nullcheck. Media::Initialize: Initialize the
8978
audio player as well. Use delayed unreffing in destructors which may be
8979
called on worker threads.
8981
2008-03-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
8983
* runtime.cpp, runtime.h: Remove the pending unref stuff from Surface.
8984
* dependencyobject.cpp: Remove the surface-based delayed unloading, it's not
8985
thread-safe and making it thread-safe isn't worth it. Also use a pthread
8986
mutex instead of a glib mutex, since helgrind reports a lot of false
8987
positives for glib mutexes. Hold the mutex for the smallest amount of
8988
time possible, making it unnecessary to use a recursive mutex.
8990
2008-03-26 Michael Dominic K. <mdk@mdk.am>
8992
* shape.cpp: Reverting the clip changes, it was bolox.
8994
2008-03-25 Jeffrey Stedfast <fejj@novell.com>
8996
* pipeline.cpp (Mp3FrameReader::EstimatePtsPosition): Get rid of
8997
the assert - it was only needed during implementation to make sure
8998
the bsearch worked correctly.
8999
(Mp3FrameReader::Seek): Same.
9001
2008-03-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
9003
* media.cpp: Don't access any TimeManager instance from another thread, just
9004
call the static TimeManager::InvokeOnMainThread.
9006
2008-03-25 Michael Dominic K. <mdk@mdk.am>
9008
* src/shape.cpp: Shape is empty always when it's bounds are <= 0.0, even
9009
if Width/Height was specified. Fixes a bogus warning about infinity
9012
2008-03-25 Michael Dominic K. <mdk@mdk.am>
9014
* src/shape.cpp: When setting the clipping for the shape also include
9015
the transformations coming from stretching. This fixes
9016
test-shape-line-stretch3 test and the missing stripes on Silverlight
9019
2008-03-24 Chris Toshok <toshok@ximian.com>
9021
* runtime.h (class Surface): add
9022
Surface::PropagateDirtyFlagToChildren.
9024
* dirty.cpp (Surface::PropagateDirtyFlagToChildren): factor this
9025
duplicated code out of ProcessDownDirtyElements.
9027
2008-03-24 Chris Toshok <toshok@ximian.com>
9029
* panel.cpp (Panel::FrontToBack): remove the tree walking
9030
code (where we walked up the hierarchy looking for cases where we
9031
shouldn't subtract.) Instead, we always subtract if the local
9032
state says we can. Instead of forcing all leaf elements to walk
9033
up to their parent panel, we assume they'll operate on local state
9034
as well, and give them a copy of the region to subtract their
9035
bounds from, instead of the real region. We are sneaky.
9037
* uielement.cpp (UIElement::FrontToBack): Operate on our local
9038
state only, no walking up the tree.
9040
2008-03-24 Jeffrey Stedfast <fejj@novell.com>
9042
* pipeline.cpp (mpeg_parse_header): Fix the MPEG layer parsing, it
9043
was seemingly getting layer 1 and layer 2 backwards.
9044
(mpeg_frame_length): Seems like we are never supposed to add 2
9045
bytes for 16bit crc?
9047
* layout.cpp (TextLayout::LayoutWrap): If the glyph advance is 0,
9048
then don't bother applying kerning. Fixes 2 cases in
9049
LineBreakClasses.htm
9050
(TextLayout::LayoutWrap): Disable breaking after a
9051
G_UNICODE_BREAK_AFTER if we can break before the word as this
9052
seems to fix the last test case in LineBreakBasic1.htm
9053
(TextLayout::LayoutWrap): Reverted a fix that introduced a
9054
regression but didn't fix any known test cases.
9056
2008-03-21 Michael Dominic K. <mdk@mdk.am>
9058
* src/runtime.cpp: When calling gdk_window_get_pointer in
9059
motion_notify_ to pop more hints actually use the results as they're
9060
more valid than x,y in the event passed. Without doing so, we're not
9061
getting the last mouse coords.
9063
Fixes the nasty problem that MouseEnter/Leave is not called once in a
9066
2008-03-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
9068
* brush.cpp, media.cpp, mplayer.cpp, mplayer.h: Refcount MediaPlayer. Rename
9069
MediaPlayer::GetSurface to GetCairoSurface so that it doesn't conflict
9070
with EventObject::GetSurface.
9072
2008-03-20 Jeffrey Stedfast <fejj@novell.com>
9074
* font.cpp (TextFont::GetGlyphInfo): Comment out the fixed-width
9077
* text.cpp (deobfuscate_font): New helper function used by
9078
TextBlock and Glyphs.
9079
(TextBlock::DownloaderComplete): Check for obfuscated fonts.
9080
(Glyphs::DownloaderComplete): Same.
9082
* font.cpp (DecodeObfuscatedFontGUID): New function to decode the
9084
(DeobfuscateFontFileWithGUID): Deobfuscate a font file in-place.
9085
(TextFont::OpenFontDirectory): Renamed from OpenZipArchiveFont()
9086
since we no longer get passed zip files. Instead of extracting
9087
fonts from a zip archive, we now index the fonts in the
9088
directory (if they haven't already been indexed) and then try to
9089
find the best matching font from the indexed fonts.
9090
(IndexFontDirectory): New function to index all fonts in a
9091
directory (and all subdirs).
9092
(TextFont::TextFont): Changed for other API changes.
9094
2008-03-20 Jeffrey Stedfast <fejj@novell.com>
9096
* downloader.cpp (Downloader::IsDeobfuscated)
9097
(Downloader::SetDeobfuscated, Downloader::SetDeobfuscatedFile):
9098
Some new methods for replacing the original downloaded file with
9099
another tmp file that will need to be unlinked when the downloader
9100
is destroyed or a new file is requested.
9102
* utils.cpp (moon_copy_file): New convenience function.
9104
2008-03-20 Jeffrey Stedfast <fejj@novell.com>
9106
* downloader.cpp (Downloader::Downloader): Initialize the unzipdir
9107
and unzipped state variables. Get rid of part_hash, no longer
9109
(Downloader::CleanupUnzipDir): New method to cleanup the files
9110
extracted from any zip files we downloaded.
9111
(Downloader): Call CleanupUnzipDir ().
9112
(Downloader::GetDownloadedFile): New method that gets the original
9113
untouched downloaded file path.
9114
(Downloader::DownloadedFileIsZipped): New method to check to see
9115
if the downloaded file is a zip archive.
9116
(Downloader::GetDownloadedFilePart): A new method that replaces
9117
the old GetResponseFile() API, behaves the same as the old API.
9118
(Downloader::GetUnzippedPath): New method to get the unzip
9119
directory path (and unzip the downloaded file if it hasn't already
9121
(Downloader::Open): Cleanup any extracted zip files.
9123
* utils.cpp (moon_rmdir): New convenience function.
9125
2008-03-20 Larry Ewing <lewing@novell.com>
9127
* runtime.cpp (Surface::ShowFullScreenMessage): make sure we set
9128
the surface first so that the changes to the properties cause
9131
2008-03-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
9133
* src.mdp: Added new files.
9135
2008-03-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
9137
* pipeline.h: Added CanSeekToPts and SeekToPts to IMediaStream.
9139
2008-03-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
9141
* pipeline.h: Added two more error conditions.
9143
2008-03-19 Jeffrey Stedfast <fejj@novell.com>
9145
* font.cpp (TextFont::GetGlyphInfo): Use a different approach to
9146
caching glyphs. Try to take full advantage of the pre-allocated
9147
glyphs array before clobbering previously loaded glyphs.
9149
2008-03-19 Michael Dominic K. <mdk@mdk.am>
9151
* src/dependencyobject.cpp: Making the prop resolving a bit more
9152
gracefull (smart) in case of common mistakes.
9154
Solves test-crash-gracefull-prop-resolving.xaml.
9156
2008-03-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
9158
* pipeline.cpp: We need to unlock the mutex before joining the
9159
thread. Fixes a dead-lock.
9161
2008-03-19 Geoff Norton <gnorton@novell.com>
9163
* yuv-converter.cpp: Use xmm0 to store a load value to avoid a
9166
2008-03-19 Geoff Norton <gnorton@novell.com>
9168
* yuv-converter.cpp: More 64-bit fixes
9170
2008-03-19 Geoff Norton <gnorton@novell.com>
9172
* yuv-converter.cpp: Fix the test/cmp on x86-64
9174
2008-03-18 Geoff Norton <gnorton@novell.com>
9176
* yuv-converter.cpp: Fold RESTORE_COLOR_MODIFIERS into
9177
CALC_COLOR_MODIFIERS and prepare our own branches rather than trusting
9178
gcc. The aligned load/store version of CALC_COLOR_MODIFIERS was
9179
clobbering (x)mm3 (green coefficient) when processing the high order
9180
pels. I've reordered the method to remove some useless load/calc
9181
patterns that were there simply for readability and fixed the
9184
2008-03-18 Jeffrey Stedfast <fejj@novell.com>
9186
* font.cpp (TextFontDescription::CreatePattern): Always return the
9188
(TextFont::Load): No longer takes a fromFile argument.
9189
(TextFont::TextFont): Cache using the original pattern (which is
9190
what we really wanted to do originally, but were caching the
9191
"closest-match" pattern before which was wrong).
9192
(TextFont::GetGlyphInfo): Use FT_Get_Char_Index() rather than
9193
FcFreeTypeCharIndex(). Doesn't fix any bugs, just avoids use of
9194
wrapper API that is unnecessary.
9195
(TextFont::GetGlyphInfo): Added a gross hack for *Che fonts.
9197
2008-03-18 Geoff Norton <gnorton@novell.com>
9199
* yuv-converter.cpp: 768bits != 768bytes. Implement prefetching the
9200
cache lines for the Y plane.
9202
2008-03-18 Andrew Jorgensen <ajorgensen@novell.com>
9204
* plugin-ffmpeg.cpp: Remove avformat dependency (not needed anymore)
9205
* plugin-ffmpeg.h: Fix conditional swscale inclusion
9207
2008-03-18 Michael Dominic K. <mdk@mdk.am>
9210
* animation.h: Adding a new virtual method GetValueKind to Animation
9211
that returns the kind/type of values that given animation generates
9212
(doubles, points, etc.).
9214
Modyfying the HookupStorage to check if the animation type matches the
9215
type that the animated property expects. If it doesn't, bail out with a
9216
helpfull warning in the style of:
9218
"Ellipse.Fill property value type is 'Brush' but animation type is
9221
This fixes a crash in test-crash-color-anim-on-solid.xaml and all
9222
crashes where we try to animate ie. a color property using doubles.
9224
2008-03-18 Michael Dominic K. <mdk@mdk.am>
9226
* animation.cpp: Even more smoothing for KeySpline.
9228
2008-03-18 Michael Dominic K. <mdk@mdk.am>
9230
* dependencyobject.cpp: Enabling back the inheritance test for property
9231
resolving but only when dealing with non-attached properties.
9233
2008-03-17 Geoff Norton <gnorton@novell.com>
9236
* pipeline-ffmpeg.cpp:
9237
* pipeline-ffmpeg.h:
9238
* swscale-converter.cpp:
9239
* swscale-converter.h: Refactor the swscale based yuv2rgb converter
9240
out to a seperate file so it can be included optionally in the build.
9242
2008-03-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
9244
* mplayer.cpp: Show error message, not only error number, upon thread
9247
2008-03-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
9249
* playlist.cpp, playlist.h: Add a way to determine if the playlist was
9250
created to play a single file, or if it was created from an asx file
9253
2008-03-17 Chris Toshok <toshok@ximian.com>
9255
* dependencyobject.cpp (EventObject::EventObject): reorder things
9258
2008-03-17 Geoff Norton <gnorton@novell.com>
9260
* yuv-converter.cpp: __attribute ((aligned ())) can be ignored
9261
for locals. Use posix_memalign and share the instance for the
9262
lifespan of the converter.
9264
2008-03-17 Jeffrey Stedfast <fejj@novell.com>
9266
* font.cpp (FontPackFileFace::FontPackFileFace): Now takes an
9267
index argument, apparently FreeType2 always set face->face_index
9268
to 0 for these type fonts, so don't rely on it being accurate.
9269
(FontPack::CacheFileInfo): Pass the index value as an argument to
9270
FontPackFileFace's ctor.
9271
(TextFont::TextFont): Do hash lookups based on the matched
9272
pattern, not the original pattern passed in.
9274
2008-03-17 Jeffrey Stedfast <fejj@novell.com>
9276
* text.h: Added #include "layout.h"
9278
* font.cpp: Removed font.cpp's layout logic which has been
9279
rewritten in layout.cpp.
9280
(TextFont::HasGlyph): It seems that Silverlight may wrap text
9281
differently depending on whether the glyph is in the font?
9283
* layout.cpp (TextLayout::LayoutWrap): More tweaking action...
9285
2008-03-17 Geoff Norton <gnorton@novell.com>
9287
* yuv-converter.cpp: Ensure that our pointer alignment checks are
9290
2008-03-17 Michael Dominic K. <mdk@mdk.am>
9292
* animation.cpp: Interpolate linearly between keyspline values. This
9293
fixes the jags in test-animation-slow-keyspline.xaml.
9295
2008-03-17 Michael Dominic K. <mdk@mdk.am>
9297
* animation.cpp: Fixes to the way we generate the KeySpline values to be
9298
more smooth an precise.
9300
2008-03-17 Larry Ewing <lewing@novell.com>
9302
* runtime.cpp: go ahead and invalidate the toplevel before
9303
cleaning everything up. remove the disconnect call in
9304
DestroyWidget, all the handlers should be ok with getting called
9305
on fullscreen or the normal widget.
9307
2008-03-14 Jeffrey Stedfast <fejj@novell.com>
9309
* layout.cpp (TextLayout::LayoutWrap): Added some improved unicode
9310
line breaking logic.
9312
2008-03-14 Geoff Norton <gnorton@novell.com>
9314
* yuv-converter.cpp: Remove some dead code.
9316
2008-03-14 Geoff Norton <gnorton@novell.com>
9318
* mplayer.cpp: We actually need to align % 64 bytes on a 16 byte
9319
bounary. Each pel will expand to 4 bytes. Since we process 16
9320
pels at a time in SSE2 we need 64 output bytes per iteration.
9322
* yuv-converter.cpp: Remove the rest of the unaligned move/stores
9324
2008-03-14 Sebastien Pouliot <sebastien@ximian.com>
9326
* xaml.cpp: (flush_char_data) free data inside GString since the
9327
Value constructed around it creates it's own copy.
9329
2008-03-14 Geoff Norton <gnorton@novell.com>
9331
* pipeline-ffmpeg.cpp: Use posix_memalign for the YUV data buffers
9332
to get a 16byte alignment for SSE2.
9333
* yuv-converter.cpp: Remove most of our unaligned load/stores.
9335
2008-03-14 Larry Ewing <lewing@novell.com>
9339
* eventargs.h, enventargs.cpp:
9340
* type.h, type.cpp: make EventArgs a subclass of DependencyObject
9341
and all that entails. Still need to look over the properties.
9343
* runtime.cpp, runtime.h: expose EmitError for now.
9345
2008-03-14 Larry Ewing <lewing@novell.com>
9347
* mplayer.cpp (MediaPlayer::Open): use posix_memalign to allocate
9348
with a a 16bit alignment for the yuv converter.
9350
2008-03-14 Sebastien Pouliot <sebastien@ximian.com>
9352
* xaml.cpp: (expat_parser_error) ParserErrorEventArgs free it's
9353
own copy of the message.
9355
2008-03-14 Jeffrey Stedfast <fejj@novell.com>
9357
* font.cpp (TextRun::TextRun): Can't drop non-printable chars
9358
because soft-hyphen is apparently non-printable.
9360
2008-03-14 Jeffrey Stedfast <fejj@novell.com>
9362
* text.cpp (Glyphs::Layout): Check for NULL glyphs (which can
9363
happen now if the glyph does not exist in the font).
9364
(Glyphs::Render): Same.
9366
* font.cpp (TextFont::GetGlyphInfo): Added a new GetGlyphInfo
9367
which takes a unichar and index. This is now the main
9368
implementation that the other GetGlyphInfo() and
9369
GetGlyphInfoByIndex() use. The glyph table is now indexed by index
9370
rather than unichar.
9372
2008-03-14 Jeffrey Stedfast <fejj@novell.com>
9374
* text.cpp (Glyphs::Layout): Don't error out on (1:1) clusters
9375
without a specified index, these are ok.
9377
2008-03-14 Michael Dominic K. <mdk@mdk.am>
9379
* brush.cpp: In ImageBrush, if the image has not been downloaded
9380
yet, draw nothing like SL does -- instead of the grayish shadow.
9382
2008-03-14 Michael Dominic K. <mdk@mdk.am>
9384
* dependencyobject.cpp: Check the types of objects when
9385
resolving_property_paths and some more verbosity to the error
9386
reporting. Now test-crash-non-existing-animation-target-prop3
9387
fails with the proper warning.
9389
Also, terminate first on first error found.
9391
2008-03-14 Michael Dominic K. <mdk@mdk.am>
9393
* dependencyobject.cpp: Even more verbose error reporting in the
9394
resolve_property_path ().
9396
2008-03-14 Michael Dominic K. <mdk@mdk.am>
9398
* animation.cpp: Making the warning report proper error when can't
9399
resolve property on object. Now we're getting:
9402
(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)
9403
on object ball, which has type Ellipse!"
9405
2008-03-14 Michael Dominic K. <mdk@mdk.am>
9407
* animation.cpp: Check correctly if we have object and property
9408
before trying to hookup storage.
9410
Fixes the crash in test-crash-non-existing-animation-target-prop.xaml
9411
but the warning message is still incorrect:
9413
"No object named ball!"
9415
The object named "ball" exists but it doesn't have the requested
9418
2008-03-14 Michael Dominic K. <mdk@mdk.am>
9420
* animation.cpp: Changing few printf's to g_warnings.
9422
2008-03-14 Stephane Delcroix <sdelcroix@novell.com>
9424
* shape.cpp: Deal with different [start|end|dash] caps for lines
9427
2008-03-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
9429
* mplayer.cpp: Comment out printf.
9431
2008-03-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
9433
* mplayer.cpp: AudioNode::Play: property calculate the delay between the
9434
play position in the hardware and the pts we just sent to alsa, and
9435
subtract it from that pts.
9437
Thu Mar 13 23:25:41 CET 2008 Paolo Molaro <lupus@ximian.com>
9439
* clock.cpp: use a monotonic clock if available to avoid issues with
9440
the system time changing.
9442
2008-03-13 Jeffrey Stedfast <fejj@novell.com>
9444
* layout.cpp (TextRun::TextRun): Don't drop non-printable
9445
chars... somehow soft-hyphen (0xAD) is non-printable according to
9446
glib and so breaks the LineBreakBasic1.htm test.
9447
(TextLayout::LayoutNoWrap): Keep appending words to the line until
9448
a line ends beyond max_width, we don't care where it begins (it
9449
could begin way beyond max_width for all we care).
9451
2008-03-13 Chris Toshok <toshok@ximian.com>
9453
* text.cpp (~Glyphs): don't unref the fill, since we don't take a
9456
2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
9458
* mplayer.cpp: Make this build on SLED until I find a proper workaround.
9460
2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
9462
* media.cpp: Update according to MediaPlayer changes.
9464
2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
9466
* mplayer.cpp, mplayer.h, pipeline.cpp: Play audio on a single
9467
thread. Fixes #326902.
9469
2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
9471
* Makefile.am: Set our G_LOG_DOMAIN.
9473
2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
9475
* xaml.cpp: default_create_element_instance: Set the surface as soon as
9478
2008-03-13 Michael Dominic K. <mdk@mdk.am>
9480
* animation.cpp: Modyfying the KeyFrameCollection::GetKeyFrameForTime
9481
behavior. When getting the keyframe for time additionally crawl back (if
9482
needed) to find the last non-null keyframe and non-null previous
9483
keyframe. By doing so we silently ignore the frames without values set
9484
and don't crash on nullable types.
9486
Fixes the crash in AnimationMatrix2.html/xaml and in the
9487
test-animation-null-keyframe.xaml test.
9489
Remving the XXX warnings about nullabled types from file since they
9490
don't apply anymore.
9492
2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
9494
* visual.h, uielement.cpp, visual.cpp: Remove the 'surface' field from
9495
Visual, we're already storing the surface in the EventObject.
9496
* dependencyobject.cpp: EventObject::unref_delayed: remove the #if false,
9497
and comment out the warning, since with the current code it's entirely
9498
possible to unref a dependecyobject with no surface.
9500
2008-03-13 Stephane Delcroix <sdelcroix@novell.com>
9502
* brush.cpp: compute relative transform as it's done in SL. We used to
9503
derelativize transform to match the absolute ones. Now we map the brush
9504
to a 1x1 square, apply the transform, and unmap back. It simplify the
9505
computation a lot too. Fixes bnc #354892 and a bad gradient in
9508
2008-03-12 Chris Toshok <toshok@ximian.com>
9510
* media.cpp (expand_rgb_to_argb): use a different codepath if the
9511
rowstride isn't padded out to be divisible by 4 (or else we read
9512
off the end by a byte).
9514
2008-03-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
9516
* pipeline.cpp: ASFDemuxer: Only seek in the selected streams.
9518
2008-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
9520
* pipeline.cpp, pipeline.h: Break all media threads upon media shutdown.
9521
* pipeline-ffmpeg.cpp: Don't check if we've been registered before, the
9522
pipeline correctly removes registered infos upon shutdown, so if we're
9523
initialized again we should also register again.
9524
* runtime.cpp: Call Media::Shutdown do shut down the media threads before
9525
doing anything else.
9527
2008-03-12 Jeffrey Stedfast <fejj@novell.com>
9529
* font.cpp (TextRun::TextRun): Fixed canonicalization logic.
9531
* text.cpp (TextBlock::LayoutSilverlight): When creating a list of
9532
TextRun's, if the Run contains \n's, break the text into
9533
non-linebreak and linebreak TextRun elements. Allows the
9534
TextLayout::Layout() logic to be simplified considerably.
9536
2008-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
9538
* dependencyobject.cpp: DependencyObject: Initialize our surface field to
9541
2008-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
9543
* pipeline.h, pipeline.cpp: Add logging macros. Use ErrorEventArgs for error
9544
reporting so that the errors can easily be bubbled up the pipeline. Add
9545
a 'selected' field to IMediaStream, whether the media player is using
9547
* error.h: Add a MediaErrorEventArgs class.
9549
2008-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
9551
* pipeline.cpp: Propagate the surface from the media element to the media.
9553
2008-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
9555
* mplayer.cpp, pipeline.cpp, pipeline.h: Add a 'selected' field to the
9556
IMediaStream, indicates whether the stream is being played or not.
9558
2008-03-12 Sebastien Pouliot <sebastien@ximian.com>
9560
* dependencyobject.cpp: Add NULL check in method
9561
RemovePropertyChangeListener since a bad XAML input can cause a
9562
NULL entry in the list.
9564
2008-03-12 Michael Dominic K. <mdk@mdk.am>
9568
* shape.cpp: Properly calculate the shape cache depending on our bpp etc.
9570
2008-03-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
9572
* xaml.cpp: xaml_create_from_file: if there was some error loading the file,
9573
don't crash, print an error message. Dup all strings put into
9574
namespace_map, and free them all upon its destruction.
9576
2008-03-11 Larry Ewing <lewing@novell.com>
9578
* collection.cpp (VisualCollection::VisualAdded): make sure we set
9579
the surface as the first step, dirty processing depends on it.
9580
Fixes OM_RemoveClearRemoveAt.htm regression.
9582
2008-03-11 Larry Ewing <lewing@novell.com>
9585
* canvas.cpp (Canvas::OnPropertyChanged): listen to changes on Top
9586
and Left when we are toplevel so that we can recompute our
9589
* uielement.cpp: if we don't have a parent call GetTransformFor on
9590
ourself so that Top and Left are taken into account on toplevel
9591
canvases. Fixes test-canvas-toplevel.xaml
9593
2008-03-11 Chris Toshok <toshok@ximian.com>
9595
* clock.h, clock.cpp: a few changes, the most important
9596
being (ifdefed for now) code to put the timemanager to sleep when
9597
it's not needed for animations, rendering, or tick calls. To do
9598
this we need a couple of changes to the clock code. 1) propagate
9599
the time_manager out to all clocks, so we can force it to tick the
9600
clock hierarchy the first time whenever a storyboard is started.
9601
2) make Clock/ClockGroup::Tick return a bool, which means "i'll be
9602
in need of another tick." Do the same for the tick call stuff,
9603
where the bool return value means "we have more tick calls
9604
pending." Also, add a couple of methods to the
9605
TimeManager (NeedRedraw, NeedClockTick) which will start up the
9606
timemanager if it's asleep, and set the proper flag so it'll do
9607
the right work on the next tick.
9610
* uielement.cpp: notify the timemanager that we have a redraw to
9613
* runtime.cpp (Surface::realized_callback): tell the time manager
9614
to redraw us to get the process moving.
9616
2008-03-11 Sebastien Pouliot <sebastien@ximian.com>
9618
* xaml.cpp: Work around the fact that it's not always safe to
9619
call some expat functions, like XML_GetCurrentLineNumber, if the
9620
parsing failed early.
9622
2008-03-11 Chris Toshok <toshok@ximian.com>
9624
* namescope.h, namescope.cpp: switch from reffing the objects to
9625
using the DestroyedEvent. Otherwise our toplevel canvas has a ref
9626
cycle with its namescope. Also, short circuit out if we're
9627
registering the same object twice. keeps us from having too many
9628
DestroyedEvents (since RemoveHandler only removes one).
9630
* dependencyobject.h, dependencyobject.cpp: move
9631
GetSurface/SetSurface to EventObject, and add unref_delayed as a
9632
method. If the event object has a surface associated with it, add
9633
it to the surface's pending list of unrefs. otherwise warn us and
9634
add it to the global list. The warnings should be fixed as the
9635
global list really should go away.
9637
Also, before we free a value, make sure to remove our handler and
9640
Also, get rid of OBJECT_TRACK_ID. use an environment variable for
9641
this. So if you compile with OBJECT_TRACKING on, nothing new
9642
happens unless you set the "MOONLIGHT_OBJECT_TRACK_ID" environment
9643
variable to the id of the object you want to track. Makes the
9644
turnaround time a little quicker.
9646
shift some things around in the header file while I'm making this
9649
* runtime.h, runtime.cpp: move some more methods to the .cpp from
9650
the .h, and also add the per-surface pending unrefs list. This is
9651
basically a c&p of the global list from dependency.cpp.
9653
* downloader.h, downloader.cpp: remove Get/Set Surface in favor of
9654
using EventObject's.
9656
2008-03-11 Sebastien Pouliot <sebastien@ximian.com>
9658
* xaml.cpp: Add NULL check in dependency_object_add_child since
9659
parent->parent->item may be NULL in malformed XAML files.
9661
2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
9663
* pipeline.h, media.cpp, pipeline.cpp: Rename GetPositionOfPts to
9664
EstimatePtsPosition and remove the estimate parameter, it's never used.
9666
2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
9668
* runtime.cpp: No need to scream in printfs.
9670
2008-03-11 Jeffrey Stedfast <fejj@novell.com>
9672
* font.cpp (TextLayout::Layout): More fixes, this is getting
9675
2008-03-11 Sebastien Pouliot <sebastien@ximian.com>
9677
* xaml.cpp: Avoid crashing if the PML does not start with a
9680
2008-03-11 Michael Dominic K. <mdk@mdk.am>
9682
* src/: Moving implementations from .h to .cpp, leaving only
9683
setters/getters + simple constructors in .h.
9685
2008-03-11 Larry Ewing <lewing@novell.com>
9687
* xaml.cpp (dependency_object_set_property): throw an error if we
9688
get here without a DependencyObject. Fixes
9689
test-property-parsing.xaml
9691
2008-03-10 Larry Ewing <lewing@novell.com>
9694
* uielement.cpp: add more checks to the parent tree.
9696
2008-03-10 Chris Toshok <toshok@ximian.com>
9698
* dependencyobject.cpp (~DependencyObject): use
9699
g_hash_table_foreach_remove, so the dtor of one value can't access
9700
an already destroyed DO from another value.
9702
2008-03-10 Chris Toshok <toshok@ximian.com>
9704
* namescope.cpp: don't explicitly unref the object when removing
9705
it. instead use base_unref as the value-dtor for the GHashTable.
9706
This will cause unrefs when the hash table is destroyed in the
9707
dtor (a case we were missing before.)
9709
* collection.h, collection.cpp (class Collection): factor out the
9710
body of Collection::Clear into a non-virtual method that we can
9713
2008-03-10 Larry Ewing <lewing@novell.com>
9716
* panel.cpp: make sure we don't subtract the region unless non of
9717
our anscestors have a slip mask. This should be implemented in a
9720
2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
9722
* playlist.cpp, playlist.h: Move PlaylistContent info PlaylistEntry.
9724
2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
9726
* dependencyobject.h, dependencyobject.cpp: Enable object counting when
9728
* runtime.cpp: Show a message if we leak objects and DEBUG is defined.
9729
* pipeline.cpp: Remove printfs.
9731
2008-03-10 Larry Ewing <lewing@novell.com>
9734
* geometry.cpp: make IsBuilt check for actual path data as well
9735
then use it everywhere we need it. Invalidate the path if the
9736
figures change. Fixes test-transform-clip.htm.
9738
2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
9740
* playlist.cpp: Playlist::AddEntry: unref the entry after adding it.
9742
2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
9744
* mplayer.cpp: When stopping, we need to seek to the beginning again. Fixes
9747
2008-03-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
9749
* media.cpp: Update according to pipeline changes. TryOpen: our
9750
downloaded_file field may change when we call MediaOpened, so save a
9751
local copy before calling MediaOpened. Unref our playlist upon
9753
* mplayer.cpp: Update according to changes in the pipeline.
9754
* pipeline.cpp, pipeline.h: Delete all but one of GetNextFrameAsync, the
9755
rest aren't used. Make the remaining method take the stream as a
9756
parameter, and the resulting frame will be put in the closure. Also
9757
handle the case when the codec returns MEDIA_CODEC_DELAYED, in which
9758
case just try again with the next frame. Make MediaWork ref/unref the
9759
fields that can be ref counted.
9761
2008-03-10 Chris Toshok <toshok@ximian.com>
9763
[ Fixes bug #368460 ]
9764
* collection.cpp (Collection::SetVal): make sure to unregister the
9765
name of the object(s) we remove from the collection.
9766
(Collection::Remove): same.
9767
(Collection::RemoveAt): same.
9768
(Collection::Clear): same.
9770
* namescope.cpp (NameScope::RegisterName): ref the object.
9771
(NameScope::UnregisterName): unref the object.
9773
2008-03-10 Jeffrey Stedfast <fejj@novell.com>
9775
* font.cpp (TextLayout::Layout): More line-wrap fixes - implement
9776
Silverlights TextWrapping="Wrap" bug where it doesn't ever break
9779
2008-03-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
9783
2008-03-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
9785
* dependencyobject.h: Make the OBJECT_TRACKING stuff public.
9786
* runtime.cpp: Use GetRefCount, not refcount.
9788
2008-03-10 Chris Toshok <toshok@ximian.com>
9790
* runtime.h, runtime.cpp: add surface_get_time_manager.
9792
* downloader.h, downloader.cpp: add downloader_get_surface.
9794
2008-03-10 Michael Dominic K. <mdk@mdk.am>
9798
* shape.cpp: Making the shape-caching a runtime parameter
9799
(shapecache=yes). Turned off right now.
9801
2008-03-10 Michael Dominic K. <mdk@mdk.am>
9803
* shape.cpp: Tiny refactoring to the surface-size calculation code.
9805
2008-03-10 Michael Dominic K. <mdk@mdk.am>
9808
* shape.cpp: Adding functionality to limit the amount of caching
9809
happening on one surface. Currently set to ~6mb.
9811
2008-03-09 Larry Ewing <lewing@novell.com>
9813
* mplayer.cpp: fix another place that used the wrong stride.
9815
2008-03-09 Geoff Norton <gnorton@novell.com>
9817
* yuv-converter.cpp: Make sure we emms after finishing sse/mmx
9820
2008-03-09 Geoff Norton <gnorton@novell.com>
9822
* yuv-converter.cpp: Detect the CPU features at runtime. We
9823
should now be able to distribute a 32-bit SSE2/MMX build to
9824
non SSE2/MMX machines
9826
2008-03-09 Geoff Norton <gnorton@novell.com>
9828
* yuv-converter.cpp: Implement runtime fallbacks in the Convert
9829
function (TODO: Still need to runtime detect SSE2/MMX)
9831
2008-03-09 Larry Ewing <lewing@novell.com>
9833
* mplayer.cpp (MediaPlayer::Open): make the stride % 16 for now.
9835
2008-03-09 Larry Ewing <lewing@novell.com>
9837
* mplayer.cpp (MediaPlayer::Open): use the proper stride
9838
calculation functions.
9840
2008-03-08 Geoff Norton <gnorton@novell.com>
9842
* yuv-converter.cpp: Implement a SSE2 version of the YUV2RGB
9843
codepath along with some code cleanup. Still some more cleanup
9844
to do for runtime detection of CPU features.
9846
2008-03-08 Geoff Norton <gnorton@novell.com>
9848
* yuv-converter.cpp: Fix some erroneous math. U' != U.
9849
These coefficients are far more sane now and our lum change is
9852
2008-03-08 Chris Toshok <toshok@ximian.com>
9854
* clock.cpp (TimeManager::SourceTick): larry gets credit for
9855
spotting this problem and suggesting the fix. remove the
9856
hysteresis code, and *always* set a new timeout, based on what our
9857
idea of the timeout and the amount of time we spent rendering the
9858
previous frame. This smooths things out immensely, removes (for
9859
me) the animation stutters induced by audio in sprawl, and results
9860
in fewer dropped frames.
9862
2008-03-08 Geoff Norton <gnorton@novell.com>
9864
* yuv-converter.cpp: Fix the luminance problem (Y needs shift;
9865
and b was pulling the wrong l/h value.
9867
2008-03-08 Chris Toshok <toshok@ximian.com>
9869
* value.cpp (Value::CreateUnrefPtr): use GetRefCount() instead of
9870
accessing dob->refcount.
9871
(Value::CreateUnref): same.
9873
* dependencyobject.h, dependency.cpp (class EventObject): reorder
9874
this class definition so that we don't have multiple
9875
public/protected/private areas. confusing as hell :) Also, move
9876
the implementations of the non-performance critical things into
9877
the .cpp file, as they were making the .h rather cluttered (ctor,
9878
dtor, weak ref/unref.) Lastly, make almost everything private
9879
instead of public (most importantly the refcount.)
9881
* debug.h, debug.cpp: random code cleanup. we don't need to be
9882
concerned with adding some additional stack methods to the plugin
9883
in the DEBUG case, so go ahead and just use DEBUG here instead of
9886
2008-03-08 Chris Toshok <toshok@ximian.com>
9888
* uielement.cpp, text.cpp, clock.cpp, mplayer.cpp: remove the
9889
extern guint32 moonlight_flags.
9891
* pipeline.cpp: if RUNTIME_INIT_CONVERTER_YUV, use the yuv
9892
converter, otherwise use ffmpeg.
9894
* runtime.h: add RUNTIME_INIT_CONVERTER_YUV to the list of init
9895
flags, and (my god) put the extern moonlight_flags here.
9897
* runtime.cpp: add yuv converter options. use
9898
MOONLIGHT_OVERRIDES=converter=yuv to enable it. default is
9901
2008-03-08 Geoff Norton <gnorton@novell.com>
9903
* yuv-converter.cpp: Clear the mmx state when we're done
9904
processing. Fixes most problems on x86_32.
9906
2008-03-08 Geoff Norton <gnorton@novell.com>
9908
* pipeline.cpp: Disable YUV converter, its crashing on x86_32
9911
2008-03-08 Geoff Norton <gnorton@novell.com>
9913
* pipeline-ffmpeg.cpp: Dont register YUV converter here.
9914
* pipeline.cpp: Register YUV converter here.
9916
2008-03-08 Geoff Norton <gnorton@novell.com>
9918
* yuv-converter.cpp: Remove some code duplication and refactor
9919
to support register starved implementations.
9921
2008-03-08 Geoff Norton <gnorton@novell.com>
9923
* Makefile.am: Add yuv-converter.cpp to the build
9924
* yuv-conveter.*: Our YUV2RGB 420P converter. Replaces
9926
* pipeline-ffmpeg.cpp: Use YUVConverter instead of libswscale.
9928
2008-03-08 Chris Toshok <toshok@ximian.com>
9930
* clock.h, clock.cpp, animation.cpp: a few clock related changes.
9932
1. Revert the change that uses "forward" to tell if we're moving
9933
forward or not. This isn't the only indicator, as a parent clock
9934
might be ticking backward, so we really do need to use "our_delta"
9936
2. Also, we need to not clamp the time of the clock (on either
9937
end) when we're filling, as if the parent's duration is longer
9938
than ours and they autoreverse, there needs to be some padding in
9939
the reverse direction before we start again.
9941
3. Only call ComputeBeginTime() on a newly created clock if the
9942
timeline has a begin time specified. Otherwise, use
9943
BeginOnTick/GetBeginOnTick to make it begin on the next tick.
9944
This fixes the chess animation breakage. The problem was caused
9945
by us computing the begin time immediately in Storyboard::Begin,
9946
which would calculate the clock's begin time relative to the
9947
*previous* tick. on the next tick, the clock was almost always at
9948
1.0 progress, which caused the animations to skip directly to the
9951
2008-03-08 Chris Toshok <toshok@ximian.com>
9953
* value.cpp, type.cpp, type.cpp.in, trigger.cpp, runtime.cpp,
9954
dirty.cpp, dependencyobject.cpp: more assert removal. we can't
9955
assert in a plugin (even if people are running a debug build it's
9956
not exactly nice to bring down their browser.)
9958
2008-03-07 Chris Toshok <toshok@ximian.com>
9960
* value.cpp (Value::CreateUnrefPtr): don't assert here.
9961
(Value::CreateUnref): same.
9963
2008-03-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
9965
* type.cpp.in, typegen.cs, type.cpp: If the type system is accessed when
9966
it's not initialized, print a warning and re-initialize it.
9968
2008-03-08 Fernando Herrera <fherrera@novell.com>
9972
* playlist.h: Add support for ASX2 playlist files returned by
9973
mediaservers when requesting a mmsh file over plain http. Fixes
9974
http://channel9.msdn.com.
9976
2008-03-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
9978
* pipeline.cpp: Add a couple of null checks in ~Media. Detect ASX files
9981
2008-03-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
9983
* pipeline.h, pipeline.cpp: Refcount IMediaObject, and make dtors in all
9984
derived classes protected.
9985
* media.cpp: Update according to pipeline changes. TryOpen: our
9986
downloaded_file field may change when we call MediaOpened, so save a
9987
local copy before calling MediaOpened.
9989
2008-03-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
9991
* clock.cpp, clock.h: Added TimeManager::InvokeOnMainThread.
9992
* mplayer.cpp: Use TimeManager::InvokeOnMainThread instead of finding a
9993
TimeManager instance to add the timeout to.
9995
2008-03-07 Sebastien Pouliot <sebastien@ximian.com>
9997
* downloader.cpp: Fix access to Status from JScript.
9999
2008-03-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
10001
* mplayer.cpp: LoadVideoFrame: if we got the last frame, don't request any
10004
2008-03-07 Sebastien Pouliot <sebastien@ximian.com>
10006
* brush.cpp: Fix default value for ColorInterpolationMode (js
10008
* parsertest.cpp: Adapt to API change.
10009
* xaml.cpp|h: Change value_from_str[_with_typename] to return a
10010
bool since NULL can be a valid Value in some cases (e.g. empty
10011
stuff that should not reset the DO default values).
10013
2008-03-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
10015
* mplayer.cpp: Add a null check before accessing any time managers.
10017
2008-03-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
10019
* brush.cpp, uielement.cpp: Use MediaElement::GetMediaPlayer instead of
10020
accessing the field.
10021
* media.cpp, media.h: Use MediaElement::GetMediaPlayer instead of accessing
10022
the field. Update according to pipeline changes.
10023
* mplayer.cpp, mplayer.h: Update according to pipeline changes.
10024
* pipeline.cpp, pipeline.h: Make Media inherit from EventObject so that it
10025
can be ref counted. Make MediaClosure more intelligent by ref/unreffing
10026
the context and media fields. All variations of MediaWork has a closure,
10027
so move the closure field out of the union. This simplifies
10028
Media::WorkerLoop a bit. Add a Media::SeekToStart, which is required to
10029
not cause any reads/seeks which may block. Remove SetQueueCallback, the
10030
request takes a closure now. Implement an ASXDemuxer to read ASX files.
10031
* sizes.cpp: Updated.
10032
* playlist.h, playlist.cpp: First part of the new playlist support.
10034
2008-03-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
10036
* dependencyobject.cpp: Make the output in EventObject::Track print
10037
atomically. Really avoids a lot of confusion if several threads are
10038
printfing at the same time.
10040
2008-03-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
10042
* debug.cpp: Add a couple of null checks.
10044
2008-03-06 Jeffrey Stedfast <fejj@novell.com>
10046
* font.cpp (TextLayout::Layout): Don't wrap on a space char, ever.
10047
(TextLayout::Layout): Don't include trailing lwsp in the line
10048
width calculation unless it is the last line.
10049
(TextLayout::Layout): Don't include trailing empty lines in the
10050
height calculation.
10052
2008-03-06 Chris Toshok <toshok@ximian.com>
10054
* clock.h, clock.cpp: some changes to make TimeManager a
10055
per-surface item, instead of a singleton/global. The time manager
10056
creates a root clock group, just like Surface used to, which is
10057
the parent of all storyboards for a surface.
10059
* dirty.h, dirty.cpp: remove the method prototypes and globals -
10060
switch everything to be Surface:: methods.
10062
* runtime.h, runtime.cpp: get rid of our ClockGroup and Timeline
10063
for the root clock, and create a TimeManager instead. Also, add
10064
the dirty methods/fields to Surface, even though the
10065
implementation still lives in dirty.cpp. Also, call
10066
toplevel->SetSurface(NULL) early in our dtor so that elements can
10067
react before, e.g., the time manager has been destroyed.
10069
* media.h, media.cpp: use the surface's TimeManager instead of a
10070
global one. Also override SetSurface so we can tell if we're
10071
losing access to it, and remove our timeout accordingly.
10073
* mplayer.cpp: use the media element's TimeManager.
10075
* visual.h, visual.cpp: add GetTimeManager() method, which just
10076
does GetSurface()->GetTimeManager().
10078
* dependencyobject.cpp (base_unref_delayed): as much as I hate to
10079
do this, use a g_idle instead of a tick call here, since we have
10080
no access to the surface.
10082
* animation.cpp (Storyboard::Begin): the surface no longer has the
10083
root clock group, the surface's TimeManager does.
10085
* panel.h, panel.cpp (SetSurface): recursively call SetSurface on
10088
* uielement.h, uielement.cpp: translate global dirty calls into
10089
surface calls, and override SetSurface to remove ourselves from
10090
the dirty list if we're losing our surface.
10092
* eventargs.cpp: translate global dirty calls into surface calls.
10094
2008-03-06 Michael Dominic K. <mdk@mdk.am>
10096
* src/clock.cpp: In ClockGroup Clamp the time *before* ticking on
10097
child clocks. Othewise children always get a small delta and keep
10098
going beyond the parent Duration bounds. Fixes the contrained
10099
storyboard examples.
10101
Also making the forward/backward ComputeNewTime behavior depend on
10102
'forward' instead of out_delta (which can be 0 if hitting bounds).
10104
2008-03-06 Sebastien Pouliot <sebastien@ximian.com>
10106
* transform.cpp: Fix Matrix default values to match identity
10107
matrix (and fix one js unit test).
10109
2008-03-05 Larry Ewing <lewing@novell.com>
10111
* shape.cpp: drop the code that checks stretch when building the
10112
paths for polyline and polygon. Fix the condition for translation.
10114
2008-03-05 Larry Ewing <lewing@novell.com>
10117
* shape.cpp: refactor the stretch code slightly and fix the
10118
original stretch tests (that passed the harness but are clearly
10121
2008-03-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
10123
* media.h: Made destructors in objects deriving from EventObject protected,
10124
preventing 'delete obj' and stack-allocation for these objects.
10126
* playlist.cpp: Can't delete downloaders anymore, unref it.
10128
2008-03-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
10130
* animation.h, brush.h, canvas.h, clock.h, collection.h, control.h,
10131
dependencyobject.h, downloader.h, frameworkelement.h, geometry.h,
10132
namescope.h, panel.h, runtime.h, shape.h, stylus.h, text.h, transform.h,
10133
trigger.h, uielement.h, visual.h: Made destructors in objects deriving
10134
from EventObject protected, preventing 'delete obj' and stack-allocation
10136
* demo.cpp, runtime.cpp: Can't delete a surface anymore, unref it.
10137
* dirty.h: Added header.
10139
2008-03-05 Chris Toshok <toshok@ximian.com>
10141
* runtime.h (RUNTIME_INIT_DESKTOP, RUNTIME_INIT_BROWSER): make
10142
front-to-back rendering the default.
10144
2008-03-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
10146
* clock.h, playlist.h, trigger.h, text.h, clock.cpp, playlist.cpp,
10147
trigger.cpp, dependencyobject.h, downloader.cpp, dependencyobject.cpp,
10148
media.h, animation.h, brush.h, runtime.h, media.cpp, animation.cpp,
10149
runtime.cpp, text.cpp: Updated event handling to take an EventArgs*
10150
calldata instead of a gpointer.
10151
* error.h: Added EventArgs, a base class for all *EventArgs.
10152
* collection.h: Make ChangeEventArgs inherit from EventArgs.
10153
* uielement.cpp: Create all *EventArgs on the heap and simply the code a
10155
* collection.cpp: Don't allocate Collection::ChangeEventArgs on the stack.
10156
* eventargs.cpp, eventargs.h: Added EventArgs, a base class for all
10157
*EventArgs. Added MarkerReachedEventArgs.
10158
* brush.cpp: Updated event handling to take an EventArgs* calldata instead
10159
of a gpointer. ~ImageBrush: don't delete, unref.
10161
2008-03-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
10163
* value.cpp: Fix warning.
10165
2008-03-05 Larry Ewing <lewing@novell.com>
10167
* shape.cpp: Fix line, polyline and polygon to apply stretches
10168
properly (modulo pesimistic shape bounds bugs). Mostly fixes
10169
test-shape-line-stretch2.xaml, test-shape-polyline-stretch2.xaml
10170
and test-shape-polygon-stretch2.xaml.
10172
* shape.h: move stretch transform out of Path and into Shape.
10175
* stylus.cpp: include the strokes in the subtree bounds so that we
10176
will get invalidations and update bounds when the collection
10177
changes. There are still potential bounds issues point changes,
10178
those are being looked into. Fixes invalidation issues in
10179
test-inkpresenter-position and test-inkpresenter-scale.
10181
2008-03-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
10183
* xaml.cpp: Add a null at the end of the namespace array.
10185
2008-03-05 Jeffrey Stedfast <fejj@novell.com>
10187
* font.cpp (TextRun::TextRun): Drop \r's and convert non-new-line
10188
white space into a simple space.
10189
(TextLayout::Layout): Treat embedded \n's as LineBreaks
10190
(TextLayout::Layout): When calculating the width of a line that
10191
ends in a space, don't include the width of the space char -
10192
Silverlight doesn't seem to.
10193
(TextLayout::Layout): Don't pad the height. Don't pad the width
10194
either, altho it seems like a padding of +2.0 is about right but
10195
ONLY if the text is in a canvas? See OMTextInline.htm's
10196
actualWidth/Height measurements as well as the out-of-tree
10199
* xaml.cpp (char_data_handler): Always create the GString cdata,
10200
we need to note leading lwsp which the old implementation didn't.
10201
(flush_char_data): Try to emulate Silverlight's chug/chomp
10202
behavior more closely.
10204
2008-03-05 Chris Toshok <toshok@ximian.com>
10206
* canvas.cpp (Canvas::OnSubPropertyChanged): make sure to chain up
10207
to panel's OnSubPropertyChanged if we don't handle it.
10209
* dependencyobject.cpp (DependencyObject::NotifyListenersOfPropertyChange):
10210
make sure we don't call this method with NULL args. Also, remove
10211
larry's g_warning (which wasn't the case, i tested with sprawl!),
10212
and also remove the check for matching property/parent type for
10213
attached properties. this will break controls.
10215
* transform.h, transform.cpp: it used to be that logical parents
10216
of children could rely on OnSubPropertyChanged being invoked for
10217
any property change. This is no longer the case - the only
10218
instance where it still happens is if there's an attached property
10219
involved. All other cases have to use OnCollectionChanged. So,
10220
switch OnSubPropertyChanged to OnCollectionChanged here.
10222
2008-03-05 Jeffrey Stedfast <fejj@novell.com>
10224
* text.cpp (TextBlock::OnCollectionChanged): We need to update
10225
bounds/text even if element_args is NULL (because adding/removing
10226
an item still changes our text).
10227
(Inline::OnPropertyChanged): Use args->new_value.
10229
2008-03-05 Chris Toshok <toshok@ximian.com>
10231
* transform.h, transform.cpp: remove
10232
TransformCollection::OnSubPropertyChanged. it was gumming up the
10235
2008-03-05 Larry Ewing <lewing@novell.com>
10237
* shape.cpp: disable the shape caching code for now unless
10238
USE_OPT_SHAPE_SURFACE_CACHING=1.
10240
2008-03-05 Michael Dominic K. <mdk@mdk.am>
10245
* xaml.cpp: Taking out all the enum->str (and vice versa) code from
10246
xaml.cpp and putting it into a new file -> enum.c + some utilities.
10248
The enum<->str code is not specific to xaml and is usefull from plugin as
10251
2008-03-05 Stephane Delcroix <sdelcroix@novell.com>
10253
* media.cpp: close the pixbuf_loader to load the small images too.
10255
2008-03-04 Chris Toshok <toshok@ximian.com>
10257
* runtime.cpp (Surface::expose_to_drawable): re-enable the
10258
clearing of the cairo surface, but only if we have a
10259
widget (i.e. not in the windowless plugin case.) Should fix
10260
translucent desklets without breaking the plugin.
10262
2008-03-04 Chris Toshok <toshok@ximian.com>
10264
[ rather large change, reworking much of the property change event
10265
system to be a little smaller api surface-wise, and also cleaning
10266
up uses of it to remove some of the accumulated cruft that we'd
10267
developed over the past 10 months.]
10269
* dependencyobject.h, dependencyobject.cpp: A few key changes:
10271
1. Attach -> AddPropertyChangeListener
10272
Detach -> RemovePropertyChangeListener
10273
NotifyAttachersOfPropertyChange -> NotifyListenersOfPropertyChange
10275
This was done to remove the confusion between "attached"
10276
properties and our use of the word "attach" to mean "listen for
10277
property changes". Attached properties are those which
10278
implicitly notify the parent when they're changed.
10280
OnChildPropertyChanged is gone. Canvas (the only user of it)
10281
now uses OnSubPropertyChanged to deal with child property
10284
2. *PropertyChanged methods take a
10285
structure (PropertyChangedEventArgs) that contains the
10286
DependencyProperty, as well as the old and new values of it.
10287
This was to remove the need for almost every
10288
OnPropertyChangedMethod to immediately call GetValue on the
10289
property. Passing the old value requires changing the
10290
current_values hash to not have a value destructor, so we have
10291
to manually delete values again.
10293
3. Reordered the args for
10294
AddPropertyChangeListener/RemovePropertyChangeListener so that
10295
the listener comes first and the second arg defaults to NULL.
10296
Cleans up a bit of the use of this method globally.
10298
* animation.h, animation.cpp: track OnSubPropertyChanged changes.
10300
* brush.h, brush.cpp (SolidColorBrush::OnPropertyChanged,
10301
LinearGradientBrush::OnPropertyChanged,
10302
RadialGradientBrush::OnPropertyChanged): remove, unnecessary.
10304
also lots of changes to use args->new_value instead of calling
10305
GetValue(property).
10307
Clear up confusion regarding the meaning of the property passed to
10308
AddPropertyChangeListener.
10310
* canvas.h, canvas.cpp: switch OnChildPropertyChanged to
10311
OnSubPropertyChanged.
10313
* collection.h, collection.cpp (Node::Node): don't add parent as a
10314
listener for every property change here. We handle this
10315
specifically (and automatically) in
10316
DependencyObject::NotifyListenersOfPropertyChange, but only for
10317
attached properties.
10318
(Node::~Node): don't remove the listener here either.
10320
lots of tracking the DO api changes here too.
10322
* control.h, control.cpp: track On*PropertyChanged changes.
10324
* font.cpp: fix some warnings
10326
* frameworkelement.h, frameworkelement.cpp: track
10327
On*PropertyChanged changes.
10329
* geometry.h, geometry.cpp: track On*PropertyChanged changes.
10331
* media.h, media.cpp (MediaElement::OnPropertyChanged): remove a
10332
lot of the empty blocks here - there's nothing to do for these
10333
properties, so we might as well not bloat the code. Also, use
10334
new_value when we can.
10335
(Image::DownloaderComplete): add a (I hope) suitably nasty comment
10336
about calling brush->OnPropertyChanged directly. code shouldn't
10337
do this, we should figure out if we can just set the property, and
10338
if so, do that. otherwise something else is broken.
10339
(Image::OnPropertyChanged): use new_value where we can.
10341
* panel.h, panel.cpp: remove the cached background field. It
10342
wasn't used except to Attach/ref + Detach/unref it, and that's
10343
handled automatically by the DependencyProperty machinery.
10344
Otherwise just track the On*PropertyChanged api changes.
10346
* shape.h, shape.cpp: similarly, we don't need to ref/attach our
10347
cached stroke and fill fields. They're populated for us (and
10348
ref'ed/unref'ed as needed), so we don't need anything additional
10349
here. Use new_value instead of GetValue in OnPropertyChanged.
10350
Also, factor out some redundant code from all the subclass
10351
OnPropertyChanged methods that was nearly the same as the
10352
Shape::OnPropertyChanged code for it.
10354
* stylus.h, stylus.cpp: On*PropertyChanged api changes.
10356
* text.h, text.cpp: mostly On*PropertyChanged api changes, and
10357
lots of using new_value instead of GetValue, but also get rid of
10358
the cached TextBlock foreground instance field. It's easy enough
10359
to fetch when we need it in the ::Paint method, and the
10360
dependencyobject stuff already refs and attaches to it.
10362
* transform.h, transform.cpp: lots of On*PropertyChanged api
10363
changes, and using new_value instead of GetValue.
10365
* uielement.h, uielement.cpp: remove the cached opacityMask
10366
field (it wasn't used except for attach/detach, which is handled
10367
for us.) The usual On*PropertyChanged changes as well as using
10368
new_value instead of GetValue.
10370
2008-03-04 Jeffrey Stedfast <fejj@novell.com>
10372
* xaml.cpp (style_simulations_map): There's only one
10373
StyleSimulation value, and that is None.
10375
* font.cpp (TextLayout::Layout): In Wrap mode, if we overflow the
10376
width and the text is not part of the first run on a line, break
10377
at the beginning of the Run. This seems to be what Silverlight
10378
does in OMTextInline.htm.
10380
2008-03-04 Larry Ewing <lewing@novell.com>
10382
* eventargs.cpp: update the dirty list before trying calculating
10383
relative locations.
10385
* runtime.cpp (Surface::HandleMouseEvent): process dirty elements
10386
here so that our hit testing has up to date bounds.
10389
* dirty.h: remove the prototypes for up/down since it isn't safe
10390
to split the up/down passes.
10392
* src/uielement.cpp: remove dirty processing.
10394
2008-03-04 Stephane Delcroix <sdelcroix@novell.com>
10396
* media.cpp: use a pixbuf_loader instead of the pixbuf_new_from_file to
10397
create the pixbuf from a file, allowing partial rendering of broken
10398
imagefiles, like in Image.htm
10400
2008-03-04 Jeffrey Stedfast <fejj@novell.com>
10402
* text.cpp (Inline::GetDefaultValue): Implemented.
10404
2008-03-04 Michael Dominic K. <mdk@mdk.am>
10406
* src/uielement.cpp: When calling uielement_transform_point, make sure our
10407
transforms are up-to-date (not dirty).
10409
Since we're updating the transform matrices only in the expose (dirty)
10410
callback it can happen that two ie. mouse events arrive before we get to
10411
the expose. If the first mouse event invalidated the transform and the
10412
second one relies on the transform (ie. tries to obtain relative mouse
10413
position) it'd get bogus values since the transform has not been
10416
Fixes the drag & drop behaviour in SL ink journal (the selection tool).
10419
2008-03-04 Michael Dominic K. <mdk@mdk.am>
10422
* src/dirty.h: Splitting the process_dirty_elements () into two individual
10423
chunks -- process_down_dirty_elements () and process_up_dirty_elements ().
10424
process_dirty_elements () now calls both.
10426
The point here is that we need to process down dirty elements (call
10427
process_down_dirty_elements ()) from other contextes as well.
10429
2008-03-03 Larry Ewing <lewing@novell.com>
10431
* uielement.cpp: Call FullInvalidate when clip changes so that
10432
our subtree bounds are updated and invalidated. Make sure we
10433
don't reset the forced invalidate flag.
10435
* dirty.cpp: invalidate subtree bounds on forced invalidations.
10436
Fixes test-clip-invalid-update.htm.
10438
2008-03-03 Jeffrey Stedfast <fejj@novell.com>
10440
* text.cpp (TextBlock::GetText): New method to generate a string
10441
representing the Text property from the inlines.
10442
(TextBlock::SetText): New method (split out from the old
10443
::SetValue code) to parse the newly set text string into a list of
10444
Inlines and update out InlinesProperty if changed. Returns whether
10445
or not the inlines property changed.
10446
(TextBlock::OnPropertyChanged): Call SetText() to update out
10447
Inlines if the TextProperty value was changed by an outside
10448
source. If the InlinesProperty was changed by an outside source,
10449
update our TextProperty.
10450
(TextBlock::OnCollectionChanged): Update our TextProperty if an
10451
Inline was added or removed or if a Run element had its
10452
TextProperty changed.
10454
2008-03-03 Chris Toshok <toshok@ximian.com>
10456
* animation.cpp: plug a memory leak in the 3
10457
UsingKeyFrames::GetCurrentValue methods.
10459
2008-03-03 Chris Toshok <toshok@ximian.com>
10461
* transform.h, transform.cpp: Make Matrix::GetUnderlyingMatrix
10462
return a cairo_matrix_t instead of a pointer to the
10463
internal (mutable) field, and update its only use.
10465
2008-03-03 Jeffrey Stedfast <fejj@novell.com>
10467
* media.cpp (media_element_get_audio_stream_index): Fixed to
10468
handle nullable value.
10469
(media_element_set_audio_stream_index): Same.
10470
(media_init): Register the AudioStreamIndex property as being
10472
(MediaElement::Reinitialize): Set the CurrentStateProperty to
10475
2008-03-03 Jeffrey Stedfast <fejj@novell.com>
10477
* media.cpp (media_init): Register AudioStreamCount,
10478
BufferingProgress, CanPause, CanSeek, CurrentState,
10479
NaturalDuration, NaturalVideoWidth, NaturalVideoHeight properties
10480
as being read-only.
10482
* text.cpp (text_init): Register ActualWidth and ActualHeight
10483
properties as ReadOnly.
10485
* transform.cpp (Matrix::GetValue): Removed.
10486
(Matrix::SetValue): Removed.
10487
(Matrix::OnPropertyChanged): Implemented.
10489
2008-03-01 Larry Ewing <lewing@novell.com>
10491
* shape.cpp (Shape::DoDraw): refactor slightly.
10493
* geometry.cpp: fix extents calculation when there is only a fill
10494
on the shape. Fixes test-path-stretch-fill-extents.xaml.
10496
* shape.cpp (Shape::ComputeShapeBounds): make sure shapes with
10497
negative widths or heights have no bounds.
10498
(Shape::DoDraw): Silence warning.
10500
2008-02-29 Larry Ewing <lewing@novell.com>
10502
* shape.cpp (Shape::ComputeShapeBounds): tweak shape bounds to
10503
match StretchAndShapes.xaml.
10505
* collection.cpp (VisualCollection::Remove): don't fire
10506
VisualRemoved unless we are going to actually remove the item.
10507
Fixes OM_RemoveClearRemoveAt.htm.
10509
2008-02-29 Jeffrey Stedfast <fejj@novell.com>
10511
* collection.cpp (VisualCollection::ResortByZIndex): Reinitialize
10512
the z_sorted array before sorting so that we can be sure the end
10513
result will be a stable sort.
10514
(VisualCollection::Insert): Don't use g_ptr_array_insert_sorted()
10515
because we need to take index into account. Instead, grow our
10516
array and call ResortByZIndex().
10518
2008-02-29 Jeffrey Stedfast <fejj@novell.com>
10520
* text.cpp (TextBlock::GetValue): Revert memleak fix, it created
10521
an even more fun memory corruption bug.
10523
2008-02-29 Larry Ewing <lewing@novell.com>
10526
src/frameworkelement.cpp:
10533
src/uielement.cpp: Fix Rect::Transform, replace all occurances of
10534
bounding_rect_for_transformed_rect with Rect::Transform.
10536
2008-02-29 Larry Ewing <lewing@novell.com>
10538
* geometry.cpp: apply transform to all bounds calculations. Fixes
10539
test-geometry-bounds.xaml.
10541
2008-02-29 Larry Ewing <lewing@novell.com>
10543
* geometry.cpp: Make sure geometry groups draw their children
10544
rather than just copying the paths so that local transforms are
10547
2008-02-29 Jeffrey Stedfast <fejj@novell.com>
10549
* text.cpp (TextBlock::GetValue): Fixed memory leak.
10551
* media.cpp (MediaElement::GetValue): Fixed compile warning.
10553
* text.cpp (Inline::OnPropertyChanged): Use GetValueNoDefault()
10554
rather than calling inline_get_*() which use GetValue().
10556
* font.cpp (TextFont::TextFont): Don't let the underline thickness
10559
* dependencyobject.cpp (DependencyObject::GetValueNoDefault):
10561
(DependencyObject::GetValue): Simplified.
10562
(DependencyObject::GetDefaultValue): New method to get the default
10563
value for a property (now used by GetValue()).
10565
2008-02-29 Larry Ewing <lewing@novell.com>
10567
* geometry.cpp (PathGeometry::ComputeBounds): take the geometry
10568
transform into account when computing bounds. Fixes
10569
CGeometry_AddToRenderList.xaml
10571
2008-02-29 Larry Ewing <lewing@novell.com>
10574
* shape.cpp: export calc_line_bounds.
10576
* geometry.cpp: use calc_line_bounds from shape.h. Fixes bounds
10577
problems on Animation_TargetingAndHandoff.xaml.
10579
2008-02-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
10581
* pipeline.cpp: Add a missing const modifier.
10583
2008-02-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
10585
* mplayer.cpp: Use the first streams found in the media, not the last.
10587
2008-02-28 Stephane Delcroix <sdelcroix@novell.com>
10589
* stylus.cpp: if there's an outline, draw a line of at least 2px.
10591
2008-02-28 Stephane Delcroix <sdelcroix@novell.com>
10593
* brush.cpp: No longer ignore out-of-bounds offest in
10594
SetupGradient. Add the bounds stop with linearinterpolation
10595
between the nearest stop and the outofbounds one. Handle the
10596
degenerated case with only outofbounds stops.
10598
2008-02-28 Michael Dominic K. <mdk@mdk.am>
10600
* shape.cpp: Commenting a left-over debug g_warning.
10602
Additionally adding a protection against NULL in cache-size reporting (as
10603
experienced by rolf). However, if GetSurface () returns NULL in the Render
10604
callback... I guess we're screwed anyways.
10606
2008-02-28 Michael Dominic K. <mdk@mdk.am>
10609
* xaml.h: Adding convert_property_value_to_enum_str function to
10610
check/convert if the value for the given property can be represented by an
10613
It would be nicer to mover all the enums tables/resolving to a separate
10614
place in future instead of gluing it to xaml.cpp.
10616
2008-02-28 Stephane Delcroix <sdelcroix@novell.com>
10618
* shape.h|cpp: override GetSizeForBrush for Rectangle to honor the
10621
2008-02-27 Jeffrey Stedfast <fejj@novell.com>
10623
* text.cpp (Glyphs::Render): Use horiBearingX for the first char
10624
in the Glyphs string just like we do for TextBlock rendering.
10626
2008-02-27 Jeffrey Stedfast <fejj@novell.com>
10628
Fixes the last remaining issue in the TextRegressions.htm test.
10630
* xaml.cpp (flush_char_data): Only preserve LWSP in CDATA between
10631
non-autogenerated <Run>'s.
10633
* text.cpp (TextBlock::SetValue): Mark the Inlines auto-generated
10634
from the TextBlock's Text property as being auto-generated.
10636
2008-02-27 Larry Ewing <lewing@novell.com>
10638
* shape.cpp: change the shape surface cache to cache in device
10639
coordinates and rework the candidate restrictions to reject
10640
huge shapes and allow scaled caches.
10642
2008-02-27 Larry Ewing <lewing@novell.com>
10644
* shape.cpp: center the filled image within the new bounds.
10646
2008-02-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
10648
* media.h, media.cpp: When a media is opened, seek to the current
10651
* value.cpp: ToString: Return 'NULL' if we're null.
10653
2008-02-27 Michael Dominic K. <mdk@mdk.am>
10655
* src/animation.cpp: When storyboard is completed, Teardown the clocks
10656
only if we're realling stopping (not holding). Fixes the
10657
StoryBoard_ModifyProperty test.
10659
2008-02-27 Michael Dominic K. <mdk@mdk.am>
10661
* clock.cpp: Make sure we actually hit the our_delta < 0 code
10662
path. Fixes the AutoReversed/Repeated animations.
10664
2008-02-27 Michael Dominic K. <mdk@mdk.am>
10666
* shape.cpp: More cases to invalidate (free mem) of the surface cache.
10668
2008-02-26 Jeffrey Stedfast <fejj@novell.com>
10670
* font.cpp (TextFont::TextFont): Precalculate underline position
10671
and thickness. Also, we need to adjust the position based on 1/2
10672
the underline thickness.
10673
(TextLayout::Layout): Only adjust by the horiBearingX if < 0.
10674
(TextLayout::RenderLine): Same.
10676
2008-02-26 Chris Toshok <toshok@ximian.com>
10678
* runtime.cpp (runtime_cairo_create): take the visual too, so the
10679
plugin can send ours in - we can't rely on the pixmap having a
10680
visual associated with it, because it's initialized with the
10681
_foreign api which doesn't fill in the colormap. yay.
10682
(Surface::Surface): if we're windowless don't create the widget.
10683
also, init render/render_data and invalidate/invalidate_data to
10685
(Surface::ConnectEvents): exit early if we're windowless.
10686
(Surface::Invalidate): call through the invalidate function if
10687
there is one. otherwise, default behavior (if we have a widget).
10688
(Surface::Paint): exit early if no toplevel.
10689
(Surface::render_cb): call through the render function if there is
10691
(Surface::expose_to_drawable): this is most of the guts of
10692
expose_callback, changed to handle the case where we're already
10693
drawing to the backbuffer (in the windowless case) and therefore
10694
don't need the temporary pixmap. Also, commented out some code
10695
that clears the contents - do we actually need this? The comment
10696
for it is enormous...
10697
(Surface::expose_event_callback): just call expose_to_drawable
10698
with the widget's window.
10700
* runtime.h (class Surface): we need to make the gtk callbacks
10701
public since the plugin will be invoking them directly. Also,
10702
switch the event methods to returning bools, and add a new method
10703
called expose_to_drawable, so the plugin can direct rendering to a
10704
pixmap in the windowless case.
10706
* uielement.h, uielement.cpp: change all the Emit* methods to
10709
* dependencyobject.h, dependency.cpp: make EventObject::Emit
10710
return true if there were handlers for the event, and false
10713
2008-02-26 Jeffrey Stedfast <fejj@novell.com>
10715
* text.cpp (TextBlock::TextBlock): Removed the useless
10716
text_block_set_text() call. This was just a broken hack meant to
10717
do what MDK's previous commit fixed the right way.
10719
* font.cpp (TextFont::UnderlinePosition): Fixed to take font
10720
y_scale metrics into consideration.
10721
(TextFont::UnderlineThickness): Same.
10723
2008-02-26 Michael Dominic K. <mdk@mdk.am>
10725
* src/text.cpp: TextBlock when constructed by default has an empty
10726
Inlines collection instead of NULL. Along with all the previous
10727
commits fixes the OM_CreateAddInsert.htm test.
10729
2008-02-26 Michael Dominic K. <mdk@mdk.am>
10731
* src/collection.cpp: Don't allow collection insert at negative
10734
2008-02-26 Michael Dominic K. <mdk@mdk.am>
10736
* src/collection.cpp: Don't add the object to the collection if it
10737
already contains the object (return -1 instead).
10739
2008-02-26 Michael Dominic K. <mdk@mdk.am>
10741
* src/animation.cpp:
10743
* src/collection.cpp:
10744
* src/collection.h: The "Add" method of collections returns int (index of
10745
the element added), not bool. As explained in:
10747
http://msdn2.microsoft.com/en-us/library/system.windows.media.visualcollection.add.aspx
10749
2008-02-25 Jeffrey Stedfast <fejj@novell.com>
10751
* font.cpp (TextFont::OpenZipArchiveFont): Since we aren't going
10752
through FontConfig, we need to parse the font's family name to
10753
extract styleistic info so we can do proper font name matching and
10754
style matching (e.g. "Myriad Pro Cond Black Italic" should match
10755
"Myriad Pro, Condensed Black Italic").
10757
2008-02-25 Chris Toshok <toshok@ximian.com>
10759
* runtime.h, runtime.cpp: s/drawing_area/widget and
10760
s/DrawingArea/Widget
10764
2008-02-25 Michael Dominic K. <mdk@mdk.am>
10766
* src/uielement.h: Adding a virtual CacheInvalidateHint () function that
10767
can be called on the element to give it a hint that it should free it's
10768
cache for the time being.
10770
* src/collection.cpp:
10772
* src/panel.h: Forward CacheInvalidateHint to all children.
10775
* src/shape.h: Destroy the surface and path cache when hinted.
10777
In total improves our memory usage with surface/path caching, ie. in the
10780
2008-02-22 Michael Dominic K. <mdk@mdk.am>
10785
* src/shape.h: Adding functionality to report the cache size usage. By
10786
default it's turned off. MOONLIGHT_OVERRIDES="cache=show" to turn it on.
10788
2008-02-22 Michael Dominic K. <mdk@mdk.am>
10790
* src/shape.cpp: RoundOut to pixels the extents of the shapes. Causes us
10791
to expose a few more pixels but helps with surface caching.
10793
2008-02-22 Rolf Bjarne Kvinge <RKvinge@novell.com>
10795
* downloader.cpp: downloader_get_response_file: remove any directory
10796
components from the part name, otherwise the creation of the tmp file
10797
fails. If we're aborted, don't call any callbacks.
10798
* media.cpp: If we have a downloader and SetSource is called with a new
10799
downloader, abort the previous download, not only unref it, otherwise
10800
our callbacks and events may still get called from the old downloader.
10802
2008-02-21 Jeffrey Stedfast <fejj@novell.com>
10804
* font.cpp (TextFont::TextFont): Simplified the fallback code.
10806
2008-02-21 Jeffrey Stedfast <fejj@novell.com>
10810
* text.cpp (Glyphs::SetIndices): Fixed to properly parse glyph
10812
(Glyphs::Layout): Properly handle glyph clusters.
10813
(Glyphs::Render): Same.
10815
2008-02-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
10817
* media.cpp: When aborting a downloader, null out the write
10820
2008-02-21 Michael Dominic K. <mdk@mdk.am>
10822
* src/clock.cpp: Emit the Completed event when Filling as
10823
well. Together with prev commit fixes: #359024 and #324935.
10825
2008-02-21 Michael Dominic K. <mdk@mdk.am>
10827
* src/animation.cpp:
10828
* src/animation.h: Detach the AnimationStorage update handler from the
10829
clock when the clock is stopped -- prevents us from overriding the (just
10830
reset) base value with another update.
10832
2008-02-21 Michael Dominic K. <mdk@mdk.am>
10834
* src/value.cpp: Implementing ToString () for DOUBLE.
10836
2008-02-21 Michael Dominic K. <mdk@mdk.am>
10838
* src/color.cpp: A slightly more relaxed/tolerant way of parsing
10839
the colors... it's the web and it's broken by default. Fixes:
10840
#362287 (the US candidates website).
10842
2008-02-21 Stephane Delcroix <sdelcroix@novell.com>
10844
* text.h|cpp: compute GetOriginPoint and fix GetSizeForBrush
10846
2008-02-20 Jeffrey Stedfast <fejj@novell.com>
10848
Fixes the TextBlockFontDownloads.htm test.
10850
* font.cpp (TextFontDescription::Set*): If the new value is not
10851
the same as the old, invalidate the loaded TextFont.
10852
(TextFont::TextFont): Always compare family names unless we're
10853
requesting the "Sans" (e.g. last) fallback font.
10854
(TextFont::TextFont): If the requested family name does not match
10855
the specified font file, fall back to a system font of the same
10856
name (we were doing this for zip archievs before, but not for
10857
specified ttf font files).
10859
* text.cpp (TextBlock::SetFontSource): If the downloader is null,
10860
set the font filename to null and invalidate the textblock.
10862
2008-02-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
10864
* media.cpp: Add a printf to inform when we're trying to load an
10865
mms stream. Helps a lot when trying to identify sites depending
10866
on mms/streaming support.
10868
* runtime.cpp: Unref debug_selected_element upon
10869
destruction. Fixes a leak.
10871
2008-02-20 Michael Dominic K. <mdk@mdk.am>
10873
* src/shape.cpp: Fixing the shape caching to work also with
10874
Path/Geometry. Fixes: #362021.
10876
2008-02-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
10878
* media.cpp: MediaElement/Image: Remove event handlers when we abort the
10879
downloader, otherwise the handlers might be called after we're
10882
2008-02-19 Jeffrey Stedfast <fejj@novell.com>
10884
* uri.cpp (Uri::ToString): Now takes a 'flags' argument to let us
10885
know which, if any, parts of the URI to hide.
10886
(Uri::Parse): If we don't have a protocol, don't simply assume
10887
that the entire string is the filename. We might have a fragment
10888
attached, for example.
10890
* text.cpp (Glyphs::OnPropertyChanged): Decode the URI here and
10891
get the font index (if a fragment is set). Also, use the parsed
10892
Uri's ::ToString() method to hide the fragment so that requesting
10893
the file actually works.
10894
(Glyphs::DownloaderComplete): Don't need to parse the URI here
10895
anymore, we've already got the index from OnPropertyChanged().
10897
2008-02-19 Jackson Harper <jackson@ximian.com>
10899
* xaml.cpp: Parser error if we can't find the owner type or
10900
property name when setting properties.
10902
2008-02-19 Sebastien Pouliot <sebastien@ximian.com>
10904
* geometry.cpp|h: #if out GetOriginPoint which calls moon_get_origin
10906
2008-02-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
10908
* pipeline-ffmpeg.cpp: Comment out error message which just shows ffmpeg's
10910
* media.cpp: Remove printf.
10912
2008-02-19 Sebastien Pouliot <sebastien@ximian.com>
10914
* moon-path.c: #if out moon_get_origin since it's not used
10915
anymore. Change cairo_path_display output to be easier to read
10916
with negative numbers.
10918
2008-02-18 Michael Dominic K. <mdk@mdk.am>
10921
* src/media.h: Load images slightly faster by skipping one pixbuf blit and
10922
doing the expansion + conversion in one step.
10924
Also fixing an ugly memory leak where all RGBA images loaded were leaked
10925
(two times in memory).
10927
2008-02-15 Michael Dominic K. <mdk@mdk.am>
10929
* src/clock.cpp: Before processing dirty enter/leave gdk threads. We're
10930
being called from a timeout (unprotected) and we're potentially calling
10931
gdk_ invalidation functions. I think it only matters (in this case)
10932
on non-X backends though.
10934
2008-02-15 Michael Dominic K. <mdk@mdk.am>
10936
* src/uielement.cpp: Moving the debug timers for rendering slightly and
10937
uncommenting them so that they work when TIMERS is enabled.
10939
2008-02-15 Michael Dominic K. <mdk@mdk.am>
10942
* src/runtime.h: Adding an extra DEBUG_MARKER_KEY define (disabled by
10943
default) that changes your 'd' key into a special debug key. When pressed,
10944
a message is printed to the console (region start). When pressed again,
10945
another message is printed (region end). This is usefull to see what
10946
happens in a particular part of the program timeline (ie. after click).
10948
Makes sense obviously only with timers debugging on and stuff.
10950
2008-02-14 Michael Dominic K. <mdk@mdk.am>
10952
* src/clock.cpp: Changing max/default FPS to 50. Empirical experience
10953
shows that SL runs by default at something around that. Also, with the
10954
recent fixes some sites are suffering from 24 (can run/look much better
10957
2008-02-14 Michael Dominic K. <mdk@mdk.am>
10960
* src/shape.h: Adding surface caching for shapes. The strategy
10961
is to cache big surfaces that have little transformations (such as
10962
ie. backgrounds, fade overlays, etc.). Improves performance greatly
10963
for many sites (ie. Showcase).
10965
2008-02-14 Michael Dominic K. <mdk@mdk.am>
10967
* src/uielement.cpp: Commenting out the timer in post-pre render as it's
10968
broken and blocks the compilation with timers on.
10970
2008-02-12 Michael Dominic K. <mdk@mdk.am>
10972
* src/animation.cpp:
10973
* src/animation.h: Massive fix for our KeySpline animation calculation
10974
routines (which were broken and giving wrong values). According to:
10976
http://msdn2.microsoft.com/en-us/library/ms533119(VS.85).aspx
10978
"...think of the horizontal axis as the pace with which the interpolation
10979
proceeds along the timing interval. The vertical axis is the resulting
10980
value for the animation's progress, yielded by the function that underlies
10981
the keySplines property. Another way of describing this is that the
10982
horizontal axis is the input unit time for the interval, and the vertical
10983
axis is the output unit time."
10985
Therfore, we need to perform an "Y for X" bezier lookup. The current fix is
10986
a little bit ugly -- we waste 256 bytes per KeySpline to store
10987
pre-calculated values in a lookup table. But maybe it's not soo bad, since
10988
balf function (from prev implementation) was coming up top in the
10991
The only other way I can (currently) think of would be to solve a cubic
10992
equation each time we poll the KeySpline for a value. That would be,
10993
however, a *massive* performance hit.
10995
Hence the lookup solution for now (note: the generation of the table is
10996
very fast, no cubics involved).
10998
2008-02-11 Michael Dominic K. <mdk@mdk.am>
11000
* src/runtime.h: Fixing our debug-timing routine. It reported 10x as much
11001
as it should... yes, our redraws are slow, but not *that* slow ;)
11003
2008-02-09 Michael Dominic K. <mdk@mdk.am>
11005
* src/mplayer.cpp: If we have no audio devices present in the system,
11006
launch a special audio loop variant to still read/fetch audio (and discard
11007
it) so that the video playback is not blocked. Fixes: #341835.
11009
2008-02-08 Jeffrey Stedfast <fejj@novell.com>
11011
* font.cpp (TextFont::TextFont): If the loaded font's family_name
11012
doesn't match the requested family name, fall back to the default
11013
font (it means the requested font doesn't exist on the system).
11014
(TextLayout::Layout): Added a 'first_char' state variable that can
11015
be used to figure out if if the current char is the first char on
11016
a line. This is needed for the wrapping logic.
11018
2008-02-08 Jeffrey Stedfast <fejj@novell.com>
11020
Fixes some text layout bugs in TextBlockFontFamilies.xaml
11022
* xaml.cpp (flush_char_data): Now takes a string 'next_element'
11023
argument rather than a bool 'start' argument so that we can make
11024
sure that the previous and next element types are <Run>'s because
11025
lwsp between a <LineBreak/> and a <Run> or a </Run> and a
11026
<LineBreak/> should be ignored. Also, never g_strchomp() this
11028
(start_element_handler): Pass the name of the next element to
11030
(end_element_handler): Pass NULL to flush_char_data() as the
11031
next_element argument.
11033
2008-02-08 Chris Toshok <toshok@ximian.com>
11035
* media.cpp (MediaElement::Render): reorder things so that we're
11036
calculating the brush pattern matrix with the snapped pixels.
11038
2008-02-08 Stephane Delcroix <sdelcroix@novell.com>
11040
* brush.cpp: fix Image|Video|VisualBrushes for Shapes.
11042
2008-02-07 Chris Toshok <toshok@ximian.com>
11044
* media.cpp (MediaElement::Render): snap to the pixel grid if
11045
we're not rotated/skewed.
11047
2008-02-07 Sebastien Pouliot <sebastien@ximian.com>
11049
* shape.cpp: Add comment about (missing) Path::ComputeLargestRectangle
11051
2008-02-07 Larry Ewing <lewing@novell.com>
11053
* brush.cpp (GradientBrush::SetupGradient): treat stops > 1.0 the
11054
same as out of bounds stops.
11056
* shape.cpp: cache the results of CompouteShapeBounds in
11057
extents rect, use that value in GetSizeForBrush.
11059
2008-02-07 Jeffrey Stedfast <fejj@novell.com>
11061
Fixes a rendering glitch for xaml similar to:
11064
<Run FontStyle="Italic">This </Run>is Dodger Blue
11067
* xaml.cpp (flush_char_data): Don't g_strchomp() the cdata when
11068
setting the value of a content_property (e.g. a Run).
11070
2008-02-07 Michael Dominic K. <mdk@mdk.am>
11072
* src/color.cpp: Added support to parse scRGB-style color specificators
11073
(sc#), see #345931. The scRGB -> sRGB conversion is a bit simplified but
11074
should produce accurate-enough colors for most uses.
11076
http://silverlight.net/quickstarts/silverlight10/controls.aspx now works.
11078
2008-02-07 Sebastien Pouliot <sebastien@ximian.com>
11080
* shape.cpp|h: Split ComputeBounds to avoid calling functions
11081
bounding_rect_for_transformed_rect and IntersectBoundsWithClipPath
11082
inside each shape. This will enable us to reuse the non-transformed
11083
value elsewhere too. This also fix (for me) the origin point that
11084
caused problems for some brushes. Started implementing methods
11085
ComputeLargestRectangle[Bounds] to optimize drawing.
11087
2008-02-06 Chris Toshok <toshok@ximian.com>
11089
* frameworkelement.cpp (FrameworkElement::GetSizeForBrush): we
11090
want the untransformed size of the element. otherwise we end up
11091
with a pattern matrix that scales things too large given that
11092
we're also scaling the element. Fixes fullscreen mode in halo3
11093
and /fox video players (bug #335845).
11095
2008-02-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
11097
* mplayer.cpp: AdvanceFrame: Create a target_pts range, if we're within the
11098
range, draw the current frame. If we're ahead of the range, do nothing
11099
(fixes some video/audio sync problems), and if we're behind drop frames.
11100
The range makes sure that we paint every frame even when the audio loop
11101
doesn't update the target pts as often as we're drawing video.
11103
2008-02-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
11105
* panel.cpp, runtime.cpp: Fix warnings.
11107
2008-02-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
11109
* mplayer.cpp: Simplify our advance frame loop: don't lock the queue during
11110
the entire loop, only when fetching packets. This allows packets to
11111
arrive from the pipeline while in the loop (especially noticable when
11112
decoding the video inside the loop).
11114
2008-02-06 Chris Toshok <toshok@ximian.com>
11116
* uielement.cpp (UIElement::FrontToBack): use the media state
11117
accessors, and don't exclude Buffering state - we could be
11118
buffering with a frame rendered.
11120
2008-02-06 Sebastien Pouliot <sebastien@ximian.com>
11122
* shape.cpp|h: Keep track if a rectangle has radii or not.
11123
* uielement.h: Add a flag for radii
11125
2008-02-06 Chris Toshok <toshok@ximian.com>
11127
* uielement.cpp (UIElement::FrontToBack): make sure
11128
media_element_get_current_state != NULL before we strcmp it.
11130
2008-02-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
11132
* src.mdp: Updated.
11134
2008-02-06 Stephane Delcroix <sdelcroix@novell.com>
11136
* brush.cpp: fix the radialgradientbrush setup.
11138
2008-02-05 Chris Toshok <toshok@ximian.com>
11140
* collection.cpp (Collection::EmitChanged): new method. Emit the
11141
Changed event and then call closure->OnCollectionChanged. Also
11142
replace all references to closure->OnCollectionChanged to
11145
* collection.h (class Collection): add ChangeEventArgs struct, and
11146
an EmitChanged method declaration.
11148
* type.h.in, type.cpp.in (Type::~Type): no need to free all the
11150
(Type::HideEvent): remove the event name from the hash so it's
11151
inaccessible from javascript.
11152
(Type::RegisterEvent): use g_hash_table_new_full so we can specify
11153
a destroy function for keys instead of doing the _foreach in the
11155
(types_init_manually): add the #if 0 here instead of type.cpp.
11157
(types_init_register_events): register a Changed event for
11160
2008-02-05 Jeffrey Stedfast <fejj@novell.com>
11162
* downloader.cpp (Downloader::ll_downloader_get_response_file):
11163
Simplified by using the new ExtractFile utility function from
11166
* font.cpp: Moved ExtractFile() and make_tmpdir() into utils.cpp
11168
* utils.cpp: New collection of utility functions.
11170
2008-02-05 Jeffrey Stedfast <fejj@novell.com>
11172
* font.cpp: If a font is requested from a zip archive, extract the
11173
contents and try to figure out which font is the closest match to
11174
the one requested. Fixes bug #356044.
11176
2008-02-05 Chris Toshok <toshok@ximian.com>
11178
* uielement.cpp (UIElement::FrontToBack): enable the rectangle
11179
code, and make sure to round in the bounds we're subtracting.
11180
this was causing the flashing white border on silverlight.net/fox.
11182
2008-02-05 Sebastien Pouliot <sebastien@ximian.com>
11184
* shape.cpp: Use existing MIN macro. Use local variables when
11187
2008-02-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
11189
* fullscreen.cs, fullscreen.sh: Tool to generate fullscreen.h
11191
2008-02-05 Chris Toshok <toshok@ximian.com>
11193
* runtime.h, runtime.cpp: add support for a "selected" element
11194
when in debug mode. Also, make use of the Region methods instead
11195
of using region->gdkregion, which is private now.
11197
2008-02-05 Chris Toshok <toshok@ximian.com>
11199
* region.h, region.cpp (class Region): add Offset().
11201
2008-02-05 Sebastien Pouliot <sebastien@ximian.com>
11203
* geometry.cpp|h: PathGeometry does a Build (not a Draw) to
11204
populate it's moon_path (like others) so the data can always be
11206
* moon-path.c|h: Add moon_get_origin to get the minimal X and Y
11207
from a moon_path (Stephane) and moon_merge to merge a subpath into
11210
2008-02-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
11212
* pipeline-ffmpeg.cpp: Remove another printf.
11214
2008-02-02 Jeffrey Stedfast <fejj@novell.com>
11216
* pipeline.cpp (FileSource::Peek): Only memmove() if we have data
11218
(FileSource::Peek): Slightly better fix.
11220
2008-02-01 Jeffrey Stedfast <fejj@novell.com>
11222
* pipeline.cpp (Mp3Demuxer::GetPositionOfPts): Reimplemented to
11223
estimate the stream position if not known rather than reading data
11224
to find out as we don't have to return an exact stream position.
11226
2008-02-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
11228
* pipeline.h: Update comment.
11230
2008-02-01 Stephane Delcroix <sdelcroix@novell.com>
11234
* shape.cpp: rename GetOringin into GetOriginPoint
11236
* brush.cpp: implement a bad origin computation (based on bounds)
11239
2008-02-01 Jeffrey Stedfast <fejj@novell.com>
11241
* pipeline.cpp (Mp3Demuxer::GetPositionOfPts): Implemented.
11242
(FileSource::Peek): As before, only read as much as we need - but
11243
don't clobber what we had prebuffered, only clobber as much as w
11244
need to in order to make room for the new data - this way we make
11245
it more efficient to seek backward later (if need be).
11247
2008-02-01 Stephane Delcroix <sdelcroix@novell.com>
11250
* shape.cpp: define GettOrigin at the Shape level, compute GetOrigin
11251
from the path data instead of from bounds.
11253
* brush.cpp: translate the brushes with a translation matrix.
11255
2008-02-01 Larry Ewing <lewing@novell.com>
11257
* brush.cpp: Make sure we use the brush opacity when computing the
11260
2008-02-01 Jeffrey Stedfast <fejj@novell.com>
11262
* pipeline.cpp (FindMpegHeader): Now checks for Xing and
11263
Fraunhofer VBRI headers.
11265
2008-01-31 Chris Toshok <toshok@ximian.com>
11267
* uielement.h: include region.h
11269
* point.h: don't assume the right headers have been included
11270
before this file - include glib.h to make sure
11271
G_BEGIN_DECLS/G_END_DECLS is there.
11273
* region.h, region.cpp: split out the region code from
11276
* rect.h, rect.cpp: remove region code.
11278
* Makefile.am: add region.h/region.cpp
11280
2008-01-31 Chris Toshok <toshok@ximian.com>
11282
* runtime.h, runtime.cpp: remove runtime_cairo_region (we can just
11283
use Region::Draw instead).
11285
* panel.cpp: remove references to runtime_cairo_region, and switch
11286
to the new Region* copy ctor. also, use Region::IsEmpty instead
11287
of gdk_region_empty.
11289
* uielement.cpp: more region cleanup, removing references to
11290
GdkRegion in favor of our Region class. Also, commit (ifdef'ed
11291
out until the rendering glitch is fixed) the rectangle back to
11292
front special case code.
11294
2008-01-31 Chris Toshok <toshok@ximian.com>
11296
* rect.cpp (Region::Region): new overload which takes a Region*,
11297
so we don't have to access ->gdkregion everywhere when we copy a
11300
* rect.h (struct Rect): add a GrowBy method that takes both x and
11301
y deltas, and have the 1 parameter version call it.
11302
(class Region): add a copy ctor that takes a Region*.
11304
2008-01-31 Chris Toshok <toshok@ximian.com>
11306
* panel.h, panel.cpp: rename use_back_to_front to UseBackToFront
11307
and add it to the class, protected so subclasses can get at it.
11309
* stylus.cpp (InkPresenter::PostRender): given the ordering
11310
required, we have to c&p some of Panel::PostRender here to render
11311
the children. Chaining up to Canvas::PostRender at the start of
11312
the method would have caused the translucency/opacity mask code in
11313
UIElement::PostRender to be executed *before* we rendered our
11316
2008-01-31 Chris Toshok <toshok@ximian.com>
11318
* stylus.h, stylus.cpp (InkPresenter::PostRender): rename
11319
RenderChildren to this, and chain up to Canvas::PostRender here,
11320
which will do the RenderChildren call if it needs to.
11322
2008-01-31 Chris Toshok <toshok@ximian.com>
11324
* panel.cpp (Panel::FrontToBack): simplify this a bunch with
11327
* brush.h (class Brush): remove GetTotalOpacity() which wasn't
11328
being used anywhere, and add IsOpaque() so that we can use it from
11329
the new front-to-back stuff (instead of duplicating code in Panel
11330
and Shape handling parts).
11332
2008-01-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
11334
* media.cpp: Update.
11336
2008-01-31 Chris Toshok <toshok@ximian.com>
11338
* media.cpp (MediaElement::MediaElement): fix build.
11339
(Image::Image): fix initialization order to quiet g++.
11341
2008-01-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
11343
* mplayer.cpp, mplayer.h: Render: removed, not used. LoadVideoFrame:
11344
implemented again. Added an ugly caught_up_with_seek value, used to
11345
determine if video is late due to a seek, in which case it shouldn't
11346
show any frames (fixes #356053).
11347
* pipeline.cpp, pipeline.h: Added IMediaDecoder::CleanState and
11349
* pipeline-ffmpeg.cpp: Implemented FfmpegDecoder::CleanState and
11350
HasDelayedFrame. Use a mutex to serialize access to avcodec_open.
11351
* pipeline-ffmpeg.h: Implemented FfmpegDecoder::CleanState and
11354
2008-01-31 Jeffrey Stedfast <fejj@novell.com>
11356
* pipeline.cpp (mpeg_parse_samplerate): Doh, need to bitshift the
11358
(FindMpegHeader): Now takes an MpegFrameHeader argument, no sense
11359
having our caller re-parse the header.
11360
(Mp3Demuxer::ReadHeader): Updated.
11362
2008-01-31 Stephane Delcroix <sdelcroix@novell.com>
11364
* brush.cpp: apply the correct offset to RadialGradientBrushes too.
11366
2008-01-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
11368
* clock.h: Added macros to convert between pts, milliseconds and timespans.
11369
* media.cpp, media.h: MediaElement: Updated to normalized pts (starting at
11370
0). Use the new macros when converting between time formats. Remove the
11371
AdvanceFrame timeout upon reinitialization. Implement a better buffering
11372
algorithm (and honor the BufferingTime property).
11373
* mplayer.cpp, mplayer.h: Remove initial_pts, everything coming from the
11374
pipeline is now normalized to start at 0. Use the new macros when
11375
converting between time formats.
11376
* pipeline.cpp, pipeline.h: Normalize all pts to start at 0, and remove
11377
start_time/initial_pts handling. Added Demuxer::GetPositionOfPts to
11378
estimate the position of a pts. ProgressiveSource::CancelWait: only
11379
cancel if we're waiting, and then wait until actually cancelled.
11381
2008-01-31 Stephane Delcroix <sdelcroix@novell.com>
11384
* shape.h: GetOrigin for Polyline and Polygon
11386
2008-01-31 Stephane Delcroix <sdelcroix@novell.com>
11388
* uielement.h: add a GetOrigin ()
11391
* shape.h: implement GetOrigin for Path
11393
* brush.cpp: use GetOrigin as offset, fix the Crystal test.
11395
2008-01-30 Chris Toshok <toshok@ximian.com>
11397
* mplayer.h (class MediaPlayer): add rendered_frame.
11399
* mplayer.cpp (MediaPlayer::MediaPlayer): init rendered_frame to
11401
(MediaPlayer::Close): reset rendered_frame.
11402
(render_frame): set rendered_frame to true if we've successfully
11403
copied data into the video surface.
11405
* media.cpp (Image::CreateSurface): set CachedSurface::has_alpha
11406
to the pixbuf's has_alpha if USE_OPT_RGB24.
11408
* media.h (class Image): make the CachedSurface type and the
11409
instance field "surface" public, so the front to back stuff can
11410
get at it. Also, add "has_alpha" to it, since once the xlib
11411
surface has been created, we lose that information.
11413
* control.cpp (Control::FrontToBack): nothing to do but call
11414
FrontToBack on real_object.
11416
* control.h (class Control): add override for FrontToBack.
11418
* panel.cpp (Panel::FindStartingElement): get rid of this crap.
11419
it was broken and the wrong way to implement it.
11420
(Panel::Render): remove the RenderChildren call here, we do it in
11421
PostRender (and only if we're not rendering front to back)
11422
(Panel::PostRender): if we aren't rendering front to back, call
11424
(Panel::RenderChildren): remove references to FindStartingElement.
11425
(Panel::FrontToBack): this method is a little more complicated
11426
than UIElement::FrontToBack owing to the fact that we're
11427
flattening things to a list. We need to prepend a "cleanup node"
11428
first, before calling FrontToBack on our children, to do the
11429
Panel::PostRender stuff after our children have been rendered. We
11430
remove this cleanup node if none of the children have added
11431
themselves to the list, and our bounds (without the children)
11432
don't intersect the expose region. We apply the same logic to
11433
removing our rectangular bounds as the UIElement code does, but
11434
also have to take into account our background brush. We punt if
11435
any part of it is transparent, and only handle SolidColorBrush and
11436
GradientBrush subclasses.
11438
* panel.h (class Panel): override UIElement:: FrontToBack,
11439
PreRender, and PostRender.
11441
* uielement.cpp (UIElement::DoRender): factor out most of the guts
11442
of this method so it can be used in either front-to-back or
11443
back-to-front. Make sure to pass "false" as the front-to-back arg
11444
for PreRender and PostRender.
11445
(UIElement::FrontToBack): calculate the intersection of the expose
11446
region and our bounds. Add this region to the front of the render
11447
list, and then do some calculating to decide if we should remove
11448
it from consideration by elements lower than us in the display.
11449
Things like "are we opaque", "have we been rotated or skewed, such
11450
that our rectangular shape no longer fills the bounds entirely",
11451
stuff like that. We further limit subtracting in element type
11452
specific ways - right now just for MediaElement and Image with
11453
certain constraints (images can't have alpha, media elements must
11454
have a frame rendered, both types must fill their rectangle, etc).
11455
If everything passes, we remove our bounds from the expose region.
11456
(UIElement::PreRender): new method, do the things that DoRender
11457
used to do before calling Render.
11458
(UIElement::PostRender): new method, do the things that DoRender
11459
used to do after calling Render.
11461
* uielement.h: move the IS_TRANSLUCENT/IS_INVISIBLE #defines here
11462
so they can be used in panel.cpp. Also, add 3 new virtual
11463
methods (FrontToBack, PreRender, PostRender) as well as two
11464
callback methods to invoke the 2 latter ones.
11466
* runtime.cpp (overrides): add "render=ftb" and "render=btf"
11467
overrides (with btf the default) corresponding to
11468
RUNTIME_INIT_RENDER_FRONT_TO_BACK.
11469
(Surface::Paint): add support for front-to-back rendering. If
11470
it's enabled, make a FrontToBack pass on the fullscreen message
11471
and the toplevel element. This populates the render list with a
11472
back to front ordered list of elements to paint, along with the
11473
regions they need repainted. If the render list is empty for some
11474
reason (or if the user didn't select ftb rendering), we fall back
11475
to back to back-to-front rendering at the toplevel.
11476
(RenderNode::RenderNode): add ctor/dtor for RenderNode.
11478
* runtime.h: add the RenderNode class, used by the front to back
11481
* rect.h, rect.cpp: add IsEmpty() and two overloads of Subtract()
11484
2008-01-30 Jackson Harper <jackson@ximian.com>
11486
* xaml.cpp: Strip leading whitespace from xaml files.
11488
2008-01-30 Jackson Harper <jackson@ximian.com>
11490
* xaml.cpp: Handle more names for the default namespace.
11492
2008-01-30 Jackson Harper <jackson@ximian.com>
11494
* xaml.cpp: Add support for ucs4.
11496
2008-01-29 Jackson Harper <jackson@ximian.com>
11498
* xaml.cpp: pull in unistd.h
11500
2008-01-29 Jackson Harper <jackson@ximian.com>
11502
* xaml.cpp: Properly handle utf-16, converting it to utf-8 so
11503
expat doesn't choke.
11505
2008-01-28 Chris Toshok <toshok@ximian.com>
11507
* brush.cpp (VisualBrush::SetupBrush): RoundOut doesn't update
11508
inplace, it returns the new rect.
11510
* uielement.cpp (UIElement::DoRender): same change.
11512
2008-01-28 Jeffrey Stedfast <fejj@novell.com>
11514
* pipeline.cpp (FindMpegHeader): Validate that the sequence is
11515
actually an mpeg frame header by parsing it and calculating its'
11516
length and checking that another frame header starts where we
11518
(Mp3DemuxerInfo::Supports): We need to use FindMpegHeader() here
11521
2008-01-28 Jeffrey Stedfast <fejj@novell.com>
11523
* pipeline.cpp (FindMpegHeader): Scan over binary garbage and find
11524
an MPEG sync header.
11525
(Mp3Demuxer::ReadHeader): Use FindMpegHeader() and also use
11526
IMediaSource's new GetSize() method to help calculate media
11527
duration as opposed to seeking to the end.
11529
2008-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
11531
* media.cpp, media.h: Open the media async.
11532
* pipeline.cpp, pipeline.h: Add and implement OpenAsync.
11534
2008-01-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
11536
* media.cpp: MediaElement::AdvanceFrame: Only stop if the media player
11537
reached eof and couldn't advance.
11538
* mplayer.cpp, mplayer.h: Add a seeking flag, allows us to skip frames we
11539
get while we're waiting for a seek to happen. Implement a better pause
11540
algorithm, the previous one was flawed and dead-locked once in a while.
11541
* pipeline.cpp, pipeline.h: Media: Add a callback to async seek. ASFDemuxer:
11542
Create one frame reader for each stream.
11544
2008-01-27 Jeffrey Stedfast <fejj@novell.com>
11546
* media.cpp (MediaElement::UpdateProgress): Check (pos +
11547
buffering_size) > size, not < size. Duh.
11549
* pipeline.cpp: IMediaDemuxer ctors now take an IMediaSource
11550
argument to use in place of media->GetSource().
11551
(Media::Open): Don't set this->source unless we successfully open
11554
2008-01-26 Jeffrey Stedfast <fejj@novell.com>
11556
* media.cpp (MediaElement::TryOpen): In the DownloadComplete case,
11557
set the state to Buffering so that calling Play() will actually
11558
start playing the media (if the file was local, then we'll be in
11559
the Opening state which means that calling Play() will only note
11560
that a Play action was requested, but won't actually play the
11562
(MediaElement::SetState): Don't check for downloaded_file == NULL,
11563
it might fail in the above case.
11565
2008-01-26 Jackson Harper <jackson@ximian.com>
11567
* xaml.cpp: Set the encoding when we are reading files also.
11569
2008-01-25 Jeffrey Stedfast <fejj@novell.com>
11571
* pipeline.cpp (WaitForPosition): Only update wait_pos if it is
11572
greater than the current wait_pos.
11574
* media.cpp (UpdateProgress): Use the buffering_start position
11575
rather than the current write position to calculate buffer_size.
11577
2008-01-25 Jeffrey Stedfast <fejj@novell.com>
11579
* media.cpp (TryOpen): When download is complete and we
11580
successfully open the media, don't set the state to Paused - this
11581
breaks Halo3 if the video is cached.
11583
* media.cpp|h: Consolidated all of the bool state variables into a
11586
2008-01-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
11588
* pipeline.h, pipeline.cpp: ProgressiveSource: Make the position we're
11589
waiting for publicly available.
11590
* media.cpp: UpdateProgress: use the position the file is waiting for to
11591
calculate the buffer size (if it would exceed the default buffer size).
11593
2008-01-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
11595
* media.h: Add some descriptive comments.
11597
2008-01-25 Sebastien Pouliot <sebastien@ximian.com>
11599
* shape.cpp: Merge UIElement::InsideClip inside Shape::InsideObject
11600
instead of calling it since it can reduce some heavy cairo calls
11601
(cairo_in_*), if there's a clip, otherwise it won't affect
11604
2008-01-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
11606
* media.cpp: Initialize play_pending, and when buffering is
11607
finished, only play if autoplay or play_pending is true.
11609
2008-01-25 Jeffrey Stedfast <fejj@novell.com>
11611
* mplayer.cpp: Get rid of some unused variables and cleaned up
11614
2008-01-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
11616
* pipeline.cpp, media.cpp: More printfs removed.
11618
2008-01-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
11620
* src.mdp: Updated.
11622
* pipeline-ffmpeg.cpp: Commented out printf.
11624
* pipeline.h, pipeline.cpp: Removed some dead code. Made all
11625
interfaces inherit from IMediaObject, and put the media field
11626
there. Commented out printfs.
11628
* mplayer.h, mplayer.cpp: Unified Mute and UnMute into SetMuted to
11629
simplify code a bit. Encapsulated target_pts handling into
11632
* media.h, media.cpp: Create one and only one MediaPlayer for the
11633
life-time of the MediaElement. If not AutoPlay is set, then pause
11636
2008-01-25 Rolf Bjarne Kvinge <RKvinge@novell.com>
11638
* pipeline.cpp, pipeline.h: Media: Don't create the worker thread upon first
11639
usage, but on construction, and finish it upon destruction. Fixes race
11640
between creating and destructing the thread.
11642
2008-01-24 Chris Toshok <toshok@ximian.com>
11644
* stylus.cpp (Stroke::HitTestEndcapSegment): implement.
11645
(calc_perpendicular_intersection_points): new method.
11646
(Stroke::HitTestSegmentSegment): use
11647
calc_perpendicular_intersection_points to give us the end points
11648
of the outer line segments, and use those for hit testing.
11650
2008-01-24 Jeffrey Stedfast <fejj@novell.com>
11652
* media.cpp (UpdateProgress): When switching to Buffering mode,
11653
save the position where we're currently at in the file so that we
11654
can use that as a reference point when calculating progress. Also,
11655
pause the MPlayer so that audio won't continue to play while we're
11656
waiting for buffering to complete. Fixes bug #356051.
11658
2008-01-24 Sebastien Pouliot <sebastien@ximian.com>
11660
* shape.cpp: Avoid calls to cairo_in_[stroke|fill] if no stroke
11661
(or fill) are present for the shape.
11663
2008-01-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
11665
* pipeline.cpp, pipeline.h: Create a more general worker thread,
11666
and use unions to save some space in WorkItem. In the ASFDemuxer,
11667
when seeking, we need to seek to the audio stream, since that's
11668
what we're using to sync against (if we have audio).
11670
* list.cpp, list.h: Added List::InsertBefore.
11672
2008-01-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
11674
* media.cpp: MediaElement::SetSource: only trigger the download
11675
after we've attached to the CompletedEvent.
11677
2008-01-23 Chris Toshok <toshok@ximian.com>
11679
* runtime.cpp (Surface::HandleMouseEvent): don't crash when we
11680
re-enter HandleMouseEvent, which can happen when that stupid JS
11681
timeout dialog pops up.
11683
2008-01-23 Chris Toshok <toshok@ximian.com>
11685
* runtime.cpp (Surface::SetMouseCapture): this fails not only if
11686
there's an existing capture, but also if there's a pending
11687
capture (so if both a parent and child capture on the same event,
11688
the child gets it.) Fixes dragging things around in ink journal.
11690
2008-01-23 Chris Toshok <toshok@ximian.com>
11692
* stylus.cpp, stylus.h: initial hit testing stuff. right now the
11693
only tests that are implemented are endcap (ellipse) vs. point,
11694
and segment vs. segment (although this one isn't the full test, as
11695
we're using the stroke line, as opposed to the exterior lines
11696
created by the ellipse pen tracing that line).
11698
* rect.h: add PointInside (Point p).
11700
2008-01-23 Jeffrey Stedfast <fejj@novell.com>
11702
* pipeline-ffmpeg.cpp: Don't #include "asf/asf-ffmpeg.h" anymore,
11703
it's no longer part of the build.
11705
2008-01-23 Sebastien Pouliot <sebastien@ximian.com>
11707
* shape.cpp|h: Add support for different PenLineCap on Line (part
11708
of #345888). Fix Polyline when a single segment is used (removed
11709
TODO). Avoid extra work when a start/end PenLineCap is Flat (default)
11711
2008-01-23 Jeffrey Stedfast <fejj@novell.com>
11713
* media.cpp (SetSource): Initialize the ProgressiveSource.
11715
* pipeline.cpp (ProgressiveSource::Seek): Simplified by calling
11716
parent class's implementation.
11718
2008-01-23 Jeffrey Stedfast <fejj@novell.com>
11720
* pipeline.cpp|h: ProgressiveSource now inherits from FileSource.
11722
2008-01-23 Jeffrey Stedfast <fejj@novell.com>
11724
* pipeline.cpp (FileSource::Read): Optimized a bit more for cases
11725
where the caller is trying to read a block larger than our
11727
(FileSource::Seek): Fixed 'n' to be an int64_t rather than a
11728
uint64_t (which is needed in the case of seeking backwards).
11730
2008-01-22 Larry Ewing <lewing@novell.com>
11732
* shape.cpp, shape.h: Move the stretch logic out of geometry.cpp
11733
and into Path.cpp as a transform not by modifying the data.
11735
* geometry.cpp, geometry.h: remove stretch logic.
11737
2008-01-22 Jeffrey Stedfast <fejj@novell.com>
11739
* pipeline.cpp (FileSource::Seek): Also optimize seeking backwards
11740
if within our pre-buffered bounds.
11741
(ProgressiveSource::Write): When restoring position state, use the
11742
proper offset (e.g. the offset of the end of our pre-buffered
11745
2008-01-22 Chris Toshok <toshok@ximian.com>
11747
* collection.cpp (UIElementZIndexComparer): the magnitude of the
11748
return value doesn't matter, only the sign.
11750
2008-01-22 Chris Toshok <toshok@ximian.com>
11752
* media.cpp (Image::InsideObject): if we have no surface (the
11753
image hasn't been loaded), we aren't HitTestVisible.
11755
* media.h (class Image): add InsideObject override.
11757
2008-01-22 Chris Toshok <toshok@ximian.com>
11759
* panel.cpp (Panel::OnCollectionChanged): remove the fix for
11760
#353954 as its redundant after the previous commit.
11762
2008-01-22 Chris Toshok <toshok@ximian.com>
11764
* garray-ext.cpp (bsearch): fix this so the g_array_insert_sorted
11767
2008-01-22 Jeffrey Stedfast <fejj@novell.com>
11769
* media.cpp (TryOpen): Don't leak Media objects. Also make sure to
11770
call Initialize() on the file source.
11772
* pipeline.cpp (IMediaSource): Read() now returns the number of
11773
bytes read rather than true/false and does nto guarantee that all
11774
of the data was read. Added a ReadAll() method which does what the
11775
old Read() method did.
11776
(FileSource): Rewritten to do our own buffering which allows for
11777
nice optimizations for Peek() and Seek().
11778
(ProgressiveSource): Also rewritten.
11780
* asf/asf.cpp: Updated to use IMediaSource::ReadAll()
11782
* asf/asf-guids.h: Moved all of the guids into asf-guids.cpp and
11783
just made them extern in the ehader, this way we don't duplicate
11784
those values in each source file that includes this header.
11786
2008-01-22 Sebastien Pouliot <sebastien@ximian.com>
11788
* shape.cpp|h: First part of DoDraw refactoring. Pass all
11789
regression tests from harness (moon versus moon) but it's possible
11790
that some degenerated cases (without test cases) regress.
11792
2008-01-22 Larry Ewing <lewing@novell.com>
11794
* clock.cpp: initalize the smoothing to max framerate, the first
11795
frame is quite likely the slowest frame we'll ever draw. Bump
11796
error delta back up to 1/50th.
11798
2008-01-22 Chris Toshok <toshok@ximian.com>
11800
* media.cpp (MediaElement::Render): a little cairo cleanup, and
11801
remove the USE_OPT_REGION_CLIP block.
11803
2008-01-22 Andrew Jorgensen <ajorgensen@novell.com>
11805
* pipeline.cpp: include unistd.h, fixes a build error introduced in
11806
r93311 when building without-ffmpeg
11808
2008-01-22 Larry Ewing <lewing@novell.com>
11810
* clock.cpp: reduce delta to 1/100 of a second and fix a bug in
11813
2008-01-22 Larry Ewing <lewing@novell.com>
11815
* clock.cpp: Tweak clock timing and smoothing. Increase timer
11816
priority so that ticks get deliver when we want them this doesn't
11817
change the smoothing calculation but it can raise the actual fps
11818
by assuring all our clocks are delivered. Change smoothing alpha
11819
from 0.3 to 0.03 to improve noise immunity. Don't reset the timer
11820
unless our new calculated timeout differs from our old by at least
11821
1/50 of a second. Resetting the clock on every tick had the
11822
effect adding the drawing time to the tick time for every tick
11823
since the timeout starts over at zero.
11825
2008-01-21 Jeffrey Stedfast <fejj@novell.com>
11827
* pipeline.cpp (Mp3FrameReader::ReadFrame): If the bitrate was
11828
unspecified, encode the bitrate back into the header so that if we
11829
are using the NullMp3Decoder, it will know how to handle
11830
it. Probably also needed for any actual Mp3 decoders as well since
11831
it won't reliably be able to keep track of variable-bitrate
11832
streams otherwise since it wouldn't know if/when we seek.
11833
(NullMp3Decoder::DecodeFrame): Implemented.
11835
2008-01-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
11837
* pipeline.cpp: Remove printf.
11839
2008-01-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
11841
* src.mdp: Remove mplayer2.cpp from here too.
11843
2008-01-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
11845
* mplayer.cpp, mplayer2.cpp, Makefile.am: Deleted mplayer.cpp and moved
11846
mplayer2.cpp to mplayer.cpp.
11848
2008-01-21 Jeffrey Stedfast <fejj@novell.com>
11850
* downloader.cpp (ll_downloader_get_response_file): Fixed to use
11851
mkstemp() rather than tmpnam_r() and also simplified.
11853
* pipeline.cpp: Fixed various things about the progressive stream.
11855
2008-01-19 Jeffrey Stedfast <fejj@novell.com>
11857
* mplayer2.cpp (audio_play): Get rid of the 'play' argument. Also
11858
don't memmove() data unless we don't have enough to play a single
11859
frame. Instead, what we'll do is keep progressing audio->outbuf as
11862
2008-01-19 Chris Toshok <toshok@ximian.com>
11864
* uielement.cpp (UIElement::OnPropertyChanged): remove the
11865
handling of TriggersProperty and ResourcesProperty's closure.
11867
* trigger.cpp, trigger.h: remove EventTrigger's OnPropertyChanged
11870
* transform.cpp (TransformGroup::OnPropertyChanged): remove
11871
handling of ChildrenProperty's closure.
11873
* text.cpp, text.h: remove Run::OnPropertyChanged, and also remove
11874
the handling of Inlines->closure from TextBlock.
11876
* stylus.cpp, stylus.h: remove a couple of OnPropertyChanged
11877
methods (InkPresenter and Stroke).
11879
* panel.cpp (Panel::OnPropertyChanged): remove handling of the
11880
ChildProperty's closure here.
11882
* media.cpp, media.h: remove the unnecessary
11883
MediaBase::OnPropertyChanged.
11885
* geometry.cpp, geometry.h: remove a few OnPropertyChanged
11886
methods (GeometryGroup, PathGeometry, and PathSegment.)
11888
* clock.cpp, clock.h: remove TimelineGroup::OnPropertyChanged.
11890
* brush.cpp, brush.h: remove the unnecessary
11891
Brush::OnPropertyChanged and GradientBrush::OnPropertyChanged.
11893
* animation.cpp, animation.h: remove all the
11894
*AnimationUsingKeyFrames::OnPropertyChanged methods, since all
11895
they did was deal with collection closures.
11897
* dependencyobject.cpp (DependencyObject::SetValue): factor out
11898
the "collection->closure" setting code from all the
11899
OnPropertyChanged methods sprinkled around and put it here. Also,
11900
set collection->closure to NULL on the old value (something the
11901
old code didn't do).
11903
2008-01-19 Chris Toshok <toshok@ximian.com>
11905
* animation.cpp: the remaining macros (SET_NULLABLE_FUNC and
11906
NULLABLE_{PRIM_}GETSET_IMPL) are moved here, right before their
11909
* animation.h: clean this file up by removing all those disgusting
11910
macros. for the DECL macros, just expand them here, as having the
11911
methods listed in the class declaration is a good thing.
11913
* collection.cpp (collection_new): remove the switch statement
11914
from here and use Type::CreateInstance instead. this largely
11915
removes the need to be including extra headers (like animation.h).
11917
2008-01-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
11919
* media.cpp, mplayer.cpp, mplayer2.cpp, Makefile.am, pipeline.h: Remove all
11920
MOON_MEDIA ifdefs and completely disable the old mplayer.cpp
11921
* src.mdp: Updated.
11923
2008-01-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
11925
* media.h, media.cpp: MediaElement: make this a state machine to follow the
11926
behaviour specified in MSDN. Implement buffering of media files.
11927
MediaSource (and derived): take a IMediaSource instead of a filename.
11928
* mplayer.h, mplayer2.cpp: Make Open take a Media instead of a filename.
11929
Remove all MOON_MEDIA ifdefs, too many changes to support both versions
11930
now. Make seeking async.
11931
* pipeline.cpp, pipeline.h: Changed the FrameReaderLoop into a more general
11932
worker thread, seeking can now be done there too. Implement
11934
* playlist.cpp: Change IsPlaylistFile to peek the file instead of checking
11935
the file extension. MediaSource (and derived): take a IMediaSource
11936
instead of a filename.
11937
* playlist.h: MediaSource (and derived): take a IMediaSource instead of a
11940
2008-01-18 Larry Ewing <lewing@novell.com>
11942
* uielement.cpp: compute total_opacity for invalidation logic but
11943
use local_opacity for drawing. This fixes monotones grid.xaml and
11944
some hit test regressions.
11946
2008-01-18 Jackson Harper <jackson@ximian.com>
11948
* xaml.cpp: KeyFrameCollections can be specified in the xaml if
11949
they are in a property element.
11950
- When searching for collections, use is subclass instead of
11951
making them be the same type, so derivied collections can be used.
11953
2008-01-17 Chris Toshok <toshok@ximian.com>
11955
* pipeline.h (class IMediaDemuxer): initializer streams and
11956
stream_count so we don't crash on ltbennett.com.
11958
2008-01-17 Jeffrey Stedfast <fejj@novell.com>
11960
* pipeline.cpp (Mp3FrameReader::ReadFrame): If we fail to read an
11961
MPEG header, set MediaFrame->event to EOF. Same if we can't read
11963
(Media::GetNextFrame): Don't try to decode the frame if it is an
11965
(ASFDemuxer::ReadFrame): If we reach EOF, set MediaFrame->event to
11968
* mplayer2.cpp (media_player_callback): pts is allowed to be 0.
11969
(AdvanceFrame): Handle EOF frame events.
11970
(audio_loop): Handle EOF frame events.
11972
2008-01-17 Chris Toshok <toshok@ximian.com>
11974
* stylus.cpp (InkPresenter::OnCollectionChanged): we need to
11975
invalidate the old bounds of the stroke for ItemRemoved as well as
11978
2008-01-17 Chris Toshok <toshok@ximian.com>
11980
* rect.h (Rect::Transform): new method, allows for transforming a
11981
rectangle by a cairo_matrix_t, used with transforming the stroke
11982
bounds back to screen space using the InkPresenter's
11985
* stylus.cpp, stylus.h: deal with collection changed notifications
11986
on Stroke::StylusPointsProperty and on
11987
InkPresenter::StrokesProperty, and correctly invalidate a stroke's
11988
bounds. The bounds of a stroke needs to be looked at - right now
11989
it's in the coordinate space of the InkPresenter, and so it needs
11990
to be transformed back to screen space before invalidating. Need
11991
to check if MS uses screen space for a stroke's bounds (seems
11992
likely they do, but this was easier to code.)
11994
2008-01-17 Jeffrey Stedfast <fejj@novell.com>
11996
* mplayer2.cpp: Updated for MediaFrame changes.
11998
* pipeline-ffmpeg.cc: Updated for MediaFrame changes.
12000
* pipeline.cpp: Instead of having a compressed_data and
12001
uncompressed_data field, simply have a 'buffer' field that gets
12002
reused by both the demuxer and the decoder. The decoder will set
12003
the buffer to the compressed data and the decoder will, once
12004
finished decoding, free the buffer and then update it to point to
12005
the decoded data. This reduces memory overhead.
12007
2008-01-17 Chris Toshok <toshok@ximian.com>
12009
* uielement.cpp (UIElement::InsideClip): use
12010
uielement_transform_point instead of duplicating it.
12012
* shape.cpp (Shape::InsideObject): use uielement_transform_point
12013
instead of duplicating it.
12015
* text.cpp (TextBlock::InsideObject): use
12016
uielement_transform_point instead of duplicating it.
12018
2008-01-17 Larry Ewing <lewing@novell.com>
12020
* shape.cpp (Rectangle::BuildPath): fix the origin calculation for
12021
unstroked rectangles (see test-rectangle-aliasing.xaml). Suggest
12022
more rectangle testing after this.
12024
2008-01-17 Jackson Harper <jackson@ximian.com>
12026
* xaml.cpp: After setting a property stop walking up the element
12029
2008-01-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12031
* pipeline-ffmpeg.cpp: Comment out a couple of confusing printfs.
12033
2008-01-17 Jeffrey Stedfast <fejj@novell.com>
12035
* mplayer2.cpp (audio_decode): Removed as it is no longer really
12037
(audio_loop): We can't assume that an entire decoded audio packet
12038
will fit into the audio output buffer in a single shot, break it
12041
2008-01-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12043
* mplayer2.cpp: Max out video frame rate at 60fps.
12045
2008-01-17 Fernando Herrera <fherrera@novell.com>
12047
* panel.cpp: Reorder based on ZIndex when a new item is added.
12050
2008-01-17 Larry Ewing <lewing@novell.com>
12052
* runtime.cpp (Surface::InitializeDrawingArea): disable extended
12053
input devices until the remaining issues can be resolved.
12055
2008-01-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
12057
* mplayer2.cpp, pipeline-ffmpeg.cpp: Plug a leak.
12059
2008-01-16 Larry Ewing <lewing@novell.com>
12061
* uielement.cpp, uielement.h:
12062
* panel.cpp, panel.h:
12063
* collection.cpp, control.cpp: remove Compute/UpdateTotalOpacity.
12064
Combine the opacity visibility check into the total render
12065
visibility. Make sure we compute/invalidate in all the same
12068
* dirty.cpp, dirty.h: remove all references to DirtyOpacity.
12070
* uielement.cpp (UIElement::DoRender): make sure we don't reset
12071
the coordinate system when setting up the clip calls in the
12072
opacity and opacity mask cases. Go back to using the brush
12073
directly when rendering masks. Should speed things up a little
12074
and fixes http://mycomix.wintellect.com/Spotlight.aspx?Item=1041
12076
2008-01-16 Chris Toshok <toshok@ximian.com>
12078
* stylus.h, stylus.cpp: a few changes. Move the
12079
StylusPointCollection and StrokeCollection classes here from
12080
collection.h/collection.cpp. I didn't like the addition of
12081
stylus.cpp logic in two places. Convert Stroke::GetBounds use use
12082
the new DrawingAttributes::ComputeBounds{WithoutDrawingAttributes}
12083
methods, and build up the bounds for the StrokeCollection by
12084
unioning all the Stroke bounds (these should be cached, but aren't
12085
yet.) StrokeCollection::HitTest has been implemented, just
12086
looping over the strokes. Stroke::HitTest is missing its guts at
12087
the moment, since hit testing is going to be a little bit of a
12090
* collection.h, collection.cpp: remove StylusPointCollection and
12093
2008-01-16 Larry Ewing <lewing@novell.com>
12095
* uielement.cpp, uielement.h: Rework the way we handle opacity to
12096
operate like the reference platform by removing the concept of
12097
TotalOpacity and instead using push/pop group and paint_with
12098
alpha. See test-sibling-opacity.xaml for an example. Handle
12099
clipping in DoRender rather than in every subclass because we want
12100
the clip path active before calling push/pop so that the temporary
12101
surface is bounded.
12102
* brush.cpp, panel.cpp: remove GetTotalOpacity references.
12103
* media.cpp, media.h: cleanup the complicated render logic now
12104
that things are handled in uielement.
12105
* shape.cpp, text.cpp: remove RenderClipPath calls.
12107
* rect.cpp, rect.h: add draw methods.
12109
2008-01-16 Jeffrey Stedfast <fejj@novell.com>
12111
* pipeline.cpp: Implemented mpeg seeking support for
12112
Mp3FrameReader and, thusly, Mp3Demuxer.
12113
(Mp3Demuxer::ReadHeader): Calculate the duration of the stream.
12115
2008-01-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
12117
* mplayer2.cpp: Remove a superfluous variable from Audio.
12119
2008-01-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
12121
* mplayer2.cpp: Remove superfluous variables from Video.
12123
2008-01-16 Sebastien Pouliot <sebastien@ximian.com>
12125
* moon-path.c: Fix typo (but was same value).
12127
2008-01-15 Jeffrey Stedfast <fejj@novell.com>
12129
* pipeline.cpp: Implemented mp3 demuxer.
12131
2008-01-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
12133
* mplayer2.cpp: Don't crash if Seek is called before Open.
12135
2008-01-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
12137
* mplayer2.cpp: Remove dead code and variables, and only request
12138
audio/video frames if we have audio/video.
12140
2008-01-15 Jeffrey Stedfast <fejj@novell.com>
12142
* mplayer2.cpp: Get rid of extra member variables in Packet.
12144
2008-01-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
12146
* mplayer2.cpp: Implement audio decoding on the main thread as well.
12148
2008-01-14 Jeffrey Stedfast <fejj@novell.com>
12150
* pipeline.cpp: Partially implemented an mp3 demuxer.
12152
2008-01-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
12154
* media.cpp, media.h, mplayer2.cpp, pipeline.cpp, pipeline.h: Make markers
12155
work again with the new pipeline.
12157
2008-01-14 Sebastien Pouliot <sebastien@ximian.com>
12159
* shape.cpp|h: It looks like we stopped needing consider_fill a
12162
2008-01-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
12164
* mplayer.h: We don't need io_tread anymore, so remove it.
12165
* mplayer2.cpp: We don't need io_tread anymore, so remove it. Add support
12166
for doing the decoding on the main thread with easy (in-code) switch.
12167
Comment out printfs, and remove dead/old/commented-out code.
12168
* pipeline.cpp, pipeline.h, pipeline-ffmpeg.cpp: Add support for doing the
12169
decoding on the main thread with easy (in-code) switch.
12170
* runtime.cpp: Don't print entire object tracking output if nothing leaked.
12172
2008-01-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
12174
* xaml.cpp: Unref a matrix object when we are done with it.
12175
* mplayer2.cpp: Remove printf.
12177
2008-01-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
12179
* mplayer2.cpp: Remove printfs.
12180
* pipeline.cpp, pipeline.h: Remove printfs and only print messages if they
12182
* pipeline-ffmpeg.cpp: Free context->extradata upon destruction.
12184
2008-01-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
12186
* pipeline.cpp: Fix crash with several web-sites (when seeking before
12189
2008-01-11 Chris Toshok <toshok@ximian.com>
12191
* clock.h (class Clock): add an instance
12192
field (calculated_natural_duration).
12194
* clock.cpp (Clock::ComputeBeginTime): don't include the parent's
12195
current time here. this was inflating animation begin time's in
12196
some cases to be either very close to the parent's calculated
12197
duration (or even after it).
12198
(ClockGroup::ComputeBeginTime): don't chain up to
12199
Clock::ComputeBeginTime. clock groups in our system need to
12200
include their parent time in their begin time. There are only two
12201
levels of clockgroups - storyboards, and the clockgroup we have
12202
associated with a given surface (Which will be the parent of all
12203
the storyboards running on that surface.)
12204
(output_clock): print out the BeginTime of the clock.
12205
(TimeManager::AddChild): I don't really like this, but we need to
12206
force the calculation of the natural duration of the clock when
12207
it's added to the hierarchy.
12208
(ClockGroup::AddChild): same here.
12209
(Clock::Clock): don't calculate the natural duration of the clock
12210
here - when we instantiated a ClockGroup it was calculating the
12211
duration before the child clocks were added.
12213
2008-01-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
12215
* pipeline.cpp: Seek on the frame reader, not on the source.
12216
* mplayer2.cpp, mplayer.h: Change all use of audio/video->stream != NULL to
12217
HasAudio/Video (). Fix seeking to actually work.
12219
2008-01-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
12221
* mplayer2.cpp, mplayer.h: Move the media variable from audio/video into
12222
mplayer.h where it belongs.
12223
* pipeline.cpp, pipeline.h: Implement seeking.
12224
* pipeline-ffmpeg.cpp: Copy decompressed data instead of using ffmpeg's data
12225
directly, since ffmpeg uses one single memory location for all decoded
12226
frames, causing us to always show the last decoded frame.
12228
2008-01-11 Sebastien Pouliot <sebastien@ximian.com>
12230
* shape.cpp: Add support for PenLineCapTriangle with a patched cairo.
12231
See bug #345892 for the required cairo patch.
12233
2008-01-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
12235
* media.cpp: Initialize Media too upon initialization.
12236
* pipeline.cpp, pipeline.h, pipeline-ffmpeg.cpp, pipeline-ffmpeg.h,
12237
mplayer2.cpp, mplayer.cpp: Implement registration of components, making
12238
it possible to completely remove ffmpeg.
12240
2008-01-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
12242
* pipeline.cpp: Remove stray character.
12244
2008-01-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
12246
* mplayer2.cpp, pipeline.cpp, pipeline.h, pipeline-ffmpeg.cpp,
12247
pipeline-ffmpeg.h: Code-cleanup.
12249
2008-01-10 Larry Ewing <lewing@novell.com>
12251
* runtime.cpp (Surface::InitializeDrawingArea): realize the widget
12252
before setting the extension events (lame api) and disable the
12255
2008-01-10 Chris Toshok <toshok@ximian.com>
12257
* runtime.cpp (Surface::InitializeDrawingArea): activate all
12258
devices that have a cursor associated with them.
12260
2008-10-10 Andrew Jorgensen <ajorgensen@novell.com>
12262
* pipeline.cpp: include config.h (fixes an ffmpeg-related build error)
12264
2008-01-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
12266
* mplayer.cpp: Surround with ifdef to conditionally include the new
12267
MediaPlayer or not.
12268
* Makefile.am: Added pipeline* and mplayer2.cpp.
12269
* pipeline-ffmpeg.h, pipeline-ffmpeg.cpp: Added, support for using ffmpeg in
12271
* pipeline.cpp, pipeline.h: Added.
12272
* mplayer2.cpp: Added, a MediaPlayer that uses the new pipeline.
12274
2008-01-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
12276
* panel.cpp: Delete leaked region.
12278
2008-01-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
12282
2008-01-09 Chris Toshok <toshok@ximian.com>
12284
* stylus.h, stylus.cpp, collection.h, collection.cpp: fix
12287
2008-01-09 Chris Toshok <toshok@ximian.com>
12289
* collection.h, collection.cpp: add C wrappers for
12290
StrokeCollection::GetBounds and ::HitTest.
12292
* stylus.h, stylus.cpp: same deal for Stroke::
12294
2008-01-09 Chris Toshok <toshok@ximian.com>
12296
* collection.h, collection.cpp: add empty implementations of
12297
StrokeCollection::GetBounds and StrokeCollection::HitTest.
12299
* stylus.h, stylus.cpp: add empty implementations of
12300
Stroke::GetBounds and Stroke::HitTest.
12302
2008-01-09 Chris Toshok <toshok@ximian.com>
12304
* uielement.h, uielement.cpp: change all the Emit* methods that
12305
deal with mouse events to take a GdkEvent instead of state/x/y,
12306
and also change their calldata to a heap allocated MouseEventArgs,
12307
which we unref after the emit. This is because the pointer itself
12308
is wrapped by the managed MouseEventArgs, and will be unref'ed in
12309
~MouseEventArgs at some later time.
12311
* runtime.h, runtime.cpp: change all the mouse events to pass
12312
around the actual GdkEvent instead of the state/x/y. This is due
12313
to the fact that our MouseEventArgs class now wraps the GdkEvent,
12314
so we can get at all the stylus/extension event stuff.
12316
* stylus.h, stylus.cpp: remove stylus_get_current, as it's no
12317
longer required. We correctly create a StylusInfo instance from
12318
the MouseEventArgs.
12320
* Makefile.am (libmoon_la_SOURCES): add eventargs.cpp
12321
(libmooninclude_headers): add eventargs.h
12323
* libmoon.h: add eventargs.h.
12325
* eventargs.h, eventargs.cpp: new files, splitting out the
12326
KeyboardEventArgs and MouseEventArgs from uielement.h, and flesh
12327
out MouseEventArgs, making it a refcounted object with enough
12328
smarts to handle both the managed case and plugin case. Include
12329
all the stylus related code as well, so this *should* make all the
12330
stylus requiring demos work.
12332
2008-01-09 Jeffrey Stedfast <fejj@novell.com>
12334
* geometry.cpp (path_get_bounds): My fix the other day wasn't
12335
quite ideal. Instead of using a 0.1 line thickness when the
12336
shape's StrokeThickness is 0, continue using that 0 thickness but
12337
use cairo_fill_extents() instead. Also, when shape is null, ise a
12338
0.0 thickness & cairo_fill_extents() as well.
12340
* shape.cpp (DoDraw): Removed the if (thickness == 0) optimization
12341
that breaks Paths with a StrokeThickness of 0. Fixes bug #352188.
12343
* runtime.cpp (EmitEventOnList): Changed to take double x,y
12344
coordinate arguments rather than int.
12345
(HandleMouseEvent): Same.
12347
2008-01-09 Jeffrey Stedfast <fejj@novell.com>
12349
* list.cpp (List::~List): Added a dtor that deletes all nodes
12350
currently in the list. This is doable now that List::Nodes are
12351
classes where the node dtors can be overloaded.
12353
2008-01-09 Jackson Harper <jackson@ximian.com>
12355
* xaml.cpp: If a property is a collection, don't assume that the
12356
collection is already initialized (they used to always be), and
12357
initialize the collection if needed. This fixes BNC 350893.
12359
2008-01-09 Stephane Delcroix <sdelcroix@novell.com>
12361
* brush.cpp: fix (useless) derelativization for MappingmodeAbsolute
12362
on LinearGradientBrush. Fixes bnc 346308 and lineargrad.xml.
12364
2008-01-08 Chris Toshok <toshok@ximian.com>
12366
* animation.cpp (Storyboard::Begin): simple change to fix a nasty
12367
bug. we need to add the teardown handler before the completed
12368
handler. otherwise cases where people were using a storyboard as
12369
a timer would break - the completed handler would fire, the JS
12370
would restart the storyboard, then the teardown handler would free
12371
the new clock hierarchy. Fixes the page animation in pageturn,
12372
and gets the bubbles moving again in the SilverlightCLRBalls demo.
12374
2008-01-07 Jeffrey Stedfast <fejj@novell.com>
12376
* geometry.cpp (path_get_bounds): Cairo seems to break if the line
12377
thickness is 0.0, so if the shape's thickness is set to 0.0, use
12378
0.1 like we do if shape is null. Fixes bug #351575.
12380
2008-01-07 Sebastien Pouliot <sebastien@ximian.com>
12382
* shape.cpp|h: Add NeedsLineCaps and NeedsLineJoin so some shapes,
12383
that ignore those properties, can avoid setting them on the cairo
12386
2008-01-04 Chris Toshok <toshok@ximian.com>
12388
* runtime.cpp: mostly switch all emit_* calls to take doubles, and
12389
pass doubles around for button x/y.
12390
(Surface::motion_notify_callback): if we're gtk > 2.12, use
12391
gdk_event_request_motions (falling back to gdk_window_get_pointer
12392
if not). also, we can use the mouse_event_x/y from the event,
12393
even when it's a hint.
12395
* runtime.h: switch back to using doubles for everything mouse
12396
event related. Change MoonlightEventEmitFunc to take doubles.
12398
2008-01-04 Jeffrey Stedfast <fejj@novell.com>
12400
* runtime.cpp|h: Make mouse_event_x/y ints rather than doubles
12401
since the events that use them want them as ints anyway.
12402
(button_release_callback): Cast the button->x/y doubles to int.
12403
(button_press_callback): Same.
12404
(motion_notify_callback): Cast event->x/y to int.
12405
(crossing_notify_callback): Same.
12407
* dependencyobject.cpp: EventObjects now use a List class for
12408
event_lists rather than GSList which is far more costly for
12410
(Emit): Reduce the number of linked-list iterations from 5 to 2.
12412
2008-01-04 Chris Toshok <toshok@ximian.com>
12414
* runtime.h, runtime.cpp: completely overhaul the way we handle
12415
mouse events. Instead of doing both hit testing and event
12416
dispatch in one recursive tree traversal, we build up a list of
12417
all elements that will bubble the event, and then use that list
12418
along with the previous one to generate Enter/Leave events for the
12419
elements that require it. Also fix the way capture is done (it's
12420
not handled until the end) and fix the Enter event dispatch when
12421
you release mouse capture.
12423
* uielement.h, uielement.cpp: rename the mouse events to match the
12424
names used in C# and JS, as it's been singularly annoying to
12425
remember that ButtonPressEvent -> MouseLeftButtonDown, etc. Also
12426
rename all the Handle* event methods to Emit*, as that's all they
12427
do. Make them nonvirtual, as the traversal and emission of the
12428
events now happens in runtime.cpp. Add a new virtual
12429
method (HitTest), that is overridden by the container elements,
12430
which appends elements that are going to bubble the event to the
12433
* panel.h, panel.cpp: remove all the Handle* methods, implement
12436
* control.h, control.cpp: remove all the Handle* methods,
12439
2008-01-04 Jeffrey Stedfast <fejj@novell.com>
12441
* media.cpp (UpdateProgress): Don't SetValue() unless the delta
12442
was large enough - otherwise we could get into a situation where
12443
we never emit a progress changed event in a case where the data
12444
trickles in at < 0.05%.
12446
2008-01-04 Chris Toshok <toshok@ximian.com>
12448
* animation.cpp (Storyboard::HookupAnimationsRecurse): look back
12449
up the clock hierarchy for the target property like we do with the
12452
2008-01-04 Chris Toshok <toshok@ximian.com>
12454
* media.h: add Image::DownloaderFailed.
12456
* media.cpp (Image::UpdateProgress): make sure to qualify the
12457
DownloadProgressProperty we lookup on the Downloader, since
12458
without the Downloader:: it'll try to get
12459
Image::DownloadProgressProperty, which will always return 0.0.
12460
(Image::SetSource): use the static qualifier for
12461
events (Downloader:: instead of downloader->).
12462
(Image::DownloaderFailed): new method, emit our ImageFailedEvent.
12464
* brush.cpp (ImageBrush::image_progress_changed): make sure to set
12465
our ImageBrush::DownloadProgressProperty before emitting the
12467
(brush_init): lookup the ImageBrush::ImageFailedEvent.
12469
2008-01-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
12471
* runtime.cpp: Free background_color upon surface
12472
destruction. Fixes a minor leak.
12474
* clock.cpp|h: Free the tick_call_mutex upon destruction.
12476
2008-01-03 Jeffrey Stedfast <fejj@novell.com>
12478
Fix for bug #350962
12480
* media.cpp (MediaBase::OnPropertyChanged): Don't emit
12481
DownloaderProgressChanged events anymore, leave that up to Image
12482
and MediaElement classes so that we don't emit events when an
12483
outside source changes the value.
12484
(MediaElement::UpdateProgress): Emit the DownloaderProgressChanged
12485
event if the proper download delta has occured.
12486
(Image::UpdateProgress): Same.
12488
2008-01-02 Rolf Bjarne Kvinge <RKvinge@novell.com>
12490
* dependencyobject.h: Remove warning.
12492
2007-12-31 Jeffrey Stedfast <fejj@novell.com>
12494
* runtime.h (CreateDownloader): Simplified.
12496
2007-12-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
12498
* collection.cpp: Upon destruction on VisualCollection, remove the visual
12499
parent of all items.
12500
* dependencyobject.h: Add weak_ref/unref and a comment explaining when and
12502
* dirty.cpp: Don't take a ref in DirtyNode.
12504
2007-12-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
12506
* media.cpp: Add const modifier
12508
2007-12-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
12510
* downloader.cpp: Null-initialize a field.
12511
* dirty.cpp: Make DirtyNode keep a reference to the element it wraps.
12513
2007-12-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
12515
* pipeline.h: Added, the start of the new media pipeline.
12517
2007-12-20 Sebastien Pouliot <sebastien@ximian.com>
12519
* collection.cpp|h: Add missing method AddStylusPoints for
12520
StylusPointCollection
12522
2007-12-20 Sebastien Pouliot <sebastien@ximian.com>
12524
* geometry.h: Remove hack for PathGeometry::FiguresProperty
12525
* xaml.cpp: If a collection is null by default then we must call
12526
parent->SetValue(dp, collection) or the collection, and it's
12527
contents, won't be available. Fix (correctly) Chess.
12529
2007-12-19 Sebastien Pouliot <sebastien@ximian.com>
12531
* geometry.cpp: Fix Draw and ComputeBound to deal with the fact that
12532
there's no default Figure collection. Fix Chess crasher.
12533
* xaml.cpp: Fix unit test were empty string are parsed as 0.0,
12534
foir doubles, and as an "empty" (but not NULL) Value for
12537
2007-12-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
12539
* media.cpp, media.h: Implement support for markers as a separate stream
12540
(the demuxer will call a callback when it encounters any streamed
12543
2007-12-19 Sebastien Pouliot <sebastien@ximian.com>
12545
* xaml.cpp: Add create_item_func for PathFigureCollection. This is
12546
now needed since it defaults to null and not an empty collection.
12548
2007-12-19 Stephane Delcroix <sdelcroix@novell.com>
12550
* uielement.[h|cpp]: set a default value (0,0) for RenderTransformOrigin.
12552
2007-12-18 Sebastien Pouliot <sebastien@ximian.com>
12554
* color.cpp: Handle empty string correctly in color_from_str. Unit
12555
tests shows this return 0 (and not transparent).
12557
2007-12-18 Stephane Delcroix <sdelcroix@novell.com>
12559
* xaml.cpp: fix for bnc 348581.
12561
2007-12-18 Sebastien Pouliot <sebastien@ximian.com>
12563
* brush.cpp: Fix default color values for SolidColorBrush::Color and
12564
GradientStop::Color properties (see js unit tests).
12565
* geometry.cpp|h: Remove default collection from PathGeometry. Fix
12566
testPathGeometry unit test.
12568
2007-12-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
12570
* media.cpp: ReadASFMarkers: Read markers as well as script commands.
12571
Subtract the preroll value from the pts before adding the marker. Unref
12572
the created collection and markers when finished with them.
12573
AdvanceFrame: Always call CheckMarkers, even if we couldn't advance the
12574
frame (might be necessary if the last frame has a marker).
12576
2007-12-17 Jb Evain <jbevain@novell.com>
12578
* xaml.cpp: fix testMatrixWithZeroItem test case.
12580
2007-12-17 Jb Evain <jbevain@novell.com>
12582
* type.cpp|h(.in), value.cpp|h(.in): remove the Matrix
12583
value type, has SL exposes it as a DependencyObject.
12585
* transform.cpp|h: define and implement the
12586
Matrix DependencyObject type.
12588
* xaml.cpp: create a Matrix DO on a Matrix xaml element.
12589
Also create such an object with the <MatrixTransform Matrix='...'>
12592
2007-12-17 Sebastien Pouliot <sebastien@ximian.com>
12594
* xaml.cpp: Return an "empty" Value (not NULL) if no POINT_ARRAY
12595
is provided. Fix testAllowEmptyPointsOnPoly[gon|line] JS tests.
12597
2007-12-14 Jeffrey Stedfast <fejj@novell.com>
12599
* runtime.cpp (fps_report_default): Default printf FPS report
12601
(Surface::render_cb): Use instance-local variables for keeping
12602
track of FPS and use the report func if RUNTIME_INIT_SHOW_FPS bit
12605
* runtime.h: Added a RUNTIME_INIT_SHOW_FPS flag
12606
(class Surface): New method to set the FPS report callback for a
12609
2007-12-14 Chris Toshok <toshok@ximian.com>
12611
* type.cpp.in, type.cpp (types_init_register_events): need to
12612
register DownloadProgressChanged and ImageFailed events on
12615
* brush.h, brush.cpp: same, and hook up the events from
12616
ImageBrush's embedded image so that we can re-emit the events.
12618
2007-12-14 Jeffrey Stedfast <fejj@novell.com>
12620
* downloader.cpp (Downloader::Abort): Don't abort if we've already
12621
been aborted or been notified that we've failed (needed protection
12622
for the Plugin downloader).
12623
(Downloader::Send): Set aborted = false.
12624
(Downloader::NotifyFailed): Don't do anything if we've already
12625
been notified of failure for this download request.
12627
* downloader.h (class Downloader): Keep track of aborted state as
12630
2007-12-14 Stephane Delcroix <sdelcroix@novell.com>
12632
* brush.cpp: Fix for bnc 346204: Set both Width and Height for Image if
12633
only one (Width XOR Height) is provided.
12635
2007-12-14 Sebastien Pouliot <sebastien@ximian.com>
12637
* shape.cpp: Fix Path::GetBrushSize to ensure the geometry has
12638
been built before calling cairo_stroke_extents. This fix sample
12639
http://designwithsilverlight.com/tutorials/photoGalleryWall/default.html
12641
2007-12-13 Sebastien Pouliot <sebastien@ximian.com>
12643
* shape.cpp|h: Shortcut path bounds calculation when both Width
12644
and Height are specified. Add same clipping rules to Line,
12645
Polyline and Polygon classes.
12647
2007-12-13 Sebastien Pouliot <sebastien@ximian.com>
12649
* geometry.cpp: Resume using cairo_stroke_extents in some cases
12650
because we need very precise bounds for Fill to work properly.
12651
This fix Sprawl's cowboy hat ribbon :-)
12653
2007-12-12 Stephane Delcroix <sdelcroix@novll.com>
12655
* brush.cpp: Fix RelativeTransform for RadialGradientBrush'es too.
12657
2007-12-11 Jeffrey Stedfast <fejj@novell.com>
12659
* downloader.cpp|h: Made the ::Write() method take the same
12660
int-type args as the NPP_Write() function (which means int32 for
12661
both offset and nbytes).
12663
2007-12-11 Sebastien Pouliot <sebastien@ximian.com>
12665
* stylus.cpp: Fix JS unit tests for Stroke properties by having
12666
a default DrawingAttributes inside the Stroke.
12668
2007-12-10 Chris Toshok <toshok@ximian.com>
12670
* dependencyobject.h, dependencyobject.cpp: more event changes.
12671
events keep a integer "token" per event, that starts at 0, that is
12672
returned from the plugin's addEventListener method, and can be can
12673
be passed to the plugin's removeEventListener method.
12675
2007-12-10 Sebastien Pouliot <sebastien@ximian.com>
12677
* shape.cpp: Fix Shape::GetSizeForBrush to adjust to the Stretch
12678
property of the Shape. Fix bug #346018
12680
2007-12-10 Jeffrey Stedfast <fejj@novell.com>
12682
* runtime.cpp (InitializeDrawingArea): Removed the call to
12683
gtk_widget_set_size_request() - we now call it elsewhere (since
12684
going fullscreen requiers us to call set_size_request() /before/
12685
calling gtk_window_fullscreen(). When going to fullscreen mode,
12686
this was causing the FullScreenMessage item to appear in the
12687
upper-left corner rather than centered like it should have been.
12688
(Surface): Make the call to gtk_widget_set_size_request() here now
12689
that it no longer is called inside InitializeDrawingArea().
12691
2007-12-07 Sebastien Pouliot <sebastien@ximian.com>
12693
* geometry.cpp: Set SHAPE_EMPTY if only Height or Width is specified.
12694
* shape.cpp|h: Add Shape and Path NeedsClipping methods. Adjust the
12695
bounds calculation on paths when Height *and* Width are present.
12697
2007-12-07 Sebastien Pouliot <sebastien@ximian.com>
12699
* shape.cpp: In Shape::ComputeBounds don't compute half thickness
12700
unless the value is needed.
12702
2007-12-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
12704
* xaml.cpp: Plug more leaks.
12706
2007-12-07 Rolf Bjarne Kvinge <RKvinge@novell.com>
12708
* animation.cpp, geometry.cpp: Fix a couple of memory leaks,
12709
detected by the javascript tests.
12711
2007-12-06 Jeffrey Stedfast <fejj@novell.com>
12713
* media.cpp (media_element_get_attributes): Added.
12714
(media_element_set_attributes): Added.
12715
(MediaElement): Set an empty list of attributes as per the spec.
12717
2007-12-06 Stephane Delcroix <sdelcroix@novell.com>
12720
* brush.cpp: implement RelativeTransform for image brushes and
12721
LinearGradientBrush. RadialGradientBrush still missing.
12723
2007-12-06 Chris Toshok <toshok@ximian.com>
12725
* dependencyobject.h, dependencyobject.cpp: make
12726
EventObject::AddHandler return the id (when using the event_name
12729
2007-12-06 Chris Toshok <toshok@ximian.com>
12731
* xaml.cpp (xaml_init): register the right constructors for
12732
PathSegmentCollection, GeometryCollection, and
12733
TransformCollection.
12735
2007-12-05 Chris Toshok <toshok@ximian.com>
12737
* animation.cpp, animation.h: a couple of fixes. Move away from
12738
watching the clock state in AnimationStorage and resetting the
12739
property value there. instead, just override Clock::Stop in
12740
AnimationClock and call ResetPropertyValue on the storage.
12742
Also, when a storyboard's clock group is stopped, free it and
12743
remove it from the parent clock's list of children. This should
12744
keep us from growing the number of clocks over time for
12745
storyboards which don't have Begin() called again (the only
12746
circumstance under which we destroy the clock).
12748
* clock.cpp, clock.h: handle the case where a clock can be started
12749
and then stopped before the next clock tick. This happens when
12750
you move the mouse very quickly over the thumbnails in pageturn.
12752
2007-12-05 Sebastien Pouliot <sebastien@ximian.com>
12754
* geometry.cpp: Fix crash when EllipseGeometry is used for clipping
12755
(no path provided). Fix Build/ComputeBounds when no center point
12758
2007-12-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
12760
* uielement.h, visual.h, uielement.cpp, collection.cpp, control.cpp,
12761
dirty.cpp: Move UIElement::parent to Visual, rename it to visual_parent,
12762
and make it a real property with accessors.
12764
2007-12-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
12766
* xaml.cpp, dependencyobject.h, collection.cpp, dependencyobject.cpp,
12767
animation.cpp: Rename DependencyObject::parent/SetParent/GetParent to
12768
logical_parent/SetLogicalParent/GetLogicalParent.
12770
2007-12-04 Larry Ewing <lewing@novell.com>
12772
* media.cpp (Image::Render): fix the conditions for the opacity
12775
2007-12-03 Larry Ewing <lewing@novell.com>
12777
* src/media.cpp (Image::Render): use paint_with_alpha if opacity
12778
is changing, use the old buffered alpha if it is not.
12780
2007-12-04 Jb Evain <jbevain@novell.com>
12782
* stylus.cpp|h: add stylus_info_get_current function.
12783
Right now, it's an hack which always return a StylusInfo
12784
of type Mouse, not inverted.
12786
2007-12-03 Chris Toshok <toshok@ximian.com>
12788
* clock.h, clock.cpp: rename ClampTimeToDuration to ClampTime, as
12789
it now clamps to [0,duration_timespan]. This fixes the Simon
12790
"button flying off the screen" bug.
12792
2007-12-03 Jeffrey Stedfast <fejj@novell.com>
12794
* clock.cpp (RaiseEnqueuedEvents): Optimized a bit by not
12795
iterating thru the list 6 times :)
12796
(ClockGroup::RaiseAccumulatedEvents): Make a copy of the
12797
child_clocks list here too, or we end up corrupting memory.
12799
2007-12-03 Larry Ewing <lewing@novell.com>
12801
* media.cpp (Image::Render): wrap the region clipping in a #define
12804
2007-12-03 Larry Ewing <lewing@novell.com>
12806
* media.cpp (Image::Render): remove accumulated drawing cruft.
12808
2007-12-03 Chris Toshok <toshok@ximian.com>
12810
* animation.cpp: put back in the calls to ComputeBeginTime that I
12811
accidentally committed a few days ago (and lewing reverted to fix
12812
the build). they're needed with the new clock changes.
12814
2007-12-03 Chris Toshok <toshok@ximian.com>
12816
* clock.cpp, clock.h: rework the clock code a bunch. There are a
12817
couple of large changes.
12819
Get rid of the stupid new_ and current_ fields. Just update the
12820
field immediately. This cuts down on logic in if checks, and also
12821
makes subclocks update much faster in relation to their parent
12822
clock (we used to have to wait 1 tick per level in the tree for
12823
state to propagate).
12825
Abstract out all the QueueEvent calls into setters in clock.h.
12827
Break up Clock::Tick some, so more of the code is reusable from
12828
ClockGroup::Tick without having to call Clock::Tick and then work
12831
2007-12-03 Sebastien Pouliot <sebastien@ximian.com>
12833
* brush.cpp: Fix breakage introduced in r90549 (the matrix is
12834
already set on the pattern).
12836
2007-12-03 Jeffrey Stedfast <fejj@novell.com>
12838
* dependencyobject.cpp (RemoveHandler): Simplified a little.
12840
* animation.cpp (Stop): Remove the CompletedEvent root_clock
12841
handler. Fixes Simon's GAME OVER! textblock storyboard.
12843
2007-12-03 Jeffrey Stedfast <fejj@novell.com>
12845
* runtime.cpp: Added clipping/bounding-box override values.
12847
* uielement.cpp (DoRender): Changed optional bounding-box/clipping
12848
debugging drawing based on runtime settable bitflags.
12850
2007-12-03 Larry Ewing <lewing@novell.com>
12852
* uielement.cpp: Clean up the debug rendering code for bounding
12853
boxes and clip regions.
12855
2007-12-03 Jeffrey Stedfast <fejj@novell.com>
12857
Fixes a bug pointed out by Larry when rendering lines beginning
12858
with a 'J', where the tail escapes the bounding box.
12860
* font.cpp (Layout): Use the horiBearingX font metric.
12861
(RenderLine): Same.
12863
2007-12-03 Larry Ewing <lewing@novell.com>
12865
* brush.cpp (RadialGradientBrush::SetupBrush): add debug spew
12866
if we can't invert the matrix but still draw someting.
12868
2007-11-29 Larry Ewing <lewing@novell.com>
12870
* panel.cpp (Panel::ComputeBounds): clip the clip the subpath
12871
bounds to the clip region as well.
12873
* control.cpp (Control::ComputeBounds): differenciate between our
12874
bounds and our subpath bounds.
12876
* control.h: add bounds_with_children and GetSubpathBounds ().
12878
2007-11-29 Jeffrey Stedfast <fejj@novell.com>
12880
* font.cpp (TextFont::GetGlyphInfoByIndex): If we reach the end of
12881
the font face charmap, use unichar = 0 rather than returning NULL.
12883
2007-11-28 Chris Toshok <toshok@ximian.com>
12885
* runtime.cpp (Realloc): when we Realloc(), we need to tell the
12886
toplevel canvas to update its bounds. This *may* be wrong, but it
12887
definitely fixes matrix.
12888
(UpdateFullScreen): we need to stop the timesource when emitting
12889
the fullscreenchangeevent. otherwise we can end up stuck in a
12890
nested glib mainloop and never return from the emit (actually we
12891
never even invoke the JS callback in matrix. the nested loop
12892
happens somewhere deep in the bowels of NPN_Invoke).
12894
2007-11-28 Jeffrey Stedfast <fejj@novell.com>
12896
* media.cpp (MediaElement::UpdateProgress): Got rid of a hardcoded
12897
hack that forced the assumption of a streaming (vs progressive)
12898
media download. Also fixed to emit a DownloadProgressChanged event
12899
at progress == 1.0 (which is what th Silverlight book says we're
12902
2007-11-28 Larry Ewing <lewing@novell.com>
12904
* src/uielement.cpp (UIElement::DoRender): make sure we don't
12905
leave a path on the cairo context when clipping.
12907
2007-11-28 Chris Toshok <toshok@ximian.com>
12909
* uielement.cpp (UIElement::UIElement): compute the initial total
12910
hit test visibility.
12912
* dirty.cpp (process_dirty_elements): don't invalidate/update
12913
bounds when the hit test visibility changes.
12915
* frameworkelement.(h,cpp): calculate the bounds here using
12918
* panel.cpp: chain up to frameworkelement.
12920
2007-11-27 Jeffrey Stedfast <fejj@novell.com>
12922
* text.cpp (TextBlock::SetValue): Check the resulting Inlines
12923
collection formed from the Text property being set against the old
12924
Inlines - if no change, don't set the new Inlines collection,
12925
simply keep using the old. The idea is to prevent unnecessary
12926
layout re-calculations and invalidates.
12928
2007-11-27 Chris Toshok <toshok@ximian.com>
12930
* dirty.[cpp,h] panel.[cpp,h], control.[cpp,h], uielement.[cpp,h],
12931
canvas.cpp, collection.cpp, shape.cpp:
12933
rather large change - don't use a large rectangular bounding box
12934
encompassing both the panel's frameworkelement bounds as well as
12935
the bounds of all its children. Instead, only worry about the
12936
frameworkelement bounds, and let the children invalidate
12937
themselves. but do all this in a way that we still use the
12938
subtree's bounding box to prune rendering and hit testing.
12940
since we won't be invalidating the entire box surrounding all
12941
children, we need to propagate visibility information down the
12942
tree as we do opacity.
12944
This should really speed up most animations (such as those in
12945
sprawl and airlines) since we'll be invalidating far smaller
12948
(this code was stupidly hard for lewing and me to get right. yay
12951
2007-11-23 Larry Ewing <lewing@novell.com>
12953
* runtime.cpp: add show=expose to toggle expose display.
12955
2007-11-22 Jb Evain <jbevain@novell.com>
12957
* xaml.cpp (XamlElementInstantce::ClearSetProperties): avoid
12958
a glib warning if set_properties is NULL.
12960
2007-11-21 Chris Toshok <toshok@ximian.com>
12962
* media.cpp (MediaElement::UpdateProgress): only set 1 of
12963
DownloadProgressProperty and BufferingProgressProperty. The
12964
former is used if we're playing progressively, the latter if we're
12965
buffering before playing. This fixes the buffering animation on
12968
2007-11-21 Chris Toshok <toshok@ximian.com>
12970
* runtime.cpp (Surface::Invalidate): add the int case around the
12971
complete expression to quiet gcc.
12973
2007-11-20 Larry Ewing <lewing@novell.com>
12975
* runtime.cpp (Surface::expose_event_callback): take allocation
12976
offsets into account when invalidating and drawing. Fixes
12979
2007-11-20 Chris Toshok <toshok@ximian.com>
12981
* xaml.cpp (XamlElementInstance::ClearSetProperties): in glib <
12982
2.12, destroy the hash table and set it to NULL so we'll recreate
12985
2007-11-20 Chris Toshok <toshok@ximian.com>
12987
* collection.cpp (VisualRemoved): switch from using
12988
item->parent->ChildInvalidated(UIElement), use
12989
item->parent->Invalidate (item->GetBounds()).
12991
* uielement.h, uielement.cpp: change ChildInvalidated(Region *) to
12992
Invalidate (Region*) and update calls to it. Remove
12993
ChildInvalidated(UIElement*). Also, remove all references to the
12994
children_dirty_region field. everything goes through dirty_region
12997
* dirty.cpp: switch to using item->parent->Invalidate instead of
12998
item->parent->ChildInvalidated, and remove references to
12999
children_dirty_region.
13001
2007-11-20 Chris Toshok <toshok@ximian.com>
13003
* dependencyobject.cpp: add a ctor for EventClosure, and do a deep
13004
copy before emitting an event.
13006
2007-11-20 Jeffrey Stedfast <fejj@novell.com>
13008
* runtime.cpp (surface_get_toplevel): Removed.
13010
* uielement.cpp (uielement_get_isloaded): Removed.
13012
2007-11-20 Jb Evain <jbevain@novell.com>
13014
* downloader.h (Downloader): override SetSurface and GetSurface
13015
to work on a custom surface field.
13016
* downloader.cpp (Downloader::Downloader): initialize
13018
* runtime.h (Surface::CreateDownloader): initialize the surface
13020
* collection.cpp: when removing an UIElement from an UIElementCollection,
13021
clear out its surface to NULL.
13022
* visual.cpp: remove null check preventing to set the surface to NULL.
13023
* dependencyobject.cpp: (DependencyObject::FindName): if the
13024
current DO has no parent, fallback to its surface to try
13025
FindName on its top level element (needed to call FindName
13026
on a downloader for instance). Fixes #335018.
13028
2007-11-20 Jackson Harper <jackson@ximian.com>
13030
* xaml.cpp: If we need to reparse the attributes for an element
13031
(because we loaded a class and the props need to be set on the new
13032
class) we have to clear out the hash of properties that are marked
13033
as already set. Otherwise we get a property already set error.
13035
2007-11-20 Jackson Harper <jackson@ximian.com>
13037
* xaml.cpp: Add new function to create a value from a string
13038
without having the Kind available (you still need to have the type
13040
- SetAttribute now ensures that the attribute was set properly
13041
- If the object we are trying to set an attribute on is a managed
13042
object and there is no DependencyProperty for the attribute, we
13043
try setting the attribute on the object.
13045
2007-11-20 Sebastien Pouliot <sebastien@ximian.com>
13047
* uielement.cpp: Ensure the default value for VisibilityProperty
13048
is VisibilityCollapsed even if the value is invalid (for Javascript
13049
compatibility, since 1.1 should throw an exception). See #340799
13051
2007-11-20 Stephane Delcroix <sdelcroix@novell.com>
13053
* uielement.cpp: FullInvalidate on setting Viibility to Visible.
13056
2007-11-19 Larry Ewing <lewing@novell.com>
13058
* uielement.cpp: setup the clip before push/pop group so that
13059
we reduce the temp surface size.
13061
2007-11-16 Sebastien Pouliot <sebastien@ximian.com>
13063
* transform.cpp: Use cairo_matrix_init_translate instead of
13064
cairo_matrix_init + cairo_matrix_translate where possible (which
13065
avoid the multiplication with the identity matrix).
13067
2007-11-16 Jeffrey Stedfast <fejj@novell.com>
13069
* runtime.cpp (surface_get_toplevel): New function needed by the
13070
managed land to implement a bit of a hack for the Resize
13071
event (when someone connects to the Resize event, if the toplevel
13072
canvas is already loaded, we want to immediately call the
13075
* uielement.cpp (uielement_get_isloaded): Same.
13077
2007-11-15 Jackson Harper <jackson@ximian.com>
13080
* parsertest.cpp: Some tests I use for checking the parsing
13083
2007-11-15 Jackson Harper <jackson@ximian.com>
13085
* color.h: Add equality operators.
13087
2007-11-15 Jackson Harper <jackson@ximian.com>
13089
* xaml.cpp: use isalpha for determining whether or not an int32 is
13090
an enum. This allows things like -1 to work.
13092
2007-11-15 Jackson Harper <jackson@ximian.com>
13094
* xaml.cpp: Make sure the entire string is validate ie no 25.0XXXX
13097
2007-11-15 Jackson Harper <jackson@ximian.com>
13100
* rect.h|cpp: Update signatures to allow for error checking when
13101
creating types from strings.
13102
* xaml.h|cpp: Consolidate code to create values from strings, add
13103
some error checking. Update most of the parsing methods so it is
13104
possible to return errors when parsing.
13105
* playlist.cpp: Sig update.
13107
2007-11-15 Jackson Harper <jackson@ximian.com>
13109
* stylus.h|cpp: Initialize these collections so we don't get NULLs
13110
for GetValue on them.
13112
2007-11-14 Chris Toshok <toshok@ximian.com>
13114
* runtime.cpp (strcase_hash): swap this out for mono's eglib
13115
implementation, augmented with g_ascii_tolower, to remove the
13116
malloc/free and 2 passes over the string.
13118
2007-11-14 Chris Toshok <toshok@ximian.com>
13120
* dependencyobject.cpp: move the strcase_hash/equals functions...
13122
* runtime.cpp: here.
13124
* runtime.h: and make them public.
13126
* type.cpp.in, type.cpp (RegisterEvent): and use them here
13127
(RegisterType): and here.
13129
2007-11-14 Jb Evain <jbevain@novell.com>
13131
* media.cpp|h: remove specific Image and MediaElement
13132
accessors for progress property now that the code
13133
moved to MediaBase.
13135
2007-11-14 Jb Evain <jbevain@novell.com>
13137
* type.cpp.in, type.cpp, media.h, media.cpp: Move
13138
DownloadProgressProperty and DownloadProgressChangedEvent
13139
to MediaBase so it gets shared for both Image and MediaElement.
13142
2007-11-14 Jb Evain <jbevain@novell.com>
13144
* value.h.in: update code template to match current value.h.
13146
2007-11-14 Sebastien Pouliot <sebastien@ximian.com>
13148
* openfile.cpp: Added support for Filter and FilterIndex.
13150
2007-11-14 Sebastien Pouliot <sebastien@ximian.com>
13152
* animation.cpp: Replaced g_assert_not_reached with g_warning.
13153
At least until #340799 (enum validation) is fixed. Part of #335413
13154
* shape.cpp: Add g_warning to replace the g_assert_not_reached
13155
removed earlier. At least until #340799 (enum validation) is fixed.
13156
* uielement.cpp: Replaced g_assert_not_reached with g_warning.
13157
At least until #340799 (enum validation) is fixed. Part of #335413
13159
2007-11-13 Miguel de Icaza <miguel@novell.com>
13161
* value.cpp (Value::ToString): Add method to help debug some
13164
2007-11-13 Jeffrey Stedfast <fejj@novell.com>
13166
* text.cpp (SetValue): Get rid of \r's and treat \n's as LineBreak
13169
2007-11-13 Sebastien Pouliot <sebastien@ximian.com>
13171
* brush.cpp|h: Do not compute brush bounds for a SolidColorBrush
13172
as this is unrequired (API wise) and can be expensive (it was enough
13173
to add custom bound calculation code to shapes and geometries).
13175
2007-11-12 Sebastien Pouliot <sebastien@ximian.com>
13177
* shape.cpp: Removed g_assert_not_reached and, if any bad value is
13178
supplied (should be catched well before that, #340799), use the
13179
default value. Fix part of #335413
13181
2007-11-09 Chris Toshok <toshok@ximian.com>
13183
* dirty.cpp, uielement.h, uielement.cpp: glib was hurting my head.
13184
convert this over to using our List class. Also fix a bug where
13185
elements with down dirty flags weren't being inserted propertly
13186
into the up dirty list.
13188
2007-11-09 Sebastien Pouliot <sebastien@ximian.com>
13190
* animation.cpp: Fix crash on empty BeginStoryboard (#340384)
13192
2007-11-09 Miguel de Icaza <miguel@novell.com>
13194
* value.h (struct Value): Cope with NULL strings.
13196
2007-11-09 Jackson Harper <jackson@ximian.com>
13198
* xaml.cpp: Closepath needs to draw a line to the path's starting
13199
point and needs to create a new path figure element at the
13202
2007-11-09 Jackson Harper <jackson@ximian.com>
13204
* type.cpp|h.in: Add an accesor for the ContentProperty name.
13206
2007-11-09 Jackson Harper <jackson@ximian.com>
13208
* xaml.cpp: Rework to allow unparented properties. createFromXaml
13209
("<Canvas.Background><SolidColorBrush></Canvas.Background") will
13210
basically ignore the property and will return the SolidColorBrush
13211
as the top element. This fixes 335865.
13213
2007-11-08 Chris Toshok <toshok@ximian.com>
13215
[ may go a long way toward fixing #337714, if it doesn't fix it
13218
* uielement.h, uielement.cpp: add an overload of ChildInvalidated
13219
that takes a UIElement* instead of a region. The implementation
13220
just invalidates the entire bounds of the child in the parent.
13222
* collection.h, collection.cpp: we weren't breaking the
13223
item->parent link when removing visuals from a VisualCollection.
13224
Add VisualRemoved, which invalidates the child's region (and stop
13225
using child->Invalidate, since that won't work once the link to
13226
the parent is broken) and breaks the parent link. Call
13227
VisualRemoved from everywhere we remove/replace a visual in our
13228
collection. Also, rename VisualUpdated to VisualAdded, since
13229
that's more indicative of why the method is being called.
13231
2007-11-08 Jeffrey Stedfast <fejj@novell.com>
13233
* runtime.cpp (Attach): Emit the Resize event.
13234
(drawing_area_size_allocate): Emit the Resize event.
13236
2007-11-07 Chris Toshok <toshok@ximian.com>
13238
* clock.cpp (Clock::Begin): guard against division by zero.
13240
2007-11-07 Chris Toshok <toshok@ximian.com>
13242
* runtime.cpp, runtime.h: make GetWidth()/GetHeight() return the
13243
width the canvas tells the surface to be (if it does). this fixes
13244
issues uncovered by larry's improved bounds checking code. Also,
13245
remove the instance fields for screen_height/width. they're only
13246
used in one place, so make them local to that function.
13248
2007-11-07 Chris Toshok <toshok@ximian.com>
13250
* brush.h, brush.cpp: add some c++ setters/getters to make some
13251
code a little smaller.
13253
2007-11-06 Larry Ewing <lewing@novell.com>
13255
* src/frameworkelement.cpp: Force a full invalidate if the width
13256
or height property because panels include their children in the
13257
bounds compution and will pass the dirty check.
13259
* media.cpp: Implement the Region based rendering for MediaElement
13262
* panel.cpp: Unconditionally pass the region to the Children.
13264
* panel.cpp: when rendering children treat panels and other
13265
objects differently. For containers pass the clipped region
13266
directly, for elements subdivide the region and paint each block.
13267
Renable FindStartingElement with a slightly less expensive
13270
* rect.cpp: don't collapse complicated regions the drawing code is
13273
2007-11-06 Jeffrey Stedfast <fejj@novell.com>
13275
* font.cpp (TextFont): Fixed to not exit() even when no font could
13276
be loaded from FreeType.
13278
2007-11-06 Chris Toshok <toshok@ximian.com>
13280
* dependencyobject.cpp (GetObjectType): make this g_critical, and
13281
also print out a stack trace if STACK_DEBUG is enabled.
13283
* dependencyobject.h: stop Emitting the DestroyedEvent from the
13284
dtor. instead do it from unref before we delete the object.
13286
2007-11-05 Chris Toshok <toshok@ximian.com>
13288
* rect.h (ToGdkRectangle): quiet countless warnings.
13290
2007-11-05 Larry Ewing <lewing@novell.com>
13292
Merge most of dirty region branch. This makes the dirty logic and
13293
rendering code use the new region class to track more complicated
13294
shapes than bounding boxes when processing changed areas.
13296
* media.cpp: switch back to indirect rendering for drawing media
13297
elements until a solution to the boundry clipping can be found.
13299
* panel.cpp: disable FindStartingElement (the buggy) until a more
13300
optimal method can be found.
13302
* dirty.cpp: Use dirty regions. Process DirtyOpacity first (still
13303
needs to be fixed to order dirty children.
13305
2007-11-03 Chris Toshok <toshok@ximian.com>
13307
* clock.cpp (ClockGroup::Tick): instead of calling Clock::Stop,
13308
call SkipToFill if we have no active child clocks.
13309
(ClockGroup::Stop): simplify this.
13310
(ClockGroup::Seek): make this look a little more like ::Stop.
13312
2007-11-03 Chris Toshok <toshok@ximian.com>
13314
* xaml.cpp (repeat_behavior_from_str): add support for the
13315
"ff.ffx" format for repeat behaviors.
13317
* clock.cpp, clock.h: the first sizeable amount of work done in a
13318
while to correct the multitude of tiny bugs in clock handling.
13319
this gets AnimationMatrix.xaml maybe 40% working. Clean up and
13320
comment Clock::Tick a lot, and remove a bunch of the old
13321
CLOCK_DEBUG spew which was making the code that much more
13322
difficult to look at.
13324
2007-11-02 Jeffrey Stedfast <fejj@novell.com>
13326
* font.cpp (TextFontDescription::SetScale): Removed, this hack
13327
wasn't working as well as I'd hoped.
13328
(TextFontDescription::GetScale): Same.
13329
(TextFontDescription::CreatePattern): If the requested font size
13330
is < 41.0 (seems to be the magic number where scaling loses impact
13331
on metrics), use FontSize=41.0 and do proper scaling to get the
13332
actual size we want. My worry was that asking for small font sizes
13333
(smaller than 16.0?) would look ugly with this hack, but that is
13334
surprisingly not true. By always requesting a font size that will
13335
yield the generic font metrics (e.g. not some hacked font size),
13336
we will always be able to wrap identically no matter what FontSize
13337
is requested (so long as the width gets scaled appropriately).
13339
* text.cpp (TextBlock::ComputeTransform): Removed.
13341
2007-11-02 Jeffrey Stedfast <fejj@novell.com>
13343
* font.cpp (RenderLine): Render glyphs with index 0 too, so that
13344
we render an empty box for glyphs not in the font (just like
13347
* text.cpp (ComputeTransform): Fixed to use the correct matrix for
13348
getting the scale values.
13350
2007-11-01 Jackson Harper <jackson@ximian.com>
13358
* panel.h: Add ContentProperty 'attributes'.
13360
* type.cpp|h: Add content property information to types. This
13361
will be used by the parser and will allow the parser to drop it's
13362
special type system.
13364
2007-11-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
13366
* animation.cpp: AnimationStorage: unregister from registered events on
13369
2007-11-01 Jeffrey Stedfast <fejj@novell.com>
13371
* text.cpp (TextBlock::SetValue): Oops - if we are setting an
13372
empty string on the Text property, then we need to clear out
13373
whatever was there before (if anything).
13375
2007-10-31 Jeffrey Stedfast <fejj@novell.com>
13377
Fixes for handling lwsp cdata between <Run> elements.
13379
* xaml.cpp (flush_char_data): Reworked a bit. Now takes a 'start'
13380
arg suggesting that we are being called in response to a new
13381
element starting vs an element ending.
13382
(start_element_handler): Pass true as the start arg to
13384
(end_element_handler): Pass false as the start arg to
13387
* text.cpp (SetValue): Only add a run if the string is non-empty.
13389
2007-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
13391
* dependencyobject.cpp: Guard against calling NULL.
13393
2007-10-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
13395
* media.cpp: Redo ASFParser::Malloc to avoid warnings, and make sure the
13396
return value is always checked.
13398
2007-10-31 Chris Toshok <toshok@ximian.com>
13400
* trigger.cpp (EventTrigger::SetTarget,
13401
EventTrigger::RemoveTarget): use UIElement::LoadedEvent instead of
13404
2007-10-31 Jackson Harper <jackson@ximian.com>
13406
* dependencyobject.h|cpp: Give DependencyProperties the ability to
13409
* animation.cpp: Signature updates
13411
2007-10-30 Jackson Harper <jackson@ximian.com>
13413
* xaml.h: Add the error args to the loader.
13414
* xaml.cpp: Make most of our parsing errors match Silverlight.
13416
2007-10-30 Jeffrey Stedfast <fejj@novell.com>
13418
* font.cpp (Path): Check the path data != NULL before we make any
13419
cairo calls, no sense wasting cycles if we will no-op in the end.
13421
2007-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
13423
* media.cpp, media.h: Fix signedness mismatch warning.
13425
2007-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
13427
* mplayer.h: Added asf_player field.
13429
2007-10-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
13431
* Makefile.am: Add files in asf/.
13432
* media.cpp, media.h: Read ASF markers from the file. Save the position when
13433
advancing frames. Use the difference between the last position and the
13434
current position to determine if any MarkerReached events are supposed
13436
* mplayer.cpp: Add some error checking/reporting when opening streams.
13437
Register our own demuxer with ffmpeg (defining MOON_DEMUXER is required
13438
to actually use it).
13440
2007-10-26 Jeffrey Stedfast <fejj@novell.com>
13442
* font.cpp (RenderLine): Split out from TextLayout::Render() and
13443
made to reset the brush at each segment to match Silverlight's
13446
2007-10-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
13448
* debug.cpp: Added print_gdb_trace with an explaining comment.
13449
* debug.h: Make print_stack_trace compile (to nothing) when STACK_DEBUG
13452
2007-10-25 Jeffrey Stedfast <fejj@novell.com>
13454
* font.cpp (TextLayout::Render): Set y1 before creating/appending
13455
the path instead of in the segment loop.
13456
(TextLayout::Render): Make underline pos relative to y1 (aka the
13457
baseline) that we calculated above. Makes this easier to
13460
2007-10-25 Jeffrey Stedfast <fejj@novell.com>
13462
* font.cpp (TextLayout::Layout): Always calculate segment->width
13464
(TextLayout::Render): Not here.
13466
* text.cpp (Glyphs::GetTransformOrigin): Implemented.
13468
2007-10-25 Jackson Harper <jackson@ximian.com>
13471
* runtime.h|cpp: Add the Error event to the surface. Raising this
13472
event will cause the plugins onError handler to be invoked, the
13473
default onError handler notifies the user of the error with a
13476
2007-10-25 Sebastien Pouliot <sebastien@ximian.com>
13478
* stylus.cpp|h: Keep the semi-working code as a fast path to
13479
render strokes (if no outline color is used and when width ==
13480
height). Added a hack to support OutlineColor.
13482
2007-10-25 Jeffrey Stedfast <fejj@novell.com>
13484
* brush.cpp (Brush::SetupBrush): Now takes width and height
13485
arguments. Updated all brushes.
13487
* text.cpp (Glyphs::Render): We want to check this->width and
13488
this->height, not the width/height arguments.
13490
* brush.cpp (ImageBrush::SetupBrush): If the image isn't loaded
13491
yet (surface = NULL), return.
13492
(LinearGradientBrush::SetupBrush): Get rid of some of the valgrind
13495
2007-10-24 Jeffrey Stedfast <fejj@novell.com>
13497
* text.cpp (Glyphs::GetSizeForBrush): Implemented.
13499
* font.cpp (TextLayout::Layout): Slight fix for Wrap mode.
13501
2007-10-24 Jackson Harper <jackson@ximian.com>
13503
* type.cpp.in/h.in: Add some c-style functions for creating
13506
2007-10-24 Jackson Harper <jackson@ximian.com>
13509
* type.cpp.in/h.in: Add a create instance call to types. This
13510
will allow the parser to use our Type object instead of creating
13513
2007-10-24 Chris Toshok <toshok@ximian.com>
13515
* clock.cpp (ManualTimeSource::SetCurrentTime): pass FALSE to
13516
g_main_context_iteration so we don't block if there isn't anything
13517
to do. also, emit 3 TickEvents to make sure the tick is
13518
propagated down into the animations.
13520
2007-10-24 Rolf Bjarne Kvinge <RKvinge@novell.com>
13522
* xaml.cpp: No need to check if the created object is an UIElement before
13523
calling SetSurface anymore.
13524
* visual.h: Update SetSurface to virtual.
13525
* brush.cpp, brush.h: Override SetSurface so that we can forward the call to
13527
* dependencyobject.h: Add virtual Set/GetSurface to DependencyObject (here
13528
the methods do nothing, the surface is still stored in Visual, but this
13529
allows classes that do not inherit from Visual to correctly set the
13530
surface on their members which do inherit from Visual).
13532
2007-10-24 Jeffrey Stedfast <fejj@novell.com>
13534
* uri.cpp (Uri::Parse): Treat uri's w/o a protocol as file uri's.
13536
2007-10-23 Jeffrey Stedfast <fejj@novell.com>
13538
* text.cpp (TextBlock::ComputeTransform): If the scale has
13539
changed, set dirty = true so that we recalculate the layout.
13541
* mplayer.cpp (audio_play): Instead of using the SET_VOLUME()
13542
macro, just do it w/o so that we hush the compiler warning.
13544
2007-10-23 Chris Toshok <toshok@ximian.com>
13546
* clock.cpp (Clock::GetBeginTime): stop treating the BeginTime of
13547
a clock in absolute terms. instead, offset it from the current
13548
time of the parent clock (or time manager).
13549
(Clock::Begin): clamp progress to 1.0
13550
(SMOOTHING_ALPHA): switch this to 0.30 to see if that helps things
13551
by making it less sensitive to immediate changes.
13553
2007-10-23 Chris Toshok <toshok@ximian.com>
13555
* mplayer.cpp (Open): if RUNTIME_INIT_AUDIO_DISABLE, don't use
13556
audio (so we sync to the clock).
13558
* runtime.h: add RUNTIME_INIT_AUDIO_DISABLE.
13560
2007-10-23 Chris Toshok <toshok@ximian.com>
13562
* clock.cpp (ManualTimeSource::SetCurrentTime): call
13563
g_main_context_iteration as a stopgap to make video elements show
13565
(TimeManager::TimeManager): remove spew.
13566
(TimeManager::Tick): re-enable the clock throttling. oops.
13568
2007-10-23 Larry Ewing <lewing@novell.com>
13570
* src/runtime.cpp: clear the background in more cases.
13572
2007-10-23 Larry Ewing <lewing@novell.com>
13574
* src/runtime.cpp: make the eventbox windowless and remove the
13575
stale event code. Let gtk do the clearing.
13577
2007-10-23 Jeffrey Stedfast <fejj@novell.com>
13579
* mplayer.cpp (MediaPlayer::Open): Re-enable audio :)
13580
(MediaPlayer::LoadVideoFrame): Keep decoding video until we find
13581
the correct frame rather than just rendering the first frame we
13584
2007-10-23 Chris Toshok <toshok@ximian.com>
13586
* mplayer.cpp: replace all occurences of av_gettime with
13587
TimeManager::Instance()->GetCurrentTimeUsec().
13589
* runtime.cpp (overrides): add the "timesource=manual" OVERRIDE
13591
(render_cb): re-enable the fps on the console. oops.
13593
* runtime.h (RuntimeInitFlags): add
13594
RUNTIME_INIT_TIMESOURCE_MANUAL.
13596
* type.h.in, type.cpp.in: remove BASE (should have happened on my
13597
last commit), and add in the TIMESOURCE's, and TIMESOURCE's "Tick"
13600
* type.h, type.cpp: sync to the .in files.
13602
* clock.h, clock.cpp: add the idea of a TimeSource to the
13603
TimeManager. Two are written - SystemTimeSource, which uses the
13604
gtk timeout, and ManualTimeSource, which allows code to set what
13605
the global time should be. Also, add GetCurrentTimeUsec() for use
13606
by mplayer, so we can switch it away from av_gettime and make it
13607
possible for video to sync to the ManualTimeSource.
13609
2007-10-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
13611
* runtime.cpp: Base -> EventObject changes when OBJECT_TRACKING is defined.
13613
2007-10-23 Larry Ewing <lewing@novell.com>
13615
* runtime.cpp: make sure we unref the surface.
13617
2007-10-23 Larry Ewing <lewing@novell.com>
13619
* runtime.cpp: avoid making gdk calls that pull in the platform
13622
2007-10-22 Jeffrey Stedfast <fejj@novell.com>
13624
* text.cpp: Don't allow Pango rendering if disabled at
13626
(TextBlock::ComputeTransform): Moved the scale logic here from
13627
OnPropertyChanged() so that we catch all transform changes.
13629
* uielement.h: Made ComputeTransform() virtual.
13631
2007-10-22 Chris Toshok <toshok@ximian.com>
13633
* clock.cpp (TimeManager::Shutdown): don't cast to Base anymore..
13634
we can just cast to Clock here.
13636
* dependencyobject.h, dependencyobject.cpp: remove the Base class,
13637
and make roll EventObject and Base into one class (still called
13640
2007-10-20 Sebastien Pouliot <sebastien@ximian.com>
13642
* runtime.h: Add gtk.h (since it depended on stylus.h to get it)
13643
* stylus.cpp|h: Add some missing functions. Rendering changes
13644
(not active, work in progress).
13646
2007-10-18 Chris Toshok <toshok@ximian.com>
13648
* dependencyobject.h: fix comment.
13650
* animation.h, animation.cpp: use the
13651
Clock::CurrentStateInvalidated event to reset the property value
13652
to baseValue instead of overriding the Clock::Stop method. This
13653
fixes clocks with FillBehavior="Stop" instead of storyboard with
13654
FillBehavior="Fill".
13656
* clock.cpp (Clock::Tick): remove a stupid block of code that was
13657
causing clocks which were Filling to spontaneously end up in their
13658
Active state again.
13660
2007-10-18 Sebastien Pouliot <sebastien@ximian.com>
13662
* geometry.cpp: New code to handle arc segments. No known issues
13663
(except the handling of near zero values which doesn't seems to
13665
* libmoon.h, Makefile.am: Remove reference to rsvg.h
13666
* rsvg.cpp|h: Remove from SVN.
13668
2007-10-17 Andrew Jorgensen <ajorgensen@novell.com>
13670
* cairo-embed.h, pixman-embed.h: Added symbol renaming headers
13671
based on the ones from libgdiplus.
13673
2007-10-17 Chris Toshok <toshok@ximian.com>
13675
* xaml.cpp (XNamespace::SetAttribute): make sure to add the newly
13676
created managed dob to the created_elements list so it gets
13678
(XamlLoader::XamlLoader): use ->ref() instead of base_ref().
13679
(XamlLoader::~XamlLoader): use ->unref() instead of base_unref().
13681
2007-10-17 Chris Toshok <toshok@ximian.com>
13683
* Makefile.am (demo_LDADD): add MOON_PROG_LIBS.
13684
(sizes_LDADD): same.
13686
2007-10-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
13688
* dependencyobject.h: Add a GET_OBJ_ID macro that resolves to -1 if
13689
OBJECT_TRACKING isn't defined.
13690
* runtime.h: Enable the contextual downloader warning again.
13691
* dependencyobject.cpp: Fix build when DEBUG is defined.
13693
2007-10-16 Jeffrey Stedfast <fejj@gnome.org>
13695
* text.cpp (OnPropertyChanged): When intercepting non-TextBlock
13696
properties changing value, don't fall thru to the rest of the
13697
checks (as then we'd re-emit it to sublisteners which isn't what
13698
we want I don't think). Also, don't change the font scale unless
13699
it's >= 1.0 (e.g. don't down-scale). Fixes an infinite loop.
13701
2007-10-16 Jeffrey Stedfast <fejj@novell.com>
13703
* text.cpp (OnPropertyChanged): Listen for RenderTransformProperty
13704
changes and apply the y-scale to the font so that we can more
13705
accurately path the font glyphs at the scale we intend to render
13708
* font.cpp (TextFont): Cache the scale here.
13709
(Kerning): Apply the scale.
13710
(Descender): Here too.
13711
(Ascender): And here.
13713
(GetGlyphInfo): Create and apply the scale/invert matrix. Also
13714
scale the glyph metrics.
13715
(UnderlinePosition): Apply the scale.
13716
(UnderlineThickness): Same here.
13717
(TextFontDescription): Added a scale, default to 1.0
13718
(CreatePattern): Set the scale on the pattern.
13719
(UnsetFields): When unsetting values, restore them to their
13721
(Merge): Merge the scale.
13722
(GetScale): New method.
13723
(SetScale): New method.
13725
2007-10-16 Chris Toshok <toshok@ximian.com>
13727
* dependencyobject.cpp (detach_depobj_values): call
13728
obj->SetParent(NULL) here as well, so we don't reference a
13731
* runtime.cpp (Surface::Surface): use Surface::timeline instead of
13733
(Surface::~Surface): make sure to remove the surface's clock_group
13734
from the time manager. Also, unref the timeline we create in the
13736
(runtime_shutdown): reimplement the oldest 10 alive object
13737
printing stuff in the face of using a hashtable.
13739
* runtime.h: add Surface::timeline, so we can clean it up in
13742
* dependencyobject.h (Base::) use a hash table to track alive
13743
objects instead of a list. this speeds up things immensely.
13745
* clock.cpp (ClockGroup::~ClockGroup): call SetParent(NULL) on our
13746
children so any further GetParent() calls won't return a destroyed
13749
* animation.cpp (Storyboard::~Storyboard): guard against a crash
13750
when a parent clock is freed before the child clock.
13752
* text.cpp (TextBlock::TextBlock): plug a couple memory leaks.
13754
2007-10-15 Chris Toshok <toshok@ximian.com>
13756
* animation.[h,cpp]: remove the strong reference from
13757
AnimationStorage to its target object, and instead use the
13758
EventObject::DestroyEvent to implement a weak reference. See the
13759
TODO for a blurb about generalizing this.
13761
* typegen.cs (GenerateTypeCpp): remove the special case code that
13762
makes INVALID the parent of DEPENDENCY_OBJECT - we need it to have
13763
EVENTOBJECT as the parent for the DestroyedEvent to line up
13764
properly in the event tables.
13766
* type.cpp.in, type.cpp (types_init_register_events): register the
13769
* dependencyobject.[h,cpp]: add EventObject::DestroyedEvent,
13770
emitted just before we clean up the EventObject's event list.
13772
2007-10-15 Jeffrey Stedfast <fejj@novell.com>
13774
* text.cpp (Layout): I think I finally figured out the scaling to
13775
apply to the units provided in the Indices property and also
13776
discovered that the Advance is not applied at the uOffset, it is
13777
applied independently of the uOffset.
13778
(Render): Same fixes as in Layout().
13780
2007-10-13 Chris Toshok <toshok@ximian.com>
13782
* animation.cpp (balf): fix bug 325175 by not taking the square
13783
root of a negative number (fixes the flashing in the credits for
13784
Monotone.) Also clean up this code so that we're not using
13785
globals to communicate parameters (through Simpson) between balf
13786
and BezierArcLength, and lower the tolerance (I doubt we need
13787
*that* much precision).
13789
2007-10-12 Chris Toshok <toshok@ximian.com>
13791
* control.[h,cpp], brush.[h,cpp], text.[h,cpp], geometry.[h,cpp],
13792
dependencyobject.[h,cpp], shape.[h,cpp], animation.[h,cpp],
13793
transform.[h,cpp]: add an extra parameter to OnSubPropertyChanged,
13794
which gives the actual object whose property changed. Also, in a
13795
few instances fix the NotifyAttachersOnPropertyChanged call that
13796
some classes used to not use the subprop, but the prop. The
13797
subprop doesn't refer to "this" in those instances, but to @obj.
13798
@prop refers to "this".
13800
* collection.[h,cpp]: use the above change to correctly support
13801
the DependencyObject parameter of OnCollectionChanged (when the
13802
change type is ItemChanged).
13804
* uielement.[h,cpp], panel.[h,cpp]: use the above two changes to
13805
move the ZIndex property support from UIElement to Panel, which
13806
makes more logical sense (and is likely the reason MS removed the
13807
property from UIElement in 1.1) -- ZIndex is about what happens to
13808
this UIElement in relation to its siblings.
13810
2007-10-12 Sebastien Pouliot <sebastien@ximian.com>
13812
* shape.cpp: Only set miter limit if line join is set to miter.
13814
2007-10-12 Chris Toshok <toshok@ximian.com>
13816
* collection.cpp: move the panel logic away from VisualCollection.
13817
It belongs in Panel::OnCollectionChanged.
13819
* panel.cpp: flesh out Panel::OnCollectionChanged, making it do
13820
everything the VisualCollection code used to do on its behalf.
13822
* uielement.h, uielement.cpp: introduce a new field for use with
13823
the dirty code - force_redraw_of_new_bounds. Basically, we set
13824
the field according to the parameter passed to UpdateBounds.
13826
* dirty.cpp (UpdateBounds): force an invalidate if
13827
el->force_redraw_of_new_bounds is set.
13829
2007-10-12 Chris Toshok <toshok@ximian.com>
13831
* clock.h, clock.cpp: add some Timeout functions (AddTimeout,
13832
RemoveTimeout) which wrap the glib timeout calls we were making.
13833
This lets us keep track of active timeout ids and remove them all
13834
when the TimeManager shuts down. So, if we leak MediaElements
13835
(which seems to be happening in TopBanana), we don't crash.
13837
* mplayer.cpp: use the new TimeManager timeout call instead of the
13838
glib mainloop directly.
13842
2007-10-12 Jeffrey Stedfast <fejj@novell.com>
13844
* downloader.cpp (downloader_init): Default the DownloadProgress
13847
2007-10-12 Jackson Harper <jackson@ximian.com>
13849
* downloader.h: Add an access to the downloader state. I need
13850
this in the plugin.
13852
2007-10-12 Jb Evain <jbevain@novell.com>
13854
* brush.cpp|h: add image_brush_set_source.
13856
2007-10-11 Jeffrey Stedfast <fejj@novell.com>
13858
* mplayer.cpp (convert_to_rgb): Worked around an swscaler crash
13859
where it doesn't handle J-Type picture frames.
13861
2007-10-11 Sebastien Pouliot <sebastien@ximian.com>
13863
* panel.cpp|h: Split Render into Render and RenderChildren, so
13864
the later can be overriden in InkPresenter.
13865
* stylus.cpp|h: A quick (see FIXME) implementation to render
13866
ink found in some xaml files.
13868
2007-10-11 Jeffrey Stedfast <fejj@novell.com>
13870
* mplayer.cpp: Updated to use the new Queue class.
13871
(AdvanceFrame): Accessing the queue directly as a linked list
13872
allows us to simplify the loop a little so that we don't have to
13873
keep a reference to the previous packet's decoded frame.
13875
* list.cpp: Added a new Queue class which will replace GAsyncQueue
13878
2007-10-11 Jeffrey Stedfast <fejj@novell.com>
13880
* mplayer.cpp: Added ctors/dtors for Audio and Video structs.
13881
(AdvanceFrame): Keep a reference to the previous frame in case we
13882
reach the end of the queue.
13884
2007-10-11 Jb Evain <jbevain@novell.com>
13886
* dependencyobject.cpp|h: add dependency_object_set_name.
13888
* media.cpp|h: add media_attribute_get_value and
13889
media_attribute_set_value
13891
* playlist.cpp|h: populate MediaAttributeCollection when
13892
a playlist entry is opened.
13894
2007-10-11 Larry Ewing <lewing@novell.com>
13896
* dirty.cpp, uielement.cpp|h: Use gdk_regions to tract dirty
13897
areas... have more fun in general.
13899
* src/rect.h: replace Floor function with RoundOut function.
13900
* panel.cpp, dirty.cpp: use RoundOut where appropriate. Fixes
13901
clipping issue in sprawl.
13903
2007-10-11 Sebastien Pouliot <sebastien@ximian.com>
13905
* xaml.cpp: Let InkPresenter handle childs like a Canvas (from
13908
2007-10-11 Jb Evain <jbevain@novell.com>
13910
* playlist.cpp: replace C++ casts to plain casts.
13912
2007-10-11 Jb Evain <jbevain@novell.com>
13914
* collection.cpp: replace dynamic_casts with plain casts
13915
as per Miguel suggestion.
13917
2007-10-11 Jb Evain <jbevain@novell.com>
13919
* collection.cpp|h: add, implement and expose the
13920
MediaAttributeCollection::GetItemByName method.
13922
2007-10-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
13924
* downloader.cpp, downloader.h: Fix some const char/char mismatch warnings.
13926
2007-10-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
13928
* text.h, animation.h, text.cpp: Fix some const char/char mismatch warnings.
13929
* dependencyobject.h, dependencyobject.cpp, animation.cpp: Remove some const
13930
char/char mismatch warnings.
13931
* visual.cpp: Fix no newline warning.
13932
* runtime.cpp: Fix a initialization warning.
13933
* demo.cpp: Remove unused variable.
13935
2007-10-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
13937
* dependencyobject.cpp: base_unref_delayed: do nothing if base is NULL,
13938
matches base_unref behaviour.
13939
* dependencyobject.h: Use g_atomic_int* to make ref counting atomic
13942
2007-10-10 Chris Toshok <toshok@ximian.com>
13944
* runtime.cpp (runtime_shutdown): explicitly drain all remaining
13945
pending managed unrefs.
13947
* dependencyobject.cpp: remove the Base::ref/unref implementations
13948
from here. Add the threadsafe base_unref_delayed code, as well as
13949
code to manage a tick call to free up the instances on the next
13950
clock tick. Also provide an external api (drain_unrefs -- bad
13951
name, fix me plz k thx) so that runtime.cpp can explicitly unref
13952
everything when we shutdown (if they haven't already been dealt
13955
* dependencyobject.h: clean up the OBJECT_TRACKING ifdefs so that
13956
we don't have 2 implementations of all these methods. Instead,
13957
just ifdef the relevant portions of the methods, and keep them in
13958
dependencyobject.h. Also, add prototypes for drain_unrefs and
13959
base_unref_delayed, which is called from managed code.
13961
* collection.h, collection.cpp: make Clear take an optional
13962
"emit_event" argument (default = true.) Call Clear instead of
13963
list->Clear(true) in our dtor so we clean up the namespaces and
13966
* debug.cpp: use an extern "C" block. looks nicer.
13968
2007-10-10 Sebastien Pouliot <sebastien@ximian.com>
13970
* brush.cpp: Handle GradientStop with negative offset like
13971
Silverlight (seems to) do.
13973
2007-10-10 Chris Toshok <toshok@ximian.com>
13975
* panel.cpp (Panel::~Panel): no need to clear our Children
13976
collection. the normal dtor stuff will do that for us.
13978
2007-10-10 Larry Ewing <lewing@novell.com>
13980
* media.cpp: Fill with the element extents don't just paint the
13981
surface because if the stretch is specified we may end up painting
13982
outside the proper area.
13984
2007-10-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
13986
* media.cpp: When updating the MediaElement's progress, get the Downloader's
13987
DownloadProgressProperty.
13989
2007-10-10 Rolf Bjarne Kvinge <RKvinge@novell.com>
13991
* visual.cpp, visual.h: Added visual_set_surface, and guard against
13992
overwriting a set surface with null.
13994
2007-10-10 Jackson Harper <jackson@ximian.com>
13996
* collection.cpp: Set the surface when adding a visual element.
13998
2007-10-10 Jackson Harper <jackson@ximian.com>
14000
* shape.cpp: We need to do something when line properties are
14001
changed. Fixes test-animation-line.xaml
14003
2007-10-10 Jackson Harper <jackson@ximian.com>
14005
* xaml.cpp: Don't allow the same property to be set twice.
14007
2007-10-09 Jackson Harper <jackson@ximian.com>
14009
* xaml.cpp: When we create custom elements we also need to set the
14010
surface on them and mark them for cleanup.
14012
2007-10-09 Jackson Harper <jackson@ximian.com>
14014
* xaml.cpp: When we are creating objects from a string, set the
14015
encoding to utf8 so that expat doesn't try to determine the
14016
encoding from the ?xml declaration (which will be incorrect
14017
because the string is in utf8).
14019
2007-10-09 Chris Toshok <toshok@ximian.com>
14021
* clock.cpp (ClockGroup::Stop): If the clock group has children we
14022
depend on stopping them first. But if the clock group is without
14023
children, chain up to Clock::Stop here.
14025
2007-10-09 Jb Evain <jbevain@novell.com>
14027
* uielement.h: define new methods RenderClipPath and
14028
IntersectBoundsWithClipPath.
14029
* uielement.cpp: implement them.
14030
* panel.cpp, shape.cpp, media.cpp: use them.
14032
2007-10-09 Chris Toshok <toshok@ximian.com>
14034
* clock.cpp, trigger.cpp, uielement.cpp, geometry.cpp, shape.cpp,
14035
frameworkelement.cpp, transform.cpp, media.cpp, animation.cpp,
14036
brush.cpp, text.cpp: s/Attachee/Attacher.
14038
* dependencyobject.h: couple of Detach changes: 1) Add a DetachAll
14039
call that is used at dtor time to call Detach on all
14040
DependencyObject-subclassed Values, and 2) make NULL available in
14041
detach as a wildcard - passing NULL for the property detaches all
14042
properties that the current object might be watching on.
14044
Also, correct a longstanding problem in terminology/api. if A's
14045
code calls B->Attach (..., this), then A is the Attacher, not the
14046
Attachee. Basically s/Attachee/Attacher in all places,
14049
* dependencyobject.cpp: same changes as above. Also, change the
14050
current_values hash table to key off the DependencyProperty, not
14051
off the DependencyProperty name. This allows us to use a direct
14052
hash, as opposed to a string hash.
14054
* collection.cpp (dtor): make sure sure to detach from all the
14055
list elements before we clear the list.
14057
2007-10-09 Jeffrey Stedfast <fejj@novell.com>
14059
* font.cpp (Layout): Only break words on ASCII lwsp, we should not
14060
break on nbsp's for example.
14062
2007-10-09 Jackson Harper <jackson@ximian.com>
14064
* xaml.cpp: Make sure the Surface gets set on custom created
14065
UIElements. Also add them to the created list, so they get freed.
14067
2007-10-09 Jackson Harper <jackson@ximian.com>
14069
* control.cpp: Since controls are UIElements we need to make sure
14070
their surface is set when we create them from XAML.
14072
2007-10-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
14074
* dependencyobject.cpp: resolve_property_path: Add a nullcheck.
14076
2007-10-09 Rolf Bjarne Kvinge <RKvinge@novell.com>
14078
* debug.cpp, debug.h: Conditionally compile support for managed stack
14081
* runtime.cpp: add more debug code.
14083
2007-10-08 Jeffrey Stedfast <fejj@novell.com>
14085
* text.cpp (OnPropertyChanged): We may need to relayout even if
14086
the wrapping is set to NoWrap.
14088
2007-10-08 Zoltan Varga <vargaz@gmail.com>
14090
* text.cpp (OnPropertyChanged): Do a relayout if the Width property
14091
changes and text wrapping is enabled.
14093
2007-10-08 Jeffrey Stedfast <fejj@novell.com>
14095
* mplayer.cpp (Open): If the media has video, load the first video
14098
(AdvanceFrame): Fixed to "end" properly.
14100
* media.cpp: Don't manually call DisplayFrame() anymore.
14102
2007-10-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
14104
* xaml.cpp: Set the surface of newly created objects (where applicable).
14105
* canvas.h, uielement.h, canvas.cpp: Move the surface field to Visual.
14106
* playlist.cpp, media.cpp, text.cpp: Create the downloader using Surface'
14107
brand new CreateDownloader method.
14108
* visual.h: Added a surface field, complete with setters and getters.
14109
* downloader.cpp, downloader.h: Add a context field.
14110
* runtime.h: Add a downloader_context field, and CreateDownloader methods.
14111
* runtime.cpp: Add a downloader_context field.
14113
2007-10-09 Larry Ewing <lewing@novell.com>
14115
* media.cpp: add clipping to shape::DoDraw and to the bounds
14118
2007-10-08 Larry Ewing <lewing@novell.com>
14121
* panel.cpp: intersect the bounds with the clip path to
14122
optimize the invalidated region.
14124
* shape.cpp: return 0.0 when shape_get_stroke_thickness is called
14127
2007-10-08 Larry Ewing <lewing@novell.com>
14130
* panel.cpp: intersect the bounds with the clip path to
14131
optimize the invalidated region.
14133
* shape.cpp: return 0.0 when shape_get_stroke_thickness is called
14136
2007-10-08 Larry Ewing <lewing@novell.com>
14139
* panel.cpp: intersect the bounds with the clip path to
14140
optimize the invalidated region.
14142
* shape.cpp: return 0.0 when shape_get_stroke_thickness is called
14145
2007-10-08 Larry Ewing <lewing@novell.com>
14148
* panel.cpp: intersect the bounds with the clip path to
14149
optimize the invalidated region.
14151
* shape.cpp: return 0.0 when shape_get_stroke_thickness is called
14154
2007-10-08 Larry Ewing <lewing@novell.com>
14157
* panel.cpp: intersect the bounds with the clip path to
14158
optimize the invalidated region.
14160
* shape.cpp: return 0.0 when shape_get_stroke_thickness is called
14163
2007-10-08 Larry Ewing <lewing@novell.com>
14165
* runtime.cpp: change previous logic to drop the alpha
14166
completely here until more testing can be done.
14168
2007-10-08 Larry Ewing <lewing@novell.com>
14170
* runtime.cpp: draw the background color blended over white.
14172
2007-10-08 Larry Ewing <lewing@novell.com>
14174
* media.cpp: render clip paths on media elements.
14176
2007-10-07 Larry Ewing <lewing@novell.com>
14181
* array.cpp: use g_utf8_next_char in some places to start making
14182
the parsers more utf8 safe. Make rect/point_from_str more robust
14183
against separator characters
14185
2007-10-07 Chris Toshok <toshok@ximian.com>
14187
* clock.cpp (Clock::Tick): make sure we're reversed before
14188
switching to Fill if the clock is at 0 (and make sure we're not
14189
reversed before switching to Fill on the other end of the
14190
timespan). Some animations were skipping directly to fill without
14192
(ClockGroup::Tick): don't Tick a child clock if it's about to
14193
Stop. the new tick might cause it to fill.. this needs work
14196
2007-10-06 Jb Evain <jbevain@novell.com>
14198
* media.cpp (Image::Render): Deal with clipping.
14200
2007-10-05 Chris Toshok <toshok@ximian.com>
14202
* animation.cpp (KeyFrameComparer): fix airlines (and probably a
14203
host of other keyframe usage besides). The problem was that this
14204
function was treating its args as keyframe*'s, when in actuality
14205
they were keyframe**'s. that explains the intermittent nature of
14206
the bug, as well as the faulty sorting I was experiencing earlier.
14208
* clock.cpp (TimeManager::Tick): reinstate the throttling, yay.
14210
2007-10-05 Chris Toshok <toshok@ximian.com>
14212
* clock.cpp (TimeManager::Tick): I have no idea how this is
14213
possible, but the throttle code is *completely* screwing up the
14214
Airlines demo animations.
14216
2007-10-05 Jackson Harper <jackson@ximian.com>
14218
* control.cpp: need to pass this down. Fixes dragging controls in
14221
2007-10-05 Jeffrey Stedfast <fejj@gnome.org>
14223
* media.cpp (DownloaderComplete): Call mplayer->DisplayFrame() in
14226
(SetValue): And here too after a Seek() (altho it won't work if
14227
the media is paused).
14229
* mplayer.cpp (AdvanceFrame): Introduced a new bool variable,
14230
update, which is true if any avcodec_decode_video() sets redraw to
14232
(DisplayFrame): New method largely based on JB's work to load the
14233
current video frame into the mplayer surface.
14235
2007-10-05 Jb Evain <jbevain@novell.com>
14237
* media.cpp|h, playlist.cpp|h: Don't open the first entry
14238
when a playlist entry has been stopped before switching to
14241
2007-10-04 Chris Toshok <toshok@ximian.com>
14243
* clock.cpp: fix a couple of compilation warnings, and tighten up
14244
the list_clocks output.
14246
2007-10-04 Jeffrey Stedfast <fejj@gnome.org>
14248
* text.cpp (SetIndices): Use g_ascii_strtod() instead of strtod()
14249
since it is not locale dependant.
14251
* rect.cpp (rect_from_str): Same.
14253
* point.cpp (point_from_str): Same.
14255
* xaml.cpp (get_point): Fixed to update *in properly on success.
14257
2007-10-05 Jb Evain <jbevain@novell.com>
14259
* media.cpp: correctly advertise 'Opening' state of MediaElement.
14261
2007-10-04 Jeffrey Stedfast <fejj@novell.com>
14263
* xaml.cpp: (more_points_available): Simplified by looping while
14264
isspace. Also, update our input pointer if we have to scan over
14266
(get_point): Now returns bool based on whether it manages to
14267
extract a point or not.
14268
(geometry_from_str): Updated.
14270
2007-10-04 Jackson Harper <jackson@ximian.com>
14272
* xaml.cpp: Points after the initial two line points should
14273
actually create new line segments, not a polyline, this fixes
14274
relative points on multiple lines.
14276
2007-10-04 Jeffrey Stedfast <fejj@novell.com>
14278
* text.cpp (TextBlock): Can't use GetValue() here yet as stuff
14279
hasn't completely been initialized.
14280
(Glyphs::SetIndices): Do not do scaling here, this seems to be
14281
font size dependant.
14283
* shape.cpp (DoDraw): Use 'delete []' to free dmul.
14285
2007-10-04 Jackson Harper <jackson@ximian.com>
14287
* xaml.cpp: Handle repeated bezier segments properly.
14289
2007-10-04 Chris Toshok <toshok@ximian.com>
14291
* clock.cpp: lots of little changes. fixes clock16.xaml, and
14292
therefor the score animation in dr.popper goes away properly.
14293
also fixes a few other issues with FillBehavior (checked by our
14296
2007-10-04 Jeffrey Stedfast <fejj@gnome.org>
14298
* text.cpp (Glyphs::.ctor): We no longer have a TextFont member
14300
(Layout): Use a local TextFont variable.
14302
(text_init): Always call font_init() as Glyphs use it even when
14303
text=pango is specified.
14305
2007-10-04 Sebastien Pouliot <sebastien@ximian.com>
14307
* shape.cpp|h: Shapes that uses their Width and Height must use
14308
them for brush size. Fix brush rendering when used with
14309
UIElement.RenderTransform property.
14311
2007-10-03 Chris Toshok <toshok@ximian.com>
14313
* text.cpp: make Glyphs usable even when text=pango. "usable"
14314
means "don't crash" :)
14316
2007-10-03 Chris Toshok <toshok@ximian.com>
14318
* uielement.h: rename UseAA() to EnableAntiAlias(). it's
14319
arguably a better name, and more importantly it's the name that
14320
media.cpp/h changed it too, which broke the AA hack used in
14323
* dirty.cpp (process_dirty_elements): rename UseAA() to
14326
2007-10-03 Sebastien Pouliot <sebastien@ximian.com>
14328
* array.cpp: Move double array allocations back to new/delete.
14330
2007-10-03 Jeffrey Stedfast <fejj@novell.com>
14332
* font.cpp (EmSize): Removed, not needed.
14333
(GetGlyphInfo): Commented out vertical glyph metrics, saves a fair
14334
bit of memory that we aren't using.
14336
* text.cpp (TextBlock::SetFontSource): Implemented.
14337
(text_init): Default StyleSimulations to None.
14339
2007-10-03 Sebastien Pouliot <sebastien@ximian.com>
14341
* brush.cpp|h: SL and Cairo defaults to different values (end
14342
color versus start color) when a gradiant is restricted to a
14343
single color (e.g. if the start and end points of a linear
14344
gradient are identical).
14346
2007-10-03 Jeffrey Stedfast <fejj@novell.com>
14348
* text.cpp: Implemented the Glyphs element.
14350
* font.cpp: Made GlyphMetrics and GlyphInfo structs public for use
14351
with the the Glyphs element implemented in text.cpp.
14352
(GetGlyphInfo): Fixes to allow loading of the index=0 glyph.
14353
(GetGlyphInfoByIndex): New method.
14354
(CreatePattern): If the filename is specified, don't call
14355
FcFontMatch(), simply return the constructed pattern.
14357
2007-10-02 Chris Toshok <toshok@ximian.com>
14359
* clock.h, clock.cpp: remove TimeManager::current_fps, it's
14362
2007-10-02 Chris Toshok <toshok@ximian.com>
14364
* runtime.cpp (Surface::UpdateFullScreen): just call
14365
gtk_window_fullscreen instead of setting decorations/above
14366
manually. this puts us on top of the panel.
14368
2007-10-02 Chris Toshok <toshok@ximian.com>
14370
* clock.h, clock.cpp: rip out the old stupid throttling code and
14371
replace it with an exponential moving average of the delays.
14373
2007-10-02 Chris Toshok <toshok@ximian.com>
14375
* clock.h, clock.cpp: add Timeline::Get/SetSpeedRatio methods, and
14376
use them to make test/xaml/clock8.xaml work.
14378
2007-10-02 Larry Ewing <lewing@novell.com>
14380
* shape.cpp (Path::ComputeBounds): use the specified width/height
14381
if stretch is != StretchNone. Fixes rendering issues with halo
14382
and several other sites.
14384
2007-10-02 Chris Toshok <toshok@ximian.com>
14386
* animation.h, animation.cpp: override Stop() on AnimationClocks
14387
so we can reset the property value to the baseValue stored in our
14390
* clock.h, clock.cpp: fix the starting of stopped clockgroups when
14391
there are active children (fixes the storyboards running for 1
14392
tick then stopping). Add more convoluted code in order to get the
14393
expected behavior when FillBehavior=Stop on a storyboard.
14395
2007-10-02 Chris Toshok <toshok@ximian.com>
14397
* clock.h, clock.cpp: a few changes. quit with all the delay
14398
computation in the throttling code, and just deal with fps until
14399
we're ready to switch to delays. it simplifies everything a
14400
bunch. Also, narrow the type for Clock::Get/SetParent to
14401
ClockGroup. Add some rudimentary code for printing out the state
14402
of all clocks (use TimeManager::Instance()->ListClocks() or
14403
time_manager_list_clocks()). Also, remove the TimeManager::Tick
14404
code which started clocks. This commit changes the way
14405
storyboards are registered, so the only things in the
14406
TimeManager's list should be the per-surface ClockGroups, which
14407
are started in Storyboard::Begin (if they aren't already running.)
14409
* collection.cpp (VisualCollection::Add): this is a bug waiting to
14410
happen. Call VisualUpdate (thereby setting the child's parent and
14411
initializing the transforms/opacity) before emitting Loaded on the
14414
* animation.h, animation.cpp: Storyboards now add their clocks to
14415
the per-surface ClockGroup. This involves some groveling to find
14416
the surface, but it's nothing we haven't seen before. There's no
14417
direct TimeManager calls here now - stopping the surface's
14418
ClockGroup will stop all animations running on it.
14420
* runtime.h, runtime.cpp: add the per-surface ClockGroup. all
14421
storyboards attach to this, and this attaches to the TimeManager.
14423
2007-10-02 Jackson Harper <jackson@ximian.com>
14425
* media.cpp: Some default values to avoid nullref exceptions.
14427
2007-10-02 Sebastien Pouliot <sebastien@ximian.com>
14429
* xaml.cpp: Add support for 'F' in the PML parser to enable setting
14430
the FillMode of Geometry objects. Removed default value set as it is
14431
identical to the default property value.
14433
2007-10-02 Jb Evain <jbevain@novell.com>
14435
* playlist.cpp|h: implemented start time for playlist entries.
14437
2007-10-02 Jb Evain <jbevain@novell.com>
14439
* playlist.cpp|h, media.cpp|h: rename MediaSource::OpenSource to OpenInternal.
14441
2007-10-02 Larry Ewing <lewing@novell.com>
14443
* uielement.cpp (UIElement::Invalidate): Only invalidate if
14445
* dirty.cpp (process_dirty_elements): be sure to invalidate before
14446
and after the opacity change.
14448
2007-10-02 Jb Evain <jbevain@novell.com>
14450
* playlist.cpp: deal with non lowercase file exts.
14452
2007-10-01 Jeffrey Stedfast <fejj@novell.com>
14454
* font.cpp: Reduced Glyph table memory usage.
14456
2007-10-01 Chris Toshok <toshok@ximian.com>
14458
* dirty.cpp (process_dirty_elements): remove the special if checks
14459
which kept the ComputeBounds/Invalidate code from running on the
14460
toplevel surface. Canvas::ComputeBounds() does the right thing
14461
for the toplevel surface, so we just trust it. fixes invalidation
14464
* panel.cpp (OnPropertyChanged): remove the ComputeBounds call.
14465
(OnSubPropertyChanged): same.
14467
2007-10-01 Sebastien Pouliot <sebastien@ximian.com>
14469
* brush.cpp|h: Change SetupBrush and SetupGradient signatures to
14470
void (instead of the, now, unused bool);
14472
2007-10-01 Jeffrey Stedfast <fejj@novell.com>
14474
* font.cpp (Layout): Made WrapWithOverflow closer to Silverlight's.
14476
2007-10-01 Sebastien Pouliot <sebastien@ximian.com>
14478
* shape.cpp|h: Remove Path::IsFilled since the property
14479
PathFigure::IsFilledProperty doesn't exists anymore.
14481
2007-10-01 Jeffrey Stedfast <fejj@novell.com>
14483
* text.cpp (LayoutPango): Fixed Wrap vs WrapWithOverflow text
14486
* font.cpp (Layout): Fixed the TextWrapping="Wrap" case.
14488
2007-10-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
14490
* runtime.cpp: Only show the server as the url in the fullscreen
14493
2007-10-01 Sebastien Pouliot <sebastien@ximian.com>
14495
* panel.cpp: Call ComputeBounds before invalidating on Background
14496
changes. Fix parts of #327691 (like BubbleMark-CLR and Monotone).
14498
2007-10-01 Rolf Bjarne Kvinge <RKvinge@novell.com>
14500
* fullscreen.h, fullscreen.xaml: Added.
14501
* text.h: Make GetActualHeight and GetActualWidth public.
14502
* runtime.h, runtime.cpp: Added IsTopLevel (since there can be two toplevel
14503
objects now: the fullscreen message and the toplevle canvas),
14504
SetSourceLocation and Show/HideFullScreenMessage.
14505
* dirty.cpp: Use Surface::IsTopLevel instead of comparing directly agains
14506
Surface::GetTopLevel.
14508
2007-09-30 Zoltan Varga <vargaz@gmail.com>
14510
* xaml.cpp (CreateManagedObject): Move the call to GetMapping ()
14513
* text.cpp (text_destroy): Avoid crash if default_foreground_brush
14516
2007-09-28 Chris Toshok <toshok@ximian.com>
14518
* Makefile.am: remove the XRANDR conditional here. it's #defined
14521
2007-09-28 Jeffrey Stedfast <fejj@novell.com>
14523
* font.cpp (CreatePattern): If a filename has been specified for
14524
loading a font, don't set family values. Also, call
14525
FcDefaultSubstitute() on the pattern before trying to find a
14528
2007-09-28 Jeffrey Stedfast <fejj@novell.com>
14530
Optimization hack that saves time by not recalculating the layout
14531
when the foreground brush changes (since we'd have exactly the
14534
* font.cpp (TextRun): Now takes the address of the brush than the
14535
brush itself, so that when brushes change on the Inline, we get
14536
the brush change for free.
14538
* text.cpp (LayoutSilverlight): Pass the addresses of the
14539
foreground brushes to TextRun ctor and don't bother with the
14540
default foreground brush here, save that for ::Paint-time.
14541
(LayoutPango): Same idea as LayoutSilverlight().
14542
(Paint): Get the default foreground and pass that off to the
14543
pango/silverlight text renderers.
14544
(OnPropertyChanged): Don't force a re-layout if the property that
14545
changed was the TextBlock::ForegroundProperty.
14546
(OnCollectionChanged): Same (but for Inline::ForegroundProperty).
14548
* mango.cpp (mango_renderer_show_layout): Now takes a default_fg
14549
argument so that we don't have to specify it in the creation of
14550
our layout attributes (this saving us a re-layout when a brush
14552
(mango_attr_foreground_new): Now takes the address of the brush
14553
rather than the brush itself, so that when brushes change on the
14554
Inline, we get the brush change for free.
14556
2007-09-28 Jeffrey Stedfast <fejj@novell.com>
14558
* text.cpp (TextBlock): We cannot re-use the
14559
default_foreground_brush here because we cannot allow it to be
14560
altered in any way.
14562
2007-09-28 Jeffrey Stedfast <fejj@novell.com>
14564
* font.cpp (TextFont::IsScalable): New method.
14565
(TextFont::Path): Paths a glyph but does not stroke or fill. Only
14566
available if the font is scalable.
14567
(TextLayout::Render): Cache each segment's cairo_path_t so that
14568
future renders do not have to do it on a glyph-by-glyph basis
14569
(avoids possible glyph cache misses). May also save time by doing
14570
a single fill rather than a fill per glyph.
14572
2007-09-28 Jeffrey Stedfast <fejj@novell.com>
14574
* font.cpp (RenderGlyphBitmap): No longer takes a TextDecorations
14576
(RenderGlyphPath): Same.
14577
(UnderlinePosition): New method.
14578
(UnderlineThickness): New method.
14579
(TextLayout::Render): Draw our underline here in 1 stroke (haha, I
14582
2007-09-28 Jeffrey Stedfast <fejj@novell.com>
14584
* text.cpp (LayoutSilverlight): LineBreaks don't really care about
14585
TextDecorations or Foreground properties.
14587
* font.cpp (TextRun::~TextRun): unref the font.
14588
(TextSegment): now references the original TextRun instead of
14589
copying pointers/values.
14590
(TextLayout::Render): Updated for above change.
14592
2007-09-28 Zoltan Varga <vargaz@gmail.com>
14594
* xaml.cpp (SetNameAttribute): New callback to enable managed code to process
14596
(LoadCode): Change return type to bool to indicate a loading error.
14598
2007-09-28 Jeffrey Stedfast <fejj@gnome.org>
14600
* media.cpp (SingleMedia::~SingleMedia): Close the media stream.
14601
(MediaElement::AdvanceFrame): If mplayer->AdvanceFrame() returns
14602
false, then it signifies MediaEnded, no need to explicitly check.
14603
(MediaElement::SetSource): Delete the current source here.
14604
(MediaElement::~MediaElement): C++ `delete' operator doesn't
14605
handle freeing NULL pointers.
14606
(MediaElement::DownloaderComplete): No need to delete the source
14607
here, done in SetSource() instead.
14609
* font.cpp: Created my own GlyphMetrics struct which uses doubles
14610
instead of ints for more accurate layout/rendering calculations.
14611
(Layout): When comparing to max_width, add 1.0 to account for
14612
rounding errors/hinting. Add 1.0 to the Actual/BoundingBox
14613
width/height values for the same reason.
14615
2007-09-28 Sebastien Pouliot <sebastien@ximian.com>
14617
* xaml.cpp: Free locally allocated Points inside get_point_array.
14619
2007-09-28 Jeffrey Stedfast <fejj@gnome.org>
14621
* font.cpp (GetGlyphInfo): Don't cache the bitmap if we're caching
14624
2007-09-28 Sebastien Pouliot <sebastien@ximian.com>
14626
* shape.cpp: ComputeBoundsSlow is no more so we can re-enable the
14627
thickness == 0 optimization.
14629
2007-09-27 Jeffrey Stedfast <fejj@novell.com>
14631
* xaml.cpp (flush_char_data): g_strchomp() the cdata (as
14634
* text.cpp: Merged with custom text layout code - layout algorithm
14635
is chosen at runtime_init() via flags or environment variable.
14637
2007-09-27 Jeffrey Stedfast <fejj@novell.com>
14639
* runtime.cpp (runtime_init): Don't check pango version info,
14640
we're just gonna statically link in pango (and/or do
14641
configure-time checks if the user decides to link to a system
14642
pango). Implemented some preliminary environment variable parsing
14643
action to decide if the user wnts to use ffmpeg vs ms codecs,
14644
pango vs my "silverlight" text layout engine, etc.
14646
2007-09-27 Jeffrey Stedfast <fejj@novell.com>
14648
* runtime.cpp (runtime_init): Now takes a flags argument for
14649
enabling/disabling features. If RUNTIME_INIT_BROWSER is not set,
14650
then make sure pango is recent enough (if not, print a warning
14651
akin to the cairo warning).
14653
2007-09-27 Sebastien Pouliot <sebastien@ximian.com>
14655
* array.cpp: Fix issues on double parsing, including bug #328915 and
14656
test cases in /moon/test/xaml/points-torture.xaml
14658
2007-09-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
14660
* animation.cpp: Add a few null checks.
14662
2007-09-27 Larry Ewing <lewing@novell.com>
14664
* media.cpp: Don't mark our download progress as 100% until we've
14665
been notified by the downloader that it is complete. Some
14666
programs check download progress to decide when they can safely
14667
poke at the media element properties.
14668
* downloader.cpp: set the final downloader progress to 1.0 not 100.
14670
2007-09-27 Sebastien Pouliot <sebastien@ximian.com>
14672
* xaml.cpp: Don't freak out if <?xml ... ?> isn't on the first
14673
line. Fix bug #328907.
14675
2007-09-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
14677
* control.h, control.cpp: Added control_initialize_from_xaml_callbacks, and
14678
change InitializeFromXaml to take a XamlLoader argument.
14680
2007-09-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
14682
* xaml.cpp: More unrefs.
14684
2007-09-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
14686
* text.cpp: Unref a few newly created objects.
14687
* control.cpp: Remove an unnecessary ref.
14689
2007-09-26 Zoltan Varga <vargaz@gmail.com>
14691
* text.cpp (SetValue): Implement proper handling of the Text property.
14693
(OnPropertyChanged): Force a relayout when the foreground property changes.
14694
(Layout): Remove the laying out of the contents of the Text property, since the
14695
text is now contained in the first inline.
14697
2007-09-26 Jeffrey Stedfast <fejj@novell.com>
14699
* font.cpp (Layout): Include the space char on the line before
14700
wrapping, this is noticable when TextDecorations="Underline" is
14702
(TextLayout::RenderGlyphBitmap): Moved to TextFont class.
14703
(TextLayout::RenderGlyphPath): Same. Also implemented underlining.
14704
(TextFont::Render): Implemented.
14706
2007-09-26 Sebastien Pouliot <sebastien@ximian.com>
14708
* geometry.h: PathFigure::IsFilledProperty doesn't exist anymore
14709
(and was removed elsewhere, except here);
14711
2007-09-26 Chris Toshok <toshok@ximian.com>
14713
* clock.cpp (TimeManager::Tick): a few changes. first and
14714
foremost, fix the signs on the FPS_ADJUSTMENTS. oops. also, add
14715
a buffer of 50ms on either side of the timeout before we consider
14716
the Tick either slow or fast. Increase the number of out-of-line
14717
ticks we need and decrease the fps adjustment.
14719
2007-09-26 Jeffrey Stedfast <fejj@novell.com>
14721
* text.cpp (OnCollectionChanged): Needs to call Invalidate().
14723
2007-09-26 Chris Toshok <toshok@ximian.com>
14725
* clock.cpp: initialize the min_timeout based on a good default
14726
max fps (60 in our case). Also, calculate the fps adjustments in
14729
* runtime.cpp: remove the non-xrandr SetMaximumRefreshRate call -
14730
it's handled by TimeManager's default.
14732
2007-09-26 Jeffrey Stedfast <fejj@novell.com>
14734
* font.cpp: A bunch of fixes/changes to mimic Microsoft's
14735
Silverlight TextBlock layout logic.
14737
2007-09-26 Andrew Jorgensen <ajorgensen@novell.com>
14739
* Makefile.am: Added missing files for dist tarball
14741
2007-09-26 Chris Toshok <toshok@ximian.com>
14743
* clock.h, clock.cpp: add some very naive, rather lame fps tuning.
14744
we just adjust fps by a fixed amount (4fps) either up or down, if
14745
a certain number (5, by default) of ticks in a row take either
14746
less or more time to complete (respectively), than the current
14749
2007-09-26 Sebastien Pouliot <sebastien@ximian.com>
14751
* moon-path.c: Fix typos.
14752
* shape.h: Remove old ComputeBounds[Slow|Fast] from header.
14754
2007-09-26 Sebastien Pouliot <sebastien@ximian.com>
14756
* shape.h|cpp: Remove Line (direct path manipulation) hack.
14758
2007-09-26 Rolf Bjarne Kvinge <RKvinge@novell.com>
14760
* xaml.cpp: Unref collections and matrix transforms we create.
14762
2007-09-25 Sebastien Pouliot <sebastien@ximian.com>
14764
* geometry.h|cpp, shape.cpp: Implement GetBounds without a cairo
14767
2007-09-26 Zoltan Varga <vargaz@gmail.com>
14769
* text.cpp (TextBlock): Set an empty string as a default Text property.
14770
(InsideObject): Implement this for text blocks.
14772
2007-09-25 Sebastien Pouliot <sebastien@ximian.com>
14774
* font.cpp: Fix warning.
14776
2007-09-25 Larry Ewing <lewing@novell.com>
14778
* brush.cpp|h: add image_brush_create_similar to simplify creating
14779
similar surfaces. Use it where appropriate.
14781
* media.ccp: use image_brush_create_similar where possible. In
14782
MediaElement::Render draw with opacity directly rather than
14783
creating a temporary surface for every frame. Rework image opacity
14784
cache so that we don't have to recreate the surface every time.
14786
2007-09-25 Jb Evain <jbevain@novell.com>
14788
* media.cpp|h: let the MediaElement be the only one to trigger
14789
its own events, terminate its friendship with MediaBase.
14791
2007-09-25 Jb Evain <jbevain@novell.com>
14793
* playlist.cpp|h: trigger a parsing error when no href attribute
14794
is found for base and ref elements.
14796
2007-09-25 Jb Evain <jbevain@novell.com>
14798
* playlist.cpp|h, media.cpp: Auto play for playlists.
14800
2007-09-24 Jeffrey Stedfast <fejj@novell.com>
14802
* font.cpp (Render): Fixed some y1 offset logic that didn't amke
14803
any sense (and was wrong afaict anyway). We now render exactly
14804
like Microsoft Silverlight.
14806
2007-09-24 Jb Evain <jbevain@novell.com>
14808
* playlist.cpp: close the previous source before playing
14811
2007-09-24 Jb Evain <jbevain@novell.com>
14813
* mplayer.cpp: on Close, reset height and width to zero.
14815
2007-09-24 Jeffrey Stedfast <fejj@novell.com>
14817
* media.cpp (OnPropertyChanged): Set recalculate_matrix to true if
14818
either the NaturalWidth or NaturalHeight changes.
14820
2007-09-24 Jb Evain <jbevain@novell.com>
14822
* media.cpp|h, playlist.cpp|h: refactor MediaSource so that
14823
only a SingleMedia deals with the MediaPlay directly. A playlist
14824
being a collection of either other playlist or singlemedias,
14825
playing one at a time.
14827
2007-09-24 Jb Evain <jbevain@novell.com>
14829
* media.cpp, playlist.cpp: let the Media Sources change
14830
the state of the MediaElement (Playing/Paused/Stopped).
14832
2007-09-24 Jb Evain <jbevain@novell.com>
14834
* media.h: let the media source change the properties
14835
of the media element. Make MediaSource friend of MediaElement
14837
* playlist.h, playlist.cpp: adjus to the changes in MediaSource.
14839
2007-09-24 Jeffrey Stedfast <fejj@novell.com>
14841
* font.cpp: Added kerning.
14843
* mplayer.cpp: Added mutex locking for the target_pts variable.
14845
2007-09-24 Jb Evain <jbevain@novell.com>
14847
* playlist.cpp: Playlist::IsPlaylistFile: return false
14850
2007-09-23 Jb Evain <jbevain@novell.com>
14852
* playlist.cpp: A base element stores the base in
14853
a href attribute, not in its body.
14855
2007-09-22 Chris Toshok <toshok@ximian.com>
14857
* Makefile.am (USE_XRANDR): define USE_XRANDR.
14859
* runtime.cpp (Surface::realized_callback): get the RANDR screen
14860
config info, and set the TimeManager's max refresh to match the
14863
* clock.h, clock.cpp (TimeManager::SetMaximumRefreshRate): new
14866
2007-09-22 Zoltan Varga <vargaz@gmail.com>
14868
* xaml.h xaml.cpp: Add support for parsing x:Code elements and
14869
passing them to managed code.
14871
2007-09-21 Jeffrey Stedfast <fejj@gnome.org>
14873
* mplayer.cpp (audio_play): Slightly optimized the volume
14876
* font.cpp (Layout): Keep track of the line ascend and pad our
14877
extents with an extra pixel on all sides to account for hinting.
14878
(Render): Starts rendering glyphs 1 pixel in. Also modified the
14879
logic such that we didn't have to treat path/bitmap glyphs
14882
2007-09-21 Jeffrey Stedfast <fejj@novell.com>
14884
* font.cpp: Now handles scalable fonts by rendering their outline
14885
paths rather than rendering bitmaps.
14887
* moon-path.c (moon_path_move_to): Resize the path auto-magically
14888
if we don't have enough room. Same for all of the other
14889
line_to/curve_to/etc.
14891
2007-09-21 Jeffrey Stedfast <fejj@gnome.org>
14893
* font.cpp (SetMaxWidth): Oops, set max_width = max (rather than
14894
the old width extents).
14895
(Layout): When breaking a long line, the new line height should
14896
not be set to 0 (duh), it should be set to the font height.
14898
2007-09-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
14900
* xaml.cpp, xaml.h: Added a XamlLoaderCalbacks structure that contains all
14901
the callbacks XamlLoader needs. Added xaml_loader_set_callbacks for
14902
managed code to set them. Keep track of mappings in native code, call
14903
into managed code only if a mapping is not found here. Keep a list of
14904
missing assemblies, allows managed code to request downloading of
14905
several assemblies before trying to parse xaml again. Added
14906
XamlLoader::CreateManagedObject, tries to parse xmlns/name, if
14907
successful (and only then), requests a vm to be loaded, before calling
14908
into managed code to actually create the managed object.
14910
2007-09-20 Chris Toshok <toshok@ximian.com>
14912
* type.cpp, type.cpp.in (types_init_register_events): register the
14913
LostFocus/GotFocus events.
14915
* uielement.h: add LostFocusEvent/GotFocusEvent.
14917
* uielement.cpp (uielement_init): lookup LostFocus/GotFocus events.
14919
2007-09-20 Jeffrey Stedfast <fejj@gnome.org>
14921
* text.cpp (InsideObject): Removed.
14923
* font.cpp (Layout): Add the horiBearingX value of the last glyph
14924
in each line to the width of said line.
14925
(RenderGlyphBitmap): Cache the surface and use it as a mask when
14926
filling so that the true source pattern shows thru.
14928
2007-09-20 Jeffrey Stedfast <fejj@novell.com>
14930
* mango.cpp (mango_renderer_draw_glyphs): Cache the paths that we
14932
(mango_renderer_show_layout): Instead of having pango render the
14933
text, do it ourselves using our cached paths from the previous
14934
call to mango_renderer_layout_path().
14935
(mango_renderer_layout_path): Clear our cache paths.
14937
2007-09-20 Jeffrey Stedfast <fejj@novell.com>
14939
* text.cpp (OnPropertyChanged): Don't dirty actual width/height on
14940
foreground changes.
14941
(OnSubPropertyChanged): Same.
14943
* font.cpp (GetFont): No longer need to pass the size to
14945
(TextFont::Load): No longer needs the size argument.
14946
(TextFont::.ctor): We just get the size from the pattern now.
14947
(TextFontDescription::CreatePattern): Call FcFontMatch() on our
14948
generated font pattern here instead of having our lower-level
14949
TextFont::.ctor do it.
14950
(TextFont::Ascender): Use the size metrics so that this always
14951
works properly (at least it seems to).
14952
(TextFont::Height): Same.
14953
(TextLayout::Layout): Changed line-height logic a bit for
14956
2007-09-20 Chris Toshok <toshok@ximian.com>
14958
* type.cpp.in, type.cpp (LookupEvent): fix this to check in parent
14959
type event hashes as well if we don't find it in ours.
14961
2007-09-20 Sebastien Pouliot <sebastien@ximian.com>
14963
* brush.cpp: Implemented MappingMode for LinearGradientBrush.
14964
Buttons from Dr Popper are now rendered correctly.
14966
2007-09-20 Chris Toshok <toshok@ximian.com>
14968
* typegen.cs (GenerateTypeCpp): add a call to
14969
types_init_register_events.
14971
* type.h.in, type.cpp.in: add Type::RegisterEvent,
14972
Type::LookupEvent, Type::GetEventCount, and Type::GetEventBase.
14974
* type.cpp.in: add types_init_register_events, which registers all
14975
the events we care about for all the types. we do it here to
14976
guarantee that events have been registered by the time any
14977
instance code is run for any type.
14979
* dependencyobject.h, dependencyobject.cpp: remove the event
14980
registration from EventObject, it's moving to Type. so the Type
14981
will contain the name to id hash, and the EventObject will only
14982
contain an array of GSLists, where the index into that array is
14985
* clock.cpp (clock_init): lookup the static events here.
14987
* runtime.cpp (runtime_init): same.
14989
* animation.cpp (animation_init): same.
14991
* downloader.cpp (downloader_init): same.
14993
* uielement.cpp (uielement_init): same.
14995
* src/clock.h, src/uielement.h, src/media.h, src/animation.h,
14996
src/type.h, src/runtime.h, src/downloader.h: events are static to
14997
the classes now, instead of being per-instance.
14999
* src/types.h src/types.cpp: regen.
15001
2007-09-20 Sebastien Pouliot <sebastien@ximian.com>
15003
* geometry.cpp: Avoid re-allocating path memory when possible.
15004
* moon-path.c|h: Added documentation and new moon_path_renew and
15005
moon_path_clear functions to reduce memory re-allocations.
15006
* shape.cpp|h: Avoid re-allocating path memory when possible.
15008
2007-09-20 Sebastien Pouliot <sebastien@ximian.com>
15010
* brush.cpp|h: Implemented MappingMode for RadialGradientBrush.
15011
Bubbles from bubblemark.com are now rendered correctly.
15013
2007-09-19 Sebastien Pouliot <sebastien@ximian.com>
15015
* shape.cpp|h: Remove dead code.
15017
2007-09-19 Jeffrey Stedfast <fejj@novell.com>
15019
* font.cpp: More fixes to make stuff build/work (more or less).
15021
* text.patch: Patch to make text layout/rendering use my new code
15024
2007-09-19 Chris Toshok <toshok@ximian.com>
15026
* text.cpp (TextBlock::Layout): don't insert multiple fg_attrs.
15028
2007-09-19 Sebastien Pouliot <sebastien@ximian.com>
15030
* moon-path.c|h: New. Create simple or complex paths without a
15031
(expensive) cairo_context_t using an API similar to cairo.
15032
* geometry.cpp|h: Use moon_path functions. Added (still inactive)
15033
code to compute bounds for paths.
15034
* shape.cpp|h: Use moon_path functions. Avoid Cairo extents API
15035
for Polylines and Polygons. Still not perfect for large thickness
15036
and steep angles but 8-10x faster and better (no artifact left)
15037
than previous code, see new xaml animation tests).
15038
* rsvg.cpp|h: Adapt to use moon-path functions.
15039
* Makefile.am: Add moon-path.c and moon-path.h to the build.
15041
2007-09-19 Jeffrey Stedfast <fejj@gnome.org>
15043
* font.cpp: More hackery.
15045
2007-09-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
15047
* panel.cpp: Add a null check.
15048
* xaml.cpp: Created a list that contains most created elements in order to
15049
unref them once parsing is finished (we need to unref all created
15050
elements except the top one, but the parser callback functions don't
15051
know which is the top one, so we delay the unrefing until the end). If
15052
parsing is done manually (*_from_str, etc), just use unref.
15053
* text.h, text.cpp: Add text_destroy to properly destroy the default
15054
foreground brush on shutdown.
15055
* clock.cpp: When we allocate a clock, unref it after adding it to the
15057
* collection.h: Store the parent in the Node, since we can't call
15058
obj->GetParent () in a destructor (it will walk up the hierarchy using
15059
the type system, but since the parent can be in the destructor, the type
15060
system isn't reliable anymore).
15061
* mango.h, mango.cpp: MangoAttrForeground: hold a reference to the
15062
foreground brush, not to the element. Add a mango_renderer_get_type_safe
15063
that can reinitialize static variables (after a libmoon reload) from
15065
* geometry.cpp, transform.cpp, brush.cpp: Use Value::CreateUnref for default
15067
* collection.cpp: Store the parent in the Node, since we can't call
15068
obj->GetParent () in a destructor (it will walk up the hierarchy using
15069
the type system, but since the parent can be in the destructor itself,
15070
the type system isn't reliable anymore).
15071
* dependencyobject.cpp: Attachee: don't hold a ref to the container anymore.
15072
* media.cpp: Sprinkle a few unrefs here and there.
15073
* animation.cpp: Don't ref root_clock, CreateClock already gives us a ref.
15074
Add a null check in the Storyboard destructor. Use Value::CreateUnref
15075
for default values.
15076
* runtime.cpp: Attach: Don't attach a null element. Call text_destroy on
15079
2007-09-18 Jeffrey Stedfast <fejj@gnome.org>
15081
Continued fixes to go along with Rolf's other TextBlock leak
15084
* mango.cpp (mango_attr_foreground_new): Don't ref the fg.
15085
(mango_attr_foreground_destroy): Don't unref the fg.
15087
* text.cpp (default_foreground): Make return a static reference.
15088
(Layout): Don't ref the fg.
15090
2007-09-17 Jeffrey Stedfast <fejj@gnome.org>
15092
* font.cpp: more progress on text layout.
15094
2007-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
15096
* xaml.cpp, xaml.h: Move callbacks from PluginXamlLoader back to XamlLoader.
15098
2007-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
15100
* xaml.cpp: Fix warning.
15102
2007-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
15104
[Removed mono dependency for 1.0 moonlight applications.
15105
We now have a native [Plugin]XamlLoader that is the native counterpart of the
15106
managed Loader object, the native loader handles xaml loading when the
15107
mono runtime isn't loaded.]
15109
* xaml.cpp, xaml.h: Added a XamlLoader class that replaces the callbacks.
15110
Changed xaml_create_from* to take a loader (XamlLoader*) argument. This
15111
was necessary because the callback handler isn't given enough
15112
information (it needs to know the plugin, but this information is not
15113
passed on), and it now also avoids the potential problem of overwriting
15114
static callbacks when several plugins are created simultanously.
15115
* control.cpp, demo.cpp: Update according to API change.
15117
2007-09-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
15119
* panel.cpp, dependencyobject.cpp, dirty.cpp: Add some null checks.
15121
2007-09-14 Jeffrey Stedfast <fejj@novell.com>
15123
* font.cpp|h: New font/text rendering engine (e.g. replacement for
15124
pango). Nowhere near complete yet.
15126
2007-09-14 Miguel de Icaza <miguel@novell.com>
15128
* media.cpp (Stop, Pause): Do not dereference source if it is not
15129
yet set (TopBanana does this).
15131
2007-09-13 Jb Evain <jbevain@novell.com>
15133
* media.cpp|h, playlist.cpp|h: Work on playlist integration.
15135
2007-09-10 Jeffrey Stedfast <fejj@novell.com>
15137
* mplayer.cpp (StopThreads): When resetting current_pts and
15138
target_pts, use the audio (or video) initial_pts value rather than
15139
0 since they are meant to be absolute pts values, not
15140
relative. This fixes a bug in the halo3 site where pressing Stop
15141
would cause the current time string to become "59:55" when it
15142
should have been "00:00".
15144
* media.cpp (OnPropertyChanged): Only Invalidate() on
15145
PositionProperty changes if we have video content to render. Fixes
15148
* mplayer.cpp (HasVideo): New method that returns true if the
15149
media source has video content.
15151
2007-09-10 Jeffrey Stedfast <fejj@gnome.org>
15153
* mplayer.cpp (Duration): Only use audio duration as the defacto
15154
duration if we've got a valid pcm handle.
15156
2007-09-10 Chris Toshok <toshok@ximian.com>
15158
* animation.cpp (HookupAnimationsRecurse): make the message
15159
involving failure to hookup a property more verbose. Looks like
15160
MS is treating a TranslateTransform as a ScaleTransform in popfly
15161
- that is, they're trying to animate ScaleX on a
15162
TranslateTransform (which is oddly enough named "scale".)
15164
* media.cpp: Emit ImageFailedEvent if we failed to load the image.
15165
Remove that damn TODO printf.
15167
* media.h: add ImageFailedEvent to Image, and change signature of
15168
CreateSurface so we can return false if there's an error.
15170
* xaml.cpp (parser_error): use the new ParserErrorEventArgs ctor.
15172
* error.h: make these classes instead of structs, and also make
15173
them copy/free the type specific strings. it'll result in more
15174
allocations but it cleans up the code using them.
15176
2007-09-07 Sebastien Pouliot <sebastien@ximian.com>
15178
* shape.cpp: Fixed Polygon "special" case when it only has to draw
15179
a line. Fixed Line::ComputeBound (Shape::ComputeBoundFast wasn't
15180
working) which is now 10x faster than calling ComputeBoundSlow (the
15181
working alternative). Started to reuse the same concept for Polyline
15182
and Polygon but the (#def-out) code doesn't yet handle line joins
15183
correctly (so it still use the correct ComputeBoundSlow);
15185
2007-09-06 Chris Toshok <toshok@ximian.com>
15187
* dirty.cpp (process_dirty_elements): some guards against unioning
15188
an empty rectangle.
15190
2007-09-06 Chris Toshok <toshok@ximian.com>
15192
* runtime.cpp (Surface::Invalidate): only invalidate the actual
15193
rectangle. The +1/-2 stuff is done in dirty.cpp, if it needs to
15196
* rect.h (Rect::Floor): drop fractional part of all values.
15198
* media.h,media.cpp: we cheat and turn off AA on MediaElements
15199
when they aren't rotated or skewed.
15201
* uielement.h, uielement.cpp: we need to keep track of 2
15202
dirty_rects. one for the element itself, which is GrowBy(1)'ed in
15203
dirty.cpp if the child uses AA, and one for children who have
15204
passed their invalidation rect up the tree (we don't grow this
15205
one). Also, add the default UseAA method, which returns true, and
15206
the ChildInvalidated method, which mirrors Invalidate(Rect r) but
15207
uses the children_dirt_rect.
15209
* panel.h, panel.cpp (Panel::~Panel): clear our children
15211
(Panel::FindStartingElement): the meat of the optimization hack -
15212
we determine if we can skip parts of the tree if the expose
15213
rectangle exists completely within the bounds of an opaque
15214
element, unrotated, unskewed element.
15216
* dirty.cpp (process_dirty_elements): handle
15217
item->children_dirty_rect as well as item->dirty_rect. Also, Grow
15218
the item's dirty_rect by 1 before combining them, if the item uses
15221
2007-09-05 Jb Evain <jbevain@novell.com>
15223
* playlist.cpp: the asx format is case insensitive, parse it
15226
2007-09-05 Sebastien Pouliot <sebastien@ximian.com>
15228
* animation.h: Make KeySpline::GetObjectType virtual.
15230
2007-09-05 Jb Evain <jbevain@novell.com>
15232
* playlist.cpp, playlist.h: work on playlist parsing.
15234
2007-09-05 Jb Evain <jbevain@novell.com>
15236
* xaml.h: export timespan_from_str.
15238
2007-09-05 Jb Evain <jbevain@novell.com>
15240
* list.h, list.cpp: add Remove(Node) and RemoveAt(int) method.
15242
2007-09-04 Chris Toshok <toshok@ximian.com>
15244
* media.cpp (Image::Render): unref the backing pixbuf as soon as
15246
(Image::CleanupSurface): guard against double unreffing the
15249
2007-09-04 Chris Toshok <toshok@ximian.com>
15251
* xaml.cpp (xaml_set_property_from_str): delete the color.
15252
(dependency_object_set_attributes): same.
15254
2007-09-04 Chris Toshok <toshok@ximian.com>
15256
* media.cpp (Image::CreateSurface): if we need to create a new
15257
surface, make sure to unref the old one.
15259
* geometry.cpp (PathGeometry::PathGeomtry): use
15260
Value::CreateUnrefPtr (bad name, imo, but eh)
15261
(PathFigure::PathFigure): same.
15263
2007-09-04 Jb Evain <jbevain@novell.com>
15265
* playlist.h, playlist.cpp: Work on the overall design.
15267
2007-09-04 Jeffrey Stedfast <fejj@novell.com>
15269
* brush.cpp (image_brush_create_pattern): Revert previous patch as
15270
it broke test suite.
15272
2007-09-04 Jb Evain <jbevain@novell.com>
15274
* list.h, list.cpp: add a List::ForEach method.
15276
2007-09-04 Jeffrey Stedfast <fejj@novell.com>
15278
* brush.cpp (image_brush_create_pattern): Set CAIRO_FILTER_FAST
15279
(based on lewings performance patch).
15281
2007-09-04 Sebastien Pouliot <sebastien@ximian.com>
15283
* text.h|cpp: TextBlock actual_[height|width] are already cached
15284
because they're expansive to calculate. Make sure we don't compute
15285
them until they're really required (e.g. when a lot of properties
15286
changes when loading an XAML file).
15288
2007-09-04 Chris Toshok <toshok@ximian.com>
15290
* animation.cpp (KeyFrameAnimation_ResolveKeyFrames): add the
15291
keyframes in reverse order so the sort works.
15293
2007-09-04 Jeffrey Stedfast <fejj@novell.com>
15295
* list.cpp (Insert): Fixed.
15297
* runtime.cpp (render_cb): Added some "FPS" debug spew.
15299
* media.cpp (AdvanceFrame): On MediaEnded, don't remove the source
15300
timeout id, by returning false, it is removed for us.
15302
Tue Sep 4 17:50:24 CEST 2007 Paolo Molaro <lupus@ximian.com>
15304
* media.cpp: fix memory leaks and crashes when a download gets
15307
2007-09-04 Jeffrey Stedfast <fejj@novell.com>
15309
* mplayer.cpp: Changed all pts variables to int64_t from uint64_t
15310
as that seems to be what ffmpeg uses internally. Also added a new
15311
'eof' state so that we can easily tell if we've reached the end of
15312
the media stream (eof is true and no packets queued).
15314
2007-09-04 Rolf Bjarne Kvinge <RKvinge@novell.com>
15316
* media.h, media.cpp: If we get a play request before the media is loaded,
15317
save the request and start playing when the media is loaded. Hopefully
15318
this is what MS is doing.
15320
2007-09-04 Jeffrey Stedfast <fejj@gnome.org>
15322
* collection.cpp (Clear): Use list->IsEmpty () as it is cheaper
15323
than comparing the Length() to 0.
15325
* list.cpp: Added more tests.
15327
2007-09-03 Sebastien Pouliot <sebastien@ximian.com>
15329
* rect.cpp: Safer IsEmpty (handles negative values)
15330
* shape.cpp: In Shape::ComputeBoundsSlow make empty shape returns
15331
empty bounds. In Shape::DoDraw avoid call to cairo_set_matrix if
15334
2007-09-03 Sebastien Pouliot <sebastien@ximian.com>
15336
* media.cpp: Fix premul and remove confusing macro.
15338
2007-09-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
15340
* clock.cpp, uielement.cpp, trigger.cpp, panel.cpp, animation.cpp,
15341
canvas.cpp, namescope.cpp: Plug some leaks.
15342
* value.h.in, value.h, value.cpp: Added CreateUnrefRef and CreateUnref.
15343
* dependencyobject.cpp: free_attachee: unref the contained dob. Use
15344
base_unref () instead of accessing the pointer in a few places to allow
15346
* debug.cpp: get_stack_trace is now able to get meaningful data for managed
15347
parts of the stack trace as well.
15349
2007-09-03 Rolf Bjarne Kvinge <RKvinge@novell.com>
15351
* list.cpp: List::Unlink: Link my neighbours to eachother.
15353
2007-09-01 Sebastien Pouliot <sebastien@ximian.com>
15355
* rect.cpp: Fix union with empty rectangles (so x and y are not
15356
assigned to 0 resulting in large bounds). Fix IsEmpty.
15357
* shape.cpp: Fix possible division by 0, resulting in infinite
15358
values (and much too large bounds)
15360
2007-08-31 Jeffrey Stedfast <fejj@novell.com>
15362
*.cpp: Updated for the slightly different List API (list nodes no
15363
longer have Next() or Prev() methods, just access the pointers
15366
* animation.cpp: Made sorted_list a GPtrArray and updated to use
15367
g_ptr_array_insert_sorted(). Also, a lot of the 'list' (not
15368
sorted_list) accesses assumed nodes were of type KeyFrameNode,
15369
which they were not. Fixed.
15371
* xaml.cpp: Made XamlElementInstance.dtor virtual.
15373
* collection.h: Made the Collection::Node.dtor virtual.
15375
* list.cpp: Rewritten, if we add a virtual .dtor to List::Node, we
15376
can no longer guarantee that List::Node->next will have the same
15377
address as the List::Node object and so the list implementation
15378
broke. This rewrite is a bit less fancy, but doesn't rely on that
15381
2007-08-31 Sebastien Pouliot <sebastien@ximian.com>
15383
* media.cpp, panel.cpp, shape.cpp, text.cpp: Calling GrowBy
15384
doesn't change the current rectangle (but returns a new one).
15385
However everything seems to work, so they are probably not needed.
15387
2007-08-31 Jeffrey Stedfast <fejj@novell.com>
15389
* text.cpp (OnPropertyChanged): Need to Invalidate() too.
15391
2007-08-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
15393
* runtime.h, runtime.cpp: Implement fullscreen support, drawing_area does
15394
now reference either the fullscreen drawing area or the normal drawing
15395
area. Refactored drawing area initialization and destruction into
15396
seperate methods. Modified ConnectEvent to be able to specify whether
15397
the drawing area should attach to realize/unrealize events (fullscreen
15398
drawing area shouldn't). Only emit ResizeEvent if we're not in
15399
fullscreen mode. Added normal_height/width, contains the size of the
15400
surface when not in fullscreen (as opposed to screen_height/width for
15401
fullscreen mode). Height/width now contains the actual size of the area
15402
where we draw, whether in fullscreen mode or not.
15404
2007-08-31 Sebastien Pouliot <sebastien@ximian.com>
15406
* shape.cpp: #ifdef out an optimization that doesn't work with
15407
ComputeBoundsSlow (a specified stroke brush, with a thickness of 0,
15408
wouldn't render at all with it's fill brush). Added same shortcut
15409
(as before) for Shape::ComputeBoundsSlow.
15411
2007-08-31 Sebastien Pouliot <sebastien@ximian.com>
15413
* shape.cpp: Added a shortcut in Shape::ComputeBoundsFast when shapes
15414
are known to be empty (UIElement::SHAPE_EMPTY).
15416
2007-08-31 Rolf Bjarne Kvinge <RKvinge@novell.com>
15418
* shape.h, shape.cpp: Revert to the old CanFill method for shapes,
15419
apparently a point is inside a shape unregarding to whether it's filled
15420
or not, unlike geometries.
15422
2007-08-30 Sebastien Pouliot <sebastien@ximian.com>
15424
* shape.cpp: Better degenerate handling for round-rectangles and
15427
2007-08-30 Chris Toshok <toshok@ximian.com>
15429
* collection.h, collection.cpp: change the prototype of
15430
Collection::Add, ::Insert, and ::SetVal to return bool. Make the
15431
subclasses check the return value before doing their type specific
15432
handling of the child. Fixes the crash from invalid xaml in
15435
* animation.h, animation.cpp: track collection api change.
15437
2007-08-30 Chris Toshok <toshok@ximian.com>
15439
* collection.cpp (Collection::Add): make the warning a lot more
15440
useful if the child isn't of the right type.
15442
2007-08-30 Rolf Bjarne Kvinge <RKvinge@novell.com>
15444
* xaml.cpp: Unref the namescope.
15445
* debug.h, debug.cpp: Added. Implemented get_stack_trace and
15447
* clock.cpp: Unref the _instance.
15448
* dependencyobject.h, dependencyobject.cpp: Implement object tracking for
15449
debug purposes. It's able to log to console object creation,
15450
destruction, ref/unrefs with a stacktrace with C++ unmangled function
15451
names, file and line number. Keep a count of created and destroyed
15452
objects, and a list of objects still alive. Ref and unref attached
15453
objects, and free the attachees when we're deleted.
15454
* animation.h, animation.cpp: Add animation_destroy, and destroy the default
15455
dependency property for a few properties.
15456
* type.cpp, type.cpp.in: Initialize Type::types to NULL.
15457
* runtime.cpp: Add a g_type_inited to avoid initializing g_types several
15458
types. Call animation_destroy on shutdown, and add some object tracking
15459
output to runtime_init and runtime_shutdown.
15460
* Makefile.am: Added debug.*.
15462
2007-08-30 Sebastien Pouliot <sebastien@ximian.com>
15464
* shape.cpp: In some degenerate cases Radius[X|Y] can be ignored
15467
2007-08-30 Jeffrey Stedfast <fejj@novell.com>
15469
* mplayer.cpp (AdvanceFrame): If there is no video stream, return
15470
based on audio state. Also, if current_pts >= target_pts already,
15471
return true rather than false to pretend we advanced a frame (it's
15472
really not that important to our caller, all the value is used for
15473
is updating position).
15475
2007-08-30 Sebastien Pouliot <sebastien@ximian.com>
15477
* shape.cpp: Handle negative values for Height and Width (not
15478
drawn) and for Radius[X|Y] (absolute values).
15480
2007-08-30 Jb Evain <jbevain@novell.com>
15482
* media.h, media.cpp: introduce a new MediaSource class that a
15483
MediaElement uses, so we can have either a SingleMedia or a Playlist
15485
* playlist.cpp, playlist.h: added
15486
* Makefile.am: add the previous files.
15488
2007-08-30 Sebastien Pouliot <sebastien@ximian.com>
15490
* shape.cpp: Fix small rectangle fills when no stroke brush is
15493
2007-08-29 Jeffrey Stedfast <fejj@novell.com>
15495
* text.cpp (OnPropertyChanged): Don't recalculate width/height nor
15496
bounds on TextProperty change explicitly, it should already be
15497
recalculated later in the function in the same place it gets
15498
reclauclated for other property changes.
15499
(ComputeBounds): Updated to work the same as the rest of the
15502
2007-08-29 Sebastien Pouliot <sebastien@ximian.com>
15504
* shape.cpp: Fix ComputeBoundsFast to consider the stroke
15507
2007-08-29 Sebastien Pouliot <sebastien@ximian.com>
15509
* shape.cpp: Fix Path::BuildPath cairo_path_t caching as we modify
15510
the path after we get a copy of it. Remove the now unrequired
15511
clipping inside the *::BuildPath for StretchUniformToFill.
15513
2007-08-29 Jeffrey Stedfast <fejj@novell.com>
15515
* media.cpp (Render): Cache the pattern matrix.
15516
(DownloaderComplete): Remove the assert and simply handle that
15517
case by returning (which defers the call until OnLoaded).
15519
2007-08-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
15521
* runtime.cpp: Initialize the FullScreen variables. Helps a lot in
15522
making things consistent.
15524
2007-08-29 Chris Toshok <toshok@ximian.com>
15526
* merged delayed-rendering-branch branch to head. ChangeLog is:
15528
2007-08-28 Chris Toshok <toshok@ximian.com>
15530
* control.cpp (GetTransformFor): change this to act as
15531
Canvas::GetTransformFor does - we only put in the transform from
15532
parent to child here - don't include the parent's transform as
15533
well. Fixes the airlines demo.
15535
2007-08-28 Chris Toshok <toshok@ximian.com>
15537
* dirty.cpp (process_dirty_elements): use a different method for
15538
checking if against the toplevel canvas, and also use
15539
UIElement::parent instead of DependencyObject::GetParent() to get
15540
controls working a little better than before.
15542
* control.h, control.cpp: remove UpdateTransform. this is handled
15543
by the dirty.cpp code now.
15545
* dependencyobject.h, dependencyobject.cpp: copy over the
15546
event_object_{add,remove}_event_handler change from the trunk so
15547
we can continue to work with HEAD olive.
15549
2007-08-22 Chris Toshok <toshok@ximian.com>
15551
* uielement.cpp (Invalidate): don't actually invalidate the
15552
element unless it's visible.
15553
(OnPropertyChanged): the above change requires us to invalidate
15554
the element before setting the flags (in the case where we're
15555
hiding an element).
15557
2007-08-21 Jeffrey Stedfast <fejj@novell.com>
15559
* media.cpp (ComputeBounds): Use the FrameworkElement width/height
15560
unless unspecified, only then should we use video width/height.
15562
2007-08-21 Chris Toshok <toshok@ximian.com>
15564
* uielement.cpp (DoRender): short-circuit rendering of uielements
15565
when their opacity is 0.
15567
* dirty.cpp (process_dirty_elements): handle controls.
15569
2007-08-21 Chris Toshok <toshok@ximian.com>
15571
* shape.h: add Shape::ComputeBoundsSlow, which uses the slow
15572
(cairo_*_extents) codepath for computing bounds. Use this path
15573
for polygons, polylines, and paths. Implement a Line-specific
15574
fast ComputeBounds.
15576
2007-08-20 Chris Toshok <toshok@ximian.com>
15578
* media.cpp (MediaElement::ComputeBounds): GrowBy(1).
15579
(Image::ComputeBounds): use bounding_rect_for_transformed_rect.
15581
2007-08-20 Chris Toshok <toshok@ximian.com>
15583
* rect.h, rect.cpp: add bounding_rect_from_transformed_rect.
15585
* panel.cpp (Panel::ComputeBounds): use the bounding_rect
15586
call, and Rect::GrowBy
15588
* media.cpp (MediaElement::ComputeBounds): use the bounding_rect
15591
2007-08-20 Chris Toshok <toshok@ximian.com>
15593
* shape.h, shape.cpp: move the ellipse bound computing to shape
15596
2007-08-29 Rolf Bjarne Kvinge <RKvinge@novell.com>
15598
* clock.h: Implement TimeManager::GetObjectType.
15599
* dependencyobject.h, dependencyobject.cpp: Move all type management down to
15600
Base (GetObjectType, Is, GetType, GetTypeName), and implement
15601
GetObjectType in the classes that don't do it already. Remove
15602
BASE_FLOATS, simplifying ref counting.
15603
* type.cpp.in, type.h, type.cpp, type.h.in: Added Base and inherited classes
15604
that don't already inherit from DependencyObject.
15605
* runtime.h, runtime.cpp: Add the Fullscreen API (not implemented yet, only
15606
raises events), and implement GetObjectType.
15608
2007-08-28 Sebastien Pouliot <sebastien@ximian.com>
15610
* shape.cpp: Fix StretchUniformToFill
15612
2007-08-28 Sebastien Pouliot <sebastien@ximian.com>
15614
* shape.cpp: Fix StrokeDashArray and StrokeDashOffset as they now
15615
(new since refresh?) need to be multiplied with the stroke's
15618
2007-08-28 Jeffrey Stedfast <fejj@novell.com>
15620
* text.cpp (Render): Fixed the "no text to render" optimization:
15621
don't check TextBlock::TextProperty to see if we have any text to
15622
render, instead check TextBlock::layout (which will have any text
15623
from inlines as well).
15624
(OnPropertyChanged): If the TextProperty changes, recalculate the
15627
2007-08-28 Sebastien Pouliot <sebastien@ximian.com>
15629
* geometry.h: Add a Path* parameter to Draw as we need to know some
15630
stuff (e.g. stroke thickness) in order to detect degenerate cases.
15631
* geometry.cpp: Handle degenerate case for RectangleGeometry.
15632
* panel.cpp, uielementy.cpp: Adjust Draw calls for optional Path
15633
element (NULL in the case of clipping).
15634
* shape.cpp|h: Move cairo_path_t caching logic from Path to Shape
15635
class. Add GetFillRule method. Handle most cases where a large stroke
15636
thickness change the SL drawing behaviour (wrt Cairo behaviour)
15637
* uielement.h: Add flags for empty/normal/degenerate shapes
15639
2007-08-28 Rolf Bjarne Kvinge <RKvinge@novell.com>
15641
* panel.cpp: InsideObject: The point is only inside us if we have a
15642
background, otherwise we act like if we were transparent (which is what
15643
we are if we aren't painting anything inside us).
15644
* geometry.h, uielement.cpp, shape.h: Rename CanFill to IsFilled so that
15645
it's closer to what it actually does.
15646
* shape.cpp: Changed implementation of Shape::CanFill to return true only if
15647
we're actually filled, and rename CanFill to IsFilled so that it's
15648
closer to what it actually does.
15650
2007-08-27 Jackson Harper <jackson@ximian.com>
15652
* dependencyobject.cpp|h: Don't return Collections when getting
15655
2007-08-27 Jeffrey Stedfast <fejj@novell.com>
15657
* mplayer.cpp (Play): Always add a timeout, even for audio-only
15658
media, so that the callback can check if the media has ended and
15659
emit the MediaEnded event.
15661
* media.cpp (AdvanceFrame): Emit the MediaEndedEvent.
15663
* mplayer.cpp (MediaEnded): New convenience function.
15665
2007-08-27 Sebastien Pouliot <sebastien@ximian.com>
15667
* shape.cpp: Remove cairo_new_path call in moon_rounded_rectangle
15668
as this clear any path data in the context (see
15669
test-path-group.xaml)
15671
2007-08-27 Jeffrey Stedfast <fejj@novell.com>
15673
* mplayer.cpp (audio_play): Implement software balance/volume here
15674
rather than using the system's mixer (as that changes the
15675
balance/volume for all applications which is a bad thing). Fixes
15678
2007-08-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
15680
* panel.cpp: InsideObject: only skip checking the children if the
15681
point is not in the clipped area.
15683
* uielement.h, uielement.cpp: Added InsideClip, and moved the
15684
corresponding code from InsideObject to InsideClip.
15686
2007-08-27 Sebastien Pouliot <sebastien@ximian.com>
15688
* xaml.cpp: Fix calculation for smooth quadatric bezier (T) as seen in
15689
tests/xaml/test-path-smoothquadraticbezier.xaml
15691
2007-08-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
15693
* uielement.h, uielement.cpp: Implement InsideObject here too, the same
15694
implementation as Shape has (for our Clip property).
15695
* frameworkelement.cpp: InsideObject: call new base implementation as well.
15696
* panel.cpp: InsideObject: don't check our children, the mouse may be over
15697
them, but they're not visible for some reason (the parent object might
15700
2007-08-27 Rolf Bjarne Kvinge <RKvinge@novell.com>
15702
* panel.cpp: Panel::HandleMotion, if we're the captured element, handle the
15703
motion event even though the mouse isn't over us.
15704
* runtime.h: Add a public Surface::GetCapturedElement.
15706
2007-08-24 Jeffrey Stedfast <fejj@novell.com>
15708
* mplayer.cpp (StopThreads): Need to reset current_pts to 0 so the
15709
video frames will update if we seek backwards.
15711
* uielement.cpp (DoRender): Shortcut out if total_opacity == 0.0
15713
* media.cpp (UpdateProgress): Use the downloader progress value as
15714
the buffering progress value as well (since we don't yet stream).
15715
(DownloaderComplete): Call UpdateProgres() here so that we can
15716
flush the 100% progress value.
15718
* downloader.cpp (Write): Update the progress first, so that the
15719
writer callback can query the actual progress (all data read up to
15720
and /including/ this point in time).
15721
(NotifyFinished): Set progress to 100% and emit an event.
15723
2007-08-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
15725
* value.h[.in]: Added AsNPObj.
15726
* type.cpp[.in]: Initialize Type::NPOBJ correctly.
15728
2007-08-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
15730
* media.cpp: (DownloaderCompleted): The initial state of media
15731
elements that aren't autoplayed is 'Paused'.
15733
2007-08-23 Jeffrey Stedfast <fejj@novell.com>
15735
* media.cpp (MediaElement): Initialize 'loaded' to false.
15736
(SetSource): Don't call DownloaderComplete() if we haven't been
15738
(GetValue): Convert to position from ms to TimeSpan ticks.
15739
(OnLoaded): Set loaded to true and, if we have a downloader which
15740
has completed the download, call DownloaderComplete() which will
15741
then open the media file and autoplay if appropriate.
15742
(OnPropertyChanged): Protect against creating a downloader for an
15745
2007-08-23 Jeffrey Stedfast <fejj@novell.com>
15747
* media.cpp (DownloaderComplete): If we fail to open, emit the
15748
MediaFailedEvent and set some default values.
15749
(OnPropertyChanged): Don't StopLoader() here, do that all in
15750
SetSource (since SetSource needs to do it anyway).
15751
(SetSource): Call StopLoader() here and close the MediaPlayer,
15754
2007-08-23 Jackson Harper <jackson@ximian.com>
15756
* runtime.cpp|h: Make Resize use our event system (so the plugin
15758
* dependencyobject.cpp|h: Rename the add/remove handler functions
15759
to not require dependencyobjects.
15761
2007-08-23 Jeffrey Stedfast <fejj@novell.com>
15763
* media.cpp (OnPropertyChanged): Don't autoplay here.
15764
(advance_frame): Do ms->TimeSpan conversion here, too.
15765
(DownloaderComplete): Instead of calling ::Pause(), just set the
15766
pause state since the MediaPlayer already starts out in paused
15769
2007-08-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
15771
* clock.h: Add defines and methods to convert between timespans and
15773
* media.cpp: Create a default (empty) Markers collection. When setting
15774
MediaPlayer time values, convert between ticks (in TimeSpans) and
15775
milliseconds (which is what MediaPlayer expects). Emit MediaOpened
15776
when we're finished downloading a media, and if we're not autoplaying
15777
it, we're pausing it. Update uses of Value (gint64) constructors.
15778
* value.cpp|h|h.in: Remove the Value (gint64) constructor and add a
15779
Value (gint64, Type::Kind) constructor to avoid mixups between
15780
INT64 and TIMESPAN values. Check for null before unref'ing a
15782
* xaml.cpp: Update uses of Value (gint64) constructors.
15784
2007-08-23 Rolf Bjarne Kvinge <RKvinge@novell.com>
15786
* type.[cpp|h].in: Add const's here that were only added manually
15787
to the generated files.
15789
2007-08-23 Jeffrey Stedfast <fejj@novell.com>
15791
* mplayer.cpp: Implemented volume/balance
15793
2007-08-23 Sebastien Pouliot <sebastien@ximian.com>
15795
* shape.cpp: Remove unneeded (cairo_close_path) and dead (break)
15796
code in Polygon::Draw.
15798
2007-08-22 Chris Toshok <toshok@ximian.com>
15800
* clock.cpp (Tick): guard against division by zero. gets
15801
"monotone" displaying.
15803
2007-08-22 Sebastien Pouliot <sebastien@ximian.com>
15805
* shape.cpp|h: Provide GetTransformOrigin on Shape and remove them
15806
from Rectangle and Ellipse. Monotone requires that on Path and I can't
15807
recall the reason I made this (while all the test cases I made still
15810
2007-08-22 Jeffrey Stedfast <fejj@novell.com>
15812
* mplayer.cpp (MediaPlayer): Init mixer variables.
15814
2007-08-22 Jeffrey Stedfast <fejj@novell.com>
15816
* media.cpp (advance_frame): Don't bother invalidating here, we'll
15817
do that in OnPropertyChanged() for the PositionProperty.
15818
(OnPropertyChanged): Invalidate if Position has changed and
15819
opacity > 0.0f (and we actually have video).
15820
(ComputeBounds): Use the FrameworkElement width/height if set.
15821
(GetTransformOrigin): Same.
15823
2007-08-21 Jeffrey Stedfast <fejj@novell.com>
15825
* mplayer.cpp (Open): Merged both Open() implementations into a
15826
single one. We no longer use Open() without passing a uri (since
15827
Stop() has been implemented in a better way).
15828
(AdvanceFrame): Keep track of our current pts so that we won't get
15829
ahead of the audio if called too often.
15831
2007-08-20 Chris Toshok <toshok@ximian.com>
15833
* rect.cpp (bounding_rect_for_transformed_rect): oops, got
15834
MAX2/MIN2 mixed up.
15836
2007-08-20 Chris Toshok <toshok@ximian.com>
15838
* rect.h, rect.cpp (bounding_rect_for_transformed_rect): horrible
15839
name, I know, but we need this functionality. it's not enough to
15840
use UL and LR corners of the rectangle when computing the bounding
15841
rect for a transformed rectangle. we have to test all 4 points.
15843
* panel.cpp (ComputeBounds): use
15844
bounding_rect_for_transformed_rect.
15846
2007-08-17 Chris Toshok <toshok@ximian.com>
15848
* dependencyobject.cpp (strcase_equal, strcase_hash): new case
15849
insensitive hash functions.
15850
(RegisterFull): the property hash tables (per type, used for
15851
GetDependencyProperty) need to be case insensitive.
15853
2007-08-17 Chris Toshok <toshok@ximian.com>
15855
* xaml.cpp: remove Hidden from the visibility_map.
15856
(enum_from_str): if we don't see a name we recognize, try to parse
15857
it as a number. This could maybe be someplace else.
15859
* enums.h: remove VisibilityHidden
15861
* uielement.h, uielement.cpp: remove
15862
VisibilityHidden/LAYOUT_VISIBLE
15864
* control.h: remove GetLayoutVisible.
15866
* panel.cpp (ComputeBounds): switch from item->GetLayoutVisible to
15867
item->GetVisible, since there's no need to distinguish between the
15870
2007-08-17 Jackson Harper <jackson@ximian.com>
15872
* clock.h: Add ToSeconds utility functions.
15874
2007-08-16 Jeffrey Stedfast <fejj@novell.com>
15876
* list.cpp (InsertSorted): For the stable evrsion, work backwards
15877
instead of forwards (improves performance in the typical case,
15878
altho we aren't gonna sue this feature anymore - z-sorted lists
15879
will now be GPtrArrays).
15881
* garray-ext.cpp|h: New src file containing an extension to
15882
GPtrArray for inserting an item into a presorted array.
15884
* collection.cpp (VisualCollection): z_sorted is now a GPtrArray,
15885
updated all usages of it.
15887
* panel.cpp (Render): Updated now that z_sorted is an array
15888
instead of a linked list.
15890
2007-08-16 Jackson Harper <jackson@ximian.com>
15892
* xaml.cpp: Transforms can be set as attributes, they are just a
15893
matrix in string form, that become a MatrixTransform on the
15895
- Made the debug a little nicer
15897
2007-08-15 Jackson Harper <jackson@ximian.com>
15899
* xaml.cpp: Since the callback setting is now a once per a domain
15900
thing, we don't want to check if they are already set. The 'are
15901
they already set' check only worked when we were setting them at
15902
the beginning of each parsing attempt. With our current setup it
15903
was causing everything to get loaded in the same domain.
15905
2007-08-13 Jeffrey Stedfast <fejj@novell.com>
15907
* mplayer.cpp (AdvanceFrame): Init frame to NULL so we don't
15908
segfault if there are no packets in the queue.
15910
2007-08-13 Chris Toshok <toshok@ximian.com>
15912
* animation.cpp (*KeyFrame::InterpolateValue): for all the
15913
keyframes, if we don't have a Value defined, don't bother
15914
interpolating anything, just return baseValue.
15916
2007-08-13 Chris Toshok <toshok@ximian.com>
15918
* collection.cpp: fix merging/unmerging of child namescopes.
15920
* namescope.h, namescope.cpp: add a flag (merged) and a list of
15921
child merged namescopes which are searched any time this namescope
15922
is searched. Reimplement merge as list->Append, and unmerge as
15925
* dependencyobject.h: add ClearValue, and make GetParent
15928
* dependencyobject.cpp: add impl for ClearValue, and remove
15929
GetParent. Also, when finding a name we only check non-merged
15930
namescopes. The merged ones in the hieararchy will be checked as
15931
the children of the non-merged ones. Given that the set of names
15932
in merged scopes can't overlap, I'm not strictly sure this is
15933
necessary, except to reproduce Silverlight's faulty lookups after
15936
2007-08-10 Jeffrey Stedfast <fejj@novell.com>
15938
* collection.cpp (Clear): Unregister the object names.
15940
* dependencyobject.h (GetName): uhh... just return the value, lets
15941
not go returning "(null)" in string form.
15943
2007-08-10 Chris Toshok <toshok@ximian.com>
15945
* runtime.h, runtime.cpp (key_press_callback): map the gdk keyval
15946
to the silverlight Key and call s->toplevel->HandleKeyDown.
15947
(key_release_callback): same.
15948
(gdk_keyval_to_key): new function, to map between gdk and
15951
* uielement.h, uielement.cpp: add HandleKeyDown/HandleKeyUp, which
15952
just package up the args into a structure and Emit the event.
15954
* enums.h: add the Key enum from the silverlight docs.
15956
2007-08-10 Jeffrey Stedfast <fejj@novell.com>
15958
* dependencyobject.cpp (resolve_property_path): Keep track of the
15959
last '.' so that when we go to get the DependencyProperty, we can
15960
pass the property name component rather than the full path of the
15961
property name. Fixes the color fades in Monotone.
15963
2007-08-09 Chris Toshok <toshok@ximian.com>
15965
* animation.h, animation.cpp: if any keyframe's keytime changes,
15966
we need to re-resolve the collection.
15968
2007-08-09 Jeffrey Stedfast <fejj@novell.com>
15970
* mplayer.cpp (Play): Only start up the io/audio threads if we
15971
aren't simply paused (e.g. if they are already alive).
15972
(IsPlaying): Return true only if playing && !paused.
15973
(audio_loop): Changed the locking logic to lock outside of the
15974
loop rather than inside. We now only release the lock inside the
15975
loop if/when the paused state changes.
15977
2007-08-08 Chris Toshok <toshok@ximian.com>
15979
* animation.h: sprinkle Resolve() methods and resolved flags
15982
* animation.cpp (Storyboard::HookupAnimationsRecurse): call
15983
Resolve() on the animation as we recurse.
15984
(KeyFrameNodeComparer): compare using the keyframe's resolved
15986
(KeyFrameNodeFinder): nuke.
15987
(KeyFrameCollection::Add): just mark the collection as needing to
15988
be resolved. don't muck with the sorted list here.
15989
(KeyFrameCollection::Insert): same.
15990
(KeyFrameCollection::Remove): same.
15991
(KeyFrameCollection::Clear): also mark the collection as
15993
(KeyFrameCollection::GetKeyFrameForTime): use resolved keytime.
15994
(KeyFrameAnimation_ResolveKeyFrames): implement most of the
15995
algorithm posted at
15996
http://msdn2.microsoft.com/en-us/library/ms742524.aspx to resolve
15997
keytimes of different types. this is all untested, unfortunately,
15998
as I can't get non-TimeSpan keytimes to work on SL.
15999
(*AnimationUsingKeyFrames::GetCurrentValue): use resolved
16001
(*AnimationUsingKeyFrames::GetNaturalDurationCore): resolve
16002
the key frames before using sorted_list.
16003
(*AnimationUsingKeyFrames::Resolve): override the empty
16004
default, and call KeyFrameAnimation_ResolveKeyFrames.
16006
2007-08-08 Chris Toshok <toshok@ximian.com>
16008
* clock.cpp (Begin): make sure we handle clocks that seek in the
16011
2007-08-08 Chris Toshok <toshok@ximian.com>
16013
* canvas.cpp (Canvas::Canvas): create a temporary namescope
16014
whenever we create a canvas. We need this for animations that are
16015
started before the canvas is attached to the tree, or in any case
16016
where FindName is called on code associated with a subtree before
16017
it's added to the surface.
16019
* animation.cpp (Storyboard::HookupAnimationsRecurse): turns out
16020
Storyboard.TargetName can be assigned to the parent storyboard as
16021
well as the animation. Loop up the clock hierarchy when looking
16022
for the targetname.
16024
2007-08-07 Chris Toshok <toshok@ximian.com>
16026
* animation.cpp, animation.h
16027
(*AnimationUsingKeyFrames::GetNaturalDurationCore): no need to
16028
iterate over all the keyframes looking for the last one - just
16029
look at the last one in the sorted list.
16031
2007-08-07 Jeffrey Stedfast <fejj@novell.com>
16033
* media.cpp (SetValue): Only crop position values if we're not
16034
updating state from the media player (we're allowed to set values
16035
outside of the duration range from the media player). Also, do our
16037
(OnPropertyChanged): Don't do our seeking here because we can't
16038
get the actual seek position as GetValue()'s override will
16039
re-query the media player for its actual position.
16041
* mplayer.cpp (Open): Don't create the threads here anymore,
16042
create them in Play() instead. Also calculate ahead of time the
16043
new audio->pts_per_frame value which allows the video to keep even
16044
better sync with the audio (we used to base this on actual time
16045
spent playing the audio frame rather which could sometimes be off
16047
(AdvanceFrame): If seek_pts is non-zero, then we need to base
16048
target_pts on it rather than video->initial_pts (assuming we have
16049
no audio to sync to).
16050
(Play): Set playing = true and create the audio/io threads.
16051
(Close): A lot of the logic has been moved into a new method,
16053
(StopThreads): Stop the threads and reset minimal state.
16054
(Stop): Call StopThreads() and seek back to the beginning of the
16056
(Seek): Implemented.
16057
(Position): Back to subtracting the initial_pts so that we always
16058
have a range of 0:duration. If seek_pts is set and >target_pts,
16059
use that rather than target_pts so even if we are in a stopped
16060
state, querying the position will return expected results.
16061
(audio_play): Return audio->pts_per_frame rather than the actual
16064
2007-08-06 Jackson Harper <jackson@ximian.com>
16066
* xaml.cpp: add VisualCollections.
16068
2007-08-06 Chris Toshok <toshok@ximian.com>
16070
* clock.cpp, clock.h: this might be completely wrong and break
16071
other demos... but childless clockgroups Stop when they hit their
16072
duration, they don't SkipToFill. fixes the silverlightclr balls
16075
2007-08-06 Larry Ewing <lewing@novell.com>
16077
* dependencyobject.h:
16078
* dependencyobject.cpp:
16081
* type.cpp: add const to the various string apis.
16083
2007-08-06 Jeffrey Stedfast <fejj@novell.com>
16085
* mplayer.cpp: Fixes to make it work with media files w/ no audio
16086
(or where we are unable to play the audio).
16088
2007-08-04 Chris Toshok <toshok@ximian.com>
16090
* brush.h, brush.cpp: add VisualBrush.
16092
* xaml.cpp (xaml_init): hookup VisualBrush parsing.
16094
* value.h, type.h, type.cpp: sync up the VisualBrush stuff.
16096
2007-08-04 Chris Toshok <toshok@ximian.com>
16098
* panel.cpp (Panel::ChildInvalidated): for the Invalidated stuff
16099
to work properly, panel needs to call
16100
FrameworkElement::Invalidate, not parent->ChildInvalidated
16103
* uielement.h, uielement.cpp: add an Invalidated event for use by
16106
2007-08-03 Chris Toshok <toshok@ximian.com>
16108
* collection.cpp (Collection::Add, Collection::Insert): reinstate
16109
jackson's merging code, but only do it if @data's namescope is
16112
* namescope.h, namescope.cpp: Add {Set,Get}Temporary.
16114
* xaml.cpp (xaml_create_from_str): set the namescope to be
16115
temporary if create_namescope is false.
16116
(xaml_create_from_file): same.
16118
2007-08-03 Chris Toshok <toshok@ximian.com>
16120
* panel.h, panel.cpp: add an optimization for the 2 updates that
16121
travel down the tree (UpdateTotalOpacity and UpdateTransform).
16122
Since we're already invalidating the panel's bounds (in fact we do
16123
it before traversing), we can ignore the invalidates which come
16124
back up the tree from the children.
16126
* media.cpp, media.h: make NaturalDuration a Duration. this gets
16127
the last of roeder's demos sorta working.
16129
2007-08-03 Jeffrey Stedfast <fejj@novell.com>
16131
* mplayer.cpp: Whenever we change the 'paused' state, signal to
16132
the other thread(s) that it has changed so that they can go on
16133
with their lives immediately rather than waiting for the kernel to
16136
2007-08-02 Chris Toshok <toshok@ximian.com>
16138
* control.cpp (GetTransformFor, OnSubPropertyChanged): now, before
16139
you get your panties in a twist, check this out. If you have a
16140
control and set both its Canvas.LeftProperty and that of its root
16141
object (the return value of InitializeFromXaml), the effects are
16142
*additive*, yet GetValue on each object returns exactly what you'd
16143
expect - the value you set on it. The only reasonable explanation
16144
for this is that Control has Canvas's layout algorithm c&p'ed into
16147
2007-08-02 Chris Toshok <toshok@ximian.com>
16149
* xaml.h, xaml.cpp: switch the xaml_create_from_{file,str}
16150
functions to returning DependencyObjects instead of UIElements.
16151
in javascript you can create arbitrary xaml hierarchies (transform
16152
groups, brushes, etc).
16154
* control.cpp: need a cast here due to the above change.
16156
2007-08-02 Chris Toshok <toshok@ximian.com>
16158
* runtime.h, runtime.cpp (Surface::Invalidate): add this call, and
16159
stuff the gtk_widget_queue_draw_area call there.
16161
* uielement.h, uielement.cpp, canvas.h, canvas.cpp, panel.h,
16162
panel.cpp, control.h, control.cpp: change the way
16163
UIElement::Invalidate works. It used to call GetSurface() which
16164
would recurse up the tree to the root, and return the Surface*
16165
back down. It would then call gtk_widget_queue_draw_area there.
16166
This left little room for optimization. Switch everything over to
16167
using a new method implemented by all container classes,
16168
ChildInvalidated. Basically Invalidate's recurse up to the root
16169
as before, but the actual gtk call happens at the root (well, 1
16170
level above it. at the Surface itself). In the future we can
16171
freeze Invalidates in container elements when they do things like
16172
update their transform so we'll just send 1 Invalidate up the
16173
tree, not N Invalidates for N children.
16175
2007-08-02 Jeffrey Stedfast <fejj@novell.com>
16177
* media.cpp (DownloaderComplete): Set the CanPause and CanSeek
16180
* mplayer.cpp (~MediaPlayer): Destroy the pause_mutex
16181
(IsPaused): New method.
16183
* media.cpp (MediaElement::GetValue): If the Position is being
16184
requested, query the MediaPlayer.
16185
(MediaElement::SetValue): Make sure the PositionProperty value is
16186
within bounds and force it to be if not.
16187
(MediaElement::Stop): Do nothing if we aren't playing/paused.
16188
(MediaElement::OnPropertyChanged): Call mplayer->Seek() if the
16191
2007-08-02 Chris Toshok <toshok@ximian.com>
16193
* uielement.h, uielement.cpp: propagate opacity changes the way we
16194
do transform changes. Store the total opacity of an item in the
16195
item, as we do with absolute_xform. This keeps us from doing a
16196
walk up to the root of the hierarchy every time we have to draw an
16197
element (which we we were doing before in
16198
UIElement::GetTotalOpacity.)
16200
* panel.cpp, panel.h: when we update our total opacity, loop over
16201
the children telling them to update as well.
16203
* collection.cpp: propagate the panel's total opacity downward
16204
into the newly added subtree.
16206
2007-08-02 Chris Toshok <toshok@ximian.com>
16208
* uielement.h, uielement.cpp, canvas.h, canvas.cpp: inline
16209
GetSurface/SetSurface.
16211
2007-08-02 Chris Toshok <toshok@ximian.com>
16213
* canvas.cpp (Canvas::OnChildPropertyChanged): return true if we
16214
handle the property changing.
16216
* control.h, control.cpp: rip out all the proxying behavior.
16217
Control now works as a very specialized container. Imagine if
16218
Panel had only 1 child, and no generalized way of manipulating it
16219
(other than initializing it from a xaml fragment), and you have
16222
2007-08-01 Larry Ewing <lewing@novell.com>
16224
* xaml.cpp: don't ever make the previous point relative.
16226
2007-08-01 Jeffrey Stedfast <fejj@novell.com>
16228
* text.h: Removed deprecated enum values for FontWeights
16230
* media.cpp, mplayer.cpp: Updated to add features newly added with
16231
the July 2007 release of Silverlight 1.1
16233
2007-07-31 Chris Toshok <toshok@ximian.com>
16235
* runtime.cpp (Attach): attach a namescope to the toplevel canvas
16236
if there isn't one when it's attached.
16238
2007-07-31 Jeffrey Stedfast <fejj@novell.com>
16240
* media.cpp: NaturalDuration is actually a TimeSpan, not a
16243
2007-07-31 Chris Toshok <toshok@ximian.com>
16245
* media.h, media.cpp: move the MediaBase events to MediaElement.
16247
2007-07-31 Jeffrey Stedfast <fejj@novell.com>
16249
* text.h: Added StyleSimulations enum values.
16251
* xaml.cpp: Updated the StyleSimulations enum mapping.
16253
2007-07-31 Chris Toshok <toshok@ximian.com>
16255
* text.h, text.cpp: Glyph.StyleSimulations changed from a char* to
16256
enum StyleSimulations.
16258
* xaml.cpp: add stylesimulations enum map.
16260
2007-07-30 Chris Toshok <toshok@ximian.com>
16262
* uielement.cpp, uielement.h: add the Tag property.
16264
2007-07-30 Chris Toshok <toshok@ximian.com>
16266
* animation.h, animation.cpp: add the three KeyFrameCollection
16267
subclass types, and switch all references to "KeyFrameCollection"
16268
to the more specific types.
16270
* xaml.cpp (xaml_init): make KeyFrameCollection a ghost element
16271
with Color/Double/PointKeyFrameCollections as subclasses.
16273
* value.h, type.h, type.cpp: sync up with the KeyFrameCollection
16276
2007-07-30 Larry Ewing <lewing@novell.com>
16278
* color.cpp: make sure that we size expand 3 digit color
16279
specifications properly.
16281
2007-07-30 Chris Toshok <toshok@ximian.com>
16283
* uielement.h, uielement.cpp: remove InsideObject from here, and
16284
move its warning to Visual::InsideObject instead.
16286
* visual.h, visual.cpp: add visual.cpp, and move implementation of
16287
InsideObject there.
16289
* Makefile.am (libmoon_la_SOURCES): add visual.cpp
16291
2007-07-30 Larry Ewing <lewing@novell.com>
16293
* xaml.cpp: correct smooth path segments to use the correct value for
16294
cp1 and don't try to make it relative because all the sources are
16295
absolute. Test case at http://intertwingly.net/stories/2007/05/06/?icon=caution
16297
2007-07-30 Chris Toshok <toshok@ximian.com>
16299
* clock.h, clock.cpp: add very naive, probably broken first pass
16302
2007-07-30 Chris Toshok <toshok@ximian.com>
16304
* geometry.h, geometry.cpp: PathFigure.IsFilled is gone in RC1.
16306
2007-07-30 Chris Toshok <toshok@ximian.com>
16308
* brush.h, brush.cpp: track breaking change of the
16309
Brush.Transform/RelativeTransform properties - they're speced to
16310
be Transforms, not TransformGroups.
16312
2007-07-29 Chris Toshok <toshok@ximian.com>
16314
* collection.h, collection.cpp: change "ResourceCollection" to
16315
"ResourceDictionary".
16317
* uielement.cpp: same.
16319
* type.cpp, type.h, value.cpp, value.h: same.
16323
2007-07-27 Chris Toshok <toshok@ximian.com>
16325
* xaml.cpp (xaml_set_property_from_str): look up the enum map from
16326
the property name, not the value.
16328
2007-07-27 Chris Toshok <toshok@ximian.com>
16330
* transform.h, transform.cpp: cache the transformation matrix once
16331
we recompute it. This gives us the responsiveness of delayed
16332
updating without the cost of calculating the matrix once per
16333
object associated with it. a property change just sets the
16334
"need_update" flag, which causes a recompute on the next
16337
2007-07-27 Larry Ewing <lewing@novell.com>
16339
* uielement.cpp: implement initial support for OpacityMask.
16341
2007-07-26 Miguel de Icaza <miguel@novell.com>
16343
This implements support for relative MediaElement sources and
16344
makes all of them go through the downloader, like we do for
16347
* media.cpp (MediaElement): Do an implementation of SetSource
16348
similar to the one in Image. Although there is some code that
16349
could be shared, the problem is that some parameters get in the
16352
(MediaElement::DownloaderComplete): Move the playback here.
16354
(StopLoader): Utility routine, factor this out also on the Image
16355
case, and hook this up to the destructor of Image and
16359
2007-07-25 Chris Toshok <toshok@ximian.com>
16361
* media.h, media.cpp: add the MediaElement events,and emit
16362
DownloadProgressChanged and CurrentStateChanged.
16364
2007-07-25 Chris Toshok <toshok@ximian.com>
16366
* media.h, media.cpp: register the 3 MediaBase events. now we
16367
need to figure out where to emit them.
16369
2007-07-25 Jackson Harper <jackson@ximian.com>
16371
* value.cpp: Assign the kind for NPOBJs.
16373
2007-07-25 Miguel de Icaza <miguel@novell.com>
16375
* openfile.cpp (open_file_dialog_show): Change this method to
16376
return an array with all the selected files.
16378
2007-07-24 Chris Toshok <toshok@ximian.com>
16380
* runtime.h, runtime.cpp: permit setting of the the surface's
16381
background color, which is used to fill the widget before we
16382
render the toplevel canvas. only do this, though, if the canvas
16383
is not transparent.
16385
2007-07-24 Chris Toshok <toshok@ximian.com>
16387
* runtime.cpp (Surface::Attach): call Canvas::SetSurface instead
16388
of making the assignment.
16390
* canvas.h, canvas.cpp: make surface private, and add SetSurface
16391
for runtime.cpp to use.
16393
2007-07-24 Chris Toshok <toshok@ximian.com>
16395
* brush.h, brush.cpp: make ImageBrush::SetSource take a const
16398
2007-07-24 Jackson Harper <jackson@ximian.com>
16400
* type.h.in: Add the NPOBJ type.
16401
* value.h.in: Add the npobj value, it's just stored as a pointer
16402
so that we don't become dependent on mozilla.
16403
* value.cpp|h,type.h: sync.
16405
2007-07-24 Jackson Harper <jackson@ximian.com>
16407
* typegen.cs: Kind.cs lives in agmono now.
16410
2007-07-24 Chris Toshok <toshok@ximian.com>
16412
* media.h, media.cpp: const-ify the PartName argument of the
16413
SetSource methods. also, ref the new downloader before unreffing
16414
the old one in Image::SetSource. they could be the same object.
16416
2007-07-24 Chris Toshok <toshok@ximian.com>
16418
* geometry.cpp (RectangleGeometry::Draw): if the geometry's rect
16419
is NULL, return early.
16421
2007-07-23 Chris Toshok <toshok@ximian.com>
16423
* Makefile.am (libmooninclude_headers): add some missing headers.
16425
* error.h: split out the error classes here.
16427
* libmoon.h: include error.h
16429
* xaml.h: remove the error classes from here.
16431
* xaml.cpp: include error.h
16433
2007-07-23 Miguel de Icaza <miguel@novell.com>
16435
* runtime.cpp: Removed the timer code from here, move to plugin.
16437
2007-07-20 Chris Toshok <toshok@ximian.com>
16439
* xaml.cpp (custom_add_child): this method is what's called when
16440
we add a child to an element of a custom namespace. Trouble is,
16441
it might be a panel subclass. If it is, and the child is a
16442
UIElement subclass, go ahead and add the child using
16443
panel_child_add. This gets the Loaded events working properly in
16444
the chess demo (the trouble was that the custom children weren't
16445
even added to the tree, so their OnLoaded methods weren't being
16448
2007-07-20 Miguel de Icaza <miguel@novell.com>
16450
* collection.cpp: Add support for RemoveAt.
16452
* runtime.cpp (html_timer_timeout_add): Added helper routine to
16453
setup Html timeouts.
16455
2007-07-20 Chris Toshok <toshok@ximian.com>
16457
* canvas.cpp, canvas.h, panel.cpp, panel.h: move much of the guts
16458
from Canvas to Panel. I consider this cleaning up the source, as
16459
it's entirely possible to write Panel subclasses that aren't
16460
Canvas subclasses, but if you did that you'd have no
16461
rendering/event handling.
16463
Now pretty much all logic that involves iterating over the list of
16464
children is in Panel. This also greatly simplifies Canvas. It is
16465
now just a Panel with 2 interesting things about it: 1) it
16466
provides 2 attached properties to lay out its children, and 2) it
16467
allows the surface to dictate its bounds if it's the toplevel
16470
2007-07-20 Chris Toshok <toshok@ximian.com>
16472
* downloader.cpp (Open): set the uri of the downloader.
16474
2007-07-20 Chris Toshok <toshok@ximian.com>
16476
* dependencyobject.cpp: allocate the event hash/ptrarray lazily,
16477
so the potentially large number of objects which don't register
16478
events don't allocate them.
16480
2007-07-20 Chris Toshok <toshok@ximian.com>
16482
* clock.h, clock.cpp: lock around access to the tick_call list, so
16483
tick calls can be added from other threads.
16485
2007-07-16 Miguel de Icaza <miguel@novell.com>
16487
* media.cpp (SetSource): Also handle Completed.
16489
* downloader.cpp (Send): If a send operation is performed on an
16490
object that has completed its operation, immediately emit the
16491
finished event or error event.
16493
(Open): During open invalidate the state, to
16494
ensure that new downloads are properly triggered.
16496
2007-07-16 Chris Toshok <toshok@ximian.com>
16498
* frameworkelement.h, frameworkelement.cpp: we need
16499
framework_element_new so managed subclasses of FrameworkElement
16502
* uielement.h, uielement.cpp: same for this type.
16504
2007-07-13 Chris Toshok <toshok@ximian.com>
16506
* frameworkelement.cpp (FrameworkElement::OnPropertyChanged):
16507
normally we'd only update the bounds of this element on a
16508
width/height change, but if the render transform is someplace
16509
other than (0,0), the transform needs to be updated as well.
16511
2007-07-12 Chris Toshok <toshok@ximian.com>
16513
* runtime.h, runtime.cpp, uielement.cpp, uielement.h: Add mouse
16514
capturing. This should be on Visual and not UIElement, but we
16515
don't dispatch events that way.
16517
2007-07-12 Chris Toshok <toshok@ximian.com>
16519
* downloader.h, downloader.cpp: make the Downloader object a bit
16520
more C++ friendly, and make all the private data private.
16522
Also, take this opportunity to switch to using RegisterEvent/Emit
16523
to generate events, instead of the custom listeners. This will
16524
let JS hook up to the events.
16526
* media.h, media.cpp: track the downloader changes.
16528
2007-07-11 Jackson Harper <jackson@ximian.com>
16530
* collection.cpp: Comment out the namescope merging stuff for now,
16531
it causes some regressions.
16533
2007-07-12 Jackson Harper <jackson@ximian.com>
16535
* xaml.cpp: Restart the whole attribute parsing loop when the
16536
reparse flag is set, otherwise the first attribute will be
16539
2007-07-11 Chris Toshok <toshok@ximian.com>
16541
* uielement.cpp (UIElement::UIElement): the event names need to
16542
match those used by microsoft. makes it easier to handle the
16543
event hooking up in the plugin, where the event names are used.
16545
2007-07-11 Chris Toshok <toshok@ximian.com>
16547
* xaml.cpp (xaml_set_property_from_str): the plugin does its own
16548
resolution of properties now, so it doesn't need to pass the
16549
property name. Change this to take the DependencyProperty*
16552
* xaml.h: change prototype for xaml_set_property_from_str.
16554
2007-07-11 Jackson Harper <jackson@ximian.com>
16556
* collection.cpp: When new objects are added to a collection, try
16557
to merge them into the containers namescope.
16559
2007-07-11 Jackson Harper <jackson@ximian.com>
16561
* xaml.cpp: We need to stop parsing if there is an error while
16562
resolving a custom namespace type.
16564
2007-07-10 Chris Toshok <toshok@ximian.com>
16566
* dependencyobject.cpp (resolve_property_path): we need to reset
16567
"expression_found" when we hit a '.' so that we'll lookup what
16570
2007-07-10 Chris Toshok <toshok@ximian.com>
16572
* dependencyobject.cpp (resolve_property_path): we need to be able
16573
to handle more than just single digit indexers. use strtol and
16574
recompute 'i' afterward.
16576
* canvas.cpp (Canvas::InsideObject): revert the change that helped
16577
dr.popper because it breaks lunareclipse.
16579
2007-07-09 Chris Toshok <toshok@ximian.com>
16581
* demo.cpp: don't pass the parser callbacks to the individual xaml
16584
* control.h, control.cpp: don't pass the parser callbacks to
16585
initialize_from_xaml.
16587
* xaml.h, xaml.cpp: remove the parser callbacks from the
16588
individual parsing methods, and add xaml_set_parser_callbacks.
16590
2007-07-09 Jeffrey Stedfast <fejj@novell.com>
16592
* mplayer.cpp (audio_loop): If we break out of the loop because
16593
the media player was stopped, don't forget to unlock the pause
16595
(Close): Don't free the uri here.
16596
(~MediaPlayer): Free it ehre, though.
16598
2007-07-09 Chris Toshok <toshok@ximian.com>
16600
* uielement.h, uielement.cpp: we need to register the
16601
KeyUp/KeyDown events (even if we aren't emitting them) to keep
16602
from getting a warning when running aglayoutdemo.
16604
* xaml.cpp (timespan_from_str): port our System.TimeSpan.Parse
16605
method (and remove all error handling, which should likely go back
16606
in) and replace the previous implementation. It was failing to
16607
parse timespans like this: 0:0:0.20000000 because it was treating
16608
it as if I wanted "20000000" tenths of a second, instead of 2.
16609
This makes the 'pop' animation in dr.popper actually show up.
16611
2007-07-09 Chris Toshok <toshok@ximian.com>
16613
* animation.cpp: fix some missing NotifyAttacheesOfPropertyChange
16615
(Storyboard::Begin): This is a dubious change. Remove the check
16616
to see if we weren't already Active. This fixes the calendar view
16617
in airlines, since there's a window where the start animation is
16618
startable when we enter a day, but the end animation isn't (since
16619
it's still active) when we leave. So we're left with a selected
16622
* clock.cpp: instead of Stopping clocks that come to the end of
16623
their active period, move to the Filling state. ClockGroups with
16624
automatic duration and no Active children still stop correctly.
16626
2007-07-08 Chris Toshok <toshok@ximian.com>
16628
* many-files (again!): another, smaller change to the event stuff.
16629
stop using strings for everything that we can. Register events at
16630
object construction time, and use those id's for everything else.
16631
The string interface is still around because of
16632
EventTrigger::Set/RemoveTarget, as well as the managed code.
16634
One further change that's needed - the id's are per-instance now,
16635
which is stupid. they should be static.
16637
This further cuts down the work (in terms of hash functions) that
16638
needs to be performed in order to dispatch an event.
16640
2007-07-08 Chris Toshok <toshok@ximian.com>
16642
* many-files: fairly big change. Stick the EventObject class
16643
between Base and DependencyObject in the hierarchy, and get rid of
16644
DependencyObject's "events" field. Get rid of all the registered
16645
events on surface, and emit them directly from the elements where
16646
they occur. This allows us to remove the Surface* parameter to
16647
all the event methods. Also, change the EventHandler signature to
16648
include the sender of the event as well as a "calldata" pointer,
16649
which is where we stuff the unmanaged MouseEventArgs (and later
16650
will the KeyboardEventArgs).
16652
Next step is to add RegisterEvent in EventObject and use that
16653
integer id everywhere instead of the string name when we Emit
16656
2007-07-07 Chris Toshok <toshok@ximian.com>
16658
* dependencyobject.h: add GetName() instance method.
16660
* dependencyobject.cpp (dependency_object_get_name): and call it
16663
* shape.h, shape.cpp (Shape::GetSizeForBrush): we need this
16664
implementation here since FrameworkElement just goes by
16667
* canvas.cpp (Canvas::FindMouseOver): remove the "still over the
16668
same element" optimization. it's stupid and doesn't work. what
16670
(Canvas::ComputeBounds): simplify this by using
16671
item->GetLayoutVisible instead of item->GetValue.
16672
(Canvas::Render): enable the rendering optimization where we only
16673
bother rendering elements whose bounds intersect those of the
16674
rectangle we're repainting. This seriously speeds up airlines.
16676
* uielement.cpp, uielement.h: add GetLayoutVisible() method, and
16677
another flag. now the three VisibilityProperty states are
16678
represented by two flags.
16680
Also, remove the implementation of GetSizeForBrush (not all
16681
UIElements are stroked) and warn callers.
16683
* control.cpp: Attach to the real object, and report back its
16684
property changes to our parents. Also, control_initialize_from_xaml
16685
should call Control::InitializeFromXaml.
16687
* control.h: override the 3 Get*Visible methods from UIElement,
16688
and return our real_object's state.
16692
2007-07-07 Jeffrey Stedfast <fejj@gnome.org>
16694
* demo.cpp (FileDownloadState::Send): Only notify complete if uri
16695
!= NULL (if uri is NULL, then it means it couldn't be opened).
16696
(FileDownloadState::Open): notify error if we can't open the file.
16698
* mplayer.cpp: Fix to make sure we have
16699
AVCODEC_MAX_AUDIO_FRAME_SIZE bytes left in our output buffer
16700
before calling decode to prevent an ffmpeg warning.
16702
2007-07-07 Chris Toshok <toshok@ximian.com>
16704
* brush.cpp: make sure to use GetSizeForBrush for everything
16705
instead of cairo_stroke_extents, which won't work for non-stroked
16706
elements like canvases. Also, notify changes to the
16707
GradientStopCollection up the hierarchy properly.
16709
* frameworkelement.h, frameworkelement.cpp: add a GetSizeForBrush
16710
implementation for FrameworkElement so Canvases (and other
16711
uielement subclasses) can have brushes assigned to them (canvas
16712
uses it for its background.)
16714
* canvas.cpp (Canvas::Render): remove the unused label.
16716
2007-07-06 Miguel de Icaza <miguel@novell.com>
16718
* media.cpp: Do not pass the filename as the result now on the
16719
calls. Code must use the downloader_get_response_text or
16720
downloader_get_response_file to get the contents from the download
16721
(as the request will include the part name).
16723
* downloader.cpp: Add a cache for zip file parts.
16725
* media.h (Image): track the part name that was requested on the
16728
2007-07-06 Chris Toshok <toshok@ximian.com>
16730
* canvas.cpp (Canvas::ComputeBounds): if the width/height
16731
framework element properties haven't been set (their default is
16732
0.0), then don't union it with the rest of our bounds.
16734
2007-07-06 Chris Toshok <toshok@ximian.com>
16736
* runtime.h, runtime.cpp: continue the marginalization of
16737
Surface-as-general-data-dumping-ground by passing the cairo
16738
context to all the event handlers that need it (all but Leave, but
16739
should we make this distinction?).
16741
Make tons of stuff private that doesn't need exposing. Add
16742
accessors for the easier things, and leave the callbacks public
16743
for now. Also clean up the partially C/partially c++
16744
implementation in runtime.cpp. Now the C api is a thin wrapper
16745
around instance method calls, and all the gtk/clock event
16746
callbacks are static methods so they can still access the private
16749
* canvas.h, canvas.cpp, control.h, control.cpp, uielement.h,
16750
uielement.cpp: fallout from the event signature changes - add
16751
cairo_t* to a lot of places, basically.
16753
* demo.cpp: no need to use the C api for Surface here. just use
16756
2007-07-06 Jeffrey Stedfast <fejj@novell.com>
16758
* media.cpp (OnPropertyChanged): Oops, be consistant with other
16759
implementations - only chain up if it wasn't a property owned by
16762
* text.cpp: We don't use TextBlock::Inlines anymore, so remove it
16763
to save object size.
16765
* media.cpp (OnPropertyChanged): Fixed to always notify property
16766
listeners and chain up to our parent impl.
16768
2007-07-06 Miguel de Icaza <miguel@novell.com>
16770
* downloader.cpp: Implement the zip file support for the
16771
downloader using miniZip, from:
16773
http://www.winimage.com/zLibDll/minizip.html
16775
The implementation is in C++, so there are no needs to delegate
16776
this to the managed side as previously planned.
16778
There are two APIs: one returns a filename, the other returns the
16779
file loaded into memory, with the size of the memory blob.
16781
2007-07-06 Chris Toshok <toshok@ximian.com>
16783
* uielement.h, uielement.cpp (UIElement::OnPropertyChanged): keep
16784
track of the visibility (boolean, not three-state) and hit test
16785
visibility state in our flags. implement GetVisible() and
16786
GetHitTestVisible() using the flags.
16788
* canvas.cpp (Canvas::CheckOver): use GetVisible and
16789
GetHitTestVisible to avoid property lookups when dispatching
16792
2007-07-06 Chris Toshok <toshok@ximian.com>
16794
* runtime.cpp (measuring_context_create): we keep a singleton
16795
measuring context now.
16796
(measuring_context_destroy): do nothing here. it's freed in
16798
(runtime_shutdown): free up our measuring context.
16800
* canvas.cpp, canvas.h, control.cpp, control.h,
16801
frameworkelement.cpp, frameworkelement.h, shape.cpp, shape.h,
16802
text.cpp, text.h, uielement.cpp, uielement.h, visual.h: change
16803
InsideObject to take the cairo_t* instead of the Surface.
16805
2007-07-06 Chris Toshok <toshok@ximian.com>
16807
* runtime.cpp (Surface::SetCursor): new method, used in the event
16808
code to update the cursor as we enter/leave elements.
16810
* runtime.h: add method, cursor_instance field, and move the body
16811
of the Surface ctor (and initializations) to the .cpp file.
16813
* xaml.cpp: fix name of Cursor property enum mapping.
16815
* canvas.h, canvas.cpp, uielement.h, uielement.cpp, control.h,
16816
control.cpp: add MouseCursor* arg to HandleMotion so we can report
16817
back cursor changes on elements.
16819
Also, in canvas.cpp, implement IsHitTestVisible checking in
16822
* enums.h: add the MouseCursor enum.
16824
2007-07-05 Chris Toshok <toshok@ximian.com>
16826
* Makefile.am (libmooninclude_headers): remove cutil.h
16827
(libmoon_la_SOURCES): remove cutil.cpp
16829
* cutil.h, cutil.cpp: remove. no longer necessary.
16831
* text.cpp (TextBlock::ComputeBounds): load the identity matrix
16832
before stroke/fill_extents to work around a cairo bug that was
16833
giving us enormous bounds on rotated elements. also, -1 from x/y
16834
and +2 to width/height of our bounds.
16836
* media.cpp (MediaElement::ComputeBounds): load the identity
16837
matrix before stroke/fill_extents to work around a cairo bug that
16838
was giving us enormous bounds on rotated elements. also, -1 from
16839
x/y and +2 to width/height of our bounds.
16840
(Image::ComputeBounds): same.
16842
* shape.cpp (Shape::DoDraw): only call cairo_new_path if there's
16843
no stroke, we drew it, and do_op was true.
16844
(Shape::ComputeBounds): load the identity matrix before
16845
stroke/fill_extents to work around a cairo bug that was giving us
16846
enormous bounds on rotated elements. also, -1 from x/y and +2 to
16847
width/height of our bounds.
16849
* uielement.cpp (OnSubPropertyChanged): we don't need to watch for
16850
subproperty changes on RenderTransformOrigin, since it's a point
16851
and not a dependency object.
16853
2007-07-05 Chris Toshok <toshok@ximian.com>
16855
* runtime.cpp, runtime.h: store the last mouse position of events
16856
so that we can continue to update after the clock tick (and
16857
provide motion/enter/leave events to elements that might have
16858
moved under the pointer).
16860
The "update-input" event isn't presently emitted (see clock.cpp)
16861
because it results in this code calling HandleMotion on every
16862
tick, which ends up emitting the C# event (which is wrong).
16864
* clock.h, clock.cpp: add a (presently unused) phase to the clock
16865
tick to update the current mouse over after we've updated our
16866
clocks (and therefore possibly updated the transforms on
16869
2007-07-05 Chris Toshok <toshok@ximian.com>
16871
* dependencyobject.cpp (dependency_object_get_name): change this
16872
to return the x:Name value if there is one (and "(null)" if not).
16873
(dependency_object_get_type_name): and make this function do the
16874
job originally done by _get_name.
16876
* dependencyobject.h: add dependency_object_get_type_name
16879
2007-07-05 Chris Toshok <toshok@ximian.com>
16881
* uielement.h, uielement.cpp, canvas.h, canvas.cpp: refactor the
16882
mouse event code so that the Handle* calls return void, like the
16883
Enter/Leave calls do. Also, all checks for "inside"-ness happen
16884
in the canvas/parent object. Also factored out the loop over
16885
children to "FindMouseOver", with the checks happening in
16888
This needs more testing to make sure that we're still emitting
16889
events in the right order/amount as silverlight.
16891
In uielement.cpp, also add support for showing the bounding
16894
* control.h, control.cpp: track event refactoring.
16896
* frameworkelement.cpp (FrameworkElement::InsideObject): remove
16897
the bounding rect check. that's handled in the parent object now.
16899
2007-07-04 Chris Toshok <toshok@ximian.com>
16901
* media.cpp, media.h: rework our caching for images. we now
16902
properly refcount things, don't leak the filename (or the
16903
surface), share 1 xlib surface amongst all Image's, and don't
16904
crash. improvements all around!
16906
2007-07-04 Miguel de Icaza <miguel@novell.com>
16908
* value.cpp (Value): Add a couple of extra cases I had missed
16909
where we should be using g_new instead of new as FreeValue always
16912
2007-07-03 Jackson Harper <jackson@ximian.com>
16914
* xaml.cpp: Add the stylus types and some missing collections,
16915
this brings us up to sync with everything implemented in
16918
2007-07-03 Chris Toshok <toshok@ximian.com>
16920
* shape.cpp (Shape::DoDraw): if we aren't going to stroke (but we
16921
filled), we need to call cairo_new_path.
16923
2007-07-03 Jackson Harper <jackson@ximian.com>
16925
* xaml.cpp: Some post parsing memory cleanup and a little extra
16928
2007-07-03 Chris Toshok <toshok@ximian.com>
16930
* text.h: add prototype for text_block_set_font_source.
16932
2007-07-03 Chris Toshok <toshok@ximian.com>
16934
* shape.cpp, shape.h: add Shape::OnSubPropertyChanged to deal with
16935
brush property changes. Property chain up to
16936
Shape::OnSubPropertyChanged from Path::OnSubPropertyChanged.
16937
(Shape::ComputeBounds): we need to do the fill, so pass true as
16938
consider_fill to DoDraw. otherwise a stroke-less filled shape
16939
gets bounds with w == h == 0.0.
16941
2007-07-03 Chris Toshok <toshok@ximian.com>
16943
* collection.cpp (VisualCollection::Clear): force the invalidate
16944
when we update our bounds. Also, don't do anything if the length
16945
of the collection is 0.
16947
2007-07-03 Chris Toshok <toshok@ximian.com>
16949
* canvas.cpp (Canvas::ComputeBounds): we need to always include
16950
our FrameworkElement::Width/Height in our bounds computation,
16951
instead of only consulting them if we have no children.
16953
2007-07-03 Chris Toshok <toshok@ximian.com>
16955
* media.cpp, media.h: add an image surface cache. we don't cache
16956
the xlib surface unfortunately, so there's still a slowdown from
16957
generating 1 per Image for shared pixbufs.
16959
2007-07-03 Miguel de Icaza <miguel@novell.com>
16961
* collection.cpp: Add support for reporting errors if the iterator
16962
gets out of sync with the collection.
16964
* demo.cpp: Updated to the new downloader interface.
16966
* downloader.cpp: Eliminates the in-memory buffer during
16969
We still do the progressive updates as those are necessary for the
16970
progress indicators, and if we ever need to hook up during
16971
progressive downloads again.
16973
But now downloads on completion must notify the downloader of the
16974
local file where the download contents have been placed (necesary
16975
for implementing the Zip-file support).
16977
(Downloader): eliminate our in-memory buffer byte_array_contents
16979
(downloader_notify): takes a new extra argument, overloaded
16980
depended on the operation.
16982
(get_response_text): currently not implemented, it needs to be
16983
implemented by a callback into managed code so we can use ZipLib
16984
(unless we can find a suitable unmanaged version).
16986
* media.cpp: Remove the stale code for progressive image
16988
2007-07-02 Miguel de Icaza <miguel@novell.com>
16990
* media.cpp (SetSource): If we had a previous downloader, unref
16993
2007-07-02 Chris Toshok <toshok@ximian.com>
16995
* collection.cpp (VisualCollection::Remove): punt on the optimized
16996
behavior for now. invalidating just the item should work if the
16997
item's bounds are correct, but for some reason the map path
16998
segments in the airline demo aren't redrawing properly. So, for
16999
now we just invalidate the parent container when an item is
17002
* control.h, control.cpp: override GetValue to report back values
17003
from our real_object if there is one, from us otherwise. and
17004
override SetValue to set values both on us and the real_object if
17007
Also, do nothing in our ComputeBounds call. Our GetBounds always
17008
returns the right thing (the bounds of the real_object), so
17009
there's no need to do any computation.
17011
lastly, remove the OnChildPropertyChanged. This is only invoked
17012
for attached properties, so we shouldn't ever be called.
17014
2007-07-02 Chris Toshok <toshok@ximian.com>
17016
* canvas.cpp (Canvas::OnChildPropertyChanged): we don't need to
17017
updatebounds/invalidate here. UpdateTransform will take care of
17020
2007-07-02 Chris Toshok <toshok@ximian.com>
17022
* shape.cpp (Shape::OnPropertyChanged): turns out we need to
17023
update our bounds on the FillProperty changing as well, for shapes
17024
that aren't stroked.
17026
2007-07-02 Miguel de Icaza <miguel@ximian.com>
17028
* collection.cpp: Guard for cases where we are not attached to
17029
anything (closure is set to NULL).
17031
2007-07-02 Chris Toshok <toshok@ximian.com>
17033
* collection.cpp (collection_iterator_move_next): rework the logic
17034
here so we don't do the "current = next" assignment if
17035
iterator->first is true.
17036
(VisualCollection::Add): fix g++ warning.
17037
(TriggerCollection::SetVal): return the old element.
17039
2007-07-02 Jackson Harper <jackson@ximian.com>
17041
* xaml.cpp: Convert char data into Runs and set them on
17042
TextBlocks, also flush the char data when starting elements, so
17043
things like: <TextBlock>line one<LineBreak />line two</TextBlock>
17044
work properly. <TextBlock><TextBlock.Inlines>text... is illegal
17047
2007-07-02 Miguel de Icaza <miguel@novell.com>
17049
* value.cpp: Use g_malloc/g_free as the managed code is not able
17050
to use C++ new operator, so we have a potential error when we
17051
mismatch g_new with new and g_free with delete.
17053
Reported by Valgrind.
17055
* uielement.cpp: Add new helper method needed by Alan.
17057
2007-07-01 Chris Toshok <toshok@ximian.com>
17059
* frameworkelement.cpp (FrameworkElement::OnPropertyChanged):
17060
notify attachees here.
17062
* text.cpp (TextBlock::OnPropertyChanged): need to notify on
17063
Actual Width/Height property changes, even if we don't recalc
17066
2007-07-01 Chris Toshok <toshok@ximian.com>
17068
* panel.cpp (Panel::OnSubPropertyChanged): oops, didn't follow the
17069
guidelines here. need to chain up to FrameworkElement. fixes
17072
2007-07-01 Chris Toshok <toshok@ximian.com>
17074
* shape.cpp (Line::OnPropertyChanged): use recommended pattern.
17075
(Polygon::OnPropertyChanged): same.
17076
(Path::OnPropertyChanged): same.
17077
(Shape::OnPropertyChanged): same.
17078
(Rectangle::OnPropertyChanged): same.
17080
* geometry.cpp (GeometryGroup::OnPropertyChanged): use recommended
17082
(PathGeometry::OnPropertyChanged): same.
17083
(PathFigure::OnPropertyChanged): same.
17085
* brush.cpp (Brush::OnPropertyChanged): use the recommended
17087
(SolidColorBrush::OnPropertyChanged): same.
17088
(GradientBrush::OnPropertyChanged): same.
17089
(LinearGradientBrush::OnPropertyChanged): same.
17090
(RadialGradientBrush::OnPropertyChanged): new method.
17093
* brush.h: add RadialGradientBrush::OnPropertyChanged.
17095
* animation.cpp (animation_init): mark the storyboard TargetName
17096
and TargetProperty properties as attached.
17098
* text.cpp (Inline::OnPropertyChanged): follow recommended pattern
17100
(Run::OnPropertyChanged): same.
17101
(Inline::OnSubPropertyChanged): add to handle the inline's
17102
foreground brush changing.
17104
* text.h: add Inline::OnSubPropertyChanged.
17106
* panel.h, panel.cpp: add OnSubPropertyChanged for the panel's
17107
background brush, and invalidate whenever it changes.
17109
2007-06-30 Chris Toshok <toshok@ximian.com>
17111
* shape.cpp (Shape::OnPropertyChanged): when need to update our
17112
bounding rectangle when a number of the stroke properties change.
17113
Also update them when the stroke itself is changed.
17115
2007-06-29 Chris Toshok <toshok@ximian.com>
17117
* text.cpp, text.h: Add back in TextBlock::OnSubPropertyChanged -
17118
we need it for the foreground property. Make this explicit.
17119
also, add an OnSubPropertyChanged method for Glyphs, to handle the
17122
2007-06-29 Chris Toshok <toshok@ximian.com>
17124
* uielement.cpp (UIElement::UpdateBounds): oops. really only do
17125
that invalidate if the flag is true.
17127
2007-06-29 Chris Toshok <toshok@ximian.com>
17129
* text.cpp: Do CalcActualWidtHeight on any property that might
17130
cause a change. This is going to be a performance hit, but we
17131
need to take this step backward to get things working with the new
17132
ComputeBounds stuff. we'll need to reoptimize this so that it
17133
still works. Make sure to listen to OnCollectionChanged so we'll
17134
update our bounds (and recompute our actual width/height) on
17135
Inlines collection changes.
17137
* text.h: remove OnSubPropertyChanged (since it's not used.) Add
17138
OnCollectionChanged.
17140
2007-06-29 Chris Toshok <toshok@ximian.com>
17142
* uielement.cpp (UIElement::OnPropertyChanged): reformat this so I
17143
can actually read it, and notify attachees of our property
17144
changes. this makes ZIndex setting resort the parent panels list.
17146
* uielement.h: add an arg to UpdateBounds (a bool that defaults to
17147
false) to force an invalidation of the new bounds.
17149
2007-06-29 Chris Toshok <toshok@ximian.com>
17151
* panel.h, panel.cpp: okay, i'm stupid. it's not
17152
OnChildPropertyChanged either. it's OnCollectionChanged. we
17153
seriously need to clean this stuff up.
17155
2007-06-29 Chris Toshok <toshok@ximian.com>
17157
* panel.h, panel.cpp: child ZIndex property changes are reflected
17158
via OnChildPropertyChanged, not OnSubPropertyChanged.
17160
2007-06-28 Chris Toshok <toshok@ximian.com>
17162
* canvas.cpp (Canvas::ComputeBounds): fix the debug printf's.
17164
* collection.cpp (VisualCollectoin::Clear): update the panel's
17165
bounds after the clear so we redraw everything.
17167
2007-06-27 Chris Toshok <toshok@ximian.com>
17169
* uielement.h: stop using x1,y1,x2,y2 for bounds, use a Rect
17170
instead. Also, rename getbounds to ComputeBounds(), and add a new
17171
GetBounds which returns the bounding rectangle.
17173
* canvas.cpp (Canvas::ComputeBounds): rename GetBounds to this.
17174
Simplify it a bit by using Rect's instead of the 4 doubles. Note
17175
that the calls to item->GetBounds do *not* cause item's bounds to
17177
(Canvas::OnChildPropertyChanged): just call UpdateTransform on the
17178
child when its Left/Top properties change.
17179
(Canvas::HandleMotion): use Rect.PointInside to clean up the
17181
(Canvas::HandleButton): same.
17182
(Canvas::Render): remove the local "item_rect" and just use the
17185
* uielement.cpp (UIElement::UpdateBounds): remember the old
17186
bounds, compute the new bounds, and (if they're different)
17187
invalidate both and chain up to the parent's UpdateBounds method.
17188
(UIElement::UIElement): init the bounds.
17189
(UIElement::OnPropertyChanged): when switch away from a lot of the
17190
FullInvalidate calls. If the clip or OpacityMask is changed, just
17191
Invalidate. If the RenderTransform or RenderTransformOrigin is
17192
changed, called UpdateTransform.
17193
(UIElement::UpdateTransform): all UpdateBounds, since it's
17194
uncommon that our transform will change without our bounds
17196
(UIElement::OnSubPropertyChanged): These shouldn't be necessary,
17197
but again switch away from FullInvalidate to other more targeted
17198
methods. If the transform properties change, call
17199
UpdateTransform, for clip and OpacityMask just call Invalidate.
17200
(UIElement::Invalidate): add a Rect taking one that just
17201
invalidates the rect, and make the default variety call it with
17203
(UIElement::ComputeBounds): rename GetBounds().
17205
* shape.cpp (ComputeBounds): don't use GetSurface. use a
17206
measuring cairo context.
17207
(Shape::OnPropertyChanged): if the Stretch property changed,
17208
UpdateBounds. also, change from FullInvalidate to just Invalidate
17209
for everything. Remove the UpdateTransform call as that gets
17210
handled by UIElement::OnPropetyChanged.
17211
(Rectangle::OnPropertyChanged): we only need to invalidate on a
17213
(Polygon::OnPropertyChanged): if the Points property changes we
17214
need to UpdateBounds and force an Invalidate. otherwise, just
17215
Invalidate. no need for FullInvalidate always.
17216
(Polygon::OnCollectionChanged): new method.
17217
UpdateBounds+Invalidate to catch changes to the points collection.
17218
(Polyline::OnPropertyChanged): analogous changes as were made to
17219
Polygon::OnPropertyChanged.
17220
(Polyline::OnCollectionChanged): same as
17221
Polygon::OnCollectionChanged.
17223
* text.cpp (TextBlock::TextBlock): move the SetValue call to the
17224
end, past all the initialization of things that might be needed in
17225
ComputeBounds, which gets called.
17226
(TextBlock::ComputeBounds): don't use GetSurface. use a measuring
17228
(TextBlock::CalcActualWidthHeight): use a measuring context here.
17229
(TextBlock::OnPropertyChanged): remove unnecessary call to
17230
FrameworkElement::OnPropertyChanged from the end of the method.
17231
(Glyphs::ComputeBounds): return Rect (0,0,0,0).
17233
* media.cpp (MediaElement::ComputeBounds): don't use GetSurface.
17234
use a measuring context.
17235
(Image::ComputeBounds): same.
17236
(OnPropertyChanged): just Invalidate here, no need for
17238
(DownloaderEvent): just Invalidate here, not FullInvalidate.
17240
* frameworkelement.cpp (FrameworkElement::InsideObject): use
17243
* control.cpp (Control::GetBounds): use a Rect here.
17244
(Control::ComputeBounds): forward on to the real_object.
17246
* collection.cpp (VisualCollection::VisualUpdate): when adding an
17247
element, we need to force its invalidation, but not the parent's.
17248
we just update the parent's bounds and UpdateBounds will do the
17249
invalidating if it needs to.
17251
* runtime.cpp (surface_attach): we don't need to do a full
17252
invalidate. just update the bounds of the toplevel (which sets
17253
the width and height to the widget's) and force an invalidate
17254
(just in case the user set the width/height to exactly the same
17255
thing before attaching).
17256
(surface_size_allocate): same thing here - no need for
17257
FullInvalidate. Just update the bounds.
17258
(measuring_context_create): create a tiny surface and a cairo_t
17259
for use in measuring things.
17260
(measuring_context_destroy): destroy the surface and cairo_t.
17262
* control.h, text.h, canvas.h, media.h, shape.h: GetBounds ->
17265
2007-06-28 Miguel de Icaza <miguel@novell.com>
17267
* runtime.cpp (expose_event_callback): Introduce a new
17268
"transparent" field in the Surface. If set, we clear the
17269
region with a transparent region.
17271
2007-06-27 Miguel de Icaza <miguel@novell.com>
17273
* runtime.cpp: Event handlers will work with or without GdkWindows
17274
on the GtkWindows in preparation to support Larry later.
17276
Paint the surface with alpha transparency for now, this breaks the
17277
F-Spot embedding but will be fixed later when we can paint at an
17278
offset, wonder if this will affect performance for now.
17280
Call gtk_event_box_set_visible_window () with TRUE, so that we
17281
have a window, for now we require this to get the events working
17284
* canvas.cpp: Drop the translate transform on the topmost canvas
17285
as that was breaking all the code that depended on the inverse
17286
matrix transform to work for doing coordinate mapping based on the
17289
Instead we need to draw the cairo context at the given offset
17290
in the repaint routine. This is left as an excercise for Larry.
17292
Tests to validate that the mouse input is working:
17294
* test/demo.exe: enter/leave
17296
* silverlight airlines
17297
* LunarEclipse designer.
17299
* value.cpp (FreeValue): New method that does the actual releasing
17300
of the value. We do this here so the managed code can release
17301
things in the same way.
17303
(value_free_value): helper method.
17305
2007-06-27 Chris Toshok <toshok@ximian.com>
17307
* clock.cpp (RaiseEnqueuedEvents): ref/unref the clocks around the
17308
calls to RaiseAccumulatedEvents.
17310
2007-06-27 Chris Toshok <toshok@ximian.com>
17312
* clock.cpp (get_now): turns out we really do want this extra *10
17313
in there, so that it matches up with mono's TimeSpan.Tick values.
17315
2007-06-27 Chris Toshok <toshok@ximian.com>
17317
* canvas.cpp (Canvas::GetBounds): Collapsed elements shouldn't
17318
take part in bounds computation.
17319
(Canvas::HandleButton): !Visible elements don't take part in hit
17321
(Canvas::HandleMotion): same here.
17323
2007-06-27 Jackson Harper <jackson@ximian.com>
17325
* xaml.cpp: Use Type to lookup the property owner, because it
17326
might be a "ghost" type that the xaml parser can't lookup.
17328
2007-06-27 Miguel de Icaza <miguel@novell.com>
17330
* control.cpp: When handling events, we also need to pass the
17331
event notification to the control, not only to the "real_object"
17332
that we are proxying for. This is what cause the calendar to
17335
* canvas.cpp (GetBounds): Do not use 0, 0, 0, 0 for the bounds of
17336
the canvas, instead use the point at (0,0) and the width, height
17337
with its absolute transformation.
17339
Otherwise canvases with children would end up with
17340
(0,0,0,0) and when compounded would extend the bounding box of
17341
containing ones to include this region even when not needed.
17343
2007-06-26 Chris Toshok <toshok@ximian.com>
17345
* uielement.h: add virtual GetSurface() method.
17347
* uielement.cpp: implement UIElement::GetSurface to just chain up
17348
to the parent element if we have one, and return NULL otherwise.
17349
Also, make item_get_surface call this method. removes the
17350
dependency on canvas.h from this file.
17352
* canvas.h: we override UIElement::GetSurface ()
17354
* canvas.cpp (Canvas::GetSurface): if we're the toplevel canvas,
17355
return our surface. otherwise call our base class's GetSurface.
17357
* media.h: rename Image::GetSurface here to GetCairoSurface to
17358
avoid name collision.
17360
* brush.cpp, media.cpp: track media.h change.
17362
2007-06-26 Miguel de Icaza <miguel@novell.com>
17364
* collection.h: Change of course. The actual public interface
17365
implements IList<T> and ICollection<T> not IList nor ICollection
17366
which means that Add does not need to return an index, and Remove
17367
must return whether it actually removed the object.
17369
* collection.h (Add): Make this method return the index of the
17370
object just created, so we can implement int IList.Add(...).
17372
Removed all the empty Add/Remove methods from collections that
17373
were not doing anything interesting with them, the remaining
17374
chunks of old hacks.
17376
* (SetVal): This method is used to replace a value at a given
17377
index with another one. For the C# IList.this [int] indexer.
17379
2007-06-26 Chris Toshok <toshok@ximian.com>
17381
* clock.cpp: make a copy of the child clocks lists before
17382
traversing them calling callbacks that could result in the lists
17385
2007-06-26 Chris Toshok <toshok@ximian.com>
17387
* dependencyobject.h: add OnCollectionChanged to allow
17388
propertychange notifications from elements in collections to
17389
bubble up to their parent.
17391
* collection.h: make the closure a DependencyObject*, just to be
17392
explicit. also, add OnSubPropertyChanged to Collection so we can
17393
generate OnCollectionChanged notifications.
17395
* collection.cpp: hook things up on elements in collections, and
17396
generate proper notifications from the collection to its closure.
17398
* enums.h: add CollectionChangeType for use in
17399
OnCollectionChanged.
17401
* geometry.h, geometry.cpp, shape.h, shape.cpp: use the new
17402
collection notification stuff to bubble changes up the hierarchy.
17404
2007-06-26 Jeffrey Stedfast <fejj@novell.com>
17406
* list.cpp (Replace): Added.
17408
* dependencyobject.cpp (dependency_object_get_value_no_default):
17409
New binding function.
17410
(dependency_object_get_object_type): Renamed from get_kind() which
17411
didn't mirror the native API at all.
17413
2007-06-26 Sebastien Pouliot <sebastien@ximian.com>
17415
* geometry.cpp|h: Add missing PathSegment::OnPropertyChanged
17416
* shape.cpp: Remove debugging output.
17418
2007-06-26 Chris Toshok <toshok@ximian.com>
17420
* uielement.h: change render/dorender to take a cairo_t* instead
17423
* canvas.h, control.h, text.h, geometry.h, canvas.cpp,
17424
uielement.cpp, geometry.cpp, shape.cpp, media.h, shape.h,
17425
media.cpp, control.cpp, runtime.cpp, text.cpp: fallout from the
17428
2007-06-25 Jeffrey Stedfast <fejj@gnome.org>
17430
* brush.cpp (LinearGradientBrush::SetupBrush): Use
17431
uielement->get_size_for_brush() because the framework width/height
17434
* text.cpp: Implement text wrapping and clipping to Width/Height
17435
bounds if specified.
17437
2007-06-25 Miguel de Icaza <miguel@novell.com>
17439
* runtime.cpp: Cope with the fact that we are now windowless and
17440
we will be sharing the parent's window. Fixes mouse events.
17442
* collection.cpp (collection_get_value_at, collection_count): Add
17445
2007-06-25 Jeffrey Stedfast <fejj@novell.com>
17449
* text.cpp: Rewritten to use the new MangoRenderer and
17450
MangoAttrForeground classes.
17452
* mango.cpp: New source file implementing a PangoRenderer and
17453
providing a new PangoAttribute for brushes.
17455
2007-06-25 Chris Toshok <toshok@ximian.com>
17457
* runtime.h: add decl for Panel::OnSubPropertyChanged.
17459
* runtime.cpp (UIElement::OnPropertyChanged): handle changes to
17460
zIndex by invalidating the item's rectangle.
17461
(UIElement::OnSubPropertyChanged): add braces around all the if
17462
blocks for consistency.
17463
(Panel::OnSubPropertyChanged): if a child changes its z index we
17464
need to resort our visual collection.
17465
(Canvas::render): loop over the z sorted list of children instead
17466
of the default collection list.
17467
(item_init): just to be anal, cast the Zindex default value to
17470
x2007-06-25 Chris Toshok <toshok@ximian.com>
17472
* collection.cpp: keep a z-sorted list in VisualCollection,
17473
adding/removing elements from it when needed, and clearing it when
17474
the collection is cleared.
17476
* collection.h: add a virtual clear method so VisualCollection can
17477
override it. Also, add a z_sorted_list member to
17478
VisualCollection, so we can deal with the ZIndices of children.
17480
2007-06-24 Alan McGovern <amcgovern@novell.com>
17482
* runtime.(cpp|h): Implemented UIElement.ZIndexPropery
17484
2007-06-24 Larry Ewing <lewing@novell.com>
17486
* runtime.cpp: rework size allocation and make toplevel Canvas
17487
items read the allocation->x and allocation->y offsets from the
17488
surface widget when computing their position.
17490
2007-06-24 Chris Toshok <toshok@ximian.com>
17492
* Makefile.am (libmooninclude_HEADERS): add collection.h
17493
(libmoon_la_SOURCES): add collection.cpp
17495
* collection.h, collection.cpp: new files. split out Collection
17496
and all the collection-related code from runtime.h/runtime.cpp.
17497
arguably the collections specific to certain elements should exist
17498
completely in those .cpp/.h files, instead of here.
17500
* runtime.h, runtime.cpp: remove collection stuff.
17502
* clock.h, animation.h, transform.h: #include collection.h
17504
* value.h, value.h.in: #include <string.h> here so we can stop
17505
requiring it for everyone else. really, though we should be using
17506
g_strcmp or something that's already pulled in from glib.
17508
2007-06-24 Chris Toshok <toshok@ximian.com>
17510
* Makefile.am (libmoon_la_SOURCES): add array.cpp
17511
(libmooninclude_HEADERS): add array.h
17513
* xaml.cpp, value.cpp, shape.cpp, geometry.cpp: include array.h
17515
* array.h, array.cpp: new files, split them out from
17518
2007-06-24 Chris Toshok <toshok@ximian.com>
17520
* Makefile.am (libmooninclude_HEADERS): add xaml.h
17522
* xaml.h: split this out from...
17524
* runtime.h: ... here.
17526
* xaml.cpp, runtime.cpp, control.h, demo.cpp: #include xaml.h
17528
2007-06-24 Chris Toshok <toshok@ximian.com>
17530
* Makefile.am (libmooninclude_HEADERS): add control.h
17532
* control.h: split out class Control stuff...
17534
* runtime.h: .. from here.
17536
* runtime.cpp: #include control.h
17538
* control.cpp: same.
17540
2007-06-24 Chris Toshok <toshok@ximian.com>
17542
* runtime.h: add OnLoaded methods to UIElement, Panel, and
17545
* runtime.cpp (UIElement::OnLoaded): emit the Loaded event if we
17547
(VisualCollection::Add): only invoke OnLoaded on the item if the
17548
closure (the parent of the collection) has been loaded.
17549
(VisualCollection::Insert): same.
17550
(Panel::OnLoaded): call OnLoaded on all our children, then chain
17552
(surface_attach): call canvas->OnLoaded instead of
17553
emit_loaded_events(canvas). also, don't use a special IS_CANVAS
17554
flag - just use the type system.
17555
(item_get_surface): get rid of the IS_CANVAS flag and just use the
17558
* control.cpp (Control::OnLoaded): new method, invoke OnLoaded on
17559
the real object before chaining up.
17561
2007-06-24 Larry Ewing <lewing@novell.com>
17563
* runtime.cpp: disable transparent surfaces while fixing the
17564
drawing offset problem.
17566
2007-06-24 Larry Ewing <lewing@novell.com>
17568
* brush.cpp: use cairo_create_similar rather than using an image
17571
2007-06-24 Chris Toshok <toshok@ximian.com>
17573
* runtime.cpp (VisualCollection::Add): only emit Loaded if the
17574
tree we're adding it to has already been loaded.
17576
2007-06-24 Larry Ewing <lewing@novell.com>
17578
* demo.cpp: add -trans flag to demo to make the toplevel transparent.
17580
2007-06-24 Larry Ewing <lewing@novell.com>
17582
* runtime.cpp: add comments to the new gtk functions.
17584
* runtime.h: expose surface_paint.
17586
2007-06-23 Miguel de Icaza <miguel@novell.com>
17588
* runtime.cpp: Since unrealize does not seem to be called when our
17589
widget is destroyed by Mozilla, we need to cleanup on destroy the
17590
tick event. This takes care of one of the plugin crashers.
17592
There are still others that I have to find out, I added some
17593
debugging prints for now.
17595
2007-06-24 Larry Ewing <lewing@novell.com>
17597
* runtime.cpp: derive from EventBox not drawing area so that we
17598
can use it as a quick method of switching back and forth between
17599
transparent and not. Add a method to let external code paint to a
17602
2007-06-23 Jeffrey Stedfast <fejj@gnome.org>
17604
* text.cpp (SetValue): Overridden to enforce Text strings not
17605
preserving any leading nor trailing whitespace (as defined in the
17608
2007-06-22 Jeffrey Stedfast <fejj@novell.com>
17610
* xaml.cpp (matrix_value_from_str): use delete[] to free the array
17611
of doubles instead of g_free() as it was allocated with new, not
17614
* text.cpp (Layout): D'oh, make sure to always init text/block
17615
width/height values. This fixes VideoBrush again.
17617
2007-06-22 Jeffrey Stedfast <fejj@novell.com>
17619
* mplayer.cpp: Initialize 'opened' state variable.
17621
* text.cpp (GetValue): Override DependencyObject::GetValue() so
17622
that we can special-case getting TextBlock::Actual[Width,Height]
17623
properties (this allows us to prolong re-calculating these values
17624
until after the user has set the values he's going to set -
17625
re-calculating on ever property change is too expensive.
17627
* runtime.h: Make DependencyObject::GetValue() virtual.
17629
2007-06-22 Jeffrey Stedfast <fejj@gnome.org>
17631
* text.cpp: Stubbed out the required virtual methods for Glyphs
17632
and attempted to make ActualWidth and ActualHeight calculated
17633
immediately in an attempt to get DrPopper working better.
17635
2007-06-22 Sebastien Pouliot <sebastien@ximian.com>
17637
* shape.cpp: Small hack to avoid calling Draw 2 times during render.
17639
2007-06-22 Chris Toshok <toshok@ximian.com>
17641
* xaml.cpp (key_spline_from_str): free up the point arrays from
17642
point_array_from_str after we use them.
17643
(xaml_set_property_from_str): same.
17645
2007-06-22 Chris Toshok <toshok@ximian.com>
17647
* value.cpp (Value): the copy ctor is definitely corrupting memory
17648
in the MATRIX case - we need to allocate the destination matrix.
17650
2007-06-21 Chris Toshok <toshok@ximian.com>
17652
* Makefile.am: not that anyone should be installing this yet,
17653
install the headers to $(includedir)/libmoon.
17655
2007-06-21 Jeffrey Stedfast <fejj@novell.com>
17657
* text.cpp: Reworked text layout/rendering logic - we now cache
17658
width/height info for each text string as well as the overall
17659
block width/height. This info is then used to align text strings
17660
on each line along the bottom edge (rather than along the top
17661
edge) of the line of text.
17663
* xaml.cpp (char_data_handler): Ignore insignificant lwsp CDATA
17665
2007-06-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
17667
* stylus.h|cpp: Add InkPresenter.
17668
* media.h|cpp: Add C methods to stop, pause and play a MediaElement.
17669
* value.h, type.h|cpp: Updated.
17671
2007-06-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
17673
* animation.cpp: Register *KeyFrame::Value properties as nullable.
17674
* clock.cpp: Register TimelineMarker properties.
17676
2007-06-21 Jackson Harper <jackson@ximian.com>
17678
* xaml.cpp: When setting the x:Name also set the name property.
17680
2007-06-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
17682
* stylus.cpp|h: Added Stroke and DrawingAttributes.
17683
* runtime.h: All collections can now implement GetElementType.
17684
* value.h, type.h, type.cpp: Updated.
17686
2007-06-21 Rolf Bjarne Kvinge <RKvinge@novell.com>
17688
* stylus.cpp|h: Added.
17689
* runtime.cpp|h: Define and call stylus_init.
17690
* Makefile.am: Add stylus.cpp|h.
17691
* value.h, type.h, type.cpp: Updated.
17693
2007-06-21 Jackson Harper <jackson@ximian.com>
17695
* xaml.cpp: Add a global set of callbacks, so that all of the
17696
custom callbacks for a given parsing instance use the same
17697
methods. This needs to be encapsulated properly, but for now is
17700
2007-06-20 Chris Toshok <toshok@ximian.com>
17702
* animation.cpp, animation.h: KeyFrameCollection overrides
17703
Collection::Clear to clear its sorted list.
17705
* runtime.cpp, runtime.h: add overrideable Collection::Clear
17706
method, and move collection_clear's body into it.
17708
2007-06-21 Jackson Harper <jackson@ximian.com>
17710
* runtime.cpp|h: Don't return false on single element collections
17713
2007-06-21 Jeffrey Stedfast <fejj@gnome.org>
17715
* text.cpp: Use absolute font sizes, makes the fonts not so huge.
17717
2007-06-20 Jackson Harper <jackson@ximian.com>
17719
* xaml.cpp: Set namecopes earlier, and make sure to copy the
17720
namescope when we recreate a class using x:Class.
17721
- When we use x:Class reparse the element's attributes, so it can
17722
hook up to events and set properties.
17723
* runtime.cpp|h: When the Name property is set, register it with
17724
the proper NameScope.
17726
2007-06-20 Chris Toshok <toshok@ximian.com>
17728
* runtime.cpp, runtime.h: add rudimentary Visibility support. we
17729
only support Visible/Hidden really, and treat Collapsed as Hidden.
17731
* xaml.cpp (enum_from_str): use g_strcasecmp here.
17733
2007-06-20 Sebastien Pouliot <sebastien@ximian.com>
17735
* shape.cpp|h: Implement caching of Path (this could be extended to
17737
* geometry.cpp|h: Notify on changes.
17739
2007-06-20 Sebastien Pouliot <sebastien@ximian.com>
17741
* xaml.cpp: Don't allocate (and free) a copy of the PML before
17742
calling geometry_from_str.
17744
2007-06-20 Sebastien Pouliot <sebastien@ximian.com>
17746
* shape.cpp: Fix some Stretch modes for paths. This can get very
17747
expansive, next step is to cache the cairo_path_t* in the Path and
17748
recompute it only on changes.
17750
2007-06-20 Chris Toshok <toshok@ximian.com>
17752
* xaml.cpp (is_valid_event_name): new function.
17753
(dependency_object_hookup_event): only allow valid events to be
17756
2007-06-20 Jackson Harper <jackson@ximian.com>
17758
* runtime.cpp|h: New method for finding an objects namescope.
17759
- Call an objects loaded event when it is added to a Collection
17760
- Some bits of namescope merging, these functions aren't called
17763
2007-06-20 Chris Toshok <toshok@ximian.com>
17765
* xaml.cpp (dependency_object_hookup_event): we need more than
17766
just the Loaded event.
17768
2007-06-20 Jeffrey Stedfast <fejj@novell.com>
17770
* text.cpp (Run): Don't set default font values here... we need
17771
them to be unset if they aren't explicitly set by the user so that
17772
we can inherit font properties from our parent TextBlock.
17773
(Draw): Fixed to make Runs inherit unset font properties from the
17774
TextBlock at render-time. Also fixed to make sure we have a
17775
foreground brush to draw with... if unset, use the default brush.
17777
2007-06-20 Chris Toshok <toshok@ximian.com>
17779
* runtime.cpp (UIElement::render): make this print the classname
17780
like UIElement::getbounds() does.
17782
* runtime.h, runtime.cpp: make control_initialize_from_xaml take
17783
the xaml parser custom element callbacks.
17785
2007-06-20 Chris Toshok <toshok@ximian.com>
17787
* runtime.cpp (runtime_shutdown): set inited to false, since we
17788
want people to be able to call runtime_init again after this.
17790
* type.cpp.in (Type::RegisterType): allocate types if we need to.
17791
(Type::Shutdown): free types.
17793
* type.h.in (private): make the types array dynamically allocated.
17795
* type.h, type.cpp: sync
17797
2007-06-20 Jeffrey Stedfast <fejj@novell.com>
17799
* text.cpp (TextBlock): Need to actually set ActualWidth and
17800
ActualHeight values.
17802
2007-06-20 Chris Toshok <toshok@ximian.com>
17804
* clock.cpp (Clock::Tick): if we hit our natural duration but our
17805
duration is Automatic, go to Fill mode, since we may have child
17806
clocks that started after us and need a chance to run their last
17809
2007-06-20 Jeffrey Stedfast <fejj@novell.com>
17811
* runtime.cpp (collection_iterator_move_next): If we can't iterate
17812
to the next item, don't set current = NULL.
17813
(dependency_object_get_name): New function needed for the binding.
17815
2007-06-20 Larry Ewing <lewing@novell.com>
17817
* runtime.cpp: use gdk_cairo helper functions and clip to the
17818
expose event region.
17820
* runtime.h: remove unused members.
17822
* media.cpp: use cairo_get_target rather than keeping track of
17825
2007-06-20 Jackson Harper <jackson@ximian.com>
17827
* xaml.cpp/runtime.h: Add one more callback, this one will hookup
17828
events to methods. So things like Loaded=CanvasLoaded will work.
17832
2007-06-20 Jackson Harper <jackson@ximian.com>
17834
* xaml.cpp: More verbose debug output with namespace lookup
17836
- Map in the default namespaces if we are unable to lookup the
17837
proper namespace name.
17839
2007-06-20 Sebastien Pouliot <sebastien@ximian.com>
17841
* shape.cpp: Call cairo_[stroke|fill]_extents inside Shape::getbounds
17842
or the mouse moving won't work.
17844
2007-06-20 Sebastien Pouliot <sebastien@ximian.com>
17846
* shape.cpp: Fix Shape::getbounds to work even if no stroke brush is
17847
assigned, in that case we get the extents of the fill.
17849
2007-06-20 Chris Toshok <toshok@ximian.com>
17851
* animation.cpp: um.. "oops".
17853
* xaml.cpp (xaml_init): enable the parsing of the color/point
17856
2007-06-20 Chris Toshok <toshok@ximian.com>
17858
* animation.cpp: guard against division by zero in the double
17859
keyframe GetCurrentValue method. I'll fix this method up some
17860
more and then report it to the other animation types.
17862
Also, add the Spline(Color,Point)KeyFrames.
17864
* clock.cpp, clock.h: fixes to get all this working again while
17865
still supporting the needed things from the last patch (like
17868
* transform.cpp (GetTransform): i hate like hell to have to do
17869
this, but if we scale by 0.0 cairo can't invert the matrix and
17870
then everything goes belly up. 0.00002 is the smallest number I
17871
found (0.00001 doesn't work, for instance) where cairo doesn't
17872
complain about the inverse stuff.
17874
* media.cpp (media_element_set_buffering_time): we have to use the
17875
hacky Value ctor here.
17876
(media_element_set_position): and here.
17878
* runtime.cpp (emit_loaded_events): new function to walk the tree
17879
and emit loaded events.
17880
(surface_attach): call emit_loaded_events here - the docs specify
17881
that Loaded is emitted after it's associated with the host but
17882
before it's rendered.
17883
(Canvas::render): don't emit Loaded here.
17884
(runtime_init): output a nice message here if you run cairo
17885
against a verion of cairo that you shouldn't be using.
17887
* type.h, type.cpp, value.h: resync.
17889
2007-06-20 Jackson Harper <jackson@ximian.com>
17891
* xaml.cpp: Improve the way we handle x:Class attributes failing
17894
2007-06-20 Jackson Harper <jackson@ximian.com>
17896
* xaml.cpp: Hookup attached properties in the property_from_str
17899
2007-06-19 Chris Toshok <toshok@ximian.com>
17901
* media.cpp (media_element_get_buffering_time): use AsTimeSpan().
17902
(media_element_get_position): same.
17903
(media_init): mark BufferingTime and Position as TimeSpan's.
17905
2007-06-19 Chris Toshok <toshok@ximian.com>
17907
* clock.cpp, clock.h: bad time for a a rearchitecting, perhaps,
17908
but this was necessary to get BeginTime's to be supported. It
17909
reintroduces the "popping" in the surface demo, though, and
17910
honestly I'm unsure how we can ever guarantee that enough ticks
17911
will have occured to be sure we won't see the initial state of the
17914
* animation.cpp: track clock api changes.
17916
* runtime.h: decl for FramworkElement::OnPropertyChanged.
17918
* runtime.cpp (EventObject::Emit): make a copy of the list before
17919
we start emitting, to keep us crashing if the list is modified
17920
while we're traversing it.
17921
(FramworkElement::OnPropertyChanged): invalidate on width/height
17924
* xaml.cpp: when parsing a TIMESPAN property, use
17925
timespan_from_str. This fixes the parsing of BeginTime
17928
* type.cpp.in: register TIMESPAN.
17930
* value.h.in: add a AsTimeSpan method, and special hacky
17931
constructor so the parser can construct a value of type TIMESPAN
17932
(which is problematic since it's typedef'ed to gint64.) Move the
17933
TimeSpan typedef here.
17935
* value.cpp: add the impl for that hacky ctor.
17937
* type.h.in: add a TIMESPAN kind.
17939
* type.h, value.h, type.cpp: sync.
17941
2007-06-19 Jackson Harper <jackson@ximian.com>
17943
* xaml.cpp: we need to new the points.
17945
2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
17947
* geometry.cpp: Add safety to ensure the number of points are
17948
valid before iterating on them.
17950
2007-06-19 Jackson Harper <jackson@ximian.com>
17952
* xaml.cpp: make sure to get all the points.
17953
- sneak peek at the exciting new attached property setting code.
17954
- improve error message
17955
- dont step off the end of the string when the trailing characters
17958
2007-06-19 Jeffrey Stedfast <fejj@gnome.org>
17960
* *.cpp: Updated to use the new List type.
17962
* runtime.cpp|h (Collection): Modified to use List instead of
17963
GList which made some code simpler, we get to take advantage of
17966
* demo.cpp (main): Removed surface_destroy() and
17967
runtime_shutdown() out of the delete_event callback (gtk timeouts
17968
could still fire after the gtk_main_quit() call it seems).
17970
2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
17972
* runtime.cpp: Enforce UIElement::ClipProperty when rendering
17975
2007-06-19 Jackson Harper <jackson@ximian.com>
17977
* xaml.cpp: Content properties can be inherited.
17979
2007-06-19 Jackson Harper <jackson@ximian.com>
17981
* xaml.cpp: Make sure that we have a previous figure.
17983
2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
17985
* geometry.cpp|h: Revert previous changes. That didn't work well
17986
with groups/collections.
17987
* shape.cpp: Path::Draw now process the path (find and susbtract
17988
origin) when Stretch requires it.
17990
2007-06-19 Jackson Harper <jackson@ximian.com>
17992
* xaml.cpp: Set the namescope right away, so FindName will work in
17993
element constructors.
17995
2007-06-19 Jeffrey Stedfast <fejj@gnome.org>
17997
* animation.cpp: Switched to use List instead of GList.
17999
2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
18001
* geometry.cpp|h: Change API so the Strech value is propagated from
18002
the shape to all the geometry figures. Fixed Stretch for LineGeometry,
18003
EllipseGeometry and RectangleGeometry.
18004
* shape.cpp: Path::Draw now supply the Stretch property value to
18005
all Geometry objects drawing methods.
18007
2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
18009
* shape.cpp: Don't call cairo_new_path inside moon_ellipse. It's
18010
the caller responsbility to do so, if required (e.g. it isn't for
18013
2007-06-19 Jackson Harper <jackson@ximian.com>
18015
* xaml.cpp: Implement all the optional points on path markup.
18017
2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
18019
* shape.cpp: Fix Stretch for Polyline and Polygon.
18021
2007-06-19 Jeffrey Stedfast <fejj@novell.com>
18023
* xaml.cpp: Updated to use a real linked list implementation.. for
18024
added uberness. Also reduces memory leakage.
18026
* mplayer.cpp: Stubbed out a few more things and can now return
18027
the video duration.
18029
2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
18031
* shape.cpp|h: Set Shape::Stretch default to None and set Stretch
18032
property to fill inside Rectangle and Ellipse ctors.
18034
2007-06-19 Jeffrey Stedfast <fejj@novell.com>
18036
* runtime.cpp (Insert): Make this use SharedAdd too, which I
18037
presume was the whole point.
18039
2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
18041
* shape.cpp: Fix Strech support for Rectangle (it behave more like
18042
Ellipse but that shows only with non squares).
18044
2007-06-19 Jeffrey Stedfast <fejj@novell.com>
18046
* mplayer.cpp (audio_loop): Fixed muting to advance the correct
18047
number of pts and not hang forever in a g_usleep() (gah, the timer
18048
was a huge negative value).
18050
2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
18052
* clock.h: Added TimelineMarker.
18053
* type.h, type.cpp, value.h: Updated.
18055
2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
18057
* shape.h: Fix filling for Polyline. MS supports filling polylines,
18058
even unclosed ones.
18060
2007-06-19 Chris Toshok <toshok@ximian.com>
18062
* runtime.cpp (surface_realloc): make sure to reassign s->cairo to
18063
s->cairo_xlib after recreating the xlib stuff. avoids a crash
18064
when resizing surfaces.
18066
2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
18068
* shape.cpp: Add Strech support for Ellipse.
18070
2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
18072
* shape.cpp: Add Strech support for Rectangle (only None is different).
18073
Add comments to Line as Stretch doesn't apply for this Shape.
18075
2007-06-19 Miguel de Icaza <miguel@novell.com>
18077
* runtime.cpp (Collection): Add new Insert method, and update all
18078
the callers that overwrote it. We probably need to cleanup
18079
everything that is doing virtual overrides and is a no-op
18081
2007-06-19 Chris Toshok <toshok@ximian.com>
18083
* runtime.cpp (clear_drawing_area): this method doesn't need to
18084
clean up the xlib cairo context/surface and the pixmap.
18086
There are two possibilities:
18088
1) the drawing area has been realized, which means we have xlib
18089
surface/context + pixmap. We're guaranteed to hit
18090
unrealized_callback before this method is called, so they will
18091
have already been freed.
18093
2) the drawing area has not been realized, which means we have no
18094
xlib surface/context + pixmap, and this method doesn't need to do
18097
2007-06-19 Jackson Harper <jackson@ximian.com>
18099
* runtime.h/shape.cpp: Fix typo.
18101
2007-06-19 Jeffrey Stedfast <fejj@novell.com>
18103
* text.cpp (Run::OnPropertyChanged): Always chain up to our parent
18104
implementation and if one of our properties changed, notify our
18106
(Inline::OnPropertyChanged): Same.
18107
(TextBlock::OnPropertyChanged): Keep track of Inlines changes.
18108
(TextBlock::Draw): Use our foreground brush directly and the same
18109
for run's foreground brush.
18111
2007-06-19 Miguel de Icaza <miguel@novell.com>
18113
* runtime.cpp: Implement collection iterators.
18115
2007-06-19 Chris Toshok <toshok@ximian.com>
18117
* xaml.cpp (timespan_from_str): don't walk off the end of the
18120
2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
18122
* animation.h|cpp: Remove pureness from KeyFrame::InterpolateValue.
18124
2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
18126
* animation.h|cpp: Add *_key_frame_new.
18128
2007-06-19 Jackson Harper <jackson@ximian.com>
18130
* xaml.cpp\runtime.h: Add a public function for setting
18131
properties, from strings. Basically a copy and paste of my
18132
set_attributes code. Eventually I should be able to merge the
18133
two, but they use different name lookup mechanisms right now.
18135
2007-06-19 Jeffrey Stedfast <fejj@gnome.org>
18137
* animation.cpp (Remove): Remove the KeyFrame from the sorted list
18138
before removing it from the collection (since it may be freed by
18139
Collection::Remove).
18141
2007-06-19 Miguel de Icaza <miguel@novell.com>
18143
* runtime.cpp: Add support for notifying the consumer that the
18144
surface has resized.
18146
Add support for resizing objects.
18148
2007-06-19 Jeffrey Stedfast <fejj@gnome.org>
18150
* brush.cpp (~VideoBrush): We want to detach from the media
18151
element, not ourselves. Doh.
18153
2007-06-19 Sebastien Pouliot <sebastien@ximian.com>
18155
* shape.h: Update comments about which shapes needs, or not, to
18156
provide a getxformorigin method.
18158
2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
18160
* media.h|cpp: Add media_base_new.
18162
2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
18164
* value.cpp|h|in: Inline the non-DependencyObject
18165
As* functions as well.
18167
2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
18169
* typegen.cs: Removed some dead code.
18170
* value.cpp.in: Deleted, not needed anymore.
18171
* runtime.cpp, value.cpp, type.cpp.in: Moved
18172
implementation of Value and Type into their own files.
18173
* type.cpp: Updated.
18175
2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
18177
* type.h, type.h.in: Created, moved declaration of Type here.
18178
* *.h|cpp|in: Move Value:Kind to Type::Kind and update all
18179
references. Move the Value::As* into the header.
18180
* typegen.cs: Updated to cope with Kind changes.
18182
2007-06-19 Rolf Bjarne Kvinge <RKvinge@novell.com>
18184
* runtime.cpp|h, value.h.in: Remove current nullable code,
18185
it's easier to store an is_nullable flag in the registered
18186
property, and store NULL values in the objects hashtable.
18187
* xaml.cpp: Revert unnecessary fixes.
18188
* value.h: Updated.
18190
2007-06-19 Chris Toshok <toshok@ximian.com>
18192
* runtime.h: get rid of the specialized surface callbacks for
18193
mouse events. we can dispatch them directly to the UIElements.
18194
Change the EventObject signatures to permit an event/call data as
18195
well as the closure. add the sender object for kicks while we're
18198
* runtime.cpp: dispatch element events through the
18199
DependencyObject's events object.
18201
* animation.h, animation.cpp: update signatures for event
18204
* control.cpp (handle_button): track signature change.
18208
2007-06-18 Chris Toshok <toshok@ximian.com>
18210
* clock.cpp (TimeManager::Tick): add a lot of timing foo.
18211
(ClockGroup::RaiseAccumulatedEvents): raise the Completed event if
18212
we switching to the stopped state and our progress is 1.0 (that
18213
is, if we've finished).
18215
* animation.h, animation.cpp (Storyboard::Begin): rather heavy
18216
handed (but bulletproof) approach to making Begin work on a
18217
storyboard that has run its course - destroy the clock hierarchy
18218
and recreate it. Also, add a handler for the ClockGroup's
18219
"Completed" event so we can reflect that back to managed land.
18221
* runtime.h: add C functions to add/remove handlers from the
18222
EventObject inside a dep object.
18224
2007-06-18 Jackson Harper <jackson@ximian.com>
18226
* xaml.cpp: Set text context properties from char data. This
18227
allows you to do things like <Run>Hi I am some text</Run>. As far
18228
as I can tell, Run is the only element that allows this.
18230
2007-06-18 Sebastien Pouliot <sebastien@ximian.com>
18232
* shape.cpp|h: Fix Line and Ellipse getxformorigin.
18234
2007-06-18 Jackson Harper <jackson@ximian.com>
18236
* xaml.cpp: Now implement the smooth beziers correctly, much
18237
thanks to spouliot for figuring out the formula to reflect control
18240
2007-06-18 Chris Toshok <toshok@ximian.com>
18242
* clock.h, clock.cpp: ifdef some debug spew, add a bitmask for
18243
what the timemanager should do on a given tick, and add some
18244
#defines/logic to calculate the gtk delay from the desired
18245
framerate. Set the desired framerate to 20fps.
18247
2007-06-18 Jeffrey Stedfast <fejj@novell.com>
18249
Instead of attaching to Brush::ChangedProperty, connect to NULL.
18251
* media.cpp (render): If the width/height are 0.0, then use the
18252
video's natural width/height.
18253
(OnPropertyChanged): chain up.
18255
* shape.cpp (OnPropertyChanged): Always chain up to our parent.
18257
2007-06-18 Chris Toshok <toshok@ximian.com>
18259
* xaml.cpp (dependency_object_set_attributes): suggestion by rolf.
18260
fixes setting of nullable property values.
18262
2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
18264
* runtime.cpp: Store NULL again in the property hashtable,
18265
but use the lookup_extended function to detect this and return
18266
a correct NULL value instead of the default value.
18268
2007-06-18 Chris Toshok <toshok@ximian.com>
18270
* runtime.cpp (RemoveHandler): more cleanups.
18272
2007-06-18 Chris Toshok <toshok@ximian.com>
18274
* runtime.cpp (RemoveHandler): g_free'ing a new'ed c++ object =
18277
2007-06-18 Jackson Harper <jackson@ximian.com>
18279
* xaml.cpp: Implement path closing and ArcSegments.
18281
2007-06-18 Miguel de Icaza <miguel@novell.com>
18283
* runtime.cpp (SetValue): This looks painful, now
18284
DependencyObjects are stored inside the hash but they might
18285
contain a NULL. This seems bad.
18287
(Value): Do not delete null dependency objects.
18289
Remove this patch, and try demo.exe, enter/leave/enter, this
18290
crashes now, because the leave sets the fill to "null" and the
18291
enter then tries to access it
18293
2007-06-18 Jeffrey Stedfast <fejj@novell.com>
18295
* brush.cpp: Do proper OnPropertyChanged proagation.
18296
(ImageBrush::OnPropertyChanged): Notify using the generic
18297
Brush::ChangedProperty.
18298
(VideoBrush::OnPropertyChanged): Same.
18299
(VideoBrush::OnSubPropertyChanged): Same.
18301
* shape.cpp (Shape): Need to keep track of our stroke/fill brushes
18302
so we can listen for change notification.
18304
* runtime.cpp (UIElement): Same.
18307
* text.cpp (TextBlock): Same here (need to do it for Inlines too
18310
* media.cpp (media_base_new): Removed, you can't instantiate a
18312
(advance_frame): Optimization hack: don't invalidate if our
18314
(MediaElement::render): Respect opacity and stretch properties.
18316
2007-06-18 Jackson Harper <jackson@ximian.com>
18318
* xaml.cpp: We need to create new figures if we get a Move
18321
2007-06-18 Chris Toshok <toshok@ximian.com>
18323
* demo.cpp: use TimeManager::AddTickCall for the async file
18324
loading. This makes the image visible immediately for me, instead
18325
of requiring the animations be paused to see it.
18327
* clock.cpp, clock.h: add a one-shot "tick call" idle handler of
18328
sorts to TimeManager. This way we can better control when the
18329
cross thread downloader calls happen, and keep them from affecting
18330
the frame rate, and also keep them from being starved by an
18331
overzealous demo.cpp.
18333
2007-06-18 Chris Toshok <toshok@ximian.com>
18335
* runtime.cpp (unrealized_callback): remove the render handler.
18336
(realized_callback): attach the render handler.
18337
(render_surface): a very simple render handler. We just force gtk
18338
to process all pending updates.
18340
* clock.cpp (TimeManager::Tick): as a temporary hack, have
18341
TimeManager emit the "render" event after every animation tick.
18342
We should add tuning to this method to achieve usable framerates
18343
without killing the cpu.
18345
* clock.h: make TimeManager subclass from EventObject so we can
18346
hook up to events on it.
18348
2007-06-18 Sebastien Pouliot <sebastien@ximian.com>
18350
* shape.cpp: getbounds gets bad results if stroke (or fill) isn't
18351
called. We create a new path so the bounds, for an invisible object,
18354
2007-06-18 Chris Toshok <toshok@ximian.com>
18356
* clock.cpp (Clock::TimeUpdated): return immediately if we're stopped.
18358
2007-06-18 Jackson Harper <jackson@ximian.com>
18360
* xaml.cpp: Fix smooth quadratic bezier's.
18362
2007-06-18 Chris Toshok <toshok@ximian.com>
18364
* media.cpp, media.h (Image::render): on our first rendering,
18365
convert to using an xlib surface to speed up future redraws.
18367
2007-06-18 Chris Toshok <toshok@ximian.com>
18369
* runtime.cpp (UIElement::dorender): add this, and make everything
18370
that calls ->render call ->dorender.
18372
* control.cpp (render): call dorender on the realobject.
18374
* runtime.h: add STARTTIMER/ENDTIMER macros, and add
18375
UIElement::dorender which can be used to wrap render calls with
18376
debug info (in this case timer info.)
18378
* clock.h: add prototype for get_now().
18380
* clock.cpp (get_now): make this public, so we can use it for
18383
2007-06-18 Jackson Harper <jackson@ximian.com>
18385
* xaml.cpp: Implement Path Geometry parsing.
18387
2007-06-18 Jeffrey Stedfast <fejj@novell.com>
18389
* brush.cpp (VideoBrush::SetupBrush): Get a reference to the
18390
MediaElement if we don't already have one.
18391
(VideoBrush::OnPropertyChanged): SourceName does not refer to a
18392
uri, instead SourceName refers to a MediaElement.
18394
* media.cpp: Implemented some more helper "setters", defaulted
18395
some more MediaElement property values to correct values, and
18396
implemented updating of both the CurrentState property and the
18399
* mplayer.cpp (Position): Implemented.
18401
2007-06-18 Sebastien Pouliot <sebastien@ximian.com>
18403
* media.cpp: Close the path after rendering the image.
18404
* shape.cpp: Avoid the filling operation in calls to getbounds. Also
18405
open and close a path before drawing normal (square) rectangles.
18407
2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
18409
* runtime.h|cpp: Add DependencyObject::RegisterNullable. Add a few
18410
C-style methods to access Type and DependencyProperty fields.
18411
In Type::IsSubclassOf don't take into account nullability.
18412
* animation.cpp, clock.cpp: Register nullable properties as such.
18414
2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
18416
* media.h|cpp: Add media_base_new.
18418
2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
18420
* value.h.in: Make checked_get_subclass handle null values. Include the
18421
Kind::*Null* values in the C# Kind.cs, and change their values to fit
18423
* value.h: Updated.
18425
2007-06-18 Miguel de Icaza <miguel@novell.com>
18427
* media.cpp (DownloaderEvent): If the Width/Height have not been
18428
set explicitly, provide them from the images (demo works, but it
18429
takes a while, due to the idle handler being too busy to be
18432
* runtime.cpp (Canvas::render): Cope with rounding from floats to
18433
ints, add 2, fixes the droppings in the surface.
18435
Include some of my debugging helpers (you sprinkle
18436
draw_grid in key places to see whats going on, useful to debug the
18437
bounding boxes and visually inspect if things are right.
18439
* media.cpp (getbounds): use the framework width/height not the
18440
pixbuf image size, this shrinks the size of the bounding box.
18441
(getxformorigin): Use it here too.
18443
2007-06-18 Sebastien Pouliot <sebastien@ximian.com>
18445
* brush.cpp|h: SetupBrush and SetupGradient now returns a boolean that
18446
indicates if their use would be visible or not (e.g. opacity > 0.0).
18447
* shape.cpp: Don't setup brush for getting bounds (do_op == FALSE).
18448
Don't Fill or Stroke if the brush is invisible (opacity == 0).
18450
2007-06-18 Marek Habersack <grendello@gmail.com>
18452
* mplayer.cpp (ALIGN): make sure the ALIGN macro is correct on 64
18455
* ffvideo.cpp (ALIGN): as above.
18457
2007-06-18 Chris Toshok <toshok@ximian.com>
18459
* clock.cpp: simplify pausing and stopping a clock that has
18460
children by keeping track of the new state (the one the clock will
18461
take at the end of this tick). This is necessary because the
18462
parent clock doesn't actually stop until the end of the tick, so
18463
we still need to update child clocks after we've determined the
18464
parent clock should stop.
18466
Mon Jun 18 19:35:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
18468
* runtime.cpp: properly remove items from the doubly-linked list.
18470
2007-06-18 Chris Toshok <toshok@ximian.com>
18472
* animation.cpp (AnimationStorage::~AnimationStorage): delete the
18474
(Storyboard::Begin): force a TimeManager tick after we've hooked
18475
up the clock, so that all the animations have proper values before
18476
the next render. Fixes the "popping" in the surface demo.
18478
2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
18480
* runtime.cpp: Changed DependencyObject::SetValue to never store
18481
a null value in the hashtable.
18483
2007-06-18 Sebastien Pouliot <sebastien@ximian.com>
18485
* brush.cpp: Refactor the pattern creation to allow caching.
18486
* media.cpp|h: Add caching of cairo_pattern_t to Image.
18488
Mon Jun 18 17:53:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
18490
* runtime.cpp: use motion hints for smoother motion event handling.
18492
2007-06-18 Jeffrey Stedfast <fejj@gnome.org>
18494
* text.cpp|h: Runs now cache their own PangoFontDescription and
18495
PangoLayouts as an optimzation (seems to be very slight for simple
18496
us-ascii text, but might help enormously for more complex
18497
languages). Also added some FIXME thoughts.
18499
2007-06-18 Everaldo Canuto <ecanuto@novell.com>
18501
* downloader.cpp: Add missing downloader_notify_finished.
18503
2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
18505
* downloader.cpp: Only set dummy downloader functions if they
18506
aren't already set.
18508
2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
18510
* runtime.cpp: Add a few null checks.
18511
* downloader.cpp: Add initial dummy downloader functions to get
18512
meaningful messages if the downloader functions aren't initialized.
18514
2007-06-18 Rolf Bjarne Kvinge <RKvinge@novell.com>
18516
* typegen.cs: Special case a few things for DependencyObject,
18517
and make a few messages more informative.
18518
* runtime.h|cpp: Add a value_type field to Type, and a constructor
18519
to specify the value. Add a constructor to DependencyProperty that
18520
can specify default value and type (in the case the default value
18521
doesn't have the same type as the property). Changed
18522
DependencyObject::SetValue to never store a null value in the
18523
hashtable. In Value destructor check for null pointers in a few
18524
cases. Update all uses of Value.k to Value.GetKind.
18525
* type.cpp.in: Update to specify value_type information.
18526
* value.h.in: Implement nullable type handling in Value.
18527
* value.cpp, type.cpp, value.h: Updated.
18529
2007-06-18 Jeffrey Stedfast <fejj@gnome.org>
18531
* text.cpp (get_size_for_brush): Calculate width/height if they
18533
(Draw): Don't use the brush if we aren't going to render (this is
18534
needed so that we don't get into a recursive loop since we have to
18535
manually calculate width/height).
18537
2007-06-18 Jeffrey Stedfast <fejj@gnome.org>
18539
* text.cpp (get_size_for_brush): Implemented (since
18540
cairo_stroke_extents() won't work for us).
18542
* brush.cpp (VideoBrush::SetupBrush): Use get_size_for_brush().
18543
(ImageBrush::SetupBrush): Same.
18545
* runtime.cpp (UIElement::get_size_for_brush): New method to get
18546
width/height needed by Brushes for scaling.
18548
2007-06-17 Jeffrey Stedfast <fejj@gnome.org>
18550
* runtime.cpp (UIElement::OnPropertyChanged): Chain up to our
18553
2007-06-17 Atsushi Enomoto <atsushi@ximian.com>
18555
* text.cpp : added text_block_set_font_source().
18557
2007-06-17 Miguel de Icaza <miguel@novell.com>
18559
* brush.cpp (brush_init): Create a BRUSH property called
18560
"FrameChange", it is internal and the sole use of it is so that
18561
upper layers that care about brush changes act on it by updating
18564
* runtime.cpp (UIElement::OnSubPropertyChanged): Changes on
18565
brushes only trigger an invalidate, there is no need to recompute
18568
2007-06-17 Jeffrey Stedfast <fejj@gnome.org>
18570
* xaml.cpp: c++ isn't smart enough to invoke the correct .dtor on
18571
delete for a void pointer, it can only delete known class types.
18573
2007-06-17 Jackson Harper <jackson@ximian.com>
18575
* xaml.cpp: Implement x:Class, we can now load the Surface demo's
18576
XAML file, and it's custom Canvas class (things still don't work
18577
though because the custom canvas uses a downloader.)
18579
2007-06-17 Miguel de Icaza <miguel@novell.com>
18581
The surface rotate and translate controls should both work, and
18582
the enter/leave events are now correct.
18584
* runtime.cpp (UIElement::handle_motion, handle_button): Change
18585
the semantics to better match Silverlight. Now these methods
18586
should check if the mouse is inside their region before calling
18589
This is necessary because children of the canvas (and panel) are
18590
within the confines of the bounding box, but the canvas can be
18591
smaller than that. The canvas is a container whose boundaries
18592
are only used for paiting, children might be outside of these
18595
It is necessary in these cases to pass the events to all the
18596
children within the canvas bounding box and for each child to
18597
determine if the event was within its range.
18599
(inside_object): replaced the default implementation for
18600
FrameworkElements with a more performing version: instead of
18601
mapping the point and using cairo_in_stroke and in_fill operations
18602
on a rectangle with mapped coordinates, we map the coordinates and
18603
check against the rectangle.
18605
(Canvas::getbounds): if we are the topmost canvas, the boundaries
18606
are those from the Surface, not the ones that include the maximum
18607
extent from the children. Used to do precise mouse enter/leave.
18609
2007-06-17 Jeffrey Stedfast <fejj@gnome.org>
18611
* media.cpp (MediaElement::OnPropertyChanged): Chain to parent
18612
when its not our property.
18614
* brush.cpp: Implemented VideoBrush (tho it's not yet debugged).
18616
* mplayer.cpp (GetSurface): Added.
18618
* text.cpp (text_init): Fixed to use RegisterFull for Froeground
18619
so we can specify Value::BRUSH as the default value type instead
18620
of it using SolidColorBrush as the type.
18622
2007-06-17 Chris Toshok <toshok@ximian.com>
18624
* xaml.cpp (timespan_from_str): fix parsing of timespans shorter
18627
2007-06-17 Chris Toshok <toshok@ximian.com>
18629
* clock.cpp (Clock::TimeUpdated): remove a special case for the
18630
clock's duration being Automatic. Fixes infinite animation in
18633
* runtime.cpp (crossing_notify_callback): return type is gboolean,
18634
and make sure we always return something.
18636
2007-06-17 Miguel de Icaza <miguel@novell.com>
18638
Propagate changes from children of the transform up to our
18639
containers, this is done in several steps:
18641
* runtime.cpp (DependencyObject::Attach, Detach): New methods that
18642
are used to attach an object to a container and detach it. They
18643
were previously inlined inside SetValue.
18645
(Collection::Add, Remove): Attach and detach objects when they are
18648
* transform.cpp (Transform::OnPropertyChanged): if any class
18649
derived from Transform has one of its properties changed, it
18650
has a visual effect, propage this to the attacchees.
18652
(TransformGroup::OnSubPropertyChanged): Escalate here as well,
18653
this will catch the messages coming from anyone in the collection
18656
(TransformCollection::OnSubPropertyChanged): Buble the event up
18659
* runtime.cpp (handle_motion): Change the order in which we send
18660
the events to the UIElement, we should start at the topmost
18661
element, and have the toplevel canvas be last.
18663
2007-06-17 Sebastien Pouliot <sebastien@ximian.com>
18665
* brush.cpp: Refactor ImageBrush::SetupBrush to reuse parts of it
18666
inside Image::render.
18667
* media.cpp: Use code from ImageBrush to render image with it's
18668
properties (e.g. Stretch)
18669
* transform.cpp: Update (commented) debug output.
18671
2007-06-17 Miguel de Icaza <miguel@novell.com>
18673
* runtime.cpp (GetValueNoDefault): This is necessary so we can
18674
distinguish a value that has been explicitly set from one that has
18678
* media.cpp (Image): use Framework::Width,Height for the image
18679
dimensions instead of the pixbuf width/height, used in extents and
18680
rotation computation.
18682
* runtime.cpp (Canvas::render): Set the clipping path on the
18683
identity matrix so we do not miss-clip.
18685
Render the canvas from 0, 0, fwidht, fheight, not the expose
18688
2007-06-16 Miguel de Icaza <miguel@novell.com>
18690
* runtime.cpp (Cairo::render): The canvas also needs to set the
18691
matrix and clear its background.
18693
(surface_resize): convenience entry point to resize a surface.
18694
Notice that this will resize the surface, but not the toplevel
18697
2007-06-16 Jackson Harper <jackson@ximian.com>
18702
* xaml.cpp: Use a callback for setting custom attributes in
18705
2007-06-16 Jeffrey Stedfast <fejj@gnome.org>
18707
* media.cpp: Implemented all the needed virtual methods for
18708
MediaElement to work, using my new MediaPlayer class.
18710
* mplayer.cpp|h: New class for playing media sources.
18712
* ffvideo.cpp: Removed from the build.
18714
2007-06-16 Miguel de Icaza <miguel@novell.com>
18716
Observation: either it is the surface, or something else is very
18717
slow, but entering the surface is quite slow right now to show the
18718
handles. Not sure what it could be.
18720
* runtime.cpp (OnPropertyChanged): We probably should catch the
18721
property changes here, and not in the Sub* variant of this thing,
18722
this will update the canvas properly now.
18724
(dump_hierarchy): useful bit to debug what is going wrong.
18726
(Canvas::get_xform_for): Do not apply extra
18727
transformations to the child other than the absolute_xform.
18729
(surface_attach): On attach we need to do a full invalidate, so
18730
the transformations are computed, otherwise it uses the defaults
18731
for the toplevel (zero), this fixes the atom.xaml issue.
18733
* control.cpp (get_xform_for): This is not proxied to the real
18734
object, this is proxied to the parent.
18735
(control_initialize_from_xaml): Set the parent link here.
18737
2007-06-16 Chris Toshok <toshok@ximian.com>
18739
* transform.cpp, transform.h, runtime.cpp, runtime.h,
18740
geometry.cpp, geometry.h, animation.cpp: Another pass (the last)
18741
at removing all cached instance collections and using GetValue
18744
2007-06-16 Chris Toshok <toshok@ximian.com>
18746
* media.cpp (Image::SetSource): we want events even if we attach a
18747
downloader that's been started.
18749
2007-06-16 Sebastien Pouliot <sebastien@ximian.com>
18751
* shape.cpp: If StrokeThickness == 0 then don't stroke, otherwise it
18752
will mess with the earlier filling.
18754
2007-06-16 Chris Toshok <toshok@ximian.com>
18756
* runtime.h, runtime.cpp: remove the instance cached
18757
Panel::children, use accessor to get it when we need it.
18759
* brush.h, brush.cpp: same for the GradientBrush::children
18762
2007-06-16 Chris Toshok <toshok@ximian.com>
18764
* runtime.h: make these const Rect&'s.
18766
2007-06-16 Sebastien Pouliot <sebastien@ximian.com>
18768
* control.cpp|runtime.h: control_initialize_from_xaml needs to return
18769
the Value::Kind of the object that was created so the managed side do
18772
2007-06-16 Sebastien Pouliot <sebastien@ximian.com>
18774
* control.cpp|runtime.h: control_initialize_from_xaml needs to return
18775
the element as the managed side needs (and defines) it.
18777
2007-06-16 Miguel de Icaza <miguel@novell.com>
18779
* control.cpp: Implement Control.
18781
* downloader.cpp: Implement a system to send various notifications
18782
as Chris wants his notifications and managed world wants the
18783
notifications as well.
18785
Should they ahve been separate? For now I just added a list of
18786
them. This code is turning uglier every minute.
18788
2007-06-16 Jackson Harper <jackson@ximian.com>
18790
* xaml.cpp: Kill top_kind, I have no idea how this guy crept back
18792
- Handle expat errors a little better.
18794
2007-06-16 Sebastien Pouliot <sebastien@ximian.com>
18796
* runtime.h: Implement missing IntersectsWith and Intersection to fix
18799
2007-06-15 Chris Toshok <toshok@ximian.com>
18801
* runtime.cpp (Canvas::render): small optimization. only call the
18802
item's render method if its bounds actually intersects with the
18803
rectangle we're rendering. Also, clip to the bounding rectangle
18806
2007-06-16 Chris Toshok <toshok@ximian.com>
18808
* clock.cpp, clock.h: don't use a constant for the timeout in
18809
gtk_timeout_add, and add methods to add/remove the timeout.
18811
(ClockGroup::TimeUpdated): if we're paused or stopped,
18812
don't call child clock TimeUpdated methods at all. they always
18813
generate CurrentTimeInvalidated even when the time hasn't changed,
18814
which triggers redraws that don't need to happen.
18816
2007-06-16 Jackson Harper <jackson@ximian.com>
18818
* runtime.cpp|h: We still need C style base_ref/unref.
18820
* xaml.cpp: Takle a callback for the from_file method also.
18822
2007-06-16 Jeffrey Stedfast <fejj@gnome.org>
18824
* ffvideo.cpp (Stop): Implemented.
18825
(.ctor): init paused to false (maybe this is why video
18826
didn'talways work?).
18827
(.dtor): Stop() the video and unhook the timeout.
18829
* runtime.cpp: Implement Base::ref and Base::unref instead of
18830
doing it the c way.
18832
* *.cpp: Updated for above change.
18834
* shape.cpp (shape_set_stroke): Don't unref the old stroke.
18835
(shape_set_fill): Same.
18837
* text.cpp (text_init): Use a separate brush for TextBlocks and
18839
(text_block_set_foreground): Don't unref the old brush.
18840
(inline_set_foreground): Same.
18842
2007-06-15 Chris Toshok <toshok@ximian.com>
18844
* xaml.cpp: little leak fixes here and there.
18846
2007-06-15 Chris Toshok <toshok@ximian.com>
18848
* demo.cpp (delete_event): destroy the surface and shutdown the
18849
runtime before we quit, just to make finding leaks a little
18852
* ffvideo.cpp (MediaElementFfmpeg): re-order the
18853
close/g_io_channel_close calls to quiet down glib.
18855
* media.cpp: don't close the loader in DownloaderEvents. do it in
18856
the dtor for now, to keep from getting that stupid gdk warning.
18857
this is wrong, but at least it's quiet.
18859
* text.cpp: delete the color we initialize the solid color brush
18862
* animation.cpp, animation.h: remove the cached key_frames
18865
* runtime.h, runtime.cpp: clean up our cleanup a lot.
18867
in the copy constructor we actually need to make a copy (or
18868
ref in cases where we can) everything we store as a pointer in
18869
our union. This is to facilitate us destroying it in the
18872
in surface_destroy just delete the surface. move all the destroy
18873
code to the destructor. Also, in the destructor unhook from the
18874
gtk events, since we get an unrealize event as part of widget
18875
destruction, apparently.
18877
Add DependencyObject::Shutdown which destroys our properties
18878
hashtable. Create all the hashtables with _new_full so we can
18879
give free functions for keys/values. actually make use of them,
18880
and clean up the relevant destructors.
18882
Add a destructor for Type, and have the Type ctor take its
18883
arguments. free the name in the dtor. Same deal with _new_full
18884
for hashtable creation, and also add Type::Shutdown.
18886
(runtime_shutdown): call TimeManager::Shutdown, Type::Shutdown,
18887
and DependencyObject::Shutdown to free all our stuff.
18889
* clock.h, clock.cpp: add TimeManager::Shutdown.
18891
2007-06-15 Jeffrey Stedfast <fejj@gnome.org>
18893
* demo.cpp (gettime): Improved fps reporting.
18895
2007-06-15 Miguel de Icaza <miguel@novell.com>
18897
* media.cpp (SetSource): Make it so we use the data from a
18898
downloader that might have already finished.
18900
2007-06-15 Chris Toshok <toshok@ximian.com>
18902
* runtime.cpp: simplify refcounting a little more. we now have 3
18905
1. Value() holds a ref to its contained dependency object.
18906
This means we don't have to do anything special for
18907
anything stored in a DP.
18909
2. Collections hold a ref to their constituents.
18911
3. If you *must* cache an DO pointer in an instance field, you
18912
must ref/unref it properly. But really, you shouldn't need
18913
to cache it, and I'll likely go through and remove all the
18916
* media.cpp (media_element_set_markers): remove the ref/unref
18919
* animation.cpp: comment out some spew, and follow a safer pattern
18920
in OnPropertyChanged.
18922
* brush.cpp (OnPropertyChanged): safer pattern.
18924
* geometry.cpp (OnPropertyChanged): safer pattern.
18926
* runtime.h: make all these dtors virtual.
18928
* clock.cpp, clock.h: remove the cached child_timelines instance
18929
field to clean up some of the ref counting problems.
18931
2007-06-15 Miguel de Icaza <miguel@novell.com>
18933
* media.cpp (SetSource): Make it so we use the data from a
18934
downloader that might have already finished.
18936
We now accumulated data as we go.
18938
* downloader.cpp (downloader_get_response_text): Return
18941
2007-06-15 Jackson Harper <jackson@ximian.com>
18945
* xaml.cpp: Callback into managed code to create custom element
18948
2007-06-15 Jeffrey Stedfast <fejj@novell.com>
18950
* media.cpp (media_base_new): Removed, not instantiable.
18951
(Image::getbounds): Need to set the absolute_xform matrix :)
18953
2007-06-15 Miguel de Icaza <miguel@novell.com>
18955
* media.cpp (Image::getxformorigin): Implement getxformorigin, so
18956
rotations are correct.
18958
(Image::getbounds): Implement getbounds correctly, the coordinates
18959
should be in device coordinates with the transform applied.
18961
2007-06-15 Jeffrey Stedfast <fejj@novell.com>
18963
* demo.cpp (main): Add some Inlines to the TextBlock to test
18964
bounding box calculations.
18966
* text.cpp (OnPropertyChanged): If the property that changed is
18967
the Actual width/height, then don't invalidate anything - simply
18968
return (these are just cache values that only we can set
18970
(Draw): Keep track of the pixel width/height of the entire
18971
rendered TextBlock+Inlines.
18972
(getbounds): Use the cached width/height of the TextBlock+Inlines
18973
and draw a rectangle instead to improve performance.
18975
2007-06-15 Sebastien Pouliot <sebastien@ximian.com>
18977
* media.cpp|h: Add media_base_new.
18979
2007-06-15 Miguel de Icaza <miguel@novell.com>
18981
* Add destructors to classes that are caching DO collections and
18982
keeping refs to those, thanks to Chris Toshok for the pattern to
18985
2007-06-15 Chris Toshok <toshok@ximian.com>
18987
* media.cpp (Image::render): use the uielement's opacity when
18988
painting. Fixes the DrPopperSilverlight Bubble.xaml file.
18990
2007-06-15 Miguel de Icaza <miguel@novell.com>
18992
* runtime.cpp (UIElement): The problem was that:
18994
The ~UIElement destructor was setting the collection
18995
properties to NULL in an attempt to unref stuff (these
18996
are now automatically unrefed).
18998
This caused the hash table destructor to unref the values
18999
that were held in the collection.
19001
At a later point, since "triggers" was cached and
19002
OnPropertyNotify was called, we attempted to unref the
19003
value, but that cached value pointed to an object that had
19004
already been released.
19006
* Everywhere: remove duplicated code that got copy/pasted
19007
everywhere for tracking collections and caching values.
19009
This should help fixing the crashing problem, but I still need to
19010
review the rules for reference counting and keeping a cache of
19011
variables in instance fields.
19013
2007-06-15 Jeffrey Stedfast <fejj@novell.com>
19015
* text.cpp (Draw): Now renders inlines.
19017
2007-06-15 Chris Toshok <toshok@ximian.com>
19019
* Makefile.am (EXTRA_DIST): add alpha-premul-table.inc from
19022
* demo.cpp: notify the downloader of the image file size so that
19023
it'll generate a COMPLETED event for the Image.
19025
* media.h, media.cpp: make image downloading non-progressive (we
19026
only create the surface when the downloader notifies the download
19027
is complete), but gain something in return: images with alpha
19030
* downloader.h, downloader.cpp: add closure to event_notify, and
19031
expose the Event kind.
19033
2007-06-15 Miguel de Icaza <miguel@novell.com>
19035
* runtime.cpp (UIElement, Canvas): send events to the objects as
19036
well. My original test on orcas was buggy.
19038
2007-06-15 Sebastien Pouliot <sebastien@ximian.com>
19040
* runtime.cpp|h, type.cpp, value.cpp|h: Add Control.
19042
2007-06-15 Jeffrey Stedfast <fejj@novell.com>
19044
* xaml.cpp (dependency_object_add_child): If the col_v collection
19045
value is NULL, create a new collection and add it to the
19048
* runtime.cpp: Added a generic collection_new() function which
19049
takes a Value::Kind to specificy which collection-type it should
19052
2007-06-15 Miguel de Icaza <miguel@novell.com>
19054
* downloader.cpp: Implement DownloadProgress property and event
19057
* runtime.h (DependencyObject::Is): new method, similar to C# is.
19059
* runtime.cpp (surface_repaint): We clear the background here
19060
again, to allow canvases to have transparent brushes.
19062
2007-06-15 Sebastien Pouliot <sebastien@ximian.com>
19064
* runtime.cpp: Panel.Background is NULL by default, which means it's
19065
transparent. This fixes Canvas inside Canvas.
19067
2007-06-15 Jackson Harper <jackson@ximian.com>
19069
* runtime.cpp|h: Implement some Inlines stuff that the parser will
19071
* xaml.cpp: Add some of the pieces for creating textblock inlines.
19072
- Added some TODO areas for creating late bound collections (maybe
19073
this should just be illegal??).
19075
2007-06-15 Jeffrey Stedfast <fejj@novell.com>
19077
* text.cpp: Have inlines cache their PangoFontDescription and
19078
added logic to render textblock inlines.
19080
2007-06-15 Alan McGovern <amcgovern@novell.com>
19082
* runtime.cpp|h: Added DependencyProperty.NameProperty
19084
2007-06-15 Rolf Bjarne Kvinge <RKvinge@novell.com>
19086
* transform.cpp|h: Add Transform C constructor.
19087
* runtime.cpp: Better warning message.
19089
2007-06-15 Miguel de Icaza <miguel@novell.com>
19091
* runtime.cpp (surface_attach): Only hook up the events when we
19092
get a toplevel attached.
19094
* downloader.h: Drop the C++ API with a C proxy API, switch to a
19095
pure C API as we need this from the managed side anyways.
19097
* downloader.h: Move downloader defs into .h file
19099
Add a notification system for reporting the size of a stream, so
19100
we can do progress indication.
19102
* downloader.cpp: Move downloader to its own file.
19104
2007-06-15 Sebastien Pouliot <sebastien@ximian.com>
19106
* brush.cpp: Implement ImageBrush.Opacity like MS does it in 1.1 alpha
19107
(i.e. Brush.Opacity isn't considered, only UIElement.Opacity is)
19108
* geometry.cpp: PathFigure::IsFilledProperty is ignored in Mix and
19109
will be removed in 1.0.
19110
* media.cpp|h: Make Image aware of ImageBrush (so we can update too)
19111
* runtime.cpp|h: Move calculation of "total" opacity of UIElement at
19114
2007-06-15 Jeffrey Stedfast <fejj@gnome.org>
19116
* text.cpp (text_init): Set more default values.
19118
* runtime.cpp (Panel::OnPropertyChanged): Free children->list (as
19119
we iterate thru them) and set the resulting list to NULL (in case
19120
we don't hold the last ref) before unreffing the children object
19121
(in case we do own the last ref).
19122
(EventTrigger::OnPropertyChanged): Same.
19123
(UIElement::OnPropertyChanged): Same.
19125
* transform.cpp (OnPropertyChanged): Same.
19127
* geometry.cpp (GeometryGroup::OnPropertyChanged): Same.
19128
(PathGeometry::OnPropertyChanged): Same
19129
(PathFigure::OnPropertyChanged): Same.
19131
* clock.cpp (TimelineGroup::OnPropertyChanged): Same.
19134
(DoubleAnimationUsingKeyFrames::OnPropertyChanged): Same.
19135
(ColorAnimationUsingKeyFrames::OnPropertyChanged): Same.
19136
(PointAnimationUsingKeyFrames::OnPropertyChanged): Same.
19138
2007-06-15 Sebastien Pouliot <sebastien@ximian.com>
19140
* brush.cpp: Complete ImageBrush.Transform
19141
* shape.cpp: Please at least one side of the lines.
19143
2007-06-15 Jeffrey Stedfast <fejj@gnome.org>
19145
* text.cpp (text_init): No longer should ref the foreground brush
19148
* xaml.cpp: Added support for Runs/LineBreaks
19150
* text.cpp: Implemented Run/LineBreak classes.
19151
(inline_new): Removed (can't instantiate this class).
19153
2007-06-15 Miguel de Icaza <miguel@novell.com>
19155
* runtime.cpp (~DependencyObject, free_value): unref all the
19156
values that are stored in the object on destruction
19158
* runtime.cpp: Add support for enter/leave events.
19160
2007-06-14 Jeffrey Stedfast <fejj@gnome.org>
19162
* text.cpp (getbounds): Set the actual width/height values to keep
19165
2007-06-14 Jeffrey Stedfast <fejj@gnome.org>
19167
* text.cpp (getbounds): Revert prior change.
19168
(getxformorigin): Same.
19170
* shape.cpp (getbounds): Revert prior change.
19172
* ffvideo.cpp (getbounds): Revert prior change.
19174
* runtime.cpp (update_xform): Revert my last change.
19175
(item_update_bounds): Same.
19177
2007-06-14 Jackson Harper <jackson@ximian.com>
19179
* xaml.cpp: Set content properties when adding child elements. We
19180
now no longer need to special case any elements except panel.
19182
2007-06-14 Jackson Harper <jackson@ximian.com>
19184
* xaml.cpp: I must have been very tired when I wrote that.
19186
2007-06-14 Sebastien Pouliot <sebastien@ximian.com>
19188
* media.h: Expose Image's Height and Width (required for ImageBrush)
19189
* brush.cpp: Implement all Strech and Alignment[X|Y] options. Nothing
19190
(yet) force an update of the drawing once the image is available.
19192
2007-06-14 Jeffrey Stedfast <fejj@gnome.org>
19194
* demo.cpp: Updated s/textblock/text_block/g
19196
* xaml.cpp: Don't register TextBlock twice.
19198
* ffvideo.cpp (getbounds): Can now depend on surface being set.
19200
* text.cpp: s/textblock/text_block/g
19201
(getbounds): Can now depend on surface being set.
19202
(getxformorigin): Same.
19204
* shape.cpp (getbounds): Can now depend on surface being set.
19206
* runtime.cpp (item_update_bounds): Don't update bounds if the
19207
surface hasn't been set yet.
19208
(update_xform): Same.
19210
2007-06-14 Jackson Harper <jackson@ximian.com>
19212
* xaml.cpp: Add keyspline parsing.
19214
2007-06-14 Jackson Harper <jackson@ximian.com>
19216
* value.h: This guy doesn't exist anymore, he is a
19217
DependencyObject now.
19219
2007-06-14 Jackson Harper <jackson@ximian.com>
19222
* runtime.cpp|h: We also need to update the DependencyObject when
19223
resolving PropertyPaths.
19225
2007-06-14 Jackson Harper <jackson@ximian.com>
19227
* runtime.cpp|h: New function that follows PropertyPath's to
19228
DependencyProperties.
19229
* animation.cpp: Use new function to resolve animation target
19232
2007-06-14 Jackson Harper <jackson@ximian.com>
19234
* runtime.cpp (GetDependencyProperty): If there is no table for a
19235
property, we still need to lookup the property in the parent
19236
chain (assumming inherit is true).
19237
- Fix some typos with types_by_name
19239
2007-06-14 Jeffrey Stedfast <fejj@novell.com>
19241
* demo.cpp (main): Rotate our demo text inside a filled rectangle
19242
around the center of the text.
19244
* text.cpp (TextBlock.ctor): Initialise a cached
19245
PangoFontDescription that we will update when properties change.
19246
(TextBlock.dtor): Free our font/layout.
19247
(getbounds): Implemented correctly.
19248
(getxformorigin): Implemented.
19249
(Draw): Simplified since we don't need to create our layout/font
19250
anymore (just use the cached ones).
19251
(OnPropertyChanged): Implemented.
19253
2007-06-14 Miguel de Icaza <miguel@novell.com>
19255
* brush.cpp (Brush, SolidColorBrush, LinearGradientBrush,
19256
RadialGradientBrush): Notify owners when changes happen in the
19259
This makes the demo test-color-animation.xaml work without fps.
19261
* runtime.cpp: Make Canvas use the Background property to render
19264
2007-06-14 Chris Toshok <toshok@ximian.com>
19266
* demo.cpp (main): create a namescope to attach to the canvas, and
19267
also make sure to add the storyboard to the tree someplace so that
19268
it can find the names of things.
19270
* xaml.cpp: create a namescope to attach to the top_element.
19272
* runtime.cpp (FindName): rework this to walk up the tree. Drop
19273
the global namescope.
19275
2007-06-14 Sebastien Pouliot <sebastien@ximian.com>
19277
* brush.cpp|h: Add ImageBrush functions, which delegates most of its
19278
work to Image (downloader).
19279
* media.cpp|h: Expose the cairo_surface_t that contains the image.
19281
2007-06-14 Chris Toshok <toshok@ximian.com>
19283
* demo.cpp (FileDownloadState::AsyncFillBuffer): increase buffer
19284
size from 1024 to 8192 (and make it an instance instead of stack
19285
variable). Also, add a return statement that will cause the idle
19286
handler to no longer be called when we get a write of 0 length.
19287
This might be wrong in the long term.
19289
* media.cpp, media.h: add cleanup methods for the Image class, and
19290
add a dtor as well.
19292
2007-06-14 Chris Toshok <toshok@ximian.com>
19294
* media.cpp (LoaderSizePrepared): fill in the initial state of the
19295
image to gray with black border.
19296
(LoaderAreaUpdated): invalidate the item.
19298
* media.h: fix the progressive image loading.
19300
2007-06-14 Chris Toshok <toshok@ximian.com>
19302
* demo.cpp: use the MediaBase::SourceProperty to set the image's
19305
* media.h, media.cpp: add Image::OnPropertyChanged so we can watch
19306
for changes in MediaBase::SourceProperty and kick off the download
19307
and stop the currently running one.
19309
2007-06-14 Chris Toshok <toshok@ximian.com>
19311
* demo.cpp: track downloader api change.
19313
* media.cpp: track downloader api change.
19315
* runtime.h, runtime.cpp: the downloader's write function needs an
19316
offset as well as a length to work with mozilla's streaming api.
19318
2007-06-14 Jeffrey Stedfast <fejj@novell.com>
19320
* demo.cpp (main): Draw some text
19322
* text.cpp (text_init): Set a default solid black brush for
19323
foreground properties on Inline/TextBlock objects.
19324
(Draw): Setup the Brush stuff before drawing.
19326
2007-06-14 Jackson Harper <jackson@ximian.com>
19328
* xaml.cpp: Add support for loading all implemented (and semi
19329
implemented) dependency object types.
19330
* text.cpp|h: C style constructors.
19332
2007-06-14 Chris Toshok <toshok@ximian.com>
19334
* animation.cpp (KeySpline): default should be 1,1 for
19337
2007-06-14 Sebastien Pouliot <sebastien@ximian.com>
19339
* xaml.cpp: Add support for Matrix (non-DO) type.
19341
2007-06-14 Chris Toshok <toshok@ximian.com>
19343
* runtime.cpp (downloader_write): add C-style downloader_write
19344
method so we can call into it from the binding.
19346
2007-06-14 Chris Toshok <toshok@ximian.com>
19348
* value.cpp, animation.h, type.cpp, value.h, runtime.cpp,
19349
type.cpp.in, value.h.in: make KeySpline subclass from
19350
DependencyObject like it should, and fix resulting fallout.
19352
2007-06-14 Miguel de Icaza <miguel@novell.com>
19354
* runtime.cpp (Canvas): Implement OnChildPropertyChanged so we can
19355
catch cases of Top/Left being set on a child, this makes changes
19356
to the object after it has been created (adding/removing the
19359
2007-06-14 Sebastien Pouliot <sebastien@ximian.com>
19361
* brush.cpp|h: Much closer results for RadialGradients (but I still
19362
have a test case that fails). Also added Transform support for
19365
2007-06-14 Jackson Harper <jackson@ximian.com>
19367
* animation.h: C style constructors.
19368
* clock.cpp|h: C style constructors.
19369
* runtime.cpp|h: Follow proper naming convention for
19370
TimelineMarker C style constructors.
19372
2007-06-14 Chris Toshok <toshok@ximian.com>
19374
* runtime.h, runtime.cpp: remove the hack UnmanagedDownloader from
19375
here, and made Downloader pluggable with a set of functions.
19377
* demo.cpp: use the pluggable nature of Downloader to put
19378
UnmanagedDownloader here (and call it FileDownloadState).
19380
* value.cpp, value.h, type.cpp: resync.
19382
2007-06-14 Jeffrey Stedfast <fejj@novell.com>
19384
* text.cpp: Fixed Brush accessors for the NULL case.
19386
* media.cpp: Fixed accessors that could return NULL
19387
(media_init): init MediaBase and MediaElement items.
19389
2007-06-14 Jackson Harper <jackson@ximian.com>
19391
* animation.cpp: C style constructor.
19392
* media.cpp|h: Add some C style constructors.
19393
* xaml.cpp: Add parsing hooks for new components.
19395
2007-06-14 Chris Toshok <toshok@ximian.com>
19397
* demo.cpp: make one of the videos an image instead.
19399
2007-06-14 Jeffrey Stedfast <fejj@novell.com>
19401
* xaml.cpp: Fixed the font_widths and font_stretches maps to
19402
reflect the numeric enum values defined in text.h (and msdn docs).
19404
* text.h: Sync enum values to documented numeric values.
19406
2007-06-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
19408
* transform.cpp|h, media.cpp|h, brush.cpp|h, runtime.cpp|h:
19409
Make all classes that inherit from DO constructable, and add
19410
missing C-style constructors.
19412
2007-06-14 Jackson Harper <jackson@ximian.com>
19414
* runtime.cpp|h: Hookup the resource collection.
19415
* xaml.cpp: Parse resource collections.
19417
2007-06-14 Chris Toshok <toshok@ximian.com>
19419
* type.cpp, value.h, type.h: resync these.
19421
* media.h, media.cpp: add naive Image class.
19423
* runtime.h, runtime.cpp: add some Downloader methods, and
19424
subclass Downloader with a *very* hackish UnmanagedDownloader
19425
class that just loads from files. Also add a "write_func"
19426
callback that the downloader can call when it has new data to hand
19429
2007-06-14 Chris Toshok <toshok@ximian.com>
19431
* animation.cpp: import an arc length calculator I found on the
19432
net (at http://steve.hollasch.net/cgindex/curves/cbezarclen.html)
19433
and use that for KeySpline::GetSplineProgress. The results don't
19434
match MS's exactly, though.
19436
2007-06-14 Rolf Bjarne Kvinge <RKvinge@novell.com>
19438
* geometry.cpp, geometry.h: Add collection constructors.
19439
* brush.cpp, brush.h: Add ImageBrush and VideoBrush DPs.
19440
* runtime.cpp|runtime.h: Implement collection add/remove methods.
19441
Add Downloader DPs.
19442
* media.cpp: Add MediaAttribute DP.
19444
2007-06-14 Sebastien Pouliot <sebastien@ximian.com>
19446
* brush.cpp|h: Refactor Opacity to make it reusable to other brushes
19447
(as it cannot be globally applied). Added DP, and related functions,
19450
2007-06-14 Miguel de Icaza <miguel@novell.com>
19452
* Improve the destruction scenario to release the resources that
19453
we have acquired, we are now up to the point of stopping clocks
19454
properly, but more work is going to be needed in the long term to
19455
properly track refs and objects.
19457
Ensured that all virtual GetObjectType are flagged with virtual.
19459
* Makefile.am: Put runtime.cpp at the top, to improve
19460
compile/test cycle.
19462
2007-06-14 Sebastien Pouliot <sebastien@ximian.com>
19464
* brush.cpp|h: One step closer for RadialGradientBrush
19465
* geometry.cpp: Fix ArcSegment sweep direction. All chess pieces now
19466
render (shape-wise) correctly.
19467
* shape.cpp: Draw before setting the brush. This allows the brush
19468
setting code to ask for the extents to stroke/fill.
19470
2007-06-13 Chris Toshok <toshok@ximian.com>
19472
* animation.cpp (KeySpline::GetSplineProgress): reimplement this
19473
to return a percentage of the arc length of the bezier that is
19474
traversed when t = linearProgress, taking the algorithm from
19475
http://steve.hollasch.net/cgindex/curves/cbezarclen.html
19477
2007-06-13 Chris Toshok <toshok@ximian.com>
19479
* brush.h, geometry.h, animation.h, clock.h: add GetElementType
19480
collection overloads.
19482
* type.cpp: resync to track UIElement : Visual relationship.
19484
* runtime.h: add Collection::GetElementType, and add overloads
19485
(some commented out) for the collections listed. Also, fix
19486
UIElement's superclass to be Visual.
19488
* runtime.cpp (Add): make sure we're only adding subclasses of our
19491
2007-06-13 Chris Toshok <toshok@ximian.com>
19493
* clock.cpp (AddChild): just pass the child, unwrapped.
19495
* runtime.h: remove the Value* overloads for Collection::Add and
19496
Collection::Remove.
19498
* xaml.cpp (dependency_object_add_child): just pass the dependency
19501
2007-06-13 Jeffrey Stedfast <fejj@novell.com>
19503
* text.cpp: Implemented a ton of stuff...
19504
(text_init): Added.
19506
* runtime.cpp (runtime_init): Call text_init().
19508
2007-06-13 Miguel de Icaza <miguel@novell.com>
19510
* runtime.h (Collection): Since it seems that everything we have
19511
so far are collections of dependency objects, the code is now
19512
simplified and will also take refs and remove refs on destruction.
19514
The only reason to implement the Add/Remove methods is if you must
19515
do something as a hook during add/remove
19517
* runtime.cpp (SetValue): Enable NULLs to be set on Dependency
19520
(OnPropertyChanged): Allow the value to be NULL, cope with that,
19521
we use this to clear all of our objects.
19523
2007-06-13 Chris Toshok <toshok@ximian.com>
19525
* xaml.cpp (xaml_create_from_str): make the from_str a little
19526
closer to from_file. fixes hooking up names when loading from
19529
2007-06-13 Chris Toshok <toshok@ximian.com>
19531
* runtime.cpp (runtime_init): start the time manager here.
19533
* demo.cpp (main): instead of here.
19535
2007-06-13 Jackson Harper <jackson@ximian.com>
19537
* xaml.cpp: Gracefull handling of error conditions. Being
19538
intentionally non strict about some things while we are
19539
developing (like unknown elements, and attributes, and missing
19542
2007-06-13 Sebastien Pouliot <sebastien@ximian.com>
19544
* brush.cpp: Better, but still imperfect, RadialGradientBrush
19546
2007-06-13 Jackson Harper <jackson@ximian.com>
19548
* runtime.h: Add some of the error event handler args, so i can
19549
use these in the parser.
19551
2007-06-13 Jeffrey Stedfast <fejj@novell.com>
19553
* brush.cpp (OnPropertyChanged): Free list nodes as we iterate
19554
(soptimsation, woot).
19556
* text.cpp: Implemented c wrappers for Inline
19558
2007-06-13 Sebastien Pouliot <sebastien@ximian.com>
19560
* brush.cpp: Implemented LinearGradientBrush::SetupBrush
19561
* xaml.cpp: Handle GradientStops correctly (at GradientBrush) and add
19562
support for LinearGradientBrush.
19564
2007-06-13 Jeffrey Stedfast <fejj@novell.com>
19566
* text.cpp: Stubbed out TextBlock and Glyphs
19568
2007-06-13 Jackson Harper <jackson@ximian.com>
19570
* xaml.cpp: GradientBrush is a Brush.
19572
2007-06-13 Miguel de Icaza <miguel@novell.com>
19574
* runtime.cpp (dependency_object_find_name): Add new wrapper
19576
2007-06-13 Chris Toshok <toshok@ximian.com>
19578
* animation.cpp, animation.h: add public storyboard methods for
19579
begin/pause/resume/seek/stop. also start in on the spline
19580
keyframe/KeySpline stuff.
19582
* type.cpp: resync.
19584
* value.cpp: resync.
19588
* value.h.in: add keyspline stuff.
19590
* type.cpp.in: add keyspline stuff.
19592
2007-06-13 Chris Toshok <toshok@ximian.com>
19594
* demo.cpp: a few changes - none of the animations run forever
19595
now. also, add some gtk events (button press/release/motion). we
19596
pause animations on press, resume them on release.
19598
* clock.cpp: keep track of the offset caused by pausing/resuming
19599
the clock from our parent's time.
19601
* animation.cpp: split out all the logic for finding the current
19602
(and previous) keyframes into
19603
KeyFrameCollection::GetKeyFrameForTime. Also, make the key frame
19604
collection maintain a separate sorted list of keyframes.
19606
2007-06-13 Jeffrey Stedfast <fejj@novell.com>
19608
* media.cpp (media_base_get_source): Implemented; use char*
19609
instead of Uri - we'll make the binding convert between the types.
19610
(media_base_set_source): Same.
19612
2007-06-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
19614
* runtime.cpp: Xlib and we are both defining Visual,
19615
so implement a workaround.
19617
2007-06-13 Sebastien Pouliot <sebastien@ximian.com>
19619
* brush.cpp|h: Added code for LinearGradientBrush and partial setup
19620
for all gradient-related brushes (needs testing). Add all color
19621
definitions supported by XAML.
19622
* mkcolor.cs: Tool to generate colors from System.Drawing (as they
19625
2007-06-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
19627
* runtime.h: Add Visual.
19628
* value.cpp, value.h, type.cpp: Updated.
19630
2007-06-13 Jeffrey Stedfast <fejj@gnome.org>
19632
* ffvideo.cpp: Back to using ALSA, but this time I got it right ;)
19634
2007-06-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
19636
* media.h: Added MediaAttribute.
19637
* runtime.h: Added Downloader.
19638
* value.cpp, value.h, type.cpp: Updated.
19639
* typegen.cs: Copy Kind.cs to the correct directory.
19641
2007-06-13 Rolf Bjarne Kvinge <RKvinge@novell.com>
19643
* brush.cpp, brush.h, geometry.cpp: Fix property registration
19646
2007-06-13 Sebastien Pouliot <sebastien@ximian.com>
19648
* brush.cpp|h: Fix Brush::RelativeTransformProperty and
19649
Brush::RelativeTransformProperty types.
19651
2007-06-13 Sebastien Pouliot <sebastien@ximian.com>
19653
* brush.cpp|h: Complete DependencyProperties for GradientBrush and
19654
add GradientStopCollection.
19655
* runtime.cpp|h: Remove code for GradientStopCollection.
19656
* xaml.cpp: Register new brush classes.
19658
2007-06-13 Miguel de Icaza <miguel@novell.com>
19660
* runtime.cpp: Various new events are now sent.
19662
2007-06-13 Jackson Harper <jackson@ximian.com>
19664
* xaml.cpp: When using the xaml_create_from_str we automatically
19665
add the default and x: namespaces.
19667
2007-06-12 Jeffrey Stedfast <fejj@gnome.org>
19669
* ffvideo.cpp: Fixed to subclass the new MediaElement class.
19671
* video.cpp: Removed.
19673
2007-06-12 Sebastien Pouliot <sebastien@ximian.com>
19675
* brush.cpp|h: Added DependencyProperty for GradientBrush and
19676
GradiantStop. Added new brush-related enums. Add [g|s]etter functions
19677
for RadialGradient and BrushGradiantStop.
19679
2007-06-12 Jackson Harper <jackson@ximian.com>
19681
* xaml.cpp: Repsect namespaces.
19682
- Clean up code a little
19684
2007-06-12 Sebastien Pouliot <sebastien@ximian.com>
19686
* brush.h: New. Brush related stuff.
19687
* brush.cpp: DependencyProperty for RadialGradientBrush
19688
* runtime.h: [Re]move brush stuff.
19689
* shape.h: Add include for brush.h
19690
* type.cpp, value.h, value.h: Add RadialGradientBrush type.
19691
* Makefile.am: Add brush.h to the build.
19693
2007-06-12 Jeffrey Stedfast <fejj@gnome.org>
19695
* media.cpp|h: Added to the build
19697
2007-06-12 Sebastien Pouliot <sebastien@ximian.com>
19699
* transform.cpp|h: Complete MatrixTransform.
19700
* value.h, value.h.in, runtime.cpp, type.cpp, type.cpp.in: Introduce
19703
2007-06-12 Miguel de Icaza <miguel@novell.com>
19705
* runtime.h (UIElement::inside_object): new routine that should
19706
return true if the given absolute x, y is inside the given object
19709
(UIElement::handle_motion): new routine that is called when a
19710
motion event happens, it should determine if it can handle the
19711
given event at x, y.
19713
(Surface): new callbacks, these are callbacks that will pass the
19714
notification of the event to managed code.
19716
* runtime.cpp (FrameworkElement): provide a default implementation
19717
for inside object that works for "squares" (things with widths and
19720
2007-06-12 Jeffrey Stedfast <fejj@novell.com>
19722
* ffvideo.cpp: Instead of aborting when SDL_OpenAudio() fails,
19723
simply disable audio for that video. Temporary hack.
19725
2007-06-12 Sebastien Pouliot <sebastien@ximian.com>
19727
* transform.cpp: Fix SkewTransform with translations (Center[X|Y])
19729
2007-06-12 Jackson Harper <jackson@ximian.com>
19731
* xaml.cpp: Implement enums. This implementation is very naive,
19732
but works with the current Silverlight object model. Basically,
19733
we just index property names to enum maps. So a property name
19734
maps to a single enum type regardless of the type the enum is
19735
declared in. This works fine with the current silverlight object
19736
model, but in the future might need to be changed, if we get
19737
conflicting property names.
19739
2007-06-12 Jeffrey Stedfast <fejj@novell.com>
19741
* ffvideo.cpp: Fixed sound playback to not get that nasty
19742
reverb-like effect. Also switched to using SDL for audio.
19744
2007-06-12 Sebastien Pouliot <sebastien@ximian.com>
19746
* transform.cpp|h: Implement SkewTransform.
19747
* type.cpp: Register new type SkewTransform.
19748
* value.cpp|h: Add SkewTransform.
19749
* xaml.cpp: Register DO for SkewTransform.
19751
2007-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
19753
* runtime.cpp, runtime.h: Make DependencyObject::ParentProperty
19756
2007-06-12 Jackson Harper <jackson@ximian.com>
19758
* xaml.cpp: Don't try to add properties to the panel.
19760
2007-06-12 Sebastien Pouliot <sebastien@ximian.com>
19762
* geometry.cpp: Implemented ArcSegment::Draw using librsvg code
19763
* rsvg.cpp|h: New. Code from LGPL librsvg to implement arc_to
19764
* Makefile.am: Add rsvg.cpp|h to the build.
19766
2007-06-12 Jackson Harper <jackson@ximian.com>
19768
* xaml.cpp: Add parser for KeyTime structures.
19770
2007-06-12 Chris Toshok <toshok@ximian.com>
19773
(ColorAnimationUsingKeyFrames::GetNaturalDurationCore): implement.
19774
(PointAnimationUsingKeyFrames::GetNaturalDurationCore): implement.
19775
(animation_init): make sure to initialize
19776
ColorKeyFrame::ValueProperty.
19778
* clock.cpp (Timeline::GetNaturalDuration): comment out some spew.
19780
2007-06-12 Jackson Harper <jackson@ximian.com>
19782
* animation.cpp|h: C style constructor for KeyFrameCollection.
19783
* xaml.cpp: Implement the KeyFrame types
19784
- Make the base types ghosts, despite what the docs say, they
19787
2007-06-12 Miguel de Icaza <miguel@novell.com>
19789
* runtime.cpp (NotifyParentOfPropertyChange): Stop propagating
19790
when we have reached someone that handles that property in the way
19793
2007-06-12 Jackson Harper <jackson@ximian.com>
19795
* xaml.cpp: Register the TriggerCollection so that
19796
TriggerCollections can be created using the explicit syntax.
19798
2007-06-12 Jackson Harper <jackson@ximian.com>
19800
* xaml.cpp: No longer need to special case EventTriggers. Remove
19801
some dead code (yippie!)
19802
* runtime.cpp: Unregister the target when removing from the
19805
2007-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
19807
* runtime.h: Implement Inlines.
19808
* value.cpp, value.h, type.cpp: Updated.
19810
2007-06-12 Jackson Harper <jackson@ximian.com>
19812
* runtime.cpp|h: Hook up the UIElement::Triggers and
19813
EventTrigger::Actions/RoutedEvent properly.
19814
* xaml.cpp: Remove some of the special casing for event triggers
19815
now that they are proper DependencyProperties.
19817
2007-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
19819
* typegen.cs: Now checks if classes that inherits DependencyObject
19820
implement GetObjectType.
19821
* animation.h, runtime.h, text.h, geometry.h, shape.h: Implement
19822
missing GetObjectTypes and fix a few that were returning the wrong
19825
2007-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
19828
- (DependencyObject::SetValue): Allow assigning an object of a
19829
more derived type than the defined property type. Change the
19830
attached_list code to handle NULL dependency_objects.
19831
- Delete types_init, it's generated now.
19832
- Delete Value:As[DependencyObjects], its generated now.
19833
* runtime.h: Added definitions for a few missing collection classes.
19834
* types.cpp[.in], value.cpp[.in], value.h.in: Added.
19836
* Makefile.am: Add types.cpp and value.cpp
19837
* typegen.cs, typegen.cs: Added, generates types.cpp, value.cpp,
19838
value.h and Kind.cs from the headers.
19840
2007-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
19842
* runtime.cpp, runtime.h: (DO/DP) Make all char*'s const.
19844
2007-06-12 Chris Toshok <toshok@ximian.com>
19846
* clock.h, clock.cpp, runtime.cpp, value.h: use a
19847
TimelineCollection to store child collections in TimelineGroup.
19849
2007-06-12 Chris Toshok <toshok@ximian.com>
19851
* animation.h, animation.cpp (animation_init): remove the
19852
clock.cpp property registration.
19853
(DoubleAnimationUsingKeyFrames::GetNaturalDurationCore): initial
19854
attempt, calculate our timespan from our key frames.
19855
(Animation::GetNaturalDurationCore): return a 1 second duration,
19857
(UpdatePropertyValue): plug leak.
19859
* runtime.cpp (runtime_init): call clock_init.
19861
* clock.h, clock.cpp: largish pass at implementing support for
19862
Duration::Automatic in ClockGroups (where they query their child
19863
timelines to see how long they should make themselves). Also, add
19866
* xaml.cpp (timespan_from_str): correct math.
19868
2007-06-12 Jackson Harper <jackson@ximian.com>
19870
* xaml.cpp: Add a couple more of the animation elements.
19872
2007-06-12 Jackson Harper <jackson@ximian.com>
19874
* runtime.cpp|h: There is no public Triggers property.
19876
2007-06-12 Miguel de Icaza <miguel@novell.com>
19878
* runtime.cpp (DependencyObject::RegisterFull): Allow for
19879
properties to be flagged as attached, and only propagate the child
19880
notification to those those that care about it.
19882
2007-06-12 Rolf Bjarne Kvinge <RKvinge@novell.com>
19884
* Implement a mechanism to keep track of parents and notify
19885
parents of changes in attached properties.
19887
2007-06-11 Jackson Harper <jackson@ximian.com>
19889
* xaml.cpp: Add content properties, and handle collections that
19890
are content properties, by implicitly adding items to the
19893
2007-06-11 Sebastien Pouliot <sebastien@ximian.com>
19895
* runtime.cpp: Remove matrix initialization (to avoid double-inits in
19897
* transform.cpp: Add matrix initialization in TransformGroup::
19898
GetTransform. Makes the API safer :)
19900
2007-06-11 Sebastien Pouliot <sebastien@ximian.com>
19902
* geometry.cpp: Implemented [Ploy]QuadraticBezierSegment::Draw.
19904
2007-06-11 Sebastien Pouliot <sebastien@ximian.com>
19906
* geometry.cpp|h: Add drawing of [Poly]LinesSegment and
19907
[Poly]BezierSegment. More than half of Sam Ruby's samples can work
19910
2007-06-11 Jeffrey Stedfast <fejj@novell.com>
19912
* ffvideo.cpp: Attempt to get video to be in sync with audio by
19913
using the audio pts as the target_pts.
19915
2007-06-11 Jackson Harper <jackson@ximian.com>
19917
* runtime.cpp: Register the collection types as derived from
19920
2007-06-11 Chris Toshok <toshok@ximian.com>
19922
* xaml.cpp (timespan_from_str): fix reading off the end of digits
19925
2007-06-11 Jackson Harper <jackson@ximian.com>
19927
* xaml.cpp: Implement some more collection loading. A lot of
19928
duplicate code here, so I should probably refactor things a bit,
19929
but will wait until I've seen how more collections are laid out.
19931
2007-06-11 Chris Toshok <toshok@ximian.com>
19933
* animation.h, animation.cpp: use KeyFrameCollection's for the
19934
*AnimationUsingKeyFrames key frame stuff, instead of GLists.
19936
* value.h, runtime.cpp: add Value::AsKeyFrameCollection.
19938
2007-06-11 Jackson Harper <jackson@ximian.com>
19940
* xaml.cpp: Make the parents of collections the Collection ghost
19941
element. This is a first step in cleaning up collection creation
19944
2007-06-11 Sebastien Pouliot <sebastien@ximian.com>
19946
* transform.cpp: remove dead code.
19947
* xaml.cpp: Partial collection support for geometry.
19949
2007-06-11 Sebastien Pouliot <sebastien@ximian.com>
19951
* transform.cpp: Multiply each matrix in a TransformGroup (fix the
19952
open-clipart sample, at least the correct parts of the sample).
19953
* runtime.cpp: Always initialize the matrix in item_get_render_affine
19954
otherwise we'll end up with bad random results.
19956
2007-06-11 Rolf Bjarne Kvinge <RKvinge@novell.com>
19958
* runtime.h, runtime.cpp: (DependencyObject) Add SetValue/GetValue
19959
overloads that takes strings as well as DP, GetDependencyProperty where
19960
it's possible to specify whether the parent type is searched for the
19961
property or not, and a HasProperty method
19963
2007-06-10 Sebastien Pouliot <sebastien@ximian.com>
19965
* geometry.cpp|h: Fix function names wrt type.
19966
* shape.cpp: Detect RenderTransform and RenderTransformOrigin changes
19967
and call update_xform. This fix the "atom" sample :)
19968
* transform.cpp: Fix Rotate and Scale around a center point.
19970
2007-06-10 Sebastien Pouliot <sebastien@ximian.com>
19972
* geometry.cpp: Add more precision to types.
19973
* runtime.cpp: Apply Canvas' RenderTransform and RenderTransformOrigin
19975
2007-06-10 Sebastien Pouliot <sebastien@ximian.com>
19977
* brush.cpp: Implement Opacity for SolidColorBrush.
19978
* runtime.cpp|h: Add an UIElement parameter to SetupBrush so we can
19979
access it's properties (e.g. Opacity in this case). Add uielement_
19980
[g|s]et_opacity functions.
19981
* shape.cpp: Supply the UIElement when setting up brushes.
19983
2007-06-10 Sebastien Pouliot <sebastien@ximian.com>
19985
* shape.cpp: Fix rounded rectangle when radius_[x|y] are larger than
19986
half the width|height.
19988
2007-06-10 Miguel de Icaza <miguel@novell.com>
19990
* shape.cpp (OnPropertyChanged): Implement this property for most
19991
shapes: if the property is set, we need to invalidate and
19994
* runtime.h (FullInvalidate): A method to perform a queue to
19995
redraw the underlying region, update the bounds and queue an
19996
update for the new region.
19998
* runtime.h (Base): make destructor virtual so that base_unref can
19999
call delete (Base *) p. Exposed by the managed code when the
20000
first base_unref ran for the first time :-)
20004
* runtime.cpp (surface_attach): invalidate the areas before and
20005
after, compute the bounds using item_update_bounds, not the
20006
getbounds method directly.
20008
2007-06-10 Sebastien Pouliot <sebastien@ximian.com>
20010
* xaml.cpp: Add PathFigure[Collection]/Segments support.
20012
2007-06-10 Sebastien Pouliot <sebastien@ximian.com>
20014
* brush.cpp: Fix Green definition, like GDI+ MS use a dark (0x80)
20015
green unlike other basic colors (red/blue at 0xFF).
20016
* xaml.cpp: Don't assert on an empty collection.
20018
2007-06-10 Miguel de Icaza <miguel@novell.com>
20020
* runtime.cpp, runtime.h (BasicArray): New base struct for
20021
PointArray and double array, puts the count field at the beginning
20022
and avoids an extra block to be allocated (count and values are
20023
now on a single contiguous block).
20025
Introduce a refcount for the arrays, so that we can release those
20026
properly. Due to the nature of how we copied values before we
20027
had to leak the values, when the leak was plugged, we crashed.
20029
The refcount is there just because it was easy, we could clone if
20030
we wanted, but also I would like to keep the refcount there to
20031
ensure that the array of doubles is aligned on an 8 byte
20034
(double_array_new, point_array_new): New methods to create the
20037
(Value): Now free the arrays.
20040
2007-06-09 Sebastien Pouliot <sebastien@ximian.com>
20042
* geometry.cpp|h: Add/complete PathFigureCollection and
20043
PathSegmentCollection. Doesn't parse from xaml.
20044
* runtime.cpp, value.h: Add support for new classes.
20046
2007-06-09 Sebastien Pouliot <sebastien@ximian.com>
20048
* geometry.cpp|h: Complete GeometryGroup with GeometryCollection.
20049
But color rending is not yet correct in demo files.
20050
* runtime.cpp, value.h: Add support for GeometryCollection
20051
* xaml.cpp: Add support for GeometryGroup
20053
2007-06-09 Chris Toshok <toshok@ximian.com>
20055
* animation.h, animation.cpp, value.h, runtime.cpp: add
20056
ColorKeyFrame and it's linear/discrete subclasses, as well as
20057
ColorAnimationUsingKeyFrames.
20059
2007-06-09 Chris Toshok <toshok@ximian.com>
20061
* animation.h, animation.cpp, value.h, runtime.cpp: add the
20062
Discrete keyframes for point and double.
20064
2007-06-09 Chris Toshok <toshok@ximian.com>
20066
* genkindcs.sh: new file, a script to generate
20067
olive/class/agclr/Mono/Kind.cs.
20069
* value.h: add marker comments so that genkindcs.sh works. Also,
20070
remove the explicit value assignments to enum elements <
20071
DEPENDENCY_OBJECT. there's no need for it.
20073
2007-06-09 Chris Toshok <toshok@ximian.com>
20075
* demo.cpp (main): add in another animation, this one using
20076
keyframes, that moves a square around in a square, while animating
20077
its background color the same way as the other rectangles.
20079
* value.h, runtime.cpp: add in the keyframe types.
20081
* runtime.cpp (DependencyObject::DependenceyObject): fix a
20082
valgrind error - we shouldn't be "free"ing Values, since they're
20083
"new"ed. Add free_value and use that for the hash table value
20084
dtor, and delete them correctly.
20086
* animation.h, animation.cpp: add a lot of the keyframe animation
20087
stuff. DoubleAnimationUsingKeyFrames + LinearDoubleKeyFrame is
20088
the only tested configuration, though.
20090
* clock.cpp (everywhere): guint64->TimeSpan fixing.
20091
(TimeUpdated): turns out that not only does the progress go from
20092
1.0 to 0.0 when reversed, but current_time actually goes backward
20093
as well. this has the nice effect of actually simplifying this
20094
method substantially, since we can always compute progress as
20097
* clock.h: typedef TimeSpan to gint64 (switching from guint64
20098
everywhere), and update the api to use this.
20100
2007-06-09 Miguel de Icaza <miguel@novell.com>
20102
* runtime.h (value_color_from_argb): Temporary hack until we
20103
figure out how to marshal Colors properly, we are using the uint32
20104
constructor, we should figure out if this is what we want, or if
20105
we should go down the route of using doubles (C++ stores thinks as
20106
Doubles our managed API as bytes).
20108
2007-06-10 Jackson Harper <jackson@ximian.com>
20110
* xaml.cpp: Handle the TransformGroup default collection.
20111
- Add Value's to the collection
20113
2007-06-09 Jackson Harper <jackson@ximian.com>
20115
* transform.cpp|h: C style constructor for TransformGroup
20116
* xaml.cpp: Implement loading transform groups and transform
20119
2007-06-09 Jackson Harper <jackson@ximian.com>
20123
* transform.cpp|h: Impplement transform groups and transform
20126
2007-06-09 Jackson Harper <jackson@ximian.com>
20129
* runtime.cpp|h: Use the new collection classes for triggers and
20130
actions. These are unsettable, so don't register them as
20131
DependencyProperties.
20133
2007-06-08 Everaldo Canuto <ecanuto@novell.com>
20135
* runtime.cpp: In surface_destroy check for toplevel before unref
20138
2007-06-08 Chris Toshok <toshok@ximian.com>
20140
* animation.h: remove the huge whitespace gap after KeyTime, and
20141
remove the ifdef'ed out Nullable<T> template.
20143
* animation.cpp: remove the unused point_animation C api, and use
20144
the overloaded + operator on Color and Point when initializing
20145
"end" in GetCurrentValue for those animations. They're looking
20146
more and more similar.
20148
2007-06-08 Chris Toshok <toshok@ximian.com>
20150
* globally: move away from all uses of Value::u union. switch
20151
everything to using Value::As* methods, which do typechecking and
20154
* value.h: make the union private to catch anyone accessing it
20157
* runtime.cpp (IsSubclassOf): return true if type == super. Not
20158
strictly "subclass", but it makes this method a little more
20159
useful/efficient. Add As* methods for string, point arrays, and
20160
double arrays, and add nullable As* methods for the types which
20161
don't return pointers already.
20163
2007-06-09 Jackson Harper <jackson@ximian.com>
20165
* xaml.cpp: Parse time spans correctly.
20167
2007-06-08 Miguel de Icaza <miguel@novell.com>
20169
* runtime.h (UIElement): Remove user_xform_origin as a field, now
20170
we pull this from the DependencyObject as it should be.
20172
* runtime.cpp (UIElement::OnSubPropertyChanged): Catch a bunch of
20173
other properties that would trigger an invalidate/bounds
20176
(item_init): initialize the other properties that the managed code
20179
* shape.cpp, ffvideo.cpp: updated to use the
20180
RenderTransformOriginProperty in the computation of the center for
20181
the transformation.
20183
2007-06-08 Chris Toshok <toshok@ximian.com>
20185
* Makefile.am (libmoon_la_SOURCES): add value.h
20187
* runtime.h, value.h: move the Value structure to value.h, since
20188
it (and its required forward decls) have grown huge.
20190
* runtime.cpp: add all the Value::As* methods, yay for CPP.
20192
2007-06-08 Jeffrey Stedfast <fejj@novell.com>
20194
* ffvideo.cpp (queue_data): Replaced the sound code with my newest
20195
implementation, seems to play sound correctly now.
20197
2007-06-08 Chris Toshok <toshok@ximian.com>
20199
* clock.h, clock.cpp: move all the TimeManager/Clock/Timeline
20200
stuff here, to help relieve some of the pressure building up in
20201
animation.h/animation.cpp.
20203
2007-06-08 Chris Toshok <toshok@ximian.com>
20205
* animation.cpp: add some skeleton code for point keyframe
20206
animations, and reduce all the Double/Point/Color Animation
20207
GetCurrentValue() methods to much the same, using LERP and the
20208
operators defined in runtime.h.
20210
* runtime.cpp (types_init): register the new keyframe types.
20212
* runtime.h: add some new animation types to Value, and add
20213
operators for +, -, and * (scalar) for Color and Point to make the
20214
animation code a little more concise.
20216
* animation.h: add some new classes/structs for use in keyframe
20219
2007-06-08 Miguel de Icaza <miguel@novell.com>
20221
* runtime.cpp, runtime.h (Collection): Rework the collection to
20222
use abstract methods (gulp),
20224
(VisualCollection): New collection, derives from Collection, does
20225
the collection thing.
20227
(Panel.OnPropertyChanged): If our children collection is updated,
20228
take care of it here.
20230
(DependencyObject): use free instead of g_free as we are
20231
allocating strings with strdup.
20233
(Value): drop constructor that specified type, type is not part of
20236
* xaml.cpp, shape.cpp: Remove use of the old destructors now that we keep
20237
track of types correctly.
20239
2007-06-08 Sebastien Pouliot <sebastien@ximian.com>
20241
* brush.cpp: Fix color formats argb and rgb (too dark).
20243
2007-06-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
20245
* runtime.h, runtime.cpp: Change Value::Kind to not have any holes
20246
in the integer ranges, and change Type's type hashtable to an array
20247
of types, indexed by Value::Kind. Also add Value::COLLECTION and
20248
update Collection to use it.
20250
2007-06-08 Sebastien Pouliot <sebastien@ximian.com>
20252
* shape.cpp|h: Add Path::CanFill as it depends on the Geometry
20253
object(s) being used.
20254
* geometry.cpp|h: Implemented Poly[Line|Bezier|QuadraticBezier]Segment
20255
Points properties and some basic draw stuff too.
20257
2007-06-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
20259
* runtime.h, runtime.cpp, shape.cpp, xaml.cpp:
20260
Remove the Value (DependencyObject, Kind) constructor,
20261
the type of the DependencyObject can be obtained directly
20262
from the DependencyObject itself now, and update all uses
20263
to the Value (DependencyObject) constructor.
20265
2007-06-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
20267
* *.h, *.cpp: Remove objectType and SetObjectType from
20268
DependencyObject, make DependencyObject::GetObjectType virtual,
20269
and update all inheritors of DependencyObject to not use
20270
SetObjectType, but override GetObjectType.
20272
2007-06-08 Jackson Harper <jackson@ximian.com>
20274
* xaml.cpp: Add some type checks to ensure we are setting child
20275
properties to legal types.
20276
- explicitly set properties value types, Value now requires this.
20279
2007-06-08 Jackson Harper <jackson@ximian.com>
20281
* runtime.cpp: Initialize the surface to NULL
20282
- use UIElement as the type for flags
20284
2007-06-08 Sebastien Pouliot <sebastien@ximian.com>
20286
* shape.h: Don't waste time trying to fill lines.
20287
* shape.cpp: Fix dashes support. First reset between shapes and,
20288
second, handle cairo dislike of a single dash value of 0.0.
20290
2007-06-08 Sebastien Pouliot <sebastien@ximian.com>
20292
* shape.cpp|h: Some shapes, like polylines, don't supports Fill.
20294
2007-06-08 Sebastien Pouliot <sebastien@ximian.com>
20296
* shape.cpp|h: Implement Polygon::Points aad Polyline:Points
20297
properties as DependencyProperty. Adjust their Draw methods.
20298
* runtime.cpp: Implement point_array_from_str.
20300
2007-06-08 Sebastien Pouliot <sebastien@ximian.com>
20302
* shape.cpp|h: Add DP support for StrokeDashArray (double*).
20303
* runtime.cpp|h: Add double* and Point* (array) support to Value.
20304
* xaml.cpp: Add DOUBLE_ARRAY and POINT_ARRAY support. Supply value
20305
kind for brushes to avoid runtime warnings.
20307
2007-06-08 Rolf Bjarne Kvinge <RKvinge@novell.com>
20309
* runtime.cpp, runtime.h: Implemented a type system that tracks
20310
types' name and parent type.
20312
2007-06-08 Miguel de Icaza <miguel@novell.com>
20314
* runtime.cpp (Panel): Make children a property of the panel so we
20315
can access it from the managed world.
20317
(Value): Add new constructor that takes a full type, need to
20318
discuss this with the team.
20320
2007-06-08 Jackson Harper <jackson@ximian.com>
20322
* animation.cpp|h: Implement BeginStoryboard
20323
* runtime.cpp|h: Implement event triggers
20324
- Fire a loaded event when we first render an element
20325
* xaml.cpp: Implement parsing and loading storyboard and begin
20326
storyboard as well as event triggers and some of the property
20327
types that go with these guys.
20329
2007-06-08 Miguel de Icaza <miguel@novell.com>
20331
* runtime.cpp (runtime_init): Add panel_init
20333
(panel_init): Register Children property (must still create the
20334
collections, that will be a new fight).
20336
2007-06-07 Miguel de Icaza <miguel@novell.com>
20338
* xaml.cpp (start_element_handler): For the top element, track the
20339
type that we loaded, so we can return this to our caller (needed
20340
for the managed interface).
20342
(XamlParserInfo): track also the Value::Kind of the top_element.
20344
(xaml_create_from_file, xaml_create_from_str): Both now can
20345
optionally return the type of the toplevel element.
20347
* runtime.cpp (Value): Switch Value to strdup/free.
20349
Use inited to prevent multiple initializations.
20351
2007-06-07 Chris Toshok <toshok@ximian.com>
20353
* demo.cpp (main): track more of the api axing.
20355
* animation.h, animation.cpp (Storyboard::Begin): return
20356
immediately if we've already got a root clock.
20357
(globally) continue axing unused C api.
20359
2007-06-07 Chris Toshok <toshok@ximian.com>
20361
* demo.cpp: track all the animation changes away from the C api,
20362
and also test out the from/by animation combination by making the
20363
X scaling only go From 1.0 By -0.5 (so it animates in the range of
20366
* animation.h, animation.cpp: lots of changes - get rid of many of
20367
the animation/timeline C api calls, since they're unnecessary for
20368
the binding. Implement the nullable property getter/setters as
20369
#defines since I didn't want to c&p all of them and make the
20370
obvious mistakes. While I'm at it, implement the thing I needed
20371
nullable typed values for - "by" animation support. Now you can
20372
specify any of the following combinations and get a usable
20373
animation: From+By, From+To, By, To. You can actually just put
20374
From as well, but it won't animate (since both start end end will
20375
be the same). The To property overrides the By property, if both
20378
* runtime.h, runtime.cpp: add an overload of
20379
DependencyProperty::SetValue which takes a Value*, to enable
20380
nullable types to be set. the existing SetValue method calls the
20381
new one with &value.
20383
2007-06-07 Sebastien Pouliot <sebastien@ximian.com>
20385
* brush.cpp: Fix comment.
20386
* shape.cpp: Reduce duplication.
20388
2007-06-07 Miguel de Icaza <miguel@novell.com>
20390
* runtime.h: Store Value.BOOL in an int32, simplifies my life.
20392
* runtime.cpp (dependency_object_set_value,
20393
dependency_object_get_value): Add C# callable method calls to
20394
control the properties.
20396
(dependency_property_lookup): Add a way of find dependency
20399
2007-06-07 Chris Toshok <toshok@ximian.com>
20401
* animation.cpp (TimeUpdated): comment out some spew.
20403
* runtime.cpp (SetValue): use the copy ctor, and fix != check for
20404
current_value and value.
20405
(Value::Value): add a copy ctor, which takes care of the g_strdup
20408
* runtime.h: add copy ctor for Value.
20410
2007-06-07 Sebastien Pouliot <sebastien@ximian.com>
20412
* brush.cpp, geometry.cpp, shape.cpp: Protect against NULL properties.
20414
2007-06-07 Sebastien Pouliot <sebastien@ximian.com>
20416
* geometry.cpp: #if-out transforms, it crash the xaml samples
20417
* runtime.h: Fix hierarchy. Panel inherits from FrameworkElement.
20419
2007-06-07 Chris Toshok <toshok@ximian.com>
20421
* animation.cpp: switch all the various linear interpolation
20422
expressions to using the LERP macro, and add the PointAnimation
20425
* animation.h: add PointAnimation.
20427
* runtime.h: add Value::POINTANIMATION.
20429
2007-06-07 Chris Toshok <toshok@ximian.com>
20431
* runtime.h (Value): add COLORANIMATION to the list of types.
20432
Also, add a Kind constructor so we can use that for nullable type
20433
default values in the ::RegisterProperty calls. That is,
20434
initializing the default to Value(Value::COLOR) gives you a null
20435
default value with the COLOR type.
20437
* runtime.cpp (Value): new Kind ctor.
20439
* animation.cpp/.h: add ColorAnimation.
20441
* demo.cpp (main): add a color animation that interpolates between
20442
Red and Blue for the SolidColorBrush.
20444
2007-06-07 Sebastien Pouliot <sebastien@ximian.com>
20446
* runtime.cpp: Restore alpha support. Don't call cairo_set_operator
20447
without a cairo_save|restore pair (or without resetting it's original
20448
value). Anyway right now it works without any of that :)
20450
2007-06-07 Jackson Harper <jackson@ximian.com>
20452
* runtime.cpp|h: add event triggers.
20453
* xaml.cpp: parse event triggers.
20455
2007-06-07 Chris Toshok <toshok@ximian.com>
20457
* animation.cpp/.h (Clock): initialize duration here.
20458
(TimeUpdated): instead of getting it every time through this
20461
2007-06-07 Chris Toshok <toshok@ximian.com>
20463
* animation.h: make Duration::FromSeconds return numbers of the
20464
same magnitude as get_now().
20466
* animation.cpp (Clock): fix UMR.
20468
2007-06-07 Jackson Harper <jackson@ximian.com>
20470
* xamp.cpp: Oops, not sure how that happened. Set the property
20471
name correctly, not to the type name.
20473
2007-06-07 Sebastien Pouliot <sebastien@ximian.com>
20475
* geometry.cpp|h: Apply transform. Fix default values.
20477
2007-06-07 Miguel de Icaza <miguel@novell.com>
20479
* animation.cpp (get_now): The time computation was wrong, there
20480
was an extra "10" in there that made all computations go astray
20481
and in particular cause the large values for ScaleY, which made
20482
getboundingbox ridiculously slow.
20484
For debugging purposes: ScaleY was being set to
20485
131472940552.95215, which came from
20486
DoubleAnimation:GetCurrentValue which was computing this value
20487
from a busted clock.
20489
2007-06-07 Sebastien Pouliot <sebastien@ximian.com>
20491
* geometry.cpp|h: Add drawing for [Ellipse|Line|Rectangle] geometry.
20492
Add basic code for the other geometry types.
20493
* runtime.cpp|h: Add basic implementation for point_from_str and
20495
* shape.h: Export some cairo helpers.
20496
* shape.cpp: Refactor drawing to reuse the code from geometry.
20497
* xaml.cpp: Add Point and Rect parsing.
20499
2007-06-07 Chris Toshok <toshok@ximian.com>
20501
* demo.cpp: make all the animation stuff work declaratively, and
20502
test some of the different repeatbehavior and autoreverse
20505
* animation.cpp: huge block of nasty code to determine our
20506
progress given the combinations of autoreverse and repeatbehavior.
20508
* animation.h: Add Duration stucture, add a few C api calls for
20509
getting/setting timeline properties.
20511
* runtime.h, runtime.cpp: add DURATION support to Value.
20513
2007-06-07 Jackson Harper <jackson@ximian.com>
20515
* runtime.cpp|h: Some pieces of the triggers framework.
20517
2007-06-07 Jackson Harper <jackson@ximian.com>
20519
* xaml.cpp: Handle repeat behaviors, lookup attached properties.
20521
2007-06-06 Chris Toshok <toshok@ximian.com>
20523
* animation.cpp, animation.h: add timeline_set_autoreverse.
20525
2007-06-06 Chris Toshok <toshok@ximian.com>
20527
* animation.h: add prototype for timeline_set_repeat_behavior.
20529
* animation.cpp (animation_init): register the RepeatBehavior
20531
(timeline_set_repeat_behavior): new function.
20533
* runtime.h: a better solution to enforcing types in the Value
20534
ctors - make Value (void*) private. this gives compilation errors
20535
at all usage points where you're passing an unrecognized pointer
20536
type. Also, add RepeatBehavior support to Value.
20538
* runtime.cpp: add repeatbehavior support to Value.
20540
* geometry.cpp: change all Value(pointer-to-struct) calls to
20541
Value(struct) calls.
20543
* transform.h: we need do define TransformGroup as a subclass of
20544
Transform, or the functions that SetValue a transformgroup fail to
20545
compile (since it's not a descendent of DependencyObject.)
20547
2007-06-07 Jackson Harper <jackson@ximian.com>
20549
* xaml.cpp: Get object element property setting working.
20551
2007-06-06 Chris Toshok <toshok@ximian.com>
20553
* runtime.h, runtime.cpp: add a special void* ctor to value so
20554
pointers aren't silently converted to bool (bad c++, bad!), and
20555
have that ctor output a warning message to the console, along with
20558
* brush.cpp: need to deref the Color* in the Value ctor.
20560
2007-06-06 Chris Toshok <toshok@ximian.com>
20562
* animation.cpp: new dump of the animation stuff. this is much
20563
closer in spirit and implementation to that of WPF's
20564
timing/animation system. it's not perfect yet, but it's much,
20567
2007-06-06 Chris Toshok <toshok@ximian.com>
20569
* runtime.h: make the point/color/rect copy constructors take a
20570
ref, not a pointer. also, make the value contructors for struct
20573
* runtime.cpp: make the value constructors for struct types
20576
* brush.cpp (brush_init): pass the Color by value.
20578
2007-06-06 Chris Toshok <toshok@ximian.com>
20580
* runtime.h, runtime.cpp: move the Value implementation (for
20581
everything but the operators) to the .cpp file.
20583
2007-06-06 Miguel de Icaza <miguel@novell.com>
20585
* runtime.h, runtime.cpp: Surface is no longer derived from
20586
Canvas, it now instead hosts a canvas, should avoid having two
20587
nested canvases for loading XAML files.
20591
Correct computation of the bounding box for shapes and videos.
20593
* shape.cpp: Do not pop the cairo state after draw and then call
20594
extents as the computation on extents is done with the current
20595
cairo context, not the cairo context that drew the data before
20596
popping (this would show up with thick brushes).
20598
* runtime.cpp: Add 2 instead of 1, as double to integer rounding
20599
can take two values (negative and positive).
20601
* cutil.cpp: Cut and paste cairo code here, it computes the proper
20602
bounding box from the extents using the current absolute matrix.
20604
* ffvideo.cpp (queue_data): Memory leak gone.
20606
2007-06-06 Jackson Harper <jackson@ximian.com>
20608
* xaml.cpp: Set brush attributes.
20610
2007-06-06 Jackson Harper <jackson@ximian.com>
20613
* transform.h: Need to register this base DependencyObject for the
20615
* geometry.cpp: use correct value kind for registering properties
20616
* runtime.cpp: Don't be strict about the type with properties that
20617
derive from DependencyObject, we can't be too strict here, because
20618
of inheritance the registered type BRUSH could be set to
20620
- register some properties with the correct type
20622
2007-06-06 Jackson Harper <jackson@ximian.com>
20625
* runtime.h: Staring to add triggers
20626
* shape.cpp: Use brush as our property kind
20628
2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
20630
* runtime.h: Add new types and SweepDirection enum.
20631
* geometry.cpp|h: Add PathFigure, ArcSegment, BezierSegment and
20632
LineSegment classes and [g|s]etter functions.
20634
2007-06-06 Miguel de Icaza <miguel@novell.com>
20636
* runtime.h: Move all the types into the Value::Kind enumeration
20637
so that we can have a shared type system.
20639
* demo.cpp (main): Allow loading a XAML file from the command
20640
line, for your testing pleasure.
20642
* ffvideo.cpp (convert_to_rgb): We no longer need the loop to swap
20645
Move to cairo to render to the screen the contents
20646
of the buffer. ffmpeg and cairo do have the same RGBA format, it
20647
was actually the copy from this format to the screen using
20648
gdk_draw_pixbuf that failed: pixbuf expected the data in another
20649
format and there is no way to configure it.
20651
* runtime.cpp (surface_clear): use the cairo api as the surface is
20652
no longer living on the client buffer.
20654
(surface_destroy): update
20656
(create_xlib, realized_callback, unrealized_callback): When the
20657
widget is realized, create a cairo context
20659
2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
20661
* runtime.h: Add Value support for Point and Rect
20662
* geometry.cpp: Implement [g|s]etters for Point and Rect properties
20664
2007-06-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
20666
* runtime.cpp, runtime.h: Added DependencyObject::GetObjectType.
20668
2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
20670
* shape.cpp|h, runtime.cpp|h: Remove the (now) useless
20671
set_prop_from_str methods since everything they handled is now
20672
moved into DependencyProperty.
20674
2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
20676
* shape.cpp|h: Use DependencyProperty for Shape Fill and Stroke
20677
brushes. Add getter functions for fill and stroke.
20679
2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
20681
* runtime.h: Call SetObjectType on Brush and SolidColorBrush
20683
2007-06-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
20685
* runtime.cpp, runtime.h: Remove the default_values hashtable
20686
from DependencyObject, it's redundant since the default value
20687
is stored inside the DependencyProperty anyway.
20689
2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
20691
* demo.cpp: Adapted to API changes.
20692
* brush.cpp: Add [g|s]etters for Brush and SolidColorBrush using
20693
DependencyProperty. Add brush initialization code.
20694
* runtime.cpp|h: Change Brush to inherit from DependencyObject.
20695
Add Color support to Value. Call brush initialization.
20696
* shape.cpp: Add miter, pen join|cap and fill rule drawing support.
20697
* xaml.cpp: Adapted to API changes since SolidColorBrush now inherits
20698
from DependencyObject.
20700
2007-06-06 Jeffrey Stedfast <fejj@gnome.org>
20702
* ffvideo.cpp (convert_to_rgb): Make sure the frame->data is
20703
non-NULL before trying to scale.
20705
2007-06-06 Sebastien Pouliot <sebastien@ximian.com>
20707
* brush.cpp: Fix compiler warning.
20709
2007-06-06 Jackson Harper <jackson@ximian.com>
20711
* runtime.cpp/h: initialize xaml
20712
- Add canvas C style constructor
20713
- Make SolidColorBrush's Color public
20714
* shape.cpp: Comment out the set_prop... stuff, this code won't be
20715
used anymore, now that the xaml parser is using dependency objects
20718
* transform.cpp|h: Add some C style constructors
20719
* brush.cpp: Create colors from a string instead of solid brushes
20720
* xaml.cpp: Add in a known element tree, and move property setting
20721
into the xaml code, also added code for setting properties with
20722
property element syntax
20724
2007-06-05 Miguel de Icaza <miguel@novell.com>
20726
Add type checking on SetValue, RegisterProperty to avoid
20729
* runtime.cpp (SetValue): Add simple type checking
20730
(Register): Ensure that no empty values are passed.
20732
* runtime.h (DependencyObject): events, remove unused field.
20734
2007-06-05 Chris Toshok <toshok@ximian.com>
20736
* runtime.cpp: we need to maintain another hash table for
20737
DependencyProperties so we can return the actual property, not the
20738
default value, which is what GetDependencyProperty needs to do.
20739
(DependencyObject::FindName): implement this by either trying to
20740
use the namescope on this object or the global_NameScope (rather
20741
suboptimal, it's supposed to 'walk the logical tree' according to
20744
partially implement NameScope.
20746
* runtime.h: add NameScope, and add a uint64 Value. Also add
20747
FindName on DependencyObject.
20749
2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
20751
* shape.cpp|h: Add Shape's thickness and some dash support. Add more
20752
[g|s]etters for Shape using DependencyProperty.
20753
* demo.cpp: Add thickness and dashes to the rectangles.
20755
2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
20757
* shape.cpp|h: Move FrameworkElement stuff into runtime.cpp|h. Use
20758
functions to retrieve the height and width of shapes (values defined
20759
in FrameworkElement).
20760
* runtime.cpp|h: Use DependencyProperty for FrameworkElement Height
20761
and Width properties.
20762
* demo.cpp: Adjust to API changes.
20764
2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
20766
* shape.cpp: Remove (now) useless properties in Line.
20768
2007-06-05 Miguel de Icaza <miguel@novell.com>
20770
* shape.cpp, ffvideo.cpp, video.cpp: Do not use x, y anymore, we
20771
now have an absolute affine set for us beforehand.
20773
* runtim.cpp: on update_xform call the parent ::get_xform_for to
20774
obtain the base affine transform to use.
20776
2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
20778
* geometry.cpp|h: Use DependencyProperty for properties.
20779
* transform.h: Protect.
20781
2007-06-05 Chris Toshok <toshok@ximian.com>
20783
* runtime.h: call SetObjectType where we need it.
20787
* geometry.h: same.
20789
2007-06-05 Miguel de Icaza <miguel@novell.com>
20791
* ffvideo.cpp (VideoFfmpeg): Initialize audio_frames_size, caught
20794
* runtime.cpp (item_set_transform): This routine was doing nothing
20795
but doing an invalidate of the region, updating the transform,
20796
updating the bounding box and re-invalidating the new area. Move
20797
that logic elsewhere (it was also ignoring the affine parameter
20800
Unify user_xform with the RenderTransform dependency property, now
20801
we always have a static absolute transformation in the UIElement.
20803
2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
20805
* shape.cpp|h: Update shape_init with correct values and implement
20808
2007-06-05 Chris Toshok <toshok@ximian.com>
20810
* animation.cpp (ClockTimeChanged): use the instance variety of
20811
GetDependencyProperty.
20813
* runtime.cpp (GetDependencyProperty): just call the static
20814
variety with our objectType.
20815
(SetObjectType): method to enable subclasses to set the object
20818
* runtime.h: add DependencyObject::SetObjectType, as well as the
20819
instance version of DependencyObject::GetDependencyProperty.
20821
* transform.h: call SetObjectType to identify this object.
20823
2007-06-05 Chris Toshok <toshok@ximian.com>
20825
* runtime.cpp (AddHandler): oops, g_list_append requires an assignment.
20827
2007-06-05 Chris Toshok <toshok@ximian.com>
20829
* runtime.h (Canvas): declare our dependencyproperties here.
20831
* runtime.cpp (canvas_init): actually assign the properties.
20833
2007-06-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
20835
* runtime.cpp, runtime.h: Implement a DependencyProperty::
20836
GetDependencyProperty.
20838
2007-06-05 Chris Toshok <toshok@ximian.com>
20840
* runtime.cpp (OnSubPropertyChanged): remove the event handler for
20841
the render transform and use OnSubPropertyChange instead.
20842
(item_set_render_transform): clean this up substantially - the
20843
property system handles all the "event" stuff now.
20844
(item_get_render_transform): we need a getter now that this uses
20846
(NotifyAttacheesOfPropertyChange): new method, call
20847
OnSubPropertyChanged with both the attachee's property (the thing
20848
storing 'this') and the subproperty that changed.
20849
(SetValue): complicate the attachee stuff a bit, since we need to
20850
store both the object and the property it's storing the value in.
20851
(item_init): initialize RenderTransformProperty.
20853
* runtime.h: make UIElement subclass from DependencyObject. This
20854
flattens the hierarchy some from SL (which has Visual in between,
20855
but we have no Visual.)
20857
* transform.cpp (OnPropertyChanged): call
20858
NotifyAttacheesOfPropertyChange. Also, reindent some stuff.
20860
2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
20862
* demo.cpp: Updated to use rectangle_set_radius_[x|y]
20863
* shape.cpp|h: Add [get|set]ter functions for Line and Rectangle
20864
* xaml.cpp: Updated for API change.
20866
2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
20868
* runtime.h: Add new ctor for Color(uint). Change UIElement to inherit
20869
from DependencyObject.
20870
* brush.cpp: Complete named colors (wrt System.Windows.Media.Colors)
20872
2007-06-05 Jeffrey Stedfast <fejj@gnome.org>
20874
* ffvideo.cpp (queue_data): If we fail to get an audio codec, then
20875
we simply cannot play sound (or maybe there is no sound), either
20876
way, don't try to dereference the audio_codec pointer if it is
20877
NULL. Also wrapped audio setup in an #ifdef
20879
2007-06-05 Miguel de Icaza <miguel@novell.com>
20881
Implement the OnPropertySet stuff, builds on Toshok's first pass.
20883
Next stage: discuss with Toshok the migration to this awesome
20884
framework from Events ;-)
20886
* runtime.cpp (SetValue): when adding dependencyobjects track on
20887
the attached object the ownership.
20889
Notify all containers of a property change.
20891
* brush.cpp (Brush): Remove AddListener, RemoveListener, we can
20892
use the property notification system for these.
20894
* runtime.h (DependencyObject): Add a "attached_list" gslist to
20895
keep track of all the objects where this particular
20896
DependencyObject has been attached to, to provide OnPropertyChange
20897
notifications (not hooked up yet).
20899
(Value): Introduce DependencyObject constructor.
20901
2007-06-05 Sebastien Pouliot <sebastien@ximian.com>
20903
* shape.cpp|h: Started moving properties to DependencyObject. Added
20905
* geometry.cpp|h: New. System.Windows.Media.Geometry related classes
20906
* runtime.cpp: Added calls to shape_init and geometry_init
20907
* runtime.h: Added Rect structure and new DependencyObject types for
20908
shapes and geometry.
20909
* Makefile.am: Added geometry.cpp|h to source files.
20911
2007-06-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
20913
* runtime.h: initialize Value to zero on construction.
20915
2007-06-05 Chris Toshok <toshok@ximian.com>
20917
* demo.cpp: abstract the cairo transformations away by using
20918
RotateTransforms.. and this is probably going to annoy some
20919
people, but make the normally stationary elements bounce between
20920
smaller and larger.
20922
* animation.h: make Clock subclass from DependencyObject.
20924
* animation.cpp (animation_init): assign the properties, don't
20925
just call Register.
20927
also, track the EventObject method name change.
20929
* runtime.cpp (item_set_render_transform): new method. unhook the
20930
old transform and hook up the new one. also, explicit set our
20931
transformation here.
20932
(SetValue): make this only do the work (and more importantly only
20933
call OnPropertyChanged) if the value is different.
20935
* runtime.h: shorten the names of the EventObject methods. Add
20936
operator== and operator!= to Value. Add an EventObject to
20937
DependencyObject to give us rudimentary event handlers. Add the
20938
render_transform "higher-level" transform into to UIElement.
20940
* transform.h: add the OnPropertyChanged override and rename
20941
transform_get_value to transform_get_transform.
20943
* transform.cpp (transform_init): oops. we need to actually
20944
assign the properties.
20945
(transform_get_transform): indent.
20946
(OnPropertyChanged): override this method to emit
20947
"TransformChanged".
20949
2007-06-04 Chris Toshok <toshok@ximian.com>
20951
* Makefile.am (libmoon_la_SOURCES): add animation and transform to
20954
* runtime.h: flesh out Value some, adding BOOL (has to be C++
20955
bool, not gboolean, or else it conflicts with int32), INT32,
20956
INT64, and STRING (char*).
20958
* runtime.cpp (runtime_init): call animation_init and
20961
* animation.cpp, animation.h, transform.h, transform.cpp: get
20962
these using the new dependency object/value foo, and get them
20965
2007-06-04 Miguel de Icaza <miguel@novell.com>
20967
* runtime.h: Make the "Base" refcounting class the base for
20970
* ffvideo.cpp: Set audio initialization to zero for now, so we can
20971
continue debugging.
20973
* runtime.cpp (Canvas): override render, in preparation for using
20974
attached properties. I get the feeling am going to regret not
20975
keeping the top/left attached properties somewhere else.
20977
(Value): introduce the discriminating union for values as
20980
(DependencyObject): use lower case name for properties.
20981
Take Value * instead of void *, this is so we can represent NULL
20982
values (is this a good idea Chris, or do we want to have a
20983
Value.Type.NULL enumeration value?
20985
Update hash table creation to g_free the result on hash table
20986
update and removal.
20988
(Event): Update indentation to be Linux-like instead of GNU like.
20990
2007-06-04 Sebastien Pouliot <sebastien@ximian.com>
20992
* shape.cpp|h: Add Poly[line|gon] drawing code and C helper functions
20993
to create them. Replace the "old" C1 constant in Ellipse::Draw with
20994
ARC_TO_BEZIER (now that I know where it comes from ;-)
20996
2007-06-04 Jeffrey Stedfast <fejj@novell.com>
20998
* ffvideo.cpp (queue_data): Got sound kinda sorta working...
21000
2007-06-04 Jackson Harper <jackson@ximian.com>
21002
* xaml.cpp: Give elements a type
21004
2007-06-05 Rolf Bjarne Kvinge <RKvinge@novell.com>
21006
* runtime.cpp, runtime.h: implemented DependencyProperty and DependencyObject.
21008
2007-06-04 Chris Toshok <toshok@ximian.com>
21010
* animation.h, animation.cpp: initial pass at some of the
21011
animation stuff. doesn't build yet.
21013
2007-06-04 Chris Toshok <toshok@ximian.com>
21015
* runtime.cpp, runtime.h: add EventObject, a c++ only base class
21016
for managing events.
21018
2007-06-04 Sebastien Pouliot <sebastien@ximian.com>
21020
* shape.h: Remove Ellipse::set_prop_from_str, it's "virtually" empty
21021
and added Draw methods to Polygon and Polyline.
21022
* shape.cpp: Added round-corner rectangle support (RadiusX, RadiusY)
21023
and match changes in header file.
21025
2007-06-04 Jackson Harper <jackson@ximian.com>
21027
* shape.cpp/h: width and height are properties of the
21030
2007-06-04 Jackson Harper <jackson@ximian.com>
21032
* shape.cpp/h: add ellipse_new
21033
- set width/height on ellipses (ellipsi ?) and draw them.
21034
* xaml.cpp: create ellipses, get zorder correct
21036
2007-06-04 Jackson Harper <jackson@ximian.com>
21038
* xaml.cpp: put in character data functionality, eventually we
21039
will need to add FrameworkElement methods for setting the default
21040
content element. See
21041
http://msdn2.microsoft.com/en-us/library/ms752059.aspx#contentmodels
21042
for more info on content properties.
21044
2007-06-04 Sebastien Pouliot <sebastien@ximian.com>
21046
* demo.cpp: Include shape.h and use a rounded-rectangle
21047
* runtime.h: Added FillRule and moved out Shapes.
21048
* shape.h: New. Moved all shapes from runtime.h and added new ones.
21049
* shape.cpp: Added Polygon and Polyline.
21050
* xaml.cpp: Include shape.h
21051
* Makefile.am: Add shape.h
21053
2007-06-04 Chris Toshok <toshok@ximian.com>
21055
* transform.cpp, transform.h: initial code for the transform
21056
objects. doesn't compile yet.
21058
2007-06-04 Jackson Harper <jackson@ximian.com>
21060
* demo.cpp: fix typo
21062
2007-06-04 Sebastien Pouliot <sebastien@ximian.com>
21064
* demo.cpp: Fix for API changes.
21065
* runtime.h: Add FrameworkElement, other Shape properties and move
21066
around some properties to match the managed definitions.
21067
* shape.cpp: Add setters for new Shape properties and move properties
21068
parsing to match managed definitions.
21069
* xaml.cpp: Fix for API changes.
21071
2007-06-04 Sebastien Pouliot <sebastien@ximian.com>
21073
* shape.cpp: Don't typecast doubles into ints.
21075
2007-06-04 Jackson Harper <jackson@ximian.com>
21078
* xaml.cpp: Implement function that allows you to load xaml from a
21080
* demo.cpp: add a very small xaml demo
21082
2007-06-04 Jackson Harper <jackson@ximian.com>
21084
* xaml.cpp: remove old no longer used function.
21085
- track whether or not we are adding to a panel instead of surface
21086
* shape.cpp: Fix typo, need to set line_* not x1, x2, etc.
21088
2007-06-04 Jackson Harper <jackson@ximian.com>
21090
* shape.cpp: Add new methods to allow shapes to have their
21091
properties filled in from text values.
21093
* brush.cpp: Start work on allowing solid color brushes to be
21094
created from strings.
21096
* runtime.cpp: stub in methods for setting properties on canvas
21097
and UIElements (these had some meat but I am removing it now that
21098
some of the names are updated, will put back later).
21100
* runtime.h: add some methods and functions for XAML parsing.
21102
* xaml.cpp: Initial implementation of the XAML parser.
21104
2007-06-03 Miguel de Icaza <miguel@novell.com>
21106
* runtime.cpp (Collection, Panel): The beginning of an API to
21107
encapsulate collections that we will expose to the unmanaged
21110
This should be the backend for the base collection class in agclr
21111
for the strongly typed types.
21113
The idea is to have the MS.Internal.Collection<T> be a proxy that
21114
contains an IntPtr pointer to the C++ Collection instance and map
21115
the various add/remove methods to it.
21117
The immediate goal is to be able to do from C#:
21119
Rectangle r = new Rectangle ();
21120
r.Brush = new SolidColorBrush (new Color (1, 0, 0));
21121
Canvas.Children.Add (r);
21123
2007-06-02 Miguel de Icaza <miguel@novell.com>
21125
Implement support for the render origin.
21127
* runtime.cpp (item_invalidate): add one to cope with the rouding
21128
from floats to ints (fixes some trailing junk).
21130
Item: redo the affine transformation setup to support both the
21131
render_transform_origin property and avoid recomputing all of this
21132
on each repaint request.
21134
* ffvideo.cpp: Changed the code to do the actual video decoding on
21135
the main thread so we can put all the video and audio in the
21136
queues before we start rendering.
21138
Failed attempts at getting audio to work.
21140
* Everywhere: renamed Item to UIElement to better match the actual
21141
class hierarchy that we will be exposing.
21143
2007-06-01 Jackson Harper <jackson@ximian.com>
21145
* shape.cpp: Fix typo.
21147
2007-06-01 Miguel de Icaza <miguel@novell.com>
21149
* ffvideo.cpp: No longer use CMD_INITED, instead use g_idle_add to
21150
notify a special function (callback_video_inited). Makes me
21151
wonder if I should do the same for the new-frame call
21153
Initialize the cairo surface on the callback_video_inited routine
21154
instead of doing this on the decoder thread (that was a mistake).
21156
This solves the misterious case of the video that randomly did not
21159
2007-05-29 Miguel de Icaza <miguel@novell.com>
21161
* video.cpp (load_next_frame): reimplement the video play back
21162
logic so that it will now properly paint the proper frame on the
21165
Add logic to skip frames if video is playing back too slowly, and
21166
to resume playback when new frames are ready.
21168
Currently its computing the delay using the n_frame_rate field
21169
(which no sample uses, but I could not find any other way of
21170
estimating the frame rate other than this.
21172
It works at least with some sample streams that I have with 30 fps
21175
* runtime.cpp: Move the GtkDrawingArea widget into the Surface,
21176
and handle exposes in the runtime, not in the demo. Show the
21177
widget (thats why I was not getting the expose events on the
21180
2007-05-26 Miguel de Icaza <miguel@novell.com>
21182
* runtime.cpp (Brush, SolidBrush): Introduce brushes.
21184
(Shape): introduce reusable drawing framework for shapes, not
21187
(Line): introduce second user besides rectangles.
21189
Remove agg test code.
21191
(Group::getbounds): implement.