File xdg-menu-twm.patch of Package xdg-menu (Revision d48747886f3aefaf4f836ce491d901dc)
Currently displaying revision d48747886f3aefaf4f836ce491d901dc , Show latest
78
1
--- xdg_menu
2
+++ xdg_menu
3
4
return 1;
5
}
6
7
+sub output_twm_menu ($;$$)
8
+{
9
+ my ($menu, $toplevel, $path) = @_;
10
+
11
+ my $output = '';
12
+
13
+ $path = '' unless defined $path;
14
+
15
+ $toplevel = 1 unless defined $toplevel;
16
+
17
+ my $menu_name = $menu->{'PrepName'};
18
+ my $menu_id = "$path-" . $menu->{'Name'};
19
+ $menu_id =~ s/\s/_/g;
20
+
21
+ $menu_id = 'xdg_menu' if $toplevel;
22
+
23
+ foreach my $entry (@{$menu->{'entries'}}) {
24
+ if ($entry->{type} eq 'menu') {
25
+ $output .= output_twm_menu($entry->{'menu'}, 0, $menu_id);
26
+ }
27
+ }
28
+
29
+ $output .= "menu \"$menu_id\" {\n";
30
+ $output .= "\"$menu_name\" f.title\n";
31
+
32
+ foreach my $entry (@{$menu->{'entries'}}) {
33
+ if ($entry->{type} eq 'desktop') {
34
+ my $desktop = $entry->{desktop};
35
+
36
+ my $name = $desktop->{'PrepName'};
37
+ my $exec = $desktop->{'PrepExec'};
38
+ my $color = '';
39
+
40
+ $exec =~ s/"/\\"/g;
41
+
42
+ $color = ' ("red":"grey")' if $desktop->{'X-KDE-SubstituteUID'} eq '1' || $desktop->{'X-KDE-SubstituteUID'} eq 'true';
43
+
44
+ $output .= "\"$name\"$color f.exec \"$exec&\"\n";
45
+ }
46
+ elsif ($entry->{type} eq 'menu') {
47
+ my $name = $entry->{'menu'}{'PrepName'};
48
+ my $id = "$menu_id-" . $entry->{'menu'}{'Name'};
49
+
50
+ $id =~ s/\s/_/g;
51
+
52
+ $output .= "\"$name\" f.menu \"$id\"\n";
53
+ }
54
+ else {
55
+ print STDERR "wrong menu entry type: $entry->{type}";
56
+ }
57
+
58
+ }
59
+ $output .= "}\n";
60
+
61
+ return $output;
62
+}
63
64
sub output_wmaker_menu ($;$)
65
{
66
67
68
$output = output_openbox3_pipe_menu($menu)
69
}
70
+elsif ($format eq 'twm') {
71
+
72
+ print STDERR "WARNING: twm does not support umlauts. Parameter --language '' to output plain ASCII.\n" unless $language eq '';
73
+ $output = output_twm_menu($menu)
74
+}
75
elsif ($format eq 'readable') {
76
77
$output = output_readable($menu)
78