comparison src/company_gui.cpp @ 11504:898be4863fa6 draft

(svn r15865) -Codechange: New widgets for company finances windows
author glx <glx@openttd.org>
date Fri, 27 Mar 2009 22:59:43 +0000
parents 9272c49b41d7
children 06e6021a10f2
comparison
equal deleted inserted replaced
11503:9272c49b41d7 11504:898be4863fa6
206 206
207 SetDParam(0, c->money - c->current_loan); 207 SetDParam(0, c->money - c->current_loan);
208 DrawString(widget[CFW_TOTAL_VALUES].left, widget[CFW_TOTAL_VALUES].right, y, STR_7028, TC_FROMSTRING, SA_RIGHT); 208 DrawString(widget[CFW_TOTAL_VALUES].left, widget[CFW_TOTAL_VALUES].right, y, STR_7028, TC_FROMSTRING, SA_RIGHT);
209 } 209 }
210 210
211 static const NWidgetPart _nested_company_finances_widgets[] = {
212 NWidget(NWID_HORIZONTAL),
213 NWidget(WWT_CLOSEBOX, COLOUR_GREY, CFW_CLOSEBOX),
214 NWidget(WWT_CAPTION, COLOUR_GREY, CFW_CAPTION), SetMinimalSize(369, 14), SetDataTip(STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS),
215 NWidget(WWT_IMGBTN, COLOUR_GREY, CFW_TOGGLE_SIZE), SetMinimalSize(14, 14), SetDataTip(SPR_LARGE_SMALL_WINDOW, STR_7075_TOGGLE_LARGE_SMALL_WINDOW),
216 NWidget(WWT_STICKYBOX, COLOUR_GREY, CFW_STICKY),
217 EndContainer(),
218 NWidget(WWT_PANEL, COLOUR_GREY, CFW_EXPS_PANEL),
219 NWidget(NWID_HORIZONTAL),
220 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_EXPS_CATEGORY), SetMinimalSize(123, 0),
221 NWidget(NWID_SPACER), SetMinimalSize(7, 0),
222 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_EXPS_PRICE1), SetMinimalSize(86, 0),
223 NWidget(NWID_SPACER), SetMinimalSize(9, 0),
224 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_EXPS_PRICE2), SetMinimalSize(86, 0),
225 NWidget(NWID_SPACER), SetMinimalSize(9, 0),
226 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_EXPS_PRICE3), SetMinimalSize(86, 0),
227 NWidget(NWID_SPACER), SetMinimalSize(1, 0),
228 EndContainer(),
229 EndContainer(),
230 NWidget(WWT_PANEL, COLOUR_GREY, CFW_TOTAL_PANEL),
231 NWidget(NWID_HORIZONTAL),
232 NWidget(NWID_SPACER), SetMinimalSize(2, 0),
233 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_TOTAL_LABELS), SetMinimalSize(95, 34),
234 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_TOTAL_VALUES), SetMinimalSize(86, 34),
235 NWidget(NWID_SPACER), SetMinimalSize(19, 0),
236 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_TOTAL_MAXLOAN), SetMinimalSize(205, 34),
237 EndContainer(),
238 EndContainer(),
239 NWidget(NWID_HORIZONTAL),
240 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, CFW_INCREASE_LOAN), SetMinimalSize(203, 12), SetDataTip(STR_7029_BORROW, STR_7035_INCREASE_SIZE_OF_LOAN),
241 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, CFW_REPAY_LOAN), SetMinimalSize(204, 12), SetDataTip(STR_702A_REPAY, STR_7036_REPAY_PART_OF_LOAN),
242 EndContainer(),
243 };
244
211 static const Widget _company_finances_widgets[] = { 245 static const Widget _company_finances_widgets[] = {
212 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // CFW_CLOSEBOX 246 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // CFW_CLOSEBOX
213 { WWT_CAPTION, RESIZE_NONE, COLOUR_GREY, 11, 380, 0, 13, STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS}, // CFW_CAPTION 247 { WWT_CAPTION, RESIZE_NONE, COLOUR_GREY, 11, 380, 0, 13, STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS}, // CFW_CAPTION
214 { WWT_IMGBTN, RESIZE_NONE, COLOUR_GREY, 381, 394, 0, 13, SPR_LARGE_SMALL_WINDOW, STR_7075_TOGGLE_LARGE_SMALL_WINDOW}, // CFW_TOGGLE_SIZE 248 { WWT_IMGBTN, RESIZE_NONE, COLOUR_GREY, 381, 394, 0, 13, SPR_LARGE_SMALL_WINDOW, STR_7075_TOGGLE_LARGE_SMALL_WINDOW}, // CFW_TOGGLE_SIZE
215 { WWT_STICKYBOX, RESIZE_NONE, COLOUR_GREY, 395, 406, 0, 13, 0x0, STR_STICKY_BUTTON}, // CFW_STICKY 249 { WWT_STICKYBOX, RESIZE_NONE, COLOUR_GREY, 395, 406, 0, 13, 0x0, STR_STICKY_BUTTON}, // CFW_STICKY
225 { WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 202, 48, 59, STR_7029_BORROW, STR_7035_INCREASE_SIZE_OF_LOAN}, // CFW_INCREASE_LOAN 259 { WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 0, 202, 48, 59, STR_7029_BORROW, STR_7035_INCREASE_SIZE_OF_LOAN}, // CFW_INCREASE_LOAN
226 { WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 203, 406, 48, 59, STR_702A_REPAY, STR_7036_REPAY_PART_OF_LOAN}, // CFW_REPAY_LOAN 260 { WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 203, 406, 48, 59, STR_702A_REPAY, STR_7036_REPAY_PART_OF_LOAN}, // CFW_REPAY_LOAN
227 { WIDGETS_END}, 261 { WIDGETS_END},
228 }; 262 };
229 263
264 static const NWidgetPart _nested_company_finances_small_widgets[] = {
265 NWidget(NWID_HORIZONTAL),
266 NWidget(WWT_CLOSEBOX, COLOUR_GREY, CFW_CLOSEBOX),
267 NWidget(WWT_CAPTION, COLOUR_GREY, CFW_CAPTION), SetMinimalSize(243, 14), SetDataTip(STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS),
268 NWidget(WWT_IMGBTN, COLOUR_GREY, CFW_TOGGLE_SIZE), SetMinimalSize(14, 14), SetDataTip(SPR_LARGE_SMALL_WINDOW, STR_7075_TOGGLE_LARGE_SMALL_WINDOW),
269 NWidget(WWT_STICKYBOX, COLOUR_GREY, CFW_STICKY),
270 EndContainer(),
271 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_EXPS_PANEL),
272 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_EXPS_CATEGORY),
273 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_EXPS_PRICE1),
274 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_EXPS_PRICE2),
275 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_EXPS_PRICE3),
276 NWidget(WWT_PANEL, COLOUR_GREY, CFW_TOTAL_PANEL),
277 NWidget(NWID_HORIZONTAL),
278 NWidget(NWID_SPACER), SetMinimalSize(2, 0),
279 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_TOTAL_LABELS), SetMinimalSize(95, 34),
280 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_TOTAL_VALUES), SetMinimalSize(86, 34),
281 NWidget(WWT_EMPTY, COLOUR_GREY, CFW_TOTAL_MAXLOAN), SetMinimalSize(97, 0),
282 EndContainer(),
283 EndContainer(),
284 NWidget(NWID_HORIZONTAL),
285 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, CFW_INCREASE_LOAN), SetMinimalSize(140, 12), SetDataTip(STR_7029_BORROW, STR_7035_INCREASE_SIZE_OF_LOAN),
286 NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, CFW_REPAY_LOAN), SetMinimalSize(140, 12), SetDataTip(STR_702A_REPAY, STR_7036_REPAY_PART_OF_LOAN),
287 EndContainer(),
288 };
289
230 static const Widget _company_finances_small_widgets[] = { 290 static const Widget _company_finances_small_widgets[] = {
231 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // CFW_CLOSEBOX 291 { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // CFW_CLOSEBOX
232 { WWT_CAPTION, RESIZE_NONE, COLOUR_GREY, 11, 253, 0, 13, STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS}, // CFW_CAPTION 292 { WWT_CAPTION, RESIZE_NONE, COLOUR_GREY, 11, 253, 0, 13, STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS}, // CFW_CAPTION
233 { WWT_IMGBTN, RESIZE_NONE, COLOUR_GREY, 254, 267, 0, 13, SPR_LARGE_SMALL_WINDOW, STR_7075_TOGGLE_LARGE_SMALL_WINDOW}, // CFW_TOGGLE_SIZE 293 { WWT_IMGBTN, RESIZE_NONE, COLOUR_GREY, 254, 267, 0, 13, SPR_LARGE_SMALL_WINDOW, STR_7075_TOGGLE_LARGE_SMALL_WINDOW}, // CFW_TOGGLE_SIZE
234 { WWT_STICKYBOX, RESIZE_NONE, COLOUR_GREY, 268, 279, 0, 13, 0x0, STR_STICKY_BUTTON}, // CFW_STICKY 294 { WWT_STICKYBOX, RESIZE_NONE, COLOUR_GREY, 268, 279, 0, 13, 0x0, STR_STICKY_BUTTON}, // CFW_STICKY
272 CompanyID company = (CompanyID)this->window_number; 332 CompanyID company = (CompanyID)this->window_number;
273 const Company *c = GetCompany(company); 333 const Company *c = GetCompany(company);
274 334
275 if (!small) { 335 if (!small) {
276 int type = _settings_client.gui.expenses_layout; 336 int type = _settings_client.gui.expenses_layout;
337 if (this->widget[CFW_EXPS_PANEL].bottom < this->widget[CFW_EXPS_PANEL].top) {
338 this->widget[CFW_EXPS_PANEL].bottom = this->widget[CFW_EXPS_PANEL].top;
339 }
277 int height = this->widget[CFW_EXPS_PANEL].bottom - this->widget[CFW_EXPS_PANEL].top + 1; 340 int height = this->widget[CFW_EXPS_PANEL].bottom - this->widget[CFW_EXPS_PANEL].top + 1;
278 if (_expenses_list_types[type].height + 26 != height) { 341 if (_expenses_list_types[type].height + 26 != height) {
279 this->SetDirty(); 342 this->SetDirty();
280 ResizeWindowForWidget(this, CFW_EXPS_PANEL, 0, _expenses_list_types[type].height - height + 26); 343 ResizeWindowForWidget(this, CFW_EXPS_PANEL, 0, _expenses_list_types[type].height - height + 26);
281 this->SetDirty(); 344 this->SetDirty();
338 401
339 static const WindowDesc _company_finances_desc( 402 static const WindowDesc _company_finances_desc(
340 WDP_AUTO, WDP_AUTO, 407, 60, 407, 60, 403 WDP_AUTO, WDP_AUTO, 407, 60, 407, 60,
341 WC_FINANCES, WC_NONE, 404 WC_FINANCES, WC_NONE,
342 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON, 405 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON,
343 _company_finances_widgets 406 _company_finances_widgets, _nested_company_finances_widgets, lengthof(_nested_company_finances_widgets)
344 ); 407 );
345 408
346 static const WindowDesc _company_finances_small_desc( 409 static const WindowDesc _company_finances_small_desc(
347 WDP_AUTO, WDP_AUTO, 280, 60, 280, 60, 410 WDP_AUTO, WDP_AUTO, 280, 60, 280, 60,
348 WC_FINANCES, WC_NONE, 411 WC_FINANCES, WC_NONE,
349 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON, 412 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON,
350 _company_finances_small_widgets 413 _company_finances_small_widgets, _nested_company_finances_small_widgets, lengthof(_nested_company_finances_small_widgets)
351 ); 414 );
352 415
353 /** 416 /**
354 * Open the small/large finance window of the company 417 * Open the small/large finance window of the company
355 * 418 *