mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 22:28:56 +00:00
(svn r6669) -Add: vararg functions to set hidden/disabled/lowered state of multiple widgets in one call
This commit is contained in:
parent
592ed98a19
commit
30e0a8e952
43
window.c
43
window.c
@ -1,6 +1,7 @@
|
|||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
#include <stdarg.h>
|
||||||
#include "openttd.h"
|
#include "openttd.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "functions.h"
|
#include "functions.h"
|
||||||
@ -17,6 +18,48 @@
|
|||||||
// delta between mouse cursor and upper left corner of dragged window
|
// delta between mouse cursor and upper left corner of dragged window
|
||||||
static Point _drag_delta;
|
static Point _drag_delta;
|
||||||
|
|
||||||
|
void CDECL SetWindowWidgetsDisabledState(Window *w, bool disab_stat, int widgets, ...)
|
||||||
|
{
|
||||||
|
va_list wdg_list;
|
||||||
|
|
||||||
|
va_start(wdg_list, widgets);
|
||||||
|
|
||||||
|
while (widgets != WIDGET_LIST_END) {
|
||||||
|
SetWindowWidgetHiddenState(w, widgets, disab_stat);
|
||||||
|
widgets = va_arg(wdg_list, int);
|
||||||
|
}
|
||||||
|
|
||||||
|
va_end(wdg_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CDECL SetWindowWidgetsHiddenState(Window *w, bool hidden_stat, int widgets, ...)
|
||||||
|
{
|
||||||
|
va_list wdg_list;
|
||||||
|
|
||||||
|
va_start(wdg_list, widgets);
|
||||||
|
|
||||||
|
while (widgets != WIDGET_LIST_END) {
|
||||||
|
SetWindowWidgetHiddenState(w, widgets, hidden_stat);
|
||||||
|
widgets = va_arg(wdg_list, int);
|
||||||
|
}
|
||||||
|
|
||||||
|
va_end(wdg_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CDECL SetWindowWidgetsLoweredState(Window *w, bool lowered_stat, int widgets, ...)
|
||||||
|
{
|
||||||
|
va_list wdg_list;
|
||||||
|
|
||||||
|
va_start(wdg_list, widgets);
|
||||||
|
|
||||||
|
while (widgets != WIDGET_LIST_END) {
|
||||||
|
SetWindowWidgetLoweredState(w, widgets, lowered_stat);
|
||||||
|
widgets = va_arg(wdg_list, int);
|
||||||
|
}
|
||||||
|
|
||||||
|
va_end(wdg_list);
|
||||||
|
}
|
||||||
|
|
||||||
void RaiseWindowButtons(Window *w)
|
void RaiseWindowButtons(Window *w)
|
||||||
{
|
{
|
||||||
const Widget *wi = w->widget;
|
const Widget *wi = w->widget;
|
||||||
|
8
window.h
8
window.h
@ -62,6 +62,11 @@ enum ResizeFlags {
|
|||||||
WIDG_LOWERED = 6, // widget is paint lowered, a pressed button in fact
|
WIDG_LOWERED = 6, // widget is paint lowered, a pressed button in fact
|
||||||
} ResizeFlag;
|
} ResizeFlag;
|
||||||
|
|
||||||
|
/* used to indicate the end of widgets' list for vararg functions */
|
||||||
|
enum {
|
||||||
|
WIDGET_LIST_END = -1,
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct Widget {
|
typedef struct Widget {
|
||||||
byte type; ///< Widget type, see @WindowWidgetTypes
|
byte type; ///< Widget type, see @WindowWidgetTypes
|
||||||
byte display_flags; ///< Resize direction, alignment, etc. during resizing, see @ResizeFlags
|
byte display_flags; ///< Resize direction, alignment, etc. during resizing, see @ResizeFlags
|
||||||
@ -783,6 +788,9 @@ void InvalidateWindowData(WindowClass cls, WindowNumber number);
|
|||||||
void RaiseWindowButtons(Window *w);
|
void RaiseWindowButtons(Window *w);
|
||||||
void RelocateAllWindows(int neww, int newh);
|
void RelocateAllWindows(int neww, int newh);
|
||||||
int PositionMainToolbar(Window *w);
|
int PositionMainToolbar(Window *w);
|
||||||
|
void CDECL SetWindowWidgetsDisabledState(Window *w, bool disab_stat, int widgets, ...);
|
||||||
|
void CDECL SetWindowWidgetsHiddenState(Window *w, bool hidden_stat, int widgets, ...);
|
||||||
|
void CDECL SetWindowWidgetsLoweredState(Window *w, bool lowered_stat, int widgets, ...);
|
||||||
|
|
||||||
/* misc_gui.c*/
|
/* misc_gui.c*/
|
||||||
void GuiShowTooltips(StringID string_id);
|
void GuiShowTooltips(StringID string_id);
|
||||||
|
Loading…
Reference in New Issue
Block a user