Changeset - r9240:ae20a4f3f8ae
[Not reviewed]
master
0 3 0
rubidium - 16 years ago 2008-05-15 19:00:20
rubidium@openttd.org
(svn r13106) -Codechange: rework the toolbar code a little so functions do not have to return the Window they just created.
3 files changed with 40 insertions and 47 deletions:
0 comments (0 inline, 0 general)
src/main_gui.cpp
Show inline comments
 
@@ -426,26 +426,25 @@ void SetupColorsAndInitialWindow()
 

	
 
		case GM_NORMAL:
 
		case GM_EDITOR:
 
			ShowVitalWindows();
 
			break;
 
	}
 
}
 

	
 
extern void ShowStatusBar();
 

	
 
void ShowVitalWindows()
 
{
 
	Window *w = AllocateToolbar();
 
	DoZoomInOutWindow(ZOOM_NONE, w);
 
	AllocateToolbar();
 

	
 
	/* Status bad only for normal games */
 
	if (_game_mode == GM_EDITOR) return;
 

	
 
	ShowStatusBar();
 
}
 

	
 
/**
 
 * Size of the application screen changed.
 
 * Adapt the game screen-size, re-allocate the open windows, and repaint everything
 
 */
 
void GameSizeChanged()
src/toolbar_gui.cpp
Show inline comments
 
@@ -36,26 +36,26 @@
 
#include "fios.h"
 
#include "functions.h"
 
#include "console.h"
 
#include "news_gui.h"
 
#include "tilehighlight_func.h"
 

	
 
#include "network/network.h"
 
#include "network/network_gui.h"
 

	
 
#include "table/strings.h"
 
#include "table/sprites.h"
 

	
 
static Window *PopupMainToolbMenu(Window *w, uint16 parent_button, StringID base_string, byte item_count, byte disabled_mask);
 
static Window *PopupMainPlayerToolbMenu(Window *w, int main_button, int gray);
 
static void PopupMainToolbMenu(Window *parent, uint16 parent_button, StringID base_string, byte item_count, byte disabled_mask = 0, int sel_index = 0, int checked_items = 0);
 
static void PopupMainPlayerToolbMenu(Window *parent, int main_button, int gray);
 

	
 
RailType _last_built_railtype;
 
RoadType _last_built_roadtype;
 

	
 
static void SelectSignTool()
 
{
 
	if (_cursor.sprite == SPR_CURSOR_SIGN) {
 
		ResetObjectToPlace();
 
	} else {
 
		SetObjectToPlace(SPR_CURSOR_SIGN, PAL_NONE, VHM_RECT, WC_MAIN_TOOLBAR, 0);
 
		_place_proc = PlaceProc_Sign;
 
	}
 
@@ -113,36 +113,34 @@ static void ToolbarPauseClick(Window *w)
 

	
 
static void ToolbarFastForwardClick(Window *w)
 
{
 
	_fast_forward ^= true;
 
	SndPlayFx(SND_15_BEEP);
 
}
 

	
 
/* --- Options button menu --- */
 

	
 
static void ToolbarOptionsClick(Window *w)
 
{
 
	uint16 x = 0;
 

	
 
	w = PopupMainToolbMenu(w, 2, STR_02C4_GAME_OPTIONS, 14, 0);
 

	
 
	if (HasBit(_display_opt, DO_SHOW_TOWN_NAMES))    SetBit(x,  6);
 
	if (HasBit(_display_opt, DO_SHOW_STATION_NAMES)) SetBit(x,  7);
 
	if (HasBit(_display_opt, DO_SHOW_SIGNS))         SetBit(x,  8);
 
	if (HasBit(_display_opt, DO_WAYPOINTS))          SetBit(x,  9);
 
	if (HasBit(_display_opt, DO_FULL_ANIMATION))     SetBit(x, 10);
 
	if (HasBit(_display_opt, DO_FULL_DETAIL))        SetBit(x, 11);
 
	if (IsTransparencySet(TO_HOUSES))                SetBit(x, 12);
 
	if (IsTransparencySet(TO_SIGNS))                 SetBit(x, 13);
 
	WP(w, menu_d).checked_items = x;
 

	
 
	PopupMainToolbMenu(w, 2, STR_02C4_GAME_OPTIONS, 14, 0, 0, x);
 
}
 

	
 
static void MenuClickSettings(int index)
 
{
 
	switch (index) {
 
		case 0: ShowGameOptions();      return;
 
		case 1: ShowGameDifficulty();   return;
 
		case 2: ShowPatchesSelection(); return;
 
		case 3: ShowNewGRFSettings(!_networking, true, true, &_grfconfig);   return;
 
		case 4: ShowTransparencyToolbar(); break;
 

	
 
		case  6: ToggleBit(_display_opt, DO_SHOW_TOWN_NAMES);    break;
 
@@ -152,30 +150,30 @@ static void MenuClickSettings(int index)
 
		case 10: ToggleBit(_display_opt, DO_FULL_ANIMATION);     break;
 
		case 11: ToggleBit(_display_opt, DO_FULL_DETAIL);        break;
 
		case 12: ToggleTransparency(TO_HOUSES);                  break;
 
		case 13: ToggleTransparency(TO_SIGNS);                   break;
 
	}
 
	MarkWholeScreenDirty();
 
}
 

	
 
/* --- Saving/loading button menu --- */
 

	
 
static void ToolbarSaveClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 3, STR_015C_SAVE_GAME, 4, 0);
 
	PopupMainToolbMenu(w, 3, STR_015C_SAVE_GAME, 4);
 
}
 

	
 
