Commit Graph

51 Commits

Author SHA1 Message Date
Darkvater
a518ecbabb (svn r7410) -Codechange/Fix: Remove useless and unfollowable programmatic-resize, and implement it
in a sane way. Correctly specify resize flags for windows and only manually change the
 widgets that the resize system cannot handle (eg centering). This changes r6562, and
 probably some other commits
2006-12-07 00:51:20 +00:00
Darkvater
8c3da77145 (svn r7403) -Codechange (r7386, r7385): Use available functions to find a window instead of doing
some cruft yourself (and wrongly typing non-const as const).
2006-12-06 17:31:16 +00:00
bjarni
230b6fd08e (svn r7390) -Codechange r7386: only loop though the windows to find a depot window to unhighlight a vehicle in if there is a vehicle on the mouse pointer 2006-12-06 00:03:24 +00:00
bjarni
4adc6ba4f8 (svn r7386) -Codechange r7385: moved deletion of the vehicle highlight from DeleteVehicle to the sell commands as they are not called as often
Also added a return to the window loop prevent looking at the rest of the windows once the right depot window is found
2006-12-05 22:59:42 +00:00
bjarni
686a0d7750 (svn r7385) -Fix: FS#418 Deleting Train in depot with autoreplace failes
This turned out to be due to continue to drag the old vehicle, that autoreplace sold
  This could also be triggered if more than one player used the same company
  Now deleting a vehicle will remove all depot highlights of that vehicle
2006-12-05 22:40:42 +00:00
Darkvater
53f954edd3 (svn r7206) -Codechange: Remove (some of) the magic needed for windows that could be invalid after
a call to DeleteWindow() somewhere else. Also do some cleanup with AllowWindowDescFront()
2006-11-18 17:04:44 +00:00
Darkvater
21db9ebb8e (svn r7129) -Codechange: Get rid of a global variable that only sets a window's number. 2006-11-11 09:47:44 +00:00
Darkvater
d50f6c8a8c (svn r7128) -Codechange: Replace magic numbers by magic enums (windowdesc positioning WDP_AUTO = -1) 2006-11-10 19:24:14 +00:00
glx
bdd86c7da2 (svn r6971) -Fix r6961: WWT_NODISTXTBTN buttons were normal buttons not push buttons 2006-10-27 20:39:58 +00:00
Darkvater
b3050afc94 (svn r6962) -Fix r6961: spacing... 2006-10-27 13:58:58 +00:00
Darkvater
64a2205517 (svn r6961) -Codechange: Remove relic from r212 WWT_NODISTXTBTN which was originally used to not
to allow clicking if a button was disabled. This has been superseded in r212 with
 general code that doesn't allow any click events for disabled buttons.
2006-10-27 13:48:56 +00:00
Darkvater
d303ef94b3 (svn r6925) -Codechange: Be more strict with widget distinctions. WWT_PANEL is only plain panel,
WWT_IMGBTN must contain an image for drawing. Renamed WWT_PANEL_2 to WWT_IMGBTN_2
 because that is what it is. Added WWT_PUSHBTN that is either just a pushable button,
 or a textbutton, which text's drawn dynamically independent of widget.
2006-10-24 14:15:17 +00:00
Darkvater
1204eeacfe (svn r6922) -Feature: Add proper cloning sprites and cursors, different for each vehicle. Big thanks
to MB for the initial design and skidd13 for the iconified version(s).
-Codechange: Change the autorenew sprites from recycle to upgrade (skidd13)
-Codechange: Change the shared orders icon (MeusH)
-Add missing table/files.h file to VS project file.
2006-10-24 12:56:14 +00:00
bjarni
ba2be75c0c (svn r6722) -Codechange: [aircraft build window] moved aircraft build window to a file of it's own
Also made some changes to it so it should be easier to unify all the build vehicle windows
2006-10-10 15:02:38 +00:00
bjarni
92c6cbbe67 (svn r6719) -Code cleanup: [depot window] removed line that assigned 0 to a var, that's already 0 2006-10-10 10:11:41 +00:00
bjarni
7311b305e8 (svn r6718) -Codechange: added function to get the line height for a vehicle type
-Fix r6513: [depot window] fixed incorrect line height for large ships
-Fix r6513: [depot window] fixed incorrect resizing of the sell button
2006-10-10 10:04:09 +00:00
peter1138
6b96a3aadc (svn r6685) -Fix (r6672): Hide the 'sell chain' panel instead of the horizontal scroll bar twice... 2006-10-08 08:04:40 +00:00
bjarni
f640eb7302 (svn r6677) -Codechange r6651: [depot window] disabled the check for the correct cache in the depot window
Nobody had problems so far, so we can assume that InvalidateWindowData() is used everywhere where it's needed
   The check is just disabled, not deleted so it's quick to reenable if we change some code and wants to  check this again
