HOME

TheInfoList



OR:

The Visual Component Framework (VCF) is an abandoned
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
project for development under Microsoft Windows and
Apple Macintosh The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and software ...
that is distributed under the
BSD license BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD li ...
. It is an advanced C++ application framework that makes it easier to produce GUI-based C++ applications. The framework is C++ design and has built in support for
rapid application development Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...
. The framework is designed to be portable over multiple platforms and
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
s. The framework runs under Windows and
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
, but as of April 6, 2006, the Mac port was incomplete, and a Linux port was still pending. The project has made a large effort to support a variety of compilers and
Integrated Development Environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
s (IDE), allowing the developer to work in whatever IDE/compiler they prefer. Compiler support on Windows covers Microsoft
Visual C++ Microsoft Visual C++ (MSVC) is a compiler for the C, C++ and C++/CX programming languages by Microsoft. MSVC is proprietary software; it was originally a standalone product but later became a part of Visual Studio and made available in both tr ...
versions 6, 7, 7.1, and 8, along with the
Borland C++ Borland C++ is a C and C++ IDE ( integrated development environment) for MS-DOS and Microsoft Windows. It was the successor to Turbo C++ and included a better debugger, the Turbo Debugger, which was written in protected mode DOS. Libraries ...
Compiler, the
Intel C++ Intel oneAPI DPC++/C++ Compiler and Intel C++ Compiler Classic are Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconducto ...
Compiler, and GCC. On Mac OS X GCC is supported using the
Xcode Xcode is Apple's integrated development environment (IDE) for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, and tvOS. It was initially released in late 2003; the latest stable release is version 14.2, released on December 13, ...
IDE. A CodeWarrior port was completed, but stopped due to CodeWarrior dropping support for their x86 version of the compiler, and later for their PowerPC version as well.


License

The framework is licensed under the
BSD license BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD li ...
for any platform it runs on.


Design and Goals

The framework is designed with several goals in mind. One is the ability to be ported to other platforms beyond
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
, such as
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
,
BeOS BeOS is an operating system for personal computers first developed by Be Inc. in 1990. It was first written to run on BeBox hardware. BeOS was positioned as a multimedia platform that could be used by a substantial population of desktop users a ...
, or possibly even embedded operating systems like
Windows CE Windows Embedded Compact, formerly Windows Embedded CE, Windows Powered and Windows CE, is an operating system subfamily developed by Microsoft as part of its Windows Embedded family of products. Unlike Windows Embedded Standard, which is ba ...
. The next goal is to provide solid support for dynamic programming such as that found in languages like Borland's
Object Pascal Object Pascal is an extension to the programming language Pascal that provides object-oriented programming (OOP) features such as classes and methods. The language was originally developed by Apple Computer as ''Clascal'' for the Lisa Work ...
,
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
, or
Objective-C Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its N ...
. This included RTTI or reflection like classes that allow the developer to query all sorts of information about a given class instance at runtime. Another goal was to design the UI classes so that visual programming or
rapid application development Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...
was possible, similar to what is found in
Delphi Delphi (; ), in legend previously called Pytho (Πυθώ), in ancient times was a sacred precinct that served as the seat of Pythia, the major oracle who was consulted about important decisions throughout the ancient classical world. The oracl ...
. This includes support for property editors, component editors, persistence of the UI state to and from an external text file, and making use of the dynamic features to create class instances on the fly and get and set the instance's registered properties. In addition to this, the last goal was to provide support for a large number of common programming tasks when developing an application, particularly for larger scale applications. This includes support for various kinds of IO (in memory, file/disk, and so forth), thread support and various synchronization primitives like mutexes, semaphores, and conditions, Unicode string support, locale and internationalization support including localizing string resources, comprehensive resource support, and basic XML parsing. Graphics features include anti-aliased graphics using the Anti-Grain Graphics Library, full affine transformation support, images with direct access to the image's pixel bits. Additional application support features also include undo/redo classes, advanced support for Model View Controller. As a general rule, the framework makes as much use as possible of the
Standard Template Library The Standard Template Library (STL) is a software library originally designed by Alexander Stepanov for the C++ programming language that influenced many parts of the C++ Standard Library. It provides four components called ''algorithms'', ''co ...
, avoiding duplication of work on things like container classes, or string handling. Where possible the framework builds on top of the native C++ RTTI support such as using dynamic_cast and typeid, as opposed to simply re-implementing it. Most OS objects, such as files, threads, graphics devices, and window controls (or widgets), and so on, are implemented using a thin layer that talks directly to the specific native object. UI controls are not emulated for the most part, instead the framework uses native widgets in most places. Direct access to the underlying OS "handle" is allowed in cases where platform specific functionality is needed, allowing the developer to easily call the platform's native APIs.


See also

*
Software component Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a give ...
*
Widget toolkit A widget toolkit, widget library, GUI toolkit, or UX library is a library or a collection of libraries containing a set of graphical control elements (called ''widgets'') used to construct the graphical user interface (GUI) of programs. Most wid ...
* List of widget toolkits * Qt *
wxWidgets wxWidgets (formerly wxWindows) is a widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with min ...
*
Motif Motif may refer to: General concepts * Motif (chess composition), an element of a move in the consideration of its purpose * Motif (folkloristics), a recurring element that creates recognizable patterns in folklore and folk-art traditions * Moti ...
*
GTK+ GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and prop ...
* Gtkmm * FLTK * FOX toolkit * Ultimate++


External links

*
The VCF Reference Documentation

The VCF Source Documentation

The VCF Builder homepage

Anti-Grain Graphics Library
{{Widget toolkits Software using the BSD license Widget toolkits