Commit Graph

1175 Commits

Author SHA1 Message Date
Paul Licameli 1b2d4e26ba Consistently compare to translation of "Command" in KeyView.cpp...
... note that "cat" compared with it is concatenated with _("Menu") and
stored in KeyNode::category, which is also compared elsewhere with
CommandTranslated.  So this change in one comparison is the right one.
2020-05-22 13:07:50 -04:00
Paul Licameli 44b30ca4e1 Don't internationalize "e" (introducing numeric exponent) 2020-05-22 13:07:49 -04:00
Paul Licameli a0045f8772 Remove some macro _ in NumericTextCtrl & substitute-don't-concatenate 2020-05-22 13:07:32 -04:00
Paul Licameli 630bc15fd3 Fix some misplaced i18n-hint comments 2020-05-22 12:48:49 -04:00
James Crook 67849b33ae Bug 2399 - Selection and Time toolbars incorrectly display sample format 2020-04-26 11:04:18 +01:00
James Crook 0a95de6c06 Bug 2241 - Spectral Selection Toolbar displays frequencies 100x too small in some languages 2020-04-20 23:36:05 +01:00
Paul Licameli 23f5811061 Fix uninitialized values 2020-04-20 14:54:04 -04:00
Leland Lucius 6c605c8d6a Stop ASliders from flashing when entered/changed 2020-04-18 16:40:52 -05:00
Leland Lucius 01ccb518fd Bug 2390 - Linux: Nyquist plug-ins with multi-choice widgets are not accessible 2020-04-17 09:54:08 -05:00
Leland Lucius 383000557e Reduce flickering when Time toolbar is huge 2020-04-13 09:49:53 -05:00
Paul Licameli 30ac43e195 Fix more comments ("it's" -> "its") 2020-04-12 18:49:22 -04:00
Leland Lucius a5db7bbb2b Bug 2318 - Linux: Time Toolbar is needlessly resized too large when accommodating longer time format 2020-04-12 01:14:08 -05:00
Yuri Chornoivan d1ada5f08c Fix minor typos 2020-04-11 10:06:24 +01:00
Paul Licameli 61abb87a77 Reviewed all i18n-hint comments...
... Moved many misplaced ones, which msgfmt would not have extracted into
audacity.pot.

Duplicated some of them, to appear with related but distinct msgids.

Added a few new comments.

Deleted one that was no longer needed in ProjectManager.cpp.
2020-04-05 09:00:00 -04:00
Paul Licameli c001fd97f7 fix comment 2020-03-14 13:47:49 -04:00
Leland Lucius 867775ef99 Looks like FindFocus() on wxGTK can return NULL 2020-03-10 12:56:43 -05:00
Leland Lucius 0e42bd42b6 Bug 682 - Linux: Keyboard Preferences: focus trapped in Search box
Gotta love when the solution is right in the bug report.  :-)
2020-03-10 09:52:58 -05:00
Leland Lucius a7bd7331ac Bug 625 - Track Pan / Gain sliders don't show tool tip on hover 2020-03-09 11:06:07 -05:00
James Crook 4884f59982 Bug 2316 - Meter scale overprints meter options button 2020-03-02 19:29:48 +00:00
James Crook 6c69484899 Bug 2285 - Many action buttons and items in Toolbars activate the action on right-click (expect context menu or null action) 2020-03-01 22:00:05 +00:00
Paul Licameli a461b7a273 Possible fix for intermittent assertion violations at Linux startup 2020-02-29 17:13:53 -05:00
James Crook a48483bc19 Bug 2298 - Font size per-platform.
My previous fix disrupted mac font size.  Now the code should have the right font sizes for each platform.
2020-02-25 10:56:31 +00:00
James Crook 50d16867d5 Bug 2258 - Sliders in the slider dialogs when double-clicked yield a further slider dialog 2020-02-24 21:23:16 +00:00
James Crook 87034a0a67 Bug 2298 - Windows: Font size reduced for Vertical Scale, Timeline and Time Track numbers 2020-02-24 19:25:52 +00:00
James Crook b2d9f7c396 Bug 2305 - The Gain, Play-at-Speed and Mixer Board sliders do not display the numeric value in the tooltip when sliding 2020-02-17 21:55:32 +00:00
Paul Licameli 87382d51d8 Demote convenience function that makes computed items to base class 2020-02-15 14:44:17 -05:00
Paul Licameli 4d7a9f00a1 Popup menu table for wave track has member function to get the track 2020-02-15 13:52:41 -05:00
Paul Licameli cfd07af245 PopupMenuTable supports registration 2020-02-15 13:49:13 -05:00
Paul Licameli 46f958f376 Use computed registry items for conditionally shown popup menu items 2020-02-14 21:38:07 -05:00
James Crook 9985b8a9b8 Fix Big Time TimerToolBar, Stage III
Fixed issue where format selector could disappear.
Fixed upgrade from 2.3.3.
Remembers time format.
2020-02-14 12:02:21 +00:00
Paul Licameli db3543500c Each popup menu item can carry a callback to check or disable it 2020-02-09 23:48:40 -05:00
Paul Licameli 00a419a280 Store a reference to a handler object in each PopupMenuItem 2020-02-09 23:48:40 -05:00
Paul Licameli e1e0869e26 Replace some macros for popup menus with function calls 2020-02-09 23:48:40 -05:00
James Crook 30b26a0b99 Add <wx/bmpbuttn.h> needed by Linux. 2020-02-09 20:46:16 +00:00
James Crook 41619af8cd Bug 2274 - Enh: Dialog for orphan block files has no "?" Help button
also

