blob: c7fc0dbb410fe11eb2d757ecff7515c0cfbb000d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
<class>Form1</class>
<widget class="Dialog">
<property name="name">
<cstring>Form1</cstring>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>502</width>
<height>412</height>
</rect>
</property>
<property name="caption">
<string>Form1</string>
</property>
<property name="associations" stdset="0">
<stringlist>
<string></string>
<string>//createWidget("kpmessage", "LineEdit", "Form1")
</string>
<string></string>
</stringlist>
</property>
<property name="useInternalParser">
<bool>true</bool>
</property>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
<property name="margin">
<number>6</number>
</property>
<property name="spacing">
<number>4</number>
</property>
<widget class="TextBrowser" row="0" column="0">
<property name="name">
<cstring>TextBrowser1</cstring>
</property>
<property name="text">
<string>You can click the test button to insert text
If you are loaded in the parent frame you can click the rocket icon on the toolbar or use the function menu to select "Talk to KPart".
Any Kommander program can be run as a KPart. You need the KPart plugin to load KParts. Note that running Kommander programs as KParts is not without risks. For one thing you loose DCOP in the parent and the old parser ceases to work. Additionally since all widgets are accecssible from the parent and duplicate widget name can cause a Kommander lock up.
Because of all this and the fact that the Actions on the unsupported MainWindow are incompatible it is impossible for the child to talk with the parent. On this dialog we use a timer on the parent polling the child for requests every 100 ms. It's a crude hack but it does yield acceptable behavior.
This demo is intended to run both kpartwmframe.kmdr and kpartpart.kmdr. </string>
</property>
</widget>
<widget class="TQLayoutWidget" row="1" column="0">
<property name="name">
<cstring>Layout70</cstring>
</property>
<hbox>
<property name="name">
<cstring>unnamed</cstring>
</property>
<property name="margin">
<number>0</number>
</property>
<property name="spacing">
<number>6</number>
</property>
<spacer>
<property name="name">
<cstring>Spacer1</cstring>
</property>
<property name="orientation">
<enum>Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>75</width>
<height>0</height>
</size>
</property>
</spacer>
<widget class="ExecButton">
<property name="name">
<cstring>ExecButton4</cstring>
</property>
<property name="text">
<string>Re&quest Parent</string>
</property>
<property name="associations" stdset="0">
<stringlist>
<string>if !widgetExists("kpmessage") then
createWidget("kpmessage", "LineEdit", "Form1")
endif
if _LOADED == true then
kpmessage.setText("You have mail")
else
message_info("this only works when loaded as a KPart in it's parent window")
endif
</string>
</stringlist>
</property>
</widget>
<widget class="ExecButton">
<property name="name">
<cstring>ExecButton1</cstring>
</property>
<property name="text">
<string>Test &Child</string>
</property>
<property name="associations" stdset="0">
<stringlist>
<string>TextBrowser1.setText("This text was inserted by the KPart child cialog")</string>
</stringlist>
</property>
</widget>
<widget class="ScriptObject">
<property name="name">
<cstring>ScriptObject13</cstring>
</property>
<property name="associations" stdset="0">
<stringlist>
<string>message_info("We just got a message from our parent frame!", "Parent called Child")</string>
</stringlist>
</property>
</widget>
<widget class="ScriptObject">
<property name="name">
<cstring>ScriptObject19</cstring>
</property>
<property name="associations" stdset="0">
<stringlist>
<string>message_info("Request Granted")</string>
</stringlist>
</property>
</widget>
<widget class="ScriptObject">
<property name="name">
<cstring>ScriptObject93</cstring>
</property>
<property name="associations" stdset="0">
<stringlist>
<string>_LOADED = true</string>
</stringlist>
</property>
</widget>
<spacer>
<property name="name">
<cstring>Spacer2</cstring>
</property>
<property name="orientation">
<enum>Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
</spacer>
</hbox>
</widget>
</grid>
</widget>
<layoutdefaults spacing="6" margin="11"/>
</UI>
|