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
data/lib/SB.rb
ADDED
@@ -0,0 +1,29 @@
|
|
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 SB <Gtk::Statusbar
|
6
|
+
include Singleton
|
7
|
+
include Eprint
|
8
|
+
def initialize
|
9
|
+
super
|
10
|
+
set_homogeneous(false)
|
11
|
+
pack_start(@messaging=Messaging.instance,false,false)
|
12
|
+
pack_start(Gtk::Label.new,true,true)
|
13
|
+
pack_start(@progress=MultiProgress.new,false,false)
|
14
|
+
end
|
15
|
+
attr_reader :progress, :parent_window, :messaging
|
16
|
+
|
17
|
+
def set_parent_window(parent_window)
|
18
|
+
@parent_window=parent_window
|
19
|
+
end
|
20
|
+
|
21
|
+
def show
|
22
|
+
super unless visible?
|
23
|
+
end
|
24
|
+
|
25
|
+
def to_s
|
26
|
+
"SB"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
data/lib/mynotebook.rb
ADDED
@@ -0,0 +1,131 @@
|
|
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 MyNotebook < Gtk::Notebook
|
6
|
+
include Observable
|
7
|
+
include Conf
|
8
|
+
include ManqodCommon
|
9
|
+
def initialize(parentM)
|
10
|
+
@parentM=parentM
|
11
|
+
@list_id=nil
|
12
|
+
@mypages=Array.new
|
13
|
+
@list_count=0
|
14
|
+
super()
|
15
|
+
set_enable_popup(false)
|
16
|
+
set_scrollable(true)
|
17
|
+
# set_show_border(false)
|
18
|
+
# set_tab_border(0)
|
19
|
+
parentM.list.add_observer(self)
|
20
|
+
end
|
21
|
+
attr_accessor :notifier, :parentM, :list_id
|
22
|
+
attr_reader :list_count
|
23
|
+
|
24
|
+
def update(notifier)
|
25
|
+
set_conf(notifier.list_id,0,"page",self.page) if self.page>-1
|
26
|
+
=begin
|
27
|
+
# set_conf(list_id,0,"position",@parentM.widget.position) if @parentM.widget.position > 0
|
28
|
+
if (position=get_conf(notifier.list_id,0,"position")||0) !=0
|
29
|
+
ecode("#{position}=>#{parentM.widget.position}")
|
30
|
+
parentM.widget.set_position(position.to_i)
|
31
|
+
parentM.widget.set_position_set(true)
|
32
|
+
end
|
33
|
+
=end
|
34
|
+
if @list_id != notifier.list_id
|
35
|
+
wipe
|
36
|
+
@mypages=Array.new
|
37
|
+
@list_count=0
|
38
|
+
case (notifier.class.name)
|
39
|
+
when 'MyEditableList'
|
40
|
+
parentid=notifier.get_id
|
41
|
+
edebug("notifier changed: #{notifier}, repacking","sub-list","debug")
|
42
|
+
else
|
43
|
+
edebug("unknown routing: "+notifier.class.name,"sub-list","warning")
|
44
|
+
end
|
45
|
+
if parentid
|
46
|
+
notifier.list_model.drbmodel.childs.each{|moditem|
|
47
|
+
case moditem['modname']
|
48
|
+
when 'listing'
|
49
|
+
submoditem_holder=Mylist::MyListHolder.new(self)
|
50
|
+
submoditem_holder.set_parentM(notifier)
|
51
|
+
submoditem=submoditem_holder.list
|
52
|
+
submoditem.set_id(moditem['id'])
|
53
|
+
submoditem_holder.update(notifier)
|
54
|
+
@list_count+=1
|
55
|
+
when 'form'
|
56
|
+
submoditem_holder=Myform::MyFormHolder.new("embedded",self,"modify",moditem['id']).holder
|
57
|
+
submoditem_holder.holder.set_parentM(notifier)
|
58
|
+
submoditem=submoditem_holder.form
|
59
|
+
# submoditem.title=moditem['display']
|
60
|
+
# submoditem.set_id(moditem['id'])
|
61
|
+
submoditem.update(notifier,parentid)
|
62
|
+
end
|
63
|
+
@mypages.push(submoditem_holder)
|
64
|
+
submoditem.is_embedded=submoditem.embedd?
|
65
|
+
if submoditem.is_embedded
|
66
|
+
insert_page(submoditem.moditem["oid"].to_i,submoditem_holder,Gtk::Label.new(submoditem.title))
|
67
|
+
end
|
68
|
+
}
|
69
|
+
end
|
70
|
+
show_all if n_pages > 0
|
71
|
+
set_page(get_conf(notifier.list_id,0,"page").to_i) if get_conf(notifier.list_id,0,"page")
|
72
|
+
@list_id=notifier.list_id
|
73
|
+
else
|
74
|
+
edebug("notifier: #{notifier}, calling update in childs","sub-list","info")
|
75
|
+
@mypages.each{|submoditem_holder|
|
76
|
+
case submoditem_holder.class.name
|
77
|
+
when "Mylist::MyListHolder" then
|
78
|
+
submoditem=submoditem_holder.list
|
79
|
+
submoditem.update(notifier)
|
80
|
+
when "Myform::MyFormHolder::EmbeddedFormHolder" then
|
81
|
+
submoditem=submoditem_holder.form
|
82
|
+
submoditem_holder.update(notifier,notifier.get_cursor_id)
|
83
|
+
else edebug("unknown subitem: "+submoditem_holder.class.name,"sub-list","warning")
|
84
|
+
end
|
85
|
+
if submoditem
|
86
|
+
if submoditem.embedd? != submoditem.is_embedded
|
87
|
+
if submoditem.embedd?
|
88
|
+
insert_page(submoditem.moditem["oid"].to_i,submoditem_holder,Gtk::Label.new(submoditem.title))
|
89
|
+
else
|
90
|
+
remove_page(page_num(submoditem_holder))
|
91
|
+
end
|
92
|
+
submoditem.is_embedded=submoditem.embedd?
|
93
|
+
end
|
94
|
+
end
|
95
|
+
}
|
96
|
+
show_all
|
97
|
+
end
|
98
|
+
end#update
|
99
|
+
|
100
|
+
def moditem_by_id(mid)
|
101
|
+
found_item=nil
|
102
|
+
each{|submoditem|
|
103
|
+
case submoditem.class.name
|
104
|
+
when "Mylist::MyListHolder" then found_item=submoditem.list if submoditem.list.get_id.to_i == mid.to_i
|
105
|
+
when "MyFormHolder" then found_item=submoditem.form if submoditem.form.get_id.to_i == mid.to_i
|
106
|
+
else edebug("unknown submoditem: #{submoditem.class.name}","notebook","warning")
|
107
|
+
end
|
108
|
+
}
|
109
|
+
found_item
|
110
|
+
end
|
111
|
+
|
112
|
+
#yield child ListHolders
|
113
|
+
def lists
|
114
|
+
each{|submoditem|
|
115
|
+
yield submoditem if submoditem.class.name == "Mylist::MyListHolder"
|
116
|
+
}
|
117
|
+
end
|
118
|
+
|
119
|
+
def wipe
|
120
|
+
@mypages.each{|sublist| sublist.destroy}
|
121
|
+
while n_pages>0 do remove_page(-1) end
|
122
|
+
end
|
123
|
+
|
124
|
+
def my
|
125
|
+
@@my
|
126
|
+
end
|
127
|
+
def to_s
|
128
|
+
"Notebook of #{@parentM}"
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
@@ -0,0 +1,162 @@
|
|
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
|
+
require('mymysql')
|
6
|
+
require('gtk2')
|
7
|
+
require('observer')
|
8
|
+
require('myform')
|
9
|
+
|
10
|
+
|
11
|
+
class MyTouchWindow < Gtk::Window
|
12
|
+
class TouchButton < Gtk::Button
|
13
|
+
def initialize(label,left,right,top,bottom,parent)
|
14
|
+
super(label)
|
15
|
+
parent.attach(self,left,right,top,bottom,Gtk::FILL|Gtk::EXPAND,Gtk::FILL|Gtk::EXPAND,1,1)
|
16
|
+
set_name("TouchButton")
|
17
|
+
set_focus_on_click(false).set_can_focus(false)
|
18
|
+
signal_connect('clicked'){|me|
|
19
|
+
focused=me.get_ancestor(MyTouchWindow).focus
|
20
|
+
if focused.class.name=="MyRendererText"
|
21
|
+
case label
|
22
|
+
when "<-"
|
23
|
+
focused.text=focused.text.chop
|
24
|
+
else
|
25
|
+
focused.text=focused.text+label
|
26
|
+
end
|
27
|
+
end
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
def initialize
|
32
|
+
super()
|
33
|
+
fullscreen
|
34
|
+
# set_icon('e.png')
|
35
|
+
# set_window_position(Gtk::Window::POS_CENTER_ALWAYS)
|
36
|
+
self.title='manqod Touch'
|
37
|
+
|
38
|
+
agg=Gtk::AccelGroup.new
|
39
|
+
agg.connect(Gdk::Keyval.to_upper(81),nil,Gtk::ACCEL_VISIBLE){
|
40
|
+
Gtk.main_quit
|
41
|
+
}
|
42
|
+
add_accel_group(agg)
|
43
|
+
|
44
|
+
rc="
|
45
|
+
style 'keypadbutton'
|
46
|
+
{
|
47
|
+
bg[NORMAL]='#e09028'
|
48
|
+
bg[PRELIGHT]='#eed60b'
|
49
|
+
bg[ACTIVE]='#c1ee0b'
|
50
|
+
xthickness=10
|
51
|
+
ythickness=10
|
52
|
+
font='Helvetica'
|
53
|
+
}
|
54
|
+
|
55
|
+
style 'button'
|
56
|
+
{
|
57
|
+
bg[NORMAL]='#0c6db1'
|
58
|
+
bg[PRELIGHT]='#0cb1ab'
|
59
|
+
bg[ACTIVE]='#0b41db'
|
60
|
+
xthickness=10
|
61
|
+
ythickness=10
|
62
|
+
}
|
63
|
+
|
64
|
+
style 'all'
|
65
|
+
{
|
66
|
+
bg[NORMAL] = '#fff3a4'
|
67
|
+
bg[PRELIGHT] = '#ebff62'
|
68
|
+
bg[ACTIVE] = '#dcfb08'
|
69
|
+
xthickness = 10
|
70
|
+
ythickness = 10
|
71
|
+
GtkRange::stepper-size = 100
|
72
|
+
GtkRange::slider-width = 100
|
73
|
+
font_name = 'Serif 30'
|
74
|
+
}
|
75
|
+
|
76
|
+
widget '*' style 'all'
|
77
|
+
widget '*Button*' style 'button'
|
78
|
+
widget '*TouchButton*' style 'keypadbutton'
|
79
|
+
"
|
80
|
+
Gtk::RC.parse_string(rc)
|
81
|
+
|
82
|
+
|
83
|
+
signal_connect("destroy") {|me|
|
84
|
+
edebug("normal shutdown\n","touch","normal")
|
85
|
+
Gtk.main_quit
|
86
|
+
}
|
87
|
+
|
88
|
+
signal_connect('key-press-event') {|me,key|
|
89
|
+
edebug("key: "+key.to_s,"touch","info")
|
90
|
+
}
|
91
|
+
|
92
|
+
|
93
|
+
@holder=Gtk::Table.new(1,2,false)
|
94
|
+
add(Gtk::Frame.new.add(@holder))
|
95
|
+
@touchcontrol=Gtk::Table.new(5,3,true)
|
96
|
+
@touchcontrol.set_column_spacings(10).set_row_spacings(10)
|
97
|
+
|
98
|
+
@b1=TouchButton.new('1',0,1,0,1,@touchcontrol)#.set_size_request(100, 100)
|
99
|
+
@b2=TouchButton.new('2',1,2,0,1,@touchcontrol)
|
100
|
+
@b3=TouchButton.new('3',2,3,0,1,@touchcontrol)
|
101
|
+
|
102
|
+
@b4=TouchButton.new('4',0,1,1,2,@touchcontrol)
|
103
|
+
@b5=TouchButton.new('5',1,2,1,2,@touchcontrol)
|
104
|
+
@b6=TouchButton.new('6',2,3,1,2,@touchcontrol)
|
105
|
+
|
106
|
+
@b7=TouchButton.new('7',0,1,2,3,@touchcontrol)
|
107
|
+
@b8=TouchButton.new('8',1,2,2,3,@touchcontrol)
|
108
|
+
@b9=TouchButton.new('9',2,3,2,3,@touchcontrol)
|
109
|
+
|
110
|
+
@b0=TouchButton.new('0',0,1,3,4,@touchcontrol)
|
111
|
+
@b000=TouchButton.new('000',1,2,3,4,@touchcontrol).modify_font(Pango::FontDescription.new.set_size(24).set_family('Helvetica').set_weight(30))
|
112
|
+
|
113
|
+
@bp=TouchButton.new('.',2,3,3,4,@touchcontrol)
|
114
|
+
@back=TouchButton.new('<-',0,1,4,5,@touchcontrol)
|
115
|
+
|
116
|
+
|
117
|
+
@touchcontrol.resize(5,3)
|
118
|
+
@keypad=Gtk::Frame.new.add(@touchcontrol)
|
119
|
+
@keypad_is_visible=false
|
120
|
+
# @touchcontrol.set_no_show_all(true)
|
121
|
+
end
|
122
|
+
|
123
|
+
attr_accessor :keypad_is_visible
|
124
|
+
|
125
|
+
def run
|
126
|
+
@formholder=Myform::MyFormHolder.new("touchscreen",self)
|
127
|
+
@holder.attach(@formholder.holder,0,1,0,1,Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0)
|
128
|
+
show_all
|
129
|
+
@formholder.form.set_id("59")
|
130
|
+
@formholder.form.update(self)
|
131
|
+
end
|
132
|
+
|
133
|
+
def keypad(vis)
|
134
|
+
if vis
|
135
|
+
if !keypad_is_visible
|
136
|
+
@holder.attach(@keypad,1,2,0,1,Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0)
|
137
|
+
@keypad.show_all
|
138
|
+
keypad_is_visible=true
|
139
|
+
edebug("keypad visible set: "+vis.to_s,"touch","debug")
|
140
|
+
else
|
141
|
+
edebug("keypad allready visible","touch","debug")
|
142
|
+
end
|
143
|
+
else
|
144
|
+
if keypad_is_visible
|
145
|
+
@holder.remove(@keypad)
|
146
|
+
keypad_is_visible=false
|
147
|
+
edebug("keypad visible set: "+vis.to_s,"touch","debug")
|
148
|
+
else
|
149
|
+
edebug("keypad allready hidden","touch","debug")
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
def show_keypad
|
155
|
+
keypad(true)
|
156
|
+
end
|
157
|
+
def hide_keypad
|
158
|
+
keypad(false)
|
159
|
+
end
|
160
|
+
|
161
|
+
end
|
162
|
+
|
data/lib/mywindow.rb
ADDED
@@ -0,0 +1,134 @@
|
|
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
|
+
Thread.abort_on_exception = false
|
6
|
+
|
7
|
+
class MyWindow < Gtk::Window
|
8
|
+
include ManqodCommon
|
9
|
+
include Conf
|
10
|
+
def initialize
|
11
|
+
ManqodRPC.instance.register_client
|
12
|
+
super()
|
13
|
+
|
14
|
+
# set_auto_startup_notification(true)
|
15
|
+
# set_window_position(Gtk::Window::POS_CENTER_ALWAYS)
|
16
|
+
self.title='manqod login'
|
17
|
+
run
|
18
|
+
|
19
|
+
signal_connect("delete-event"){|me,ev|
|
20
|
+
!shut_down?
|
21
|
+
}
|
22
|
+
signal_connect("destroy") {|me,ev|
|
23
|
+
if mainrouter
|
24
|
+
mainrouter.destroy
|
25
|
+
save_conf
|
26
|
+
edebug("quit","main","normal",false)
|
27
|
+
end
|
28
|
+
Gtk.main_quit
|
29
|
+
ManqodRPC.instance.unregister_client
|
30
|
+
}
|
31
|
+
signal_connect("configure-event"){|me,event|
|
32
|
+
if nick
|
33
|
+
set_conf(0,0,"width",event.width.to_s)
|
34
|
+
set_conf(0,0,"height",event.height.to_s)
|
35
|
+
set_conf(0,0,"x",event.x.to_s)
|
36
|
+
set_conf(0,0,"y",event.y.to_s)
|
37
|
+
end
|
38
|
+
false
|
39
|
+
}
|
40
|
+
signal_connect("window-state-event"){|me,event|
|
41
|
+
if nick
|
42
|
+
set_conf(0,0,"maximized",(event.new_window_state & Gdk::EventWindowState::MAXIMIZED == Gdk::EventWindowState::MAXIMIZED).to_s)
|
43
|
+
set_conf(0,0,"minimized",(event.new_window_state & Gdk::EventWindowState::ICONIFIED == Gdk::EventWindowState::ICONIFIED).to_s)
|
44
|
+
set_conf(0,0,"minimized",(event.new_window_state & Gdk::EventWindowState::FULLSCREEN == Gdk::EventWindowState::FULLSCREEN).to_s)
|
45
|
+
end
|
46
|
+
false
|
47
|
+
}
|
48
|
+
|
49
|
+
@@ag = Gtk::AccelGroup.new
|
50
|
+
@@ag.connect(Gdk::Keyval::GDK_KEY_F5,nil ,Gtk::ACCEL_VISIBLE){
|
51
|
+
@mainrouter.reset_child
|
52
|
+
@mymenu.update(self)
|
53
|
+
}
|
54
|
+
@@ag.connect(Gdk::Keyval::GDK_KEY_F4,nil ,Gtk::ACCEL_VISIBLE){
|
55
|
+
gtk_set_edebug
|
56
|
+
}
|
57
|
+
add_accel_group(@@ag)
|
58
|
+
|
59
|
+
|
60
|
+
end
|
61
|
+
attr_accessor :mymenu
|
62
|
+
attr_accessor :holder
|
63
|
+
attr_accessor :mainrouter
|
64
|
+
attr_reader :sb
|
65
|
+
|
66
|
+
def run
|
67
|
+
SB.instance.set_parent_window(self)
|
68
|
+
load_conf
|
69
|
+
DrbImages.instance.load_images
|
70
|
+
begin
|
71
|
+
if main_image_id_row = admin.qrow("select imageid from gtkmenu order by id limit 1")
|
72
|
+
set_icon(DrbImages.instance.image_of_id(main_image_id_row["imageid"],"gtk-large-toolbar"))
|
73
|
+
end
|
74
|
+
|
75
|
+
if sw=get_conf(0,0,"width") and sh=get_conf(0,0,"height")
|
76
|
+
resize(sw.to_i,sh.to_i)# if sw.to_i * sh.to_i >0
|
77
|
+
else
|
78
|
+
resize(600,400)
|
79
|
+
end
|
80
|
+
sx=get_conf(0,0,"x") || 50
|
81
|
+
sy=get_conf(0,0,"y") || 60
|
82
|
+
move(sx.to_i,sy.to_i)
|
83
|
+
|
84
|
+
maximize if get_conf(0,0,"maximized") == "true"
|
85
|
+
iconify if get_conf(0,0,"iconified") == "true"
|
86
|
+
fullscreen if get_conf(0,0,"fullscreen") == "true"
|
87
|
+
|
88
|
+
#realize;window.set_functions(Gdk::Window::WMFunction::ALL | Gdk::Window::WMFunction::CLOSE)
|
89
|
+
|
90
|
+
@holder = Gtk::Table.new(2,4,false)
|
91
|
+
@mainrouter=MainRouter.new(self)
|
92
|
+
case get_conf(0,0,"menu-position")
|
93
|
+
when "top"
|
94
|
+
@mymenu = if get_conf(0,0,"menu-type")=="buttons" then MenuHolder.new(mainrouter);else BarMenu.new(mainrouter);end
|
95
|
+
holder.attach(mymenu ,0,1,0,1,Gtk::EXPAND|Gtk::FILL,Gtk::FILL)
|
96
|
+
holder.attach(mainrouter,0,1,1,2,Gtk::EXPAND|Gtk::FILL,Gtk::EXPAND|Gtk::FILL)
|
97
|
+
when "bottom"
|
98
|
+
@mymenu = if get_conf(0,0,"menu-type")=="buttons" then MenuHolder.new(mainrouter);else BarMenu.new(mainrouter);end
|
99
|
+
holder.attach(mainrouter,0,1,1,2,Gtk::EXPAND|Gtk::FILL,Gtk::EXPAND|Gtk::FILL)
|
100
|
+
holder.attach(mymenu ,0,1,2,3,Gtk::EXPAND|Gtk::FILL,Gtk::FILL)
|
101
|
+
when "left"
|
102
|
+
@mymenu = if get_conf(0,0,"menu-type")=="buttons" then MenuHolder.new(mainrouter,"vertical");else BarMenu.new(mainrouter,"vertical");end
|
103
|
+
holder.attach(mymenu ,0,1,0,2,Gtk::FILL,Gtk::EXPAND)
|
104
|
+
holder.attach(mainrouter,1,2,0,1,Gtk::EXPAND|Gtk::FILL,Gtk::EXPAND|Gtk::FILL)
|
105
|
+
when "right"
|
106
|
+
@mymenu = if get_conf(0,0,"menu-type")=="buttons" then MenuHolder.new(mainrouter,"vertical");else BarMenu.new(mainrouter,"vertical");end
|
107
|
+
holder.attach(mymenu ,1,2,0,2,Gtk::FILL,Gtk::EXPAND)
|
108
|
+
holder.attach(mainrouter,0,1,0,1,Gtk::EXPAND|Gtk::FILL,Gtk::EXPAND|Gtk::FILL)
|
109
|
+
end
|
110
|
+
@holder.attach(SB.instance,0,2,3,4,Gtk::FILL,Gtk::FILL)
|
111
|
+
add(holder)
|
112
|
+
show_all
|
113
|
+
Gtk.show_thread_changes
|
114
|
+
mymenu.update(mymenu.last)
|
115
|
+
Messaging.instance.check_messages
|
116
|
+
rescue => err
|
117
|
+
tell_exception("error occured",backtrace_to_debug(err),"main","warning")
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
def shut_down?
|
122
|
+
enormal("normal shutdown","main")
|
123
|
+
if get_conf(0,0,"confirm-exit") == "true"
|
124
|
+
warner=Gtk::MessageDialog.new(self,Gtk::Dialog::DESTROY_WITH_PARENT,Gtk::MessageDialog::QUESTION,Gtk::MessageDialog::BUTTONS_YES_NO,"quit")
|
125
|
+
warner.set_image(Gtk::Image.new(Gtk::Stock::QUIT,Gtk::IconSize::DIALOG))
|
126
|
+
ret=(warner.show_all.run == Gtk::Dialog::RESPONSE_YES)
|
127
|
+
warner.destroy
|
128
|
+
else
|
129
|
+
ret=true
|
130
|
+
end
|
131
|
+
ret
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
@@ -0,0 +1,57 @@
|
|
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 LayLabel < Gtk::EventBox
|
6
|
+
def initialize(text)
|
7
|
+
@x=0
|
8
|
+
@y=0
|
9
|
+
@text=text
|
10
|
+
@dragging=false
|
11
|
+
@myobject=Gtk::Label.new(@text)
|
12
|
+
super()
|
13
|
+
add(@myobject)
|
14
|
+
|
15
|
+
# set_events(Gdk::Event::MOTION_NOTIFY | Gdk::Event::BUTTON_MOTION_MASK)
|
16
|
+
# set_can_focus(true)
|
17
|
+
signal_connect('event'){|me,event|
|
18
|
+
case event.event_type
|
19
|
+
when Gdk::Event::BUTTON_PRESS
|
20
|
+
@xshift=event.x
|
21
|
+
@yshift=event.y
|
22
|
+
@dragging=true
|
23
|
+
get_ancestor(WysiwygPrintEditor).set_focused_item(self)
|
24
|
+
# set_visible_window(true)
|
25
|
+
# @myobject.style.base_gc(Gtk::STATE_NORMAL).background.set_red(65535)
|
26
|
+
when Gdk::Event::MOTION_NOTIFY
|
27
|
+
@x=@x+event.x-@xshift if (@x+event.x-@xshift).to_i.modulo(10)==0
|
28
|
+
@y=@y+event.y-@yshift if (@y+event.y-@yshift).to_i.modulo(10)==0
|
29
|
+
move_me
|
30
|
+
when Gdk::Event::BUTTON_RELEASE
|
31
|
+
@dragging=false
|
32
|
+
# set_state(Gtk::STATE_NORMAL)
|
33
|
+
else
|
34
|
+
# print "unhandled: ",event.inspect,"\n"
|
35
|
+
end
|
36
|
+
}
|
37
|
+
end
|
38
|
+
attr_accessor :x
|
39
|
+
attr_accessor :y
|
40
|
+
attr_accessor :text
|
41
|
+
def move_me(newx=@x,newy=@y)
|
42
|
+
@x=newx
|
43
|
+
@y=newy
|
44
|
+
parent.move(self)
|
45
|
+
end
|
46
|
+
def modify_font(new_font)
|
47
|
+
super(new_font)
|
48
|
+
@myobject.modify_font(new_font)
|
49
|
+
self
|
50
|
+
end
|
51
|
+
def set_text(newtext=@text)
|
52
|
+
@text=newtext
|
53
|
+
@myobject.text=@text
|
54
|
+
self
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|