window_func.h File Reference

Window functions not directly related to making/drawing windows. More...

#include "window_type.h"
#include "company_type.h"

Go to the source code of this file.

Functions

WindowFindWindowById (WindowClass cls, WindowNumber number)
 Find a window by its class and window number.
WindowFindWindowByClass (WindowClass cls)
 Find any window by its class.
void ChangeWindowOwner (Owner old_owner, Owner new_owner)
 Change the owner of all the windows one company can take over from another company in the case of a company merger.
void ResizeWindow (Window *w, int x, int y)
 Resize the window.
int PositionMainToolbar (Window *w)
 (Re)position main toolbar window at the screen
int GetMainViewTop ()
 Return the top of the main view available for general use.
int GetMainViewBottom ()
 Return the bottom of the main view available for general use.
void InitWindowSystem ()
 (re)initialize the windowing system
void UnInitWindowSystem ()
 Close down the windowing system.
void ResetWindowSystem ()
 Reset the windowing system, by means of shutting it down followed by re-initialization.
void SetupColoursAndInitialWindow ()
void InputLoop ()
 Regular call from the global game loop.
void InvalidateWindowData (WindowClass cls, WindowNumber number, int data=0)
 Mark window data of the window of a given class and specific window number as invalid (in need of re-computing).
void InvalidateWindowClassesData (WindowClass cls, int data=0)
 Mark window data of all windows of a given class as invalid (in need of re-computing).
void DeleteNonVitalWindows ()
 Try to delete a non-vital window.
void DeleteAllNonVitalWindows ()
 It is possible that a stickied window gets to a position where the 'close' button is outside the gaming area.
void DeleteConstructionWindows ()
 Delete all windows that are used for construction of vehicle etc.
void HideVitalWindows ()
 Delete all always on-top windows to get an empty screen.
void ShowVitalWindows ()
void ReInitAllWindows ()
 Re-initialize all windows.
void SetWindowWidgetDirty (WindowClass cls, WindowNumber number, byte widget_index)
 Mark a particular widget in a particular window as dirty (in need of repainting).
void SetWindowDirty (WindowClass cls, WindowNumber number)
 Mark window as dirty (in need of repainting).
void SetWindowClassesDirty (WindowClass cls)
 Mark all windows of a particular class as dirty (in need of repainting).
void DeleteWindowById (WindowClass cls, WindowNumber number, bool force=true)
 Delete a window by its class and window number (if it is open).
void DeleteWindowByClass (WindowClass cls)
 Delete all windows of a given class.

Detailed Description

Window functions not directly related to making/drawing windows.

Definition in file window_func.h.


Function Documentation

void ChangeWindowOwner ( Owner  old_owner,
Owner  new_owner 
)

Change the owner of all the windows one company can take over from another company in the case of a company merger.

Do not change ownership of windows that need to be deleted once takeover is complete

Parameters:
old_owner original owner of the window
new_owner the new owner of the window

Definition at line 730 of file window.cpp.

References Window::owner, and Window::window_class.

void DeleteAllNonVitalWindows (  ) 

It is possible that a stickied window gets to a position where the 'close' button is outside the gaming area.

You cannot close it then; except with this function. It closes all windows calling the standard function, then, does a little hacked loop of closing all stickied windows. Note that standard windows (status bar, etc.) are not stickied, so these aren't affected

Definition at line 2437 of file window.cpp.

References DeleteNonVitalWindows(), Window::flags4, and WF_STICKY.

Referenced by GenerateWorld(), and MainWindow::OnKeyPress().

void DeleteConstructionWindows (  ) 

Delete all windows that are used for construction of vehicle etc.

Once done with that invalidate the others to ensure they get refreshed too.

Definition at line 2460 of file window.cpp.

References Window::desc_flags, Window::SetDirty(), and WDF_CONSTRUCTION.

Referenced by SetLocalCompany().

void DeleteNonVitalWindows (  ) 

Try to delete a non-vital window.

Non-vital windows are windows other than the game selection, main toolbar, status bar, toolbar menu, and tooltip windows. Stickied windows are also considered vital.

Definition at line 2409 of file window.cpp.

References Window::flags4, WF_STICKY, and Window::window_class.

Referenced by DeleteAllNonVitalWindows(), and MainWindow::OnKeyPress().

void DeleteWindowByClass ( WindowClass  cls  ) 
void DeleteWindowById ( WindowClass  cls,
WindowNumber  number,
bool  force 
)
Window* FindWindowByClass ( WindowClass  cls  ) 

Find any window by its class.

Useful when searching for a window that uses the window number as a WindowType, like WC_SEND_NETWORK_MSG.

Parameters:
cls Window class
Returns:
Pointer to the found window, or NULL if not available

Definition at line 657 of file window.cpp.

References Window::window_class.

Referenced by Window::InitializeData().

