Branding

From FreeCAD Documentation
This page is a translated version of the page Branding and the translation is 100% complete.

Présentation

Cet article décrit le Branding (identification à la marque) de FreeCAD. Branding signifie que vous pouvez lancer votre propre application sur une base de FreeCAD. Cela peut être seulement votre propre exécutable ou votre écran de démarrage jusqu'à une refonte complète du programme. Grace à l'architecture flexible de FreeCAD, il est facile de l'utiliser comme base pour votre propre programme spécifique.

Attention

Bien que FreeCAD vous soit proposé gratuitement, et que la communauté FreeCAD soit heureuse de voir émerger d'autres applications basées sur FreeCAD, nous avons d'autre part constaté une utilisation déloyale des informations contenues dans cette page par des personnes qui ont simplement rebaptisé FreeCAD en une application à code source fermé pour en tirer profit.

Bien que la licence LGPL permette d'utiliser le code source de FreeCAD dans des applications à code fermé, elle donne également des règles strictes pour le faire, et ne permet pas de simplement prendre FreeCAD, de le renommer et de le dépouiller de sa licence.

Si vous souhaitez utiliser FreeCAD dans une application à code source fermé, assurez-vous de bien vérifier les implications de la licence LGPL et, mieux encore, contactez un développeur, un administrateur ou un modérateur de FreeCAD avant de le faire.

Generalités

La plupart des marques (branding) se font dans MainCmd.cpp ou MainGui.cpp. Ces projets génèrent les fichiers exécutables de FreeCAD. Pour faire votre propre marque (branding), il suffit de copier Main (les projets principaux) ou MainGui (les projets graphiques GUI) et donner à l'exécutable un nom qui vous est propre, pour notre exemple, FooApp.exe. Les réglages les plus importants pour un nouveau visuel sont effectués à un seul endroit, dans la fonction main(). Voici la section de code qui contrôle l'image de marque (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;
}

La première entrée, ::Config définit le nom du programme ici, "FooApp.exe". Ce n'est pas le nom de l'exécutable qui peut être modifié en le renommant, ou par les paramètres du compilateur, mais le nom qui est affiché dans la barre des tâches sur les fenêtres, ou dans la liste des programmes sur les systèmes Unix.

Les lignes suivantes définissent les entrées de configuration de votre application "FooApp", une description de la configuration et de ses entrées que vous trouverez dans Démarrage et configuration.

Images

Les ressources contenant les images sont compilées dans FreeCAD à l'aide de Qt's resource system. Par conséquent, vous devez écrire un fichier .qrc, un format de fichier basé sur XML qui répertorie les fichiers image sur le disque, mais également tout autre type de fichier de ressources. Pour charger les ressources compilées dans l'application, vous devez ajouter une ligne

Q_INIT_RESOURCE(FooApp);

dans la fonction main(). Sinon, si vous avez une image au format XPM, vous pouvez directement l'inclure dans votre main.cpp puis ajoutez la ligne suivante pour l'enregistrer:

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

Branding XML

Dans FreeCAD, une méthode est également prise en charge sans écrire de fonction main() personnalisée. Pour cette méthode, vous devez écrire un nom de fichier appelé branding.xml et le placer dans le répertoire d'installation de FreeCAD. Voici un exemple avec toutes les balises prises en charge:

<?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>

Toutes les balises répertoriées sont facultatives.