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,133 @@
|
|
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 MyRendererButton < Gtk::Button
|
6
|
+
include ManqodCommon
|
7
|
+
include Conf
|
8
|
+
include MyExec
|
9
|
+
def initialize(pc)
|
10
|
+
@pc=pc
|
11
|
+
super(item['description'])
|
12
|
+
set_relief(Gtk::ReliefStyle::NONE)
|
13
|
+
set_image_position(Gtk::PositionType::RIGHT)
|
14
|
+
set_use_underline(true)
|
15
|
+
signal_connect('clicked'){|me|
|
16
|
+
edebug("#{item['default']} clicked","gtk_button","debug")
|
17
|
+
run_events(item['id'],'form_item-Action')
|
18
|
+
unless target == "-1" || target == "0"
|
19
|
+
if modname=='form'
|
20
|
+
@form=Myform::MyFormHolder.new("dialog",self,@pc.target_runmode,target)
|
21
|
+
@form.set_parentM(parentM)
|
22
|
+
ret=@form.run(text.to_i)
|
23
|
+
update(ret) if ret and ret>0
|
24
|
+
notify_changes
|
25
|
+
else
|
26
|
+
mr=MainRouter.new(w=Gtk::Dialog.new)
|
27
|
+
w.vbox.
|
28
|
+
pack_start(Gtk::HBox.new.
|
29
|
+
pack_start(back_button=Gtk::Button.new(Gtk::Stock::GO_BACK),false,false).
|
30
|
+
pack_start(clear_button=Gtk::Button.new(Gtk::Stock::CLEAR),false,false),
|
31
|
+
false,false).
|
32
|
+
pack_start(mr)
|
33
|
+
back_button.signal_connect("clicked"){|me,ev|
|
34
|
+
update(mr.child.list.get_cursor_id.to_s)
|
35
|
+
w.destroy
|
36
|
+
notify_changes
|
37
|
+
}
|
38
|
+
clear_button.signal_connect("clicked"){|me,ev|
|
39
|
+
update("-1")
|
40
|
+
w.destroy
|
41
|
+
notify_changes
|
42
|
+
}
|
43
|
+
if sw=get_conf(target,0,"width") and sh=get_conf(target,0,"height")
|
44
|
+
w.resize(sw.to_i,sh.to_i)# if sw.to_i * sh.to_i >0
|
45
|
+
else
|
46
|
+
w.resize(600,400)
|
47
|
+
end
|
48
|
+
sx=get_conf(target,0,"x") || 50
|
49
|
+
sy=get_conf(target,0,"y") || 60
|
50
|
+
w.move(sx.to_i,sy.to_i)
|
51
|
+
|
52
|
+
w.maximize if get_conf(target,0,"maximized") == "true"
|
53
|
+
w.iconify if get_conf(target,0,"iconified") == "true"
|
54
|
+
w.fullscreen if get_conf(target,0,"fullscreen") == "true"
|
55
|
+
|
56
|
+
w.set_resizable(true).set_transient_for(@pc.caller.get_ancestor(Gtk::Window)).set_modal(true).show_all
|
57
|
+
w.signal_connect("configure-event"){|me,event|
|
58
|
+
if nick
|
59
|
+
set_conf(target,0,"width",event.width.to_s)
|
60
|
+
set_conf(target,0,"height",event.height.to_s)
|
61
|
+
set_conf(target,0,"x",event.x.to_s)
|
62
|
+
set_conf(target,0,"y",event.y.to_s)
|
63
|
+
end
|
64
|
+
false
|
65
|
+
}
|
66
|
+
w.signal_connect("window-state-event"){|me,event|
|
67
|
+
if nick
|
68
|
+
set_conf(target,0,"maximized",(event.new_window_state & Gdk::EventWindowState::MAXIMIZED == Gdk::EventWindowState::MAXIMIZED).to_s)
|
69
|
+
set_conf(target,0,"minimized",(event.new_window_state & Gdk::EventWindowState::ICONIFIED == Gdk::EventWindowState::ICONIFIED).to_s)
|
70
|
+
set_conf(target,0,"minimized",(event.new_window_state & Gdk::EventWindowState::FULLSCREEN == Gdk::EventWindowState::FULLSCREEN).to_s)
|
71
|
+
end
|
72
|
+
false
|
73
|
+
}
|
74
|
+
|
75
|
+
mr.update(self)
|
76
|
+
mr.child.list.set_cursor_id(text.to_i)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
}
|
80
|
+
end
|
81
|
+
attr_accessor :pc
|
82
|
+
|
83
|
+
def modname
|
84
|
+
@pc.target_module
|
85
|
+
end
|
86
|
+
def update(new_value=item['default'])
|
87
|
+
item['default']=new_value
|
88
|
+
run_events(item['id'],'form_item-BeforeUpdate')
|
89
|
+
pc.run_query
|
90
|
+
if @pc.type_def.size == 0
|
91
|
+
set_label(item['default'])
|
92
|
+
else
|
93
|
+
s=""
|
94
|
+
@pc.type_def.each_pair{|key,value|
|
95
|
+
s="#{s}\n" if s.size>0
|
96
|
+
s="#{s}#{@pc.query_result[key]}" if @pc.query_result.has_key?(key)
|
97
|
+
}
|
98
|
+
set_label(s)
|
99
|
+
set_image(Gtk::Image.new((text=="-1" || text=="0" ? Gtk::Stock::ADD : Gtk::Stock::EDIT ),Gtk::IconSize.from_name(get_conf(0,0,"button-size"))))
|
100
|
+
notify_changes
|
101
|
+
end
|
102
|
+
edebug("#{text} updated","gtk_button","info")
|
103
|
+
run_events(item['id'],'form_item-AfterUpdate')
|
104
|
+
end
|
105
|
+
|
106
|
+
def text
|
107
|
+
item['default'].to_s
|
108
|
+
end
|
109
|
+
|
110
|
+
def parentM
|
111
|
+
pc.parentM
|
112
|
+
end
|
113
|
+
|
114
|
+
def target
|
115
|
+
item['to_call']
|
116
|
+
end
|
117
|
+
def item
|
118
|
+
pc.item
|
119
|
+
end
|
120
|
+
def inspect
|
121
|
+
"Button(#{item['description']})"
|
122
|
+
end
|
123
|
+
def to_s
|
124
|
+
inspect
|
125
|
+
end
|
126
|
+
|
127
|
+
def notify_changes
|
128
|
+
edebug("'#{item['data']}' changed","form")
|
129
|
+
pc.changed
|
130
|
+
pc.notify_observers(self)
|
131
|
+
edebug("'#{item['data']}' emiting 'changed' to observers","form")
|
132
|
+
end
|
133
|
+
end
|
@@ -0,0 +1,101 @@
|
|
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 MyRendererCalendar < Gtk::Calendar
|
6
|
+
include ManqodCommon
|
7
|
+
def initialize(pc)
|
8
|
+
@pc=pc
|
9
|
+
super()
|
10
|
+
set_show_details(true) if respond_to?("set_show_details")
|
11
|
+
set_show_week_numbers(true)
|
12
|
+
show_day_names=true
|
13
|
+
signal_connect("next-year"){|me|
|
14
|
+
run_events(item['id'],'form_item-Action')
|
15
|
+
pc.changed
|
16
|
+
pc.notify_observers(self)
|
17
|
+
}
|
18
|
+
signal_connect("prev-year"){|me|
|
19
|
+
run_events(item['id'],'form_item-Action')
|
20
|
+
pc.changed
|
21
|
+
pc.notify_observers(self)
|
22
|
+
}
|
23
|
+
|
24
|
+
signal_connect("month-changed"){|me|
|
25
|
+
run_events(item['id'],'form_item-Action')
|
26
|
+
pc.changed
|
27
|
+
pc.notify_observers(self)
|
28
|
+
}
|
29
|
+
|
30
|
+
signal_connect("day-selected"){|me|
|
31
|
+
check_limits
|
32
|
+
run_events(item['id'],'form_item-Action')
|
33
|
+
pc.changed
|
34
|
+
pc.notify_observers(self)
|
35
|
+
}
|
36
|
+
end
|
37
|
+
attr_accessor :pc
|
38
|
+
|
39
|
+
def item
|
40
|
+
pc.item
|
41
|
+
end
|
42
|
+
|
43
|
+
def check_limits
|
44
|
+
@last_text=item["default"] if @last_text.nil?
|
45
|
+
if pc.get_min and pc.get_min > text
|
46
|
+
tell_exception("min:#{pc.get_min}")
|
47
|
+
set_text(@last_text)
|
48
|
+
return false
|
49
|
+
end
|
50
|
+
if pc.get_max and pc.get_max < text
|
51
|
+
tell_exception("max:#{pc.get_max}")
|
52
|
+
set_text(@last_text)
|
53
|
+
return false
|
54
|
+
end
|
55
|
+
@last_text=text
|
56
|
+
return true
|
57
|
+
end
|
58
|
+
|
59
|
+
def text
|
60
|
+
d=self.date
|
61
|
+
return lzero(d[0],4).to_s+"-"+lzero(d[1],2).to_s+"-"+lzero(d[2],2).to_s
|
62
|
+
end
|
63
|
+
|
64
|
+
def set_text(t)
|
65
|
+
if t != nil
|
66
|
+
tt=t.split(" ")
|
67
|
+
if tt[0] != nil
|
68
|
+
f=tt[0].split('-')
|
69
|
+
if f[0].nil? or f[0].to_i==0
|
70
|
+
f[0]=Time.now.year
|
71
|
+
f[1]=Time.now.month
|
72
|
+
f[2]=Time.now.day
|
73
|
+
end
|
74
|
+
|
75
|
+
set_year(f[0].to_i) if f[0]
|
76
|
+
set_month(f[1].to_i-1) if f[1]
|
77
|
+
if f[2]
|
78
|
+
set_day(f[2].to_i)
|
79
|
+
mark_day(f[2].to_i)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def update(new_value=item['default'])
|
86
|
+
item['default']=new_value
|
87
|
+
run_events(item['id'],'form_item-BeforeUpdate')
|
88
|
+
pc.run_query
|
89
|
+
set_text(item['default']) if item['default']
|
90
|
+
run_events(item['id'],'form_item-AfterUpdate')
|
91
|
+
end
|
92
|
+
|
93
|
+
def parentselected
|
94
|
+
pc.parentselected
|
95
|
+
end
|
96
|
+
|
97
|
+
def parentM
|
98
|
+
pc.parentM
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
@@ -0,0 +1,117 @@
|
|
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 MyRendererCalendarButton < Gtk::Button
|
6
|
+
include ManqodCommon
|
7
|
+
include Conf
|
8
|
+
include MyExec
|
9
|
+
def initialize(pc)
|
10
|
+
@pc=pc
|
11
|
+
super(item['description'])
|
12
|
+
@calendar_win=Gtk::Window.new(Gtk::Window::POPUP)
|
13
|
+
@calendar_win.set_modal(true).set_has_frame(false).add(@calendar=Gtk::Calendar.new).set_transient_for(@pc.caller.get_ancestor(Gtk::Window))
|
14
|
+
|
15
|
+
@calendar.set_show_details(true) if @calendar.respond_to?("set_show_details")
|
16
|
+
@calendar.show_day_names=true
|
17
|
+
@calendar.signal_connect("month-changed"){|me|
|
18
|
+
@month_changed=true
|
19
|
+
}
|
20
|
+
|
21
|
+
@calendar.signal_connect("day-selected"){|me|
|
22
|
+
run_events(item['id'],'form_item-Action')
|
23
|
+
set_label(calendar_text)
|
24
|
+
if @month_changed
|
25
|
+
@month_changed=false
|
26
|
+
else
|
27
|
+
@calendar_win.hide
|
28
|
+
end
|
29
|
+
pc.changed
|
30
|
+
pc.notify_observers(self)
|
31
|
+
}
|
32
|
+
@calendar.signal_connect("key-release-event"){|me,ev| @calendar_win.hide if ev.keyval == Gdk::Keyval::GDK_KEY_Escape}
|
33
|
+
|
34
|
+
signal_connect('clicked'){|me|
|
35
|
+
edebug("#{item['default']} clicked","gtk_button")
|
36
|
+
x,y=@pc.caller.get_ancestor(Gtk::Window).position
|
37
|
+
xd,yd=translate_coordinates(@pc.caller.get_ancestor(Gtk::Window),x,y+allocation.height+allocation.y)
|
38
|
+
@calendar_win.move(xd,yd)
|
39
|
+
@calendar_win.show_all
|
40
|
+
}
|
41
|
+
end
|
42
|
+
attr_accessor :pc
|
43
|
+
|
44
|
+
def update(new_value=item['default'])
|
45
|
+
item['default']=new_value
|
46
|
+
run_events(item['id'],'form_item-BeforeUpdate')
|
47
|
+
pc.run_query
|
48
|
+
set_text(item['default'])
|
49
|
+
einfo("updated","gtk_button")
|
50
|
+
run_events(item['id'],'form_item-AfterUpdate')
|
51
|
+
end
|
52
|
+
|
53
|
+
def text
|
54
|
+
label
|
55
|
+
end
|
56
|
+
|
57
|
+
def calendar_text
|
58
|
+
d=@calendar.date
|
59
|
+
return lzero(d[0],4).to_s+"-"+lzero(d[1],2).to_s+"-"+lzero(d[2],2).to_s
|
60
|
+
end
|
61
|
+
|
62
|
+
def set_text(t)
|
63
|
+
if t != nil
|
64
|
+
tt=t.split(" ")
|
65
|
+
if tt[0] != nil
|
66
|
+
f=tt[0].split('-')
|
67
|
+
if f[0].nil? or f[0].to_i==0
|
68
|
+
f[0]=Time.now.year
|
69
|
+
f[1]=Time.now.month
|
70
|
+
f[2]=Time.now.day
|
71
|
+
end
|
72
|
+
|
73
|
+
@calendar.set_year(f[0].to_i) if f[0]
|
74
|
+
@calendar.set_month(f[1].to_i-1) if f[1]
|
75
|
+
if f[2]
|
76
|
+
@calendar.set_day(f[2].to_i)
|
77
|
+
@calendar.mark_day(f[2].to_i)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
set_label(calendar_text)
|
82
|
+
end
|
83
|
+
|
84
|
+
def check_limits
|
85
|
+
@last_text=item["default"] if @last_text.nil?
|
86
|
+
if pc.get_min and pc.get_min > text
|
87
|
+
warn("min:#{pc.get_min}")
|
88
|
+
set_text(@last_text)
|
89
|
+
return false
|
90
|
+
end
|
91
|
+
if pc.get_max and pc.get_max < text
|
92
|
+
warn("max:#{pc.get_max}")
|
93
|
+
set_text(@last_text)
|
94
|
+
return false
|
95
|
+
end
|
96
|
+
@last_text=text
|
97
|
+
return true
|
98
|
+
end
|
99
|
+
|
100
|
+
def parentM
|
101
|
+
pc.parentM
|
102
|
+
end
|
103
|
+
|
104
|
+
def target
|
105
|
+
item['to_call']
|
106
|
+
end
|
107
|
+
def item
|
108
|
+
pc.item
|
109
|
+
end
|
110
|
+
def inspect
|
111
|
+
"CalendarButton(#{item['description']})"
|
112
|
+
end
|
113
|
+
def to_s
|
114
|
+
inspect
|
115
|
+
end
|
116
|
+
|
117
|
+
end
|
@@ -0,0 +1,54 @@
|
|
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 MyRendererColorButton < Gtk::ColorButton
|
6
|
+
include ManqodCommon
|
7
|
+
include Conf
|
8
|
+
def initialize(pc)
|
9
|
+
@pc=pc
|
10
|
+
super()
|
11
|
+
set_use_alpha(false)
|
12
|
+
signal_connect('clicked'){|me|
|
13
|
+
edebug("#{item['default']} clicked","gtk_button","debug")
|
14
|
+
run_events(item['id'],'form_item-Action')
|
15
|
+
}
|
16
|
+
end
|
17
|
+
attr_accessor :pc
|
18
|
+
|
19
|
+
def update(new_value=item['default'])
|
20
|
+
item['default']=new_value
|
21
|
+
run_events(item['id'],'form_item-BeforeUpdate')
|
22
|
+
begin
|
23
|
+
set_color(Gdk::Color.parse("##{item['default']}"))
|
24
|
+
rescue => err
|
25
|
+
ewarn("#{item['default'].inspect} not a valid color")
|
26
|
+
end
|
27
|
+
edebug(item['default'].to_s+" updated","gtk_button","info")
|
28
|
+
run_events(item['id'],'form_item-AfterUpdate')
|
29
|
+
end
|
30
|
+
|
31
|
+
def text
|
32
|
+
t=""
|
33
|
+
color.to_a.each{|i| t="#{t}#{sprintf("%02x",i/255)}"}
|
34
|
+
t
|
35
|
+
end
|
36
|
+
|
37
|
+
def parentM
|
38
|
+
pc.parentM
|
39
|
+
end
|
40
|
+
|
41
|
+
def target
|
42
|
+
nil
|
43
|
+
end
|
44
|
+
def item
|
45
|
+
pc.item
|
46
|
+
end
|
47
|
+
def inspect
|
48
|
+
"ColorButton(#{item['description']})"
|
49
|
+
end
|
50
|
+
def to_s
|
51
|
+
inspect
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
@@ -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 MyRendererCombo < Gtk::ComboBox
|
6
|
+
include ManqodCommon
|
7
|
+
include GtkAttributes
|
8
|
+
|
9
|
+
def initialize(pc)
|
10
|
+
@pc=pc
|
11
|
+
super(false)
|
12
|
+
item['wantnew']=true
|
13
|
+
set_model(MyRendererModel.new(self))
|
14
|
+
signal_connect('changed'){|me|
|
15
|
+
edebug(inspect+" '#{item['data']}' changed to item #{me.active.inspect}","form-combo","debug")
|
16
|
+
pc.changed
|
17
|
+
pc.notify_observers(self)
|
18
|
+
edebug("'#{item['data']}' emiting 'changed' to observers","form-combo","debug")
|
19
|
+
run_events(item['id'],'form_item-Action')
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
attr_accessor :pc
|
24
|
+
|
25
|
+
def item
|
26
|
+
pc.item
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
def update(new_value=item['default'])
|
31
|
+
item['default']=new_value
|
32
|
+
edebug("update called for #{inspect}, setting value #{new_value}","form-combo","debug")
|
33
|
+
run_events(item['id'],'form_item-BeforeUpdate')
|
34
|
+
model.update
|
35
|
+
select_value(item['default'])
|
36
|
+
run_events(item['id'],'form_item-AfterUpdate')
|
37
|
+
end
|
38
|
+
|
39
|
+
def get_value_from_text(selected_combo_text)
|
40
|
+
selected_combo_value=nil
|
41
|
+
model.mymodel.each {|model, path, iter| selected_combo_value=iter[0] if iter[1]==selected_combo_text }
|
42
|
+
return selected_combo_value
|
43
|
+
end
|
44
|
+
|
45
|
+
def get_text_from_value(selected_combo_value)
|
46
|
+
selected_combo_text=nil
|
47
|
+
model.mymodel.each {|model, path, iter| selected_combo_text=iter[0] if iter[1]==selected_combo_value }
|
48
|
+
return selected_combo_text
|
49
|
+
end
|
50
|
+
|
51
|
+
def text
|
52
|
+
if active_iter
|
53
|
+
self.active_iter[0]
|
54
|
+
else
|
55
|
+
""
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def select_value(selected_value=item['default'])
|
60
|
+
item['default']=selected_value.to_s
|
61
|
+
found_and_selected=false
|
62
|
+
model.mymodel.each {|m, path, iter|
|
63
|
+
if iter[0]==item['default']
|
64
|
+
set_active_iter(model.convert_child_iter_to_iter(iter))
|
65
|
+
found_and_selected=true
|
66
|
+
end
|
67
|
+
}
|
68
|
+
found_and_selected
|
69
|
+
end
|
70
|
+
|
71
|
+
def parentselected
|
72
|
+
pc.parentselected
|
73
|
+
end
|
74
|
+
def parentM
|
75
|
+
pc.parentM
|
76
|
+
end
|
77
|
+
def to_s
|
78
|
+
"Combo(#{item['description']})"
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
@@ -0,0 +1,103 @@
|
|
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 MyRendererComboWithNew < Gtk::HBox
|
6
|
+
include ManqodCommon
|
7
|
+
include Myform
|
8
|
+
include GtkAttributes
|
9
|
+
class ComboButton < Gtk::Button
|
10
|
+
include ManqodCommon
|
11
|
+
include Observable
|
12
|
+
def initialize
|
13
|
+
super()
|
14
|
+
set_label("")
|
15
|
+
set_image(Gtk::Image.new(Gtk::Stock::INDEX,Gtk::IconSize::MENU))
|
16
|
+
set_relief(Gtk::ReliefStyle::NONE)
|
17
|
+
end
|
18
|
+
|
19
|
+
def update(notifier)
|
20
|
+
set_image(Gtk::Image.new(
|
21
|
+
case notifier.parentM.runmode
|
22
|
+
when "info" then Gtk::Stock::INFO
|
23
|
+
when "wysiwygf" then Gtk::Stock::PROPERTIES
|
24
|
+
else (notifier.text=="-1" || notifier.text=="" ? Gtk::Stock::ADD : Gtk::Stock::EDIT )
|
25
|
+
end ,Gtk::IconSize::MENU))
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def initialize(pc)
|
30
|
+
@pc=pc
|
31
|
+
item['wantnew']=true
|
32
|
+
super()
|
33
|
+
@combo=MyRendererCombo.new(pc)
|
34
|
+
@button=ComboButton.new
|
35
|
+
pc.add_observer(button)
|
36
|
+
pack_start(combo,true,true,0)
|
37
|
+
button.signal_connect('clicked'){|c|
|
38
|
+
@form=Myform::MyFormHolder.new("dialog",self,@pc.target_runmode,target)
|
39
|
+
@form.set_parentM(parentM)
|
40
|
+
ret=form.run(text.to_i)
|
41
|
+
combo.update(ret) if ret and ret>0
|
42
|
+
}
|
43
|
+
pack_end(button,false,false,0)
|
44
|
+
end
|
45
|
+
attr_accessor :combo
|
46
|
+
attr_accessor :button
|
47
|
+
attr_accessor :pc
|
48
|
+
attr_accessor :form
|
49
|
+
|
50
|
+
def update(to_select=item['default'])
|
51
|
+
combo.update(to_select)
|
52
|
+
button.update(combo)
|
53
|
+
end
|
54
|
+
|
55
|
+
def item
|
56
|
+
pc.item
|
57
|
+
end
|
58
|
+
|
59
|
+
def text
|
60
|
+
combo.text
|
61
|
+
end
|
62
|
+
|
63
|
+
def select_value(selected_value)
|
64
|
+
combo.select_value(selected_value)
|
65
|
+
end
|
66
|
+
|
67
|
+
def get_text_from_value(selected_combo_value)
|
68
|
+
combo.get_text_from_value(selected_combo_value)
|
69
|
+
end
|
70
|
+
|
71
|
+
def get_value_from_text(selected_combo_text)
|
72
|
+
combo.get_value_from_text(selected_combo_text)
|
73
|
+
end
|
74
|
+
|
75
|
+
def target
|
76
|
+
pc.target
|
77
|
+
end
|
78
|
+
|
79
|
+
def parentM
|
80
|
+
pc.parentM
|
81
|
+
end
|
82
|
+
|
83
|
+
def query
|
84
|
+
parentM.query
|
85
|
+
end
|
86
|
+
|
87
|
+
def set_sensitive(sens)
|
88
|
+
@combo.set_sensitive(sens)
|
89
|
+
self
|
90
|
+
end
|
91
|
+
|
92
|
+
def model
|
93
|
+
combo.model
|
94
|
+
end
|
95
|
+
|
96
|
+
def qrow
|
97
|
+
parentM.qrow
|
98
|
+
end
|
99
|
+
def inspect
|
100
|
+
"Combo(#{item["description"]})"
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|