visualruby 1.0.19 → 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Splash.rb +40 -0
- data/bin/editor/VR_Document.rb +81 -74
- data/bin/editor/VR_TabSearch.rb +5 -7
- data/bin/editor/VR_Tabs.rb +57 -36
- data/bin/editor/VR_TextShell.rb +12 -34
- data/bin/editor/VR_TextViewCommon.rb +9 -28
- data/bin/main/NewProjectGUI.rb +14 -13
- data/bin/main/OpenProject.rb +69 -0
- data/bin/main/ProjectChooserView.rb +3 -2
- data/bin/main/ProjectTree.rb +25 -0
- data/bin/main/RubygemsAPI.rb +15 -11
- data/bin/main/VR_ENV.rb +38 -60
- data/bin/main/VR_ENV_GLOBAL.rb +45 -44
- data/bin/main/VR_File_Tree.rb +29 -21
- data/bin/main/VR_Local_Gem_Tree.rb +4 -19
- data/bin/main/VR_Main.rb +128 -144
- data/bin/main/VR_Remote_Gem_Tree.rb +6 -19
- data/bin/main/glade/NewProjectGUI.glade +94 -98
- data/bin/main/glade/OpenProject.glade +259 -0
- data/bin/main/glade/RubygemsAPI.glade +98 -62
- data/bin/main/glade/VR_ENV.glade +46 -55
- data/bin/main/glade/VR_ENV_GLOBAL.glade +251 -180
- data/bin/main/glade/VR_File_Tree.glade +25 -16
- data/bin/main/glade/VR_Local_Gem_Tree.glade +16 -8
- data/bin/main/glade/VR_Main.glade +410 -449
- data/bin/main/glade/VR_Remote_Gem_Tree.glade +33 -31
- data/bin/tools/VR_Tools.rb +60 -46
- data/{visualruby_examples → examples}/active_record/active_record.rb +16 -10
- data/{visualruby_examples → examples}/active_record/bin/ChoosePerson.rb +7 -0
- data/examples/active_record/bin/Person.rb +21 -0
- data/examples/active_record/bin/glade/ChoosePerson.glade +89 -0
- data/examples/active_record/bin/glade/Person.glade +197 -0
- data/{visualruby_examples → examples}/active_record/db/development.sqlite3 +0 -0
- data/{visualruby_examples → examples}/active_record2/bin/CompanyGUI.rb +7 -7
- data/{visualruby_examples → examples}/active_record2/bin/Employee.rb +0 -0
- data/{visualruby_examples → examples}/active_record2/bin/Employer.rb +0 -0
- data/{visualruby_examples → examples}/active_record2/bin/Paycheck.rb +0 -0
- data/examples/active_record2/bin/glade/CompanyGUI.glade +149 -0
- data/examples/active_record2/bin/glade/Employee.glade +126 -0
- data/{visualruby_examples → examples}/active_record2/bin/glade/Employer.glade +0 -0
- data/{visualruby_examples → examples}/active_record2/bin/glade/Paycheck.glade +0 -0
- data/{visualruby_examples → examples}/active_record2/db/development.sqlite3 +0 -0
- data/{visualruby_examples → examples}/active_record2/main.rb +15 -9
- data/examples/alert_box/bin/AlertBoxDemo.rb +80 -0
- data/examples/alert_box/bin/glade/AlertBoxDemo.glade +234 -0
- data/examples/alert_box/main.rb +12 -0
- data/{visualruby_examples → examples}/all_widgets/bin/AllWidgets.rb +18 -10
- data/{visualruby_examples → examples}/all_widgets/bin/glade/AllWidgets.glade +52 -16
- data/{visualruby_examples → examples}/all_widgets/bin/splash.png +0 -0
- data/examples/all_widgets/main.rb +12 -0
- data/{visualruby_examples → examples}/calculator/bin/Calculator.rb +23 -22
- data/{visualruby_examples → examples}/calculator/bin/glade/Calculator.glade +81 -51
- data/examples/calculator/main.rb +13 -0
- data/examples/child_window/bin/ChildWindowDemo.rb +52 -0
- data/examples/child_window/bin/ModalWindow.rb +9 -0
- data/examples/child_window/bin/ModelessWindow.rb +9 -0
- data/examples/child_window/bin/MyChildClass.rb +21 -0
- data/examples/child_window/bin/glade/ChildWindowDemo.glade +87 -0
- data/examples/child_window/bin/glade/ModalWindow.glade +61 -0
- data/examples/child_window/bin/glade/ModelessWindow.glade +61 -0
- data/{visualruby_examples → examples}/child_window/bin/glade/MyChildClass.glade +14 -12
- data/examples/child_window/main.rb +12 -0
- data/{visualruby_examples → examples}/drag_drop/bin/DragDropDemo.rb +9 -10
- data/examples/drag_drop/bin/glade/DragDropDemo.glade +161 -0
- data/{visualruby_examples → examples}/drag_drop/img/folder.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/glade.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/gtk-edit.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/obj.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/png.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/rb.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/ruby.png +0 -0
- data/{visualruby_examples → examples}/drag_drop/img/unknown.png +0 -0
- data/examples/drag_drop/main.rb +11 -0
- data/examples/filetreeview/bin/ProjectTree.rb +32 -0
- data/examples/filetreeview/bin/ProjectTreeGUI.rb +28 -0
- data/examples/filetreeview/bin/glade/ProjectTreeGUI.glade +156 -0
- data/examples/filetreeview/main.rb +13 -0
- data/{visualruby_examples → examples}/listview/bin/SongListView.rb +24 -20
- data/{visualruby_examples → examples}/listview/bin/SongListViewGUI.rb +12 -11
- data/{visualruby_examples → examples}/listview/bin/audio-x-generic.png +0 -0
- data/examples/listview/bin/glade/SongListViewGUI.glade +195 -0
- data/examples/listview/main.rb +10 -0
- data/examples/listview_objects/bin/DataObject.rb +53 -0
- data/{visualruby_examples → examples}/listview_objects/bin/ListViewObjects.rb +7 -4
- data/examples/listview_objects/bin/ListViewObjectsGUI.rb +26 -0
- data/examples/listview_objects/bin/glade/DataObject.glade +196 -0
- data/examples/listview_objects/bin/glade/ListViewObjectsGUI.glade +87 -0
- data/examples/listview_objects/main.rb +12 -0
- data/examples/settings_file/bin/MainApp.rb +38 -0
- data/examples/settings_file/bin/SavableSettings.rb +39 -0
- data/examples/settings_file/bin/glade/MainApp.glade +87 -0
- data/examples/settings_file/bin/glade/SavableSettings.glade +162 -0
- data/examples/settings_file/main.rb +14 -0
- data/examples/settings_file/settings.yaml +15 -0
- data/examples/simple_ruby_gui/bin/DataObjectGUI.rb +21 -0
- data/examples/simple_ruby_gui/bin/glade/DataObjectGUI.glade +195 -0
- data/examples/simple_ruby_gui/main.rb +16 -0
- data/{visualruby_examples → examples}/treeview/bin/MyClass.rb +1 -5
- data/examples/treeview/bin/glade/MyClass.glade +24 -0
- data/examples/treeview/main.rb +13 -0
- data/skeleton/document/New.glade +3 -4
- data/skeleton/document/NewWindow.rb +1 -1
- data/skeleton/project/bin/MyClass.rb +2 -2
- data/skeleton/project/bin/glade/MyClass.glade +12 -26
- data/skeleton/project/main.rb +4 -8
- data/vr +41 -37
- data/vrlib/lib/Alert.rb +67 -0
- data/vrlib/lib/DragDrop.rb +90 -0
- data/vrlib/lib/GladeGUI.rb +433 -0
- data/vrlib/lib/IconHash.rb +18 -0
- data/vrlib/lib/SavableClass.rb +56 -0
- data/vrlib/lib/SimpleComboBoxEntry.rb +8 -0
- data/vrlib/lib/glade/Alert.glade +119 -0
- data/vrlib/lib/treeview/FileTreeView.rb +113 -0
- data/vrlib/lib/treeview/IterMethods.rb +82 -0
- data/vrlib/lib/treeview/ListView.rb +85 -0
- data/vrlib/lib/treeview/TreeView.rb +43 -0
- data/vrlib/lib/treeview/ViewCommon.rb +370 -0
- data/vrlib/lib/treeview/columns/CalendarCol.rb +89 -0
- data/vrlib/lib/treeview/columns/CellRendererCombo.rb +66 -0
- data/vrlib/lib/treeview/columns/CellRendererDate.rb +45 -0
- data/vrlib/lib/treeview/columns/CellRendererObject.rb +57 -0
- data/vrlib/lib/treeview/columns/CellRendererPhone.rb +45 -0
- data/vrlib/lib/treeview/columns/CellRendererPixbuf.rb +16 -0
- data/vrlib/lib/treeview/columns/CellRendererProgress.rb +17 -0
- data/vrlib/lib/treeview/columns/CellRendererSpin.rb +37 -0
- data/vrlib/lib/treeview/columns/CellRendererText.rb +38 -0
- data/vrlib/lib/treeview/columns/CellRendererToggle.rb +47 -0
- data/vrlib/lib/treeview/columns/ComboCol.rb +43 -0
- data/vrlib/lib/treeview/columns/CurrencyCol.rb +23 -0
- data/vrlib/lib/treeview/columns/DateCol.rb +20 -0
- data/vrlib/lib/treeview/columns/ImageCol.rb +27 -0
- data/vrlib/lib/treeview/columns/ProgressCol.rb +27 -0
- data/vrlib/lib/treeview/columns/SpinCol.rb +11 -0
- data/vrlib/lib/treeview/columns/TextCol.rb +65 -0
- data/vrlib/lib/treeview/columns/TreeViewColumn.rb +93 -0
- data/{bin/main/glade/ProjectChooserGUI.glade → vrlib/lib/treeview/columns/glade/CalendarCol.glade} +71 -63
- data/{bin/main/glade/Splash.glade → vrlib/lib/treeview/columns/glade/ImageCol.glade} +5 -6
- data/vrlib/lib/treeview/columns/glade/TextCol.glade +82 -0
- data/vrlib/rdoc_replace.yaml +77 -0
- data/vrlib/vrlib.rb +7 -0
- metadata +163 -136
- data/bin/editor/glade/VR_Document.glade +0 -160
- data/bin/main/ProjectChooserGUI.rb +0 -41
- data/bin/main/Splash.rb +0 -22
- data/visualruby_examples/active_record/.vr_settings.yaml +0 -47
- data/visualruby_examples/active_record/bin/Person.rb +0 -13
- data/visualruby_examples/active_record/bin/glade/ChoosePerson.glade +0 -61
- data/visualruby_examples/active_record/bin/glade/Person.glade +0 -148
- data/visualruby_examples/active_record2/.vr_settings.yaml +0 -16
- data/visualruby_examples/active_record2/bin/glade/CompanyGUI.glade +0 -167
- data/visualruby_examples/active_record2/bin/glade/Employee.glade +0 -123
- data/visualruby_examples/all_widgets/.vr_settings.yaml +0 -13
- data/visualruby_examples/all_widgets/main.rb +0 -14
- data/visualruby_examples/calculator/.vr_settings.yaml +0 -11
- data/visualruby_examples/calculator/main.rb +0 -13
- data/visualruby_examples/child_window/.vr_settings.yaml +0 -16
- data/visualruby_examples/child_window/bin/ChildWindowDemo.rb +0 -39
- data/visualruby_examples/child_window/bin/MyChildClass.rb +0 -40
- data/visualruby_examples/child_window/bin/glade/ChildWindowDemo.glade +0 -101
- data/visualruby_examples/child_window/main.rb +0 -13
- data/visualruby_examples/drag_drop/.vr_settings.yaml +0 -12
- data/visualruby_examples/drag_drop/bin/glade/DragDropDemo.glade +0 -143
- data/visualruby_examples/drag_drop/main.rb +0 -14
- data/visualruby_examples/listview/.vr_settings.yaml +0 -12
- data/visualruby_examples/listview/bin/glade/SongListViewGUI.glade +0 -220
- data/visualruby_examples/listview/main.rb +0 -19
- data/visualruby_examples/listview_objects/.vr_settings.yaml +0 -16
- data/visualruby_examples/listview_objects/bin/DataObject.rb +0 -32
- data/visualruby_examples/listview_objects/bin/DataObjectGUI.rb +0 -41
- data/visualruby_examples/listview_objects/bin/ListViewObjectsGUI.rb +0 -18
- data/visualruby_examples/listview_objects/bin/glade/DataObject.glade +0 -198
- data/visualruby_examples/listview_objects/bin/glade/ListViewObjectsGUI.glade +0 -102
- data/visualruby_examples/listview_objects/main.rb +0 -13
- data/visualruby_examples/simple_ruby_gui/.vr_settings.yaml +0 -16
- data/visualruby_examples/simple_ruby_gui/bin/DataObjectGUI.rb +0 -20
- data/visualruby_examples/simple_ruby_gui/bin/glade/DataObjectGUI.glade +0 -163
- data/visualruby_examples/simple_ruby_gui/main.rb +0 -16
- data/visualruby_examples/treeview/.vr_settings.yaml +0 -12
- data/visualruby_examples/treeview/bin/glade/MyClass.glade +0 -48
- data/visualruby_examples/treeview/main.rb +0 -14
@@ -1,19 +1,22 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Generated with glade 3.18.3 -->
|
2
3
|
<interface>
|
3
|
-
<requires lib="gtk+" version="
|
4
|
-
<!-- interface-naming-policy project-wide -->
|
4
|
+
<requires lib="gtk+" version="3.0"/>
|
5
5
|
<object class="GtkWindow" id="window1">
|
6
|
-
<property name="visible">True</property>
|
7
6
|
<property name="can_focus">False</property>
|
8
|
-
<property name="title" translatable="yes">Title</property>
|
9
7
|
<property name="modal">True</property>
|
10
|
-
<
|
8
|
+
<property name="window_position">center</property>
|
11
9
|
<child>
|
12
|
-
<object class="
|
10
|
+
<object class="GtkBox" id="box1">
|
13
11
|
<property name="visible">True</property>
|
14
12
|
<property name="can_focus">False</property>
|
13
|
+
<property name="margin_left">30</property>
|
14
|
+
<property name="margin_right">30</property>
|
15
|
+
<property name="margin_top">30</property>
|
16
|
+
<property name="margin_bottom">30</property>
|
17
|
+
<property name="orientation">vertical</property>
|
15
18
|
<child>
|
16
|
-
<object class="GtkLabel" id="
|
19
|
+
<object class="GtkLabel" id="labelMessage">
|
17
20
|
<property name="visible">True</property>
|
18
21
|
<property name="can_focus">False</property>
|
19
22
|
<property name="xpad">80</property>
|
@@ -27,28 +30,27 @@
|
|
27
30
|
</packing>
|
28
31
|
</child>
|
29
32
|
<child>
|
30
|
-
<object class="
|
33
|
+
<object class="GtkButtonBox" id="buttonbox1">
|
31
34
|
<property name="visible">True</property>
|
32
35
|
<property name="can_focus">False</property>
|
36
|
+
<property name="layout_style">spread</property>
|
33
37
|
<child>
|
34
38
|
<object class="GtkButton" id="buttonCancel">
|
35
39
|
<property name="label" translatable="yes">Cancel</property>
|
36
40
|
<property name="visible">True</property>
|
37
41
|
<property name="can_focus">True</property>
|
38
42
|
<property name="receives_default">True</property>
|
39
|
-
<property name="use_action_appearance">False</property>
|
40
43
|
</object>
|
41
44
|
<packing>
|
42
45
|
<property name="expand">False</property>
|
43
|
-
<property name="fill">
|
46
|
+
<property name="fill">True</property>
|
44
47
|
<property name="position">0</property>
|
45
48
|
</packing>
|
46
49
|
</child>
|
47
50
|
</object>
|
48
51
|
<packing>
|
49
|
-
<property name="expand">
|
52
|
+
<property name="expand">False</property>
|
50
53
|
<property name="fill">True</property>
|
51
|
-
<property name="padding">10</property>
|
52
54
|
<property name="position">1</property>
|
53
55
|
</packing>
|
54
56
|
</child>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
#Updated for Gtk3!
|
4
|
+
|
5
|
+
# ignore -- this is for development, same as require 'vrlib'
|
6
|
+
require File.exists?("./../../vrlib/vrlib.rb") ? "./../../vrlib/vrlib.rb" : "vrlib"
|
7
|
+
|
8
|
+
# from require_all gem:
|
9
|
+
require_rel 'bin/'
|
10
|
+
|
11
|
+
ChildWindowDemo.new.show_glade()
|
12
|
+
|
@@ -4,14 +4,13 @@ class DragDropDemo
|
|
4
4
|
include GladeGUI
|
5
5
|
|
6
6
|
def before_show()
|
7
|
-
@
|
8
|
-
@
|
7
|
+
@window1 = "Drag and Drop Demo"
|
8
|
+
@textview1 = "I'm a widget named textview1.\n\nTry dragging a file or the button onto me."
|
9
|
+
@view = VR::FileTreeView.new(Dir.pwd,"./img")
|
9
10
|
@view.refresh()
|
10
|
-
|
11
|
-
|
12
|
-
@view
|
13
|
-
drag_to(@builder["button1"], @builder["textview1"])
|
14
|
-
drag_to(@builder["textview1"], @builder["button1"])
|
11
|
+
@view.expand_row(@view.model.iter_first.path, false)
|
12
|
+
@builder["scrolledwindow1"].add(@view)
|
13
|
+
set_drag_drop("button1" => "textview1", @view => "textview1", "textview1" => "button1")
|
15
14
|
end
|
16
15
|
|
17
16
|
|
@@ -19,7 +18,7 @@ class DragDropDemo
|
|
19
18
|
# receives a drag_drop signal, an instance variable named dragged_widget is set automatically set
|
20
19
|
# by visualruby containing a reference to the dragged widget:
|
21
20
|
|
22
|
-
def button1__drag_drop(*args)
|
21
|
+
def button1__drag_drop(widget, *args)
|
23
22
|
but1 = @builder["button1"]
|
24
23
|
if but1.dragged_widget.is_a?(Gtk::TextView)
|
25
24
|
but1.label = but1.dragged_widget.buffer.text.slice(0,15)
|
@@ -28,11 +27,11 @@ class DragDropDemo
|
|
28
27
|
end
|
29
28
|
end
|
30
29
|
|
31
|
-
def textview1__drag_drop(*args)
|
30
|
+
def textview1__drag_drop(widget, context, *args)
|
32
31
|
tv1 = @builder["textview1"]
|
33
32
|
if tv1.dragged_widget == @view
|
34
33
|
path = @view.get_selected_path()
|
35
|
-
tv1.buffer.text = File.
|
34
|
+
tv1.buffer.text = File.basename(path)
|
36
35
|
elsif tv1.dragged_widget.is_a?(Gtk::Button)
|
37
36
|
tv1.buffer.text = tv1.dragged_widget.label
|
38
37
|
end
|
@@ -0,0 +1,161 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Generated with glade 3.18.3 -->
|
3
|
+
<interface>
|
4
|
+
<requires lib="gtk+" version="3.0"/>
|
5
|
+
<object class="GtkWindow" id="window1">
|
6
|
+
<property name="width_request">650</property>
|
7
|
+
<property name="height_request">500</property>
|
8
|
+
<property name="can_focus">False</property>
|
9
|
+
<property name="window_position">center</property>
|
10
|
+
<property name="default_width">650</property>
|
11
|
+
<property name="default_height">500</property>
|
12
|
+
<child>
|
13
|
+
<object class="GtkBox" id="box1">
|
14
|
+
<property name="visible">True</property>
|
15
|
+
<property name="can_focus">False</property>
|
16
|
+
<property name="margin_left">10</property>
|
17
|
+
<property name="margin_right">10</property>
|
18
|
+
<property name="margin_top">10</property>
|
19
|
+
<property name="margin_bottom">10</property>
|
20
|
+
<property name="vexpand">True</property>
|
21
|
+
<property name="orientation">vertical</property>
|
22
|
+
<property name="spacing">10</property>
|
23
|
+
<child>
|
24
|
+
<object class="GtkFrame" id="frame1">
|
25
|
+
<property name="width_request">520</property>
|
26
|
+
<property name="visible">True</property>
|
27
|
+
<property name="can_focus">False</property>
|
28
|
+
<property name="label_xalign">0</property>
|
29
|
+
<property name="shadow_type">in</property>
|
30
|
+
<child>
|
31
|
+
<object class="GtkAlignment" id="alignment1">
|
32
|
+
<property name="visible">True</property>
|
33
|
+
<property name="can_focus">False</property>
|
34
|
+
<property name="top_padding">12</property>
|
35
|
+
<property name="bottom_padding">13</property>
|
36
|
+
<property name="left_padding">13</property>
|
37
|
+
<property name="right_padding">13</property>
|
38
|
+
<child>
|
39
|
+
<object class="GtkLabel" id="label2">
|
40
|
+
<property name="width_request">600</property>
|
41
|
+
<property name="visible">True</property>
|
42
|
+
<property name="can_focus">False</property>
|
43
|
+
<property name="label" translatable="yes">With visualruby, you can drag-n-drop any widget onto another widget. Try dragging files or the button onto the textview in the middle of the screen. Also, try dragging between the textview and the button.</property>
|
44
|
+
<property name="wrap">True</property>
|
45
|
+
<property name="xalign">0</property>
|
46
|
+
<property name="yalign">0</property>
|
47
|
+
</object>
|
48
|
+
</child>
|
49
|
+
</object>
|
50
|
+
</child>
|
51
|
+
<child type="label">
|
52
|
+
<object class="GtkLabel" id="label1">
|
53
|
+
<property name="visible">True</property>
|
54
|
+
<property name="can_focus">False</property>
|
55
|
+
<property name="label" translatable="yes"><b>Instructions</b></property>
|
56
|
+
<property name="use_markup">True</property>
|
57
|
+
</object>
|
58
|
+
</child>
|
59
|
+
</object>
|
60
|
+
<packing>
|
61
|
+
<property name="expand">False</property>
|
62
|
+
<property name="fill">False</property>
|
63
|
+
<property name="padding">5</property>
|
64
|
+
<property name="position">0</property>
|
65
|
+
</packing>
|
66
|
+
</child>
|
67
|
+
<child>
|
68
|
+
<object class="GtkBox" id="box2">
|
69
|
+
<property name="visible">True</property>
|
70
|
+
<property name="can_focus">False</property>
|
71
|
+
<property name="spacing">17</property>
|
72
|
+
<child>
|
73
|
+
<object class="GtkScrolledWindow" id="scrolledwindow1">
|
74
|
+
<property name="visible">True</property>
|
75
|
+
<property name="can_focus">True</property>
|
76
|
+
<property name="margin_top">5</property>
|
77
|
+
<property name="hexpand">True</property>
|
78
|
+
<property name="vexpand">True</property>
|
79
|
+
<property name="shadow_type">in</property>
|
80
|
+
<child>
|
81
|
+
<placeholder/>
|
82
|
+
</child>
|
83
|
+
</object>
|
84
|
+
<packing>
|
85
|
+
<property name="expand">False</property>
|
86
|
+
<property name="fill">True</property>
|
87
|
+
<property name="position">0</property>
|
88
|
+
</packing>
|
89
|
+
</child>
|
90
|
+
<child>
|
91
|
+
<object class="GtkFrame" id="frame2">
|
92
|
+
<property name="visible">True</property>
|
93
|
+
<property name="can_focus">False</property>
|
94
|
+
<property name="label_xalign">0</property>
|
95
|
+
<property name="shadow_type">etched-out</property>
|
96
|
+
<child>
|
97
|
+
<object class="GtkScrolledWindow" id="scrolledwindow2">
|
98
|
+
<property name="visible">True</property>
|
99
|
+
<property name="can_focus">True</property>
|
100
|
+
<property name="shadow_type">in</property>
|
101
|
+
<child>
|
102
|
+
<object class="GtkTextView" id="textview1">
|
103
|
+
<property name="visible">True</property>
|
104
|
+
<property name="can_focus">True</property>
|
105
|
+
</object>
|
106
|
+
</child>
|
107
|
+
</object>
|
108
|
+
</child>
|
109
|
+
<child type="label">
|
110
|
+
<object class="GtkLabel" id="label3">
|
111
|
+
<property name="visible">True</property>
|
112
|
+
<property name="can_focus">False</property>
|
113
|
+
<property name="label" translatable="yes">textview1 </property>
|
114
|
+
</object>
|
115
|
+
</child>
|
116
|
+
</object>
|
117
|
+
<packing>
|
118
|
+
<property name="expand">True</property>
|
119
|
+
<property name="fill">True</property>
|
120
|
+
<property name="padding">10</property>
|
121
|
+
<property name="position">1</property>
|
122
|
+
</packing>
|
123
|
+
</child>
|
124
|
+
<child>
|
125
|
+
<object class="GtkButtonBox" id="buttonbox1">
|
126
|
+
<property name="visible">True</property>
|
127
|
+
<property name="can_focus">False</property>
|
128
|
+
<property name="orientation">vertical</property>
|
129
|
+
<property name="layout_style">spread</property>
|
130
|
+
<child>
|
131
|
+
<object class="GtkButton" id="button1">
|
132
|
+
<property name="label" translatable="yes">button1</property>
|
133
|
+
<property name="visible">True</property>
|
134
|
+
<property name="can_focus">True</property>
|
135
|
+
<property name="receives_default">True</property>
|
136
|
+
<property name="yalign">0.63999998569488525</property>
|
137
|
+
</object>
|
138
|
+
<packing>
|
139
|
+
<property name="expand">True</property>
|
140
|
+
<property name="fill">True</property>
|
141
|
+
<property name="position">0</property>
|
142
|
+
</packing>
|
143
|
+
</child>
|
144
|
+
</object>
|
145
|
+
<packing>
|
146
|
+
<property name="expand">False</property>
|
147
|
+
<property name="fill">True</property>
|
148
|
+
<property name="position">2</property>
|
149
|
+
</packing>
|
150
|
+
</child>
|
151
|
+
</object>
|
152
|
+
<packing>
|
153
|
+
<property name="expand">True</property>
|
154
|
+
<property name="fill">True</property>
|
155
|
+
<property name="position">1</property>
|
156
|
+
</packing>
|
157
|
+
</child>
|
158
|
+
</object>
|
159
|
+
</child>
|
160
|
+
</object>
|
161
|
+
</interface>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,32 @@
|
|
1
|
+
|
2
|
+
class ProjectTree < VR::FileTreeView #(change name)
|
3
|
+
|
4
|
+
attr_accessor :ftv
|
5
|
+
|
6
|
+
include GladeGUI
|
7
|
+
|
8
|
+
def initialize()
|
9
|
+
path = File.join(ENV["HOME"], "visualruby")
|
10
|
+
super(path, "/home/eric/vrp/vr3/img")
|
11
|
+
@test_block = proc { |folder| has_settings_file?(folder) }
|
12
|
+
end
|
13
|
+
|
14
|
+
def self__row_activated(_self, path, col)
|
15
|
+
row = vr_row(get_iter(path))
|
16
|
+
if File.exists?(File.join(row[:path], ".vr_settings.yaml")) #test if its a vr project.
|
17
|
+
alert "You selected: \n\n" + row[:file_name]
|
18
|
+
else
|
19
|
+
expand_or_collapse_folder()
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def has_settings_file?(path)
|
24
|
+
Find.find(path) do |file|
|
25
|
+
if File.basename(file) == ".vr_settings.yaml"
|
26
|
+
return true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
return false
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
class ProjectTreeGUI #(change name)
|
3
|
+
|
4
|
+
attr_accessor :ftv
|
5
|
+
|
6
|
+
include GladeGUI
|
7
|
+
|
8
|
+
def before_show()
|
9
|
+
@ftv = ProjectTree.new()
|
10
|
+
@builder["scrolledwindow1"].add(@ftv) #needs show_all
|
11
|
+
@open_folders = []
|
12
|
+
end
|
13
|
+
|
14
|
+
def show_expanders__toggled(*a)
|
15
|
+
@ftv.set_show_expanders(@builder[:show_expanders].active?)
|
16
|
+
end
|
17
|
+
|
18
|
+
def save_state__clicked(*a)
|
19
|
+
@open_folders = @ftv.get_open_folders()
|
20
|
+
alert("Saving folders: " + @open_folders.to_s, :parent=>self)
|
21
|
+
end
|
22
|
+
|
23
|
+
def load_state__clicked(*a)
|
24
|
+
@ftv.refresh( :open_folders => @open_folders )
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
@@ -0,0 +1,156 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Generated with glade 3.18.3 -->
|
3
|
+
<interface>
|
4
|
+
<requires lib="gtk+" version="3.0"/>
|
5
|
+
<object class="GtkWindow" id="window1">
|
6
|
+
<property name="visible">True</property>
|
7
|
+
<property name="can_focus">False</property>
|
8
|
+
<property name="title" translatable="yes">FileTreeView Demo</property>
|
9
|
+
<property name="modal">True</property>
|
10
|
+
<property name="window_position">center</property>
|
11
|
+
<property name="default_width">400</property>
|
12
|
+
<property name="default_height">600</property>
|
13
|
+
<child>
|
14
|
+
<object class="GtkBox" id="box1">
|
15
|
+
<property name="visible">True</property>
|
16
|
+
<property name="can_focus">False</property>
|
17
|
+
<property name="margin_left">20</property>
|
18
|
+
<property name="margin_right">20</property>
|
19
|
+
<property name="margin_top">20</property>
|
20
|
+
<property name="margin_bottom">20</property>
|
21
|
+
<property name="orientation">vertical</property>
|
22
|
+
<property name="spacing">10</property>
|
23
|
+
<child>
|
24
|
+
<object class="GtkLabel" id="label1">
|
25
|
+
<property name="visible">True</property>
|
26
|
+
<property name="can_focus">False</property>
|
27
|
+
<property name="label" translatable="yes"><big>FileTreeView Demo</big></property>
|
28
|
+
<property name="use_markup">True</property>
|
29
|
+
</object>
|
30
|
+
<packing>
|
31
|
+
<property name="expand">False</property>
|
32
|
+
<property name="fill">True</property>
|
33
|
+
<property name="position">0</property>
|
34
|
+
</packing>
|
35
|
+
</child>
|
36
|
+
<child>
|
37
|
+
<object class="GtkFrame" id="frame1">
|
38
|
+
<property name="visible">True</property>
|
39
|
+
<property name="can_focus">False</property>
|
40
|
+
<property name="label_xalign">0</property>
|
41
|
+
<property name="shadow_type">in</property>
|
42
|
+
<child>
|
43
|
+
<object class="GtkAlignment" id="alignment1">
|
44
|
+
<property name="visible">True</property>
|
45
|
+
<property name="can_focus">False</property>
|
46
|
+
<property name="left_padding">12</property>
|
47
|
+
<child>
|
48
|
+
<object class="GtkLabel" id="label3">
|
49
|
+
<property name="visible">True</property>
|
50
|
+
<property name="can_focus">False</property>
|
51
|
+
<property name="label" translatable="yes">This filetreeview shows only the folders that contain the hidden file, .vr_settings. This is how a visualruby project is identified.</property>
|
52
|
+
<property name="wrap">True</property>
|
53
|
+
</object>
|
54
|
+
</child>
|
55
|
+
</object>
|
56
|
+
</child>
|
57
|
+
<child type="label">
|
58
|
+
<object class="GtkLabel" id="label2">
|
59
|
+
<property name="visible">True</property>
|
60
|
+
<property name="can_focus">False</property>
|
61
|
+
<property name="label" translatable="yes">Instructions</property>
|
62
|
+
</object>
|
63
|
+
</child>
|
64
|
+
</object>
|
65
|
+
<packing>
|
66
|
+
<property name="expand">False</property>
|
67
|
+
<property name="fill">True</property>
|
68
|
+
<property name="position">1</property>
|
69
|
+
</packing>
|
70
|
+
</child>
|
71
|
+
<child>
|
72
|
+
<object class="GtkScrolledWindow" id="scrolledwindow1">
|
73
|
+
<property name="visible">True</property>
|
74
|
+
<property name="can_focus">True</property>
|
75
|
+
<property name="margin_top">8</property>
|
76
|
+
<property name="margin_bottom">8</property>
|
77
|
+
<property name="vexpand">True</property>
|
78
|
+
<property name="shadow_type">in</property>
|
79
|
+
<child>
|
80
|
+
<placeholder/>
|
81
|
+
</child>
|
82
|
+
</object>
|
83
|
+
<packing>
|
84
|
+
<property name="expand">False</property>
|
85
|
+
<property name="fill">True</property>
|
86
|
+
<property name="position">2</property>
|
87
|
+
</packing>
|
88
|
+
</child>
|
89
|
+
<child>
|
90
|
+
<object class="GtkBox" id="box2">
|
91
|
+
<property name="visible">True</property>
|
92
|
+
<property name="can_focus">False</property>
|
93
|
+
<child>
|
94
|
+
<object class="GtkCheckButton" id="show_expanders">
|
95
|
+
<property name="label" translatable="yes">Show Expanders</property>
|
96
|
+
<property name="visible">True</property>
|
97
|
+
<property name="can_focus">True</property>
|
98
|
+
<property name="receives_default">False</property>
|
99
|
+
<property name="xalign">0</property>
|
100
|
+
<property name="draw_indicator">True</property>
|
101
|
+
</object>
|
102
|
+
<packing>
|
103
|
+
<property name="expand">False</property>
|
104
|
+
<property name="fill">True</property>
|
105
|
+
<property name="position">0</property>
|
106
|
+
</packing>
|
107
|
+
</child>
|
108
|
+
<child>
|
109
|
+
<object class="GtkButtonBox" id="buttonbox1">
|
110
|
+
<property name="visible">True</property>
|
111
|
+
<property name="can_focus">False</property>
|
112
|
+
<property name="layout_style">spread</property>
|
113
|
+
<child>
|
114
|
+
<object class="GtkButton" id="load_state">
|
115
|
+
<property name="label" translatable="yes">Load State</property>
|
116
|
+
<property name="visible">True</property>
|
117
|
+
<property name="can_focus">True</property>
|
118
|
+
<property name="receives_default">True</property>
|
119
|
+
</object>
|
120
|
+
<packing>
|
121
|
+
<property name="expand">True</property>
|
122
|
+
<property name="fill">True</property>
|
123
|
+
<property name="position">0</property>
|
124
|
+
</packing>
|
125
|
+
</child>
|
126
|
+
<child>
|
127
|
+
<object class="GtkButton" id="save_state">
|
128
|
+
<property name="label" translatable="yes">Save State</property>
|
129
|
+
<property name="visible">True</property>
|
130
|
+
<property name="can_focus">True</property>
|
131
|
+
<property name="receives_default">True</property>
|
132
|
+
</object>
|
133
|
+
<packing>
|
134
|
+
<property name="expand">True</property>
|
135
|
+
<property name="fill">True</property>
|
136
|
+
<property name="position">1</property>
|
137
|
+
</packing>
|
138
|
+
</child>
|
139
|
+
</object>
|
140
|
+
<packing>
|
141
|
+
<property name="expand">True</property>
|
142
|
+
<property name="fill">True</property>
|
143
|
+
<property name="position">1</property>
|
144
|
+
</packing>
|
145
|
+
</child>
|
146
|
+
</object>
|
147
|
+
<packing>
|
148
|
+
<property name="expand">False</property>
|
149
|
+
<property name="fill">True</property>
|
150
|
+
<property name="position">3</property>
|
151
|
+
</packing>
|
152
|
+
</child>
|
153
|
+
</object>
|
154
|
+
</child>
|
155
|
+
</object>
|
156
|
+
</interface>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# ignore -- this is for development, same as require 'vrlib'
|
4
|
+
require File.exists?("./../../vrlib/vrlib.rb") ? "./../../vrlib/vrlib.rb" : "vrlib"
|
5
|
+
require 'find'
|
6
|
+
|
7
|
+
|
8
|
+
# from require_all gem:
|
9
|
+
require_rel 'bin/'
|
10
|
+
|
11
|
+
|
12
|
+
ProjectTreeGUI.new.show_glade()
|
13
|
+
|
@@ -14,24 +14,26 @@ class SongListView < VR::ListView
|
|
14
14
|
def initialize
|
15
15
|
@cols = {}
|
16
16
|
@cols[:pix] = {:pix => Gdk::Pixbuf, :song => String } #two renderers in this column
|
17
|
-
@cols[:date] = DateTime
|
17
|
+
@cols[:date] = VR::CalendarCol # DateTime
|
18
18
|
@cols[:artist] = String
|
19
19
|
@cols[:first_name] = String
|
20
20
|
@cols[:last_name] = String
|
21
21
|
@cols[:popular] = VR::ProgressCol
|
22
22
|
@cols[:buy] = VR::ComboCol
|
23
23
|
@cols[:quantity] = VR::SpinCol
|
24
|
-
|
24
|
+
@cols[:price] = VR::CurrencyCol
|
25
25
|
@cols[:check] = TrueClass
|
26
26
|
super(@cols)
|
27
27
|
|
28
28
|
col_sort_column_id(:artist => id(:last_name), :song => id(:song), :first_name=> id(:first_name))
|
29
|
+
col_sort_column_id(:last_name => id(:last_name), :popular => id(:popular))
|
29
30
|
col_sort_column_id(:last_name => id(:last_name), :popular => id(:popular), :buy=> id(:buy))
|
30
|
-
col_sort_column_id(:
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
31
|
+
col_sort_column_id(:check => id(:check), :date => id(:date))
|
32
|
+
col_sort_column_id(:price => id(:price), :check => id(:check), :date => id(:date))
|
33
|
+
col_sort_column_id(:quantity => id(:quantity))
|
34
|
+
col_title(:first_name => "First", :last_name => "Last", :check => "Ok", :quantity => "Qty")
|
35
|
+
ren_width(:popular => 80, :check=> 20, :buy => 80, :quantity=>90)
|
36
|
+
# ren_attr(:price, :edit_inline => true)
|
35
37
|
ren_editable(true)
|
36
38
|
|
37
39
|
# this block executes after ARTIST is edited ("edited" event).
|
@@ -46,30 +48,32 @@ class SongListView < VR::ListView
|
|
46
48
|
if text.split.size == 2 # insist on two names
|
47
49
|
true
|
48
50
|
else
|
49
|
-
|
51
|
+
alert("You must enter two names.", :parent => self)
|
50
52
|
false
|
51
53
|
end
|
52
54
|
}
|
53
55
|
refresh()
|
56
|
+
self.visible = true
|
54
57
|
end
|
55
58
|
|
56
59
|
# this just loads the data into the model
|
57
60
|
def refresh()
|
58
61
|
data = get_data() # returns array of songs
|
59
62
|
(0..6).each do |i|
|
60
|
-
row = add_row()
|
61
|
-
row[:pix] = AUDIO_ICON
|
62
|
-
row[:first_name] = data[i][0]
|
63
|
-
row[:last_name] = data[i][1]
|
64
|
-
row[:artist] = row[:first_name] + " " + row[:last_name]
|
65
|
-
row[:song] = data[i][2]
|
66
|
-
row[:quantity] = VR::SpinCol.new(0,0,100,1)
|
67
|
-
row[:price] = VR::CurrencyCol.new(2.99)
|
68
|
-
row[:popular] = data[i][3]
|
69
|
-
row[:buy] = VR::ComboCol.new("Buy", "Buy", "Rent", "Listen") # all rows use the same combobox
|
70
|
-
row[:check] = false
|
71
|
-
row[:date] = data[i][4]
|
63
|
+
row = model.append # add_row()
|
64
|
+
row[id(:pix)] = AUDIO_ICON
|
65
|
+
row[id(:first_name)] = data[i][0]
|
66
|
+
row[id(:last_name)] = data[i][1]
|
67
|
+
row[id(:artist)] = row[id(:first_name)] + " " + row[id(:last_name)]
|
68
|
+
row[id(:song)] = data[i][2]
|
69
|
+
row[id(:quantity)] = VR::SpinCol.new(0,0,100,1) # Gtk::Adjustment.new(0,0,100,1,0,0) #
|
70
|
+
row[id(:price)] = VR::CurrencyCol.new(2.99)
|
71
|
+
row[id(:popular)] = data[i][3]
|
72
|
+
row[id(:buy)] = VR::ComboCol.new("Buy", "Buy", "Rent", "Listen") # all rows use the same combobox
|
73
|
+
row[id(:check)] = false
|
74
|
+
row[id(:date)] = VR::CalendarCol.new(data[i][4], :format => "%d %b %Y ", :hide_time=>true, :hide_date => false)
|
72
75
|
end
|
76
|
+
|
73
77
|
end
|
74
78
|
|
75
79
|
def get_data
|