ManaPlus
Public Member Functions | Private Member Functions | Private Attributes
SetupWindow Class Reference

#include <setupwindow.h>

Inheritance diagram for SetupWindow:
Window ActionListener BasicContainer2 MouseListener WidgetListener BasicContainer Widget WidgetDeathListener Widget2

Public Member Functions

 SetupWindow ()
 
 ~SetupWindow ()
 
void postInit ()
 
void action (const ActionEvent &event)
 
void setInGame (const bool inGame)
 
void externalUpdate ()
 
void externalUnload ()
 
void registerWindowForReset (Window *const window)
 
void unregisterWindowForReset (const Window *const window)
 
void hideWindows ()
 
void clearWindowsForReset ()
 
void doCancel ()
 
void activateTab (const std::string &name)
 
void setVisible (Visible visible)
 
void widgetResized (const Event &event)
 
- Public Member Functions inherited from Window
 Window (const std::string &caption="Window", const Modal modal=Modal_false, Window *const parent=0, std::string skin="")
 
virtual ~Window ()
 
void draw (Graphics *const graphics)
 
void safeDraw (Graphics *const graphics)
 
void setContentSize (int width, int height)
 
void setLocationRelativeTo (const Widget *const widget)
 
void setLocationHorisontallyRelativeTo (const Widget *const widget)
 
void setLocationRelativeTo (const ImagePosition::Type &position, int offsetX=0, int offsetY=0)
 
void setResizable (const bool resize)
 
void redraw ()
 
void widgetMoved (const Event &event)
 
void widgetHidden (const Event &event)
 
void setCloseButton (const bool flag)
 
bool getCloseButton () const
 
void setAllowClose (const bool b)
 
bool getAlowClose () const
 
bool isResizable () const
 
void setMinWidth (const int width)
 
int getMinWidth () const
 
void setMinHeight (const int height)
 
int getMinHeight () const
 
void setMaxWidth (const int width)
 
int getMaxWidth () const
 
void setMaxHeight (const int height)
 
int getMaxHeight () const
 
void setShowTitle (bool flag)
 
void setStickyButton (const bool flag)
 
void setSticky (const bool sticky)
 
bool isSticky () const
 
void setStickyButtonLock (const bool sticky)
 
bool isStickyButtonLock () const
 
void setVisible (const Visible visible, const bool forceSticky)
 
bool isDefaultVisible () const
 
void setDefaultVisible (const bool save)
 
bool willSaveVisible () const
 
void setSaveVisible (const bool save)
 
WindowgetParentWindow () const
 
virtual void scheduleDelete ()
 
void mousePressed (MouseEvent &event)
 
void mouseDragged (MouseEvent &event)
 
void mouseMoved (MouseEvent &event)
 
void mouseReleased (MouseEvent &event)
 
void mouseExited (MouseEvent &event)
 
void mouseEntered (MouseEvent &event)
 
void updateResizeHandler (MouseEvent &event)
 
void setWindowName (const std::string &name)
 
const std::string & getWindowName () const
 
void loadWindowState ()
 
void saveWindowState ()
 
void setDefaultSize (const int defaultX, const int defaultY, int defaultWidth, int defaultHeight)
 
void setDefaultSize ()
 
void setDefaultSize (const int defaultWidth, const int defaultHeight, const ImagePosition::Type &position, const int offsetx=0, const int offsetY=0)
 
virtual void resetToDefaultSize ()
 
void adjustPositionAfterResize (const int oldScreenWidth, const int oldScreenHeight)
 
LayoutgetLayout ()
 
void clearLayout ()
 
void reflowLayout (int w=0, int h=0)
 
LayoutCellplace (const int x, const int y, Widget *const wg, const int w=1, const int h=1)
 
ContainerPlacer getPlacer (const int x, const int y)
 
void center ()
 
void centerHorisontally ()
 
virtual void close ()
 
void setModal (const Modal modal)
 
Rect getWindowArea () const
 
bool isResizeAllowed (const MouseEvent &event) const
 
void setCaptionFont (Font *font)
 
void enableVisibleSound (bool b)
 
bool isWindowVisible () const
 
void setPadding (int padding)
 
int getPadding () const
 
void setTitleBarHeight (unsigned int height)
 
unsigned int getTitleBarHeight () const
 
void setCaption (const std::string &caption)
 
const std::string & getCaption () const
 
void setAlignment (Graphics::Alignment alignment)
 
Graphics::Alignment getAlignment () const
 
void setMovable (Move movable)
 
bool isMovable () const
 
Rect getChildrenArea ()
 
virtual void resizeToContent ()
 
- Public Member Functions inherited from BasicContainer2
 BasicContainer2 (const Widget2 *const widget)
 
