Files
@ r8373:e7760b9340e5
Branch filter:
Location: cpp/openttd-patchpack/source/src/transparency_gui.cpp - annotation
r8373:e7760b9340e5
3.4 KiB
text/x-c
(svn r11939) -Codechange: some type fixes and very initial steps into supporting NDS by default. Based on work by Dominik.
r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r8107:82461791b7a2 r6427:94a91cd8da86 r7849:cfd99cb69695 r8157:cf41aa22cd09 r7849:cfd99cb69695 r8264:d493cb51fe8a r8264:d493cb51fe8a r8264:d493cb51fe8a r7849:cfd99cb69695 r6427:94a91cd8da86 r6496:bbfde726b81e r6496:bbfde726b81e r6496:bbfde726b81e r6496:bbfde726b81e r6496:bbfde726b81e r6496:bbfde726b81e r6496:bbfde726b81e r6496:bbfde726b81e r6496:bbfde726b81e r6496:bbfde726b81e r6496:bbfde726b81e r6998:9587370cd6e8 r6598:1e5a949e7cdc r6496:bbfde726b81e r6496:bbfde726b81e r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6496:bbfde726b81e r6496:bbfde726b81e r6598:1e5a949e7cdc r7997:7eff37796679 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6496:bbfde726b81e r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6998:9587370cd6e8 r6998:9587370cd6e8 r6427:94a91cd8da86 r6496:bbfde726b81e r6998:9587370cd6e8 r6600:2b0be8fe1fde r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6998:9587370cd6e8 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r7341:72820788b006 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 r6427:94a91cd8da86 | /* $Id$ */
#include "stdafx.h"
#include "openttd.h"
#include "gui.h"
#include "window_gui.h"
#include "variables.h"
#include "transparency.h"
#include "sound_func.h"
#include "table/sprites.h"
#include "table/strings.h"
TransparencyOptionBits _transparency_opt;
enum TransparencyToolbarWidgets{
/* Widgets not toggled when pressing the X key */
TTW_WIDGET_SIGNS = 3, ///< Make signs background transparent
/* Widgets toggled when pressing the X key */
TTW_WIDGET_TREES, ///< Make trees transparent
TTW_WIDGET_HOUSES, ///< Make houses transparent
TTW_WIDGET_INDUSTRIES, ///< Make Industries transparent
TTW_WIDGET_BUILDINGS, ///< Make player buildings and structures transparent
TTW_WIDGET_BRIDGES, ///< Make bridges transparent
TTW_WIDGET_STRUCTURES, ///< Make unmovable structures transparent
TTW_WIDGET_LOADING, ///< Make loading indicators transperent
TTW_WIDGET_END, ///< End of toggle buttons
};
static void TransparencyToolbWndProc(Window *w, WindowEvent *e)
{
switch (e->event) {
case WE_PAINT:
/* must be sure that the widgets show the transparency variable changes
* also when we use shortcuts */
for (uint i = TTW_WIDGET_SIGNS; i < TTW_WIDGET_END; i++) {
w->SetWidgetLoweredState(i, IsTransparencySet((TransparencyOption)(i - TTW_WIDGET_SIGNS)));
}
DrawWindowWidgets(w);
break;
case WE_CLICK:
if (e->we.click.widget >= TTW_WIDGET_SIGNS) {
/* toggle the bit of the transparencies variable when clicking on a widget, and play a sound */
ToggleTransparency((TransparencyOption)(e->we.click.widget - TTW_WIDGET_SIGNS));
SndPlayFx(SND_15_BEEP);
MarkWholeScreenDirty();
}
break;
}
}
static const Widget _transparency_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 184, 0, 13, STR_TRANSPARENCY_TOOLB, STR_018C_WINDOW_TITLE_DRAG_THIS},
{WWT_STICKYBOX, RESIZE_NONE, 7, 185, 196, 0, 13, STR_NULL, STR_STICKY_BUTTON},
/* transparency widgets:
* transparent signs, trees, houses, industries, player's buildings, bridges, unmovable structures and loading indicators */
{ WWT_IMGBTN, RESIZE_NONE, 7, 0, 21, 14, 35, SPR_IMG_SIGN, STR_TRANSPARENT_SIGNS_DESC},
{ WWT_IMGBTN, RESIZE_NONE, 7, 22, 43, 14, 35, SPR_IMG_PLANTTREES, STR_TRANSPARENT_TREES_DESC},
{ WWT_IMGBTN, RESIZE_NONE, 7, 44, 65, 14, 35, SPR_IMG_TOWN, STR_TRANSPARENT_HOUSES_DESC},
{ WWT_IMGBTN, RESIZE_NONE, 7, 66, 87, 14, 35, SPR_IMG_INDUSTRY, STR_TRANSPARENT_INDUSTRIES_DESC},
{ WWT_IMGBTN, RESIZE_NONE, 7, 88, 109, 14, 35, SPR_IMG_COMPANY_LIST, STR_TRANSPARENT_BUILDINGS_DESC},
{ WWT_IMGBTN, RESIZE_NONE, 7, 110, 152, 14, 35, SPR_IMG_BRIDGE, STR_TRANSPARENT_BRIDGES_DESC},
{ WWT_IMGBTN, RESIZE_NONE, 7, 153, 174, 14, 35, SPR_IMG_TRANSMITTER, STR_TRANSPARENT_STRUCTURES_DESC},
{ WWT_IMGBTN, RESIZE_NONE, 7, 175, 196, 14, 35, SPR_IMG_TRAINLIST, STR_TRANSPARENT_LOADING_DESC},
{ WIDGETS_END},
};
static const WindowDesc _transparency_desc = {
WDP_ALIGN_TBR, 58+36, 197, 36, 197, 36,
WC_TRANSPARENCY_TOOLBAR, WC_NONE,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON,
_transparency_widgets,
TransparencyToolbWndProc
};
void ShowTransparencyToolbar(void)
{
AllocateWindowDescFront(&_transparency_desc, 0);
}
|