Window2   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 5
Bugs 0 Features 0
Metric Value
wmc 2
c 5
b 0
f 0
lcom 0
cbo 2
dl 0
loc 59
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getData() 0 14 1
B calcGrbit() 0 28 1
1
<?php
2
namespace Xls\Record;
3
4
use Xls\Worksheet;
5
6
class Window2 extends AbstractRecord
7
{
8
    const NAME = 'WINDOW2';
9
    const ID = 0x023E;
10
11
    /**
12
     * @param Worksheet $worksheet
13
     *
14
     * @return string
15
     */
16
    public function getData(Worksheet $worksheet)
17
    {
18
        $rwTop = 0x00; // Top row visible in window
19
        $colLeft = 0x00; // Leftmost column visible in window
20
21
        $data = pack("vvv", $this->calcGrbit($worksheet), $rwTop, $colLeft);
22
23
        $rgbHdr = 0x0040; // Row/column heading and gridline color index
24
        $zoomFactorPageBreak = 0x00;
25
        $zoomFactorNormal = 0x00;
26
        $data .= pack("vvvvV", $rgbHdr, 0x00, $zoomFactorPageBreak, $zoomFactorNormal, 0x00);
27
28
        return $this->getFullRecord($data);
29
    }
30
31
    /**
32
     * @param Worksheet $worksheet
33
     *
34
     * @return int
35
     */
36
    protected function calcGrbit(Worksheet $worksheet)
37
    {
38
        $fDspFmla = 0; // 0 - bit
39
        $fDspGrid = intval($worksheet->areGridLinesVisible()); // 1
40
        $fDspRwCol = 1; // 2
41
        $fFrozen = intval($worksheet->isFrozen()); // 3
42
        $fDspZeros = 1; // 4
43
        $fDefaultHdr = 1; // 5
44
        $fArabic = intval($worksheet->isRtl()); // 6
45
        $fDspGuts = intval($worksheet->isOutlineOn()); // 7
46
        $fFrozenNoSplit = 0; // 0 - bit
47
        $fSelected = intval($worksheet->isSelected()); // 1
48
        $fPaged = 1; // 2
49
50
        $grbit = $fDspFmla;
51
        $grbit |= $fDspGrid << 1;
52
        $grbit |= $fDspRwCol << 2;
53
        $grbit |= $fFrozen << 3;
54
        $grbit |= $fDspZeros << 4;
55
        $grbit |= $fDefaultHdr << 5;
56
        $grbit |= $fArabic << 6;
57
        $grbit |= $fDspGuts << 7;
58
        $grbit |= $fFrozenNoSplit << 8;
59
        $grbit |= $fSelected << 9;
60
        $grbit |= $fPaged << 10;
61
62
        return $grbit;
63
    }
64
}
65