169
169
KVSO_BEGIN_REGISTERCLASS(KvsObject_workspace,"workspace","widget")
170
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,addSubWindow);
171
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,removeSubWindow);
172
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,activeWindow);
173
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,scrollBarsEnabled);
174
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,setscrollBarsEnabled);
175
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,cascade);
176
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,tile);
177
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,closeActiveWindow);
178
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,closeAllWindows);
179
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,activateNextWindow);
180
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,activatePrevWindow);
170
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,addSubWindow);
171
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,removeSubWindow);
172
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,activeWindow);
173
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,scrollBarsEnabled);
174
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,setscrollBarsEnabled);
175
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,cascade);
176
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,tile);
177
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,closeActiveWindow);
178
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,closeAllWindows);
179
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,activateNextWindow);
180
KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_workspace,activatePrevWindow);
181
181
KVSO_END_REGISTERCLASS(KvsObject_workspace)
183
183
KVSO_BEGIN_CONSTRUCTOR(KvsObject_workspace,KvsObject_widget)
184
pWidgetDict=new QHash<kvs_hobject_t,QMdiSubWindow *>;
184
pWidgetDict=new QHash<kvs_hobject_t,QMdiSubWindow *>;
185
185
KVSO_END_CONSTRUCTOR(KvsObject_workspace)
187
187
KVSO_BEGIN_DESTRUCTOR(KvsObject_workspace)
190
pWidgetDict->clear();
190
pWidgetDict->clear();
194
194
KVSO_END_CONSTRUCTOR(KvsObject_workspace)
196
196
bool KvsObject_workspace::init(KviKvsRunTimeContext *, KviKvsVariantList *)
198
SET_OBJECT(QMdiArea);
198
SET_OBJECT(QMdiArea);
202
202
KVSO_CLASS_FUNCTION(workspace,addSubWindow)
204
CHECK_INTERNAL_POINTER(widget())
205
KviKvsObject * pObject;
206
kvs_hobject_t hObject;
207
KVSO_PARAMETERS_BEGIN(c)
208
KVSO_PARAMETER("widget",KVS_PT_HOBJECT,0,hObject)
209
KVSO_PARAMETERS_END(c)
210
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
211
CHECK_HOBJECT_IS_WIDGET(pObject)
212
QMdiSubWindow *pMdi=((QMdiArea *)object())->addSubWindow(((QWidget *)(pObject->object())));
213
pWidgetDict->insert(hObject,pMdi);
214
((QMdiArea *)object())->setActiveSubWindow(pMdi);
204
CHECK_INTERNAL_POINTER(widget())
205
KviKvsObject * pObject;
206
kvs_hobject_t hObject;
207
KVSO_PARAMETERS_BEGIN(c)
208
KVSO_PARAMETER("widget",KVS_PT_HOBJECT,0,hObject)
209
KVSO_PARAMETERS_END(c)
211
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
212
CHECK_HOBJECT_IS_WIDGET(pObject)
213
QMdiSubWindow *pMdi=((QMdiArea *)object())->addSubWindow(((QWidget *)(pObject->object())));
214
pWidgetDict->insert(hObject,pMdi);
215
((QMdiArea *)object())->setActiveSubWindow(pMdi);
217
218
KVSO_CLASS_FUNCTION(workspace,removeSubWindow)
219
CHECK_INTERNAL_POINTER(widget())
220
KviKvsObject * pObject;
221
kvs_hobject_t hObject;
222
KVSO_PARAMETERS_BEGIN(c)
223
KVSO_PARAMETER("widget",KVS_PT_HOBJECT,0,hObject)
224
KVSO_PARAMETERS_END(c)
225
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
226
CHECK_HOBJECT_IS_WIDGET(pObject)
227
QMdiSubWindow *pMdiSubWindow=pWidgetDict->value(hObject);
230
((QMdiArea *)object())->removeSubWindow(pMdiSubWindow);
231
pWidgetDict->remove(hObject);
233
else c->warning(__tr2qs_ctx("The widget must be a subwindow of this workspace","objects"));
220
CHECK_INTERNAL_POINTER(widget())
221
KviKvsObject * pObject;
222
kvs_hobject_t hObject;
223
KVSO_PARAMETERS_BEGIN(c)
224
KVSO_PARAMETER("widget",KVS_PT_HOBJECT,0,hObject)
225
KVSO_PARAMETERS_END(c)
227
pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject);
228
CHECK_HOBJECT_IS_WIDGET(pObject)
229
QMdiSubWindow *pMdiSubWindow=pWidgetDict->value(hObject);
232
((QMdiArea *)object())->removeSubWindow(pMdiSubWindow);
233
pWidgetDict->remove(hObject);
235
c->warning(__tr2qs_ctx("The widget must be a subwindow of this workspace","objects"));
237
240
KVSO_CLASS_FUNCTION(workspace,cascade)
239
CHECK_INTERNAL_POINTER(widget())
240
((QMdiArea *)widget())->cascadeSubWindows();
242
CHECK_INTERNAL_POINTER(widget())
243
((QMdiArea *)widget())->cascadeSubWindows();
243
246
KVSO_CLASS_FUNCTION(workspace,tile)
245
CHECK_INTERNAL_POINTER(widget())
246
((QMdiArea *)widget())->tileSubWindows();
248
CHECK_INTERNAL_POINTER(widget())
249
((QMdiArea *)widget())->tileSubWindows();
249
252
KVSO_CLASS_FUNCTION(workspace,closeActiveWindow)
251
CHECK_INTERNAL_POINTER(widget())
252
((QMdiArea *)widget())->closeActiveSubWindow();
254
CHECK_INTERNAL_POINTER(widget())
255
((QMdiArea *)widget())->closeActiveSubWindow();
256
259
KVSO_CLASS_FUNCTION(workspace,closeAllWindows)
258
CHECK_INTERNAL_POINTER(widget())
259
((QMdiArea *)widget())->closeAllSubWindows();
261
CHECK_INTERNAL_POINTER(widget())
262
((QMdiArea *)widget())->closeAllSubWindows();
263
266
KVSO_CLASS_FUNCTION(workspace,activateNextWindow)
265
CHECK_INTERNAL_POINTER(widget())
266
((QMdiArea *)widget())->activateNextSubWindow();
268
CHECK_INTERNAL_POINTER(widget())
269
((QMdiArea *)widget())->activateNextSubWindow();
270
273
KVSO_CLASS_FUNCTION(workspace,activatePrevWindow)
272
CHECK_INTERNAL_POINTER(widget())
273
((QMdiArea *)widget())->activatePreviousSubWindow();
275
CHECK_INTERNAL_POINTER(widget())
276
((QMdiArea *)widget())->activatePreviousSubWindow();
277
280
KVSO_CLASS_FUNCTION(workspace,activeWindow)
279
CHECK_INTERNAL_POINTER(widget())
280
QMdiSubWindow *pActiveMdi=((QMdiArea *)widget())->activeSubWindow();
283
QHashIterator<kvs_hobject_t,QMdiSubWindow *> t(*pWidgetDict);
287
kvs_hobject_t hObject=t.key();
288
QMdiSubWindow *pMdi=t.value();
289
if (pMdi==pActiveMdi)
291
c->returnValue()->setHObject(hObject);
296
else c->returnValue()->setHObject((kvs_hobject_t)0);
282
CHECK_INTERNAL_POINTER(widget())
283
QMdiSubWindow *pActiveMdi=((QMdiArea *)widget())->activeSubWindow();
286
QHashIterator<kvs_hobject_t,QMdiSubWindow *> t(*pWidgetDict);
290
kvs_hobject_t hObject=t.key();
291
QMdiSubWindow *pMdi=t.value();
292
if (pMdi==pActiveMdi)
294
c->returnValue()->setHObject(hObject);
299
else c->returnValue()->setHObject((kvs_hobject_t)0);
299
303
KVSO_CLASS_FUNCTION(workspace,scrollBarsEnabled)
301
CHECK_INTERNAL_POINTER(widget())
303
if(((QMdiArea *)widget())->verticalScrollBarPolicy()!=Qt::ScrollBarAlwaysOff) bEnabled=true;
305
c->returnValue()->setBoolean(bEnabled);
305
CHECK_INTERNAL_POINTER(widget())
307
if(((QMdiArea *)widget())->verticalScrollBarPolicy()!=Qt::ScrollBarAlwaysOff)
311
c->returnValue()->setBoolean(bEnabled);
309
315
KVSO_CLASS_FUNCTION(workspace,setscrollBarsEnabled)
311
CHECK_INTERNAL_POINTER(widget())
317
CHECK_INTERNAL_POINTER(widget())
313
319
KVSO_PARAMETERS_BEGIN(c)
314
320
KVSO_PARAMETER("bEnabled",KVS_PT_BOOL,0,bEnabled)
315
321
KVSO_PARAMETERS_END(c)
318
((QMdiArea *)widget())->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
319
((QMdiArea *)widget())->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
323
((QMdiArea *)widget())->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
324
((QMdiArea *)widget())->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
324
((QMdiArea *)widget())->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
325
((QMdiArea *)widget())->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
329
((QMdiArea *)widget())->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
330
((QMdiArea *)widget())->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);