Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Extra libraries, Code snippets, applications etc. » Applications created with U++ » An administrative console Part III...
An administrative console Part III... [message #12027] Mon, 08 October 2007 19:32 Go to next message
tvanriper is currently offline  tvanriper
Messages: 85
Registered: September 2007
Location: Germantown, MD, USA
Member
For the meetings tab, I used a grid control. I didn't have time to make all the colors here similar to the other pictures you've seen, but it's a goal of mine to eventually make that change.

That said, you can see how we colored the active meeting in green. Meetings that have passed, or that show a kind of error (e.g. you've made a change to a user's permission, and the person no longer has the right to work as a stenographer, yet is scheduled to be the stenographer for a meeting) turn red.

http://www.xorbit.com/images/RTXAdminPics/MeetingsTab.jpg

And here's a view of the chat log. This was perhaps the simplest dialog to create, other than the About dialog. My boss found it very nice that we could save this as a PDF file, a RTF file, or plain text file, with very little code. I didn't tell him that I could probably have also saved this as a JPG, PNG, or BMP, too... but I felt such options were probably not the sort of thing most people would have wanted or expected in this dialog.

http://www.xorbit.com/images/RTXAdminPics/ChatLog.jpg

All of the dialogs I've shown in this series, with the exception of the Login screen, are resizable.

I created the graphics for the buttons myself, with a little advice from my boss (namely, he wanted the disabled buttons to show with that reddish color), to include the red glow used for hover. Observant folks may have noticed that I ran this application on a Vista machine; in fact, I developed this on a Vista machine, with no problems.

We have a reason for the color scheme we use: broadcasters typically and necessarily work in dark settings, so a blaringly-white background is a veritable assault on their eyes. They also use a lot of red controls, so we aimed to match that idiom, to help make our application feel a little more like home for them. So, we're not just making things dark because we like it that way... it's actually practical for our target demograph.

I hope anyone thinking about using Ultimate++, upon seeing this, will seriously look into it. You can make some exceedingly nice applications with this tool in a relatively short amount of time. I think this project took me about a month to complete, much of which involved learning how the toolset works (examining code, occasionally modifying code as needed... but so far, only in about two places, both of which have functionality probably folded into the development releases already), and twiddling around with the graphics (because my boss is quite picky about such things).

Incidentally, the e-mail addresses you see in these pictures are all fakes. So don't bother spamming them.
Re: An administrative console Part III... [message #12028 is a reply to message #12027] Mon, 08 October 2007 22:37 Go to previous messageGo to next message
unodgs is currently offline  unodgs
Messages: 1354
Registered: November 2005
Location: Poland
Senior Contributor

Congratulations! Cool buttons!. As the author of GridCtrl I'm also glad to see it in action Wink I hope it works well.
Re: An administrative console Part III... [message #12029 is a reply to message #12027] Mon, 08 October 2007 23:27 Go to previous messageGo to next message
tvanriper is currently offline  tvanriper
Messages: 85
Registered: September 2007
Location: Germantown, MD, USA
Member
I specifically switched from the ArrayCtrl to the GridCtrl so I could take advantage of the automatic sorting (click on the header bits, and it sorts for you). Very nice work. I love how you can use Values in the rows to provide for automatic sorting... I didn't have to do anything special beyond creating a custom sort for the status column of the Meeting tab. The Status column actually holds a custom Value that sorts. Not hard to do, once you figure it out.

I haven't figured out how to reskin the GridCtrl to fulfill my needs; I want to skin this so it uses either a dark color or a custom graphic for the plain white text that fills the empty area, modify the graphics used for the headers (to make them darker), and possibly change the default colors of the individual rows to something darker while maintaining light-colored text.

But, that's down the road.

Right now, even as I type, I'm adding a custom control to use one of our COM objects that provides streaming video to a control. I think that's going to be fairly entertaining *crosses fingers*.

The RTX logo you see at the bottom-left corner of the System tab is a custom control, derived from Button, that displays an image spread across the entire control. Click on it, and it takes you to our web page.

The graphic in the background of the System tab is the same kind of control, but is set to refresh the screen ... this has the effect of causing the tab's information to get updated whenever you click anywhere on it (except for the other buttons).

I'm extremely happy with how this project turned out. I'm hopeful that I can revise some of our other projects written in VB, to use Ultimate++ instead, but time only permits so many changes.
Re: An administrative console Part III... [message #12031 is a reply to message #12027] Tue, 09 October 2007 01:46 Go to previous messageGo to next message
tvanriper is currently offline  tvanriper
Messages: 85
Registered: September 2007
Location: Germantown, MD, USA
Member
Oh, yeah, I forgot to point out some other nice implementation details that might help tempt someone to consider this toolkit...

All the graphics you see in this project are embedded in the executable, using bz2 compression to help keep the file size small. I think the executable is only around 2 megs, total; the download is about 3 megs, if I recall... much of which involves the bitmaps that had to be embedded in the MSI installer.

Ultimate++ makes doing that sort of thing exceedingly trivial; a single file with some simple instructions causes the graphics to get embedded. Then, it's some fairly simple code to extract and decode them into Image classes (although I could have embedded anything in the executable). I think I'm using PNG and JPG file formats; the RTX logo in the lower left corner of the Systems tab is a PNG with a transparent background, allowing it to float over the big textured gray background. It was anti-aliased against a gray background, so it looks as if it's anti-aliased against the texture gray background (but it wasn't).

The login's dropdown is actually a WithDropChoice-style control that makes use of History. I store the History and tab selection in a .cfg file using Ultimate++'s streaming file capabilities to keep things pretty simple. Unfortunately, since I'm using 2007.1, the .CFG is located in the same folder as the executable... eventually, I'll move to the newer toolkit, and move the .cfg into the user's personal folder instead. But, at least I didn't have to use any registry settings (except for the one COM component I needed to install).

Can I remember where I had to customize U++?

1. The string edit control, so I could take advantage of using different colors, textures, or whatever for the text and paper of the control.

2. The tab control, to make it possible to have white text for the tabs (originally, I could only have black text, which against these bitmaps is illegible).

I made a third change, but I can't recall where. Perhaps if I have some time tomorrow, I'll look it up and report what I changed. Maybe it had something to do with the date/time control, but I'm not sure... I recall having had some problems there.
Re: An administrative console Part III... [message #12033 is a reply to message #12029] Tue, 09 October 2007 08:34 Go to previous messageGo to next message
unodgs is currently offline  unodgs
Messages: 1354
Registered: November 2005
Location: Poland
Senior Contributor

tvanriper wrote on Mon, 08 October 2007 17:27

I specifically switched from the ArrayCtrl to the GridCtrl so I could take advantage of the automatic sorting (click on the header bits, and it sorts for you). Very nice work. I love how you can use Values in the rows to provide for automatic sorting... I didn't have to do anything special beyond creating a custom sort for the status column of the Meeting tab. The Status column actually holds a custom Value that sorts. Not hard to do, once you figure it out.


Frankly, auto sorting was one of the reason behind writing GridCtrl. First I wanted to fix ArrayCtrl but Mirek had his own vision of it (and Mirek for most of the time wants to keep minimal functionality (but with maximum flexibility)). I rather prefer to create "rich" widgets (which implements more common functionality) to not repeat myself in each next project (like adding sorting, display classes to change background of row etc.)
To change the look of GridCtrl just use grid.SetDisplay() and pass to it your own GridDisplay class (there are Paint and PaintFixed methods).
Re: An administrative console Part III... [message #12037 is a reply to message #12033] Tue, 09 October 2007 11:50 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Interestingly I work for a broadcast automation company, though I don't think we control any of your systems.

Very nice design. We also use a lot of dark colors for the same reasons, especially since you can use a larger range of colour for contextual information than against a white background.

[Updated on: Tue, 09 October 2007 13:05]

Report message to a moderator

Re: An administrative console Part III... [message #12038 is a reply to message #12027] Tue, 09 October 2007 13:19 Go to previous messageGo to next message
tvanriper is currently offline  tvanriper
Messages: 85
Registered: September 2007
Location: Germantown, MD, USA
Member
unodgs:

I'll look into a custom GridDisplay... that probably is the answer. I'm still kind of new to the whole Display-derived classes thing, but I seem to be picking all of this up fairly quickly.

mrjt:

No automation company supports us... we support them. We build our own drivers to hook into something the automation system provides, then converts their information into something we understand.

Which makes me ask... what broadcast automation system do you work on? Maybe I've worked on a driver for it, or maybe I haven't. To date, I've worked with a Harris serial driver, and an Omnibus TCP/IP driver. I also created my own 'fake' automation system that simply lets you create a playlist that repeats itself constantly, and provides its information to our other services, for testing purposes.

Honestly, though, we'd love to have access to a real automation service, so we could perform more realistic testing. Unfortunately, automation systems are expensive; we can't afford one.
Re: An administrative console Part III... [message #12046 is a reply to message #12038] Tue, 09 October 2007 15:44 Go to previous messageGo to next message
mrjt is currently offline  mrjt
Messages: 705
Registered: March 2007
Location: London
Contributor
Well, we're quite a small company so we often have to write custom interfaces too, though it's usually a process of give and take since our customers are always trying to push the limits of their equipment. Which is always interesting.

And yes, we're quite expensive Smile

Re: An administrative console Part III... [message #12059 is a reply to message #12046] Tue, 09 October 2007 21:27 Go to previous message
tvanriper is currently offline  tvanriper
Messages: 85
Registered: September 2007
Location: Germantown, MD, USA
Member
Do you have to accommodate drop-frame time-code? So many automation companies seem to have a problem with drop-frame, in our experience.

I have a sort of belief that we Yanks lost our minds.

In Europe, you took a look at what we Yanks are doing and said, "You people are insane," then used something that doesn't require drop-frames.

We're moving towards high-definition broadcasting in this country. It's a perfect time to get away from drop-frame time-code, to use a kind of time-code that has even multiples of some simple digit (like 60 or something), since we have to rewrite almost everything to work with high-definition anyway.

But, we decided to continue using drop-code anyway.

Because we're crazy.
Previous Topic: An administrative console Part II...
Next Topic: World Suite 3D
Goto Forum:
  


Current Time: Thu Nov 21 15:10:43 CET 2019

Total time taken to generate the page: 0.02972 seconds