Bug 2273 - Enh: Dialog for missing block files has no "?" Help button

These now link to the appropriate page in the manual.
2020-02-09 20:26:29 +00:00
Paul Licameli 8f88aa106e Bug2312: don't crash using Wave Color, Format, Rate sub-menus of TCP 2020-02-08 13:20:18 -05:00
Paul Licameli 540f2c5e67 Restore separators after "Move Track to Bottom" in TCP menus 2020-02-06 17:52:45 -05:00
James Crook a09885e995 Fix Big Time TimerToolBar, Stage II
- Naming (Time Toolbar, not TimerToolBar Toolbar)
- Default time format hhmmss
- Lower dock
- Enabled by default
- Sensible min and max font size
- Sensible min and initial width
- Omit Audio Time from Selection Toolbar
2020-02-06 09:40:30 +00:00
Paul Licameli 23c7122985 Populate popup menus with a registry visitor 2020-02-06 00:52:54 -05:00
Paul Licameli 99e3dd5d3f Require an identifier for each popup menu item 2020-02-06 00:52:54 -05:00
Paul Licameli f68da05c1d PopupMenuTable ctor requires an identifier 2020-02-06 00:52:54 -05:00
Paul Licameli 08b1be5514 Macros describe popup menus' sections, not their separators 2020-02-06 00:52:54 -05:00
Paul Licameli 3517b900b1 PopupMenuTable need not publicize its wxMenu subclass 2020-02-06 00:52:54 -05:00
Paul Licameli 9435e97fb8 Store popup sub-menu caption with its item table 2020-02-06 00:52:53 -05:00
Paul Licameli 1e37172e6d Popup sub-menus don't require ids 2020-02-06 00:52:53 -05:00
James Crook 8168dce551 Fix Big Time TimerToolBar, Stage I
- Update on idle (new idiom from Paul)
- Dock at x1 or x2 size
- Smooth resizing
- Take some account of width when resizing
- Promote Resizable docking code to ToolBar class
2020-02-05 14:24:59 +00:00
Paul Licameli 3b77af5dfc Remove TranslatableStringArray.h 2020-02-02 18:02:32 -05:00
Paul Licameli 6e57428e47 PopupMenuTable does not need TranslatableArray...
... because the strings in it are TranslatableString, not translated
2020-02-02 17:32:23 -05:00
Paul Licameli 48b5988c7d Be sure PopupMenuTable::DestroyMenu() gets called...
... though it didn't matter yet for any of the overrides
2020-02-02 17:16:11 -05:00
Paul Licameli 646afe9559 comments 2020-02-02 17:16:11 -05:00
David Bailes 46a6d21585 Bug 2299 - Keyboard preferences: names of commands contain &
Caused by this commit: 0021a98091 : Remove another unnecessary stripping of accelerators from labels

Unfortunately, the stripping was necessary.

Fix:
Reinstate stripping.

