Page 1 of 1

Design time & Visibility

Posted: 14 Jul 2009, 12:37
by itmg
Hi,

first of all, great control!!!
But I have two simple question:
(not so important):
Why isn't it possible, to design tab pages at design time?
I can save the tab page config at run time into a file, by calling SaveSettingsToFile.
I would like to save the tab page config at design time. Storing the config in the property bag of the control would be great.

(very important):
How can I make tabs invisible?


Best regards
Andreas Graw

Re: Design time & Visibility

Posted: 14 Jul 2009, 17:55
by TiKu
itmg wrote:Hi,

first of all, great control!!!
But I have two simple question:
(not so important):
Why isn't it possible, to design tab pages at design time?
I can save the tab page config at run time into a file, by calling SaveSettingsToFile.
I would like to save the tab page config at design time. Storing the config in the property bag of the control would be great.
I would have to make the tab pages persistent and this would require quite a lot of code and would make things more difficult for me. Currently the control does not hold any per-tab information. It just passes everything to the native control (SysTabControl32) and acts more like a thin layer around this native control. If tab pages would be persistent, the control would have to hold an object for each tab (-> higher memory consumption) and would have to keep these objects synchronized with the native control (-> more and slower code). Now if for some reason tabs are inserted, removed or modified through the Win32-API and not through the COM interface of my control, synchronization becomes very nasty. Without tab page persistance these cases cause much less problems.
Also even if tab pages would be persistent, you still would have to set the icons at run time, because there's no way (at least none that could be used) to persist 32bpp icons without modifying the icons.
The only control of mine, that persists its items, is the StatusBar control. Why? Because the native control, that it is based on (msctls_statusbar32), works in a way where persisting the status panels in fact makes things easier to implement instead of more difficult. The drawback is, that the StatusBar control doesn't really like it, if the panels are modified through the Win32 API.
By the way, SaveSettingsToFile doesn't persist the tab pages.

Oh, now that I think about tab page persistence, there's also an educational reason to not make them persistent :mrgreen: If users would see the tab pages at design time, they probably would position the controls on the tab pages at design time so that the positions are good for the current appearance of the tab strip control. But the size of the tab row(s) can be different on different systems, so the controls inside the tab pages should be positioned dynamically at run time.
itmg wrote:(very important):
How can I make tabs invisible?
You can't, because the underlying native control doesn't support it. To "hide" a tab page, it must be removed.