NEW: Add tag for variable layer_height

jira: STUDIO-7412

Change-Id: I4b5c8e158b073b302db6faad77bb8ca0f70f766a
(cherry picked from commit ffc34acf783aa1f6ac23f24a96fff30be90880d0)
(cherry picked from commit 86a8e6c433799d931e441d5ea387702b03ff50f8)
This commit is contained in:
hang.xu 2024-08-15 20:05:40 +08:00 committed by Noisyfox
parent d6e3d5272e
commit b2f2e41b80
4 changed files with 105 additions and 3 deletions

View file

@ -209,6 +209,13 @@ void ObjectDataViewModelNode::set_printable_icon(PrintIndicator printable)
create_scaled_bitmap(m_printable == piPrintable ? "check_on" : "check_off_focused");
}
void ObjectDataViewModelNode::set_variable_height_icon(VaryHeightIndicator vari_height) {
if (m_variable_height == vari_height)
return;
m_variable_height = vari_height;
m_variable_height_icon = m_variable_height == hiUnVariable ? m_empty_bmp : create_scaled_bitmap("toolbar_variable_layer_height", nullptr, 20);
}
void ObjectDataViewModelNode::set_action_icon(bool enable)
{
if (m_action_enable == enable)
@ -306,6 +313,8 @@ void ObjectDataViewModelNode::msw_rescale()
if (m_printable != piUndef)
m_printable_icon = create_scaled_bitmap(m_printable == piPrintable ? "obj_printable" : "obj_unprintable");
m_variable_height_icon = m_variable_height == hiUnVariable ? m_empty_bmp : create_scaled_bitmap("toolbar_variable_layer_height", nullptr, 20);
if (!m_opt_categories.empty())
update_settings_digest_bitmaps();
@ -319,6 +328,9 @@ bool ObjectDataViewModelNode::SetValue(const wxVariant& variant, unsigned col)
case colPrint:
m_printable_icon << variant;
return true;
case colHeight:
m_variable_height_icon << variant;
return true;
case colName: {
DataViewBitmapText data;
data << variant;
@ -871,6 +883,14 @@ bool ObjectDataViewModel::IsPrintable(const wxDataViewItem& item) const
return node->IsPrintable() == piPrintable;
}
bool ObjectDataViewModel::IsVariableHeight(const wxDataViewItem& item) const {
ObjectDataViewModelNode* node = static_cast<ObjectDataViewModelNode*>(item.GetID());
if (!node)
return false;
return node->IsVaribaleHeight() == hiVariable;
}
wxDataViewItem ObjectDataViewModel::AddLayersRoot(const wxDataViewItem &parent_item)
{
return AddRoot(parent_item, itLayerRoot);
@ -1751,6 +1771,9 @@ void ObjectDataViewModel::GetValue(wxVariant &variant, const wxDataViewItem &ite
case colPrint:
variant << node->m_printable_icon;
break;
case colHeight:
variant << node->m_variable_height_icon;
break;
case colName:
variant << DataViewBitmapText(node->m_name, node->m_bmp);
break;
@ -2279,6 +2302,18 @@ wxDataViewItem ObjectDataViewModel::SetObjectPrintableState(
return obj_item;
}
// is the height is variable?
wxDataViewItem ObjectDataViewModel::SetObjectVariableHeightState(VaryHeightIndicator vari_height, wxDataViewItem obj_item) {
ObjectDataViewModelNode* node = static_cast<ObjectDataViewModelNode*>(obj_item.GetID());
if (!node)
return wxDataViewItem(0);
node->set_variable_height_icon(vari_height);
ItemChanged(obj_item);
return obj_item;
}
bool ObjectDataViewModel::IsColorPainted(wxDataViewItem& item) const
{
ObjectDataViewModelNode* node = static_cast<ObjectDataViewModelNode*>(item.GetID());