Derives from tag: Audacity-2.3.3 + 94 commits
2020-01-31 15:11:18 +00:00
Paul Licameli 68281fe0ee Split up Ruler::Updater::Update 2020-01-23 13:53:54 -05:00
Paul Licameli 580ad8221e Mutable cache for ruler updates, so Draw functions can be const 2020-01-23 13:51:12 -05:00
Paul Licameli a2babc646f Use the correct font to find lead size for custom fonts 2020-01-23 13:39:22 -05:00
Paul Licameli 99064d6dd5 Mutable cache for Ruler's chosen fonts 2020-01-23 13:35:32 -05:00
Paul Licameli 21306d6186 Remove indirection storing number scale in Ruler 2020-01-23 13:27:05 -05:00
Paul Licameli fec3b11674 Demote more of the ruler updating procedure into Updater 2020-01-23 13:18:47 -05:00
Paul Licameli fe4db0dd8e Nix Ruler member vars used only for grid drawing; more const methods 2020-01-23 12:56:11 -05:00
Paul Licameli 537ace493e Don't draw 0 at top of spectrogram scale (bug in 8cf7d0b) 2020-01-22 19:58:53 -05:00
Paul Licameli ec723466ba Invalidate Ruler, whenever anything the Updater uses is reassigned 2020-01-22 13:38:37 -05:00
Paul Licameli edba1b5b28 Avoid unnecessary update before drawing ruler grid...
... which matters for some displays such as in Equalization, though not for
track vertical rulers
2020-01-22 13:38:36 -05:00
Paul Licameli b0154f89e0 Move Tick and TickCustom methods to temporary worker structure...
... which forces us to be more explicit about just what parts of the Ruler
state are used in it (when we construct it) and be sure they don't modify it
2020-01-22 13:38:34 -05:00
Paul Licameli 8cf7d0b8e9 Make Ruler::Tick and TickCustom const member functions...
... on the way to making them not (direct) member functions of Ruler.

