Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
anonymous_namespace{imgui_demo.cpp}::MyItem Struct Reference
+ Collaboration diagram for anonymous_namespace{imgui_demo.cpp}::MyItem:

Static Public Member Functions

static int IMGUI_CDECL CompareWithSortSpecs (const void *lhs, const void *rhs)
 

Public Attributes

int ID
 
const char * Name
 
int Quantity
 

Static Public Attributes

static const ImGuiTableSortSpecss_current_sort_specs = NULL
 

Detailed Description

Member Function Documentation

◆ CompareWithSortSpecs()

static int IMGUI_CDECL anonymous_namespace{imgui_demo.cpp}::MyItem::CompareWithSortSpecs ( const void lhs,
const void rhs 
)
inlinestatic
3411 {
3412 const MyItem* a = (const MyItem*)lhs;
3413 const MyItem* b = (const MyItem*)rhs;
3414 for (int n = 0; n < s_current_sort_specs->SpecsCount; n++)
3415 {
3416 // Here we identify columns using the ColumnUserID value that we ourselves passed to TableSetupColumn()
3417 // We could also choose to identify columns based on their index (sort_spec->ColumnIndex), which is simpler!
3419 int delta = 0;
3420 switch (sort_spec->ColumnUserID)
3421 {
3422 case MyItemColumnID_ID: delta = (a->ID - b->ID); break;
3423 case MyItemColumnID_Name: delta = (strcmp(a->Name, b->Name)); break;
3424 case MyItemColumnID_Quantity: delta = (a->Quantity - b->Quantity); break;
3425 case MyItemColumnID_Description: delta = (strcmp(a->Name, b->Name)); break;
3426 default: IM_ASSERT(0); break;
3427 }
3428 if (delta > 0)
3429 return (sort_spec->SortDirection == ImGuiSortDirection_Ascending) ? +1 : -1;
3430 if (delta < 0)
3431 return (sort_spec->SortDirection == ImGuiSortDirection_Ascending) ? -1 : +1;
3432 }
3433
3434 // qsort() is instable so always return a way to differenciate items.
3435 // Your own compare function may want to avoid fallback on implicit sort specs e.g. a Name compare if it wasn't already part of the sort specs.
3436 return (a->ID - b->ID);
3437 }
@ ImGuiSortDirection_Ascending
Definition imgui.h:1307
#define IM_ASSERT(_EXPR)
Definition imgui.h:81
@ MyItemColumnID_Name
Definition imgui_demo.cpp:3388
@ MyItemColumnID_ID
Definition imgui_demo.cpp:3387
@ MyItemColumnID_Description
Definition imgui_demo.cpp:3391
@ MyItemColumnID_Quantity
Definition imgui_demo.cpp:3390
Definition imgui.h:1979
ImGuiID ColumnUserID
Definition imgui.h:1980
ImGuiSortDirection SortDirection
Definition imgui.h:1983
int SpecsCount
Definition imgui.h:1995
const ImGuiTableColumnSortSpecs * Specs
Definition imgui.h:1994
static const ImGuiTableSortSpecs * s_current_sort_specs
Definition imgui_demo.cpp:3407

References ImGuiTableColumnSortSpecs::ColumnUserID, IM_ASSERT, ImGuiSortDirection_Ascending, anonymous_namespace{imgui_demo.cpp}::MyItemColumnID_Description, anonymous_namespace{imgui_demo.cpp}::MyItemColumnID_ID, anonymous_namespace{imgui_demo.cpp}::MyItemColumnID_Name, anonymous_namespace{imgui_demo.cpp}::MyItemColumnID_Quantity, ImGuiTableColumnSortSpecs::SortDirection, ImGuiTableSortSpecs::Specs, and ImGuiTableSortSpecs::SpecsCount.

Referenced by ShowDemoWindowTables().

+ Here is the caller graph for this function:

Member Data Documentation

◆ ID

int anonymous_namespace{imgui_demo.cpp}::MyItem::ID

◆ Name

const char* anonymous_namespace{imgui_demo.cpp}::MyItem::Name

◆ Quantity

int anonymous_namespace{imgui_demo.cpp}::MyItem::Quantity

◆ s_current_sort_specs

const ImGuiTableSortSpecs * anonymous_namespace{imgui_demo.cpp}::MyItem::s_current_sort_specs = NULL
static

Referenced by ShowDemoWindowTables().


The documentation for this struct was generated from the following file: