manqod 1.1505.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. data/bin/manqod +309 -0
  2. data/doc/HOWTOS +11 -0
  3. data/doc/INSTALL +6 -0
  4. data/doc/LICENCE +450 -0
  5. data/doc/README +33 -0
  6. data/doc/benchmarkings/ListLoader.rb +177 -0
  7. data/doc/manqod.png +0 -0
  8. data/doc/manqod.svg +99 -0
  9. data/doc/server.conf.example +24 -0
  10. data/lib/About.rb +93 -0
  11. data/lib/BarMenu/BarMenuItem.rb +46 -0
  12. data/lib/BarMenu.rb +76 -0
  13. data/lib/ButtonMenu/ButtonMenuItem.rb +82 -0
  14. data/lib/ButtonMenu/EndSeparator.rb +14 -0
  15. data/lib/ButtonMenu/StartSeparator.rb +14 -0
  16. data/lib/ButtonMenu.rb +154 -0
  17. data/lib/Common/Conf.rb +119 -0
  18. data/lib/Common/Eprint.rb +180 -0
  19. data/lib/Common/EventCache.rb +41 -0
  20. data/lib/Common/Fixnum.rb +18 -0
  21. data/lib/Common/Images.rb +41 -0
  22. data/lib/Common/ManqodDB.rb +40 -0
  23. data/lib/Common/MyExec.rb +77 -0
  24. data/lib/Common/MyImage.rb +47 -0
  25. data/lib/Common/Nick.rb +25 -0
  26. data/lib/Common/String.rb +15 -0
  27. data/lib/FormHolder/Form/InputHolder/Button.rb +133 -0
  28. data/lib/FormHolder/Form/InputHolder/Calendar.rb +101 -0
  29. data/lib/FormHolder/Form/InputHolder/CalendarButton.rb +117 -0
  30. data/lib/FormHolder/Form/InputHolder/ColorButton.rb +54 -0
  31. data/lib/FormHolder/Form/InputHolder/Combo.rb +82 -0
  32. data/lib/FormHolder/Form/InputHolder/ComboWithNew.rb +103 -0
  33. data/lib/FormHolder/Form/InputHolder/Common/Model.rb +337 -0
  34. data/lib/FormHolder/Form/InputHolder/ConstCombo.rb +18 -0
  35. data/lib/FormHolder/Form/InputHolder/ConstText.rb +17 -0
  36. data/lib/FormHolder/Form/InputHolder/Duration.rb +73 -0
  37. data/lib/FormHolder/Form/InputHolder/EditableList.rb +57 -0
  38. data/lib/FormHolder/Form/InputHolder/FieldCombo.rb +40 -0
  39. data/lib/FormHolder/Form/InputHolder/FieldList.rb +40 -0
  40. data/lib/FormHolder/Form/InputHolder/FileChooser.rb +131 -0
  41. data/lib/FormHolder/Form/InputHolder/FontButton.rb +37 -0
  42. data/lib/FormHolder/Form/InputHolder/FormImage.rb +74 -0
  43. data/lib/FormHolder/Form/InputHolder/HScale.rb +44 -0
  44. data/lib/FormHolder/Form/InputHolder/Hidden.rb +41 -0
  45. data/lib/FormHolder/Form/InputHolder/Label.rb +40 -0
  46. data/lib/FormHolder/Form/InputHolder/List.rb +176 -0
  47. data/lib/FormHolder/Form/InputHolder/MultiLine.rb +63 -0
  48. data/lib/FormHolder/Form/InputHolder/Password.rb +41 -0
  49. data/lib/FormHolder/Form/InputHolder/QBuilder/QObject.rb +269 -0
  50. data/lib/FormHolder/Form/InputHolder/QBuilder.rb +333 -0
  51. data/lib/FormHolder/Form/InputHolder/RadioGroup.rb +82 -0
  52. data/lib/FormHolder/Form/InputHolder/SourceView.rb +100 -0
  53. data/lib/FormHolder/Form/InputHolder/Spin.rb +49 -0
  54. data/lib/FormHolder/Form/InputHolder/Text.rb +55 -0
  55. data/lib/FormHolder/Form/InputHolder/TimeStamp.rb +82 -0
  56. data/lib/FormHolder/Form/InputHolder/TimeStampButton.rb +93 -0
  57. data/lib/FormHolder/Form/InputHolder/Toggle.rb +43 -0
  58. data/lib/FormHolder/Form/InputHolder.rb +458 -0
  59. data/lib/FormHolder/Form.rb +529 -0
  60. data/lib/FormHolder.rb +203 -0
  61. data/lib/Gtk.rb +101 -0
  62. data/lib/GtkAttributes.rb +76 -0
  63. data/lib/Kernel.rb +48 -0
  64. data/lib/ListHolder/EditableList/CellRenderers/Combo.rb +91 -0
  65. data/lib/ListHolder/EditableList/CellRenderers/ComboText.rb +22 -0
  66. data/lib/ListHolder/EditableList/CellRenderers/ConstCombo.rb +12 -0
  67. data/lib/ListHolder/EditableList/CellRenderers/ConstText.rb +23 -0
  68. data/lib/ListHolder/EditableList/CellRenderers/Pixbuf.rb +18 -0
  69. data/lib/ListHolder/EditableList/CellRenderers/Progress.rb +36 -0
  70. data/lib/ListHolder/EditableList/CellRenderers/Text.rb +51 -0
  71. data/lib/ListHolder/EditableList/CellRenderers/Toggle.rb +35 -0
  72. data/lib/ListHolder/EditableList/Column.rb +223 -0
  73. data/lib/ListHolder/EditableList/DrbListModel.rb +809 -0
  74. data/lib/ListHolder/EditableList/ListPrintOperation/ColumnsHeaderLayout.rb +56 -0
  75. data/lib/ListHolder/EditableList/ListPrintOperation/CustomPageSetup.rb +100 -0
  76. data/lib/ListHolder/EditableList/ListPrintOperation/FooterLayout.rb +26 -0
  77. data/lib/ListHolder/EditableList/ListPrintOperation/HeaderLayout.rb +35 -0
  78. data/lib/ListHolder/EditableList/ListPrintOperation/IterLayout.rb +89 -0
  79. data/lib/ListHolder/EditableList/ListPrintOperation.rb +365 -0
  80. data/lib/ListHolder/EditableList.rb +309 -0
  81. data/lib/ListHolder/GanttHolder/Gantt/Rectangle.rb +290 -0
  82. data/lib/ListHolder/GanttHolder/Gantt.rb +317 -0
  83. data/lib/ListHolder/GanttHolder/GanttFooter.rb +27 -0
  84. data/lib/ListHolder/GanttHolder/GanttScaler.rb +60 -0
  85. data/lib/ListHolder/GanttHolder.rb +31 -0
  86. data/lib/ListHolder/HistoryWindow.rb +63 -0
  87. data/lib/ListHolder/ListButtonHolder/ArchiveButton.rb +37 -0
  88. data/lib/ListHolder/ListButtonHolder/ButtonGroup.rb +32 -0
  89. data/lib/ListHolder/ListButtonHolder/FilterButton.rb +28 -0
  90. data/lib/ListHolder/ListButtonHolder/ListButton.rb +305 -0
  91. data/lib/ListHolder/ListButtonHolder/OrderingButton.rb +26 -0
  92. data/lib/ListHolder/ListButtonHolder/SumPanelButton.rb +23 -0
  93. data/lib/ListHolder/ListButtonHolder.rb +94 -0
  94. data/lib/ListHolder/ListPanel/ListFilter/FRenderer/Combo.rb +94 -0
  95. data/lib/ListHolder/ListPanel/ListFilter/FRenderer/ConstCombo.rb +11 -0
  96. data/lib/ListHolder/ListPanel/ListFilter/FRenderer/Text.rb +26 -0
  97. data/lib/ListHolder/ListPanel/ListFilter/FRenderer/Toggle.rb +41 -0
  98. data/lib/ListHolder/ListPanel/ListFilter/FRenderer.rb +58 -0
  99. data/lib/ListHolder/ListPanel/ListFilter.rb +42 -0
  100. data/lib/ListHolder/ListPanel/ListSum/Text.rb +32 -0
  101. data/lib/ListHolder/ListPanel/ListSum.rb +72 -0
  102. data/lib/ListHolder/ListPanel.rb +60 -0
  103. data/lib/ListHolder.rb +241 -0
  104. data/lib/LoginWindow.rb +77 -0
  105. data/lib/MainRouter.rb +64 -0
  106. data/lib/ManqodCommon.rb +295 -0
  107. data/lib/ManqodHelp/FormatEditor/FormatJustificationWidget.rb +76 -0
  108. data/lib/ManqodHelp/FormatsEditor.rb +139 -0
  109. data/lib/ManqodHelp/HelpBrowser/FormatTagTable/FormatTag.rb +84 -0
  110. data/lib/ManqodHelp/HelpBrowser/FormatTagTable.rb +39 -0
  111. data/lib/ManqodHelp/HelpBrowser.rb +135 -0
  112. data/lib/ManqodHelp/HelpIndex.rb +62 -0
  113. data/lib/ManqodHelp/HelpToolbar.rb +16 -0
  114. data/lib/ManqodHelp.rb +120 -0
  115. data/lib/ManqodRPC.rb +37 -0
  116. data/lib/Memcache.rb +82 -0
  117. data/lib/MyConfig.rb +93 -0
  118. data/lib/Print/PrintItem/TextLayout.rb +47 -0
  119. data/lib/Print/PrintItem.rb +240 -0
  120. data/lib/Print.rb +199 -0
  121. data/lib/PrintEditor/ItemInfo/ItemImage.rb +30 -0
  122. data/lib/PrintEditor/ItemInfo/ItemList.rb +44 -0
  123. data/lib/PrintEditor/ItemInfo/ItemTextAlignment.rb +27 -0
  124. data/lib/PrintEditor/ItemInfo.rb +129 -0
  125. data/lib/PrintEditor/PageLayout.rb +91 -0
  126. data/lib/PrintEditor/PrintEditorItem.rb +310 -0
  127. data/lib/PrintEditor.rb +195 -0
  128. data/lib/RelationBuilder/RTable/RField.rb +91 -0
  129. data/lib/RelationBuilder/RTable.rb +293 -0
  130. data/lib/RelationBuilder/Relation/RelationHandle.rb +70 -0
  131. data/lib/RelationBuilder/Relation.rb +161 -0
  132. data/lib/RelationBuilder/RunQuery.rb +55 -0
  133. data/lib/RelationBuilder/SearchWindow.rb +72 -0
  134. data/lib/RelationBuilder.rb +468 -0
  135. data/lib/SB/ListProgress.rb +150 -0
  136. data/lib/SB/Messaging.rb +77 -0
  137. data/lib/SB.rb +29 -0
  138. data/lib/mynotebook.rb +131 -0
  139. data/lib/mytouchwindow.rb +162 -0
  140. data/lib/mywindow.rb +134 -0
  141. data/lib/wysiwyg-print-label.rb +57 -0
  142. 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