static void ToolbarScenSaveOrLoad(Window *w)
 
{
 
	PopupMainToolbMenu(w, 3, STR_0292_SAVE_SCENARIO, 6, 0);
 
	PopupMainToolbMenu(w, 3, STR_0292_SAVE_SCENARIO, 6);
 
}
 

	
 
static void MenuClickSaveLoad(int index)
 
{
 
	if (_game_mode == GM_EDITOR) {
 
		switch (index) {
 
			case 0: ShowSaveLoadDialog(SLD_SAVE_SCENARIO);  break;
 
			case 1: ShowSaveLoadDialog(SLD_LOAD_SCENARIO);  break;
 
			case 2: ShowSaveLoadDialog(SLD_LOAD_HEIGHTMAP); break;
 
			case 3: AskExitToGameMenu();                    break;
 
			case 5: HandleExitGameRequest();                break;
 
		}
 
@@ -184,25 +182,25 @@ static void MenuClickSaveLoad(int index)
 
			case 0: ShowSaveLoadDialog(SLD_SAVE_GAME); break;
 
			case 1: ShowSaveLoadDialog(SLD_LOAD_GAME); break;
 
			case 2: AskExitToGameMenu();               break;
 
			case 3: HandleExitGameRequest();           break;
 
		}
 
	}
 
}
 

	
 
/* --- Map button menu --- */
 

	
 
static void ToolbarMapClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 4, STR_02DE_MAP_OF_WORLD, 3, 0);
 
	PopupMainToolbMenu(w, 4, STR_02DE_MAP_OF_WORLD, 3);
 
}
 

	
 
static void MenuClickMap(int index)
 
{
 
	switch (index) {
 
		case 0: ShowSmallMap();            break;
 
		case 1: ShowExtraViewPortWindow(); break;
 
		case 2: ShowSignList();            break;
 
	}
 
}
 

	
 
static void MenuClickScenMap(int index)
 
@@ -210,37 +208,37 @@ static void MenuClickScenMap(int index)
 
	switch (index) {
 
		case 0: ShowSmallMap();            break;
 
		case 1: ShowExtraViewPortWindow(); break;
 
		case 2: ShowSignList();            break;
 
		case 3: ShowTownDirectory();       break;
 
	}
 
}
 

	
 
/* --- Town button menu --- */
 

	
 
static void ToolbarTownClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 5, STR_02BB_TOWN_DIRECTORY, 1, 0);
 
	PopupMainToolbMenu(w, 5, STR_02BB_TOWN_DIRECTORY, 1);
 
}
 

	
 
static void MenuClickTown(int index)
 
{
 
	ShowTownDirectory();
 
}
 

	
 
/* --- Subidies button menu --- */
 

	
 
static void ToolbarSubsidiesClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 6, STR_02DD_SUBSIDIES, 1, 0);
 
	PopupMainToolbMenu(w, 6, STR_02DD_SUBSIDIES, 1);
 
}
 

	
 
static void MenuClickSubsidies(int index)
 
{
 
	ShowSubsidiesList();
 
}
 

	
 
/* --- Stations button menu --- */
 

	
 
static void ToolbarStationsClick(Window *w)
 
{
 
	PopupMainPlayerToolbMenu(w, 7, 0);
 
@@ -275,44 +273,44 @@ static void MenuClickCompany(int index)
 
	if (_networking && index == 0) {
 
		ShowClientList();
 
	} else {
 
		if (_networking) index--;
 
		ShowPlayerCompany((PlayerID)index);
 
	}
 
}
 

	
 
/* --- Graphs button menu --- */
 

	
 
static void ToolbarGraphsClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 10, STR_0154_OPERATING_PROFIT_GRAPH, 6, 0);
 
	PopupMainToolbMenu(w, 10, STR_0154_OPERATING_PROFIT_GRAPH, 6);
 
}
 

	
 
static void MenuClickGraphs(int index)
 
{
 
	switch (index) {
 
		case 0: ShowOperatingProfitGraph();    break;
 
		case 1: ShowIncomeGraph();             break;
 
		case 2: ShowDeliveredCargoGraph();     break;
 
		case 3: ShowPerformanceHistoryGraph(); break;
 
		case 4: ShowCompanyValueGraph();       break;
 
		case 5: ShowCargoPaymentRates();       break;
 
	}
 
}
 

	
 
/* --- League button menu --- */
 

	
 
static void ToolbarLeagueClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 11, STR_015A_COMPANY_LEAGUE_TABLE, 2, 0);
 
	PopupMainToolbMenu(w, 11, STR_015A_COMPANY_LEAGUE_TABLE, 2);
 
}
 

	
 
static void MenuClickLeague(int index)
 
{
 
	switch (index) {
 
		case 0: ShowCompanyLeagueTable();      break;
 
		case 1: ShowPerformanceRatingDetail(); break;
 
	}
 
}
 

	
 
/* --- Industries button menu --- */
 

	
 
@@ -406,123 +404,121 @@ static void ToolbarZoomOutClick(Window *
 
{
 
	if (DoZoomInOutWindow(ZOOM_OUT, FindWindowById(WC_MAIN_WINDOW, 0))) {
 
		w->HandleButtonClick(18);
 
		SndPlayFx(SND_15_BEEP);
 
	}
 
}
 

	
 
/* --- Rail button menu --- */
 

	
 
static void ToolbarBuildRailClick(Window *w)
 
{
 
	const Player *p = GetPlayer(_local_player);
 
	Window *w2 = PopupMainToolbMenu(w, 19, STR_1015_RAILROAD_CONSTRUCTION, RAILTYPE_END, ~p->avail_railtypes);
 
	WP(w2, menu_d).sel_index = _last_built_railtype;
 
	PopupMainToolbMenu(w, 19, STR_1015_RAILROAD_CONSTRUCTION, RAILTYPE_END, ~p->avail_railtypes, _last_built_railtype);
 
}
 

	
 
static void MenuClickBuildRail(int index)
 
{
 
	_last_built_railtype = (RailType)index;
 
	ShowBuildRailToolbar(_last_built_railtype, -1);
 
}
 

	
 
/* --- Road button menu --- */
 

	
 
static void ToolbarBuildRoadClick(Window *w)
 
{
 
	const Player *p = GetPlayer(_local_player);
 
	/* The standard road button is *always* available */
 
	Window *w2 = PopupMainToolbMenu(w, 20, STR_180A_ROAD_CONSTRUCTION, 2, ~(p->avail_roadtypes | ROADTYPES_ROAD));
 
	WP(w2, menu_d).sel_index = _last_built_roadtype;
 
	PopupMainToolbMenu(w, 20, STR_180A_ROAD_CONSTRUCTION, 2, ~(p->avail_roadtypes | ROADTYPES_ROAD), _last_built_roadtype);
 
}
 

	
 
static void MenuClickBuildRoad(int index)
 
{
 
	_last_built_roadtype = (RoadType)index;
 
	ShowBuildRoadToolbar(_last_built_roadtype);
 
}
 

	
 
/* --- Water button menu --- */
 

	
 
static void ToolbarBuildWaterClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 21, STR_9800_DOCK_CONSTRUCTION, 1, 0);
 
	PopupMainToolbMenu(w, 21, STR_9800_DOCK_CONSTRUCTION, 1);
 
}
 

	
 
