Commit Graph

248 Commits

Author SHA1 Message Date
Nikolay Sivov c68324dfed comctl32/monthcal: Implement MCM_GETMONTHRANGE for GMR_DAYSTATE flag and a single calendar control. 2009-10-08 12:16:57 +02:00
Nikolay Sivov f37130c83b comctl32: Use user32 control names from public header constants instead of defining over and over again. 2009-10-08 12:11:47 +02:00
Nikolay Sivov c8f35a136d comctl32/monthcal: Fix the way a first day of week is handled. 2009-10-08 12:11:24 +02:00
Nikolay Sivov bd58b130ba comctl32/monthcal: Cleanup top drawing helper namespace, reduce parameter count in prev/next draw helpers. 2009-10-08 12:11:14 +02:00
Nikolay Sivov 41db6f8500 comctl32/monthcal: Invalidate unconditonally on MCM_SETFIRSTDAYOFWEEK. 2009-10-07 12:23:52 +02:00
Nikolay Sivov 526e1d81a3 comctl32/monthcal: Recalculate control layout on MCS_WEEKNUMBERS style change. 2009-10-07 12:23:45 +02:00
Nikolay Sivov 689a9eb5df comctl32/monthcal: Update day of week properly while iterating with prev/next buttons and hit testing. 2009-10-07 12:23:39 +02:00
Nikolay Sivov 71d4b5fcd4 comctl32/monthcal: Optimize WM_LBUTTONUP handler. 2009-10-07 12:23:31 +02:00
Nikolay Sivov 6b5c6645b9 comctl32/monthcal: Use a timer to auto update today date memory. 2009-10-07 12:23:09 +02:00
Nikolay Sivov 70eb6c0385 comctl32/monthcal: Use a single timer for auto month scroll with prev/next buttons. 2009-10-07 12:22:57 +02:00
Nikolay Sivov 87e9e3c370 comctl32/monthcal: Fix '&->&&' typo in focused day helper. 2009-10-06 11:57:24 +02:00
Nikolay Sivov 2d2edc9a83 comctl32/monthcal: Fix parameter validation in MCM_SETCURSEL handler. 2009-10-06 11:57:08 +02:00
Nikolay Sivov 42733f980b comctl32/monthcal: Check date limits on prev/next month buttons and year UpDown control. 2009-10-06 11:57:03 +02:00
Nikolay Sivov b8e0a33455 comctl32/monthcal: Remove today rectangle and focus drawing code from loops. 2009-10-06 11:56:55 +02:00
Nikolay Sivov 9723e6213d comctl32/monthcal: Simplify WM_MOUSEMOVE handler. 2009-10-06 11:56:46 +02:00
Nikolay Sivov f65c2f1d63 comctl32/monthcal: Check configured selection range max width in MCM_SETSELRANGE handler. 2009-10-06 11:56:40 +02:00
Nikolay Sivov 2c928de9e2 comctl32/monthcal: Parameter fixes for MCM_SETSELRANGE handler: swap selection bounds, store day of week. 2009-10-06 11:56:33 +02:00
Nikolay Sivov b97697dbe7 comctl32/monthcal: Check range limits in MCM_SETCURSEL. 2009-10-05 14:58:14 +02:00
Nikolay Sivov 480f54b140 comctl32/monthcal: Use true date comparison on multiselection, not only the day is valuable. 2009-10-05 14:58:03 +02:00
Nikolay Sivov 1ebf42751e comctl32/monthcal: Handle mouse pointer followed focus rectangle more accurately. 2009-10-05 14:57:49 +02:00
Nikolay Sivov 96022da6c8 comctl32/monthcal: Implement MCM_GETMONTHRANGE for GMR_VISIBLE flag, single calendar control only. 2009-10-05 14:57:37 +02:00
Nikolay Sivov 5d530fee54 comctl32/monthcal: Fix parameter validation in MCM_SETMAXSELCOUNT handler. 2009-10-02 11:50:47 +02:00
Nikolay Sivov 3df0823085 comctl32/monthcal: Changing MCS_MULTISELECT isn't allowed after creation, set default value properly. 2009-10-02 11:50:41 +02:00
Nikolay Sivov eb87332f14 comctl32/monthcal: Move MCN_SELCHANGE/MCN_SELECT notifications to helpers. 2009-10-02 11:50:34 +02:00
Nikolay Sivov 3088bb3129 comctl32/monthcal: No need to redraw if month didn't change after popup menu. 2009-10-02 11:50:26 +02:00
Nikolay Sivov 28ec8565f0 comctl32/monthcal: Don't request locale data when it isn't needed. 2009-10-02 11:50:18 +02:00
Nikolay Sivov 9557376138 comctl32/datetime: Always store a recalculated day of week instead of a value passed in (DTM_SETSYSTEMTIME). 2009-10-01 11:35:06 +02:00
Nikolay Sivov 52570539d8 comctl32/monthcal: Respect locale abbreviated day names when calculating control dimensions. 2009-09-30 14:31:58 +02:00
Nikolay Sivov 916017d420 comctl32/monthcal: Move selection logic to LButton release handler, fix notifications order. 2009-09-30 14:31:58 +02:00
Nikolay Sivov cc6fca015c comctl32/monthcal: Make prev/next month day a current selection on LButton release. 2009-09-30 14:31:58 +02:00
Nikolay Sivov 344f07007b comctl32/monthcal: Fix hittesting for MCHT_CALENDARDATEPREV/MCHT_CALENDARDATENEXT cases. 2009-09-30 14:31:57 +02:00
Nikolay Sivov aadadd04fe comctl32/monthcal: Control elements should be centered in client area, and left/top aligned if they don't. 2009-09-29 14:22:35 +02:00
Nikolay Sivov 74eca56acb comctl32/monthcal: Minimal rectangle should be zero based. 2009-09-29 14:22:34 +02:00
Nikolay Sivov 30010f44d5 comctl32/monthcal: Months popup menu should be placed at current pointer position. 2009-09-29 14:22:34 +02:00
Nikolay Sivov bce1cebdd4 comctl32/monthcal: Right button should trigger a popup menu on release. 2009-09-29 14:22:34 +02:00
Nikolay Sivov 69080d6d29 comctl32/monthcal: Add parameter validation to MCM_HITTEST handler. 2009-09-28 12:43:57 +02:00
Nikolay Sivov 1224cc461d comctl32/monthcal: Fix timestamp storing on MCM_SETRANGE/MCM_SETSELRANGE. 2009-09-28 12:43:50 +02:00
Nikolay Sivov 211a55b877 comctl32/monthcal: Prevent configured range exceeding with prev/next buttons. 2009-09-28 12:43:37 +02:00
Nikolay Sivov 7030296ece comctl32/monthcal: Move MCN_GETDAYSTATE notification to a helper. 2009-09-28 12:43:29 +02:00
Nikolay Sivov e3a7c6c7e7 comctl32/monthcal: Fix memory leak on MCN_GETDAYSTATE notification. 2009-09-28 12:43:19 +02:00
Nikolay Sivov 818aab58f5 comctl32/monthcal: Properly handle Goto Today popup menu (on RButton). 2009-09-28 12:43:11 +02:00
Nikolay Sivov a95b63efcc comctl32/monthcal: Store full date info to current date on todaylink with LButton. 2009-09-28 12:42:59 +02:00
Nikolay Sivov 6a11d779e6 comctl32/monthcal: Gather currently selected year and month into a single structure. 2009-09-28 12:42:52 +02:00
Nikolay Sivov 962339d4d6 comctl32/monthcal: Make year edit box readonly, cleanup LButton handler to be more readable. 2009-09-28 12:42:42 +02:00
Nikolay Sivov a44f03518e comctl32/monthcal: Fix some bugs with date range. 2009-09-28 12:42:26 +02:00
Nikolay Sivov d66dcb4ff8 comctl32/monthcal: Store full date info for selection at creation time. 2009-09-28 12:42:11 +02:00
Nikolay Sivov b0d3db5b29 comctl32/monthcal: Copy SYSTEMTIME with a simple assignment. 2009-09-28 12:41:30 +02:00
Nikolay Sivov 6bd43fbb49 comctl32/monthcal: Some cleanup to avoid cast in helpers. 2009-09-25 13:16:34 +02:00
Nikolay Sivov decc86add9 comctl32/monthcal: Don't redraw if date didn't change on MCM_SETTODAY. 2009-09-25 13:16:25 +02:00
Nikolay Sivov 534ea8ab42 comctl32/monthcal: Name MCM_SETMAXSELCOUNT parameter. 2009-09-25 13:16:09 +02:00
Nikolay Sivov 548645d360 comctl32/monthcal: Don't redraw after MCM_SETCURSEL if selection doesn't change. 2009-09-25 13:16:01 +02:00
Nikolay Sivov c01ab1608c comct32/monthcal: Invalidate background too on MCM_SETCOLOR with MCSC_BACKGROUND. 2009-09-25 13:15:54 +02:00
Nikolay Sivov e430838e29 comctl32/monthcal: Use a style we're caching already. 2009-09-24 14:24:13 +02:00
Nikolay Sivov 6fd4ba34a3 comctl32/monthcal: Move helper parameter cast to winproc, remove dead parameter check code. 2009-09-24 14:24:04 +02:00
Nikolay Sivov cbe960f1e9 comctl32/monthcal: Draw selected day as v6 does. Get rid of ugly selection curve. 2009-09-09 13:13:56 +02:00
Nikolay Sivov 86bd48d512 comctl32/monthcal: Cache window GWL_STYLE. 2009-09-09 13:13:48 +02:00
Nikolay Sivov cf67786e40 comctl32/monthcal: Use cached colors instead of GetSysColor for MonthCal. 2009-05-19 15:40:20 +02:00
Ricardo Filipe 5630124896 comctl32: Removed dead store (llvm/clang). 2008-11-21 11:28:36 +01:00
Michael Stefaniuc 62e17fa8c4 comctl32: Do not cast zero. 2008-11-04 11:26:22 +01:00
Clinton Stimpson 9f1ea3f15b comctl32: Fix getting of min size of monthcal when changing font. 2008-10-27 11:41:56 +01:00
Michael Stefaniuc b723e6f6b6 comctl32: Remove the superfluous casting of the LPVOID returned by Alloc(). 2008-10-24 14:24:59 +02:00
James Hawkins a7762476f2 comctl32: Fix MCM_SETFIRSTDAYOFWEEK when the first day set is greater than max allowed. 2008-10-10 12:28:11 +02:00
Gerald Pfeifer 3dbdb31128 comctl32: Remove unused paramters from MONTHCAL_GetRange, MONTHCAL_MouseMove, and MONTHCAL_Create. 2008-09-09 11:46:14 +02:00
Aric Stewart bf6e766df6 comctl32: monthcal: Set the stStart parameter when sending the MCN_GETDAYSTATE notification. 2008-09-02 13:34:02 +02:00
Mikołaj Zalewski 60a1e20ba8 comctl32: Don't print ERRs for reflected messages. 2008-07-22 13:25:08 +02:00
Andrew Talbot b7cc9c66b3 comctl32: Remove unneeded address-of operators from array names. 2008-07-08 10:47:43 +02:00
Andrew Talbot bab7871cac comctl32: Remove unused variables. 2008-04-14 12:09:13 +02:00
Lei Zhang 3980401231 comctl32: Use wine_dbgstr_rect() in traces. 2008-02-07 11:59:53 +01:00
Austin English c2a7914d1c comctl32: Spelling fixes. 2008-01-24 11:43:02 +01:00
Andrew Talbot 867f254bec comctl32: Remove unneeded casts. 2007-12-31 17:40:45 +01:00
Gregor Brunmar d055cb8d5c comctl32: Monthcal lost focus fix. 2007-12-11 17:49:28 +01:00
Lei Zhang d81b6fa8c7 comctl32: Monthcal should send notifications when today link gets clicked. 2007-10-16 11:01:14 +02:00
Lei Zhang 76949d3778 comctl32: Correct monthcal WM_LBUTTONDOWN return values. 2007-10-16 11:01:03 +02:00
Lei Zhang e58e4679b5 comctl32: Select today's date when the today link is clicked. 2007-10-16 11:00:53 +02:00
Dmitry Timoshkov 3c9e7a7f33 wine: Switch to using 'long' for INT_PTR type for 64-bit compatibility. 2007-05-25 20:37:56 +02:00
Lei Zhang 6fb16fca6b comctl32: Fix first day of the week in monthcal. 2007-04-10 11:50:24 +02:00
Andrew Talbot a8a469c7c0 comctl32: Constify some variables. 2007-03-30 10:55:19 +02:00
Farshad Agah 86ea6b5820 comctl32: monthcal: Correct the return value in MCM_SETFIRSTDAYOFWEEK. 2007-03-16 11:53:22 +01:00
Farshad Agah d0f75b5993 comctl32: monthcal: Reject out of range dates in MCM_SETCURSEL. 2007-03-09 11:36:53 +01:00
Felix Nawothnig 8784d47cba comctl32: Remove redundant NULL checks before Free() calls. 2007-02-14 12:22:39 +01:00
Vijay Kiran Kamuju c5b8df481f comctl32: MonthCalendar - Fix highlighting of current date. 2006-12-26 12:52:49 +01:00
Alexandre Julliard 7cca856315 comctl32: Properly handle negative coordinates for mouse events. 2006-10-25 17:41:48 +02:00
Michael Ploujnikov 1c16d83379 comctl32: Win64 printf format warning fixes. 2006-10-14 20:17:06 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Vitaliy Margolen 9774745330 comctl32: Remove/swap limits if min > max in MCM_SETRANGE.
We should swap min & max only when both limits are being
set. Otherwise limit that being set should invalidate other limit
(remove it).
2006-02-16 12:19:36 +01:00
Vitaliy Margolen f273bdc0b5 comctl32: Don't change month range in MCM_SETRANGE. Add tests for this. 2006-02-16 12:19:09 +01:00
Vitaliy Margolen bc2b9e3feb comctl32: Fix invalid date/time check in MCM_SETRANGE: ignore time and fail on bad date. 2006-02-14 17:12:45 +01:00
Michael Kaufmann e9310da57b Handle WM_PRINTCLIENT.
Don't use SelectClipRgn in WM_PRINTCLIENT.
2005-11-08 12:52:35 +00:00
Frank Richter 25464ceef5 Add theming for the monthcal control. 2005-08-11 17:05:00 +00:00
Mike McCormack 882bc4d18d Warning fixes for -Wmissing-declarations and -Wwrite-strings. 2005-06-09 09:50:56 +00:00
Francois Gouget 62253b752f Assorted spelling fixes. 2005-05-30 09:56:56 +00:00
Duane Clark 320814fb67 Misc rectangle fixes.
The date should be initialized from local time.
2005-04-20 12:51:37 +00:00
Duane Clark a6659d26d2 Monday is day number '1'.
Set day of week when a day is selected in the calender.
Use fixed width fields in datetime.
DTS_TIMEFORMAT is a two bit field, so test accordingly.
Reposition and resize the updown control when the datetime control is
resized.
Respond to updown inputs.
2005-04-14 11:31:17 +00:00
Dimitrie O. Paun 30a66a051c MonthCal unicodification. 2005-04-11 14:21:00 +00:00
Ulrich Czekalla 8b20d72005 Clear systemtime struct so we don't return garbage in uninitialized
fields.
2005-04-11 12:57:57 +00:00
Francois Gouget 93416cdaf7 Assorted spelling fixes. 2005-03-23 13:15:18 +00:00
Robert Shearman fbcc21be62 Use the DrawFocusRect function to draw the focus rect, instead of a
broken home-brewed solution.
2005-01-11 10:43:03 +00:00
Eric Pouech cf1d00bb08 Removed excessive statement (break after return or goto, not useful
break, not needed vars...)
2005-01-09 16:42:53 +00:00
Dmitry Timoshkov 30bebfdc38 - Pass infoPtr around in month calendar control.
- Add support for WM_SETFONT and WM_GETFONT messages.
2004-11-30 17:35:16 +00:00
Dmitry Timoshkov 00176e33b3 Dimensions of month calendar control should not depend on the client
window size.
2004-11-08 20:27:02 +00:00
Robert Shearman 8d28e0314c Remove unnecessary WNDPROC casts. 2004-11-06 03:49:03 +00:00
Uwe Bonnes 194bac7781 Monthcal_SetRange: Set proper value for min date. 2004-10-21 22:28:12 +00:00
Dimitrie O. Paun 5d0366f5a0 Audit the month calendar. 2004-10-21 19:52:28 +00:00
Robert Shearman cdb263e588 Replace GetWindowLong by GetWindowLongPtr. 2004-08-25 17:33:01 +00:00
Krzysztof Foltman c401aa84eb - next/prev month don't stick anymore
- min/max ranges initialized to some reasonable values
- fixed some bugs caused by reversed order of arguments of MONTHCAL_CopyTime
- update current month/year after setting current date
- changing months etc doesn't send MCN_SELECT (which could be sent
  only after a particular day was clicked)
