diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-01-26 13:17:00 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-01-26 13:17:00 -0600 |
commit | 2d84c9d3ad0aaea0620658024537d54e6a7939f4 (patch) | |
tree | 35675532f42e78dbfcd56c6b344e1f0e79013a2e /korundum/rubylib/examples/uikmdi.rb | |
parent | 980972d200e109a643e5a10037d7f9fcf02382ed (diff) | |
download | tdebindings-2d84c9d3ad0aaea0620658024537d54e6a7939f4.tar.gz tdebindings-2d84c9d3ad0aaea0620658024537d54e6a7939f4.zip |
Rename a number of libraries and executables to avoid conflicts with KDE4
Diffstat (limited to 'korundum/rubylib/examples/uikmdi.rb')
-rw-r--r-- | korundum/rubylib/examples/uikmdi.rb | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/korundum/rubylib/examples/uikmdi.rb b/korundum/rubylib/examples/uikmdi.rb deleted file mode 100644 index e73422eb..00000000 --- a/korundum/rubylib/examples/uikmdi.rb +++ /dev/null @@ -1,187 +0,0 @@ - -=begin -This is a ruby version of Jim Bublitz's python original. The ruby behaviour -is 'crash for crash' identical - so the the problems described below are -related to KMDI, and not the bindings. -=end - -=begin -A rough Python translation of the ideas presented in this KMDI tutorial: - - http://web.tiscali.it/andreabergia/kmditutorial.html - -What does work: - - IDEAlMode - yay! - - Adding and closing child views - - Two-way syncing between a tool widget and a matching child view - -All is not rosy, however: - - Instances of the KmdiExample maintain a dictionary of child views. Values - cannot be deleted from this dictionary during a window close (causes an - immediate segfault). - - Child views created after initialization aren't numbered correctly; given - the first problem, it's harder to do this than it's really worth. - - The example segfaults at shutdown if the tool (on the left) is is open but - is not in overlap-mode. - -=end - -require 'Korundum' -include KDE - -class KmdiExample < KDE::MdiMainFrm - - slots 'closeChild(KMdiChildView*)', - 'syncFromChildView(KMdiChildView*)', - 'syncFromMainTool(TQListBoxItem*)', - 'activatedMessage(KMdiChildView*)', - 'newView()', 'close()', 'closeActiveChild()' - - def getIcon(name, group=Icon::NoGroup, size=Icon::SizeSmall) - # returns a kde icon by name - return Global.instance().iconLoader().loadIcon(name, group, size) - end - - def initialize(parent=nil) - super(parent, 'KmdiExample', Mdi::IDEAlMode) - - @viewIcons = ['network', 'email', 'stop', 'back', 'forward'] - @toolIcons = ['view_icon', 'configure'] - - openNewAction = StdAction.openNew(self, SLOT('newView()'), actionCollection()) - quitAction = StdAction.quit(self, SLOT('close()'), actionCollection()) - closeAction = StdAction.close(self, SLOT('closeActiveChild()'), actionCollection()) - - uifilebase = Dir.getwd + '/uikmdi.rc' - createGUI(uifilebase) - # The task bar is created in the KMdiMainFrm constructor - # and then deleted in the createGUI() call above.. - # So recreate it again to avoid a crash. - createTaskBar() - statusBar() - resize(400, 300) - - @tools = {} - @toolIcons.each_index do |idx| - ico = @toolIcons[idx] - wid = KDE::ListBox.new(self, "list#{idx.to_s}") - makeTool(wid, "Tool #{idx.to_s}", ico) - end - ## smells - @mainToolWidget = @maintool = @tools['Tool 0'][0] - - @childs = {} - @viewIcons.each_index do |idx| - ico = @viewIcons[idx] - makeView("View #{idx.to_s}", ico, ico) - end - - connect(self, SIGNAL('viewActivated(KMdiChildView*)'), self, SLOT('activatedMessage(KMdiChildView*)')) - connect(self, SIGNAL('viewActivated(KMdiChildView*)'), self, SLOT('syncFromChildView(KMdiChildView*)')) - connect(@maintool, SIGNAL('selectionChanged(TQListBoxItem*)'), self, SLOT('syncFromMainTool(TQListBoxItem*)')) - syncFromChildView(activeWindow()) - end - - def syncFromMainTool(item) - # activate the view that matches the item text - activateView(findWindow(item.text())) - end - - def syncFromChildView(child) - # sync the main tool to the indicated child - @maintool = @mainToolWidget - if child.nil? - return - end - item = @maintool.findItem(child.tabCaption()) - if !item.nil? - @maintool.setSelected(item, nil) - end - end - - def makeTool(widget, caption, icon, percent=50) - # makes a tool from the widget - tip = i18n("#{caption} Tool Tip") - dock = DockWidget::DockLeft - maindock = getMainDockWidget() - widget.setIcon(getIcon(icon)) - tool = addToolWindow(widget, dock, maindock, percent, tip, caption) - @tools[caption] = [widget, tool] - end - - def makeView(label, icon, text) - # makes a child view with a text label and a pixmap label - view = MdiChildView.new(label, self) - @childs[label] = view - view.setIcon(getIcon(icon)) - layout = TQt::VBoxLayout.new(view) - layout.setAutoAdd(true) - - lbl = TQt::Label.new(i18n("Label for a view with an icon named #{text}"), view) - pxm = TQt::Label.new('', view) - pxm.setPixmap(getIcon(icon, Icon::NoGroup, KDE::Icon::SizeLarge)) - addWindow(view) - @mainToolWidget.insertItem(label) - connect(view, SIGNAL('childWindowCloseRequest(KMdiChildView*)'), self, SLOT('closeChild(KMdiChildView*)')) - end - - def removeMainToolItem(view) - # remove item from the main list tool that corresponds to the view - @maintool = @mainToolWidget - @maintool.takeItem(@maintool.findItem(view.tabCaption(), 0)) - end - - def newView() - # make a view when the user invokes the new action - makeView("View ", 'network', 'A Fresh View') -# makeView("View #{@childs.length}", 'network', 'A Fresh View') - syncFromChildView(activeWindow()) - end - - def closeActiveChild() - # close the current view - removeMainToolItem(activeWindow()) - closeActiveView() - syncFromChildView(activeWindow()) - end - - def closeChild(which) - # called to close a view from its tab close button - caption = which.tabCaption() - removeMainToolItem(which) - which.close() - statusBar().message(i18n("#{caption} closed")) - syncFromChildView(activeWindow()) - end - - def activatedMessage(view) - # updates the status bar with the caption of the current view - statusBar().message(i18n("#{view.tabCaption()} activated")) - end -end - -if $0 == __FILE__ - aname = 'uikmdi' - desc = 'A Simple Korundum KMDI Sample' - ver = '1.0' - lic = AboutData::License_GPL - author = 'Troy Melhase' - authormail = 'troy@gci.net' - - about = AboutData.new(aname, aname, ver, desc, lic, "#{authormail} (c) 2004") - about.addAuthor(author, 'hi, mom!', authormail) - about.addAuthor('Jim Bublitz', 'For PyKDE', 'jbublitz@nwinternet.com') - about.addAuthor('Richard Dale', 'For Korundum', 'Richard_Dale@tipitina.demon.co.uk') - CmdLineArgs.init(ARGV, about) - app = KDE::Application.new - mainWindow = KmdiExample.new - mainWindow.show - app.exec -end - |