virtual ~BasicContainer2 ()
 
void setOpaque (Opaque opaque)
 
bool isOpaque () const
 
virtual void add (Widget *const widget)
 
void addXY (Widget *const widget, const int x, const int y)
 
- Public Member Functions inherited from BasicContainer
 BasicContainer (const Widget2 *const widget)
 
virtual ~BasicContainer ()
 
void showWidgetPart (Widget *const widget, const Rect &area)
 
void moveToTop (Widget *const widget)
 
void moveToBottom (Widget *const widget)
 
void focusNext ()
 
void focusPrevious ()
 
void logic ()
 
void setFocusHandler (FocusHandler *const focusHandler)
 
void setInternalFocusHandler (FocusHandler *const focusHandler)
 
WidgetgetWidgetAt (int x, int y)
 
void death (const Event &event)
 
WidgetfindFirstWidget (const std::set< Widget *> &list)
 
void add (Widget *const widget)
 
virtual void remove (Widget *const widget)
 
virtual void clear ()
 
- Public Member Functions inherited from Widget
 Widget (const Widget2 *const widget)
 
virtual ~Widget ()
 
virtual void drawFrame (Graphics *graphics)
 
virtual void safeDrawFrame (Graphics *graphics)
 
void setFrameSize (const unsigned int frameSize)
 
unsigned int getFrameSize () const
 
WidgetgetParent () const
 
void setWidth (const int width)
 
int getWidth () const
 
void setHeight (const int height)
 
int getHeight () const
 
void setSize (const int width, const int height)
 
void setX (const int x)
 
int getX () const
 
void setY (const int y)
 
int getY () const
 
void setPosition (const int x, const int y)
 
void setDimension (const Rect &dimension)
 
const RectgetDimension () const
 
void setFocusable (const bool focusable)
 
bool isFocusable () const
 
virtual bool isFocused () const
 
void setEnabled (const bool enabled)
 
bool isEnabled () const
 
void setVisible (Visible visible)
 
bool isVisible () const
 
void setBaseColor (const Color &color)
 
const ColorgetBaseColor () const
 
void setForegroundColor (const Color &color)
 
const ColorgetForegroundColor () const
 
void setBackgroundColor (const Color &color)
 
const ColorgetBackgroundColor () const
 
virtual void requestFocus ()
 
virtual void requestMoveToTop ()
 
virtual void requestMoveToBottom ()
 
FocusHandlergetFocusHandler ()
 
void addActionListener (ActionListener *const actionListener)
 
void removeActionListener (ActionListener *const actionListener)
 
void addDeathListener (WidgetDeathListener *const deathListener)
 
void removeDeathListener (WidgetDeathListener *const deathListener)
 
void addMouseListener (MouseListener *const mouseListener)
 
void removeMouseListener (MouseListener *const mouseListener)
 
void addKeyListener (KeyListener *const keyListener)
 
void removeKeyListener (KeyListener *const keyListener)
 
void addFocusListener (FocusListener *const focusListener)
 
void removeFocusListener (FocusListener *const focusListener)
 
void addWidgetListener (WidgetListener *const widgetListener)
 
void removeWidgetListener (WidgetListener *const widgetListener)
 
void setActionEventId (const std::string &actionEventId)
 
const std::string & getActionEventId () const
 
virtual void getAbsolutePosition (int &x, int &y) const
 
virtual void setParent (Widget *parent)
 
FontgetFont () const
 
void setFont (Font *const font)
 
virtual void fontChanged ()
 
bool isTabInEnabled () const
 
void setTabInEnabled (const bool enabled)
 
bool isTabOutEnabled () const
 
void setTabOutEnabled (const bool enabled)
 
void requestModalFocus ()
 
virtual void requestModalMouseInputFocus ()
 
virtual void releaseModalFocus ()
 
virtual void releaseModalMouseInputFocus ()
 
virtual bool isModalFocused () const
 
virtual bool isModalMouseInputFocused () const
 
const std::list< MouseListener * > & getMouseListeners () const A_CONST
 
const std::list< KeyListener * > & getKeyListeners () const A_CONST
 
const std::list< FocusListener * > & getFocusListeners () const A_CONST
 
virtual FocusHandlergetInternalFocusHandler ()
 
void setInternalFocusHandler (FocusHandler *const internalFocusHandler)
 
void setId (const std::string &id)
 
const std::string & getId () const
 
virtual void showPart (const Rect &rectangle)
 
bool isAllowLogic () const
 
void setMouseConsume (const bool b)
 
bool isMouseConsume () const
 
void setRedraw (const bool b)
 
virtual bool isSelectable () const
 
void setSelectable (const bool selectable)
 
