Files
usbloadergx/source/prompts/CheckboxPrompt.hpp

68 lines
2.3 KiB
C++

/****************************************************************************
* Copyright (C) 2010
* by Dimok
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any
* damages arising from the use of this software.
*
* Permission is granted to anyone to use this software for any
* purpose, including commercial applications, and to alter it and
* redistribute it freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you
* must not claim that you wrote the original software. If you use
* this software in a product, an acknowledgment in the product
* documentation would be appreciated but is not required.
*
* 2. Altered source versions must be plainly marked as such, and
* must not be misrepresented as being the original software.
*
* 3. This notice may not be removed or altered from any source
* distribution.
***************************************************************************/
#ifndef _CHECKBOXPROMPT_HPP_
#define _CHECKBOXPROMPT_HPP_
#include "GUI/gui_checkbox.hpp"
#include "PromptWindow.hpp"
enum
{
CheckedNone = -0x01,
CheckedBox1 = 0x01,
CheckedBox2 = 0x02,
CheckedBox3 = 0x04,
CheckedBox4 = 0x08,
CheckedBox5 = 0x10,
CheckedBox6 = 0x20,
};
class CheckboxPrompt : private PromptWindow, public sigslot::has_slots<>
{
public:
//! Constructor
CheckboxPrompt(const char * title = 0, const char *msg = 0);
//! Destructor
virtual ~CheckboxPrompt();
//! Add new checkbox
void AddCheckBox(const char *text, bool twoLines = false);
//! Default function to get the button pressed
int GetChoice();
//! Set a checkbox checked/unchecked
void SetChecked(int box, bool checked);
//! Show window and wait for the user to press OK/Cancel
static int Show(const char *title = 0, const char *msg = 0,
const char *chbx1 = 0, const char *chbx2 = 0,
const char *chbx3 = 0, const char *chbx4 = 0,
const char *chbx5 = 0, const char *chbx6 = 0,
int initChecks = 0, bool twoLines = false);
protected:
void OnCheckBoxClick(GuiButton *sender, int chan, const POINT &pointer);
std::vector<GuiText *> CheckboxTxt;
std::vector<GuiCheckbox *> Checkbox;
};
#define ShowSelectGames(t, cb1, cb2, cb3, cb4, ic) {CheckboxPrompt::Show(t, 0, cb1, cb2, cb3, cb4, 0, 0, ic, true)}
#endif