#!/usr/bin/env python # testbloggerdialog.py import pygtk pygtk.require('2.0') import gtk class MainDialog: def delete_event(self, widget, event, data=None): if self.onQuit == self.doNothing: gtk.main_quit() return False else: return self.onQuit() def getSendBoxText(self): startiter = self.sendBoxBuffer.get_start_iter() enditer = self.sendBoxBuffer.get_end_iter() return self.sendBoxBuffer.get_text(startiter, enditer) def setSendBoxText(self, text): self.sendBoxBuffer.set_text(text) def getReceiveBoxText(self): startiter = self.receiveBoxBuffer.get_start_iter() enditer = self.receiveBoxBuffer.get_end_iter() return self.receiveBoxBuffer.get_text(startiter, enditer) def setReceiveBoxText(self, text): self.receiveBoxBuffer.set_text(text) def onButtonClick(self, widget, data): # the user clicked a button if data == "SendData": sendbody = self.getSendBoxText() self.onSendData(sendbody) self.setSendBoxText("") elif data == "CreateEntry": sendbody = self.getSendBoxText() self.onCreateEntry(sendbody) self.setSendBoxText("") elif data == "DeleteEntry": sendbody = self.getSendBoxText() self.onDeleteEntry(sendbody) self.setSendBoxText("") elif data == "GetBlogListXML": self.onGetBlogListXML() self.setSendBoxText("") elif data == "GetRecentPostsXML": sendbody = self.getSendBoxText() self.onGetRecentPostsXML(sendbody) self.setSendBoxText("") elif data == "GetPostXML": sendbody = self.getSendBoxText() self.onGetPostXML(sendbody) self.setSendBoxText("") return False def doNothing(self, data=None): return False def setSendDataCallback(self, fnc): self.onSendData = fnc def setCreateEntryCallback(self, fnc): self.onCreateEntry = fnc def setDeleteEntryCallback(self, fnc): self.onDeleteEntry = fnc def setGetBlogListXMLCallback(self, fnc): self.onGetBlogListXML = fnc def setGetRecentPostsXMLCallback(self, fnc): self.onGetRecentPostsXML = fnc def setGetPostXMLCallback(self, fnc): self.onGetPostXML = fnc def setQuitCallback(self, fnc): self.onQuit = fnc def __init__(self): self.onSendData = self.doNothing self.onCreateEntry = self.doNothing self.onDeleteEntry = self.doNothing self.onGetBlogListXML = self.doNothing self.onGetRecentPostsXML = self.doNothing self.onGetPostXML = self.doNothing self.onQuit = self.doNothing self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.set_title("Blogger.com Atom API Test Program") self.window.connect("delete_event", self.delete_event) self.window.set_border_width(10) self.bigRow = gtk.HBox(False, 0) self.textColumn = gtk.VBox(False, 0) self.scrolling = gtk.ScrolledWindow() self.scrolling2 = gtk.ScrolledWindow() self.sendBox = gtk.TextView() self.sendBoxBuffer = self.sendBox.get_buffer() self.sendBox.set_editable(True) self.sendBox.set_cursor_visible(True) self.sendBox.set_wrap_mode(gtk.WRAP_WORD) self.receiveBox = gtk.TextView() self.receiveBoxBuffer = self.receiveBox.get_buffer() self.receiveBox.set_editable(True) self.receiveBox.set_cursor_visible(False) self.receiveBox.set_wrap_mode(gtk.WRAP_NONE) self.receiveBox.set_editable(False) self.scrolling.add_with_viewport(self.sendBox) self.scrolling.set_size_request(300,200) self.scrolling.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS) self.scrolling2.add_with_viewport(self.receiveBox) self.scrolling2.set_size_request(300,200) self.scrolling2.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS) self.textColumn.pack_start(self.scrolling, True, True, 0) #self.buttonColumn = gtk.VBox(False, 0) self.buttonRow = gtk.HBox(False, 0) self.createEntryButton = gtk.Button("Create Entry") self.createEntryButton.connect("clicked", self.onButtonClick, "CreateEntry") self.deleteEntryButton = gtk.Button("Delete Entry") self.deleteEntryButton.connect("clicked", self.onButtonClick, "DeleteEntry") self.sendDataButton = gtk.Button("Send Data") self.sendDataButton.connect("clicked", self.onButtonClick, "SendData") self.getBlogListXMLButton = gtk.Button("Get Blog List (XML)") self.getBlogListXMLButton.connect("clicked", self.onButtonClick, "GetBlogListXML") self.getRecentPostsXMLButton = gtk.Button("Get Recent Posts (XML)") self.getRecentPostsXMLButton.connect("clicked", self.onButtonClick, "GetRecentPostsXML") self.getPostXMLButton = gtk.Button("Get Single Post (XML)") self.getPostXMLButton.connect("clicked", self.onButtonClick, "GetPostXML") self.buttonRow.pack_start(self.sendDataButton, True, True, 0) self.buttonRow.pack_start(self.createEntryButton, True, True, 0) self.buttonRow.pack_start(self.deleteEntryButton, True, True, 0) self.buttonRow.pack_start(self.getBlogListXMLButton, True, True, 0) self.buttonRow.pack_start(self.getRecentPostsXMLButton, True, True, 0) self.buttonRow.pack_start(self.getPostXMLButton, True, True, 0) #self.buttonColumn.pack_start(self.createEntryButton, True, True, 0) #self.buttonColumn.pack_start(self.deleteEntryButton, True, True, 0) self.bigRow.pack_start(self.textColumn, True, True, 0) #self.bigRow.pack_start(self.buttonColumn, True, True, 0) self.textColumn.pack_start(self.buttonRow, True, True, 0) self.textColumn.pack_start(self.scrolling2, True, True, 0) self.window.add(self.bigRow) self.sendDataButton.show() self.createEntryButton.show() self.deleteEntryButton.show() self.getBlogListXMLButton.show() self.getRecentPostsXMLButton.show() self.getPostXMLButton.show() #self.buttonColumn.show() self.sendBox.show() self.buttonRow.show() self.receiveBox.show() self.scrolling.show() self.scrolling2.show() self.textColumn.show() self.bigRow.show() self.window.show()