📄 ctabdialog.cpp
字号:
// cTabDialog.cpp: implementation of the cTabDialog class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "cTabDialog.h"
#include "../Input/Mouse.h"
#include "cPushupButton.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
cTabDialog::cTabDialog()
{
m_ppPushupTabBtn=NULL;
m_bTabNum=0;
m_bSelTabNum=0;
m_type = WT_TABDIALOG;
m_ppWindowTabSheet=NULL;
curIdx1 = 0;
curIdx2 = 0;
// m_BtnPushstartTime = 0;
// m_BtnPushDelayTime = 700;
}
cTabDialog::~cTabDialog()
{
for(int i = 0 ; i < m_bTabNum ; i++) // 林狼!: windowmanager俊 殿废窍绊 促矫 咯扁 殿废且荐 乐栏聪..
{
SAFE_DELETE(m_ppPushupTabBtn[i]);
SAFE_DELETE(m_ppWindowTabSheet[i]);
}
SAFE_DELETE_ARRAY(m_ppPushupTabBtn);
SAFE_DELETE_ARRAY(m_ppWindowTabSheet);
}
void cTabDialog::InitTab(BYTE tabNum)
{
curIdx1 = 0;
curIdx2 = 0;
m_bTabNum = tabNum;
m_ppPushupTabBtn = new cPushupButton*[m_bTabNum];
m_ppWindowTabSheet = new cWindow*[m_bTabNum];
memset(m_ppPushupTabBtn, 0, sizeof(cPushupButton*)*m_bTabNum);
memset(m_ppWindowTabSheet, 0, sizeof(cWindow*)*m_bTabNum);
}
void cTabDialog::SetAlpha(BYTE al)
{
cDialog::SetAlpha(al);
for(int i = 0 ; i < m_bTabNum ; i++)
{
m_ppPushupTabBtn[i]->SetAlpha(al);
m_ppWindowTabSheet[i]->SetAlpha(al);
}
}
//KES 030825
void cTabDialog::SetOptionAlpha( DWORD dwAlpha)
{
cDialog::SetOptionAlpha( dwAlpha );
for(int i = 0 ; i < m_bTabNum ; i++)
{
m_ppPushupTabBtn[i]->SetOptionAlpha( dwAlpha );
m_ppWindowTabSheet[i]->SetOptionAlpha( dwAlpha );
}
}
void cTabDialog::AddTabBtn(BYTE idx, cPushupButton * btn)
{
ASSERT(idx < m_bTabNum);
ASSERT(!m_ppPushupTabBtn[idx]);
btn->SetAbsXY((LONG)(m_absPos.x+btn->m_relPos.x), (LONG)(m_absPos.y+btn->m_relPos.y));
btn->SetParent(this);
btn->SetPassive(TRUE);
if(idx == m_bSelTabNum)
btn->SetPush(TRUE);
else
btn->SetPush(FALSE);
m_ppPushupTabBtn[idx] = btn;
}
void cTabDialog::AddTabSheet(BYTE idx, cWindow * sheet)
{
ASSERT(idx < m_bTabNum);
ASSERT(!m_ppWindowTabSheet[idx]);
sheet->SetAbsXY((LONG)(m_absPos.x+sheet->m_relPos.x), (LONG)(m_absPos.y+sheet->m_relPos.y));
sheet->SetParent(this);
m_ppWindowTabSheet[idx] = sheet;
}
DWORD cTabDialog::ActionEvent(CMouse * mouseInfo)
{
DWORD we = WE_NULL;
if(!m_bActive) return we;
we = cDialog::ActionEvent(mouseInfo);
DWORD we2 = WE_NULL;
for( int i = 0 ; i < m_bTabNum ; i++ )
{
we2 = m_ppPushupTabBtn[i]->ActionEvent( mouseInfo );
if( we2 & WE_PUSHDOWN && m_bSelTabNum != i )//&& m_ppPushupTabBtn[i]->PtInWindow(mouseInfo->GetMouseX(), mouseInfo->GetMouseY()) && mouseInfo->LButtonPressed()))
{
SelectTab(i); //鉴辑瘤虐扁(荐访芒锭巩..)
m_bSelTabNum = i;
}
}
we |= m_ppWindowTabSheet[m_bSelTabNum]->ActionEvent( mouseInfo );
return we;
}
void cTabDialog::SelectTab(BYTE idx)
{
if( idx >= m_bTabNum ) return;
m_ppPushupTabBtn[idx]->SetPush(TRUE);
m_ppWindowTabSheet[idx]->SetActive(TRUE);
m_bSelTabNum = idx;
for(int j = 0 ; j < m_bTabNum ; j++)
{
if(idx != j)
{
m_ppPushupTabBtn[j]->SetPush(FALSE);
m_ppWindowTabSheet[j]->SetActive(FALSE);
}
}
}
void cTabDialog::Render()
{
cDialog::RenderWindow();
cTabDialog::RenderTabComponent();
cDialog::RenderComponent();
}
void cTabDialog::RenderTabComponent()
{
if(!m_bActive) return;
for(int i = 0 ; i < m_bTabNum ; i++)
{
if(m_bSelTabNum == i)
{
m_ppWindowTabSheet[i]->Render();
}
m_ppPushupTabBtn[i]->Render();
}
}
void cTabDialog::SetAbsXY(LONG x, LONG y)
{
LONG tmpX = x - (LONG)m_absPos.x;
LONG tmpY = y - (LONG)m_absPos.y;
for(int i = 0 ; i < m_bTabNum ; i++)
{
m_ppPushupTabBtn[i]->SetAbsXY((LONG)m_ppPushupTabBtn[i]->GetAbsX()+tmpX,
(LONG)m_ppPushupTabBtn[i]->GetAbsY()+tmpY);
m_ppWindowTabSheet[i]->SetAbsXY((LONG)m_ppWindowTabSheet[i]->GetAbsX()+tmpX,
(LONG)m_ppWindowTabSheet[i]->GetAbsY()+tmpY);
}
cDialog::SetAbsXY(x,y);
}
void cTabDialog::SetActive(BOOL val)
{
if( m_bDisable ) return;
for(int i = 0 ; i < m_bTabNum ; i++)
{
m_ppPushupTabBtn[i]->SetActive(val);
if(val && i == m_bSelTabNum)
m_ppWindowTabSheet[i]->SetActive(val);
else if(!val)
m_ppWindowTabSheet[i]->SetActive(val);
}
cDialog::SetActiveRecursive(val);
}
cPushupButton * cTabDialog::GetTabBtn(BYTE idx)
{
ASSERT(idx < m_bTabNum);
return m_ppPushupTabBtn[idx];
}
cWindow * cTabDialog::GetTabSheet(BYTE idx)
{
ASSERT(idx < m_bTabNum);
return m_ppWindowTabSheet[idx];
}
void cTabDialog::SetDisable( BOOL val )
{
cDialog::SetDisable( val );
for(int i = 0 ; i < m_bTabNum ; i++)
{
m_ppPushupTabBtn[i]->SetDisable(val);
m_ppWindowTabSheet[i]->SetDisable(val);
}
}
cWindow* cTabDialog::GetWindowForID(LONG id)
{
cWindow* pWindow = cDialog::GetWindowForID( id );
if( !pWindow )
{
for(int i = 0 ; i < m_bTabNum ; i++)
{
if( m_ppPushupTabBtn[i]->GetID() == id )
{
pWindow = m_ppPushupTabBtn[i];
break;
}
if( m_ppWindowTabSheet[i]->GetID() == id )
{
pWindow = m_ppWindowTabSheet[i];
break;
}
}
}
return pWindow;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -