Difference between revisions of "Branding"
(Marked this version for translation) |
m ([[ | ]]) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
<translate> | <translate> | ||
<!--T:11--> | <!--T:11--> | ||
− | {{docnav|Continuous Integration|Localisation}} | + | {{docnav |
+ | |[[Continuous Integration|Continuous Integration]] | ||
+ | |[[Localisation|Localisation]] | ||
+ | }} | ||
<!--T:1--> | <!--T:1--> | ||
Line 8: | Line 11: | ||
=== General === <!--T:2--> | === General === <!--T:2--> | ||
− | Most of the branding is done in the | + | Most of the branding is done in the {{FileName|MainCmd.cpp}} or {{FileName|MainGui.cpp}}. These Projects generate the executable files of FreeCAD. To make your own Brand just copy the Main or MainGui projects and give the executable an own name, e.g. {{FileName|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: | 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: | ||
</translate> | </translate> | ||
+ | <!-- WARNING Do not modify the <syntaxhighligh> tag because of "{}" or pipe characters "|" included in the source code of the macro --> | ||
<syntaxhighlight> | <syntaxhighlight> | ||
int main( int argc, char ** argv ) | int main( int argc, char ** argv ) | ||
Line 42: | Line 46: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<translate> | <translate> | ||
+ | |||
<!--T:3--> | <!--T:3--> | ||
The first Config entry 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 Config entry 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 49: | Line 54: | ||
=== Images === <!--T:5--> | === Images === <!--T:5--> | ||
− | Image resources are compiled into FreeCAD using [http://qt-project.org/doc/qt-4.8/resources.html Qt's resource system]. Therefore you have to write a .qrc file, an XML-based file format that lists image files on the disk but also any other kind of resource files. To load the compiled resources inside the application you have to add a line | + | Image resources are compiled into FreeCAD using [http://qt-project.org/doc/qt-4.8/resources.html Qt's resource system]. Therefore you have to write a {{FileName|.qrc}} file, an XML-based file format that lists image files on the disk but also any other kind of resource files. To load the compiled resources inside the application you have to add a line |
+ | |||
</translate> | </translate> | ||
{{Code|code= | {{Code|code= | ||
Line 55: | Line 61: | ||
}} | }} | ||
<translate> | <translate> | ||
+ | |||
<!--T:6--> | <!--T:6--> | ||
− | into the main() function. Alternatively, if you have an image in XPM format you can directly include it into your main.cpp and add the following line to register it: | + | into the main() function. Alternatively, if you have an image in XPM format you can directly include it into your {{FileName|main.cpp}} and add the following line to register it: |
+ | |||
</translate> | </translate> | ||
{{Code|code= | {{Code|code= | ||
Line 62: | Line 70: | ||
}} | }} | ||
<translate> | <translate> | ||
+ | |||
=== Branding XML === <!--T:7--> | === Branding XML === <!--T:7--> | ||
− | In FreeCAD there is also a method supported without writing a customized main() function. For this method you must write a file name called branding.xml and put it into the installation directory of FreeCAD. Here is an example with all supported tags: | + | In FreeCAD there is also a method supported without writing a customized main() function. For this method you must write a file name called {{FileName|branding.xml}} and put it into the installation directory of FreeCAD. Here is an example with all supported tags: |
+ | |||
</translate> | </translate> | ||
+ | <!-- WARNING Do not modify the <syntaxhighligh> tag because of "{}" or pipe characters "|" included in the source code of the macro --> | ||
<syntaxhighlight> | <syntaxhighlight> | ||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
Line 87: | Line 98: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<translate> | <translate> | ||
+ | |||
<!--T:8--> | <!--T:8--> | ||
All of the listed tags are optional. | All of the listed tags are optional. | ||
<!--T:9--> | <!--T:9--> | ||
− | {{docnav|Continuous Integration|Localisation}} | + | {{docnav |
+ | |[[Continuous Integration|Continuous Integration]] | ||
+ | |[[Localisation|Localisation]] | ||
+ | }} | ||
<!--T:12--> | <!--T:12--> |
Latest revision as of 11:15, 4 November 2019
This article describes the Branding of FreeCAD. Branding means to start your own application on base of FreeCAD. That can be only your own executable or splash screen till a complete reworked program. On base of the flexible architecture of FreeCAD it's 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. These Projects generate the executable files of FreeCAD. To make your own Brand just copy the Main or MainGui projects 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";
App::Application::Config()["ExeVersion"] = "0.7";
// set the banner (for loging and console)
App::Application::Config()["CopyrightInfo"] = sBanner;
App::Application::Config()["AppIcon"] = "FooAppIcon";
App::Application::Config()["SplashScreen"] = "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
// Inits the Application
App::Application::Config()["RunMode"] = "Gui";
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 Config entry 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 next lines define the Config entries of your FooApp Application. A description of the Config and its entries you find in Start up and Configuration.
Images
Image resources are compiled into FreeCAD using Qt's resource system. Therefore you have to write a .qrc file, an XML-based file format that lists image files on the disk but also any other kind of resource files. To load the compiled resources inside the application you have to add a line
Q_INIT_RESOURCE(FooApp);
into the main() function. Alternatively, if you have an image in XPM format you can directly include it into your main.cpp and add the following line to register it:
Gui::BitmapFactory().addXPM("FooAppSplasher", ( const char** ) splash_screen);
Branding XML
In FreeCAD there is also a method supported without writing a customized main() function. For this method you must write a file name called branding.xml and put it into the installation directory of FreeCAD. Here is an example with all supported tags:
<?xml version="1.0" encoding="utf-8"?>
<Branding>
<Application>FooApp</Application>
<WindowTitle>Foo App in title bar</WindowTitle>
<BuildVersionMajor>1</BuildVersionMajor>
<BuildVersionMinor>0</BuildVersionMinor>
<BuildRevision>1234</BuildRevision>
<BuildRevisionDate>2014/1/1</BuildRevisionDate>
<CopyrightInfo>(c) My copyright</CopyrightInfo>
<MaintainerUrl>Foo App URL</MaintainerUrl>
<ProgramLogo>Path to logo (appears in bottom right corner)</ProgramLogo>
<WindowIcon>Path to icon file</WindowIcon>
<ProgramIcons>Path to program icons</ProgramIcons>
<SplashScreen>splashscreen.png</SplashScreen>
<SplashAlignment>Bottom|Left</SplashAlignment>
<SplashTextColor>#ffffff</SplashTextColor>
<SplashInfoColor>#c8c8c8</SplashInfoColor>
<StartWorkbench>PartDesignWorkbench</StartWorkbench>
</Branding>
All of the listed tags are optional.

- Installation: Linux/Unix, Windows, Mac; Getting started
- Basics: About FreeCAD, Workbenches, Preferences, Document structure, Interface Customization, Properties, Mouse Model; Tutorials
- Workbenches: Std Base; Arch, Draft, FEM, Image, Inspection, Mesh, OpenSCAD, Part, PartDesign, Path, Plot, Points, Raytracing, Reverse Engineering, Robot, Ship, Sketcher, Spreadsheet, Start, Surface workbench, TechDraw, Test Framework, Web
- Scripting: Introduction to Python, FreeCAD scripting tutorial, FreeCAD Scripting Basics, How to install macros, Gui Command, Units Modules: Builtin modules, Workbench creation, Installing more workbenches Meshes: Mesh Scripting, Mesh Module Parts: The Part Module, Topological data scripting, PythonOCC, Mesh to Part Coin scenegraph: The Coin/Inventor scenegraph, Pivy Qt interface: PySide, Using the FreeCAD GUI, Dialog creation Parametric objects: Scripted objects Other: Code snippets, Line drawing function, Embedding FreeCAD, FreeCAD vector math library, Power users hub, Python, Macros, FreeCAD Scripting Basics, Topological data scripting