Difference between revisions of "Branding"

From FreeCAD Documentation
Jump to: navigation, search
(General)
Line 1: Line 1:
This article describes the '''Branding''' of FreeCAD. That is how to give FreeCAD a unique look.
+
This article describes the '''Branding''' of FreeCAD. Branding means to start your own application on base of FreeCAD. That can be only your on executable or splash screen till a complete reworked program. On base of the flexible architecture of FreeCAD its easy to use it as base for your own special purpose program.
  
 
== General ==
 
== General ==
Most of the branding is done in the '''MainCmd.cpp''' or ''MainGui.cpp'''.
+
Most of the branding is done in the '''MainCmd.cpp''' or ''MainGui.cpp'''. This Projects generates the executable files of FreeCAD. To make your own Brand just copy the Main or MainGui projets and give the executable an own name, e.g. FooApp.exe.
the most important settings for a new look can be made in one place. Here is the code section that controls the branding:
+
The most important settings for a new look can be made in one place in the main() function. Here is the code section that controls the branding:
  
  '''1''' // Name and Version of the Application
+
  int main( int argc, char ** argv )
'''2'''  App::Application::Config()["ExeName"] = "FreeCAD";
+
  {
'''3'''
+
  // Name and Version of the Application
'''4'''  // set the banner (for logging and console)
+
  App::Application::Config()["ExeName"] = "FooApp.exe";
'''5'''  App::Application::Config()["ConsoleBanner"] = sBanner;
+
  App::Application::Config()["ExeVersion"] = "0.7";
'''6'''  App::Application::Config()["AppIcon"] = "FCIcon";
+
 
'''7'''  App::Application::Config()["SplashPicture"] = "FreeCADSplasher";
+
  // set the banner (for loging and console)
 +
  App::Application::Config()["ConsoleBanner"] = sBanner;
 +
  App::Application::Config()["AppIcon"] = "FCIcon";
 +
  App::Application::Config()["SplashPicture"] = "FooAppSplasher";
 +
  App::Application::Config()["StartWorkbench"] = "Part design";
 +
  //App::Application::Config()["HiddenDockWindow"] = "Property editor";
 +
  App::Application::Config()["SplashAlignment" ] = "Bottom|Left";
 +
  App::Application::Config()["SplashTextColor" ] = "#000000"; // black
 +
 
 +
  App::Application::Config()["RunMode"] = "Gui";
 +
  // Inits the Application
 +
  App::Application::init(argc,argv);
 +
 
 +
  Gui::BitmapFactory().addXPM("FooAppSplasher", ( const char** ) splash_screen);
 +
 +
  Gui::Application::initApplication();
 +
 
 +
  Gui::Application::runApplication();
 +
 
 +
  App::Application::destruct();
 +
 
 +
  return 0;
 +
}
  
 
The first command in line 2 defines the Program name. This is not the executable name, which can be changed by renaming or by compiler settings, but the name that is displayed in the task bar on windows or in the program list on Unix systems.
 
The first command in line 2 defines the Program name. This is not the executable name, which can be changed by renaming or by compiler settings, but the name that is displayed in the task bar on windows or in the program list on Unix systems.
  
 
Line 5 defines a text string that contains the console banner that is shown on startup. Lines 6 and 7 define the program icon image and the [[splash screen]] image.
 
Line 5 defines a text string that contains the console banner that is shown on startup. Lines 6 and 7 define the program icon image and the [[splash screen]] image.
 
== Program Name ==
 
To change the program name, just change the string for the config setting of "ExeName" in ''MainGui.cpp''. Et voila, you just made your first step in creating an own brand based on FreeCAD.
 
  
 
If you wonder about the <nowiki>"[Non-Commercial]"</nowiki> text in the window title this is due to the missing licence for [[wikipedia:Qt (toolkit)|Qt]]. See the [[Licence]] article for more info on that.
 
If you wonder about the <nowiki>"[Non-Commercial]"</nowiki> text in the window title this is due to the missing licence for [[wikipedia:Qt (toolkit)|Qt]]. See the [[Licence]] article for more info on that.
Line 24: Line 43:
 
== Images ==
 
== Images ==
 
All image resources are compiled into FreeCAD. This reduces delayed loading and keeps the installation compact. The images are included in XPM-Format which is basically a text format that uses C-syntax. You can basically draw this images with a text editor, but it is more comfortable to create the images with your favorite graphics program and convert it later to XPM format.  
 
All image resources are compiled into FreeCAD. This reduces delayed loading and keeps the installation compact. The images are included in XPM-Format which is basically a text format that uses C-syntax. You can basically draw this images with a text editor, but it is more comfortable to create the images with your favorite graphics program and convert it later to XPM format.  
 +
 +
The GNU image program [http://gimp.org/ Gimp] can save XPM file.
  
 
For conversion you can use the ''[[ImageConv]]'' tool wich is included with freecad. You can find it under
 
For conversion you can use the ''[[ImageConv]]'' tool wich is included with freecad. You can find it under
Line 34: Line 55:
  
 
This converts the file ''InputImage.png'' in XPM-format and writes the result to file ''OutputImage.xpm''.
 
This converts the file ''InputImage.png'' in XPM-format and writes the result to file ''OutputImage.xpm''.
 +
 +
The line:
 +
 +
Gui::BitmapFactory().addXPM("FooAppSplasher", ( const char** ) splash_screen);
 +
 +
in the main() then include the image in the BitmapFactory of FreeCAD.
  
 
=== Icons ===
 
=== Icons ===

Revision as of 17:10, 17 February 2007

This article describes the Branding of FreeCAD. Branding means to start your own application on base of FreeCAD. That can be only your on executable or splash screen till a complete reworked program. On base of the flexible architecture of FreeCAD its easy to use it as base for your own special purpose program.

General

Most of the branding is done in the MainCmd.cpp' or MainGui.cpp. This Projects generates the executable files of FreeCAD. To make your own Brand just copy the Main or MainGui projets and give the executable an own name, e.g. FooApp.exe. The most important settings for a new look can be made in one place in the main() function. Here is the code section that controls the branding:

int main( int argc, char ** argv )
{
  // Name and Version of the Application
  App::Application::Config()["ExeName"] = "FooApp.exe";
  App::Application::Config()["ExeVersion"] = "0.7";
  // set the banner (for loging and console)
  App::Application::Config()["ConsoleBanner"] = sBanner;
  App::Application::Config()["AppIcon"] = "FCIcon";
  App::Application::Config()["SplashPicture"] = "FooAppSplasher";
  App::Application::Config()["StartWorkbench"] = "Part design";
  //App::Application::Config()["HiddenDockWindow"] = "Property editor";
  App::Application::Config()["SplashAlignment" ] = "Bottom|Left";
  App::Application::Config()["SplashTextColor" ] = "#000000"; // black
  App::Application::Config()["RunMode"] = "Gui";
  // Inits the Application 
  App::Application::init(argc,argv);
  Gui::BitmapFactory().addXPM("FooAppSplasher", ( const char** ) splash_screen);

  Gui::Application::initApplication();
  Gui::Application::runApplication();
  App::Application::destruct();
  return 0;

}

The first command in line 2 defines the Program name. This is not the executable name, which can be changed by renaming or by compiler settings, but the name that is displayed in the task bar on windows or in the program list on Unix systems.

Line 5 defines a text string that contains the console banner that is shown on startup. Lines 6 and 7 define the program icon image and the splash screen image.

If you wonder about the "[Non-Commercial]" text in the window title this is due to the missing licence for Qt. See the Licence article for more info on that.

Images

All image resources are compiled into FreeCAD. This reduces delayed loading and keeps the installation compact. The images are included in XPM-Format which is basically a text format that uses C-syntax. You can basically draw this images with a text editor, but it is more comfortable to create the images with your favorite graphics program and convert it later to XPM format.

The GNU image program Gimp can save XPM file.

For conversion you can use the ImageConv tool wich is included with freecad. You can find it under

/trunk/src/Tools/ImageTools/ImageConv

It can not only convert images but also automatically update the BmpFactoryIcons.cpp file, where the images are registered. The typical usage is as simple like the following example:

ImageConv -i InputImage.png -o OutputImage.xpm

This converts the file InputImage.png in XPM-format and writes the result to file OutputImage.xpm.

The line:

Gui::BitmapFactory().addXPM("FooAppSplasher", ( const char** ) splash_screen);

in the main() then include the image in the BitmapFactory of FreeCAD.

Icons

The main application icon FCIcon that appears in window titles and other places is defined in

/trunk/src/Gui/Icons/images.cpp

and starts with the line

static const char *FCIcon[]={

Replace it with your favourite icon, recompile freecad and the next step to create your own brand is done. There are many other icons in this file that you might change to your gusto.

If you need to add new icons, you have to register it in

/trunk/src/Gui/Icons/BmpFactoryIcons.cpp

so that you can access from FreeCAD.

Splash Screen

The splash screen image, that is also used as background for the About Box is located in the file

/trunk/src/Gui/Icons/developers.h

and starts with the line

static const char* const splash_screen[] = {

Replace the contents of this static array with an XPM image of your choice to make FreeCAD looking more how you like it.

Background Image

The background image appears, when no document window is open. Like the splash screen it is defined in developers.h in the section starting with:

static const char* const background[]={

You should choose a low contrast image for the background. Otherwise it might irritate the user.