void windowResized ()
 
- Public Member Functions inherited from Widget2
virtual ~Widget2 ()
 
const ColorgetThemeColor (const ThemeColorIdT type, const unsigned int alpha=255U) const A_INLINE
 
const ColorgetThemeCharColor (const signed char c, bool &valid) const A_INLINE
 
virtual void setWidget2 (const Widget2 *const widget)
 
void setPalette (int palette)
 
void checkPalette ()
 
void setForegroundColor2 (const Color &color)
 
WidgetgetWindow () const
 
virtual void setWindow (Widget *const window)
 
- Public Member Functions inherited from WidgetDeathListener
virtual ~WidgetDeathListener ()
 
- Public Member Functions inherited from MouseListener
virtual ~MouseListener ()
 
virtual void mouseClicked (MouseEvent &event)
 
virtual void mouseWheelMovedUp (MouseEvent &event)
 
virtual void mouseWheelMovedDown (MouseEvent &event)
 
- Public Member Functions inherited from WidgetListener
virtual ~WidgetListener ()
 
virtual void widgetShown (const Event &event)
 
- Public Member Functions inherited from ActionListener
virtual ~ActionListener ()
 

Private Member Functions

void unloadAdditionalTabs ()
 
void unloadTab (SetupTab *const page)
 

Private Attributes

std::list< SetupTab * > mTabs
 
std::list< Window * > mWindowsToReset
 
std::vector< Button * > mButtons
 
SetupTabmModsTab
 
SetupTabmQuickTab
 
ButtonmResetWindows
 
TabbedAreamPanel
 
LabelmVersion
 
int mButtonPadding
 

Additional Inherited Members

- Static Public Member Functions inherited from Window
static void setWindowContainer (WindowContainer *const windowContainer)
 
- Static Public Member Functions inherited from Widget
static void setGlobalFont (Font *const font)
 
static FontgetGloablFont ()
 
static void cleanGlobalFont ()
 
static bool widgetExists (const Widget *const widget)
 
static void distributeWindowResizeEvent ()
 
static WidgetcallPostInit (Widget *const widget)
 
- Data Fields inherited from Widget
Visible mVisible
 
- Protected Types inherited from BasicContainer
typedef std::vector< Widget * > WidgetList
 
typedef WidgetList::iterator WidgetListIterator
 
typedef WidgetList::const_iterator WidgetListConstIterator
 
typedef WidgetList::reverse_iterator WidgetListReverseIterator
 
typedef WidgetList::const_reverse_iterator WidgetListCReverseIterator
 
- Protected Types inherited from Widget
typedef std::list< MouseListener * > MouseListenerList
 
typedef MouseListenerList::iterator MouseListenerIterator
 
typedef std::list< KeyListener * > KeyListenerList
 
typedef KeyListenerList::iterator KeyListenerIterator
 
typedef std::list< ActionListener * > ActionListenerList
 
typedef ActionListenerList::iterator ActionListenerIterator
 
typedef std::list< WidgetDeathListener * > WidgetDeathListenerList
 
typedef WidgetDeathListenerList::iterator WidgetDeathListenerIterator
 
typedef std::list< FocusListener * > FocusListenerList
 
typedef FocusListenerList::iterator FocusListenerIterator
 
typedef std::list< WidgetListener * > WidgetListenerList
 
typedef WidgetListenerList::iterator WidgetListenerIterator
 
- Protected Member Functions inherited from Window
bool canMove () const
 
int getOption (const std::string &name, const int def=0) const
 
bool getOptionBool (const std::string &name, const bool def=false) const
 
void setTitlePadding (const int p)
 
int getTitlePadding () const
 
- Protected Member Functions inherited from BasicContainer
virtual void drawChildren (Graphics *const graphics)
 
virtual void safeDrawChildren (Graphics *const graphics)
 
virtual void logicChildren ()
 
- Protected Member Functions inherited from Widget
void distributeActionEvent ()
 
void distributeResizedEvent ()
 
void distributeMovedEvent ()
 
void distributeHiddenEvent ()
 
void distributeShownEvent ()
 
- Protected Member Functions inherited from Widget2
 Widget2 (const Widget2 *const widget)
 
- Protected Member Functions inherited from WidgetDeathListener
 WidgetDeathListener ()
 
- Protected Member Functions inherited from MouseListener
 MouseListener ()
 
- Protected Member Functions inherited from WidgetListener
 WidgetListener ()
 
- Protected Member Functions inherited from ActionListener
 ActionListener ()
 
- Protected Attributes inherited from Window
std::string mCaption
 
Graphics::Alignment mAlignment
 
int mPadding
 
unsigned int mTitleBarHeight
 
Move mMovable
 