static void MenuClickBuildWater(int index)
 
{
 
	ShowBuildDocksToolbar();
 
}
 

	
 
/* --- Airport button menu --- */
 

	
 
static void ToolbarBuildAirClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 22, STR_A01D_AIRPORT_CONSTRUCTION, 1, 0);
 
	PopupMainToolbMenu(w, 22, STR_A01D_AIRPORT_CONSTRUCTION, 1);
 
}
 

	
 
static void MenuClickBuildAir(int index)
 
{
 
	ShowBuildAirToolbar();
 
}
 

	
 
/* --- Forest button menu --- */
 

	
 
static void ToolbarForestClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 23, STR_LANDSCAPING, 3, 0);
 
	PopupMainToolbMenu(w, 23, STR_LANDSCAPING, 3);
 
}
 

	
 
static void MenuClickForest(int index)
 
{
 
	switch (index) {
 
		case 0: ShowTerraformToolbar();  break;
 
		case 1: ShowBuildTreesToolbar(); break;
 
		case 2: SelectSignTool();        break;
 
	}
 
}
 

	
 
/* --- Music button menu --- */
 

	
 
static void ToolbarMusicClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 24, STR_01D3_SOUND_MUSIC, 1, 0);
 
	PopupMainToolbMenu(w, 24, STR_01D3_SOUND_MUSIC, 1);
 
}
 

	
 
static void MenuClickMusicWindow(int index)
 
{
 
	ShowMusicWindow();
 
}
 

	
 
/* --- Newspaper button menu --- */
 

	
 
static void ToolbarNewspaperClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 25, STR_0200_LAST_MESSAGE_NEWS_REPORT, 3, 0);
 
	PopupMainToolbMenu(w, 25, STR_0200_LAST_MESSAGE_NEWS_REPORT, 3);
 
}
 

	
 
static void MenuClickNewspaper(int index)
 
{
 
	switch (index) {
 
		case 0: ShowLastNewsMessage(); break;
 
		case 1: ShowMessageOptions();  break;
 
		case 2: ShowMessageHistory();  break;
 
	}
 
}
 

	
 
/* --- Help button menu --- */
 

	
 
static void ToolbarHelpClick(Window *w)
 
{
 
	PopupMainToolbMenu(w, 26, STR_02D5_LAND_BLOCK_INFO, 6, 0);
 
	PopupMainToolbMenu(w, 26, STR_02D5_LAND_BLOCK_INFO, 6);
 
}
 

	
 
static void MenuClickSmallScreenshot()
 
{
 
	SetScreenshotType(SC_VIEWPORT);
 
}
 

	
 
static void MenuClickWorldScreenshot()
 
{
 
	SetScreenshotType(SC_WORLD);
 
}
 

	
 
@@ -559,25 +555,25 @@ static void ToolbarScenDateForward(Windo
 
		w->HandleButtonClick(7);
 
		w->SetDirty();
 

	
 
		_patches_newgame.starting_year = Clamp(_patches_newgame.starting_year + 1, MIN_YEAR, MAX_YEAR);
 
		SetDate(ConvertYMDToDate(_patches_newgame.starting_year, 0, 1));
 
	}
 
	_left_button_clicked = false;
 
}
 

	
 
static void ToolbarScenMapTownDir(Window *w)
 
{
 
	/* Scenario editor button, *hack*hack* use different button to activate */
 
	PopupMainToolbMenu(w, 8 | (17 << 8), STR_02DE_MAP_OF_WORLD, 4, 0);
 
	PopupMainToolbMenu(w, 8 | (17 << 8), STR_02DE_MAP_OF_WORLD, 4);
 
}
 

	
 
static void ToolbarScenZoomIn(Window *w)
 