Window* FindWindowById ( WindowClass  cls,
WindowNumber  number 
)

Find a window by its class and window number.

Parameters:
cls Window class
number Number of the window within the window class
Returns:
Pointer to the found window, or NULL if not available

Definition at line 641 of file window.cpp.

References Window::window_class, and Window::window_number.

Referenced by BringWindowToFrontById(), ChangeVehicleWindow(), DeleteDepotHighlightOfVehicle(), DeleteWindowById(), SmallMapWindow::DrawMapIndicators(), StatusBarWindow::DrawWidget(), FindVehicleGroupWindow(), Window::FindWindowPlacementAndResize(), GenerateWorld(), GenericPlaceSignals(), GetLobbyCompanyInfo(), GetMainViewBottom(), GetMainViewTop(), GetToolbarAlignedWindowPosition(), HandleAutoSignalPlacement(), HandleKeypress(), Window::InitializeData(), IsNewsTickerShown(), LocalGetWindowPlacement(), NetworkContentDownloadStatusWindow::NetworkContentDownloadStatusWindow(), ExtraViewportWindow::OnClick(), VehicleViewWindow::OnClick(), SmallMapWindow::OnClick(), NetworkChatWindow::OnInitialPosition(), ErrmsgWindow::OnInitialPosition(), ScenarioEditorToolbarWindow::OnInvalidateData(), MainToolbarWindow::OnInvalidateData(), NetworkContentListWindow::OnInvalidateData(), NetworkChatWindow::OnKeyPress(), QueryStringWindow::OnKeyPress(), DropdownWindow::OnMouseLoop(), BuildRailToolbarWindow::OnPlaceDrag(), PositionMainToolbar(), ReadyForNextItem(), ReinitGuiAfterToggleElrail(), RelocateAllWindows(), ResetSignalVariant(), ScrollMainWindowTo(), SetDefaultRailGui(), ShowBuildRailToolbar(), ShowLastNewsMessage(), StationJoinerNeeded(), UpdateOSKOriginalText(), and VpHandlePlaceSizingDrag().

int GetMainViewBottom (  ) 

Return the bottom of the main view available for general use.

Returns:
The vertical coordinate of the first unusable row, so 'top + height <= bottom' gives the correct result.
Note:
At and below the bottom y coordinate is often the status bar.

Definition at line 1448 of file window.cpp.

References FindWindowById(), and Window::top.

Referenced by TooltipsWindow::OnInitialPosition(), ErrmsgWindow::OnInitialPosition(), and ShowDropDownList().

int GetMainViewTop (  ) 

Return the top of the main view available for general use.

Returns:
Uppermost vertical coordinate available.
Note:
Above the upper y coordinate is often the main toolbar.

Definition at line 1438 of file window.cpp.

References FindWindowById(), Window::height, and Window::top.

Referenced by TooltipsWindow::OnInitialPosition(), ErrmsgWindow::OnInitialPosition(), and ShowDropDownList().

void InvalidateWindowClassesData ( WindowClass  cls,
int  data 
)
void InvalidateWindowData ( WindowClass  cls,
WindowNumber  number,
int  data 
)

Mark window data of the window of a given class and specific window number as invalid (in need of re-computing).

Parameters:
cls Window class
number Window number within the class
data The data to invalidate with

Definition at line 2364 of file window.cpp.

References Window::InvalidateData(), Window::window_class, and Window::window_number.

