mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-12-11 16:00:17 -07:00
Get to a compilable state
Everything seems to be working (including the plater). I am not seeing any graphical issues
This commit is contained in:
parent
dc062f1a1a
commit
03754b5213
18 changed files with 149 additions and 147 deletions
|
|
@ -46,8 +46,8 @@ void DragCanvas::set_shape_list(const std::vector<std::string>& colors, const st
|
|||
m_dragshape_list.clear();
|
||||
|
||||
for (int i = 0; i < order.size(); i++) {
|
||||
wxBitmap* bmp = get_extruder_color_icon(colors[order[i] - 1], std::to_string(order[i]), SHAPE_SIZE, SHAPE_SIZE);
|
||||
DragShape* shape = new DragShape(*bmp, order[i]);
|
||||
wxBitmap bmp = get_extruder_color_icon(colors[order[i] - 1], std::to_string(order[i]), SHAPE_SIZE, SHAPE_SIZE)->GetBitmapFor(m_parent); //OcraftyoneTODO: quick and dirty conversion
|
||||
DragShape* shape = new DragShape(bmp, order[i]);
|
||||
m_dragshape_list.push_back(shape);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -304,7 +304,7 @@ wxWindow* BitmapChoiceRenderer::CreateEditorCtrl(wxWindow* parent, wxRect labelR
|
|||
if (can_create_editor_ctrl && !can_create_editor_ctrl())
|
||||
return nullptr;
|
||||
|
||||
std::vector<wxBitmap*> icons = get_extruder_color_icons();
|
||||
std::vector<wxBitmapBundle*> icons = get_extruder_color_icons();
|
||||
if (icons.empty())
|
||||
return nullptr;
|
||||
|
||||
|
|
@ -320,7 +320,7 @@ wxWindow* BitmapChoiceRenderer::CreateEditorCtrl(wxWindow* parent, wxRect labelR
|
|||
c_editor->Append(_L("default"), *get_default_extruder_color_icon());
|
||||
|
||||
for (size_t i = 0; i < icons.size(); i++)
|
||||
c_editor->Append(wxString::Format("%d", i+1), *icons[i]);
|
||||
c_editor->Append(wxString::Format("%d", i+1), icons[i]->GetBitmapFor(parent)); //OcraftyoneTODO: quick n dirty conversion
|
||||
|
||||
if (has_default_extruder && has_default_extruder())
|
||||
c_editor->SetSelection(atoi(data.GetText().c_str()));
|
||||
|
|
|
|||
|
|
@ -1119,7 +1119,7 @@ void Choice::BUILD()
|
|||
auto icon_name = "param_" + m_opt.enum_values[i];
|
||||
if (boost::filesystem::exists(image_path / (icon_name + ".svg"))) {
|
||||
ScalableBitmap bm(temp, icon_name, 24);
|
||||
temp->Append(_(el), bm.bmp());
|
||||
temp->Append(_(el), bm.get_bitmap());
|
||||
} else {
|
||||
temp->Append(_(el));
|
||||
}
|
||||
|
|
@ -1520,7 +1520,7 @@ void Choice::msw_rescale()
|
|||
auto icon_name = "param_" + m_opt.enum_values[i];
|
||||
if (boost::filesystem::exists(image_path / (icon_name + ".svg"))) {
|
||||
ScalableBitmap bm(window, icon_name, 24);
|
||||
temp->SetItemBitmap(i, bm.bmp());
|
||||
temp->SetItemBitmap(i, bm.get_bitmap());
|
||||
}
|
||||
++i;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -261,14 +261,13 @@ std::map<std::string, std::string> SettingsFactory::CATEGORY_ICON =
|
|||
// BBS: remove SLA categories
|
||||
};
|
||||
|
||||
wxBitmap SettingsFactory::get_category_bitmap(const std::string& category_name, bool menu_bmp)
|
||||
wxBitmapBundle* SettingsFactory::get_category_bitmap(const std::string& category_name)
|
||||
{
|
||||
if (CATEGORY_ICON.find(category_name) == CATEGORY_ICON.end())
|
||||
return wxNullBitmap;
|
||||
return create_scaled_bitmap(CATEGORY_ICON.at(category_name));
|
||||
return get_bmp_bundle("empty");
|
||||
return get_bmp_bundle(CATEGORY_ICON.at(category_name));
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------
|
||||
// MenuFactory
|
||||
//-------------------------------------
|
||||
|
|
@ -425,13 +424,14 @@ static void create_freq_settings_popupmenu(wxMenu* menu, const bool is_object_se
|
|||
}
|
||||
}
|
||||
|
||||
std::vector<wxBitmap> MenuFactory::get_volume_bitmaps()
|
||||
std::vector<wxBitmapBundle*> MenuFactory::get_volume_bitmaps()
|
||||
{
|
||||
std::vector<wxBitmap> volume_bmps;
|
||||
std::vector<wxBitmapBundle*> volume_bmps;
|
||||
volume_bmps.reserve(ADD_VOLUME_MENU_ITEMS.size());
|
||||
for (auto item : ADD_VOLUME_MENU_ITEMS){
|
||||
if(!item.second.empty()){
|
||||
volume_bmps.push_back(create_scaled_bitmap(item.second));
|
||||
//volume_bmps.push_back(create_menu_bitmap(item.second));
|
||||
volume_bmps.push_back(get_bmp_bundle(item.second));
|
||||
}
|
||||
}
|
||||
return volume_bmps;
|
||||
|
|
@ -619,7 +619,7 @@ wxMenuItem* MenuFactory::append_menu_item_settings(wxMenu* menu_)
|
|||
|
||||
// Add full settings list
|
||||
auto menu_item = new wxMenuItem(menu, wxID_ANY, menu_name);
|
||||
menu_item->SetBitmap(create_scaled_bitmap("cog"));
|
||||
menu_item->SetBitmap(*get_bmp_bundle("cog"));
|
||||
menu_item->SetSubMenu(create_settings_popupmenu(menu, is_object_settings, item));
|
||||
|
||||
return menu->Append(menu_item);
|
||||
|
|
@ -760,7 +760,7 @@ void MenuFactory::append_menu_item_change_extruder(wxMenu* menu)
|
|||
if (sels.IsEmpty())
|
||||
return;
|
||||
|
||||
std::vector<wxBitmap*> icons = get_extruder_color_icons(true);
|
||||
std::vector<wxBitmapBundle*> icons = get_extruder_color_icons(true);
|
||||
wxMenu* extruder_selection_menu = new wxMenu();
|
||||
const wxString& name = sels.Count() == 1 ? names[0] : names[1];
|
||||
|
||||
|
|
@ -781,7 +781,7 @@ void MenuFactory::append_menu_item_change_extruder(wxMenu* menu)
|
|||
|
||||
if (icon_idx >= 0 && icon_idx < icons.size()) {
|
||||
append_menu_item(
|
||||
extruder_selection_menu, wxID_ANY, item_name, "", [i](wxCommandEvent &) { obj_list()->set_extruder_for_selected_items(i); }, *icons[icon_idx], menu,
|
||||
extruder_selection_menu, wxID_ANY, item_name, "", [i](wxCommandEvent &) { obj_list()->set_extruder_for_selected_items(i); }, icons[icon_idx], menu,
|
||||
[is_active_extruder]() { return !is_active_extruder; }, m_parent);
|
||||
} else {
|
||||
append_menu_item(
|
||||
|
|
@ -1580,7 +1580,7 @@ void MenuFactory::append_menu_item_change_filament(wxMenu* menu)
|
|||
return;
|
||||
}
|
||||
|
||||
std::vector<wxBitmap*> icons = get_extruder_color_icons(true);
|
||||
std::vector<wxBitmapBundle*> icons = get_extruder_color_icons(true);
|
||||
if (icons.size() < filaments_cnt) {
|
||||
BOOST_LOG_TRIVIAL(warning) << boost::format("Warning: icons size %1%, filaments_cnt=%2%")%icons.size()%filaments_cnt;
|
||||
if (icons.size() <= 1)
|
||||
|
|
@ -1620,8 +1620,9 @@ void MenuFactory::append_menu_item_change_filament(wxMenu* menu)
|
|||
const wxString& item_name = (i == 0 ? _L("Default") : wxString::Format(_L("Filament %d"), i)) +
|
||||
(is_active_extruder ? " (" + _L("current") + ")" : "");
|
||||
|
||||
//OcraftyoneTODO: determine if nullptr in place of icon causes issues
|
||||
append_menu_item(extruder_selection_menu, wxID_ANY, item_name, "",
|
||||
[i](wxCommandEvent&) { obj_list()->set_extruder_for_selected_items(i); }, i == 0 ? wxNullBitmap : *icons[i - 1], menu,
|
||||
[i](wxCommandEvent&) { obj_list()->set_extruder_for_selected_items(i); }, i == 0 ? nullptr : icons[i - 1], menu,
|
||||
[is_active_extruder]() { return !is_active_extruder; }, m_parent);
|
||||
}
|
||||
menu->Append(wxID_ANY, name, extruder_selection_menu, _L("Change Filament"));
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ struct SettingsFactory
|
|||
static std::map<std::string, std::vector<SimpleSettingData>> OBJECT_CATEGORY_SETTINGS;
|
||||
static std::map<std::string, std::vector<SimpleSettingData>> PART_CATEGORY_SETTINGS;
|
||||
|
||||
static wxBitmap get_category_bitmap(const std::string& category_name, bool menu_bmp = true);
|
||||
static wxBitmapBundle* get_category_bitmap(const std::string& category_name);
|
||||
static Bundle get_bundle(const DynamicPrintConfig* config, bool is_object_settings, bool is_layer_settings = false);
|
||||
static std::vector<std::string> get_options(bool is_part);
|
||||
//BBS: add api to get options for catogary
|
||||
|
|
@ -48,7 +48,7 @@ class MenuFactory
|
|||
{
|
||||
public:
|
||||
static const std::vector<std::pair<std::string, std::string>> ADD_VOLUME_MENU_ITEMS;
|
||||
static std::vector<wxBitmap> get_volume_bitmaps();
|
||||
static std::vector<wxBitmapBundle*> get_volume_bitmaps();
|
||||
|
||||
MenuFactory();
|
||||
~MenuFactory() = default;
|
||||
|
|
|
|||
|
|
@ -77,9 +77,9 @@ void GridCellIconRenderer::Draw(wxGrid& grid,
|
|||
table->m_icon_row_height = grid.GetRowSize(row);
|
||||
table->m_icon_col_width = grid.GetColSize(col);
|
||||
//}
|
||||
wxBitmap& bitmap = table->get_undo_bitmap();
|
||||
int bitmap_width = bitmap.GetWidth();
|
||||
int bitmap_height = bitmap.GetHeight();
|
||||
wxBitmapBundle& bitmap = table->get_undo_bitmap();
|
||||
int bitmap_width = bitmap.GetBitmapFor(dc.GetWindow()).GetWidth();
|
||||
int bitmap_height = bitmap.GetBitmapFor(dc.GetWindow()).GetHeight();
|
||||
int offset_x = (table->m_icon_col_width - bitmap_width)/2;
|
||||
int offset_y = (table->m_icon_row_height - bitmap_height)/2;
|
||||
|
||||
|
|
@ -91,7 +91,7 @@ void GridCellIconRenderer::Draw(wxGrid& grid,
|
|||
lock_pos.y += top;
|
||||
dc.DrawBitmap(bitmap, lock_pos);
|
||||
#else
|
||||
dc.DrawBitmap(bitmap, wxPoint(rect.x + offset_x, rect.y + offset_y));
|
||||
dc.DrawBitmap(bitmap.GetBitmapFor(dc.GetWindow()), wxPoint(rect.x + offset_x, rect.y + offset_y));//OcraftyoneTODO: determine if this way of getting bitmap works well
|
||||
#endif
|
||||
|
||||
//dc.SetPen(*wxGREEN_PEN);
|
||||
|
|
@ -125,7 +125,7 @@ GridCellIconRenderer *GridCellIconRenderer::Clone() const
|
|||
|
||||
GridCellFilamentsEditor::GridCellFilamentsEditor(const wxArrayString& choices,
|
||||
bool allowOthers,
|
||||
std::vector<wxBitmap*>* bitmaps)
|
||||
std::vector<wxBitmapBundle*>* bitmaps)
|
||||
: wxGridCellChoiceEditor(choices, allowOthers), m_icons(bitmaps)
|
||||
{
|
||||
}
|
||||
|
|
@ -133,7 +133,7 @@ GridCellFilamentsEditor::GridCellFilamentsEditor(const wxArrayString& choices,
|
|||
GridCellFilamentsEditor::GridCellFilamentsEditor(size_t count,
|
||||
const wxString choices[],
|
||||
bool allowOthers,
|
||||
std::vector<wxBitmap*>* bitmaps)
|
||||
std::vector<wxBitmapBundle*>* bitmaps)
|
||||
: wxGridCellChoiceEditor(count, choices, allowOthers), m_icons(bitmaps)
|
||||
{
|
||||
}
|
||||
|
|
@ -159,13 +159,13 @@ void GridCellFilamentsEditor::Create(wxWindow* parent,
|
|||
if ( !m_allowOthers )
|
||||
style |= wxCB_READONLY;
|
||||
::ComboBox *bitmap_combo = new ComboBox(parent, id, wxEmptyString,
|
||||
wxDefaultPosition, wxSize(((*m_icons)[0])->GetWidth() + 10, -1), 0, nullptr, CB_NO_DROP_ICON | CB_NO_TEXT | wxCB_READONLY);
|
||||
wxDefaultPosition, wxSize(((*m_icons)[0])->GetDefaultSize().GetWidth() + 10, -1), 0, nullptr, CB_NO_DROP_ICON | CB_NO_TEXT | wxCB_READONLY); //OcraftyoneTODO: is this a good way of getting the size?
|
||||
if (m_icons) {
|
||||
int array_count = m_choices.GetCount();
|
||||
int icon_count = m_icons->size();
|
||||
for (int i = 0; i < array_count; i++)
|
||||
{
|
||||
wxBitmap* bitmap = (i < icon_count) ? (*m_icons)[i] : (*m_icons)[0];
|
||||
wxBitmapBundle* bitmap = (i < icon_count) ? (*m_icons)[i] : (*m_icons)[0];
|
||||
bitmap_combo->Append(m_choices[i], *bitmap);
|
||||
}
|
||||
}
|
||||
|
|
@ -335,9 +335,9 @@ void GridCellFilamentsRenderer::Draw(wxGrid &grid, wxGridCellAttr &attr, wxDC &d
|
|||
ObjectGridTable::ObjectGridRow *grid_row = table->get_grid_row(row - 1);
|
||||
ConfigOptionInt & cur_option = dynamic_cast<ConfigOptionInt &>((*grid_row)[(ObjectGridTable::GridColType) col]);
|
||||
|
||||
wxBitmap *bitmap = table->get_color_bitmap((cur_option.value >= 1) ? cur_option.value - 1 : cur_option.value);
|
||||
int bitmap_width = bitmap->GetWidth();
|
||||
int bitmap_height = bitmap->GetHeight();
|
||||
wxBitmapBundle *bitmap = table->get_color_bitmap((cur_option.value >= 1) ? cur_option.value - 1 : cur_option.value);
|
||||
int bitmap_width = bitmap->GetBitmapFor(dc.GetWindow()).GetWidth();
|
||||
int bitmap_height = bitmap->GetBitmapFor(dc.GetWindow()).GetHeight();
|
||||
int offset_x = grid_cell_border_width;
|
||||
int offset_y = (rect.height > bitmap_height) ? (rect.height - bitmap_height) / 2 : grid_cell_border_height;
|
||||
|
||||
|
|
@ -345,7 +345,7 @@ void GridCellFilamentsRenderer::Draw(wxGrid &grid, wxGridCellAttr &attr, wxDC &d
|
|||
dc.SetBrush(wxBrush(attr.GetBackgroundColour()));
|
||||
dc.DrawRectangle(rect);
|
||||
if ( grid_row->model_volume_type != ModelVolumeType::NEGATIVE_VOLUME) {
|
||||
dc.DrawBitmap(*bitmap, wxPoint(rect.x + offset_x, rect.y + offset_y));
|
||||
dc.DrawBitmap(bitmap->GetBitmapFor(dc.GetWindow()), wxPoint(rect.x + offset_x, rect.y + offset_y));//TODO: determine if this way of getting bitmap works well
|
||||
}
|
||||
|
||||
text_rect.x += bitmap_width + grid_cell_border_width * 2;
|
||||
|
|
@ -518,16 +518,16 @@ void GridCellComboBoxRenderer::Draw(wxGrid &grid, wxGridCellAttr &attr, wxDC &dc
|
|||
ObjectGridTable::ObjectGridRow *grid_row = table->get_grid_row(row - 1);
|
||||
ConfigOptionInt & cur_option = dynamic_cast<ConfigOptionInt &>((*grid_row)[(ObjectGridTable::GridColType) col]);
|
||||
|
||||
wxBitmap *bitmap = table->get_color_bitmap((cur_option.value >= 1) ? cur_option.value - 1 : cur_option.value);
|
||||
int bitmap_width = bitmap->GetWidth();
|
||||
int bitmap_height = bitmap->GetHeight();
|
||||
wxBitmapBundle *bitmap = table->get_color_bitmap((cur_option.value >= 1) ? cur_option.value - 1 : cur_option.value);
|
||||
int bitmap_width = bitmap->GetBitmapFor(dc.GetWindow()).GetWidth();
|
||||
int bitmap_height = bitmap->GetBitmapFor(dc.GetWindow()).GetHeight();
|
||||
int offset_x = grid_cell_border_width;
|
||||
int offset_y = (rect.height > bitmap_height) ? (rect.height - bitmap_height) / 2 : grid_cell_border_height;
|
||||
|
||||
dc.SetPen(*wxTRANSPARENT_PEN);
|
||||
dc.SetBrush(wxBrush(attr.GetBackgroundColour()));
|
||||
dc.DrawRectangle(rect);
|
||||
dc.DrawBitmap(*bitmap, wxPoint(rect.x + offset_x, rect.y + offset_y));
|
||||
dc.DrawBitmap(bitmap->GetBitmapFor(dc.GetWindow()), wxPoint(rect.x + offset_x, rect.y + offset_y)); //TODO: determine if this way of getting bitmap works well
|
||||
text_rect.x += bitmap_width + grid_cell_border_width * 2;
|
||||
text_rect.width -= (bitmap_width + grid_cell_border_width * 2);
|
||||
}
|
||||
|
|
@ -2641,12 +2641,12 @@ void ObjectGridTable::OnCellValueChanged(int row, int col)
|
|||
}
|
||||
}
|
||||
|
||||
wxBitmap& ObjectGridTable::get_undo_bitmap(bool selected)
|
||||
wxBitmapBundle& ObjectGridTable::get_undo_bitmap(bool selected)
|
||||
{
|
||||
return m_panel->m_undo_bitmap;
|
||||
}
|
||||
|
||||
wxBitmap* ObjectGridTable::get_color_bitmap(int color_index)
|
||||
wxBitmapBundle* ObjectGridTable::get_color_bitmap(int color_index)
|
||||
{
|
||||
if (color_index < m_panel->m_color_bitmaps.size())
|
||||
return m_panel->m_color_bitmaps[color_index];
|
||||
|
|
|
|||
|
|
@ -82,10 +82,10 @@ public:
|
|||
GridCellFilamentsEditor(size_t count = 0,
|
||||
const wxString choices[] = NULL,
|
||||
bool allowOthers = false,
|
||||
std::vector<wxBitmap*>* bitmaps = NULL);
|
||||
std::vector<wxBitmapBundle*>* bitmaps = NULL);
|
||||
GridCellFilamentsEditor(const wxArrayString& choices,
|
||||
bool allowOthers = false,
|
||||
std::vector<wxBitmap*>* bitmaps = NULL);
|
||||
std::vector<wxBitmapBundle*>* bitmaps = NULL);
|
||||
|
||||
virtual void Create(wxWindow* parent,
|
||||
wxWindowID id,
|
||||
|
|
@ -105,7 +105,7 @@ protected:
|
|||
::ComboBox *Combo() const { return (::ComboBox *)m_control; }
|
||||
void OnComboCloseUp(wxCommandEvent& evt);
|
||||
|
||||
std::vector<wxBitmap*>* m_icons;
|
||||
std::vector<wxBitmapBundle*>* m_icons;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(GridCellFilamentsEditor);
|
||||
private:
|
||||
|
|
@ -498,8 +498,8 @@ public:
|
|||
void update_filament_to_config(ModelConfig* config, std::string& key, ConfigOption& new_value, ConfigOption& ori_value, bool is_object);
|
||||
void update_volume_values_from_object(int row, int col);
|
||||
void update_value_to_object(Model* model, ObjectGridRow* grid_row, int col);
|
||||
wxBitmap& get_undo_bitmap(bool selected = false);
|
||||
wxBitmap* get_color_bitmap(int color_index);
|
||||
wxBitmapBundle& get_undo_bitmap(bool selected = false);
|
||||
wxBitmapBundle* get_color_bitmap(int color_index);
|
||||
bool OnCellLeftClick(int row, int col, ConfigOptionType &type);
|
||||
void OnSelectCell(int row, int col);
|
||||
void OnRangeSelected(int row, int col, int row_count, int col_count);
|
||||
|
|
@ -610,10 +610,10 @@ private:
|
|||
int init_filaments_and_colors();
|
||||
|
||||
wxFloatingPointValidator<float> m_float_validator;
|
||||
wxBitmap m_undo_bitmap;
|
||||
std::vector<wxBitmap*> m_color_bitmaps;
|
||||
ScalableBitmap m_bmp_reset;
|
||||
ScalableBitmap m_bmp_reset_disable;
|
||||
wxBitmapBundle m_undo_bitmap;
|
||||
std::vector<wxBitmapBundle*> m_color_bitmaps;
|
||||
wxBitmapBundle m_bmp_reset;
|
||||
wxBitmapBundle m_bmp_reset_disable;
|
||||
private:
|
||||
wxDECLARE_ABSTRACT_CLASS(ObjectGrid);
|
||||
wxDECLARE_EVENT_TABLE();
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ bool ObjectTableSettings::update_settings_list(bool is_object, bool is_multiple_
|
|||
|
||||
|
||||
btn->SetBitmapFocus(m_bmp_reset_focus.bmp());
|
||||
btn->SetBitmapHover(m_bmp_reset_focus.bmp());
|
||||
btn->SetBitmapHover(m_bmp_reset_focus.get_bitmap());
|
||||
|
||||
#ifdef __WINDOWS__
|
||||
btn->SetBitmapDisabled(m_bmp_reset_disable.bmp());
|
||||
|
|
@ -236,7 +236,7 @@ bool ObjectTableSettings::update_settings_list(bool is_object, bool is_multiple_
|
|||
return;
|
||||
ctrl->SetBitmap_(m_bmp_reset);
|
||||
ctrl->SetBitmapFocus(m_bmp_reset_focus.bmp());
|
||||
ctrl->SetBitmapHover(m_bmp_reset_focus.bmp());
|
||||
ctrl->SetBitmapHover(m_bmp_reset_focus.get_bitmap());
|
||||
#ifdef __WINDOWS__
|
||||
ctrl->SetBitmapDisabled(m_bmp_reset_disable.bmp());
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -748,7 +748,7 @@ void OG_CustomCtrl::CtrlLine::render(wxDC& dc, wxCoord h_pos, wxCoord v_pos)
|
|||
if (field && field->undo_bitmap())
|
||||
//if (field)
|
||||
// BBS: new layout
|
||||
draw_act_bmps(dc, wxPoint(h_pos, v_pos), field->undo_to_sys_bitmap()->bmp(), field->undo_bitmap()->bmp(), field->blink());
|
||||
draw_act_bmps(dc, wxPoint(h_pos, v_pos), field->undo_to_sys_bitmap()->get_bitmap(), field->undo_bitmap()->get_bitmap(), field->blink()); //OcraftyoneTODO: conversion rather than rewrite
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -802,7 +802,7 @@ void OG_CustomCtrl::CtrlLine::render(wxDC& dc, wxCoord h_pos, wxCoord v_pos)
|
|||
|
||||
auto draw_buttons = [&h_pos, &dc, &v_pos, this](Field* field, size_t bmp_rect_id = 0) {
|
||||
if (field && field->undo_to_sys_bitmap()) {
|
||||
h_pos = draw_act_bmps(dc, wxPoint(h_pos, v_pos), field->undo_to_sys_bitmap()->bmp(), field->undo_bitmap()->bmp(), field->blink(), bmp_rect_id);
|
||||
h_pos = draw_act_bmps(dc, wxPoint(h_pos, v_pos), field->undo_to_sys_bitmap()->get_bitmap(), field->undo_bitmap()->get_bitmap(), field->blink(), bmp_rect_id); //OcraftyoneTODO: conversion rather than rewrite
|
||||
}
|
||||
#ifndef DISABLE_BLINKING
|
||||
else if (field && !field->undo_to_sys_bitmap() && field->blink())
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ const std::map<InfoItemType, InfoItemAtributes> INFO_ITEMS{
|
|||
ObjectDataViewModelNode::ObjectDataViewModelNode(ObjectDataViewModelNode* parent,
|
||||
const wxString& sub_obj_name,
|
||||
Slic3r::ModelVolumeType type,
|
||||
const wxBitmap& bmp,
|
||||
const wxBitmapBundle& bmp,
|
||||
const wxString& extruder,
|
||||
const int idx/* = -1*/,
|
||||
const std::string& warning_icon_name /*= std::string*/) :
|
||||
|
|
@ -122,7 +122,7 @@ ObjectDataViewModelNode::ObjectDataViewModelNode(ObjectDataViewModelNode* parent
|
|||
else if (type == itLayerRoot)
|
||||
{
|
||||
//BBS do not support layer range edit
|
||||
m_bmp = create_scaled_bitmap(LayerRootIcon); // FIXME: pass window ptr
|
||||
m_bmp = *get_bmp_bundle(LayerRootIcon);
|
||||
m_name = _(L("Layers"));
|
||||
}
|
||||
else if (type == itInfo)
|
||||
|
|
@ -153,7 +153,7 @@ ObjectDataViewModelNode::ObjectDataViewModelNode(ObjectDataViewModelNode* parent
|
|||
}
|
||||
const std::string label_range = (boost::format(" %.2f-%.2f ") % layer_range.first % layer_range.second).str();
|
||||
m_name = _(L("Range")) + label_range + "(" + _(L("mm")) + ")";
|
||||
m_bmp = create_scaled_bitmap(LayerIcon); // FIXME: pass window ptr
|
||||
m_bmp = *get_bmp_bundle(LayerIcon);
|
||||
|
||||
set_icons();
|
||||
init_container();
|
||||
|
|
@ -192,7 +192,7 @@ void ObjectDataViewModelNode::set_printable_icon(PrintIndicator printable)
|
|||
{
|
||||
m_printable = printable;
|
||||
m_printable_icon = m_printable == piUndef ? m_empty_bmp :
|
||||
create_scaled_bitmap(m_printable == piPrintable ? "check_on" : "check_off_focused");
|
||||
*get_bmp_bundle(m_printable == piPrintable ? "check_on" : "check_off_focused");
|
||||
}
|
||||
|
||||
void ObjectDataViewModelNode::set_action_icon(bool enable)
|
||||
|
|
@ -202,7 +202,7 @@ void ObjectDataViewModelNode::set_action_icon(bool enable)
|
|||
m_action_icon_name = m_type & itPlate ? "dot" :
|
||||
m_type & itObject ? undo :
|
||||
m_type & (itVolume | itLayer) ? undo : /*m_type & itInstance*/ "set_separate_obj";
|
||||
m_action_icon = create_scaled_bitmap(m_action_icon_name); // FIXME: pass window ptr
|
||||
m_action_icon = *get_bmp_bundle(m_action_icon_name); // FIXME: pass window ptr
|
||||
}
|
||||
|
||||
// BBS
|
||||
|
|
@ -210,27 +210,27 @@ void ObjectDataViewModelNode::set_color_icon(bool enable)
|
|||
{
|
||||
m_color_enable = enable;
|
||||
if ((m_type & itObject) && enable)
|
||||
m_color_icon = create_scaled_bitmap("mmu_segmentation");
|
||||
m_color_icon = *get_bmp_bundle("mmu_segmentation");
|
||||
else
|
||||
m_color_icon = create_scaled_bitmap("dot");
|
||||
m_color_icon = *get_bmp_bundle("dot");
|
||||
}
|
||||
|
||||
void ObjectDataViewModelNode::set_support_icon(bool enable)
|
||||
{
|
||||
m_support_enable = enable;
|
||||
if ((m_type & itObject) && enable)
|
||||
m_support_icon = create_scaled_bitmap("toolbar_support");
|
||||
m_support_icon = *get_bmp_bundle("toolbar_support");
|
||||
else
|
||||
m_support_icon = create_scaled_bitmap("dot");
|
||||
m_support_icon = *get_bmp_bundle("dot");
|
||||
}
|
||||
|
||||
void ObjectDataViewModelNode::set_sinking_icon(bool enable)
|
||||
{
|
||||
m_sink_enable = enable;
|
||||
if ((m_type & itObject) && enable)
|
||||
m_sinking_icon = create_scaled_bitmap("objlist_sinking");
|
||||
m_sinking_icon = *get_bmp_bundle("objlist_sinking");
|
||||
else
|
||||
m_sinking_icon = create_scaled_bitmap("dot");
|
||||
m_sinking_icon = *get_bmp_bundle("dot");
|
||||
}
|
||||
|
||||
void ObjectDataViewModelNode::set_warning_icon(const std::string& warning_icon_name)
|
||||
|
|
@ -245,14 +245,14 @@ void ObjectDataViewModelNode::update_settings_digest_bitmaps()
|
|||
m_bmp = m_empty_bmp;
|
||||
|
||||
std::string scaled_bitmap_name = m_name.ToUTF8().data();
|
||||
scaled_bitmap_name += "-em" + std::to_string(wxGetApp().em_unit()) + (wxGetApp().dark_mode() ? "-dm" : "");
|
||||
scaled_bitmap_name += (wxGetApp().dark_mode() ? "-dm" : "");
|
||||
|
||||
wxBitmap *bmp = m_bitmap_cache->find(scaled_bitmap_name);
|
||||
wxBitmapBundle *bmp = m_bitmap_cache->find_bndl(scaled_bitmap_name);
|
||||
if (bmp == nullptr) {
|
||||
std::vector<wxBitmap> bmps;
|
||||
std::vector<wxBitmapBundle*> bmps;
|
||||
for (auto& category : m_opt_categories)
|
||||
bmps.emplace_back(SettingsFactory::get_category_bitmap(category, false));
|
||||
bmp = m_bitmap_cache->insert(scaled_bitmap_name, bmps);
|
||||
bmps.emplace_back(SettingsFactory::get_category_bitmap(category));
|
||||
bmp = m_bitmap_cache->insert_bndl(scaled_bitmap_name, bmps);
|
||||
}
|
||||
|
||||
m_bmp = *bmp;
|
||||
|
|
@ -279,10 +279,10 @@ bool ObjectDataViewModelNode::update_settings_digest(const std::vector<std::stri
|
|||
void ObjectDataViewModelNode::msw_rescale()
|
||||
{
|
||||
if (!m_action_icon_name.empty())
|
||||
m_action_icon = create_scaled_bitmap(m_action_icon_name);
|
||||
m_action_icon = *get_bmp_bundle(m_action_icon_name);
|
||||
|
||||
if (m_printable != piUndef)
|
||||
m_printable_icon = create_scaled_bitmap(m_printable == piPrintable ? "obj_printable" : "obj_unprintable");
|
||||
m_printable_icon = *get_bmp_bundle(m_printable == piPrintable ? "obj_printable" : "obj_unprintable");
|
||||
|
||||
if (!m_opt_categories.empty())
|
||||
update_settings_digest_bitmaps();
|
||||
|
|
@ -295,7 +295,7 @@ bool ObjectDataViewModelNode::SetValue(const wxVariant& variant, unsigned col)
|
|||
switch (col)
|
||||
{
|
||||
case colPrint:
|
||||
m_printable_icon << variant;
|
||||
m_printable_icon << variant; //OcraftyoneTODO: removed by ps
|
||||
return true;
|
||||
case colName: {
|
||||
DataViewBitmapText data;
|
||||
|
|
@ -320,7 +320,7 @@ bool ObjectDataViewModelNode::SetValue(const wxVariant& variant, unsigned col)
|
|||
m_color_icon << variant;
|
||||
break;
|
||||
case colEditing:
|
||||
m_action_icon << variant;
|
||||
m_action_icon << variant; //OcraftyoneTODO: removed by ps
|
||||
return true;
|
||||
default:
|
||||
printf("MyObjectTreeModel::SetValue: wrong column");
|
||||
|
|
@ -387,7 +387,7 @@ void ObjectDataViewModelNode::UpdateExtruderAndColorIcon(wxString extruder /*= "
|
|||
|
||||
if (extruder_idx > 0) --extruder_idx;
|
||||
// Create the bitmap with color bars.
|
||||
std::vector<wxBitmap*> bmps = get_extruder_color_icons(false);// use wide icons
|
||||
std::vector<wxBitmapBundle*> bmps = get_extruder_color_icons(false);// use wide icons
|
||||
if (bmps.empty()) {
|
||||
m_extruder_bmp = wxNullBitmap;
|
||||
return;
|
||||
|
|
@ -422,12 +422,12 @@ ObjectDataViewModel::ObjectDataViewModel()
|
|||
m_bitmap_cache = new Slic3r::GUI::BitmapCache;
|
||||
|
||||
m_volume_bmps = MenuFactory::get_volume_bitmaps();
|
||||
m_warning_bmp = create_scaled_bitmap(WarningIcon);
|
||||
m_warning_manifold_bmp = create_scaled_bitmap(WarningManifoldIcon);
|
||||
m_lock_bmp = create_scaled_bitmap(LockIcon);
|
||||
m_warning_bmp = *get_bmp_bundle(WarningIcon);
|
||||
m_warning_manifold_bmp = *get_bmp_bundle(WarningManifoldIcon);
|
||||
m_lock_bmp = *get_bmp_bundle(LockIcon);
|
||||
|
||||
for (auto item : INFO_ITEMS)
|
||||
m_info_bmps[item.first] = create_scaled_bitmap(item.second.bmp_name);
|
||||
m_info_bmps[item.first] = get_bmp_bundle(item.second.bmp_name);
|
||||
|
||||
|
||||
m_plate_outside = nullptr;
|
||||
|
|
@ -451,7 +451,7 @@ void ObjectDataViewModel::Init()
|
|||
AddOutsidePlate();
|
||||
}
|
||||
|
||||
wxBitmap& ObjectDataViewModel::GetWarningBitmap(const std::string& warning_icon_name)
|
||||
wxBitmapBundle& ObjectDataViewModel::GetWarningBitmap(const std::string& warning_icon_name)
|
||||
{
|
||||
return warning_icon_name.empty() ? m_empty_bmp : warning_icon_name == WarningIcon ? m_warning_bmp : m_warning_manifold_bmp;
|
||||
}
|
||||
|
|
@ -514,7 +514,7 @@ void ObjectDataViewModel::UpdateBitmapForNode(ObjectDataViewModelNode *node)
|
|||
is_volume_node &= (vol_type >= int(ModelVolumeType::MODEL_PART) && vol_type <= int(ModelVolumeType::SUPPORT_ENFORCER));
|
||||
|
||||
if (!node->has_warning_icon() && !node->has_lock()) {
|
||||
node->SetBitmap(is_volume_node ? m_volume_bmps.at(vol_type) : m_empty_bmp);
|
||||
node->SetBitmap(is_volume_node ? *m_volume_bmps.at(vol_type) : m_empty_bmp);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -526,16 +526,16 @@ void ObjectDataViewModel::UpdateBitmapForNode(ObjectDataViewModelNode *node)
|
|||
if (is_volume_node)
|
||||
scaled_bitmap_name += std::to_string(vol_type);
|
||||
|
||||
wxBitmap *bmp = m_bitmap_cache->find(scaled_bitmap_name);
|
||||
wxBitmapBundle *bmp = m_bitmap_cache->find_bndl(scaled_bitmap_name);
|
||||
if (!bmp) {
|
||||
std::vector<wxBitmap> bmps;
|
||||
std::vector<wxBitmapBundle*> bmps;
|
||||
if (node->has_warning_icon())
|
||||
bmps.emplace_back(node->warning_icon_name() == WarningIcon ? m_warning_bmp : m_warning_manifold_bmp);
|
||||
bmps.emplace_back(node->warning_icon_name() == WarningIcon ? &m_warning_bmp : &m_warning_manifold_bmp);
|
||||
if (node->has_lock())
|
||||
bmps.emplace_back(m_lock_bmp);
|
||||
bmps.emplace_back(&m_lock_bmp);
|
||||
if (is_volume_node)
|
||||
bmps.emplace_back(m_volume_bmps[vol_type]);
|
||||
bmp = m_bitmap_cache->insert(scaled_bitmap_name, bmps);
|
||||
bmp = m_bitmap_cache->insert_bndl(scaled_bitmap_name, bmps);
|
||||
}
|
||||
|
||||
node->SetBitmap(*bmp);
|
||||
|
|
@ -669,7 +669,7 @@ wxDataViewItem ObjectDataViewModel::AddInfoChild(const wxDataViewItem &parent_it
|
|||
}
|
||||
|
||||
root->Insert(node, idx+1);
|
||||
node->SetBitmap(m_info_bmps.at(info_type));
|
||||
node->SetBitmap(*m_info_bmps.at(info_type));
|
||||
// notify control
|
||||
const wxDataViewItem child((void*)node);
|
||||
ItemAdded(parent_item, child);
|
||||
|
|
@ -1586,7 +1586,7 @@ wxString ObjectDataViewModel::GetName(const wxDataViewItem &item) const
|
|||
return node->m_name;
|
||||
}
|
||||
|
||||
wxBitmap& ObjectDataViewModel::GetBitmap(const wxDataViewItem &item) const
|
||||
wxBitmapBundle& ObjectDataViewModel::GetBitmap(const wxDataViewItem &item) const
|
||||
{
|
||||
ObjectDataViewModelNode *node = static_cast<ObjectDataViewModelNode*>(item.GetID());
|
||||
return node->m_bmp;
|
||||
|
|
@ -1628,13 +1628,13 @@ void ObjectDataViewModel::GetValue(wxVariant &variant, const wxDataViewItem &ite
|
|||
switch (col)
|
||||
{
|
||||
case colPrint:
|
||||
variant << node->m_printable_icon;
|
||||
variant << node->m_printable_icon.GetBitmapFor(m_ctrl);
|
||||
break;
|
||||
case colName:
|
||||
variant << DataViewBitmapText(node->m_name, node->m_bmp);
|
||||
variant << DataViewBitmapText(node->m_name, node->m_bmp.GetBitmapFor(m_ctrl));
|
||||
break;
|
||||
case colFilament:
|
||||
variant << DataViewBitmapText(node->m_extruder, node->m_extruder_bmp);
|
||||
variant << DataViewBitmapText(node->m_extruder, node->m_extruder_bmp.GetBitmapFor(m_ctrl));
|
||||
break;
|
||||
// BBS
|
||||
case colSupportPaint:
|
||||
|
|
@ -1647,7 +1647,7 @@ void ObjectDataViewModel::GetValue(wxVariant &variant, const wxDataViewItem &ite
|
|||
variant << node->m_color_icon;
|
||||
break;
|
||||
case colEditing:
|
||||
variant << node->m_action_icon;
|
||||
variant << node->m_action_icon.GetBitmapFor(m_ctrl);
|
||||
break;
|
||||
default:
|
||||
;
|
||||
|
|
@ -2100,7 +2100,7 @@ void ObjectDataViewModel::SetVolumeType(const wxDataViewItem &item, const Slic3r
|
|||
|
||||
ObjectDataViewModelNode *node = static_cast<ObjectDataViewModelNode*>(item.GetID());
|
||||
node->SetVolumeType(volume_type);
|
||||
node->SetBitmap(m_volume_bmps[int(volume_type)]);
|
||||
node->SetBitmap(*m_volume_bmps[int(volume_type)]);
|
||||
if (volume_type != Slic3r::ModelVolumeType::MODEL_PART && volume_type != Slic3r::ModelVolumeType::PARAMETER_MODIFIER)
|
||||
node->SetExtruder(""); // hide extruder
|
||||
else if (node->GetExtruder().IsEmpty())
|
||||
|
|
@ -2216,12 +2216,12 @@ void ObjectDataViewModel::SetSinkState(const bool painted, wxDataViewItem obj_it
|
|||
void ObjectDataViewModel::Rescale()
|
||||
{
|
||||
m_volume_bmps = MenuFactory::get_volume_bitmaps();
|
||||
m_warning_bmp = create_scaled_bitmap(WarningIcon);
|
||||
m_warning_manifold_bmp = create_scaled_bitmap(WarningManifoldIcon);
|
||||
m_lock_bmp = create_scaled_bitmap(LockIcon);
|
||||
m_warning_bmp = *get_bmp_bundle(WarningIcon);
|
||||
m_warning_manifold_bmp = *get_bmp_bundle(WarningManifoldIcon);
|
||||
m_lock_bmp = *get_bmp_bundle(LockIcon);
|
||||
|
||||
for (auto item : INFO_ITEMS)
|
||||
m_info_bmps[item.first] = create_scaled_bitmap(item.second.bmp_name);
|
||||
m_info_bmps[item.first] = get_bmp_bundle(item.second.bmp_name);
|
||||
|
||||
wxDataViewItemArray all_items;
|
||||
GetAllChildren(wxDataViewItem(0), all_items);
|
||||
|
|
@ -2243,13 +2243,13 @@ void ObjectDataViewModel::Rescale()
|
|||
node->m_bmp = GetVolumeIcon(node->m_volume_type, node->m_warning_icon_name);
|
||||
break;
|
||||
case itLayerRoot:
|
||||
node->m_bmp = create_scaled_bitmap(LayerRootIcon);
|
||||
node->m_bmp = *get_bmp_bundle(LayerRootIcon);
|
||||
break;
|
||||
case itLayer:
|
||||
node->m_bmp = create_scaled_bitmap(LayerIcon);
|
||||
node->m_bmp = *get_bmp_bundle(LayerIcon);
|
||||
break;
|
||||
case itInfo:
|
||||
node->m_bmp = m_info_bmps.at(node->m_info_item_type);
|
||||
node->m_bmp = *m_info_bmps.at(node->m_info_item_type);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
|
|
@ -2258,22 +2258,22 @@ void ObjectDataViewModel::Rescale()
|
|||
}
|
||||
}
|
||||
|
||||
wxBitmap ObjectDataViewModel::GetVolumeIcon(const Slic3r::ModelVolumeType vol_type, const std::string& warning_icon_name/* = std::string()*/)
|
||||
wxBitmapBundle ObjectDataViewModel::GetVolumeIcon(const Slic3r::ModelVolumeType vol_type, const std::string& warning_icon_name/* = std::string()*/)
|
||||
{
|
||||
if (warning_icon_name.empty())
|
||||
return m_volume_bmps[static_cast<int>(vol_type)];
|
||||
return *m_volume_bmps[static_cast<int>(vol_type)];
|
||||
|
||||
std::string scaled_bitmap_name = warning_icon_name + std::to_string(static_cast<int>(vol_type));
|
||||
scaled_bitmap_name += "-em" + std::to_string(wxGetApp().em_unit()) + (wxGetApp().dark_mode() ? "-dm" : "-lm");
|
||||
|
||||
wxBitmap *bmp = m_bitmap_cache->find(scaled_bitmap_name);
|
||||
wxBitmapBundle *bmp = m_bitmap_cache->find_bndl(scaled_bitmap_name);
|
||||
if (bmp == nullptr) {
|
||||
std::vector<wxBitmap> bmps;
|
||||
std::vector<wxBitmapBundle*> bmps;
|
||||
|
||||
bmps.emplace_back(GetWarningBitmap(warning_icon_name));
|
||||
bmps.emplace_back(&GetWarningBitmap(warning_icon_name));
|
||||
bmps.emplace_back(m_volume_bmps[static_cast<int>(vol_type)]);
|
||||
|
||||
bmp = m_bitmap_cache->insert(scaled_bitmap_name, bmps);
|
||||
bmp = m_bitmap_cache->insert_bndl(scaled_bitmap_name, bmps);
|
||||
}
|
||||
|
||||
return *bmp;
|
||||
|
|
@ -2308,7 +2308,7 @@ void ObjectDataViewModel::DeleteWarningIcon(const wxDataViewItem& item, const bo
|
|||
return;
|
||||
|
||||
if (node->GetType() & itVolume) {
|
||||
node->SetWarningBitmap(m_volume_bmps[static_cast<int>(node->volume_type())], "");
|
||||
node->SetWarningBitmap(*m_volume_bmps[static_cast<int>(node->volume_type())], "");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -71,27 +71,27 @@ class ObjectDataViewModelNode
|
|||
{
|
||||
ObjectDataViewModelNode* m_parent;
|
||||
MyObjectTreeModelNodePtrArray m_children;
|
||||
wxBitmap m_empty_bmp;
|
||||
wxBitmapBundle m_empty_bmp;
|
||||
size_t m_volumes_cnt = 0;
|
||||
std::vector< std::string > m_opt_categories;
|
||||
t_layer_height_range m_layer_range = { 0.0f, 0.0f };
|
||||
|
||||
wxString m_name;
|
||||
wxBitmap& m_bmp = m_empty_bmp;
|
||||
wxBitmapBundle& m_bmp = m_empty_bmp;
|
||||
ItemType m_type;
|
||||
int m_idx = -1;
|
||||
int m_plate_idx = -1;
|
||||
bool m_container = false;
|
||||
// BBS
|
||||
wxString m_extruder = wxEmptyString;
|
||||
wxBitmap m_extruder_bmp;
|
||||
wxBitmap m_action_icon;
|
||||
wxBitmapBundle m_extruder_bmp;
|
||||
wxBitmapBundle m_action_icon;
|
||||
// BBS
|
||||
wxBitmap m_support_icon;
|
||||
wxBitmap m_color_icon;
|
||||
wxBitmap m_sinking_icon;
|
||||
wxBitmapBundle m_support_icon;
|
||||
wxBitmapBundle m_color_icon;
|
||||
wxBitmapBundle m_sinking_icon;
|
||||
PrintIndicator m_printable {piUndef};
|
||||
wxBitmap m_printable_icon;
|
||||
wxBitmapBundle m_printable_icon;
|
||||
std::string m_warning_icon_name{ "" };
|
||||
bool m_has_lock{false}; // for cut object icon
|
||||
|
||||
|
|
@ -127,7 +127,7 @@ public:
|
|||
ObjectDataViewModelNode(ObjectDataViewModelNode* parent,
|
||||
const wxString& sub_obj_name,
|
||||
Slic3r::ModelVolumeType type,
|
||||
const wxBitmap& bmp,
|
||||
const wxBitmapBundle& bmp,
|
||||
const wxString& extruder,
|
||||
const int idx = -1,
|
||||
const std::string& warning_icon_name = std::string());
|
||||
|
|
@ -223,11 +223,11 @@ public:
|
|||
void SetName(const wxString &);
|
||||
bool SetValue(const wxVariant &variant, unsigned int col);
|
||||
void SetVolumeType(ModelVolumeType type) { m_volume_type = type; }
|
||||
void SetBitmap(const wxBitmap &icon) { m_bmp = icon; }
|
||||
void SetBitmap(const wxBitmapBundle &icon) { m_bmp = icon; }
|
||||
void SetExtruder(const wxString &extruder) { m_extruder = extruder; }
|
||||
void SetWarningBitmap(const wxBitmap& icon, const std::string& warning_icon_name) { m_bmp = icon; m_warning_icon_name = warning_icon_name; }
|
||||
void SetWarningBitmap(const wxBitmapBundle& icon, const std::string& warning_icon_name) { m_bmp = icon; m_warning_icon_name = warning_icon_name; }
|
||||
void SetLock(bool has_lock) { m_has_lock = has_lock; }
|
||||
const wxBitmap& GetBitmap() const { return m_bmp; }
|
||||
const wxBitmapBundle& GetBitmap() const { return m_bmp; }
|
||||
const wxString& GetName() const { return m_name; }
|
||||
ItemType GetType() const { return m_type; }
|
||||
InfoItemType GetInfoItemType() const { return m_info_item_type; }
|
||||
|
|
@ -319,12 +319,12 @@ class ObjectDataViewModel :public wxDataViewModel
|
|||
{
|
||||
std::vector<ObjectDataViewModelNode*> m_plates;
|
||||
std::vector<ObjectDataViewModelNode*> m_objects;
|
||||
std::vector<wxBitmap> m_volume_bmps;
|
||||
std::map<InfoItemType, wxBitmap> m_info_bmps;
|
||||
wxBitmap m_empty_bmp;
|
||||
wxBitmap m_warning_bmp;
|
||||
wxBitmap m_warning_manifold_bmp;
|
||||
wxBitmap m_lock_bmp;
|
||||
std::vector<wxBitmapBundle*> m_volume_bmps;
|
||||
std::map<InfoItemType, wxBitmapBundle*> m_info_bmps;
|
||||
wxBitmapBundle m_empty_bmp;
|
||||
wxBitmapBundle m_warning_bmp;
|
||||
wxBitmapBundle m_warning_manifold_bmp;
|
||||
wxBitmapBundle m_lock_bmp;
|
||||
|
||||
ObjectDataViewModelNode* m_plate_outside;
|
||||
|
||||
|
|
@ -383,7 +383,7 @@ public:
|
|||
// helper method for wxLog
|
||||
|
||||
wxString GetName(const wxDataViewItem &item) const;
|
||||
wxBitmap& GetBitmap(const wxDataViewItem &item) const;
|
||||
wxBitmapBundle& GetBitmap(const wxDataViewItem &item) const;
|
||||
wxString GetExtruder(const wxDataViewItem &item) const;
|
||||
int GetExtruderNumber(const wxDataViewItem &item) const;
|
||||
|
||||
|
|
@ -465,7 +465,7 @@ public:
|
|||
// Rescale bitmaps for existing Items
|
||||
void Rescale();
|
||||
|
||||
wxBitmap GetVolumeIcon(const Slic3r::ModelVolumeType vol_type,
|
||||
wxBitmapBundle GetVolumeIcon(const Slic3r::ModelVolumeType vol_type,
|
||||
const std::string& warning_icon_name = std::string());
|
||||
void AddWarningIcon(const wxDataViewItem& item, const std::string& warning_name);
|
||||
void DeleteWarningIcon(const wxDataViewItem& item, const bool unmark_object = false);
|
||||
|
|
@ -488,7 +488,7 @@ private:
|
|||
wxDataViewItem AddInstanceRoot(const wxDataViewItem& parent_item);
|
||||
void AddAllChildren(const wxDataViewItem& parent);
|
||||
|
||||
wxBitmap& GetWarningBitmap(const std::string& warning_icon_name);
|
||||
wxBitmapBundle& GetWarningBitmap(const std::string& warning_icon_name);
|
||||
void ReparentObject(ObjectDataViewModelNode* plate, ObjectDataViewModelNode* object);
|
||||
wxDataViewItem AddOutsidePlate(bool refresh = true);
|
||||
|
||||
|
|
|
|||
|
|
@ -478,7 +478,8 @@ static struct DynamicFilamentList : DynamicList
|
|||
std::string type;
|
||||
wxGetApp().preset_bundle->filaments.find_preset(presets[i])->get_filament_type(type);
|
||||
str << type;
|
||||
items.push_back({str, icons[i]});
|
||||
wxBitmap bmp = icons[i]->GetBitmapFor(wxGetApp().mainframe); //OcraftyoneTODO: using conversion rather than changing type of items vector
|
||||
items.push_back({str, &bmp});
|
||||
}
|
||||
DynamicList::update();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -397,7 +397,7 @@ void PresetComboBox::add_ams_filaments(std::string selected, bool alias_name)
|
|||
const_cast<Preset&>(*iter).is_visible = true;
|
||||
auto color = tray.opt_string("filament_colour", 0u);
|
||||
auto name = tray.opt_string("tray_name", 0u);
|
||||
wxBitmap bmp(*get_extruder_color_icon(color, name, 24, 16));
|
||||
wxBitmap bmp(get_extruder_color_icon(color, name, 24, 16)->GetBitmapFor(m_parent)); //OcraftyoneTODO: conversion rather than updating correctly
|
||||
int item_id = Append(get_preset_name(*iter), bmp.ConvertToImage(), &m_first_ams_filament + entry.first);
|
||||
//validate_selection(id->value == selected); // can not select
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public:
|
|||
PresetComboBox(wxWindow* parent, Preset::Type preset_type, const wxSize& size = wxDefaultSize, PresetBundle* preset_bundle = nullptr);
|
||||
~PresetComboBox();
|
||||
|
||||
enum LabelItemType {
|
||||
enum LabelItemType : size_t {
|
||||
LABEL_ITEM_PHYSICAL_PRINTER = 0xffffff01,
|
||||
LABEL_ITEM_DISABLED,
|
||||
LABEL_ITEM_MARKER,
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ void ComboBox::SetSelection(int n)
|
|||
drop.SetSelection(n);
|
||||
SetLabel(drop.GetValue());
|
||||
if (drop.selection >= 0 && drop.iconSize.y > 0)
|
||||
SetIcon(icons[drop.selection]);
|
||||
SetIcon(icons[drop.selection].GetBitmapFor(m_parent));//OcraftyoneTODO: dirty conversion
|
||||
}
|
||||
void ComboBox::SelectAndNotify(int n) {
|
||||
SetSelection(n);
|
||||
|
|
@ -108,7 +108,7 @@ void ComboBox::SetValue(const wxString &value)
|
|||
drop.SetValue(value);
|
||||
SetLabel(value);
|
||||
if (drop.selection >= 0 && drop.iconSize.y > 0)
|
||||
SetIcon(icons[drop.selection]);
|
||||
SetIcon(icons[drop.selection].GetBitmapFor(m_parent));//OcraftyoneTODO: dirty conversion
|
||||
}
|
||||
|
||||
void ComboBox::SetLabel(const wxString &value)
|
||||
|
|
@ -145,13 +145,13 @@ bool ComboBox::SetFont(wxFont const& font)
|
|||
return TextInput::SetFont(font);
|
||||
}
|
||||
|
||||
int ComboBox::Append(const wxString &item, const wxBitmap &bitmap)
|
||||
int ComboBox::Append(const wxString &item, const wxBitmapBundle &bitmap)
|
||||
{
|
||||
return Append(item, bitmap, nullptr);
|
||||
}
|
||||
|
||||
int ComboBox::Append(const wxString &item,
|
||||
const wxBitmap &bitmap,
|
||||
const wxBitmapBundle &bitmap,
|
||||
void * clientData)
|
||||
{
|
||||
texts.push_back(item);
|
||||
|
|
@ -196,9 +196,9 @@ void ComboBox::SetString(unsigned int n, wxString const &value)
|
|||
if (n == drop.GetSelection()) SetLabel(value);
|
||||
}
|
||||
|
||||
wxBitmap ComboBox::GetItemBitmap(unsigned int n) { return icons[n]; }
|
||||
wxBitmap ComboBox::GetItemBitmap(unsigned int n) { return icons[n].GetBitmapFor(m_parent); }
|
||||
|
||||
void ComboBox::SetItemBitmap(unsigned int n, wxBitmap const &bitmap)
|
||||
void ComboBox::SetItemBitmap(unsigned int n, wxBitmapBundle const &bitmap)
|
||||
{
|
||||
if (n >= texts.size()) return;
|
||||
icons[n] = bitmap;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
class ComboBox : public wxWindowWithItems<TextInput, wxItemContainer>
|
||||
{
|
||||
std::vector<wxString> texts;
|
||||
std::vector<wxBitmap> icons;
|
||||
std::vector<wxBitmapBundle> icons;
|
||||
std::vector<void *> datas;
|
||||
std::vector<wxClientDataType> types;
|
||||
|
||||
|
|
@ -33,9 +33,9 @@ public:
|
|||
virtual bool SetFont(wxFont const & font) override;
|
||||
|
||||
public:
|
||||
int Append(const wxString &item, const wxBitmap &bitmap = wxNullBitmap);
|
||||
int Append(const wxString &item, const wxBitmapBundle &bitmap = wxNullBitmap);
|
||||
|
||||
int Append(const wxString &item, const wxBitmap &bitmap, void *clientData);
|
||||
int Append(const wxString &item, const wxBitmapBundle &bitmap, void *clientData);
|
||||
|
||||
unsigned int GetCount() const override;
|
||||
|
||||
|
|
@ -60,7 +60,7 @@ public:
|
|||
void SetString(unsigned int n, wxString const &value) override;
|
||||
|
||||
wxBitmap GetItemBitmap(unsigned int n);
|
||||
void SetItemBitmap(unsigned int n, wxBitmap const &bitmap);
|
||||
void SetItemBitmap(unsigned int n, wxBitmapBundle const &bitmap);
|
||||
|
||||
protected:
|
||||
virtual int DoInsertItems(const wxArrayStringsAdapter &items,
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ END_EVENT_TABLE()
|
|||
*/
|
||||
|
||||
DropDown::DropDown(std::vector<wxString> &texts,
|
||||
std::vector<wxBitmap> &icons)
|
||||
std::vector<wxBitmapBundle> &icons)
|
||||
: texts(texts)
|
||||
, icons(icons)
|
||||
, state_handler(this)
|
||||
|
|
@ -44,7 +44,7 @@ DropDown::DropDown(std::vector<wxString> &texts,
|
|||
|
||||
DropDown::DropDown(wxWindow * parent,
|
||||
std::vector<wxString> &texts,
|
||||
std::vector<wxBitmap> &icons,
|
||||
std::vector<wxBitmapBundle> &icons,
|
||||
long style)
|
||||
: DropDown(texts, icons)
|
||||
{
|
||||
|
|
@ -285,17 +285,17 @@ void DropDown::render(wxDC &dc)
|
|||
if (rcContent.y > size.y) break;
|
||||
wxPoint pt = rcContent.GetLeftTop();
|
||||
auto & icon = icons[i];
|
||||
auto size2 = GetBmpSize(icon);
|
||||
auto size2 = get_preferred_size(icon, m_parent);
|
||||
if (iconSize.x > 0) {
|
||||
if (icon.IsOk()) {
|
||||
pt.y += (rcContent.height - size2.y) / 2;
|
||||
dc.DrawBitmap(icon, pt);
|
||||
dc.DrawBitmap(icon.GetBitmapFor(m_parent), pt);
|
||||
}
|
||||
pt.x += iconSize.x + 5;
|
||||
pt.y = rcContent.y;
|
||||
} else if (icon.IsOk()) {
|
||||
pt.y += (rcContent.height - size2.y) / 2;
|
||||
dc.DrawBitmap(icon, pt);
|
||||
dc.DrawBitmap(icon.GetBitmapFor(m_parent), pt);
|
||||
pt.x += size2.x + 5;
|
||||
pt.y = rcContent.y;
|
||||
}
|
||||
|
|
@ -325,7 +325,7 @@ void DropDown::messureSize()
|
|||
for (size_t i = 0; i < texts.size(); ++i) {
|
||||
wxSize size1 = text_off ? wxSize() : dc.GetMultiLineTextExtent(texts[i]);
|
||||
if (icons[i].IsOk()) {
|
||||
wxSize size2 = GetBmpSize(icons[i]);
|
||||
wxSize size2 = get_preferred_size(icons[i], m_parent);
|
||||
if (size2.x > iconSize.x) iconSize = size2;
|
||||
if (!align_icon) {
|
||||
size1.x += size2.x + (text_off ? 0 : 5);
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ wxDECLARE_EVENT(EVT_DISMISS, wxCommandEvent);
|
|||
class DropDown : public PopupWindow
|
||||
{
|
||||
std::vector<wxString> & texts;
|
||||
std::vector<wxBitmap> & icons;
|
||||
std::vector<wxBitmapBundle> & icons;
|
||||
bool need_sync = false;
|
||||
int selection = -1;
|
||||
int hover_item = -1;
|
||||
|
|
@ -43,11 +43,11 @@ class DropDown : public PopupWindow
|
|||
|
||||
public:
|
||||
DropDown(std::vector<wxString> &texts,
|
||||
std::vector<wxBitmap> &icons);
|
||||
std::vector<wxBitmapBundle> &icons);
|
||||
|
||||
DropDown(wxWindow * parent,
|
||||
std::vector<wxString> &texts,
|
||||
std::vector<wxBitmap> &icons,
|
||||
std::vector<wxBitmapBundle> &icons,
|
||||
long style = 0);
|
||||
|
||||
void Create(wxWindow * parent,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue