reterm 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +131 -0
- data/designer/main.rb +10 -0
- data/designer/src/ComponentParams.rb +120 -0
- data/designer/src/ComponentsList.rb +90 -0
- data/designer/src/CreatedList.rb +156 -0
- data/designer/src/Designer.rb +114 -0
- data/designer/src/ToggleArea.rb +67 -0
- data/designer/src/common.rb +1 -0
- data/designer/src/component_factory.rb +30 -0
- data/designer/src/component_map.rb +116 -0
- data/designer/src/glade/ComponentParams.glade +96 -0
- data/designer/src/glade/Designer.glade +184 -0
- data/designer/src/images/add.png +0 -0
- data/designer/src/images/asciitext.png +0 -0
- data/designer/src/images/blank.png +0 -0
- data/designer/src/images/blank_sm.png +0 -0
- data/designer/src/images/button.png +0 -0
- data/designer/src/images/dial.png +0 -0
- data/designer/src/images/entry.png +0 -0
- data/designer/src/images/hslider.png +0 -0
- data/designer/src/images/label.png +0 -0
- data/designer/src/images/matrix.png +0 -0
- data/designer/src/images/orig/Check.png +0 -0
- data/designer/src/images/orig/ascii_text.png +0 -0
- data/designer/src/images/orig/button.png +0 -0
- data/designer/src/images/orig/dial.png +0 -0
- data/designer/src/images/orig/entry.png +0 -0
- data/designer/src/images/orig/hslider.png +0 -0
- data/designer/src/images/orig/label.png +0 -0
- data/designer/src/images/orig/matrix.png +0 -0
- data/designer/src/images/orig/radio.png +0 -0
- data/designer/src/images/orig/rocker.png +0 -0
- data/designer/src/images/orig/slist.png +0 -0
- data/designer/src/images/orig/vslider.png +0 -0
- data/designer/src/images/radio.png +0 -0
- data/designer/src/images/remove.png +0 -0
- data/designer/src/images/rocker.png +0 -0
- data/designer/src/images/slist.png +0 -0
- data/designer/src/images/vslider.png +0 -0
- data/lib/reterm.rb +22 -0
- data/lib/reterm/color_pair.rb +66 -0
- data/lib/reterm/component.rb +40 -0
- data/lib/reterm/components.rb +32 -0
- data/lib/reterm/components/ascii_text.rb +46 -0
- data/lib/reterm/components/button.rb +31 -0
- data/lib/reterm/components/dial.rb +95 -0
- data/lib/reterm/components/dialog.rb +34 -0
- data/lib/reterm/components/entry.rb +38 -0
- data/lib/reterm/components/hslider.rb +32 -0
- data/lib/reterm/components/image.rb +55 -0
- data/lib/reterm/components/label.rb +20 -0
- data/lib/reterm/components/matrix.rb +43 -0
- data/lib/reterm/components/radio.rb +33 -0
- data/lib/reterm/components/rocker.rb +71 -0
- data/lib/reterm/components/slist.rb +32 -0
- data/lib/reterm/components/template.rb +23 -0
- data/lib/reterm/components/vslider.rb +61 -0
- data/lib/reterm/init.rb +95 -0
- data/lib/reterm/layout.rb +63 -0
- data/lib/reterm/layouts.rb +16 -0
- data/lib/reterm/layouts/horizontal.rb +19 -0
- data/lib/reterm/layouts/vertical.rb +19 -0
- data/lib/reterm/loader.rb +126 -0
- data/lib/reterm/menu.rb +81 -0
- data/lib/reterm/mixins/cdk_component.rb +45 -0
- data/lib/reterm/mixins/component_input.rb +37 -0
- data/lib/reterm/mixins/event_dispatcher.rb +20 -0
- data/lib/reterm/mixins/nav_input.rb +126 -0
- data/lib/reterm/panel.rb +37 -0
- data/lib/reterm/resize.rb +27 -0
- data/lib/reterm/terminal.rb +33 -0
- data/lib/reterm/version.rb +3 -0
- data/lib/reterm/window.rb +260 -0
- metadata +155 -0
@@ -0,0 +1,114 @@
|
|
1
|
+
require 'reterm'
|
2
|
+
|
3
|
+
# Main designer window
|
4
|
+
class Designer
|
5
|
+
include GladeGUI
|
6
|
+
|
7
|
+
attr_accessor :component_list
|
8
|
+
attr_accessor :created_list
|
9
|
+
|
10
|
+
attr_accessor :component
|
11
|
+
attr_accessor :ta
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
@component_list = ComponentsList.new(self)
|
15
|
+
@created_list = CreatedList.new(self)
|
16
|
+
@component = ToggleArea.new(self)
|
17
|
+
|
18
|
+
set_components
|
19
|
+
end
|
20
|
+
|
21
|
+
def window
|
22
|
+
@builder["window1"]
|
23
|
+
end
|
24
|
+
|
25
|
+
def before_show
|
26
|
+
window.title = "RETerm Designer"
|
27
|
+
@builder["component_window"].add(@component_list, :expand => true)
|
28
|
+
@builder["created_window"].add(@created_list, :expand => true)
|
29
|
+
@builder["viewer"].add(@component.btn)
|
30
|
+
@component.show
|
31
|
+
end
|
32
|
+
|
33
|
+
def create_component(component, params)
|
34
|
+
c = build_component self, component, params
|
35
|
+
c, areas = *c if c.is_a?(Array)
|
36
|
+
|
37
|
+
parent = nil
|
38
|
+
if @component.is_a?(ToggleArea)
|
39
|
+
@builder["viewer"].remove(@component.btn)
|
40
|
+
@builder["viewer"].add(c)
|
41
|
+
c.show
|
42
|
+
areas.each { |a| a.show } if areas
|
43
|
+
|
44
|
+
@component = c
|
45
|
+
|
46
|
+
else
|
47
|
+
parent = component_with_toggle_area
|
48
|
+
index = parent.child_get_property(@ta.btn, :position)
|
49
|
+
parent.remove(@ta.btn)
|
50
|
+
parent.add(c, :expand => true)
|
51
|
+
parent.child_set_property(c, :position, index)
|
52
|
+
c.show
|
53
|
+
areas.each { |a| a.show } if areas
|
54
|
+
end
|
55
|
+
|
56
|
+
@created_list.register component, params, c, parent
|
57
|
+
|
58
|
+
self.toggle_area = nil
|
59
|
+
end
|
60
|
+
|
61
|
+
def remove_component(c)
|
62
|
+
if c == @component
|
63
|
+
@component = ToggleArea.new(self)
|
64
|
+
@builder["viewer"].remove(c)
|
65
|
+
@builder["viewer"].add(@component.btn)
|
66
|
+
@component.show
|
67
|
+
|
68
|
+
else
|
69
|
+
parent = component_with_widget(c)
|
70
|
+
index = parent.child_get_property(c, :position)
|
71
|
+
parent.remove(c)
|
72
|
+
ta = ToggleArea.new(self)
|
73
|
+
parent.add(ta.btn, :expand => true)
|
74
|
+
parent.child_set_property(ta.btn, :position, index)
|
75
|
+
ta.show
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def toggle_area=(ta)
|
80
|
+
@ta.toggle_off if has_toggled_area?
|
81
|
+
@ta = ta
|
82
|
+
end
|
83
|
+
|
84
|
+
# XXX needed as we need to invoke from #toggle_off
|
85
|
+
def clear_toggle_area
|
86
|
+
@ta = nil
|
87
|
+
end
|
88
|
+
|
89
|
+
def has_toggled_area?
|
90
|
+
!!@ta
|
91
|
+
end
|
92
|
+
|
93
|
+
private
|
94
|
+
|
95
|
+
def component_with_toggle_area(c=component)
|
96
|
+
component_with_widget(@ta.btn, c)
|
97
|
+
end
|
98
|
+
|
99
|
+
def component_with_widget(widget, c=component)
|
100
|
+
return c if c.children.include?(widget)
|
101
|
+
c.children.each { |child|
|
102
|
+
ch = component_with_widget(widget, child) if child.kind_of?(Gtk::Box)
|
103
|
+
return ch unless ch.nil?
|
104
|
+
}
|
105
|
+
nil
|
106
|
+
end
|
107
|
+
|
108
|
+
def set_components
|
109
|
+
(RETerm::Layouts.all.sort +
|
110
|
+
RETerm::Components.all.sort).each { |c|
|
111
|
+
@component_list.add_component c if COMPONENTS.key?(c)
|
112
|
+
}
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# Mechanism which user specifies area to add component
|
2
|
+
class ToggleArea
|
3
|
+
attr_accessor :toggled
|
4
|
+
|
5
|
+
def toggle_on
|
6
|
+
@toggled = true
|
7
|
+
btn.remove(add)
|
8
|
+
btn.add(rm)
|
9
|
+
@designer.toggle_area = self
|
10
|
+
end
|
11
|
+
|
12
|
+
def toggle_off
|
13
|
+
@toggled = false
|
14
|
+
btn.remove(rm)
|
15
|
+
btn.add(add)
|
16
|
+
show
|
17
|
+
@designer.clear_toggle_area
|
18
|
+
end
|
19
|
+
|
20
|
+
def add
|
21
|
+
@add ||= Gtk::Image.new :file => "#{IMG_DIR}/add.png"
|
22
|
+
end
|
23
|
+
|
24
|
+
def rm
|
25
|
+
@rm ||= Gtk::Image.new :file => "#{IMG_DIR}/remove.png"
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def btn
|
30
|
+
@btn ||=
|
31
|
+
begin
|
32
|
+
b = Gtk::Button.new
|
33
|
+
b.add add
|
34
|
+
|
35
|
+
b.signal_connect("clicked") { |*args|
|
36
|
+
if @toggled
|
37
|
+
toggle_off
|
38
|
+
else
|
39
|
+
toggle_on
|
40
|
+
end
|
41
|
+
|
42
|
+
show
|
43
|
+
}
|
44
|
+
|
45
|
+
css_provider = Gtk::CssProvider.new
|
46
|
+
css_provider.load(data: "button:hover {background-image: image(#FFFF00);}")
|
47
|
+
b.style_context.add_provider(css_provider, Gtk::StyleProvider::PRIORITY_USER)
|
48
|
+
|
49
|
+
b
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def show
|
54
|
+
btn.show
|
55
|
+
|
56
|
+
if @toggled
|
57
|
+
rm.show
|
58
|
+
else
|
59
|
+
add.show
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def initialize(designer)
|
64
|
+
@designer = designer
|
65
|
+
@toggled = false
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
IMG_DIR = File.join(File.dirname(__FILE__), "images")
|
@@ -0,0 +1,30 @@
|
|
1
|
+
def build_component(designer, component, params)
|
2
|
+
if component == :Horizontal
|
3
|
+
areas = []
|
4
|
+
c = Gtk::HBox.new
|
5
|
+
cols = params.first
|
6
|
+
0.upto(cols-1) {
|
7
|
+
area = ToggleArea.new(designer)
|
8
|
+
areas << area
|
9
|
+
c.add area.btn, :expand => true
|
10
|
+
}
|
11
|
+
|
12
|
+
return [c, areas]
|
13
|
+
|
14
|
+
elsif component == :Vertical
|
15
|
+
areas = []
|
16
|
+
c = Gtk::VBox.new
|
17
|
+
rows = params.first
|
18
|
+
0.upto(rows-1) {
|
19
|
+
area = ToggleArea.new(designer)
|
20
|
+
areas << area
|
21
|
+
c.add area.btn, :expand => true
|
22
|
+
}
|
23
|
+
|
24
|
+
return [c, areas]
|
25
|
+
|
26
|
+
else
|
27
|
+
return designer.component_list.image_for(component)
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
COMPONENTS = {
|
2
|
+
# Layouts
|
3
|
+
:Horizontal => {
|
4
|
+
:desc => "Horizontal Layout",
|
5
|
+
:params => {
|
6
|
+
"Columns" => :int
|
7
|
+
}
|
8
|
+
},
|
9
|
+
|
10
|
+
:Vertical => {
|
11
|
+
:desc => "Vertical Layout",
|
12
|
+
:params => {
|
13
|
+
"Rows" => :int
|
14
|
+
}
|
15
|
+
},
|
16
|
+
|
17
|
+
:AsciiText => {
|
18
|
+
:desc => "Text Rendered Using Ascii Font",
|
19
|
+
:params => {
|
20
|
+
"Text" => :string
|
21
|
+
},
|
22
|
+
|
23
|
+
:init_keys => ["text"]
|
24
|
+
},
|
25
|
+
|
26
|
+
:Button => {
|
27
|
+
:desc => "Clickable Button",
|
28
|
+
:params => {
|
29
|
+
"Text" => :string
|
30
|
+
},
|
31
|
+
|
32
|
+
:init_keys => ["text"]
|
33
|
+
},
|
34
|
+
|
35
|
+
:Dial => {
|
36
|
+
:desc => "Rotatable Dial"
|
37
|
+
},
|
38
|
+
|
39
|
+
#:Dialog => {
|
40
|
+
# :desc => "Popup Dialog"
|
41
|
+
#},
|
42
|
+
|
43
|
+
:Entry => {
|
44
|
+
:desc => "Text Entry",
|
45
|
+
:params => {
|
46
|
+
"Title" => :string,
|
47
|
+
"Label" => :string
|
48
|
+
},
|
49
|
+
|
50
|
+
:init_keys => ["title", "label"]
|
51
|
+
},
|
52
|
+
|
53
|
+
:HSlider => {
|
54
|
+
:desc => "Horizontal Slider"
|
55
|
+
},
|
56
|
+
|
57
|
+
:Image => {
|
58
|
+
:desc => "Image rendered with ascii art",
|
59
|
+
:params => {
|
60
|
+
"Path" => :string
|
61
|
+
},
|
62
|
+
|
63
|
+
:init_keys => ["file"]
|
64
|
+
},
|
65
|
+
|
66
|
+
:Label => {
|
67
|
+
:desc => "Static String",
|
68
|
+
:params => {
|
69
|
+
"Text" => :string
|
70
|
+
},
|
71
|
+
|
72
|
+
:init_keys => ["text"]
|
73
|
+
},
|
74
|
+
|
75
|
+
:Matrix => {
|
76
|
+
:desc => "X/Y grid",
|
77
|
+
:params => {
|
78
|
+
"Rows" => :int,
|
79
|
+
"Columns" => :int
|
80
|
+
},
|
81
|
+
|
82
|
+
:init_keys => ["rows", "cols"]
|
83
|
+
},
|
84
|
+
|
85
|
+
:Radio => {
|
86
|
+
:desc => "Choice selection control",
|
87
|
+
|
88
|
+
:params => {
|
89
|
+
"Choices" => [:string]
|
90
|
+
}
|
91
|
+
},
|
92
|
+
|
93
|
+
:Rocker => {
|
94
|
+
:desc => "Toggleable input",
|
95
|
+
|
96
|
+
:params => {
|
97
|
+
"Choices" => [:string]
|
98
|
+
},
|
99
|
+
|
100
|
+
:init_keys => ["items"]
|
101
|
+
},
|
102
|
+
|
103
|
+
:SList => {
|
104
|
+
:desc => "Selectable List of Items",
|
105
|
+
|
106
|
+
:params => {
|
107
|
+
"Choices" => [:string]
|
108
|
+
},
|
109
|
+
|
110
|
+
:init_keys => ["items"]
|
111
|
+
},
|
112
|
+
|
113
|
+
:VSlider => {
|
114
|
+
:desc => "Vertical Slider"
|
115
|
+
}
|
116
|
+
}
|
@@ -0,0 +1,96 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Generated with glade 3.20.0 -->
|
3
|
+
<interface>
|
4
|
+
<requires lib="gtk+" version="3.20"/>
|
5
|
+
<object class="GtkWindow" id="window1">
|
6
|
+
<property name="can_focus">False</property>
|
7
|
+
<property name="resizable">False</property>
|
8
|
+
<property name="modal">True</property>
|
9
|
+
<child>
|
10
|
+
<object class="GtkBox">
|
11
|
+
<property name="visible">True</property>
|
12
|
+
<property name="can_focus">False</property>
|
13
|
+
<property name="margin_left">5</property>
|
14
|
+
<property name="margin_right">6</property>
|
15
|
+
<property name="margin_top">5</property>
|
16
|
+
<property name="margin_bottom">5</property>
|
17
|
+
<property name="orientation">vertical</property>
|
18
|
+
<child>
|
19
|
+
<object class="GtkLabel" id="component_edit_title">
|
20
|
+
<property name="visible">True</property>
|
21
|
+
<property name="can_focus">False</property>
|
22
|
+
<property name="margin_left">5</property>
|
23
|
+
<property name="margin_right">5</property>
|
24
|
+
<property name="margin_top">5</property>
|
25
|
+
<property name="margin_bottom">5</property>
|
26
|
+
</object>
|
27
|
+
<packing>
|
28
|
+
<property name="expand">False</property>
|
29
|
+
<property name="fill">True</property>
|
30
|
+
<property name="position">0</property>
|
31
|
+
</packing>
|
32
|
+
</child>
|
33
|
+
<child>
|
34
|
+
<object class="GtkBox" id="component_edit_layout">
|
35
|
+
<property name="visible">True</property>
|
36
|
+
<property name="can_focus">False</property>
|
37
|
+
<property name="orientation">vertical</property>
|
38
|
+
<child>
|
39
|
+
<placeholder/>
|
40
|
+
</child>
|
41
|
+
</object>
|
42
|
+
<packing>
|
43
|
+
<property name="expand">False</property>
|
44
|
+
<property name="fill">True</property>
|
45
|
+
<property name="position">1</property>
|
46
|
+
</packing>
|
47
|
+
</child>
|
48
|
+
<child>
|
49
|
+
<object class="GtkBox">
|
50
|
+
<property name="visible">True</property>
|
51
|
+
<property name="can_focus">False</property>
|
52
|
+
<child>
|
53
|
+
<object class="GtkButton" id="submit_button">
|
54
|
+
<property name="label" translatable="yes">Submit</property>
|
55
|
+
<property name="visible">True</property>
|
56
|
+
<property name="can_focus">True</property>
|
57
|
+
<property name="receives_default">True</property>
|
58
|
+
<property name="margin_left">5</property>
|
59
|
+
<property name="margin_right">5</property>
|
60
|
+
<property name="margin_top">5</property>
|
61
|
+
<property name="margin_bottom">5</property>
|
62
|
+
</object>
|
63
|
+
<packing>
|
64
|
+
<property name="expand">True</property>
|
65
|
+
<property name="fill">True</property>
|
66
|
+
<property name="position">0</property>
|
67
|
+
</packing>
|
68
|
+
</child>
|
69
|
+
<child>
|
70
|
+
<object class="GtkButton" id="cancel_button">
|
71
|
+
<property name="label" translatable="yes">Cancel</property>
|
72
|
+
<property name="visible">True</property>
|
73
|
+
<property name="can_focus">True</property>
|
74
|
+
<property name="receives_default">True</property>
|
75
|
+
<property name="margin_left">5</property>
|
76
|
+
<property name="margin_right">5</property>
|
77
|
+
<property name="margin_top">5</property>
|
78
|
+
<property name="margin_bottom">5</property>
|
79
|
+
</object>
|
80
|
+
<packing>
|
81
|
+
<property name="expand">True</property>
|
82
|
+
<property name="fill">True</property>
|
83
|
+
<property name="position">1</property>
|
84
|
+
</packing>
|
85
|
+
</child>
|
86
|
+
</object>
|
87
|
+
<packing>
|
88
|
+
<property name="expand">False</property>
|
89
|
+
<property name="fill">True</property>
|
90
|
+
<property name="position">2</property>
|
91
|
+
</packing>
|
92
|
+
</child>
|
93
|
+
</object>
|
94
|
+
</child>
|
95
|
+
</object>
|
96
|
+
</interface>
|
@@ -0,0 +1,184 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Generated with glade 3.20.0 -->
|
3
|
+
<interface>
|
4
|
+
<requires lib="gtk+" version="3.0"/>
|
5
|
+
<object class="GtkWindow" id="window1">
|
6
|
+
<property name="can_focus">False</property>
|
7
|
+
<property name="window_position">center</property>
|
8
|
+
<child>
|
9
|
+
<object class="GtkBox">
|
10
|
+
<property name="visible">True</property>
|
11
|
+
<property name="can_focus">False</property>
|
12
|
+
<property name="orientation">vertical</property>
|
13
|
+
<child>
|
14
|
+
<object class="GtkMenuBar" id="main_menu">
|
15
|
+
<property name="visible">True</property>
|
16
|
+
<property name="can_focus">False</property>
|
17
|
+
<child>
|
18
|
+
<object class="GtkMenuItem" id="file_menu">
|
19
|
+
<property name="visible">True</property>
|
20
|
+
<property name="can_focus">False</property>
|
21
|
+
<property name="label" translatable="yes">_File</property>
|
22
|
+
<property name="use_underline">True</property>
|
23
|
+
<child type="submenu">
|
24
|
+
<object class="GtkMenu">
|
25
|
+
<property name="visible">True</property>
|
26
|
+
<property name="can_focus">False</property>
|
27
|
+
<child>
|
28
|
+
<object class="GtkImageMenuItem" id="file_menu_new">
|
29
|
+
<property name="label">gtk-new</property>
|
30
|
+
<property name="visible">True</property>
|
31
|
+
<property name="can_focus">False</property>
|
32
|
+
<property name="use_underline">True</property>
|
33
|
+
<property name="use_stock">True</property>
|
34
|
+
</object>
|
35
|
+
</child>
|
36
|
+
<child>
|
37
|
+
<object class="GtkImageMenuItem" id="file_menu_open">
|
38
|
+
<property name="label">gtk-open</property>
|
39
|
+
<property name="visible">True</property>
|
40
|
+
<property name="can_focus">False</property>
|
41
|
+
<property name="use_underline">True</property>
|
42
|
+
<property name="use_stock">True</property>
|
43
|
+
</object>
|
44
|
+
</child>
|
45
|
+
<child>
|
46
|
+
<object class="GtkImageMenuItem" id="file_menu_save">
|
47
|
+
<property name="label">gtk-save</property>
|
48
|
+
<property name="visible">True</property>
|
49
|
+
<property name="can_focus">False</property>
|
50
|
+
<property name="use_underline">True</property>
|
51
|
+
<property name="use_stock">True</property>
|
52
|
+
</object>
|
53
|
+
</child>
|
54
|
+
<child>
|
55
|
+
<object class="GtkImageMenuItem" id="file_menu_save_as">
|
56
|
+
<property name="label">gtk-save-as</property>
|
57
|
+
<property name="visible">True</property>
|
58
|
+
<property name="can_focus">False</property>
|
59
|
+
<property name="use_underline">True</property>
|
60
|
+
<property name="use_stock">True</property>
|
61
|
+
</object>
|
62
|
+
</child>
|
63
|
+
<child>
|
64
|
+
<object class="GtkSeparatorMenuItem">
|
65
|
+
<property name="visible">True</property>
|
66
|
+
<property name="can_focus">False</property>
|
67
|
+
</object>
|
68
|
+
</child>
|
69
|
+
<child>
|
70
|
+
<object class="GtkImageMenuItem" id="file_menu_quit">
|
71
|
+
<property name="label">gtk-quit</property>
|
72
|
+
<property name="visible">True</property>
|
73
|
+
<property name="can_focus">False</property>
|
74
|
+
<property name="use_underline">True</property>
|
75
|
+
<property name="use_stock">True</property>
|
76
|
+
</object>
|
77
|
+
</child>
|
78
|
+
</object>
|
79
|
+
</child>
|
80
|
+
</object>
|
81
|
+
</child>
|
82
|
+
<child>
|
83
|
+
<object class="GtkMenuItem">
|
84
|
+
<property name="visible">True</property>
|
85
|
+
<property name="can_focus">False</property>
|
86
|
+
<property name="label" translatable="yes">_Help</property>
|
87
|
+
<property name="use_underline">True</property>
|
88
|
+
<child type="submenu">
|
89
|
+
<object class="GtkMenu">
|
90
|
+
<property name="visible">True</property>
|
91
|
+
<property name="can_focus">False</property>
|
92
|
+
<child>
|
93
|
+
<object class="GtkImageMenuItem">
|
94
|
+
<property name="label">gtk-about</property>
|
95
|
+
<property name="visible">True</property>
|
96
|
+
<property name="can_focus">False</property>
|
97
|
+
<property name="use_underline">True</property>
|
98
|
+
<property name="use_stock">True</property>
|
99
|
+
</object>
|
100
|
+
</child>
|
101
|
+
</object>
|
102
|
+
</child>
|
103
|
+
</object>
|
104
|
+
</child>
|
105
|
+
</object>
|
106
|
+
<packing>
|
107
|
+
<property name="expand">False</property>
|
108
|
+
<property name="fill">True</property>
|
109
|
+
<property name="position">0</property>
|
110
|
+
</packing>
|
111
|
+
</child>
|
112
|
+
<child>
|
113
|
+
<object class="GtkPaned">
|
114
|
+
<property name="visible">True</property>
|
115
|
+
<property name="can_focus">True</property>
|
116
|
+
<child>
|
117
|
+
<object class="GtkBox">
|
118
|
+
<property name="visible">True</property>
|
119
|
+
<property name="can_focus">False</property>
|
120
|
+
<property name="orientation">vertical</property>
|
121
|
+
<child>
|
122
|
+
<object class="GtkScrolledWindow" id="component_window">
|
123
|
+
<property name="width_request">300</property>
|
124
|
+
<property name="height_request">500</property>
|
125
|
+
<property name="visible">True</property>
|
126
|
+
<property name="can_focus">True</property>
|
127
|
+
<property name="shadow_type">in</property>
|
128
|
+
<child>
|
129
|
+
<placeholder/>
|
130
|
+
</child>
|
131
|
+
</object>
|
132
|
+
<packing>
|
133
|
+
<property name="expand">True</property>
|
134
|
+
<property name="fill">True</property>
|
135
|
+
<property name="position">0</property>
|
136
|
+
</packing>
|
137
|
+
</child>
|
138
|
+
<child>
|
139
|
+
<object class="GtkScrolledWindow" id="created_window">
|
140
|
+
<property name="can_focus">True</property>
|
141
|
+
<property name="shadow_type">in</property>
|
142
|
+
<child>
|
143
|
+
<placeholder/>
|
144
|
+
</child>
|
145
|
+
</object>
|
146
|
+
<packing>
|
147
|
+
<property name="expand">False</property>
|
148
|
+
<property name="fill">False</property>
|
149
|
+
<property name="position">1</property>
|
150
|
+
</packing>
|
151
|
+
</child>
|
152
|
+
</object>
|
153
|
+
<packing>
|
154
|
+
<property name="resize">False</property>
|
155
|
+
<property name="shrink">True</property>
|
156
|
+
</packing>
|
157
|
+
</child>
|
158
|
+
<child>
|
159
|
+
<object class="GtkEventBox" id="viewer">
|
160
|
+
<property name="width_request">500</property>
|
161
|
+
<property name="visible">True</property>
|
162
|
+
<property name="can_focus">False</property>
|
163
|
+
<property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK | GDK_TOUCH_MASK | GDK_SMOOTH_SCROLL_MASK</property>
|
164
|
+
<property name="visible_window">False</property>
|
165
|
+
<child>
|
166
|
+
<placeholder/>
|
167
|
+
</child>
|
168
|
+
</object>
|
169
|
+
<packing>
|
170
|
+
<property name="resize">True</property>
|
171
|
+
<property name="shrink">True</property>
|
172
|
+
</packing>
|
173
|
+
</child>
|
174
|
+
</object>
|
175
|
+
<packing>
|
176
|
+
<property name="expand">True</property>
|
177
|
+
<property name="fill">True</property>
|
178
|
+
<property name="position">2</property>
|
179
|
+
</packing>
|
180
|
+
</child>
|
181
|
+
</object>
|
182
|
+
</child>
|
183
|
+
</object>
|
184
|
+
</interface>
|