2006-10-07 08:39:34 +00:00
bjarni
b4974b9d7d (svn r6676) -Fix: [vehicle list windows] mass start/stop now works correctly in shared orders and station lists 2006-10-07 08:24:11 +00:00
bjarni
ac0bada035 (svn r6673) -Codechange: [depot window] replaced a piece of code to calculate max number of vehicles in a row with a simple read of the matrix grid 2006-10-06 22:08:37 +00:00
bjarni
13918e7cc9 (svn r6672) -Codechange: [depot & vehicle windows] applied SetWindowWidgetsDisabledState() and SetWindowWidgetsHiddenState() to depot and vehicle windows 2006-10-06 21:44:18 +00:00
bjarni
592ed98a19 (svn r6668) -Codechange: [depot window] simplified the engine drawing loop in the depot window 2006-10-06 10:16:47 +00:00
bjarni
116bca1fc0 (svn r6657) -Change: [depot window] sell all vehicles in depot confirm window now opens on top of depot window instead of in the middle of the screen 2006-10-05 23:10:58 +00:00
bjarni
e341cc1e49 (svn r6652) -Feature: [depot window] depot lists are now sorted, so vehicle 1 is always first and so on
This should not be a big slowdown as it's only called each time the list is generated and will normally be much faster than the list generation itself (only a small % of the total number of vehicles is in the depot)
2006-10-05 13:11:17 +00:00
bjarni
ea075f78e0 (svn r6651) -Coding feature: added the windowevent WE_INVALIDATE_DATA
This gives the ability to invalidate some window data and recalculate as needed instead of doing it for each WE_PAINT

   This event is called right away when using InvalidateWindowData(), so it may be a good idea to set a bool or similar in the window
     or similar and then act on that bool in WE_PAINT instead of doing a lot of stuff in WE_INVALIDATE_DATA as it might be called more than once before WE_PAINT is called

   InvalidateWindowData() will not automatically repaint the window, so if you want to repaint it as well, you need to mark it dirty as well.

   Made the depot windows use WE_INVALIDATE_DATA to set when to generate the engine and wagon lists instead of at each redraw
   It makes no sense to regenerate the list when say using the scrollbar if we know that no vehicle have entered or left the list

   NOTE: currently there is a piece of code to generate the list when it's not needed and compare it to the stored list and assert if they mismatch
    This check is somewhat slow and kills the whole idea of WE_INVALIDATE_DATA, so it's a short lived one to verify that InvalidateWindowData() is used everywhere where it's needed
2006-10-05 12:59:28 +00:00
belugas
7606b2707d (svn r6645) -Fix(r6631): Forgot two click_state occurences 2006-10-05 02:29:01 +00:00
belugas
17eb65050b (svn r6631) -Codechange: Use accessors for click_state.
Another step toward merging XTDwidget.
The only two files not converted (window.h and widget.c) will be done at the very last commit)
2006-10-03 20:16:20 +00:00
belugas
753b572400 (svn r6619) -Codechange: Use accessors for disabled_state.
Another step toward merging XTDwidget.
The only two files not converted (window.h and widget.c) will be done at the very last commit)
2006-10-03 02:08:15 +00:00
belugas
2c45339e0a (svn r6612) -Codechange: Use accessors for hidden_state.
Another step toward merging XTDwidget.
The only two files not converted (window.h and widget.c) will be done at the very last commit)
2006-10-02 00:28:31 +00:00
peter1138
1756a48b7d (svn r6609) - Move the mass stop/start buttons of the depot window to the bottom row, to match all other vehicle list windows, and make it look a bit neater, (Suggested by skidd13) 2006-10-01 16:02:29 +00:00
bjarni
8deaef7faf (svn r6595) -Fix r6542: [depot window] clicking sell all in a depot with no vehicles will now do nothing at all (instead of opening the confination window) (spotted by glx) 2006-09-30 23:53:35 +00:00
bjarni
37ddda749a (svn r6593) -Fix: [depot window] added sprites to the buttons, that lacked one
Also changed the sprites on some of the other buttons to make the buttons consistent
   Credits for this:
   Drawing: skidd13 (first sprite copied/heavily inspired by Bot_40)
   Grfencoding: peter1138
   Coding to apply the new sprites: peter1138 (modified by me)   
   Ideas:
    Born Acorn
    MeusH
    ValHallA|SW
    XeryusTC
  Sorry if I forgot to mention somebody
2006-09-30 21:23:34 +00:00
bjarni
3cfa76f0c5 (svn r6591) -Codechange: changed strings that used the word "depot" into one for each vehicle type
This is a request from translators as depot is not valid for all vehicle types in all translations
   This will cause a lot of warnings when generating the lang files. MiHaMiX will fix them in a moment (hopefully)
