Merge branch 'master' into jgrpp
# Conflicts: # os/macosx/notarize.sh # src/3rdparty/CMakeLists.txt # src/3rdparty/squirrel/squirrel/sqcompiler.cpp # src/3rdparty/squirrel/squirrel/sqdebug.cpp # src/3rdparty/squirrel/squirrel/sqvm.cpp # src/console_cmds.cpp # src/core/span_type.hpp # src/crashlog.cpp # src/currency.h # src/date_gui.cpp # src/driver.cpp # src/fios.cpp # src/genworld_gui.cpp # src/hotkeys.cpp # src/misc_gui.cpp # src/music/os2_m.cpp # src/network/core/os_abstraction.h # src/network/network_server.cpp # src/newgrf.cpp # src/newgrf_config.h # src/newgrf_text.cpp # src/openttd.cpp # src/os/macosx/font_osx.cpp # src/os/macosx/misc_osx.cpp # src/os/os2/CMakeLists.txt # src/os/os2/os2.cpp # src/os/unix/CMakeLists.txt # src/os/windows/font_win32.cpp # src/os/windows/win32_main.cpp # src/saveload/saveload.cpp # src/script/api/script_text.cpp # src/settings.cpp # src/settings_gui.cpp # src/stdafx.h # src/strings.cpp # src/timetable_gui.cpp # src/town_gui.cpp # src/train_cmd.cpp # src/video/dedicated_v.cpp # src/video/video_driver.cpp # src/video/win32_v.cpp # src/viewport.cpp # src/waypoint_gui.cpp # src/widgets/dropdown_type.h # src/window.cpp # src/window_gui.h
This commit is contained in:
@@ -31,6 +31,10 @@ void DropDownListItem::Draw(const Rect &r, bool sel, Colours bg_colour) const
|
||||
GfxFillRect(r.left, mid, r.right, mid + WidgetDimensions::scaled.bevel.top - 1, c2);
|
||||
}
|
||||
|
||||
DropDownListStringItem::DropDownListStringItem(StringID string, int result, bool masked) : DropDownListItem(result, masked), string(GetString(string))
|
||||
{
|
||||
}
|
||||
|
||||
uint DropDownListStringItem::Width() const
|
||||
{
|
||||
return GetStringBoundingBox(this->String()).width + WidgetDimensions::scaled.dropdowntext.Horizontal();
|
||||
@@ -51,24 +55,12 @@ void DropDownListStringItem::Draw(const Rect &r, bool sel, Colours bg_colour) co
|
||||
*/
|
||||
/* static */ bool DropDownListStringItem::NatSortFunc(std::unique_ptr<const DropDownListItem> const &first, std::unique_ptr<const DropDownListItem> const &second)
|
||||
{
|
||||
std::string str1 = GetString(static_cast<const DropDownListStringItem*>(first.get())->String());
|
||||
std::string str2 = GetString(static_cast<const DropDownListStringItem*>(second.get())->String());
|
||||
std::string str1 = static_cast<const DropDownListStringItem*>(first.get())->String();
|
||||
std::string str2 = static_cast<const DropDownListStringItem*>(second.get())->String();
|
||||
return StrNaturalCompare(str1, str2) < 0;
|
||||
}
|
||||
|
||||
StringID DropDownListParamStringItem::String() const
|
||||
{
|
||||
for (uint i = 0; i < lengthof(this->decode_params); i++) SetDParam(i, this->decode_params[i]);
|
||||
return this->string;
|
||||
}
|
||||
|
||||
StringID DropDownListCharStringItem::String() const
|
||||
{
|
||||
SetDParamStr(0, this->raw_string);
|
||||
return this->string;
|
||||
}
|
||||
|
||||
DropDownListIconItem::DropDownListIconItem(SpriteID sprite, PaletteID pal, StringID string, int result, bool masked) : DropDownListParamStringItem(string, result, masked), sprite(sprite), pal(pal)
|
||||
DropDownListIconItem::DropDownListIconItem(SpriteID sprite, PaletteID pal, StringID string, int result, bool masked) : DropDownListStringItem(string, result, masked), sprite(sprite), pal(pal)
|
||||
{
|
||||
this->dim = GetSpriteSize(sprite);
|
||||
this->sprite_y = dim.height;
|
||||
@@ -81,7 +73,7 @@ uint DropDownListIconItem::Height(uint width) const
|
||||
|
||||
uint DropDownListIconItem::Width() const
|
||||
{
|
||||
return DropDownListParamStringItem::Width() + this->dim.width + WidgetDimensions::scaled.hsep_wide;
|
||||
return DropDownListStringItem::Width() + this->dim.width + WidgetDimensions::scaled.hsep_wide;
|
||||
}
|
||||
|
||||
void DropDownListIconItem::Draw(const Rect &r, bool sel, Colours bg_colour) const
|
||||
|
||||
@@ -45,50 +45,25 @@ public:
|
||||
*/
|
||||
class DropDownListStringItem : public DropDownListItem {
|
||||
public:
|
||||
StringID string; ///< String ID of item
|
||||
const std::string string; ///< String of item
|
||||
TextColour colour_flags = TC_BEGIN;
|
||||
|
||||
DropDownListStringItem(StringID string, int result, bool masked) : DropDownListItem(result, masked), string(string) {}
|
||||
DropDownListStringItem(StringID string, int result, bool masked);
|
||||
DropDownListStringItem(const std::string &string, int result, bool masked) : DropDownListItem(result, masked), string(string) {}
|
||||
|
||||
bool Selectable() const override { return true; }
|
||||
uint Width() const override;
|
||||
void Draw(const Rect &r, bool sel, Colours bg_colour) const override;
|
||||
virtual StringID String() const { return this->string; }
|
||||
const std::string &String() const { return this->string; }
|
||||
void SetColourFlags(TextColour colour_flags) { this->colour_flags = colour_flags; }
|
||||
|
||||
static bool NatSortFunc(std::unique_ptr<const DropDownListItem> const &first, std::unique_ptr<const DropDownListItem> const &second);
|
||||
};
|
||||
|
||||
/**
|
||||
* String list item with parameters.
|
||||
*/
|
||||
class DropDownListParamStringItem : public DropDownListStringItem {
|
||||
public:
|
||||
uint64 decode_params[10]; ///< Parameters of the string
|
||||
|
||||
DropDownListParamStringItem(StringID string, int result, bool masked) : DropDownListStringItem(string, result, masked) {}
|
||||
|
||||
StringID String() const override;
|
||||
void SetParam(uint index, uint64 value) { decode_params[index] = value; }
|
||||
void SetParamStr(uint index, const char *str) { this->SetParam(index, (uint64)(size_t)str); }
|
||||
};
|
||||
|
||||
/**
|
||||
* List item containing a C char string.
|
||||
*/
|
||||
class DropDownListCharStringItem : public DropDownListStringItem {
|
||||
public:
|
||||
std::string raw_string;
|
||||
|
||||
DropDownListCharStringItem(const std::string &raw_string, int result, bool masked) : DropDownListStringItem(STR_JUST_RAW_STRING, result, masked), raw_string(raw_string) {}
|
||||
|
||||
StringID String() const override;
|
||||
};
|
||||
|
||||
/**
|
||||
* List item with icon and string.
|
||||
*/
|
||||
class DropDownListIconItem : public DropDownListParamStringItem {
|
||||
class DropDownListIconItem : public DropDownListStringItem {
|
||||
SpriteID sprite;
|
||||
PaletteID pal;
|
||||
Dimension dim;
|
||||
|
||||
Reference in New Issue
Block a user