154 Commits

Author SHA1 Message Date
Torbjörn Andersson
6358547a43 More whitespace changes.
svn-id: r23496
2006-07-14 13:33:58 +00:00
Torbjörn Andersson
50673f9f1f The top dialog can change during the event loop. In that case, flush all the
dialog-related events since they were probably generated while the old dialog
was still visible, and therefore note intended for the new one.

This hopefully fixes strange behaviour/crashes with pop-up widgets. (Most easy
to trigger in 3x mode or when running ScummVM under Valgrind.)

svn-id: r23141
2006-06-16 06:26:26 +00:00
Johannes Schickel
84b54c3173 - Adds 'THEME_HINT_NO_BACKGROUND_RESTORE' for buttons which don't want restored background (example: the tab scrolling buttons).
- Call _theme->drawAll() at the end of the redraw method of NewGui

svn-id: r23134
2006-06-15 14:25:59 +00:00
Torbjörn Andersson
3728e96b17 Disable the theme before restoring the cursor, not afterwards. Otherwise there
may be a noticeable amount of time (disabling the theme can be comparatively
slow) where the cursor is wrong.

svn-id: r23082
2006-06-13 09:57:16 +00:00
Johannes Schickel
15aee485ea - Removes (obsolete) USE_AUTO_SCALE define
- typo fix

svn-id: r22987
2006-06-08 19:43:37 +00:00
Max Horn
76116f36dd *Loads* of Common::String related optimizations. Woa, *tons* of methods were copying strings needlessly
svn-id: r22873
2006-06-03 13:33:39 +00:00
Torbjörn Andersson
ca84620745 When the screen changes, redraw all dialogs *immediately* rather than waiting
for the main loop to check for _needRedraw. Otherwise subsequent events can
cause widgets to be redrawn before the theme has had a chance to re-open the
dialogs, and this could cause at least the modern theme to crash.

svn-id: r22860
2006-06-03 10:48:37 +00:00
Torbjörn Andersson
7f1eafea96 Don't "tickle" a dialog until after it has had a chance to redraw itself,
otherwise it may be in an inconsistent state since the modern theme uses
openDialog() to allocate a surface as large as he dialog itself.

This fixes a crash when changing to a bigger scaler when the About dialog is
running.

svn-id: r22688
2006-05-27 22:57:00 +00:00
Eugene Sandulenko
b56c7b88d7 Major GUI update:
- Implemented padding in console
- Update only current line in console instead of whole screen
- Fixed caret positioning in edit text widget
- Improved buttons drawing, now they look more realistic
- Added label spacing in popup widget
- Correct shadow in popup widget
- Fixed up with selected popup widget being drawn on wrong tab
- Added shading to list dialog
- Adjusted shading of inactive widgets
- Proper coloring of browset (add game) dialog
- Introduced Container widget
- Used Container widget in scumm save/load dialog. Now it looks properly
- Adjusted button colors even more. Now they match almost perfectly albeit with banding
- Made scrollbar appear only when it is really needed

svn-id: r22670
2006-05-27 05:46:04 +00:00
Torbjörn Andersson
79819da301 The GUI never asked for the cursor to be visible. I'm not sure why that used to
work before the cursor manager. Oh well, the launcher should have a visible
cursor again, knock on wood.

svn-id: r22641
2006-05-25 23:20:35 +00:00
Torbjörn Andersson
8062eb6ec3 Set and show/hide mouse cursors through a "cursor manager" (analogous to the
recently added (cursor) palette manager) so that the cursor can be properly
restored after returning from the GUI.

If there's any C++ magic that can keep the backend functions from being called
by anything else than these managing classes, that would probably be a good
idea. Also, since the cursor manager keeps a copy of the cursor image, perhaps
there are at least some backends that will no longer need to?

svn-id: r22639
2006-05-25 22:51:42 +00:00
Torbjörn Andersson
6cdd98b617 After the GUI has finished, restore the old cursor palette (if any). For this
to work, cursor palette now has to be set using the new "palette manager". See
graphics/paletteman.cpp

svn-id: r22543
2006-05-20 10:59:25 +00:00
Torbjörn Andersson
22fb1e48ef Set a cursor palette for the classic theme, as well. Otherwise we'll get the
wrong colours in many games.

