1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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 = TQt::Pixmap.new(path)
icon_set = TQt::IconSet.new
icon_set.setPixmap(pixmap, TQt::IconSet.Small)
icon_set
end
def make_qt_action(parent, text_with_accel, icon_type)
act = TQt::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"
|