예제 #1
0
    def __init__(self, gui):
        global community, msgboard, chat

        GUI_Page.__init__(self, 'Messageboard')
        community = get_plugin_by_type(PLUGIN_TYPE_COMMUNITY)
        chat = get_plugin_by_type(PLUGIN_TYPE_MESSAGING)
        msgboard = get_plugin_by_type(PLUGIN_TYPE_MESSAGE_BOARD)

        self.notify = get_plugin_by_type(PLUGIN_TYPE_NOTIFICATION).notify

        self.main_gui = gui

        # Store Message_Page instances, key = sharemeta of the message
        self.message_pages = {}

        messageboard_icon = gtk.gdk.pixbuf_new_from_file(join(get_dir(ICON_DIR), self.MSGBOARD_ICON))

        community.community_gui.register_user_event(messageboard_icon, 'Msg board', self.start_messageboard_cb)
        community.community_gui.register_com_event(messageboard_icon, 'Msg board', self.start_messageboard_cb)

        self.message_icon = gtk.gdk.pixbuf_new_from_file(join(get_dir(ICON_DIR), self.MESSAGE_ICON))

        self.in_search_mode = False
        self.store = None
        self.search_store = None
        self.target = None

        # create widgets here
        self.create_action_list()
        self.message_list, self.message_view = self.create_message_list()

        self.search_hbox = gtk.HBox()
        self.search_entry = new_entry('Enter search keywords')
        self.search_entry.connect('activate', self.search_activate_cb)
        self.search_close = gtk.Button(stock=gtk.STOCK_CLOSE)
        self.search_close.connect('clicked', self.search_close_cb)
        self.search_now = gtk.Button(stock=gtk.STOCK_FIND)
        self.search_now.connect('clicked', self.search_now_cb)
        self.search_hbox.pack_start(self.search_entry, True, True)
        self.search_hbox.pack_start(self.search_close, False, True)
        self.search_hbox.pack_start(self.search_now, False, True)

        self.vbox = gtk.VBox()
        self.vbox.pack_start(self.message_list, True, True)
        self.vbox.pack_start(self.search_hbox, False, True)

        self.pack_start(self.vbox, True, True)
        self.pack_start(self.actions.get_widget(), False, True)

        self.show_all()
        self.search_hbox.hide()
        gui.add_page(self)

        gui.add_key_binding(gtk.gdk.CONTROL_MASK, gtk.keysyms.m, self.key_pressed_ctrl_m)

        msgboard.register_ui(self)

        self.watch_dialog = Watches_GUI(self.main_gui, msgboard.get_state, msgboard.modify_state)
예제 #2
0
    def __init__(self, parent, subject=None, text=None):
        gtk.Dialog.__init__(self, 'Message Composer', parent,
                            gtk.DIALOG_DESTROY_WITH_PARENT | gtk.DIALOG_MODAL,
                            (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))

        self.add_button('Publish', 1)

        self.top_hbox = gtk.HBox()

        self.subject_label = gtk.Label()
        self.subject_label.set_use_markup(True)
        self.subject_label.set_markup('Subject:')
        self.subject_entry = new_entry()
        if subject != None:
            self.subject_entry.set_text(subject)

        self.top_hbox.pack_start(self.subject_label, False, False, 5)
        self.top_hbox.pack_start(self.subject_entry, True, True, 5)

        self.messagebuffer = gtk.TextBuffer()
        if text != None:
            self.messagebuffer.set_text(text)

        text_scrollarea = new_scrollarea()
        self.editor = new_textview()        
        self.editor.set_buffer(self.messagebuffer)
        self.editor.set_wrap_mode(gtk.WRAP_WORD)
        self.editor.set_editable(True)
        self.editor.set_cursor_visible(True)
        text_scrollarea.add(self.editor)
        text_scrollarea.set_size_request(-1, 300)

        self.vbox.pack_start(self.top_hbox, False, False)
        self.vbox.pack_start(text_scrollarea, True, True)

        self.vbox.show_all()