Commit Graph

317 Commits

Author SHA1 Message Date
adelikat 9e30d64954 InputRoll - always redraw when RowCount is set, fixes #1729 2019-11-15 18:10:10 -06:00
YoshiRulz 8c059aa43c
Replace helper methods with readonly bool IsUnixHost and cleanup 2019-11-04 14:30:05 +10:00
J.D. Purcell fec63fb66a Spaces -> tabs, fix mixed newlines. 2019-11-03 20:58:36 -05:00
J.D. Purcell 6eb44acd4f Fix noise from last merge. 2019-11-03 18:04:31 -05:00
adelikat e4e10646bf Merge branch 'master' into MoreUnixMonoCompatWork
# Conflicts:
#	BizHawk.Client.EmuHawk/Program.cs
#	BizHawk.Common/BizInvoke/MemoryBlock.cs
2019-11-03 16:09:22 -06:00
adelikat 942d9fc75e Simplify OS checks with some helpful methods 2019-11-03 16:04:42 -06:00
adelikat b9ade1a555 Merge branch 'master' into MoreUnixMonoCompatWork 2019-11-03 12:55:53 -06:00
adelikat 39586a5bf0 Remove NewHexEditor (can be developed on a branch instead) 2019-11-03 10:20:07 -06:00
adelikat 7936797a9d Custom controls house cleaning - remove a bunch of unused controls, do some cleanups 2019-11-02 10:08:06 -05:00
James Groom cdf42777dc
Merge branch 'master' into MoreUnixMonoCompatWork 2019-11-02 18:15:46 +11:00
J.D. Purcell 39b54f7202 Fix missing UI usings. 2019-11-02 00:38:50 -04:00
J.D. Purcell 17701dc57d Fix wrong return type in P/Invokes. 2019-11-02 00:38:50 -04:00
J.D. Purcell 4b9f53db35 Remove unused files. 2019-11-01 22:51:01 -04:00
adelikat 6c7653e158 Merge branch 'master' into MoreUnixMonoCompatWork
This doesn't compile because of Input.cs, didn't know what to do. Also search for Merge TODO for some commenting things that probably need to be deleted
# Conflicts:
#	BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
#	BizHawk.Client.EmuHawk/CustomControls/InputRoll.Drawing.cs
#	BizHawk.Client.EmuHawk/CustomControls/InputRoll/InputRoll.cs
#	BizHawk.Client.EmuHawk/Program.cs
#	BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs
#	BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs
#	BizHawk.Client.EmuHawk/tools/ToolHelpers.cs
#	BizHawk.Client.EmuHawk/tools/ToolManager.cs
#	BizHawk.Client.EmuHawk/tools/TraceLogger.Designer.cs
#	BizHawk.Client.EmuHawk/tools/TraceLogger.cs
#	BizHawk.Client.EmuHawk/tools/Watch/RamSearch.Designer.cs
#	BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs
#	BizHawk.Common/BizInvoke/DynamicLibraryImportResolver.cs
2019-10-31 17:01:19 -05:00
J.D. Purcell 1b548ed92d InputRoll horizontal: Improve look of column dragging. 2019-10-28 01:35:16 -04:00
J.D. Purcell 4d2f6e902e InputRoll horizontal! 2019-10-27 22:59:42 -04:00
J.D. Purcell 28c0586c8b InputRoll horizontal - WIP. 2019-10-27 21:00:52 -04:00
J.D. Purcell 90724bb777 Work on InputRoll horizontal mode a bit. 2019-10-27 17:55:53 -04:00
J.D. Purcell 9471f7ca03 Cleanups 2019-10-27 14:00:02 -04:00
J.D. Purcell 12c64dc40d InputRoll: Fix text clipping too early with GDI+ renderer. 2019-10-27 11:46:21 -04:00
adelikat 290cf4c4a4 InputRoll - attempt to cleanup drawing logic a bit 2019-10-27 09:18:14 -05:00
adelikat 5f021ca0e2 InputRoll - attempt to put some attributes on public properties. This is a control, public properties without attributes and/or documentation should be avoided 2019-10-26 18:35:12 -05:00
adelikat 9d87550c2a Cell - implement == and != overrides, this might fix some subtle problems in input roll 2019-10-26 17:22:49 -05:00
adelikat 6604e5dc17 InputRoll - cleanup and fix some typos 2019-10-26 17:16:15 -05:00
adelikat 0ce5046061 cleanup input roll column and cell classes 2019-10-26 17:06:42 -05:00
adelikat b54be19e9e InputRoll - reorg - put in its own folder, break out column and cell classes into separate files 2019-10-26 16:49:52 -05:00
adelikat 14ffd143d4 InputRoll - fix placement of rotated text 2019-10-26 16:25:42 -05:00
adelikat 5a17d20cf0 InputRoll - some more cleanup 2019-10-26 16:20:27 -05:00
adelikat af59d2fe6b InputRoll - misc cleanups 2019-10-26 16:04:27 -05:00
adelikat d592526c3c InputRoll - stop passing around unused paint event args 2019-10-26 15:47:43 -05:00
adelikat f7b2982dad Merge branch 'inputroll-rotatefix' 2019-10-26 15:37:47 -05:00
J.D. Purcell d2cf95e18f GdiPlusRenderer: Implement string rotation. 2019-10-26 16:31:21 -04:00
adelikat 772bd5b65e Remove blend option in IControlRenderer, true was always being passed for GDI, so just always do alpha blend in GDI 2019-10-26 15:22:47 -05:00
adelikat 064a78d7f3 inputroll - fix crash when resized to 0 2019-10-26 14:37:42 -05:00
adelikat e21e861e99 temp hack to force tastudio to draw the frame column rotated in horizontal orientation 2019-10-26 14:22:19 -05:00
adelikat f6b0fa1550 GdiRenderer - cleanup font caching logic and fix rotated text 2019-10-26 12:59:30 -05:00
adelikat e11f3e68e7
Merge pull request #1704 from TASVideos/GdipRenderer1
GdiPlusRenderer: Remove caches, implement Dispose
2019-10-26 12:45:16 -05:00
J.D. Purcell 4e2818222d GdiPlusRenderer: Remove caches, implement Dispose. 2019-10-26 13:40:20 -04:00
YoshiRulz 5e5f69f07e
Move _vBar/_hVar init out of ctor, init CellHeight to non-zero
CellHeight/_vBar/_hBar were being read *while the ctor was running* due to
unexplained Mono magic (and hence their values were 0/null/null, respectively)
2019-10-27 03:38:30 +10:00
adelikat 9bbfb995b8 GDIPlusRenderer - put off rotate text, for now 2019-10-26 11:26:12 -05:00
adelikat 8977137e84 GDIPlusRenderer - cleanup 2019-10-26 11:11:38 -05:00
adelikat 2e489763b9 use OSTailoredCode class to decide GDI vs GDIPlus renderering 2019-10-25 18:20:13 -05:00
YoshiRulz b5d188ad5e
Migrate RAM Search to PAVLV 2019-10-25 22:04:56 +10:00
YoshiRulz fb29663ce6
Platform-agnostic VirtualListView 2019-10-25 21:11:54 +10:00
YoshiRulz d0159ee565
Port InputRoll by adding GDI+ implementation
also available for Windows users via a toggle in TAStudio
2019-10-25 19:17:50 +10:00
adelikat 28dcae6c8b GDIPlus renderer - use brush cache for text drawing 2019-10-24 16:35:07 -05:00
Asnivor 2e8d7346c3 InputRoll: Implement proper double buffering (improves gdi+ inputroll performance by a factor of 8 or 9 on my machine) 2019-10-24 15:49:51 -05:00
adelikat 7b7e9a269a Rough in of a GDI+ Renderer implementation 2019-10-24 15:49:51 -05:00
adelikat b7f8f830e0 move some font shenanigans into GDI Renderer instead of input roll 2019-10-24 15:49:51 -05:00
adelikat b4a38597a6 remove unnecessary hack 2019-10-24 15:49:51 -05:00
adelikat f86b218111 Renderer doc fix 2019-10-24 15:49:51 -05:00
adelikat 9dc91e508e simplify renderer api 2019-10-24 15:49:51 -05:00
adelikat ca2767c536 HexView - cleanup and comment out GDIREnderer for now 2019-10-24 15:49:51 -05:00
adelikat 92d6769b06 inputroll - rename renderer variable 2019-10-24 15:49:50 -05:00
adelikat 0a7db2ad4d cleanup GDI Renderer 2019-10-24 15:49:50 -05:00
adelikat 74450ee0a6 create an interface for GDIRenderer 2019-10-24 15:49:50 -05:00
adelikat bc4498b9dd VirtualListView begone! 2019-10-19 20:06:59 -05:00
adelikat 9100526a0c Convert debugger to use InputRoll instead of VirtualListView 2019-10-19 19:16:45 -05:00
adelikat bd0c81d791 InputRoll - don't blow up if QueryItemBkColor isn't defined 2019-10-19 14:59:57 -05:00
adelikat de01596617 delete unused TasListView, not sure what this was trying to be 2019-10-19 13:07:36 -05:00
adelikat b5d05e0f0c InputRoll - properly calculate if a vertical scrollbar is needed 2019-10-19 13:01:53 -05:00
adelikat f96e778c35 remove unused method 2019-10-19 11:46:56 -05:00
adelikat 7428a5d244 InputRoll - if column resize is enabled, double clicking a column edge resizes it to fit the text 2019-10-19 11:45:18 -05:00
adelikat fb2048075c InputRoll - cutoff text if it overflows the cell 2019-10-19 11:21:34 -05:00
adelikat 427f51f407 fix inputroll vertical scrollbar logic 2019-10-18 20:02:58 -05:00
adelikat b60ed03543 inputroll - column resizing (not implemented for HorizontalOrientation yet) 2019-10-18 10:05:26 -05:00
James Groom 90b0574bc3
Remove unnecessary calls to ToList (e.g. in foreach)
squashed PR #1591
2019-10-13 15:50:57 +00:00
J.D. Purcell 0dcb0b9bb4 Fix DPI scaling issue in custom message boxes (Snex9x/QuickNES accuracy warnings). 2019-10-12 22:34:53 -04:00
YoshiRulz 2642ef4049
Remove empty docs 2019-06-06 16:41:10 +10:00
James Groom f599b33ee2
Don't change cell selection while context menu is open (resolves #1551) 2019-04-21 14:24:58 +00:00
James Groom 779975f689
Use nameof 2019-03-28 14:17:14 +11:00
YoshiRulz e6374ef477
Use string interpolation 2019-03-19 00:06:37 +10:00
Isotarge c5407472cd TAStudio: Prevent exceptions with small window size 2018-10-18 21:21:52 +10:30
feos 74d5797a6f tastudio: don't let ctrl+up go oob 2018-03-11 15:04:41 +03:00
TASeditor 47255deef5 fix selection (#1134)
fix selection going out of bounds
2018-03-10 20:35:07 +03:00
TASeditor 6580c2abef Tastudio: drawing stuff, selection, patterns, add column lua function (#1125)
* alt+columnclick draws pattern
* selection: taseditor logic
* shift/ctrl keys restructure to taseditor
shift + up/down: move frame courser up/down by one
shift + pageup/pagedown: move frame courser to next/prev marker
ctrl + left/right: add/remove selection at last selected row
ctrl + shift + left/right: add/remove selection at first selected row
* Alt+drawing pattern
still not working with drawing upwards
* pattern drawing
upwards drawing working except it doesn't update last row.
TODO: Disallow Alt click to focus on menu.
* pattern: last input ignoring fixed
* Lua columnms
TODO: Don't save them into tasproj
* no need to update float edit stuff or cell changes when its not needed
* Shift+clicking draws input from first selected row to clicked cell
* fixed pattern drawing on empty cells
2018-03-08 22:15:47 +03:00
frequem d0d73766bd Fixed some filenames causing problems on case-sensitive systems 2018-02-21 20:19:33 -05:00
zeromus 5d22dfac0e fix custom listview win32 structs for 64bits (not 100% sure I did this correctly) 2017-07-23 10:16:55 -05:00
zeromus e1d0ea2bcb fix prereq alert target url (fixes #910) 2017-07-09 13:23:04 -05:00
zeromus 390e5b1a26 fix avi dumping on x64
problem was 4bytes only gap before lpParams.
did I break the struct for 32bit?
2017-06-20 23:27:44 -05:00
feos 6bc542cc56 tastudio: fix _columnDown being drawn without moving
used to happen when you click the column header with rows selected
2017-05-29 20:37:27 +03:00
adelikat 19dde8018a InputRoll cleanups 2017-05-24 11:45:57 -05:00
nattthebear ebe789eed2 heh 2017-05-10 07:45:23 -04:00
J.D. Purcell b53502eed8 Spaces -> tabs. 2017-04-15 16:37:30 -04:00
J.D. Purcell ed3bf0e62b Fix mixed line endings. 2017-04-15 15:53:02 -04:00
J.D. Purcell b2a28339d1 Use 'nameof' operator. 2017-04-10 08:36:42 -04:00
J.D. Purcell a786f73154 Fix some places using 'int' instead of IntPtr. (#828) 2017-04-08 18:36:29 -04:00
feos 0ec0910207 tastudio: move screenshot popup to yet another control to allow fading
avoid false branch 0 hover when entering branch view from the top

todo: hide screenshot when moving upwards to header cell
2017-03-08 16:31:49 +03:00
feos 885a57d91e tastudio: it's never enough, fix #800 (row count cap) 2017-02-15 19:54:45 +03:00
feos 17faf42b6e tastudio: try to be a bit smarter with SelectedIndexChanged
forces SetSplicer() calls, but only at InputRoll's OnMouseDown, the rest is handled by tastudio
2017-01-19 21:55:18 +03:00
feos 433d4ad693 tastudio: revive ColumnsChangedCallback, and alarm if it dies again 2016-11-17 21:30:42 +03:00
feos 2a9bd175d8 tastudio: kill zombie denoteStatesWithBGColor and co. in InputRoll, having them in Settings is enough 2016-11-17 20:25:06 +03:00
adelikat 36dcf53cc0 on specialized number boxes, select all text when reseting an empty box to a default value. This fixes #685 2016-11-09 10:19:49 -06:00
adelikat bb1a3e3221 PrereqsAlert - give a little more vertical space to the general advice box so the user can see the final message (that we will keep nagging them) 2016-11-07 12:20:54 -06:00
hegyak b3d91049de Change PrereqsAlert.Designer.cs to point to GitHub instead of SF 2016-09-27 18:06:54 -07:00
Kyle Howell 3d88f77ec6 Fixed TAStudio crash when deselecting "Show Player X". The horizontal scrollbar was not updated which caused an exception when scrolling to the right. 2016-09-25 16:55:34 -06:00
Kyle Howell 4834e31bb8 Fixed bug with InputRoll selected rows drawing hidden columns. 2016-09-25 14:04:57 -06:00
Kyle Howell d66181a597 Fixed bug with right click inputRoll selction. 2016-09-25 12:47:37 -06:00
feos 7d1084bf98 tastudio: change internals of editing input during scrolling.
for now it only makes a single edit per click, since we only recalculate OnMouseDown if scrolling. this is required to get rid of scrolling recursion caused by various actions.

also ClearLeftMouseStates before saving dialog pops up
2016-09-08 22:22:33 +03:00
feos ba895e3bad tastudio:
- fix recursion in cell updates caused by clicking cursor column (fixes scrolling)
- display invalidated color consistently

n64: fix trace callback prototype
2016-09-04 12:03:12 +03:00
feos b4a9123515 tastudio: fix editing while unpaused + left button held scenario.
now it replicates taseditor:
- editing input while unpaused, if autorestore is off, resumes emulation and ignores seek frame. if you keep holding the LMB, and follow cursor is on, it will keep scrolling, drawing and emulating
- editing input while unpaused, if autoresotre is on, fires autorestore and then just pauses on the seek frame

what's different from taseditor:
- with autorestore and follow cursor on, if you hold the button, and seek frame is below the view, it will keep scrolling down, drawing new input and emulating. taseditor does *not* follow cursor while seeking.

this all doesn't necessarily make sense, but we need people to figure out what is best for work.
2016-07-11 21:39:32 +03:00
feos f23767ae6a tastudio: properly set input while unpaused
replicates taseditor behavior: if autorestore is off, emulation resumes running, otherwise it pauses on it.
todo: fix this during left button held
2016-07-10 22:25:02 +03:00
feos 53c7f4e5be tastudio: ignore inputroll hotkeys and numeric branch hotkeys during float editing mode. 2016-05-07 15:05:07 +03:00
zeromus a7f03d4c2c make direct3d9 prereq check non-fatal and make d3d display method initialization fail non-fatal, falling back to gdi+ 2016-05-05 09:01:01 -05:00
feos dc18535b88 tastudio: use VisibleRows instead of SeekingCutoffInterval.
allow SelectedIndexChanged again, just not use it in tasview. can we comment out in designers like that?
2016-04-17 21:02:21 +03:00
feos f5746a7b8f tastudio: stop updating splicer after every new cell is appended.
quick fix to #597.
fix crash when pasting input beyond movie length. todo: make input log append like PasteInsert does.
2016-04-17 13:52:58 +03:00
feos a18648dc45 GDIRenderer: add a method to create NormalFont using the LOGFONT features.
InputRoll: make the font match what fceux uses. padding still works oddly though.
2016-04-17 11:47:18 +03:00
zeromus 5a6ffe022a fix tastudio font bugs, some mine, some not mine 2016-04-17 03:07:07 -05:00
zeromus 1bde0c5a72 GDIRenderer - fix bugs in using any font but the old default gdi font (i.e. System) while rendering to offscreen bitmaps (e.g. tastudio) 2016-04-16 17:13:49 -05:00
feos 2fafd85064 InputRoll: stop switching to RotatedFont when we're in vertical orientation.
Still doesn't care about the font we set, since it's never created in gdirenderer.
2016-04-16 21:46:47 +03:00
zeromus 6b013d6d94 fix VirtualListView (incl. movie open dialog) on x64 2016-04-07 15:25:14 -05:00
zeromus 4e13f205d4 update and clarify prereqsalert urls and guidance 2016-03-21 21:08:09 -05:00
zeromus e0d74c7718 better error handling in shader compiling. kind of sloppy, but gets the job done. entire system could use a little rethinking, if i ever revisit filters 2016-02-03 02:28:03 -06:00
feos d39aa6433e tastudio: implement SeekingCutoffInterval 2016-01-27 16:18:20 +03:00
zeromus 192458a190 try catching some missing prereqs in emuhawk startup and print a report about it 2016-01-14 01:50:41 -06:00
adelikat ac1c7d0992 HexView - setting up some API 2015-12-24 15:46:57 -05:00
adelikat 60692450e8 New Hex Editor - add the plumbing for the HexView widget, that will use the GDIRenderer as the basis for the drawing. 2015-12-24 11:15:29 -05:00
zeromus 22143f99fb work on stability of avi writing. Unfortunately, I did a half dozen things here, overlapping in complicated ways, and at least 2 of which were required to fix it: changed pinvoke wrapper of AVISaveOptions, removed ownership of pointers from codec token (simplified analysis and in principle [but not practice] determinism due to less GC involvement), changed life cycle management of codec token (irrelevant due to prior), changed functions used to allocate memory from AllocHGlobal to pinvoke HeapAlloc, made different assumptions of ownership/lifecycle of pointers accessed by AVISaveOptions. notably the pinvoke wrapper for AVISaveOptions was the last thing I fixed that sealed the deal, but I don't think it was that simple. 2015-12-19 05:13:31 -06:00
feos 4bc74ce36e tastudio: arrow keys start making sense.
up/down - scroll tasview.
ctrl-up/down - move selection.
shift-up/down - append selection.
removed ctrl-shift-R, duplicate of ctrl-shift-F.
2015-12-03 23:06:28 +03:00
feos 69970c5ae5 tastudio: select the new cell on every rightclick.
only enabled for branches and markers, since in tasview we use rightclick to start advance/rewind.
involved some hackery, like killing context menu while OnMouseDown of the given listview, then going back to InputRoll's OnMouseDown and actually selecting a new cell. can we figure out a hovered cell while context menu is still active? also, it'd make sense to do this for leftclick as well, but without context menu hiding, there doesn't seem to be a way to force updating of listviews from InputRoll.
2015-12-03 21:16:55 +03:00
Hathor86 f70a2c8c6c Merge from TASVideo 2015-11-01 22:01:19 +01:00
feos a4b3a57af2 tastudio: update RowCount before scrolling to frame.
fixes loading a branch whose movie length is longer than current.
2015-10-25 20:24:33 +03:00
zeromus 3dd0ab2008 HexTextBox - try to preserve the current value when changing the hex size. This kind of thing is super annoying, revert it immediately if there's a problem. Fixes #525 2015-10-20 01:57:47 -05:00
adelikat 6ff3215a5f Move Exception box from Client.Common to Client.EmuHawk, it is inappropriate to be in Client.Common 2015-10-17 19:18:37 -04:00
adelikat ba87d19d5c Input roll - some small cleanups 2015-09-05 16:37:52 -04:00
adelikat a85c60e716 Input Roll - more avoiding calculated fields in loops 2015-09-05 15:44:08 -04:00
adelikat ed4ccdbfc6 InputRoll - don't call LastVisibleIndex, a calculated field, in a for loop, seems to be a nice speedup 2015-09-05 15:27:59 -04:00
adelikat e9d7c7c88c InputRoll - more shenanigans 2015-09-05 15:09:55 -04:00
adelikat 747c0fddda InputRoll - remove a todo 2015-09-05 14:33:34 -04:00
adelikat b45f34dc3e InputRoll - code cleanup - make NormalFont readonly and remove redundant use of this.NormalFont 2015-09-05 14:21:58 -04:00
adelikat 76db52966e InputRoll - on paint method, calculate visible columns once and pass into draw functions rather than making a new list in every method on every draw 2015-09-05 14:00:08 -04:00
adelikat dec25850c5 InputRoll - a small cleanup 2015-09-02 19:39:57 -04:00
adelikat fceb4487c9 InputRoll - tiny optimization - don't calculate lastvisiblecolumnindex during a for loop 2015-09-02 19:38:33 -04:00
adelikat ed26eb002d InputRoll - break off drawing methods into a separate file 2015-09-02 18:46:23 -04:00
adelikat 951129048d Move InputRoll to the CustomControls folder 2015-09-02 18:27:34 -04:00
zeromus c9dab721fb fix bug in GDIRenderer font cache that made fonts go wacky and get measured wrong and then TAStudio to layout differently each time 2015-07-07 14:05:44 -05:00
SuuperW 189ecfeb2e TAStudio:
-Undo History UI, some history bugfixes
-Painting input past the movie no longer moves markers
2015-03-04 19:03:00 +00:00
adelikat 8af99c9066 Tastudio - make < and > buttons repeatable buttons 2015-02-24 21:44:26 +00:00
mathew1800 abbee1672e Specify the parameter for argument-based exceptions. Correct the parameter names of others.
Common mistake.
2015-02-10 04:19:34 +00:00
adelikat f647f16592 Ram Watch - add/edit watch - support 32 bit domains 2015-01-18 19:50:31 +00:00
jdpurcell ac4e197e22 Fix trackbars in Display config having different background color than their container (workaround applied only at runtime to avoid breaking designer). 2015-01-18 19:44:51 +00:00
adelikat f6b757e7fd Add Breakpoint dialog - fix a slight logic error 2015-01-18 19:08:25 +00:00
adelikat 91ffc17aae Refacotor MemoryDomain.Size to be long instead of int, still some small todos, but it compiles and seems to work 2015-01-18 15:25:47 +00:00
adelikat 7fb92d28fc Debugger - fix disassembler scrollbar logic, including the "infinite scroll" effect that when you click the up or down scrollbar arrows it will got to the next instruction (upon the next update it will "snap" back to PC) 2014-12-23 02:34:08 +00:00
adelikat 9997c4fa8d do last commit more correctly 2014-12-13 17:33:02 +00:00
zeromus a2722ae10f do some work which _should_ have supported rotated text. not sure why it isn't working though... 2014-10-22 07:59:06 +00:00
adelikat f7939125e7 GDIRenderer - fix run away gdi objects when drawing bitmaps 2014-10-11 18:56:54 +00:00
zeromus 2a9f8d9309 refine hotkey/controller dialogs a tiny bit 2014-10-05 02:02:04 +00:00
zeromus a32b5faf95 add AlphaBlend to GDIRenderer 2014-09-18 00:31:32 +00:00
adelikat 33de5d4bd9 InputRoll - support a QueryItemIcon callback, and wire it up to Tastudio's current frame marker, needs to be cleaned up 2014-09-03 03:16:16 +00:00