OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::GridCellFilamentsRenderer Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/GUI_ObjectTable.hpp>

Inheritance diagram for Slic3r::GUI::GridCellFilamentsRenderer:
Collaboration diagram for Slic3r::GUI::GridCellFilamentsRenderer:

Public Member Functions

virtual void Draw (wxGrid &grid, wxGridCellAttr &attr, wxDC &dc, const wxRect &rect, int row, int col, bool isSelected) wxOVERRIDE
virtual wxSize GetBestSize (wxGrid &WXUNUSED(grid), wxGridCellAttr &attr, wxDC &dc, int WXUNUSED(row), int WXUNUSED(col)) wxOVERRIDE
virtual GridCellFilamentsRenderer * Clone () const wxOVERRIDE

Detailed Description

Member Function Documentation

◆ Clone()

GridCellFilamentsRenderer * Slic3r::GUI::GridCellFilamentsRenderer::Clone ( ) const
virtual
405{ return new GridCellFilamentsRenderer(); }

◆ Draw()

void Slic3r::GUI::GridCellFilamentsRenderer::Draw ( wxGrid & grid,
wxGridCellAttr & attr,
wxDC & dc,
const wxRect & rect,
int row,
int col,
bool isSelected )
virtual
363{
364 ObjectGridTable *table = dynamic_cast<ObjectGridTable *>(grid.GetTable());
365 wxRect text_rect = rect;
366
367 if (table) {
368 ObjectGridTable::ObjectGridCol *grid_col = table->get_grid_col(col);
369 ObjectGridTable::ObjectGridRow *grid_row = table->get_grid_row(row - 1);
370 ConfigOptionInt & cur_option = dynamic_cast<ConfigOptionInt &>((*grid_row)[(ObjectGridTable::GridColType) col]);
371
372 wxBitmap *bitmap = table->get_color_bitmap((cur_option.value >= 1) ? cur_option.value - 1 : cur_option.value);
373 int bitmap_width = bitmap->GetWidth();
374 int bitmap_height = bitmap->GetHeight();
375 int offset_x = grid_cell_border_width;
376 int offset_y = (rect.height > bitmap_height) ? (rect.height - bitmap_height) / 2 : grid_cell_border_height;
377
378 dc.SetPen(*wxTRANSPARENT_PEN);
379 dc.SetBrush(wxBrush(attr.GetBackgroundColour()));
380 dc.DrawRectangle(rect);
381 if ((grid_row->model_volume_type != ModelVolumeType::NEGATIVE_VOLUME) && \
382 (grid_row->model_volume_type != ModelVolumeType::SUPPORT_BLOCKER) && \
383 (grid_row->model_volume_type != ModelVolumeType::SUPPORT_ENFORCER) && \
384 (grid_row->model_volume_type != ModelVolumeType::PARAMETER_MODIFIER) && \
385 !is_precise_seam(grid_row->model_volume_type)) { // Precise Seam is non-printing helper geometry
386 dc.DrawBitmap(*bitmap, wxPoint(rect.x + offset_x, rect.y + offset_y));
387 }
388 else if (grid_row->model_volume_type == ModelVolumeType::PARAMETER_MODIFIER){
389 dc.DrawText(_L("Default"), wxPoint(rect.x + offset_x, rect.y + offset_y));
390 }
391
392 text_rect.x += bitmap_width + grid_cell_border_width * 2;
393 text_rect.width -= (bitmap_width + grid_cell_border_width * 2);
394 }
395
396 //wxGridCellChoiceRenderer::Draw(grid, attr, dc, rect, row, col, isSelected);
397}
#define _L(s)
Definition OBJ.cpp:34
GridColType
Definition GUI_ObjectTable.hpp:294
static const int grid_cell_border_width
Definition GUI_ObjectTable.cpp:61
static const int grid_cell_border_height
Definition GUI_ObjectTable.cpp:62
@ PARAMETER_MODIFIER
Definition Model.hpp:359
@ SUPPORT_BLOCKER
Definition Model.hpp:360
@ NEGATIVE_VOLUME
Definition Model.hpp:358
@ SUPPORT_ENFORCER
Definition Model.hpp:361
std::vector< ArithmeticOnly< T > > grid(const T &start, const T &stop, const T &stride)
A set of equidistant values starting from 'start' (inclusive), ending in the closest multiple of 'str...
Definition MTUtils.hpp:127
bool is_precise_seam(ModelVolumeType t)
Definition Model.hpp:373

References _L, Slic3r::GUI::ObjectGridTable::get_color_bitmap(), Slic3r::GUI::ObjectGridTable::get_grid_col(), Slic3r::GUI::ObjectGridTable::get_grid_row(), Slic3r::grid(), Slic3r::GUI::grid_cell_border_height, Slic3r::GUI::grid_cell_border_width, Slic3r::is_precise_seam(), Slic3r::GUI::ObjectGridTable::ObjectGridRow::model_volume_type, Slic3r::NEGATIVE_VOLUME, Slic3r::PARAMETER_MODIFIER, Slic3r::SUPPORT_BLOCKER, Slic3r::SUPPORT_ENFORCER, and Slic3r::ConfigOptionSingle< T >::value.

Here is the call graph for this function:

◆ GetBestSize()

wxSize Slic3r::GUI::GridCellFilamentsRenderer::GetBestSize ( wxGrid & WXUNUSEDgrid,
wxGridCellAttr & attr,
wxDC & dc,
int WXUNUSEDrow,
int WXUNUSEDcol )
virtual
400{
401 wxSize size{48, -1};
402 return size;
403}

References Slic3r::grid().

Here is the call graph for this function:

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