~ubuntu-branches/ubuntu/hardy/uim/hardy

« back to all changes in this revision

Viewing changes to qt/toolbar-applet-kde.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Masahito Omote
  • Date: 2007-04-21 03:46:09 UTC
  • mfrom: (1.1.6 upstream)
  • Revision ID: james.westby@ubuntu.com-20070421034609-gpcurkutp8vaysqj
Tags: 1:1.4.1-3
* Switch to dh_gtkmodules for the gtk 2.10 transition (Closes:
  #419318)
  - debian/control: Add ${misc:Depends} and remove libgtk2.0-bin on
    uim-gtk2.0.
  - debian/uim-gtk2.0.post{inst,rm}: Removed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 
 
3
 Copyright (c) 2006-2007 uim Project http://uim.freedesktop.org/
 
4
 
 
5
 All rights reserved.
 
6
 
 
7
 Redistribution and use in source and binary forms, with or without
 
8
 modification, are permitted provided that the following conditions
 
9
 are met:
 
10
 
 
11
 1. Redistributions of source code must retain the above copyright
 
12
    notice, this list of conditions and the following disclaimer.
 
13
 2. Redistributions in binary form must reproduce the above copyright
 
14
    notice, this list of conditions and the following disclaimer in the
 
15
    documentation and/or other materials provided with the distribution.
 
16
 3. Neither the name of authors nor the names of its contributors
 
17
    may be used to endorse or promote products derived from this software
 
18
    without specific prior written permission.
 
19
 
 
20
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
 
21
 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
22
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 
23
 ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE
 
24
 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 
25
 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 
26
 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 
27
 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 
28
 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 
29
 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 
30
 SUCH DAMAGE.
 
31
 
 
32
*/
 
33
 
 
34
#include <config.h>
 
35
 
 
36
#include <stdlib.h>
 
37
 
 
38
#include <kglobal.h>
 
39
#include <klocale.h>
 
40
#include <qcursor.h>
 
41
 
 
42
#include "toolbar-applet-kde.h"
 
43
#include "toolbar-common-quimhelpertoolbar.h"
 
44
#include "toolbar-common-uimstateindicator.h"
 
45
 
 
46
#include "uim.h"
 
47
#include "qtgettext.h"
 
48
 
 
49
extern "C"
 
50
{
 
51
    KDE_EXPORT KPanelApplet* init(QWidget *parent, const QString& configFile)
 
52
    {
 
53
        bindtextdomain( PACKAGE, LOCALEDIR );
 
54
        bind_textdomain_codeset( PACKAGE, "UTF-8" );
 
55
 
 
56
        return new UimApplet(configFile, KPanelApplet::Normal,
 
57
                             KPanelApplet::Preferences, parent, "uimapplet");
 
58
    }
 
59
}
 
60
 
 
61
UimApplet::UimApplet(const QString& configFile, Type type, int actions,
 
62
                     QWidget *parent, const char *name)
 
63
     : KPanelApplet(configFile, type, actions, parent, name)
 
64
{
 
65
    uim_init();
 
66
    setBackgroundMode(QWidget::X11ParentRelative);
 
67
    toolbar = new UimToolbar(this);
 
68
    toolbar->resize(QSize(toolbar->preferedWidthForHeight(), size().height()));
 
69
    toolbar->show();
 
70
    QObject::connect( toolbar, SIGNAL( toolbarResized() ), this, SLOT( slotToolbarResized() ) );
 
71
    setCustomMenu(toolbar->contextMenu());
 
72
}
 
73
 
 
74
UimApplet::~UimApplet()
 
75
{
 
76
    delete toolbar;
 
77
    // Don't call uim_quit() since kicker may have IM contexts of uim.
 
78
    // uim_quit();
 
79
}
 
80
 
 
81
int UimApplet::widthForHeight(int /* h */) const
 
82
{
 
83
    int width;
 
84
 
 
85
    width = toolbar->preferedWidthForHeight();
 
86
    return width;
 
87
}
 
88
 
 
89
int UimApplet::heightForWidth(int /* w */) const
 
90
{
 
91
    return height();
 
92
}
 
93
 
 
94
void UimApplet::preferences()
 
95
{
 
96
    toolbar->slotExecPref();
 
97
}
 
98
 
 
99
void UimApplet::resizeEvent(QResizeEvent *ev)
 
100
{
 
101
    int x, y;
 
102
 
 
103
    KPanelApplet::resizeEvent(ev);
 
104
    x = (width() - toolbar->width()) / 2;
 
105
    y = (height() - toolbar->height()) / 2;
 
106
    toolbar->move(x, y);
 
107
}
 
108
 
 
109
void UimApplet::slotToolbarResized()
 
110
{
 
111
    toolbar->resize(QSize(toolbar->preferedWidthForHeight(), size().height()));
 
112
    updateLayout();
 
113
}
 
114
 
 
115
UimToolbar::UimToolbar(QWidget *parent, const char *name, WFlags f)
 
116
    : QUimHelperToolbar(parent, name, f, true)
 
117
{
 
118
    setBackgroundMode(X11ParentRelative);
 
119
}
 
120
 
 
121
UimToolbar::~UimToolbar()
 
122
{
 
123
}
 
124
 
 
125
int UimToolbar::preferedWidthForHeight()
 
126
{
 
127
    return BUTTON_SIZE * getNumButtons();
 
128
}
 
129
 
 
130
void UimToolbar::mousePressEvent(QMouseEvent *ev)
 
131
{
 
132
    if (ev->button() == RightButton)
 
133
        contextMenu()->popup(QCursor::pos());
 
134
}
 
135
 
 
136
#include "toolbar-applet-kde.moc"