Click here to Skip to main content
15,868,164 members
Articles / Desktop Programming / MFC
Article

CP<sup>2</sup> Universal Gui LibrarY (UGLY) Project - MAIN PAGE

Rate me:
Please Sign up or sign in to vote.
2.05/5 (31 votes)
3 Sep 20035 min read 284.3K   608   26   186
A GUI library collaborative project.

A Code Project Project by Bob's loyal subjects
What is CP2?
Code Project Project is a collaborative effort, first brought forward by Joel Holdsworth and later Jamie Hale, to produce quality software by all and for all CodeProject users, by utilizing their collective knowledge and expertise in the software development profession. If you have general questions or comments pertaining to CP2, please direct them to Jason Henderson.

All Code Project Projects are works in progress. Not all pages may be available until progress has been made in that area. Please do not pass judgement on this project or it's article series until its completion. Thank you.

CP2 Universal Gui LibrarY (UGLY) Project

 

***NOTE:  This project is in the process of moving to a new location.***

It will no longer be affiliated with CodeProject, and it will have a new name - FLUID UI Toolkit.

Its new location is http://www.fluiduitoolkit.com.

You are welcome to join this project.  To sign up, please register on the forums.

Critical Documents:
critical_documents.zip

Project Leader:
Justin Dunlap

Project Abstract

The UGLY Library - Universal Graphical User Interface LibrarY is a project aimed at providing a comprehensive, modern, and innovative suite controls and support classes to the user interface designer. These classes will allow them to access new, easy to use controls and UI layout options such as user configurable menus and toolbars, floating windows, etc.

Scope

To start with, the project will be aimed at getting a suite of standard windows controls together that will be drop-in replacements for the existing ones. These replacements will have extended functionality and drawing capabilities - the type of which will be dependent on the control type.

Starting in this way, we can keep the project small and build from there, we need to see how enthusiastic people are going to be and small bite sized chunks will be easier to digest.

Skill Set

It looks like the kind of people we will need are those who are familiar with developing controls under Windows. I myself have quite some experience in this area. We are implementing the controls in both C# (for .NET) and C++ (for Win32), so we need people with experience in one or both of these languages.

Architecture

Since the project consists of controls/components, it should be fairly easy to divide it up into sub-sections.  Besides the control, there will be:

  • A base framework
  • A base control class(es)
  • An example test application (one or more)  - to start with, I suggest a bitmap editor (with a bit more features than Paint) and a rich text editor (like WordPad).

We will have a DLL for the framework, and one for the basic controls.  For the special controls, a DLL should be created for each class of controls - one for all special listview-related controls, one for all special buton-related controls, etc.

Some of the areas we will want to provide enhanced support for are: 

  • Printing functionality - controls should have a GetRendering() method that gets a rendering of the control.
  • Owner drawn/skinnable - through an advanced rendering/behavior subsystem.
  • Better UI

The User's view

As the intended users will be application programmers, we need decent documentation on the classes and the API's. Keeping everything as consistent as possible across all the classes is a must. To begin with, we will simply define the interfaces in XML, to be viewed with the XSLT transform I created for the purpose.  Eventually, though, we will probably want to use an automatic documentation system (I am trying to find one for use with C++).

We're aiming here to make the target audience's life as easy as possible. You want a spin control that increments in 0.01 units? You got it! etc.

A list of controls we may support

STANDARD

NON-STANDARD

UNCONVENTIONAL

  • treeview
  • listview
  • listbox
  • combobox
  • fontcombo
  • ip address box
  • masked edit control
  • property page
  • grid control
  • button
  • toolbar
  • rebar
  • commandbar
  • richedit control
  • MDI tabs
  • chart
  • date picker
  • calendar
  • (marquee)
  • slider
  • tab page
  • explorer treeview
  • explorer listview
  • progress bar
  • syntax highlight numbered text control
  • property grid
  • statusbar
  • updown - spin?
  • scrollable viewport
  • monthview
  • ruler
  • commandbar
  • treelistview
  • listbar (outlook-style)
  • toolbox listbar
  • clock
  • dial
  • range picker
  • skinnable popup - for balloons, etc.
  • data navbar
  • collapsible panel
  • color picker bar - functionality is like scrollbar
  • color palette
  • color picker gradient - round, square, etc
  • auto-complete textbox
  • image-calendar
  • time-scheduler
  • topiclist
  • imagelistview
  • appbar
  • wizard ctl
  • advanced message box
  • analog meter control
  • peak-meter
  • number ticker (like odometer)
  • colorcombo
  • lcd display
  • dockable / pinnable dialogs
  • LED controls
  • enhanced MessageBox
  • radio dial/wheel
  • dockable slide panels/drop down lists
  • maybe a door control
  • book pages control
  • a control like the flexible PowerBuilder datawindow
  • a sticky-note control or undockable thumbtacks (stick a note anywhere on the window and move it anywhere)
  • a rolodex control
  • file cabinet control (user can lable outside and drag and drop things in and out)
  • <lcd a="" light="" panel="" (ever="" play="" with="" lite-brite?)="" li="" <="">
  • flip switches (like a light switch)
  • springy Slinky-like dropdown list control (release and it springs back up)
  • slot machine lever control

I am especially interested in a commandbar and an image thumbnail viewer.

History

June 12 2003 - Posted

<Other updates - were not kept track of>

July 31 2003 - Updated by Justin Dunlap - did a full update.

Other CP2 projects

Defect Tracking and Source Control Project
Scripting Framework Project


Group projects like this one cannot succeed without the help of dedicated individuals. If you are interesting in volunteering your time and expertise to this project, please post a message in the VOLUNTEERS thread on this page and the Project Leader will contact you for confirmation.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
United States United States
My main goal as a developer is to improve the way software is designed, and how it interacts with the user. I like designing software best, but I also like coding and documentation. I especially like to work with user interfaces and graphics.

I have extensive knowledge of the .NET Framework, and like to delve into its internals. I specialize in working with VG.net and MyXaml. I also like to work with ASP.NET, AJAX, and DHTML.

Comments and Discussions

 
GeneralWait til PDC Pin
Wesner Moise21-Aug-03 6:15
Wesner Moise21-Aug-03 6:15 
GeneralRe: Wait til PDC Pin
Joey Bloggs29-Aug-03 19:13
Joey Bloggs29-Aug-03 19:13 
GeneralRe: Wait til PDC Pin
Wesner Moise29-Aug-03 19:58
Wesner Moise29-Aug-03 19:58 
GeneralRe: Wait til PDC Pin
Joey Bloggs29-Aug-03 21:06
Joey Bloggs29-Aug-03 21:06 
GeneralRe: Wait til PDC Pin
NormDroid4-Sep-03 21:26
professionalNormDroid4-Sep-03 21:26 
GeneralRe: Wait til PDC Pin
Jim Crafton5-Sep-03 6:25
Jim Crafton5-Sep-03 6:25 
GeneralRe: Wait til PDC Pin
Wesner Moise5-Sep-03 7:55
Wesner Moise5-Sep-03 7:55 
GeneralRe: Wait til PDC Pin
NormDroid6-Sep-03 7:23
professionalNormDroid6-Sep-03 7:23 
GeneralRe: Wait til PDC Pin
Wesner Moise5-Sep-03 7:57
Wesner Moise5-Sep-03 7:57 
GeneralRe: Wait til PDC Pin
NormDroid6-Sep-03 7:26
professionalNormDroid6-Sep-03 7:26 
Generalopen source oo text engines Pin
Joey Bloggs2-Aug-03 19:46
Joey Bloggs2-Aug-03 19:46 
GeneralRe: open source oo text engines Pin
J. Dunlap2-Aug-03 20:00
J. Dunlap2-Aug-03 20:00 
GeneralRe: open source oo text engines Pin
Arnt Witteveen5-Aug-03 11:14
Arnt Witteveen5-Aug-03 11:14 
GeneralRe: open source oo text engines Pin
Joey Bloggs5-Aug-03 12:44
Joey Bloggs5-Aug-03 12:44 
GeneralRe: open source oo text engines Pin
Arnt Witteveen6-Aug-03 8:41
Arnt Witteveen6-Aug-03 8:41 
GeneralCustom Renderers Pin
Joey Bloggs1-Aug-03 23:27
Joey Bloggs1-Aug-03 23:27 
GeneralRe: Custom Renderers Pin
J. Dunlap2-Aug-03 14:39
J. Dunlap2-Aug-03 14:39 
GeneralF*** you for yr IQ = 30 Pin
goo@foolgoo.com29-Jul-03 7:55
goo@foolgoo.com29-Jul-03 7:55 
GeneralRe: f*** you for yr IQ = 30 Pin
Joel Holdsworth29-Jul-03 10:11
Joel Holdsworth29-Jul-03 10:11 
GeneralLook at your f***ing sign Pin
goo@foolgoo.com31-Jul-03 7:11
goo@foolgoo.com31-Jul-03 7:11 
GeneralRe: Look at your f***ing sign Pin
John M. Drescher2-Aug-03 5:18
John M. Drescher2-Aug-03 5:18 
GeneralRe: Look at your f***ing sign Pin
Joey Bloggs2-Aug-03 11:53
Joey Bloggs2-Aug-03 11:53 
GeneralRe: Look at your f***ing sign Pin
J. Dunlap2-Aug-03 12:02
J. Dunlap2-Aug-03 12:02 
GeneralSerious doubt about this project! Pin
Anonymous29-Jul-03 4:12
Anonymous29-Jul-03 4:12 
GeneralRe: Serious doubt about this project! Pin
Joel Holdsworth29-Jul-03 10:12
Joel Holdsworth29-Jul-03 10:12 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.