Welcome to Telelogic Product Support
  Home Downloads Knowledgebase Case Tracking Licensing Help Telelogic Passport
Telelogic DOORS (steve huntington)
Decrease font size
Increase font size
Topic Title: Hide, show, re-size, re-position Module Windows ??
Topic Summary:
Created On: 15-Apr-2008 19:29
Status: Post and Reply
Linear : Threading : Single : Branch
Search Topic Search Topic
Topic Tools Topic Tools
Quick Reply Quick Reply
Subscribe to this topic Subscribe to this topic
E-mail this topic to someone. E-mail this topic
Bookmark this topic Bookmark this topic
View similar topics View similar topics
View topic in raw text format. Print this topic.
 15-Apr-2008 19:29
User is offline View Users Profile Print this message


David Jakad

Posts: 94
Joined: 20-Jul-2007

Is there a way to hide, show, re-size, and/or re-position Module Windows?

In my search of the forum, I found a similar question asked, but with no answer.

In my similar question about the main DOORS window, I found I could move the main window off screen with:
setPos(dbExplorer,2000,2000)

... which is good enough for now. But, can I do something similar with the Module Windows?

Why am I doing this? I have some DXL scripts that open a lot of modules, generate reports, switch views, etc. These scripts take several minutes to execute. I am trying to make them less annoying to the users, as DOORS tends to lock up the computer, more or less, and keeps popping up each module window in the user's face, while they are trying to do other things. I know I can open modules in the background, invisible to the user. This is OK in some cases, but in other cases, the modules need to appear to the user. It would be nice if DOORS would do it's thing, then show the modules and results after it is done, not every time another module is opened.
Report this to a Moderator Report this to a Moderator
 16-Apr-2008 14:10
User is offline View Users Profile Print this message


David Pechacek

Posts: 674
Joined: 5-Dec-2006

Well it is possible to get a handle on a DOORS module window apparently using

window(current Module)

However, you cannot use the show(window w) or hide(window w) functions with a handle on a module window(throws an internal error). It seems to only work for the print module window and object attribute editor windows.

You can get the width and height of the DOORS window though with this reference.

print width(window current Module)
print height(window current Module)

I wasn't able to set it though. I tried width(Window__ w, int width) and a similar function for height but it didn't work. Nor did a setWidth version.

There are two functions

draw(Module,int,int,int,int,int,int,int,int)
draw(Module,int,int,int,int,int,int)

But I don't know what the int fields are. Feel free to play.

-------------------------
David Pechacek
AAI Services Textron
dpechacek@sc-aaicorp.com
David.Pechacek@gmail.com

Edited: 16-Apr-2008 at 14:21 by David Pechacek
Report this to a Moderator Report this to a Moderator
 16-Apr-2008 17:03
User is offline View Users Profile Print this message


Louie Landale

Posts: 2070
Joined: 12-Sep-2002

I notice there are two 'struct Window__ {};' statements therein. Perhaps that explains why 'show' and 'hide' don't work on a module window.
Report this to a Moderator Report this to a Moderator
 16-Apr-2008 20:12
User is offline View Users Profile Print this message


David Jakad

Posts: 94
Joined: 20-Jul-2007

In baseWindowMenu.inc, where it builds the main Explorer menus, within the function addOpenMenuItems(), there are calls to "openReadOnly", "openShare", and "openEdit". Unfortunately, those functions seem to be hidden and/or encrypted. If I could see the guts of those functions, I might be able to find some way to get a handle on the window. It's possible those functions return DBs. If the main Explorer is a DB, there's a pretty good chance the Module Windows are DBs also.
Report this to a Moderator Report this to a Moderator
 16-Apr-2008 21:14
User is offline View Users Profile Print this message


David Jakad

Posts: 94
Joined: 20-Jul-2007

Just another thought... if I dig into how DOORS saves and recalls views, I might find an answer. When you save and re-load a view, somehow DOORS can also save and recall the size and position of the module window.
Report this to a Moderator Report this to a Moderator
 16-Apr-2008 22:00
User is offline View Users Profile Print this message


Louie Landale

Posts: 2070
Joined: 12-Sep-2002

Those functions don't return a DB parameter. In fact since I get an 'expected non-void expression' no matter what return parameter I try, I conclude that 'openReadOnly' is a void function with no parameters, knowing what to do based on the currently selected module. My guess is that it just figures out what's selected, and calls read/edit/share as appropriate.

- Louie
Report this to a Moderator Report this to a Moderator
 16-Apr-2008 22:44
User is offline View Users Profile Print this message


David Jakad

Posts: 94
Joined: 20-Jul-2007

Louis, you are correct. It seems openReadOnly, openShare, and openEdit, return void.

Now, I am looking at copyview.inc. In there is a function copyModuleView(Module,Module,string), which copies a view from one module to another. Within copyModuleView is a call to a function copyWindowSettings(Module,Module,View). Unfortunately, it seems copyWindowSettings is hidden or encrypted. I can't find it anywhere. But, I am digging....

By the way, I tried to experiment with draw(Module,int,int,int,int,int,int). All I got were Exception Access Violations.

I also played with width(window(Module m)) and height(window(Module m)). One oddity: width and height of link modules always seems to return 0.
Report this to a Moderator Report this to a Moderator
Statistics
20925 users are registered to the Telelogic DOORS forum.
There are currently 1 users logged in.
The most users ever online was 15 on 15-Jan-2009 at 16:36.
There are currently 0 guests browsing this forum, which makes a total of 1 users using this forum.
You have posted 0 messages to this forum. 0 overall.

FuseTalk Standard Edition v3.2 - © 1999-2009 FuseTalk Inc. All rights reserved.