svn-id: r22540
2006-05-20 08:29:50 +00:00
Johannes Schickel
9e734b0851 Adds handleScreenChanged() to NewGui, so (scumm) engine can call it when it recives a EVENT_SCREEN_CHANGED.
svn-id: r22025
2006-04-19 06:22:15 +00:00
Johannes Schickel
0a767b6467 Implements custom cursor support for the new theme and includes a standard cursor (it should be replaced though).
svn-id: r22019
2006-04-19 03:17:00 +00:00
Johannes Schickel
30787714d3 Started to prepare the gui for runtime resolution switches.
(some little things could be missing yet though)

svn-id: r22017
2006-04-19 01:05:28 +00:00
Eugene Sandulenko
5daa835cc7 - PopUpWidget (drop down list) does not shadow underlying dialog anymore
- Remove reduntant code in drawing pipeline. Topmost dialog was drawn
  up to 4 times

svn-id: r21998
2006-04-18 00:37:04 +00:00
Johannes Schickel
b99632831f This should fix wrong colors of the scummvm logo in the new theme after screen change.
svn-id: r21953
2006-04-16 20:33:52 +00:00
Max Horn
1eb526f71a Instead of calling our main them 'default-theme', call it 'modern' and reserve the gui theme name 'default' to indicate, well, the *default* theme, whatever that is
svn-id: r21887
2006-04-14 13:20:39 +00:00
Max Horn
9217472f0e With this change, backends are now responsible for instantiating their OSystem class before calling scummvm_main (Note: PalmOS and Symbian are not yet converted, and won't work currently)
svn-id: r21557
2006-04-02 14:16:31 +00:00
Johannes Schickel
d0b8efd575 - moves some code in ThemeNew.cpp (calcGradient and calcAlpha to the bottom)
- added possibility to use a shading effect on inactive dialogs (luminance and dim are builtin, and special ablility to specifiy a own expression, evaluated via the evaluator)
- adds also a color cache (atm it's generated on startup)
- uses luminance effect by default
- bumps theme config version to 7

svn-id: r21544
2006-04-02 00:56:21 +00:00
Eugene Sandulenko
7569f796ec Fix crash in Options dialog in 320xY mode. Shadow was drawn off-screen
svn-id: r21438
2006-03-24 18:10:41 +00:00
Max Horn
08ad918af6 Reduce (indirect) dependencies on gui/eval.h (and thus common/assocarray.h) to a minimum
svn-id: r21426
2006-03-24 14:15:45 +00:00
Eugene Sandulenko
dabcc4cc9b Check values loaded from theme INI and give meaningful errors instead of
bad crashes on blitting stage.

svn-id: r21422
2006-03-24 01:45:03 +00:00
Eugene Sandulenko
c3f91ca288 Converted all scumm dialogs to new scheme
svn-id: r21147
2006-03-09 01:08:25 +00:00
Eugene Sandulenko
1eff73cb41 GUI widget positions:
o Add 'true' and 'false' constants
o add .visible widget property
o allow dots to be part of section and key names in configs

svn-id: r21123
2006-03-07 13:41:36 +00:00
Eugene Sandulenko
018c93b14a More work on customizable GUI.
o Implemented special alias 'prev'
o Added new calling scheme to several widgets
o Partially converted launcher dialog to new scheme
o Converted couple widgets of chooser dialog

svn-id: r21118
2006-03-07 05:39:52 +00:00
Lars Persson
d91b49c15c Added define to disable new theme support.
svn-id: r20676
2006-02-13 21:02:31 +00:00
Max Horn
b34e207dbb Change CVS keywords to SVN keywords
svn-id: r20518
2006-02-11 10:08:56 +00:00
Paweł Kołodziejski
2ebdbbf5e0 fixes allow compile with emsvc4 again
svn-id: r20355
2006-02-03 07:30:29 +00:00
Johannes Schickel
5051b080a2 - adds the new gui renderer also a new implementation for the classic gui
- adds a ImageMan and ImageDec class for loading and managing image files
 - adds a loader for zip files which is used by the new theme and the image manager
 - changes the widgets to use the new gui code
 - changes the scumm dialogs to use the new gui code
 - fixes a #include problem in the sky debugger with the new gui code

 To use the new gui copy gui/themes/default-theme.zip to your extrapath.
If the theme zip can not be found the gui will fallback to the classic theme.
If you want to change the gui styles use "gui_theme=classic" for the classic theme
and "gui_theme=default-theme" for the new theme.

Thanks to eriktorbjorn for testing and help with the new theme and to sev for
reviewing this patch.

svn-id: r20227
2006-01-27 15:43:23 +00:00
Eugene Sandulenko
ea42bad781 Update copyright notice
svn-id: r20088
2006-01-18 17:39:49 +00:00
Chris Apers
64bfec97d9 Not needed anymore :)
svn-id: r19735
2005-12-03 19:04:33 +00:00
Eugene Sandulenko
b36677af71 Update FSF address. Eek. Actually that took place on May 1, 2005
svn-id: r19142
2005-10-18 01:30:26 +00:00
Chris Apers
da5ec1c1fb PalmOS : ARM optimized blendRect
svn-id: r18749
2005-09-03 16:26:00 +00:00
Eugene Sandulenko
6b4484472b Remove trailing whitespaces.
svn-id: r18604
2005-07-30 21:11:48 +00:00
Max Horn
8b1d7b9166 When including files from common/, explicitly use the common/ prefix
svn-id: r18444
2005-06-24 15:23:51 +00:00
Lars Persson
1c69696a9a Patches needed to build for SYMBIAN32 WINS/GCC added.
Test built for Symbian and run on P910i without any major problems.
Test built for MSVC6. Changed parts seems to compile ok but there are some problems with MSVC6 and some of the targets which the EPOC build does n't support (KYRA,SAGA).

svn-id: r18430
2005-06-21 22:08:21 +00:00
Torbjörn Andersson
63984c3a23 The alternative form of drawString() is no longer needed.
svn-id: r18326
2005-06-03 13:09:24 +00:00
Torbjörn Andersson
bf89c8a4b9 The GUI has reached the point where I think it's safe to begin removing the
old auto-scaling hack. Removed wantsScaling(), USE_AUTO_SCALING,
_scaleFactor and _scaleEnable.

Also removed drawBitmap() since we no longer use bitmaps for widget
decorations.

svn-id: r18310
2005-06-02 12:29:01 +00:00
Torbjörn Andersson
801db4a515 Added big editable text widget, and removed some cruft. I think this means
that all our widgets are able to scale themselves now, but I could be
mistaken.

svn-id: r18192
2005-05-20 15:03:26 +00:00
Max Horn
f2646d3e53 Turn off auto scaling for now
svn-id: r18114
2005-05-15 17:59:27 +00:00
Max Horn
2425e657a2 Add a switch which allows turning off the automatic GUI scaling easily
svn-id: r18112
2005-05-15 17:08:44 +00:00
Torbjörn Andersson
8e7c4ffa37 Quick fix to make button texts etc. draw at the correct position. (They
were being drawn at unscaled coordinates.) I don't know if this is the
correct fix, but the change is small and easy to revert, if need be.

svn-id: r18072
2005-05-12 15:46:03 +00:00
Max Horn
cca744f69a Comply to our coding conventions
svn-id: r17975
2005-05-08 21:49:52 +00:00
Max Horn
25d56525c8 Replace OSystem::hasAlpha with a feature flag
svn-id: r17695
2005-04-19 20:35:48 +00:00
Max Horn
919af98314 Added Dialog::wantsScaling(), to allow dialogs to turn off automatic scaling
svn-id: r17646
2005-04-17 11:20:59 +00:00
Max Horn
7aebedcc14 Patch #1183808 (GUI: Less CPU-intensive credits scroll), with some tweaks by me
svn-id: r17620
2005-04-16 11:40:15 +00:00
Marcus Comstedt
d2214dca99 Use alpha channel if available.
svn-id: r17354
2005-04-03 19:41:20 +00:00
Eugene Sandulenko
a9c2e6ecbf MM NES fixes:
o Fixed crash when in-game GUI was displayed
  o Support for save/load
  o Savegame version bumped

svn-id: r17232
2005-03-25 22:11:08 +00:00