~ubuntu-branches/ubuntu/trusty/sunpinyin/trusty-proposed

« back to all changes in this revision

Viewing changes to src/ime-core/imi_view.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Zhengpeng Hou
  • Date: 2010-09-06 12:23:46 UTC
  • Revision ID: james.westby@ubuntu.com-20100906122346-yamofztk2j5p85fs
Tags: upstream-2.0.2
ImportĀ upstreamĀ versionĀ 2.0.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 
3
 * 
 
4
 * Copyright (c) 2007 Sun Microsystems, Inc. All Rights Reserved.
 
5
 * 
 
6
 * The contents of this file are subject to the terms of either the GNU Lesser
 
7
 * General Public License Version 2.1 only ("LGPL") or the Common Development and
 
8
 * Distribution License ("CDDL")(collectively, the "License"). You may not use this
 
9
 * file except in compliance with the License. You can obtain a copy of the CDDL at
 
10
 * http://www.opensource.org/licenses/cddl1.php and a copy of the LGPLv2.1 at
 
11
 * http://www.opensource.org/licenses/lgpl-license.php. See the License for the 
 
12
 * specific language governing permissions and limitations under the License. When
 
13
 * distributing the software, include this License Header Notice in each file and
 
14
 * include the full text of the License in the License file as well as the
 
15
 * following notice:
 
16
 * 
 
17
 * NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE
 
18
 * (CDDL)
 
19
 * For Covered Software in this distribution, this License shall be governed by the
 
20
 * laws of the State of California (excluding conflict-of-law provisions).
 
21
 * Any litigation relating to this License shall be subject to the jurisdiction of
 
22
 * the Federal Courts of the Northern District of California and the state courts
 
23
 * of the State of California, with venue lying in Santa Clara County, California.
 
24
 * 
 
25
 * Contributor(s):
 
26
 * 
 
27
 * If you wish your version of this file to be governed by only the CDDL or only
 
28
 * the LGPL Version 2.1, indicate your decision by adding "[Contributor]" elects to
 
29
 * include this software in this distribution under the [CDDL or LGPL Version 2.1]
 
30
 * license." If you don't indicate a single choice of license, a recipient has the
 
31
 * option to distribute your version of this file under either the CDDL or the LGPL
 
32
 * Version 2.1, or to extend the choice of license to its licensees as provided
 
33
 * above. However, if you add LGPL Version 2.1 code and therefore, elected the LGPL
 
34
 * Version 2 license, then the option applies only if the new code is made subject
 
35
 * to such option by the copyright holder. 
 
36
 */
 
37
 
 
38
#ifdef HAVE_CONFIG_H
 
39
#include <config.h>
 
40
#endif
 
41
 
 
42
#include "imi_view.h"
 
43
#include "imi_view_classic.h"
 
44
 
 
45
#pragma setlocale("zh_CN.UTF-8")
 
46
 
 
47
CHotkeyProfile::CHotkeyProfile()
 
48
    : m_punctSwitchKey(IM_VK_PERIOD, 0, IM_CTRL_MASK),
 
49
      m_symbolSwitchKey(IM_VK_SPACE, 0, IM_SHIFT_MASK),
 
50
      m_candiDeleteKey(0, 0, IM_CTRL_MASK),
 
51
      m_prevKey(0)
 
52
{
 
53
    addModeSwitchKey(CKeyEvent(IM_VK_SHIFT_L, 0, IM_ALT_MASK));
 
54
}
 
55
 
 
56
 
 
57
CIMIView::CIMIView()
 
58
    : m_pIC(NULL), m_pWinHandler(NULL), m_pPySegmentor(NULL), m_pHotkeyProfile(NULL),
 
59
      m_candiWindowSize(10), m_bCN(true), m_bFullPunct(true), m_bFullSymbol(false)
 
60
{
 
61
}
 
62
 
 
63
void
 
64
CIMIView::setStatusAttrValue(int key, int value)
 
65
{
 
66
    switch(key) {
 
67
    case CIMIWinHandler::STATUS_ID_CN:
 
68
        m_bCN = (value != 0);
 
69
        if (m_pWinHandler)
 
70
            m_pWinHandler->updateStatus( key, value );
 
71
        break;
 
72
    case CIMIWinHandler::STATUS_ID_FULLPUNC:
 
73
        m_bFullPunct = (value != 0);
 
74
        if (m_pWinHandler)
 
75
            m_pWinHandler->updateStatus( key, value );
 
76
        if (m_pIC)
 
77
            m_pIC->setFullPunctForwarding (m_bFullPunct);
 
78
        break;
 
79
    case CIMIWinHandler::STATUS_ID_FULLSYMBOL:
 
80
        m_bFullSymbol = (value != 0);
 
81
        if (m_pWinHandler)
 
82
            m_pWinHandler->updateStatus( key, value );
 
83
        if (m_pIC)
 
84
            m_pIC->setFullSymbolForwarding (m_bFullSymbol);
 
85
        break;
 
86
    }
 
87
}
 
88
 
 
89
int
 
90
CIMIView::getStatusAttrValue(int key)
 
91
{
 
92
    switch(key) {
 
93
    case CIMIWinHandler::STATUS_ID_CN:
 
94
        return (m_bCN)?1:0;
 
95
    case CIMIWinHandler::STATUS_ID_FULLPUNC:
 
96
        return (m_bFullPunct)?1:0;
 
97
    case CIMIWinHandler::STATUS_ID_FULLSYMBOL:
 
98
        return (m_bFullSymbol)?1:0;
 
99
    }
 
100
    return 0;
 
101
}