Referenced by AddRemoveEngineFromAutoreplaceAndBuildWindows(), Subsidy::AwardTo(), ChangePopulation(), CmdAddSharedVehicleGroup(), CmdAddVehicleGroup(), CmdBuildAircraft(), CmdBuildAirport(), CmdBuildBuoy(), CmdBuildDock(), CmdBuildRailStation(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildRoadStop(), CmdBuildRoadVeh(), CmdBuildShip(), CmdCompanyCtrl(), CmdConvertRail(), CmdCreateGroup(), CmdDeleteGroup(), CmdMoveRailVehicle(), CmdPlaceSign(), CmdRefitRoadVeh(), CmdRemoveAllVehiclesGroup(), CmdRenameGroup(), CmdRenameSign(), CmdRenameStation(), CmdRenameTown(), CmdSellRailWagon(), CmdSetCompanyColour(), CmdSetGroupReplaceProtection(), DeleteStationIfEmpty(), DoCreateTown(), StatusBarWindow::DrawWidget(), IndustryDailyLoop(), InvalidateAutoreplaceWindow(), InvalidateVehicleOrder(), AILog::Log(), MoveToNextItem(), NewGRFAddWindow::OnClick(), GraphLegendWindow::OnClick(), MainWindow::OnInvalidateData(), Town::PostDestructor(), BaseStation::PostDestructor(), Industry::PostDestructor(), Company::PostDestructor(), Vehicle::PreDestructor(), ReloadNewGRFData(), RemoveBuoy(), Vehicle::RemoveFromShared(), SaveFileDone(), SaveFileStart(), SetLocalCompany(), ShowTicker(), AI::StartNew(), AI::Stop(), UpdateNetworkGameWindow(), Waypoint::UpdateVirtCoord(), VehicleEnter_Track(), NetworkClientInfo::~NetworkClientInfo(), NetworkContentDownloadStatusWindow::~NetworkContentDownloadStatusWindow(), and Station::~Station().

int PositionMainToolbar ( Window w  ) 

(Re)position main toolbar window at the screen

Parameters:
w Window structure of the main toolbar window, may also be NULL
Returns:
X coordinate of left edge of the repositioned toolbar window

Definition at line 2506 of file window.cpp.

References _settings_client, FindWindowById(), ClientSettings::gui, Window::height, Window::left, SetDirtyBlocks(), GUISettings::toolbar_pos, Window::width, and Window::window_class.

Referenced by RelocateAllWindows().

void ReInitAllWindows (  ) 
void ResizeWindow ( Window w,
int  delta_x,
int  delta_y 
)

Resize the window.

Update all the widgets of a window based on their resize flags Both the areas of the old window and the new sized window are set dirty ensuring proper redrawal.

Parameters:
w Window to resize
delta_x Delta x-size of changed window (positive if larger, etc.)
delta_y Delta y-size of changed window

Definition at line 1414 of file window.cpp.

References _dynlang, NWidgetBase::AssignSizePosition(), NWidgetBase::current_x, NWidgetBase::current_y, Window::height, max(), Window::nested_root, Window::OnResize(), NWidgetBase::resize_x, NWidgetBase::resize_y, Window::SetDirty(), NWidgetBase::smallest_x, NWidgetBase::smallest_y, ST_RESIZE, TD_RTL, DynamicLanguages::text_dir, and Window::width.

Referenced by NetworkClientListWindow::CheckClientListHeight(), TownAuthorityWindow::DrawRatings(), Window::FindWindowPlacementAndResize(), BuildRoadStationWindow::OnPaint(), BuildRailStationWindow::OnPaint(), BuildDocksStationWindow::OnPaint(), AirportPickerWindow::OnPaint(), Window::ReInit(), and RelocateAllWindows().

void SetWindowClassesDirty ( WindowClass  cls  ) 
void SetWindowDirty ( WindowClass  cls,
WindowNumber  number 
)

Mark window as dirty (in need of repainting).

Parameters:
cls Window class
number Window number in that class

Definition at line 2322 of file window.cpp.

References Window::SetDirty(), Window::window_class, and Window::window_number.

Referenced by AddNewsItem(), AircraftEventHandler_AtTerminal(), ChangePopulation(), ChangeTownRating(), ClickChangeDateCheat(), CmdAddVehicleGroup(), CmdAutofillTimetable(), CmdBuildAircraft(), CmdBuildAirport(), CmdBuildCompanyHQ(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildRoadVeh(), CmdBuildShip(), CmdBuyShareInCompany(), CmdChangeCompanySetting(), CmdChangeServiceInt(), CmdChangeSetting(), CmdDoTownAction(), CmdForceTrainProceed(), CmdPause(), CmdRefitAircraft(), CmdRefitRailVehicle(), CmdRefitRoadVeh(), CmdRefitShip(), CmdReverseTrainDirection(), CmdSellShareInCompany(), CmdSetTimetableStart(), CmdSetVehicleOnTime(), CmdStartStopVehicle(), Train::ConsistChanged(), Vehicle::Crash(), DeleteLastWagon(), DeleteNewsItem(), DestroyCompanyHQ(), DoStartupNewCompany(), IConsoleGUIPrint(), IndustryDailyLoop(), IndustryProductionCallback(), InvalidateVehicleOrder(), LoadUnloadVehicle(), NormaliseTrainHead(), BuildSignalWindow::OnClick(), GameOptionsWindow::OnDropdownSelect(), Train::OnNewDay(), Ship::OnNewDay(), RoadVehicle::OnNewDay(), Aircraft::OnNewDay(), Train::PowerChanged(), Vehicle::PreDestructor(), RecomputePrices(), RemoveAirport(), RemoveOrderFromAllVehicles(), SetSettingValue(), SetTrainGroupID(), TriggerIndustryProduction(), UpdateCompanyRatingAndValue(), UpdateTownGrowRate(), UpdateTrainGroupID(), Town::UpdateVirtCoord(), Station::UpdateVirtCoord(), and NetworkContentDownloadStatusWindow::~NetworkContentDownloadStatusWindow().

void SetWindowWidgetDirty ( WindowClass  cls,
WindowNumber  number,
byte  widget_index 
)

Generated on Sat Jul 17 18:43:49 2010 for OpenTTD by  doxygen 1.6.1