int mDragOffsetX
 
int mDragOffsetY
 
bool mMoved
 
SkinmSkin
 
int mDefaultX
 
int mDefaultY
 
int mDefaultWidth
 
int mDefaultHeight
 
int mCaptionOffsetX
 
int mCaptionOffsetY
 
bool mShowTitle
 
bool mLastRedraw
 
- Protected Attributes inherited from BasicContainer2
Opaque mOpaque
 
- Protected Attributes inherited from BasicContainer
WidgetList mWidgets
 
WidgetList mLogicWidgets
 
- Protected Attributes inherited from Widget
MouseListenerList mMouseListeners
 
KeyListenerList mKeyListeners
 
ActionListenerList mActionListeners
 
WidgetDeathListenerList mDeathListeners
 
FocusListenerList mFocusListeners
 
WidgetListenerList mWidgetListeners
 
Color mForegroundColor
 
Color mBackgroundColor
 
Color mBaseColor
 
Rect mDimension
 
std::string mActionEventId
 
std::string mId
 
FocusHandlermFocusHandler
 
FocusHandlermInternalFocusHandler
 
WidgetmParent
 
FontmCurrentFont
 
unsigned int mFrameSize
 
bool mFocusable
 
bool mTabIn
 
bool mTabOut
 
bool mEnabled
 
bool mAllowLogic
 
bool mMouseConsume
 
bool mRedraw
 
bool mSelectable
 
- Protected Attributes inherited from Widget2
int mPaletteOffset
 
WidgetmWindow
 
Color mForegroundColor2
 
- Static Protected Attributes inherited from Widget
static FontmGlobalFont = 0
 

Detailed Description

The setup dialog. Displays several tabs for configuring different aspects of the game.

Definition at line 41 of file setupwindow.h.

Constructor & Destructor Documentation

◆ SetupWindow()

SetupWindow::SetupWindow ( )

Definition at line 65 of file setupwindow.cpp.

References Window::setCloseButton(), Window::setResizable(), and Window::setStickyButtonLock().

65  :
66  // TRANSLATORS: setup window name
67  Window(_("Setup"), Modal_false, nullptr, "setup.xml"),
69  mTabs(),
71  mButtons(),
72  mModsTab(nullptr),
73  mQuickTab(nullptr),
74  mResetWindows(nullptr),
76  mVersion(new Label(this, FULL_VERSION)),
78 {
79  setCloseButton(true);
80  setResizable(true);
81  setStickyButtonLock(true);
82 }
#define _(s)
Definition: gettext.h:34
SetupTab * mModsTab
Definition: setupwindow.h:86
Label * mVersion
Definition: setupwindow.h:90
std::vector< Button * > mButtons
Definition: setupwindow.h:85
int mButtonPadding
Definition: setupwindow.h:91
Definition: label.h:87
SetupTab * mQuickTab
Definition: setupwindow.h:87
void setCloseButton(const bool flag)
Definition: window.cpp:737
#define FULL_VERSION
Definition: main.h:163
void setResizable(const bool resize)
Definition: window.cpp:615
void setStickyButtonLock(const bool sticky)
Definition: window.cpp:760
#define CREATEWIDGETR(type,...)
Definition: createwidget.h:35
Window(const std::string &caption="Window", const Modal modal=Modal_false, Window *const parent=0, std::string skin="")
Definition: window.cpp:108
TabbedArea * mPanel
Definition: setupwindow.h:89
std::list< Window * > mWindowsToReset
Definition: setupwindow.h:84
std::list< SetupTab * > mTabs
Definition: setupwindow.h:83
Button * mResetWindows
Definition: setupwindow.h:88

◆ ~SetupWindow()

SetupWindow::~SetupWindow ( )

Definition at line 172 of file setupwindow.cpp.

References delete_all(), mButtons, and mTabs.

173 {
174  delete_all(mTabs);
175  mButtons.clear();
176  setupWindow = nullptr;
177 }
std::vector< Button * > mButtons
Definition: setupwindow.h:85
void delete_all(Container &c)
Definition: dtor.h:55
SetupWindow * setupWindow
Definition: setupwindow.cpp:63
std::list< SetupTab * > mTabs
Definition: setupwindow.h:83

Member Function Documentation

◆ action()

void SetupWindow::action ( const ActionEvent actionEvent)
virtual

Called when an action is recieved from a widget. It is used to be able to recieve a notification that an action has occured.

Parameters
actionEventThe event of the action.

Implements ActionListener.

Definition at line 179 of file setupwindow.cpp.

References SetupTab::apply(), chatWindow, config, doCancel(), FOR_EACH, Game::instance(), mTabs, mWindowsToReset, Game::resetAdjustLevel(), ChatWindow::saveState(), serverConfig, setVisible(), statusWindow, Visible_false, and Configuration::write().

