manqod 1.1505.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/manqod +309 -0
- data/doc/HOWTOS +11 -0
- data/doc/INSTALL +6 -0
- data/doc/LICENCE +450 -0
- data/doc/README +33 -0
- data/doc/benchmarkings/ListLoader.rb +177 -0
- data/doc/manqod.png +0 -0
- data/doc/manqod.svg +99 -0
- data/doc/server.conf.example +24 -0
- data/lib/About.rb +93 -0
- data/lib/BarMenu/BarMenuItem.rb +46 -0
- data/lib/BarMenu.rb +76 -0
- data/lib/ButtonMenu/ButtonMenuItem.rb +82 -0
- data/lib/ButtonMenu/EndSeparator.rb +14 -0
- data/lib/ButtonMenu/StartSeparator.rb +14 -0
- data/lib/ButtonMenu.rb +154 -0
- data/lib/Common/Conf.rb +119 -0
- data/lib/Common/Eprint.rb +180 -0
- data/lib/Common/EventCache.rb +41 -0
- data/lib/Common/Fixnum.rb +18 -0
- data/lib/Common/Images.rb +41 -0
- data/lib/Common/ManqodDB.rb +40 -0
- data/lib/Common/MyExec.rb +77 -0
- data/lib/Common/MyImage.rb +47 -0
- data/lib/Common/Nick.rb +25 -0
- data/lib/Common/String.rb +15 -0
- data/lib/FormHolder/Form/InputHolder/Button.rb +133 -0
- data/lib/FormHolder/Form/InputHolder/Calendar.rb +101 -0
- data/lib/FormHolder/Form/InputHolder/CalendarButton.rb +117 -0
- data/lib/FormHolder/Form/InputHolder/ColorButton.rb +54 -0
- data/lib/FormHolder/Form/InputHolder/Combo.rb +82 -0
- data/lib/FormHolder/Form/InputHolder/ComboWithNew.rb +103 -0
- data/lib/FormHolder/Form/InputHolder/Common/Model.rb +337 -0
- data/lib/FormHolder/Form/InputHolder/ConstCombo.rb +18 -0
- data/lib/FormHolder/Form/InputHolder/ConstText.rb +17 -0
- data/lib/FormHolder/Form/InputHolder/Duration.rb +73 -0
- data/lib/FormHolder/Form/InputHolder/EditableList.rb +57 -0
- data/lib/FormHolder/Form/InputHolder/FieldCombo.rb +40 -0
- data/lib/FormHolder/Form/InputHolder/FieldList.rb +40 -0
- data/lib/FormHolder/Form/InputHolder/FileChooser.rb +131 -0
- data/lib/FormHolder/Form/InputHolder/FontButton.rb +37 -0
- data/lib/FormHolder/Form/InputHolder/FormImage.rb +74 -0
- data/lib/FormHolder/Form/InputHolder/HScale.rb +44 -0
- data/lib/FormHolder/Form/InputHolder/Hidden.rb +41 -0
- data/lib/FormHolder/Form/InputHolder/Label.rb +40 -0
- data/lib/FormHolder/Form/InputHolder/List.rb +176 -0
- data/lib/FormHolder/Form/InputHolder/MultiLine.rb +63 -0
- data/lib/FormHolder/Form/InputHolder/Password.rb +41 -0
- data/lib/FormHolder/Form/InputHolder/QBuilder/QObject.rb +269 -0
- data/lib/FormHolder/Form/InputHolder/QBuilder.rb +333 -0
- data/lib/FormHolder/Form/InputHolder/RadioGroup.rb +82 -0
- data/lib/FormHolder/Form/InputHolder/SourceView.rb +100 -0
- data/lib/FormHolder/Form/InputHolder/Spin.rb +49 -0
- data/lib/FormHolder/Form/InputHolder/Text.rb +55 -0
- data/lib/FormHolder/Form/InputHolder/TimeStamp.rb +82 -0
- data/lib/FormHolder/Form/InputHolder/TimeStampButton.rb +93 -0
- data/lib/FormHolder/Form/InputHolder/Toggle.rb +43 -0
- data/lib/FormHolder/Form/InputHolder.rb +458 -0
- data/lib/FormHolder/Form.rb +529 -0
- data/lib/FormHolder.rb +203 -0
- data/lib/Gtk.rb +101 -0
- data/lib/GtkAttributes.rb +76 -0
- data/lib/Kernel.rb +48 -0
- data/lib/ListHolder/EditableList/CellRenderers/Combo.rb +91 -0
- data/lib/ListHolder/EditableList/CellRenderers/ComboText.rb +22 -0
- data/lib/ListHolder/EditableList/CellRenderers/ConstCombo.rb +12 -0
- data/lib/ListHolder/EditableList/CellRenderers/ConstText.rb +23 -0
- data/lib/ListHolder/EditableList/CellRenderers/Pixbuf.rb +18 -0
- data/lib/ListHolder/EditableList/CellRenderers/Progress.rb +36 -0
- data/lib/ListHolder/EditableList/CellRenderers/Text.rb +51 -0
- data/lib/ListHolder/EditableList/CellRenderers/Toggle.rb +35 -0
- data/lib/ListHolder/EditableList/Column.rb +223 -0
- data/lib/ListHolder/EditableList/DrbListModel.rb +809 -0
- data/lib/ListHolder/EditableList/ListPrintOperation/ColumnsHeaderLayout.rb +56 -0
- data/lib/ListHolder/EditableList/ListPrintOperation/CustomPageSetup.rb +100 -0
- data/lib/ListHolder/EditableList/ListPrintOperation/FooterLayout.rb +26 -0
- data/lib/ListHolder/EditableList/ListPrintOperation/HeaderLayout.rb +35 -0
- data/lib/ListHolder/EditableList/ListPrintOperation/IterLayout.rb +89 -0
- data/lib/ListHolder/EditableList/ListPrintOperation.rb +365 -0
- data/lib/ListHolder/EditableList.rb +309 -0
- data/lib/ListHolder/GanttHolder/Gantt/Rectangle.rb +290 -0
- data/lib/ListHolder/GanttHolder/Gantt.rb +317 -0
- data/lib/ListHolder/GanttHolder/GanttFooter.rb +27 -0
- data/lib/ListHolder/GanttHolder/GanttScaler.rb +60 -0
- data/lib/ListHolder/GanttHolder.rb +31 -0
- data/lib/ListHolder/HistoryWindow.rb +63 -0
- data/lib/ListHolder/ListButtonHolder/ArchiveButton.rb +37 -0
- data/lib/ListHolder/ListButtonHolder/ButtonGroup.rb +32 -0
- data/lib/ListHolder/ListButtonHolder/FilterButton.rb +28 -0
- data/lib/ListHolder/ListButtonHolder/ListButton.rb +305 -0
- data/lib/ListHolder/ListButtonHolder/OrderingButton.rb +26 -0
- data/lib/ListHolder/ListButtonHolder/SumPanelButton.rb +23 -0
- data/lib/ListHolder/ListButtonHolder.rb +94 -0
- data/lib/ListHolder/ListPanel/ListFilter/FRenderer/Combo.rb +94 -0
- data/lib/ListHolder/ListPanel/ListFilter/FRenderer/ConstCombo.rb +11 -0
- data/lib/ListHolder/ListPanel/ListFilter/FRenderer/Text.rb +26 -0
- data/lib/ListHolder/ListPanel/ListFilter/FRenderer/Toggle.rb +41 -0
- data/lib/ListHolder/ListPanel/ListFilter/FRenderer.rb +58 -0
- data/lib/ListHolder/ListPanel/ListFilter.rb +42 -0
- data/lib/ListHolder/ListPanel/ListSum/Text.rb +32 -0
- data/lib/ListHolder/ListPanel/ListSum.rb +72 -0
- data/lib/ListHolder/ListPanel.rb +60 -0
- data/lib/ListHolder.rb +241 -0
- data/lib/LoginWindow.rb +77 -0
- data/lib/MainRouter.rb +64 -0
- data/lib/ManqodCommon.rb +295 -0
- data/lib/ManqodHelp/FormatEditor/FormatJustificationWidget.rb +76 -0
- data/lib/ManqodHelp/FormatsEditor.rb +139 -0
- data/lib/ManqodHelp/HelpBrowser/FormatTagTable/FormatTag.rb +84 -0
- data/lib/ManqodHelp/HelpBrowser/FormatTagTable.rb +39 -0
- data/lib/ManqodHelp/HelpBrowser.rb +135 -0
- data/lib/ManqodHelp/HelpIndex.rb +62 -0
- data/lib/ManqodHelp/HelpToolbar.rb +16 -0
- data/lib/ManqodHelp.rb +120 -0
- data/lib/ManqodRPC.rb +37 -0
- data/lib/Memcache.rb +82 -0
- data/lib/MyConfig.rb +93 -0
- data/lib/Print/PrintItem/TextLayout.rb +47 -0
- data/lib/Print/PrintItem.rb +240 -0
- data/lib/Print.rb +199 -0
- data/lib/PrintEditor/ItemInfo/ItemImage.rb +30 -0
- data/lib/PrintEditor/ItemInfo/ItemList.rb +44 -0
- data/lib/PrintEditor/ItemInfo/ItemTextAlignment.rb +27 -0
- data/lib/PrintEditor/ItemInfo.rb +129 -0
- data/lib/PrintEditor/PageLayout.rb +91 -0
- data/lib/PrintEditor/PrintEditorItem.rb +310 -0
- data/lib/PrintEditor.rb +195 -0
- data/lib/RelationBuilder/RTable/RField.rb +91 -0
- data/lib/RelationBuilder/RTable.rb +293 -0
- data/lib/RelationBuilder/Relation/RelationHandle.rb +70 -0
- data/lib/RelationBuilder/Relation.rb +161 -0
- data/lib/RelationBuilder/RunQuery.rb +55 -0
- data/lib/RelationBuilder/SearchWindow.rb +72 -0
- data/lib/RelationBuilder.rb +468 -0
- data/lib/SB/ListProgress.rb +150 -0
- data/lib/SB/Messaging.rb +77 -0
- data/lib/SB.rb +29 -0
- data/lib/mynotebook.rb +131 -0
- data/lib/mytouchwindow.rb +162 -0
- data/lib/mywindow.rb +134 -0
- data/lib/wysiwyg-print-label.rb +57 -0
- metadata +231 -0
@@ -0,0 +1,100 @@
|
|
1
|
+
#this file is part of manqod
|
2
|
+
#manqod is distributed under the CDDL licence
|
3
|
+
#the author of manqod is Dobai-Pataky Balint(dpblnt@gmail.com)
|
4
|
+
|
5
|
+
class MySourceView < Gtk::ScrolledWindow
|
6
|
+
include ManqodCommon
|
7
|
+
def initialize(pc)
|
8
|
+
@pc=pc
|
9
|
+
super(nil,nil)
|
10
|
+
set_policy(Gtk::POLICY_AUTOMATIC,Gtk::POLICY_AUTOMATIC)
|
11
|
+
@tv=Gtk::SourceView.new()
|
12
|
+
|
13
|
+
add(@tv)
|
14
|
+
@tv.buffer.set_highlight_matching_brackets(true)
|
15
|
+
@tv.set_auto_indent(true).
|
16
|
+
set_highlight_current_line(true).
|
17
|
+
set_indent_on_tab(true).
|
18
|
+
set_indent_on_tab(true).
|
19
|
+
set_indent_width(4)
|
20
|
+
@tv.editable=item['editable']=="true"
|
21
|
+
@tv.modify_font(Pango::FontDescription.new('Monospace 10'))
|
22
|
+
|
23
|
+
@found_tag=@tv.buffer.create_tag('found',{'background' => 'yellow'})
|
24
|
+
@search_window=Gtk::Window.new(Gtk::Window::POPUP).set_destroy_with_parent(true).set_modal(true).set_window_position(Gtk::Window::POS_CENTER_ON_PARENT).set_decorated(false)
|
25
|
+
@search_window.add(Gtk::VBox.new.
|
26
|
+
pack_start(Gtk::Label.new("filter: #{item['description']}")).
|
27
|
+
pack_start(@entry=Gtk::Entry.new.set_can_focus(true).set_can_default(true))
|
28
|
+
)
|
29
|
+
|
30
|
+
@entry.signal_connect("key-release-event"){|me,ev|
|
31
|
+
@tv.buffer.remove_tag(@found_tag,@tv.buffer.start_iter,@tv.buffer.end_iter)
|
32
|
+
if ev.keyval == Gdk::Keyval::GDK_KEY_Escape
|
33
|
+
@search_window.hide
|
34
|
+
else
|
35
|
+
start_iter=@tv.buffer.start_iter
|
36
|
+
while bounds=start_iter.forward_search(me.text,Gtk::TextIter::SEARCH_TEXT_ONLY,nil)
|
37
|
+
@tv.buffer.apply_tag(@found_tag,bounds[0],bounds[1])
|
38
|
+
start_iter=bounds[1]
|
39
|
+
end
|
40
|
+
end
|
41
|
+
}
|
42
|
+
@entry.signal_connect("activate"){|me|
|
43
|
+
@search_window.hide
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
attr_accessor :tv
|
48
|
+
attr_accessor :pc
|
49
|
+
|
50
|
+
def item
|
51
|
+
@pc.item
|
52
|
+
end
|
53
|
+
def editable
|
54
|
+
pc.editable
|
55
|
+
end
|
56
|
+
|
57
|
+
def text
|
58
|
+
@tv.buffer.text
|
59
|
+
end
|
60
|
+
|
61
|
+
def update(new_value=item['default'])
|
62
|
+
item['default']=new_value
|
63
|
+
run_events(item['id'],'form_item-BeforeUpdate')
|
64
|
+
pc.run_query
|
65
|
+
|
66
|
+
@tv.buffer.delete(*@tv.buffer.bounds)
|
67
|
+
@tv.buffer.set_language(Gtk::SourceLanguageManager.new.get_language(pc.gtk_attribute("language") || "sql"))
|
68
|
+
@tv.buffer.non_undoable_action {
|
69
|
+
@tv.buffer.insert(@tv.buffer.get_iter_at_offset(0),item['default']) if item['default']
|
70
|
+
}
|
71
|
+
# @tv.set_sensitive(item['editable']=="true")
|
72
|
+
run_events(item['id'],'form_item-AfterUpdate')
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_content
|
76
|
+
client_query(eeval("\"#{text}\""))
|
77
|
+
end
|
78
|
+
|
79
|
+
def run_search(form_holder)
|
80
|
+
@search_window.set_transient_for(form_holder.get_ancestor(Gtk::Window)).show_all
|
81
|
+
end
|
82
|
+
|
83
|
+
def parentselected
|
84
|
+
@pc.parentselected
|
85
|
+
end
|
86
|
+
|
87
|
+
def parentM
|
88
|
+
@pc.parentM
|
89
|
+
end
|
90
|
+
|
91
|
+
def inspect
|
92
|
+
"SourceView #{item['description']}(#{pc.gtk_attribute("language")})"
|
93
|
+
end
|
94
|
+
|
95
|
+
def to_s
|
96
|
+
inspect
|
97
|
+
end
|
98
|
+
|
99
|
+
end #MySourceView
|
100
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#this file is part of manqod
|
2
|
+
#manqod is distributed under the CDDL licence
|
3
|
+
#the author of manqod is Dobai-Pataky Balint(dpblnt@gmail.com)
|
4
|
+
|
5
|
+
class MyRendererSpin < Gtk::SpinButton
|
6
|
+
include ManqodCommon
|
7
|
+
def initialize(pc)
|
8
|
+
@pc=pc
|
9
|
+
super(-65000,65000,1)
|
10
|
+
set_has_frame(false)
|
11
|
+
set_numeric(true)
|
12
|
+
set_increments(1,10)
|
13
|
+
set_digits(2)
|
14
|
+
signal_connect('value_changed'){|me|
|
15
|
+
edebug("#{self} changed to #{me.value}","form","debug")
|
16
|
+
pc.changed
|
17
|
+
pc.notify_observers(self)
|
18
|
+
edebug("#{self} emiting 'changed' to observers","form","debug")
|
19
|
+
run_events(item['id'],'form_item-Action')
|
20
|
+
}
|
21
|
+
end
|
22
|
+
attr_accessor :pc
|
23
|
+
|
24
|
+
def item
|
25
|
+
@pc.item
|
26
|
+
end
|
27
|
+
|
28
|
+
def update(new_value=item['default'])
|
29
|
+
item['default']=new_value
|
30
|
+
run_events(item['id'],'form_item-BeforeUpdate')
|
31
|
+
pc.run_query
|
32
|
+
set_value(item['default'].to_f) if item['default']
|
33
|
+
# set_sensitive(item['editable']=="true")
|
34
|
+
run_events(item['id'],'form_item-AfterUpdate')
|
35
|
+
end
|
36
|
+
|
37
|
+
def parentselected
|
38
|
+
@pc.parentselected
|
39
|
+
end
|
40
|
+
|
41
|
+
def parentM
|
42
|
+
@pc.parentM
|
43
|
+
end
|
44
|
+
def inspect
|
45
|
+
"SpinButton(#{item["description"]})"
|
46
|
+
end
|
47
|
+
def to_s;inspect;end
|
48
|
+
|
49
|
+
end #MyRendererText
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#this file is part of manqod
|
2
|
+
#manqod is distributed under the CDDL licence
|
3
|
+
#the author of manqod is Dobai-Pataky Balint(dpblnt@gmail.com)
|
4
|
+
|
5
|
+
class MyRendererText < Gtk::Entry
|
6
|
+
include ManqodCommon
|
7
|
+
def initialize(pc)
|
8
|
+
@pc=pc
|
9
|
+
super()
|
10
|
+
set_has_frame(false)
|
11
|
+
signal_connect('activate'){|me|
|
12
|
+
edebug(inspect+" '#{item['data']}' changed to item #{me.active.inspect}","form","debug")
|
13
|
+
pc.changed
|
14
|
+
pc.notify_observers(self)
|
15
|
+
edebug("'#{item['data']}' emiting 'changed' to observers","form","debug")
|
16
|
+
run_events(item['id'],'form_item-Action')
|
17
|
+
}
|
18
|
+
|
19
|
+
end
|
20
|
+
attr_accessor :pc
|
21
|
+
|
22
|
+
def text
|
23
|
+
super
|
24
|
+
end
|
25
|
+
|
26
|
+
def item
|
27
|
+
@pc.item
|
28
|
+
end
|
29
|
+
|
30
|
+
def update(new_value=item['default'])
|
31
|
+
item['default']=new_value
|
32
|
+
run_events(item['id'],'form_item-BeforeUpdate')
|
33
|
+
pc.run_query
|
34
|
+
set_text(item['default'].to_s) if item['default']
|
35
|
+
# set_sensitive(item['editable']=="true")
|
36
|
+
run_events(item['id'],'form_item-AfterUpdate')
|
37
|
+
end
|
38
|
+
|
39
|
+
def parentselected
|
40
|
+
@pc.parentselected
|
41
|
+
end
|
42
|
+
|
43
|
+
def parentM
|
44
|
+
@pc.parentM
|
45
|
+
end
|
46
|
+
|
47
|
+
def method_missing(sym,*args)
|
48
|
+
text
|
49
|
+
end
|
50
|
+
def inspect
|
51
|
+
"Text(#{item["description"]})"
|
52
|
+
end
|
53
|
+
def to_s;inspect;end
|
54
|
+
|
55
|
+
end #MyRendererText
|
@@ -0,0 +1,82 @@
|
|
1
|
+
#this file is part of manqod
|
2
|
+
#manqod is distributed under the CDDL licence
|
3
|
+
#the author of manqod is Dobai-Pataky Balint(dpblnt@gmail.com)
|
4
|
+
|
5
|
+
class MyRendererTimeStamp < Gtk::VBox
|
6
|
+
include ManqodCommon
|
7
|
+
def initialize(pc)
|
8
|
+
@pc=pc
|
9
|
+
super()
|
10
|
+
pack_start(@calendar=Gtk::Calendar.new)
|
11
|
+
pack_start(Gtk::HBox.new.
|
12
|
+
pack_start(@hw=Gtk::SpinButton.new(0,23,1).set_has_frame(false).set_numeric(true).set_increments(1,10).set_digits(0)).
|
13
|
+
pack_start(@mw=Gtk::SpinButton.new(0,59,1).set_has_frame(false).set_numeric(true).set_increments(1,10).set_digits(0)).
|
14
|
+
pack_start(@sw=Gtk::SpinButton.new(0,59,1).set_has_frame(false).set_numeric(true).set_increments(1,10).set_digits(0)),
|
15
|
+
true,false)
|
16
|
+
@sw.signal_connect('value_changed'){|me| changed}
|
17
|
+
@mw.signal_connect('value_changed'){|me| changed}
|
18
|
+
@hw.signal_connect('value_changed'){|me| changed}
|
19
|
+
@calendar.signal_connect("next-year"){|me| changed}
|
20
|
+
@calendar.signal_connect("prev-year"){|me| changed}
|
21
|
+
@calendar.signal_connect("month-changed"){|me| changed}
|
22
|
+
@calendar.signal_connect("day-selected"){|me| changed}
|
23
|
+
|
24
|
+
@calendar.set_show_details(true)
|
25
|
+
@calendar.set_show_week_numbers(true)
|
26
|
+
@calendar.show_day_names=true
|
27
|
+
end
|
28
|
+
attr_accessor :pc
|
29
|
+
|
30
|
+
def item
|
31
|
+
pc.item
|
32
|
+
end
|
33
|
+
|
34
|
+
def set_sensitive(sens)
|
35
|
+
@calendar.set_sensitive(sens)
|
36
|
+
@hw.set_sensitive(sens)
|
37
|
+
@mw.set_sensitive(sens)
|
38
|
+
@sw.set_sensitive(sens)
|
39
|
+
end
|
40
|
+
|
41
|
+
def update(new_value=item['default'])
|
42
|
+
new_value=Time.new.to_i if new_value == ""
|
43
|
+
item['default']=new_value
|
44
|
+
run_events(item['id'],'form_item-BeforeUpdate')
|
45
|
+
pc.run_query
|
46
|
+
time_to_wg(item['default']) if item['default']
|
47
|
+
run_events(item['id'],'form_item-AfterUpdate')
|
48
|
+
end
|
49
|
+
def changed
|
50
|
+
edebug("#{self} changed to #{wg_to_time}","form","debug")
|
51
|
+
pc.changed
|
52
|
+
pc.notify_observers(self)
|
53
|
+
edebug("#{self} emiting 'changed' to observers","form","debug")
|
54
|
+
run_events(item['id'],'form_item-Action')
|
55
|
+
end
|
56
|
+
def text
|
57
|
+
wg_to_time.to_s
|
58
|
+
end
|
59
|
+
def wg_to_time
|
60
|
+
begin
|
61
|
+
Time.mktime(@calendar.date[0],@calendar.date[1],@calendar.date[2],@hw.value,@mw.value,@sw.value).to_i
|
62
|
+
rescue => err
|
63
|
+
eerror(err)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
def time_to_wg(d)
|
67
|
+
t=Time.at(d.to_i)
|
68
|
+
@hw.set_value(t.hour)
|
69
|
+
@mw.set_value(t.min)
|
70
|
+
@sw.set_value(t.sec)
|
71
|
+
@calendar.set_year(t.year).set_month(t.month-1).set_day(t.day).mark_day(t.day)
|
72
|
+
end
|
73
|
+
|
74
|
+
def parentselected
|
75
|
+
pc.parentselected
|
76
|
+
end
|
77
|
+
|
78
|
+
def parentM
|
79
|
+
pc.parentM
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
@@ -0,0 +1,93 @@
|
|
1
|
+
#this file is part of manqod
|
2
|
+
#manqod is distributed under the CDDL licence
|
3
|
+
#the author of manqod is Dobai-Pataky Balint(dpblnt@gmail.com)
|
4
|
+
|
5
|
+
class MyRendererTimeStampButton < Gtk::Button
|
6
|
+
include ManqodCommon
|
7
|
+
include Conf
|
8
|
+
def initialize(pc)
|
9
|
+
@pc=pc
|
10
|
+
@timestamp_format=pc.gtk_attribute("timestamp-format") || "%Y-%m-%d %H:%M:%S"
|
11
|
+
super(item['description'])
|
12
|
+
@calendar_win=Gtk::Window.new(Gtk::Window::POPUP)
|
13
|
+
@calendar_win.set_modal(true).set_has_frame(false).add(@box=Gtk::Table.new(5,2)).set_transient_for(@pc.caller.get_ancestor(Gtk::Window))
|
14
|
+
@box.attach_defaults(@calendar=Gtk::Calendar.new,0,5,0,1).
|
15
|
+
attach_defaults(@hw=Gtk::SpinButton.new(0,23,1).set_has_frame(false).set_numeric(true).set_increments(1,10).set_digits(0),0,1,1,2).
|
16
|
+
attach_defaults(@mw=Gtk::SpinButton.new(0,59,1).set_has_frame(false).set_numeric(true).set_increments(1,10).set_digits(0),1,2,1,2).
|
17
|
+
attach_defaults(@sw=Gtk::SpinButton.new(0,59,1).set_has_frame(false).set_numeric(true).set_increments(1,10).set_digits(0),2,3,1,2).
|
18
|
+
attach_defaults(@ok=Gtk::Button.new.set_image(Gtk::Image.new(Gtk::Stock::OK,Gtk::IconSize::MENU)),3,4,1,2).
|
19
|
+
attach_defaults(@cancel=Gtk::Button.new.set_image(Gtk::Image.new(Gtk::Stock::CANCEL,Gtk::IconSize::MENU)),4,5,1,2)
|
20
|
+
|
21
|
+
@calendar.set_show_details(true) if @calendar.respond_to?("set_show_details")
|
22
|
+
@calendar.show_day_names=true
|
23
|
+
|
24
|
+
@calendar.signal_connect('day-selected-double-click'){|me| @ok.clicked}
|
25
|
+
@hw.signal_connect('activate'){|me| @ok.clicked}
|
26
|
+
@mw.signal_connect('activate'){|me| @ok.clicked}
|
27
|
+
@sw.signal_connect('activate'){|me| @ok.clicked}
|
28
|
+
signal_connect('clicked'){|me|
|
29
|
+
edebug("#{item['default']} clicked","gtk_button")
|
30
|
+
time_to_wg(item['default'])
|
31
|
+
x,y=@pc.caller.get_ancestor(Gtk::Window).position
|
32
|
+
xd,yd=translate_coordinates(@pc.caller.get_ancestor(Gtk::Window),x,y+allocation.height+allocation.y)
|
33
|
+
@calendar_win.move(xd,yd)
|
34
|
+
@calendar_win.show_all
|
35
|
+
}
|
36
|
+
@ok.signal_connect('clicked'){|me|
|
37
|
+
@calendar_win.hide
|
38
|
+
item['default']=wg_to_time.to_i
|
39
|
+
set_label(wg_to_time.strftime(@timestamp_format))
|
40
|
+
edebug("#{self} changed to #{wg_to_time}","form","debug")
|
41
|
+
run_events(item['id'],'form_item-Action')
|
42
|
+
pc.changed
|
43
|
+
pc.notify_observers(self)
|
44
|
+
edebug("#{self} emiting 'changed' to observers","form","debug")
|
45
|
+
run_events(item['id'],'form_item-Action')
|
46
|
+
}
|
47
|
+
@cancel.signal_connect('clicked'){|me|
|
48
|
+
@calendar_win.hide
|
49
|
+
}
|
50
|
+
end
|
51
|
+
attr_accessor :pc
|
52
|
+
|
53
|
+
def update(new_value=item['default'])
|
54
|
+
new_value=Time.new.to_i if new_value == ""
|
55
|
+
item['default']=new_value
|
56
|
+
run_events(item['id'],'form_item-BeforeUpdate')
|
57
|
+
pc.run_query
|
58
|
+
time_to_wg(item['default'])
|
59
|
+
set_label(wg_to_time.strftime(@timestamp_format))
|
60
|
+
run_events(item['id'],'form_item-AfterUpdate')
|
61
|
+
end
|
62
|
+
|
63
|
+
def text
|
64
|
+
wg_to_time.to_i.to_s
|
65
|
+
end
|
66
|
+
|
67
|
+
def wg_to_time
|
68
|
+
begin
|
69
|
+
@hw.update
|
70
|
+
@mw.update
|
71
|
+
@sw.update
|
72
|
+
Time.mktime(@calendar.date[0],@calendar.date[1],@calendar.date[2],@hw.value,@mw.value,@sw.value)
|
73
|
+
rescue => err
|
74
|
+
eerror(err)
|
75
|
+
Time.new
|
76
|
+
end
|
77
|
+
end
|
78
|
+
def time_to_wg(d=text)
|
79
|
+
t=Time.at(d.to_i)
|
80
|
+
@hw.set_value(t.hour)
|
81
|
+
@mw.set_value(t.min)
|
82
|
+
@sw.set_value(t.sec)
|
83
|
+
@calendar.set_year(t.year).set_month(t.month-1).set_day(t.day).mark_day(t.day)
|
84
|
+
end
|
85
|
+
|
86
|
+
|
87
|
+
def parentM;pc.parentM;end
|
88
|
+
def target;item['to_call'];end
|
89
|
+
def item;pc.item;end
|
90
|
+
def to_s;"TimeStampButton(#{item['description']})";end
|
91
|
+
|
92
|
+
end
|
93
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#this file is part of manqod
|
2
|
+
#manqod is distributed under the CDDL licence
|
3
|
+
#the author of manqod is Dobai-Pataky Balint(dpblnt@gmail.com)
|
4
|
+
|
5
|
+
class MyRendererToggle < Gtk::CheckButton
|
6
|
+
include ManqodCommon
|
7
|
+
def initialize(pc)
|
8
|
+
@pc=pc
|
9
|
+
super(pc.item['description'],false)
|
10
|
+
signal_connect('toggled'){
|
11
|
+
run_events(pc.item['id'],'form_item-Action')
|
12
|
+
}
|
13
|
+
end
|
14
|
+
attr_accessor :pc
|
15
|
+
|
16
|
+
def update(new_value=pc.item['default'])
|
17
|
+
run_events(pc.item['id'],'form_item-BeforeUpdate')
|
18
|
+
item['default']=new_value
|
19
|
+
pc.run_query
|
20
|
+
# set_inconsistent(pc.item['editable']!="true")
|
21
|
+
# set_sensitive(pc.item['editable']=="true")
|
22
|
+
set_active(pc.item['default']=="true")
|
23
|
+
run_events(pc.item['id'],'form_item-AfterUpdate')
|
24
|
+
end
|
25
|
+
def text
|
26
|
+
self.active?.to_s
|
27
|
+
end
|
28
|
+
def parentM
|
29
|
+
pc.parentM
|
30
|
+
end
|
31
|
+
def item
|
32
|
+
@pc.item
|
33
|
+
end
|
34
|
+
def method_missing(sym,*args)
|
35
|
+
text
|
36
|
+
end
|
37
|
+
def inspect
|
38
|
+
"ToggleButton(#{item['description']})"
|
39
|
+
end
|
40
|
+
def to_s
|
41
|
+
inspect
|
42
|
+
end
|
43
|
+
end
|