1
# -*- coding: utf-8 -*-
3
# This file is part of emesene.
5
# emesene is free software; you can redistribute it and/or modify
6
# it under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 3 of the License, or
8
# (at your option) any later version.
10
# emesene is distributed in the hope that it will be useful,
11
# but WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
# GNU General Public License for more details.
15
# You should have received a copy of the GNU General Public License
16
# along with emesene; if not, write to the Free Software
17
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22
INDICATORERROR = False
25
def gtk_main(Controller):
26
""" main method for gtk frontend
28
global WEBKITERROR, INDICATORERROR, INFOBARERROR
42
import ConversationManager
43
import ConversationToolbar
47
import FileTransferBarWidget
48
import FileTransferWidget
50
import GtkNotification
51
import ThemeNotification
54
import ImageAreaSelector
90
gobject.threads_init()
91
gtk.gdk.threads_init()
92
gtk.gdk.threads_enter()
93
controller = Controller()
95
gtk.quit_add(0, controller.on_close)
97
gtk.gdk.threads_leave()
100
gtk_main.NAME = "Gtk main function"
101
gtk_main.DESCRIPTION = "This extensions uses Gtk to build the GUI"
102
gtk_main.AUTHOR = "marianoguerra"
103
gtk_main.WEBSITE = "emesene.org"
105
extension.category_register('main', gtk_main)
109
define all the components for a gtk environment
111
global WEBKITERROR, INDICATORERROR, INFOBARERROR
114
gtk.settings_get_default().set_property("gtk-error-bell", False)
116
extension.category_register('dialog', Dialog.Dialog)
117
extension.category_register('image chooser', ImageChooser.ImageChooser)
118
extension.category_register('avatar chooser', AvatarChooser.AvatarChooser)
119
extension.category_register('avatar', Avatar.Avatar)
120
extension.category_register('avatar renderer', Renderers.AvatarRenderer)
122
extension.category_register('preferences', Preferences.Preferences,
123
single_instance=True)
124
extension.category_register('login window', Login.Login)
125
extension.category_register('connecting window', Login.ConnectingWindow)
126
extension.category_register('window frame', Window.Window)
127
extension.category_register('main window', MainWindow.MainWindow)
128
extension.category_register('contact list', ContactList.ContactList)
129
extension.category_register('nick renderer', Renderers.CellRendererPlus)
130
extension.register('nick renderer', Renderers.CellRendererNoPlus)
131
extension.category_register('user panel', UserPanel.UserPanel)
133
if not INDICATORERROR:
134
extension.category_register('tray icon', Indicator.Indicator)
135
extension.register('tray icon', TrayIcon.TrayIcon)
137
extension.category_register('tray icon', TrayIcon.TrayIcon)
139
extension.category_register('debug window', DebugWindow.DebugWindow)
142
extension.category_register('nice bar', InfoBar.NiceBar)
143
extension.register('nice bar', NiceBar.NiceBar)
145
extension.category_register('nice bar', NiceBar.NiceBar)
147
extension.category_register('main menu', MainMenu.MainMenu)
148
extension.category_register('menu file', MainMenu.FileMenu)
149
extension.category_register('menu actions', MainMenu.ActionsMenu)
150
extension.category_register('menu options', MainMenu.OptionsMenu)
151
extension.category_register('menu contact', ContactMenu.ContactMenu)
152
extension.category_register('menu group', GroupMenu.GroupMenu)
153
extension.category_register('menu account', AccountMenu.AccountMenu)
154
extension.category_register('menu help', MainMenu.HelpMenu)
155
extension.category_register('menu status', StatusMenu.StatusMenu)
157
extension.category_register('below menu', EmptyWidget.EmptyWidget)
158
extension.category_register('below panel', EmptyWidget.EmptyWidget)
159
extension.category_register('below userlist', EmptyWidget.EmptyWidget)
161
extension.category_register('call widget', CallWidget.CallWindow)
162
extension.category_register('conversation window', \
163
ConversationManager.ConversationManager)
164
extension.category_register('conversation', Conversation.Conversation)
165
extension.category_register('conversation header', Header.Header)
166
extension.category_register('conversation info', ContactInfo.ContactInfo)
167
extension.category_register('conversation tab', TabWidget.TabWidget)
168
extension.category_register('conversation input', TextBox.InputText)
169
extension.category_register('conversation toolbar', \
170
ConversationToolbar.ConversationToolbar)
171
extension.category_register('plugin window', \
172
PluginWindow.PluginWindow)
173
extension.category_register('preferences dialog', config_gtk.build_window)
174
extension.category_register('image area selector', ImageAreaSelector.ImageAreaSelectorDialog)
175
extension.category_register('filetransfer pool', FileTransferBarWidget.FileTransferBarWidget)
176
extension.category_register('filetransfer widget', FileTransferWidget.FileTransferWidget)
179
extension.category_register('conversation output', AdiumTextBox.OutputText)
180
extension.register('conversation output', TextBox.OutputText)
182
extension.category_register('conversation output', TextBox.OutputText)
184
extension.category_register(('notificationGUI'), ThemeNotification.themeNotification)
186
extension.register(('notificationGUI'), PyNotification.pyNotification)
188
extension.register(('notificationGUI'), GtkNotification.gtkNotification)
190
extension.category_register('picture handler', PictureHandler.PictureHandler)