Referenced by Actions::getAmountFromEvent().

180 {
181  if (Game::instance() != nullptr)
183  const std::string &eventId = event.getId();
184 
185  if (eventId == "Apply")
186  {
188  for_each(mTabs.begin(), mTabs.end(), std::mem_fun(&SetupTab::apply));
189  }
190  else if (eventId == "Cancel")
191  {
192  doCancel();
193  }
194  else if (eventId == "Store")
195  {
196  if (chatWindow != nullptr)
198  config.write();
200  }
201  else if (eventId == "Reset Windows")
202  {
203  // Bail out if this action happens to be activated before the windows
204  // are created (though it should be disabled then)
205  if (statusWindow == nullptr)
206  return;
207 
208  FOR_EACH (std::list<Window*>::const_iterator, it, mWindowsToReset)
209  {
210  if (*it != nullptr)
211  (*it)->resetToDefaultSize();
212  }
213  }
214 }
ChatWindow * chatWindow
Definition: chatwindow.cpp:88
#define FOR_EACH(type, iter, array)
Definition: foreach.h:24
virtual void apply()=0
Configuration config
StatusWindow * statusWindow
Configuration serverConfig
const bool Visible_false
Definition: visible.h:29
void saveState() const
void doCancel()
void setVisible(Visible visible)
static Game * instance()
Definition: game.h:81
std::list< Window * > mWindowsToReset
Definition: setupwindow.h:84
std::list< SetupTab * > mTabs
Definition: setupwindow.h:83
void resetAdjustLevel()
Definition: game.cpp:856

◆ activateTab()

void SetupWindow::activateTab ( const std::string &  name)

Definition at line 299 of file setupwindow.cpp.

References mPanel, and TabbedArea::setSelectedTabByName().

Referenced by clearWindowsForReset(), Client::optionChanged(), and Actions::showHideWindow().

300 {
301  std::string tmp = gettext(name.c_str());
303 }
void setSelectedTabByName(const std::string &name)
Definition: tabbedarea.cpp:453
TabbedArea * mPanel
Definition: setupwindow.h:89

◆ clearWindowsForReset()

void SetupWindow::clearWindowsForReset ( )
inline

Definition at line 67 of file setupwindow.h.

References activateTab(), doCancel(), mWindowsToReset, setVisible(), unloadAdditionalTabs(), unloadTab(), and widgetResized().

Referenced by createGuiWindows().

68  { mWindowsToReset.clear(); }
std::list< Window * > mWindowsToReset
Definition: setupwindow.h:84

◆ doCancel()

void SetupWindow::doCancel ( )

Definition at line 293 of file setupwindow.cpp.

References SetupTab::cancel(), mTabs, setVisible(), and Visible_false.

Referenced by action(), clearWindowsForReset(), and Actions::showHideWindow().

294 {
296  for_each(mTabs.begin(), mTabs.end(), std::mem_fun(&SetupTab::cancel));
297 }
const bool Visible_false
Definition: visible.h:29
void setVisible(Visible visible)
virtual void cancel()=0
std::list< SetupTab * > mTabs
Definition: setupwindow.h:83

◆ externalUnload()

void SetupWindow::externalUnload ( )

Definition at line 255 of file setupwindow.cpp.

References FOR_EACH, mTabs, and unloadAdditionalTabs().

Referenced by Client::stateSwitchLogin1().

256 {
257  FOR_EACH (std::list<SetupTab*>::const_iterator, it, mTabs)
258  {
259  if (*it != nullptr)
260  (*it)->externalUnloaded();
261  }
263 }
#define FOR_EACH(type, iter, array)
Definition: foreach.h:24
void unloadAdditionalTabs()
std::list< SetupTab * > mTabs
Definition: setupwindow.h:83

◆ externalUpdate()

void SetupWindow::externalUpdate ( )

Definition at line 222 of file setupwindow.cpp.

References TabbedArea::addTab(), FOR_EACH, SetupTab::getName(), mModsTab, mPanel, mQuickTab, mTabs, and unloadAdditionalTabs().

Referenced by createGuiWindows().

223 {
225  mModsTab = new Setup_Mods(this);
226  mTabs.push_back(mModsTab);
228  mQuickTab = new Setup_Quick(this);
229  mTabs.push_back(mQuickTab);
231  FOR_EACH (std::list<SetupTab*>::const_iterator, it, mTabs)
232  {
233  if (*it != nullptr)
234  (*it)->externalUpdated();
235  }
236 }
const std::string & getName() const
Definition: setuptab.h:43
#define FOR_EACH(type, iter, array)
Definition: foreach.h:24
SetupTab * mModsTab
Definition: setupwindow.h:86
void unloadAdditionalTabs()
SetupTab * mQuickTab
Definition: setupwindow.h:87
TabbedArea * mPanel
Definition: setupwindow.h:89
std::list< SetupTab * > mTabs
Definition: setupwindow.h:83
void addTab(Tab *const tab, Widget *const widget)
Definition: tabbedarea.cpp:229

