summaryrefslogtreecommitdiffstats
path: root/qtruby/rubylib/examples/base/kicons.rb
diff options
context:
space:
mode:
Diffstat (limited to 'qtruby/rubylib/examples/base/kicons.rb')
-rw-r--r--qtruby/rubylib/examples/base/kicons.rb54
1 files changed, 54 insertions, 0 deletions
diff --git a/qtruby/rubylib/examples/base/kicons.rb b/qtruby/rubylib/examples/base/kicons.rb
new file mode 100644
index 00000000..0d0a2c01
--- /dev/null
+++ b/qtruby/rubylib/examples/base/kicons.rb
@@ -0,0 +1,54 @@
+class KIconCollection
+ IconInfo = Struct.new(:collection, :id, :filetype)
+ def initialize(icon_collections)
+ @icon_info = {}
+ icon_collections.each_pair {
+ |collection_name, collection|
+ collection.each_pair {
+ |key, value|
+ info = IconInfo.new(collection_name, value, "png")
+ @icon_info[key] = info
+ }
+ }
+ end
+ def dims
+ "32x32"
+ end
+ def kdedir
+ ENV["KDEDIR"]
+ end
+ def get_icon_path(icon_type)
+ info = @icon_info[icon_type]
+ "#{kdedir}/share/icons/default.kde/#{dims}/#{info.collection}/#{info.id}.#{info.filetype}"
+ end
+ def get_icon_set(icon_type)
+ path = get_icon_path(icon_type)
+ pixmap = Qt::Pixmap.new(path)
+ icon_set = Qt::IconSet.new
+ icon_set.setPixmap(pixmap, Qt::IconSet.Small)
+ icon_set
+ end
+ def make_qt_action(parent, text_with_accel, icon_type)
+ act = Qt::Action.new(parent)
+ act.setIconSet(get_icon_set(icon_type))
+ act.setMenuText(text_with_accel)
+ act
+ end
+end
+
+module Icons
+ FILE_NEW, FILE_OPEN, FILE_CLOSE, FILE_SAVE, FILE_SAVE_AS, EXIT = 1,2,3,4,5,6
+end
+
+icon_collections = {
+ "actions" => {
+ Icons::FILE_NEW => "filenew",
+ Icons::FILE_OPEN => "fileopen",
+ Icons::FILE_CLOSE => "fileclose",
+ Icons::FILE_SAVE => "filesave",
+ Icons::FILE_SAVE_AS => "filesaveas",
+ Icons::EXIT => "exit"
+ }
+}
+$kIcons = KIconCollection.new(icon_collections)
+print "Using KDEDIR == ", $kIcons.kdedir, "\n"