Tabbed MDI interface alpha

Startbeitrag von Pragma Tix am 20.07.2012 23:19

Hi,
I've allways missed a tabbed MDI support in Windev. Thanks to a serious bug in WEBDEV WEBSERVICE, I have a few "free" days..
Thanks to a design mistake (late night programming) I have to rewrite parts of the WindowManager class, nevertheless, the stuff should be feature complete and stable in about two days... (If someone is interested, let me know)
Bjoern
A alpha stage screen shot. And YesWelcome and customer [ ] are windows and not just part of the tab.

Antworten:

Undocking of windows is now possible.
This is "Mission impossible" by using MDI and MDI child windows and the reason why I decided to use free Windows. So my announcement : Tabbed MDI" was not correct.
I should say : Tabbed Window Interface.

... It is now possible to Dock and Un-dock windows. This could make sense in case that you want different views (here dayview/weekview, could be table/chart view, or whatever).. at once

It's about 6 o clock in the morning .. guess I need some sleep.
Bjoern



von Pragma Tix - am 21.07.2012 04:10
Hi,

MDI interface is (I`ve heard and tested with a win8 beta) not supported in Windows 8 (at least for the moment)

This may change, just wanted you to know :)

Cheers
Tor-Bjarne

von Tor-Bjarne - am 22.07.2012 09:04
Hi Tor Bjayne,
Tak for the feedback.

I am using free windows only. (Main window, as well as Child windows)
The idea is to mimic MDI behaviour without having silly MDI restrictions. And of course to implement Tabbed windowing...
with silly restrictions I mean : Enable moving a child window outside he Parent window. I call it undocking.

Using the WindowManager class is simple :

Child Window :

//Global declarations
PROCEDURE Window2( )
eventHandle is int

// Initialisation of
eventHandle = Event(MoveResizeWindow, MySelf..Name, 1024 + 2000) // WM_USER + 2000
WindowManager.Register( MySelf )

//Closing of
EndEvent(eventHandle)

// Close Button
//Remove window from WindowList, Delete Tab-Pane, renumber TabPane title, and finally, close the window
WindowManager.UnRegister()
Close()



That's it for the child windows,

All the Main-Window need is :

// Global Declarations
winman is WindowManager( MySelf..Name, PositionFrame..Name, Tab1..Name )

// Open a child window
// It think I can move that to the WindowManager class .
WindowManager.CreateTabPane()
// In other words, this line of code is not needed anymore! TODO
OpenChild( Window2 , )


I am using Template windows, so I do not even have to insert any code at all..
Regards,
Bjoern

von Pragma Tix - am 22.07.2012 14:32
Very Nice.
What is your plan for this component? Commercial , free , source code or just a demonstration?

von JohnyM - am 23.07.2012 06:49
Quote
Tor-Bjarne
Hi,

MDI interface is (I`ve heard and tested with a win8 beta) not supported in Windows 8 (at least for the moment)

This may change, just wanted you to know :)

Cheers
Tor-Bjarne


Hi, I tested my typical MDI application MDI-parent with maximized MDI-childs in it, looks much like Pragmatix' tabbed Interface without Tabs ;-) and it works OK as far as I can see. Of course, as far as I know, we cannot make any Metro Interface compliant applications for Windows 8 with WinDev but that's currently impossible anyway. Regards, Guenter

von Guenter_P - am 23.07.2012 06:51
Nice work Björn !

von Peter Holemans - am 23.07.2012 08:39
@Jonny M
It was my intention to give this component away for free. (Until I have I to realize that this component is not a afternoon job) Now I think that I will offer it :

A) For free --- without source code. - More exactly without the WindowManager class source code. Nevertheless: Everything else, including the window templates will be available 4 free. Further :The free component will have no functional, or otherwise nagging limitations.

Or
B) commercial .. including WindowManager class source code, support and programmer's documents, etc. for 50 Euro.
I think this is fair enough.
--------

There are still a few things to implement before release >
1) Scrollable Tab

2) Enhance WindowManager class with SaveSession / RestoreSession methods.

3) Convenience stuff. Close / Close all but this / Close All popUp

4) WindowList. Speed Access in case that you have to deal with a lot of windows.

5) Reasonable sample project and better source documentation.
--- Will create a Camtasia video once everything works exactly like I want it.
(this weekend)

@Peter Holemans.
Thanks Peter!!! Glad you like it.
You know it : OOP still rox. In this particular case I have implemented the Publisher-Subscriber pattern.

Beside, It would be nice if you can review this component (once it is Release Candidate ) I can send you the sources ... if you like.

Cheers,
Bjoern

von Pragma Tix - am 23.07.2012 18:18
Hi Bjoern,

looks very nice !

von Stefan Bentvelsen - am 23.07.2012 18:32
Hi,

When near code-complete can you perhaps could make a small demo exe for download :)

Cheers
Tor-Bjarne

von Tor-Bjarne - am 23.07.2012 18:59
Hi Tor Bjarne,
Sure. no pb.
I will make the project ( including a Sample.exe ) available via Google Drive... I will further publish a screencam recording on u tube, and announce the links here on MySnip.

Everything you need to test, respective to create your own Tabbed Window Application, will be available within a few days. Feedback is welcome.

Cheers,
Bjoern

von Pragma Tix - am 23.07.2012 21:25
Great :xcool:

Cheers
Tor-Bjarne

von Tor-Bjarne - am 23.07.2012 21:30
What is with this project? Last entry 2012?

br
Markus

von Markus Ratzesberger - am 11.05.2016 07:28
Hi Markus,

FYI: Björn Lietz-Spendig (aka Pragma-Tix) deceased unfortunately late 2012 so I'm afraid this project died together with him.

PS: The dockable tabbed windows interface is available as of V20 by default.

Best regards,

Peter Holemans

von Peter Holemans - am 11.05.2016 07:40
Zur Information:
MySnip.de hat keinen Einfluss auf die Inhalte der Beiträge. Bitte kontaktieren Sie den Administrator des Forums bei Problemen oder Löschforderungen über die Kontaktseite.
Falls die Kontaktaufnahme mit dem Administrator des Forums fehlschlägt, kontaktieren Sie uns bitte über die in unserem Impressum angegebenen Daten.