◆ hideWindows()

void SetupWindow::hideWindows ( )

Definition at line 282 of file setupwindow.cpp.

References FOR_EACH, Window::isSticky(), mWindowsToReset, setVisible(), Window::setVisible(), and Visible_false.

283 {
284  FOR_EACH (std::list<Window*>::const_iterator, it, mWindowsToReset)
285  {
286  Window *const window = *it;
287  if ((window != nullptr) && !window->isSticky())
288  window->setVisible(Visible_false);
289  }
291 }
#define FOR_EACH(type, iter, array)
Definition: foreach.h:24
Definition: window.h:98
const bool Visible_false
Definition: visible.h:29
void setVisible(Visible visible)
virtual void setVisible(Visible visible)
Definition: window.cpp:766
bool isSticky() const
Definition: window.h:251
std::list< Window * > mWindowsToReset
Definition: setupwindow.h:84

◆ postInit()

void SetupWindow::postInit ( )
virtual

Reimplemented from Window.

Definition at line 84 of file setupwindow.cpp.

References BasicContainer2::add(), TabbedArea::addTab(), Window::center(), config, TabbedArea::enableScrollButtons(), Window::enableVisibleSound(), FOR_EACH, Widget::getHeight(), Configuration::getIntValue(), SetupTab::getName(), Window::getOption(), TabbedArea::getTabContainer(), TabbedArea::getWidgetContainer(), Widget::getWidth(), mButtonPadding, mButtons, mPanel, mResetWindows, mTabs, mVersion, N_, Window::postInit(), Window::setContentSize(), TabbedArea::setDimension(), setInGame(), Window::setMinHeight(), Window::setMinWidth(), Widget::setPosition(), Widget::setSelectable(), widgetResized(), and x.

85 {
87  int width = 620;
88  const int height = 450;
89 
90  if (config.getIntValue("screenwidth") >= 730)
91  width += 100;
92 
93  setContentSize(width, height);
94  setMinWidth(310);
95  setMinHeight(210);
96 
97  mPanel->setSelectable(false);
100 
101  static const char *const buttonNames[] =
102  {
103  // TRANSLATORS: setup button
104  N_("Apply"),
105  // TRANSLATORS: setup button
106  N_("Cancel"),
107  // TRANSLATORS: setup button
108  N_("Store"),
109  // TRANSLATORS: setup button
110  N_("Reset Windows"),
111  nullptr
112  };
113  int x = width;
114  mButtonPadding = getOption("buttonPadding", 5);
115  for (const char *const * curBtn = buttonNames;
116  *curBtn != nullptr;
117  ++ curBtn)
118  {
119  Button *const btn = new Button(this, gettext(*curBtn), *curBtn, this);
120  mButtons.push_back(btn);
121  x -= btn->getWidth() + mButtonPadding;
122  btn->setPosition(x, height - btn->getHeight() - mButtonPadding);
123  add(btn);
124 
125  // Store this button, as it needs to be enabled/disabled
126  if (strcmp(*curBtn, "Reset Windows") == 0)
127  mResetWindows = btn;
128  }
129 
130  mPanel->setDimension(Rect(5, 5, width - 10, height - 40));
132 
133  mTabs.push_back(new Setup_Video(this));
134  mTabs.push_back(new Setup_Visual(this));
135  mTabs.push_back(new Setup_Audio(this));
136  mTabs.push_back(new Setup_Perfomance(this));
137  mTabs.push_back(new Setup_Touch(this));
138  mTabs.push_back(new Setup_Input(this));
139  mTabs.push_back(new Setup_Joystick(this));
140  mTabs.push_back(new Setup_Colors(this));
141  mTabs.push_back(new Setup_Chat(this));
142  mTabs.push_back(new Setup_Players(this));
143  mTabs.push_back(new Setup_Relations(this));
144  mTabs.push_back(new Setup_Theme(this));
145  mTabs.push_back(new Setup_Misc(this));
146 
147  FOR_EACH (std::list<SetupTab*>::const_iterator, i, mTabs)
148  {
149  SetupTab *const tab = *i;
150  mPanel->addTab(tab->getName(), tab);
151  }
152  add(mPanel);
153 
154  if (mResetWindows != nullptr)
155  {
157  height - mVersion->getHeight() - mResetWindows->getHeight() - 9);
158  }
159  else
160  {
161  mVersion->setPosition(9, height - mVersion->getHeight() - 30);
162  }
163  add(mVersion);
164 
165  center();
166 
167  widgetResized(Event(nullptr));
168  setInGame(false);
169  enableVisibleSound(true);
170 }
const std::string & getName() const
Definition: setuptab.h:43
#define FOR_EACH(type, iter, array)
Definition: foreach.h:24
int getWidth() const
Definition: widget.h:220
#define N_(s)
Definition: gettext.h:35
Label * mVersion
Definition: setupwindow.h:90
Definition: rect.h:72
void setMinWidth(const int width)
Definition: window.cpp:579
Definition: button.h:94
Configuration config
int getIntValue(const std::string &key) const
std::vector< Button * > mButtons
Definition: setupwindow.h:85
void enableScrollButtons(const bool enable)
Definition: tabbedarea.cpp:141
int mButtonPadding
Definition: setupwindow.h:91
void setSelectable(const bool selectable)
Definition: widget.h:947
void setContentSize(int width, int height)
Definition: window.cpp:484
Widget * getWidgetContainer() const
Definition: tabbedarea.h:243
Widget * getTabContainer() const
Definition: tabbedarea.h:240
void setInGame(const bool inGame)
void setDimension(const Rect &dimension)
Definition: tabbedarea.cpp:760
virtual void add(Widget *const widget)
void setPosition(const int x, const int y)
Definition: widget.cpp:160
void enableVisibleSound(bool b)
Definition: window.h:473
void setMinHeight(const int height)
Definition: window.cpp:592
void center()
Definition: window.cpp:1405
Definition: event.h:77
int getHeight() const
Definition: widget.h:239
void widgetResized(const Event &event)
int getOption(const std::string &name, const int def=0) const
Definition: window.cpp:1442
TabbedArea * mPanel
Definition: setupwindow.h:89
void postInit()
Definition: window.cpp:241
std::list< SetupTab * > mTabs
Definition: setupwindow.h:83
Button * mResetWindows
Definition: setupwindow.h:88
void addTab(Tab *const tab, Widget *const widget)
Definition: tabbedarea.cpp:229