- changed (hit && MCHT_CALENDARDATE) to (hit == MCHT_CALENDARDATE)
2004-04-21 22:24:09 +00:00
Dimitrie O. Paun c594043316 Make the controls send notifications to the parent window passed to
them in CREATESTRUCT.  Based on a treeview patch by Igor Grahek.
2003-11-20 22:04:13 +00:00
Dimitrie O. Paun 7de279a73a Rename COMCTL32_{Alloc,ReAlloc,Free} to {Alloc,ReAlloc,Free}. 2003-09-22 21:32:33 +00:00
Alexandre Julliard 9d61596624 SLOWORD and SHIWORD do not exist on Win32 (reported by Filip Navara). 2003-09-17 04:28:28 +00:00
Alexandre Julliard cf52644a1c Removed the A/W constants for builtin cursors, icons and resource
types since they don't exist on Windows, and added typecasts
everywhere instead.
2003-09-10 03:56:47 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Huw Davies 130e21795c Fixed a possible memory corruption.
Fixed a memory leak.
2003-05-12 03:19:35 +00:00
Dan Kegel 0fd521fee3 Change RECT to use LONG to match win32 standard headers and fix format
strings to use %ld for RECT elements.
2003-01-08 21:09:25 +00:00
Francois Gouget d2667a4ce3 Removed unnecessary HANDLE typecasts. 2002-12-02 18:10:57 +00:00
Michael Stefaniuc 353529b2c8 - fix the "int format, HANDLE arg" type of warnings for comctl32
- compile the comctl32 dll with -DSTRICT
2002-10-23 22:19:10 +00:00
Guy L. Albertelli 23739a339a Don't issue error message if message number in application range. 2002-07-16 01:23:59 +00:00
Vincent Béron 9a62491660 Removed trailing whitespace. 2002-05-31 23:06:46 +00:00
Alexandre Julliard 0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Francois Gouget cd8d181a0b Spelling typos. 2001-05-18 21:01:38 +00:00
James Juran f4d5fefb0a Add <string.h> to files that needed it. 2001-01-26 20:43:40 +00:00
Dmitry Timoshkov 77b2185e1c Remove redundant includes.
Eliminate use of USER internal structures.
2000-11-15 22:15:52 +00:00
Alexandre Julliard 908464d448 Authors: Andreas Mohr <amohr@codeweavers.com>, Dimitrie O. Paun <dimi@cs.toronto.edu>, Patrik Stridvall <ps@leissner.se>
Various warning fixes.
2000-11-01 03:11:12 +00:00
Francois Gouget 7203ee6623 Use PS_ALTERNATE rather than PS_DOT.
Use Rectangle to draw focus rectangles.
2000-10-31 02:05:11 +00:00
Uwe Bonnes b0067efa53 Localization and many changes to behaviour and outlook. 2000-10-15 00:27:28 +00:00
Chris Morgan a45919338d Changed RedrawWindow()'s to InvalidateRect()'s. RedrawWindow() was
being called with RDW_UPDATENOW, forcing immediate painting.  Added
redrawing logic to STATUSBAR_SetTextW().
2000-09-22 20:49:12 +00:00
Alexandre Julliard c7e7df8b17 Replaced all lstr* calls from inside Wine code by their str* equivalent. 2000-08-14 14:41:19 +00:00
Alexandre Julliard 70c9e095ef Removed all non-standard common control headers from the include
directory.
2000-08-09 00:41:17 +00:00
Chris Morgan b43639e76e Fixed background redrawing when control is covered. Fixed a really
dumb mistake I made with border drawing many patches ago.  Fixed
offset by 1 alignment issues.
2000-07-08 11:43:57 +00:00
Chris Morgan 043c3e7977 Removed all direct calls to MONTHCAL_Refresh() and replaced with
either RedrawWindow or InvalidateRect. Optimized drawing using
RedraWindow and update regions.  Fixed "Today" date bug where year was
only one digit.  Fixed drawing of circle drawn next to "Today".  Fixed
moving to previous or next month by clicking on days belonging to
previous or next months.
2000-05-30 20:06:33 +00:00
Gerard Patel a1b2fc2a80 Protect against use of comctl32 private control memory after it has
been freed.
2000-05-10 01:34:53 +00:00
Niels Kristian Bech Jensen 4eb4380360 Removed superfluous #include statements for header files included twice. 2000-02-29 22:06:06 +00:00
Alexandre Julliard d711ad9e0a Removed superfluous GlobalFindAtom calls. 2000-02-13 15:10:16 +00:00
Jeremy White d3e22d9d55 Removed #include of wingdi.h and windef.h from winuser.h (and resolved
the resulting compilation failures).
2000-02-10 19:03:02 +00:00
Alex Priem e15dff7411 - Implementation of WM_SETFORMAT
- Reworked drawing/selection
- Implementation of WM_KEYDOWN
2000-02-03 00:48:39 +00:00
Alexandre Julliard afa4315507 Removed a dependency between oleaut32 and comctl32. 2000-01-12 05:01:02 +00:00
Alexandre Julliard b7c84d3b22 Authors: Chris Morgan <cmorgan@wpi.edu>, James Abbatiello <abbeyj@wpi.edu>
Implemented WM_SIZE message support. Optimized drawing to use
precalculated size values rather than recalculating during each call
of MONTHCAL_Refresh.
2000-01-04 00:30:21 +00:00
Alexandre Julliard 0bb2e5ab01 Authors: Chris Morgan <cmorgan@wpi.edu>, James Abbatiello <abbeyj@wpi.edu>
Implemented current day circling.  Fixed many bugs in the month
calender control including control spacing and alignment.  Fixed
defines monthcal.h.  Optimized control drawing and removed many
extranious redraws.  Improved control behavior.  Fixed inconsistent
formatting in both .c and .h files.
1999-11-21 02:04:09 +00:00
Patrik Stridvall 0e38aa7fda Various ANSI C compability fixes. 1999-07-31 17:34:43 +00:00
Patrik Stridvall 26ffb3cd76 Fixed/added missing/wrong function prototypes and made internal
functions static.
1999-07-31 14:41:43 +00:00
Alex Priem d144e4a35b Bugfixes & further updates for the month calendar common control. 1999-07-31 11:13:25 +00:00
Alex Priem b2e91b6a19 First try at the month calendar common control. Main features
basically OK.
1999-07-10 12:00:04 +00:00
Alexandre Julliard a099a555c3 Converted to the new debug interface, using script written by Patrik
Stridvall.
1999-06-12 15:45:58 +00:00
Patrik Stridvall 9e61c1cc9b Changed xxx(VOID) to xxx(void). 1999-06-12 08:27:49 +00:00
Patrik Stridvall b4b9fae671 New debug scheme with explicit debug channels declaration. 1999-04-19 14:56:29 +00:00
Marcus Meissner 3480e4a596 Removed no longer necessary win.h include, added now necessary other
includes (win.h used only by UPDOWN now).
1999-03-16 10:53:11 +00:00
Eric Kohl cad17ff708 Replaced direct access to the WND structure by corresponding calls to
Win32 functions.
1999-03-12 17:42:50 +00:00
Alexandre Julliard a396029270 Large-scale renaming of all Win32 functions and types to use the
standard Windows names.
1999-02-26 11:11:13 +00:00
Marcus Meissner 317af320cf Optimized include/*.h: (recursively) include all headers needed by
this .h file, but only those. Necessary fixes to a lot of .c files,
started optimizing "windows.h" away from some of them. Moved
GetCurrentTask prototype to wine/winbase16.h.
1999-02-17 13:51:06 +00:00
Eric Kohl a867030e6b New Files. Added 'date and time picker' and 'month calendar' control
dummies. They are used by Outlook Express.
1998-11-08 11:30:27 +00:00