📄 leftview.cpp
字号:
#include "StdAfx.h"
#include "Resource.h"
#include "App.h"
#include "LeftView.h"
#include "MainFrame.h"
IMPLEMENT_DYNCREATE(LeftView, CListView)
BEGIN_MESSAGE_MAP(LeftView, CListView)
ON_WM_TIMER()
ON_WM_RBUTTONUP()
ON_WM_LBUTTONDOWN()
ON_WM_RBUTTONDOWN()
END_MESSAGE_MAP()
LeftView::LeftView()
{
IsInitialUpdate = FALSE;
}
BOOL LeftView::PreCreateWindow(CREATESTRUCT& cs)
{
CListView::PreCreateWindow(cs);
cs.style &= ~LVS_TYPEMASK;
cs.style |= LVS_REPORT | LVS_SORTASCENDING | LVS_SINGLESEL | LVS_SHOWSELALWAYS;
return TRUE;
}
enum
{
CONF_ID_COLUMN,
CONF_MEMBERS_COLUMN,
CONF_SPEAKERS_COLUMN,
CONF_IN_SPEAKING_COLUMN,
CONF_N_COLUMNS
};
void LeftView::OnInitialUpdate()
{
if (IsInitialUpdate == FALSE)
{
CListCtrl& ListCtrl = GetListCtrl();
_TCHAR *ColumnLabel[CONF_N_COLUMNS] =
{
_T("ID"),
_T("Members"),
_T("Speakers"),
_T("In speaking")
};
int i;
ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);
for(i = 0; i < CONF_N_COLUMNS; i++)
{
ListCtrl.InsertColumn(i, ColumnLabel[i], LVCFMT_LEFT, 100);
}
SetTimer(0, 500, NULL);
IsInitialUpdate = TRUE;
}
}
void LeftView::OnTimer(UINT nIDEvent)
{
CListCtrl& ListCtrl = GetListCtrl();
LVFINDINFO item_find;
int active;
char str[10] = "";
int i;
if (nIDEvent == 0)
{
// ENG: Retrieve selection
// CHS: 获取选择
for (i = 0; i < ListCtrl.GetItemCount(); i++)
{
if (ListCtrl.GetItemState(i, LVIS_SELECTED))
ListCtrl.GetItemText(i, 0, str, 10);
}
if (strlen(str) > 0)
{
conf_active = atoi(str);
}
else
{
conf_active = -1;
}
// ENG: Refresh
// CHS: 刷新
ListCtrl.DeleteAllItems();
WORD TotalMember, TotalSpeaker, TotalSpeaking;
char temp[10];
int index;
int * conf = (int *)malloc(sizeof(int) * SsmGetTotalConfGroup());
SsmGetConfGrpId(conf);
for (i = 0; i < SsmGetTotalConfGroup(); i++)
{
SsmGetConfGrpInfo(conf[i], &TotalMember, &TotalSpeaker, &TotalSpeaking);
index = ListCtrl.InsertItem(0, itoa(conf[i], temp, 10), IDI_ICON_CONFERENCE);
ListCtrl.SetItemText(index, 1, itoa(TotalMember, temp, 10));
ListCtrl.SetItemText(index, 2, itoa(TotalSpeaker, temp, 10));
ListCtrl.SetItemText(index, 3, itoa(TotalSpeaking, temp, 10));
}
// ENG: Restore selection
// CHS: 还原选择
item_find.flags = LVFI_STRING;
item_find.psz = str;
active = ListCtrl.FindItem(&item_find);
if (active < 0)
active = 0;
if (ListCtrl.GetItemCount() >= 0)
ListCtrl.SetItemState(active, LVIS_SELECTED, LVIS_SELECTED);
}
}
void LeftView::OnRButtonUp(UINT nFlags, CPoint point)
{
CListCtrl& ListCtrl = GetListCtrl();
CMenu menu;
CPoint point_screen;
GetCursorPos(&point_screen);
menu.LoadMenu(IDR_MENU_CONF);
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN, point_screen.x , point_screen.y, &ListCtrl);
}
void LeftView::OnRButtonDown(UINT nFlags, CPoint point)
{
int index;
PostMessage(WM_TIMER);
CListCtrl& ListCtrl = GetListCtrl();
if ((index = ListCtrl.HitTest(point)) >= 0)
ListCtrl.SetItemState(index, LVIS_SELECTED, LVIS_SELECTED);
else if(ListCtrl.GetItemCount() > 0)
ListCtrl.SetItemState(ListCtrl.GetItemCount() - 1, LVIS_SELECTED, LVIS_SELECTED);
}
void LeftView::OnLButtonDown(UINT nFlags, CPoint point)
{
int index;
PostMessage(WM_TIMER);
CListCtrl& ListCtrl = GetListCtrl();
if ((index = ListCtrl.HitTest(point)) >= 0)
ListCtrl.SetItemState(index, LVIS_SELECTED, LVIS_SELECTED);
else if(ListCtrl.GetItemCount() > 0)
ListCtrl.SetItemState(ListCtrl.GetItemCount() - 1, LVIS_SELECTED, LVIS_SELECTED);
}
BOOL LeftView::OnCommand(WPARAM wParam, LPARAM lParam)
{
int master_ch = get_master(conf_active);
if (master_ch >= 0)
{
switch(wParam)
{
case ID_TOGGLEBACKGROUDSOUND:
channels[master_ch].BgSoundEnabled = !channels[master_ch].BgSoundEnabled;
break;
case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_6A:
channels[master_ch].BgSoundVolume = 6;
break;
case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_5A:
channels[master_ch].BgSoundVolume = 5;
break;
case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_4A:
channels[master_ch].BgSoundVolume = 4;
break;
case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_3A:
channels[master_ch].BgSoundVolume = 3;
break;
case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_2A:
channels[master_ch].BgSoundVolume = 2;
break;
case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_1A:
channels[master_ch].BgSoundVolume = 1;
break;
case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_0:
channels[master_ch].BgSoundVolume = 0;
break;
case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_1B:
channels[master_ch].BgSoundVolume = -1;
break;
case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_2B:
channels[master_ch].BgSoundVolume = -2;
break;
case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_3B:
channels[master_ch].BgSoundVolume = -3;
break;
case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_4B:
channels[master_ch].BgSoundVolume = -4;
break;
case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_5B:
channels[master_ch].BgSoundVolume = -5;
break;
case ID_CONTENTMENU_BACKGROUDSOUNDVOLUME_6B:
channels[master_ch].BgSoundVolume = -6;
break;
}
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -