1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
#include "StdAfx.h"
#include "T2MoviePlugin.h"
#include "T2MoviePluginList.h"
#include "T2MovieTable.h"
/*virtual*/ int T2MovieTable::OnT2DlgItemCreate(CREATESTRUCT* cs) {
T2DlgItemTable::SetColWidth(cs->cx, 0, 0);
return T2DlgItemTable::OnT2DlgItemCreate(cs);
}
T2MovieTable::T2MovieTable(T2TowerDoc* inDoc, T2ImageObj* inImageObj, CPalette* inPalette)
: T2VerticalTable(inDoc, inImageObj, inPalette)
{
mClearBackground = true;
mMovieType = 1;
SetCellDataSize(sizeof(T2MoviePlugin *));
InsertCols(1, 0, NULL);
SetHScrollerStyle(AlwaysHide);
SetVScrollerStyle(AlwaysShow);
}
void T2MovieTable::SetMovieType(int inType) {
mMovieType = inType;
}
void T2MovieTable::Add(T2MoviePlugin* inPlugin) {
unsigned int index = mRows;
InsertRows(1, index, &inPlugin);
}
void T2MovieTable::Add(CFilePluginList* inList) {
T2MoviePlugin *thePlugin;
unsigned int index = mRows;
POSITION pos = inList->GetHeadPosition();
while (pos) {
thePlugin = (T2MoviePlugin *) inList->GetNext(pos);
InsertRows(1, index, &thePlugin);
index++;
}
}
/*virtual*/ void T2MovieTable::DrawCellSelf(CDC* pDC, const TableCellT& inCell, BOOL inSelected) {
DrawCell(pDC, inCell);
}
/*virtual*/ void T2MovieTable::DrawCell(CDC* pDC, const TableCellT& inCell) {
int save = pDC->SaveDC();
pDC->SelectPalette(mPalette, false);
pDC->RealizePalette();
CFont font;
RECT cellRect;
if (FetchLocalCellFrame(inCell, cellRect)) {
T2MoviePlugin *thePlugin;
GetCellData(inCell, &thePlugin);
if (thePlugin) {
font.CreateFont(-12, 0, 0, 0, FW_DONTCARE, false, false, false, SHIFTJIS_CHARSET, OUT_TT_PRECIS, CLIP_TT_ALWAYS, PROOF_QUALITY, DEFAULT_PITCH, "\x82\x6C\x82\x72 \x83\x53\x83\x56\x83\x62\x83\x4E");
pDC->SelectObject(&font);
pDC->SetBkMode(TRANSPARENT);
CString title;
thePlugin->GetTitle(title, mMovieType);
pDC->TextOut(cellRect.left + 4, cellRect.bottom - 12, title, strlen(title));
}
}
pDC->RestoreDC(save);
}
void T2MovieTable::ClickCell(const TableCellT& inCell, const CPoint& inPt) {
T2DlgItemTable::ClickCell(inCell, inPt);
if (IsValidCell(mSelectedCell)) {
T2MoviePlugin *thePlugin;
GetCellData(mSelectedCell, &thePlugin);
if (thePlugin)
BroadcastMessage(-GetDlgCtrlID(), thePlugin);
}
}
/*virtual*/ void T2MovieTable::OnT2DlgItemLButtonDown(UINT inFlags, CPoint inPt) {
CPoint pt = inPt;
ClientToView(&pt, 1);
TableCellT cell;
FetchCellHitBy(pt, cell);
if (IsValidCell(cell))
ClickCell(cell, inPt);
}
/*virtual*/ BOOL T2MovieTable::OnT2DlgItemEraseBkgnd(CDC* pDC) {
T2VerticalTable::OnT2DlgItemEraseBkgnd(pDC);
unsigned int numOfRows, numOfColumns, theRow, theColumn;
GetTableSize(numOfRows, numOfColumns);
for (theColumn = 1; theColumn <= numOfColumns; theColumn++) {
for (theRow = 1; theRow <= numOfRows; theRow++) {
TableCellT cell;
cell.row = theRow;
cell.col = theColumn;
DrawCell(pDC, cell);
}
}
T2DlgItemTable::HiliteCell(pDC, mSelectedCell);
return true;
}
|