{
 
	if (DoZoomInOutWindow(ZOOM_IN, FindWindowById(WC_MAIN_WINDOW, 0))) {
 
		w->HandleButtonClick(9);
 
		SndPlayFx(SND_15_BEEP);
 
	}
 
}
 

	
 
static void ToolbarScenZoomOut(Window *w)
 
{
 
@@ -1211,67 +1207,69 @@ static int GetStringListMaxWidth(StringI
 

	
 
	return max_width;
 
}
 

	
 
/**
 
 * Show a general dropdown menu. The positioning of the dropdown menu
 
 * defaults to the left side of the parent_button, eg the button that caused
 
 * this window to appear. The only exceptions are when the right side of this
 
 * dropdown would fall outside the main toolbar window, in that case it is
 
 * aligned with the toolbar's right side.
 
 * Since the disable-mask is only 8 bits right now, these dropdowns are
 
 * restricted to 8 items max if any bits of disabled_mask are active.
 
 * @param w Pointer to a window this dropdown menu belongs to. Has no effect
 
 * @param parent Pointer to a window this dropdown menu belongs to. Has no effect
 
 * whatsoever, only graphically for positioning.
 
 * @param parent_button The widget identifier of the button that was clicked for
 
 * this dropdown. The created dropdown then knows what button to raise (button) on
 
 * action and whose function to execute (action).
 
 * It is possible to appoint another button for an action event by setting the
 
 * upper 8 bits of this parameter. If non is set, action is presumed to be the same
 
 * as button. So<br>
 
 * button bits 0 -  7 - widget clicked to get dropdown
 
 * action bits 8 - 15 - function of widget to execute on select (defaults to bits 0 - 7)
 
 * @param base_string The first StringID shown in the dropdown list. All others are
 
 * consecutive indeces from the language file. XXX - fix? Use ingame-string tables?
 
 * @param item_count Number of strings in the list, see previous parameter
 
 * @param disabled_mask Bitmask of disabled strings in the list
 
 * @return Return a pointer to the newly created dropdown window */
 
static Window *PopupMainToolbMenu(Window *w, uint16 parent_button, StringID base_string, byte item_count, byte disabled_mask)
 
 * @param sel_index The selected toolbar item
 
 * @param check_items The items to have a checked mark in front of them.
 
 * @return Return a pointer to the newly created dropdown window
 
 */
 
static void PopupMainToolbMenu(Window *parent, uint16 parent_button, StringID base_string, byte item_count, byte disabled_mask, int sel_index, int checked_items)
 
{
 
	assert(disabled_mask == 0 || item_count <= 8);
 
	w->LowerWidget(parent_button);
 
	w->InvalidateWidget(parent_button);
 
	parent->LowerWidget(parent_button);
 
	parent->InvalidateWidget(parent_button);
 

	
 
	DeleteWindowById(WC_TOOLBAR_MENU, 0);
 

	
 
	/* Extend the dropdown toolbar to the longest string in the list */
 
	int width = max(GetStringListMaxWidth(base_string, item_count) + 6, 140);
 
	int height = item_count * 10 + 2;
 

	
 
	Point pos = GetToolbarDropdownPos(parent_button, width, height);
 

	
 
	w = new Window(pos.x, pos.y, width, height, MenuWndProc, WC_TOOLBAR_MENU, _menu_widgets);
 
	Window *w = new Window(pos.x, pos.y, width, height, MenuWndProc, WC_TOOLBAR_MENU, _menu_widgets);
 
	w->widget[0].bottom = item_count * 10 + 1;
 
	w->flags4 &= ~WF_WHITE_BORDER_MASK;
 

	
 
	WP(w, menu_d).item_count = item_count;
 
	WP(w, menu_d).sel_index = 0;
 
	WP(w, menu_d).sel_index = sel_index;
 
	WP(w, menu_d).main_button = GB(parent_button, 0, 8);
 
	WP(w, menu_d).action_id = (GB(parent_button, 8, 8) != 0) ? GB(parent_button, 8, 8) : parent_button;
 
	WP(w, menu_d).string_id = base_string;
 
	WP(w, menu_d).checked_items = 0;
 
	WP(w, menu_d).checked_items = checked_items;
 
	WP(w, menu_d).disabled_items = disabled_mask;
 

	
 
	SndPlayFx(SND_15_BEEP);
 
	return w;
 
}
 

	
 
/* --- Rendering/drawing the player menu --- */
 
static int GetPlayerIndexFromMenu(int index)
 
{
 
	if (index >= 0) {
 
		const Player *p;
 

	
 
		FOR_ALL_PLAYERS(p) {
 
			if (p->is_active && --index < 0) return p->index;
 
		}
 
	}
 
@@ -1388,60 +1386,58 @@ static void PlayerMenuWndProc(Window *w,
 
					_menu_clicked_procs[action_id](index);
 
				}
 
			}
 
		} break;
 
	}
 
}
 

	
 
static const Widget _player_menu_widgets[] = {
 
{    WWT_PANEL, RESIZE_NONE, 14, 0, 240, 0, 81, 0x0, STR_NULL},
 
{ WIDGETS_END},
 
};
 

	
 
static Window *PopupMainPlayerToolbMenu(Window *w, int main_button, int gray)
 
static void PopupMainPlayerToolbMenu(Window *parent, int main_button, int gray)
 
{
 
	w->LowerWidget(main_button);
 
	w->InvalidateWidget(main_button);
 
	parent->LowerWidget(main_button);
 
	parent->InvalidateWidget(main_button);
 

	
 
	DeleteWindowById(WC_TOOLBAR_MENU, 0);
 
	Point pos = GetToolbarDropdownPos(main_button, 241, 82);
 
	w = new Window(pos.x, pos.y, 241, 82, PlayerMenuWndProc, WC_TOOLBAR_MENU, _player_menu_widgets);
 
	Window *w = new Window(pos.x, pos.y, 241, 82, PlayerMenuWndProc, WC_TOOLBAR_MENU, _player_menu_widgets);
 
	w->flags4 &= ~WF_WHITE_BORDER_MASK;
 
	WP(w, menu_d).item_count = 0;
 
	WP(w, menu_d).sel_index = (_local_player != PLAYER_SPECTATOR) ? _local_player : GetPlayerIndexFromMenu(0);
 
	if (_networking && main_button == 9) {
 
		if (_local_player != PLAYER_SPECTATOR) {
 
			WP(w, menu_d).sel_index++;
 
		} else {
 
			/* Select client list by default for spectators */
 
			WP(w, menu_d).sel_index = 0;
 
		}
 
	}
 
	WP(w, menu_d).action_id = main_button;
 
	WP(w, menu_d).main_button = main_button;
 
	WP(w, menu_d).checked_items = gray;
 
	WP(w, menu_d).disabled_items = 0;
 

	
 
	SndPlayFx(SND_15_BEEP);
 
	return w;
 
}
 

	
 
/* --- Allocating the toolbar --- */
 

	
 
Window *AllocateToolbar()
 
void AllocateToolbar()
 
{
 
	/* Clean old GUI values; railtype is (re)set by rail_gui.cpp */
 
	_last_built_roadtype = ROADTYPE_ROAD;
 

	
 
	Window *w = new Window((_game_mode != GM_EDITOR) ? &_toolb_normal_desc : &_toolb_scen_desc);
 
	if (w == NULL) return NULL;
 
	assert(w != NULL);
 

	
 
	CLRBITS(w->flags4, WF_WHITE_BORDER_MASK);
 

	
 
	w->SetWidgetDisabledState(0, _networking && !_network_server); // if not server, disable pause button
 
	w->SetWidgetDisabledState(1, _networking); // if networking, disable fast-forward button
 

	
 
	/* 'w' is for sure a WC_MAIN_TOOLBAR */
 
	PositionMainToolbar(w);
 

	
 
	return w;
 
	DoZoomInOutWindow(ZOOM_NONE, w);
 
}
src/toolbar_gui.h
Show inline comments
 
/* $Id$ */
 

	
 
/** @file toolbar_gui.h Stuff related to the (main) toolbar. */
 

	
 
#ifndef TOOLBAR_GUI_H
 
#define TOOLBAR_GUI_H
 

	
 
#include "window_type.h"
 

	
 
Window *AllocateToolbar();
 
void AllocateToolbar();
 

	
 
#endif /*TOOLBAR_GUI_H*/
0 comments (0 inline, 0 general)