2006-09-30 20:59:23 +00:00
bjarni
f91c43d792 (svn r6586) -Feature: [depot window] added a vehicle list window with all vehicles having a certain depot in their orders
It got one known issue though. The top bar got a plural issue so expect to see stuff like "1 trains" until we figure out why it behaves this way
  Added the button to the depot windows. Made the autoreplace button bigger while I was moving some widgets anyway
  Made road vehicle depot windows start with one more row to make room for the buttons
2006-09-30 13:39:34 +00:00
bjarni
1e754ea0ae (svn r6567) -Fix r6542: [depot window] solved an issue where the confimation window sometimes failed to close (spotted by MacLir)
Also changed the colours of the confimation window. Hopefully it looks better now even though I'm still not really happy with it
2006-09-29 07:54:28 +00:00
bjarni
4ccdb0686f (svn r6562) -Codechange: merged the vehicle list window widget arrays
It made no sense to maintain 8 nearly identically arrays when a single one can do the job
  Also made the two buttons always use half of the bottom width each, even when resizing
2006-09-28 23:05:03 +00:00
bjarni
1ae8aa4b80 (svn r6561) -Fix r6513: [depot window] fixed an off by one error, that caused planes and ships to be drawn one pixel lower for each row 2006-09-28 19:56:29 +00:00
bjarni
8c60a183a0 (svn r6554) -Fix r6513: [depot window] fixed a bug where moving rail vehicles from one line to another could fail under certain conditions 2006-09-28 15:41:53 +00:00
bjarni
371f080182 (svn r6552) -Feature: [depot window] added a "autoreplace all vehicles in depot" button
Like the "sell all" button, this one lacks a sprite as well. We will hopefully get one shortly
2006-09-28 14:17:08 +00:00
bjarni
2579b68e34 (svn r6542) -Feature: [depot window] added a "sell all vehicles in depot" button
It's right below the sell button (sell whole chain button for trains)
   It's still missing a sprite. That one will be added as soon as anybody draws something we can use
   To make room for this button, all depots except train depots now opens with an additional row and can't be resized shorter than that
2006-09-27 22:44:39 +00:00
bjarni
80abdad221 (svn r6530) -Fix r6529: added missing header file (oops) 2006-09-27 15:47:00 +00:00
bjarni
fcc39c454a (svn r6529) -Fix r6513: [depot window] added missing switch in CcCloneVehicle()
The result of this missing switch was asserts in some cloning conditions (not all) (spotted by KUDr)
2006-09-27 15:40:55 +00:00
bjarni
9c3e526631 (svn r6528) -Fix r6527: fixed an off by one error in an assert 2006-09-27 15:28:47 +00:00
bjarni
c256566715 (svn r6527) -Codechange: [depot window] added asserts to ensure that widget names, widget array and array of resize info stays the same length
Really bad stuff will happen if one of them contains a different number of widgets ;)
   This is meant as a protection against incorrect additions of code rather than verifying that the current code works
2006-09-27 14:05:15 +00:00
bjarni
07500c2d69 (svn r6526) -Codechange: [depot window] the train only widgets are now resized depending on the size of other widgets
This will ensure that say the horizontal scrollbar is as wide as the matrix even if only the matrix is altered in size
   This is meant to make it easier to add more widgets without coding a lot of vehicle type specific stuff (you should still check all windows though)
2006-09-27 13:53:59 +00:00
bjarni
bec42d93d0 (svn r6525) -Codechange r6513: altered how to control how to move widgets around in the window. Hopefully it's a bit easier to understand now 2006-09-27 13:01:56 +00:00
bjarni
2cab6db18c (svn r6522) -Feature: [depot window] the buttons are now "scaled" resized
This means that "Build vehicle", "Clone vehicle" and "Location" will always fill the space from the left window border to the resize button and they are equal in size
   The sell button will also use all the space between the start/stop buttons and the resize button and for trains, the sell button is split into two buttons in equal sizes
   This will prevent the issue where a small window is resized into a large one and the buttons remains pretty small
-Codechange: [depot window] The enum with widget names is now changed into automatic numbering so all lines will not have to be changed each time a new widget is added
2006-09-27 11:34:27 +00:00
bjarni
6f9cd66d91 (svn r6520) -Fix r6515: "start all" and "stop all" buttons in depot windows are now disabled if you do not own the depot 2006-09-27 08:45:22 +00:00
bjarni
d88e1a218e (svn r6516) -Fix r6513: killed warnings about two variables being used uninitialized
This is not even correct since it's set in if (a) and later used in another if (a), but GCC didn't detect that
2006-09-27 00:25:27 +00:00
bjarni
1d554da2fc (svn r6515) -Feature: added "start all" and "stop all" buttons to the depot windows 2006-09-26 19:20:35 +00:00