Hi Chris,

We wanted to implement MDI feature in our application.
So what we did is everytime when the user is clicking on new window button
we are launching a dialog window.
We are using transientfor property to make this window lie on parent window.

We were planning to use dialog windows as MDI Workaround as they are giving
the functionality like minimizing to the parent window in Windows platform.

In windows for these separate windows no taskbar button is coming. When
minimized, the dialog windows happens to minimize to the parent window.(I
wrongly stated the minimized single icon in the parent window as taskbar
button, Sorry for that..)

But in case of linux even after using the transientfor property the windows
are minimizing to the task bar and separate taskbar buttons are coming for
each window.(seems like transentfor property is not working there)



//code
 public partial class ModuleWindow : Gtk.Window
    {
        public delegate void MyWindowState(object sender,
Gtk.ConfigureEventArgs args);
        public event MyWindowState MyWindowStateEvent;
        private Gtk.ScrolledWindow moduleScrolledWindow;
        private Gtk.Viewport moduleWindowViewport;
       

        public ModuleWindow(): base(Gtk.WindowType.Toplevel)
        {
            this.DeleteEvent += new
Gtk.DeleteEventHandler(this.OnDeleteEvent);
            this.Title = "Module Window";       

          

            this.TransientFor = Main.MainWindow;// where MainWindow is the
parent window.
                
                // changed this code to get the windows minimized to parent.

            //this.Parent = Main.MainWindow;
            //this.ParentWindow = Main.MainWindow.GdkWindow;

            moduleScrolledWindow = new Gtk.ScrolledWindow();
            this.Add(moduleScrolledWindow);

            moduleWindowViewport = new Gtk.Viewport();
            moduleScrolledWindow.Add(moduleWindowViewport);
            
            this.DestroyWithParent = true;

            this.WindowStateEvent += new
Gtk.WindowStateEventHandler(ModuleWindow_WindowStateEvent);
            this.ConfigureEvent += new
Gtk.ConfigureEventHandler(ModuleWindow_ConfigureEvent);
            
            InitializeModuleWindow();
           
        }

        }

Another thing we are implementing here is we are restricting these diaog
windows inside a frame. We are pushing back the windows when it is going
outside the frame.
We are using frame.allocation for getting the postion and we are moving back
using window.move.

Is  there any other workaround for this? 

I want to tile windows(horizontally and vertically) inside this frame. Now
do I need to resize each dialog window and move them to corresponding
positions or any other go?

Any help will be appreciated.

Thanks a lot!!!

Libin



-----Original Message-----
From: Chris Howie [mailto:cdho...@gmail.com]
Sent: Tuesday, February 24, 2009 11:40 AM
To: libin
Cc: gtk-sharp-list@lists.ximian.com
Subject: Re: FW: [Gtk-sharp-list] Help needed on Window's TransientFor
Property.

On Tue, Feb 24, 2009 at 12:23 AM, libin <libin.moha...@wipro.com> wrote:
> Hi Chris,
>
> I tried to solve the problem using  window.SkipTaskbarHint = true, but 
> the problem in windows is, I cant get back the minimized window 
> without making another new window as I don't have the taskbar button.
>
> Also in linux the problem of having separate taskbar buttons remains 
> even after using this code. This taskbar Buttons are actually coming 
> on the desktop taskbar and not on the parent window.

I'm not sure what you mean by this.  Did you expect the parent window to
have its own taskbar of children or something?


> Earlier In Windows It was working fine with only one taskbar 
> buttonthat too when minimized it gets minimized on the parent window.I 
> am calling it taskbar button but when it is minimized it is showing 
> only on the parent window and not on the windows taskbar.
>
> And In case of linux every window was having a separate taskbar button 
> in the taskbar itself.
>
> I think the problem in linux is the OS is considering every new window 
> as a separate process.

The GNOME panel is seeing every window as a window.  Usually SkipTaskbarHint
is enough to make it not show up in the taskbar.  You might have to subclass
Dialog instead of Window to get this behavior.

Perhaps you could back up a bit and explain the overall goal here?
Maybe there is another approach you have not thought of.

--
Chris Howie
http://www.chrishowie.com
http://en.wikipedia.org/wiki/User:Crazycomputers



Please do not print this email unless it is absolutely necessary. 

The information contained in this electronic message and any attachments to 
this message are intended for the exclusive use of the addressee(s) and may 
contain proprietary, confidential or privileged information. If you are not the 
intended recipient, you should not disseminate, distribute or copy this e-mail. 
Please notify the sender immediately and destroy all copies of this message and 
any attachments. 

WARNING: Computer viruses can be transmitted via email. The recipient should 
check this email and any attachments for the presence of viruses. The company 
accepts no liability for any damage caused by any virus transmitted by this 
email. 

www.wipro.com
_______________________________________________
Gtk-sharp-list maillist  -  Gtk-sharp-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/gtk-sharp-list

Reply via email to