Hoist the choice of font and destination label array out of them, and
group other outputs into an argument.
2020-01-22 12:51:08 -05:00
Paul Licameli 2c0afdd77a TickSizes::LabelString takes one less argument...
... so that Ruler::Tick uses major in one less place
2020-01-22 12:09:52 -05:00
Paul Licameli 80dd2fbec9 Further factoring of font size setting...
... and fix uninitialized lead size in case of user-supplied fonts (though
this capability isn't yet used anywhere)
2020-01-22 12:09:52 -05:00
Paul Licameli e08543650b Factor function to choose ruler fonts 2020-01-22 12:09:52 -05:00
Paul Licameli 3876031669 Group ruler fonts and lead into a structure 2020-01-22 12:09:52 -05:00
Paul Licameli 80f884b0b7 Don't need extra indirection handling wxFont, see documentation of it 2020-01-22 12:09:52 -05:00
Paul Licameli 05c80cfb4f narrow scopes of loop indices 2020-01-22 12:09:52 -05:00
Paul Licameli 605a4056c9 Fix bug in 3a64b17...
... which make, for instance, excessive tick marks when in Mel spectrogram
scale
2020-01-22 12:08:37 -05:00
Paul Licameli a14d5c348a Eliminate Ruler::mDC 2020-01-21 19:58:05 -05:00
Paul Licameli 3a64b172c8 Demote duplicated code in Ruler into a static function 2020-01-21 19:36:02 -05:00
Paul Licameli 8729f3fb8e Simplify Ruler with std::vector members 2020-01-21 16:07:27 -05:00
Paul Licameli 7682961f53 Remove unused members of Ruler 2020-01-21 15:17:51 -05:00
Paul Licameli a84391b4a2 Eliminate some members from Ruler...
... Move some fields used only during formatting into a temporary structure.

(And fixing a minor problem with uninitialized variables in case of logarithmic
scale, which made it unpredictable how Plot Spectrum with logarithmic
frequencely axis formatted numbers.)
2020-01-21 12:53:33 -05:00
Paul Licameli 9cd7a5eaf3 Bug2277 partial: in dB ruler, always draw midline value if in range...
... and also draw the zeroes if in range, taking precedence over the extreme
values (which might be positive dB values when zoomed out or scrolled).

See comments 10 and 11 in the bug report.
2020-01-20 12:29:28 -05:00
Paul Licameli 2570b56176 Rename Maybe and its members more like std::optional of C++17 2020-01-19 11:38:12 -05:00
Paul Licameli 32d2d2390f Eliminate GetActiveProject from MixerBoard, Snap, Meter 2020-01-07 17:06:23 -05:00
Paul Licameli 275797bbb4 Fewer uses of ::GetActiveProject()...
... where we have a window, ascend the chain of parent pointers instead to
find the project window.
2020-01-04 12:59:37 -05:00
Paul Licameli 12bbafe013 Separate storing of user data from initialization of popup items 2020-01-01 21:54:45 -05:00
Loss e787694f07 Implementation of Timer Toolbar
PRL:  Rebased onto recent master, fixed compilation and indentation, added new
files to the XCode project, added an EXPERIMENTAL flag
2019-12-31 17:42:54 -05:00
Paul Licameli 093ffbd2f1 MultiDialog uses ShuttleGui, and TranslatableString for title 2019-12-29 16:17:04 -05:00
Paul Licameli c64b3cb31f Rewrite FileDialogWrapper using FileNames::FileTypes...
... also removing some repeated code and using the config keys /DefaultOpenType
and /LastOpenType only in Import.cpp
2019-12-29 15:35:03 -05:00
James Crook e6c370023c Fix broken Windows build. 2019-12-29 17:38:44 +00:00
Paul Licameli 7bdb3491c7 Fix usage comment for PopupMenuTable 2019-12-29 00:08:31 -05:00
Paul Licameli 6e14d2e56c RulerPanel uses TranslatableString for units string...
... also fixing missed translation of "k" in spectrum vertical ruler
2019-12-28 23:49:18 -05:00
Paul Licameli 956e0813c4 SliderAx uses TranslatableString 2019-12-28 23:49:17 -05:00
Paul Licameli ccefe8da5f Remove unused default arguments for FileDialogWrapper 2019-12-26 22:13:36 -05:00
Paul Licameli 747c35645a TranslatableString for checkbox captions 2019-12-23 19:15:34 -05:00
Paul Licameli c23451af9d TranslatableString for prompts of radio buttons 2019-12-23 19:02:21 -05:00
Paul Licameli 13417b6d5b ShuttleGui::AddFixedText takes TranslatableString 2019-12-23 19:02:19 -05:00
Paul Licameli acd1158e1b TranslatableString for titles, and spin control and combo prompts 2019-12-23 18:53:00 -05:00
Paul Licameli 5168d62e3d TranslatableString for captions of text entry boxes 2019-12-23 18:53:00 -05:00
Paul Licameli b404eb7800 TranslatableString for static text box captions 2019-12-23 18:52:37 -05:00
Paul Licameli 1944ac2040 TranslatableString for labels of ShuttleGui buttons 2019-12-23 15:35:48 -05:00
Paul Licameli c682718ee4 TranslatableString for toolbar button labels 2019-12-23 15:35:47 -05:00
Paul Licameli 66097c34dc MultiDialog uses TranslatableString for button labels & 2nd message 2019-12-23 15:35:47 -05:00
Paul Licameli 89a3771730 TranslatableString for AudacityTextEntryDialog message and caption 2019-12-21 11:23:32 -05:00
Paul Licameli 49cab86fc1 TranslatableString for tooltips and status bar messages 2019-12-20 21:54:49 -05:00
Paul Licameli 2007346551 Pass TranslatableString to help, warning, and error dialogs 2019-12-20 21:48:21 -05:00
Paul Licameli 5909f67fdb NumericTextCtrl::SetName takes TranslatableString 2019-12-20 21:38:05 -05:00
Paul Licameli dc39f22442 AudacityMessageBox takes TranslatableString message and caption 2019-12-20 21:32:50 -05:00
Paul Licameli 71e9e38083 AudacityMessageDialog takes TranslatableString message and caption 2019-12-20 13:40:20 -05:00
Paul Licameli 1b726f4f09 More TranslatableString in dialog wrapper classes...
... All of the dialog names, and the messages for File and directory dialog
wrappers
2019-12-20 13:40:20 -05:00
Paul Licameli a70524446e TranslatableString for title prefix in PrefsDialog...
... and the title strings do not include a trailing space
2019-12-19 22:37:21 -05:00
Paul Licameli 5e26ef1eba Define and use non-mutating TranslatableString::Stripped 2019-12-19 16:41:45 -05:00
Paul Licameli 6b812791a6 TranslatableString in popup menu tables 2019-12-16 15:10:35 -05:00
Paul Licameli 503ccabdd8 TranslatableString caption & message in MessageBoxException 2019-12-16 10:58:05 -05:00
Paul Licameli e875adaa6f AButton::SetToolTip takes TranslatableString 2019-12-16 10:58:05 -05:00
Paul Licameli 681950fc61 TranslatableString for names, labels, tooltips of wxPanelWrapper...
... and Grabber too
2019-12-16 10:58:05 -05:00
Paul Licameli 53ee9c9800 TranslatableString for titles, names, labels of wxDialogWrappers...
... Found one missed translation in CommandTargets.cpp
2019-12-16 10:58:05 -05:00
Paul Licameli 5639f834c8 CommandManager stores labels as TranslatableString 2019-12-16 10:58:05 -05:00
Paul Licameli 0021a98091 Remove another unnecessary stripping of accelerators from labels 2019-12-16 07:09:04 -05:00
Paul Licameli 9a609fe1fe TranslatableString in ProgressDialog 2019-12-14 01:48:15 -05:00
Paul Licameli a8de4d9e50 Construct MenuItem with untranslated label, so it can be static...
... and other storage of TranslatableString instead of naked wxString, for
management of menu items, in CommandManager
2019-12-12 15:49:00 -05:00
Paul Licameli 0cf90d65e6 S.GetParent() for all windows passed to ShuttleGui::AddWindow()...
... Verified that this makes no real change.
2019-12-10 09:58:38 -05:00
Paul Licameli d49ac8bad3 Remove obsolete code 2019-12-10 09:58:38 -05:00
James Crook 5a3e9cd063 Fix dialog naming
For nicer Doxygen results, we need consistency in naming of classes.
Dialag classes are now called SomethingDialog.
2019-12-06 10:39:07 +00:00
Paul Licameli 15260c2c95 TranslatableString can store a context and format arguments...
... Format arguments are substituted into the translation of the msgid, which
may not be known at the time the format arguments are captured (because locale
may change).  This allows TranslatableString with arguments to be constructed
at static initialization time.

There is also a special "verbatim" or null context which makes no translations
of msgids.

There is not yet any use of other contexts besides default or null.
2019-12-05 11:34:06 -05:00
Paul Licameli 96291c5476 Remove second argument of AddWindow(), use Position() instead 2019-12-02 22:01:22 -05:00
Paul Licameli d98e41aad1 Define and use ShuttleGui::Disable; remove EnableCtrl 2019-12-02 17:54:07 -05:00
Paul Licameli c72dbf5b51 Define and use ShuttleGui::Focus 2019-12-02 17:26:40 -05:00
Paul Licameli 1bfbfb9640 ShuttleGui::Style analogous to other functions 2019-12-02 17:23:34 -05:00
Paul Licameli 9eeef4713d Define and use ShuttleGui::Name and NameSuffix...
... For radio buttons, the name will default to the same as the prompt if not
otherwise specified
2019-12-02 16:55:46 -05:00
Paul Licameli 3ea0209e5c Define and use ShuttleGui::ToolTip 2019-12-02 11:41:51 -05:00
Paul Licameli 1d32824e02 Define and use ShuttleGui::Validator 2019-12-02 11:21:40 -05:00
Paul Licameli 0b6618e491 Use TranslatableString in NumericTextCtrl...
... Fixing a minor error in TimerRecordDialog, where translation of format was
done too soon
2019-12-01 18:08:56 -05:00
Paul Licameli 089b46ab64 Specify initial radio button state in ShuttleGui method arguments 2019-11-28 14:24:44 -05:00
Paul Licameli bca0afd52e ShuttleGui lets you specify whether a button is default. Use that. 2019-11-28 14:24:43 -05:00
Paul Licameli 7ccd35d219 wxWidgets docs recommend: don't SetSizeHints on non-top-level windows 2019-11-28 14:24:43 -05:00
Paul Licameli 87a9e7ccbb Use global ChoiceSettings variables, not coincidental string literals 2019-11-27 13:38:17 -05:00
James Crook 80ef424338 Bug 169 - Welcome Message: Local links to "Quick Help" and "Manual" do nothing if help is not installed. 2019-08-20 22:29:18 +01:00
James Crook aee4e5deaa Bug 1411 - Multiple non-modal "Help from the Internet" windows 2019-07-30 12:30:57 +01:00
David Bailes 5b277dc9f8 Bug 1723 - Keyboard Preferences: Closing subtrees.
Closing sub trees can leave the wrong item selected.
If a node near the bottom of the tree is closed, the node may move
down, and no longer be under the mouse pointer. If further processing
is allowed, then the line at the mouse position is incorrectly selected.

Fix: Don't allow further processing and call SetFocus() ourselves.
2019-07-30 11:35:46 +01:00
Paul Licameli c98ab0aec9 Make RecordingPrefs.cpp independent of Warning 2019-07-13 19:54:41 -04:00
Paul Licameli 908228b431 ProgressDialog does not depend on ErrorDialog 2019-07-13 18:10:11 -04:00
Paul Licameli 3a1456bf53 Make OverlayPanel independent of AColor 2019-07-13 16:08:29 -04:00
Paul Licameli fb713a5339 ASlider wasn't using Ruler 2019-07-12 22:52:34 -04:00
Paul Licameli d6317ae6af Merge LinkingHtmlWindow into HelpSystem...
... they cooperated closely in a cycle of two not worth breaking
2019-07-10 10:34:04 -04:00
Paul Licameli 7e1c469d7f Remove some unnecessary #include directives 2019-07-09 12:45:50 -04:00
Paul Licameli 8c59f66583 ScrubbingToolBar eats less idle time after commit 192530d 2019-07-05 13:30:11 -04:00
David Bailes f327fef80b Bug 2146: Keyboard preferences: mouse can select wrong item
My previous fix for this bug, commit 4b437b8, did not work on Mac.
This bug was introduced by my commit b62ed73. This commit was to ensure that when the keyview was the focus, there was always one item selected. This ensures that the focus is indicated visually, and that the Narrator screen reader reads the keyview.

The failed fix, selected an item if necessary when the keyview became the focus.

The current fix reverts b62ed73 and 4b437b8, and ensures that an item is selected each time the items are updated.
2019-07-05 12:16:04 +01:00
Paul Licameli e2362bc25a Move project status string management to new attached object class 2019-07-02 21:01:34 -04:00
Paul Licameli 2a06b10884 Make objects attached to AudacityProject non-copyable...
... except for Tags; also some uses of final and explicit

This caught a mistake in Scrubbing.cpp
2019-07-02 19:51:24 -04:00
Paul Licameli 6adb2abc98 Keep EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT compilable...
... while not reintroducing bad dependencies, which explains the movement
of the definition of some constants
2019-07-02 12:35:40 -04:00
David Bailes 4b437b8cb9 Bug 2146: Keyboard preferences: mouse can select wrong item
Steps to reproduce:
1. Open preferences
2. Select the keyboard category
3. Scroll down the list by any amount
4. Select an item using the mouse. The list scrolls to the top and the wrong item is selected.

The problem occurs because if the list of shortcuts is currently not the focus, then after a left mouse click, KeyView::OnSetFocus() is called, and setting the selection in that function interferes with the mouse selection.

Fix: In KeyView::OnSetFocus(), if there has been a left down event, don't select anything.
2019-07-01 11:48:56 +01:00
Paul Licameli 0b897c81b0 ToolManager.cpp does not depend on Meter 2019-06-16 01:24:29 -04:00
David Bailes 2c2cf587b4 Bug 496 - NumericTextCtrls shouldn't accept numbers when any modifier keys are pressed
Problem:
NumericTextCtrls act on numeric keys, even when modifier keys are pressed.
This shouldn't be the case, and has the knock on effect that shortcuts like ctrl + 1, don't work when a NumericTextCtrl is the focus.

Fix:
Check that there are no modifier keys pressed.
2019-06-11 14:38:34 +01:00
Paul Licameli 758e9813f1 Move MeterPanelBase to new files...
... which frees AudioIOBase, QualityPrefs, and ProjectAudioIO from cycles
2019-06-10 20:48:39 -04:00
Paul Licameli 17c04d1749 Separate an abstract base class from MeterPanel...
... to break its cycle with AudioIO
2019-06-10 20:48:38 -04:00