◆ registerWindowForReset()

void SetupWindow::registerWindowForReset ( Window *const  window)

◆ setInGame()

void SetupWindow::setInGame ( const bool  inGame)

Definition at line 216 of file setupwindow.cpp.

References mResetWindows, and Widget::setEnabled().

Referenced by Game::Game(), and postInit().

217 {
218  if (mResetWindows != nullptr)
219  mResetWindows->setEnabled(inGame);
220 }
void setEnabled(const bool enabled)
Definition: widget.h:351
Button * mResetWindows
Definition: setupwindow.h:88

◆ setVisible()

void SetupWindow::setVisible ( Visible  visible)
virtual

Overloads window setVisible by Guichan to allow sticky window handling.

Reimplemented from Window.

Definition at line 305 of file setupwindow.cpp.

References TouchManager::setTempHide(), Window::setVisible(), touchManager, and Visible_true.

Referenced by action(), clearWindowsForReset(), doCancel(), hideWindows(), Client::optionChanged(), and Actions::showHideWindow().

306 {
308  Window::setVisible(visible);
309 }
const bool Visible_true
Definition: visible.h:29
void setTempHide(const bool b)
virtual void setVisible(Visible visible)
Definition: window.cpp:766
TouchManager touchManager

◆ unloadAdditionalTabs()

void SetupWindow::unloadAdditionalTabs ( )
private

Definition at line 247 of file setupwindow.cpp.

References delete2, mModsTab, mQuickTab, and unloadTab().

Referenced by clearWindowsForReset(), externalUnload(), and externalUpdate().

248 {
251  delete2(mModsTab);
253 }
SetupTab * mModsTab
Definition: setupwindow.h:86
#define delete2(var)
Definition: delete2.h:24
void unloadTab(SetupTab *const page)
SetupTab * mQuickTab
Definition: setupwindow.h:87

◆ unloadTab()

void SetupWindow::unloadTab ( SetupTab *const  page)
private

Definition at line 238 of file setupwindow.cpp.

References SetupTab::getName(), TabbedArea::getTab(), mPanel, mTabs, and TabbedArea::removeTab().

Referenced by clearWindowsForReset(), and unloadAdditionalTabs().

239 {
240  if (page != nullptr)
241  {
242  mTabs.remove(page);
243  mPanel->removeTab(mPanel->getTab(page->getName()));
244  }
245 }
const std::string & getName() const
Definition: setuptab.h:43
void removeTab(Tab *const tab)
Definition: tabbedarea.cpp:314
Tab * getTab(const std::string &name) const
Definition: tabbedarea.cpp:165
TabbedArea * mPanel
Definition: setupwindow.h:89
std::list< SetupTab * > mTabs
Definition: setupwindow.h:83

