Files
Sun1602/SolarSlot/SCQuickStyleSlotContainer.cpp
T
2022-10-26 12:25:11 +08:00

64 lines
1.4 KiB
C++

#include "stdafx.h"
#include "./SCQuickStyleSlotContainer.h"
#include "./SCQuickStyleSlot.h"
//==================================================================================================
SCQuickStyleSlotContainer::SCQuickStyleSlotContainer(void)
{
}
SCQuickStyleSlotContainer::~SCQuickStyleSlotContainer(void)
{
}
SCSlot*
SCQuickStyleSlotContainer::CreateSlot()
{
return new SCQuickStyleSlot;
}
void
SCQuickStyleSlotContainer::InsertSlot(POSTYPE at_pos, STYLESTREAM& stream)
{
// slot_in_container
SCSlot* base_slot = GetValidSlotPtr(NULL, at_pos);
if (base_slot == NULL) {
return;
}
if (GetEmptySlotNum() == 0) {
return;
}
// desired empty slot
if (IsEmpty(at_pos) == false) {
return;
}
//
++m_nSlotNum;
SCQuickStyleSlot* quick_style_slot = static_cast<SCQuickStyleSlot*>(base_slot);
quick_style_slot->Copy(stream);
quick_style_slot->SetPos(at_pos);
quick_style_slot->SetSlotIdx(GetSlotIdx());
quick_style_slot->OnInsert();
//
this->OnInsert(*quick_style_slot);
}
BOOL
SCQuickStyleSlotContainer::IsEmpty(POSTYPE at_pos)
{
SCSlot* base_slot = GetValidSlotPtr(NULL, at_pos);
if (base_slot == NULL) {
// problem point... traditional custom is required the result is true
return true;
}
if (static_cast<SCQuickStyleSlot*>(base_slot)->GetOrgCode() == 0) { //...correct?
return true;
}
return false;
}