◆ unregisterWindowForReset()

void SetupWindow::unregisterWindowForReset ( const Window *const  window)

Definition at line 270 of file setupwindow.cpp.

References FOR_EACH, and mWindowsToReset.

Referenced by Window::~Window().

271 {
272  FOR_EACH (std::list<Window*>::iterator, it, mWindowsToReset)
273  {
274  if (*it == window)
275  {
276  mWindowsToReset.erase(it);
277  return;
278  }
279  }
280 }
#define FOR_EACH(type, iter, array)
Definition: foreach.h:24
std::list< Window * > mWindowsToReset
Definition: setupwindow.h:84

◆ widgetResized()

void SetupWindow::widgetResized ( const Event event)
virtual

Called whenever the widget changes size.

Reimplemented from Window.

Definition at line 311 of file setupwindow.cpp.

References FOR_EACH, Window::getChildrenArea(), Widget::getHeight(), Widget::getWidth(), Rect::height, mButtonPadding, mButtons, mPanel, mResetWindows, mVersion, TabbedArea::setDimension(), Widget::setPosition(), Window::widgetResized(), Rect::width, and x.

Referenced by clearWindowsForReset(), and postInit().

312 {
313  Window::widgetResized(event);
314 
315  const Rect area = getChildrenArea();
316  int x = area.width;
317  const int height = area.height;
318  const int width = area.width;
319  mPanel->setDimension(Rect(5, 5, width - 10, height - 40));
320  FOR_EACH (STD_VECTOR<Button*>::iterator, it, mButtons)
321  {
322  Button *const btn = *it;
323  x -= btn->getWidth() + mButtonPadding;
324  btn->setPosition(x, height - btn->getHeight() - mButtonPadding);
325  }
326  if (mResetWindows != nullptr)
327  {
329  height - mVersion->getHeight() - mResetWindows->getHeight() - 9);
330  }
331  else
332  {
333  mVersion->setPosition(9, height - mVersion->getHeight() - 30);
334  }
335 }
#define FOR_EACH(type, iter, array)
Definition: foreach.h:24
int width
Definition: rect.h:218
int getWidth() const
Definition: widget.h:220
Rect getChildrenArea()
Definition: window.cpp:1461
Label * mVersion
Definition: setupwindow.h:90
Definition: rect.h:72
Definition: button.h:94
std::vector< Button * > mButtons
Definition: setupwindow.h:85
int mButtonPadding
Definition: setupwindow.h:91
void widgetResized(const Event &event)
Definition: window.cpp:643
void setDimension(const Rect &dimension)
Definition: tabbedarea.cpp:760
void setPosition(const int x, const int y)
Definition: widget.cpp:160
int height
Definition: rect.h:223
int getHeight() const
Definition: widget.h:239
TabbedArea * mPanel
Definition: setupwindow.h:89
Button * mResetWindows
Definition: setupwindow.h:88

Field Documentation

◆ mButtonPadding

int SetupWindow::mButtonPadding
private

Definition at line 91 of file setupwindow.h.

Referenced by postInit(), and widgetResized().

◆ mButtons

std::vector<Button*> SetupWindow::mButtons
private

Definition at line 85 of file setupwindow.h.

Referenced by postInit(), widgetResized(), and ~SetupWindow().

◆ mModsTab

SetupTab* SetupWindow::mModsTab
private

Definition at line 86 of file setupwindow.h.

Referenced by externalUpdate(), and unloadAdditionalTabs().

◆ mPanel

TabbedArea* SetupWindow::mPanel
private

Definition at line 89 of file setupwindow.h.

Referenced by activateTab(), externalUpdate(), postInit(), unloadTab(), and widgetResized().

◆ mQuickTab

SetupTab* SetupWindow::mQuickTab
private

Definition at line 87 of file setupwindow.h.

Referenced by externalUpdate(), and unloadAdditionalTabs().

◆ mResetWindows

Button* SetupWindow::mResetWindows
private

Definition at line 88 of file setupwindow.h.

Referenced by postInit(), setInGame(), and widgetResized().

◆ mTabs

std::list<SetupTab*> SetupWindow::mTabs
private

◆ mVersion

Label* SetupWindow::mVersion
private

Definition at line 90 of file setupwindow.h.

Referenced by postInit(), and widgetResized().

◆ mWindowsToReset

std::list<Window*> SetupWindow::mWindowsToReset
private

The documentation for this class was generated from the following files: